diff --git a/.gitignore b/.gitignore index 06b4d607..15f98305 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +tags *~ *.pyc .DS_Store diff --git a/.travis.yml b/.travis.yml index 3a115af5..309e4976 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,6 @@ env: matrix: include: # Linux, not on master - - if: branch != master - os: linux - env: TRAVIS_PYTHON_VERSION=2.7 NUMPY=True - if: branch != master os: linux env: TRAVIS_PYTHON_VERSION=3.7 NUMPY=True @@ -28,20 +25,14 @@ matrix: - pip install pytest-cov codecov black script: - black --check --exclude venv . - - py.test ./eppy/tests --cov=./ -v + - py.test ./tests --cov=./ -v after_success: # coverage reporting on CodeCov - codecov # Linux, on master - - if: branch = master - os: linux - env: TRAVIS_PYTHON_VERSION=2.7 - if: branch = master os: linux env: TRAVIS_PYTHON_VERSION=3.7 - - if: branch = master - os: linux - env: TRAVIS_PYTHON_VERSION=2.7 NUMPY=True - if: branch = master os: linux env: TRAVIS_PYTHON_VERSION=3.7 NUMPY=True @@ -58,27 +49,18 @@ matrix: - pip install pytest-cov codecov black script: - black --check --exclude venv . - - py.test ./eppy/tests --cov=./ -v + - py.test ./tests --cov=./ -v after_success: # coverage reporting on CodeCov - codecov # OSX, not on master - - if: branch != master - os: osx - env: TRAVIS_PYTHON_VERSION=2.7 NUMPY=True - if: branch != master os: osx env: TRAVIS_PYTHON_VERSION=3.7 NUMPY=True # OSX, on master - - if: branch = master - os: osx - env: TRAVIS_PYTHON_VERSION=2.7 - if: branch = master os: osx env: TRAVIS_PYTHON_VERSION=3.7 - - if: branch = master - os: osx - env: TRAVIS_PYTHON_VERSION=2.7 NUMPY=True - if: branch = master os: osx env: TRAVIS_PYTHON_VERSION=3.7 NUMPY=True @@ -128,4 +110,4 @@ install: - pip install pytest script: - - py.test ./eppy/tests + - py.test ./tests diff --git a/CHANGES.txt b/CHANGES.txt deleted file mode 100644 index 26bb81f6..00000000 --- a/CHANGES.txt +++ /dev/null @@ -1,16 +0,0 @@ -2015-07-12 ----------- -All changes are now documented in ./docs/source/changes.rst - -2014-08-19 ----------- - -release r0.462 - -- added a script that can compare two idf files. The script is in - - eppy/usefull_scripts/idfdiff.py -- added two scripts that test if eppy works when new versions of energyplus are released. Documentation for this is not yet done. The scripts are - - eppy/usefull_scripts/eppyreadtest_file.py - - eppy/usefull_scripts/eppyreadtest_folder.py -- fixed a bug where eppy would not read backslashes in a path name. Some idf objects have fields that are path names. On dos/windows machines these path names have backslashes - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 3ae94eb9..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,20 +0,0 @@ -If you are a contributor, consider using the following workflow: - -- an issue is opened -- the issue is assigned to you -- you make a branch from `develop` with a meaningful name such as "i57_licence" where #57 is the issue number -- once the coding is complete and the tests pass, raise a pull request against the `develop` branch and tag the "release master" of the repository (release master is @santoshphilip at present) -- "release master" will review and merge your changes into the `develop` branch -- close the issue - -If you are not a contributor: - -- ask to become a contributor - -OR - -- fork this repository into your own repository -- make a branch off the `develop` branch to work on your new feature -- once the coding is complete, raise a pull request against the `develop` branch here -- give the pull request a meaningful name, and mention any issues that it addresses (using the issue number, e.g. "Resolves #86, also see #57") -- once the code has been reviewed and tests are passing it will be merged into `develop` \ No newline at end of file diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 00000000..6c6adcda --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,128 @@ +.. highlight:: shell + +============ +Contributing +============ + +Contributions are welcome, and they are greatly appreciated! Every little bit +helps, and credit will always be given. + +You can contribute in many ways: + +Types of Contributions +---------------------- + +Report Bugs +~~~~~~~~~~~ + +Report bugs at https://github.com/santoshphilip/eppy/issues. + +If you are reporting a bug, please include: + +* Your operating system name and version. +* Any details about your local setup that might be helpful in troubleshooting. +* Detailed steps to reproduce the bug. + +Fix Bugs +~~~~~~~~ + +Look through the GitHub issues for bugs. Anything tagged with "bug" and "help +wanted" is open to whoever wants to implement it. + +Implement Features +~~~~~~~~~~~~~~~~~~ + +Look through the GitHub issues for features. Anything tagged with "enhancement" +and "help wanted" is open to whoever wants to implement it. + +Write Documentation +~~~~~~~~~~~~~~~~~~~ + +eppy could always use more documentation, whether as part of the +official eppy docs, in docstrings, or even on the web in blog posts, +articles, and such. + +Submit Feedback +~~~~~~~~~~~~~~~ + +The best way to send feedback is to file an issue at https://github.com/santoshphilip/eppy/issues. + +If you are proposing a feature: + +* Explain in detail how it would work. +* Keep the scope as narrow as possible, to make it easier to implement. +* Remember that this is a volunteer-driven project, and that contributions + are welcome :) + +Get Started! +------------ + +Ready to contribute? Here's how to set up `eppy` for local development. + +1. Fork the `eppy` repo on GitHub. +2. Clone your fork locally:: + + $ git clone git@github.com:your_name_here/eppy.git + +3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:: + + $ mkvirtualenv eppy + $ cd eppy/ + $ python setup.py develop + +4. Create a branch for local development:: + + $ git checkout -b name-of-your-bugfix-or-feature + + Now you can make your changes locally. + +5. When you're done making changes, check that your changes pass flake8 and the + tests, including testing other Python versions with tox:: + + $ flake8 eppy tests + $ python setup.py test or pytest + $ tox + + To get flake8 and tox, just pip install them into your virtualenv. + +6. Commit your changes and push your branch to GitHub:: + + $ git add . + $ git commit -m "Your detailed description of your changes." + $ git push origin name-of-your-bugfix-or-feature + +7. Submit a pull request through the GitHub website. + +Pull Request Guidelines +----------------------- + +Before you submit a pull request, check that it meets these guidelines: + +1. The pull request should include tests. +2. If the pull request adds functionality, the docs should be updated. Put + your new functionality into a function with a docstring, and add the + feature to the list in README.rst. +3. The pull request should work for Python 3.5, 3.6, 3.7 and 3.8, and for PyPy. Check + https://travis-ci.com/santoshphilip/eppy/pull_requests + and make sure that the tests pass for all supported Python versions. + +Tips +---- + +To run a subset of tests:: + +$ pytest tests.test_eppy + + +Deploying +--------- + +A reminder for the maintainers on how to deploy. +Make sure all your changes are committed (including an entry in HISTORY.rst). +Then run:: + +$ bump2version patch # possible: major / minor / patch +$ git push +$ git push --tags + +Travis will then deploy to PyPI if tests pass. diff --git a/docs/source/changes.rst b/HISTORY.rst similarity index 78% rename from docs/source/changes.rst rename to HISTORY.rst index dd7b3ef3..e95a694d 100644 --- a/docs/source/changes.rst +++ b/HISTORY.rst @@ -1,9 +1,89 @@ +======= History ======= Changes ~~~~~~~ +2020-09-03 +---------- + +- Partial fix for #287 (deprecate python2) + - removed six in most places + - removed python2 in .travis.yml + - removed python2 in appveyor.yml + + +2020-06-20 +---------- + +- fixed issue #291 + - used cookiecutter template for eppy + - from https://github.com/cookiecutter/cookiecutter +- eases development, because the following commands are available from ``make``:: + + clean remove all build, test, coverage and Python artifacts + clean-build remove build artifacts + clean-pyc remove Python file artifacts + clean-test remove test and coverage artifacts + lint check style with flake8 + test run tests quickly with the default Python + test-all run tests on every Python version with tox + coverage check code coverage quickly with the default Python + docs generate Sphinx HTML documentation, including API docs + servedocs compile the docs watching for changes + release package and upload a release + dist builds source and wheel package + install install the package to the active Python's site-packages + + +2020-06-13 +---------- + +- fixed issue #289 + - Problem: E+ is unable to read numbers that are wider than 19 digits + - Solution: format these numbers in scientific notation + +2020-06-07 +---------- + +- fixed issue #281 + - Problem: pytest failing in python 2 + - Solution: Set the correct version numbers in the requirements.txt file + +2020-06-05 +---------- + +- fixed issue # 283 + - surface.azimuth calculates the azimuth from the surface coordinates + - surface.true_azimuth also include the effecto building azimuth ans zone azimuth + + + + +release r0.5.52 +~~~~~~~~~~~~~~~ + +2019-09-14 +---------- + +- fixed issue #245 + - Error handling errors in python 3 + +2019-08-17 +---------- + +- fixed issue #254 + - when running a simulation: + - Add expandobjects flag if any HVACTemplate objects are present in IDF + +2019-08-03 +---------- + +- fixed issue #251 + - Run black on the whole codebase. + - Added black --check . to the Travis config for Python 3.7 on linux for master and non-master branches, to fail if formatting inconsistencies are found. + release r0.5.51 ~~~~~~~~~~~~~~~ diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..965b2dda --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,11 @@ +include AUTHORS.rst +include CONTRIBUTING.rst +include HISTORY.rst +include LICENSE +include README.rst + +recursive-include tests * +recursive-exclude * __pycache__ +recursive-exclude * *.py[co] + +recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif diff --git a/README.md b/README.rst similarity index 67% rename from README.md rename to README.rst index 261330bc..0774a601 100644 --- a/README.md +++ b/README.rst @@ -1,17 +1,22 @@ -Eppy ==== -[![PyPI](https://img.shields.io/pypi/dm/eppy.svg)](https://pypi.python.org/pypi/eppy) - from PyPI +eppy +==== + + +.. image:: https://img.shields.io/pypi/v/eppy.svg + :target: https://pypi.python.org/pypi/eppy + +.. image:: https://img.shields.io/travis/santoshphilip/eppy.svg + :target: https://travis-ci.com/santoshphilip/eppy -[![Travis](https://img.shields.io/travis/santoshphilip/eppy/master.svg)](https://travis-ci.org/santoshphilip/eppy) - for Python 2.7 and 3.5 on Linux and OSX via Travis +.. image:: https://readthedocs.org/projects/eppy/badge/?version=latest + :target: https://eppy.readthedocs.io/en/latest/?badge=latest + :alt: Documentation Status -[![Appveyor](https://img.shields.io/appveyor/ci/santoshphilip/eppy/master.svg)](https://ci.appveyor.com/api/projects/status/github/santoshphilip/eppy) - for Python 2.7 and 3.5 on Windows via Appveyor -[![CodeCov](https://img.shields.io/codecov/c/github/santoshphilip/eppy/master.svg)](https://codecov.io/github/santoshphilip/eppy) - via CodeCov + +scripting language for E+, Energyplus Eppy is a scripting language for EnergyPlus idf files, and EnergyPlus output files. Eppy is written in the programming language Python. As a result it takes full advantage of the rich data structure and idioms that are available in Python. You can programmatically navigate, search, and modify EnergyPlus idf files using eppy. The power of using a scripting language allows you to do the following: - Make a large number of changes in an idf file with a few lines of eppy code. @@ -40,3 +45,10 @@ The documentation is at: to get a quick sense of how it feels to use eppy, take a look at +Credits +------- + +This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template. + +.. _Cookiecutter: https://github.com/audreyr/cookiecutter +.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage diff --git a/README.txt b/README.txt deleted file mode 100644 index 1bb658a0..00000000 --- a/README.txt +++ /dev/null @@ -1,31 +0,0 @@ -Eppy -==== - -Eppy is a scripting language for EnergyPlus idf files, and EnergyPlus output files. Eppy is written in the programming language Python. As a result it takes full advantage of the rich data structure and idioms that are avaliable in python. You can programmatically navigate, search, and modify EnergyPlus idf files using eppy. The power of using a scripting language allows you to do the following: - -- Make a large number of changes in an idf file with a few lines of eppy code. -- Use conditions and filters when making changes to an idf file -- Make changes to multiple idf files. -- Read data from the output files of a EnergyPlus simulation run. -- Based on the results of a EnergyPlus simulation run, generate the input file for the next simulation run. - -So what does this matter? -Here are some of the things you can do with eppy: - - -- Change construction for all north facing walls. -- Change the glass type for all windows larger than 2 square meters. -- Change the number of people in all the interior zones. -- Change the lighting power in all south facing zones. -- Change the efficiency and fan power of all rooftop units. -- Find the energy use of all the models in a folder (or of models that were run after a certain date) - -You can install from : - - -The documentation is at: - - -to get a quick sense of how it feels to use eppy, take a look at - - diff --git a/a.idf b/a.idf deleted file mode 100644 index fad1f3c1..00000000 --- a/a.idf +++ /dev/null @@ -1 +0,0 @@ - Version,8.7; \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 747d30a0..ec5ed2d2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,18 +6,6 @@ for: - /.*/ environment: matrix: - - PYTHON: "C:\\Python27" - PYTHONVERSION: 2.7 - ARCHITECTURE: "i386" - MINICONDA: "C:\\Miniconda" - ENERGYPLUS_VERSION: "9.0.1" - ENERGYPLUS_SHA: "bb7ca4f0da" - - PYTHON: "C:\\Python27-x64" - PYTHONVERSION: 2.7 - ARCHITECTURE: "x86_64" - MINICONDA: "C:\\Miniconda" - ENERGYPLUS_VERSION: "9.0.1" - ENERGYPLUS_SHA: "bb7ca4f0da" - PYTHON: "C:\\Python37" PYTHONVERSION: 3.7 ARCHITECTURE: "i386" @@ -37,19 +25,6 @@ for: - master environment: matrix: - - PYTHON: "C:\\Python27" - PYTHONVERSION: 2.7 - ARCHITECTURE: "i386" - MINICONDA: "C:\\Miniconda" - ENERGYPLUS_VERSION: "9.0.1" - ENERGYPLUS_SHA: "bb7ca4f0da" - - PYTHON: "C:\\Python27-x64" - PYTHONVERSION: 2.7 - ARCHITECTURE: "x86_64" - MINICONDA: "C:\\Miniconda" - ENERGYPLUS_VERSION: "9.0.1" - ENERGYPLUS_SHA: "bb7ca4f0da" - - PYTHON: "C:\\Python37" PYTHONVERSION: 3.7 ARCHITECTURE: "i386" @@ -97,4 +72,4 @@ install: test_script: # Test command. - - "python -m pytest eppy -v" + - "python -m pytest ./ -v" diff --git a/cleanup.py b/cleanup.py deleted file mode 100755 index f980036f..00000000 --- a/cleanup.py +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/env python -"""clean up .pyc from folders""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import sys, os, stat -from bsdopendirtype import opendir - - -def clean(path): - global count - try: - content = opendir(path) - except OSError: - print("skipping", path, file=sys.stderr) - return - for filename, smode in content: - if stat.S_ISDIR(smode): - clean(filename) - if filename.endswith("/__pycache__"): - try: - os.rmdir(filename) - except OSError: - pass - elif ( - filename.endswith(".pyc") - or filename.endswith(".pyo") - or filename.endswith(".pyc~") - or filename.endswith(".pyo~") - ): - os.unlink(filename) - count += 1 - - -count = 0 - -for arg in sys.argv[1:] or ["."]: - print("cleaning path", arg, "of .pyc/.pyo/__pycache__ files") - clean(arg) - -print("%d files removed" % (count,)) diff --git a/docs/.conf.py.swp b/docs/.conf.py.swp new file mode 100644 index 00000000..50d4bab7 Binary files /dev/null and b/docs/.conf.py.swp differ diff --git a/docs/2to3sh.sh b/docs/2to3sh.sh deleted file mode 100644 index 42173a90..00000000 --- a/docs/2to3sh.sh +++ /dev/null @@ -1 +0,0 @@ -2to3 -Wno ../p3/docs ./$1 \ No newline at end of file diff --git a/docs/HVAC_Tutorial.ipynb b/docs/HVAC_Tutorial.ipynb index e7dd9b80..38ef277b 100644 --- a/docs/HVAC_Tutorial.ipynb +++ b/docs/HVAC_Tutorial.ipynb @@ -1,921 +1,882 @@ { - "metadata": { - "name": "", - "signature": "sha256:8eadf8836383724ddd49bd2e1c1e4ce485cfe5bf0efaef0186e4fcdbc00a6412" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "HVAC Loops" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Conceptual Introduction to HVAC Loops" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy builds threee kinds of loops for the energyplus idf file:\n", - "\n", - "1. Plant Loops\n", - "2. Condensor Loops\n", - "3. Air Loops\n", - "\n", - "All loops have two halves:\n", - "\n", - "1. Supply side\n", - "2. Demand Side\n", - "\n", - "The supply side provides the energy to the demand side that needs the energy. So the end-nodes on the supply side connect to the end-nodes on the demand side. \n", - "\n", - "The loop is made up of branches connected to each other. A single branch can lead to multiple branches through a **splitter** component. Multiple branches can lead to a single branch through a **mixer** component. \n", - "\n", - "Each branch is made up of components connected in series (in a line)\n", - "\n", - "Eppy starts off by building the shape or topology of the loop by connecting the branches in the right order. The braches themselves have a single component in them, that is just a place holder. Usually it is a pipe component. In an air loop it would be a duct component.\n", - "\n", - "The shape of the loop for the supply or demand side is quite simple. \n", - "\n", - "It can be described in the following manner for the supply side\n", - "\n", - "- The supply side starts single branch leads to a splitter\n", - "- The splitter leads to multiple branches\n", - "- these multiple branches come back and join in a mixer\n", - "- the mixer leads to a single branch that becomes end of the suppply side\n", - "\n", - "For the demand side we have:\n", - "\n", - "- The demand side starts single branch leads to a splitter\n", - "- The splitter leads to multiple branches\n", - "- these multiple branches come back and join in a mixer\n", - "- the mixer leads to a single branch that becomes end of the demand side\n", - "\n", - "The two ends of the supply side connect to the two ends of the demand side.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Diagramtically the the two sides of the loop will look like this::\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " Supply Side:\n", - " ------------\n", - " -> branch1 -> \n", - " start_branch --> branch2 --> end_branch\n", - " -> branch3 ->\n", - " Demand Side:\n", - " ------------\n", - " \n", - " -> d_branch1 -> \n", - " d_start_branch --> d_branch2 --> d_end_branch\n", - " -> d_branch3 ->\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "In eppy you could embody this is a list\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "supplyside = ['start_brandh', [ 'branch1', 'branch2', 'branch3'], 'end_branch']\n", - "demandside = ['d_start_brandh', ['d_branch1', 'd_branch2', 'd_branch3'], 'd_end_branch']\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy will build the build the shape/topology of the loop using the two lists above. Each branch will have a placeholder component, like a pipe or a duct::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " \n", - " branch1 = --duct--\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we will have to replace the placeholder with the real components that make up the loop. For instance, branch1 should really have a pre-heat coil leading to a supply fan leading to a cooling coil leading to a heating coil::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " \n", - " new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy lets you build a new branch and you can replace branch1 with new_branch\n", - "\n", - "In this manner we can build up the entire loop with the right components, once the initial toplogy is right" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Building a Plant loops" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy can build up the topology of a plant loop using single pipes in a branch. Once we do that the simple branch in the loop we have built can be replaced with a more complex branch.\n", - "\n", - "Let us try this out ans see how it works." - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Building the topology of the loop" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# you would normaly install eppy by doing\n", - "# python setup.py install\n", - "# or\n", - "# pip install eppy\n", - "# or\n", - "# easy_install eppy\n", - "\n", - "# if you have not done so, uncomment the following three lines\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../'\n", - "sys.path.append(pathnameto_eppy) \n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.modeleditor import IDF\n", - "from eppy import hvacbuilder\n", - "\n", - "from StringIO import StringIO\n", - "iddfile = \"../eppy/resources/iddfiles/Energy+V7_0_0_036.idd\"\n", - "IDF.setiddname(iddfile)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# make the topology of the loop\n", - "idf = IDF(StringIO('')) # makes an empty idf file in memory with no file name\n", - "loopname = \"p_loop\"\n", - "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop\n", - "dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side of the loop\n", - "hvacbuilder.makeplantloop(idf, loopname, sloop, dloop)\n", - "idf.saveas(\"hhh1.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have made plant loop and saved it as hhh1.idf. \n", - "Now let us look at what the loop looks like. \n" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Diagram of the loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us use the script \"eppy/useful_scripts/loopdiagrams.py\" to draw this diagram" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "See [Generating a Loop Diagram](useful_scripts.html#loopdiagram-py) page for details on how to do this" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below is the diagram for this simple loop\n", - "\n", - "*Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity*" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", - "for_images = ex_inits\n", - "for_images.display_png(for_images.plantloop1) # display the image below\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAP7CAYAAABY8t0eAABAAElEQVR4AezdB7wTVfr/8QfpAouK\nKKAidsWGvS8KKouCIgiiIMsqiL0h1rWs5a+uvWNDVFAUdW24KmLvBXvHAva2KthF5n++Z3+TTUJy\nM8lNJu1zXi+8yWTmzDnvud6TZ+aUJoFLRkIAAQQQQAABBBBAAAEEEEAAgcgCi0Tekx0RQAABBBBA\nAAEEEEAAAQQQQMALEEzzi4AAAggggAACCCCAAAIIIIBAngIE03mCsTsCCCCAAAIIIIAAAggggAAC\nBNP8DiCAAAIIIIAAAggggAACCCCQpwDBdJ5g7I4AAggggAACCCCAAAIIIIAAwTS/AwgggAACCCCA\nAAIIIIAAAgjkKUAwnScYuyOAAAIIIIAAAggggAACCCBAMM3vAAIIIIAAAggggAACCCCAAAJ5ChBM\n5wnG7ggggAACCCCAAAIIIIAAAggQTPM7gAACCCCAAAIIIIAAAggggECeAgTTeYKxOwIIIIAAAggg\ngAACCCCAAAIE0/wOIIAAAggggAACCCCAAAIIIJCnAMF0nmDsjgACCCCAAAIIIIAAAggggADBNL8D\nCCCAAAIIIIAAAggggAACCOQpQDCdJxi7I4AAAggggAACCCCAAAIIIEAwze8AAggggAACCCCAAAII\nIIAAAnkKEEznCcbuCCCAAAIIIIAAAggggAACCBBM8zuAAAIIIIAAAggggAACCCCAQJ4CBNN5grE7\nAggggAACCCCAAAIIIIAAAgTT/A4ggAACCCCAAAIIIIAAAgggkKcAwXSeYOyOAAIIIIAAAggggAAC\nCCCAAME0vwMIIIAAAggggAACCCCAAAII5CnQLM/92R2BqhH4/fff7dFHH7W7777btttuO9thhx0q\nquy//fabXX/99fbqq6/acsstZ1tuuaUtvvji9s0339hmm20We1mL6fXtt9/avffeu1AdVEfVNVcq\nZllynYvPEUAAAQTKJ1CJf++ztWHt27e3pZde2lZZZRX705/+VD60Ip/5zTfftGnTptm6667rvy+l\nZ5/NgzY9XYr39SjAk+l6vOp1UmcFqTfffLOdf/759umnn1ZUrX/66SfbeOONberUqda/f3/r0KGD\nHXPMMbbaaqvZU089VZayFtNLNwV69eplV1xxhe2xxx528skn2xZbbGHLLrtspLoVsyyRTshOCCCA\nAAJlEajEv/eLLbaYde/e3Y4//njfht1www2moP/FF1+0Cy64wLp27Wp9+/a1p59+uixmxTzpe++9\nZ5dffrmNGzfOPv7444xZ06ZnZGEjAl6AYJpfhJoVWH/99e2AAw6oyPqpMdYXiKuuusp69+5tI0eO\ntAcffNBGjx5dtsC/2F66e7/TTjt5/+23395/+WjSpEmk69GYsnz11VcZn4pHOjE7IYAAAgjEKtCY\nv/elKqjaKj2l3Xrrrf0p9txzTxsxYoQdd9xxdt1119kbb7xhbdq08TeN//Wvf5WqGLHku9JKK9mY\nMWP8uZo1y95hlTY9lsvBSapQgGC6Ci8aRY4uEDYMUYO46Dk3bs+XXnrJFixYYHPnzk3J6IwzzvDd\nvFM2xvim2F7qEqcU/synKoWU5Y8//vBPET788MN8TsW+CCCAAAJlFCjk730cxc3WlbtLly42efJk\n35ts1113tRtvvDGO4pTsHIss8t9wIPyZ7URhWx7+zLZfpu2FXGPa9EySbKs0gey3oCqtpJSnbgTm\nz59vM2bM8Hd9NS7pjjvusPfff9922WUX22STTYriMG/ePLvnnntM44Q0hldPTjON5Z05c6Y99thj\npm7Zunuu/ZIDc3WJuvPOO22//fazRx55xO677z5bZpllbO+997bWrVtnLavyURf0v/71r6a72mH3\n5yWWWMIOP/xwf9xdd91l6n7Vtm1bGzVqlKnMuiOurmadO3e23Xbbze8X1auQsmr8tsqhpHqvs846\ntt5669mPP/5ot99+uy/LNttsY8svv7zfJ8p/VN6HHnrI1GhrbLjyf/vtt23o0KG26qqr5sxCXfY1\nHlv1UddxPdlX+vXXX23YsGH2wAMP2FJLLeXLqyfjsiIhgAACCBRXoJA2Jd8SFKOtjtpG5lu2li1b\n+qFMGrI1YcIE23333RNZZGunwh303ePzzz+3nj172r///W/fBg4ePNh/D9GN9ieeeMIP+frzn/9s\nm266aXiY//nOO+/47uWvvPKKbwP13ShMH330kd1222120EEH+afn+v6kLulqG9MDZc0p8/DDD5vq\noe83Ssnfb8I8c/1sbJuu/NVuP/PMM37eGH230dA32vRc8nxeMQIBCYEKEnANQTBw4MDA/Q8SuEAo\n2HHHHYP9998/cAFR4O5qBrfccktepX399dd9Xq47deI491Q4WHvttYNbb701+PLLL4Ozzz47cAFr\n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\nqgdteLVeTcqNQHkECKbL485Zq1xA45uvueYaU1dtdQt7//33M9boySeftBNPPNFuvfXWxOdff/21\n78699tprJ7bpRatWrUx3ym+++eaU7bneqHuaxkIHQWAPP/ywHXPMMXbxxRfbzz//nHKoyqyu3mGa\nP3++3Xffffb444/bF198YVdccYUdffTRpifY6enTTz/1x5588sk2Y8aM9I95jwACCCCAQFUIPPro\no6a2TO33nDlzfJmz3QCnDa+KS0ohESirwH/7tZS1CJwcgeoS+O6772yHHXbwgaue9O65556+Aiuu\nuGKiIr/++qv179/fB7gKtNVw68nz9ddf7wPvBQsWWOfOnRP7hy+WWmopU+OtwDhb4x7uq5+TJ0+2\ngw46yH755Rd79dVX7bfffrPPP//c9ORb51KgrDvuen3wwQfboosu6sdpKwA/5JBD7LbbbrOddtrJ\n/vjjD1t++eXtX//6l51zzjk2ZcoUGzRokD+VuoZrDPh+++1n7dq1swEDBtiIESPskksuSS4KrxFA\nAAEEEKhogeOOO85P9nn++eebbmyrXVZKb29pwyv6MlI4BCpLwH1pJyFQ9wLLLrts4MYvR3K46KKL\ngp49eyb2dcFycMMNNyTe77jjjkGLFi2Ct956y29zgXOw8847B+7//OCee+4J7rzzTv/aBdiJY8IX\nLkj3n3311Vfhppw/3ZeBwH0RCF577bXEvscff7zPZ/z48YltAwcODJZeeunE+1mzZvl9Bg8enNjm\nAvGgY8eOgTx+//33YN68eYG7SRC47ueJffbee29/3FNPPZXYFr6QoY5NTh999FHW/ZP34zUCCCCA\nAAJRBVxAHHTp0iXq7r79dV24g++//z5xzLXXXuvbJ9rwBIk3lW1ycjffg8033zx5E68RQOD/BOjm\nXVn3NihNFQisvvrq9sgjj/g72i7otRVWWMFcoJpS8jXXXNNWW201v013vPVUV2natGnWtm3bxHb/\nIuk/ekLcsmVLW3zxxZO2NvxSY6E1eYrOGSZ119Y2dWcLk/JNTjpOqUePHonNLti20aNH+0nQtGyX\nnkiru/iRRx5pBxxwgP+nJ9/qju6C8cRxvEAAAQQQQKCSBU4//XTbYIMN7E9/+lOimBtvvLF/nf5k\nmjY8QcQLBBDIIUA37xxAfIxAukCvXr3siCOO8N2h3VNmu+CCC+xvf/tb+m4p7zfddFPf3Vpjj5db\n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\ngQgCBNIRkNilrgSSA+np06fT06yurn7xK0swXXzTusiRQLouLjOVdALpgXSHDh1wQQABBKpCgEC6\nKi4ThYxRID2QXnzxxWM8O6eqRQHGTNfiVS1xnW644YbEZGO777676R8JgVoV6Ny5s6lrt55IE0jX\n6lWmXgjUnsDUqVMTk42NGDHC9I+EQL0LdOnSxZZYYgnTE2kC6Xr/bShO/Qmmi+NYV7l88cUXtuSS\nS9qll15aV/WmsvUpsP/++9tee+1FIF2fl59aI1C1AmqrdSPwiiuuqNo6UHAEii0wZswYGzVqFIF0\nsWHrOD+C6Tq++I2peqtWrWzw4MGNyYJjEagKgcMPP9yaNm1aFWWlkAgggECyQIsWLWirk0F4XfcC\nBx10EG163f8WFBeAMdPF9SQ3BBBAAAEEEEAAAQQQQACBOhAgmK6Di0wVEUAAAQQQQAABBBBAAAEE\niitAMF1cT3JDAAEEEEAAAQQQQAABBBCoAwGC6Tq4yFQRAQQQQAABBBBAAAEEEECguAIE08X1JDcE\nEEAAAQQQQAABBBBAAIE6ECCYroOLTBURQAABBBBAAAEEEEAAAQSKK0AwXVxPckMAAQQQQAABBBBA\nAAEEEKgDAYLpOrjIVBEBBBBAAAEEEEAAAQQQQKC4AgTTxfUkNwQQQAABBBBAAAEEEEAAgToQIJiu\ng4tMFRFAAAEEEEAAAQQQQAABBIorQDBdXE9yQwABBBBAAAEEEEAAAQQQqAMBguk6uMi1UsXff//d\nZsyYYYcddpjdc889tVKtktej0t0aKt+5555rl156acmNOAECCCCAQPEE5syZY5dddpmNGjWqeJnG\nlNMPP/xgd911lx111FExnbE0p3nzzTft7LPPtunTp5fmBFlyzdamv//++7bXXnvZxx9/nOVINiNQ\nnQIE09V53eqy1K+++qrdfPPNdv7559unn35alwaFVLrS3Roq34QJE+y6664rpNocgwACCCBQBgEF\no0888YSdeuqpdu+995ahBI07pcp88MEH25QpUxqXURmPfu+99+zyyy+3cePGxR68ZmvTZ86caddc\nc43pcxICtSRAMF1LV7PG67L++uvbAQccUOO1LH71Kt2tofI988wz9tBDD6WgfPXVVxm/oBF0pzDx\nBgEEECiLQNu2bW333Xe3TTbZpCznb+xJd911V9t4442tWbNmjc2qbMevtNJKNmbMGH/+uOuRrU2X\nq9rvvn37prhkatMzbUs5iDcIVJAAwXQFXQyKklsgbBSaNGmSe2f2SAhUulu28rVp08Zat26dqMcf\nf/xhe+yxh3344YeJbXqhgPvYY49N2cYbBBBAAIHyCejverW21YsssojpXzWnsPzhzzjrkq1NX3LJ\nJVOKkalNz7Qt5SDeIFBhAtV7263CIClOdoH58+f7sc4KjFZZZRW74447TGNndtlll6LduZ43b54f\nR60xQsstt5xtv/32/md6qdTN6LHHHrOffvrJdPdU+yU39hrLc+edd9p+++1njzzyiN133322zDLL\n2N57750S1KXnm+n9l19+adOmTTP91F1inW/FFVf0Y7HUBUt37zWeTGXXU1WNM+rcubPttttuPrso\nZSnUVmPPP/roI3+eli1b2sCBA00/n332WXvjjTds8cUXt5133jlTtTJuy1ZX7RylHhkzdRuV7913\n3+3HWf366682bNgwe+CBB2yppZby122nnXayt956y5dV11Hd2rp06WL9+/f3WWo4gLrsqQxbbLGF\n9e7dO+VUTz75pP3222+2xhpr2LXXXmtbb721fyKRshNvEEAAgToQKLQ9yZcmVzus/HK16Y1pVzKV\n9z//+Y/dcsst/kbthhtuaEEQpHw30DG52hN9//j888+tZ8+e9u9//9vefvttGzx4sP8usmDBAt/1\n/amnnrI///nPtummm6YU45133rGnn37aXnnlFd9W6ftRmHRddMNYQfFmm23mv0Mo76FDh9qqq64a\n7uZ/Pvroo/bwww/79lzfOZSSv+P4DRH+k61Nb8zviAz0vUrffTbaaCPL1Kb36dPHjjjiiIXaeX03\nUlL7rx5r+o6i70odOnRI1Obbb7+1G2+80fbff3/vL8uxY8dWdQ+DROV4UdkC7g8GCYG8BNykUMGy\nyy4b6RgXsAUuUAvc/wWBC3yCHXfcMXB/6AL3hzFwdy4D13hFyifc6fXXX/d5XXXVVeGm4KWXXgrW\nXnvt4NZbbw1cAxC4CTcC98c6cMFRYh+9cBOXBUOGDAlcIBu4xjxYZ511Ahc8BV9//bXfb9KkSYH7\nAx24J6HBvvvuG7iJMoIddtjBn891+Qpc0JWSX0Nv3B/1YIMNNgjcF4LANT6B6/IWTJ06NXHImmuu\nmWI4d+7c4E9/+lPgGsrIZcnHNt3txx9/DFQGXRd5JKfVV189cA118qYGXzdU16im6eWT2TXXXBO0\na9cuWHrppf35v/vuu+DKK6/0ZXbjwAL35SLQuV988cXABcpBx44d/Ta9V3rwwQeD0aNH+2vtxtr7\n3wn97im5J9uJa+vGxgXuxkGw6KKLBu4LjP88+T/6XdfvfHLS71J4rZK38xoBBBCoFIGLLroocDce\nIxUnn/YkUoZuJxdIprRzOi5XO6x9crXpUdsV5RUluRuygQvuAndzNXA3tQN3UzZwN5cDF6gmDm+o\nPVH77YI23zbp+47amWOOOSbYaqutgqZNmwbuprr/DqB91J7ou48LnBN5n3feef67iAs2gw8++CDo\n1q1b4Cbe9J+7ID9wQbPP291MDlzPrOCQQw7x7aK+R33zzTeJfFzvrMDdoA/cmHXfxm255Zb+uBtu\nuCGxT5QX2dr0fH5H0tt0vXfdvH153MR0vhiZ2nS1zZnaeRd4+7q5YNn/figv95Q7UL5KEydO9G24\nbPV7v+666/pzvfzyy/7z5P/oO4X2SU4HHnhg4G5yJG/iNQKRBXT3jYRAXgL5BNPKeNasWf6PmhrW\nMLm7tz74UcOixitqSv8DrT+wCv5OOOGElCzU4LRo0SLxh1aBtYJV/fEOkwJGBZPDhw8PN/nX7i5u\n8NprryW2HX/88X6/8ePHJ7bleqE/1O7udGI39yQ+SG7Q1BCk35Bwd5FTAjSVK1dZotqmu6lg7gm8\nr5carjC5O+++wQvfR/mZq65R6pGpfDq3vpiEwbTe60uWrtnVV1+tt4k0YMCAwPVISLzXTQzXC8B/\nqQg3ut4F/lj3ZMBvevfdd/17uSt4140YN04r3D3xk2A6QcELBBCoIgH9bY4aTKtaUduTqATpwXSU\ndjhqmx6lXYlaTje2O9AN2jApqFX7EQbTUdoTHdu+fXsflLuebz4rBdnNmzcPlH+4TTey9d3ETc4W\nni5YeeWVAzcfTOK92jPdyA/Tzz//7NuqbbbZJvF9KWy/3azjfje3wokP3L///vvwMP9AQe1l8neP\nxIcNvGioTY/6O5KpTXdPin09wmBaRcjUpmfapockJ554YqLUCuxVN/ckO7FNNxu07bbbbvPbXE+B\nxGfJLwimkzV4XQyB6h4Q4v6vIVW+gLp3K/Xo0SNRWPfHzNxTQ9/91t2JTWzP94W68Kqbb3qXKXUV\nUvddF3T5LDUDuAu6zTV2iVOoe9QKK6xg7i63uUbPb1dZNdbHPbVN7Hf00Uf7beo+FTXpXOrO5Bp8\nP+GGzqOu1PmkKGVpjG2/fv1892YtP+X+mPiiuUbXRowYkU8xvWtDdY1Sj2wnVNfzTClTt7Xkberq\n5b6A2JFHHuknrdPEdep+p+727suAz1LdwZVcbwlzTw/MPdm29PFcfgf+gwACCNSBQGPakyg8Udrh\nqG16Y9qV5LK6J86+27ALVBOb1ZaoG3LYpkRpT3Swu2Hv25hwng/Xs8oPO9LwtnCb6wHlu30nf+9R\nt2zNfK6kYVYuUDR3s9e/139atWrly6L2S99PlLp37+5/agkypdNPP91cbzhfBr/B/UeTqCmF9fBv\nIvynoe8vjfkdydaeZytjcrn1PcX1Oku056rvaqutZuqeH6awTQ+HqKkeJATiEGDMdBzKnCOjQDjW\nR7M2qrEpJKnhUdIYnOTkulf5txrDpEBRPzfffPPkXfxr7adGTQF52PCk76TGzz2d9EFx+mfZ3vfq\n1cuP+znnnHP8GOwLLrjA/va3v2XbPfL2qGWJYquGSstmaN1HrdutoFLjkVwXssjl0Y6F1DVqPbIV\nJLmRDfdJ3ubuivvx55dcckn48UI/w0lZFEiTEEAAAQQyC0RpTzIf+b+tUdvhKG36/3JNfVVIu+K6\nAftM1lprrZTM8m1PUg5OepMpgHRPq809oU7spXlZ7r//fj8/iOvR5gPyF154IfF5phdhuxXeCFc9\nNFt2ckquQ/L2XK8LadMb+zuSqazhNtej0I9X1xwz4XwomeoQtunhz0z7sA2BUgjwZLoUquQZSWD2\n7Nl+P03KVWhaYokl/KGa1CM5Lb/88qYGS5NU6A+yfj733HOmWSKTUxjE6/NsSZNk6KlmPuXUH/Oz\nzjrLT2CmiTMUsJ555pnZThF5e9SyRLXVhF5qyBX0KwDVE/nwznfUQhVS16j1yFaGsJFN/jx5m75o\naIIWTepGQgABBBAoXCBqe9LQGaK2w1Ha9GznKaRdCXulaVKr9BS2KY1pT8I8suWt7W4omX8yre8I\ngwYN8j2l0vdv6L0mBdOkqpnqoOOylSFbnoW06Y39HclUxnBbGByzPnW2K8b2cgsQTJf7CtTx+dW9\nSt2SOnXqVLBCuI5lehdsN+bZB1Ka+VJJ+2l2UHUTSk6aVVQzQzcUKCtQ/+WXX0zdoqMmdS/XzJXb\nbbedP6dmkXbjkBKHK2BVnvmmqGWJauvGbtmhhx7qZwrVU+pCnp7nqmumOkatR/qxYeOaflNE25O3\nuclH/J1/N849JQvd4XYTu6Rs4w0CCCCAQHaBqO1J9hz++0mUdjhqm57pXIW0K27yUp+V6pgtlbI9\nUc84dfHWkLCwK7i+O+ST9H1CK1LohvgXX3yRz6EZ9y2kTS/0dyRTm56+Td3nNVTOjbX2w7eSC61h\nemFX9+TtvEYgTgGC6Ti16/xcyXcVP/nkE/+kON+ntW5yDa/oZqv0P9XI/fWvfzUF08l/UB9//HHf\ndXyfffbx+51xxhl+qYjrr78+cRXUYKnx1Wdhlyl9qLu86hYeJjdLuF/qIp9gWuOdpk+f7rNQ1zM3\noUjKeFwtyeVmETc3Y7UP+vTTzcrplwxzM2mGp45clly26W6JE7gXY8aM8WPJVZ7kseLJ+zT0Oldd\ndWwu02zl05MGfabjlcLlMXTd1L1NS1+E29V7QEuuadkxXSstkaYlNtRDQNfTzeht+n3Yc889/TFh\nNzvVm4QAAggg8F+BXO1JVCf97dbf2bArcpR2OGqbrjLkaleilFPLK2psrb4bhDfltQSW5gHR8ltq\nY/S0OFd7ojqqrmqzkpO+qySP69Vn2i+8mR5+l5kyZYqfu0VLd6oc+h6gz/QQQD+Vv+aBCVPYbmlu\nEKWjjjrK/zzooIN8GfT95qabbvLb9H1I3y+ipihteq7fkUxtemgTll3lydSmZ9qmm/26HuqCrjHm\nejDiJiTz3w+6du3qqxa26fnUNaoJ+yHQoID7H5SEQF4C+c7m/dlnn/kZFjW7tWZU1pIRWjZKS1nl\nk1wXJj9zo/uFDtZbb71As1cqaaZLzYSppZ60PIKWzdISXC64TsneNVJ+yQn3JDZwa10HbqKtwI2p\nTdnHBZZ+Rkwtk6DZPbUkhRujE2hWznySZhd3DbRffkEzaWr5JS3HFSbNDuomTfMu7o6yn31SM1dr\nZspwdu0oZYlim80tLIt+aimwdIvkzxt6nauuueqRqXya+fTCCy8M3BqS3shNJBa4O+6+GO4pv9+m\nmU1d1zK/TctkubvzwWKLLeaP00Y39s7PxqrfF/1zY+IS10Azuev6a7tmu3UT42Rd+ozZvD0x/0EA\ngSoTyHc27yjtSRQCtcla7knLTOpvrNqI8O93lHY4Spueq12JUs5wH/d02M/CrbJqFm+tBqJ2X0tL\naeZplaeh9kTfD0455RRfVy3R6AJjvyym6q08tcSjroXaNXdDwW9TWxUu36llONV+aVZvrRqiJUM1\n47cLHP33GH1/UD6uF1+g2bvdwwi/jKO2uZsPwfPPP++r4m4c++Wh3IRlgVsr2y8TqjZU34+Sv3+E\n9c72s6E2PcrvSKY2XUuBhUtjqS2+++67E6fP1Kanb3M3B/x3Rzmp3vrpJocNXI80n4++97kha/4z\nLYGqMmRLzOadTYbthQrobhcJgbwECg2mTzvttMDdOQy0TJT+MBY7admrJ554ItCSCdmSzqs1Jd34\n6cDdGV5oNzXQWspCScG4u7u60D5RNoTLfekLRPJyXOnHajmmMKnBTk5RyhI2bI21dd3R/ZrNyeeP\n+jpXXaPUI+q5tJ+uobtDvdAhcs5000PrVoZB90IHRdhAMB0BiV0QQKDiBAoNphvbnuSCyNUOh8c3\n1KYXu13ROdUeu6fA/vS64Z0pNbY9yZSntqW3XZm+n2Q7Nnm72uPwO5B7kh24p8HJH0d63VCbXqzv\nHMkFydSmZ9qmY3RDQkuX6rtkoYlgulA5jssmwGze7hYXKT4BdXnW2JfkNG3aNNO/hpImyTruuOMa\n2sV3Vc40Y3fyQRqLo+UUoiR160pP+++/f/qmhd6rK3G4DJjGYzeUtBxTmLT8RbaUqSzp+2ayTd8n\n03vNAqox4+5OecrH+V6XXHVV5lHqkVKIDG90DfX7kJ6Slz1L/kyT0ZEQQAABBKILZGtP8m0DM50x\najusv+m52nTln6ldybf9Uj7J7XH6CiH6XKlU7YmW0UpOmWYBT/4822v3xNavPqLPNQlrcsr32uVq\n07P9jiSfM8rrTG16pm3KS+PKCxmOFqUc7INAoQIE04XKcVxkAc0yqeTuMmc8RsF18hqPmXbKFihl\n2rcx21RWjcPSGKVMjWmucurcyQ1yKcuivHPZZju/lt3QGsyafEXjj26//faFdi3WdcllutCJ2YAA\nAgggELtAlPYkzjawIYBc7Uqx2q+GylBtnxXj2kX5Hak2F8qLQGMFCKYbK8jxDQq4LlF+kgjtpIm8\nNOOklmPSLNJh6t69u+lfudPkyZP9Wo+uG4efzGP06NGJJ8xh2QYPHhy+LOnPKGWJYputkK4LlZ8A\nTkG1G6Nt3bp1W2jXYlyXKPVY6MRsQAABBBCIVSBqexJXG9hQ5aO0K8VovxoqQzV+1thrF/V3pBpt\nKDMCjREgmG6MHsfmFOjSpYtfEip5Waj0rkc5M4lpB80A7SYuS5yt0G5WiQwa8SJKWRpju9FGG/kZ\nRrV+Y7iGYyOKm/XQKPXIejAfIIAAAgjEItCY9iSWAiadhHYlCSPGl9X0OxIjC6dCwAim+SUoqYCe\nQCc/hS7pyRqZeVxdyaMUM0pZGmursVWlTlHqUeoykD8CCCCAQMMCjW1PGs69uJ/SrhTXM2pu1fQ7\nErVO7IdAMQRYZ7oYiuSBAAIIIIAAAggggAACCCBQVwIE03V1uaksAggggAACCCCAAAIIIIBAMQQI\npouhSB4IIIAAAggggAACCCCAAAJ1JUAwXVeXm8oigAACCCCAAAIIIIAAAggUQ4BguhiK5IEAAnUl\nEK61WVeVprIIIIAAAgjUoABteg1e1BirRDAdIzanQgCB6heYMmWKXXXVVbb99ttXf2WoAQIIIIAA\nAnUscP3119vEiRNp0+v4d6CxVSeYbqwgxyOAQN0IKJAePny4HXLIIXbSSSfVTb2pKAIIIIAAArUm\noEB65MiRNm7cODvuuONqrXrUJyYBgumYoDkNAghUt0ByIH3OOedUd2UoPQIIIIAAAnUskBxIn3HG\nGXUsQdUbK9CssRlwPAIIIFDrAjNnzrQbb7zRP5EmkK71q039EEAAAQRqWeDZZ5+1yZMn+yfSBNK1\nfKXjqRvBdDzONXcWTdYwderUmqtXcoWCILAmTZokb+J1BIFac5s3b55vdA877DAjkI7wC8AuCCBQ\nMQK//vprzbfVmbBrrR3KVMdSbat1ux9//NEmTZpkRx55pBFIl+q3qL7yJZiur+tdlNp27tzZvv32\nWxsyZEhR8iMTBCpdYNSoUQTSlX6RKB8CCKQIqK2eO3cubXWKCm8QMBszZgyBNL8IRRNgzHTRKOsn\no6FDh9qCBQtMdy9r7d8HH3xgO++8s7+YAwcOtDlz5lRkHVXAm2++ueLK9ttvv9lpp51miy66qK28\n8so2bdq0iitjIb+zV155Zf38D05NEUCgJgQGDRpUs211+t9xPW084YQTrFWrVrbaaqvZvffeW7Ft\nj365KrH9lql6Mpx66qnWpk0bW2GFFezWW2+tWMf034F83o8fP74m/h+nEpUhQDBdGdeBUpRZ4Oef\nf/azM6+xxhr29ttv2/333+8bkeWWW67MJauu0zdv3tyOPfZYe+utt2y99dazHXfc0XbaaSd7//33\nq6silBYBBBBAoCoEbrrpJlt99dXt/PPP94Hgq6++an369KmKsldaIVu0aOFntX7nnXdsiy22sF13\n3dV69eplr7zySqUVlfIgUDECBNMVcykoSLkEbr/9duvevbude+65dsopp/hGY7vttitXcWrivLoJ\noTvvM2bMsPfee8/7Hn/88aax9iQEEEAAAQQaK/Dyyy9bz549bffdd7dtt93WFACOHTvWdFOX1DiB\nLl26mGa7fvLJJ+2HH36w9ddf3/bff3/75ptvGpcxRyNQgwIE0zV4UalSNAE1vH/5y19sl1128Xdg\n9UT6iCOOoCGOxhdpL93R1hee008/3S688ELTk391GyMhgAACCCBQiIACuv32288HeBpa9Mwzz9iE\nCRNs6aWXLiQ7jmlAYNNNN/W+V199tenBwyqrrOLb8vnz5zdwFB8hUF8CBNP1db2prRPQXdajjjrK\n1l57bfv888/t0Ucf9TM7arIWUvEFmjVrZpoJWzcrtt56axs8eLDpyf+bb75Z/JORIwIIIIBATQr8\n8ccfdvHFF/uA7o477rBrrrnGPzndaKONarK+lVIprWry17/+1T/518RdmgV73XXX9cPhKqWMlAOB\ncgoQTJdTn3PHLqC1gjW2ShNKaZmjF154wbbaaqvYy1GPJ+zUqZNde+219vjjj/uuYmqMx40bZ1p6\nioQAAggggEA2gQcffNB69Ojhu3GPHj3a35wdMWIEy1dmAyvB9rZt2/peZq+//rq/oaFx6ZoTZdas\nWSU4G1kiUD0CBNPVc60oaSMENCGJnooOGzbM+vbt6++wHnjggda0adNG5MqhhQhsvvnm9vzzz9sF\nF1zgu+Zp5lWt+UhCAAEEEEAgWeDDDz/0k2D17t3bunXrZq+99pqdeeaZ1q5du+TdeB2jwEorreS7\nfE+fPt1PLrrmmmv63n7cGI/xInCqihIgmK6oy0Fhii3w/fff2yGHHOJnltaM3RpbpafSSy65ZLFP\nRX55CCyyyCJ+zJvGrevOtrqQqYeAxleTEEAAAQTqW0CTVWqpK82zoQD6nnvusbvuuss/Ea1vmcqp\nvSZ9U5utXn5XXXWVvzbqeq8lqkgI1JMAwXQ9Xe06qqv+mOuP+qqrrmrq2n355Zfb008/bYytqqxf\ngg4dOpjWe3z22WdNE5pssMEGph4D3377bWUVlNIggAACCMQiEC51pd5LWvNYPcvUo4xUeQLq3ac2\n+9133/U9CNQFf+ONN/Zj2SuvtJQIgdIIEEyXxpVcyyigLsSbbbaZ6Y/6kCFDfJfuvffem7FVZbwm\nuU6tIFpLcOju9tSpU/1NEL1esGBBrkP5HAEEEECgBgRY6qp6L+ISSyzhJ4d76aWXrH379n6FFA2r\n+/jjj6u3UpQcgYgCBNMRodit8gW+/vpr22effWyTTTaxFi1a2MyZM+2iiy6yxRZbrPILTwn9zY6R\nI0f6mx9qhLX0iZbl0FNrEgIIIIBAbQqw1FXtXNe11lrLHnjgAfvXv/7lewNqTpRTTjnFfvnll9qp\nJDVBIE2AYDoNhLfVJ6DlMi699FL/NHPatGl2/fXX++Wu1llnneqrDCX2d7XPP/98e/HFF61NmzY+\noFbPgq+++godBBBAAIEaEWCpqxq5kBmqMWDAAHvjjTfs73//u/3zn//0q6jccsstGfZkEwLVL0Aw\nXf3XsK5r8MQTT9iGG25ohx56qI0aNcovl7HHHnvUtUmtVF53uB966CE/5v2+++7zN0vU00BfwEgI\nIIAAAtUrwFJX1Xvtopa8ZcuWdswxx/jeZj179vTD7rSqChONRhVkv2oRIJiulitFOVMEPv/8c9Ma\nk1tuuaV17NjRT1Ciu59aB5FUWwK77babv0my77772hFHHGHrr7++73lQW7WkNggggEDtC7DUVe1f\n4/Qadu7c2a699lrf7VvdvdWGqz3X0DwSArUgQDBdC1exjurw+++/+2UYNEv3o48+arfeeqvdf//9\npnE5pNoVUHfv008/3d806dKli+kut8ZVf/rpp7VbaWqGAAII1IiAlro68cQTWeqqRq5nIdXQLN9P\nPfWUTZw4MbHMmYZ0aSUPEgLVLEAwXc1Xr87KPmPGDFt33XX9GJzDDjvM3nzzTRs4cGCdKdR3dXUT\n5d///rfdfvvtvlHWTRT1SNBNFhICCCCAQOUJhEtdKXBiqavKuz5xlqhJkya25557+t5m+++/vx19\n9NG29tpr27333htnMTgXAkUVIJguKieZlUJgzpw5NnjwYNt2221tlVVW8ZNa/OMf/7DWrVuX4nTk\nWQUCO++8s/89GDdunJ100km+MVYPBRICCCCAQGUIsNRVZVyHSiyFhuSddtpp/qFI9+7d/Tri/fr1\n8+OrK7G8lAmBhgQIphvS4bOyCvz666/+j+0aa6zhJ6y455577I477rAVVlihrOXi5JUh0KpVKzvh\nhBN8UK3GuE+fPr6nwuzZsyujgJQCAQQQqEOBcKmrDTbYwH777Td75plnbMKECbb00kvXoQZVbkhA\n3+c0XE89D/XgRBOP6ib53LlzGzqMzxCoKAGC6Yq6HBQmFLj77rttzTXX9ONktbTCa6+95u9chp/z\nE4FQoFu3bnbbbbeZZvzWUhy6+XLyySezrmUIxE8EEEAgBoH0pa4UQD/55JO20UYbxXB2TlHNAr16\n9fLLYWoowDXXXON7IV599dW2YMGCaq4WZa8TAYLpOrnQ1VLN9957z9TVp3///n7Jq7feessvrdCi\nRYtqqQLlLJPA9ttv7ycoU7fvs846y/S0Wj0ZSAgggAACpRVgqavS+tZD7k2bNjWNo3733XdNq3ho\nxm/diHn88cfrofrUsYoFCKar+OLVUtE106eeQOtptJbOUMM8ZcoUW3bZZWupmtSlxALNmze3I488\n0k9ustlmm9mAAQN8jwY1ziQEEEAAgeIKsNRVcT3JzWzxxRe3Cy+80A/v69Chg2211Va2++6720cf\nfQQPAhUpQDBdkZelvgp1yy232Oqrr24XX3yxnXHGGfbSSy/ZNttsU18I1LaoAlo+a/LkyfbII4/4\n5bM0DuuYY46xH3/8sajnITMEEECgHgVY6qoer3q8dVbvMk0sqh5mzz//vP+eqMlnf/7553gLwtkQ\nyCFAMJ0DiI9LJ6DxrZqhe8iQIabxMm+//bYdeuih1qxZs9KdlJzrSuDPf/6zzZw5084++2wbP368\nb4y1TAsJAQQQQKAwAZa6KsyNowoT2Gmnnez111/365Sfc845vh2/+eabC8uMoxAogQDBdAlQybJh\nAc3SOHbsWL9m9LfffmtPPPGETZw4kZk+G2bj0wIFNA7roIMO8ktuaFy1uoup54MmtSMhgAACCPx/\n9s4E7qpp///fBo1U6kaEwjULZciNKwppQChCQqXIfGWe4q+Lm3l2XVxkzHAR11zmoYvMJCIlJUOl\nWe3/+qx+69hnP+ecPT9nD5/1ej3P2WfvtdZe672+Z33Xd43eCPCoK2+c6Ct6Atg3B0u4pkyZIt27\nd5cBAwYIOsvff//96F/GGEnAJwEa0z6B0XtwApZlyT333CObbbaZ3HXXXXpa96RJkwRrW+lIIG4C\nrVu3FuwO+tZbb+np3h07dtQzIebNmxf3qxk/CZAACaSWgDnqqlOnTjzqKrWlmI2Et2nTRh+zhuPW\nfv/9d71R7bBhw+THH3/MRgaZi1QSoDGdymJLX6KxDhqbSBx11FF6Uyj0Lg4fPlzq1qUIpq80053i\nnXbaSRvUN998s15Xjc4dzIxAZw8dCZAACZDAKgLOo65wZBGPuqJ0JIEAdvnGrMa7775bnn76aX2U\n1lVXXSXLly9PQvKYhpwRoCWTswKv7ez+/PPPcvzxx8v222+vjRVsIgEjpmXLlrWdFL6PBAoE0Ikz\ndOhQPWWsX79++rpLly7y7rvvFvzwggRIgATySoBHXeW15NOT7zp16sjhhx+u99vBUq5zzz1XOnTo\noI3r9OSCKc0CARrTWSjFBOZh5cqV8s9//lM23XRTeeSRR/S0HJwViKm1dCSQFAI4ggO7yMOIxsZ3\nGLXG2ZaY1khHAiRAAnkj4DzqChs/XX755bLGGmvkDQXzmxICTZs2lf/3//6ffPbZZ9qY7t27t/Tq\n1Usb2SnJApOZcgI0plNegElMPtakwijBiPSgQYP06N+RRx4p6EWkI4EkEth2223l1Vdf1Wv5n3ji\nCd0JhBkU6BSiIwESIIGsE8BRVxdccIFsscUWenNGTJ198skn5c9//nPWs878ZYRA+/btZdy4cTJh\nwgR9JCZGqbHZLfdFyUgBJzgbNKYTXDhpS9qcOXNk8ODBgumyzZo10+dFYw0LrulIIA0EBg4cqHuz\nIccnn3yy3twEawTpSIAESCCrBMxRV9dee61ccskl8tFHH0nPnj2zml3mK+MEdt99dz3b7LrrrtNr\nqjfZZBO57bbb2Dme8XKvZvZoTFeTfkbejR0VUWlhSvfzzz8vDzzwgGC91VZbbZWRHDIbeSKA6Yxj\nxowRHAPTqlUr2XXXXQUzK3744Yc8YWBeSYAEMk6AR11lvIBznD0ciYklW19++aUcdthhMmLECL13\nzyuvvJJjKsx6XARoTMdFNifxvvzyy3od9Omnn64rq88//1wOPvjgnOSe2cwyAUx3ROcQpo1NnDhR\nH+l29dVX6+M4spxv5o0ESCDbBMxRV9gYdNmyZYJjhu644w5Ze+21s51x5i53BFq0aCHXXHONfPjh\nh1q+u3btKocccohMnz49dyyY4fgI0JiOj22mY545c6Yceuihguk0G2ywgWCTkr///e+CjSDoSCBL\nBA466CC9sclJJ50kZ599tmB9NWZe0JEACZBAmgg4j7qCAc2jrtJUgkxrUALoHH/mmWf0PgDvv/++\nbL755nLhhRcK9gqgI4GwBOqos1V5uGpYijkKj15sjM5hXdVaa62le/z23XffHBGo/axef/31csst\ntxS9eOrUqdKmTRtZffXVC/ex+cZTTz1V+M6L6Al8/fXXei31+PHjpX///nLllVfK+uuvH/2LGCMJ\nkAAJREgAHYDYB2LKlClyyimnyHnnnccduiPkWy4q6u9yZKp3H+1YLE3EDuDNmzfXu9VjcIiOBIIS\nqB80IMPljwB69aCMv/vuOz1Ch6ndjRo1yh+IWs7xggUL5NNPP63xVuc0JfaL1UAU+Y2NNtpI92xj\np1v8FtC7jbMtsWNow4YNI38fIyQBEiCBMARw1NXIkSP1EZV9+vSRxx57jDt0hwHqMyz1t09gteC9\nQYMG+jdxxBFHyDnnnCPYePTGG28UbMCHpQ90JOCXAKd5+yWWMf/opcaUl0pu2rRpcsABB+jdPbfe\nems95fX888+nIV0JWoTPBgwY4Bobzkg+6qijXP3RQzQEcIblxx9/rA3p0aNHC34XMLAruV9++UWe\ne+65Sl74jARIgARcCcyePVsvrarkkUddVaJTe8+ov2uPtd83YY+A22+/Xd555x0dFEe6Dh06VPD7\nquRw1BbOtKYjAUOAxrQhkcPPGTNmyC677CLdu3cveQ7f4sWLZdSoUbLlllsKNhaDIfDII49Iu3bt\nckirelnGaCh6Syud040d1b0o7erlIntvxkg0erXx2+jYsaP07t1b9ttvP8FU8FLuhBNOkB49esj9\n999f6jHvkQAJkIArATTk//rXv2rdjQ66Uo5HXZWiUp171N/V4e7nrWhfvfbaazJ27FjdzsXJNFdc\ncYXenK9UPBi42G677QpGeCk/vJczAlgzTZc/Ar/99puljq6y1Iim/lObKxVBUFPBLLUG11LHBFnq\nmCBLrTEpes4vtUtATT+y1FEP2N+gxp8ysq3OnTvXboL4thoEXnzxRUt1PFnKyLbUekRr4cKFBT+v\nvvpqodxWW20168033yw84wUJkAAJeCGwfPlyS236WdDbxx9/fFGwyZMnW7vttpsFnXD00Udb6ji/\nouf8Uh0C1N/V4R7krdDbF1xwgdW4cWNLnU9tPfnkk0XRTJgwQety/MZatmxpqWUURc/5JZ8EJJ/Z\nzneuV65caalNw7RCNsZZ3bp1rY8++sj64osvLDV6piuLww8/3Pr+++/zDSshuZ81a5ZuIJnysn/C\nyFbrfRKS0nwnA43dq666ymrWrJmldrm3Hn74YUvNGtAdV6YzBL81KOFvv/0237CYexIgAV8EhgwZ\nUtSpigY99PbcuXMtdaauhbpl5513ttS0VV/x0nO8BKi/4+UbR+zQz+qYV90WRptY7VujdbnaFbzw\nG8RglBrFtn799dc4ksA4U0SAu3krqyRv7owzztC7ECujupB1rLnF0QHKmNaf2IESU8nokkNgjz32\nkFdeeUXs5YbUqQaUqBEIad26dXISm/OUoDzOPPNMueeee6Rbt276KC2lFwpU8HtTvd56mph9R/aC\nB16QAAmQgI0App1i00+7Qz2CKapffvml3gDxsssuE2yqpIxsuzdeJ4AA9XcCCiFAEtDmwmaj2CMF\nbeKJEydiELIQE36Du+66qzz//POCa7p8EuCa6ZyV+1133SVq2nYNgwxrblUPtwwePFjeffddGtIJ\nlItBgwbVSJUa7dTGGg3pGmiqegPHluG3hiO01JTuIuWLhOH3hgaw6vmu8VusasL5chIggcQR+M9/\n/iPoBHc61CNvv/223o0YHeHQETSknZSS8Z36Oxnl4DcVatmEbhOj3Yx11XZDGnHhN6iWccnw4cP9\nRk3/GSJAYzpDhemWFfzg1TSxst6ghB999FFZsmRJWT98UD0CBx54oB6FtqcAo9SllLTdD6+rRwC/\nJ5xpWcpBCT/77LM1RptK+eU9EiCBfBJA53alzSWht9VyElF7MeQTUEpyTf2dkoIqkUzM/sOpNk5D\n2nhdsWKF3HHHHfq8anOPn/kiUG+UcvnKcj5zix2G1cYlsnTp0rIVAsjAkEbFsOeee+YTVIJzjTO9\n0bCaOnVqoQxxXiIqcZ5xnLyC+9///icjRoyoOPIM5YyR6/XXX186deqUvEwwRSRAAlUjgBM3MLUU\nx1w5l/fYE4XnmGLatWtX+21eJ4gA9XeCCsNnUnAMFnbwRtu4knvhhRdEbeyr/yr547PsEeDIdPbK\ntEaOcJTGPvvsI2qXwooKGQFRWWA6C86fpksegYEDBxbKEI0ntZGcqB3Xk5fQnKcIRjKmfaFH24uD\n35dfftmLV/ohARLIAQF14oY+Sk9tbuTaiIfexnn33333XQ7IpDeL1N/pLLsTTzzRsy5XG/fKW2+9\nlc6MMtWBCXhr6QWOngGrTQBK9qCDDtJTVDCttJzD2luzeQJ6wDECSpc8An369BH0cMOhPKGc6ZJH\nAOe/YgYBfn8wqN2mYML4RscIwtCRAAnkmwDqjX79+ulO7Up6G5QwOwkOy0meeeYZfc1/ySRA/Z3M\ncqmUqjlz5ugNRPE7xG/NbU8C/HZ79eql29yV4uWzbBHgbt7ZKs8auTnhhBPk5ptvLoxmwgMMZzTw\n1TE+umJQ50lLly5dZIcddtB/HTt2lKZNm9aIizeSQQC7tY4dO1aX0U8//cQp3skolhqpQKcUpoeh\nYwpTvt944w29IyiWWuD3h98hfoPGoTOrXbt22m+LFi3MbX6SAAnkjABGwm666aYivY1GPDrlzB4M\nqCOgs3fccUe9RATLRDbaaKOckUpfdqm/01dmM2fO1Hr5/fff15/Q57Nnz9YZwW8Suh5GtHHQ5WhX\nT5o0SajLDZVsf9KYznD53n777TJ06NCiHKKxDsMZChhHakAB82ieIkSJ/4LRh549e8rRRx+t10sn\nPsFMYIEAFK46r7JgYGO9NHbRtxvV3bt3F6y9oiMBEsgfgdtuu02GDRtWlHGcDgCdjT90dkNvr7vu\nukV++CUdBKi/01FObqn8+eefBcb15MmT5b333tPHXH711VeF/WwQfvfdd5cJEya4RcXnGSDAQ9Ey\nUIjlsoBpKYccckiR4dysWbNy3nk/JQSwORwMruOOOy4lKWYyDQGMRnfo0EH/HaU2NIHD7/STTz4p\nGNjY44COBEggnwRQH+DIPIw6w3DGX6tWrfIJI4O5pv7ORqG2bNlSt8PQFjNu8eLFunMcBjYMbex3\ngCVcblPDTXh+ppcAR6bTW3ZMOQmQAAmQAAmQAAmQAAmQAAmQQJUIcAOyKoHna0mABEiABEiABEiA\nBEiABEiABNJLgMZ0esuOKScBEiABEiABEiABEiABEiABEqgSARrTVQLP15IACZAACZAACZAACZAA\nCZAACaSXAI3p9JYdU04CJEACJEACJEACJEACJEACJFAlAjSmqwSeryUBEiABEiABEiABEiABEiAB\nEkgvARrT6S07ppwESIAESIAESIAESIAESIAESKBKBGhMVwk8X0sCJEACJEACJEACJEACJEACJJBe\nAjSm01t2TDkJkAAJkAAJkAAJkAAJkAAJkECVCNCYrhJ4vpYESIAESIAESIAESIAESIAESCC9BGhM\np7fsmHISIAESIAESIAESIAESIAESIIEqEaAxXSXwfC0JkAAJkAAJkAAJkAAJkAAJkEB6CdCYTm/Z\nMeUkQAIkQAIkQAIkQAIkQAIkQAJVIkBjukrg+VoSIAESIAESIAESIAESIAESIIH0EqAxnd6yY8pJ\n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\ngARIwD8BGtP+mTEECZAACZAACZAACZAACZAACZBAzgnQmM65ADD7JEACJEACJEACJEACJEACJEAC\n/gnQmPbPjCFIgARIgARIgARIgARIgARIgARyToDGdM4FgNknARIgARIgARIgARIgARIgARLwT4DG\ntH9mDEECJEACJEACJEACJEACJEACJJBzAjSmcy4AzD4JkAAJkAAJkAAJkAAJkAAJkIB/AjSm/TNj\nCBIgARIgARIgARIgARIgARIggZwToDGdcwFg9kmABEiABEiABEiABEiABEiABPwToDHtnxlDkAAJ\nkAAJkAAJkAAJkAAJkAAJ5JwAjemcCwCzTwIkQAIkQAIkQAIkQAIkQAIk4J8AjWn/zBiCBEiABEiA\nBEiABEiABEiABEgg5wRoTOdcAJh9EiABEiABEiABEiABEiABEiAB/wRoTPtnxhAkQAIkQAIkQAIk\nQAIkQAIkQAI5J0BjOucCwOyTAAmQAAmQAAmQAAmQAAmQAAn4JxCbMf3bb7/J448/LhdddJGvVCHM\nkiVLfIXx6/mqq66Sm266yW+wVPifPn263HzzzTJ06NBUpLe2EulXHt944w0ZNWqUjB49Wt55551Y\nk0l5jBVvIiP3K48vvfSSjBw5Uq688kqZOXNmrHmiPMaKN1GRQw6ffPJJOfPMMwvp+uSTT2TMmDHy\n+uuvF+65Xfzwww8yceJEN2+hnn/99dcyePBgmTFjRqh4khh4+fLl8uKLL8qpp54qTz/9dBKTWOtp\ncsqm3zqTOjyaImObsibHzz77TK644gp5/vnn9UM/svnrr79qPX7yySfLc889JytWrKj5gojusM6M\nCKSXaKyY3J133mn96U9/sjbbbDNPbxg/fry1/fbbWyrN1s8//+wpTFBPW221ldW5c+egwRMbbsGC\nBdZ9991nrbvuulbbtm0Tm85qJMyPPJ500klW8+bNrQ022EDLY506dazLL788tmRTHmNDm9iI/cjj\nZZddZm299dbWsGHDrDZt2lh169a1UF/G5SiPcZFNXrzjxo2z2rdvr+s6pO6LL76wDj/8cF3v3X//\n/a4JnjNnjnXaaadZjRs3tlBvxumQVrQPlLEZ52uqEve7776rf9/I32233VaVNCTtpU7Z9FNnUodH\nU5psU9bkOHXqVEsZwrouuuOOO7QHr7L5008/WRtvvLF1xBFHWN26ddO6fKeddqr5kojusM6MCKSH\naMSDn8Be9tlnH0/G9Lfffmvh79BDD9UCGrcxrXqRrEWLFgXOV5IC3nXXXTWSc8ABBwQypkvFVSPy\nFN/wIo+PPPKIdcopp1i///67tXLlSuuFF16wWrZsadWvX9/66quvYsk95bE0VsqjpWXugQceKABC\n4wYdPXvuuWfhXtQXlMfSRLMqjwcffLC10UYbFTL91ltveTam1awd64MPPtD+4zamkcAff/yxkM40\nX6AT4r///W9RFgxHv8Z0VuUScJyySR1eJDKxfCklT2xTFqP+9NNPdZ139913Fx54kU01a9SCQW3c\nxRdfrON57bXXzK3IP7NSZwKMUzaD1pml6t+w4GOb5o1R8Xr16oka1cNlRadGAAV/qoe8or+oHjZt\n2lRUT3pU0VUtngkTJsg555xT4/3K8PPE3R6wXFx2P2m/9iKPb775pp6+Y/x2795dDjnkEFHGtUya\nNCkWBJTHmlgpj6uYYPon5M+41VdfXVTDRpo1a2ZuRf5JeayJNMvyqGY6CP6MQ90H50V377jjjrL5\n5puboLF/qtlusb8j7hdgWudhhx0m33zzTdGroLfhvHA3AbMsl8hjKdl040MdbqTD/2c5eWKbspil\nqS/NJ56aNmOxzz++LVu2THr06CFqcKZwc9CgQfo6Tn2ehToTkErJZpA6s1z9WyiUgBerau+AgRFM\nWfPy8ssvy+TJk7UwQbHutddeNWLE+pVnn31WttlmGznooINqPI/iBtZSPfHEE3LcccfpNOF9arqz\nDBkypMh4Vr0SoqZJ6vVXeC8MJaxXQiNyk0020Wu9sdYAjVY1Hbwoad9//70888wzet3WLrvsIjC2\ngrj33ntPXn31VVEj5NKpUyfZe++9C0oUa9jUKKig4Yy1z2o0SlQPmKBhvc466+jGNQRr//3312Fu\nvfVWUVO7Zd99962YFDXKKm+//basueaaOo5WrVpp/0HiqviiKj4MK49nnHGGlmN7Fvr06aPXoYOb\nH0d5pDyGlUe1TKZI5NRsCV03XHrppUX3vXyhPFIeISdq5pc8/PDD2pjbYYcdtA4vZ6DAr5oqKPPn\nz5f+/fvH0uHtVf9C9tHWgF6EEQ/nVabht5z+wzOvDroYa5qxZnL99dfXehufcF709tKlS0VNo9dp\nWWuttbT+3m+//bReL5eGcm2OLOltk3c/slmuTUkdzjalkacoP1955RW9L0TDhg11mx1xl6s3S8lm\n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\n0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQ\nQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQpmsCff/5ps2fPtuOP\nP94eeOCBaAexl8Xd7bLLLrNrrrmGK4UAAgggUCYCCxcutGuvvdaGDx9ecjX66aef7P7777dTTjml\n5MqeXOBi1OODDz6wQw45xD755JPkovAagbISIJguq8tZWZV54403bOrUqXb55ZfbZ599VlmVz6K2\ncXe76aabbNKkSVnUkEMRQAABBOIioCDumWeesfPPP98efPDBuBQrcjlU5mOPPdZuv/32yMfEccdi\n1OPVV1+1iRMnmr53kBAoVwGC6XK9shVQr0033dSOOuqoCqhpbqsYd7cXXnjBHnvssdxWmtwQQAAB\nBIoi0KJFCxs8eLB17969KOfP9qT77ruvbbHFFta4ceNssyrq8cWoh8759ddfW+/evYtad06OQD4F\nSvsvQz5lyLskBMLGrUGDBiVR3rgUMs5uzZs3jwsT5UAAAQQQyJGA2p1SbasbNmxo+lfqqRj1aNOm\nTamzUX4EahUgmK6Vhw/zIbBkyRI/1llB09prr2333XefaVzN3nvvndM71+pe9NRTT9kvv/xiehq7\nyy671GjIM+2jcT7Tp0+3ESNG2BNPPGEPPfSQtW/f3g499FBr1qxZnXi++uormzlzpunnWmut5cu0\n5ppr+rFY77//vunuvcaT/fjjj76bs8Y2r7baarbffvv580Rxi7JPqkJr7PnHH3/sP2ratKn179/f\n9PPFF1+0efPm2Yorrmh77bVXqkNTbvv111/9dd1zzz19fTWmvV27dta3b19r1KiRffnll95VDfuA\nAQNs+eWXT+QjnxkzZvhxVn/99Zfdcccd9scff/jPV199dVtvvfXskUcesaVLl9omm2zi/4UHq7u/\nurLpum2zzTbWq1ev8CP77rvv7LbbbrORI0fav//9b3v99dftxBNPLPmnDYkK8gIBBBDIsUAu28B0\nRcvUDus4tYtqR95++21TO6D2XD/DVN+2Lzy++s9vv/3W7rzzTvvoo49ss802syAIanx/0DFqi9Sb\nSm2k2urWrVsnslJZv/jiC+vRo4dvc959913f3qncar/U9f25556z7bff3rbccsvEcXrx3nvv2fPP\nP+/bKbVl+n4UJtVVvbfUfm611Vb+O4TyHjRokHXp0iXczf+MWo8qB6V4U9+6qJ767qTvN5tvvrnv\n7v3KK6/4M+i7gK6jrr++EzRp0sQGDhzof4ZFqM2XNj1U4mfRBdwfCBICWQm4P/iB+0UO3AQjGfNx\nAVvgAjW/vwu0gj322CNwwU3ggsbA3bUOXOOVMY/kHd566y2f1w033JC8OXCTkgXuj3LggtTA/aEO\nNtpoo2CHHXYIFi1alNgv0z633npr4BrIwAXNwZFHHhm4STSC3Xff3Z/PdfkKXICXyCvTC/dHP+jW\nrVvgvhAEriEMXJe3YNq0aYnD1l9//aBDhw6J94sXLw5cgBm4htJvi+IWZZ/wBNXdfv7550Bl0HWU\nWXJad911A9dQJ2+q9fXjjz8euJskPq9LL700OPzww4NRo0YFyy23XLDPPvsE119/fXDAAQcEruEP\n3FOKwAXYPj+5TJw4MWjZsmWwyiqrJM4hC10/lW3+/Pl++7bbbhu48WuJffTi0UcfDQ477DB/vd1Y\n+sA13v53S5/961//8ufX79j48eODjTfe2Oc3d+5cfZxI+h3WefQ7nZxc98TABd7Jm3iNAAIIlJzA\nqaeeGriby5HKncs2UCd0N06rtHPalqkd1j6vvfZasOGGGwZ33XVX4G62BmPHjvV/32+++WZ9HNSl\n7fMHZPjPO++8E7jAL3j22WcDd1M7uO666wJ3czlwgWriyN9//z1wN78Dd4PWl891Zw7cE9hAbava\nLLUXakv0fUffcU477bRgu+22C1wAGbib6v47gPZRu692KbnNGTdunP++4gLR4MMPPww6d+4cuEk5\n/bldcOzbTuWtdnT//fcP/vGPf/g2U9+jvvnmm0QZo9QjsXOaF9nURRZyUVnd5HOJM6g91rYhQ4b4\nbe4GeOBuOFT5flabrw6K2qbrd12/88npoosuCtwDjeRNvEYgKwHdbSMhkJVAXYJpnUgBkf6QqmEN\nk7t7G7Rt29Y3LGq8oqbqQaGOUwOrQPT7779PZKNgMPmPd5R9dLD+2Cvge/PNNxN5nXXWWT6vCRMm\nJLZleqEATo1FmNyT+GDKlCnhW9/gJAfT+kCNQBhM630Utyj7KK9Ubu4JvK+Xgt0wuSe9vmzh+6g/\n3YzcPq/kGwZq0HQN9IUoTGeccYb/kuKeQIeb/JeP5GBaH6i8+jKjwNzNqhqcffbZif31Qjcp3FP+\nwE10k9jueg/487k7/36bvnjo/Hfffbd/7+60J/YNXxBMhxL8RACBchSoSzCt+ueqDVRe1YPpKO2w\ngird0K3+N19B5DLLLOPbBuUdte3TvpmSbp7qBnCYFNSqfUkOphXQn3POOeEuPqBX+7LrrrsmtrVq\n1coH5a53nN+mwNQ9fQ2Uf7hNN7JVDzc5W+K4v/3tb4GbDybxvl+/fv5GfrjB9fzybdmOO+7og31t\nD9tvtY9hilKPcN9MP+tbF9cDzJc1OZjWufR7teyyywbuCXzQp0+fQN8Bk1MU3yhtOsF0siqv8yVQ\n+gNA3F8vUmkJhGNi1UU3TC54MvdU0XfPdXdiw831+qnZvV3ja+6Pf+J4dX1aY401zN1pN9eg+RnA\nM+2jg1VWjfNyT20TebkvI37bk08+mdiW6YXOpa5OrgHxk3GoLOpKXZcUxS3KPunO6Ro034VaS1O5\nPzh+Nxfw29ChQ9MdknZ7aO+eJiT2WWeddfxr91Q4sU0u7stSldnY1b28euratau5L1PmAn278sor\nzd3QqLKLum+ra/nJJ5/sJ6XTxHTqXqfu9O5Llt9X3cyVwu7qOjcJAQQQQCC9QK7awFRniNJWa9iO\ne8Jaoxu0C1r98J8bb7zRZ51N25dcNtfDyXfbdoFqYrPGeauLcvJ4b7WTc+bMSbQ37mmnqY1Tt+ow\nafiS2qBwSJjrdeWHO2l4W7jN9djy3dWTv/e43l1+5nPlo2FW7sm7/ec//wmzNReE+rIob30/UVIb\nqaQlyJSi1sPvHOE/9a1LqvZcp7viiitshRVW8N3UtXSWvgMmpyi+tOnJYrwupgBjpoupz7mrCIRj\nfTTzoxqb+iQFgRrbs/XWW9c43HWxMjVY+jzTPmq8NXtnqqTGzz1F9kFxqs9TbevZs6eddNJJ5ro9\n+7HCakgOPvjgVLvWeVuymxrrVCl5n3S2+qLg7sb7scoam+a64PvxYK4LWaos67wtVaOqMVJK7u58\nxvwUKLvu/P6Gi8ZSh18idKB7cu3Hl1999dVp8wknjwl/pt2RDxBAAAEE0grUpw2snlmUtlrtsIJJ\nJY25TU5qz5XUlteWorR9yce7oT/+7QYbbJC8uUog7Xq9+RvAmuNE84DUJaVrB5PbQM3L8vDDD/u5\nQ1yPNh+QAL285gAAQABJREFUh+OM051L44+VwhvhUeqRLq+o26PUJV1eK620kr9hIEMtnZacovqG\nbXn4MzkPXiNQSAGeTBdSm3PVKrBgwQL/uSblqm9SQKiJQF566SVTwJWcwiBSf8Qz7aPP0yU9SdVT\nz7qUU3/sx4wZ4ycw06RiuhN7ySWXpDtFnbZHcYuyj07quk35CdYU9CtA1RP55KC1TgWrtnPyXf1q\nH1X5olL9s/C97tbr7ru+YI0ePTrc7H/qi4QmYNGkbSQEEEAAgfwJ1KcNrF6aKG212mG110qaqCs5\nderUyU9UVVtbrf2jtn1h3uq5pqRJxaqnsA0Lg7f6rJ0c5pEub21Xzyutya3vCG6eET9pZ/X9M72P\nUo9MeWT6PEpd0uWhick0IasmXtMNe32nClM2vmEe/ESgkAIE04XU5ly1Cqhbkpuky1ZdddVa98v0\noRsn5Gf+VBes5KQZI1deeWUfBEfZJ/nY5Ndq1H/77TdTt+ioSV3R1HjsvPPOvmuYZpl246gThytg\nVZ71SVHcouyjc7uxW3bcccf5mUL1lDpXT8/rU6/kY3SnWl8s3HhrP7O6bkwk36lX13Hd2Xfj2JMP\nMx3nJm6pso03CCCAAAL1F6hPG5jqbFHaYe2jVH1YlZvHxN881WzWtaWobV+YRzg0ScelS+ryrKFa\nbhywH16UvJ+GkoVdrZO3R32t3nMKpDUkLOwKru8OdU1R6lHXPHO5v5tkzQ+50lAyrdahFVPClE/f\n8Bz8RCCXAgTTudQkrzoJJN/V/fTTT/3T5Lo+rf3hhx/8OZO7CV188cV+WadbbrklUR41RvoCoM/0\nFDPKPuHBWoYiuSuZAjp1vapLMK3xTrNmzfJZqoucm1DEktde1PIQbqZxc7NZ+6BQP92snH7JMC3/\nkJyiuGXaJ5VbeI4jjjjCjzdXeZLHioefR/mpZUyU9AQjTOE1Sh5TFnZtS76RoGNUPrmH6ZhjjvFj\nptWtTNdOTysU6GuctJKWJNFyI+pKr0Bb18vN6G1uwjI78MAD/T7hueRKQgABBBCIJpCLNlBn0t91\n/R0OuyJHaYd1o/Sggw7ywXRykPr000/74WD6G5+cMrV9yfumeq3lHDWfhr4/hAG8llzUnCdaJkxL\nKspDN5v1XkO41GtKN+/dhGS+jh07dvR1VF2T20CdT+1gchuobdovbAPDdtKtVuHnd9HyniqHvgfo\nM7Wt+inDcMlI5aH2WilsE6PWwx+U4T86V33qomzD+ofl0zbdCJGZrqtuSuhJ/L333uvntNHnSpl8\ntY/KpESb7hn4TzEF3P8kJASyEqjrbN6ff/65n91Rs1trxmUtGaFlo5JneY5SINcNy8+c6f7/Cf7+\n978Hbpxv4jDXAPnlJNxT1sCtYx24SbQCN5428bleRNnHBZZ+KYujjz7az+6p5Zy0lJNm5axL0kyk\nroH2yzJpFu9jjz3WL+EU5qHZqF13J+/i1lH2M05rSQ3NDBrOrh3FLco+tbmF5dFSYNW9ws8y/dRy\nIuHSU66xDDRzuVsT089Ormul5dA0O7f2C+usZcw066ebXCxw63R6BzdG2i/TJXs3hixwAbI/tVuP\nMnDrbvp9dtttt8DdqPDb3dg6P9uqzqF/bsxbwlhLpykPbde5ZJAqMZt3KhW2IYBAuQjUdTbvXLSB\nmn1ayz1pmUn9DVZ7qL/jSlHaYR2v2a21fKOWRNLfc7Uj+nsdpihtX7hvpp/u6bCfhVtl1Szemjlc\n7b6WZNSs1CqPu0Hvv7u4XmW+TvopW61Moe8H//znP/12rVKiZRzVxqveylPLP2qFD83o7W4o+G1u\nMi6/EonKpmU4lZ9m9daqIVoyVDN+u8Dd11nfH5SP68XnV7dwDyMCtw6136a29+WXX/ZVjFKPTBbZ\n1EXfDcOlsdQez5gxwy9hqaW+3I1vb6jzT5482Zdds3uH33dq89UxUdt0ZvOWFinfArq7RUIgK4H6\nBtMXXHBB4O4s+mBLfzhznZSnG18buPHTgbvrmzL7TPvoi4SWslBSw+3urKfMJ9PGcLkvfYFwXY/T\n7q41NMOkBjs5hV8WanOLsk9ynuleu+7ogdbGLsX00UcfBW6cXL2KTjBdLzYOQgCBEhGoTzCdizaw\nNp5M7XB4rNrOZ555xi9DFW4Lf+aq7Qvz00+1x+4psN+kYDhVUkCspTP1XSaXqfoN+3TfYaKcM0o9\nouRTjH2y9SWYLsZVq7xzMpu3u71HKp6Aujyrm0/1NHLkyOqbarxX967k5bWq76DJMcLlmKp/Fr6P\nsk+4r7oRV0+aQEP/akuamdOtp+x30Zjt2pK7i534WMtfpEvp3JL3j7JP8v7ha80CqsnVtGxFcqpr\nXZOPLeRrTUxDQgABBBDIrUCqNrBQbbVqoiUXU63UUb2Wqdq++rRfye1x9dnEw3NqXHN9h0OFeaT6\nWX1ljlQzZ6c6LtW2dPXIxbVLdb5cbsuXby7LSF4IEEzzO1BwAXen0Z9Tk0OlS8lrPKbbJ7mBSLdP\ntttVVo2P0hilVI2pbgRkKmu45nIuyqI8anOLYpuqHJrMS0tPadISjWXS+KXqqZB1rX5u3iOAAAII\nFF4gUxuYqf1TiQvVVutc6dpH2i/pVE1xuXZVS8U7BEpPgGC69K5ZSZfYdcH1k3SoEprIy40P9ssx\naRbp5DRgwIDkt0V57cbx+LUeXYcVO+WUU+ywww6r8SRcSzXpX75TFLco+6Qrp+tm5yeAU1DtxiyZ\nG9NUY9dC1bXGidmAAAIIIFBwgShtYBza6ihtH+1XzV+fOFy7mqViCwKlJ0AwXXrXrKRL3K5dO78k\nVPKyUG48VizrpNm63SQnibJl080qkUk9X0Rxi7JPutNvvvnmfoZRre8YrvGYbl+2I4AAAgiUv0Cc\n2sDatLNp+2rLl88QQACBKAIE01GU2CdnAnoCXf0pdM4yz3FGueqenYtiRXGLsk9tZdFa1yQEEEAA\nAQQkEKc2sLYrkm3bV1vefIYAAghkEmCd6UxCfI4AAggggAACCCCAAAIIIIBANQGC6WogvEUAAQQQ\nQAABBBBAAAEEEEAgkwDBdCYhPkcAAQQQQAABBBBAAAEEEECgmgDBdDUQ3iKAAAIIIIAAAggggAAC\nCCCQSYBgOpMQnyOAQMULhOt3VzwEAAgggAACCJSwAO15CV+8mBadYDqmF4ZiIYBAPAROOOEEmzdv\nnvXq1SseBaIUCCCAAAIIIFBngYceesjGjBlju+yyS52P5QAE0gkQTKeTYTsCCFS8gALpK6+80iZP\nnmy9e/eueA8AEEAAAQQQKEUBBdL9+vWzgQMH2lVXXVWKVaDMMRUgmI7phaFYCCBQXIHkQHq//fYr\nbmE4OwIIIIAAAgjUSyA5kJ44caI1bEj4Uy9IDkopwG9TShY2IoBAJQtcfvnliSfSBNKV/JtA3RFA\nAAEESlnggw8+SDyRJpAu5SsZ37I3jm/RKFmpCcyYMcPatGlTasWmvAgkBBYtWuRfT5061aZMmWIE\n0gkaXiCAQJkIfPfddzZt2rQyqQ3VQCC9wNdff21z5861Aw44wAik0zvxSXYCBNPZ+XG0E2jdurU1\nbdrURo4ciQcCJS/QuHFjmzBhAoF0yV9JKoAAAtUF2rVrZx9++KEfN1r9M94jUI4Ce+21F4F0OV7Y\nGNWpQeBSjMpDURBAIIJAgwYNTE9PBwwYEGFvdkEAAQQQQACBOAjQfsfhKlAGBHInwJjp3FmSEwII\nIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCA\nAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfI\nhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAA\nAggggAACCCCQOwGC6dxZkhMCCCCAAAIIIIAAAggggECFCBBMV8iFppoIIIAAAggggAACCCCAAAK5\nEyCYzp0lOSGAAAIIIIAAAggggAACCFSIAMF0hVxoqokAAggggAACCCCAAAIIIJA7AYLp3FmSEwII\nIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCA\nAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfI\nhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAA\nAggggAACCCCQOwGC6dxZkhMCCCCAAAIIIIAAAggggECFCBBMV8iFppoIIIAAAggggAACCCCAAAK5\nEyCYzp0lOSGAAAIIIIAAAggggAACCFSIAMF0hVxoqokAAggggAACCCCAAAIIIJA7AYLp3FmSEwII\nIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCA\nAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfI\nhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAA\nAggggAACCCCQO4EGgUu5y46cEEAg1wLjx4+3CRMmVMl2/vz5tuqqq1qLFi0S2zt37mwzZ85MvOcF\nAggggAACCBRPgPa7ePacGYFCCTQu1Ik4DwII1E9g8eLFNm/evBoHL1y4sMo27otV4eANAggggAAC\nRRWg/S4qPydHoCACdPMuCDMnQaD+AoMHD854cOPGjW3YsGEZ92MHBBBAAAEEECiMAO13YZw5CwLF\nFKCbdzH1OTcCEQW6detmc+bMsdqePi9YsMA6duwYMUd2QwABBBBAAIF8C9B+51uY/BEorgBPpovr\nz9kRiCRw0EEHWcOGqf93bdCggXXv3p1AOpIkOyGAAAIIIFA4AdrvwllzJgSKIZD623kxSsI5EUAg\nrcDAgQNt6dKlKT9XkD106NCUn7ERAQQQQAABBIonQPtdPHvOjEAhBAimC6HMORDIUkAzd/fo0SPl\n02l1/R4wYECWZ+BwBBBAAAEEEMi1AO13rkXJD4F4CRBMx+t6UBoE0gqkevrcqFEj69mzp7Vt2zbt\ncXyAAAIIIIAAAsUToP0unj1nRiDfAgTT+RYmfwRyJNC/f/8aT6bV9TtVI52jU5INAggggAACCGQp\nQPudJSCHIxBjAYLpGF8cioZAskCrVq1s9913Nz2NDlOTJk2sX79+4Vt+IoAAAggggEDMBGi/Y3ZB\nKA4CORQgmM4hJlkhkG+BIUOGJCYi09rSffv2tZYtW+b7tOSPAAIIIIAAAlkI0H5ngcehCMRYgGA6\nxheHoiFQXaBPnz627LLL+s1LliwxNc4kBBBAAAEEEIi3AO13vK8PpUOgvgIE0/WV4zgEiiDQrFkz\n09grpebNm1vv3r2LUApOiQACCCCAAAJ1EaD9rosW+yJQOgIE06VzrSgpAl4gfBqttSubNm2KCgII\nIIAAAgiUgADtdwlcJIqIQB0FCKbrCMbuCBRbYKeddrJevXrZiBEjil0Uzo8AAggggAACEQVovyNC\nsRsCJSTQIHCphMpLURFAAAEEEEAAAQQQQAABBBAougBPpot+CSgAAggggAACCCCAAAIIIIBAqQkQ\nTJfaFaO8CCCAAAIIIIAAAggggAACRRcgmC76JaAACCCAAAIIIIAAAggggAACpSZAMF1qV4zyIoAA\nAggggAACCCCAAAIIFF2AYLrol4ACIIAAAggggAACCCCAAAIIlJoAwXSpXTHKiwACCCCAAAIIIIAA\nAgggUHQBgumiXwIKgAACCCCAAAIIIIAAAgggUGoCBNOldsUoLwIIIIAAAggggAACCCCAQNEFCKaL\nfgkoAAIIIIAAAggggAACCCCAQKkJEEyX2hWjvAgggAACCCCAAAIIIIAAAkUXIJgu+iWgAAgggAAC\nCCCAAAIIIIAAAqUmQDBdaleM8iKAAAIIIIAAAggggAACCBRdgGC66JeAAiCAAAIIIIAAAggggAAC\nCJSaAMF0qV0xyosAAggggAACCCCAAAIIIFB0AYLpol8CCoAAAggggAACCCCAAAIIIFBqAgTTpXbF\nKC8CCCCAAAIIIIAAAggggEDRBQimi34JKAACCCCAAAIIIIAAAggggECpCRBMl9oVo7w5E3jrrbds\nzJgx9swzz9Qpz2+++cYuuuiiOh1Tl50/+OADO+SQQ+yTTz6py2E527e+51+4cKFde+21Nnz48JyV\nhYwQQAABBBCQwNtvv21jx461WbNmeZCffvrJ7rvvPhs9enSdgGjDU3P9+eefNnv2bDv++OPtgQce\nSL0TWxFAoIYAwXQNEjZUgsB7773nA+KTTz7ZPv744zpVWcHiFVdcUadj6rLzq6++ahMnTrQ33nij\nLoflbN/6nF9fanRT4vzzz7cHH3wwZ2UhIwQQQAABBN5//3277rrrbNSoUYkbzXfeeae/eXvbbbfV\nCYg2PDWXvnNMnTrVLr/8cvvss89S78RWBBCoIUAwXYOEDZUg0KVLFzvmmGPqXNXrr7/e9EQ7n2nf\nffe1r7/+2nr37p3P06TNuz7nb9GihQ0ePNi6d++eNt/aPpg0aVJtH/MZAggggEAFC6y11lp2xBFH\neIHGjRv7n8OGDbPNNtusTiq04em5Nt10UzvqqKPS71DLJ7ThteDwUdkLEEyX/SWmgukEGjVq5D9q\n0KBBul2qbNfT7Dlz5lifPn2qbM/HmzZt2uQj28h51vf8+pIT1TMszGOPPWann356+JafCCCAAAII\n1BBo2PC/X1nDn9pB7XjUNoc2vAZpjQ3hjYqopsqANrwGIxsqTOC/t/cqrNJUt7IEvvrqK5s5c6bp\np+5u6+7rmmuuWQXh22+/tWnTptnixYttwIAB1rlz5yqfayzRmWeeaTfeeKOdc845VT6L+mbJkiV+\nPFLz5s1t7bXX9mO9ND557733rvJEd+nSpfbEE0+YnvZuvvnmPnuNn54+fbqNGDHCf/bQQw9Z+/bt\n7dBDD7VmzZpVKcIjjzxiL7zwgq244oq23377WevWrat8nulNqvOr7Gow9SVmq622svvvv9/effdd\nGzRokOkpf6akLmPq/q16bLPNNtarVy9/iPLca6+9/JchdeFr166d9e3bN1N2fI4AAgggUAECTz75\npD3++OPWtGlT33aryukCvWeffdbUNm600Ua2zz77VNHJRRuuDKO0xenaUI1HztT+6xy04VIgIVA6\nAjyZLp1rRUnrIfD999/b7rvv7gPkk046ye6++27TmODkpEBbwZ2CVU1komD7pZdeSt7FzjvvPDvu\nuOOsZcuWVbZHfaMGWIHtbrvt5ic9UxA8d+5cU9eobbfd1u666y6f1bx58/x+PXv2tFdeecVvmzx5\nsv9yoPKPHDnSbrnlFnv99dd9N/UddtjB9CVB6Y8//rDDDjvMFi1a5J+eK1Bdd911TXlGTanO/913\n39mBBx5ou+yyix/LrXM899xzds0115jOrxsRtSWV49xzz7W///3vtt5661m/fv0SXckU8OuLj74o\nrbPOOrb66qvXlhWfIYAAAghUiMAZZ5zh27sTTzzR37hVO6xUPZj+/fff/U3YCy+80N8U11AltVnJ\nKds2XHlFaYtTtaFR23/a8OQrxmsESkggICFQxgLjx48PevTokaihexIcTJkyxb93AXPg/lcNDjro\noMTnzz//fNCkSZNgiy22SGxzd8UDFwwm3ruZLoNVVlkl8T7qi/nz5/vzuSffiUO++OKLoG3btkGH\nDh0CFxT77S5Q9vu5mbET+w0ZMiRwXyCCN998M7HtrLPO8vtNmDDBb3OznAbuqXniczexmv981113\nTWyL8iLV+X/99Vef14477pgop7v54Le5p9SJbFU31SVMP/74Y+B6AQRugrJwU+BuJPjjXEDut7ng\nOnBBdOJzXiCAAAIIVLaAm006cF24gx9++CEBcfPNN/u2I2zD9cEee+wRLLPMMsE777zj93NPhQPX\n28nvpzyUctWGK68obXGqNjRK+x+HNtzNCePtbrjhBlU3oA33DPwHgVoF6OZdQjc+KGrdBfRkVl2m\nXQNo48aNszXWWMN3JU7OqX///om3mkCrW7du5oJq/4RX44euuuoqq+tsoYkMk16oe5fSJptsktjq\ngnL/NFl31D/88EPf/VtPaasnHauyrL/++omPTj31VD8jubrBaWKWyy67zE/GkjyBiJ72ZnpynMjw\nf1+kOv+yyy7rnwaom3w4pqpr167+CC2JlS7JzQXiplnTw+RuIPju9u7LhW255ZZ+c/UnDeG+/EQA\nAQQQqDwBLT+ptnj55ZdPVN7d5Pavq7cXahfV1inpMw2H0pJZ6nWmYUm5asOVf5S2OFUbGqX9pw2X\nMAmB0hMgmC69a0aJ6yCg7tLqHn3ppZf6btxa0urggw+uNYett97aB9Ma56sAXOOW1QU8TP/5z3/s\n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\nCSpNoFGjRtagQYPI1T7ttNPsjDPOiLx/fXds3ry5NWvWrL6HcxwCCCCAAAJlJdCw4X+/Boc/VTna\n8LK6xFQGgbwL/PdWXN5PwwkQKC+Br776ymbOnGn6qbvbm266qa255po1Kvnss8/aQw89ZBtttJHt\ns88+NT6/5557rEuXLrb++uvX+CzqBnVPmz59uo0YMcKeeOIJf7727dvboYceWiV4VllnzJhhhxxy\niM96yZIlNnv2bFOQvfbaa/ux3h988IHtvffe1r179yqn/+yzz+zBBx/0XeG22WYb69WrV5XPeYMA\nAggggEApCDz55JP2+OOPW9OmTX3brTKnuwFOG14KV5QyIlBcAYLp4vpz9hIU+P7772333Xf3jbGe\n9B544IG+FsnB9O+//259+/a1IAhMAep5553nx0TfcsstiRorQL377rtN2xYvXpzYXpcXkydPtmOO\nOcZ+++03e+ONN+yPP/6wL774wi6++GKf79NPP226465zHHvssbbccsv5YFoB+D/+8Q9//j333NP+\n+usv69Spkym4v/TSS+32229PBP/qGq4x4ArWW7Zsaf369bOhQ4fa1VdfXZeisi8CCCCAAAJFFVAv\nMN1Yvvzyy23RokW+XVaBqgfTtOFFvUycHIHSEnBf9kkIVLxAhw4dAjfbdSSH8ePHBz169Ejs64Ll\nYMqUKYn3e+yxR7DMMssE77zzjt+2dOnSYK+99grcX4bggQceSGwbPHhw4AJf//6HH37wn1977bWJ\nfKK+cBOXBe6LQPDmm28mDjnrrLN8fhMmTEhs69+/f7DKKqsk3s+fP9/vM2DAgMQ2ladt27aBPNwY\n7uDHH38M3E2CwM1wmtjHPfH2xz333HOJbeELGerY5PTxxx+n3T95P14jgAACCCAQVcAFxEG7du2i\n7u7bX9eFO1B7G6abb77Zt0+04aFI4E1lm5zczfdg6623Tt7EawQQ+F8BxkyX1r0PShsDgXXXXdd3\np9bs219//bWtscYa5gLVKiVTt+111lnHb9Mdbz3VVVLXcKVx48aZC6bNBbf+fTb/UTdtTZ6S3FX8\n1FNP9dvUnS1M6tKWnHSc0iabbJLYrPIcdthhvjv3hx9+6J9I//rrr3byySfbUUcd5f/pybe6trtg\nPHEcLxBAAAEEEIizwEUXXWTdunWz5ZdfPlHMLbbYwr+u/mSaNjxBxAsEEMggQDfvDEB8jEB1gZ49\n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\nQAABBEpNgGC61K4Y5UUAAQQQQAABBBBAAAEEECi6AMF00S8BBUAAAQQQQAABBBBAAAEEECg1gcal\nVmDKi0B1gYULF9rMmTPtlVdesRtuuKH6x0V//9prr9l9991nP/30k3Xr1s169eplDz30kA0ZMqQo\nZfvzzz/tySeftBkzZtjOO+9su+++e87K8eqrr9pLL71kb7/9tq222mq20UYbWc+ePa1p06Y5OUc+\ny56TApIJAggggEBKgTi21d999509+OCDNcrbqlUrW2WVVWzttde25ZdfvsbnpbpBbbO+L2288ca+\n/c9Uj++//94ee+wxe+ONN2zx4sW2wQYb2NZbb21dunTJdGjkz+P4exG58OyIgBPgyTS/BiUtoAD1\nmWeesfPPPz9lg1jsyk2aNMm23357W2mllWzPPfe0F1980bp27WojR44sWtHUKE6dOtUuv/xy++yz\nz3JSjq+//tr2339/GzRokLVu3dqOP/5422qrrUz132STTfw1ysWJ8lH2XJSLPBBAAAEE0gvEta1e\nYYUVfJt81lln+TZsypQpppu2c+bMsSuuuMI6duxovXv3tueffz595Urkk/fff9+uu+46GzVqlH3y\nyScZS33nnXd6m6eeesp22203GzFihC1dutR/pznppJPsl19+yZhHph3i+nuRqdx8jkAVgYCEQBkI\n7L333kH79u1jVZPffvstaNmyZXDYYYdVKde8efMCd9c7+PHHH6tsL+SbuXPnBu4PQXD99ddnfdpf\nf/01WHfddYP1118/+Pbbb2vk5xrdoGHDhsHTTz9d47MoG26++eYqu9W37F999VXw73//u0pevEEA\nAQQQKJxAHNtq1f7QQw/1beIdd9xRBePTTz8N9tlnn6BZs2bB3XffXeWzUnyj7x9q+92N7lqLP3Hi\nRL/f//t//6/GfgsWLAjcA4Jg1113rfFZlA3V23QdU9/fi1R5RSkD+yCQSwGeTFe5tcCbUhVo3Lix\nNWjQIFbF/+CDD8wFzKZuUslpvfXWs8MPPzxnT4WT8476Wl5KuTA788wz7Z133rFzzz3XVlxxxRpF\nOPvss013/w8++GBzgXeNz2vboO5lp59+epVd6lP2v/76yz91+Oijj6rkxdamT6wAABKKSURBVBsE\nEEAAgcIJxLGtVu3TdeVu166dTZ482dZZZx3bd9997bbbbiscVh7O5G5s+1zDn6lOoafWxx13nO/S\n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\nQAISkMA8BP4BHOQ4UBycDQsAAAAASUVORK5CYII=\n" - } - ], - "prompt_number": 5 - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Modifying the topology of the loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us make a new branch and replace the exisiting branch \n", - "\n", - "The existing branch name is \"sb0\" and it contains a single pipe component sb0_pipe.\n", - "\n", - "Let us replace it with a branch that has a chiller that is connected to a pipe which is turn connected to another pipe. So the connections in the new branch would look like \"chiller-> pipe1->pipe2\"" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# make a new branch chiller->pipe1-> pipe2\n", - "\n", - "# make a new pipe component\n", - "pipe1 = idf.newidfobject(\"PIPE:ADIABATIC\", 'np1')\n", - "\n", - "# make a new chiller\n", - "chiller = idf.newidfobject(\"Chiller:Electric\".upper(), 'Central_Chiller')\n", - "\n", - "# make another pipe component\n", - "pipe2 = idf.newidfobject(\"PIPE:ADIABATIC\", 'np2')\n", - "\n", - "# get the loop we are trying to modify\n", - "loop = idf.getobject('PLANTLOOP', 'p_loop') # args are (key, name)\n", - "# get the branch we are trying to modify\n", - "branch = idf.getobject('BRANCH', 'sb0') # args are (key, name)\n", - "listofcomponents = [chiller, pipe1, pipe2] # the new components are connected in this order\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we are going to try to replace **branch** with the a branch made up of **listofcomponents**\n", - "\n", - "- We will do this by calling the function replacebranch\n", - "- Calling replacebranch can throw an exception `WhichLoopError`\n", - "- In a moment, you will see why this exception is important" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "try:\n", - " newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')\n", - "except hvacbuilder.WhichLoopError as e:\n", - " print e\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Where should this loop connect ?\n", - "CHILLER:ELECTRIC - Central_Chiller\n", - "[u'Chilled_Water_', u'Condenser_', u'Heat_Recovery_']\n", - "\n" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above code throws the exception. It says that the idfobject `CHILLER:ELECTRIC - Central_Chiller` has three possible connections. The chiller has inlet outlet nodes for the following\n", - "\n", - "- Chilled water\n", - "- Condenser\n", - "- Heat Recovery\n", - "\n", - "eppy does not know which one to connect to, and it needs your help. We know that the chiller needs to be connected to the chilled water inlet and outlet. Simply copy `Chilled_Water_` from the text in the exception and paste as shown in the code below. (make sure you copy it exactly. eppy is a little nerdy about that)" - ] - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# HVAC Loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conceptual Introduction to HVAC Loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Eppy builds threee kinds of loops for the energyplus idf file:\n", + "\n", + "1. Plant Loops\n", + "2. Condensor Loops\n", + "3. Air Loops\n", + "\n", + "All loops have two halves:\n", + "\n", + "1. Supply side\n", + "2. Demand Side\n", + "\n", + "The supply side provides the energy to the demand side that needs the energy. So the end-nodes on the supply side connect to the end-nodes on the demand side. \n", + "\n", + "The loop is made up of branches connected to each other. A single branch can lead to multiple branches through a **splitter** component. Multiple branches can lead to a single branch through a **mixer** component. \n", + "\n", + "Each branch is made up of components connected in series (in a line)\n", + "\n", + "Eppy starts off by building the shape or topology of the loop by connecting the branches in the right order. The braches themselves have a single component in them, that is just a place holder. Usually it is a pipe component. In an air loop it would be a duct component.\n", + "\n", + "The shape of the loop for the supply or demand side is quite simple. \n", + "\n", + "It can be described in the following manner for the supply side\n", + "\n", + "- The supply side starts single branch leads to a splitter\n", + "- The splitter leads to multiple branches\n", + "- these multiple branches come back and join in a mixer\n", + "- the mixer leads to a single branch that becomes end of the suppply side\n", + "\n", + "For the demand side we have:\n", + "\n", + "- The demand side starts single branch leads to a splitter\n", + "- The splitter leads to multiple branches\n", + "- these multiple branches come back and join in a mixer\n", + "- the mixer leads to a single branch that becomes end of the demand side\n", + "\n", + "The two ends of the supply side connect to the two ends of the demand side.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Diagramtically the the two sides of the loop will look like this::\n" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + " Supply Side:\n", + " ------------\n", + " -> branch1 -> \n", + " start_branch --> branch2 --> end_branch\n", + " -> branch3 ->\n", + " Demand Side:\n", + " ------------\n", + " \n", + " -> d_branch1 -> \n", + " d_start_branch --> d_branch2 --> d_end_branch\n", + " -> d_branch3 ->\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "In eppy you could embody this is a list\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "supplyside = ['start_brandh', [ 'branch1', 'branch2', 'branch3'], 'end_branch']\n", + "demandside = ['d_start_brandh', ['d_branch1', 'd_branch2', 'd_branch3'], 'd_end_branch']\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Eppy will build the build the shape/topology of the loop using the two lists above. Each branch will have a placeholder component, like a pipe or a duct::" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + " \n", + " branch1 = --duct--\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will have to replace the placeholder with the real components that make up the loop. For instance, branch1 should really have a pre-heat coil leading to a supply fan leading to a cooling coil leading to a heating coil::" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + " \n", + " new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Eppy lets you build a new branch and you can replace branch1 with new_branch\n", + "\n", + "In this manner we can build up the entire loop with the right components, once the initial toplogy is right" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Building a Plant loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Eppy can build up the topology of a plant loop using single pipes in a branch. Once we do that the simple branch in the loop we have built can be replaced with a more complex branch.\n", + "\n", + "Let us try this out ans see how it works." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Building the topology of the loop" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# you would normaly install eppy by doing\n", + "# python setup.py install\n", + "# or\n", + "# pip install eppy\n", + "# or\n", + "# easy_install eppy\n", + "\n", + "# if you have not done so, uncomment the following three lines\n", + "import sys\n", + "# pathnameto_eppy = 'c:/eppy'\n", + "pathnameto_eppy = '../'\n", + "sys.path.append(pathnameto_eppy) \n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from eppy.modeleditor import IDF\n", + "from eppy import hvacbuilder\n", + "\n", + "from io import StringIO\n", + "iddfile = \"../eppy/resources/iddfiles/Energy+V7_0_0_036.idd\"\n", + "IDF.setiddname(iddfile)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# make the topology of the loop\n", + "idf = IDF(StringIO('')) # makes an empty idf file in memory with no file name\n", + "loopname = \"p_loop\"\n", + "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop\n", + "dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side of the loop\n", + "hvacbuilder.makeplantloop(idf, loopname, sloop, dloop)\n", + "idf.saveas(\"hhh1.idf\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have made plant loop and saved it as hhh1.idf. \n", + "Now let us look at what the loop looks like. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Diagram of the loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us use the script \"eppy/useful_scripts/loopdiagrams.py\" to draw this diagram" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See [Generating a Loop Diagram](useful_scripts.html#loopdiagram-py) page for details on how to do this" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below is the diagram for this simple loop\n", + "\n", + "*Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity*" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "# instead of passing chiller to the function, we pass a tuple (chiller, 'Chilled_Water_').\n", - "# This lets eppy know where the connection should be made.\n", - "# The idfobject pipe does not have this ambiguity. So pipes do not need this extra information\n", - "listofcomponents = [(chiller, 'Chilled_Water_'), pipe1, pipe2]\n", - "\n", - "try:\n", - " newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')\n", - "except Exception as e:\n", - " print e\n", - "else: # else will run only if the try suceeds\n", - " print \"no exception was thrown\"\n", - "\n", - "idf.saveas(\"hhh_new.idf\")\n" - ], - "language": "python", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAP7CAYAAABY8t0eAABAAElEQVR4AezdB7wTVfr/8QfpAouKKKAidsWGvS8KKouCIgiiIMsqiL0h1rWs5a+uvWNDVFAUdW24KmLvBXvHAva2KthF5n++Z3+TTUJyM8lNJu1zXi+8yWTmzDnvud6TZ+aUJoFLRkIAAQQQQAABBBBAAAEEEEAAgcgCi0Tekx0RQAABBBBAAAEEEEAAAQQQQMALEEzzi4AAAggggAACCCCAAAIIIIBAngIE03mCsTsCCCCAAAIIIIAAAggggAACBNP8DiCAAAIIIIAAAggggAACCCCQpwDBdJ5g7I4AAggggAACCCCAAAIIIIAAwTS/AwgggAACCCCAAAIIIIAAAgjkKUAwnScYuyOAAAIIIIAAAggggAACCCBAMM3vAAIIIIAAAggggAACCCCAAAJ5ChBM5wnG7ggggAACCCCAAAIIIIAAAggQTPM7gAACCCCAAAIIIIAAAggggECeAgTTeYKxOwIIIIAAAggggAACCCCAAAIE0/wOIIAAAggggAACCCCAAAIIIJCnAMF0nmDsjgACCCCAAAIIIIAAAggggADBNL8DCCCAAAIIIIAAAggggAACCOQpQDCdJxi7I4AAAggggAACCCCAAAIIIEAwze8AAggggAACCCCAAAIIIIAAAnkKEEznCcbuCCCAAAIIIIAAAggggAACCBBM8zuAAAIIIIAAAggggAACCCCAQJ4CBNN5grE7AggggAACCCCAAAIIIIAAAgTT/A4ggAACCCCAAAIIIIAAAgggkKcAwXSeYOyOAAIIIIAAAggggAACCCCAAME0vwMIIIAAAggggAACCCCAAAII5CnQLM/92R2BqhH4/fff7dFHH7W7777btttuO9thhx0qquy//fabXX/99fbqq6/acsstZ1tuuaUtvvji9s0339hmm20We1mL6fXtt9/avffeu1AdVEfVNVcqZllynYvPEUAAAQTKJ1CJf++ztWHt27e3pZde2lZZZRX705/+VD60Ip/5zTfftGnTptm6667rvy+lZ5/NgzY9XYr39SjAk+l6vOp1UmcFqTfffLOdf/759umnn1ZUrX/66SfbeOONberUqda/f3/r0KGDHXPMMbbaaqvZU089VZayFtNLNwV69eplV1xxhe2xxx528skn2xZbbGHLLrtspLoVsyyRTshOCCCAAAJlEajEv/eLLbaYde/e3Y4//njfht1www2moP/FF1+0Cy64wLp27Wp9+/a1p59+uixmxTzpe++9Z5dffrmNGzfOPv7444xZ06ZnZGEjAl6AYJpfhJoVWH/99e2AAw6oyPqpMdYXiKuuusp69+5tI0eOtAcffNBGjx5dtsC/2F66e7/TTjt5/+23395/+WjSpEmk69GYsnz11VcZn4pHOjE7IYAAAgjEKtCYv/elKqjaKj2l3Xrrrf0p9txzTxsxYoQdd9xxdt1119kbb7xhbdq08TeN//Wvf5WqGLHku9JKK9mYMWP8uZo1y95hlTY9lsvBSapQgGC6Ci8aRY4uEDYMUYO46Dk3bs+XXnrJFixYYHPnzk3J6IwzzvDdvFM2xvim2F7qEqcU/synKoWU5Y8//vBPET788MN8TsW+CCCAAAJlFCjk730cxc3WlbtLly42efJk35ts1113tRtvvDGO4pTsHIss8t9wIPyZ7URhWx7+zLZfpu2FXGPa9EySbKs0gey3oCqtpJSnbgTmz59vM2bM8Hd9NS7pjjvusPfff9922WUX22STTYriMG/ePLvnnntM44Q0hldPTjON5Z05c6Y99thjpm7Zunuu/ZIDc3WJuvPOO22//fazRx55xO677z5bZpllbO+997bWrVtnLavyURf0v/71r6a72mH35yWWWMIOP/xwf9xdd91l6n7Vtm1bGzVqlKnMuiOurmadO3e23Xbbze8X1auQsmr8tsqhpHqvs846tt5669mPP/5ot99+uy/LNttsY8svv7zfJ8p/VN6HHnrI1GhrbLjyf/vtt23o0KG26qqr5sxCXfY1Hlv1UddxPdlX+vXXX23YsGH2wAMP2FJLLeXLqyfjsiIhgAACCBRXoJA2Jd8SFKOtjtpG5lu2li1b+qFMGrI1YcIE23333RNZZGunwh303ePzzz+3nj172r///W/fBg4ePNh/D9GN9ieeeMIP+frzn/9sm266aXiY//nOO+/47uWvvPKKbwP13ShMH330kd1222120EEH+afn+v6kLulqG9MDZc0p8/DDD5vqoe83Ssnfb8I8c/1sbJuu/NVuP/PMM37eGH230dA32vRc8nxeMQIBCYEKEnANQTBw4MDA/Q8SuEAo2HHHHYP9998/cAFR4O5qBrfccktepX399dd9Xq47deI4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2B0BBBBAAIHaE1hppZVszJgxvmLNmjXzP2nDa+86UyMESi1AMF1qYfKvO4GmTZtakyZNGqz3GWecYeutt57/F+44fPhwUxezq6++OtxU1J9t2rSx1q1bFzVPMkMAAQQQQKBaBRZZ5L9fg8OfqgdteLVeTcqNQHkECKbL485Zq1xA45uvueYaU1dtdQt7//33M9boySeftBNPPNFuvfXWxOdff/2178699tprJ7bpRatWrUx3ym+++eaU7bneqHuaxkIHQWAPP/ywHXPMMXbxxRfbzz//nHKoyqyu3mGaP3++3Xffffb444/bF198YVdccYUdffTRpifY6enTTz/1x5588sk2Y8aM9I95jwACCCCAQFUIPProo6a2TO33nDlzfJmz3QCnDa+KS0ohESirwH/7tZS1CJwcgeoS+O6772yHHXbwgaue9O65556+AiuuuGKiIr/++qv179/fB7gKtNVw68nz9ddf7wPvBQsWWOfOnRP7hy+WWmopU+OtwDhb4x7uq5+TJ0+2gw46yH755Rd79dVX7bfffrPPP//c9ORb51KgrDvuen3wwQfboosu6sdpKwA/5JBD7LbbbrOddtrJ/vjjD1t++eXtX//6l51zzjk2ZcoUGzRokD+VuoZrDPh+++1n7dq1swEDBtiIESPskksuSS4KrxFAAAEEEKhogeOOO85P9nn++eebbmyrXVZKb29pwyv6MlI4BCpLwH1pJyFQ9wLLLrts4MYvR3K46KKLgp49eyb2dcFycMMNNyTe77jjjkGLFi2Ct956y29zgXOw8847B+7//OCee+4J7rzzTv/aBdiJY8IXLkj3n3311Vfhppw/3ZeBwH0RCF577bXEvscff7zPZ/z48YltAwcODJZeeunE+1mzZvl9Bg8enNjmAvGgY8eOgTx+//33YN68eYG7SRC47ueJffbee29/3FNPPZXYFr6QoY5NTh999FHW/ZP34zUCCCCAAAJRBVxAHHTp0iXq7r79dV24g++//z5xzLXXXuvbJ9rwBIk3lW1ycjffg8033zx5E68RQOD/BOjmXVn3NihNFQisvvrq9sgjj/g72i7otRVWWMFcoJpS8jXXXNNWW201v013vPVUV2natGnWtm3bxHb/Iuk/ekLcsmVLW3zxxZO2NvxSY6E1eYrOGSZ119Y2dWcLk/JNTjpOqUePHonNLti20aNH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gAACCCBQbQIE09V2xSgvAggggAACCCCAAAIIIIBA2QUIpst+CSgAAggggAACCCCAAAIIIIBAtQkQTFfbFaO8CCCAAAIIIIAAAggggAACZRcgmC77JaAACCCAAAIIIIAAAggggAAC1SZAMF1tV4zyIoAAAggggAACCCCAAAIIlF2AYLrsl4ACIIAAAggggAACCCCAAAIIVJsAwXS1XTHKiwACCCCAAAIIIIAAAgggUHYBgumyXwIKgAACCCCAAAIIIIAAAgggUG0CBNPVdsUoLwIIIIAAAggggAACCCCAQNkFCKbLfgkoAAIIIIAAAggggAACCCCAQLUJEExX2xWjvAUJ/PDDD3bHHXfYP/7xj0jHf/DBB3bZZZfZxIkT7csvv4x0TKE7nXvuuXbppZcWenhFHzdnzhzvOGrUqIouJ4VDAAEEEKgcAbXZd911lx111FG+ULTh5bk2tOHlcees1SVAMF1d14vSFihwyy23mAK6G2+8MWcOZ555pu21117Wu3dvW3nllW3rrbe2xx57LOdxhe4wYcIEu+666wo9vGKP05efJ554wk499VS79957K7acFAwBBBBAoLIE1GYcfPDBNmXKFF8w2vD4rw9tePzmnLE6BQimq/O6Ueo8BUaOHGkbbrhhzqPUgB977LGmp8Wrrrqqbbnllnb44YfbLrvsYh9//HHO4wvZ4ZlnnrGHHnqokEMr7pjkmwJt27a13Xff3TbZZJOCypmcV0EZcBACCCCAQFUK7Lrrrrbxxhtbs2bNfPlpw+O5jMntLm14POacpfoFCKar/xpSg4gCTZs2tSZNmjS49xlnnGHrrbee/xfuOHz4cNMd2quvvjrcVNSfbdq0sdatWxc1z3JkphsCuhGRnvRlKJd7+jHZ8krfj/cIIIAAArUpsMgii5j+hYk2PJQozc9s7S5teGm8ybV2BP57y6926kNN6lwgCAJ75JFH7KWXXjI1vKuvvrptt912C6k8+eSTdt9999k666xjgwYN8p9//fXXvjv3iBEjUvZv1aqVrbTSSnbzzTfbiSeemPJZQ2/0JPvOO++0/fbbz5dJ51tmmWVs7733TgmeNSb77rvv9l3Lld/8+fNtxowZpiB7lVVW8WO933//ff90PP0p76effuq7UOtcW2yxhe+a3lCZsn02c+ZMX/effvrJ1l9/fdt+++0TAbDGrb333numu9TqKj9v3jzfLf3333+3zp0722677eafrO+8887+mMsvv9y6dOli/fv3z3Y6v/2BBx4wPZVffPHFfR4dOnTw29Wg55tXgyfiQwQQQACBihf4z3/+Y+rO/eGHH/qeZGrPs92IpQ1PvZy04akevEMgVgH3x4qEQM0IuCejwZVXXunr89xzzwWum1iibjvuuGOwwgorBP369Qv0eo011gjc/2yBe/Ls93GBnX9/zDHHJI4JX7hx00GLFi2CBQsWhJsa/Dlp0qTABYmBe+Ic7LvvvoEbgx3ssMMOPn+V6bfffgtc0Bxcc801Qbt27YKll17a5/fRRx8FAwcO9PvttNNOvpz7779/4ILWwN0dDtwXjcR5H3zwwWD06NGBa0QDF+gHLtgNtG++6bDDDguGDBkSuIDZ5+VuMASqr7u5kMhqzTXXDJZddtnE+7lz5wZ/+tOfgs0228xve/HFFwMXzAcdO3YMXDAc6H2YBg8enHLsr7/+GrigPHDj1wN30yNw3fmCJZdcMnj99ddz5hXmyU8EEEAAgdoReOutt4KNNtoocEFy4G7UBu6mbNCyZcvADbdKVJI2PEGR8oI2PIWDNwjELmCxn5ETIlAiAQW6CsoUzIXJTX4VvvSBqQJiNdpK2t89AfWB6z333BO4p8j+9cknn5w4JnwRBsJfffVVuCnnTwXp7q568NprryX2Pf744/05xo8fn9im4DkMprVx1qxZfh8FoWH6/PPPfaCqgFZfNNzT4WDFFVcMXPfzcJfAPfH2xz311FOJbbleXHvttT4o/u677xK7vv322z6f8CaDPlDAmxxMa5t7gp0IpvV+wIABwXLLLaeXKSk9mD777LMD94Q/sY9uIOimRp8+fRLbsuWV2IEXCCCAAAI1I+B6XQXjxo1L1Efts9q49GCaNjxB5F/Qhqd68A6Bcgj8bzBKrM/DORkCxRdQd7DVVlvNdxnWMlhKRxxxRMqJ3BNWv482an91wVaaNm2a78as15m6lf3xxx/m7pL7LsnaJ0pSN22NNdI5w3T00Uf7bY8++mi4yeebeONe6DilHj16+J/6jwu2zT2F9pOgfeCW7dKs5D///LMdeeSRdsABB/h/LuD23dFdMJ44LteL888/33eFb9++fWJXTbzmnuCbe7pu7gl0YnuUF5ns0o/T5G7uyXWi3Keffrq/Juril5yi5JW8P68RQAABBKpPwPWy8kN+ttlmm0Th9fffPaleqD2mDU8Q+Re04akevEOgHAKMmS6HOucsmcDFF19s7kmouSebfvzw5MmTfSCa7YSbbrqpn+BEY4/dU1W/248//rjQ7honrCBT47AbkxZddFFzT3jNPeHOOxudX0nHui7RfrzyJZdcknc+4QHu7p29+eabtvnmm4ebEj+32morU9DunuL7GVUTH+R4kSsAdk/ATdYae51rTHWuvHIUhY8RQAABBKpA4OWXX/alXGuttVJKG6UNoA2nDU/5peENAmUQ4Ml0GdA5ZekE9DRXE3G4scP28MMP+8m00p94Jp/djfv1T6RddzIfTOupsOt2nLyLf63Jybp3777Q9nw3uPHCpifIOl++afbs2f4QHaug3nXHNk0CVmjSFxVN/uXGlpuevCcnTXympM/zSbm+/IQzs7766qs5s82VV84M2AEBBBBAoOIFwh5QmpAyPeVqB2jDacPTf2d4j0DcAgTTcYtzvpIJKFC9/vrrzU3oZXpiq67bn332md12221Zz6nuxmrI+/bt67tba6btp59+2tx4rcQx+vzdd981N0lXYluhL9x4Zvvll1/MTYKWdxbqCrfBBhtYp06dbN111zU9QXdjr1Py0ZPfSy+9NGVbQ280O7ieusshOemGxFJLLZUI+tVdXeVuKOlLT3pQnr6/vvioC/lll13mu6knf65u5XPmzPGbouSVfCyvEUAAAQSqU2Dttdf2BVcbl2+iDacNz/d3hv0RKLYAwXSxRcmvbALqtqzgUj+VtLyTm5DM/wsLpfWikwPlqVOn+jHWvXv39rscfvjh9u2339qtt94aHmI33XST7zbuJgpLbIv6QstcqSt1mJRvz549U4Jp3QT4/vvv/ZJY4X76mfz09pNPPvFPkM8880y/i5ajUrd0jQk/66yz/Dm0dNc+++xje+65Z3I2Db7WutoaC66bEGGSj4J+fRZ2a5elns672cd9EK+f33zzjWnJLnkpaZksPXXXNi2lFXaXV930OrwubpIZP/a7V69evveAvgy5Ccm8QdeuXRvMy3/IfxBAAAEEakbArVzh5+5QOxTOJ6LhQFrmUss+vvLKK4n2kTY89bLThqd68A6Bsgi4L7gkBGpCwE3I5ZeQGjp0aOCC5MAFmcEJJ5yQqNv9998frLfeesG2224bnHTSScGYMWOCv//973527MRO7oVm33YBb3DUUUcFbrKs4NBDDw3cE+7kXSK9Vv4uGA0OPPBAP0upyuXGCQfuSbc/3q3pHFx44YWBW1/Zz2btJhMLvvjiC38u98fAl0EzdGupLvdEOnCBeMp533jjDT/TqfbVPzfezC9tlbJThDePPfZY0K1bN19PN3Fb4NbZDtyT/ZQjNXu4G5vmz6MlxdzTfr+El2bgDpci0yzqWr5rscUW8/XS9TjvvPP88mAqn66F6qdZWlUn7avt+ukmZgvcU+3EOdPzSnzACwQQQACBmhNwc3T4pbHUJmgW7z322MO3l1tuuWXgejIFak9owzNfdtrwzC5sRSAugSY6kfvjRUKgJgT0JFhPVvWENHzKmV4xzYKtp6zhhGPpn4fvtY9muW7evHm4Ka+fbn1pmzBhgrk1pf04bOWlbs65ksqup7ynnXaauUDeXABqLthdaFbTMB+NpVa36Gz1Dfdr6Kf+DLzzzju+y7e63Olpdaakyc/cWtL+I3X7btWqVcpuegqtcdHqap8r6TroKba6fWtitvSUT17px/IeAQQQQKD6BNTGqD3Q/CV6Ct22bduFKkEbvhCJ7/lFG76wC1sQiEOA2bzjUOYcsQlobK9SQ4Fl69atcwbSykNdxNOTxmHrX0NpmWWWseOOOy5ll1yBe8rOSW/0pULBZkNp+eWXX+hjTcCWK6lLeLj8loJxLSuWK4WBtPZLD6S1LXmJLb1vKOk6JC8blr5vPnmlH8t7BBBAAIHqE0huYzIF0qpRY9pwHR+1fdS+YaINDyX+95M2/H8WvKpvAYLp+r7+1D5PAQW2yWthZjo8DAJdN24/zivb3fVMx2qbjlPSZGKFplxlVL7JX1oKPQ/HIYAAAgggUE0CUdtH2vBquqqUFYHyCRBMl8+eM1ehgJbHirJElta3duO7fNcrN/baRo8enXgK3FC1P/zwQz8Zl/bRZGVufLINGzbMWrRo0dBhC32mtbZJCCCAAAIIIJAqEKV9pA1PNeMdAghkF2DMdHYbPkGgYAGN902ejkBjkNUlKlfS+OrwyXS4r550qxs2CQEEEEAAAQRKL0AbXnpjzoBArQgQTNfKlaQeCCCAAAIIIIAAAggggAACsQmwznRs1JwIAQQQQAABBBBAAAEEEECgVgQIpmvlSlIPBBBAAAEEEEAAAQQQQACB2AQIpmOj5kQIIIAAAggggAACCCCAAAK1IkAwXStXknoggAACCCCAAAIIIIAAAgjEJkAwHRs1J0IAAQQQQAABBBBAAAEEEKgVAYLpWrmS1AMBBBBAAAEEEEAAAQQQQCA2AYLp2Kg5EQIIIIAAAggggAACCCCAQK0IEEzXypWkHggggAACCCCAAAIIIIAAArEJEEzHRs2JEEAAAQQQQAABBBBAAAEEakWAYLpWriT1QAABBBBAAAEEEEAAAQQQiE2AYDo2ak6EQPEEZsyYYV9++WXxMiQnBBBAAAEEECi5AO13yYk5AQKxChBMx8rNyRAojsC2225rn6keBwAAQABJREFUjzzySHEyIxcEEEAAAQQQiEWA9jsWZk6CQGwCBNOxUXMiBBBAAAEEEEAAAQQQQACBWhEgmK6VK0k9EEAAAQQQQAABBBBAAAEEYhMgmI6NmhMhgAACCCCAAAIIIIAAAgjUigDBdK1cSeqBAAIIIIAAAggggAACCCAQmwDBdGzUnAgBBBBAAAEEEEAAAQQQQKBWBAima+VKUg8EEEAAAQQQQAABBBBAAIHYBAimY6PmRAgggAACCCCAAAIIIIAAArUiQDBdK1eSeiCAAAIIIIAAAggggAACCMQmQDAdGzUnQgABBBBAAAEEEEAAAQQQqBUBgulauZLUAwEEEEAAAQQQQAABBBBAIDYBgunYqDkRAggggAACCCCAAAIIIIBArQgQTNfKlaQeCCCAAAIIIIAAAggggAACsQkQTMdGzYkQQAABBBBAAAEEEEAAAQRqRYBgulauJPVAAAEEEEAAAQQQQAABBBCITYBgOjZqToQAAggggAACCCCAAAIIIFArAgTTtXIlqQcCCCCAAAIIIIAAAggggEBsAgTTsVFzIgQQQAABBBBAAAEEEEAAgVoRIJiulStJPRBAAAEEEEAAAQQQQAABBGITIJiOjZoTIYAAAggggAACCCCAAAII1IoAwXStXEnqgQACCCCAAAIIIIAAAgggEJsAwXRs1JwIAQQQQAABBBBAAAEEEECgVgQIpmvlSlIPBBBAAAEEEEAAAQQQQACB2AQIpmOj5kQIIIAAAggggAACCCCAAAK1IkAwXStXknoggAACCCCAAAIIIIAAAgjEJkAwHRs1J0IAAQQQQAABBBBAAAEEEKgVAYLpWrmS1AMBBBBAAAEEEEAAAQQQQCA2AYLp2Kg5EQIIIIAAAggggAACCCCAQK0IEEzXypWkHggggAACCCCAAAIIIIAAArEJEEzHRs2JEEAAAQQQQAABBBBAAAEEakWAYLpWriT1QAABBBBAAAEEEEAAAQQQiE2AYDo2ak6EAAIIIIAAAggggAACCCBQKwIE07VyJakHAggggAACCCCAAAIIIIBAbAJNApdiOxsnQgCBvAUuuugiGz9+fMpxs2bNsk6dOlnbtm0T27t162bTpk1LvOcFAggggAACCJRPgPa7fPacGYG4BJrFdSLOgwAChQnMmzfP3njjjYUOnjNnTso27oulcPAGAQQQQACBsgrQfpeVn5MjEIsA3bxjYeYkCBQuMHTo0JwHN2vWzEaOHJlzP3ZAAAEEEEAAgXgEaL/jceYsCJRTgG7e5dTn3AhEFNhwww1t5syZ1tDT59mzZ1vXrl0j5shuCCCAAAIIIFBqAdrvUguTPwLlFeDJdHn9OTsCkQRGjBhhiyyS+X/XJk2a2CabbEIgHUmSnRBAAAEEEIhPgPY7PmvOhEA5BDJ/Oy9HSTgnAghkFRgyZIgtWLAg4+cKstVYkxBAAAEEEECgsgRovyvrelAaBIotQDBdbFHyQ6AEApq5u2fPnhmfTqvr9+DBg0twVrJEAAEEEEAAgcYI0H43Ro9jEah8AYLpyr9GlBABL5Dp6XPTpk2tV69e1rFjR5QQQAABBBBAoAIFaL8r8KJQJASKJEAwXSRIskGg1AIDBw5c6Mm0un5naqRLXRbyRwABBBBAAIFoArTf0ZzYC4FqFCCYrsarRpnrUqB9+/a2ww47mJ5Gh6l58+Y2YMCA8C0/EUAAAQQQQKDCBGi/K+yCUBwEiihAMF1ETLJCoNQCw4cPT0xEprWl+/fvb+3atSv1ackfAQQQQAABBBohQPvdCDwORaCCBQimK/jiUDQE0gX69etnrVq18pvnz59vapxJCCCAAAIIIFDZArTflX19KB0ChQoQTBcqx3EIlEGgdevWNmjQIH/mNm3aWN++fctQCk6JAAIIIIAAAvkI0H7no8W+CFSPQLPqKSolrXSB++67z+bOnVvpxaz68nXt2tXXYaONNrI777yz6utTjRX4448/bJ111rHu3btXY/EpMwII1LHA/fffb99//30dC5Sv6rTf5bNv6Mxq09ddd11bY401GtqNzxDIKNDErVEbZPyEjQjkITB27Fg799xz8ziCXRGoboG11lrLXn311equBKVHAIG6Ejj66KPtzDPPrKs6U1kEogj06NHDXnzxxSi7sg8CKQI8mU7h4E0hAgqkL7jgArvxxhtt6NChhWTBMQhUhcDs2bNt6623th9//DExdr0qCk4hEUCg7gUUSJ911ll23XXX2Z577ln3HgAg8P777/s2/ZdffjF1wychUIgAY6YLUeOYhEAYSE+aNIlAOqHCi1oUCAPpxRZbzI9b17JkJAQQQKAaBMJAeuLEiQTS1XDBKGPJBcJAeqmllrKdd97ZaNNLTl6zJyCYrtlLW/qKEUiX3pgzVIZAciD9wAMPcAe7Mi4LpUAAgQgCBNIRkNilrgSSA+np06fT06yurn7xK0swXXzTusiRQLouLjOVdALpgXSHDh1wQQABBKpCgEC6Ki4ThYxRID2QXnzxxWM8O6eqRQHGTNfiVS1xnW644YbEZGO777676R8JgVoV6Ny5s6lrt55IE0jX6lWmXgjUnsDUqVMTk42NGDHC9I+EQL0LdOnSxZZYYgnTE2kC6Xr/bShO/Qmmi+NYV7l88cUXtuSSS9qll15aV/WmsvUpsP/++9tee+1FIF2fl59aI1C1AmqrdSPwiiuuqNo6UHAEii0wZswYGzVqFIF0sWHrOD+C6Tq++I2peqtWrWzw4MGNyYJjEagKgcMPP9yaNm1aFWWlkAgggECyQIsWLWirk0F4XfcCBx10EG163f8WFBeAMdPF9SQ3BBBAAAEEEEAAAQQQQACBOhAgmK6Di0wVEUAAAQQQQAABBBBAAAEEiitAMF1cT3JDAAEEEEAAAQQQQAABBBCoAwGC6Tq4yFQRAQQQQAABBBBAAAEEEECguAIE08X1JDcEEEAAAQQQQAABBBBAAIE6ECCYroOLTBURQAABBBBAAAEEEEAAAQSKK0AwXVxPckMAAQQQQAABBBBAAAEEEKgDAYLpOrjIVBEBBBBAAAEEEEAAAQQQQKC4AgTTxfUkNwQQQAABBBBAAAEEEEAAgToQIJiug4tMFRFAAAEEEEAAAQQQQAABBIorQDBdXE9yQwABBBBAAAEEEEAAAQQQqAMBguk6uMi1UsXff//dZsyYYYcddpjdc889tVKtktej0t0aKt+5555rl156acmNOAECCCCAQPEE5syZY5dddpmNGjWqeJnGlNMPP/xgd911lx111FExnbE0p3nzzTft7LPPtunTp5fmBFlyzdamv//++7bXXnvZxx9/nOVINiNQnQIE09V53eqy1K+++qrdfPPNdv7559unn35alwaFVLrS3Roq34QJE+y6664rpNocgwACCCBQBgEFo0888YSdeuqpdu+995ahBI07pcp88MEH25QpUxqXURmPfu+99+zyyy+3cePGxR68ZmvTZ86caddcc43pcxICtSRAMF1LV7PG67L++uvbAQccUOO1LH71Kt2tofI988wz9tBDD6WgfPXVVxm/oBF0pzDxBgEEECiLQNu2bW333Xe3TTbZpCznb+xJd911V9t4442tWbNmjc2qbMevtNJKNmbMGH/+uOuRrU2Xq9rvvn37prhkatMzbUs5iDcIVJAAwXQFXQyKklsgbBSaNGmSe2f2SAhUulu28rVp08Zat26dqMcff/xhe+yxh3344YeJbXqhgPvYY49N2cYbBBBAAIHyCejverW21YsssojpXzWnsPzhzzjrkq1NX3LJJVOKkalNz7Qt5SDeIFBhAtV7263CIClOdoH58+f7sc4KjFZZZRW74447TGNndtlll6LduZ43b54fR60xQsstt5xtv/32/md6qdTN6LHHHrOffvrJdPdU+yU39hrLc+edd9p+++1njzzyiN133322zDLL2N57750S1KXnm+n9l19+adOmTTP91F1inW/FFVf0Y7HUBUt37zWeTGXXU1WNM+rcubPttttuPrsoZSnUVmPPP/roI3+eli1b2sCBA00/n332WXvjjTds8cUXt5133jlTtTJuy1ZX7RylHhkzdRuV79133+3HWf366682bNgwe+CBB2yppZby122nnXayt956y5dV11Hd2rp06WL9+/f3WWo4gLrsqQxbbLGF9e7dO+VUTz75pP3222+2xhpr2LXXXmtbb721fyKRshNvEEAAgToQKLQ9yZcmVzus/HK16Y1pVzKV9z//+Y/dcsst/kbthhtuaEEQpHw30DG52hN9//j888+tZ8+e9u9//9vefvttGzx4sP8usmDBAt/1/amnnrI///nPtummm6YU45133rGnn37aXnnlFd9W6ftRmHRddMNYQfFmm23mv0Mo76FDh9qqq64a7uZ/Pvroo/bwww/79lzfOZSSv+P4DRH+k61Nb8zviAz0vUrffTbaaCPL1Kb36dPHjjjiiIXaeX03UlL7rx5r+o6i70odOnRI1Obbb7+1G2+80fbff3/vL8uxY8dWdQ+DROV4UdkC7g8GCYG8BNykUMGyyy4b6RgXsAUuUAvc/wWBC3yCHXfcMXB/6AL3hzFwdy4D13hFyifc6fXXX/d5XXXVVeGm4KWXXgrWXnvt4NZbbw1cAxC4CTcC98c6cMFRYh+9cBOXBUOGDAlcIBu4xjxYZ511Ahc8BV9//bXfb9KkSYH7Ax24J6HBvvvuG7iJMoIddtjBn891+Qpc0JWSX0Nv3B/1YIMNNgjcF4LANT6B6/IWTJ06NXHImmuumWI4d+7c4E9/+lPgGsrIZcnHNt3txx9/DFQGXRd5JKfVV189cA118qYGXzdU16im6eWT2TXXXBO0a9cuWHrppf35v/vuu+DKK6/0ZXbjwAL35SLQuV988cXABcpBx44d/Ta9V3rwwQeD0aNH+2vtxtr73wn97im5J9uJa+vGxgXuxkGw6KKLBu4LjP88+T/6XdfvfHLS71J4rZK38xoBBBCoFIGLLroocDceIxUnn/YkUoZuJxdIprRzOi5XO6x9crXpUdsV5RUluRuygQvuAndzNXA3tQN3UzZwN5cDF6gmDm+oPVH77YI23zbp+47amWOOOSbYaqutgqZNmwbuprr/DqB91J7ou48LnBN5n3feef67iAs2gw8++CDo1q1b4Cbe9J+7ID9wQbPP291MDlzPrOCQQw7x7aK+R33zzTeJfFzvrMDdoA/cmHXfxm255Zb+uBtuuCGxT5QX2dr0fH5H0tt0vXfdvH153MR0vhiZ2nS1zZnaeRd4+7q5YNn/figv95Q7UL5KEydO9G24bPV7v+666/pzvfzyy/7z5P/oO4X2SU4HHnhg4G5yJG/iNQKRBXT3jYRAXgL5BNPKeNasWf6PmhrWMLm7tz74UcOixitqSv8DrT+wCv5OOOGElCzU4LRo0SLxh1aBtYJV/fEOkwJGBZPDhw8PN/nX7i5u8NprryW2HX/88X6/8ePHJ7bleqE/1O7udGI39yQ+SG7Q1BCk35Bwd5FTAjSVK1dZotqmu6lg7gm8r5carjC5O+++wQvfR/mZq65R6pGpfDq3vpiEwbTe60uWrtnVV1+tt4k0YMCAwPVISLzXTQzXC8B/qQg3ut4F/lj3ZMBvevfdd/17uSt4140YN04r3D3xk2A6QcELBBCoIgH9bY4aTKtaUduTqATpwXSUdjhqmx6lXYlaTje2O9AN2jApqFX7EQbTUdoTHdu+fXsflLuebz4rBdnNmzcPlH+4TTey9d3ETc4Wni5YeeWVAzcfTOK92jPdyA/Tzz//7NuqbbbZJvF9KWy/3azjfje3wokP3L///vvwMP9AQe1l8nePxIcNvGioTY/6O5KpTXdPin09wmBaRcjUpmfapockJ554YqLUCuxVN/ckO7FNNxu07bbbbvPbXE+BxGfJLwimkzV4XQyB6h4Q4v6vIVW+gLp3K/Xo0SNRWPfHzNxTQ9/91t2JTWzP94W68Kqbb3qXKXUVUvddF3T5LDUDuAu6zTV2iVOoe9QKK6xg7i63uUbPb1dZNdbHPbVN7Hf00Uf7beo+FTXpXOrO5Bp8P+GGzqOu1PmkKGVpjG2/fv1892YtP+X+mPiiuUbXRowYkU8xvWtDdY1Sj2wnVNfzTClTt7Xkberq5b6A2JFHHuknrdPEdep+p+727suAz1LdwZVcbwlzTw/MPdm29PFcfgf+gwACCNSBQGPakyg8UdrhqG16Y9qV5LK6J86+27ALVBOb1ZaoG3LYpkRpT3Swu2Hv25hwng/Xs8oPO9LwtnCb6wHlu30nf+9Rt2zNfK6kYVYuUDR3s9e/139atWrly6L2S99PlLp37+5/agkypdNPP91cbzhfBr/B/UeTqCmF9fBvIvynoe8vjfkdydaeZytjcrn1PcX1Oku056rvaqutZuqeH6awTQ+HqKkeJATiEGDMdBzKnCOjQDjWR7M2qrEpJKnhUdIYnOTkulf5txrDpEBRPzfffPPkXfxr7adGTQF52PCk76TGzz2d9EFx+mfZ3vfq1cuP+znnnHP8GOwLLrjA/va3v2XbPfL2qGWJYquGSstmaN1HrdutoFLjkVwXssjl0Y6F1DVqPbIVJLmRDfdJ3ubuivvx55dcckn48UI/w0lZFEiTEEAAAQQyC0RpTzIf+b+tUdvhKG36/3JNfVVIu+K6AftM1lprrZTM8m1PUg5OepMpgHRPq809oU7spXlZ7r//fj8/iOvR5gPyF154IfF5phdhuxXeCFc9NFt2ckquQ/L2XK8LadMb+zuSqazhNtej0I9X1xwz4XwomeoQtunhz0z7sA2BUgjwZLoUquQZSWD27Nl+P03KVWhaYokl/KGa1CM5Lb/88qYGS5NU6A+yfj733HOmWSKTUxjE6/NsSZNk6KlmPuXUH/OzzjrLT2CmiTMUsJ555pnZThF5e9SyRLXVhF5qyBX0KwDVE/nwznfUQhVS16j1yFaGsJFN/jx5m75oaIIWTepGQgABBBAoXCBqe9LQGaK2w1Ha9GznKaRdCXulaVKr9BS2KY1pT8I8suWt7W4omX8yre8IgwYN8j2l0vdv6L0mBdOkqpnqoOOylSFbnoW06Y39HclUxnBbGByzPnW2K8b2cgsQTJf7CtTx+dW9St2SOnXqVLBCuI5lehdsN+bZB1Ka+VJJ+2l2UHUTSk6aVVQzQzcUKCtQ/+WXX0zdoqMmdS/XzJXbbbedP6dmkXbjkBKHK2BVnvmmqGWJauvGbtmhhx7qZwrVU+pCnp7nqmumOkatR/qxYeOaflNE25O3uclH/J1/N849JQvd4XYTu6Rs4w0CCCCAQHaBqO1J9hz++0mUdjhqm57pXIW0K27yUp+V6pgtlbI9Uc84dfHWkLCwK7i+O+ST9H1CK1LohvgXX3yRz6EZ9y2kTS/0dyRTm56+Td3nNVTOjbX2w7eSC61hemFX9+TtvEYgTgGC6Ti16/xcyXcVP/nkE/+kON+ntW5yDa/oZqv0P9XI/fWvfzUF08l/UB9//HHfdXyfffbx+51xxhl+qYjrr78+cRXUYKnx1Wdhlyl9qLu86hYeJjdLuF/qIp9gWuOdpk+f7rNQ1zM3oUjKeFwtyeVmETc3Y7UP+vTTzcrplwxzM2mGp45clly26W6JE7gXY8aM8WPJVZ7kseLJ+zT0OldddWwu02zl05MGfabjlcLlMXTd1L1NS1+E29V7QEuuadkxXSstkaYlNtRDQNfTzeht+n3Yc889/TFhNzvVm4QAAggg8F+BXO1JVCf97dbf2bArcpR2OGqbrjLkaleilFPLK2psrb4bhDfltQSW5gHR8ltqY/S0OFd7ojqqrmqzkpO+qySP69Vn2i+8mR5+l5kyZYqfu0VLd6oc+h6gz/QQQD+Vv+aBCVPYbmluEKWjjjrK/zzooIN8GfT95qabbvLb9H1I3y+ipihteq7fkUxtemgTll3lydSmZ9qmm/26HuqCrjHmejDiJiTz3w+6du3qqxa26fnUNaoJ+yHQoID7H5SEQF4C+c7m/dlnn/kZFjW7tWZU1pIRWjZKS1nlk1wXJj9zo/uFDtZbb71As1cqaaZLzYSppZ60PIKWzdISXC64TsneNVJ+yQn3JDZwa10HbqKtwI2pTdnHBZZ+Rkwtk6DZPbUkhRujE2hWznySZhd3DbRffkEzaWr5JS3HFSbNDuomTfMu7o6yn31SM1drZspwdu0oZYlim80tLIt+aimwdIvkzxt6nauuueqRqXya+fTCCy8M3BqS3shNJBa4O+6+GO4pv9+mmU1d1zK/TctkubvzwWKLLeaP00Y39s7PxqrfF/1zY+IS10Azuev6a7tmu3UT42Rd+ozZvD0x/0EAgSoTyHc27yjtSRQCtcla7knLTOpvrNqI8O93lHY4Spueq12JUs5wH/d02M/CrbJqFm+tBqJ2X0tLaeZplaeh9kTfD0455RRfVy3R6AJjvyym6q08tcSjroXaNXdDwW9TWxUu36llONV+aVZvrRqiJUM147cLHP33GH1/UD6uF1+g2bvdwwi/jKO2uZsPwfPPP++r4m4c++Wh3IRlgVsr2y8TqjZU34+Sv3+E9c72s6E2PcrvSKY2XUuBhUtjqS2+++67E6fP1Kanb3M3B/x3Rzmp3vrpJocNXI80n4++97kha/4zLYGqMmRLzOadTYbthQrobhcJgbwECg2mTzvttMDdOQy0TJT+MBY7admrJ554ItCSCdmSzqs1Jd346cDdGV5oNzXQWspCScG4u7u60D5RNoTLfekLRPJyXOnHajmmMKnBTk5RyhI2bI21dd3R/ZrNyeeP+jpXXaPUI+q5tJ+uobtDvdAhcs5000PrVoZB90IHRdhAMB0BiV0QQKDiBAoNphvbnuSCyNUOh8c31KYXu13ROdUeu6fA/vS64Z0pNbY9yZSntqW3XZm+n2Q7Nnm72uPwO5B7kh24p8HJH0d63VCbXqzvHMkFydSmZ9qmY3RDQkuX6rtkoYlgulA5jssmwGze7hYXKT4BdXnW2JfkNG3aNNO/hpImyTruuOMa2sV3Vc40Y3fyQRqLo+UUoiR160pP+++/f/qmhd6rK3G4DJjGYzeUtBxTmLT8RbaUqSzp+2ayTd8n03vNAqox4+5OecrH+V6XXHVV5lHqkVKIDG90DfX7kJ6Slz1L/kyT0ZEQQAABBKILZGtP8m0DM50xajusv+m52nTln6ldybf9Uj7J7XH6CiH6XKlU7YmW0UpOmWYBT/4822v3xNavPqLPNQlrcsr32uVq07P9jiSfM8rrTG16pm3KS+PKCxmOFqUc7INAoQIE04XKcVxkAc0yqeTuMmc8RsF18hqPmXbKFihl2rcx21RWjcPSGKVMjWmucurcyQ1yKcuivHPZZju/lt3QGsyafEXjj26//faFdi3WdcllutCJ2YAAAgggELtAlPYkzjawIYBc7Uqx2q+GylBtnxXj2kX5Hak2F8qLQGMFCKYbK8jxDQq4LlF+kgjtpIm8NOOklmPSLNJh6t69u+lfudPkyZP9Wo+uG4efzGP06NGJJ8xh2QYPHhy+LOnPKGWJYputkK4LlZ8ATkG1G6Nt3bp1W2jXYlyXKPVY6MRsQAABBBCIVSBqexJXG9hQ5aO0K8VovxoqQzV+1thrF/V3pBptKDMCjREgmG6MHsfmFOjSpYtfEip5Waj0rkc5M4lpB80A7SYuS5yt0G5WiQwa8SJKWRpju9FGG/kZRrV+Y7iGYyOKm/XQKPXIejAfIIAAAgjEItCY9iSWAiadhHYlCSPGl9X0OxIjC6dCwAim+SUoqYCeQCc/hS7pyRqZeVxdyaMUM0pZGmursVWlTlHqUeoykD8CCCCAQMMCjW1PGs69uJ/SrhTXM2pu1fQ7ErVO7IdAMQRYZ7oYiuSBAAIIIIAAAggggAACCCBQVwIE03V1uaksAggggAACCCCAAAIIIIBAMQQIpouhSB4IIIAAAggggAACCCCAAAJ1JUAwXVeXm8oigAACCCCAAAIIIIAAAggUQ4BguhiK5IEAAnUlEK61WVeVprIIIIAAAgjUoABteg1e1BirRDAdIzanQgCB6heYMmWKXXXVVbb99ttXf2WoAQIIIIAAAnUscP3119vEiRNp0+v4d6CxVSeYbqwgxyOAQN0IKJAePny4HXLIIXbSSSfVTb2pKAIIIIAAArUmoEB65MiRNm7cODvuuONqrXrUJyYBgumYoDkNAghUt0ByIH3OOedUd2UoPQIIIIAAAnUskBxIn3HGGXUsQdUbK9CssRlwPAIIIFDrAjNnzrQbb7zRP5EmkK71q039EEAAAQRqWeDZZ5+1yZMn+yfSBNK1fKXjqRvBdDzONXcWTdYwderUmqtXcoWCILAmTZokb+J1BIFac5s3b55vdA877DAjkI7wC8AuCCBQMQK//vprzbfVmbBrrR3KVMdSbat1ux9//NEmTZpkRx55pBFIl+q3qL7yJZiur+tdlNp27tzZvv32WxsyZEhR8iMTBCpdYNSoUQTSlX6RKB8CCKQIqK2eO3cubXWKCm8QMBszZgyBNL8IRRNgzHTRKOsno6FDh9qCBQtMdy9r7d8HH3xgO++8s7+YAwcOtDlz5lRkHVXAm2++ueLK9ttvv9lpp51miy66qK288so2bdq0iitjIb+zV155Zf38D05NEUCgJgQGDRpUs211+t9xPW084YQTrFWrVrbaaqvZvffeW7Ftj365KrH9lql6Mpx66qnWpk0bW2GFFezWW2+tWMf034F83o8fP74m/h+nEpUhQDBdGdeBUpRZ4Oeff/azM6+xxhr29ttv2/333+8bkeWWW67MJauu0zdv3tyOPfZYe+utt2y99dazHXfc0XbaaSd7//33q6silBYBBBBAoCoEbrrpJlt99dXt/PPP94Hgq6++an369KmKsldaIVu0aOFntX7nnXdsiy22sF133dV69eplr7zySqUVlfIgUDECBNMVcykoSLkEbr/9duvevbude+65dsopp/hGY7vttitXcWrivLoJoTvvM2bMsPfee8/7Hn/88aax9iQEEEAAAQQaK/Dyyy9bz549bffdd7dtt93WFACOHTvWdFOX1DiBLl26mGa7fvLJJ+2HH36w9ddf3/bff3/75ptvGpcxRyNQgwIE0zV4UalSNAE1vH/5y19sl1128Xdg9UT6iCOOoCGOxhdpL93R1hee008/3S688ELTk391GyMhgAACCCBQiIACuv32288HeBpa9Mwzz9iECRNs6aWXLiQ7jmlAYNNNN/W+V199tenBwyqrrOLb8vnz5zdwFB8hUF8CBNP1db2prRPQXdajjjrK1l57bfv888/t0Ucf9TM7arIWUvEFmjVrZpoJWzcrtt56axs8eLDpyf+bb75Z/JORIwIIIIBATQr88ccfdvHFF/uA7o477rBrrrnGPzndaKONarK+lVIprWry17/+1T/518RdmgV73XXX9cPhKqWMlAOBcgoQTJdTn3PHLqC1gjW2ShNKaZmjF154wbbaaqvYy1GPJ+zUqZNde+219vjjj/uuYmqMx40bZ1p6ioQAAggggEA2gQcffNB69Ojhu3GPHj3a35wdMWIEy1dmAyvB9rZt2/peZq+//rq/oaFx6ZoTZdasWSU4G1kiUD0CBNPVc60oaSMENCGJnooOGzbM+vbt6++wHnjggda0adNG5MqhhQhsvvnm9vzzz9sFF1zgu+Zp5lWt+UhCAAEEEEAgWeDDDz/0k2D17t3bunXrZq+99pqdeeaZ1q5du+TdeB2jwEorreS7fE+fPt1PLrrmmmv63n7cGI/xInCqihIgmK6oy0Fhii3w/fff2yGHHOJnltaM3RpbpafSSy65ZLFPRX55CCyyyCJ+zJvGrevOtrqQqYeAxleTEEAAAQTqW0CTVWqpK82zoQD6nnvusbvuuss/Ea1vmcqpvSZ9U5utXn5XXXWVvzbqeq8lqkgI1JMAwXQ9Xe06qqv+mOuP+qqrrmrq2n355Zfb008/bYytqqxfgg4dOpjWe3z22WdNE5pssMEGph4D3377bWUVlNIggAACCMQiEC51pd5LWvNYPcvUo4xUeQLq3ac2+9133/U9CNQFf+ONN/Zj2SuvtJQIgdIIEEyXxpVcyyigLsSbbbaZ6Y/6kCFDfJfuvffem7FVZbwmuU6tIFpLcOju9tSpU/1NEL1esGBBrkP5HAEEEECgBgRY6qp6L+ISSyzhJ4d76aWXrH379n6FFA2r+/jjj6u3UpQcgYgCBNMRodit8gW+/vpr22effWyTTTaxFi1a2MyZM+2iiy6yxRZbrPILTwn9zY6RI0f6mx9qhLX0iZbl0FNrEgIIIIBAbQqw1FXtXNe11lrLHnjgAfvXv/7lewNqTpRTTjnFfvnll9qpJDVBIE2AYDoNhLfVJ6DlMi699FL/NHPatGl2/fXX++Wu1llnneqrDCX2d7XPP/98e/HFF61NmzY+oFbPgq+++godBBBAAIEaEWCpqxq5kBmqMWDAAHvjjTfs73//u/3zn//0q6jccsstGfZkEwLVL0AwXf3XsK5r8MQTT9iGG25ohx56qI0aNcovl7HHHnvUtUmtVF53uB966CE/5v2+++7zN0vU00BfwEgIIIAAAtUrwFJX1Xvtopa8ZcuWdswxx/jeZj179vTD7rSqChONRhVkv2oRIJiulitFOVMEPv/8c9Mak1tuuaV17NjRT1Ciu59aB5FUWwK77babv0my77772hFHHGHrr7++73lQW7WkNggggEDtC7DUVe1f4/Qadu7c2a699lrf7VvdvdWGqz3X0DwSArUgQDBdC1exjurw+++/+2UYNEv3o48+arfeeqvdf//9pnE5pNoVUHfv008/3d806dKli+kut8ZVf/rpp7VbaWqGAAII1IiAlro68cQTWeqqRq5nIdXQLN9PPfWUTZw4MbHMmYZ0aSUPEgLVLEAwXc1Xr87KPmPGDFt33XX9GJzDDjvM3nzzTRs4cGCdKdR3dXUT5d///rfdfvvtvlHWTRT1SNBNFhICCCCAQOUJhEtdKXBiqavKuz5xlqhJkya25557+t5m+++/vx199NG29tpr27333htnMTgXAkUVIJguKieZlUJgzpw5NnjwYNt2221tlVVW8ZNa/OMf/7DWrVuX4nTkWQUCO++8s/89GDdunJ100km+MVYPBRICCCCAQGUIsNRVZVyHSiyFhuSddtpp/qFI9+7d/Tri/fr18+OrK7G8lAmBhgQIphvS4bOyCvz666/+j+0aa6zhJ6y455577I477rAVVlihrOXi5JUh0KpVKzvhhBN8UK3GuE+fPr6nwuzZsyujgJQCAQQQqEOBcKmrDTbYwH777Td75plnbMKECbb00kvXoQZVbkhA3+c0XE89D/XgRBOP6ib53LlzGzqMzxCoKAGC6Yq6HBQmFLj77rttzTXX9ONktbTCa6+95u9chp/zE4FQoFu3bnbbbbeZZvzWUhy6+XLyySezrmUIxE8EEEAgBoH0pa4UQD/55JO20UYbxXB2TlHNAr169fLLYWoowDXXXON7IV599dW2YMGCaq4WZa8TAYLpOrnQ1VLN9957z9TVp3///n7Jq7feessvrdCiRYtqqQLlLJPA9ttv7ycoU7fvs846y/S0Wj0ZSAgggAACpRVgqavS+tZD7k2bNjWNo3733XdNq3hoxm/diHn88cfrofrUsYoFCKar+OLVUtE106eeQOtptJbOUMM8ZcoUW3bZZWupmtSlxALNmze3I4880k9ustlmm9mAAQN8jwY1ziQEEEAAgeIKsNRVcT3JzWzxxRe3Cy+80A/v69Chg2211Va2++6720cffQQPAhUpQDBdkZelvgp1yy232Oqrr24XX3yxnXHGGfbSSy/ZNttsU18I1LaoAlo+a/LkyfbII4/45bM0DuuYY46xH3/8sajnITMEEECgHgVY6qoer3q8dVbvMk0sqh5mzz//vP+eqMlnf/7553gLwtkQyCFAMJ0DiI9LJ6DxrZqhe8iQIabxMm+//bYdeuih1qxZs9KdlJzrSuDPf/6zzZw5084++2wbP368b4y1TAsJAQQQQKAwAZa6KsyNowoT2Gmnnez111/365Sfc845vh2/+eabC8uMoxAogQDBdAlQybJhAc3SOHbsWL9m9LfffmtPPPGETZw4kZk+G2bj0wIFNA7roIMO8ktuaFy1uoup54MmtSMhgAACCPx/9s4E7qpp///fBo1U6kaEwjULZciNKwppQChCQqXIfGWe4q+Lm3l2XVxkzHAR11zmoYvMJCIlJUOlWe3/+qx+69hnP+ecPT9nD5/1ej3P2WfvtdZe672+Z33Xd43eCPCoK2+c6Ct6Atg3B0u4pkyZIt27d5cBAwYIOsvff//96F/GGEnAJwEa0z6B0XtwApZlyT333CObbbaZ3HXXXXpa96RJkwRrW+lIIG4CrVu3FuwO+tZbb+np3h07dtQzIebNmxf3qxk/CZAACaSWgDnqqlOnTjzqKrWlmI2Et2nTRh+zhuPWfv/9d71R7bBhw+THH3/MRgaZi1QSoDGdymJLX6KxDhqbSBx11FF6Uyj0Lg4fPlzq1qUIpq80053inXbaSRvUN998s15Xjc4dzIxAZw8dCZAACZDAKgLOo65wZBGPuqJ0JIEAdvnGrMa7775bnn76aX2U1lVXXSXLly9PQvKYhpwRoCWTswKv7ez+/PPPcvzxx8v222+vjRVsIgEjpmXLlrWdFL6PBAoE0IkzdOhQPWWsX79++rpLly7y7rvvFvzwggRIgATySoBHXeW15NOT7zp16sjhhx+u99vBUq5zzz1XOnTooI3r9OSCKc0CARrTWSjFBOZh5cqV8s9//lM23XRTeeSRR/S0HJwViKm1dCSQFAI4ggO7yMOIxsZ3GLXG2ZaY1khHAiRAAnkj4DzqChs/XX755bLGGmvkDQXzmxICTZs2lf/3//6ffPbZZ9qY7t27t/Tq1Usb2SnJApOZcgI0plNegElMPtakwijBiPSgQYP06N+RRx4p6EWkI4EkEth2223l1Vdf1Wv5n3jiCd0JhBkU6BSiIwESIIGsE8BRVxdccIFsscUWenNGTJ198skn5c9//nPWs878ZYRA+/btZdy4cTJhwgR9JCZGqbHZLfdFyUgBJzgbNKYTXDhpS9qcOXNk8ODBgumyzZo10+dFYw0LrulIIA0EBg4cqHuzIccnn3yy3twEawTpSIAESCCrBMxRV9dee61ccskl8tFHH0nPnj2zml3mK+MEdt99dz3b7LrrrtNrqjfZZBO57bbb2Dme8XKvZvZoTFeTfkbejR0VUWlhSvfzzz8vDzzwgGC91VZbbZWRHDIbeSKA6YxjxowRHAPTqlUr2XXXXQUzK3744Yc8YWBeSYAEMk6AR11lvIBznD0ciYklW19++aUcdthhMmLECL13zyuvvJJjKsx6XARoTMdFNifxvvzyy3od9Omnn64rq88//1wOPvjgnOSe2cwyAUx3ROcQpo1NnDhRH+l29dVX6+M4spxv5o0ESCDbBMxRV9gYdNmyZYJjhu644w5Ze+21s51x5i53BFq0aCHXXHONfPjhh1q+u3btKocccohMnz49dyyY4fgI0JiOj22mY545c6Yceuihguk0G2ywgWCTkr///e+CjSDoSCBLBA466CC9sclJJ50kZ599tmB9NWZe0JEACZBAmgg4j7qCAc2jrtJUgkxrUALoHH/mmWf0PgDvv/++bL755nLhhRcK9gqgI4GwBOqos1V5uGpYijkKj15sjM5hXdVaa62le/z23XffHBGo/axef/31cssttxS9eOrUqdKmTRtZffXVC/ex+cZTTz1V+M6L6Al8/fXXei31+PHjpX///nLllVfK+uuvH/2LGCMJkAAJREgAHYDYB2LKlClyyimnyHnnnccduiPkWy4q6u9yZKp3H+1YLE3EDuDNmzfXu9VjcIiOBIISqB80IMPljwB69aCMv/vuOz1Ch6ndjRo1yh+IWs7xggUL5NNPP63xVuc0JfaL1UAU+Y2NNtpI92xjp1v8FtC7jbMtsWNow4YNI38fIyQBEiCBMARw1NXIkSP1EZV9+vSRxx57jDt0hwHqMyz1t09gteC9QYMG+jdxxBFHyDnnnCPYePTGG28UbMCHpQ90JOCXAKd5+yWWMf/opcaUl0pu2rRpcsABB+jdPbfeems95fX888+nIV0JWoTPBgwY4Bobzkg+6qijXP3RQzQEcIblxx9/rA3p0aNHC34XMLAruV9++UWee+65Sl74jARIgARcCcyePVsvrarkkUddVaJTe8+ov2uPtd83YY+A22+/Xd555x0dFEe6Dh06VPD7quRw1BbOtKYjAUOAxrQhkcPPGTNmyC677CLdu3cveQ7f4sWLZdSoUbLlllsKNhaDIfDII49Iu3btckirelnGaCh6Syud040d1b0o7erlIntvxkg0erXx2+jYsaP07t1b9ttvP8FU8FLuhBNOkB49esj9999f6jHvkQAJkIArATTk//rXv2rdjQ66Uo5HXZWiUp171N/V4e7nrWhfvfbaazJ27FjdzsXJNFdccYXenK9UPBi42G677QpGeCk/vJczAlgzTZc/Ar/99puljq6y1Iim/lObKxVBUFPBLLUG11LHBFnqmCBLrTEpes4vtUtATT+y1FEP2N+gxp8ysq3OnTvXboL4thoEXnzxRUt1PFnKyLbUekRr4cKFBT+vvvpqodxWW20168033yw84wUJkAAJeCGwfPlyS236WdDbxx9/fFGwyZMnW7vttpsFnXD00Udb6ji/ouf8Uh0C1N/V4R7krdDbF1xwgdW4cWNLnU9tPfnkk0XRTJgwQety/MZatmxpqWUURc/5JZ8EJJ/ZzneuV65caalNw7RCNsZZ3bp1rY8++sj64osvLDV6piuLww8/3Pr+++/zDSshuZ81a5ZuIJnysn/CyFbrfRKS0nwnA43dq666ymrWrJmldrm3Hn74YUvNGtAdV6YzBL81KOFvv/0237CYexIgAV8EhgwZUtSpigY99PbcuXMtdaauhbpl5513ttS0VV/x0nO8BKi/4+UbR+zQz+qYV90WRptY7VujdbnaFbzwG8RglBrFtn799dc4ksA4U0SAu3krqyRv7owzztC7ECujupB1rLnF0QHKmNaf2IESU8nokkNgjz32kFdeeUXs5YbUqQaUqBEIad26dXISm/OUoDzOPPNMueeee6Rbt276KC2lFwpU8HtTvd56mph9R/aCB16QAAmQgI0App1i00+7Qz2CKapffvml3gDxsssuE2yqpIxsuzdeJ4AA9XcCCiFAEtDmwmaj2CMFbeKJEydiELIQE36Du+66qzz//POCa7p8EuCa6ZyV+1133SVq2nYNgwxrblUPtwwePFjeffddGtIJlItBgwbVSJUa7dTGGg3pGmiqegPHluG3hiO01JTuIuWLhOH3hgaw6vmu8VusasL5chIggcQR+M9//iPoBHc61CNvv/223o0YHeHQETSknZSS8Z36Oxnl4DcVatmEbhOj3Yx11XZDGnHhN6iWccnw4cP9Rk3/GSJAYzpDhemWFfzg1TSxst6ghB999FFZsmRJWT98UD0CBx54oB6FtqcAo9SllLTdD6+rRwC/J5xpWcpBCT/77LM1RptK+eU9EiCBfBJA53alzSWht9VyElF7MeQTUEpyTf2dkoIqkUzM/sOpNk5D2nhdsWKF3HHHHfq8anOPn/kiUG+UcvnKcj5zix2G1cYlsnTp0rIVAsjAkEbFsOeee+YTVIJzjTO90bCaOnVqoQxxXiIqcZ5xnLyC+9///icjRoyoOPIM5YyR6/XXX186deqUvEwwRSRAAlUjgBM3MLUUx1w5l/fYE4XnmGLatWtX+21eJ4gA9XeCCsNnUnAMFnbwRtu4knvhhRdEbeyr/yr547PsEeDIdPbKtEaOcJTGPvvsI2qXwooKGQFRWWA6C86fpksegYEDBxbKEI0ntZGcqB3Xk5fQnKcIRjKmfaFH24uD35dfftmLV/ohARLIAQF14oY+Sk9tbuTaiIfexnn33333XQ7IpDeL1N/pLLsTTzzRsy5XG/fKW2+9lc6MMtWBCXhr6QWOngGrTQBK9qCDDtJTVDCttJzD2luzeQJ6wDECSpc8An369BH0cMOhPKGc6ZJHAOe/YgYBfn8wqN2mYML4RscIwtCRAAnkmwDqjX79+ulO7Up6G5QwOwkOy0meeeYZfc1/ySRA/Z3McqmUqjlz5ugNRPE7xG/NbU8C/HZ79eql29yV4uWzbBHgbt7ZKs8auTnhhBPk5ptvLoxmwgMMZzTw1TE+umJQ50lLly5dZIcddtB/HTt2lKZNm9aIizeSQQC7tY4dO1aX0U8//cQp3skolhqpQKcUpoehYwpTvt944w29IyiWWuD3h98hfoPGoTOrXbt22m+LFi3MbX6SAAnkjABGwm666aYivY1GPDrlzB4MqCOgs3fccUe9RATLRDbaaKOckUpfdqm/01dmM2fO1Hr5/fff15/Q57Nnz9YZwW8Suh5GtHHQ5WhXT5o0SajLDZVsf9KYznD53n777TJ06NCiHKKxDsMZChhHakAB82ieIkSJ/4LRh549e8rRRx+t10snPsFMYIEAFK46r7JgYGO9NHbRtxvV3bt3F6y9oiMBEsgfgdtuu02GDRtWlHGcDgCdjT90dkNvr7vuukV++CUdBKi/01FObqn8+eefBcb15MmT5b333tPHXH711VeF/WwQfvfdd5cJEya4RcXnGSDAQ9EyUIjlsoBpKYccckiR4dysWbNy3nk/JQSwORwMruOOOy4lKWYyDQGMRnfo0EH/HaU2NIHD7/STTz4pGNjY44COBEggnwRQH+DIPIw6w3DGX6tWrfIJI4O5pv7ORqG2bNlSt8PQFjNu8eLFunMcBjYMbex3gCVcblPDTXh+ppcAR6bTW3ZMOQmQAAmQAAmQAAmQAAmQAAmQQJUIcAOyKoHna0mABEiABEiABEiABEiABEiABNJLgMZ0esuOKScBEiABEiABEiABEiABEiABEqgSARrTVQLP15IACZAACZAACZAACZAACZAACaSXAI3p9JYdU04CJEACJEACJEACJEACJEACJFAlAjSmqwSeryUBEiABEiABEiABEiABEiABEkgvARrT6S07ppwESIAESIAESIAESIAESIAESKBKBGhMVwk8X0sCJEACJEACJEACJEACJEACJJBeAjSm01t2TDkJkAAJkAAJkAAJkAAJkAAJkECVCNCYrhJ4vpYESIAESIAESIAESIAESIAESCC9BGhMp7fsmHISIAESIAESIAESIAESIAESIIEqEaAxXSXwfC0JkAAJkAAJkAAJkAAJkAAJkEB6CdCYTm/ZMeUkQAIkQAIkQAIkQAIkQAIkQAJVIkBjukrg+VoSIAESIAESIAESIAESIAESIIH0EqAxnd6yY8pJgARIgARIgARIgARIgARIgASqRIDGdJXA87UkQAIkQAIkQAIkQAIkQAIkQALpJUBjOr1lx5STAAmQAAmQAAmQAAmQAAmQAAlUiQCN6SqB52tJgARIgARIgARIgARIgARIgATSSyAxxvQnn3wiY8aMkddff90zzccff1yWLFni2X8Qj1dddZXcdNNNQYJGEubrr7+WwYMHy4wZM3zFN336dLn55ptl6NChvsLlybMfmVuwYIHceuutctZZZ8m//vUvWbRoUWyogpZ5VAkK+n7KnHsJ/Pbbb4J666KLLnL3rHy89NJLMnLkSLnyyitl5syZnsIE9VTtui7I+5cvXy4vvviinHrqqfL0008HzTrDeSTw2WefyRVXXCHPP/+8DuFXnhHohx9+kIkTJ+rwcf0LWodFlZ6g76c8Vy6BMPJHHV6ZLZ5S/twZoc578skn5cwzz9Se/daB1OmVGadWBq0EuC+++MI6/PDDLYXYuv/++11TNH78eGv77bfX/n/++WdX/2E8bLXVVlbnzp3DRBEq7Lhx43Q+VUPRczxKaVj33Xefte6661pt27b1HC5PHv3I3Oeff261adPG2mSTTawGDRro8th4442tWbNmxYIsSJlHmZAg76fMeSuBO++80/rTn/5kbbbZZq4BLrvsMmvrrbe2hg0bpuWvbt26Fuq+uFy167og73/33Xc1H+iO2267LS40jFcRmDp1qnXyySfr+u+OO+7QTPzI85w5c6zTTjvNaty4sXXSSSfFyjRIHRZlgoK+n/JcvhTCyB91eHmu9ieUPzuN0tf4bbdv397aYIMNtAc/dSB1emmm9rtplUGxZ6Ka12+99ZZW0m7G9Lfffmvh79BDD9X+4zamVa+TpUYhq4nG+vHHHwO9/4ADDghkTN91112B3pe2QF5lrmfPntYHH3ygs4cGoRrt17KnZgzEluWgZR5VgoK+nzLnXgL77LOPqzH91VdfWQ888EAhMnRWNG/e3Npzzz0L96K+qHZdF/T9+G0GMabxW/7vf/8bNcZMx/fpp59q1nfffXchn17kGZ7feecdXY+irOI2pvG+oHUYwkbhgr4/qDznQW8HlT/qcO8STflzZ3XwwQdbG220UcGjlzqQOr2Ay/UiqAxWU6cnZpp3vXr1lI4VqVOnjv4s90/1Bgn+VM9QOS+R3m/atKmonvRI4/QbmRrJ8htE+69fv74rT2fEEyZMkHPOOcd5O5Pfvcic6iUTNWtCttlmG82gdevWcvHFF4saJZQ33ngjNi5ByzyqBAV9P2XOvQQgd271HKY6HXLIIYXIVl99dVEdFdKsWbPCvagvql3XBX0/ZA7Ojamd14oVK+Swww6Tb775xn6b1y4EUO/BmU9ce5Fn+Ntxxx1l8803x2WtuKB1WFSJC/r+IPKcF71t5M58oqzc5I863J9EU/7ceUH+/MggYqROd+dqfASRwWrr9FWtEJODmD9Vd4S8/PLLMnnyZF0BQrHutddeNd6qRptFTaWQ+fPnS//+/WMxnH///Xe91g4NODV9V69jxDonNFjVtO5CmlRPh6iplXrdsrmJ9ctPPPGEHHfccTo/zz77rKjp1DJkyJAiw/v777+XZ555Rq933mWXXaR79+4mCs+fK1eu1O9AYxqNEbjvvvtOHn30UTnxxBNF9dTqtKODAUaf/Qde7iUvvPCCvP3227LmmmvqBnurVq20Vyjk/fffXzdKsT5YTROXfffdt1w0qbmPMnzqqacEn2p6tnTq1ElUr2JR+svJHDpt4N/u1llnHVHLDMT84O3PKl17lblSZe5V5vD+cuVbKW32Z6Xej7RDPiBff/nLX/SaITVVXgYMGCCbbrqpPXjJ63K/hazKnNe6Dh0yqD/QWXPQQQcV2Klp4IVrXKBMVM+2XHrppUX3vXzxKjvOus6rvCIN5crXS/qMn1Lvj0Pmli5dqutK/E7WWmstXd/tt99+gt81XU0Cr7zyil7j3LBhw0JdWK7jopw814w1+B0v8lyuDsP6ejedj5SxDg1ePlGHDCt/Uepw5I3yN0Ps7dms6nC7HKN9+PDDD+vO1x122AEzest23parA6nTVxGNw35JhE53HW+P0IMa8Sysa5s0aZK10047FWLHd4XaOuKII6ztttvO6tWrl6WUnqUMPj09rODx/y7OPvts7T/ING9VmNaBBx6ow6tGlNW7d29rxIgRlmpMWcpAstSPxlINSQtrIdZYYw1r7bXXLrx+7NixOk1Y93XsscdamOqLtCLtyM+yZcu0X7XJgHXMMcdY7733nvXQQw9ZyhjW7yhE5OFCbZBl9evXT8etNhPTIZQRb6nRUX3v6quvto4++mirT58++vvf//73olhVR4S13nrrFe4pgdNTlDGVXnVo6LhV77mF98C9//77lqokdfyqgtTfC4FTevHLL7/o9Wb0dzMAAEAASURBVPWYJosyxfIArHmB8ytzdgRYQ61GqO23Kl57kTlEUKrMvcqcW/lWTOD/PSz1fvzGlNGsZQx7G6gRPb12Er8L/GZ++umnQtROmcODSr+FLMoc8lyprkN9s+GGG+rfLa632GILzXbgwIEIWsOpxptmfsYZZ9R45nbDi+yUquu8yiveX6l83dKH56Xe70fmILOof9XGgIXXVUrTr7/+qvUQwpx++ukW6jrUE3Q1CUCOsawFU/DVKL616667atbYk8M4P/KMOgrcg07z9iLPpeowr/KchDrUrzxntQ6FfEUtf0Zm8elXhyMM5a9mezbL8ocyx3p7NZBlKSPZUqPLlhposlTHoqUGEfBYOz91IALkUacj317tl1J1YKW6OQk6vdbWTKueYr3xDhouxl1yySXmsmDYHHnkkYV7WNO62mqrFRnd5mEYYxpxYDMLKHU0/o1Tu4xqQxIGKH40cDC67cY07qHRq3rmrY8//hhftTv//PN1fLfccosFww3rKdAAMU6NWuvnb775prnl6fPDDz/U4YwxjUBqR2l9T/WeF+JQo6faaCzcUBdOw0btwmpdeOGFBS9oYIBBjx49Cvf69u1rrb/++oXvab+4/vrrra5duxayoWYf6M3ZcMMY015lzkSiZlfoTgqUsx/nVeZKlbmbzCEdXsrXS3pLvX/x4sVaVvbYY4/CbwMVI+RH7WxZiNYpc15+C1mTObe6DooXG9lBScPBv5oRolk6NxpUuybr9dXgjD90Zvh1XmQHcTrrOi/y6qV8vabX+X6vMudUvF7ShM5E8Lz99tu9Ji93/iCLagqtNW/evELesS4X3JzGtFd5DmtMIyFe5LlUHeZFnpNQhwaR56zVoSjnOOQP8cIF1eEIS/mzLGd7Novyh7KGwwbE6HQ1Dvoa7XunMe21DsyzTgdDL/aLsw5EOLe6udo6vdbWTGNaGKY5YB0gjoaBw5EvTqcaVIVbmG6N6bRq4xKZO3du4X4UF5jqBadGwQvRKaNZ1GiynsYzbdo0fR9T25wOYTHFV+0+W3iEI5NwD1OS1MivqIagqJEkOf744/UfjgPBFGOl0AthvFyUer9Zw21ff7blllsKjiaq5HD0jOpFLKQJU0ZRJpjCYnflpvDZ/aTlGoywtEApQFEbwogaERS7jCEf9u9uMod1GRdccIGe5o+p935cnDKHdHgtX7c0l5K5Ro0a6WlNkGEzvR0yB1dJ7rz+FrIkc17qOtQdZtoX/GPJCByWI9id2nBMlNEtqI9QV9177701/Nj9l7p2q69MGGe5e5FXr+Vr3lHp0/n+uGUOacmS3FViG+QZ9AP0r32dvpp9paNycvMqz0HS4QzjRZ6dsoQ4vMgz61An7ep9j0v+wuhwI0eV2n/wQ/mrntxE+WY1w0kviVSDCIVoUfdhyWXQOjDPOh0Qs2q/1Oqa6RtuuEGvgVa9WHr9MBqGMGAruS5duogaodZr8oJu6FEpfuczs/4ThhfWUnt1TZo0ETWirQ021aui19/deOONXoOH9odNOFTnTdl41DQIzRDnTrutg3ZWEmUjTcGDbt26Fc7pxTr3a6+9VtTU+IopryRz6AD629/+Jh07dqwYh5+HUcicn/L1k7ZKfiFzcJXkzutvIUsyByZ+67qdd95Zr0fH2uNSDuv+UF/CaEF9qEa3S3nzfM9eX3kO9H8e7fLqtXz9vqOc/yhlDu/ImtyV4xbkvtpRVdQyo6KgXnm5yXNRpBF8iUKesWcKfn9edGQESdZRRCnPXssmqrTHHU9c8heHDqf8ZbMuhQzCqSMqi8Tdy2/NrQ6kTv8DaRbsl1obmQY2jKyoNcSi1ifrDU2wsZNzVPQPvKuusAkWBBcjirXh1LFb+jXODarc3q2mrwlGnxEOgoHNmbB7X1Kc2Zjso48+ck2Sl4rCNZKEeEC+x4wZozd5wgZDao27XH755RVTV07m/vnPf2ojGpsVRemikDk/5Rtl2t3i8vpbyJLMgYnfug6jf5jpUKnewUwAyKZa6+eG3fW5vb5y9ezwYJdXr+XriCLWr37SlDW5iwqsWscu6khIPSpTKk43bl7kuVS8Qe9FJc94vxcdGTSdQcJ5lWe3Mgny7mqFiUv+4tLhlL9sGtPYBBkOG/Y6ndvvzUsdSJ3upFr6u5/2rVu5lH5D+Lu1ZkyjsrnnnntEbeglGLHFdMZZs2bpXakrZQNTdLFzIMLVhsO0Dkxt89tgVWuhZcmSJaI2A5Ntt91WFi5cKGr9dFGSMXp40003Fd2rrS/4YaNDQq291lPQ7e9Vm2oUpupCEDENKitOrYnUOyFj13hMcceO6moddcXslZK5xx57TI/ADho0qCgs/IZ1Ucic1/INm1a/4b38FrImc0HqOsgmFLc6D7UsYsyWQR2y9957l/Xj9YG9vvIaxvizy6uX8jXhauvTS5qMws1SXRclX0xjVRvjCWYezJ4923fUXuTZd6QVAkQhz5iJ5kVHVkhGLI+8ynOWZDkO+YtTh1P+stVuND/kDh066EvoPL/OSx1Ine6Nqpf2bbV1eq0Z05gKCuPSTAlFgxDTtp1Tt9VmJwW6EDRMacSUSadTu6/qWzBgwzh7L/TMmTNFbUpVNHKJhjHShJ5Su8P3zz77rHDrkUceEbXRlTamsS5cbeKlpxdjVBT+1I7eMmzYMFG7lRfCeLnA++Hsa8ZNb5naObwQBZ7Dr+GLB0g3jHpzT22ioNeDY+rzxIkTtXGpNiTT/nC0FhxGbzHCjilvOIoH4dPsvvzyS1EbPugsYCoWlhj4lTkck4LRbMw0gCziD9PFhw8fLmqjG994vMgcIrWXOb5Xkjk891K+8OfmSsmc2kxPy5FT5hAX9gcwzilzXn4LWZM5L3UdeKqNTAw2fRQgWJnj83Ck3t13361HB40ndAxBDv0sPzFh3WQH/srVdZXk1Uv5mjS4fTrf70fmEDf8w3lJE2QODo1glFeQ37GOIMP/zjzzTJ07HMGIsoG8Pvjgg/rea6+9JmoX/0Lu3eTZeIxKb7vJc6k6zKShkjwnpQ5FWv3Kc5b0NvIfpfxFrcMpf8Xt2azpcMgfHGYhYt8dDARiPyQ4LAXBIAqOSIPegCzAudWB1Okakx40wJWzLYk629gqxg40dSD8u9XNVdfpKvG14rAzq8qsPmIHRxMpI9NSGzkV3q2MYn3MlNrgyDrllFP0kQiqUaSPcCp4UhdKYVg4EkqdD6p3FVUjhdZzzz1n9+LpWo2K6/DY6Rk7E2J3cDUibSmjWIdXU9ys6667zlJnMGt/OJZG9dDrZ8qI0rucnnDCCXqXPxwbpNYhW8rILbxbnf+sd/tTMqDDqzUX+pisggcPF9jN3ByNhfDqvGtLGcF6J0HEiyNLkA8cdaV6bvR7Ro0apXcTByMc3wV/4Iy0YxdC5FP1+ur7+MTOeqpHu5Aa7LaO+y1atND5LzxI6QXyripDC7t6YwdaHMmC48rgvMjcu+++q49oM+Vo/1QbJBUdC+WGyE3mEL5UmeO+F5nzUr6Iq5Ir9X5VoWluyDuOE8Hu3arjyVJnsms5UiMn1uuvv65/l06Zw7vcfgtZkzm3ug71lVpzb6mNSCz8XlG25513XmGXdDBT0xH1cXr4XatOOOuiiy7SO9DimV/nJjvl6jov8oq0uJWvW3pLvR+77uO3Wknm/ve//1lq+p0+jQD+wNTshu4lTarjQsePHerV1HW3ZObyOfS06oS0UNep81X1jqrQiWpjzUI96kWeAQ9lA52OsoL+vu2227T+8gvWTZ5L1WF4hxd5rmYdGkaes1aHGpmIQv6i1OFIF+VPLGd7Nqvyh/JWm3/qo7FQb2EXbxwNivY+jgnEKTvQ917qwLzrdNggXuwXtCVxwpBTp3upm6up09ETUGsOx02p3gfXhguObFIjorGmyyjW0aNH63eh8YbC8uJQmeLILji1k3HR0SHO8DibM2kNNTRecaxXOcZqKmlRx4AzT2n6bo44ww8Z+SrnsiRzbuVbjkHc9yv9FrIkc+Dopa5DOaH+KOfQyYXOQ6/1Url4/NRX9jj81pGVytceb21eV0oTuOK8T7rKBCDLqB/h1GiC1uGlQrjJc6kwQe7VhjyzDg1SMvGEofzFwzVIrJXq06zpcCefOXPmFI67LXcsqlsdSJ3upOr/e6W6uZo6vVZ388Y6GDgzpVh/KfEPu2IHddjczM1hurV9TTSm/wbd4AzTuSu5du3a1XiM9eLOI3Ccntq2bSvnnnuu83Yk37E1vf1YL2ekzZs3d95K7Xcjc2okpGIewsic1/JUMyAKaYhT5sqVr9ffhv24uEKCI7go9Vsw0WZJ5pAnI3eV6jqUU6X6A5tulDvtwKvMOeuQSu8zZVHq04u8lirfJMsc1lihnqWrTACybOpH1Ylc1rObPJcNqB4kTZ5Zh1Yqrdp9Rvn7g3eS69Os6fA/qK+6at26deFWuWNR3erASjodkXst30JC1EXedHq5uhlMqqnTa9WYtgtAXNf28+DKvQM/CtW7oR+r3rRy3sreR1isk8B8/nI/qrKB1QMY7m7pzHrFVIlP2p55Lc9qyhyYuskc/NgVBr7TJZOAV5lD6oPWV2Hk1VCjzBkS/KxEgPJciQ6fxU2A8hc3YcbvhYBXfUmd7oVmLfvxP8ie/hBYAzFw4EA9Jx9rIO64446yU9ecuVU7X1tqtEiHVb1Iltqxz+mF30mgBgHKXA0kvFELBILWV2HktRayxVfklADlOacFn5BsU/4SUhA5TgZlMJmFXwfJqmX7veqvwy5yZtTFJAYjwWZrdXOv1Cd2mbMja9iwoWDaAR0JVCJAmatEh8/iIhC0vgojr3HlhfGSAOWZMlBNApS/atLnu0GAMphMOcilMZ3MomCqSIAESIAESIAESIAESIAESIAE0kKg1s6ZTgsQppMESIAESIAESIAESIAESIAESIAE3AjQmHYjxOckQAIkQAIkQAIkQAIkQAIkQAIk4CBAY9oBhF9JgARIgARIgARIgARIgARIgARIwI0AjWk3QnxOAiRAAiRAAiRAAiRAAiRAAiRAAg4CNKYdQPiVBEiABEiABEiABEiABEiABEiABNwI0Jh2I8TnJEACJEACJEACJEACJEACJEACJOAgQGPaAYRfSYAESIAESIAESIAESIAESIAESMCNAI1pN0J8TgIkQAIkQAIkQAIkQAIkQAIkQAIOAjSmHUD4lQRIgARIgARIgARIgARIgARIgATcCNCYdiPE5yRAAiRAAiRAAiRAAiRAAiRAAiTgIEBj2gHEz9fZs2fLhAkT/AShXxKIhMCLL74oc+bMiSQuRkICXgmgvkO9R0cCaSXwwgsvyNy5c9OafKY7AwSovzNQiBnIAvV5dIVIYzoESyjlHj16hIiBQUkgGIE999xTXn755WCBGYoEAhLYa6+95KWXXgoYmsFIoLoEli9fLpDh119/vboJ4dtzTYD6O9fFn5jMU59HVxQ0pkOwXLhwoTRt2jREDAxKAiRAAukh0LBhQ1m6dGl6EsyUkoCNAHQ2HPW2DQovSYAEckmA+jy6YqcxHYLlokWLqJRD8GNQEiCBdBFo1KgRjel0FRlTayNAY9oGg5ckQAK5JkB9Hl3x05gOwfK3336jMR2CH4OSAAmkiwB7stNVXkxtMQFjTDdp0qT4Ab+RAAmQQM4IQJ8vWbIkZ7mOJ7s0pkNw5ch0CHgMSgIkkDoCVL6pKzIm2EbAGNOc5m2DwksSIIFcEmDneHTFTmM6BEsoZirlEAAZlARIIFUEqHxTVVxMrIMAjWkHEH4lARLILQFO846u6GlMh2BJYzoEPAYlARJIHQEq39QVGRNsI0Bj2gaDlyRAArkmwM7x6IqfxnQIljSmQ8BjUBIggdQR4DTv1BUZE2wjQGPaBoOXJEACuSZAfR5d8dOYDsGSxnQIeAxKAiSQOgIcmU5dkTHBNgLQ2WhA1qtXz3aXlyRAAiSQPwIcmY6uzGlMh2BJYzoEPAYlARJIHQEq39QVGRNsI0CdbYPBSxIggVwTYOd4dMVPYzoESyrmEPAYlARIIHUEOC0sdUXGBNsIUGfbYPCSBEgg1wSoz6MrfhrTIVhSMYeAx6AkQAKpI8CR6dQVGRNsI0CdbYPBSxIggVwToD6PrvhpTIdgScUcAh6DkgAJpI4Ap4WlrsiYYBsB6mwbDF6SAAnkmgD1eXTFT2M6BEsq5hDwGJQESCB1BDgtLHVFxgTbCFBn22DwkgRIINcEqM+jK34a0yFYQjE3adIkRAwMSgIkQALpIcBpYekpK6a0JgEa0zWZ8A4JkEA+CVCfR1fuNKYDsrQsSxYtWiRNmzYNGAODkQAJkEC6CHBaWLrKi6ktJkBjupgHv5EACeSXAPV5dGVPYzogy8WLFwsMahrTAQEyGAmQQOoIcFpY6oqMCbYRoDFtg8FLEiCBXBOgPo+u+GlMB2QJpQxHYzogQAYjARJIHQFOC0tdkTHBNgI0pm0weEkCJJBrAtTn0RU/jemALGlMBwTHYCRAAqklwGlhqS06JlwRoDFNMSABEiCBVQSoz6OTBBrTAVnSmA4IjsFIgARSS4DTwlJbdEy4IkBjmmJAAiRAAqsIUJ9HJwk0pgOypDEdEByDkQAJpJYAp4WltuiYcEWAxjTFgARIgARWEaA+j04SaEwHZEljOiA4BiMBEkgtAU4LS23RMeGKAI1pigEJkAAJrCJAfR6dJNCYDsiSxnRAcAxGAiSQWgLsyU5t0THhigCNaYoBCZAACawiQH0enSTQmA7IEkq5bt260rhx44AxMBgJkAAJpIsAlO+yZcv0sYDpSjlTm3cCK1eulCVLlvAEjrwLAvNPAiSgCVCfRycINKYDsoQx3aRJk4ChGYwESIAE0kcA08Lgli5dmr7EM8W5JsDZZLkufmaeBEjAQYD63AEkxFca0wHhcbpYQHAMRgIkkFoC6MmGozGd2iLMbcJpTOe26JlxEiCBEgSoz0tACXiLxnRAcDSmA4JjMBIggdQSMMoX02XpSCBNBGhMp6m0mFYSIIG4CVCfR0eYxnRAljSmA4JjMBIggdQSMMqXI9OpLcLcJpzGdG6LnhknARIoQYD6vASUgLdoTAcER2M6IDgGIwESSC0BrrFKbdHlPuE0pnMvAgRAAiRgI0B9boMR8pLGdECANKYDgmMwEiCB1BIwPdmc5p3aIsxtwhctWqTz3rRp09wyYMZJgARIwBCgPjckwn/SmA7IkMZ0QHAMRgIkkFoCRvlymndqizC3CefIdG6LnhknARIoQYD6vASUgLdoTAcER2M6IDgGIwESSC0BTgtLbdHlPuHQ2fXr15cGDRrkngUBkAAJkAD1eXQyQGM6IEsa0wHBMRgJkEBqCZiebE7zTm0R5jbh1Nm5LXpmnARIoAQB6vMSUALeqmMpFzBsboKNGzdODjvsMN2j3aRJE8Hfr7/+KmussYZsttlm0qxZM1l99dWlZcuWMnr0aH2dGzjMaOwErr/+ernllluK3jN16lRp06ZNkay1b99ennrqqSJ//EICYQjce++98vDDDwvWmy5evFhgkHz88cey1lprSd26dfV505jyvfHGG8v//ve/MK9iWBKIjMCCBQtkvfXWk2XLlknjxo21zl6xYoXMnz9ftt9+e627jd4eOnSodO7cObJ3MyISsBOg/rbT4HU1CVCfx0e/fnxRZyfmtm3byu+//67/zCYmyB0U88yZM3VG69Spoz/POeecIgNH3+Q/EghBAA3DTz/9tEYM06dPL7rHfrEiHPwSAYHJkyfLf/7znxoxzZgxo+ie6eEuuskvJFAlAujoxhRG6GjMovjll18KKXn11VcL17iAcU1juggJv0RIgPo7QpiMKhQB6vNQ+CoG5jTvinhWPdx5552lRYsWFX3Wq1dPevfuLWuvvXZFf3xIAn4JDBgwwDUI1gIeddRRrv7ogQT8EPAiU6j7Dj74YD/R0i8JxE7goIMOktVWW63ie7B+2kv9WjESPiSBCgS8yBf1dwWAfBQZAerzyFDWiIjGdA0kNW9gOmPfvn315iU1n666g5Hr4447rtxj3ieBwAQ22mgjPXpiZj+Uigjy50VplwrLeyRQjsBWW20lHTt2lEqyh+mzBxxwQLkoeJ8EqkJg3333leXLl5d9NwztQw45xLWjvGwEfEACHghQf3uARC+1QoD6PD7MNKY9st1vv/30NO9y3jEivc8++5R7zPskEIrAoEGD9BrVUpHA0ME0xQ022KDUY94jgVAEhg8fXtGY7tChA2UvFGEGjoNAt27dpNLyAxjaxx57bByvZpwkUESA+rsIB79UkQD1eTzwaUx75Lr33nuXHZnGFJ0RI0aUNXY8voLeSKAsAUyjXblyZcnnmDkBZU1HAnEQwIwH1HGlHEb3OCOiFBneqzYBGNI9evQQLEMo5TbddFPp0qVLqUe8RwKREqD+jhQnIwtBgPo8BLwKQWlMV4Bjf9S0aVPZY489ShrMmOY4ePBgu3dek0CkBLBzd9euXUvKHzYe69+/f6TvY2QkYAg0b95csP60lEGN0T1O8Tak+Jk0AlieVWpjRhjYJ5xwQtKSy/RklAD1d0YLNoXZoj6Pp9BoTPvgikajc+0glDKmd+MYDjoSiJNAqdFnyB+mM7Zu3TrOVzPunBPA8UFYl+90G264oWyxxRbO2/xOAokggE1ByxnTAwcOTEQamYh8EKD+zkc5pyGX1OfRlxKNaR9MsaEJRqHtDt8xxZuOBOImcOCBB9YYmcbU71JKOu60MP58EcCsHBwRaHec4m2nweskEsB56Dj6yu4gt5h2u+aaa9pv85oEYiVA/R0rXkbugwD1uQ9YHr3SmPYICt4w+ozd8OwOyrpnz572W7wmgVgIYHpOr169itYAomGIqYx0JBAnAczIGTZsWNFUb07xjpM4446KgHOJAjcei4os4/FDgPrbDy36jZMA9Xn0dGlM+2Tar1+/wtmVWEOI47DKbXDiM2p6JwFXApiaaDYig/xhtsQaa6zhGo4eSCAsgaPUOeb2mTk4wWDHHXcMGy3Dk0CsBFBH2pco/PnPf5Zddtkl1ncychIoRYD6uxQV3qsGAerzaKnTmPbJ0352JRqWQ4YM8RkDvZNAcAJ9+vSRRo0a6QjQQOS6v+AsGdIfARy9tvvuu+vOQzNV1l8M9E0CtU8As8nMnibceKz2+fONfxCg/v6DBa+qS4D6PFr+NKZ98uzUqVNhsyccl7X++uv7jIHeSSA4gcaNG+udlREDdpjnEoPgLBnSPwFM9UYnIqbKYg0gHQmkgQCmesPxGME0lFZ200j9nd2yTWPOqM+jK7XSh4dGF3/gmCZNmiTffPNN4PBxBtx2223lhRdeEHyOGzcuzleFjhsNX0xr22GHHULHlbcIZs2aJa+99lriso0eRThMsX3iiScSl75SCcKU9P3337/GBmql/PLeKgJJlD/UJ5gZAaNk9uzZia//jCxR/gyJeD6fffZZmT9/fjyRRxBrs2bNdCydO3fWujuCKGOPAr+1bbbZRrbccsvY35W1FyRZHtOovyEflMfgv5KkymNa9Xki5VEdG5E4d//991tqOpalgPEvAgatWrVKXBknPUGqI8dq37495S8C+TO/43feeSfpxZ6Y9FH+oq/7KX/xiPfIkSNZT0ZYT5r6Ep8dOnSIp9AyHCvlMfq608gk5dH/D4fymA95TNw07wceeECvAz355JP1+ZBKdPkZgMHcuXP1yDmO/8D6RjrvBL799lu9NhS7b4IjZTD4b/Bvf/tbYTQavaB07gQof8Hlzflbpfy5y1sYH6effrpcffXVcu+997KeDKCnnfKK79OmTZN27drp5WRmf4wwZZSnsJTH6OpOI5uUx+C/IMpjfuQxUca03ZC+8sorg0twzkP+9NNP0r17d5k3b54cf/zxRcfZ5ByNa/bthsyLL74oalTfNQw9lCZw2mmnybXXXivXXXddaQ+8W4MA5a8GksA3KH+B0XkKaBqKd999txx22GGewtBTZQJY2oZN/lq2bKn3JGBHeGVe9qeURzuNaK4pj8E5Uh6DsysXMsnymBhjmoZ0OfHxd99uSE+cOFErZX8x5Nc3DZnoyt4YMmPHjtVrpaOLObsxUf6iK1vKX3QsS8XEhmIpKuHu2RuK2JOFo9LeeVIevbPy6pPy6JVUTX+Ux5pMwt5JujwmwpimIR1WzFaFdxrSmCpG540ADRlvnLz4shsyAwYM8BIk934of9GJAOUvOpalYmJDsRSVcPecDUWMTNN5I0B59MbJjy/Kox9axX4pj8U8oviWCnlU6yKq6qZMmWLVqVOHG5hEsIGJ2rHUUjtFWkrwCmWqpstb6ozNwndelCaw2WabUQYjkEFVcVprr722hU0Ejfvuu+802zfffNPc4qeDAOUvuk1KKH8O4YrwK37X+I3zL1oG66yzjqV27bZUh3ihtNS+MVaXLl0K33lRkwDlMVo5NL9rymNNWfNyh/KYX3ms+tFYGE1VQio333wz16eqmiyMO//882WfffbRm5eEiSePYRcsWCCDBg2SPn365DH7keV5/Pjx8vzzzwtHpP0hpfz541XON+WvHJlo7uM4NOwjAX1NFx2B4447ToYMGcJlWT6RUh59AvPonfLoEZTDG+XRASSir2mQx6ob04Y1jBg1gmq+8jMAgauuuqqwc7IJrkb9zSU/KxDAubnbbbed9O/fv4IvPnIjMGPGDHnppZfcvPG5gwDlzwEk4FfKX0BwPoI1bNiQ9aQPXl68nnLKKaKOA/XilX4cBCiPDiARfKU8BodIeQzOrlzINMhjItZMlwPI+yRAAiRAAiRAAiRAAiRAAiRAAiSQRAI0ppNYKkwTCZAACZAACZAACZAACZAACZBAognQmE508TBxJEACJEACJEACJEACJEACJEACSSRAYzqJpcI0kQAJkAAJkAAJkAAJkAAJkAAJJJoAjelEFw8TRwIkQAIkQAIkQAIkQAIkQAIkkEQCNKaTWCpMEwmQAAmQAAmQAAmQAAmQAAmQQKIJ0JhOdPEwcSRAAiRAAiRAAiRAAiRAAiRAAkkkQGM6iaXCNJEACZAACZAACZAACZAACZAACSSaAI3pRBcPE0cCJEACJEACJEACJEACJEACJJBEAjSmk1gqTBMJkAAJkAAJkAAJkAAJkAAJkECiCdCYTnTxMHEkQAIkQAIkQAIkQAIkQAIkQAJJJJApY/qTTz6RMWPGyOuvv+6Z9Q8//CATJ0707D+Ix6+//loGDx4sM2bMCBKcYVJE4LfffpPHH39cLrroIk+pfuONN2TUqFEyevRoeeeddzyFCerpqquukptuuilocIZLAQG/8vfSSy/JyJEj5corr5SZM2fGmkPKX6x4UxP5Z599JldccYU8//zzOs1+ZdZkFPXskiVLzNdYPimzsWBNVKRh5ZE6PFHFmfrEhJVH6vTqiEBmjOkpU6bIpZdeKmeccYZ89913rjR//PFH3YjcaKON5LHHHnP1H8bDe++9J3feead89NFHYaJh2BQQePjhh2Xo0KFy//33u6b25JNPll69emnZOO+882TnnXeWf/zjH67hgnq444475O677w4anOFSQMCP/F1++eUCGVywYIE2bjbYYAN56qmnYssl5S82tKmJ+KuvvpJbb71VTj/99ELnsh+ZRUYhozvssIP07dtXFi9eHGveKbOx4q165GHlkTq86kWYqQSElUfq9OqJQ2aM6U033VROPPFEzyS/+eYbGTRoUOzKGAnq16+fwHjv2bOn5/TRYzoJHHXUUbqh55b6Rx99VOrWrSs//fSTQBZfeOEFWXPNNeXcc88VzGSIw7399tsyYcKEOKJmnAkh4FX+IGPt27fXHXwwbr788ktZY4015JprroktJ5S/2NCmJuKNN95Yhg8frtNbv359/elVZuF5+vTp0qFDB4G+rw1Hma0NytV7Rxh5pA6vXrll9c1h5JE6vbpSkRljGhjr1aunadapU8eV6o477iibb765q7+oPPzpT3+KKirGk3ACkEM3GXzzzTf1aKDx2717dznkkEPk999/l0mTJsWSw6ZNm0rjxo1jiZuRJoeAkalKKVq+fLmWN+Nn9dVXlwMOOECaNWtmbkX+SfmLHGkqI0QnIpz5xLUXmYU/zJ7AHzqCasNRZmuDcnXfYeTQfCI1XuSROry65ZbVtxs5NJ9e5ZE6vboSsapruLpp8P32OXPm6Kle+ERPTqdOnQTTte3u559/lnHjxsn8+fOlf//+sShfGD4vvviiQOFusskmeq0seofQKO3cuXMhOStXrpSXX35Z0GCFEQ+H9dNPPPGEHHfccfrZs88+K23btpUhQ4bUMHgwaokecoxcwuBq1apVIW5eVIeAFxlEyrCeCmW7zTbbyEEHHVRILJYjQGHbXZ8+feTmm2/W5Wy/73btVZaQ5vHjx+v1+4jTq/zC7/fffy/PPPOMlttddtlFYPzTVY9AWPnbbLPNihKPOgpTzLBUxq+j/Pkllj//r7zyit6bpGHDhlpfg0C5DsdydWaU1CizUdJMX1xRyCN1ePrKPakpjkIeqdOrXLpWlZ3q3bMUAkutc/aUkl9++cXafvvtLbXOz1LGgHXooYdaymjWYdWIno7riCOOsLbbbjtLrUe1lKFrKSPUUps71Yh/6dKl2v9JJ51U45nbDaT3wAMP1OH3228/q3fv3taIESOsddZZx1LT1yy1DkxHoTZFs9Q0b+1PGUr63tixY3Wa1Cihdeyxx1pqczKdVnDYaaedrGXLlml/SJ9af2up9bfW5MmTdTxqhNtCnKWcWnNrnXrqqUWP1AYq1nrrrVd0j19qEgAjsPLiKskgwkMWNtxwQ0sZx/p6iy220OU/cODAitHfcsstWi7mzZtX0Z/9oRdZwu/kzjvvtNQ0XmvttdfWwb3KLzyrDS2sY445xlJr/62HHnrIUp1CWtbt6TDXpeQN74Js47dOV5pANeVPGRbWYYcdZqnGYenEVbhL+asAJ4OP1DIAa9111/WVs3POOUfrMbXRmKWWtFi77rqrrg/uu+++Qjx+68yzzz5bx6E6zQtxeL1Imswi3WAKtnan1uNaXbp0sd/itYNAUuTRJCsLOhx5oTyaEvX3mRR5zJJOT4s8ij9Rid63X2P6+uuvt7p27VpIiBoJtoxSNsb0kUceWXj+1ltvWauttpo2Ugs3/+8ijDGNKKZOnaoVuhr5LkStdge3WrdurQ1YNe1C3//www+1P2NM4yYMK9Uzb3388ceFsOeff772hwoZTu14al144YX6Gv+MUdKjR4/CPfsFjWk7DX/XfoyZSjKIt6Jh2KBBA+vzzz/XiVCjftb++++vy/bpp58um7A99tijRoOqrGfbAy+yBO/o/DHGNL57kV90WqlZHxYawsap2RM6L6WMYxrThpK/z2rJn9pR2VI92ro80eFx+OGH+0u48k35840stQH8NhZR36kZOJa9g/Cuu+7S8mb0NmD4rTPDGNN4X5JkFumh8QIK/l1S5NGkPAs6HHmhPJoS9feZBHnMmk5Pizymbs001jljyrRShnpTLzUCKMpIUO3AP5z9O6Zbq5FsfezQ3Llz//AUwRWmd8OpUfBCbMpYETWKp6fDTps2Td/H1DanQ1hswLLVVlsVHp111ln6HqZ8wCnDRN5//305/vjj9R+mYGIqB6aw01WPgBcZRLmaaTeYzojp/HDldkvGMS9qVoPeXdlvzrzIEuJ0yqEX+cWu5NgxF1PajBziODksr1DGuN+k0n8EBKKUvz333FNUp4+grkI9du+995aV0XJJp/yVI8P70FnQv/a1+Gr2lQbjnObtt84MQ5cyG4ZeesPGKY/U4emVi2qlPA55pE6vTmmmbs10t27dCueiYs3xtddeK0cffXRFemqqlKgRar3uszY2AjM7jWIHb6yl9uqaNGkiaoRKdxL8+uuvOr04Zmnffff1GgX91QKBIDKIY6+woQTWHjsddlLGESxqCrXzUeDvdlnyG4ldfnF2O4z8G2+80W809B8TgajlD8nEhk4wpGHQoK5UI4WhUk/5C4UvM4E/+OADfZqFPUNOI9r+zH5dqc60+4vqmjIbFcnkxhOXPFKHJ7fMk5yyuOQReaZOr92ST93INAySMWPG6E2d0MhX640FZ6tVcmrKit7sBKPYteG+/fZb/Rrnpmhu71bTzgWjfghndvLj2dRu1Gr/eRAZxMgMNqBzygQ6TUaNGqXPf3aOHIfJmV2W/MZjl19skvbFF18IdoqkSwaBKOXPnqMtt9xSUFe2adPGfjvQNeUvELZMBcIGh4sWLdKbZ5bKmJtRXa7OLBVXFPcos1FQTG4ccckjdXhyyzzJKYtLHu15pk6304j3OnXG9O233y7YeXavvfbSU6Cxq7Baw1qREqaFYwdinKNaG05t2KSntvltlKo1qLJkyRLBrs5oSMD4x+7OmGZrd2oDFX3epv0er2uPQBAZxHR97CxvP2scDU1Mn8bsiubNmxcyMGvWLJkyZUrhe5ALuyz5DW+X32233VYWLlwoah1/UTRoQNx0001F9/ildghEJX/O1GImDcp17733dj7y/Z3y5xtZ5gJgGZPafFEwu2X27Nm+81eqzvQdiY8AlFkfsFLoNQ55pA5PoSAkJMlxyKMza9TpTiLxfU+dMY3pNGqBvSaCaVl9+/YV59RttdlJgRiECdMWb7jhhsI9c6F2ZdaXMGDDOPvo8cyZM/U5wfbRcvR4wznXbKNn6rPPPiu8+pFHHhG1uZo2pnHz9NNP12uvMa1z4sSJuvNAbUgmyB/O2qSrDgEvMqg27NKdPiaFOKYNx5qZI6Uw0qt2edey+8ADD2j5hIxefPHFonaj1x0pJqyXTzdZQhyQQ8gO/NpdJflFmtdff329tAIzQiCvmI4+bNgwnU57PLyuHQJRyB+OObv77rv1yKFJNYx01Ft+lqaYsJQ/Q4KfdgJnnnmm/nriiSfq+gcd4Q8++KC+99prr8lPP/1U8O5WZxY8qosodDdl1k40H9dRyiN1eD5kJs5cRimP1OlxlpR73KlbM42psKeccoreDAnnLaNhqY790Tnt0KGDnvZ90UUXiTrGR2Bs4+xUGN8YYbO7//73v6J2FdW3/vOf/+jznzEi7Hc0GRFgJBFrm9daay157rnn5J577ikYTTgfWu3Krd+DRkTHjh0L6xExXROje+qILFE7desRwCeffFL7xT91bJa+DyNG7RKpNycbOXJkYTOrgkde1CqBSjKIhKgjTQSVpNp1XdQxMFo+1A7vghkFxg0aNEggg/hzOoxWqx3onbcrfq8kS5jZ8K9//Utv3IeOo3PPPVdOO+20QnyV5Bd5xTnZ6LRCuvC39dZba0OstmZ6FBLKC00gCvlDffO3v/1NYOQMGDBAn3G/++67y2677RaIMuUvELbMB1K7w+v6D53ALVq00HUH5A26W+3SqmdY4dpLnQlYGOHGpoiPPvqoZodNO7EZKWaq+XWUWb/E0u8/SnmkDk+/PFQ7B1HKI3V6lUvT38bv0ftWU6v0MRk49smLM8dNKaVqqSmJZYMgPjU9tezzKB4oI0SnffTo0fpdOKYLxyB5ccOHD9dHdsHv9OnTi44OcYZXU4n0EVpu+eHRWE5y3r/7OZrIqwyi3FC2cTs/smRPi1/5xRmxaj21PYoa1zwaqwYSTzeqIX8rVqywcJSf1zqrXEYof+XIZO++36NfDAHUmUbHL1u2zFKzZMyjos881pkAwKOIisTA8xfKo782qBcdTnn0LH41PFZbHrOo09Mij6kbmcY6AziMAldy2BU7qMPxReWOMDJxtm3bVtR5u+arHgUPusEZptFWchi5th+hVckvn8VPwKsMotzcyrZcar3KIEaZ7S7o+zCLw01+27VrZ38Vr6tEICr5w8gcjvIr5Sh/pajwXlACkFmjkyvNumGdGZQww/khQHn0Q4t+4yYQlTxSp8ddUuXjT50xXT4r0T2BUYFp1ZUcNozC5hNw2LTHr0NYrNnCOjHs8kxHAnYCXmUQYYLKUhj5taeV19kjQPnLXplmPUeU2ayXcLryR3lMV3llPbWUx3hLmMZ0Cb7YTh5/lZyaLiPnn3++9oKNw7BrKdY/NGjQoFIw/QznuWJttZq+oNfWHnPMMbLddtu5hqOH/BDwIoOgEVSWIL9YxwjnV351IP7LNAHKX6aLN5OZo8xmslhTmynKY2qLLpMJpzzGW6w0pgPyxXmsOJLLfixXpelr9tdgo7PevXsXbmFDIToSCEIgqCyFkd8g6WSYbBKg/GWzXLOcK8pslks3fXmjPKavzLKcYspjsNKlMR2Mmx6B9jIKXSp6+5nCpZ7zHgl4JRBUliC7QeXXa9roL/sEKH/ZL+Os5ZAym7USTXd+KI/pLr+spZ7yGKxEU3fOdLBsMhQJkAAJkAAJkAAJkAAJkAAJkAAJREeAxnR0LBkTCZAACZAACZAACZAACZAACZBATgjQmM5JQTObJEACJEACJEACJEACJEACJEAC0RGgMR0dS8ZEAiRAAiRAAiRAAiRAAiRAAiSQEwI0pjNe0OYs4Yxnk9lLMAHKYIILJwdJo/zloJAzmMXFixdnMFfMUloJUB7TWnLZTHfS5JHGdDblTOfqpZdektGjR0uPHj0ynEtmLckEfvrpJzn44IOlffv2summmyY5qUxbBglQ/jJYqDnI0n333Se33347dXcOyjoNWaQ8pqGU8pPGJMojjemMyh8MaZwX17dvX7n11lszmktmK8kEYMh0795d5s2bJxMnTpSWLVsmOblMW8YIUP4yVqA5yQ4aioMGDZJTTz1VLrjggpzkmtlMKgHKY1JLJp/pSqo80pjOoDzaDel77rlH6tWrl8FcMktJJuA0ZNq1a5fk5DJtGSNA+ctYgeYkO/aG4pgxY3KSa2YzqQQoj0ktmXymK8nyWD+fRZLdXE+fPr0wIk1DOrvlnOScrVixomhEmoZ0kksre2mj/GWvTPOQo3fffVfQWMSINA3pPJR4svNIeUx2+eQtdUmXx8QY0+PHj5dWrVrlTT4ize/s2bNl0qRJeo0qDWn/aCdPnizjxo3zH5AhCgTAcO7cudKwYUM9tZuGdAGN6wXlzxWRqwfKnyui0B6w8QvrydAYiyJYsGCBjB07Vk477TQa0kVk3L9QHt0Z+fVBefRL7A//lMc/WER1lQp5tKrspkyZYqmGt6Wg8y8CBr1797Z+//33Kpdq+l7fuXNnyl8E8offcZs2baxvvvkmfUJQxRRT/qKr/yl/8Qnygw8+aNWpU4d1ZUR1pb3dM3To0PgKLqMxUx6jqzftsohryqP/Hw3lMb/yWAfion44dB4IYPpg/fr15dFHH5UDDjjAQwh6IYF4CKgGrTz00EPSv3//eF7AWEnAhUCDBg3k3//+txx22GEuPvmYBKpH4MADD9QzZe6///7qJYJvJgEbAepvGwxeVp3AY489Jqgn1UAc91gKWBrcgMwHuCVLlmjfmMJKRwIkQAJ5JtC0aVNZuHBhnhEw7ykgsHTpUmnUqFEKUsokkgAJkEDtEzA2jbFxaj8F6X8jjWkfZQilDGcEz0dQeiUBEiCBTBGgMZ2p4sxsZtBApM7ObPEyYyRAAiEJmPrR2Dgho8tlcBrTPordCBp7uX1Ao1cSIIFMEqAxnclizVymoLdNYzFzmWOGSIAESCAkAWPTGBsnZHS5DE5j2kexmykQVMw+oNErCZBAJgnQmM5ksWYuU2ggmsZi5jLHDJEACZBASALGpqExHRwkjWkf7IygGcHzEZReSYAESCBTBGhMZ6o4M5sZTvPObNEyYyRAAhEQMDaNGTCMIMrcRUFj2keRG2Oavdw+oNErCZBAJgnQmM5ksWYuU9DbprGYucwxQyRAAiQQkoCxaYyNEzK6XAanMe2j2E2vDRWzD2j0SgIkkEkCNKYzWayZyxQaiKaxmLnMMUMkQAIkEJKAsWloTAcHSWPaBzsjaEbwfASlVxIgARLIFAEa05kqzsxmhtO8M1u0zBgJkEAEBIxNYwYMI4gyd1HQmPZR5MaYZi+3D2j0SgIkkEkCNKYzWayZyxT0tmksZi5zzBAJkAAJhCRgbBpj44SMLpfBaUz7KHYjaFTMPqDRKwmQQCYJ0JjOZLFmLlPQ26axmLnMMUMkQAIkEJKAsWmMjRMyulwGpzHto9jNFAgjeD6C0isJkAAJZIpAkyZNZOHChZnKEzOTPQJoIFJnZ69cmSMSIIFoCJj60dg40cSar1hoTPsobyjlBg0aSJ06dXyEolcSIAESyB4Bjkxnr0yzlqNly5aJZVk0prNWsMwPCZBAZARg06y22mrCkengSGlM+2DHHm4fsOiVBEgg0wRoTGe6eDOROdM45DTvTBQnM0ECJBATAdSRpr6M6RWZjpbGtI/i5a6gPmDRKwmQQKYJ0JjOdPFmInOmcWimMWYiU8wECZAACURMAHUkp3kHh0pj2gc7jkz7gEWvJEACmSYAY3rRokV6Gm2mM8rMpZaAaRzSmE5tETLhJEACtUAAdaTpfKyF12XuFTSmfRQpBI3TxXwAo1cSIIHMEoAxjfWoixcvzmwembF0EzCNQxrT6S5Hpp4ESCBeApzmHY4vjWkf/DjN2wcseiUBEsg0ARjTcNzRO9PFnOrMGWOaneCpLkYmngRIIGYCnOYdDjCNaR/8oJjZw+0DGL2SAAlklgCN6cwWbWYyxmnemSlKZoQESCBGApzmHQ4ujWkf/DjN2wcseiUBEsg0ARrTmS7eTGTOjEyzEzwTxclMkAAJxESA07zDgaUx7YMfp3n7gEWvJEACmSZAYzrTxZuJzBljmtO8M1GczAQJkEBMBDjNOxxYGtM++HGatw9Y9EoCJJBpAjSmM128mcgcp3lnohiZCRIggZgJcJp3OMA0pn3w4zRvH7DolQRIINMEaExnungzkTkzMs1p3pkoTmaCBEggJgKc5h0OLI1pH/w4zdsHLHolARLINIHGjRtL3bp1uZt3pks53ZmDMV2nTh1p0KBBujPC1JMACZBAjAQ4Mh0OLo1pH/w4zdsHLHolARLIPIEmTZrQmM58Kac3g+wAT2/ZMeUkQAK1R4BrpsOxpjHtgx+nefuARa8kQAKZJ4Cp3jxnOvPFnNoMsgM8tUXHhJMACdQiAU7zDgebxrQPfuzl9gGLXkmABDJPgMZ05os41RlkB3iqi4+JJwESqCUCnOYdDjSNaR/82MvtAxa9kgAJZJ4AjenMF3GqM8gO8FQXHxNPAiRQSwQ4zTscaBrTPvixl9sHLHolARLIPAEa05kv4lRnkB3gqS4+Jp4ESKCWCHBkOhxoGtM++LGX2wcseiUBEsg8ARrTmS/iVGeQHeCpLj4mngRIoJYIcM10ONA0pn3wYy+3D1j0SgIkkHkCNKYzX8SpziB1dqqLj4knARKoJQKc5h0ONI1pH/zYy+0DFr2SAAlkngCN6cwXcaozyNlkqS4+Jp4ESKCWCHCadzjQNKZ98GMvtw9Y9EoCJJB5AjSmM1/Eqc4gO8BTXXxMPAmQQC0R4DTvcKDrWMqFiyKboS+99FK5/PLLZbXVVhP02EDQZs6cKeuss47+a9y4seCvXbt2csMNN2QTAnOVCALXX3+93HLLLUVpmTp1qrRp00ZWX331wv327dvLU089VfjOCxKIksBvv/0m5557rvz888+C6/nz58vnn3+ur1u0aCGLFi3Sf8uWLZP7779f+vXrF+XrGRcJVCTw4YcfSrdu3bSfBg0aaL0NGYXbZJNNtL6GzkadOXr0aH1PP+Q/EoiRAPV3jHAZdWACJ5xwgnz77beyePFi/Tdr1izBX9u2bQUzetARuXz5cjnzzDPl7LPPDvyevASsn5eM+s1ns2bNZN68eTWCTZs2TfBnHIxrGtOGBj/jIIAG4aeffloj6unTpxfdY79YEQ5+iZjAwoULBQ1DOKesGaPFvBIKmY4EapPAWmutpTt6nLKJNLz99ttFSRk5cmTRd34hgbgIUH/HRZbxhiHw6KOPauPZGcdXX31VdAu2EJ07AU7zLsOob9++ZZ78cbt+/foybNiwP27wigRiIHDooYe6xgpZPOqoo1z90QMJBCWw9tprS+/evaVevXoVo8AodefOnSv64UMSiJoAZursuOOOUqdOnYpRb7zxxrLTTjtV9MOHJBAVAervqEgynigJwHZBu9HNebGF3OLIw3Ma02VKGSMrnTp1KvN01e3ff/+dBkxFQnwYBYGNNtpIy2KlRiJkccCAAVG8jnGQQFkCxx13nEDWyjkoZyjfunWpWsox4v34CBx88MEVO3vQEXTsscfGlwDGTAIOAtTfDiD8mggCGHyppMuRSNhAnGXmrbjY4qnACYq5XM8NGou77babYJ0qHQnETeDII48sa6DAyMZI4AYbbBB3Mhh/zgnss88+ghHqcg7Keb/99iv3mPdJIFYCBxxwQMUGIqaAH3HEEbGmgZGTgJMA9beTCL9XmwBsF9gw5Tq+YfvABqLzRoDGdAVOBx54YFnFDKXMKd4V4PFRpARQqa1cubJknKgMBw0aVPIZb5JAlAQgayNGjCjbyQgFvPfee0f5SsZFAp4JYBRwiy22KOkfo9K9evWq2BlUMiBvkkBIAtTfIQEyeCwEYMOU2mMCL0PHOGwgOm8EaExX4IQdQPFXyjVp0oSCVgoM78VCAOsBu3btWrIXEZVh//79Y3kvIyUBJ4HBgwfLihUrnLe1bO6xxx6C47LoSKBaBLDcBadwOB1k9phjjnHe5ncSiJ0A9XfsiPmCAARgLMOWKeUq2T+l/Of9Ho1pFwkopZihqAcOHKiP2nAJzsckEBmBUqPPGG3BcTCtW7eO7D2MiAQqEVhvvfUE072dG5FhuQGm2dKRQDUJQAZxpIvTtWzZUo9MO+/zOwnUBgHq79qgzHf4IYCjAmHLODsf8Z178PghKUJj2oVXKcUMRT1kyBCXkHxMAtESQC+ic30Lpn6XUtLRvpmxkUAxAUz1do5O4/u+++5b7JHfSKCWCXTo0KHG/hFoHEJnl9sDpZaTyNflkAD1dw4LPQVZRr3o7HzEd3aM+ys8GtMuvDp27Cjrrrtuka9NN91UH8FRdJNfSCBmAs2bN9cjK/YRQTQSeXRBzOAZfQ0CPXv2FJzra3dbbbWVYNSajgSqTeCQQw4pGm1B4/Doo4+udrL4/hwToP7OceEnOOs4ThA2jd3B5oHtQ+edAI1pD6zsihmGDI/W8ACNXmIhgCk5ZiMyjLJgJHCNNdaI5V2MlATKEUA9iGOyzEgfOnX69etXzjvvk0CtErDPKMPyg+23377sxmS1mjC+LNcEqL9zXfyJzTxsGjNIA10Om4fOHwEa0x542RUzvKNCpCOBahDo06ePNGrUSL8auy1SFqtRCnwnCGB6mJnqjZE/TvGmXCSFwM477yytWrXSyYExPXz48KQkjenIMQHq7xwXfoKzbm9Hcop3sIKiMe2B2y677CJrrrmm9onKkJs9eYBGL7EQwIYR5rgC7JqM6bZ0JFANAuuvv37hGCzUiZ06dapGMvhOEqhBAAa0OSMVIy3cTKcGIt6oAgHq7ypA5ytdCUB/9+7dW/uDrQObh84fARrTHnhh06eDDjpI+xw6dKiHEPRCAvERML2IaCw2bNgwvhcxZhJwIYCNyOAwewcGDB0JJIWA6XTEsYFcCpOUUmE6qL8pA0kkYI4NhK3j3Og2ielNWprqJy1BSU0PjOhvvvmGI4FJLaAcpWvPPfeU7t276zWrOco2s5pAAujN3muvvbi5UwLLJu9J2n333QXnnp9yyil5R8H8J4gA9XeCCoNJKRDALEfIJgcMC0h8XdSxlPMVgp5JgARIgARIgARIgARIgARIgARIIOcEOM075wLA7JMACZAACZAACZAACZAACZAACfgnQGPaPzOGIAESIAESIAESIAESIAESIAESyDkBGtN9xiFPAABAAElEQVQ5FwBmnwRIgARIgARIgARIgARIgARIwD8BGtP+mTEECZAACZAACZAACZAACZAACZBAzgnQmM65ADD7JEACJEACJEACJEACJEACJEAC/gnQmPbPjCFIgARIgARIgARIgARIgARIgARyToDGdM4FgNknARIgARIgARIgARIgARIgARLwT4DGtH9mDEECJEACJEACJEACJEACJEACJJBzAjSmcy4AzD4JkAAJkAAJkAAJkAAJkAAJkIB/AjSm/TNjCBIgARIgARIgARIgARIgARIggZwToDGdcwFg9kmABEiABEiABEiABEiABEiABPwToDHtnxlDkAAJkAAJkAAJkAAJkAAJkAAJ5JwAjemcCwCzTwIkQAIkQAIkQAIkQAIkQAIk4J8AjWn/zBiCBEiABEiABEiABEiABEiABEgg5wRoTOdcAJh9EiABEiABEiABEiABEiABEiAB/wRoTPtnxhAkQAIkQAIkQAIkQAIkQAIkQAI5J0BjOucCwOyTAAmQAAmQAAmQAAmQAAmQAAn4JxCbMf3bb7/J448/LhdddJGvVCHMkiVLfIXx6/mqq66Sm266yW+wVPifPn263HzzzTJ06NBUpLe2EulXHt944w0ZNWqUjB49Wt55551Yk0l5jBVvIiP3K48vvfSSjBw5Uq688kqZOXNmrHmiPMaKN1GRQw6ffPJJOfPMMwvp+uSTT2TMmDHy+uuvF+65Xfzwww8yceJEN2+hnn/99dcyePBgmTFjRqh4khh4+fLl8uKLL8qpp54qTz/9dBKTWOtpcsqm3zqTOjyaImObsibHzz77TK644gp5/vnn9UM/svnrr79qPX7yySfLc889JytWrKj5gojusM6MCKSXaKyY3J133mn96U9/sjbbbDNPbxg/fry1/fbbWyrN1s8//+wpTFBPW221ldW5c+egwRMbbsGCBdZ9991nrbvuulbbtm0Tm85qJMyPPJ500klW8+bNrQ022EDLY506dazLL788tmRTHmNDm9iI/cjjZZddZm299dbWsGHDrDZt2lh169a1UF/G5SiPcZFNXrzjxo2z2rdvr+s6pO6LL76wDj/8cF3v3X///a4JnjNnjnXaaadZjRs3tlBvxumQVrQPlLEZ52uqEve7776rf9/I32233VaVNCTtpU7Z9FNnUodHU5psU9bkOHXqVEsZwrouuuOOO7QHr7L5008/WRtvvLF1xBFHWN26ddO6fKeddqr5kojusM6MCKSHaMSDn8Be9tlnH0/G9Lfffmvh79BDD9UCGrcxrXqRrEWLFgXOV5IC3nXXXTWSc8ABBwQypkvFVSPyFN/wIo+PPPKIdcopp1i///67tXLlSuuFF16wWrZsadWvX9/66quvYsk95bE0VsqjpWXugQceKABC4wYdPXvuuWfhXtQXlMfSRLMqjwcffLC10UYbFTL91ltveTam1awd64MPPtD+4zamkcAff/yxkM40X6AT4r///W9RFgxHv8Z0VuUScJyySR1eJDKxfCklT2xTFqP+9NNPdZ139913Fx54kU01a9SCQW3cxRdfrON57bXXzK3I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IbDXXnv5tuB//ud/7MEHH0zZdmudYi2PqaFCpZBKvf2W8QUXXGA33HBDjRv6+m518803+676+s6lGdoJpEvht5Iy5kqAYDpXkuQTS4HmzZv7hlgBW6qku6ta7/Caa65J9XGstmkyrurjplX+VI10rAruCqMxcZqIJPludnIZVS9NRLbGGmskb+Y1AggggEAFCmjZw+23394++uijlKt0qE2fO3euue7gaduVOLGVcvstR/X00/wm1R9KhMa//fabn2TMde8ON/ETgYoRoJt3xVzqyqzoBx98YF26dDHNHl1b0pNsPb3u06dPbbsV/TPdsVdXqrA+yyyzjO9WpUnY4po0GYkbw25u3JjvDZCunAqox44d69cPT7cP2xFAAAEEKkOgR48e9uyzz2ZsNzShpZs3JPYopdh+C1VLW7lx0onvHemg9X1Eq3CoCz4JgUoS4Ml0JV3tCqzrCSecEHk8tNY/1NrVcU5DhgxJ3IXXuLG+fftanANpzfqprniZAmmZ66m1xkqX0izrcf5doWwIIIBAqQrcf//9fo6QdL3Kwnqp3VDPsksuuSTcFNufpdZ+C1JP/3UTIF2vsmRsPbU+9dRTkzfxGoGKECCYrojLXJmV1KRcmshEf+DVZay2pH3UaGuiMk16EtekJ+caW6yk8qpxjmtS46ulTt54441anyyo/HoqrWv0008/2W233RbXKlEuBBBAAIECCITBsW4aR0kK4qZMmRJl16LtU0rtt5AWLlzolxH9448/0nbvDjHVu09t/uTJk/2EqOF2fiJQCQJ0866Eq1zBddTEVlqTUndXX375ZT+pSThhibokaQbp5DFAarg7d+7sj1lhhRViKacAWg2WxoPrKW7Tpk1jWc5jjz3Wd72rfkdb7roRoO0Kotdcc01zy5TZJpts4tcJV9e+8IZBLCtGoRBAAAEE8irw1ltv+fWJdTNWPcbmzZtnv//+uz9nchuSXAhNyKkuyZo5O66pVNrv77//3rbYYgtzy5PVuBme7K8gWt+ZNt10U99+66fmRyEhUEkCBNOVdLULXFcFr/pDHKekwFljePX0Wf9UPo2r/vbbb6sU061JbaNHj66yLS5vXnvtNbvwwgtthx12sJEjR8alWFXK8fDDD/tZP5M3NmvWzE9QouBZjW+nTp382KpMvQaS8yjWawX+8l5llVWKVQTOiwACCORFQH/fHnjggVjPjB223Xpaqn9qv9V2a+JKfaagTj91c1mzgK+22mp5sco201Jov+WoIVeaODQ5aUiZ2m7969ixo//Xvn17U3BdSklzzmguHQX+JARyIUAwnQtF8qghcMcdd9gBBxyQccKKGgeyAYGYCmgdzVKY9T2mfBQLAQRiKKBA+uCDD/azNceweBQJgbwI6GbLZ599lpe8ybTyBKINRqk8F2qchUAYSKub72WXXZZFThyKQHEFZs+e7Sd505qZdD0v7rXg7AggkFuBMJCeOnWqX89Zc4aQEChXAfVi6Nmzpw+iS+1perlek3KpFxOQlcuVjEk9CKRjciEoRtYCYSC9995721prrVVjje+sT0AGCCCAQJEEkgPpe++910++WaSicFoE8i4QBtKaM+fwww+3qBPb5b1gnKAsBAimy+IyxqMSBNLxuA6UInuB5EB60qRJkZdXy/7M5IAAAgjkV4BAOr++5B4vgeRA+vHHH7dWrVrFq4CUpuQFCKZL/hLGowIE0vG4DpQie4HqgbRmiCUhgAAC5SBAIF0OV5E6RBWoHkh36NAh6qHsh0BkAcZMR6Zix3QC8+fPt8GDB/uZNMeNG2f6R0KgVAU0y/juu+/uJ+QhkC7Vq0i5EUAglcCVV16ZmGxst912S7UL2xAoG4EVV1zRP4l+6qmn/OohZVMxKhIrAYLpWF2O0iyM1jrWUgqa6bhNmzalWQlKjYATWLRokV9ubMqUKUYgza8EAgiUm8CXX37p54C46KKLyq1q1AeBGgKnnXaa7bPPPgTSNWTYkEsBgulcalZ4Xn369LHVV1+9whWofikLfPzxxz6YJpAu5atI2RFAoDYBjRkdMGBAbbvwGQJlIXDxxRczeWhZXMl4V4Ix0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQpmsCff/5ps2fPtuOPP94eeOCBaAexl8Xd7bLLLrNrrrmGK4UAAgggUCYCCxcutGuvvdaGDx9ecjX66aef7P7777dTTjml5MqeXOBi1OODDz6wQw45xD755JPkovAagbISIJguq8tZWZV54403bOrUqXb55ZfbZ599VlmVz6K2cXe76aabbNKkSVnUkEMRQAABBOIioCDumWeesfPPP98efPDBuBQrcjlU5mOPPdZuv/32yMfEccdi1OPVV1+1iRMnmr53kBAoVwGC6XK9shVQr0033dSOOuqoCqhpbqsYd7cXXnjBHnvssdxWmtwQQAABBIoi0KJFCxs8eLB17969KOfP9qT77ruvbbHFFta4ceNssyrq8cWoh8759ddfW+/evYtad06OQD4FSvsvQz5lyLskBMLGrUGDBiVR3rgUMs5uzZs3jwsT5UAAAQQQyJGA2p1SbasbNmxo+lfqqRj1aNOmTamzUX4EahUgmK6Vhw/zIbBkyRI/1llB09prr2333XefaVzN3nvvndM71+pe9NRTT9kvv/xiehq7yy671GjIM+2jcT7Tp0+3ESNG2BNPPGEPPfSQtW/f3g499FBr1qxZnXi++uormzlzpunnWmut5cu05ppr+rFY77//vunuvcaT/fjjj76bs8Y2r7baarbffvv580Rxi7JPqkJr7PnHH3/sP2ratKn179/f9PPFF1+0efPm2Yorrmh77bVXqkNTbvv111/9dd1zzz19fTWmvV27dta3b19r1KiRffnll95VDfuAAQNs+eWXT+QjnxkzZvhxVn/99Zfdcccd9scff/jPV199dVtvvfXskUcesaVLl9omm2zi/4UHq7u/urLpum2zzTbWq1ev8CP77rvv7LbbbrORI0fav//9b3v99dftxBNPLPmnDYkK8gIBBBDIsUAu28B0RcvUDus4tYtqR95++21TO6D2XD/DVN+2Lzy++s9vv/3W7rzzTvvoo49ss802syAIanx/0DFqi9SbSm2k2urWrVsnslJZv/jiC+vRo4dvc959913f3qncar/U9f25556z7bff3rbccsvEcXrx3nvv2fPPP+/bKbVl+n4UJtVVvbfUfm611Vb+O4TyHjRokHXp0iXczf+MWo8qB6V4U9+6qJ767qTvN5tvvrnv7v3K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IIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCAAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfIhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAAAggggAACCCCQOwGC6dxZkhMCCCCAAAIIIIAAAggggECFCBBMV8iFppoIIIAAAggggAACCCCAAAK5EyCYzp0lOSGAAAIIIIAAAggggAACCFSIAMF0hVxoqokAAggggAACCCCAAAIIIJA7AYLp3FmSEwIIIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCAAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfIhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAAAggggAACCCCQOwGC6dxZkhMCCCCAAAIIIIAAAggggECFCBBMV8iFppoIIIAAAggggAACCCCAAAK5EyCYzp0lOSGAAAIIIIAAAggggAACCFSIAMF0hVxoqokAAggggAACCCCAAAIIIJA7AYLp3FmSEwIIIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCAAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfIhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAAAggggAACCCCQO4EGgUu5y46cEEAg1wLjx4+3CRMmVMl2/vz5tuqqq1qLFi0S2zt37mwzZ85MvOcFAggggAACCBRPgPa7ePacGYFCCTQu1Ik4DwII1E9g8eLFNm/evBoHL1y4sMo27otV4eANAggggAACRRWg/S4qPydHoCACdPMuCDMnQaD+AoMHD854cOPGjW3YsGEZ92MHBBBAAAEEECiMAO13YZw5CwLFFKCbdzH1OTcCEQW6detmc+bMsdqePi9YsMA6duwYMUd2QwABBBBAAIF8C9B+51uY/BEorgBPpovrz9kRiCRw0EEHWcOGqf93bdCggXXv3p1AOpIkOyGAAAIIIFA4AdrvwllzJgSKIZD623kxSsI5EUAgrcDAgQNt6dKlKT9XkD106NCUn7ERAQQQQAABBIonQPtdPHvOjEAhBAimC6HMORDIUkAzd/fo0SPl02l1/R4wYECWZ+BwBBBAAAEEEMi1AO13rkXJD4F4CRBMx+t6UBoE0gqkevrcqFEj69mzp7Vt2zbtcXyAAAIIIIAAAsUToP0unj1nRiDfAgTT+RYmfwRyJNC/f/8aT6bV9TtVI52jU5INAggggAACCGQpQPudJSCHIxBjAYLpGF8cioZAskCrVq1s9913Nz2NDlOTJk2sX79+4Vt+IoAAAggggEDMBGi/Y3ZBKA4CORQgmM4hJlkhkG+BIUOGJCYi09rSffv2tZYtW+b7tOSPAAIIIIAAAlkI0H5ngcehCMRYgGA6xheHoiFQXaBPnz627LLL+s1LliwxNc4kBBBAAAEEEIi3AO13vK8PpUOgvgIE0/WV4zgEiiDQrFkz09grpebNm1vv3r2LUApOiQACCCCAAAJ1EaD9rosW+yJQOgIE06VzrSgpAl4gfBqttSubNm2KCgIIIIAAAgiUgADtdwlcJIqIQB0FCKbrCMbuCBRbYKeddrJevXrZiBEjil0Uzo8AAggggAACEQVovyNCsRsCJSTQIHCphMpLURFAAAEEEEAAAQQQQAABBBAougBPpot+CSgAAggggAACCCCAAAIIIIBAqQkQTJfaFaO8CCCAAAIIIIAAAggggAACRRcgmC76JaAACCCAAAIIIIAAAggggAACpSZAMF1qV4zyIoAAAggggAACCCCAAAIIFF2AYLrol4ACIIAAAggggAACCCCAAAIIlJoAwXSpXTHKiwACCCCAAAIIIIAAAgggUHQBgumiXwIKgAACCCCAAAIIIIAAAgggUGoCBNOldsUoLwIIIIAAAggggAACCCCAQNEFCKaLfgkoAAIIIIAAAggggAACCCCAQKkJEEyX2hWjvAgggAACCCCAAAIIIIAAAkUXIJgu+iWgAAgggAACCCCAAAIIIIAAAqUmQDBdaleM8iKAAAIIIIAAAggggAACCBRdgGC66JeAAiCAAAIIIIAAAggggAACCJSaAMF0qV0xyosAAggggAACCCCAAAIIIFB0AYLpol8CCoAAAggggAACCCCAAAIIIFBqAgTTpXbFKC8CCCCAAAIIIIAAAggggEDRBQimi34JKAACCCCAAAIIIIAAAggggECpCRBMl9oVo7w5E3jrrbdszJgx9swzz9Qpz2+++cYuuuiiOh1Tl50/+OADO+SQQ+yTTz6py2E527e+51+4cKFde+21Nnz48JyVhYwQQAABBBCQwNtvv21jx461WbNmeZCffvrJ7rvvPhs9enSdgGjDU3P9+eefNnv2bDv++OPtgQceSL0TWxFAoIYAwXQNEjZUgsB7773nA+KTTz7ZPv744zpVWcHiFVdcUadj6rLzq6++ahMnTrQ33nijLoflbN/6nF9fanRT4vzzz7cHH3wwZ2UhIwQQQAABBN5//3277rrrbNSoUYkbzXfeeae/eXvbbbfVCYg2PDWXvnNMnTrVLr/8cvvss89S78RWBBCoIUAwXYOEDZUg0KVLFzvmmGPqXNXrr7/e9EQ7n2nfffe1r7/+2nr37p3P06TNuz7nb9GihQ0ePNi6d++eNt/aPpg0aVJtH/MZAggggEAFC6y11lp2xBFHeIHGjRv7n8OGDbPNNtusTiq04em5Nt10UzvqqKPS71DLJ7ThteDwUdkLEEyX/SWmgukEGjVq5D9q0KBBul2qbNfT7Dlz5lifPn2qbM/HmzZt2uQj28h51vf8+pIT1TMszGOPPWann356+JafCCCAAAII1BBo2PC/X1nDn9pB7XjUNoc2vAZpjQ3hjYqopsqANrwGIxsqTOC/t/cqrNJUt7IEvvrqK5s5c6bpp+5u6+7rmmuuWQXh22+/tWnTptnixYttwIAB1rlz5yqfayzRmWeeaTfeeKOdc845VT6L+mbJkiV+PFLz5s1t7bXX9mO9ND557733rvJEd+nSpfbEE0+YnvZuvvnmPnuNn54+fbqNGDHCf/bQQw9Z+/bt7dBDD7VmzZpVKcIjjzxiL7zwgq244oq23377WevWrat8nulNqvOr7Gow9SVmq622svvvv9/effddGzRokOkpf6akLmPq/q16bLPNNtarVy9/iPLca6+9/JchdeFr166d9e3bN1N2fI4AAgggUAECTz75pD3++OPWtGlT33aryukCvWeffdbUNm600Ua2zz77VNHJRRuuDKO0xenaUI1HztT+6xy04VIgIVA6AjyZLp1rRUnrIfD999/b7rvv7gPkk046ye6++27TmODkpEBbwZ2CVU1komD7pZdeSt7FzjvvPDvuuOOsZcuWVbZHfaMGWIHtbrvt5ic9UxA8d+5cU9eobbfd1u666y6f1bx58/x+PXv2tFdeecVvmzx5sv9yoPKPHDnSbrnlFnv99dd9N/UddtjB9CVB6Y8//rDDDjvMFi1a5J+eK1Bdd911TXlGTanO/91339mBBx5ou+yyix/LrXM899xzds0115jOrxsRtSWV49xzz7W///3vtt5661m/fv0SXckU8OuLj74orbPOOrb66qvXlhWfIYAAAghUiMAZZ5zh27sTTzzR37hVO6xUPZj+/fff/U3YCy+80N8U11AltVnJKds2XHlFaYtTtaFR23/a8OQrxmsESkggICFQxgLjx48PevTokaihexIcTJkyxb93AXPg/lcNDjrooMTnzz//fNCkSZNgiy22SGxzd8UDFwwm3ruZLoNVVlkl8T7qi/nz5/vzuSffiUO++OKLoG3btkGHDh0CFxT77S5Q9vu5mbET+w0ZMiRwXyCCN998M7HtrLPO8vtNmDDBb3OznAbuqXniczexmv981113TWyL8iLV+X/99Vef14477pgop7v54Le5p9SJbFU31SVMP/74Y+B6AQRugrJwU+BuJPjjXEDut7ngOnBBdOJzXiCAAAIIVLaAm006cF24gx9++CEBcfPNN/u2I2zD9cEee+wRLLPMMsE777zj93NPhQPX28nvpzyUctWGK68obXGqNjRK+x+HNtzNCePtbrjhBlU3oA33DPwHgVoF6OZdQjc+KGrdBfRkVl2mXQNo48aNszXWWMN3JU7OqX///om3mkCrW7du5oJq/4RX44euuuoqq+tsoYkMk16oe5fSJptsktjqgnL/NFl31D/88EPf/VtPaasnHauyrL/++omPTj31VD8jubrBaWKWyy67zE/GkjyBiJ72ZnpynMjwf1+kOv+yyy7rnwaom3w4pqpr167+CC2JlS7JzQXiplnTw+RuIPju9u7LhW255ZZ+c/UnDeG+/EQAAQQQqDwBLT+ptnj55ZdPVN7d5Pavq7cXahfV1inpMw2H0pJZ6nWmYUm5asOVf5S2OFUbGqX9pw2XMAmB0hMgmC69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NmrUKPvkk098HWnDy/JSUykE8ipAMJ1XXjKvNIFhw4bZZpttVqdq//zzz3buuefan3/+Wafj6rrzCy+8YI899lhdD2N/BBBAAAEEyk5grbXWsiOOOMLXq3Hjxv4nbXjZXWYqhEDeBQim807MCSpNoFGjRtagQYPI1T7ttNPsjDPOiLx/fXds3ry5NWvWrL6HcxwCCCCAAAJlJdCw4X+/Boc/VTna8LK6xFQGgbwL/PdWXN5PwwkQKC+Br776ymbOnGn6qbvbm266qa255po1Kvnss8/aQw89ZBtttJHts88+NT6/5557rEuXLrb++uvX+CzqBnVPmz59uo0YMcKeeOIJf7727dvboYceWiV4VllnzJhhhxxyiM96yZIlNnv2bFOQvfbaa/ux3h988IHtvffe1r179yqn/+yzz+zBBx/0XeG22WYb69WrV5XPeYMAAggggEApCDz55JP2+OOPW9OmTX3brTKnuwFOG14KV5QyIlBcAYLp4vpz9hIU+P7772333Xf3jbGe9B544IG+FsnB9O+//259+/a1IAhMAep5553nx0TfcsstiRorQL377rtN2xYvXpzYXpcXkydPtmOOOcZ+++03e+ONN+yPP/6wL774wi6++GKf79NPP226465zHHvssbbccsv5YFoB+D/+8Q9//j333NP++usv69Spkym4v/TSS+32229PBP/qGq4x4ArWW7Zsaf369bOhQ4fa1VdfXZeisi8CCCCAAAJFFVAvMN1Yvvzyy23RokW+XVaBqgfTtOFFvUycHIHSEnBf9kkIVLxAhw4dAjfbdSSH8ePHBz169Ejs64LlYMqUKYn3e+yxR7DMMssE77zzjt+2dOnSYK+99grcX4bggQceSGwbPHhw4AJf//6HH37wn1977bWJfKK+cBOXBe6LQPDmm28mDjnrrLN8fhMmTEhs69+/f7DKKqsk3s+fP9/vM2DAgMQ2ladt27aBPNwY7uDHH38M3E2CwM1wmtjHPfH2xz333HOJbeELGerY5PTxxx+n3T95P14jgAACCCAQVcAFxEG7du2i7u7bX9eFO1B7G6abb77Zt0+04aFI4E1lm5zczfdg6623Tt7EawQQ+F8BxkyX1r0PShsDgXXXXdd3p9bs219//bWtscYa5gLVKiVTt+111lnHb9Mdbz3VVVLXcKVx48aZC6bNBbf+fTb/UTdt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AQQQKLoAwXTRLwEFQAABBBBAAAEEEEAAAQQQKDUBgulSu2KUFwEEEEAAAQQQQAABBBBAoOgCBNNFvwQUAAEEEEAAAQQQQAABBBBAoNQECKZL7YpRXgQQQAABBBBAAAEEEEAAgaILEEwX/RJQAAQQQAABBBBAAAEEEEAAgVITIJgutStGeRFAAAEEEEAAAQQQQAABBIouQDBd9EtAARBAAAEEEEAAAQQQQAABBEpNgGC61K4Y5UUAAQQQQAABBBBAAAEEECi6AMF00S8BBUAAAQQQQAABBBBAAAEEECg1gcalVmDKi0B1gYULF9rMmTPtlVdesRtuuKH6x0V//9prr9l9991nP/30k3Xr1s169eplDz30kA0ZMqQoZfvzzz/tySeftBkzZtjOO+9su+++e87K8eqrr9pLL71kb7/9tq222mq20UYbWc+ePa1p06Y5OUc+y56TApIJAggggEBKgTi21d999509+OCDNcrbqlUrW2WVVWzttde25ZdfvsbnpbpBbbO+L2288ca+/c9Uj++//94ee+wxe+ONN2zx4sW2wQYb2NZbb21dunTJdGjkz+P4exG58OyIgBPgyTS/BiUtoAD1mWeesfPPPz9lg1jsyk2aNMm23357W2mllWzPPfe0F1980bp27WojR44sWtHUKE6dOtUuv/xy++yzz3JSjq+//tr2339/GzRokLVu3dqOP/5422qrrUz132STTfw1ysWJ8lH2XJSLPBBAAAEE0gvEta1eYYUVfJt81lln+TZsypQpppu2c+bMsSuuuMI6duxovXv3tueffz595Urkk/fff9+uu+46GzVqlH3yyScZS33nnXd6m6eeesp22203GzFihC1dutR/pznppJPsl19+yZhHph3i+nuRqdx8jkAVgYCEQBkI7L333kH79u1jVZPffvstaNmyZXDYYYdVKde8efMCd9c7+PHHH6tsL+SbuXPnBu4PQXD99ddnfdpff/01WHfddYP1118/+Pbbb2vk5xrdoGHDhsHTTz9d47MoG26++eYqu9W37F999VXw73//u0pevEEAAQQQKJxAHNtq1f7QQw/1beIdd9xRBePTTz8N9tlnn6BZs2bB3XffXeWzUnyj7x9q+92N7lqLP3HiRL/f//t//6/GfgsWLAjcA4Jg1113rfFZlA3V23QdU9/fi1R5RSkD+yCQSwGeTFe5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\n" + }, "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "no exception was thrown\n" - ] - } - ], - "prompt_number": 28 - }, + "output_type": "display_data" + } + ], + "source": [ + "import ex_inits #no need to know this code, it just shows the image below\n", + "for_images = ex_inits\n", + "for_images.display_png(for_images.plantloop1) # display the image below\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modifying the topology of the loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us make a new branch and replace the exisiting branch \n", + "\n", + "The existing branch name is \"sb0\" and it contains a single pipe component sb0_pipe.\n", + "\n", + "Let us replace it with a branch that has a chiller that is connected to a pipe which is turn connected to another pipe. So the connections in the new branch would look like \"chiller-> pipe1->pipe2\"" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "*Tagential note*: The `\"try .. except .. else\"` statement is useful here. If you have not run across it before, take a look at these two links\n", - "\n", - "- http://shahriar.svbtle.com/the-possibly-forgotten-optional-else-in-python-try-statement\n", - "- https://docs.python.org/2/tutorial/errors.html" + "name": "stderr", + "output_type": "stream", + "text": [ + "../eppy/modeleditor.py:757: UserWarning: The aname parameter should no longer be used.\n", + " warnings.warn(\"The aname parameter should no longer be used.\", UserWarning)\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have saved this as file \"hhh_new.idf\". \n", - "Let us draw the diagram of this file. (run this from eppy/eppy folder)" + } + ], + "source": [ + "# make a new branch chiller->pipe1-> pipe2\n", + "\n", + "# make a new pipe component\n", + "pipe1 = idf.newidfobject(\"PIPE:ADIABATIC\", 'np1')\n", + "\n", + "# make a new chiller\n", + "chiller = idf.newidfobject(\"Chiller:Electric\".upper(), 'Central_Chiller')\n", + "\n", + "# make another pipe component\n", + "pipe2 = idf.newidfobject(\"PIPE:ADIABATIC\", 'np2')\n", + "\n", + "# get the loop we are trying to modify\n", + "loop = idf.getobject('PLANTLOOP', 'p_loop') # args are (key, name)\n", + "# get the branch we are trying to modify\n", + "branch = idf.getobject('BRANCH', 'sb0') # args are (key, name)\n", + "listofcomponents = [chiller, pipe1, pipe2] # the new components are connected in this order\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are going to try to replace **branch** with the a branch made up of **listofcomponents**\n", + "\n", + "- We will do this by calling the function replacebranch\n", + "- Calling replacebranch can throw an exception `WhichLoopError`\n", + "- In a moment, you will see why this exception is important" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Where should this loop connect ?\n", + "CHILLER:ELECTRIC - Central_Chiller\n", + "['Chilled_Water_', 'Condenser_', 'Heat_Recovery_']\n", + "\n" ] - }, + } + ], + "source": [ + "try:\n", + " newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')\n", + "except hvacbuilder.WhichLoopError as e:\n", + " print(e)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code throws the exception. It says that the idfobject `CHILLER:ELECTRIC - Central_Chiller` has three possible connections. The chiller has inlet outlet nodes for the following\n", + "\n", + "- Chilled water\n", + "- Condenser\n", + "- Heat Recovery\n", + "\n", + "eppy does not know which one to connect to, and it needs your help. We know that the chiller needs to be connected to the chilled water inlet and outlet. Simply copy `Chilled_Water_` from the text in the exception and paste as shown in the code below. (make sure you copy it exactly. eppy is a little nerdy about that)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { - "cell_type": "raw", - "metadata": {}, - "source": [ - "python ex_loopdiagram.py hhh_new.idf\n" + "name": "stdout", + "output_type": "stream", + "text": [ + "no exception was thrown\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", - "for_images = ex_inits\n", - "for_images.display_png(for_images.plantloop2) # display the image below\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAA1AAAAV7CAYAAAAooE7+AABAAElEQVR4AezdB7zUxPr/8Yemgig2\n7AL2LvZeEa/S7Niw8MOGBTv23q7tqlfsXREL2BWvBVTsBbGDBRWwYVfsjfznO/efvTl79uxmz9mS\n7H7m9dLdzU4mM+8cJvskk0mrwCUjIYAAAggggAACCCCAAAIIFBRoXTAHGRBAAAEEEEAAAQQQQAAB\nBLwAARR/CAgggAACCCCAAAIIIIBATAECqJhQZEMAAQQQQAABBBBAAAEECKD4G0AAAQQQQAABBBBA\nAAEEYgoQQMWEIhsCCCCAAAIIIIAAAgggQADF3wACCCCAAAIIIIAAAgggEFOAAComFNkQQAABBBBA\nAAEEEEAAAQIo/gYQQAABBBBAAAEEEEAAgZgCBFAxociGAAIIIIAAAggggAACCBBA8TeAAAIIIIAA\nAggggAACCMQUIICKCUU2BBBAAAEEEEAAAQQQQIAAir8BBBBAAAEEEEAAAQQQQCCmAAFUTCiyIYAA\nAggggAACCCCAAAIEUPwNIIAAAggggAACCCCAAAIxBQigYkKRDQEEEEAAAQQQQAABBBAggOJvAAEE\nEEAAAQQQQAABBBCIKUAAFROKbAgggAACCCCAAAIIIIAAARR/AwgggAACCCCAAAIIIIBATAECqJhQ\nZEMAAQQQQAABBBBAAAEECKD4G0AAAQQQQAABBBBAAAEEYgoQQMWEIhsCCCCAAAIIIIAAAgggQADF\n3wACCCCAAAIIIIAAAgggEFOgbcx8ZEMgdQJ//vmnPfXUU/bggw/aFltsYb17905UG/744w8bPny4\nvfnmm7bYYovZhhtuaHPPPbd98803tt5661W8rqX0+u677+zhhx9u1Aa1UW0tlEpZl0Lb4nsEEKie\nwLRp02z06NH2yiuv2LXXXlu9ikS23FT/1alTJ1tggQVs6aWXtjnnnDOyRnrf/vTTT/bEE0/YM888\nY+eee27Ohug4+umnnzb4bq655rJevXo1WNbUhyTu46bqynIE4gpwBSquFPlSJ6DAZOTIkXbxxRfb\nZ599lqj6//LLL7b22mvbqFGjrF+/fjbvvPPacccdZ8suu6w9//zzValrKb0UCPbo0cOuvvpq2223\n3ez000+3DTbYwBZddNFYbStlXWJtkEwIIFBxAf14f/bZZ+3MM8/MecKl4hX6/xtUcLDCCivYSSed\n5PuvW2+91XRS59VXX7V///vf1qVLFx88vPDCC9WqYsm2qxNdhxxyiN1+++1Nlrnuuuta+/btvYX6\n86+//to23XTTJvNHv0jqPo7WkfcINEeAAKo5aqyTCoHVV1/dDjrooETWVQdhBQk647r55pvbwIED\n7fHHH7d99923asFeqb10pnbrrbf2/v/4xz/8j45WrVrF2h8tqctXX32VqB9jsRpMJgTqUKBjx462\n66672jrrrJOo1quf6t69eyZI2GOPPWzPPfe0E044wW6++WabOHGizT777P4k0T333JOouhdbmR13\n3NGfzGvbtukBSbPMMotts802psBSaffdd/cBVZxttXQfy5uEQBIFCKCSuFeoU8kEwoNC3B/uJdtw\ngYJee+01mzlzps2YMaNBznPOOccP4WuwsIIfSu2lIS9K4WsxTWlOXf7++29/lnTKlCnFbIq8CCBQ\nRQH9W09aHy2OpobpLbzwwjZixAg/YkAByG233VZFvZZvunXr1qb/8iXtnznmmMNnaW5/Xuw+1tDC\n448/Pl+1+A6Bqgk0fcqhalViw/Uu8Ndff9nYsWP9GT6NNb/vvvvsww8/tO22265kZyp//PFHe+ih\nh2zSpEn+nhxdIcl1b86ECRPs6aefNg2501UR5YseBD755BO7//777YADDrBx48bZI488Yosssojt\nvffeec/QqRwNL9xrr71MZzDDoW3zzDOPHXHEEf5P4IEHHrAPPvjAdAZvn332MdVZZ+M0lGShhRay\nnXfe2eeL69Wcuup+LNVDSe1eZZVVbLXVVrOff/7Z7r33Xl+XzTbbzLp27erzxPmf6qsDow7YutdL\n5b/77ru2yy672DLLLFOwCA3H1LATtUfDAnUFT+n333+3AQMG2JgxY2z++ef39dUVMFmREECgtALN\n6U+KrUGh/lflFerL4/aPxdZt1lln9UOUNRT7+uuv91fSwjKa6qP0/a+//uqPaeqbvvzyS38cUkCm\nodxt2rSxL774wh9T1D/279+/QRCndZ988kmTi/LqypiON2H6+OOP7e6777YhQ4b4q2Q6dmq4ofrF\naID07bff2p133mk60bTmmmtaEAQNjmtheXFey9Wf6xihq1467lx11VUWGsWpE3kQqIiA+4dDQiAx\nAu4AEGy//faB++MP3AEm6NOnT3DggQcG7kdw4M5SBq7TL6qub7/9ti/LDZXLrOeu/gQrr7xycNdd\n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\nStnB09xzz12lmrBZBBColgDBU3nkCZ7K40qptSfALHy1t09rrkWarSicMEJDCvQfqX4FFl54YZtn\nnnlMV54Inur374CW17fAgAEDMhNGLL744vWNUcLW657SIUOG+PuMS1gsRSFQcwIEUDW3S2uvQV98\n8YXNNddcdvXVV9de42hR0QL77befHX300QRPRcuxAgK1I6Apy3v37m0DBw6snUZVuSXvvvuunXTS\nScy2V+X9wObTIUAAlY79VPe11AxA/fv3r3sHAMwOPvhgPzMUFgggUL8CrVu3tqWXXprjQgn/BJ57\n7jkfQJWwSIpCoGYFuAeqZnctDUMAAQQQQAABBBBAAIFSCxBAlVqU8hBAAAEEEEAAAQQQQKBmBQig\nanbX0jAEEEAAAQQQQAABBBAotQABVKlFKQ8BBBBAAAEEEEAAAQRqVoAAqmZ3LQ1DAAEEEEAAAQQQ\nQACBUgsQQJValPIQQAABBBBAAAEEEECgZgUIoGp219IwBBBAAAEEEEAAAQQQKLUAAVSpRSkPAQQQ\nQAABBBBAAAEEalaAAKpmdy0NQwABBBBAAAEEEEAAgVILEECVWpTyEEAAAQQQQAABBBBAoGYFCKBq\ndtfSMAQQQAABBBBAAAEEECi1AAFUqUUpL1ECv//+u7344ot29dVX23HHHWdXXHGFPfnkk/brr7/a\niBEjElXXaGX+/PNPGzt2rB1++OH20EMPRb8q6n2c9v/yyy/2wAMP2PHHH1+w7AsvvNAuv/zyTL5p\n06Z503322SezrFR1zxTIGwQQQKAMApMmTbILLrjAHnvsMV/622+/beeff749++yzBbemvvXRRx+1\n8847z5577jmbOXNmwXWam+HDDz+0QYMG2SeffNLcIlgPAQRKLEAAVWJQikuOwEsvvWSrrLKKHXLI\nIRYEgW299dY255xzmoKA2Wef3Q444IDkVDarJm+++aaNHDnSLr74Yvvss8+yvo33MW77H3nkERsy\nZIgNHz68YMHXX3+93XzzzT7fTz/95H9onHnmmfbwww9n1i1F3TOF8QYBBBAog8AHH3xgV111lQ0d\nOtQHJu+9957985//tKOPPto+/vjjvFv88ssvbfnllzedQFJgc++99/rjS7mCqAkTJtgNN9xg6ltJ\nCCCQDAECqGTsB2pRYoFbb73VNthgA1tzzTXtqaeesv3339/WW289GzBggN1///3+apSuvJQ6ffXV\nVw2CieaWv/rqq9tBBx3U3NWtmPZvt912tvHGG8falq7mPfHEEz5vx44dbdddd7V11lmnwbotrXuD\nwviAAAIIlEFgySWX9McFFd22bVtbZpll/ImkQptSkLTDDjvYyiuvbLryPt988/nA66233op1Fb9Q\n+bm+33HHHU3Hll69euX6mmUIIFAFAQKoKqCzyfIK6OzgwQcf7K82acjerLPO2miDp556qi266KKm\nYRilSn///bfttttuNmXKlJIUqYO6UqtWrYoqrzntb9OmTaxt6Mpd+/btG+RVPbPr2Ny6NyiYDwgg\ngEAZBVq3/u9PoPA17Aez+7NoFXRC7plnnrF99903s1jr7bXXXnbppZfazz//nFleyjcK1EgIIJAc\ngf/+QktOfagJAi0W0JCy7777zk488UQfROUqsF27dn54XHTIhYbKaSiaxpnr6tXmm2+eWVVDOu6+\n+25/hnLixIl23333WZcuXfwVLR18FYjp6taYMWNs/vnn9wGFhgwutNBCfnz8H3/84Yd83HTTTbbp\nppva2muv7cvWsJEXXnjB3njjDb9NXQ1qaWpu+7VdDXXU0D8N69MZWgWE0R8TCs4efPBBP2ylOfXM\nZ6zydC9BU1bN2R7rIIAAAlEBBUC6D1Yn1nS1XCnax4V5v/32Wxs1apTNmDHD+vfvb926dfNf3XPP\nPf5VV6CiaaWVVvLBk+5ZVf446a+//vL3uurE1NJLL+2PK7rfSceB6JV9HafGjRtnuuq/1lpr+aJ1\nnNJoCg1F13fqsxdZZBHbe++9G53k0nFJowfmnntu23nnnW3eeeeNUz3yIIBAHgGuQOXB4at0CuhA\nobTqqqvmbcC2226bOdBoWJquSq222mo+0NF34RA6TbCwxhpr2GGHHWaXXHKJv4dKQc+ee+5p5557\nrt/Gb7/9ZltttZV/r4PYsssu64dc9OnTxwdGOuhqGOFpp51m55xzjs+n+5u0bI899vBXzI444gg/\nIUPeSsf4sjntV7G6gqZ7oa655hrTmPvdd9/dzj77bL9FfXfjjTfaUkst1exhKvmMp06davmsYjSb\nLAgggEBegRNOOMHf63nkkUfaLrvsYqeffrrPnx1AjR492p9AU4CiPluB1ssvv+zzvv/++/5VJ8ei\nSSfOlHRSLE5SAKRgRscNTVyhwOf111/395huuOGGdtddd/lidMJO+Xr06GGvvPKKX6YJkHR/71FH\n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\nEEAAAQQQQAABBBBAoAYECKBqYCfSBAQQQAABBBBAAAEEEKiMAAFUZZzZCgIIIIAAAggggAACCNSA\nAAFUDexEmoAAAggggAACCCCAAAKVESCAqowzW0EAAQQQQAABBBBAAIEaECCAqoGdSBMQQAABBBBA\nAAEEEECgMgIEUJVxZisIIIAAAggggAACCCBQAwIEUDWwE2kCAggggAACCCCAAAIIVEaAAKoyzmwF\nAQQQQAABBBBAAAEEakCAAKoGdiJNQAABBBBAAAEEEEAAgcoIEEBVxpmtIIAAAggggAACCCCAQA0I\nEEDVwE6kCQgggAACCCCAAAIIIFAZAQKoyjizFQQQQAABBBBAAAEEEKgBAQKoGtiJNAEBBBBAAAEE\nEEAAAQQqI0AAVRlntoIAAggggAACCCCAAAI1INDmVJdqoB00oQoCH3/8sT355JM2atQoe+aZZ2z6\n9OnWoUMH++GHH+ytt96yLl26VKFWhTc5bdo0u/XWW+2qq66yrbfeuvAKTeSI0/533nnHbrzxRvvt\nt99s8cUXb6Iksw8//NCOPPJIW2ONNWzOOee0P//809sOGzbMZs6caUsvvbRft1R1b7IiFfxCfy/j\nx4+3bt26VXCr8TY1adIku+mmm+znn3+2JZdcMt5K5EIAgZIIZP/7++mnn+w///mP3XHHHbbpppvm\n3cbvv/9ujz/+uN11113WqlUrW2SRRfxr3pWa+WV2v93MYhK5WlPHoERWlkohUAUBrkBVAT3tm/zj\njz9s6NChtswyy9izzz5rq6++uq2//vo+CFAAsMQSS9hLL72UyGbqQKw6n3nmmfbwww83q45x2//p\np5/aJZdc4q0++uijvNuaMGGC3XDDDfbmm2/6fHodOXKkXXzxxfbZZ5/5ZaWoe95KVOjLr776yo46\n6ij/d3LPPfdUaKvxN/PBBx/44Fp/45988kn8FcmJAAItFsj17+/OO++0ffbZx2677ba85X/55Ze2\n/PLLm040DRo0yO69915/kkwnocqRsvvtcmyjWmXmOgZVqy5sF4FECgQkBIoQ+PXXXwMXMAWdOnUK\nnn766UZrTp48OVhsscWCM844o9F3LV3grgi0tIjM+tttt13gzkxmPsd9U2z73Y+BwP3DD6699tqC\nm3CBRYM8r7/+ul/3mmuuabC8uXVvUEgVP7jgOgjbdsghh1SxJk1veuLEid7+5ptvbjoT3yCAQFkE\ncv3722qrrYJll122ye39/fffwYYbbhi4UQWZPH/99VfQtWvX4JhjjsksK/Wb7H671OVXsrzsY2zY\nT2cfgwrVyQWygbtiWCgb3yOQagGuQCUyrE1upXTlRmfddHbeHawaVVTDnU466SQ/9KnRly1Y8MQT\nT9jxxx/fghIartq2bdtmDesotv1t2rRpuOE8n+abb74G36qOShqGEk3NrXu0jGq+X2uttWy55Zar\nZhUKbrt16/92jeFrwRXIgAACJRMI/92FrypYfWl2Xxjd4FNPPeWHku+7776ZxVpnr732sksvvbTk\nx6RwI9n9drg8ba+5jrFNHYPytc0FsrbbbrvZlClT8mXjOwRSL/DfX2ipbwYNqISA7lk577zz/H1O\n7spBk5vUAev+++9v8P2YMWPsxRdftLnnntt23nlnm3feef337gyhqePWgXK99dazBx54wN59913b\nZZdd/BBBZdL322yzjT946r6lhRde2Pr162ffffedH9Jx4IEH+vHxb7zxhr+PSJ2+u1Lk7yFSsKeD\n6B577OHHwjeoVJEfWtJ+berbb7/17dOwsP79+2fap+80xGTcuHHWsWNHU4DRnNSUscrKZ1VoW3H2\nkfKMHTvWZp99dn+/1n333eeHdLqrZbbOOusU2kTR38epU1jojz/+aA899JDpvgp3ddT+8Y9/+Nfw\n+/BVP8B0T9+ss87qh6VqefYPtnzGYTm8IoBA8QJx/v2FpT733HP2yCOP2CqrrGI77LCDXxwOB155\n5ZXDbP51pZVW8sGT+gD1u3GT+mkdxw444ADfN2t7up9q7733tvbt2/ticvXbxfSFpehP8vVvn3/+\nud19993+ntotttjCVlxxRX88dVeWfP233357f69yU8fYfFa56q77zwYMGGD6bv755/f9p+4zXmih\nhfIVxXcIpFKAK1Cp3G3VqfSrr77qO2Ld4zTHHHM0WYlZZpnFdtxxR/+97hfSGcGvv/7a+vbt6ztv\nXX1wQzT8j3oFNvpBq/t/lO/555+3yy+/3N8orIBDSUGXDpT6YeuGcPgfv7rBf9FFF7VDDz3Un108\n7rjj7Nhjj/Xl6l4hTbqgg5yW6YC2wQYb+KDKF9jM/zWn/eGmFDwqcNTkGjobuvHGG9s333zjv5aF\nvuvRo4e98sor4SqxX/MZq5B8VoU2osCr0D7SDw3V3w2xsfPPP9//wNAB2g1/81cpdTN3KVOcOoXb\nUz2079u1a2cHHXSQff/997bCCiv4uoV59HrCCSfY8OHDfQCu4P3000/3X4cBVCHjaFm8RwCB4gQK\n/fsLS9MPdJ08O/vss/3kRTrOqH9Sev/99/1r9o91/ZBXeu+99/xrnP+NGDHCH3N0r6ZO0Klv0Am6\nIUOG+GOTJljI1W/H7QtL1Z8U6t9kofYffvjh9sILL/imb7bZZjZjxgy/TJMcKeU6xvovcvwvX901\nWZKOA0oKNnW8DoPNHEWxCIF0C6R6ACKVr6iAu/rk7wtxB7DY273ggguCU045JZPfzVzny9hyyy39\nMt1T5P4FBa5TD9xByS9zZ/38Mnc1KrPetttu6++tyixwb9yZLp/PnWHzi90VBv96yy23BO6KVuCu\nGPnPr732ms+ne2/C5M5EBi4ACz/Gem1O+90wBr/t//u//8tsQ+1Sm6Ptcwdnv+yKK67I5Hv77bf9\nsuz7p7LrXshYBTZlldlYnjdx9pHufVObVLcwyb9z587eOdy34Xfuh5DP39x7oOLUSdtwwXpw8skn\nh5v1r254SeCC/EC+Su7MdOCuUgZu9kj/Wf/TvQBqj5ut0S+LY5xZmTcIIBBbIM6/PxXWp08f/+/W\n/ej3ZburP4EbmeD/naoM3Zurf8fZSf2+/i27EyjZX+X9vPvuuwfuBErgTnpl8rnh6b6sK6+80i/L\n1W/H6QtL0Z/E7d9Uf7U/ehwJj7HuqlqmbbmOsbmOQYXqHh5vr7vuukzZvEGgFgUYwud6FlI8gXA8\ntMY4x00XXnihrbnmmv7sf7iOzkqFV5dmm202f5lf906F5esKgZJmUoqm8GpAuExD+ZQ0vE8pvK9m\n11139UOwFlhgAT99uIbGKekMZXOHx2n9sH7FtF/rKXXv3v2/b9z/NaRESbNNhUlX15qbChmr3Kas\n4mwzzj7S0D2lVVddNVOk/HVVUWeLNQthOBV7JkML3sSpk2ZZ1BnWddddt8GWXPDup7F3B3j717/+\nZf/85z8z08eHGddee23/Nvybi2McrssrAgjEF4jz7y8sTUPQdPxQ0r9NDa/TcOHRo0f74c9hvuhr\n2F8vuOCC0cUF36tPU5+vbYZJIxpUXw033H///f2oiPC78DVOX1iK/iRu/xbWK85r2N/lyxu37nHK\nyrcdvkMg6QIEUEnfQwmqX3ggCYdKFKqahktpCm5NP6thF3GT7llScmcsGqyS3SGHNxiHr2FmfdaP\nd3flwfRDOwya4ljTFAAAQABJREFUWjqVbbHtD+uT/dqSQCy7rLjGoVH4ml1OsZ+b2kfZ5WiqeyVN\nXV7KACp7O/qcXScNsVHSfWXRtNFGG/mPuidKScNgwiGnfoH7X/RvLa5xuC6vCCAQX6DQv798Jenk\niPo0HWd0f6OCJQ3zi56Q0j1CSuGJuXzlFfpOzznU0HH1Z8WmsC/Us6Oac1zM3l7c/i17vXyfo/1e\nrnzF9IWFyspVPssQSJMA90ClaW9Vua56xpN+jOoAEL160lS1wh/r4bONmsoXd3ncDllXO1ZbbTXT\nVQTN3OemsY27ibz5im1/3sJK9GWpjUtUrUwxU6dO9e9131yl0zzzzOM3qfvqokl/D7onSuP+dX/c\nL7/84ic4ieYJ3+tvLunGYV15RSBtAnH+/eVrkx46rmOS+hc9/0lJDziPJt1/q1SKAErBmSYTak5/\nlt0XtvS4GKd/izrEeV/oGFtMX1iorDj1IQ8CSRYggEry3klY3TRz3mmnnebP8h199NF5a+fGQZsO\nbosvvri5+3oaTeDg7lNqNEQvX4HqjMOhGPny6btTTz3VT3ahSSuUWnrlyRfi/lds+8P1yvlaSuNy\n1PPxxx/3w+OKHT5TirqEs/9puE00aSIP3QSuWR91NVA/vNxYf/viiy+i2TLvk26cqShvEEiZQJx/\nf/mapIl9NCFCr169/OQ1uvKkB6VHkybm0dDi8ApQ9Lti3+tkjCZKCI8txawf9oW6El+K42Kc/k31\nC0c8qN75UpxjbJy+MAyc4h6v89WJ7xBIsgABVJL3TgLrpunLd9ppJz81qu5v0XTh0aSzbPvtt5+F\nwyb0vCjNTKQZ5jRFtA54blIJczfs++lTNWOehuppZp8whWcMo2VrNiGd+Quvfv3888+Z53qEs9mF\n6+s7Td+qaWtVlmb1U9KwCQ1BUNL2lS97mKD/Ms//im1/WLfwVUWH93+Fr1qmM5tKYdv1XnVUklE0\nZde9kLHWVVuVovXwC2L8L+4+UlHRs6qffvqpvfzyy3buuec22opm0lMqdFBvtOL/XxCnTrrvTFPq\nK4CK3k/3zDPP+OGE+jtVcg/Z9K+aYUv7QQH3HXfc4Zcpr8ziGPsV+B8CCBQlEOffX1ig/t1HT4iN\nGjXKzwC6+eabm07SHHzwwX4m0LBfV/+iR2Pofsfw6klYVpxXXSELh/oqv2YU3WSTTTIBVK5+Oyw3\n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\n6kNFEECg9gX+/PNPGzt2rB1++OH20EMPpa7BkyZNsgsuuMAee+yx1NU9WuFqtWPatGl2xRVX2D77\n7BOtjn344Yc2aNAg++STTxos5wMCaRUggErrnqPeCDQh8NVXX9lRRx1lSyyxhN1zzz1N5GIxAggg\nUHqBN99800aOHGkXX3yxffbZZ6XfQBlL/OCDD+yqq66yoUOHpvqHfrXa8dNPP9mzzz5rZ555pj38\n8MMN9tSECRPshhtuMP19kBCoBQECqFrYi7QBgYjAlClTbM8997Rff/01spS3CCCAQPkFVl99dTvo\noIPKv6EybGHJJZe0/fff35fctm3bMmyhMkVWqx0dO3a0XXfd1dZZZ51GDd1xxx1NJ/d69erV4Lub\nb765wWd9yLWsUSYWIFBlAQKoKu8ANo9AqQXWWmstW2655UpdLOUhgAACsQTC4KNVq1ax8icpU+vW\n//1ZFL4mqW7F1CWsf/hazLotzav9n2vfzzfffA2KfuKJJ+z4448vuKxBBj4gkBCB9J5iSQgg1UCg\npQJ//fWX6UCiA916661nDzzwgL377ru2yy672DLLLJMpXmPH77//fjvggANs3Lhx9sgjj9giiyxi\ne++9t7Vv3z6TjzcIIIBAsQLqh3Tv0uyzz25LL7203Xffff6+le222y7nFYViy1f+H3/80d8Xpftz\nFltsMfvHP/7hX7PL0nCvp59+2n755RfTFS3li/4gL3Vf+NRTT/n7RWeddVa/PdUnuj191nBEDUvT\ntjfYYAPbfPPNtdgnXe2X19Zbb21ffvmlb+PCCy9s/fr1szZt2tgXX3zh+2718f3797c555wzXNWP\nFNC9qmqz8u6xxx6+Xw8zfPzxx3b33XfbkCFDbOLEiX47Xbp0sQEDBvhjRphPr3HaEc2f630QBP74\n8tprr/n66GTcFlts4bO2xH3mzJm+XF2l0kk+HfO22WYb76xhk/LSd9nLZBimMWPG2Isvvmhzzz23\n7bzzzjbvvPOGX9lzzz1nf/zxhy2//PJ200032aabbmprr7125nveIFBqAa5AlVqU8hAoQuC7777z\nB0z9QND48H333deef/55u/zyy/0B4Ntvv/WljRgxwlZZZRV/b9OBBx5ow4cPtzfeeMMfVHWg0I3b\nJAQQQKA5AvphrB+kW221lZ1//vn+pMzrr7/uh1JtuOGGdtdddzWn2AbrqDwFHu3atfND/L7//ntb\n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\nE2Ba8lrbo5VpT7t27ezII4+0999/37baait/j9QGG2xg48ePr0wF2AoCzRQggGomHKshgAACCCBQ\n7wJMS17vfwGlaf/8889v11xzjekKpiadWHvttW3QoEGmKdBJCCRRgAAqiXuFOiGAAAIIIJBwAaYl\nT/gOSmH1NDvf008/bbfddpuNGTPGlllmGTvvvPPsjz/+SGFrqHItCxBA1fLepW0IIIAAAgiUWEDD\nrfr162e9e/e2lVZaySZNmmSnn366dejQocRborh6Fdh5553t3XfftSOOOMJOPfVUW3HFFe2BBx6o\nVw7anUABAqgE7hSqhAACCCCAQNIEwmnJFTRNmTLFxo4da3feead169YtaVWlPjUg0L59ex88vfPO\nO7bGGmvY1ltvbVtuuaVNnDixBlpHE9IuQACV9j1I/RFAAAEEECijANOSlxGXogsKdOnSxW6//XZ7\n6qmn7KuvvrLu3bvboYceat99913BdcmAQLkECKDKJUu5CCCAAAIIpFyAaclTvgNrqPobbbSRn53v\niiuu8AHV0ksvbXr/999/11AraUpaBAig0rKnqCcCCCCAAAIVEmBa8gpBs5miBDRD3z777GPvvfee\nDRw40F+JWm211eyJJ54oqhwyI9BSAQKolgqyPgIIIIAAAjUiwLTkNbIja7wZnTp1sgsuuMA/iHex\nxRazHj162A477GAfffRRjbec5iVFgAAqKXuCeiCAAAIIIFBFAaYlryI+m26WgKY5Hz16tD300EN+\ncokVVljBTjzxRPv555+bVR4rIRBXgAAqrhT5EEAAAQQQqEEBpiWvwZ1aZ03q1auXvfHGG3b22Wfb\npZde6p8fdcstt5gmQCEhUA4BAqhyqFImAggggAACCRdgWvKE7yCqV5RAu3bt7PDDDzedEOjbt6/t\ntddetv7669tLL71UVDlkRiCOAAFUHCXyIIAAAgggUCMCTEteIzuSZuQU6Ny5s1111VX2yiuv2Cyz\nzGLrrruun3Di888/z5mfhQg0R4AAqjlqrIMAAggggEAKBZiWPIU7jSo3S2DVVVe1cePG2R133GFP\nPvmkH9Z3zjnn2O+//96s8lgJgagAAVRUg/cIIIAAAgjUoADTktfgTqVJsQT69+9vkyZNsqFDh9oZ\nZ5xhK664ot17772x1iUTAk0JtHKX8rnDrikdliOQAIFhw4bZlVde2aAmkydPtgUXXNA6duyYWd6t\n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\nBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiA\nBEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARo\nQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIg\nARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIg\nARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmr\nU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiA\nBEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aoBATGjh0rq1evLkFO3lks\nX75cHnjgAbn00kvl4YcflpUrV3pfVOIYX3zxhdx2223y+uuvlzhnZlcIAitWrJDx48fLJZdckkru\n888/l1tvvVXefffd1DGvLz/++KO88cYbXtHyOj9v3jzp37+/fP/993mlk+vFuea/cOFCue+++2Tg\nwIG5Zp3Y6/LVv1K2kbnWf6EqL9f8qX/eNeB8jkEv0Re47rrrPC9etmyZ3H777XLeeefJpEmTZMOG\nDZ7X5BohVx3INT/ndbnmv27dOpkyZYpccMEF8sorrziTjd5vi4EESMA3gQkTJlitW7e21J1s/frr\nr76vK1bEL7/80tpqq62s5s2bW9WrV9dy7bjjjtbixYuLlWXgdL/55htLPTS0bI8++mjg63lB+ATG\njBljNW3a1Npuu+20MHPnzrVOPvlkXafPPvusp4BLliyxLrzwQqtWrVrWueee6xk/nwiQFfenegDn\nk0zO1+aSv+rgW88884zVuHFjq0mTJjnnndQL89G/UreRudR/Iestl/ypf9414PYce+yxx6yGDRta\nu+yyS9YEfvnlFwvP5VNOOcVq3769VblyZWu//fbLek0+J3PRgXzyc16ba/4ff/yxdeaZZ+r2+6GH\nHnImG7nfEjmJKBAJRJTAggULLPz16dNH3+BRMKCOOeYYa9asWZoYOqlq9FrLpkbgI0Vxzpw5Wq4n\n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\nGiw6Y5MACYRNoEOHDnLEEUfI4MGDwxaF+ZNAJAnAcJo/fz5naCNZO+UrFNrshQsXCtpwBhKICoHz\nzz9ffvjhBzn88MOjIlIs5KikXvBmxUJSCkkCJEACJEACJEACJEACJEACIRPgEr6QK4DZkwAJkAAJ\nkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJ\nxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUl\nJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAES\nIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkA\nDaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJ\nkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJ\nkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIdAlWtV\niI+4lLRcCLz33nvyyCOPyLvvvis1a9aUJk2a5FX0GTNmyLhx42TUqFEya9YsWb58uWy33XZStWrV\nvNI1F69bt07eeOMNufvuu2Xjxo3SvHlzc6oon5MmTZIPPvhAPvvsM1m/fr1svfXWafksW7ZMXnrp\nJX0ecfC3zTbbSK1atdLi+f3xxRdfyBNPPCF//vmn7Ljjjn4vyxpv8eLFMmHCBC3b559/LrvssotU\nqVIl7Zq3335boAumDL/99ptsv/32aXH4IzcCK1askNdee00effRROfLIIwW///Of/8i///1vOfzw\nw30nOnbsWGnatGnB7iW3jEeOHCkzZ86Ufffd1+10rI8tXLhQnnnmGXnggQekW7dusS5LoYR3tjdB\ndBNt++OPPy7PP/+8zJ8/X3bddVepVq1aoURLS2fevHly4YUXSuvWrWWTTTZJOxf3H6V+psWBl7PN\nhMx4duHZiIA+RbaA5/K//vUv3cbiWYd2s3Ll4sxjUDez1USBzlkMJBAxAueee65Vv359SzVGllJz\n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\noGzZsnLjjTcaReqII46Qdu3amRnJFStWRHvlOQmQAAmQAAmQAAkERoAKVGAoGVGQBKZPny4NGzY0\n+16wZA97X84888wgk2BceUKgXr16MnXqVHnzzTeNMgWF+5///Kds27YtT0rIYpAACZAACZAACeQS\nASpQuVQbzIt8//330rFjR+nUqZMxTw7ra9dee635MC7xkEAiAm3btjXWGLGkb9y4cYJZKcxY0pEA\nCZAACZAACZBAkASoQAVJk3H5JrBlyxZjHAKzTsuXL5c5c+bI5MmTpVatWr7jZMDCI1CqVCm56qqr\nzPfATjjhBOnSpYuZuVy6dGnhwWCJSYAESIAESIAE0kKAClRasDJSLwRefPFFOfzww+XBBx+U22+/\nXb744gtp0aKFlyjolwQiCMDU+aRJk2TevHkCU+f4KC9mMjdv3hzhjyckQAIkQAIkQAIk4JUAFSiv\nxOg/MAKwpgfLer169ZKWLVuaWYMrrrhCSpYsGVgajKiwCZx66qny2WefyZ133injx483ivrzzz9f\n2FBYehIgARIgARIggZQIUIFKCR8D+yHw119/yZVXXmm+6fTHH3/Ie++9J//5z39kv/328xMdw5BA\nQgIlSpSQoUOHynfffSfYJ3XOOeeYGU4YJqEjARIgARIgARIgAa8EqEB5JUb/vgkopeSZZ54xHz99\n6qmnzJK9jz/+WLBXhY4E0k2gevXq8sQTT8gHH3xglvIde+yxghnPDRs2pDtpxk8CJEACJEACJJBH\nBKhA5VFl5nJRsK/plFNOkf79+5uN/ZgNuPjii6V4cTbBXK63fMzbcccdZ5Sohx9+2OyTOuyww8wM\nKBR8OhIgARIgARIgARJIRoC912SEeD8lAr///rtceuml0qRJE0EH9ZNPPhF0XPfee++U4mVgEkiF\nABT3gQMHmmV9PXr0MMcnnniifPrpp6lEy7AkQAIkQAIkQAIFQIAKVAFUcjaKuGfPHnn00Uelfv36\n8tJLL8mTTz4p7777rmDZFB0J5AqBvfbayywlheIE4yWYnRo8eLCsX78+V7LIfJAACZAACZAACeQY\nASpQOVYh+ZAd7DFBRxQzT/369TOj/Oeff74UK1YsH4rHMuQhgaOPPlreeecdwd68V155xSj+mCnF\nQAAdCZAACZAACZAACTgJUIFy0uBxSgR+/fVXufDCCwVLoSpXrmy+53T33Xeb45QiZmASyBCBvn37\n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\nJEACWSJABSpL4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL\n4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAA\nCZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAACZAACZAACZBA\n+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSoF8GvXrpW5c+emEAODkoA/ArNnz5Zff/3VX2CG\nIgGfBCDvIPfoSIAEvBOAzIbspiMBEgg/ASpQKdThrFmzpF27dinEwKAk4I9A69atZd68ef4CMxQJ\n+CTQpk0bmTNnjs/QDEYChU0AMhuym44ESCD8BKhApVCHmzdvlgoVKqQQA4OSAAmQQHgIlClTRrZv\n3x6eDDOnJEACJEACJJAGAlSgUoC6ZcsWKlAp8GNQEiCBcBEoW7YsFahwVRlzSwIkQAIkkAYCVKBS\ngLpp0yYqUCnwY1ASIIFwEeAMVLjqi7klARIgARJIDwEqUClw5QxUCvAYlARIIHQEoEBt27YtdPlm\nhkmABEiABEggSAJUoFKgyT1QKcBjUBIggdAR4AxU6KqMGSYBEiABEkgDASpQKUClApUCPAYlARII\nHQHugQpdlTHDJEACJEACaSBABSoFqFSgUoDHoCRAAqEjwCV8oasyZpgESIAESCANBKhApQCVClQK\n8BiUBEggdAQ4AxW6KmOGSYAESIAE0kCAClQKUKlApQCPQUmABEJHgHugQldlzDAJkAAJkEAaCFCB\nSgEqFagU4DEoCZBA6AhwCV/oqowZJgESIAESSAMBKlApQKUClQI8BiUBEggdAc5Aha7KmGESIAES\nIIE0EKAClQJUKlApwGNQEiCB0BHgHqjQVRkzTAIkQAIkkAYCVKBSgEoFKgV4DEoCJBA6AlzCF7oq\nY4ZJgARIgATSQIAKVApQoUCVL18+hRgYlARIgATCQ4BL+MJTV8wpCZAACZBA+ghQgfLJViklW7Zs\nkQoVKviMgcFIgARIIFwEuIQvXPXF3JIACZAACaSHABUon1y3bt0qUKKoQPkEyGAkQAKhI8AlfKGr\nMmaYBEiABEggDQSoQPmEiuV7cFSgfAJkMBIggdAR4BK+0FUZM0wCJEACJJAGAlSgfEKlAuUTHIOR\n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\nBEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEig\nQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYx\nSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAE\nSIAESIAEUieQVwrUN998I+PGjZP33nvPNZk1a9bI22+/7dq/H48//PCDXHjhhbJq1So/wRkmRAQ2\nbdok06ZNk5tvvtlVrhcsWCCjR4+WMWPGyEcffeQqjF9Pd999tzz00EN+gzNcCAh4bX9z5syRESNG\nyF133SWrV69OawnZ/tKKl5H7ILBo0SK588475a233jKh/fQhEHD9+vUyduxYHzlwF4R9CHec6IsE\nMkkgbxSo7777zgiwq666Sn766aekDH/77TfTcTjooIPkv//9b1L/qXj47LPPZMKECfL111+nEg3D\nhoDAiy++KAMHDpTnnnsuaW6HDRsm7du3N23jhhtukOOPP17+9a9/JQ3n18OTTz4pTz/9tN/gDBcC\nAl7a3x133CFogxs3bjSdyDp16siMGTPSVkq2v7ShZcQ+CHz//ffyyCOPyMiRI83gptc+hDNJyPz7\n7rvPeSnQY/YhAsXJyEggEAJ5o0DVr19fhg4d6hrK8uXLpV+/frJ161bXYfx67NGjh0BhO/PMM/1G\nwXAhIdC/f39p2rRp0txOnTpVihcvbkYu0RZnzZole+21l1x//fWC0cZ0uA8//FDmzp2bjqgZZ44Q\ncNv+0Mbq1atnBnXQiVy6dKlUqlRJ7r333rSVhO0vbWgZsQ8CBx98sFx88cUmZMmSJcVrH8JK8rHH\nHhPMXKXTsQ+RTrqMmwT8EcgbBQrFL1GihKFQrFixpDSaNWsmhx9+eFJ/QXnYZ599goqK8eQ4AbTD\nZG3w/fffN6P+lt9WrVrJ2WefLbt27ZKPP/44LSWsUKGClCtXLi1xM9LcIWC1qUQ52rlzp2lvlp+K\nFStK165dpXLlytalwH/Z/gJHyghTJIBBLDjr10sfAuEwa/X5559Lx44dcZpWxz5EWvEychLwTKCk\n5xA5EODXX381S03wi1Gkxo0bC5biOd3vv/8uU6ZMkb/++kt69uxpRlud94M4Rmd39uzZgo7BoYce\n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\nECgjgYkTJ/oEL3/7299s2LBhfp2T1jw1bty4jFpJUxBAAAEEEEAglwABVC6dKnytpqbG9t13X78+\n6thjj7Vzzz3Xpz+///77q7C3dAmB8hB47733rH///v4WA507d/apyS+99FJr06ZNeTSQViCAAAII\nIIBAaAECqNBU1VVxmWWWsXPOOcf0wU4jU4MHD7ZevXrZa6+9Vl0dpTcIlFDgu+++M402bbDBBvbx\nxx+bboCsZC4a/aUggAACCCCAQGUKEEBV5nUrWqtXW201u/322/3UPqU633zzze2AAw6wL774omjn\n4EAIxE1g4cKFNmrUKL/OSesPr776aps2bZpxQ9y4vRPoLwIIIIBANQoQQFXjVS2gT1tssYW9+OKL\nNmbMGP8tub4h/8c//mELFiwo4GjsgkB8BR555BHbcMMN7cQTT7SDDjrIr3M65JBDTLcXoCCAAAII\nIIBA5QvwF73yr2FRe6AbeCrt+cknn+wDKKVUvueee4p6Dg6GQDUKzJgxw3beeWfbZZddfGpyPb/o\noots2WWXrcbu0icEEEAAAQRiK0AAFdtLn73jzZs3tzPOOMN/c77ddtvZkCFDrGfPnjZ16tTsO/EK\nAjEV+Oabb/wNqzfaaCN/a4Bnn33W7rvvPltzzTVjKkK3EUAAAQQQqG4BAqjqvr516t3KK69sN998\nsw+cNP2oR48ePvXyp59+WqfjsjMC1SCgNYO6h9Naa61lDzzwgF1//fX2yiuv2J///Odq6B59QAAB\nBBBAAIEsAgRQWWDY/D+B7t2723PPPWdjx461F154wbp06WLnnXee/fLLL/+rxCMEYiQwbtw4P03v\ntNNOM93H6YMPPrD999+fdU4xeg/QVQQQQACB+AoQQMX32kfu+R577GHvvPOOnXXWWXbJJZfYOuus\n45NOJBKJyMdiBwQqUeDNN9+07bff3nbbbTfbdNNN/XrB888/31q2bFmJ3aHNCCCAAAIIIFCAAAFU\nAWhx3qVZs2Y+wYS+cdeC+WHDhtlWW21lL730UpxZ6HuVC3z11Vd26KGH+qBp/vz5fiRW6ck7duxY\n5T2newgggAACCCCQLkAAlS7C81AC7dq182s+dONd3ZRXN+P961//anPnzg21P5UQqASB33//3S6+\n+GJ/49sJEyb4NYFTpkyxbbbZphKaTxsRQAABBBBAoB4ECKDqATVOh+zWrZs99dRT9uCDD/pkE0p7\n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\nEEAAATPWQPEuQAABBBBAAAEEEEAAAQRCChBAhYSiGgIIIIAAAggggAACCCBAAMV7AAEEEEAAAQQQ\nQAABBBAIKUAAFRKKaggggAACCCCAAAIIIIAAARTvAQQQQAABBBBAAAEEEEAgpAABVEgoqiGAAAII\nIIAAAggggAACBFC8BxBAAAEEEEAAAQQQQACBkAIEUCGhqIYAAggggAACCCCAAAIIEEDxHkAAAQQQ\nQAABBBBAAAEEQgoQQIWEohoCCCCAAAIIIIAAAgggQADFewABBBBAAAEEEEAAAQQQCClAABUSimoI\nhBH46aef7KGHHrJzzz03TPVadcaOHWsvv/xyrW3FfDJy5Ei75pprinlIjoUAAggggAACCMROgAAq\ndpecDtenwH333WcHHXSQ3XXXXZFO88orr9jQoUPttddei7RflMo33XST3XbbbVF2oS4CCCCAAAII\nIIBAmgABVBoITxGoi8B+++1nm222WaRD/Pzzz3bOOefYH3/8EWm/qJWnTJliTz/9dNTdqI8AAggg\ngAACCCCQIkAAlYLBQwSKIdC4cWOrqakJfahTTz3VTj/99ND1C63YokULa968eaG7sx8CCCCAAAII\nIICAE2iCAgIIRBf46quvbMKECaafnTt3tk033dTWXHPNJQ704osv2uOPP24bbbSR/eUvf1ni9Qcf\nfNC6dOli66+//hKvhd3wySef2Lhx4+zwww+3Z5991p9v1VVXtQMPPLBWwKS2jh8/3g444AB/6IUL\nF9qkSZNMgdXaa6/t12599NFHtvvuu1uPHj1qnf6zzz6zxx57zHSubbbZxvr06VPrdZ4ggAACCCCA\nAAJxESCAisuVpp9FE/j++++tX79+9swzz/gAZd999/XHTg2gfvvtNxswYIAlEglTUHLeeef5NU63\n3357sh0KSh544AHTtvnz5ye3R3kwZswYGzFihC1YsMCmT59uv//+u33xxRd24YUX+uO+8MIL1qhR\nI//46KOPtmWWWcYHUAqE/va3v/nz77rrrrZo0SLr2LGjKaC79NJL7e67704GfJr2pzVdCtBatWpl\nAwcOtGHDhtnVV18dpanURQABBBBAAAEEqkKAKXxVcRnpREMK3HHHHdayZUv/n6brnX/++UusX/r0\n00/tkksu8SM+b7/9tu22226m/R599FHfVAVWJ5xwgq9Tl7bvs88+tssuu/gA6qijjrIbb7zRj4yd\neeaZPqOfEkeojfu5tVk77LBD8lSrrbaa/fOf//TPmzVr5tupgGjatGm23HLL2THHHGMaoVJWQSXF\nuOyyy2yTTTaxwYMH21577eWz+U2ePDl5PB4ggAACCCCAAAJxESCAisuVpp9FE1h33XX9VDllzfv6\n669tjTXWsEGDBtU6vqbkrbPOOn6b1kNp9EZF0/5UFJAMGTLE2rVr55/X5X+agtekSZNa0wBPOeUU\nv+25555LHlqBUmrRfiobb7xxcrPac/DBB/uperNmzfIjT7/++quddNJJduSRR/r/NMKlaYszZ85M\n7scDBBBAAAEEEEAgLgJM4YvLlaafRRPo3bu3Hz3SVDetPbriiits//33z3n8Lbfc0k+l07S9999/\n35TuXCNQmsKn8ssvv/ifGgHStq222spWXnllv62Q/2mqnkaZFOBFLVqTpaJ9NXqmdjBdL6oi9RFA\nAAEEEECgWgUIoKr1ytKvehPQmqKLL77YdtxxR9O0OSVlUIKGk08+Oes5l112WT/lT+uktP5o7ty5\npjVJQdGUPhXdTFejVJqKV5cASmuwNFK00047BacI/XPOnDm+rtqq6X/vvfeen6LYtGnT0MegIgII\nIIAAAgggUK0CTOGr1itLv+pNQMHN4sWL/ZoijRgpI92oUaNynk/1lCiib9++phEsBVGp/33wwQd+\n/wsuuMBvLyTwSW3ASy+95NdF9e/fP3VzqMdPPfWUde/e3dq3b2/dunUz3adq9OjRtfZVIo1rrrmm\n1jaeIIAAAggggAACcRAggIrDVaaPRRVQsPPEE0/4Y2qqnLLSrbjiirXOoeQLCrKCcu+99/rkC/WV\n/lsJH955553gdHb//fdbr169LDWA0qjUDz/84JNDJCu6B8reFxQlv5g6dapddNFFfpMSRqy++up+\nuqFG3XQOjZIdcsghFmQfDPblJwIIIIAAAgggEAcBpvDF4SrTx6IKKBmDstQpqcIKK6xgCqhuvvnm\n5DmUHlzT+TSK1LNnT/v888+tbdu2PgtfslKRH2haoUaEdKPcjz/+2I8aPfzww/4sSgJxww03+MQX\nSneum/Yef/zxyRaofcq0t9JKK9nEiRN9yvMg0FNfdR8rBYlKJKH/NthgA7vtttt8SvPkQXiAAAII\nIIAAAgjERKDGrb347+KLmHSYbiKQSUCjLMcdd5wde+yxmV6utU2jPcp6p3VPCjBat25d6/XgiQKX\nefPm+RGcYFt9/DzssMNM6cp1DygFT2qP1lzlK1ojpXVWSsOugPDLL7+0Tp06mbIGZipaG6XXOnTo\nkOllv03ZBUeOHOnbEVTSVEX5alqhkmlQEEAAAQQQQACBShZgBKqSrx5tL4mAgicVjdjkKhoNUuBQ\nSFEiiSDlebb9V111VT+alPp6oefTVESlY89VdKNdCgIIIIAAAgggEHcBAqi4vwPof1kKKJjZbrvt\ncrYtGPlSCvTgpre6wW/YEqROV0IICgIIIIAAAggggEA4AQKocE7UQqBBBbp27Wr6L18ZM2aMX7ek\nmbhad6Wb4KbeGDfb/rNnz7azzz7bv6yEE+utt57ts88+ttRSS2Xbhe0IIIAAAggggAACToAAircB\nAhUsoCx7u+yyS7IHWpMVpqyyyio+9Xpq+nXu8xRGjjoIIIAAAgggEHcBAqi4vwPof0ULBNP4onZC\nI02MNkVVoz4CCCCAAAIIIGDGfaB4FyCAAAIIIIAAAggggAACIQUIoEJCUQ0BBBBAAAEEEEAAAQQQ\nIIDiPYAAAggggAACCCCAAAIIhBQggAoJRTUEEEAAAQQQQAABBBBAgACK9wACCNSrQHC/qXo9CQdH\nAAEEEEAAAQQaSIAAqoGgOQ0CcRT45ptvbM8997ROnTpZly5d4khAnxFAAAEEEECgygQIoKrsgtId\nBMpFQMFTnz597IcffrBnnnnGll9++XJpGu1AAAEEEEAAAQQKFiCAKpiOHRFAIJtAevDUsWPHbFXZ\njgACCCCAAAIIVJQAAVRFXS4ai0D5CyxatKjWyBPBU/lfM1qIAAIIIIAAAuEFmoSvSk0Eqlvg9ddf\nt3vvvbe6O1nPvZPhvHnzrFmzZn7aHsFTPYNzeAQQQAABBBBocIGahCsNflZOiECZCWy55ZY2ZcqU\nMmtVZTanffv2NnnyZCN4qszrR6sRQAABBBBAILcAAVRuH15FoCwFampqbOzYsTZ48OCybB+NQgAB\nBBBAAAEEqlWANVDVemXpFwIIIIAAAggggAACCBRdgACq6KQcEAEEEEAAAQQQQAABBKpVgACqWq8s\n/UIAAQQQQAABBBBAAIGiCxBAFZ2UAyKAAAIIIIAAAggggEC1ChBAVeuVpV8IIIAAAggggAACCCBQ\ndAECqKKTckAEEEAAAQQQQAABBBCoVgECqGq9svQLAQQQQAABBBBAAAEEii5AAFV0Ug6IAAIIIIAA\nAggggAAC1SpAAFWtV5Z+IYAAAggggAACCCCAQNEFCKCKTsoBEUAAAQQQQAABBBBAoFoFCKCq9crS\nLwQQQAABBBBAAAEEECi6AAFU0Uk5IAIIIIAAAggggAACCFSrAAFUtV5Z+oUAAggggAACCCCAAAJF\nFyCAKjopB0QAAQQQQAABBBBAAIFqFSCAqtYrS78QQAABBBBAAAEEEECg6AIEUEUn5YAIIIAAAggg\ngAACCCBQrQIEUNV6ZekXAggggAACCCCAAAIIFF2AAKropBwQAQQQQAABBBBAAAEEqlWAAKparyz9\nQgABBBBAAAEEEEAAgaILEEAVnZQDIoAAAggggAACCCCAQLUKEEBV65WlXwgggAACCCCAAAIIIFB0\nAQKoopNyQAQQQAABBBBAAAEEEKhWAQKoar2y9AsBBBBAAAEEEEAAAQSKLkAAVXRSDogAAggggAAC\nCCCAAALVKkAAVa1Xln4hgAACCCCAAAIIIIBA0QUIoIpOygERQAABBBBAAAEEEECgWgUIoKr1ytIv\nBBBAAAEEEEAAAQQQKLoAAVTRSTkgAggggAACCCCAAAIIVKsAAVS1Xln6hQACCCCAAAIIIIAAAkUX\nIIAqOikHRAABBBBAAAEEEEAAgWoVIICq1itLvxBAAAEEEEAAAQQQQKDoAgRQRSflgAgggAACCCCA\nAAIIIFCtAjUJV6q1c/QLgWoQGDVqlI0ePbpWV2bOnGnt27e3li1bJrd36tTJJkyYkHzOAwQQQAAB\nBBBAAIHiCzQp/iE5IgIIFFNg/vz5NmPGjCUOOXfu3Frb+C6kFgdPEEAAAQQQQACBehFgCl+9sHJQ\nBIonMGTIkLwHa9Kkie23335561EBAQQQQAABBBBAoG4CTOGrmx97I9AgAt27d7dp06ZZrlGmOXPm\nWIcOHRqkPZwEAQQQQAABBBCIqwAjUHG98vS7ogSGDx9ujRpl/udaU1NjPXr0IHiqqCtKYxFAAAEE\nEECgUgUyfyKr1N7QbgSqVGDPPfe0xYsXZ+ydAqthw4ZlfI2NCCCAAAIIIIAAAsUVIIAqridHQ6Be\nBJRxr1evXhlHoTStb/DgwfVyXg6KAAIIIIAAAgggUFuAAKq2B88QKFuBTKNMjRs3tt69e1vbtm3L\ntt00DAEEEEAAAQQQqCYBAqhqupr0paoFBg0atMQIlKb1ZQqsqhqCziGAAAIIIIAAAiUUIIAqIT6n\nRiCKQOvWra1fv36mUaegNG3a1AYOHBg85ScCCCCAAAIIIIBAPQsQQNUzMIdHoJgCQ4cOTSaT0L2f\nBgwYYK1atSrmKTgWAggggAACCCCAQA4BAqgcOLyEQLkJ9O/f35ZeemnfrIULF5oCKgoCCCCAAAII\nIIBAwwkQQDWcNWdCoM4CzZs3N62FUmnRooX17du3zsfkAAgggAACCCCAAALhBQigwltRE4GyEAhG\nnXRvqGbNmpVFm2gEAggggAACCCAQFwECqLhcafpZNQLbb7+99enTxw4//PCq6RMdQQABBBBAAAEE\nKkWgxt2EM1EpjaWdCCCAAAIIIIAAAggggEApBRiBKqU+50YAAQQQQAABBBBAAIGKEiCAqqjLRWMR\nQAABBBBAAAEEEECglAIEUKXU59wIIIAAAggggAACCCBQUQIEUBV1uWgsAggggAACCCCAAAIIlFKA\nAKqU+pwbAQQQQAABBBBAAAEEKkqAAKqiLheNRQABBBBAAAEEEEAAgVIKEECVUp9zI4AAAggggAAC\nCCCAQEUJEEBV1OWisQgggAACCCCAAAIIIFBKAQKoUupzbgQQQAABBBBAAAEEEKgoAQKoirpcNBYB\nBBBAAAEEEEAAAQRKKUAAVUp9zo0AAggggAACCCCAAAIVJUAAVVGXi8YigAACCCCAAAIIIIBAKQUI\noEqpz7kRQAABBBBAAAEEEECgogQIoCrqctFYBBBAAAEEEEAAAQQQKKUAAVQp9Tk3AggggAACCCCA\nAAIIVJQAAVRFXS4aiwACCCCAAAIIIIAAAqUUIIAqpT7nRgABBBBAAAEEEEAAgYoSaFJRraWxCGQQ\nmDt3rk2YMMFeffVVu+GGGzLUKO2m119/3R566CH76aefrHv37tanTx97/PHHbejQoSVp2B9//GHP\nPfecjR8/3nbYYQfr169f0drx2muv2dSpU+2dd96xlVde2TbaaCPr3bu3NWvWrCjnqM+2F6WBHAQB\nBBBAAAEEql6AEaiqv8TV3UEFJf/5z3/s73//uz322GNl19nbbrvN/vznP9vyyy9vu+66q7388svW\ntWtXO+KII0rW1unTp9vYsWPt8ssvt88++6wo7fj666/tr3/9q+299962wgor2LHHHmtbbbWVqf8b\nb7yxv0bFOFF9tL0Y7eIYCCCAAAIIIBAfAQKo+Fzrquxpy5YtbciQIdajR4+y699vv/1mRx11lA8q\nRowYYX/6059s5MiRfvSnUaNGfkSqFI3edNNN7cgjjyzaqRcsWOCDxDfffNOmTJlie+yxh3Xs2NFv\nu+uuu6x///7+sQLdQoqCsKDUpe0K8soxyA76xk8EEEAAAQQQqAwBAqjKuE60Mo9AkyZNrKamJk+t\nhn35o48+sh9//NG+//77Wideb7317JBDDina6E+tg4d8Ii+VYpidccYZ9u6779o555xjyy233BIt\nOOuss6xNmza2//7726+//rrE67k2PP3003baaafVqlJI2xctWuRHyGbPnl3rWDxBAAEEEEAAAQSi\nCrAGKqoY9Ysm8Mknn9i4cePs8MMPt2effdavC1p11VXtwAMPtObNmxflPApgHnnkEb8mZ/XVV7cd\nd9zR9DO15KuzcOFCmzRpkrVo0cLWXnttv55JwdHuu++ec+RrnXXW8SMxDz74oF111VV+NCo4r6a4\nNW3a1D99+OGH7cMPPzSNph100EE+6NKoi9b7aB3RXnvt5euFaUeYOkEbUn+qfx9//LHfpPVKgwYN\n8uuWNOVwxowZPjDabbfdUnfxj3/++We77LLLrHXr1n6fJSq4Da1atfKvaX3aPffcYzvttJM98MAD\nvn9ag7X++uubAqU33njD765zd+jQwW/TORXkXXfddbbKKqvYgAEDMp0iue3JJ5/0o2AK5OSm6YQa\nCdxnn31Mr6200kr+eJpOKVsKAggggAACCCAQVYARqKhi1C+KwJgxY3yCgRNOOMGvB7r99ttNU8A0\n1W3bbbf1H67reiJ9IN9mm218oKIpaxoJ0vqj1Clh+eooyNMH8Z133tkuvvhiH9xpHx2jZ8+edv/9\n92dtpqbpqX8KatSvv/zlL/bpp5/6+vrwvuKKK/rHCgoUXJx77rn+uQKOYcOG2dlnn21XXHGF3xam\nHWHq+INl+J/WK11yySV+lEjTIYOkD1tssYVddNFFplGzTOXtt9+2xYsX+4BH/c1WNKVPRddYfVcg\noyBy8uTJfvt2221n8+fP99s0mqWiIEhJKNQWBaPpga+v9H//+/333+3ggw+2efPm+SmDCsjWXXdd\nH/xpiqGun4oCdB2rWAH6/52eHwgggAACCCAQJ4EEBYESCbgsdAk3upB46623ki0488wzE+7fX2L0\n6NHJbWEeDB48OLHaaqslq7pRh4T7AJ1w08eS2/TAJTpILLXUUgn3wT8Rpo72mTlzpm+TzhGUL774\n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\n" - } - ], - "prompt_number": 10 - }, + } + ], + "source": [ + "# instead of passing chiller to the function, we pass a tuple (chiller, 'Chilled_Water_').\n", + "# This lets eppy know where the connection should be made.\n", + "# The idfobject pipe does not have this ambiguity. So pipes do not need this extra information\n", + "listofcomponents = [(chiller, 'Chilled_Water_'), pipe1, pipe2]\n", + "\n", + "try:\n", + " newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')\n", + "except Exception as e:\n", + " print(e)\n", + "else: # else will run only if the try suceeds\n", + " print(\"no exception was thrown\")\n", + "\n", + "idf.saveas(\"hhh_new.idf\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Tagential note*: The `\"try .. except .. else\"` statement is useful here. If you have not run across it before, take a look at these two links\n", + "\n", + "- http://shahriar.svbtle.com/the-possibly-forgotten-optional-else-in-python-try-statement\n", + "- https://docs.python.org/2/tutorial/errors.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have saved this as file \"hhh_new.idf\". \n", + "Let us draw the diagram of this file. (run this from eppy/eppy folder)" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "python ex_loopdiagram.py hhh_new.idf\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1AAAAV7CAYAAAAooE7+AABAAElEQVR4AezdB7zUxPr/8Yemgig27AL2LvZeEa/S7Niw8MOGBTv23q7tqlfsXREL2BWvBVTsBbGDBRWwYVfsjfznO/efvTl79uxmz9mS7H7m9dLdzU4mM+8cJvskk0mrwCUjIYAAAggggAACCCCAAAIIFBRoXTAHGRBAAAEEEEAAAQQQQAABBLwAARR/CAgggAACCCCAAAIIIIBATAECqJhQZEMAAQQQQAABBBBAAAEECKD4G0AAAQQQQAABBBBAAAEEYgoQQMWEIhsCCCCAAAIIIIAAAgggQADF3wACCCCAAAIIIIAAAgggEFOAAComFNkQQAABBBBAAAEEEEAAAQIo/gYQQAABBBBAAAEEEEAAgZgCBFAxociGAAIIIIAAAggggAACCBBA8TeAAAIIIIAAAggggAACCMQUIICKCUU2BBBAAAEEEEAAAQQQQIAAir8BBBBAAAEEEEAAAQQQQCCmAAFUTCiyIYAAAggggAACCCCAAAIEUPwNIIAAAggggAACCCCAAAIxBQigYkKRDQEEEEAAAQQQQAABBBAggOJvAAEEEEAAAQQQQAABBBCIKUAAFROKbAgggAACCCCAAAIIIIAAARR/AwgggAACCCCAAAIIIIBATAECqJhQZEMAAQQQQAABBBBAAAEECKD4G0AAAQQQQAABBBBAAAEEYgoQQMWEIhsCCCCAAAIIIIAAAgggQADF3wACCCCAAAIIIIAAAgggEFOgbcx8ZEMgdQJ//vmnPfXUU/bggw/aFltsYb17905UG/744w8bPny4vfnmm7bYYovZhhtuaHPPPbd98803tt5661W8rqX0+u677+zhhx9u1Aa1UW0tlEpZl0Lb4nsEEKiewLRp02z06NH2yiuv2LXXXlu9ikS23FT/1alTJ1tggQVs6aWXtjnnnDOyRnrf/vTTT/bEE0/YM888Y+eee27Ohug4+umnnzb4bq655rJevXo1WNbUhyTu46bqynIE4gpwBSquFPlSJ6DAZOTIkXbxxRfbZ599lqj6//LLL7b22mvbqFGjrF+/fjbvvPPacccdZ8suu6w9//zzValrKb0UCPbo0cOuvvpq22233ez000+3DTbYwBZddNFYbStlXWJtkEwIIFBxAf14f/bZZ+3MM8/MecKl4hX6/xtUcLDCCivYSSed5PuvW2+91XRS59VXX7V///vf1qVLFx88vPDCC9WqYsm2qxNdhxxyiN1+++1Nlrnuuuta+/btvYX686+//to23XTTJvNHv0jqPo7WkfcINEeAAKo5aqyTCoHVV1/dDjrooETWVQdhBQk647r55pvbwIED7fHHH7d99923asFeqb10pnbrrbf2/v/4xz/8j45WrVrF2h8tqctXX32VqB9jsRpMJgTqUKBjx46266672jrrrJOo1quf6t69eyZI2GOPPWzPPfe0E044wW6++WabOHGizT777P4k0T333JOouhdbmR133NGfzGvbtukBSbPMMotts802psBSaffdd/cBVZxttXQfy5uEQBIFCKCSuFeoU8kEwoNC3B/uJdtwgYJee+01mzlzps2YMaNBznPOOccP4WuwsIIfSu2lIS9K4WsxTWlOXf7++29/lnTKlCnFbIq8CCBQRQH9W09aHy2OpobpLbzwwjZixAg/YkAByG233VZFvZZvunXr1qb/8iXtnznmmMNnaW5/Xuw+1tDC448/Pl+1+A6Bqgk0fcqhalViw/Uu8Ndff9nYsWP9GT6NNb/vvvvsww8/tO22265kZyp//PFHe+ihh2zSpEn+nhxdIcl1b86ECRPs6aefNg2501UR5YseBD755BO7//777YADDrBx48bZI488Yosssojtvffeec/QqRwNL9xrr71MZzDDoW3zzDOPHXHEEf5P4IEHHrAPPvjAdAZvn332MdVZZ+M0lGShhRaynXfe2eeL69Wcuup+LNVDSe1eZZVVbLXVVrOff/7Z7r33Xl+XzTbbzLp27erzxPmf6qsDow7YutdL5b/77ru2yy672DLLLFOwCA3H1LATtUfDAnUFT+n333+3AQMG2JgxY2z++ef39dUVMFmREECgtALN6U+KrUGh/lflFerL4/aPxdZt1lln9UOUNRT7+uuv91fSwjKa6qP0/a+//uqPaeqbvvzyS38cUkCmodxt2rSxL774wh9T1D/279+/QRCndZ988kmTi/LqypiON2H6+OOP7e6777YhQ4b4q2Q6dmq4ofrFaID07bff2p133mk60bTmmmtaEAQNjmtheXFey9Wf6xihq1467lx11VUWGsWpE3kQqIiA+4dDQiAxAu4AEGy//faB++MP3AEm6NOnT3DggQcG7kdw4M5SBq7T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DgHbddddCyq0bdvWBg4cWDAfGRBAAAEEKiOgPll9c6G0yy67FMrC9wggkDABhvAlbIdQHQRyCay55po2YcIEy3eVSUNFunTpkmt1liGAAAIIVFhAowS6du3a5FZbtWplq6++uo0fP77JPHyBAALJFOAKVDL3C7VCoIHAnnvuaa1b5/7nqoPwOuusQ/DUQIwPCCCAQHUFdEJLfbP66FxJfbr6dhICCKRPIPcvsvS1gxojUNMCO+20k82cOTNnGzkI52RhIQIIIFB1gXwnv9Snq28nIYBA+gQIoNK3z6hxHQpoxr1NNtkk51UoDevr379/HarQZAQQQCDZAuqbcw291okv9enq20kIIJA+AQKo9O0zalynArmGerRp08Y233xz69y5c52q0GwEEEAguQLqm3v06GHqq7NTrj49Ow+fEUAgmQIEUMncL9QKgUYC22+/faMrUBoCssceezTKywIEEEAAgWQIKFDKHoKtK1Dq00kIIJBOAQKodO43al2HAp06dTI9mDF6JrNdu3a27bbb1qEGTUYAAQTSIaA+Wn11mNSHqy9Xn05CAIF0ChBApXO/Ues6Fdh9990zZzL1fJF+/frZHHPMUacaNBsBBBBIvoD6aPXV4TOhGDmQ/H1GDREoJEAAVUiI7xFIkEDfvn1tttlm8zX666+/TAEVCQEEEEAg2QLqq9VnK6kP79OnT7IrTO0QQCCvAAFUXh6+RCBZAu3bt7cddtjBV2r22We3Xr16JauC1AYBBBBAoJGA+mr12Urqw9WXkxBAIL0CbdNbdWpe7wKPPvqo/fDDD3XHoIczKq211lp2//331137czX477//tu7du9vyyy+f62uWIYBAHQh8//33NmbMmJzThieh+eqzn3zySf/Q81GjRiWhSrHqoCGHW221FfdsxdIiU70ItHLPJwjqpbG0s3YEjj32WDv33HNrp0G0pMUCq666qr366qstLocCEEAgfQLffvut9ezZkz6gTLvuvPPOs6FDh5apdIpFIH0CDOFL3z6r+xoreDr//PPt5ptv9mcadQ6A/+rT4IMPPrDFFlvMPweLITF13zUAUKcCYfCk148++ojjQYmOiSNGjPCzvmro4SyzzFKnf100G4HcAgRQuV1YmlCBMHi68cYbef5RQvdRpar14Ycf2qabbmrzzz+/bbPNNg2mCa5UHdgOAghUVyAaPGl4XLdu3apboRrZ+q233mp6ftXhhx/O0L0a2ac0o7QCBFCl9aS0MgoQPJURN2VFR4Onxx57LDMzYcqaQXURQKAFAgRPLcDLs2o0eNJoDxICCDQWIIBqbMKSBAoQPCVwp1SpStnB09xzz12lmrBZBBColgDBU3nkCZ7K40qptSfALHy1t09rrkWarSicMEJDCvQfqX4FFl54YZtnnnlMV54Inur374CW17fAgAEDMhNGLL744vWNUcLW657SIUOG+PuMS1gsRSFQcwIEUDW3S2uvQV988YXNNddcdvXVV9de42hR0QL77befHX300QRPRcuxAgK1I6Apy3v37m0DBw6snUZVuSXvvvuunXTSScy2V+X9wObTIUAAlY79VPe11AxA/fv3r3sHAMwOPvhgPzMUFgggUL8CrVu3tqWXXprjQgn/BJ577jkfQJWwSIpCoGYFuAeqZnctDUMAAQQQQAABBBBAAIFSCxBAlVqU8hBAAAEEEEAAAQQQQKBmBQiganbX0jAEEEAAAQQQQAABBBAotQABVKlFKQ8BBBBAAAEEEEAAAQRqVoAAqmZ3LQ1DAAEEEEAAAQQQQACBUgsQQJValPIQQAABBBBAAAEEEECgZgUIoGp219IwBBBAAAEEEEAAAQQQKLUAAVSpRSkPAQQQQAABBBBAAAEEalaAAKpmdy0NQwABBBBAAAEEEEAAgVILEECVWpTyEEAAAQQQQAABBBBAoGYFCKBqdtfSMAQQQAABBBBAAAEEECi1AAFUqUUpL1ECv//+u7344ot29dVX23HHHWdXXHGFPfnkk/brr7/aiBEjElXXaGX+/PNPGzt2rB1++OH20EMPRb8q6n2c9v/yyy/2wAMP2PHHH1+w7AsvvNAuv/zyTL5p06Z503322SezrFR1zxTIGwQQQKAMApMmTbILLrjAHnvsMV/622+/beeff749++yzBbemvvXRRx+18847z5577jmbOXNmwXWam+HDDz+0QYMG2SeffNLcIlgPAQRKLEAAVWJQikuOwEsvvWSrrLKKHXLIIRYEgW299dY255xzmoKA2Wef3Q444IDkVDarJm+++aaNHDnSLr74Yvvss8+yvo33MW77H3nkERsyZIgNHz68YMHXX3+93XzzzT7fTz/95H9onHnmmfbwww9n1i1F3TOF8QYBBBAog8AHH3xgV111lQ0dOtQHJu+9957985//tKOPPto+/vjjvFv88ssvbfnllzedQFJgc++99/rjS7mCqAkTJtgNN9xg6ltJCCCQDAECqGTsB2pRYoFbb73VNthgA1tzzTXtqaeesv3339/WW289GzBggN1///3+apSuvJQ6ffXVVw2CieaWv/rqq9tBBx3U3NWtmPZvt912tvHGG8falq7mPfHEEz5vx44dbdddd7V11lmnwbotrXuDwviAAAIIlEFgySWX9McFFd22bVtbZpll/ImkQptSkLTDDjvYyiuvbLryPt988/nA66233op1Fb9Q+bm+33HHHU3Hll69euX6mmUIIFAFAQKoKqCzyfIK6OzgwQcf7K82acjerLPO2miDp556qi266KKmYRilSn///bfttttuNmXKlJIUqYO6UqtWrYoqrzntb9OmTaxt6Mpd+/btG+RVPbPr2Ny6NyiYDwgggEAZBVq3/u9PoPA17Aez+7NoFXRC7plnnrF99903s1jr7bXXXnbppZfazz//nFleyjcK1EgIIJAcgf/+QktOfagJAi0W0JCy7777zk488UQfROUqsF27dn54XHTIhYbKaSiaxpnr6tXmm2+eWVVDOu6++25/hnLixIl23333WZcuXfwVLR18FYjp6taYMWNs/vnn9wGFhgwutNBCfnz8H3/84Yd83HTTTbbpppva2muv7cvWsJEXXnjB3njjDb9NXQ1qaWpu+7VdDXXU0D8N69MZWgWE0R8TCs4efPBBP2ylOfXMZ6zydC9BU1bN2R7rIIAAAlEBBUC6D1Yn1nS1XCnax4V5v/32Wxs1apTNmDHD+vfvb926dfNf3XPPPf5VV6CiaaWVVvLBk+5ZVf446a+//vL3uurE1NJLL+2PK7rfSceB6JV9HafGjRtnuuq/1lpr+aJ1nNJoCg1F13fqsxdZZBHbe++9G53k0nFJowfmnntu23nnnW3eeeeNUz3yIIBAHgGuQOXB4at0CuhAobTqqqvmbcC2226bOdBoWJquSq222mo+0NF34RA6TbCwxhpr2GGHHWaXXHKJv4dKQc+ee+5p5557rt/Gb7/9ZltttZV/r4PYsssu64dc9OnTxwdGOuhqGOFpp51m55xzjs+n+5u0bI899vBXzI444gg/IUPeSsf4sjntV7G6gqZ7oa655hrTmPvdd9/dzj77bL9FfXfjjTfaUkst1exhKvmMp06d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1WcrqQ9XX05CAIH0ChBApXffUfM6FRgwYIBvuZ4fMuuss9apAs1GAAEE0iOgvjp85lPYh6en9tQUAQSyBdpmL+AzAggkW6Bnz55+6vIDDjgg2RWldggggAACGQH12dOmTTP14SQEEEi3QCv3gLcg3U2g9ggggAACCCCAAAIIIIBAZQQYwlcZZ7aCAAIIIIAAAggggAACNSBAAFUDO5EmIIAAAggggAACCCCAQGUECKAq48xWEEAAAQQQQAABBBBAoAYECKBqYCfSBAQQQAABBBBAAAEEEKiMAAFUZZzZCgIIIIAAAggggAACCNSAAAFUDexEmoAAAggggAACCCCAAAKVESCAqowzW0EAAQQQQAABBBBAAIEaECCAqoGdSBMQQAABBBBAAAEEEECgMgIEUJVxZisIIIAAAggggAACCCBQAwIEUDWwE2kCAggggAACCCCAAAIIVEaAAKoyzmwFAQQQQAABBBBAAAEEakCAAKoGdiJNQAABBBBAAAEEEEAAgcoIEEBVxpmtIIAAAggggAACCCCAQA0IEEDVwE6kCQgggAACCCCAAAIIIFAZAQKoyjizFQQQQAABBBBAAAEEEKgBAQKoGtiJNAEBBBBAAAEEEEAAAQQqI0AAVRlntoIAAggggAACCCCAAAI1INDmVJdqoB00oQoCH3/8sT355JM2atQoe+aZZ2z69OnWoUMH++GHH+ytt96yLl26VKFWhTc5bdo0u/XWW+2qq66yrbfeuvAKTeSI0/533nnHbrzxRvvtt99s8cUXb6Iksw8//NCOPPJIW2ONNWzOOee0P//809sOGzbMZs6caUsvvbRft1R1b7IiFfxCfy/jx4+3bt26VXCr8TY1adIku+mmm+znn3+2JZdcMt5K5EIAgZIIZP/7++mnn+w///mP3XHHHbbpppvm3cbvv/9ujz/+uN11113WqlUrW2SRRfxr3pWa+WV2v93MYhK5WlPHoERWlkohUAUBrkBVAT3tm/zjjz9s6NChtswyy9izzz5rq6++uq2//vo+CFAAsMQSS9hLL72UyGbqQKw6n3nmmfbwww83q45x2//pp5/aJZdc4q0++uijvNuaMGGC3XDDDfbmm2/6fHodOXKkXXzxxfbZZ5/5ZaWoe95KVOjLr776yo466ij/d3LPPfdUaKvxN/PBBx/44Fp/45988kn8FcmJAAItFsj17+/OO++0ffbZx2677ba85X/55Ze2/PLLm040DRo0yO69915/kkwnocqRsvvtcmyjWmXmOgZVqy5sF4FECgQkBIoQ+PXXXwMXMAWdOnUKnn766UZrTp48OVhsscWCM844o9F3LV3grgi0tIjM+tttt13gzkxmPsd9U2z73Y+BwP3DD6699tqCm3CBRYM8r7/+ul/3mmuuabC8uXVvUEgVP7jgOgjbdsghh1SxJk1veuLEid7+5ptvbjoT3yCAQFkEcv3722qrrYJll122ye39/fffwYYbbhi4UQWZPH/99VfQtWvX4JhjjsksK/Wb7H671OVXsrzsY2zYT2cfgwrVyQWygbtiWCgb3yOQagGuQCUyrE1upXTlRmfddHbeHawaVVTDnU466SQ/9KnRly1Y8MQTT9jxxx/fghIartq2bdtmDesotv1t2rRpuOE8n+abb74G36qOShqGEk3NrXu0jGq+X2uttWy55ZarZhUKbrt16/92jeFrwRXIgAACJRMI/92FrypYfWl2Xxjd4FNPPeWHku+7776ZxVpnr732sksvvbTkx6RwI9n9drg8ba+5jrFNHYPytc0FsrbbbrvZlClT8mXjOwRSL/DfX2ipbwYNqISA7lk577zz/H1O7spBk5vUAev+++9v8P2YMWPsxRdftLnnntt23nlnm3feef337gyhqePWgXK99dazBx54wN59913bZZdd/BBBZdL322yzjT946r6lhRde2Pr162ffffedH9Jx4IEH+vHxb7zxhr+PSJ2+u1Lk7yFSsKeD6B577OHHwjeoVJEfWtJ+berbb7/17dOwsP79+2fap+80xGTcuHHWsWNHU4DRnNSUscrKZ1VoW3H2kfKMHTvWZp99dn+/1n333eeHdLqrZbbOOusU2kTR38epU1jojz/+aA899JDpvgp3ddT+8Y9/+Nfw+/BVP8B0T9+ss87qh6VqefYPtnzGYTm8IoBA8QJx/v2FpT733HP2yCOP2CqrrGI77LCDXxwOB1555ZXDbP51pZVW8sGT+gD1u3GT+mkdxw444ADfN2t7up9q7733tvbt2/ticvXbxfSFpehP8vVvn3/+ud19993+ntotttjCVlxxRX88dVeWfP233357f69yU8fYfFa56q77zwYMGGD6bv755/f9p+4zXmihhfIVxXcIpFKAK1Cp3G3VqfSrr77qO2Ld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UvRZyd5N1K6CAk899ZQPoCq4STZVwwLcA1XDO5emIYAAAggggAACCCCAQGkFCKBK60lpCCCAAAIIIIAAAgggUMMCBFA1vHNpGgIIIIAAAggggAACCJRWgACqtJ6UhgACCCCAAAIIIIAAAjUsQABVwzuXpiGAAAIIIIAAAggggEBpBQigSutJaQgggAACCCCAAAIIIFDDAgRQNbxzaRoCCCCAAAIIIIAAAgiUVoAAqrSelIYAAggggAACCCCAAAI1LEAAVcM7l6YhgAACCCCAAAIIIIBAaQUIoErrSWkIIIAAAggggAACCCBQwwIEUDW8c2kaAggggAACCCCAAAIIlFaAAKq0npSGQGIEpk+fbk8++WRi6kNFEECg9gX+/PNPGzt2rB1++OH20EMPpa7BkyZNsgsuuMAee+yx1NU9WuFqtWPatGl2xRVX2D777BOtjn344Yc2aNAg++STTxos5wMCaRUggErrnqPeCDQh8NVXX9lRRx1lSyyxhN1zzz1N5GIxAgggUHqBN99800aOHGkXX3yxffbZZ6XfQBlL/OCDD+yqq66yoUOHpvqHfrXa8dNPP9mzzz5rZ555pj388MMN9tSECRPshhtuMP19kBCoBQECqFrYi7QBgYjAlClTbM8997Rff/01spS3CCCAQPkFVl99dTvooIPKv6EybGHJJZe0/fff35fctm3bMmyhMkVWqx0dO3a0XXfd1dZZZ51GDd1xxx1NJ/d69erV4Lubb765wWd9yLWsUSYWIFBlAQKoKu8ANo9AqQXWWmstW2655UpdLOUhgAACsQTC4KNVq1ax8icpU+vW//1ZFL4mqW7F1CWsf/hazLotzav9n2vfzzfffA2KfuKJJ+z4448vuKxBBj4gkBCB9J5iSQgg1UCgpQJ//fWX6UCiA916661nDzzwgL377ru2yy672DLLLJMpXmPH77//fjvggANs3Lhx9sgjj9giiyxie++9t7Vv3z6TjzcIIIBAsQLqh3Tv0uyzz25LL7203Xffff6+le222y7nFYViy1f+H3/80d8XpftzFltsMfvHP/7hX7PL0nCvp59+2n755RfTFS3li/4gL3Vf+NRTT/n7RWeddVa/PdUnuj191nBEDUvTtjfYYAPbfPPNtdgnXe2X19Zbb21ffvmlb+PCCy9s/fr1szZt2tgXX3zh+2718f3797c555wz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GLYX34ycCFRaQDfH33777ZXeLNtDINECHTp0sPvuu8969uyZ6HpSueQLcA9U8vcRNUyAwKeffmo615CU/0QycuTIqtTn+++/J3hKwN8kVUAgn8Btt91Wlf6hGn3k+++/72cDlccOO+xgU6dOTWTb1WcrVcMozjanTJni/VTH3r172zvvvJPYusZpT648P//8M8GTdjCpxQIEUC0mpAAEEEAAAQQQqLTAjz/+aMccc4ytuOKKph//mg30zjvvtC5dulS6KjWxva5du3o/3R/0ySef2Morr2xHHnmk/fDDDzXRPhqBQCkFCKBKqUlZCCCAAAIIIFBWAV1ZuPnmm23ZZZe1a665xv71r3/5SW169OhR1u3WS+GbbrqpTZgwwS655BLvvMwyy3jnmTNn1gsB7USgoAABVEEiMiCAAAIIIIBAEgRefvllW3/99W3QoEG2zTbbmIbvHXzwwdamTZskVK9m6iDPwYMH23vvvWe77LKLHXjggbbmmmva008/XTNtpCEItESAAKoleqyLAAIIIIAAAmUX+OKLL3zQtM4669gss8xir7zyil1xxRU277zzln3b9byBueee2/7973/bG2+8YZ07d/Yz1ymgmjZtWj2z0HYEjACKPwIEEEAAAQQQSKTAn3/+6YfoaRjZmDFjTJNjMAto5XfV8ssvb4888ojdf//9Pnhdbrnl7NRTT7Vffvml8pVhiwgkQIAAKgE7gSoggAACCCCAQEMBPatHExmceOKJduihh/pZ4XbeeeeGmfhUUQE9RP3tt9+20047zS688EJTIMV0+RXdBWwsIQIEUAnZEVQDAQQQQAABBMz0AGD9UNdU2iuttJJNmjTJTj/9dNMzfEjVF9AQyqFDh/r7z7bYYgvbbbfdbKONNvITT1S/dtQAgcoIEEBVxpmtIIAAAggggEAegaamJe/WrVuetfiqWgILLLCAXXfddaaJPTRD31prrWX77LOPffnll9WqEttFoGICBFAVo2ZDCCCAAAIIIJAtwLTk2SLp+rzGGmvYs88+a8OHD/f3SS299NJ2wQUXmO5fIyFQqwIEULW6Z2kXAggggAACCRdgWvKE76AiqqehfO+++66/X+3kk0/2wy9Hjx5dRAlkRSA9AgRQ6dlX1BQBBBBAAIGaEGBa8prYjY0aofvUdL+a7lvr3r279e3b13r16uUnAGmUmQUIpFiAACrFO4+qI4AAAgggkCYBpiVP095qfl27du1qI0eO9FPOT58+3c+mePjhh9v333/f/EJZE4EECRBAJWhnUBUEEEAAAQRqVYBpyWt1zzbdro033tg/N+qyyy6zESNGmO6Puuqqq/ykE02vxTcIJF+AACr5+4gaIoAAAgggkFoBpiVP7a4rScVbt25t++23n7333nu2xx572JAhQ2z11Vf3V6dKsgEKQaAKAgRQVUBnkwgggAACCNS6ANOS1/oeLq59c801l3/47htvvGELLbSQbbrppta/f3+bOnVqcQWRG4EECBBAJWAnUAUEEEAAAQRqRYBpyWtlT5anHcstt5xpOOeDDz5oCqb0WbP2/fLLL+XZIKUiUAYBAqgyoFIkAggggAAC9SjAtOT1uNeb1+Y+ffrYW2+9ZWeeeab9+9//tmWXXdZuvfXW5hXGWghUWIAAqsLgbA4BBBBAAIFaE2Ba8lrbo5VpT7t27ezII4+0999/37baait/j9QGG2xg48ePr0wF2AoCzRQggGomHKshgAACCCBQ7wJMS17vfwGlaf/8889v11xzjekKpiadWHvttW3QoEGmKdBJCCRRgAAqiXuFOiGAAAIIIJBwAaYlT/gOSmH1NDvf008/bbfddpuNGTPGlllmGTvvvPPsjz/+SGFrqHItCxBA1fLepW0IIIAAAgiUWEDDrfr162e9e/e2lVZaySZNmmSnn366dejQocRborh6Fdh5553t3XfftSOOOMJOPfVUW3HFFe2BBx6oVw7anUABAqgE7hSqhAACCCCAQNIEwmnJFTRNmTLFxo4da3feead169YtaVWlPjUg0L59ex88vfPOO7bGGmvY1ltvbVtuuaVNnDixBlpHE9IuQACV9j1I/RFAAAEEECijANOSlxGXogsKdOnSxW6//XZ76qmn7KuvvrLu3bvboYceat99913BdcmAQLkECKDKJUu5CCCAAAIIpFyAaclTvgNrqPobbbSRn53viiuu8AHV0ksvbXr/999/11AraUpaBAig0rKnqCcCCCCAAAIVEmBa8gpBs5miBDRD3z777GPvvfeeDRw40F+JWm211eyJJ54oqhwyI9BSAQKolgqyPgIIIIAAAjUiwLTkNbIja7wZnTp1sgsuuMA/iHexxRazHj162A477GAfffRRjbec5iVFgAAqKXuCeiCAAAIIIFBFAaYl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kzZt2siCBQtSnW2UDLNM2IOBTho+t99+e/1CXcRt2bKlfhnrpptumgwICS3FmjVrZPPNNxfMUMCYeuqppxJa0uQUC8vzPv30U5k5c6Z88skn8sEHH+jfZpapevXqsm7durTlfRjYOPvss7VXzOSQYEncCNCAcqPCYyQQYQJ4R8Uxxxwj8M716KOPRlhSikYCJBCEALy12d1aw3DCu2nwMtbWrVtrY2mfffaRunXrBkmWcSNCoH///vLYY49pr21HH310RKSiGEEIwKj67rvvUkYVXi+Av6VLl6Yl88ADD8iZZ56Zdow/kkWgarKKw9KQQPIJdOjQQY444gj9Is3kl5YlJIHyIICO2ZZbbqnva8wqtWrVSvbYYw/hDHNy6n/w4MGycOFCQRvOEE8CmAFu1qyZ/oP3PROwhBYzVfiDZ0yzXNOc52fyCHAGKnl1yhKRAAmQAAmQAAmQAAmQAAkUiQCdSBQJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aoBATGjh0rq1evLkFO3lksX75cHnjgAbn00kvl4YcflpUrV3pfVOIYX3zxhdx2223y+uuvlzhnZlcIAitWrJDx48fLJZdckkru888/l1tvvVXefffd1DGvLz/++KO88cYbXtHyOj9v3jzp37+/fP/993mlk+vFuea/cOFCue+++2TgwIG5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JQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIdAlWtViI+4lLRcCLz33nvyyCOPyLvvvis1a9aUJk2a5FX0GTNmyLhx42TUqFEya9YsWb58uWy33XZStWrVvNI1F69bt07eeOMNufvuu2Xjxo3SvHlzc6oon5MmTZIPPvhAPvvsM1m/fr1svfXWafksW7ZMXnrpJX0ecfC3zTbbSK1atdLi+f3xxRdfyBNPPCF//vmn7Ljjjn4vyxpv8eLFMmHCBC3b559/LrvssotUqVIl7Zq3335boAumDL/99ptsv/32aXH4IzcCK1askNdee00effRROfLIIwW///Of/8i///1vOfzww30nOnbsWGnatGnB7iW3jEeOHCkzZ86Ufffd1+10rI8tXLhQnnnmGXnggQekW7dusS5LoYR3tjdBdBNt++OPPy7PP/+8zJ8/X3bddVepVq1aoURLS2fevHly4YUXSuvWrWWTTTZJOxf3H6V+psWBl7PNhMx4duHZiIA+RbaA5/K//vUv3cbiWYd2s3Ll4sxjUDez1USBzlkMJBAxAueee65Vv359SzVGllJzq1KlStaIESNyknLJkiVWnz59LGXQWGPGjLHUA9V68803rd69e1vqwWq98847OaXrvOjjjz+2zjzzTC3vQw895Dxd8N+qIbeuvvpqnR9YzZ07Ny0PZcRZkGnPPfe0WrRoYU2bNs3CsVzCN998Y5133nk6L9XZziUJ12sgjzJmrWbNmum0Bw0aVCHer7/+at1yyy36PMr7008/VYjDA7kRwP2gHuD6PkMKjz32mNWwYUNLGbK+ElTGr6U6jrpuUE/FDLvvvru1//77FzOLUNJWnX1LGU9W48aNLTVIFIoMUcvUrb3xq5tffvmltdVWW+n2vnr16lo31YCPpQZrilJM3EN4Rr3yyitFST/MREv9TAuzrH7zdraZeO6efPLJWgeeffbZrMn88ssvFnTxlFNOsdq3b28pw8na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shwkQAIkQAIkUAAC2A81btw4mTJliixatEj22msvPSu1ZMmSAqTOJEggPwJwQX7QQQdJ79695ZBDDpGvvvpKrr/+eqlbt25+CfNqEghAgAZUAFiMSgIkQAIkQALlQgAb8T/++GO9JwoGFfZH3XzzzbJ69epyQcByRojA/PnztdF04IEHCpadfvTRR/oF0dtss02EpKQo5UKABlS51DTLSQIkQAIkQAIBCWA51GmnnaaXRw0bNkz++c9/yq677irPPvusWJYVMDVGJ4HgBH7//Xe55JJLtN5hf9PLL78scFPeqlWr4InxChIoEAEaUAUCyWRIgARIgARIIKkEateuLddcc41eLoWZqb59+wpcob/77rtJLTLLFTKB9evXy7333qsdRDzyyCNyyy236P15xx57bMiSMXsSEKEBRS0gARIgARIgARLwRaBx48by6KOPyowZM6RevXpy8MEHS8+ePWXevHm+rmckEvBDYMKECbLnnnvKBRdcoF/0/M0332hHEdWqVfNzOeOQQNEJ0IAqOmJmQAIkQAIkQALJIrD33nvL5MmTZfz48XpWAN7QLrroIlm2bFmyCsrSlJTArFmzpEOHDtK1a1f9Tie8owxuyhs0aFBSOZgZCXgRoAHlRYjnSYAESIAESIAEXAl06dJFZs+eLXfccYfe0L/TTjvpF/KuW7fONT4PkoAbAXh7HDBggN7XtHz5cnnnnXdkzJgx0qxZM7foPEYCoROgARV6FVAAEiABEiABEogvgapVq8qQIUP0i3jRCb744ov17MHYsWPjWyhKXhICK1eulOuuu0523nln7TZ/1KhRAjflbdu2LUn+zIQEciVAAypXcryOBEiABEiABEggRaB+/foyYsQI+fLLL6Vly5bSvXt3adeund4vlYrELySgCGzcuFEef/xx7Rp/5MiRcuWVV2q96dOnj1SqVImMSCDyBGhARb6KKCAJkAAJkAAJxIdA06ZN5bnnnpPp06fLmjVrpE2bNtoRwPfffx+fQlDSohGYOnWqtG7dWgYOHCjdunXTLvIvvfRSqVmzZtHyZMIkUGgCldR7HPgih0JTZXokUEACd999t9x///1pKcIj0VZbbZX25nV0WiZOnJgWjz9IgARIIGwCo0ePFnSQf/rpJ7nwwgv1Er+6deuGLVbR8+/UqZMsWLAglc+KFSvkxx9/1G65UwfVl0GD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eUKgXr16MnXqVHnzzTeNMgWF+5///Kds27YtT0rIYpAACZAACZAACeQSASpQuVQbzIt8//330rFjR+nUqZMxTw7ra9dee635MC7xkEAiAm3btjXWGLGkb9y4cYJZKcxY0pEACZAACZAACZBAkASoQAVJk3H5JrBlyxZjHAKzTsuXL5c5c+bI5MmTpVatWr7jZMDCI1CqVCm56qqrzPfATjjhBOnSpYuZuVy6dGnhwWCJSYAESIAESIAE0kKAClRasDJSLwRefPFFOfzww+XBBx+U22+/Xb744gtp0aKFlyjolwQiCMDU+aRJk2TevHkCU+f4KC9mMjdv3hzhjyckQAIkQAIkQAIk4JUAFSivxOg/MAKwpgfLer169ZKWLVuaWYMrrrhCSpYsGVgajKiwCZx66qny2WefyZ133injx483ivrzzz9f2FBYehIgARIgARIggZQIUIFKCR8D+yHw119/yZVXXmm+6fTHH3/Ie++9J//5z39kv/328xMdw5BAQgIlSpSQoUOHynfffSfYJ3XOOeeYGU4YJqEjARIgARIgARIgAa8EqEB5JUb/vgkopeSZZ54xHz996qmnzJK9jz/+WLBXhY4E0k2gevXq8sQTT8gHH3xglvIde+yxghnPDRs2pDtpxk8CJEACJEACJJBHBKhA5VFl5nJRsK/plFNOkf79+5uN/ZgNuPjii6V4cTbBXK63fMzbcccdZ5Sohx9+2OyTOuyww8wMKBR8OhIgARIgARIgARJIRoC912SEeD8lAr///rtceuml0qRJE0EH9ZNPPhF0XPfee++U4mVgEkiFABT3gQMHmmV9PXr0MMcnnniifPrpp6lEy7AkQAIkQAIkQAIFQIAKVAFUcjaKuGfPHnn00Uelfv368tJLL8mTTz4p7777rmDZFB0J5AqBvfbayywlheIE4yWYnRo8eLCsX78+V7LIfJAACZAACZAACeQYASpQOVYh+ZAd7DFBRxQzT/369TOj/Oeff74UK1YsH4rHMuQhgaOPPlreeecdwd68V155xSj+mCnFQAAdCZAACZAACZAACTgJUIFy0uBxSgR+/fVXufDCCwVLoSpXrmy+53T33Xeb45QiZmASyBCBvn37GnP6aMfDhg2Tpk2byoIFCzKUOpMhARIgARIgARIIAwEqUGGopRzP465du+T+++83o/ZvvfWWTJ48WebM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DTnzzDPlggsuMHtscj/HzKFFADPC3377ra1UwUIfrF86FalWrVrJrFmzrCD8JQESyBMCsHI7YcIEef31182y+jwpFotBAgVJoGRBlrpACo3lAmeffXaEslS5cuUCKX3+FrN169aCTvaQIUPyt5B5WjLMOjVq1Mj89e/f35QSz+k333xjK1XYs0hHAiSQfwQgs/EBbchwOhIggXAT4AxUuOuPuScBEiABEiABEiABEiABEsggARqRyCBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAlSgwl1/zD0JkAAJkAAJkAAJkAAJkEAGCVCByiBsJkUCJEACJEACJEACJEACJBBuAjmjQH3zzTcybtw4ee+991wTnTZtmmzbts21fz8e7777bnnooYf8BA0kzA8//CAXXnihrFq1ylN8K1eulIcfflgGDhzoKVwhefbS5jZu3CiPPPKIXHPNNfL444/Lli1b0obKb50HlSG/6bPNJa+BTZs2CeTWzTffnNyz9jFnzhwZMWKE3HXXXbJ69WpXYfx6yras85P+zp07Zfbs2TJ8+HB57bXX/Bad4XKcAJ6bV199Va6++mo7p17ktx1IH6xfv17Gjh3rvBTosV/5GVQm/KZP+R1UDTCegiGgcsAtWbJEnXvuuUpDV88991zSHE2fPl01adLE+P/999+T+k/FQ8OGDVXz5s1TiSKlsFOmTDHl1J0D1/Hozr569tln1QEHHKBq1qzpOlwhefTS5hYvXqxq1KihDj30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CZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSoF8GvXrpW5c+emEAODkoA/ArNnz5Zff/3VX2CGIgGfBCDvIPfoSIAEvBOAzIbspiMBEgg/ASpQKdThrFmzpF27dinEwKAk4I9A69atZd68ef4CMxQJ+CTQpk0bmTNnjs/QDEYChU0AMhuym44ESCD8BKhApVCHmzdvlgoVKqQQA4OSAAmQQHgIlClTRrZv3x6eDDOnJEACJEACJJAGAlSgUoC6ZcsWKlAp8GNQEiCBcBEoW7YsFahwVRlzSwIkQAIkkAYCVKBSgLpp0yYqUCnwY1ASIIFwEeAMVLjqi7klARIgARJIDwEqUClw5QxUCvAYlARIIHQEoEBt27YtdPlmhkmABEiABEggSAJUoFKgyT1QKcBjUBIggdAR4AxU6KqMGSYBEiABEkgDASpQKUClApUCPAYlARIIHQHugQpdlTHDJEACJEACaSBABSoFqFSgUoDHoCRAAqEjwCV8oasyZpgESIAESCANBKhApQCVClQK8BiUBEggdAQ4AxW6KmOGSYAESIAE0kCAClQKUKlApQCPQUmABEJHgHugQldlzDAJkAAJkEAaCFCBSgEqFagU4DEoCZBA6AhwCV/oqowZJgESIAESSAMBKlApQKUClQI8BiUBEggdAc5Aha7KmGESIAESIIE0EKAClQJUKlApwGNQEiCB0BHgHqjQVRkzTAIkQAIkkAYCVKBSgEoFKgV4DEoCJBA6AlzCF7oqY4ZJgARIgATSQIAKVApQoUCVL18+hRgYlARIgATCQ4BL+MJTV8wpCZAACZBA+ghQgfLJViklW7ZskQoVKviMgcFIgARIIFwEuIQvXPXF3JIACZAACaSHABUon1y3bt0qUKKoQPkEyGAkQAKhI8AlfKGrMmaYBEiABEgg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eVtMFowESIAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUieQVwrUN998I+PGjZP33nvPNZk1a9bI22+/7dq/H48//PCDXHjhhbJq1So/wRkmRAQ2bdok06ZNk5tvvtlVrhcsWCCjR4+WMWPGyEcffeQqjF9Pd999tzz00EN+gzNcCAh4bX9z5syRESNGyF133SWrV69OawnZ/tKKl5H7ILBo0SK588475a233jKh/fQhEHD9+vUyduxYHzlwF4R9CHec6IsEMkkgbxSo7777zgiwq666Sn766aekDH/77TfTcTjooIPkv//9b1L/qXj47LPPZMKECfL111+nEg3DhoDAiy++KAMHDpTnnnsuaW6HDRsm7du3N23jhhtukOOPP17+9a9/JQ3n18OTTz4pTz/9tN/gDBcCAl7a3x133CFogxs3bjSdyDp16siMGTPSVkq2v7ShZcQ+CHz//ffyyCOPyMiRI83gptc+hDNJyPz77rvPeSnQY/YhAsXJyEggEAJ5o0DVr19fhg4d6hrK8uXLpV+/frJ161bXYfx67NGjh0BhO/PMM/1GwXAhIdC/f39p2rRp0txOnTpVihcvbkYu0RZnzZole+21l1x//fWC0cZ0uA8//FDmzp2bjqgZZ44QcNv+0Mbq1atnBnXQiVy6dKlUqlRJ7r333rSVhO0vbWgZsQ8CBx98sFx88cUmZMmSJcVrH8JK8rHHHhPMXKXTsQ+RTrqMmwT8EcgbBQrFL1GihKFQrFixpDSaNWsmhx9+eFJ/QXnYZ599goqK8eQ4AbTDZG3w/fffN6P+lt9WrVrJ2WefLbt27ZKPP/44LSWsUKGClCtXLi1xM9LcIWC1qUQ52rlzp2lvlp+KFStK165dpXLlytalwH/Z/gJH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JEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJBc1zEcAAEAASURBVEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZABSrc9cfckwAJkAAJkAAJkAAJkAAJZJAAFagMwmZSJEACJEACJEACJEACJEAC4SZQMl3Z37Rpk8yePVu++OILuemmm1wnM23aNGnXrp2ULVvWdRivHu+++24T/yWXXOI1aM77X7lypcyYMUM+/fRTefzxx3M+v5nKoNf2uGDBApk5c6aUKlVK2rRpI8cdd1zassr2mDa0ORux1/Y4Z84cee2112T//feX3r17S82aNdNWNrbHtKEt2Ih37twp8+fPl+nTpxt52r59+5xggTytXr06Ii+Q+fvuu6951g499NCIe2E+gcyZO3euvPvuu3LHHXe4Kspnn30mH3/8sSxatMjwOOqoo6Rly5ZSpkwZV+GTecrVdpEs37xPAoaASpObMGGC2meffdRhhx3mKgUtWFWTJk2UzpT6/fffXYXx66lhw4aqefPmfoPnbLiNGzeqZ599Vh1wwAFKd7ByNp/ZyJiX9nj55ZerKlWqqDp16pj2WKxYMaVfOGnLNttj2tDmbMRe2uPtt9+ujjzySDVo0CBVo0YNVbx4cQV5mS7H9pgusoUbrx7QM+0X7/fHHnssZ0D88ccf6pZbbjFyvnTp0mr8+PHqoYceUldeeaU69thjVb169dT111+vduzYkTN59puRKVOmmPLgvZbM/frrr+qcc85RWoFUCLd8+XI1b948pQdv1OGHH660EpYsClf3c7VduMo8PRU8AUkngTPOOMOVArVixQqFPzywmVCg9EiM2rJlSzqLnrG4n3rqqSJpde3a1ZcCFSuuIpGH+IKb9vjSSy+pK664Qu3atUvt2bNHzZo1S+29996qZMmS6vvvv09L6dkeY2Nle1SmzU2ePNkGhEESKPetW7e2rwV9wPYYm2i+t8fYpQ7u6pdffmne77mkQKF0P/30k8lXgwYNIgoL+Q/loXLlykqvQlB//fVXxP0wnvTq1UsddNBBCbO+detWoyRhICXWYPaIESPMII5fJSr6OfLbLqDkvf766wnLwpskkE4Cad0DVaJECdGj92amK9E/PSIi+NOjPYm8BXavQoUKUq5cucDiy1ZEmI6/7rrriiSvO/uuuDsDxovL6Sfsx27a4/vvvy933nmnWH5btWolZ599tmiFyixlSAcDtseiVNke/2aCJS5of5arWLGi6AES0Z0661Lgv2yPRZEWQnssWupgr+C9BOemTxBsyolji/csIZ89evSQRx99VN566y055ZRTRM9EJY4sx+/q2WvBXyJ3ww03yOLFi2X06NGy1157FfF64403StWqVeWCCy4QrWwVuZ/oQqznyE+72L17t/Tp00f0zFii5HiPBNJKIOU9UFq7Ez21a/Y6odOpp3fNGufoXGNPyZtvvilYQ9u9e/fo24Gcr1q1Sl555RUZMmSIyRPSw16BAQMGRChMeuTCrMW+8MILTbroHGO/FjoOWPOMfVg//PCD6ajopX4Refv555/ljTfeEKR10kknCTrYfhzWFr/zzjuiZ8KkcePG0rZtW/vF8uqrr4qe7RB0lgYOHCh61FmefvppQWcKeyDQoYIgOuuss0yYRx55RPSyPenUqVPCrOjZFPnwww+NUEQc1apVM/79xJUwoSzeTLU9XnXVVUZ5chahY8eO8vDDD8d8mTj9RR+zPbI9ptoe9RLoiGalR8WNbBg7dmzEdTcnbI9sj27aidOPl3ejM5zX40TvQyuuZH7ctm8rPre/eFfi/Ys9iNgPhPe+5eK9U3EfygX6Ep07dxb0ORDeek+jr7R27VrTX4FC07Nnz4hBEYR9++23BWWG3/POO8/e94g6wTsb4U444QRBf2HJkiVmb2T9+vWtrJlfPYMkL774olE0mjZtihVHdj8jwuP/n2zevFnuuece0bPc0q1bt1hepFKlSuYe9lg///zzZs/61KlTTf8E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PrD999+fdU4xeg/QVQQQQACB+AoQQMX32kfu+R577GHvvPOOnXXWWXbJJZfYOuus45NOJBKJyMdiBwQqUeDNN9+07bff3nbbbTfbdNNN/XrB888/31q2bFmJ3aHNCCCAAAIIIFCAAAFUAWhx3qVZs2Y+wYS+cdeC+WHDhtlWW21lL730UpxZ6HuVC3z11Vd26KGH+qBp/vz5fiRW6ck7duxY5T2newgggAACCCCQLkAAlS7C81AC7dq182s+dONd3ZRXN+P961//anPnzg21P5UQqASB33//3S6++GJ/49sJEyb4NYFTpkyxbbbZphKaTxsRQAABBBBAoB4ECKDqATVOh+zWrZs99dRT9uCDD/pkE0p7fuaZZ9rPP/8cJwb6WoUCSgyx3nrr2TnnnGPHHHOMvf/++7bvvvtaTU1NFfaWLiGAAAIIIIBAWAECqLBS1MspMHDgQHv77bft//2//2ejRo3yiSZuvfVWY31UTjZeLEOBadOm2bbbbmta86fpqe+9956de+65fqS1DJtLkxBAAAEEEECggQUIoBoYvJpPt9RSS9nxxx/vM5LtuuuuduCBB9rmm2/u14tUc7/pW3UIfPHFF/49u9lmm5mm7mld3x133GGrrbZadXSQXiCAAAIIIIBAUQQIoIrCyEFSBdq2bWvXXnutvf7667b88svbn/70J9tzzz1t9uzZqdV4jEBZCCxYsMAuuOACv87pySef9EHTiy++6O97VhYNpBEIIIAAAgggUFYCBFBldTmqqzEbbLCBTZw40R5++GFT+metjzr11FPtxx9/rK6O0puKFdC9zfS+VCryk08+2aclHzJkSMX2h4YjgAACCCCAQP0LEEDVv3Hsz9C/f3+bPn26XXTRRXbdddf59VE33nijLV68OPY2AJRG4JVXXrGePXva3nvv7dc7KUHEGWecYc2bNy9NgzgrAggggAACCFSMAAFUxVyqym5o06ZN7W9/+5tfH6XF+Ycddph1797dnnnmmcruGK2vKIFPP/3Uhg8fbltssYXPpjd16lS75ZZbbJVVVqmoftBYBBBAAAEEECidAAFU6exjeeYVVljBZ+nTlL6VV17ZtttuOxs0aJB9+OGHsfSg0w0j8Ouvv9p5551n66yzjj333HN2zz332PPPP++D+IZpAWdBAAEEEEAAgWoRIICqlitZYf3Q/XUeeeQRe/TR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BBBAAIEsAgRQWWDYXP4Cm266qR155JHl39Aya2G5u02ZMsWefvrpMlOjOQgggAACCCCAwH8FmgCBQCULNGny37dwTU1NJXejwdtezm4tWrRocA9OiAACCCCAAAIIhBUggAorRb2iCSxcuNCvXdIH5bXXXtseeugh++ijj2z33Xe3Hj16FO08r732mj3//PP2yy+/mEZddtxxR0sPtPLV+eSTT2zcuHF2+OGH27PPPmuPP/64rbrqqnbggQda8+bNI7X1q6++sgkTJph+du7c2bdpzTXXtIcfftg+/PBDa9mypR100EH2448/+ilsWqu08sor21577eXPE8YtTJ1MjdZaso8//ti/1KxZMxs0aJDp58svv2wzZsyw5ZZbznbbbbdMu2bc9uuvv/rruuuuu/r+ao3aKqusYgMGDLDGjRvbl19+6V0bNWpkgwcPtmWXXTZ5HPmMHz/eDjjgAFu0aJHdc8899vvvv/vXV199dVtvvfXsySeftMWLF9vGG2/s/wt21lTOxx57zHTdttlmG+vTp0/wkn333Xd211132RFHHGGPPvqovfnmm3b88cdbEEwmK/IAAQQQQAABBBDIJZCgIFBHgcmTJyfceywxd+7cvEdyH9IT7sO5r+8+XCd22WWXhPtAm3CBQsJ9kE3cd999eY+RWuHtt9/2x7rhhhtSNydcYonEnnvumXCBScIFSYmNNtoose222ybmzZuXrJevzh133JFwgUPCBUqJww47LOE+0Cf69evnz7fFFlsk3If65LHyPXAf3hPdu3dPuOAo4YKcxJAhQxL33ntvcrf1118/sdpqqyWfz58/P+GCisRWW23lt4VxC1MnOEG6288//5xQG3QdZZZa1l133cR7772Xuinn42eeeSbhAmN/rEsvvTRxyCGHJE488cTEMsssk/jLX/6SuP766xP77LNPYu+99064gDbhgip/PLncfPPNiVatWiXatWuXPIcsdP3UtpkzZ/rtPXv2TNx9993JOnrw1FNPJQ4++GB/vd3auIQLSP17S6/dcsst/vx6j40aNSrRrVs3f7w33nhDLyeL3sM6j97TqcUF9gkXbKVu4jECCCCAAAIIxFTAYtpvul1EgSgBlE6rD8H6kOpGHpKt+OKLLxJt27b1QYQbeUluz/cgPRBQ/VtvvdUHH99//31ydwUAOufQoUP9tjB1VFH19SH/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GWecYTfeeKOdffbZtV4L+2ThwoU2adIka9Giha299tr20EMPmdYb7b777rVGbhYvXmzPPvusaVRn880394fXeqhx48bZ4Ycf7l97/PHHbdVVV7UDDzzQmjdvXqsJTz75pE2ZMsWWW24522uvvWyFFVao9Xq+J5nOr7Yr0GnUqJFttdVW9vDDD9t7771ne++9t2k0L1/57LPP/NQ+9WObbbaxPn36+F10zN12280HXdddd52tssoqNmDAgHyH43UEEEAAAQQQQKBkAoxAlYyeEzeEwPfff2/9+vXzQdEJJ5xgDzzwgGmNT2pRcKUP9ApQzj33XB9gTZ06NbWKnXfeeXbMMcdYq1atam0P+0SBg4KZnXfe2SeuUODzxhtvmKau9ezZ0+6//35/qBkzZvh6vXvVDpxTAAAs8klEQVT3tldffdVvGzNmjG200Uam9h9xxBF2++2325tvvumnIG677bam4E7l999/t4MPPtjmzZvnR8kUnKy77rqmY4Ytmc7/3Xff2b777ms77rijX5ulc7z00kt2zTXXmM6v4DNXUTvOOecc22STTWy99dazgQMH2pFHHul3UZCnvjVr1szWWWcdW3311XMditcQQAABBBBAAIHSCyQoCFSxwKhRoxK9evVK9tCN+CTuvPNO/9wFSQn3LzAxfPjw5OuTJ09ONG3aNLHFFlsktz3zzDMJFwAknx977LGJdu3aJZ+HfTBz5kx/PjfCldzliy++SLRt2zax2mqrJVwg5Le74MjXcxntkvWGDh2acFPjEm+99VZy25lnnunrjR492m+75JJLEm50LPm6S47hX99pp52S28I8yHT+X3/91R9ru+22S7bTBZx+mxuNSh5WfVNfgvLjjz8m3GhfwiWZCDYlXPDo93NBmN/mAqqEC5ySr/MAAQQQQAABBBAoZwGm8JU+hqUF9SigERhNh3MBiF122WW2xhpr+GliqaccNGhQ8qmSIHTv3t1cIOVHcrSm56qrrrK77rorWafQB5q6p7LxxhsnD+ECMT9q9I9//MNmzZrlp/ZpNCa9aF+1Zf3110++dMopp/hMgs8995wdeuihNnLkSNtss82SozuqqFGdfCNEyQP+34NM51966aX9NDtNgVQ7VLp27ep/Kn15tiI3F3yZsh0GxQWNfiqlCyhtyy239JujrpsKjsVPBBBAAAEEEECgoQUIoBpa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EEAAAQQQQAABBMILNAlflZoIxEvg888/txdeeKHsOt2xY0ffps0339zGjRtXdu3L1CBNN9xtt92WSIKRqS7bEEAAAQQQQACBchaocfeQSZRzA2kbAqUQmDNnjm277bY2e/bsUpy+Ks/58ssvm4I+CgIIIIAAAgggUMkCTOGr5KtH2+tFIAie2rRpY/PmzTN9x8B/hRkcd9xxyVGnRYsW1cv14qAIIIAAAggggEBDChBANaQ25yp7gdTg6cknn7QVVlih7Ntcrg08/vjj7YorrrArr7yyXJtIuxBAAAEEEEAAgcgCBFCRydihWgUInop3ZYPg6Y477vBrn4p3ZI6EAAIIIIAAAgiUVoAAqrT+nL1MBILgSTerZeSpbhclNXjae++963Yw9kYAAQQQQAABBMpMgCx8ZXZBaE5pBHbaaadkwogVV1yxNI2okrO2a9fONPJE8FQlF5RuIIAAAggggEAtAQKoWhw8iavAjz/+aMOGDTPdqJZSuMD48ePtiSeeIHgqnJA9EUAAAQQQQKDMBQigyvwC0byGEWjUqJFtvPHGNnjw4IY5YZWe5ZNPPrGnnnqqSntHtxBAAAEEEEAAATPWQPEuQAABBBBAAAEEEEAAAQRCChBAhYSiGgIIIIAAAggggAACCCBAAMV7AAEEEEAAAQQQQAABBBAIKUAAFRKKaggggAACCCCAAAIIIIAAARTvAQQQQAABBBBAAAEEEEAgpAABVEgoqiGAAAIIIIAAAggggAACBFC8BxBAAAEEEEAAAQQQQACBkAIEUCGhqIYAAggggAACCCCAAAIIEEDxHkAAAQQQQAABBBBAAAEEQgoQQIWEohoCCCCAAAIIIIAAAgggQADFewABBBBAAAEEEEAAAQQQCClAABUSimoIhBH46aef7KGHHrJzzz03TPVadcaOHWsvv/xyrW3FfDJy5Ei75pprinlIjoUAAggggAACCMROgAAqdpecDtenwH333WcHHXSQ3XXXXZFO88orr9jQoUPttddei7RflMo33XST3XbbbVF2oS4CCCCAAAIIIIBAmgABVBoITxGoi8B+++1nm222WaRD/Pzzz3bOOefYH3/8EWm/qJWnTJliTz/9dNTdqI8AAggggAACCCCQIkAAlYLBQwSKIdC4cWOrqakJfahTTz3VTj/99ND1C63YokULa968eaG7sx8CCCCAAAIIIICAE2iCAgIIRBf46quvbMKECaafnTt3tk033dTWXHPNJQ704osv2uOPP24bbbSR/eUvf1ni9QcffNC6dOli66+//hKvhd3wySef2Lhx4+zwww+3Z5991p9v1VVXtQMPPLBWwKS2jh8/3g444AB/6IULF9qkSZNMgdXaa6/t12599NFHtvvuu1uPHj1qnf6zzz6zxx57zHSubbbZxvr06VPrdZ4ggAACCCCAAAJxESCAisuVpp9FE/j++++tX79+9swzz/gAZd999/XHTg2gfvvtNxswYIAlEglTUHLeeef5NU633357sh0KSh544AHTtvnz5ye3R3kwZswYGzFihC1YsMCmT59uv//+u33xxRd24YUX+uO+8MIL1qhRI//46KOPtmWWWcYHUAqE/va3v/nz77rrrrZo0SLr2LGjKaC79NJL7e67704GfJr2pzVdCtBatWplAwcOtGHDhtnVV18dpanURQABBBBAAAEEqkKAKXxVcRnpREMK3HHHHdayZUv/n6brnX/++UusX/r000/tkksu8SM+b7/9tu22226m/R599FHfVAVWJ5xwgq9Tl7bvs88+tssuu/gA6qijjrIbb7zRj4ydeeaZPqOfEkeojfu5tVk77LBD8lSrrbaa/fOf//TPmzVr5tupgGjatGm23HLL2THHHGMaoVJWQSXFuOyyy2yTTTaxwYMH21577eWz+U2ePDl5PB4ggAACCCCAAAJxESCAisuVpp9FE1h33XX9VDllzfv6669tjTXWsEGDBtU6vqbkrbPOOn6b1kNp9EZF0/5UFJAMGTLE2rVr55/X5X+agtekSZNa0wBPOeUUv+25555LHlqBUmrRfiobb7xxcrPac/DBB/uperNmzfIjT7/++quddNJJduSRR/r/NMKlaYszZ85M7scDBBBAAAEEEEAgLgJM4YvLlaafRRPo3bu3Hz3SVDetPbriiits//33z3n8Lbfc0k+l07S9999/35TuXCNQmsKn8ssvv/ifGgHStq222spWXnllv62Q/2mqnkaZFOBFLVqTpaJ9NXqmdjBdL6oi9RFAAAEEEECgWgUIoKr1ytKvehPQmqKLL77YdtxxR9O0OSVlUIKGk08+Oes5l112WT/lT+uktP5o7ty5pjVJQdGUPhXdTFejVJqKV5cASmuwNFK00047BacI/XPOnDm+rtqq6X/vvfee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1OWisQgggAACCCCAAAIIIFBKAQKoUupzbgQQQAABBBBAAAEEEKgoAQKoirpcNBYBBBBAAAEEEEAAAQRKKUAAVUp9zo0AAggggAACCCCAAAIVJUAAVVGXi8YigAACCCCAAAIIIIBAKQUIoEqpz7kRQAABBBBAAAEEEECgogQIoCrqctFYBBBAAAEEEEAAAQQQKKUAAVQp9Tk3AggggAACCCCAAAIIVJQAAVRFXS4aiwACCCCAAAIIIIAAAqUUIIAqpT7nRgABBBBAAAEEEEAAgYoSaFJRraWxCGQQmDt3rk2YMMFeffVVu+GGGzLUKO2m119/3R566CH76aefrHv37tanTx97/PHHbejQoSVp2B9//GHPPfecjR8/3nbYYQfr169f0drx2muv2dSpU+2dd96xlVde2TbaaCPr3bu3NWvWrCjnqM+2F6WBHAQBBBBAAAEEql6AEaiqv8TV3UEFJf/5z3/s73//uz322GNl19nbbrvN/vznP9vyyy9vu+66q7388svWtWtXO+KII0rW1unTp9vYsWPt8ssvt88++6wo7fj666/tr3/9q+299962wgor2LHHHmtbbbWVqf8bb7yxv0bFOFF9tL0Y7eIYCCCAAAIIIBAfAQKo+Fzrquxpy5YtbciQIdajR4+y699vv/1mRx11lA8qRowYYX/6059s5MiRfvSnUaNGfkSqFI3edNNN7cgjjyzaqRcsWOCDxDfffNOmTJlie+yxh3Xs2NFvu+uuu6x///7+sQLdQoqCsKDUpe0K8soxyA76xk8EEEAAAQQQqAwBAqjKuE60Mo9AkyZNrKamJk+thn35o48+sh9//NG+//77Wideb7317JBDDina6E+tg4d8Ii+VYpidccYZ9u6779o555xjyy233BItOOuss6xNmza2//7726+//rrE67k2PP3003baaafVqlJI2xctWuRHyGbPnl3rWDxBAAEEEEAAAQSiCrAGKqoY9Ysm8Mknn9i4cePs8MMPt2effdavC1p11VXtwAMPtObNmxflPApgHnnkEb8mZ/XVV7cdd9zR9DO15KuzcOFCmzRpkrVo0cLWXnttv55JwdHuu++ec+RrnXXW8SMxDz74oF111VV+NCo4r6a4NW3a1D99+OGH7cMPPzSNph100EE+6NKoi9b7aB3RXnvt5euFaUeYOkEbUn+qfx9//LHfpPVK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\n" + }, "metadata": {}, - "source": [ - "This diagram shows the new components in the branch" - ] - }, + "output_type": "display_data" + } + ], + "source": [ + "import ex_inits #no need to know this code, it just shows the image below\n", + "for_images = ex_inits\n", + "for_images.display_png(for_images.plantloop2) # display the image below\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This diagram shows the new components in the branch" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Work flow with `WhichLoopError`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you are writing scripts don't bother to use `try .. except` for `WhichLoopError`. \n", + "\n", + "- Simply allow the exception to be raised. \n", + "- Use the information in the exception to update your code\n", + "- You may have to do this a couple of times in your script.\n", + "- In a sense you are letting eppy tell you how to update the script.\n", + "\n", + "*Question:* I am writing an application using eppy, not just a script. The above workflow does not work for me\n", + "\n", + "*Response:* Aha ! If that is the case, open an issue in [github/eppy](https://github.com/santoshphilip/eppy). We are lazy people. We don't write code unless it is needed :-)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Traversing the loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It would be nice to move through the loop using functions \"nextnode()\" and \"prevnode()\"\n", + "\n", + "Eppy indeed has such functions\n", + "\n", + "Let us try to traverse the loop above. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# to traverse the loop we are going to call some functions ex_loopdiagrams.py, \n", + "# the program that draws the loop diagrams.\n", + "from eppy.useful_scripts import loopdiagram\n", + "fname = 'hhh_new.idf'\n", + "iddfile = '../eppy/resources/iddfiles/Energy+V8_0_0.idd'\n", + "edges = loopdiagram.getedges(fname, iddfile)\n", + "# edges are the lines that draw the nodes in the loop. \n", + "# The term comes from graph theory in mathematics\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code gets us the edges of the loop diagram. Once we have the edges, we can traverse through the diagram. Let us start with the \"Central_Chiller\" and work our way down." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 4, - "metadata": {}, - "source": [ - "Work flow with `WhichLoopError`" + "name": "stdout", + "output_type": "stream", + "text": [ + "['np1']\n" ] - }, + } + ], + "source": [ + "from eppy import walk_hvac\n", + "firstnode = \"Central_Chiller\"\n", + "nextnodes = walk_hvac.nextnode(edges, firstnode)\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "When you are writing scripts don't bother to use `try .. except` for `WhichLoopError`. \n", - "\n", - "- Simply allow the exception to be raised. \n", - "- Use the information in the exception to update your code\n", - "- You may have to do this a couple of times in your script.\n", - "- In a sense you are letting eppy tell you how to update the script.\n", - "\n", - "*Question:* I am writing an application using eppy, not just a script. The above workflow does not work for me\n", - "\n", - "*Response:* Aha ! If that is the case, open an issue in [github/eppy](https://github.com/santoshphilip/eppy). We are lazy people. We don't write code unless it is needed :-)" + "name": "stdout", + "output_type": "stream", + "text": [ + "['np2']\n" ] - }, + } + ], + "source": [ + "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Traversing the loop" + "name": "stdout", + "output_type": "stream", + "text": [ + "['p_loop_supply_splitter']\n" ] - }, + } + ], + "source": [ + "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It would be nice to move through the loop using functions \"nextnode()\" and \"prevnode()\"\n", - "\n", - "Eppy indeed has such functions\n", - "\n", - "Let us try to traverse the loop above. " + "name": "stdout", + "output_type": "stream", + "text": [ + "['sb1_pipe', 'sb2_pipe', 'sb3_pipe']\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# to traverse the loop we are going to call some functions ex_loopdiagrams.py, \n", - "# the program that draws the loop diagrams.\n", - "from eppy import ex_loopdiagram\n", - "fname = 'hhh_new.idf'\n", - "iddfile = '../eppy/resources/iddfiles/Energy+V8_0_0.idd'\n", - "edges = ex_loopdiagram.getedges(fname, iddfile)\n", - "# edges are the lines that draw the nodes in the loop. \n", - "# The term comes from graph theory in mathematics\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 11 - }, + } + ], + "source": [ + "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This leads us to three components -> ['sb1_pipe', 'sb2_pipe', 'sb3_pipe']. Let us follow one of them" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above code gets us the edges of the loop diagram. Once we have the edges, we can traverse through the diagram. Let us start with the \"Central_Chiller\" and work our way down." + "name": "stdout", + "output_type": "stream", + "text": [ + "['p_loop_supply_mixer']\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import walk_hvac\n", - "firstnode = \"Central_Chiller\"\n", - "nextnodes = walk_hvac.nextnode(edges, firstnode)\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'np1']\n" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'np2']\n" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'p_loop_supply_splitter']\n" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe']\n" - ] - } - ], - "prompt_number": 15 - }, + } + ], + "source": [ + "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This leads us to three components -> ['sb1_pipe', 'sb2_pipe', 'sb3_pipe']. Let us follow one of them" + "name": "stdout", + "output_type": "stream", + "text": [ + "['sb4_pipe']\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'p_loop_supply_mixer']\n" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'sb4_pipe']\n" - ] - } - ], - "prompt_number": 17 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[]\n" - ] - } - ], - "prompt_number": 18 - }, + } + ], + "source": [ + "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have reached the end of this branch. There are no more components. \n", - "\n", - "We can follow this in reverse using the function prevnode()" + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "lastnode = 'sb4_pipe'\n", - "prevnodes = walk_hvac.prevnode(edges, lastnode)\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'p_loop_supply_mixer']\n" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe']\n" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'p_loop_supply_splitter']\n" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'np2']\n" - ] - } - ], - "prompt_number": 22 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'np1']\n" - ] - } - ], - "prompt_number": 23 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'Central_Chiller']\n" - ] - } - ], - "prompt_number": 24 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[]\n" - ] - } - ], - "prompt_number": 25 - }, + } + ], + "source": [ + "nextnodes = walk_hvac.nextnode(edges, nextnodes[0])\n", + "print(nextnodes)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have reached the end of this branch. There are no more components. \n", + "\n", + "We can follow this in reverse using the function prevnode()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "All the way to where the loop ends" + "name": "stdout", + "output_type": "stream", + "text": [ + "['p_loop_supply_mixer']\n" ] - }, + } + ], + "source": [ + "lastnode = 'sb4_pipe'\n", + "prevnodes = walk_hvac.prevnode(edges, lastnode)\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Building a Condensor loop" + "name": "stdout", + "output_type": "stream", + "text": [ + "['sb1_pipe', 'sb2_pipe', 'sb3_pipe']\n" ] - }, + } + ], + "source": [ + "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We build the condensor loop the same way we built the plant loop. Pipes are put as place holders for the components. Let us build a new idf file with just a condensor loop in it." + "name": "stdout", + "output_type": "stream", + "text": [ + "['p_loop_supply_splitter']\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "condensorloop_idf = IDF(StringIO('')) \n", - "loopname = \"c_loop\"\n", - "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side\n", - "dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side\n", - "theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop)\n", - "condensorloop_idf.saveas(\"c_loop.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 26 - }, + } + ], + "source": [ + "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Again, just as we did in the plant loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions nextnode() and prevnode()" + "name": "stdout", + "output_type": "stream", + "text": [ + "['np2']\n" ] - }, + } + ], + "source": [ + "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Building an Air Loop" + "name": "stdout", + "output_type": "stream", + "text": [ + "['np1']\n" ] - }, + } + ], + "source": [ + "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Building an air loop is similar to the plant and condensor loop. The difference is that instead of pipes , we have ducts as placeholder components. The other difference is that we have zones on the demand side." + "name": "stdout", + "output_type": "stream", + "text": [ + "['Central_Chiller']\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airloop_idf = IDF(StringIO('')) \n", - "loopname = \"a_loop\"\n", - "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop\n", - "dloop = ['zone1', 'zone2', 'zone3'] # zones on the demand side\n", - "hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop)\n", - "airloop_idf.saveas(\"a_loop.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 27 - }, + } + ], + "source": [ + "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Again, just as we did in the plant and condensor loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions nextnode() and prevnode()" + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n" ] } ], - "metadata": {} + "source": [ + "prevnodes = walk_hvac.prevnode(edges, prevnodes[0])\n", + "print(prevnodes)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All the way to where the loop ends" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Building a Condensor loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We build the condensor loop the same way we built the plant loop. Pipes are put as place holders for the components. Let us build a new idf file with just a condensor loop in it." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "condensorloop_idf = IDF(StringIO('')) \n", + "loopname = \"c_loop\"\n", + "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side\n", + "dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side\n", + "theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop)\n", + "condensorloop_idf.saveas(\"c_loop.idf\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, just as we did in the plant loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions nextnode() and prevnode()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Building an Air Loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Building an air loop is similar to the plant and condensor loop. The difference is that instead of pipes , we have ducts as placeholder components. The other difference is that we have zones on the demand side." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "airloop_idf = IDF(StringIO('')) \n", + "loopname = \"a_loop\"\n", + "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop\n", + "dloop = ['zone1', 'zone2', 'zone3'] # zones on the demand side\n", + "hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop)\n", + "airloop_idf.saveas(\"a_loop.idf\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, just as we did in the plant and condensor loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions nextnode() and prevnode()" + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/docs/HVAC_Tutorial.ipynb_orig b/docs/HVAC_Tutorial.ipynb_orig deleted file mode 100644 index 33d1b8aa..00000000 --- a/docs/HVAC_Tutorial.ipynb_orig +++ /dev/null @@ -1,818 +0,0 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:8eadf8836383724ddd49bd2e1c1e4ce485cfe5bf0efaef0186e4fcdbc00a6412" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "HVAC Loops" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Conceptual Introduction to HVAC Loops" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy builds threee kinds of loops for the energyplus idf file:\n", - "\n", - "1. Plant Loops\n", - "2. Condensor Loops\n", - "3. Air Loops\n", - "\n", - "All loops have two halves:\n", - "\n", - "1. Supply side\n", - "2. Demand Side\n", - "\n", - "The supply side provides the energy to the demand side that needs the energy. So the end-nodes on the supply side connect to the end-nodes on the demand side. \n", - "\n", - "The loop is made up of branches connected to each other. A single branch can lead to multiple branches through a **splitter** component. Multiple branches can lead to a single branch through a **mixer** component. \n", - "\n", - "Each branch is made up of components connected in series (in a line)\n", - "\n", - "Eppy starts off by building the shape or topology of the loop by connecting the branches in the right order. The braches themselves have a single component in them, that is just a place holder. Usually it is a pipe component. In an air loop it would be a duct component.\n", - "\n", - "The shape of the loop for the supply or demand side is quite simple. \n", - "\n", - "It can be described in the following manner for the supply side\n", - "\n", - "- The supply side starts single branch leads to a splitter\n", - "- The splitter leads to multiple branches\n", - "- these multiple branches come back and join in a mixer\n", - "- the mixer leads to a single branch that becomes end of the suppply side\n", - "\n", - "For the demand side we have:\n", - "\n", - "- The demand side starts single branch leads to a splitter\n", - "- The splitter leads to multiple branches\n", - "- these multiple branches come back and join in a mixer\n", - "- the mixer leads to a single branch that becomes end of the demand side\n", - "\n", - "The two ends of the supply side connect to the two ends of the demand side.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Diagramtically the the two sides of the loop will look like this::\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " Supply Side:\n", - " ------------\n", - " -> branch1 -> \n", - " start_branch --> branch2 --> end_branch\n", - " -> branch3 ->\n", - " Demand Side:\n", - " ------------\n", - " \n", - " -> d_branch1 -> \n", - " d_start_branch --> d_branch2 --> d_end_branch\n", - " -> d_branch3 ->\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "In eppy you could embody this is a list\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "supplyside = ['start_brandh', [ 'branch1', 'branch2', 'branch3'], 'end_branch']\n", - "demandside = ['d_start_brandh', ['d_branch1', 'd_branch2', 'd_branch3'], 'd_end_branch']\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy will build the build the shape/topology of the loop using the two lists above. Each branch will have a placeholder component, like a pipe or a duct::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " \n", - " branch1 = --duct--\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we will have to replace the placeholder with the real components that make up the loop. For instance, branch1 should really have a pre-heat coil leading to a supply fan leading to a cooling coil leading to a heating coil::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " \n", - " new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy lets you build a new branch and you can replace branch1 with new_branch\n", - "\n", - "In this manner we can build up the entire loop with the right components, once the initial toplogy is right" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Building a Plant loops" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy can build up the topology of a plant loop using single pipes in a branch. Once we do that the simple branch in the loop we have built can be replaced with a more complex branch.\n", - "\n", - "Let us try this out ans see how it works." - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Building the topology of the loop" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# you would normaly install eppy by doing\n", - "# python setup.py install\n", - "# or\n", - "# pip install eppy\n", - "# or\n", - "# easy_install eppy\n", - "\n", - "# if you have not done so, uncomment the following three lines\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../'\n", - "sys.path.append(pathnameto_eppy) \n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.modeleditor import IDF\n", - "from eppy import hvacbuilder\n", - "\n", - "from StringIO import StringIO\n", - "iddfile = \"../eppy/resources/iddfiles/Energy+V7_0_0_036.idd\"\n", - "IDF.setiddname(iddfile)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# make the topology of the loop\n", - "idf = IDF(StringIO('')) # makes an empty idf file in memory with no file name\n", - "loopname = \"p_loop\"\n", - "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop\n", - "dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side of the loop\n", - "hvacbuilder.makeplantloop(idf, loopname, sloop, dloop)\n", - "idf.saveas(\"hhh1.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have made plant loop and saved it as hhh1.idf. \n", - "Now let us look at what the loop looks like. \n" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Diagram of the loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eppy has a function that can draw the loops. We'll use this to view the loop diagram. \n", - " \n", - "run the following program in the shell. (you have to run it from the eppy/eppy folder)\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "\n", - "# usage:\n", - "# python ex_loopdiagram.py iddfile idffile\n", - "python ex_loopdiagram.py ./resources/iddfiles/Energy+V7_0_0_036.idd hhh1.idf\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This will output a image by name hhh1.png. This image is shown below. \n", - "\n", - "*Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity*" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", - "for_images = ex_inits\n", - "for_images.display_png(for_images.plantloop1) # display the image below\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAP7CAYAAABY8t0eAABAAElEQVR4AezdB7wTVfr/8QfpAouK\nKKAidsWGvS8KKouCIgiiIMsqiL0h1rWs5a+uvWNDVFAUdW24KmLvBXvHAva2KthF5n++Z3+TTUJy\nM8lNJu1zXi+8yWTmzDnvud6TZ+aUJoFLRkIAAQQQQAABBBBAAAEEEEAAgcgCi0Tekx0RQAABBBBA\nAAEEEEAAAQQQQMALEEzzi4AAAggggAACCCCAAAIIIIBAngIE03mCsTsCCCCAAAIIIIAAAggggAAC\nBNP8DiCAAAIIIIAAAggggAACCCCQpwDBdJ5g7I4AAggggAACCCCAAAIIIIAAwTS/AwgggAACCCCA\nAAIIIIAAAgjkKUAwnScYuyOAAAIIIIAAAggggAACCCBAMM3vAAIIIIAAAggggAACCCCAAAJ5ChBM\n5wnG7ggggAACCCCAAAIIIIAAAggQTPM7gAACCCCAAAIIIIAAAggggECeAgTTeYKxOwIIIIAAAggg\ngAACCCCAAAIE0/wOIIAAAggggAACCCCAAAIIIJCnAMF0nmDsjgACCCCAAAIIIIAAAggggADBNL8D\nCCCAAAIIIIAAAggggAACCOQpQDCdJxi7I4AAAggggAACCCCAAAIIIEAwze8AAggggAACCCCAAAII\nIIAAAnkKEEznCcbuCCCAAAIIIIAAAggggAACCBBM8zuAAAIIIIAAAggggAACCCCAQJ4CBNN5grE7\nAggggAACCCCAAAIIIIAAAgTT/A4ggAACCCCAAAIIIIAAAgggkKcAwXSeYOyOAAIIIIAAAggggAAC\nCCCAAME0vwMIIIAAAggggAACCCCAAAII5CnQLM/92R2BqhH4/fff7dFHH7W7777btttuO9thhx0q\nquy//fabXX/99fbqq6/acsstZ1tuuaUtvvji9s0339hmm20We1mL6fXtt9/avffeu1AdVEfVNVcq\nZllynYvPEUAAAQTKJ1CJf++ztWHt27e3pZde2lZZZRX705/+VD60Ip/5zTfftGnTptm6667rvy+l\nZ5/NgzY9XYr39SjAk+l6vOp1UmcFqTfffLOdf/759umnn1ZUrX/66SfbeOONberUqda/f3/r0KGD\nHXPMMbbaaqvZU089VZayFtNLNwV69eplV1xxhe2xxx528skn2xZbbGHLLrtspLoVsyyRTshOCCCA\nAAJlEajEv/eLLbaYde/e3Y4//njfht1www2moP/FF1+0Cy64wLp27Wp9+/a1p59+uixmxTzpe++9\nZ5dffrmNGzfOPv7444xZ06ZnZGEjAl6AYJpfhJoVWH/99e2AAw6oyPqpMdYXiKuuusp69+5tI0eO\ntAcffNBGjx5dtsC/2F66e7/TTjt5/+23395/+WjSpEmk69GYsnz11VcZn4pHOjE7IYAAAgjEKtCY\nv/elKqjaKj2l3Xrrrf0p9txzTxsxYoQdd9xxdt1119kbb7xhbdq08TeN//Wvf5WqGLHku9JKK9mY\nMWP8uZo1y95hlTY9lsvBSapQgGC6Ci8aRY4uEDYMUYO46Dk3bs+XXnrJFixYYHPnzk3J6IwzzvDd\nvFM2xvim2F7qEqcU/synKoWU5Y8//vBPET788MN8TsW+CCCAAAJlFCjk730cxc3WlbtLly42efJk\n35ts1113tRtvvDGO4pTsHIss8t9wIPyZ7URhWx7+zLZfpu2FXGPa9EySbKs0gey3oCqtpJSnbgTm\nz59vM2bM8Hd9NS7pjjvusPfff9922WUX22STTYriMG/ePLvnnntM44Q0hldPTjON5Z05c6Y99thj\npm7Zunuu/ZIDc3WJuvPOO22//fazRx55xO677z5bZpllbO+997bWrVtnLavyURf0v/71r6a72mH3\n5yWWWMIOP/xwf9xdd91l6n7Vtm1bGzVqlKnMuiOurmadO3e23Xbbze8X1auQsmr8tsqhpHqvs846\ntt5669mPP/5ot99+uy/LNttsY8svv7zfJ8p/VN6HHnrI1GhrbLjyf/vtt23o0KG26qqr5sxCXfY1\nHlv1UddxPdlX+vXXX23YsGH2wAMP2FJLLeXLqyfjsiIhgAACCBRXoJA2Jd8SFKOtjtpG5lu2li1b\n+qFMGrI1YcIE23333RNZZGunwh303ePzzz+3nj172r///W/fBg4ePNh/D9GN9ieeeMIP+frzn/9s\nm266aXiY//nOO+/47uWvvPKKbwP13ShMH330kd1222120EEH+afn+v6kLulqG9MDZc0p8/DDD5vq\noe83Ssnfb8I8c/1sbJuu/NVuP/PMM37eGH230dA32vRc8nxeMQIBCYEKEnANQTBw4MDA/Q8SuEAo\n2HHHHYP9998/cAFR4O5qBrfccktepX399dd9Xq47deI491Q4WHvttYNbb701+PLLL4Ozzz47cAFr\n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\nqgdteLVeTcqNQHkECKbL485Zq1xA45uvueYaU1dtdQt7//33M9boySeftBNPPNFuvfXWxOdff/21\n78699tprJ7bpRatWrUx3ym+++eaU7bneqHuaxkIHQWAPP/ywHXPMMXbxxRfbzz//nHKoyqyu3mGa\nP3++3Xffffb444/bF198YVdccYUdffTRpifY6enTTz/1x5588sk2Y8aM9I95jwACCCCAQFUIPPro\no6a2TO33nDlzfJmz3QCnDa+KS0ohESirwH/7tZS1CJwcgeoS+O6772yHHXbwgaue9O65556+Aiuu\nuGKiIr/++qv179/fB7gKtNVw68nz9ddf7wPvBQsWWOfOnRP7hy+WWmopU+OtwDhb4x7uq5+TJ0+2\ngw46yH755Rd79dVX7bfffrPPP//c9ORb51KgrDvuen3wwQfboosu6sdpKwA/5JBD7LbbbrOddtrJ\n/vjjD1t++eXtX//6l51zzjk2ZcoUGzRokD+VuoZrDPh+++1n7dq1swEDBtiIESPskksuSS4KrxFA\nAAEEEKhogeOOO85P9nn++eebbmyrXVZKb29pwyv6MlI4BCpLwH1pJyFQ9wLLLrts4MYvR3K46KKL\ngp49eyb2dcFycMMNNyTe77jjjkGLFi2Ct956y29zgXOw8847B+7//OCee+4J7rzzTv/aBdiJY8IX\nLkj3n3311Vfhppw/3ZeBwH0RCF577bXEvscff7zPZ/z48YltAwcODJZeeunE+1mzZvl9Bg8enNjm\nAvGgY8eOgTx+//33YN68eYG7SRC47ueJffbee29/3FNPPZXYFr6QoY5NTh999FHW/ZP34zUCCCCA\nAAJRBVxAHHTp0iXq7r79dV24g++//z5xzLXXXuvbJ9rwBIk3lW1ycjffg8033zx5E68RQOD/BOjm\nXVn3NihNFQisvvrq9sgjj/g72i7otRVWWMFcoJpS8jXXXNNWW201v013vPVUV2natGnWtm3bxHb/\nIuk/ekLcsmVLW3zxxZO2NvxSY6E1eYrOGSZ119Y2dWcLk/JNTjpOqUePHonNLti20aNH+0nQtGyX\nnkiru/iRRx5pBxxwgP+nJ9/qju6C8cRxvEAAAQQQQKCSBU4//XTbYIMN7E9/+lOimBtvvLF/nf5k\nmjY8QcQLBBDIIUA37xxAfIxAukCvXr3siCOO8N2h3VNmu+CCC+xvf/tb+m4p7zfddFPf3Vpjj5db\n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\ngQgCBNIRkNilrgSSA+np06fT06yurn7xK0swXXzTusiRQLouLjOVdALpgXSHDh1wQQABBKpCgEC6\nKi4ThYxRID2QXnzxxWM8O6eqRQHGTNfiVS1xnW644YbEZGO777676R8JgVoV6Ny5s6lrt55IE0jX\n6lWmXgjUnsDUqVMTk42NGDHC9I+EQL0LdOnSxZZYYgnTE2kC6Xr/bShO/Qmmi+NYV7l88cUXtuSS\nS9qll15aV/WmsvUpsP/++9tee+1FIF2fl59aI1C1AmqrdSPwiiuuqNo6UHAEii0wZswYGzVqFIF0\nsWHrOD+C6Tq++I2peqtWrWzw4MGNyYJjEagKgcMPP9yaNm1aFWWlkAgggECyQIsWLWirk0F4XfcC\nBx10EG163f8WFBeAMdPF9SQ3BBBAAAEEEEAAAQQQQACBOhAgmK6Di0wVEUAAAQQQQAABBBBAAAEE\niitAMF1cT3JDAAEEEEAAAQQQQAABBBCoAwGC6Tq4yFQRAQQQQAABBBBAAAEEEECguAIE08X1JDcE\nEEAAAQQQQAABBBBAAIE6ECCYroOLTBURQAABBBBAAAEEEEAAAQSKK0AwXVxPckMAAQQQQAABBBBA\nAAEEEKgDAYLpOrjIVBEBBBBAAAEEEEAAAQQQQKC4AgTTxfUkNwQQQAABBBBAAAEEEEAAgToQIJiu\ng4tMFRFAAAEEEEAAAQQQQAABBIorQDBdXE9yQwABBBBAAAEEEEAAAQQQqAMBguk6uMi1UsXff//d\nZsyYYYcddpjdc889tVKtktej0t0aKt+5555rl156acmNOAECCCCAQPEE5syZY5dddpmNGjWqeJnG\nlNMPP/xgd911lx111FExnbE0p3nzzTft7LPPtunTp5fmBFlyzdamv//++7bXXnvZxx9/nOVINiNQ\nnQIE09V53eqy1K+++qrdfPPNdv7559unn35alwaFVLrS3Roq34QJE+y6664rpNocgwACCCBQBgEF\no0888YSdeuqpdu+995ahBI07pcp88MEH25QpUxqXURmPfu+99+zyyy+3cePGxR68ZmvTZ86caddc\nc43pcxICtSRAMF1LV7PG67L++uvbAQccUOO1LH71Kt2tofI988wz9tBDD6WgfPXVVxm/oBF0pzDx\nBgEEECiLQNu2bW333Xe3TTbZpCznb+xJd911V9t4442tWbNmjc2qbMevtNJKNmbMGH/+uOuRrU2X\nq9rvvn37prhkatMzbUs5iDcIVJAAwXQFXQyKklsgbBSaNGmSe2f2SAhUulu28rVp08Zat26dqMcf\nf/xhe+yxh3344YeJbXqhgPvYY49N2cYbBBBAAIHyCejverW21YsssojpXzWnsPzhzzjrkq1NX3LJ\nJVOKkalNz7Qt5SDeIFBhAtV7263CIClOdoH58+f7sc4KjFZZZRW74447TGNndtlll6LduZ43b54f\nR60xQsstt5xtv/32/md6qdTN6LHHHrOffvrJdPdU+yU39hrLc+edd9p+++1njzzyiN133322zDLL\n2N57750S1KXnm+n9l19+adOmTTP91F1inW/FFVf0Y7HUBUt37zWeTGXXU1WNM+rcubPttttuPrso\nZSnUVmPPP/roI3+eli1b2sCBA00/n332WXvjjTds8cUXt5133jlTtTJuy1ZX7RylHhkzdRuV7913\n3+3HWf366682bNgwe+CBB2yppZby122nnXayt956y5dV11Hd2rp06WL9+/f3WWo4gLrsqQxbbLGF\n9e7dO+VUTz75pP3222+2xhpr2LXXXmtbb721fyKRshNvEEAAgToQKLQ9yZcmVzus/HK16Y1pVzKV\n9z//+Y/dcsst/kbthhtuaEEQpHw30DG52hN9//j888+tZ8+e9u9//9vefvttGzx4sP8usmDBAt/1\n/amnnrI///nPtummm6YU45133rGnn37aXnnlFd9W6ftRmHRddMNYQfFmm23mv0Mo76FDh9qqq64a\n7uZ/Pvroo/bwww/79lzfOZSSv+P4DRH+k61Nb8zviAz0vUrffTbaaCPL1Kb36dPHjjjiiIXaeX03\nUlL7rx5r+o6i70odOnRI1Obbb7+1G2+80fbff3/vL8uxY8dWdQ+DROV4UdkC7g8GCYG8BNykUMGy\nyy4b6RgXsAUuUAvc/wWBC3yCHXfcMXB/6AL3hzFwdy4D13hFyifc6fXXX/d5XXXVVeGm4KWXXgrW\nXnvt4NZbbw1cAxC4CTcC98c6cMFRYh+9cBOXBUOGDAlcIBu4xjxYZ511Ahc8BV9//bXfb9KkSYH7\nAx24J6HBvvvuG7iJMoIddtjBn891+Qpc0JWSX0Nv3B/1YIMNNgjcF4LANT6B6/IWTJ06NXHImmuu\nmWI4d+7c4E9/+lPgGsrIZcnHNt3txx9/DFQGXRd5JKfVV189cA118qYGXzdU16im6eWT2TXXXBO0\n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\ncqmUqjlz5ugNRPE7xG/NbU8C/HZ79eql29yV4uWzbBHgbt7ZKs8auTnhhBPk5ptvLoxmwgMMZzTw\n1TE+umJQ50lLly5dZIcddtB/HTt2lKZNm9aIizeSQQC7tY4dO1aX0U8//cQp3skolhqpQKcUpoeh\nYwpTvt944w29IyiWWuD3h98hfoPGoTOrXbt22m+LFi3MbX6SAAnkjABGwm666aYivY1GPDrlzB4M\nqCOgs3fccUe9RATLRDbaaKOckUpfdqm/01dmM2fO1Hr5/fff15/Q57Nnz9YZwW8Suh5GtHHQ5WhX\nT5o0SajLDZVsf9KYznD53n777TJ06NCiHKKxDsMZChhHakAB82ieIkSJ/4LRh549e8rRRx+t10sn\nPsFMYIEAFK46r7JgYGO9NHbRtxvV3bt3F6y9oiMBEsgfgdtuu02GDRtWlHGcDgCdjT90dkNvr7vu\nukV++CUdBKi/01FObqn8+eefBcb15MmT5b333tPHXH711VeF/WwQfvfdd5cJEya4RcXnGSDAQ9Ey\nUIjlsoBpKYccckiR4dysWbNy3nk/JQSwORwMruOOOy4lKWYyDQGMRnfo0EH/HaU2NIHD7/STTz4p\nGNjY44COBEggnwRQH+DIPIw6w3DGX6tWrfIJI4O5pv7ORqG2bNlSt8PQFjNu8eLFunMcBjYMbex3\ngCVcblPDTXh+ppcAR6bTW3ZMOQmQAAmQAAmQAAmQAAmQAAmQQJUIcAOyKoHna0mABEiABEiABEiA\nBEiABEiABNJLgMZ0esuOKScBEiABEiABEiABEiABEiABEqgSARrTVQLP15IACZAACZAACZAACZAA\nCZAACaSXAI3p9JYdU04CJEACJEACJEACJEACJEACJFAlAjSmqwSeryUBEiABEiABEiABEiABEiAB\nEkgvARrT6S07ppwESIAESIAESIAESIAESIAESKBKBGhMVwk8X0sCJEACJEACJEACJEACJEACJJBe\nAjSm01t2TDkJkAAJkAAJkAAJkAAJkAAJkECVCNCYrhJ4vpYESIAESIAESIAESIAESIAESCC9BGhM\np7fsmHISIAESIAESIAESIAESIAESIIEqEaAxXSXwfC0JkAAJkAAJkAAJkAAJkAAJkEB6CdCYTm/Z\nMeUkQAIkQAIkQAIkQAIkQAIkQAJVIkBjukrg+VoSIAESIAESIAESIAESIAESIIH0EqAxnd6yY8pJ\n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\ngARIwD8BGtP+mTEECZAACZAACZAACZAACZAACZBAzgnQmM65ADD7JEACJEACJEACJEACJEACJEAC\n/gnQmPbPjCFIgARIgARIgARIgARIgARIgARyToDGdM4FgNknARIgARIgARIgARIgARIgARLwT4DG\ntH9mDEECJEACJEACJEACJEACJEACJJBzAjSmcy4AzD4JkAAJkAAJkAAJkAAJkAAJkIB/AjSm/TNj\nCBIgARIgARIgARIgARIgARIggZwToDGdcwFg9kmABEiABEiABEiABEiABEiABPwToDHtnxlDkAAJ\nkAAJkAAJkAAJkAAJkAAJ5JwAjemcCwCzTwIkQAIkQAIkQAIkQAIkQAIk4J8AjWn/zBiCBEiABEiA\nBEiABEiABEiABEgg5wRoTOdcAJh9EiABEiABEiABEiABEiABEiAB/wRoTPtnxhAkQAIkQAIkQAIk\nQAIkQAIkQAI5J0BjOucCwOyTAAmQAAmQAAmQAAmQAAmQAAn4JxCbMf3bb7/J448/LhdddJGvVCHM\nkiVLfIXx6/mqq66Sm266yW+wVPifPn263HzzzTJ06NBUpLe2EulXHt944w0ZNWqUjB49Wt55551Y\nk0l5jBVvIiP3K48vvfSSjBw5Uq688kqZOXNmrHmiPMaKN1GRQw6ffPJJOfPMMwvp+uSTT2TMmDHy\n+uuvF+65Xfzwww8yceJEN2+hnn/99dcyePBgmTFjRqh4khh4+fLl8uKLL8qpp54qTz/9dBKTWOtp\ncsqm3zqTOjyaImObsibHzz77TK644gp5/vnn9UM/svnrr79qPX7yySfLc889JytWrKj5gojusM6M\nCKSXaKyY3J133mn96U9/sjbbbDNPbxg/fry1/fbbWyrN1s8//+wpTFBPW221ldW5c+egwRMbbsGC\nBdZ9991nrbvuulbbtm0Tm85qJMyPPJ500klW8+bNrQ022EDLY506dazLL788tmRTHmNDm9iI/cjj\nZZddZm299dbWsGHDrDZt2lh169a1UF/G5SiPcZFNXrzjxo2z2rdvr+s6pO6LL76wDj/8cF3v3X//\n/a4JnjNnjnXaaadZjRs3tlBvxumQVrQPlLEZ52uqEve7776rf9/I32233VaVNCTtpU7Z9FNnUodH\nU5psU9bkOHXqVEsZwrouuuOOO7QHr7L5008/WRtvvLF1xBFHWN26ddO6fKeddqr5kojusM6MCKSH\naMSDn8Be9tlnH0/G9Lfffmvh79BDD9UCGrcxrXqRrEWLFgXOV5IC3nXXXTWSc8ABBwQypkvFVSPy\nFN/wIo+PPPKIdcopp1i///67tXLlSuuFF16wWrZsadWvX9/66quvYsk95bE0VsqjpWXugQceKABC\n4wYdPXvuuWfhXtQXlMfSRLMqjwcffLC10UYbFTL91ltveTam1awd64MPPtD+4zamkcAff/yxkM40\nX6AT4r///W9RFgxHv8Z0VuUScJyySR1eJDKxfCklT2xTFqP+9NNPdZ139913Fx54kU01a9SCQW3c\nxRdfrON57bXXzK3IP7NSZwKMUzaD1pml6t+w4GOb5o1R8Xr16oka1cNlRadGAAV/qoe8or+oHjZt\n2lRUT3pU0VUtngkTJsg555xT4/3K8PPE3R6wXFx2P2m/9iKPb775pp6+Y/x2795dDjnkEFHGtUya\nNCkWBJTHmlgpj6uYYPon5M+41VdfXVTDRpo1a2ZuRf5JeayJNMvyqGY6CP6MQ90H50V377jjjrL5\n5puboLF/qtlusb8j7hdgWudhhx0m33zzTdGroLfhvHA3AbMsl8hjKdl040MdbqTD/2c5eWKbspil\nqS/NJ56aNmOxzz++LVu2THr06CFqcKZwc9CgQfo6Tn2ehToTkErJZpA6s1z9WyiUgBerau+AgRFM\nWfPy8ssvy+TJk7UwQbHutddeNWLE+pVnn31WttlmGznooINqPI/iBtZSPfHEE3LcccfpNOF9arqz\nDBkypMh4Vr0SoqZJ6vVXeC8MJaxXQiNyk0020Wu9sdYAjVY1Hbwoad9//70888wzet3WLrvsIjC2\ngrj33ntPXn31VVEj5NKpUyfZe++9C0oUa9jUKKig4Yy1z2o0SlQPmKBhvc466+jGNQRr//3312Fu\nvfVWUVO7Zd99962YFDXKKm+//basueaaOo5WrVpp/0HiqviiKj4MK49nnHGGlmN7Fvr06aPXoYOb\nH0d5pDyGlUe1TKZI5NRsCV03XHrppUX3vXyhPFIeISdq5pc8/PDD2pjbYYcdtA4vZ6DAr5oqKPPn\nz5f+/fvH0uHtVf9C9tHWgF6EEQ/nVabht5z+wzOvDroYa5qxZnL99dfXehufcF709tKlS0VNo9dp\nWWuttbT+3m+//bReL5eGcm2OLOltk3c/slmuTUkdzjalkacoP1955RW9L0TDhg11mx1xl6s3S8lm\n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\n0zG8KBQJAQQQQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQJAQQQ\nQAABBBBAAAEEEEAg3gIE0/G+PpQOAQQQQAABBBBAAAEEEEAghgIE0zG8KBQpmsCff/5ps2fPtuOP\nP94eeOCBaAexl8Xd7bLLLrNrrrmGK4UAAgggUCYCCxcutGuvvdaGDx9ecjX66aef7P7777dTTjml\n5MqeXOBi1OODDz6wQw45xD755JPkovAagbISIJguq8tZWZV54403bOrUqXb55ZfbZ599VlmVz6K2\ncXe76aabbNKkSVnUkEMRQAABBOIioCDumWeesfPPP98efPDBuBQrcjlU5mOPPdZuv/32yMfEccdi\n1OPVV1+1iRMnmr53kBAoVwGC6XK9shVQr0033dSOOuqoCqhpbqsYd7cXXnjBHnvssdxWmtwQQAAB\nBIoi0KJFCxs8eLB17969KOfP9qT77ruvbbHFFta4ceNssyrq8cWoh8759ddfW+/evYtad06OQD4F\nSvsvQz5lyLskBMLGrUGDBiVR3rgUMs5uzZs3jwsT5UAAAQQQyJGA2p1SbasbNmxo+lfqqRj1aNOm\nTamzUX4EahUgmK6Vhw/zIbBkyRI/1llB09prr2333XefaVzN3nvvndM71+pe9NRTT9kvv/xiehq7\nyy671GjIM+2jcT7Tp0+3ESNG2BNPPGEPPfSQtW/f3g499FBr1qxZnXi++uormzlzpunnWmut5cu0\n5ppr+rFY77//vunuvcaT/fjjj76bs8Y2r7baarbffvv580Rxi7JPqkJr7PnHH3/sP2ratKn179/f\n9PPFF1+0efPm2Yorrmh77bVXqkNTbvv111/9dd1zzz19fTWmvV27dta3b19r1KiRffnll95VDfuA\nAQNs+eWXT+QjnxkzZvhxVn/99Zfdcccd9scff/jPV199dVtvvfXskUcesaVLl9omm2zi/4UHq7u/\nurLpum2zzTbWq1ev8CP77rvv7LbbbrORI0fav//9b3v99dftxBNPLPmnDYkK8gIBBBDIsUAu28B0\nRcvUDus4tYtqR95++21TO6D2XD/DVN+2Lzy++s9vv/3W7rzzTvvoo49ss802syAIanx/0DFqi9Sb\nSm2k2urWrVsnslJZv/jiC+vRo4dvc959913f3qncar/U9f25556z7bff3rbccsvEcXrx3nvv2fPP\n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\nIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCA\nAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfI\nhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAA\nAggggAACCCCQOwGC6dxZkhMCCCCAAAIIIIAAAggggECFCBBMV8iFppoIIIAAAggggAACCCCAAAK5\nEyCYzp0lOSGAAAIIIIAAAggggAACCFSIAMF0hVxoqokAAggggAACCCCAAAIIIJA7AYLp3FmSEwII\nIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCA\nAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfI\nhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAA\nAggggAACCCCQOwGC6dxZkhMCCCCAAAIIIIAAAggggECFCBBMV8iFppoIIIAAAggggAACCCCAAAK5\nEyCYzp0lOSGAAAIIIIAAAggggAACCFSIAMF0hVxoqokAAggggAACCCCAAAIIIJA7AYLp3FmSEwII\nIIAAAggggAACCCCAQIUIEExXyIWmmggggAACCCCAAAIIIIAAArkTIJjOnSU5IYAAAggggAACCCCA\nAAIIVIgAwXSFXGiqiQACCCCAAAIIIIAAAgggkDsBguncWZITAggggAACCCCAAAIIIIBAhQgQTFfI\nhaaaCCCAAAIIIIAAAggggAACuRMgmM6dJTkhgAACCCCAAAIIIIAAAghUiADBdIVcaKqJAAIIIIAA\nAggggAACCCCQO4EGgUu5y46cEEAg1wLjx4+3CRMmVMl2/vz5tuqqq1qLFi0S2zt37mwzZ85MvOcF\nAggggAACCBRPgPa7ePacGYFCCTQu1Ik4DwII1E9g8eLFNm/evBoHL1y4sMo27otV4eANAggggAAC\nRRWg/S4qPydHoCACdPMuCDMnQaD+AoMHD854cOPGjW3YsGEZ92MHBBBAAAEEECiMAO13YZw5CwLF\nFKCbdzH1OTcCEQW6detmc+bMsdqePi9YsMA6duwYMUd2QwABBBBAAIF8C9B+51uY/BEorgBPpovr\nz9kRiCRw0EEHWcOGqf93bdCggXXv3p1AOpIkOyGAAAIIIFA4AdrvwllzJgSKIZD623kxSsI5EUAg\nrcDAgQNt6dKlKT9XkD106NCUn7ERAQQQQAABBIonQPtdPHvOjEAhBAimC6HMORDIUkAzd/fo0SPl\n02l1/R4wYECWZ+BwBBBAAAEEEMi1AO13rkXJD4F4CRBMx+t6UBoE0gqkevrcqFEj69mzp7Vt2zbt\ncXyAAAIIIIAAAsUToP0unj1nRiDfAgTT+RYmfwRyJNC/f/8aT6bV9TtVI52jU5INAggggAACCGQp\nQPudJSCHIxBjAYLpGF8cioZAskCrVq1s9913Nz2NDlOTJk2sX79+4Vt+IoAAAggggEDMBGi/Y3ZB\nKA4CORQgmM4hJlkhkG+BIUOGJCYi09rSffv2tZYtW+b7tOSPAAIIIIAAAlkI0H5ngcehCMRYgGA6\nxheHoiFQXaBPnz627LLL+s1LliwxNc4kBBBAAAEEEIi3AO13vK8PpUOgvgIE0/WV4zgEiiDQrFkz\n09grpebNm1vv3r2LUApOiQACCCCAAAJ1EaD9rosW+yJQOgIE06VzrSgpAl4gfBqttSubNm2KCgII\nIIAAAgiUgADtdwlcJIqIQB0FCKbrCMbuCBRbYKeddrJevXrZiBEjil0Uzo8AAggggAACEQVovyNC\nsRsCJSTQIHCphMpLURFAAAEEEEAAAQQQQAABBBAougBPpot+CSgAAggggAACCCCAAAIIIIBAqQkQ\nTJfaFaO8CCCAAAIIIIAAAggggAACRRcgmC76JaAACCCAAAIIIIAAAggggAACpSZAMF1qV4zyIoAA\nAggggAACCCCAAAIIFF2AYLrol4ACIIAAAggggAACCCCAAAIIlJoAwXSpXTHKiwACCCCAAAIIIIAA\nAgggUHQBgumiXwIKgAACCCCAAAIIIIAAAgggUGoCBNOldsUoLwIIIIAAAggggAACCCCAQNEFCKaL\nfgkoAAIIIIAAAggggAACCCCAQKkJEEyX2hWjvAgggAACCCCAAAIIIIAAAkUXIJgu+iWgAAgggAAC\nCCCAAAIIIIAAAqUmQDBdaleM8iKAAAIIIIAAAggggAACCBRdgGC66JeAAiCAAAIIIIAAAggggAAC\nCJSaAMF0qV0xyosAAggggAACCCCAAAIIIFB0AYLpol8CCoAAAggggAACCCCAAAIIIFBqAgTTpXbF\nKC8CCCCAAAIIIIAAAggggEDRBQimi34JKAACCCCAAAIIIIAAAggggECpCRBMl9oVo7w5E3jrrbds\nzJgx9swzz9Qpz2+++cYuuuiiOh1Tl50/+OADO+SQQ+yTTz6py2E527e+51+4cKFde+21Nnz48JyV\nhYwQQAABBBCQwNtvv21jx461WbNmeZCffvrJ7rvvPhs9enSdgGjDU3P9+eefNnv2bDv++OPtgQce\nSL0TWxFAoIYAwXQNEjZUgsB7773nA+KTTz7ZPv744zpVWcHiFVdcUadj6rLzq6++ahMnTrQ33nij\nLoflbN/6nF9fanRT4vzzz7cHH3wwZ2UhIwQQQAABBN5//3277rrrbNSoUYkbzXfeeae/eXvbbbfV\nCYg2PDWXvnNMnTrVLr/8cvvss89S78RWBBCoIUAwXYOEDZUg0KVLFzvmmGPqXNXrr7/e9EQ7n2nf\nffe1r7/+2nr37p3P06TNuz7nb9GihQ0ePNi6d++eNt/aPpg0aVJtH/MZAggggEAFC6y11lp2xBFH\neIHGjRv7n8OGDbPNNtusTiq04em5Nt10UzvqqKPS71DLJ7ThteDwUdkLEEyX/SWmgukEGjVq5D9q\n0KBBul2qbNfT7Dlz5lifPn2qbM/HmzZt2uQj28h51vf8+pIT1TMszGOPPWann356+JafCCCAAAII\n1BBo2PC/X1nDn9pB7XjUNoc2vAZpjQ3hjYqopsqANrwGIxsqTOC/t/cqrNJUt7IEvvrqK5s5c6bp\np+5u6+7rmmuuWQXh22+/tWnTptnixYttwIAB1rlz5yqfayzRmWeeaTfeeKOdc845VT6L+mbJkiV+\nPFLz5s1t7bXX9mO9ND557733rvJEd+nSpfbEE0+YnvZuvvnmPnuNn54+fbqNGDHCf/bQQw9Z+/bt\n7dBDD7VmzZpVKcIjjzxiL7zwgq244oq23377WevWrat8nulNqvOr7Gow9SVmq622svvvv9/effdd\nGzRokOkpf6akLmPq/q16bLPNNtarVy9/iPLca6+9/JchdeFr166d9e3bN1N2fI4AAgggUAECTz75\npD3++OPWtGlT33aryukCvWeffdbUNm600Ua2zz77VNHJRRuuDKO0xenaUI1HztT+6xy04VIgIVA6\nAjyZLp1rRUnrIfD999/b7rvv7gPkk046ye6++27TmODkpEBbwZ2CVU1komD7pZdeSt7FzjvvPDvu\nuOOsZcuWVbZHfaMGWIHtbrvt5ic9UxA8d+5cU9eobbfd1u666y6f1bx58/x+PXv2tFdeecVvmzx5\nsv9yoPKPHDnSbrnlFnv99dd9N/UddtjB9CVB6Y8//rDDDjvMFi1a5J+eK1Bdd911TXlGTanO/913\n39mBBx5ou+yyix/LrXM899xzds0115jOrxsRtSWV49xzz7W///3vtt5661m/fv0SXckU8OuLj74o\nrbPOOrb66qvXlhWfIYAAAghUiMAZZ5zh27sTTzzR37hVO6xUPZj+/fff/U3YCy+80N8U11AltVnJ\nKds2XHlFaYtTtaFR23/a8OQrxmsESkggICFQxgLjx48PevTokaihexIcTJkyxb93AXPg/lcNDjro\noMTnzz//fNCkSZNgiy22SGxzd8UDFwwm3ruZLoNVVlkl8T7qi/nz5/vzuSffiUO++OKLoG3btkGH\nDh0CFxT77S5Q9vu5mbET+w0ZMiRwXyCCN998M7HtrLPO8vtNmDDBb3OznAbuqXniczexmv981113\nTWyL8iLV+X/99Vef14477pgop7v54Le5p9SJbFU31SVMP/74Y+B6AQRugrJwU+BuJPjjXEDut7ng\nOnBBdOJzXiCAAAIIVLaAm006cF24gx9++CEBcfPNN/u2I2zD9cEee+wRLLPMMsE777zj93NPhQPX\n28nvpzyUctWGK68obXGqNjRK+x+HNtzNCePtbrjhBlU3oA33DPwHgVoF6OZdQjc+KGrdBfRkVl2m\nXQNo48aNszXWWMN3JU7OqX///om3mkCrW7du5oJq/4RX44euuuoqq+tsoYkMk16oe5fSJptsktjq\ngnL/NFl31D/88EPf/VtPaasnHauyrL/++omPTj31VD8jubrBaWKWyy67zE/GkjyBiJ72ZnpynMjw\nf1+kOv+yyy7rnwaom3w4pqpr167+CC2JlS7JzQXiplnTw+RuIPju9u7LhW255ZZ+c/UnDeG+/EQA\nAQQQqDwBLT+ptnj55ZdPVN7d5Pavq7cXahfV1inpMw2H0pJZ6nWmYUm5asOVf5S2OFUbGqX9pw2X\nMAmB0hMgmC69a0aJ6yCg7tLqHn3ppZf6btxa0urggw+uNYett97aB9Ma56sAXOOW1QU8TP/5z3/s\nt99+813GV1hhBdM5sknhmGPN4K2x1FHTcsstZ+4psJ/5W93ZVV4t+VGoMcfhBG7udl3aImvm89VW\nW82uvvrqtPvog+pfjmrdmQ8RQAABBMpaQMOg1F07OUVtJ3STVvN7qE3Umsn5bsOT2+Lk8kZ5Hbb/\nmj+FNjyKGPsgED8Bgun4XRNKlEMBNahjxozx432PPvpoO+SQQ/xEZKecckras2gSLDXaeoqtAHfW\nrFlV9nXdzuyXX36xY4891j8pzjaYXrBggc+/+qRoVU6a4o3Giekpr+vG7b84aBetE1moYDpFkWps\nUsCtico0rtt1n6/xebgh6pekcH9+IoAAAgiUp4AmvFQbq4k0U6VM7YWeZmsCT7Wprvt33tvw5LY4\nVXlr21a9/acNr02LzxCIp0DDeBaLUiGQGwHNvq2ZNXfeeWe/rJUmGnPjqGvNXN3CNeO0JhubMWOG\nn71TE4iE/9SFzI1z9u81c2i26dFHH/Xd2VZdddU6ZaVJwPSEXEt16cuDgn83ztp3q07O6NZbb7Xa\numIn75vr1xtvvLH9/PPP5sZ1V8laT9I1gZmSvhj99ddfVT7nDQIIIIBAZQpoKJEmq1TPpi+//LLO\nCFrCUitz9O7duyBteHJbXNfChu2/eqXRhtdVj/0RiIcAwXQ8rgOlyJOAumSHT5bVFUszSVdfQ1lP\nmsOkJ9EaL60xVvlKuvMcpk8//dTPHH7JJZeEm0x3uZU0K3dy0t36t99+O7FJM4C7ydUS616PGjXK\nB/h6Uq6lRPSFQst4qX4dO3ZMHJfpRarzuwnETN25NdtomMLyaUx0mHQuBc9h12/NYK4ZutXVXj0E\nVP6pU6fa4YcfnphtVd3A9YRd3dzef/99f3yYHz8RQAABBCpPIOw9dswxx/g2UTfF77jjDg/x9NNP\n2zfffJNAUfukz8OkZS7V9oRLMIbbc/UzU1ucqg0Nz11b+x+XNlxllakSbbhn4D8I1C5Q6/RkfIhA\niQucffbZgZuELNCs3poB1HXNDtzSWL5W7qlu4Lp9B25SrcAtexWcfvrpgWs4gtdee63WWrsGr16z\neX/++ed+lkzNLq4ZrU877bTATbASuKA4cT7NJu7Gifn9Nthgg8A9GfefuQnG/Mymrqt6oPO79Z0D\n1507cHffE8dqFlPl6e7q++P1001SFrinvol9Mr1IdX7NxC0395ckcE/PA83e7W4CBG59bL/NPX0O\nnnnmmcCNLw/cmtd+m9zdEwV/OrdUSODGhfntykP1Cq+BdnBLZ/kyu/HnwZVXXpmpiHyOAAIIIFAB\nAu4GbOBuggduAsxgs802CzTbdevWrQM3yWaiDXn44YcDt+xisNNOO/lVN9RWnnnmmYlVJ1Ix1bcN\nV16Z2uJUbaiOi9L+F7MNf/nllwPXrT7Q6h9qp2UazoZOG64rSEIgvUADfVR7uM2nCJSugO4gq8vY\nV1995dcybtWqVcrKqAv3SiutZHp6na+kp696CnvBBRf4NavVfa1z586RJt868sgj7aabbvJPht2S\nV6Z6JM9ymlxmPSnWU151GctnfZLPGeW1xoapS3eqp+R6oq3x7fVdxzvK+dkHAQQQQKC0BNSGq+3U\nZJuae0NfWd1SWDUqoXZPvaXUEyqfqS5tcXI56tL+04Yny/EagfgLMAFZ/K8RJcxCQIG00sorr1xr\nLmqo65u0/Ib+1Zbat29v7ml0YhcFuQp265MyfVlwT4erLKEVnmPkyJHhy7Q/1f06eemutDvW44NO\nnTqlPSrdTY60B/ABAggggEDZC6gND9vn2iaxVLuXqW1MhxW1DT/jjDOqZFHf82Vq/2nDqzDzBoHY\nCxBMx/4SUcC4Cygo3nHHHWstpoJFzU6qpMm36pp0rO7QaxyTZimtT8pURuWpidVICCCAAAIIVIpA\n1DZcHvVti7Np/8PrQBseSvATgXgJEEzH63pQmhIU6Nq1q+lfbemjjz6ys846y++iicM0U+kBBxyQ\nsrta9XwmT55sblyY796mSVkOO+ywej09HjBgQPWseY8AAggggEBFC0RpwwVU37ZY7b8mA1Wqa/vv\nD/rf/9CGJ2vwGoH4CDBmOj7XgpKUsYBmwQ7vTIfV1NPqTOtlal+NJ06e2qBp06ambmAkBBBAAAEE\nECiMQH3b4mza/8LUjLMggEA2AgTT2ehxLAIIIIAAAggggAACCCCAQEUKsM50RV52Ko0AAggggAAC\nCCCAAAIIIJCNAMF0NnociwACCCCAAAIIIIAAAgggUJECBNMVedmpNAIIIIAAAggggAACCCCAQDYC\nBNPZ6HEsAggggAACCCCAAAIIIIBARQoQTFfkZafSCCCAAAIIIIAAAggggAAC2QgQTGejx7EIIIAA\nAggggAACCCCAAAIVKUAwXZGXnUojgAACCCCAAAIIIIAAAghkI0AwnY0exyKAAAIIIIAAAggggAAC\nCFSkAMF0RV52Ko0AAggggAACCCCAAAIIIJCNAMF0NnociwACCCCAAAIIIIAAAgggUJECBNMVedmp\ndKkLzJ4927766qtSrwblRwABBBBAoKIEaL8r6nJT2QoQIJiugItMFctPYKeddrInnnii/CpGjRBA\nAAEEEChjAdrvMr64VK0iBQimK/KyU2kEEEAAAQQQQAABBBBAAIFsBAims9HjWAQQQAABBBBAAAEE\nEEAAgYoUIJiuyMtOpRFAAAEEEEAAAQQQQAABBLIRIJjORo9jEUAAAQQQQAABBBBAAAEEKlKAYLoi\nLzuVRgABBBBAAAEEEEAAAQQQyEaAYDobPY5FAAEEEEAAAQQQQAABBBCoSAGC6Yq87FQaAQQQQAAB\nBBBAAAEEEEAgGwGC6Wz0OBYBBBBAAAEEEEAAAQQQQKAiBQimK/KyU2kEEEAAAQQQQAABBBBAAIFs\nBAims9HjWAQQQAABBBBAAAEEEEAAgYoUIJiuyMtOpRFAAAEEEEAAAQQQQAABBLIRIJjORo9jEUAA\nAQQQQAABBBBAAAEEKlKAYLoiLzuVRgABBBBAAAEEEEAAAQQQyEaAYDobPY5FAAEEEEAAAQQQQAAB\nBBCoSAGC6Yq87FQaAQQQQAABBBBAAAEEEEAgGwGC6Wz0OBYBBBBAAAEEEEAAAQQQQKAiBQimK/Ky\nU2kEEEAAAQQQQAABBBBAAIFsBAims9HjWAQQQAABBBBAAAEEEEAAgYoUIJiuyMtOpRFAAAEEEEAA\nAQQQQAABBLIRIJjORo9jEUAAAQQQQAABBBBAAAEEKlKAYLoiLzuVRgABBBBAAAEEEEAAAQQQyEaA\nYDobPY5FAAEEEEAAAQQQQAABBBCoSAGC6Yq87FQaAQQQQAABBBBAAAEEEEAgGwGC6Wz0OBYBBBBA\nAAEEEEAAAQQQQKAiBQimK/KyU2kEEEAAAQQQQAABBBBAAIFsBAims9HjWAQQQAABBBBAAAEEEEAA\ngYoUIJiuyMtOpRFAAAEEEEAAAQQQQAABBLIRIJjORo9jEUAAAQQQQAABBBBAAAEEKlKAYLoiLzuV\nRgABBBBAAAEEEEAAAQQQyEaAYDobPY5FAAEEEEAAAQQQQAABBBCoSAGC6Yq87FQaAQQQQAABBBBA\nAAEEEEAgGwGC6Wz0OBYBBBBAAAEEEEAAAQQQQKAiBRoELlVkzak0AiUiMH78eJswYUKV0s6fP99W\nXXVVa9GiRWJ7586dbebMmYn3vEAAAQQQQACB4gnQfhfPnjMjUCiBxoU6EedBAIH6CSxevNjmzZtX\n4+CFCxdW2cZ9sSocvEEAAQQQQKCoArTfReXn5AgURIBu3gVh5iQI1F9g8ODBGQ9u3LixDRs2LON+\n7IAAAggggAAChRGg/S6MM2dBoJgCdPMupj7nRiCiQLdu3WzOnDlW29PnBQsWWMeOHSPmyG4IIIAA\nAgggkG8B2u98C5M/AsUV4Ml0cf05OwKRBA466CBr2DD1/64NGjSw7t27E0hHkmQnBBBAAAEECidA\n+104a86EQDEEUn87L0ZJOCcCCKQVGDhwoC1dujTl5wqyhw4dmvIzNiKAAAIIIIBA8QRov4tnz5kR\nKIQAwXQhlDkHAlkKaObuHj16pHw6ra7fAwYMyPIMHI4AAggggAACuRag/c61KPkhEC8Bgul4XQ9K\ng0BagVRPnxs1amQ9e/a0tm3bpj2ODxBAAAEEEECgeAK038Wz58wI5FuAYDrfwuSPQI4E+vfvX+PJ\ntLp+p2qkc3RKskEAAQQQQACBLAVov7ME5HAEYixAMB3ji0PREEgWaNWqle2+++6mp9FhatKkifXr\n1y98y08EEEAAAQQQiJkA7XfMLgjFQSCHAgTTOcQkKwTyLTBkyJDERGRaW7pv377WsmXLfJ+W/BFA\nAAEEEEAgCwHa7yzwOBSBGAsQTMf44lA0BKoL9OnTx5Zddlm/ecmSJabGmYQAAggggAAC8Rag/Y73\n9aF0CNRXgGC6vnIch0ARBJo1a2Yae6XUvHlz6927dxFKwSkRQAABBBBAoC4CtN910WJfBEpHoHHp\nFJWSIlBYgc8//9yefvrpwp40wtk6derk99p8881t+vTpEY4o/i7qkr7XXnvVmECt+CWjBAgggAAC\n5STw0EMP2eLFi2NZpVJsvwX5119/2UYbbWRdu3aNpSuFQqCYAg3cGrVBMQvAuRGIo8CCBQtshx12\nsI8++iiOxSvJMr344oumGwAkBBBAAAEE8iEwatQoGzt2bD6yrvg8N9xwQ3v99dcr3gEABKoL0M27\nugjvK14gDKRXWGEFW7Rokel+E//qZ3DCCScknkbrzjYJAQQQQACBfAgokB43bpxNnjyZNjtH31s+\n/PBD09P0tm3bJuZryce1I08ESlmAYLqUrx5lz7lAciD9yCOPWOvWrXN+jkrJ8MQTT7QrrrjCrrzy\nykqpMvVEAAEEECiCQBhIT5o0yfbff/8ilKD8Tqmeeeqht9JKK/m5WrQUJwkBBGoKEEzXNGFLhQoQ\nSOfuwoeB9K233urHSucuZ3JCAAEEEEDg/wQIpP/PIlevkgNpPVgIVxHJVf7kg0A5CRBMl9PVpC71\nFggD6VatWhlPpOvN6A9MDqQHDRqUXWYcjQACCCCAQBoBAuk0MFlsrh5I68k0CQEE0gswm3d6Gz6p\nIIFdd93V1IAotWnTxv/kP/UTWGWVVUxPpAmk6+fHUQgggAACmQVuv/32xGRjBxxwgOkfKXuB1VZb\nzVZccUX/YIFAOntPcih/AYLp8r/G1DCCwI8//mhDhw61Pn36RNibXdIJzJgxw2bNmkUgnQ6I7Qgg\ngAACORH48ssv/bwm1157bU7yI5P/CowYMcIOPfRQP1YaEwQQyCxAMJ3ZiD0qQKBhw4a2ySab2IAB\nAyqgtvmr4ieffGKPPvpo/k5AzggggAACCPyvQNOmTWm3c/zbcNxxx1mjRo1ynCvZIVC+AoyZLt9r\nS80QQAABBBBAAAEEEEAAAQTyJEAwnSdYskUAAQQQQAABBBBAAAEEEChfAYLp8r221AwBBBBAAAEE\nEEAAAQQQQCBPAgTTeYIlWwQQQAABBBBAAAEEEEAAgfIVIJgu32tLzRBAAAEEEEAAAQQQQAABBPIk\nQDCdJ1iyRQABBBBAAAEEEEAAAQQQKF8BgunyvbbUDAEEEEAAAQQQQAABBBBAIE8CBNN5giVbBBBA\nAAEEEEAAAQQQQACB8hUgmC7fa0vNEEAAAQQQQAABBBBAAAEE8iRAMJ0nWLJFAAEEEEAAAQQQQAAB\nBBAoXwGC6fK9ttQMAQQQQAABBBBAAAEEEEAgTwIE03mCJdvKFPjpp5/svvvus9GjR9cZYOrUqfbi\niy/W+bioB1x22WV2zTXXRN2d/RBAAAEEEChrgbffftvGjh1rs2bN8vWkDS/ry03lEMiLAMF0XljJ\ntFIF7rzzThs+fLjddtttdSJ4+eWXbciQIfbqq6/W6bi67HzTTTfZpEmT6nII+yKAAAIIIFCWAu+/\n/75dd911NmrUKPvkk098HWnDy/JSUykE8ipAMJ1XXjKvNIFhw4bZZpttVqdq//zzz3buuefan3/+\nWafj6rrzCy+8YI899lhdD2N/BBBAAAEEyk5grbXWsiOOOMLXq3Hjxv4nbXjZXWYqhEDeBQim807M\nCSpNoFGjRtagQYPI1T7ttNPsjDPOiLx/fXds3ry5NWvWrL6HcxwCCCCAAAJlJdCw4X+/Boc/VTna\n8LK6xFQGgbwL/PdWXN5PwwkQKC+Br776ymbOnGn6qbvbm266qa255po1Kvnss8/aQw89ZBtttJHt\ns88+NT6/5557rEuXLrb++uvX+CzqBnVPmz59uo0YMcKeeOIJf7727dvboYceWiV4VllnzJhhhxxy\niM96yZIlNnv2bFOQvfbaa/ux3h988IHtvffe1r179yqn/+yzz+zBBx/0XeG22WYb69WrV5XPeYMA\nAggggEApCDz55JP2+OOPW9OmTX3brTKnuwFOG14KV5QyIlBcAYLp4vpz9hIU+P7772333Xf3jbGe\n9B544IG+FsnB9O+//259+/a1IAhMAep5553nx0TfcsstiRorQL377rtN2xYvXpzYXpcXkydPtmOO\nOcZ+++03e+ONN+yPP/6wL774wi6++GKf79NPP226465zHHvssbbccsv5YFoB+D/+8Q9//j333NP+\n+usv69Spkym4v/TSS+32229PBP/qGq4x4ArWW7Zsaf369bOhQ4fa1VdfXZeisi8CCCCAAAJFFVAv\nMN1Yvvzyy23RokW+XVaBqgfTtOFFvUycHIHSEnBf9kkIVLxAhw4dAjfbdSSH8ePHBz169Ejs64Ll\nYMqUKYn3e+yxR7DMMssE77zzjt+2dOnSYK+99grcX4bggQceSGwbPHhw4AJf//6HH37wn1977bWJ\nfKK+cBOXBe6LQPDmm28mDjnrrLN8fhMmTEhs69+/f7DKKqsk3s+fP9/vM2DAgMQ2ladt27aBPNwY\n7uDHH38M3E2CwM1wmtjHPfH2xz333HOJbeELGerY5PTxxx+n3T95P14jgAACCCAQVcAFxEG7du2i\n7u7bX9eFO1B7G6abb77Zt0+04aFI4E1lm5zczfdg6623Tt7EawQQ+F8BxkyX1r0PShsDgXXXXdd3\np9bs219//bWtscYa5gLVKiVTt+111lnHb9Mdbz3VVVLXcKVx48aZC6bNBbf+fTb/UTdtTZ6S3FX8\n1FNP9dvUnS1M6tKWnHSc0iabbJLYrPIcdthhvjv3hx9+6J9I//rrr3byySfbUUcd5f/pybe6trtg\nPHEcLxBAAAEEEIizwEUXXWTdunWz5ZdfPlHMLbbYwr+u/mSaNjxBxAsEEMggQDfvDEB8jEB1gZ49\n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\nQAABBEpNgGC61K4Y5UUAAQQQQAABBBBAAAEEECi6AMF00S8BBUAAAQQQQAABBBBAAAEEECg1gcal\nVmDKi0B1gYULF9rMmTPtlVdesRtuuKH6x0V//9prr9l9991nP/30k3Xr1s169eplDz30kA0ZMqQo\nZfvzzz/tySeftBkzZtjOO+9su+++e87K8eqrr9pLL71kb7/9tq222mq20UYbWc+ePa1p06Y5OUc+\ny56TApIJAggggEBKgTi21d999509+OCDNcrbqlUrW2WVVWzttde25ZdfvsbnpbpBbbO+L2288ca+\n/c9Uj++//94ee+wxe+ONN2zx4sW2wQYb2NZbb21dunTJdGjkz+P4exG58OyIgBPgyTS/BiUtoAD1\nmWeesfPPPz9lg1jsyk2aNMm23357W2mllWzPPfe0F1980bp27WojR44sWtHUKE6dOtUuv/xy++yz\nz3JSjq+//tr2339/GzRokLVu3dqOP/5422qrrUz132STTfw1ysWJ8lH2XJSLPBBAAAEE0gvEta1e\nYYUVfJt81lln+TZsypQpppu2c+bMsSuuuMI6duxovXv3tueffz595Urkk/fff9+uu+46GzVqlH3y\nyScZS33nnXd6m6eeesp22203GzFihC1dutR/pznppJPsl19+yZhHph3i+nuRqdx8jkAVgYCEQBkI\n7L333kH79u1jVZPffvstaNmyZXDYYYdVKde8efMCd9c7+PHHH6tsL+SbuXPnBu4PQXD99ddnfdpf\nf/01WHfddYP1118/+Pbbb2vk5xrdoGHDhsHTTz9d47MoG26++eYqu9W37F999VXw73//u0pevEEA\nAQQQKJxAHNtq1f7QQw/1beIdd9xRBePTTz8N9tlnn6BZs2bB3XffXeWzUnyj7x9q+92N7lqLP3Hi\nRL/f//t//6/GfgsWLAjcA4Jg1113rfFZlA3V23QdU9/fi1R5RSkD+yCQSwGeTFe5tcCbUhVo3Lix\nNWjQIFbF/+CDD8wFzKZuUslpvfXWs8MPPzxnT4WT8476Wl5KuTA788wz7Z133rFzzz3XVlxxxRpF\nOPvss013/w8++GBzgXeNz2vboO5lp59+epVd6lP2v/76yz91+Oijj6rkxdamT6wAABKKSURBVBsE\nEEAAgcIJxLGtVu3TdeVu166dTZ482dZZZx3bd9997bbbbiscVh7O5G5s+1zDn6lOoafWxx13nO/S\n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\nQAISkMA8BP4BHOQ4UBycDQsAAAAASUVORK5CYII=\n" - } - ], - "prompt_number": 42 - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Modifying the topology of the loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us make a new branch and replace the exisiting branch \n", - "\n", - "The existing branch name is \"sb0\" and it contains a single pipe component sb0_pipe.\n", - "\n", - "Let us replace it with a branch that has a chiller that is connected to a pipe which is turn connected to another pipe. So the connections in the new branch would look like \"chiller-> pipe1->pipe2\"" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# make a new branch chiller->pipe1-> pipe2\n", - "\n", - "# make a new pipe component\n", - "pipe1 = idf.newidfobject(\"PIPE:ADIABATIC\", 'np1')\n", - "\n", - "# make a new chiller\n", - "chiller = idf.newidfobject(\"Chiller:Electric\".upper(), 'Central_Chiller')\n", - "\n", - "# make another pipe component\n", - "pipe2 = idf.newidfobject(\"PIPE:ADIABATIC\", 'np2')\n", - "\n", - "# get the loop we are trying to modify\n", - "loop = idf.getobject('PLANTLOOP', 'p_loop') # args are (key, name)\n", - "# get the branch we are trying to modify\n", - "branch = idf.getobject('BRANCH', 'sb0') # args are (key, name)\n", - "listofcomponents = [chiller, pipe1, pipe2] # the new components are connected in this order\n", - "\n", - "newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')\n", - "# in \"loop\"\n", - "# this replaces the components in \"branch\" with the components in \"listofcomponents\"\n", - "\n", - "idf.saveas(\"hhh_new.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 43 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have saved this as file \"hhh_new.idf\". \n", - "Let us draw the diagram of this file. (run this from eppy/eppy folder)" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "python ex_loopdiagram.py hhh_new.idf\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", - "for_images = ex_inits\n", - "for_images.display_png(for_images.plantloop2) # display the image below\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAA1AAAAV7CAYAAAAooE7+AABAAElEQVR4AezdB7zUxPr/8Yemgig2\n7AL2LvZeEa/S7Niw8MOGBTv23q7tqlfsXREL2BWvBVTsBbGDBRWwYVfsjfznO/efvTl79uxmz9mS\n7H7m9dLdzU4mM+8cJvskk0mrwCUjIYAAAggggAACCCCAAAIIFBRoXTAHGRBAAAEEEEAAAQQQQAAB\nBLwAARR/CAgggAACCCCAAAIIIIBATAECqJhQZEMAAQQQQAABBBBAAAEECKD4G0AAAQQQQAABBBBA\nAAEEYgoQQMWEIhsCCCCAAAIIIIAAAgggQADF3wACCCCAAAIIIIAAAgggEFOAAComFNkQQAABBBBA\nAAEEEEAAAQIo/gYQQAABBBBAAAEEEEAAgZgCBFAxociGAAIIIIAAAggggAACCBBA8TeAAAIIIIAA\nAggggAACCMQUIICKCUU2BBBAAAEEEEAAAQQQQIAAir8BBBBAAAEEEEAAAQQQQCCmAAFUTCiyIYAA\nAggggAACCCCAAAIEUPwNIIAAAggggAACCCCAAAIxBQigYkKRDQEEEEAAAQQQQAABBBAggOJvAAEE\nEEAAAQQQQAABBBCIKUAAFROKbAgggAACCCCAAAIIIIAAARR/AwgggAACCCCAAAIIIIBATAECqJhQ\nZEMAAQQQQAABBBBAAAEECKD4G0AAAQQQQAABBBBAAAEEYgoQQMWEIhsCCCCAAAIIIIAAAgggQADF\n3wACCCCAAAIIIIAAAgggEFOgbcx8ZEMgdQJ//vmnPfXUU/bggw/aFltsYb17905UG/744w8bPny4\nvfnmm7bYYovZhhtuaHPPPbd98803tt5661W8rqX0+u677+zhhx9u1Aa1UW0tlEpZl0Lb4nsEEKie\nwLRp02z06NH2yiuv2LXXXlu9ikS23FT/1alTJ1tggQVs6aWXtjnnnDOyRnrf/vTTT/bEE0/YM888\nY+eee27Ohug4+umnnzb4bq655rJevXo1WNbUhyTu46bqynIE4gpwBSquFPlSJ6DAZOTIkXbxxRfb\nZ599lqj6//LLL7b22mvbqFGjrF+/fjbvvPPacccdZ8suu6w9//zzValrKb0UCPbo0cOuvvpq2223\n3ez000+3DTbYwBZddNFYbStlXWJtkEwIIFBxAf14f/bZZ+3MM8/MecKl4hX6/xtUcLDCCivYSSed\n5PuvW2+91XRS59VXX7V///vf1qVLFx88vPDCC9WqYsm2qxNdhxxyiN1+++1Nlrnuuuta+/btvYX6\n86+//to23XTTJvNHv0jqPo7WkfcINEeAAKo5aqyTCoHVV1/dDjrooETWVQdhBQk647r55pvbwIED\n7fHHH7d99923asFeqb10pnbrrbf2/v/4xz/8j45WrVrF2h8tqctXX32VqB9jsRpMJgTqUKBjx462\n66672jrrrJOo1quf6t69eyZI2GOPPWzPPfe0E044wW6++WabOHGizT777P4k0T333JOouhdbmR13\n3NGfzGvbtukBSbPMMotts802psBSaffdd/cBVZxttXQfy5uEQBIFCKCSuFeoU8kEwoNC3B/uJdtw\ngYJee+01mzlzps2YMaNBznPOOccP4WuwsIIfSu2lIS9K4WsxTWlOXf7++29/lnTKlCnFbIq8CCBQ\nRQH9W09aHy2OpobpLbzwwjZixAg/YkAByG233VZFvZZvunXr1qb/8iXtnznmmMNnaW5/Xuw+1tDC\n448/Pl+1+A6Bqgk0fcqhalViw/Uu8Ndff9nYsWP9GT6NNb/vvvvsww8/tO22265kZyp//PFHe+ih\nh2zSpEn+nhxdIcl1b86ECRPs6aefNg2501UR5YseBD755BO7//777YADDrBx48bZI488Yosssojt\nvffeec/QqRwNL9xrr71MZzDDoW3zzDOPHXHEEf5P4IEHHrAPPvjAdAZvn332MdVZZ+M0lGShhRay\nnXfe2eeL69Wcuup+LNVDSe1eZZVVbLXVVrOff/7Z7r33Xl+XzTbbzLp27erzxPmf6qsDow7YutdL\n5b/77ru2yy672DLLLFOwCA3H1LATtUfDAnUFT+n333+3AQMG2JgxY2z++ef39dUVMFmREECgtALN\n6U+KrUGh/lflFerL4/aPxdZt1lln9UOUNRT7+uuv91fSwjKa6qP0/a+//uqPaeqbvvzyS38cUkCm\nodxt2rSxL774wh9T1D/279+/QRCndZ988kmTi/LqypiON2H6+OOP7e6777YhQ4b4q2Q6dmq4ofrF\naID07bff2p133mk60bTmmmtaEAQNjmtheXFey9Wf6xihq1467lx11VUWGsWpE3kQqIiA+4dDQiAx\nAu4AEGy//faB++MP3AEm6NOnT3DggQcG7kdw4M5SBq7TL6qub7/9ti/LDZXLrOeu/gQrr7xycNdd\n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\nStnB09xzz12lmrBZBBColgDBU3nkCZ7K40qptSfALHy1t09rrkWarSicMEJDCvQfqX4FFl54YZtn\nnnlMV54Inur374CW17fAgAEDMhNGLL744vWNUcLW657SIUOG+PuMS1gsRSFQcwIEUDW3S2uvQV98\n8YXNNddcdvXVV9de42hR0QL77befHX300QRPRcuxAgK1I6Apy3v37m0DBw6snUZVuSXvvvuunXTS\nScy2V+X9wObTIUAAlY79VPe11AxA/fv3r3sHAMwOPvhgPzMUFgggUL8CrVu3tqWXXprjQgn/BJ57\n7jkfQJWwSIpCoGYFuAeqZnctDUMAAQQQQAABBBBAAIFSCxBAlVqU8hBAAAEEEEAAAQQQQKBmBQig\nanbX0jAEEEAAAQQQQAABBBAotQABVKlFKQ8BBBBAAAEEEEAAAQRqVoAAqmZ3LQ1DAAEEEEAAAQQQ\nQACBUgsQQJValPIQQAABBBBAAAEEEECgZgUIoGp219IwBBBAAAEEEEAAAQQQKLUAAVSpRSkPAQQQ\nQAABBBBAAAEEalaAAKpmdy0NQwABBBBAAAEEEEAAgVILEECVWpTyEEAAAQQQQAABBBBAoGYFCKBq\ndtfSMAQQQAABBBBAAAEEECi1AAFUqUUpL1ECv//+u7344ot29dVX23HHHWdXXHGFPfnkk/brr7/a\niBEjElXXaGX+/PNPGzt2rB1++OH20EMPRb8q6n2c9v/yyy/2wAMP2PHHH1+w7AsvvNAuv/zyTL5p\n06Z503322SezrFR1zxTIGwQQQKAMApMmTbILLrjAHnvsMV/622+/beeff749++yzBbemvvXRRx+1\n8847z5577jmbOXNmwXWam+HDDz+0QYMG2SeffNLcIlgPAQRKLEAAVWJQikuOwEsvvWSrrLKKHXLI\nIRYEgW299dY255xzmoKA2Wef3Q444IDkVDarJm+++aaNHDnSLr74Yvvss8+yvo33MW77H3nkERsy\nZIgNHz68YMHXX3+93XzzzT7fTz/95H9onHnmmfbwww9n1i1F3TOF8QYBBBAog8AHH3xgV111lQ0d\nOtQHJu+9957985//tKOPPto+/vjjvFv88ssvbfnllzedQFJgc++99/rjS7mCqAkTJtgNN9xg6ltJ\nCCCQDAECqGTsB2pRYoFbb73VNthgA1tzzTXtqaeesv3339/WW289GzBggN1///3+apSuvJQ6ffXV\nVw2CieaWv/rqq9tBBx3U3NWtmPZvt912tvHGG8falq7mPfHEEz5vx44dbdddd7V11lmnwbotrXuD\nwviAAAIIlEFgySWX9McFFd22bVtbZpll/ImkQptSkLTDDjvYyiuvbLryPt988/nA66233op1Fb9Q\n+bm+33HHHU3Hll69euX6mmUIIFAFAQKoKqCzyfIK6OzgwQcf7K82acjerLPO2miDp556qi266KKm\nYRilSn///bfttttuNmXKlJIUqYO6UqtWrYoqrzntb9OmTaxt6Mpd+/btG+RVPbPr2Ny6NyiYDwgg\ngEAZBVq3/u9PoPA17Aez+7NoFXRC7plnnrF99903s1jr7bXXXnbppZfazz//nFleyjcK1EgIIJAc\ngf/+QktOfagJAi0W0JCy7777zk488UQfROUqsF27dn54XHTIhYbKaSiaxpnr6tXmm2+eWVVDOu6+\n+25/hnLixIl23333WZcuXfwVLR18FYjp6taYMWNs/vnn9wGFhgwutNBCfnz8H3/84Yd83HTTTbbp\nppva2muv7cvWsJEXXnjB3njjDb9NXQ1qaWpu+7VdDXXU0D8N69MZWgWE0R8TCs4efPBBP2ylOfXM\nZ6zydC9BU1bN2R7rIIAAAlEBBUC6D1Yn1nS1XCnax4V5v/32Wxs1apTNmDHD+vfvb926dfNf3XPP\nPf5VV6CiaaWVVvLBk+5ZVf446a+//vL3uurE1NJLL+2PK7rfSceB6JV9HafGjRtnuuq/1lpr+aJ1\nnNJoCg1F13fqsxdZZBHbe++9G53k0nFJowfmnntu23nnnW3eeeeNUz3yIIBAHgGuQOXB4at0CuhA\nobTqqqvmbcC2226bOdBoWJquSq222mo+0NF34RA6TbCwxhpr2GGHHWaXXHKJv4dKQc+ee+5p5557\nrt/Gb7/9ZltttZV/r4PYsssu64dc9OnTxwdGOuhqGOFpp51m55xzjs+n+5u0bI899vBXzI444gg/\nIUPeSsf4sjntV7G6gqZ7oa655hrTmPvdd9/dzj77bL9FfXfjjTfaUkst1exhKvmMp06davmsYjSb\nLAgggEBegRNOOMHf63nkkUfaLrvsYqeffrrPnx1AjR492p9AU4CiPluB1ssvv+zzvv/++/5VJ8ei\nSSfOlHRSLE5SAKRgRscNTVyhwOf111/395huuOGGdtddd/lidMJO+Xr06GGvvPKKX6YJkHR/71FH\n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\nEEAAAQQQQAABBBBAoAYECKBqYCfSBAQQQAABBBBAAAEEEKiMAAFUZZzZCgIIIIAAAggggAACCNSA\nAAFUDexEmoAAAggggAACCCCAAAKVESCAqowzW0EAAQQQQAABBBBAAIEaECCAqoGdSBMQQAABBBBA\nAAEEEECgMgIEUJVxZisIIIAAAggggAACCCBQAwIEUDWwE2kCAggggAACCCCAAAIIVEaAAKoyzmwF\nAQQQQAABBBBAAAEEakCAAKoGdiJNQAABBBBAAAEEEEAAgcoIEEBVxpmtIIAAAggggAACCCCAQA0I\nEEDVwE6kCQgggAACCCCAAAIIIFAZAQKoyjizFQQQQAABBBBAAAEEEKgBAQKoGtiJNAEBBBBAAAEE\nEEAAAQQqI0AAVRlntoIAAggggAACCCCAAAI1INDmVJdqoB00oQoCH3/8sT355JM2atQoe+aZZ2z6\n9OnWoUMH++GHH+ytt96yLl26VKFWhTc5bdo0u/XWW+2qq66yrbfeuvAKTeSI0/533nnHbrzxRvvt\nt99s8cUXb6Iksw8//NCOPPJIW2ONNWzOOee0P//809sOGzbMZs6caUsvvbRft1R1b7IiFfxCfy/j\nx4+3bt26VXCr8TY1adIku+mmm+znn3+2JZdcMt5K5EIAgZIIZP/7++mnn+w///mP3XHHHbbpppvm\n3cbvv/9ujz/+uN11113WqlUrW2SRRfxr3pWa+WV2v93MYhK5WlPHoERWlkohUAUBrkBVAT3tm/zj\njz9s6NChtswyy9izzz5rq6++uq2//vo+CFAAsMQSS9hLL72UyGbqQKw6n3nmmfbwww83q45x2//p\np5/aJZdc4q0++uijvNuaMGGC3XDDDfbmm2/6fHodOXKkXXzxxfbZZ5/5ZaWoe95KVOjLr776yo46\n6ij/d3LPPfdUaKvxN/PBBx/44Fp/45988kn8FcmJAAItFsj17+/OO++0ffbZx2677ba85X/55Ze2\n/PLLm040DRo0yO69915/kkwnocqRsvvtcmyjWmXmOgZVqy5sF4FECgQkBIoQ+PXXXwMXMAWdOnUK\nnn766UZrTp48OVhsscWCM844o9F3LV3grgi0tIjM+tttt13gzkxmPsd9U2z73Y+BwP3DD6699tqC\nm3CBRYM8r7/+ul/3mmuuabC8uXVvUEgVP7jgOgjbdsghh1SxJk1veuLEid7+5ptvbjoT3yCAQFkE\ncv3722qrrYJll122ye39/fffwYYbbhi4UQWZPH/99VfQtWvX4JhjjsksK/Wb7H671OVXsrzsY2zY\nT2cfgwrVyQWygbtiWCgb3yOQagGuQCUyrE1upXTlRmfddHbeHawaVVTDnU466SQ/9KnRly1Y8MQT\nT9jxxx/fghIartq2bdtmDesotv1t2rRpuOE8n+abb74G36qOShqGEk3NrXu0jGq+X2uttWy55Zar\nZhUKbrt16/92jeFrwRXIgAACJRMI/92FrypYfWl2Xxjd4FNPPeWHku+7776ZxVpnr732sksvvbTk\nx6RwI9n9drg8ba+5jrFNHYPytc0FsrbbbrvZlClT8mXjOwRSL/DfX2ipbwYNqISA7lk577zz/H1O\n7spBk5vUAev+++9v8P2YMWPsxRdftLnnntt23nlnm3feef337gyhqePWgXK99dazBx54wN59913b\nZZdd/BBBZdL322yzjT946r6lhRde2Pr162ffffedH9Jx4IEH+vHxb7zxhr+PSJ2+u1Lk7yFSsKeD\n6B577OHHwjeoVJEfWtJ+berbb7/17dOwsP79+2fap+80xGTcuHHWsWNHU4DRnNSUscrKZ1VoW3H2\nkfKMHTvWZp99dn+/1n333eeHdLqrZbbOOusU2kTR38epU1jojz/+aA899JDpvgp3ddT+8Y9/+Nfw\n+/BVP8B0T9+ss87qh6VqefYPtnzGYTm8IoBA8QJx/v2FpT733HP2yCOP2CqrrGI77LCDXxwOB155\n5ZXDbP51pZVW8sGT+gD1u3GT+mkdxw444ADfN2t7up9q7733tvbt2/ticvXbxfSFpehP8vVvn3/+\nud19993+ntotttjCVlxxRX88dVeWfP233357f69yU8fYfFa56q77zwYMGGD6bv755/f9p+4zXmih\nhfIVxXcIpFKAK1Cp3G3VqfSrr77qO2Ld4zTHHHM0WYlZZpnFdtxxR/+97hfSGcGvv/7a+vbt6ztv\nXX1wQzT8j3oFNvpBq/t/lO/555+3yy+/3N8orIBDSUGXDpT6YeuGcPgfv7rBf9FFF7VDDz3Un108\n7rjj7Nhjj/Xl6l4hTbqgg5yW6YC2wQYb+KDKF9jM/zWn/eGmFDwqcNTkGjobuvHGG9s333zjv5aF\nvuvRo4e98sor4SqxX/MZq5B8VoU2osCr0D7SDw3V3w2xsfPPP9//wNAB2g1/81cpdTN3KVOcOoXb\nUz2079u1a2cHHXSQff/997bCCiv4uoV59HrCCSfY8OHDfQCu4P3000/3X4cBVCHjaFm8RwCB4gQK\n/fsLS9MPdJ08O/vss/3kRTrOqH9Sev/99/1r9o91/ZBXeu+99/xrnP+NGDHCH3N0r6ZO0Klv0Am6\nIUOG+GOTJljI1W/H7QtL1Z8U6t9kofYffvjh9sILL/imb7bZZjZjxgy/TJMcKeU6xvovcvwvX901\nWZKOA0oKNnW8DoPNHEWxCIF0C6R6ACKVr6iAu/rk7wtxB7DY273ggguCU045JZPfzVzny9hyyy39\nMt1T5P4FBa5TD9xByS9zZ/38Mnc1KrPetttu6++tyixwb9yZLp/PnWHzi90VBv96yy23BO6KVuCu\nGPnPr732ms+ne2/C5M5EBi4ACz/Gem1O+90wBr/t//u//8tsQ+1Sm6Ptcwdnv+yKK67I5Hv77bf9\nsuz7p7LrXshYBTZlldlYnjdx9pHufVObVLcwyb9z587eOdy34Xfuh5DP39x7oOLUSdtwwXpw8skn\nh5v1r254SeCC/EC+Su7MdOCuUgZu9kj/Wf/TvQBqj5ut0S+LY5xZmTcIIBBbIM6/PxXWp08f/+/W\n/ej3ZburP4EbmeD/naoM3Zurf8fZSf2+/i27EyjZX+X9vPvuuwfuBErgTnpl8rnh6b6sK6+80i/L\n1W/H6QtL0Z/E7d9Uf7U/ehwJj7HuqlqmbbmOsbmOQYXqHh5vr7vuukzZvEGgFgUYwud6FlI8gXA8\ntMY4x00XXnihrbnmmv7sf7iOzkqFV5dmm202f5lf906F5esKgZJmUoqm8GpAuExD+ZQ0vE8pvK9m\n11139UOwFlhgAT99uIbGKekMZXOHx2n9sH7FtF/rKXXv3v2/b9z/NaRESbNNhUlX15qbChmr3Kas\n4mwzzj7S0D2lVVddNVOk/HVVUWeLNQthOBV7JkML3sSpk2ZZ1BnWddddt8GWXPDup7F3B3j717/+\nZf/85z8z08eHGddee23/Nvybi2McrssrAgjEF4jz7y8sTUPQdPxQ0r9NDa/TcOHRo0f74c9hvuhr\n2F8vuOCC0cUF36tPU5+vbYZJIxpUXw033H///f2oiPC78DVOX1iK/iRu/xbWK85r2N/lyxu37nHK\nyrcdvkMg6QIEUEnfQwmqX3ggCYdKFKqahktpCm5NP6thF3GT7llScmcsGqyS3SGHNxiHr2FmfdaP\nd3flwfRDOwya4ljTFAAAQABJREFUWjqVbbHtD+uT/dqSQCy7rLjGoVH4ml1OsZ+b2kfZ5WiqeyVN\nXV7KACp7O/qcXScNsVHSfWXRtNFGG/mPuidKScNgwiGnfoH7X/RvLa5xuC6vCCAQX6DQv798Jenk\niPo0HWd0f6OCJQ3zi56Q0j1CSuGJuXzlFfpOzznU0HH1Z8WmsC/Us6Oac1zM3l7c/i17vXyfo/1e\nrnzF9IWFyspVPssQSJMA90ClaW9Vua56xpN+jOoAEL160lS1wh/r4bONmsoXd3ncDllXO1ZbbTXT\nVQTN3OemsY27ibz5im1/3sJK9GWpjUtUrUwxU6dO9e9131yl0zzzzOM3qfvqokl/D7onSuP+dX/c\nL7/84ic4ieYJ3+tvLunGYV15RSBtAnH+/eVrkx46rmOS+hc9/0lJDziPJt1/q1SKAErBmSYTak5/\nlt0XtvS4GKd/izrEeV/oGFtMX1iorDj1IQ8CSRYggEry3klY3TRz3mmnnebP8h199NF5a+fGQZsO\nbosvvri5+3oaTeDg7lNqNEQvX4HqjMOhGPny6btTTz3VT3ahSSuUWnrlyRfi/lds+8P1yvlaSuNy\n1PPxxx/3w+OKHT5TirqEs/9puE00aSIP3QSuWR91NVA/vNxYf/viiy+i2TLvk26cqShvEEiZQJx/\nf/mapIl9NCFCr169/OQ1uvKkB6VHkybm0dDi8ApQ9Lti3+tkjCZKCI8txawf9oW6El+K42Kc/k31\nC0c8qN75UpxjbJy+MAyc4h6v89WJ7xBIsgABVJL3TgLrpunLd9ppJz81qu5v0XTh0aSzbPvtt5+F\nwyb0vCjNTKQZ5jRFtA54blIJczfs++lTNWOehuppZp8whWcMo2VrNiGd+Quvfv3888+Z53qEs9mF\n6+s7Td+qaWtVlmb1U9KwCQ1BUNL2lS97mKD/Ms//im1/WLfwVUWH93+Fr1qmM5tKYdv1XnVUklE0\nZde9kLHWVVuVovXwC2L8L+4+UlHRs6qffvqpvfzyy3buuec22opm0lMqdFBvtOL/XxCnTrrvTFPq\nK4CK3k/3zDPP+OGE+jtVcg/Z9K+aYUv7QQH3HXfc4Zcpr8ziGPsV+B8CCBQlEOffX1ig/t1HT4iN\nGjXKzwC6+eabm07SHHzwwX4m0LBfV/+iR2Pofsfw6klYVpxXXSELh/oqv2YU3WSTTTIBVK5+Oyw3\nX19Yiv4kbv+mwLFbt252++23m47Pui9Ubko6HoeeuY6xuY5BheoezoKoYFP7QbMXkhCoSQH3B05C\noGgBN61r0KVLl8Dda+Sf/D5o0KDAddSBC66CcJYkFeo658BNMR64s2B+JiC9uhtxA3d2KnAHw0Cz\nsLl/WIE7+PlZ6dyP7sA9O8gvcweIYPz48b5u7jkVvoy55poruOSSS/yMQm6aVJ9P23TThGfa4J4R\n4p8+785G+rLcj+fADb8L3JCt4Oqrrw4uuuiiwE2t6tfVDG3uykNm3bhv4rTfBY5+Vjq1T7PBueck\nBaqL6qtl7mbowB1kAje9bODuwfHL3AQTwYMPPujbo5kKlc8NR/QzxWnmuVx1z2es9mj2paasCrU3\n7j5yAauvq/txEbjnpPh9LnP3g6PRJjRjlpv23Od3U+wGesq91o+b4tZJ5clMs2+5+9eCG2+80Vto\nNi/th2hy068H7v6GwN0zF7hJTwLNNOWuOPp13bPE8v4dR8vhPQIIFC9Q6N+fSnz00Ud9X9izZ8/A\njTII3CQOwYknnpiZvVV51Be6gCxwV4j8cULHHvc4BX1VdFL5mtXPBWWBCxoC93iDQDPQuitevqxc\n/ba+iNMXFuqz41Y2bv+mY4COnW64Y+AmWQrcxEp+dtTDDjsscM9d9JvLPsbqmJp9DFLGOHV3Aa3v\n3zW7rgva4jaHfAikSqCVaut+pJEQaJaAriRoSJTuKdGZrnBcdnZhupqkq0cauqAbcZuTdDZMZxHz\nPYMqLNd18v7qWDgjkv7MNWxLz6gqZYrb/lJus6mySmHcVNmFluvqoM48nnXWWeYOyn44nM56hsM5\nCq1f7u/1t6Nhei7o9zeB59qezjarHbpJXH8r+pvJ/nuppnGuOrMMgVoRiPPvT23Vv0FdqdekEU0l\nDR9THk0m1Nw0ePBgu/766/3oCN1X1alTJz8svVB5xfSFpepP4vRvuhqnfk3HT71q0p3sq3LFHGPz\n1V19p0Z86FlQJARqVYAAqlb3LO0qSkAPSyyUNOQrOk13ofxJ/76UbY7+aNDEHc1Nmo5Y/+VLOijr\nwZskBBBAoBiBYvqXaABVzDZK0ReWsm8upu7kRQCB+AJMYx7fipw1LKCnsxdK7qGwhbKk6vtStlkz\n2SmF95g1F0JXKAvVS2eCSQgggECxAsX0L+rTdFVM911lPwoh33ZL0RcW6gO1/Vo7HuUz5TsEkijA\nFagk7hXqhECKBKZMmWInnXSSaWZFTe/r7kuwAQMGNBr+lqImUVUEEKhjgREjRtiRRx7phyLrapAm\nTIoz+oC+sI7/aGh63QkQQNXdLqfBCJRWQDMohmddw5J1lSgp9z+FdeIVAQQQiCOge4Git4drenQ3\n8VDBVekLCxKRAYGaESCAqpldSUMQQAABBBBAAAEEEECg3AI8B6rcwpSPAAIIIIAAAggggAACNSNA\nAFUzu5KGIIAAAggggAACCCCAQLkFCKDKLUz5CCCAAAIIIIAAAgggUDMCBFA1sytpCAIIIIAAAggg\ngAACCJRbgACq3MKUjwACCCCAAAIIIIAAAjUjQABVM7uShiCAAAIIIIAAAggggEC5BQigyi1M+Qgg\ngAACCCCAAAIIIFAzAgRQNbMraQgCCCCAAAIIIIAAAgiUW4AAqtzClI8AAggggAACCCCAAAI1I0AA\nVTO7koYggAACCCCAAAIIIIBAuQUIoMotTPkIlEFg7Nix9uWXX5ahZIpEAAEEECiHgPps9d0kBBBI\nvwABVPr3IS2oQ4GePXvauHHj6rDlNBkBBBBIp4D6bPXdJAQQSL8AAVT69yEtQAABBBBAAAEEEEAA\ngQoJEEBVCJrNIIAAAggggAACCCCAQPoFCKDSvw9pAQIIIIAAAggggAACCFRIgACqQtBsBgEEEEAA\nAQQQQAABBNIvQACV/n1ICxBAAAEEEEAAAQQQQKBCAgRQFYJmMwgggAACCCCAAAIIIJB+AQKo9O9D\nWoAAAggggAACCCCAAAIVEiCAqhA0m0EAAQQQQAABBBBAAIH0CxBApX8f0gIEEEAAAQQQQAABBBCo\nkAABVIWg2QwCCCCAAAIIIIAAAgikX4AAKv37kBYggAACCCCAAAIIIIBAhQQIoCoEzWYQQAABBBBA\nAAEEEEAg/QIEUOnfh7QAAQQQQAABBBBAAAEEKiRAAFUhaDaDAAIIIIAAAggggAAC6RcggEr/PqQF\nCCCAAAIIIIAAAgggUCEBAqgKQbMZBBBAAAEEEEAAAQQQSL8AAVT69yEtQAABBBBAAAEEEEAAgQoJ\nEEBVCJrNIIAAAggggAACCCCAQPoFCKDSvw9pAQIIIIAAAggggAACCFRIgACqQtBsBgEEEEAAAQQQ\nQAABBNIvQACV/n1ICxBAAAEEEEAAAQQQQKBCAgRQFYJmMwgggAACCCCAAAIIIJB+AQKo9O9DWoAA\nAggggAACCCCAAAIVEiCAqhA0m0EAAQQQQAABBBBAAIH0CxBApX8f0gIEEEAAAQQQQAABBBCokAAB\nVIWg2QwCCCCAAAIIIIAAAgikX4AAKv37kBYggAACCCCAAAIIIIBAhQQIoCoEzWYQQAABBBBAAAEE\nEEAg/QIEUOnfh7QAAQQQQAABBBBAAAEEKiRAAFUhaDaDAAIIIIAAAggggAAC6RcggEr/PqQFCCCA\nAAIIIIAAAgggUCEBAqgKQbMZBBBAAAEEEEAAAQQQSL9Aq8Cl9DeDFiBQuwLDhg2zK6+8skEDJ0+e\nbAsuuKB17Ngxs7xbt242evTozGfeIIAAAghUT6B37942derUTAV++uknmz59ui211FKZZXozePBg\nGzJkSINlfEAAgWQLtE129agdAgjMmDHDJk6c2Ahi2rRpDZZxLqQBBx8QQACBqgpMmTLFJk2a1KgO\n2f35jz/+2CgPCxBAINkCDOFL9v6hdgjYrrvuWlChbdu2NnDgwIL5yIAAAgggUBkB9cnqmwulXXbZ\npVAWvkcAgYQJMIQvYTuE6iCQS2DNNde0CRMmWL6rTBoq0qVLl1yrswwBBBBAoMICGiXQtWvXJrfa\nqlUrW3311W38+PFN5uELBBBIpgBXoJK5X6gVAg0E9txzT2vdOvc/Vx2E11lnHYKnBmJ8QAABBKor\noBNa6pvVR+dK6tPVt5MQQCB9Arl/kaWvHdQYgZoW2GmnnWzmzJk528hBOCcLCxFAAIGqC+Q7+aU+\nXX07CQEE0idAAJW+fUaN61BAM+5tsskmOa9CaVhf//7961CFJiOAAALJFlDfnGvotU58qU9X305C\nAIH0CRBApW+fUeM6Fcg11KNNmza2+eabW+fOnetUhWYjgAACyRVQ39yjRw9TX52dcvXp2Xn4jAAC\nyRQggErmfqFWCDQS2H777RtdgdIQkD322KNRXhYggAACCCRDQIFS9hBsXYFSn05CAIF0ChBApXO/\nUes6FOjUqZPpwYzRM5nt2rWzbbfdtg41aDICCCCQDgH10eqrw6Q+XH25+nQSAgikU4AAKp37jVrX\nqcDuu++eOZOp54v069fP5phjjjrVoNkIIIBA8gXUR6uvDp8JxciB5O8zaohAIQECqEJCfI9AggT6\n9u1rs802m6/RX3/9ZQqoSAgggAACyRZQX60+W0l9eJ8+fZJdYWqHAAJ5BQig8vLwJQLJEmjfvr3t\nsMMOvlKzzz679erVK1kVpDYIIIAAAo0E1Ferz1ZSH66+nIQAAukVaJveqlNzBKor8OGHH9orr7xS\n8Uro4YxKa621lt1///0V335TG9QQlfDqWFN5WI4AAtUT+OGHH2zMmDGZYcDVq0l9bll99pNPPukf\nej5q1Kj6REhgqzXN/FZbbWVzzjlnAmtHlZIq0Mr94QRJrRz1QiCpAq+//rqfPvybb75JahUrXq+R\nI0fyPKqKq7NBBOIJfPfdd7bFFltU5aRPvBqSC4HqCVx44YV2+OGHV68CbDl1AgzhS90uo8LVFgiD\np1VXXdV++eUX/5BEnYeox/900CEhgECyBcLg6csvv7QPPvigLvuqeuyfaXP+4/LNN9/sHw3SoUOH\nBrMkJvtfM7VLigABVFL2BPVIhUA0eHrggQfqehz7RRddZEcccYQRRKXiT5dK1qlANHjS8LElllii\nTiVoNgL/Exg+fLgNHDjQhg4dah07dvzfF7xDIKYAAVRMKLIhQPD0v7+BaPDEsIf/ufAOgSQJEDwl\naW9Ql6QIRIOnc845JynVoh4pEyCAStkOo7rVESB4+p87wdP/LHiHQFIFCJ6SumeoVzUFCJ6qqV9b\n22YWvtran7SmTAIbb7yxzZgxw8aOHWsaL13PaaGFFvLD9rjyVM9/BbQ96QJ77bVXZsKIJZdcMunV\npX4IVERgscUW85NFcOWpItw1vRECqJrevTSuVAIKnhQwrLfeeqUqMpXlPP/886YrUARPqdx9VLqO\nBHQFSlMzDxo0qI5aTVMRaFpg4sSJduqpp9rRRx/ddCa+QSCmAAFUTCiyIaDgqX///nUPoQCKhAAC\nyRZo3bq1LbXUUvRZyd5N1K6CAk899ZQPoCq4STZVwwLcA1XDO5emIYAAAggggAACCCCAQGkFCKBK\n60lpCCCAAAIIIIAAAgggUMMCBFA1vHNpGgIIIIAAAggggAACCJRWgACqtJ6UhgACCCCAAAIIIIAA\nAjUsQABVwzuXpiGAAAIIIIAAAggggEBpBQigSutJaQgggAACCCCAAAIIIFDDAgRQNbxzaRoCCCCA\nAAIIIIAAAgiUVoAAqrSelIYAAggggAACCCCAAAI1LEAAVcM7l6YhgAACCCCAAAIIIIBAaQUIoErr\nSWkIIIAAAggggAACCCBQwwIEUDW8c2kaAggggAACCCCAAAIIlFaAAKq0npSGQGIEpk+fbk8++WRi\n6kNFEECg9gX+/PNPGzt2rB1++OH20EMPpa7BkyZNsgsuuMAee+yx1NU9WuFqtWPatGl2xRVX2D77\n7BOtjn344Yc2aNAg++STTxos5wMCaRUggErrnqPeCDQh8NVXX9lRRx1lSyyxhN1zzz1N5GIxAggg\nUHqBN99800aOHGkXX3yxffbZZ6XfQBlL/OCDD+yqq66yoUOHpvqHfrXa8dNPP9mzzz5rZ555pj38\n8MMN9tSECRPshhtuMP19kBCoBQECqFrYi7QBgYjAlClTbM8997Rff/01spS3CCCAQPkFVl99dTvo\noIPKv6EybGHJJZe0/fff35fctm3bMmyhMkVWqx0dO3a0XXfd1dZZZ51GDd1xxx1NJ/d69erV4Lub\nb765wWd9yLWsUSYWIFBlAQKoKu8ANo9AqQXWWmstW2655UpdLOUhgAACsQTC4KNVq1ax8icpU+vW\n//1ZFL4mqW7F1CWsf/hazLotzav9n2vfzzfffA2KfuKJJ+z4448vuKxBBj4gkBCB9J5iSQgg1UCg\npQJ//fWX6UCiA916661nDzzwgL377ru2yy672DLLLJMpXmPH77//fjvggANs3Lhx9sgjj9giiyxi\ne++9t7Vv3z6TjzcIIIBAsQLqh3Tv0uyzz25LL7203Xffff6+le222y7nFYViy1f+H3/80d8Xpftz\nFltsMfvHP/7hX7PL0nCvp59+2n755RfTFS3li/4gL3Vf+NRTT/n7RWeddVa/PdUnuj191nBEDUvT\ntjfYYAPbfPPNtdgnXe2X19Zbb21ffvmlb+PCCy9s/fr1szZt2tgXX3zh+2718f3797c555wzXNWP\nFNC9qmqz8u6xxx6+Xw8zfPzxx3b33XfbkCFDbOLEiX47Xbp0sQEDBvhjRphPr3HaEc2f630QBP74\n8tprr/n66GTcFlts4bO2xH3mzJm+XF2l0kk+HfO22WYb76xhk/LSd9nLZBimMWPG2Isvvmhzzz23\n7bzzzjbvvPOGX9lzzz1nf/zxhy2//PJ200032aabbmprr7125nveIFBqAa5AlVqU8hAoQuC7777z\nB0z9QND48H333deef/55u/zyy/0B4Ntvv/WljRgxwlZZZRV/b9OBBx5ow4cPtzfeeMMfVHWg0I3b\nJAQQQKA5AvphrB+kW221lZ1//vn+pMzrr7/uh1JtuOGGdtdddzWn2AbrqDwFHu3atfND/L7//ntb\n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\nE2Ba8lrbo5VpT7t27ezII4+0999/37baait/j9QGG2xg48ePr0wF2AoCzRQggGomHKshgAACCCBQ\n7wJMS17vfwGlaf/8889v11xzjekKpiadWHvttW3QoEGmKdBJCCRRgAAqiXuFOiGAAAIIIJBwAaYl\nT/gOSmH1NDvf008/bbfddpuNGTPGlllmGTvvvPPsjz/+SGFrqHItCxBA1fLepW0IIIAAAgiUWEDD\nrfr162e9e/e2lVZaySZNmmSnn366dejQocRborh6Fdh5553t3XfftSOOOMJOPfVUW3HFFe2BBx6o\nVw7anUABAqgE7hSqhAACCCCAQNIEwmnJFTRNmTLFxo4da3feead169YtaVWlPjUg0L59ex88vfPO\nO7bGGmvY1ltvbVtuuaVNnDixBlpHE9IuQACV9j1I/RFAAAEEECijANOSlxGXogsKdOnSxW6//XZ7\n6qmn7KuvvrLu3bvboYceat99913BdcmAQLkECKDKJUu5CCCAAAIIpFyAaclTvgNrqPobbbSRn53v\niiuu8AHV0ksvbXr/999/11AraUpaBAig0rKnqCcCCCCAAAIVEmBa8gpBs5miBDRD3z777GPvvfee\nDRw40F+JWm211eyJJ54oqhwyI9BSAQKolgqyPgIIIIAAAjUiwLTkNbIja7wZnTp1sgsuuMA/iHex\nxRazHj162A477GAfffRRjbec5iVFgAAqKXuCeiCAAAIIIFBFAaYlryI+m26WgKY5Hz16tD300EN+\ncokVVljBTjzxRPv555+bVR4rIRBXgAAqrhT5EEAAAQQQqEEBpiWvwZ1aZ03q1auXvfHGG3b22Wfb\npZde6p8fdcstt5gmQCEhUA4BAqhyqFImAggggAACCRdgWvKE7yCqV5RAu3bt7PDDDzedEOjbt6/t\ntddetv7669tLL71UVDlkRiCOAAFUHCXyIIAAAgggUCMCTEteIzuSZuQU6Ny5s1111VX2yiuv2Cyz\nzGLrrruun3Di888/z5mfhQg0R4AAqjlqrIMAAggggEAKBZiWPIU7jSo3S2DVVVe1cePG2R133GFP\nPvmkH9Z3zjnn2O+//96s8lgJgagAAVRUg/cIIIAAAgjUoADTktfgTqVJsQT69+9vkyZNsqFDh9oZ\nZ5xhK664ot17772x1iUTAk0JtHKX8rnDrikdliOQAIFhw4bZlVde2aAmkydPtgUXXNA6duyYWd6t\n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\nBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiA\nBEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARo\nQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIg\nARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIg\nARJIHgEaUMmrU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmr\nU5aIBEiABEiABEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aIBEiABEiA\nBEiABEiABEigSARoQBUJLJMlARIgARIgARIgARIgARJIHgEaUMmrU5aoBATGjh0rq1evLkFO3lks\nX75cHnjgAbn00kvl4YcflpUrV3pfVOIYX3zxhdx2223y+uuvlzhnZlcIAitWrJDx48fLJZdckkru\n888/l1tvvVXefffd1DGvLz/++KO88cYbXtHyOj9v3jzp37+/fP/993mlk+vFuea/cOFCue+++2Tg\nwIG5Zp3Y6/LVv1K2kbnWf6EqL9f8qX/eNeB8jkEv0Re47rrrPC9etmyZ3H777XLeeefJpEmTZMOG\nDZ7X5BohVx3INT/ndbnmv27dOpkyZYpccMEF8sorrziTjd5vi4EESMA3gQkTJlitW7e21J1s/frr\nr76vK1bEL7/80tpqq62s5s2bW9WrV9dy7bjjjtbixYuLlWXgdL/55htLPTS0bI8++mjg63lB+ATG\njBljNW3a1Npuu+20MHPnzrVOPvlkXafPPvusp4BLliyxLrzwQqtWrVrWueee6xk/nwiQFfenegDn\nk0zO1+aSv+rgW88884zVuHFjq0mTJjnnndQL89G/UreRudR/Iestl/ypf9414PYce+yxx6yGDRta\nu+yyS9YEfvnlFwvP5VNOOcVq3769VblyZWu//fbLek0+J3PRgXzyc16ba/4ff/yxdeaZZ+r2+6GH\nHnImG7nfEjmJKBAJRJTAggULLPz16dNH3+BRMKCOOeYYa9asWZoYOqlq9FrLpkbgI0Vxzpw5Wq4n\n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\nGiw6Y5MACYRNoEOHDnLEEUfI4MGDwxaF+ZNAJAnAcJo/fz5naCNZO+UrFNrshQsXCtpwBhKICoHz\nzz9ffvjhBzn88MOjIlIs5KikXvBmxUJSCkkCJEACJEACJEACJEACJEACIRPgEr6QK4DZkwAJkAAJ\nkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJ\nxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUl\nJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAES\nIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkA\nDaiQK4DZkwAJkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJ\nkAAJkAAJkAAJkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJ\nkAAJxIcADaj41BUlJQESIAESIAESIAESIAESCJkADaiQK4DZkwAJkAAJkAAJkAAJkAAJxIdAlWtV\niI+4lLRcCLz33nvyyCOPyLvvvis1a9aUJk2a5FX0GTNmyLhx42TUqFEya9YsWb58uWy33XZStWrV\nvNI1F69bt07eeOMNufvuu2Xjxo3SvHlzc6oon5MmTZIPPvhAPvvsM1m/fr1svfXWafksW7ZMXnrp\nJX0ecfC3zTbbSK1atdLi+f3xxRdfyBNPPCF//vmn7Ljjjn4vyxpv8eLFMmHCBC3b559/LrvssotU\nqVIl7Zq3335boAumDL/99ptsv/32aXH4IzcCK1askNdee00effRROfLIIwW///Of/8i///1vOfzw\nw30nOnbsWGnatGnB7iW3jEeOHCkzZ86Ufffd1+10rI8tXLhQnnnmGXnggQekW7dusS5LoYR3tjdB\ndBNt++OPPy7PP/+8zJ8/X3bddVepVq1aoURLS2fevHly4YUXSuvWrWWTTTZJOxf3H6V+psWBl7PN\nhMx4duHZiIA+RbaA5/K//vUv3cbiWYd2s3Ll4sxjUDez1USBzlkMJBAxAueee65Vv359SzVGllJz\n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\noGzZsnLjjTcaReqII46Qdu3amRnJFStWRHvlOQmQAAmQAAmQAAkERoAKVGAoGVGQBKZPny4NGzY0\n+16wZA97X84888wgk2BceUKgXr16MnXqVHnzzTeNMgWF+5///Kds27YtT0rIYpAACZAACZAACeQS\nASpQuVQbzIt8//330rFjR+nUqZMxTw7ra9dee635MC7xkEAiAm3btjXWGLGkb9y4cYJZKcxY0pEA\nCZAACZAACZBAkASoQAVJk3H5JrBlyxZjHAKzTsuXL5c5c+bI5MmTpVatWr7jZMDCI1CqVCm56qqr\nzPfATjjhBOnSpYuZuVy6dGnhwWCJSYAESIAESIAE0kKAClRasDJSLwRefPFFOfzww+XBBx+U22+/\nXb744gtp0aKFlyjolwQiCMDU+aRJk2TevHkCU+f4KC9mMjdv3hzhjyckQAIkQAIkQAIk4JUAFSiv\nxOg/MAKwpgfLer169ZKWLVuaWYMrrrhCSpYsGVgajKiwCZx66qny2WefyZ133injx483ivrzzz9f\n2FBYehIgARIgARIggZQIUIFKCR8D+yHw119/yZVXXmm+6fTHH3/Ie++9J//5z39kv/328xMdw5BA\nQgIlSpSQoUOHynfffSfYJ3XOOeeYGU4YJqEjARIgARIgARIgAa8EqEB5JUb/vgkopeSZZ54xHz99\n6qmnzJK9jz/+WLBXhY4E0k2gevXq8sQTT8gHH3xglvIde+yxghnPDRs2pDtpxk8CJEACJEACJJBH\nBKhA5VFl5nJRsK/plFNOkf79+5uN/ZgNuPjii6V4cTbBXK63fMzbcccdZ5Sohx9+2OyTOuyww8wM\nKBR8OhIgARIgARIgARJIRoC912SEeD8lAr///rtceuml0qRJE0EH9ZNPPhF0XPfee++U4mVgEkiF\nABT3gQMHmmV9PXr0MMcnnniifPrpp6lEy7AkQAIkQAIkQAIFQIAKVAFUcjaKuGfPHnn00Uelfv36\n8tJLL8mTTz4p7777rmDZFB0J5AqBvfbayywlheIE4yWYnRo8eLCsX78+V7LIfJAACZAACZAACeQY\nASpQOVYh+ZAd7DFBRxQzT/369TOj/Oeff74UK1YsH4rHMuQhgaOPPlreeecdwd68V155xSj+mCnF\nQAAdCZAACZAACZAACTgJUIFy0uBxSgR+/fVXufDCCwVLoSpXrmy+53T33Xeb45QiZmASyBCBvn37\n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\nJEACWSJABSpL4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL\n4JksCZAACZAACZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAA\nCZAACZAACZBA+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSpL4JksCZAACZAACZAACZAACZBA\n+AhQgQpfnTHHJEACJEACJEACJEACJEACWSJABSoF8GvXrpW5c+emEAODkoA/ArNnz5Zff/3VX2CG\nIgGfBCDvIPfoSIAEvBOAzIbspiMBEgg/ASpQKdThrFmzpF27dinEwKAk4I9A69atZd68ef4CMxQJ\n+CTQpk0bmTNnjs/QDEYChU0AMhuym44ESCD8BKhApVCHmzdvlgoVKqQQA4OSAAmQQHgIlClTRrZv\n3x6eDDOnJEACJEACJJAGAlSgUoC6ZcsWKlAp8GNQEiCBcBEoW7YsFahwVRlzSwIkQAIkkAYCVKBS\ngLpp0yYqUCnwY1ASIIFwEeAMVLjqi7klARIgARJIDwEqUClw5QxUCvAYlARIIHQEoEBt27YtdPlm\nhkmABEiABEggSAJUoFKgyT1QKcBjUBIggdAR4AxU6KqMGSYBEiABEkgDASpQKUClApUCPAYlARII\nHQHugQpdlTHDJEACJEACaSBABSoFqFSgUoDHoCRAAqEjwCV8oasyZpgESIAESCANBKhApQCVClQK\n8BiUBEggdAQ4AxW6KmOGSYAESIAE0kCAClQKUKlApQCPQUmABEJHgHugQldlzDAJkAAJkEAaCFCB\nSgEqFagU4DEoCZBA6AhwCV/oqowZJgESIAESSAMBKlApQKUClQI8BiUBEggdAc5Aha7KmGESIAES\nIIE0EKAClQJUKlApwGNQEiCB0BHgHqjQVRkzTAIkQAIkkAYCVKBSgEoFKgV4DEoCJBA6AlzCF7oq\nY4ZJgARIgATSQIAKVApQoUCVL18+hRgYlARIgATCQ4BL+MJTV8wpCZAACZBA+ghQgfLJViklW7Zs\nkQoVKviMgcFIgARIIFwEuIQvXPXF3JIACZAACaSHABUon1y3bt0qUKKoQPkEyGAkQAKhI8AlfKGr\nMmaYBEiABEggDQSoQPmEiuV7cFSgfAJkMBIggdAR4BK+0FUZM0wCJEACJJAGAlSgfEKlAuUTHIOR\n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\nBEiABEiABEigQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEig\nQAhQgSqQimYxSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYx\nSYAESIAESIAESIAESIAEUidABSp1hoyBBEiABEiABEiABEiABEigQAhQgSqQimYxSYAESIAESIAE\nSIAESIAEUieQVwrUN998I+PGjZP33nvPNZk1a9bI22+/7dq/H48//PCDXHjhhbJq1So/wRkmRAQ2\nbdok06ZNk5tvvtlVrhcsWCCjR4+WMWPGyEcffeQqjF9Pd999tzz00EN+gzNcCAh4bX9z5syRESNG\nyF133SWrV69OawnZ/tKKl5H7ILBo0SK588475a233jKh/fQhEHD9+vUyduxYHzlwF4R9CHec6IsE\nMkkgbxSo7777zgiwq666Sn766aekDH/77TfTcTjooIPkv//9b1L/qXj47LPPZMKECfL111+nEg3D\nhoDAiy++KAMHDpTnnnsuaW6HDRsm7du3N23jhhtukOOPP17+9a9/JQ3n18OTTz4pTz/9tN/gDBcC\nAl7a3x133CFogxs3bjSdyDp16siMGTPSVkq2v7ShZcQ+CHz//ffyyCOPyMiRI83gptc+hDNJyPz7\n7rvPeSnQY/YhAsXJyEggEAJ5o0DVr19fhg4d6hrK8uXLpV+/frJ161bXYfx67NGjh0BhO/PMM/1G\nwXAhIdC/f39p2rRp0txOnTpVihcvbkYu0RZnzZole+21l1x//fWC0cZ0uA8//FDmzp2bjqgZZ44Q\ncNv+0Mbq1atnBnXQiVy6dKlUqlRJ7r333rSVhO0vbWgZsQ8CBx98sFx88cUmZMmSJcVrH8JK8rHH\nHhPMXKXTsQ+RTrqMmwT8EcgbBQrFL1GihKFQrFixpDSaNWsmhx9+eFJ/QXnYZ599goqK8eQ4AbTD\nZG3w/fffN6P+lt9WrVrJ2WefLbt27ZKPP/44LSWsUKGClCtXLi1xM9LcIWC1qUQ52rlzp2lvlp+K\nFStK165dpXLlytalwH/Z/gJHyghTJIBBLDjr10sfAuEwa/X5559Lx44dcZpWxz5EWvEychLwTKCk\n5xA5EODXX381S03wi1Gkxo0bC5biOd3vv/8uU6ZMkb/++kt69uxpRlud94M4Rmd39uzZgo7BoYce\n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\nECgjgYkTJ/oEL3/7299s2LBhfp2T1jw1bty4jFpJUxBAAAEEEEAglwABVC6dKnytpqbG9t13X78+\n6thjj7Vzzz3Xpz+///77q7C3dAmB8hB47733rH///v4WA507d/apyS+99FJr06ZNeTSQViCAAAII\nIIBAaAECqNBU1VVxmWWWsXPOOcf0wU4jU4MHD7ZevXrZa6+9Vl0dpTcIlFDgu+++M402bbDBBvbx\nxx+bboCsZC4a/aUggAACCCCAQGUKEEBV5nUrWqtXW201u/322/3UPqU633zzze2AAw6wL774omjn\n4EAIxE1g4cKFNmrUKL/OSesPr776aps2bZpxQ9y4vRPoLwIIIIBANQoQQFXjVS2gT1tssYW9+OKL\nNmbMGP8tub4h/8c//mELFiwo4GjsgkB8BR555BHbcMMN7cQTT7SDDjrIr3M65JBDTLcXoCCAAAII\nIIBA5QvwF73yr2FRe6AbeCrt+cknn+wDKKVUvueee4p6Dg6GQDUKzJgxw3beeWfbZZddfGpyPb/o\noots2WWXrcbu0icEEEAAAQRiK0AAFdtLn73jzZs3tzPOOMN/c77ddtvZkCFDrGfPnjZ16tTsO/EK\nAjEV+Oabb/wNqzfaaCN/a4Bnn33W7rvvPltzzTVjKkK3EUAAAQQQqG4BAqjqvr516t3KK69sN998\nsw+cNP2oR48ePvXyp59+WqfjsjMC1SCgNYO6h9Naa61lDzzwgF1//fX2yiuv2J///Odq6B59QAAB\nBBBAAIEsAgRQWWDY/D+B7t2723PPPWdjx461F154wbp06WLnnXee/fLLL/+rxCMEYiQwbtw4P03v\ntNNOM93H6YMPPrD999+fdU4xeg/QVQQQQACB+AoQQMX32kfu+R577GHvvPOOnXXWWXbJJZfYOuus\n45NOJBKJyMdiBwQqUeDNN9+07bff3nbbbTfbdNNN/XrB888/31q2bFmJ3aHNCCCAAAIIIFCAAAFU\nAWhx3qVZs2Y+wYS+cdeC+WHDhtlWW21lL730UpxZ6HuVC3z11Vd26KGH+qBp/vz5fiRW6ck7duxY\n5T2newgggAACCCCQLkAAlS7C81AC7dq182s+dONd3ZRXN+P961//anPnzg21P5UQqASB33//3S6+\n+GJ/49sJEyb4NYFTpkyxbbbZphKaTxsRQAABBBBAoB4ECKDqATVOh+zWrZs99dRT9uCDD/pkE0p7\n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\nEEAAATPWQPEuQAABBBBAAAEEEEAAAQRCChBAhYSiGgIIIIAAAggggAACCCBAAMV7AAEEEEAAAQQQ\nQAABBBAIKUAAFRKKaggggAACCCCAAAIIIIAAARTvAQQQQAABBBBAAAEEEEAgpAABVEgoqiGAAAII\nIIAAAggggAACBFC8BxBAAAEEEEAAAQQQQACBkAIEUCGhqIYAAggggAACCCCAAAIIEEDxHkAAAQQQ\nQAABBBBAAAEEQgoQQIWEohoCCCCAAAIIIIAAAgggQADFewABBBBAAAEEEEAAAQQQCClAABUSimoI\nhBH46aef7KGHHrJzzz03TPVadcaOHWsvv/xyrW3FfDJy5Ei75pprinlIjoUAAggggAACCMROgAAq\ndpecDtenwH333WcHHXSQ3XXXXZFO88orr9jQoUPttddei7RflMo33XST3XbbbVF2oS4CCCCAAAII\nIIBAmgABVBoITxGoi8B+++1nm222WaRD/Pzzz3bOOefYH3/8EWm/qJWnTJliTz/9dNTdqI8AAggg\ngAACCCCQIkAAlYLBQwSKIdC4cWOrqakJfahTTz3VTj/99ND1C63YokULa968eaG7sx8CCCCAAAII\nIICAE2iCAgIIRBf46quvbMKECaafnTt3tk033dTWXHPNJQ704osv2uOPP24bbbSR/eUvf1ni9Qcf\nfNC6dOli66+//hKvhd3wySef2Lhx4+zwww+3Z5991p9v1VVXtQMPPLBWwKS2jh8/3g444AB/6IUL\nF9qkSZNMgdXaa6/t12599NFHtvvuu1uPHj1qnf6zzz6zxx57zHSubbbZxvr06VPrdZ4ggAACCCCA\nAAJxESCAisuVpp9FE/j++++tX79+9swzz/gAZd999/XHTg2gfvvtNxswYIAlEglTUHLeeef5NU63\n3357sh0KSh544AHTtvnz5ye3R3kwZswYGzFihC1YsMCmT59uv//+u33xxRd24YUX+uO+8MIL1qhR\nI//46KOPtmWWWcYHUAqE/va3v/nz77rrrrZo0SLr2LGjKaC79NJL7e67704GfJr2pzVdCtBatWpl\nAwcOtGHDhtnVV18dpanURQABBBBAAAEEqkKAKXxVcRnpREMK3HHHHdayZUv/n6brnX/++UusX/r0\n00/tkksu8SM+b7/9tu22226m/R599FHfVAVWJ5xwgq9Tl7bvs88+tssuu/gA6qijjrIbb7zRj4yd\neeaZPqOfEkeojfu5tVk77LBD8lSrrbaa/fOf//TPmzVr5tupgGjatGm23HLL2THHHGMaoVJWQSXF\nuOyyy2yTTTaxwYMH21577eWz+U2ePDl5PB4ggAACCCCAAAJxESCAisuVpp9FE1h33XX9VDllzfv6\n669tjTXWsEGDBtU6vqbkrbPOOn6b1kNp9EZF0/5UFJAMGTLE2rVr55/X5X+agtekSZNa0wBPOeUU\nv+25555LHlqBUmrRfiobb7xxcrPac/DBB/uperNmzfIjT7/++quddNJJduSRR/r/NMKlaYszZ85M\n7scDBBBAAAEEEEAgLgJM4YvLlaafRRPo3bu3Hz3SVDetPbriiits//33z3n8Lbfc0k+l07S9999/\n35TuXCNQmsKn8ssvv/ifGgHStq222spWXnllv62Q/2mqnkaZFOBFLVqTpaJ9NXqmdjBdL6oi9RFA\nAAEEEECgWgUIoKr1ytKvehPQmqKLL77YdtxxR9O0OSVlUIKGk08+Oes5l112WT/lT+uktP5o7ty5\npjVJQdGUPhXdTFejVJqKV5cASmuwNFK00047BacI/XPOnDm+rtqq6X/vvfeen6LYtGnT0MegIgII\nIIAAAgggUK0CTOGr1itLv+pNQMHN4sWL/ZoijRgpI92oUaNynk/1lCiib9++phEsBVGp/33wwQd+\n/wsuuMBvLyTwSW3ASy+95NdF9e/fP3VzqMdPPfWUde/e3dq3b2/dunUz3adq9OjRtfZVIo1rrrmm\n1jaeIIAAAggggAACcRAggIrDVaaPRRVQsPPEE0/4Y2qqnLLSrbjiirXOoeQLCrKCcu+99/rkC/WV\n/lsJH955553gdHb//fdbr169LDWA0qjUDz/84JNDJCu6B8reFxQlv5g6dapddNFFfpMSRqy++up+\nuqFG3XQOjZIdcsghFmQfDPblJwIIIIAAAgggEAcBpvDF4SrTx6IKKBmDstQpqcIKK6xgCqhuvvnm\n5DmUHlzT+TSK1LNnT/v888+tbdu2PgtfslKRH2haoUaEdKPcjz/+2I8aPfzww/4sSgJxww03+MQX\nSneum/Yef/zxyRaofcq0t9JKK9nEiRN9yvMg0FNfdR8rBYlKJKH/NthgA7vtttt8SvPkQXiAAAII\nIIAAAgjERKDGrb347+KLmHSYbiKQSUCjLMcdd5wde+yxmV6utU2jPcp6p3VPCjBat25d6/XgiQKX\n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\nRiCKQOvWra1fv36mUaegNG3a1AYOHBg85ScCCCCAAAIIIIBAPQsQQNUzMIdHoJgCQ4cOTSaT0L2f\nBgwYYK1atSrmKTgWAggggAACCCCAQA4BAqgcOLyEQLkJ9O/f35ZeemnfrIULF5oCKgoCCCCAAAII\nIIBAwwkQQDWcNWdCoM4CzZs3N62FUmnRooX17du3zsfkAAgggAACCCCAAALhBQigwltRE4GyEAhG\nnXRvqGbNmpVFm2gEAggggAACCCAQFwECqLhcafpZNQLbb7+99enTxw4//PCq6RMdQQABBBBAAAEE\nKkWgxt2EM1EpjaWdCCCAAAIIIIAAAggggEApBRiBKqU+50YAAQQQQAABBBBAAIGKEiCAqqjLRWMR\nQAABBBBAAAEEEECglAIEUKXU59wIIIAAAggggAACCCBQUQIEUBV1uWgsAggggAACCCCAAAIIlFKA\nAKqU+pwbAQQQQAABBBBAAAEEKkqAAKqiLheNRQABBBBAAAEEEEAAgVIKEECVUp9zI4AAAggggAAC\nCCCAQEUJEEBV1OWisQgggAACCCCAAAIIIFBKAQKoUupzbgQQQAABBBBAAAEEEKgoAQKoirpcNBYB\nBBBAAAEEEEAAAQRKKUAAVUp9zo0AAggggAACCCCAAAIVJUAAVVGXi8YigAACCCCAAAIIIIBAKQUI\noEqpz7kRQAABBBBAAAEEEECgogQIoCrqctFYBBBAAAEEEEAAAQQQKKUAAVQp9Tk3AggggAACCCCA\nAAIIVJQAAVRFXS4aiwACCCCAAAIIIIAAAqUUIIAqpT7nRgABBBBAAAEEEEAAgYoSaFJRraWxCGQQ\nmDt3rk2YMMFeffVVu+GGGzLUKO2m119/3R566CH76aefrHv37tanTx97/PHHbejQoSVp2B9//GHP\nPfecjR8/3nbYYQfr169f0drx2muv2dSpU+2dd96xlVde2TbaaCPr3bu3NWvWrCjnqM+2F6WBHAQB\nBBBAAAEEql6AEaiqv8TV3UEFJf/5z3/s73//uz322GNl19nbbrvN/vznP9vyyy9vu+66q7388svW\ntWtXO+KII0rW1unTp9vYsWPt8ssvt88++6wo7fj666/tr3/9q+299962wgor2LHHHmtbbbWVqf8b\nb7yxv0bFOFF9tL0Y7eIYCCCAAAIIIBAfAQKo+Fzrquxpy5YtbciQIdajR4+y699vv/1mRx11lA8q\nRowYYX/6059s5MiRfvSnUaNGfkSqFI3edNNN7cgjjyzaqRcsWOCDxDfffNOmTJlie+yxh3Xs2NFv\nu+uuu6x///7+sQLdQoqCsKDUpe0K8soxyA76xk8EEEAAAQQQqAwBAqjKuE60Mo9AkyZNrKamJk+t\nhn35o48+sh9//NG+//77Wideb7317JBDDina6E+tg4d8Ii+VYpidccYZ9u6779o555xjyy233BIt\nOOuss6xNmza2//7726+//rrE67k2PP3003baaafVqlJI2xctWuRHyGbPnl3rWDxBAAEEEEAAAQSi\nCrAGKqoY9Ysm8Mknn9i4cePs8MMPt2effdavC1p11VXtwAMPtObNmxflPApgHnnkEb8mZ/XVV7cd\nd9zR9DO15KuzcOFCmzRpkrVo0cLWXnttv55JwdHuu++ec+RrnXXW8SMxDz74oF111VV+NCo4r6a4\nNW3a1D99+OGH7cMPPzSNph100EE+6NKoi9b7aB3RXnvt5euFaUeYOkEbUn+qfx9//LHfpPVKgwYN\n8uuWNOVwxowZPjDabbfdUnfxj3/++We77LLLrHXr1n6fJSq4Da1atfKvaX3aPffcYzvttJM98MAD\nvn9ag7X++uubAqU33njD765zd+jQwW/TORXkXXfddbbKKqvYgAEDMp0iue3JJ5/0o2AK5OSm6YQa\nCdxnn31Mr6200kr+eJpOKVsKAggggAACCCAQVYARqKhi1C+KwJgxY3yCgRNOOMGvB7r99ttNU8A0\n1W3bbbf1H67reiJ9IN9mm218oKIpaxoJ0vqj1Clh+eooyNMH8Z133tkuvvhiH9xpHx2jZ8+edv/9\n92dtpqbpqX8KatSvv/zlL/bpp5/6+vrwvuKKK/rHCgoUXJx77rn+uQKOYcOG2dlnn21XXHGF3xam\nHWHq+INl+J/WK11yySV+lEjTIYOkD1tssYVddNFFplGzTOXtt9+2xYsX+4BH/c1WNKVPRddYfVcg\noyBy8uTJfvt2221n8+fP99s0mqWiIEhJKNQWBaPpga+v9H//+/333+3ggw+2efPm+SmDCsjWXXdd\nH/xpiqGun4oCdB2rWAH6/52eHwgggAACCCAQJ4EEBYESCbgsdAk3upB46623ki0488wzE+7fX2L0\n6NHJbWEeDB48OLHaaqslq7pRh4T7AJ1w08eS2/TAJTpILLXUUgn3wT8Rpo72mTlzpm+TzhGUL774\n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\n" - } - ], - "prompt_number": 44 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This diagram shows the new components in the branch" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Traversing the loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It would be nice to move through the loop using functions \"next()\" and \"prev()\"\n", - "\n", - "Eppy indeed has such functions\n", - "\n", - "Let us try to traverse the loop above. " - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# to traverse the loop we are going to call some functions ex_loopdiagrams.py, \n", - "# the program that draws the loop diagrams.\n", - "from eppy import ex_loopdiagram\n", - "fname = 'hhh_new.idf'\n", - "iddfile = '../eppy/resources/iddfiles/Energy+V8_0_0.idd'\n", - "edges = ex_loopdiagram.getedges(fname, iddfile)\n", - "# edges are the lines that draw the nodes in the loop. \n", - "# The term comes from graph theory in mathematics\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 45 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above code gets us the edges of the loop diagram. Once we have the edges, we can traverse through the diagram. Let us start with the \"Central_Chiller\" and work our way down." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import walk_hvac\n", - "firstnode = \"Central_Chiller\"\n", - "nextnodes = walk_hvac.next(edges, firstnode)\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['np1']\n" - ] - } - ], - "prompt_number": 46 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.next(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['np2']\n" - ] - } - ], - "prompt_number": 47 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.next(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['p_loop_supply_splitter']\n" - ] - } - ], - "prompt_number": 48 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.next(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['sb1_pipe', 'sb2_pipe', 'sb3_pipe']\n" - ] - } - ], - "prompt_number": 49 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This leads us to three components -> ['sb1_pipe', 'sb2_pipe', 'sb3_pipe']. Let us follow one of them" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.next(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['p_loop_supply_mixer']\n" - ] - } - ], - "prompt_number": 50 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.next(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['sb4_pipe']\n" - ] - } - ], - "prompt_number": 51 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nextnodes = walk_hvac.next(edges, nextnodes[0])\n", - "print nextnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[]\n" - ] - } - ], - "prompt_number": 52 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have reached the end of this branch. There are no more components. \n", - "\n", - "We can follow this in reverse using the function prev()" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "lastnode = 'sb4_pipe'\n", - "prevnodes = walk_hvac.prev(edges, lastnode)\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['p_loop_supply_mixer']\n" - ] - } - ], - "prompt_number": 53 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prev(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['sb1_pipe', 'sb2_pipe', 'sb3_pipe']\n" - ] - } - ], - "prompt_number": 54 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prev(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['p_loop_supply_splitter']\n" - ] - } - ], - "prompt_number": 55 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prev(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['np2']\n" - ] - } - ], - "prompt_number": 56 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prev(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['np1']\n" - ] - } - ], - "prompt_number": 57 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prev(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['Central_Chiller']\n" - ] - } - ], - "prompt_number": 58 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prevnodes = walk_hvac.prev(edges, prevnodes[0])\n", - "print prevnodes\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[]\n" - ] - } - ], - "prompt_number": 59 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "All the way to where the loop ends" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Building a Condensor loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We build the condensor loop the same way we built the plant loop. Pipes are put as place holders for the components. Let us build a new idf file with just a condensor loop in it." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "condensorloop_idf = IDF(StringIO('')) \n", - "loopname = \"c_loop\"\n", - "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side\n", - "dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side\n", - "theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop)\n", - "condensorloop_idf.saveas(\"c_loop.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 60 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Again, just as we did in the plant loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions next() and prev()" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Building an Air Loop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Building an air loop is similar to the plant and condensor loop. The difference is that instead of pipes , we have ducts as placeholder components. The other difference is that we have zones on the demand side." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airloop_idf = IDF(StringIO('')) \n", - "loopname = \"a_loop\"\n", - "sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop\n", - "dloop = ['zone1', 'zone2', 'zone3'] # zones on the demand side\n", - "hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop)\n", - "airloop_idf.saveas(\"a_loop.idf\")\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 61 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Again, just as we did in the plant and condensor loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions next() and prev()" - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/docs/HVAC_Tutorial.py b/docs/HVAC_Tutorial.py deleted file mode 100644 index 246bd3a9..00000000 --- a/docs/HVAC_Tutorial.py +++ /dev/null @@ -1,401 +0,0 @@ -# -*- coding: utf-8 -*- -# 3.0 - -# - -# HVAC Loops - -# - -# Conceptual Introduction to HVAC Loops - -# - -# Eppy builds threee kinds of loops for the energyplus idf file: -# -# 1. Plant Loops -# 2. Condensor Loops -# 3. Air Loops -# -# All loops have two halves: -# -# 1. Supply side -# 2. Demand Side -# -# The supply side provides the energy to the demand side that needs the energy. So the end-nodes on the supply side connect to the end-nodes on the demand side. -# -# The loop is made up of branches connected to each other. A single branch can lead to multiple branches through a **splitter** component. Multiple branches can lead to a single branch through a **mixer** component. -# -# Each branch is made up of components connected in series (in a line) -# -# Eppy starts off by building the shape or topology of the loop by connecting the branches in the right order. The braches themselves have a single component in them, that is just a place holder. Usually it is a pipe component. In an air loop it would be a duct component. -# -# The shape of the loop for the supply or demand side is quite simple. -# -# It can be described in the following manner for the supply side -# -# - The supply side starts single branch leads to a splitter -# - The splitter leads to multiple branches -# - these multiple branches come back and join in a mixer -# - the mixer leads to a single branch that becomes end of the suppply side -# -# For the demand side we have: -# -# - The demand side starts single branch leads to a splitter -# - The splitter leads to multiple branches -# - these multiple branches come back and join in a mixer -# - the mixer leads to a single branch that becomes end of the demand side -# -# The two ends of the supply side connect to the two ends of the demand side. - -# - -# Diagramtically the the two sides of the loop will look like this:: - -# - -# Supply Side: -# ------------ -# -> branch1 -> -# start_branch --> branch2 --> end_branch -# -> branch3 -> -# Demand Side: -# ------------ -# -# -> d_branch1 -> -# d_start_branch --> d_branch2 --> d_end_branch -# -> d_branch3 -> -# - -# - -# -# In eppy you could embody this is a list - -# - -supplyside = ["start_brandh", ["branch1", "branch2", "branch3"], "end_branch"] -demandside = ["d_start_brandh", ["d_branch1", "d_branch2", "d_branch3"], "d_end_branch"] - -# - -# Eppy will build the build the shape/topology of the loop using the two lists above. Each branch will have a placeholder component, like a pipe or a duct:: - -# - -# -# branch1 = --duct-- - -# - -# Now we will have to replace the placeholder with the real components that make up the loop. For instance, branch1 should really have a pre-heat coil leading to a supply fan leading to a cooling coil leading to a heating coil:: - -# - -# -# new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil - -# - -# Eppy lets you build a new branch and you can replace branch1 with new_branch -# -# In this manner we can build up the entire loop with the right components, once the initial toplogy is right - -# - -# Building a Plant loops - -# - -# Eppy can build up the topology of a plant loop using single pipes in a branch. Once we do that the simple branch in the loop we have built can be replaced with a more complex branch. -# -# Let us try this out ans see how it works. - -# - -# Building the topology of the loop - -# - -# you would normaly install eppy by doing -# python setup.py install -# or -# pip install eppy -# or -# easy_install eppy - -# if you have not done so, uncomment the following three lines -import sys - -# pathnameto_eppy = 'c:/eppy' -pathnameto_eppy = "../" -sys.path.append(pathnameto_eppy) - -# - -from eppy.modeleditor import IDF -from eppy import hvacbuilder - -from io import StringIO - -iddfile = "../eppy/resources/iddfiles/Energy+V7_0_0_036.idd" -IDF.setiddname(iddfile) - -# - -# make the topology of the loop -idf = IDF(StringIO("")) # makes an empty idf file in memory with no file name -loopname = "p_loop" -sloop = ["sb0", ["sb1", "sb2", "sb3"], "sb4"] # supply side of the loop -dloop = ["db0", ["db1", "db2", "db3"], "db4"] # demand side of the loop -hvacbuilder.makeplantloop(idf, loopname, sloop, dloop) -idf.saveas("hhh1.idf") - -# - -# We have made plant loop and saved it as hhh1.idf. -# Now let us look at what the loop looks like. - -# - -# Diagram of the loop - -# - -# Let us use the script "eppy/useful_scripts/loopdiagrams.py" to draw this diagram - -# - -# See [Generating a Loop Diagram](useful_scripts.html#loopdiagram-py) page for details on how to do this - -# - -# Below is the diagram for this simple loop -# -# *Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity* - -# - -from eppy import ex_inits # no need to know this code, it just shows the image below - -for_images = ex_inits -for_images.display_png(for_images.plantloop1) # display the image below - -# - -# Modifying the topology of the loop - -# - -# Let us make a new branch and replace the exisiting branch -# -# The existing branch name is "sb0" and it contains a single pipe component sb0_pipe. -# -# Let us replace it with a branch that has a chiller that is connected to a pipe which is turn connected to another pipe. So the connections in the new branch would look like "chiller-> pipe1->pipe2" - -# - -# make a new branch chiller->pipe1-> pipe2 - -# make a new pipe component -pipe1 = idf.newidfobject("PIPE:ADIABATIC", "np1") - -# make a new chiller -chiller = idf.newidfobject("Chiller:Electric".upper(), "Central_Chiller") - -# make another pipe component -pipe2 = idf.newidfobject("PIPE:ADIABATIC", "np2") - -# get the loop we are trying to modify -loop = idf.getobject("PLANTLOOP", "p_loop") # args are (key, name) -# get the branch we are trying to modify -branch = idf.getobject("BRANCH", "sb0") # args are (key, name) -listofcomponents = [ - chiller, - pipe1, - pipe2, -] # the new components are connected in this order - -newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid="Water") -# in "loop" -# this replaces the components in "branch" with the components in "listofcomponents" - -idf.saveas("hhh_new.idf") - -# - -# We have saved this as file "hhh_new.idf". -# Let us draw the diagram of this file. (run this from eppy/eppy folder) - -# - -# python ex_loopdiagram.py hhh_new.idf - -# - -from eppy import ex_inits # no need to know this code, it just shows the image below - -for_images = ex_inits -for_images.display_png(for_images.plantloop2) # display the image below - -# - -# This diagram shows the new components in the branch - -# - -# Traversing the loop - -# - -# It would be nice to move through the loop using functions "nextnode()" and "prevnode()" -# -# Eppy indeed has such functions -# -# Let us try to traverse the loop above. - -# - -# to traverse the loop we are going to call some functions ex_loopdiagrams.py, -# the program that draws the loop diagrams. -from eppy import ex_loopdiagram - -fname = "hhh_new.idf" -iddfile = "../eppy/resources/iddfiles/Energy+V8_0_0.idd" -edges = ex_loopdiagram.getedges(fname, iddfile) -# edges are the lines that draw the nodes in the loop. -# The term comes from graph theory in mathematics - -# - -# The above code gets us the edges of the loop diagram. Once we have the edges, we can traverse through the diagram. Let us start with the "Central_Chiller" and work our way down. - -# - -from eppy import walk_hvac - -firstnode = "Central_Chiller" -nextnodes = walk_hvac.nextnode(edges, firstnode) -print(nextnodes) - -# - -nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) -print(nextnodes) - -# - -nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) -print(nextnodes) - -# - -nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) -print(nextnodes) - -# - -# This leads us to three components -> ['sb1_pipe', 'sb2_pipe', 'sb3_pipe']. Let us follow one of them - -# - -nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) -print(nextnodes) - -# - -nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) -print(nextnodes) - -# - -nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) -print(nextnodes) - -# - -# We have reached the end of this branch. There are no more components. -# -# We can follow this in reverse using the function prevnode() - -# - -lastnode = "sb4_pipe" -prevnodes = walk_hvac.prevnode(edges, lastnode) -print(prevnodes) - -# - -prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) -print(prevnodes) - -# - -prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) -print(prevnodes) - -# - -prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) -print(prevnodes) - -# - -prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) -print(prevnodes) - -# - -prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) -print(prevnodes) - -# - -prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) -print(prevnodes) - -# - -# All the way to where the loop ends - -# - -# Building a Condensor loop - -# - -# We build the condensor loop the same way we built the plant loop. Pipes are put as place holders for the components. Let us build a new idf file with just a condensor loop in it. - -# - -condensorloop_idf = IDF(StringIO("")) -loopname = "c_loop" -sloop = ["sb0", ["sb1", "sb2", "sb3"], "sb4"] # supply side -dloop = ["db0", ["db1", "db2", "db3"], "db4"] # demand side -theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop) -condensorloop_idf.saveas("c_loop.idf") - -# - -# Again, just as we did in the plant loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions nextnode() and prevnode() - -# - -# Building an Air Loop - -# - -# Building an air loop is similar to the plant and condensor loop. The difference is that instead of pipes , we have ducts as placeholder components. The other difference is that we have zones on the demand side. - -# - -airloop_idf = IDF(StringIO("")) -loopname = "a_loop" -sloop = ["sb0", ["sb1", "sb2", "sb3"], "sb4"] # supply side of the loop -dloop = ["zone1", "zone2", "zone3"] # zones on the demand side -hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop) -airloop_idf.saveas("a_loop.idf") - -# - -# Again, just as we did in the plant and condensor loop, we can change the components of the loop, by replacing the branchs and traverse the loop using the functions nextnode() and prevnode() diff --git a/docs/Main_Tutorial.ipynb b/docs/Main_Tutorial.ipynb index 36d114a9..c39abf0d 100644 --- a/docs/Main_Tutorial.ipynb +++ b/docs/Main_Tutorial.ipynb @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 82, "metadata": {}, "outputs": [], "source": [ @@ -117,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 83, "metadata": {}, "outputs": [], "source": [ @@ -136,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 84, "metadata": {}, "outputs": [ { @@ -144,19 +144,19 @@ "output_type": "stream", "text": [ "\n", - "VERSION, \n", + "VERSION,\n", " 7.3; !- Version Identifier\n", "\n", - "SIMULATIONCONTROL, \n", + "SIMULATIONCONTROL,\n", " Yes, !- Do Zone Sizing Calculation\n", " Yes, !- Do System Sizing Calculation\n", " Yes, !- Do Plant Sizing Calculation\n", " No, !- Run Simulation for Sizing Periods\n", " Yes; !- Run Simulation for Weather File Run Periods\n", "\n", - "BUILDING, \n", + "BUILDING,\n", " Empire State Building, !- Name\n", - " 30.0, !- North Axis\n", + " 30, !- North Axis\n", " City, !- Terrain\n", " 0.04, !- Loads Convergence Tolerance Value\n", " 0.4, !- Temperature Convergence Tolerance Value\n", @@ -164,12 +164,12 @@ " 25, !- Maximum Number of Warmup Days\n", " 6; !- Minimum Number of Warmup Days\n", "\n", - "SITE:LOCATION, \n", + "SITE:LOCATION,\n", " CHICAGO_IL_USA TMY2-94846, !- Name\n", " 41.78, !- Latitude\n", " -87.75, !- Longitude\n", - " -6.0, !- Time Zone\n", - " 190.0; !- Elevation\n", + " -6, !- Time Zone\n", + " 190; !- Elevation\n", "\n" ] } @@ -209,12 +209,12 @@ "cell_type": "raw", "metadata": {}, "source": [ - " print filename.idfobjects['OBJECTNAME']" + " print(filename.idfobjects['OBJECTNAME'])" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 85, "metadata": {}, "outputs": [ { @@ -222,9 +222,9 @@ "output_type": "stream", "text": [ "[\n", - "BUILDING, \n", + "BUILDING,\n", " Empire State Building, !- Name\n", - " 30.0, !- North Axis\n", + " 30, !- North Axis\n", " City, !- Terrain\n", " 0.04, !- Loads Convergence Tolerance Value\n", " 0.4, !- Temperature Convergence Tolerance Value\n", @@ -236,7 +236,7 @@ } ], "source": [ - "print idf1.idfobjects['BUILDING'] # put the name of the object you'd like to look at in brackets" + "print(idf1.idfobjects['BUILDING']) # put the name of the object you'd like to look at in brackets" ] }, { @@ -252,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 86, "metadata": {}, "outputs": [], "source": [ @@ -268,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 87, "metadata": {}, "outputs": [ { @@ -280,7 +280,7 @@ } ], "source": [ - "print building.Name\n" + "print(building.Name)\n" ] }, { @@ -292,7 +292,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 88, "metadata": {}, "outputs": [], "source": [ @@ -301,7 +301,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 89, "metadata": {}, "outputs": [ { @@ -313,7 +313,7 @@ } ], "source": [ - "print building.Name\n" + "print(building.Name)\n" ] }, { @@ -325,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 90, "metadata": {}, "outputs": [ { @@ -333,19 +333,19 @@ "output_type": "stream", "text": [ "\n", - "VERSION, \n", + "VERSION,\n", " 7.3; !- Version Identifier\n", "\n", - "SIMULATIONCONTROL, \n", + "SIMULATIONCONTROL,\n", " Yes, !- Do Zone Sizing Calculation\n", " Yes, !- Do System Sizing Calculation\n", " Yes, !- Do Plant Sizing Calculation\n", " No, !- Run Simulation for Sizing Periods\n", " Yes; !- Run Simulation for Weather File Run Periods\n", "\n", - "BUILDING, \n", + "BUILDING,\n", " Empire State Building, !- Name\n", - " 30.0, !- North Axis\n", + " 30, !- North Axis\n", " City, !- Terrain\n", " 0.04, !- Loads Convergence Tolerance Value\n", " 0.4, !- Temperature Convergence Tolerance Value\n", @@ -353,12 +353,12 @@ " 25, !- Maximum Number of Warmup Days\n", " 6; !- Minimum Number of Warmup Days\n", "\n", - "SITE:LOCATION, \n", + "SITE:LOCATION,\n", " CHICAGO_IL_USA TMY2-94846, !- Name\n", " 41.78, !- Latitude\n", " -87.75, !- Longitude\n", - " -6.0, !- Time Zone\n", - " 190.0; !- Elevation\n", + " -6, !- Time Zone\n", + " 190; !- Elevation\n", "\n" ] } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 91, "metadata": {}, "outputs": [], "source": [ @@ -420,14 +420,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 92, "metadata": {}, "outputs": [], "source": [ "import eppy\n", "# import eppy.ex_inits\n", "# reload(eppy.ex_inits)\n", - "import eppy.ex_inits\n" + "import ex_inits\n" ] }, { @@ -445,19 +445,19 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 93, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\naXbRpmXBBrAuJEt3voXPYtKMLfpOTvlcQU+NJC08cwlb6XKNvuNf3Kku6gisfSYkfF1ZHHF1iO5e\nZhDaayV5fj5J3rZKpLTXT+lemr79O3bDDb8ssx0Z7k+uyKwnz4alOOofkPMYxXnla/7abv65v7LK\nG98v+2yc15jd9KIP2cvu/LRV1/6CTPfMXvPq/2zFdXdoraNApi9lIs6K/cwdH7Zbn//ndtvzflMr\n2diIagFCY2QUaGpC/HqldCgrK9FCsTqbhzj9njo6BFqvkn5Ll5DGFq9rUlvIHGCIpGmXol2iFnA7\niAPkaFhlVeIfHeeHuaHe6NYZkhnyPzE00i+hTTggkONs1zlZlbEfpLyyzM+hnNSPTK1R/cUfv8o+\n8pE3aOFu2s6cOGpf/fybLTcbudjs937vDu2SjllxSaZ9/hNvtM989FV2lwaFFalNEwRcQzJD3LFr\nlx/ikK0Fxc6eM1pzk1HDyqys0galHolJss5X3Jjl5aTa33/6Tfanf/ZC+9LnX6t1L9Vledz+7EOv\n0nNZp2Sl6fCEYvvUx15iMxMjcuuabh/6ry+w/3HX6zWTl1ZgtFvAvmCf+dSr7Ut3vUbXf6f6aX+i\nJP0MSdorDGSizVY+LFAKdlc/WjlQOoS1wXJVBeWYpnYIISw0J8WS8m15sjvcv4yrEpG5Xo7ss8cG\ntYtRb6RJ8pVrEJtYLpCORz4E6mJaVDishcRMK5UZSY+S/6d/eq8vZIimdvDGd9p3v/s3WjQYsh9/\n+32aVv263X77r9iPH/57rZLr/drX2dkjX7eXvuFLdvfXf1dG+Fp0kNT+3EO/pAXIL8v0p191DmBz\nGUWOR3kCBXp7+61QXgLj4adEgfWgGb5zpTP7dYNyrevEG8S4xG1OOwlAwHX1A3B42gC1ANqBhLIg\n3a1KeEjlzHwntQlH0VO16CZ7AivVQh9z3pnxRW18KdZzbVHX+61nutwFRWFyzD71obfar77zizq4\noEgqkLfY29/5WZ/kL0odS63f9pYPWFlFuX3iw2+1N7/jL5W/tsZnFtrn/vu/t/f8zj3aKVlnP/z+\nvfJNtMMx54tfeJ9lCrgZanAhJfnPZuV/J0ll/eQn32i//LaPyLpst7wBrthdH3mVveEtH7ZynWQ1\nIwl+eWlOa2TnpKb9GUvKTrC/+uir7T/93te0h2TI/v5vfsN+8/1fsj/901+0t//HuyRsYimXYp/7\n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\n" + "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", + "import ex_inits #no need to know this code, it just shows the image below\n", "for_images = ex_inits\n", "for_images.display_png(for_images.idfeditor) \n" ] @@ -486,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 94, "metadata": {}, "outputs": [ { @@ -498,7 +498,7 @@ } ], "source": [ - "print building.Terrain\n" + "print(building.Terrain)\n" ] }, { @@ -518,7 +518,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 95, "metadata": {}, "outputs": [ { @@ -530,7 +530,7 @@ } ], "source": [ - "print building.North_Axis\n" + "print(building.North_Axis)\n" ] }, { @@ -542,7 +542,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 96, "metadata": {}, "outputs": [ { @@ -561,14 +561,14 @@ } ], "source": [ - "print building.Name\n", - "print building.North_Axis\n", - "print building.Terrain\n", - "print building.Loads_Convergence_Tolerance_Value\n", - "print building.Temperature_Convergence_Tolerance_Value\n", - "print building.Solar_Distribution\n", - "print building.Maximum_Number_of_Warmup_Days\n", - "print building.Minimum_Number_of_Warmup_Days\n" + "print(building.Name) \n", + "print(building.North_Axis) \n", + "print(building.Terrain) \n", + "print(building.Loads_Convergence_Tolerance_Value) \n", + "print(building.Temperature_Convergence_Tolerance_Value) \n", + "print(building.Solar_Distribution) \n", + "print(building.Maximum_Number_of_Warmup_Days) \n", + "print(building.Minimum_Number_of_Warmup_Days) \n" ] }, { @@ -635,7 +635,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 97, "metadata": {}, "outputs": [], "source": [ @@ -652,7 +652,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 98, "metadata": {}, "outputs": [ { @@ -661,7 +661,7 @@ "'apple'" ] }, - "execution_count": 17, + "execution_count": 98, "metadata": {}, "output_type": "execute_result" } @@ -681,7 +681,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 99, "metadata": {}, "outputs": [ { @@ -693,7 +693,7 @@ } ], "source": [ - "print fruits[2]\n" + "print(fruits[2])\n" ] }, { @@ -705,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 100, "metadata": {}, "outputs": [ { @@ -718,7 +718,7 @@ ], "source": [ "firstfruit = fruits[0]\n", - "print firstfruit\n" + "print(firstfruit)\n" ] }, { @@ -730,7 +730,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 101, "metadata": {}, "outputs": [ { @@ -748,10 +748,10 @@ "goodfruit = fruits[0]\n", "redfruit = fruits[0]\n", "\n", - "print firstfruit\n", - "print goodfruit\n", - "print redfruit\n", - "print fruits[0]\n" + "print(firstfruit) \n", + "print(goodfruit)\n", + "print(redfruit)\n", + "print(fruits[0])" ] }, { @@ -779,7 +779,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 102, "metadata": {}, "outputs": [ { @@ -791,7 +791,7 @@ } ], "source": [ - "print len(fruits)\n" + "print(len(fruits))\n" ] }, { @@ -817,7 +817,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 103, "metadata": {}, "outputs": [], "source": [ @@ -833,7 +833,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 104, "metadata": {}, "outputs": [], "source": [ @@ -858,7 +858,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 105, "metadata": {}, "outputs": [], "source": [ @@ -884,7 +884,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 106, "metadata": {}, "outputs": [ { @@ -892,92 +892,92 @@ "output_type": "stream", "text": [ "[\n", - "Material, \n", + "Material,\n", " F08 Metal surface, !- Name\n", " Smooth, !- Roughness\n", " 0.0008, !- Thickness\n", " 45.28, !- Conductivity\n", - " 7824.0, !- Density\n", - " 500.0; !- Specific Heat\n", + " 7824, !- Density\n", + " 500; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " I01 25mm insulation board, !- Name\n", " MediumRough, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.03, !- Conductivity\n", - " 43.0, !- Density\n", - " 1210.0; !- Specific Heat\n", + " 43, !- Density\n", + " 1210; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " I02 50mm insulation board, !- Name\n", " MediumRough, !- Roughness\n", " 0.0508, !- Thickness\n", " 0.03, !- Conductivity\n", - " 43.0, !- Density\n", - " 1210.0; !- Specific Heat\n", + " 43, !- Density\n", + " 1210; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " G01a 19mm gypsum board, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.019, !- Thickness\n", " 0.16, !- Conductivity\n", - " 800.0, !- Density\n", - " 1090.0; !- Specific Heat\n", + " 800, !- Density\n", + " 1090; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " M11 100mm lightweight concrete, !- Name\n", " MediumRough, !- Roughness\n", " 0.1016, !- Thickness\n", " 0.53, !- Conductivity\n", - " 1280.0, !- Density\n", - " 840.0; !- Specific Heat\n", + " 1280, !- Density\n", + " 840; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " F16 Acoustic tile, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.0191, !- Thickness\n", " 0.06, !- Conductivity\n", - " 368.0, !- Density\n", - " 590.0; !- Specific Heat\n", + " 368, !- Density\n", + " 590; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " M01 100mm brick, !- Name\n", " MediumRough, !- Roughness\n", " 0.1016, !- Thickness\n", " 0.89, !- Conductivity\n", - " 1920.0, !- Density\n", - " 790.0; !- Specific Heat\n", + " 1920, !- Density\n", + " 790; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " M15 200mm heavyweight concrete, !- Name\n", " MediumRough, !- Roughness\n", " 0.2032, !- Thickness\n", " 1.95, !- Conductivity\n", - " 2240.0, !- Density\n", - " 900.0; !- Specific Heat\n", + " 2240, !- Density\n", + " 900; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " M05 200mm concrete block, !- Name\n", " MediumRough, !- Roughness\n", " 0.2032, !- Thickness\n", " 1.11, !- Conductivity\n", - " 800.0, !- Density\n", - " 920.0; !- Specific Heat\n", + " 800, !- Density\n", + " 920; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " G05 25mm wood, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.15, !- Conductivity\n", - " 608.0, !- Density\n", - " 1630.0; !- Specific Heat\n", + " 608, !- Density\n", + " 1630; !- Specific Heat\n", "]\n" ] } ], "source": [ "materials = idf1.idfobjects[\"MATERIAL\"]\n", - "print materials\n" + "print(materials)\n" ] }, { @@ -993,7 +993,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 107, "metadata": {}, "outputs": [], "source": [ @@ -1003,7 +1003,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 108, "metadata": {}, "outputs": [ { @@ -1011,19 +1011,19 @@ "output_type": "stream", "text": [ "\n", - "Material, \n", + "Material,\n", " F08 Metal surface, !- Name\n", " Smooth, !- Roughness\n", " 0.0008, !- Thickness\n", " 45.28, !- Conductivity\n", - " 7824.0, !- Density\n", - " 500.0; !- Specific Heat\n", + " 7824, !- Density\n", + " 500; !- Specific Heat\n", "\n" ] } ], "source": [ - "print firstmaterial\n" + "print(firstmaterial)\n" ] }, { @@ -1035,7 +1035,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 109, "metadata": {}, "outputs": [ { @@ -1043,19 +1043,19 @@ "output_type": "stream", "text": [ "\n", - "Material, \n", + "Material,\n", " I01 25mm insulation board, !- Name\n", " MediumRough, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.03, !- Conductivity\n", - " 43.0, !- Density\n", - " 1210.0; !- Specific Heat\n", + " 43, !- Density\n", + " 1210; !- Specific Heat\n", "\n" ] } ], "source": [ - "print secondmaterial\n" + "print(secondmaterial)\n" ] }, { @@ -1094,7 +1094,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 110, "metadata": {}, "outputs": [ { @@ -1108,7 +1108,7 @@ "source": [ "bad_architects = [\"Donald Trump\", \"Mick Jagger\", \n", " \"Steve Jobs\", \"Lady Gaga\", \"Santa Clause\"]\n", - "print bad_architects[3]\n" + "print(bad_architects[3])\n" ] }, { @@ -1120,7 +1120,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 111, "metadata": {}, "outputs": [ { @@ -1133,8 +1133,8 @@ } ], "source": [ - "print bad_architects[-1]\n", - "print bad_architects[-2]\n" + "print(bad_architects[-1])\n", + "print(bad_architects[-2])\n" ] }, { @@ -1160,7 +1160,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 112, "metadata": {}, "outputs": [ { @@ -1172,7 +1172,7 @@ } ], "source": [ - "print bad_architects[1:3] # slices at 1 and 3\n" + "print(bad_architects[1:3]) # slices at 1 and 3\n" ] }, { @@ -1212,7 +1212,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 113, "metadata": {}, "outputs": [ { @@ -1225,8 +1225,8 @@ } ], "source": [ - "print bad_architects[2:-1] # slices at 2 and -1\n", - "print bad_architects[-3:-1] # slices at -3 and -1\n" + "print(bad_architects[2:-1]) # slices at 2 and -1\n", + "print(bad_architects[-3:-1]) # slices at -3 and -1\n" ] }, { @@ -1238,7 +1238,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 114, "metadata": {}, "outputs": [ { @@ -1253,10 +1253,10 @@ } ], "source": [ - "print bad_architects[3:] \n", - "print bad_architects[:2] \n", - "print bad_architects[-3:] \n", - "print bad_architects[:-2] \n" + "print(bad_architects[3:] )\n", + "print(bad_architects[:2] )\n", + "print(bad_architects[-3:] )\n", + "print(bad_architects[:-2] )\n" ] }, { @@ -1291,7 +1291,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 115, "metadata": {}, "outputs": [ { @@ -1304,7 +1304,7 @@ ], "source": [ "bad_architects.append(\"First-year students\")\n", - "print bad_architects\n" + "print(bad_architects)\n" ] }, { @@ -1337,7 +1337,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 116, "metadata": {}, "outputs": [ { @@ -1350,7 +1350,7 @@ ], "source": [ "bad_architects.remove(\"First-year students\")\n", - "print bad_architects\n" + "print(bad_architects)\n" ] }, { @@ -1373,7 +1373,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 117, "metadata": {}, "outputs": [ { @@ -1386,12 +1386,12 @@ ], "source": [ "what_i_ate_today = [\"coffee\", \"bacon\", \"eggs\"]\n", - "print what_i_ate_today\n" + "print(what_i_ate_today)\n" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 118, "metadata": {}, "outputs": [ { @@ -1405,12 +1405,12 @@ "source": [ "what_i_ate_today.append(\"vegetables\") # adds vegetables to the end of the list\n", "# but I don't like vegetables\n", - "print what_i_ate_today\n" + "print(what_i_ate_today)\n" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 119, "metadata": {}, "outputs": [ { @@ -1424,7 +1424,7 @@ "source": [ "# since I don't like vegetables\n", "what_i_ate_today.pop(-1) # use index of -1, since vegetables is the last item in the list\n", - "print what_i_ate_today\n" + "print(what_i_ate_today)\n" ] }, { @@ -1436,7 +1436,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 120, "metadata": {}, "outputs": [ { @@ -1445,7 +1445,7 @@ "'bacon'" ] }, - "execution_count": 39, + "execution_count": 120, "metadata": {}, "output_type": "execute_result" } @@ -1467,7 +1467,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 121, "metadata": {}, "outputs": [ { @@ -1481,8 +1481,8 @@ ], "source": [ "was_first_item = what_i_ate_today.pop(0)\n", - "print 'was_first_item =', was_first_item\n", - "print 'what_i_ate_today = ', what_i_ate_today" + "print('was_first_item =', was_first_item)\n", + "print('what_i_ate_today = ', what_i_ate_today)" ] }, { @@ -1512,7 +1512,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 122, "metadata": {}, "outputs": [], "source": [ @@ -1530,7 +1530,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 123, "metadata": {}, "outputs": [ { @@ -1538,19 +1538,19 @@ "output_type": "stream", "text": [ "\n", - "Material, \n", + "Material,\n", " G05 25mm wood, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.15, !- Conductivity\n", - " 608.0, !- Density\n", - " 1630.0; !- Specific Heat\n", + " 608, !- Density\n", + " 1630; !- Specific Heat\n", "\n" ] } ], "source": [ - "print materials[-1]\n" + "print(materials[-1])\n" ] }, { @@ -1562,7 +1562,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 124, "metadata": {}, "outputs": [ { @@ -1570,27 +1570,27 @@ "output_type": "stream", "text": [ "[\n", - "Material, \n", + "Material,\n", " M05 200mm concrete block, !- Name\n", " MediumRough, !- Roughness\n", " 0.2032, !- Thickness\n", " 1.11, !- Conductivity\n", - " 800.0, !- Density\n", - " 920.0; !- Specific Heat\n", + " 800, !- Density\n", + " 920; !- Specific Heat\n", ", \n", - "Material, \n", + "Material,\n", " G05 25mm wood, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.15, !- Conductivity\n", - " 608.0, !- Density\n", - " 1630.0; !- Specific Heat\n", + " 608, !- Density\n", + " 1630; !- Specific Heat\n", "]\n" ] } ], "source": [ - "print materials[-2:]\n" + "print(materials[-2:])\n" ] }, { @@ -1616,7 +1616,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 125, "metadata": {}, "outputs": [ { @@ -1628,7 +1628,7 @@ } ], "source": [ - "print len(materials)\n" + "print(len(materials))\n" ] }, { @@ -1647,7 +1647,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 126, "metadata": {}, "outputs": [], "source": [ @@ -1656,7 +1656,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 127, "metadata": {}, "outputs": [ { @@ -1668,7 +1668,7 @@ } ], "source": [ - "print len(materials)\n" + "print(len(materials))\n" ] }, { @@ -1689,7 +1689,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 128, "metadata": {}, "outputs": [ { @@ -1697,19 +1697,19 @@ "output_type": "stream", "text": [ "\n", - "Material, \n", + "Material,\n", " M05 200mm concrete block, !- Name\n", " MediumRough, !- Roughness\n", " 0.2032, !- Thickness\n", " 1.11, !- Conductivity\n", - " 800.0, !- Density\n", - " 920.0; !- Specific Heat\n", + " 800, !- Density\n", + " 920; !- Specific Heat\n", "\n" ] } ], "source": [ - "print materials[-1]\n" + "print(materials[-1])\n" ] }, { @@ -1737,7 +1737,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 129, "metadata": {}, "outputs": [ { @@ -1745,19 +1745,19 @@ "output_type": "stream", "text": [ "\n", - "Material, \n", + "Material,\n", " G05 25mm wood, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.15, !- Conductivity\n", - " 608.0, !- Density\n", - " 1630.0; !- Specific Heat\n", + " 608, !- Density\n", + " 1630; !- Specific Heat\n", "\n" ] } ], "source": [ - "print was_last_material\n" + "print(was_last_material)\n" ] }, { @@ -1769,7 +1769,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 130, "metadata": {}, "outputs": [], "source": [ @@ -1778,7 +1778,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 131, "metadata": {}, "outputs": [ { @@ -1790,7 +1790,7 @@ } ], "source": [ - "print len(materials)\n" + "print(len(materials))\n" ] }, { @@ -1802,7 +1802,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 132, "metadata": {}, "outputs": [ { @@ -1810,19 +1810,19 @@ "output_type": "stream", "text": [ "\n", - "Material, \n", + "Material,\n", " G05 25mm wood, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.0254, !- Thickness\n", " 0.15, !- Conductivity\n", - " 608.0, !- Density\n", - " 1630.0; !- Specific Heat\n", + " 608, !- Density\n", + " 1630; !- Specific Heat\n", "\n" ] } ], "source": [ - "print materials[-1]\n" + "print(materials[-1])\n" ] }, { @@ -1845,14 +1845,14 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", - "MATERIAL, \n", + "MATERIAL,\n", " , !- Name\n", " , !- Roughness\n", " , !- Thickness\n", @@ -1861,10 +1861,10 @@ " , !- Specific Heat\n", " 0.9, !- Thermal Absorptance\n", " 0.7, !- Solar Absorptance\n", - " 0.7; !- Visible Absorptance\n" + " 0.7; !- Visible Absorptance" ] }, - "execution_count": 52, + "execution_count": 133, "metadata": {}, "output_type": "execute_result" } @@ -1875,7 +1875,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 134, "metadata": {}, "outputs": [ { @@ -1884,7 +1884,7 @@ "11" ] }, - "execution_count": 53, + "execution_count": 134, "metadata": {}, "output_type": "execute_result" } @@ -1904,7 +1904,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 135, "metadata": {}, "outputs": [ { @@ -1912,7 +1912,7 @@ "output_type": "stream", "text": [ "\n", - "MATERIAL, \n", + "MATERIAL,\n", " , !- Name\n", " , !- Roughness\n", " , !- Thickness\n", @@ -1927,7 +1927,7 @@ } ], "source": [ - "print materials[-1]\n" + "print(materials[-1])\n" ] }, { @@ -1945,7 +1945,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 136, "metadata": {}, "outputs": [], "source": [ @@ -1959,25 +1959,15 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 137, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "MATERIAL, \n", - " Peanut Butter, !- Name\n", - " MediumSmooth, !- Roughness\n", - " 0.03, !- Thickness\n", - " 0.16, !- Conductivity\n", - " 600, !- Density\n", - " 1500, !- Specific Heat\n", - " 0.9, !- Thermal Absorptance\n", - " 0.7, !- Solar Absorptance\n", - " 0.7; !- Visible Absorptance\n", - "\n" + "ename": "SyntaxError", + "evalue": "Missing parentheses in call to 'print'. Did you mean print(materials[-1])? (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print materials[-1]\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m Missing parentheses in call to 'print'. Did you mean print(materials[-1])?\n" ] } ], @@ -1994,14 +1984,14 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", - "MATERIAL, \n", + "MATERIAL,\n", " Peanut Butter, !- Name\n", " MediumSmooth, !- Roughness\n", " 0.03, !- Thickness\n", @@ -2010,10 +2000,10 @@ " 1500, !- Specific Heat\n", " 0.9, !- Thermal Absorptance\n", " 0.7, !- Solar Absorptance\n", - " 0.7; !- Visible Absorptance\n" + " 0.7; !- Visible Absorptance" ] }, - "execution_count": 57, + "execution_count": 138, "metadata": {}, "output_type": "execute_result" } @@ -2100,7 +2090,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 139, "metadata": {}, "outputs": [], "source": [ @@ -2116,7 +2106,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 140, "metadata": {}, "outputs": [ { @@ -2131,7 +2121,7 @@ ], "source": [ "for fruit in fruits:\n", - " print fruit\n", + " print(fruit)\n", " " ] }, @@ -2148,7 +2138,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 141, "metadata": {}, "outputs": [ { @@ -2163,7 +2153,7 @@ ], "source": [ "for fruit in fruits:\n", - " print \"I am a fruit said the\", fruit\n", + " print(\"I am a fruit said the\", fruit)\n", " " ] }, @@ -2176,7 +2166,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 142, "metadata": {}, "outputs": [], "source": [ @@ -2189,7 +2179,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 143, "metadata": {}, "outputs": [ { @@ -2201,12 +2191,12 @@ } ], "source": [ - "print rottenfruits\n" + "print(rottenfruits)\n" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 144, "metadata": {}, "outputs": [], "source": [ @@ -2244,7 +2234,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 145, "metadata": {}, "outputs": [ { @@ -2256,7 +2246,7 @@ } ], "source": [ - "print rottenfruits\n" + "print(rottenfruits)\n" ] }, { @@ -2289,7 +2279,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 146, "metadata": {}, "outputs": [], "source": [ @@ -2298,7 +2288,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 147, "metadata": {}, "outputs": [ { @@ -2313,7 +2303,7 @@ "source": [ "for fruit in fruits: # steps through every fruit in fruits\n", " if len(fruit) > 5: # checks to see if the length of the word is more than 5\n", - " print fruit # if true, print the fruit\n", + " print(fruit) # if true, print the fruit\n", " # if false, python goes back to the 'for' loop \n", " # and checks the next item in the list\n", " " @@ -2328,7 +2318,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 148, "metadata": {}, "outputs": [], "source": [ @@ -2343,7 +2333,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 149, "metadata": {}, "outputs": [ { @@ -2355,12 +2345,12 @@ } ], "source": [ - "print p_fruits\n" + "print(p_fruits)\n" ] }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 150, "metadata": {}, "outputs": [], "source": [ @@ -2399,7 +2389,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 151, "metadata": {}, "outputs": [ { @@ -2411,7 +2401,7 @@ } ], "source": [ - "print p_fruits\n" + "print(p_fruits)\n" ] }, { @@ -2439,16 +2429,16 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 152, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[0, 1, 2, 3]" + "range(0, 4)" ] }, - "execution_count": 71, + "execution_count": 152, "metadata": {}, "output_type": "execute_result" } @@ -2459,7 +2449,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 153, "metadata": {}, "outputs": [ { @@ -2475,13 +2465,13 @@ ], "source": [ "for i in range(4):\n", - " print i\n", + " print(i)\n", " " ] }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 154, "metadata": {}, "outputs": [ { @@ -2490,7 +2480,7 @@ "3" ] }, - "execution_count": 73, + "execution_count": 154, "metadata": {}, "output_type": "execute_result" } @@ -2501,16 +2491,15 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 155, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "1\n", - "2\n" + "ename": "SyntaxError", + "evalue": "Missing parentheses in call to 'print'. Did you mean print(i)? (, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m print i\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m Missing parentheses in call to 'print'. Did you mean print(i)?\n" ] } ], @@ -2522,7 +2511,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 156, "metadata": {}, "outputs": [ { @@ -2537,13 +2526,13 @@ ], "source": [ "for i in range(len(p_fruits)):\n", - " print p_fruits[i]\n", + " print(p_fruits[i])\n", " " ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 157, "metadata": {}, "outputs": [ { @@ -2558,13 +2547,13 @@ ], "source": [ "for i in range(len(p_fruits)):\n", - " print i, p_fruits[i]\n", + " print(i, p_fruits[i])\n", " " ] }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 158, "metadata": {}, "outputs": [ { @@ -2579,13 +2568,13 @@ ], "source": [ "for item_from_enumerate in enumerate(p_fruits):\n", - " print item_from_enumerate\n", + " print(item_from_enumerate)\n", " " ] }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 159, "metadata": {}, "outputs": [ { @@ -2600,7 +2589,7 @@ ], "source": [ "for i, fruit in enumerate(p_fruits):\n", - " print i, fruit\n", + " print(i, fruit)\n", " " ] }, @@ -2624,7 +2613,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 160, "metadata": {}, "outputs": [ { @@ -2648,33 +2637,33 @@ ], "source": [ "for material in materials:\n", - " print material.Name \n", + " print(material.Name )\n", " " ] }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 161, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[u'F08 Metal surface',\n", - " u'I01 25mm insulation board',\n", - " u'I02 50mm insulation board',\n", - " u'G01a 19mm gypsum board',\n", - " u'M11 100mm lightweight concrete',\n", - " u'F16 Acoustic tile',\n", - " u'M01 100mm brick',\n", - " u'M15 200mm heavyweight concrete',\n", - " u'M05 200mm concrete block',\n", - " u'G05 25mm wood',\n", + "['F08 Metal surface',\n", + " 'I01 25mm insulation board',\n", + " 'I02 50mm insulation board',\n", + " 'G01a 19mm gypsum board',\n", + " 'M11 100mm lightweight concrete',\n", + " 'F16 Acoustic tile',\n", + " 'M01 100mm brick',\n", + " 'M15 200mm heavyweight concrete',\n", + " 'M05 200mm concrete block',\n", + " 'G05 25mm wood',\n", " 'Peanut Butter',\n", " 'Peanut Butter']" ] }, - "execution_count": 80, + "execution_count": 161, "metadata": {}, "output_type": "execute_result" } @@ -2685,27 +2674,27 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 162, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[u'Smooth',\n", - " u'MediumRough',\n", - " u'MediumRough',\n", - " u'MediumSmooth',\n", - " u'MediumRough',\n", - " u'MediumSmooth',\n", - " u'MediumRough',\n", - " u'MediumRough',\n", - " u'MediumRough',\n", - " u'MediumSmooth',\n", + "['Smooth',\n", + " 'MediumRough',\n", + " 'MediumRough',\n", + " 'MediumSmooth',\n", + " 'MediumRough',\n", + " 'MediumSmooth',\n", + " 'MediumRough',\n", + " 'MediumRough',\n", + " 'MediumRough',\n", + " 'MediumSmooth',\n", " 'MediumSmooth',\n", " 'MediumSmooth']" ] }, - "execution_count": 81, + "execution_count": 162, "metadata": {}, "output_type": "execute_result" } @@ -2716,7 +2705,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 163, "metadata": {}, "outputs": [ { @@ -2736,7 +2725,7 @@ " 0.03]" ] }, - "execution_count": 82, + "execution_count": 163, "metadata": {}, "output_type": "execute_result" } @@ -2747,7 +2736,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 164, "metadata": {}, "outputs": [ { @@ -2756,7 +2745,7 @@ "[0.1016, 0.1016, 0.2032, 0.2032]" ] }, - "execution_count": 83, + "execution_count": 164, "metadata": {}, "output_type": "execute_result" } @@ -2767,19 +2756,19 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 165, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[u'M11 100mm lightweight concrete',\n", - " u'M01 100mm brick',\n", - " u'M15 200mm heavyweight concrete',\n", - " u'M05 200mm concrete block']" + "['M11 100mm lightweight concrete',\n", + " 'M01 100mm brick',\n", + " 'M15 200mm heavyweight concrete',\n", + " 'M05 200mm concrete block']" ] }, - "execution_count": 84, + "execution_count": 165, "metadata": {}, "output_type": "execute_result" } @@ -2790,7 +2779,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 166, "metadata": {}, "outputs": [], "source": [ @@ -2799,51 +2788,47 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 167, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\n", - "Material, \n", - " M11 100mm lightweight concrete, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.1016, !- Thickness\n", - " 0.53, !- Conductivity\n", - " 1280.0, !- Density\n", - " 840.0; !- Specific Heat\n", - ",\n", + " Material,\n", + " M11 100mm lightweight concrete, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.1016, !- Thickness\n", + " 0.53, !- Conductivity\n", + " 1280, !- Density\n", + " 840; !- Specific Heat,\n", " \n", - "Material, \n", - " M01 100mm brick, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.1016, !- Thickness\n", - " 0.89, !- Conductivity\n", - " 1920.0, !- Density\n", - " 790.0; !- Specific Heat\n", - ",\n", + " Material,\n", + " M01 100mm brick, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.1016, !- Thickness\n", + " 0.89, !- Conductivity\n", + " 1920, !- Density\n", + " 790; !- Specific Heat,\n", " \n", - "Material, \n", - " M15 200mm heavyweight concrete, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.2032, !- Thickness\n", - " 1.95, !- Conductivity\n", - " 2240.0, !- Density\n", - " 900.0; !- Specific Heat\n", - ",\n", + " Material,\n", + " M15 200mm heavyweight concrete, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.2032, !- Thickness\n", + " 1.95, !- Conductivity\n", + " 2240, !- Density\n", + " 900; !- Specific Heat,\n", " \n", - "Material, \n", - " M05 200mm concrete block, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.2032, !- Thickness\n", - " 1.11, !- Conductivity\n", - " 800.0, !- Density\n", - " 920.0; !- Specific Heat\n", - "]" + " Material,\n", + " M05 200mm concrete block, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.2032, !- Thickness\n", + " 1.11, !- Conductivity\n", + " 800, !- Density\n", + " 920; !- Specific Heat]" ] }, - "execution_count": 86, + "execution_count": 167, "metadata": {}, "output_type": "execute_result" } @@ -2854,7 +2839,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 168, "metadata": {}, "outputs": [], "source": [ @@ -2866,51 +2851,47 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 169, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\n", - "Material, \n", - " THICK M11 100mm lightweight concrete, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.1016, !- Thickness\n", - " 0.53, !- Conductivity\n", - " 1280.0, !- Density\n", - " 840.0; !- Specific Heat\n", - ",\n", + " Material,\n", + " THICK M11 100mm lightweight concrete, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.1016, !- Thickness\n", + " 0.53, !- Conductivity\n", + " 1280, !- Density\n", + " 840; !- Specific Heat,\n", " \n", - "Material, \n", - " THICK M01 100mm brick, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.1016, !- Thickness\n", - " 0.89, !- Conductivity\n", - " 1920.0, !- Density\n", - " 790.0; !- Specific Heat\n", - ",\n", + " Material,\n", + " THICK M01 100mm brick, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.1016, !- Thickness\n", + " 0.89, !- Conductivity\n", + " 1920, !- Density\n", + " 790; !- Specific Heat,\n", " \n", - "Material, \n", - " THICK M15 200mm heavyweight concrete, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.2032, !- Thickness\n", - " 1.95, !- Conductivity\n", - " 2240.0, !- Density\n", - " 900.0; !- Specific Heat\n", - ",\n", + " Material,\n", + " THICK M15 200mm heavyweight concrete, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.2032, !- Thickness\n", + " 1.95, !- Conductivity\n", + " 2240, !- Density\n", + " 900; !- Specific Heat,\n", " \n", - "Material, \n", - " THICK M05 200mm concrete block, !- Name\n", - " MediumRough, !- Roughness\n", - " 0.2032, !- Thickness\n", - " 1.11, !- Conductivity\n", - " 800.0, !- Density\n", - " 920.0; !- Specific Heat\n", - "]" + " Material,\n", + " THICK M05 200mm concrete block, !- Name\n", + " MediumRough, !- Roughness\n", + " 0.2032, !- Thickness\n", + " 1.11, !- Conductivity\n", + " 800, !- Density\n", + " 920; !- Specific Heat]" ] }, - "execution_count": 88, + "execution_count": 169, "metadata": {}, "output_type": "execute_result" } @@ -2932,12 +2913,12 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 170, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAJcCAIAAABmFcpbAABAAElEQVR4AeydB4AdVfm3p9yyvW82\n2fReIKGGBELovUr7S1UQrKio6IeioIKCDbFgAZWioiBKV3onhZ5Oes8mm+39tpn5njNz9+Zmd5Ns\nkt3s3b3vEO7OnTlzyjMzd85v3ve8R3ccR5NFCAgBISAEhIAQEAJCQAgIASEgBNKPgJF+TZYWCwEh\nIASEgBAQAkJACAgBISAEhIAiIIJQrgMhIASEgBAQAkJACAgBISAEhECaEhBBmKYnXpotBISAEBAC\nQkAICAEhIASEgBAQQSjXgBAQAkJACAgBISAEhIAQEAJCIE0JiCBM0xMvzRYCQkAICAEhIASEgBAQ\nAkJACIgglGtACAgBISAEhIAQEAJCQAgIASGQpgREEKbpiZdmCwEhIASEgBAQAkJACAgBISAERBDK\nNSAEhIAQEAJCQAgIASEgBISAEEhTAiII0/TES7OFgBAQAkJACAgBISAEhIAQEAIiCOUaEAJCQAgI\nASEgBISAEBACQkAIpCkBEYRpeuKl2UJACAgBISAEhIAQEAJCQAgIARGEcg0IASEgBISAEBACQkAI\nCAEhIATSlIAvTdstzRYCQqDvCDiOo+mqeN3703c1kZL3jQBn0D2BnML4X01zyIoT657UxMZ9y16O\nEgJCQAgIASEgBA4cARGEB461lCQEhAAEoo6zuDG6PWyJcujX14OjOUOD5tS8QHsrdFcOusJQ9GA7\nFPkrBISAEBACQiD1CejqVb0sQkAICIEDRaAiZJ35brWFnnBsTRev9QPFvYfLUQ8Ov64FjB1n8ITi\nwMRsnzL6tpsPrx2R3cPFSnZCQAgIASEgBIRATxMQQdjTRCU/ISAEdkEADag72pLm6Dnv1rjmQT6c\n0oCZ7TNcf8NdHCabU48AjqJI+oYokj5uDQzbTiub3IXT6v6X7FDaVRscZ0quf0aBv8BvzCoMDskw\nsk2dfz5D5ancid33lY6u86Dim1pUxpQZL9TdJB9CQAgIASEgBITAfhEQQbhf+ORgISAE9oaA6s7f\nsLT+qcrQsEwTGZBn6t8bnzclF9916eLvDci+T+u0xbQ59WG3IurcbQ1ZH7fE1FelCtX/y1uiUXs3\np9VpjNqbw7btuqmQbniGb0quOSXHXxIwSgJmeYYZNNhoBk03E3d4ImtYH2XoqeIsixAQAkJACAiB\nHiIggrCHQEo2QkAI7InAS1Wh/20PvVEbro3aN47JPa0kiGlwTJYP+SA2nz3BS7X9rj5TlepC8nlB\ng9a2xmK7FYTNlr0tZIcdZ2FjjGGli5uijC/1suNlwaCAgSAcHDQzTGNytm9UljktNzA0w8TKLIIw\n1a4GqY8QEAJCQAj0awIiCPv16ZPKC4EDT0BZ+WzdMbxuuXLgc+vAZmW+0Va1xt6siXSWCTUR+7+V\nbZvaLA6YWeT/+eR8QpKIDjzw5y/VSuQKitgOHqcRW3u7NrSkKba+NfZWXSSMO2rceOj4TcMdr6hj\nSs71GZcPzRqV5TuuKMDG9svPvfj45v5VF6MMT021My31EQJCQAgIgVQlIIIwVc+M1EsIpCQBLwyV\n6nXzP/1vR2+y7Ll1kbl1eA/qD21ucb0FvY55hwY4AV0/uSRjdpH/2KLgiExTpZTBYB0gpftX5Wvq\nLajEt2ujG0Ox5c2x9+vDYVtvsWyumLpIzBtQyMjC6fnBWUXBYwoDgzOMXNPIMvWERPQuz/bM5K8Q\nEAJCQAgIASGwSwIiCHeJRnYIASHQFQHVZa8I2ataopj7JuX6/13R+sjWNjclks+YmGMOz/QV+c1O\nxzqMDbt2eHYOcShVcBn69u5/ndLJhrQl4Pmaxl81uBFleGPg/tW2hq2Pm5GC2uvV4Tbb4drbHIoR\nsVYl1nWGGk7O9eNZOjbbNzzTHJZhFvsNsT+n7YUkDRcCQkAICIG9IiCCcK9wSWIhkCYElF5jPJfq\njbvdc6Xe1Hd9UWPkb5tbN4Ssja3Wtog1Osu3rtUiNsxVwzIn5/jphI/OMsuCZj6jA/tuQVdQ1eTP\nXdXFS+PtTV7fVXrZfsAJqEtRXX5JC/6l28JWZdhGEC5sjCxsii5qjMZsNRQVO2FZUOcKHJnpm5bn\nPwSVmOvzsvByca9sd1WNRfS2qT+yCAEhIASEgBBIWwIiCNP21EvDhcCuCaCN2OkaZxBW7hoDvbTH\nK1vv29C6vjXi6ER+JE28m35sYYAxgUwb0KHjvusCDsSeDgKvw9fkGuxmV3KyAbC+ZcuWxx577PDD\nD585c2YgkJhTvr+2jAilxKHhysS/dE5d5LXq0Ju1kVq+qzGEesDQCUvDpCYnFmUwR+LxRUHs1lyy\n6iUHV7UrDWWoYX8991JvISAEhIAQ6DkCIgh7jqXkJAQGCgEVk8PRQ7b95LaQmkvAlX7v1UeXNccC\nhkYwmM+NyJ5VFBiRSYwPb3EFpOqEt284UH/Rci0tLW1tns+qKpVK5OTkBINBrzbhcJgEpmnm5uYa\nSbOok9K2bXaRINNdOuxNbkEkElm1atXIkSPJOXl7NBpdvXp1eXl5fn5+8vb9Wb/yyiuXLl364IMP\nHnLIIfuTT+dj//vf/5K5ZVknn3zyPffcQ7X74IR1rtZ+bfEuPLKgKfE3F8uao3PqogxqXdsabbac\n1qjTZhPtVBkEj8oPHFMUOKEoOD7bl20abuyZA37J7ld75WAhIASEgBAQAj1PINGf6/msJUchIAT6\nmoDbRe66Es5z28PVERXzU1lKuliczSHrvo0tboh/ZU4xDY0xWieUZHxpJOMAkX7JPWnVG1f/7bSx\ni0x7fBM64G9/+xtSJ5Ez4u6LX/ziSSedxJZ169b94x//+OijjxByqKCzzz67qKjIS9nU1PTqq68+\n//zzGM3GjBnDrhNOOMHv9yfySaygOVtbW//617+ee+65s2bNShZRVVVV99577/XXX9+DgtArl0IT\nFeiRFdTv//73P1p99913T5o0CXmc3JAeKaIvMlGewVx0XHtxYLqGjyj/Pjs8sypqf9xETJookW83\ntlkMO3y3PvxufeThLa2nlWR8fUxOMa83ZBECQkAICAEhkPYERBCm/SUgAAYsAaUoXJGG5lPDq9a3\nWfSPvea+Uh16pTpcH1NhG3cDIN/UbxiTW4bjnabhbUdoUIJ2BI2uDlECsavtu8m9h3YtWbLkxRdf\nnD59+pAhQ8gyIyMDeyAr1dXVn//85xctWoSpbePGjU8//fSGDRu+/vWvZ2VloY6ee+65b37zm+ii\nCRMmoJSeeeYZjHKzZ8/uslJYCF977TVUJaVge0ykodyXXnrp4osvHj9+fGJjlyubNm364IMPUGIs\nXSbosLHH1RpNbmhowDx49dVX0+oOxfXjr65VWl15O64+d03XSgNmabF5XHEwZNmVEbsybDHm8K3a\nyEvV4YcrWglJenxxcGquP09FJu2zq7cfk5eqCwEhIASEwEAhIIJwoJxJaYcQ6EhA2U3Qgn/e2Iol\n8NWaMEE4VJRGd2mzHKwjp5ZkEHuj43FJ35kigrD+XsBQZYhRbnc7+t1JCft4FY13ww03nHPOOV49\nvNFxN91009y5c2+77bbPfe5zCKHrrrvuvvvuY+zcKaec0tjY+NBDD5WWljKgrqysDBMiRsXf/va3\nXQpCtBlSCtkZCoU++9nPDh482CsFifWTn/wE2VlXV7f79mO9evfdd7/85S8jQbspCHef4f7s9dTy\n/uTQ747NMNW7jBEZppavnVGaGbXrn9keemhz68Nb2k4vDf5fedbRhT73ZknFa7vf0ZYKCwEhIASE\nQL8jsLu+YL9rjFRYCAgBjwDx+Z+vCt2xurEuStwNrIMaVpAc0ygIGBlx+55zQnHwO2P37DeonPE8\n6wt/42sphxnNhuEOWZioGSZB3EHHjRuHGvQG/v3whz88+uij33777eOOOy4Wi9XW1h511FGowezs\nbJINGzassrIycXhiBS1H5gwUZJji4sWLX3nllSuuuMLb+5///GfFihWsY3hEcCaEFpkjODmQnDFX\nkoC9SErGKyIdWcnLyyNPEpCMxNjrWG9ubmZl94FevGTo0sLCQp9P/XpzFF850LNb0iiqQf6I1Zqa\nGjZyCEUUFBRg5GThEBQsCVgYM7n7OpCeGnIIDrEJZ1pyw++UwZNsTDaWkiyVl/YBhjqRj44pCq5t\njRF6pjpqP1nZxr8j8wPnlGXOLAxwhTM5ChGTcIpWbtGyCAEhIASEgBBIAwIiCNPgJEsT04BAu2uo\naiphYJgZ4qWqEOEWJ+f4Mk0D88iYLHNSjp+vzNLmSsTudnYTJsFU7h4TGAa3T9wyaT5jCM8666wF\nCxYw8I9hgZ4aRPmg/Yiu6W0nDX6kqDv8SBlAOG/evI8//vhTn/pU5ysF5cZGEnj5MADvwgsv5HCU\nEhZFZBXCbPPmzQgkTxAiRB9//HHSI5wOPvjgiy66aNq0aWykekjKf//73xz7ta99jcT/+te/3njj\nDfTh1KlTcXadM2cO7qyHHnpo5zp4W1CVH374IQMm169ff+aZZ15++eVIsn/+858vv/wyB2L5JNn3\nv/99mkn+iM9rr73WM2aiDFHFDJ7EyEka3GiPOOII0tCiDnVALXt1QE+S+Nlnn33//fc55NRTT73k\nkkswqKKZH3nkkXfeeYfm4z2LSfawww7bTTAer+Yp8Bm/itW51LVLy7M+OSQTa/lrNeH/bm/7sCH6\nXkPkvfqIMn472kklwRxT52YZlYVRkfvFyPfHhxq6FncCLmEp996RdPcm2gsCXKnkHc+4F/Lfi6pI\nUiEgBISAEEgXAiII0+VMSzsHOgH6kM6msPXXza1zasLLmpmw22E2tu9PyCsNmmUBIxurBwtb6W8O\nuAWthTuo16ySkhLcMgn3giQbPny4txFdh40L3YVoZDtSCkMfegz9g7Vt+/btyEIG1+0KDMP/Djro\nIAYKIvYwPF5wwQUMHWR04ic/+cnly5djJ8RMh7kM6XXnnXfef//9xJ5B+P3pT39CcL7wwgtIJkqn\nDhgAPRvgXXfd9Ytf/AKJRbZYGhFaJCAEqCsHuq4FGuynP/0pAUhpBUF00IS0YtmyZYxjRBxyDMe+\n9dZbNIQGAoQ01AHBxlcyR4KykAw7qmfZS9QB4Zqow1VXXUU9aRQaEqGL6iOrhx9+eMaMGcXFxd/5\nzneeeuqpKVOmsP673/2O4n7961/zlWw95dx11VNvK3eLT9cILXN0YWBlc2x9W+zV6jDVfLU2rFZ0\n7entoQK/wY3DTTQ2y3dovj/PNE4sVhN1uOJSnah22dYLzevd3HuhwpKlEBACQkAI9GcCIgj789mT\nuguBdgI4IL5YHfrmsoZW24nZenFA/9O0onFZPjzflIuoZ3SIe39i4RhoC9KIeRTQSDQM9YULpefM\nmayvWMfI5m1B5CDtcAQ98cQTkWQIm4ULF6L0vvSlL3VGg7mMBIw8xKqGUREjIYZHbH1k9e1vfxsF\niOEO70oUEWMRCU7DOEPGFvIVHXXjjTc+8MAD3/rWt4hiipGQ8DNf/epXMRj+8Y9/xJSHXMRVlWNR\nmExrQdG7kVUkW7t27bHHHvvjH/8YUcfSoaocS5W8xdtFYgpCduK8ig0T4YfdD+WMbRA3113VgWNv\nvfVWRDIpaSnQgIMtlNYRshUhjS6ldEya5513Hp+TJ0/eTbU7VDJ1vqq7QHdyfMbhBf7D8/1nDVLO\nvUx5H7Y0BtxiPHyjNryiObaCSSxq9X9WGNDNMDAVqtvnmMLAtFwC0vbGnaRe2OT6DcyYvZF76vCX\nmggBISAEhEDqEBBBmDrnQmoiBLpLQDmIugYKDAl0YfF2+8OGlnn1UaKBDs8wP1mexRzck3Ld4Ile\nll7XMslvrrsl9ZN0CBJEIGarRH1Zx5mTaSfYgkYiAYpo69atqCO2Yz9ErWES/OUvf8mBa9asueaa\nawg/g5bDmJbIxFthLx6YuF9ibcOtFJmEbQ0R+I1vfAMLJBY5xCHuqehGnDmZxALV5MlFDkc4oaw8\nCyFfyRzrHPqKYXiXXXYZAU6pG2lQjFjkOpTb4Sui99JLL8UiR9HEpzn//PMTU2h4KcnKW0nIM2Ya\nHDVqlOfSmbAQYjakDpg3E3XgqOQ6AArrIu6ghNhBSbLXi7Xzs5/9DFFK09jrIUUlkgkWSM/s6ZXe\nTz7jasv9o26MTNeEnokN1a9dNjSLfzSEOSrm14Xn1UUYi1ujhuNC2AlZ2rPbQ/zrFUGobIPKJfU7\nyxtHZBhHFwZ5p4MZcyiBcRTZeLX7CeTuVJOfMl5aOUXuFCCFfjWAM9HM+A+d+rHb/QQh6spX4Fy5\nrhD2ovW2O42SNEJACAiBfkZABGE/O2FSXSEAgfaOj4YUxJrxVGXbtpA9PMs8qzTz08OyBhM3Q6Wh\nkzTwuo/dPf9HHnkkkVSIMoo3JrY4DsO8xkBBrHyIH2x0aEJMW6gjdiGcWDADIvw4qkMZ7733HgoK\n8YaywoTIKL7f//73+G0iDlFZZM5RSEGmrUdqsoVBep6CQizNnz8fq2CHDJFPdFjRkJ6sYi/rHdJ0\n/kp8GqyLBMJhFB8hVbEo3nLLLZ4SQ5J56alJ8oFUmCV5S2K9cx2wmrKXilErhCuykMWrIStshxXb\naQ6jKPmKlyw2Q1rqeaImch5IK9Pz/dML/F8ZpcC8XosCVMuWNnt1a7TXbi512y5ojLRZGhMnPlrR\ngha6f2P8tPJiw6vDQPrkgiP+68xCNZvLjIKAinqVaKbjINQZAp3FLKi7WBCSk7JVT8b9xXNHeA5A\nSLtovGwWAkJACPQQARGEPQRSshECB5bAosbog5taP2qMrG+N0X+6bkTW2YMyx2f7sn30nAagU+je\n0kWwefY0xBt+m4T3/O53v8twQQQMqgbb2tixYxkOd9pppzHg8PXXX0fboA+9yDEdyiKGCoIQUxvb\nR4wYgSnvRz/6EYMP0ZDILT6xRmJww7uSNLiAYsFDNzKUEVsiRRDJhuimyXkSZgbbGmP/GMSIV+fK\nlSt/9atfJSfocp0Biri5EoGG0hnyR8hT5B/1QchhcsQlFfHJqD+iy1DbLnNI3khMnS7rgAJEK5Ib\nvqBUnmGNlIIzLXFocK+lvVhZGUs5evRohPETTzxBfdiVnPNAWkdZKKOgsiA6JxZ5VF0Tnpbpapbe\nUB6qwDUtVsR2tkcs/FeXNEfWtVhsdF/v9EaJfX7GnP9tD71eo8Zw8ukCjzcT7AFDHxQwgrsWhDhC\nYErl2DFZSr2fWJzhxvzp80ZJBYSAEBAC/YmACML+dLakrmlIQJloaHb722/sN41R5/srG1+oDrXF\nbHyjJub4b5uQzyAof3w+CTd1GpLaucmYsBgIh05jON9vfvMb/DkZC0cQTrQZu/D/RCUyAvCYY47B\nrEeQUj6Zk5DPnbPROBChhXXOC53C6fj0pz/NpIKMV/Ssc3hyoqzYwoGY79hOUBlG66GdkGoINsRV\nhzyxJf7gBz8gCihumWSCfY/ZIxCWVCyRkoIS694K9sY77rgDwyaCFovixIkT0beIXrxeceYk5Cl2\nPIx4XhDUDsd2/krFuqyDl5JhilgCr7/+eihRE8Tzvffei/BjC9oV6ytWQSyE+NAibgewhXAn18N2\nkbLjJHXG2gNb1EUwzjV5TcF7VdNOLg0mpg/tgexTMos7Jinn0FeqwytaML2yxBmHbfuNmvB6Zk11\nrM4VJ5F3k3zcrNZ8RviBzUbQUBOl7MfC761SoScVB68Znj0x2xeX4q5DasJ0qarLIr6p+wFaDhUC\nQiClCHTs/aRU5aQyQkAIqK6REge6ZTs1UYvZtH+/oRkTYK5PH5/t/8Ko7AvKMlXvKUlLpBs0jHII\nMFRZcsMRV6g4vCtRSox5wxEUAca4O0+9IPz4ircnIwkZZ4i4+sIXvoCxLjkHbx0ZxrEsCDa2kC1H\noZewK3r6DVMkOtATh4y4Q54hHQktw4HEGmVwILKNA8mBSnrOqxzIkEVMiMSbqaiowLSIne3BBx/0\n7JNINaQdfq0dKsN2jHIEdCFQKmFFv/jFL9IWjJOYNwlsw/wQJKBRXmQd6oMNMBFk1as5CdjoOZF6\ndWBEJfI1UYeHHnqIEZWeAsT6R/Wee+45SsE5lqGSHHL77bdjR3300UcZGHnGGWdgLGV7h3rK154l\nwHSIBEQd2Is3OeqFg4OOpkL7eHcWK45m6457X3f5+8aVqmt/36zcrTeHrPl1kYqwvZ+g3OHGelPM\nfmRr2yMVbd8Zl3tWWXCQ3xc0lQTccR48JbqfhcnhQkAICIGUIaCGi6RMZaQiQkAIdCag7lA8x16o\nCv2jovX9hiiGwNmFgdNKM84vywgS+9A7ov1v5+Nli0dA9R5dSomV/Sez+6x2v3f/SycHiuAz0YHe\n5zw7VLXDVy9bb2OXu/a5XDlQCOwgwLXlia72XzPHsdsv7h1aLJF+h5lOSUd15Bs1kcTefV4h27Ut\nsUVNsbdqw7URZ3Kuj6kpi+MhuuLVoKZM6FoaMEdm+rxwOPtcnBwoBISAEEgFAiIIU+EsSB2EQEcC\ndEraJ79Wu360qumZytD2sDUqy3fL+NyDc/2DeGUtixAQAkIgfQnE9WNvAGiM2S9XhfDIQBkqtdlh\ncZzSgJHv15nlNdc0Ds71jVFevu2q1XEGB81D8v0J0y474pmoKqN3d3zjl75d/+4ow9O6bnbtee7Y\nKWtCQAgIgZ4nIIKw55lKjkKgBwgoQ4yXjX7T8vrHt4ZijnPtsOwvj8pmvuwuehA9UKRkIQSEgBAQ\nAnECTDMSsh3i3CxqjEfxTaBZ3BSZU0sUHFfbqeGLevJsGag/Q3Pw9cUVlrGIo90RoV8Yme36KODU\n6ulB9caPlK4a7Kj6lCDcedRiomhZEQJCQAj0BgERhL1BVfIUAvtLgO5Ac9RZ3hJ9s4ZICa10Im4e\nl3tFeRZ9CXltvL9w5XghIASEwJ4IuGY6PhJ++R0OcNa0xJijckVL7MOGqPu77Ok6h2hfGBgxLDZb\ndpvSkuhGpf6UIFSmQjvXZ149LGtGYaDAr5cFuwrloIaNaxgYMT+iNjsULF+FgBAQAj1OQARhjyOV\nDIXAfhGoidgb22KLm6JLGqPMMVgdYRSNdnl55jfG5JYEPDdR5XW0X2XIwUJACAgBIbAHAt6Yxi5+\nbHc4cJBDfP+OZM0xe3lLrCXmrGmNVYRUfFR+z6Pt8W6QmB81usFU3eyPLw5oWudZFpWDSLZPn5Dt\nm1kQIOopIxUZr+jWV37/93DaZLcQEAL7QEAE4T5Ak0OEwH4RUC+e3Wd63NqXlFlD1GZKCXoPG9us\nqO0wRuWM0ozji4PHqHfJdBp29DmSDpJVISAEhIAQSF0CG9osfP7b6+esaLaYQnZbyH6Z2YOYY7LT\nIEL1Q+/Y7qgBHR3omgr1kqAxNsvHeMV8nxqgmO/Nzaj8T0koj4Z2uvJXCAiBfSIggnCfsMlBQmCf\nCah3yzz/neXNsddrO8bEu2ddY5ulMesW2u+G0bmnlAQnZfv8bsRzHvsydHCfqcuBQkAICIE+J6BE\noes5GrM1W3MiiDnlHNpZzjlYFl+tCf1lU+vKFuV1ynODBwCPAjxIST0+y3dKafCG0Tnq3WKXGfR5\nU6UCQkAI9CsCIgj71emSyvZzAoQoIFLo+/WR+za1LG/uYqplXEKHZRpMiHx5eVaAcSc8+ek90Gol\nIbt4kdzPeUj1hYAQEAJpRMDVdUr/ue8FPVcR9QPfYVFvBN0pN9SKpjXHtKcqW5lr8Z26aNhxaiN2\nVcSybCUkx2SZMwsD5w3KzPXrhDbN8zFrZRcZdshfvgoBISAEOhAQQdgBiHwVAj1JQD3+vUXX3qmP\nvFIVdoMQRNk8ItN3SJ6/JMDDe8fzm3kFzy3LmJiTFMG8J6sjeQkBISAEhEBPEnA9Nslwx8+4Z8+L\nb4i/x0veGy/dlYPtqdwHRXd8QHA9/aAhMq82Mr8+0hxzljS5wxE1J9M0mC9xfLZvdKaPORKL/caI\nTDXmXL1L5NOtZVemyJ5EIXkJASHQfwmIIOy/505q3i8IKEm4oDH6l00ti5qim1qVVXB0lu+KoVlH\nFfpHZfhyfAbP6h3PafXYdk2CO3Uv+kVLpZJCQAgIgTQj4JnwXMfNhCa0G7ba2z9GFrosdKNsspE3\npDMX5fOh2eojvnRHD6qk3ntGxpljLdzUZn3YEOHzme0htUvT8k29OGjmmEZpQB+T5Z9R6GfoQbwq\nO8qKFyl/hIAQEAIeARGEciUIgV4k0BS1v7ey4YWqcNgiQoA+Mdt/x6S8g3J9fjUaRIUCcJ/gvMNN\n9Anct8bqW2JLL1ZPshYCQkAICIH9JBD94J929Vpr3XzycX/UCRTTHlSULerH3vAk2U4F6ZpRNskc\nNcMcNdMoGOru6tbPftJrQ3LVebZQGFNcvFwdfqU6TGzqqEVsaoyCasyhqetDMkw04Q2jcvJUZDJZ\nhIAQEAJdEBBB2AUU2SQE9oqA46jBHJ6Zj2cwT+vGqL09bD+2re1PG1t5nZvvN4ZnmJ8dkX3+4AxR\nenvFVhILgdQi4Jp1+KDjn3iPEx8Y5m5UH/wff91Dr9yx2+p0m0nOLS3UpNmx2LLnnVCDvWUhn/6D\nz02t1kltukeAM+5EQ9aKV1z9h4pzT3kgR/MzBoCvuhbI1v382mtOLKSFmtvf/e3IXT0yYhEt0qwG\nh/PYyBtsDj3EGDrNKB2rBXN1w9T82VpA5cCiCiBNNwYHelqxyXKeqWxjzOG7dREmMWqMOSEq6DhH\n5PvPKMs4rjDII2lwMC4OVcZu7ojYdm+VbulSr27yKQSEwMAgIIJwYJxHaUUfElCdQxaihy9siC5t\njkUcZ1VzdG59tDJsBXWdaaZOK804Z1BmhhssNNGJ7MMaS9FCQAjsK4H4/U4vPdFr9lz4VIaO5TRU\nOOEmVu2tS5VMwCmwYonGr0K01alZ50TbvHL1YK4T4W1RF5GlvATymcoE3BOraZkFRn65uhJMJpgf\nbxSO0rOLXPmm6cWsF9MEp6XaqdnQZVuctnq7doNTt9lp3GLXV2hIR7IKZOpFo3R/ll44TC8cYY6c\nbuQOVofvuNy6zCyxUT2O3DimXjgy7bXq8KqWGMMOP26O4VlKNgwvnJDjP6E4UBwwGHCIx0pQV+KQ\n0QreFSsPqQRNWREC6UNABGH6nGtpaa8QoC+4rjX2UWNsfn14fl2kImQzaQQPXbqNhAX/1NDsyTk+\n5o9SfUfvadvd53qv1FYyFQJCYD8JqPsY69C6efE+utcDb66yti3TYlGttVYZhUjUsJmC4srBtfHo\nOSUMJ0MKmmOO0fyZWiysfiZk6YcEOL3qJz2QpWcVqnNs+oy8weqkeyfcfVXgyqr4Ce5aYrFT1zEg\na611TmsdTqf2tmX2to/RkHEkph9vUnPU0ebkU7vOoRM6VTH3mvMurPi6o1VH7IqwhSB8bGtoQUOk\nMcbYRS3Xp5cGjWEZxCY1TysNEqT0sHy/X1XebUCnzGWDEBACA5iACMIBfHKlaT1PQD3e3deoPDBZ\nrYnaf9rY8khFKzNFMYqDeaWm5fqPLQqUBIxTSzLxyfG7SrDn6yE5CgEhkETA64qru9LtynqTtLBf\ndYjVn44dXN7juMEXGdlFpzze/1U3t3d7cwj78Z+zIrH17zj1W9QuK2ytnW/Vb3Jvfe52K16YOkod\ngFPojnLZFsxOeIT6p1+pkrDRwBTDpwr/KIsQ2IkAIwH5Z/MkcazKZbFVb8YWP63rhmOYemZB8MSv\nGyOP4kpW15h3caqDO17YO2XY6QuXMUoQq/QDm1q2hOy/b2nheC87H1c7hel6vk//9LBsIp+dVBJQ\nbzKVxIw/9FTR3s2ibhu3Lp2KkA1CQAj0UwIiCPvpiZNq9w0B9XB0tLDtNMScJ7eF/rqlZUublWnq\nQzN9Q4PGhUMyzygN+nG/UUMx3EfmXj6w+6ZVUqoQ6O8EVP/UfV3j9W/VfedoVsQJN7PidWJ3aqK6\nk22dSd3Cza7Yi1oVi5ym7aRRVprqdeoWVv+5d7Hb+VVHGD49mK0ZzAqjab4MLZjj5ak66YQNKRpl\nDJ6sZ+Sb5dP0zDx2uT8X7YW7mXjp5VMI7IkArxei1pq3reUv2bXrneYqLm4GGfqPutIoGqllFqrr\nW11Z/N2nRV2NXJ7avPrIulbr0YrWmKM1xCw+Kwldqu4klSLHp59XljmjwD8yy1ceNNGKDDxUwlGJ\nSK76fS19n6osBwkBIdCrBEQQ9ipeyXzAEXCcVtv5z9a2V6vDr9eGkYKH5fpPKc3A32Zo0Kcese6D\nVD1M3UU9NGURAkKg9wlYW5eoXjL/mmucpm2qU9vWYNdt0DHldbWo7nBLLb3tpJ2qE4z5Ts8fqmfk\nqu1s8GcYjObyZah9/kzVHQ9ksYcRYihAlUalUv+pxb3dk+95dRQ73d+B5O1uavkQArsi4F5P7gcX\ntrXmLQtLdcMWLjNzzNHmmGPNkUfpWQXxC25Xeexuu7owvSuXv3xpiTkrW2ItljO3NtJi2YyDaLO1\n9+sjXipyOrE4OC3Pf2S+/6iCYDBu4ZYreneIZZ8Q6F8ERBD2r/Mlte0rAurxSb+uIWrfvqrptZpw\nbcQq8Ju3jM+dURAozzDxtOmrmkm5QqB/EYhbFzwJ5XZ5PROeu0r/U91KrrGvo2UPO4kaYWXF3CSa\nXbvRqVqp2k5qxmK53WX1NdLstDUoFeZlxacKy7/T4vaF1RZj8BQjnznidD2YYww+SM/IUZ5wWUUY\nAOO3NPFCGCdm+nc6Xr4IgQNJwI7ZNetia96OLfi3Fg2rsYslY/yTTjOnnKVml2BJXO7evbF/dYvY\nDmMO+VzfFtvgznP4UlWYN6EBXS8lDk2W77YJeaOzfa6QpGR5+O0fbjlaCKQGARGEqXEepBapTiDe\nWb1zdSODBuld/nJy/tmDMvymcg9N9bpL/YRAyhBQapDKuIJMrXFjud+VaKtcaW3+wNOJbHSiYWv9\nPGIwxlN7OzD3qYiI7qFqzJWnHNU+QzcYgIUIpG9sDjuMGd4oxyybYow4fHeGepWbqoHq16oeLuu7\nS54yIKUi6UeAGLZWLDrnXsYWqitWZ2xhXmDmZ4xRM9Q7C3XP9Lwp2p0vRSNS2stV4bvWNa1rIU6p\nUxwwfzYp/8SSoFuiumXS72RIi4XAQCMggnCgnVFpT68QcPudD2xuvX1lI8++c8syfzwhL9ev3s3K\nOIpeAS6ZDlQCsYgdblQzszENQ9N2u2KxFm21tjB+r1LdTYZfI+y+G3OFEXvqBjNNtir7h9qta2bA\nCGTTGXaVG/a9yfhtutYRQj5mmuNP4pGmyCmjhScWEYikVVH197iQj0rjjo7aY2JJIAQOMAHvZQrv\nQnhLEnv/YWvLYu4a6sAchoQv0ocdwhwYeoYavNpzi/vCxb3fVJ669k5d5CdrmhY2RnCQuWhw5udG\nZBOnVB6CPQdcchICfUZABGGfoZeC+xcBOotEZrt9VfPEbPM74/JmFQZ8EkG0f51CqW2vEHBFFLIr\n2sYUfBqfqt/Y0WJgVS4nxAvl48zJuD6nZr3dXOUmUspNDdvLLmFKbr10vHLg9LuD9BB1OtNzZ6AP\nd6i8zELPwzNeqtuiuCBU6ypLtwKuuIvXIv7HTbuHDyUe9yL5HnKT3UKgRwl48ix+gfIyJbZurl21\n2sGPOhrS/QFz7PHmmFnGqKN0M9BD5Xr3GZkp86P60DSmVrp3Q/PTlaH6mH1+WeY5ZRmnlmS0F+fe\nfN4t2L5J/goBIdAvCIgg7BenSSrZ5wTUk/iBja23rW66eEjmLybn93mFpAJCIDUIuBrKcWIb5sfm\n/tlhIj4lBzuKKqtpm5qnoavF8GUYE070TzpVU6Fc8ojh6Uqyjjl0dahsEwJpTYBQpE5TlV2xyNq8\nwFr+omKRVeA/8krftE+4oky9KnEHGfbY3eTd7cTZfrM28pt1zYubYoMC+umlwc+OyBlOjDXPlqii\n83bLJp/WJ08aLwRSjIAIwhQ7IVKdFCWgnqz3b2oRQZii50eq1UcEXL9M7H614Sf/n1OzgZ5g133P\nhKWhQz0Nwz/tPN/Ma3VfMDH+ye10dp1Nh6PlqxBIZwLu3efec45th+ojr97tEIwUX2vGFp50ozly\nputp3cULmv2A5jClvZqe0NFXtkR+vqbp5eoomnNitu9bY3NPckcVqvG8cvvuB2I5VAj0CQERhH2C\nXQrtZwSitj2nLvr1ZfXNMefzI7O/OcYNSd/PGiHVFQK9QUC9Kwm/cLu1+g1CuQTOuEUP5nZ2u+ys\nB5UxQVWH7qy3oqLBuN6mKsNdyMreqL/kKQT6LwHuGSXOvDvGWjOHkDOOHSMeL8Z235FXmBNPMbC6\n95w+c29OpQYRgcq92nF4T/rPirb1rTGC/x5bGLh5fO6oTDPTFAth/72opOZpSsD8wQ9+kKZNl2YL\ngW4TWNkc/cHKpo0h68qhWV8YmZ3JC9Cee8R2uxaSUAikDgG6g0q18cdeNzf6zoN6ZqF/1meNktFd\n9j5J2eEfLXG3qA/0n5KA7ofazDZZhIAQ2DMB91ZRTyO1oueUGuXTzJHTtWCOXb3WXjfHaakyh0zR\n3Zkz95xZN1K4BXlPPwpV9+5h+YFjC4PMvFQXtRc2RQlGui1sBQx9RIbpylS5mbuBVZIIgRQgIIIw\nBU6CVCG1CbRazr0bWxgyMTrT/PVBhYUBNdOEdFpT+6RJ7XqXgCcH6ethGIy+/Qc9FjWnnO6bdKpu\nBMS817voJXch0ImAez8yab1fzykx8srNYYciDrWatfaWJUbxaKN0XKcjenJDgV+fXhA4pjBQHXEW\nNUaRhe/URxlnyEZ5UPYkaMlLCPQmATHr9yZdyXtAEKiN2n/b3Bq2nD9PK871JuOlzyuLEEhnAu4d\nYFetjX34CLNHaNnFgVmfxxDBmCU3EmE6o5G2C4EDTwBfTgNfa/e+dDRfwDfpFH3IQZpua+Hm3q4N\npWYZ+pRc/x+mFjw1vXhStm9LKPaLNU2fXVjHBPe9XbrkLwSEQI8QEEHYIxglk4FJgGdsi2V/ZmGt\nqetXDMsqwQ9G+eZ4DjMDs8nSKiHQLQI4jFoxu36jE2nljgiec7tj8DRRt4fy+ZRFCAiBA0hAPZTU\no4ki3SeUuhV5Wqlb0tvay3XxCtV5UB6SF3h+RulXR2aXBM2Xa8K/XNvUajG5Pb8X/JNFCAiB1CUg\ngjB1z43UrM8JEOXisYq2lS2xcVnm5eVZ2Waf10gqIARSggDdT6e1NvrGPcw9qJdN0otGiQpMiRMj\nlRACKUDgG2Nzbx6Xy2/CC1Whxyp4Z0Sd5BciBU6MVEEI7JqACMJds5E9aU/gg4bog5tbA7p+fHFw\nfDbeorIIASGgCPDK31r9JrPMM1QpOPt6gSIEhIAQ2EHA0WYW+ocEjZqI9Yt1LWtbY2Ih3AFH1oRA\nShIQQZiSp0Uq1ZcE8G7hn72sOXrrqkaiaef7dCaj9zNAQ95x9uV5kbJTgIDy/XK9v3QnOvc+vNEC\nM642Bk9W/mpyd6TA+ZEqCIFUIMCzsixoPn5k8eyiYHPMvmZBrXIalUUICIEUJiCCMIVPjlSt7wjE\nbO2VqtDSxmhZ0Hj4sKJx2T7VDXYnSuu7SknJQqCPCahOHXFjmqqib/1Rc2xjyEF6+cF9XCcpXggI\ngVQjwLPS0QYHzCuHZeWaetTR62OiCFPtJEl9hMBOBEQQ7oRDvggBZF9lyH54S9uDm9TIh8+MyMZZ\n1Hu7KXpQLo90J6AMgU504ROxxU+xZhQMNfKHpjsTab8QEAI7E/CGVyABx2T5AqbeEnPeq4/snES+\nCQEhkFoEfKlVHamNEOgjAsoVLv4Q07+7ooGnV1PMOa8s49xBmfjFeXv6qGpSrBBIJQK8+g/Va7Zl\nDJlqjj8hlWomdRECQiBFCMSfmvVR22p/tKZIzaQaQkAIdElALIRdYpGNaUfAtXy40wvqzoqWWGPM\nKQ4aFw7JHJJh6jL6Ie0uB2nwLggkuX35xs02hx+5i3SyWQgIASGgFfpNH09QeaUq14IQSHkCYiFM\n+VMkFTwwBNR02jqx0O5e11QZdkZkmndNyZ9eEMByyMNMHmcH5iRIKSlOQHes2IqX7XXvaP4sPbsE\neSi3RoqfMqmeEOhDAmOzfUFDD1lOyE56mdSHFZKihYAQ2AUBsRDuAoxsTjMC6mHlaBvaonPrwlHH\nvmlsLmqQbWq2X+n0ptnFIM3dFQEn2matm+uEG/1HXWmOPU7U4K5AyXYhIAQ8AmUBs83WXq8JV0Xw\nHpVFCAiBFCUggjBFT4xU6wATIGAMUdDm1Uc3tFqsn1WWqcKKKikond4DfCqkuFQmoG4HRhH6xh3v\n3hxyd6TyyZK6CYE+J+DcObkgZjvLm2NVYZsfDzVcXxYhIARSj4C4jKbeOZEa9QkBXXt+e+j2lY10\nc39zcIHq9MoiBISAEBACQkAI7CsB3q5OyDbd5ymPVDUXhcRo21eWcpwQ6F0CYiHsXb6Se38hsDVk\nfXVJfbapf29c7pmlGUy2prxFZRECQiANCNi23dbW1rmhu9reOaVsSWUCTU1Nr7/++rZt2zpXsrGx\n8d133129enXnXd3ZEolE5s2bN3/+/O4kTsc0PEaZkDDDXNYU+7g5xjNVLITpeBlIm/sDAbEQ9oez\nJHXsfQLPVYV5gXlkgf/8wZl+Q6Rg7xOXEtKJQHNz8wcffKAiNLnvWbxOYX5+/sEHH8yuhQsXTpo0\nafDgwQkka9as2bp168SJE0tLS5FqdNnZy9dEAm+lqqpq7dq1JBg9evSwYcNME1uE1jk9RSxfvpzP\nKVOmDBo0qEMmfG1oaHjllVcuvPBCw9jpJen27dup9tlnn02aROWj0ejHH3/c2to6bty44uLiZIuH\nZVnUp6KiwisiIyODOhcU4HHQxVJZWUk+OTk5pMnNzU1OQVk1NTWolKysrMmTJ/t8vuRSYrEYfKjb\nqFGjhg4dyq7kvcn5yLpHgLN/4oknPvjgg5/+9Kc7MFm6dOk111xz5pln3n333R12dedrXV3dJZdc\nEggEOO/dSZ+OaXT9rEGZ9zOvL+43cqWm4xUgbe4fBEQQ9o/zJLXsdQLKlcUpDZj86/WypAAhkGYE\n1q9ff/XVV3do9OGHH/6nP/1pyZIl9Mh/8YtfXHTRRYkE//jHPx577LE777wTMYZhh2Mvvvjin//8\n54kEZHjPPfe8+eab9MgRSIgutOV3vvMdJF9yepQV+u3hhx/+1a9+deqpp06fPj2RQ/IKuaEWZsyY\ngapMdFk59t///veyZctQCwhFbzti73vf+x5GIbIdOXLkd7/73ZNOOimRFZaoH/3oR9TK20JutIts\nEwm8lXA4/Je//OVvf/sbVUVLjB079vbbbz/iiCMSyebOnXvrrbdu2LDB7/fPnDnz+9//PtrP21tf\nX//b3/6WilFWWVnZ5z73ucsvvzwYDCaOTYeVhDhPh8ZKG4WAEBACB4DATm9DD0B5UoQQSFECyiiY\n6AqmaB2lWkKgnxLAkvapT30K+wzCZtOmTaeddhpfEVrY0FBH6DHMd8lNq62t3bhxY0tLi6foSIDF\nLJFg8eLF6MNf/vKXHHvuued+8pOfxM72zDPPvP/++x3Sc0s/++yzN95445gxY374wx9mZ2eTIJGP\nt8KWlStXvvPOOwsWLEj+CUDyoe7QbHgVkpJkrNx0001//etfJ0yYcPrpp3MURkU+ExliaXzppZew\n+F155ZU0EImLZkvsTay88MILP/jBD7Zs2YJxafbs2e+9994ZZ5yBRdQrhcYig1esWEERmAfRjUhQ\ndCB7cVB84IEHfvzjHxcWFtJqbKFf+cpX3n777UTOA34Fg95PfvKTOXPmDPiWSgOFgBAQAgeSgFgI\nDyRtKSsFCaje4eY269XqMJKQGZNSsIpSJSHQ3wkMGTIEPUYr+MT89fnPfx7zoNeozgotubEJhZZI\nhqfl//t//w/5dP/99yO6Ek6euJWSJpGeTEKh0OOPP/6lL30Jd8G77roLEcXG5AReQWx57bXXqqur\nkY6Y+xCNbCcrrJeUhVcquzy3T4Tcc8899+Uvfxn3Qo5CtlGBG2644amnnsLQx1HUAY1Kieedd56X\needPVNxbb73F4WR10EEHMUwRG+DXv/518vzZz36GCv3CF76A7yv2z0984hNUAyPkfffd9/LLLyMv\n0dKYOhHSyEKqhG3w2muvRRPi15qZmemV1QFC5wqwpTtpujywzzdiT8ZujCn42GOP9RrCZ+Kc9my7\n9i23fTuqz8FKBYSAEEhzAiII0/wCSPfmYy1AAj60uXV+XWRyjv8TgzPSnYi0XwikJIFEp//JJ5/E\nmocXJXIooQap8lFHHZVcccb44XeKmjr++OORENj0kvd2WGcQI1uwMX7ta1/DKMc6OhCvTlbQhCwM\nF0Re4imKSRNB6FXmlFNOodAPP/wQt9JDDz2UxP/5z3/4fOKJJzjkmGOOwX81UW22ewtbOIpSRo8e\nzRaaMHXqVLLF95WvjHb76KOPcB/FZshXEiP5aAg2MfQnShIr5WWXXcbwS/aSCbZWPGnR2CeccAIj\nEtGubKQ+w4cPxyhKnVknE/xpPbdSXF4ZmsjIQ1JSNIqUotetW4fUJE1JSQnZdrl0OQ4TNUuGmDQZ\nA4ldlKw4FkVEK7DujhgxwgvWcsghh3gy28uZBOh5LKt5eXmMHWWcJDKPqqJpqRU1hwx1JhlDJTdv\n3szbBPgjkqkDdmNvoCaHcCyjK5HQWFM5EM9bju2y8omNGFqxAxcVFXGsp+ETuxIr5A8QyoUSDL2B\nqd5e2kvNaS91JoeECPf28i4AZc7h1KS8vDyRoawIASEgBFKfgAjC1D9HUsNeJKDrWn3EWd9mMWPu\n6aXBI/PUa35ZhIAQOMAE7rjjDk+AeeXuJkTHo48+irpDCO2qQ+/lwEA+RBQWv5/+9KeM5dtNcxiM\nh0gg2Axd+b///e84ZJIY8x1i5rjjjkN44L/KFix76ByKRk54uVEBVB9ijO0IQiTQ//73P3JjOCKW\nyfHjx5MVbp8dikY14Sma2Eihr776KlIHWchGRB3SCMWYGBaIYRPt4W2nLHxQkT3oJRIjhzxFR5RL\nRioythAbJuWuWrUKhYbV8fnnn0dekhjtiskRBUiwTfxgaSyCh+1HHnkkiH7zm99QbfTPH//4R68a\niep5K/jiosDJFp9VRk5i5kV/osTw2n3kkUdwlAUFBzLukU+yvffeezG6UgfkEzmQmF0cyDqClr3/\n+te/kNy0EZVLblSAptEcskKDMXyUwZM4ykKGiuEPjKpnNCZqECsuJ4IEZMUW6nD99dej59mIyRRH\n4m9961sJdF7lE59UiVOD2OMUnHPOObfccounqxMJWAEL4zmpTKJc3iYgXNnFUNXf/e535EAlqR7k\naUXiWMhA7/e//z1IORGJ7bIiBISAEOgXBGQMYb84TVLJ3iIQsuz7NjW/VBUydHt2UZDJJmQRAkLg\nwBNAfdELTyyJQJ0daoLVCPFDxNEux+YlJ0aK0Lk/+uij0TnJ2zuvY4YiW0b9oe7o8aMEMNah6NAV\n+HCiBrGeYRpCuWFfQkIkm4ywBbGdQ8gBrUUOiBbUHaILyyGCkMw7l+ht4RBW8DJlUCKVJDwMXxEb\nZEhs1cRRaA/aSxFsR0RhlUo2TGE9Q0cxwJIaspc4NNjKzjrrLJqAaRFVzDoV/sMf/kBB5Ek+1JC6\noagZ2Imk+epXv4olE/MgQxkRP4lyEysYxNCT7EUe/9///R9ACHDKXgQVBlhKZyNerxBDm3ntpQ6L\nFi1CQV166aXoQBqIUqWG6DdkPweygrfttGnTGEhJMmrO4ECyYkQoplE0MGIP3UjNMYciX3Ga/fa3\nv40UR3ACBAsqOpb0RBuiXBQyyeCD+EewJWreYYVqkBUnmnyQsskxiryUQMMbmRpClerxidswIhOx\nR4LbbrvtG9/4BmeN9lIBXiJQoqfMWfnnP//JuFAshxySeGXQoQIH9iuT/vGPiQBlEQJCQAjsmYBY\nCPfMSFIMYALMNbG6Jcbb9j8fUnSYMg/K03MAn21pWuoSYEBg8pQAWLcYJpdcXU8+0f+mm44tDo/Q\n3Xe7Mdlh2KF/j5piMB7iITm35HWG52HgQpzQy8ckhSUNF0cMa9iaMC3i94iwRBJQNBIR8x3Chsp4\nSgAlwwoShU/U4Mknn+y5TTKuD5GGpEHoIhqTi0uscwiGUExnWLews3kHUhO20zo+vZSIDc8kxRb0\nBvKJJZEJu6hPsk2MAKSjRo0iASIKDYPOxGwFB9xNkW3egYR1/fWvf439ELdbLHKIKLQupi0veirN\nSeRPS1FiFI2kJIIO2xFF6D3i+nCCaDIevN6JwIhHq5GgnissIg2rL6M30ZNYL9HnVJsDqRValBI5\nCh9LDLBew9GNKDTSUwSylnxoLHA4idhLcQqlIGyJDB0kyg4CFamJfybOw9QfJ14SH3bYYVdddRVm\nQD75mmiCt8IFQM3RbMhpqvSZz3yGE80p9vZ6tDEpczF885vfJG4N26keohqrL2oWn1VqTpRaxovy\nMgIsRA/C4updlry/ICsuOSzMnYvuUJMD89Vp2u40Vzm6rQc6ojgwFZBShIAQ6F8EdvmM7F/NkNoK\ngX0jYNlaXVS9qB+fxb2gHu7t3bB9y0+OEgJCoHcJoBlefPFFhARWtYRq6lwk8oDoLIhM+veoLFwE\n6b53TsYWtA2ahB4/VjIMUFh4EDBYz5AcHIiwQY2gDRBdiBYMZawnysUORhrPGRKXxcR2skUsEckG\na2GXhbIRU9vNN9/MGD9kWyLEDlqOgjCX8WPk5UZxCBg0KgXhpojgSQ64igMkCah5omhywLCGaOHT\nG9nI+D3aniwjPcWItEb7MfYPjYTJzpM3yMvkCnMUTcb5E73nFYHAZsG0iDaeNWtWQpYjhikIa6pX\nEFY+Fg4hc88dlxZhn8Tv9LrrrvOcMGkpItwrDnos3jq6kYX6o9m8LXjqMr4R5ZxcN+Q0bUc8E2jH\n2w5z5HdySxPpaQJ7PeMqIh+jKJoTPe8loG4s6Dq2XHDBBWzkK9VDAzMiFMi8EaC9hIT1TNO0C1mb\nyJwSOSlcPDQ5sbFvV+zaDU7tBib+M4Yf2bc1kdKFgBDoFwS6fkD2i6pLJYXA/hFwVrVE71zTvLgp\nOjRoqsnoecjr4jO6f1DlaCHQmwTopmPyomuOc2AHt1K0AVNEJBeOPQd1hw2NUWFY/JJ3JdY5Cl9K\nuv4YmnAHxTKJeYqBapjO0EtoMLQTW9ADaAkyRJslpnlAJ+Aminsnag0rImPeECeJnNEbySInsd1b\nISVKFesTbpae8vS2I+FQPrjOJmazQI9hZsR8h+mJqRQZg0cFIEB6VBPrCCf8JyHj5cBXb4XPXdlF\nk7XxrtIkckPyIRc9N1FKwWKJykUTIiZx+PTspSRG34LaE598pYjkUrzc4MyAQCLuJDSb5wrLXn57\nE+nR556MxG6MLZEFLYc3aSLmjddYVCWNRdphq/SS8RaA8YrJAWy8cvlETILLk7ucdCyirCdb86gA\nF4Cnab368Al5akUyTiVl4W2b4ExjQeHlz17eOGC6xH/V29KHn+o6sCJ25XK7rc4cf7yRU9yHlZGi\nhYAQ6C8ERBD2lzMl9exJAjzU17RaV3xY+1hFS8TRzh+cWeCXe6EnCUteQqBnCXgva/hEMmFYQ8Vh\nnqL/jQ6hr48wQyxhOUwulMR4GOLpx5A5rHBeGM/kBKzjykjPHqXhWX6wCGGzIi4L9h8ED7LEi9FC\nEQgnjJPY4jA8EmQF8YkCRCGgIdEDeFQy7I3xZmgkxAYOmQwgpKpYjTqUyFf0FYMMH374YSaQ4HBk\nJ1s8dYEmwfkQOxvOjdSNmmNPI3AoRSNIMJQxoQUxS/D2RJUhd1lhECDatXMpPbIFOcQ4Pcxf1IfG\nIkcZV4mORRtD5umnn0aMURPsfgy6I7QmwnU3ChNQeHv++c9/xq8VVYbDJ7mRZ4eqIs69ODok4xBG\n6+H1Cl7OlHcZLPj1rQAAQABJREFUeOnxgEWNkwnDSlGtyHiwE5G1gyHRS4yE5oygrpHiqEeagLkv\nmRsPBU4u8hIHVAQ56WHLewdyZlgjZeEKyxbcgBGx2HWJDJSQtRgGyRwjM28rsO56JSakY4fW9epX\nRg1i3LSjYbtqDavmmOPi7wl6tVTJXAgIgf5PQDrB/f8cSgv2ngB2wDUtUQYQ5vrM2ybkfm5ElsxA\nuPcU5Qgh0AcEkE9MY4g8QAygzXBHxICDEkNgYLbqXCHiWDKbPGPDmLwORdEhAa6n6AdGqXnmKfQG\nIU+w9iAM6NCjbcgfwYORkAMRZohAbIaEV8GVFBsgkxAyGo1jma8CRUS4S/ZSMQahIfZQfRzeoUS0\nH1IQTYLVEcdLKk+LWJhmkJRUgAF+DPljPBuejQhaPGOpOUWzF7lIW9iIKyz2MaYu5CiGxnUoome/\nQpvWoYFRgMgzao77JVIZOYp4pqpsRPpicGOdKD67KZ360xbSIIMxA6JysawmmzS9Y8kclYtgYxQi\nhxAGBqpowoSF0EvGLpxFGeeJZqZKnDjcVpHTGCG7rAOSGzmNDRDbLDzxR02Wl6yzkQGTZMi5ow5Y\nbimXGDNs4SgajgzmAqC96F4uG++a8crCm/fGG2+kSlwGhITtEzVITZSLS6TFrlrttNXxxSibRFyZ\nLmnIRiEgBIRAMgEZQ5hMQ9bThoDOM1KFX8v36VcOZcy9PDLT5tRLQ/uUAM6NdLWTZ2nDroJ1JTGI\nzqsdKg7F5ZnXkAEkwC0zUXFyQArS+2cIH36bSCxsSvTIPdXUIT2KC7dMhvlhiULa0WVP5MMKpRAq\nk45+YiO2QcryAqsgErxpDD1dx1e0Ilmh1jA0IRpxUPQMYohA5k44//zzcfVEDDCSDT3DQMREtokV\nZAnqgvgrbEmWDVj/vDTIDLSNN+MFlcdbEg4J7UHwGyyEWETx4aQUknml4I15xRVXIFS8TJI5w5bo\nLOTDLqQvtj5vHfsYtlbQsZ3DkZo0sLN9jy343BKtFNoABI4XnAZ7GjFUGNOIPROqiEM8Nr3DicOJ\nf6Znf0OqIZsZqcgu8qcyWFOx6eGNibKiJtBA8qHVk+11NAR/UZIhxYEPTHKgnqCgLQnZiXJDMGMu\nhgbnhZOFePMIJH+ykUuIPDHuMSIUox98uPBIg+pGnXqBf4DMAEJ0L+oX8yw5o729XaSkvSh52oul\nlEahgWkR4hNuaFqahnkZm6FncyY9W5Lr0NvryjbI0tYQefdv1to5Wku1UT5VC2QwoaM84HobvuQv\nBAYAATX36wBohjRBCOwtgRerQt/8uCHP1N+e1fEV/t5mJemFQJoQcMLNkVd+Fls7J+vT/9Bzy9Kk\n1dJMIZDyBNyunK7Flv43+vYfNdsyRx/jP+KTRsk4hGmfC8LbVjXev6n1rsn5Fw3JTHmSUkEhkKYE\nxEKYpidemi0EhIAQEAJCQAgMCAK6ZoWsxc/EPvqXEw0ZBUMDp38PEyXDCQ+omXJAoJRGCIH0JCCC\nMD3Pu7Raa7WcncKrCxIhIASEgBAQAv2SgBNb+FR03p80f4ZZOjZw6s2uv2p85pJ+2SCptBAQAgeW\ngAjCA8tbSksNArjXLG2KhiynPNv0vKYP8HiP1MAgtRACQkAICIGBQCC68Ama4Ztwiu+wi438oX3u\nJjoQmEobhEA6EZAoo+l0tqWt7QQWNEZfrQnFHG12cbB9m/wVAkJACAgBIdD/CMRWvqG1VusFw8xJ\np+r5w9S4QYkO0f9Oo9RYCPQlARGEfUlfyu4rAkxCuKbF9mnOsYUZ1EFGWfTViZBy+ykBxxaH6356\n6qTaA44A8w7Ou4/4gIQVNYdMUcFr+V+eagPuPEuDhECvEhBB2Kt4JfPUJcB4+08Nzz4s36+cRd3x\nFqlbV6mZEEgRAoapZxZww0Tm/FFjEK7b80yRqkk1hEC6EVCT0FuR6KKnnFCjkZXvm3ImrzfVIm85\n0+1SkPYKgf0mIIJwvxFKBkJACAiBNCHgyzDGztaziuy1c6yty1zbulgi0uTcSzNTjgD3nl2zIbbs\nOS0aMqecZZRNTrkqSoWEgBDoJwREEPaTEyXVFAJCQAj0PQHdHHKwUX4wFXG2r3TE27rvz4jUIH0J\nONE2a+mzTt1GvWiU/8jL0heEtFwICIH9JiCCcL8RSgZCQAgIgfQgoNyr/Zm6qUbe4q6GfSI92i2t\nFAIpRIDZBdXdZ1uRuX9hJnpmG/RPv0rzZcnQhxQ6SVIVIdDfCMi0E/3tjEl9hYAQEAJ9ToDRg7qh\nIleIx2ifnwupQLoRcJWftfpNe/FTWka+f+Y15phZum47Mu9gul0J0l4h0HMExELYcywlJyEgBIRA\nmhCg+7n5I6etXlkKZRECQuBAEsA6uHlh9IOHHd30jT/BnHCybjKhrrybOZDnQMoSAgONgAjCgXZG\npT1CQAgIgd4i4IUVzSvTTJ+16UN77VwJZ9hbqCVfIbAzARVTlIWN4cbYkqft2g3msMN8R16uB3Dh\ndoOLis/ozsTkmxAQAt0nIIKw+6wkpRAQAkIgrQlghKA/6j/q0+bY2XYsZG9bltY4pPFC4EASUDZA\nmwC/kbl/trcs0jTDd/TVRnaRqxEPZD2kLCEgBAYgARlDOABPqjRJCAgBIdAbBOiQuh6ijjFoorHi\nNSfUgNcoMxP2RlmSpxAQAgkCzDfo1FdYmz6Ivv0HNuq+TN/BZ5uDJqgEYhhMYJIVISAE9pWACMJ9\nJSfHCQEhIATSjoDb92wfrGRtXoClwhw3ux0D8Q6ld9oOQ/4Kgf0ioN698L+622KR2MfPW8uet6vX\naoEs38HnGgXDfeOPx0jIzvbbcb8Kk4OFgBBIcwK9JQgty3r//feXLFlyxhlnDB06dH8o4zOPd/z+\n5CDHCgEhIASEQA8SMCeeHPv4BadmXXTx08awQ52MXEMFwkcO8oNtyA92D6KWrNKRAPeSF8GX+DG1\n62MfPmqtm2+Hm42SUYEjLjPGHKuZAXn3ko4XhrRZCPQagd4ShMuXL//KV77y3nvvXXDBBY8//vj+\n1B9t2dbWZhhGVhbT7Igy3B+WcqwQEAJCoAcI6BmFGef/JPz0zfaWhXwGjrnWGXwQIQ8l1GEPwJUs\n0p6Ao6tpBu3maqRgbNnzmh3VTH/gqE/5j7jM8fnoBrmvX6Q7lPYXigAQAj1HYM+CMBwOv/XWW62t\nrYlCTdMcO3bs+PHjWUls7LDS7C5srK8nLvl+LX//+9+/+tWvjhs37r///e+QIUP2Ky85WAgIASEg\nBPabgE6HNavIf9KN0TfvcbYtDz39HXPkdN/UT+h5g3TdcLKKmL9+vwuRDIRAOhJwom321iXWtuX2\nxnftbR9rgRxj0MG4iZpjj0Mo8p9yElUBZuL+pOnISNosBIRATxPYsyDE7fOiiy5qbGxMFO3z+S69\n9NLf/e53eXl5iY0dVoYNG3b66afziYWww67df+3sILp06VIshJs3b96wYcPuBaF3bOccdl+i7BUC\nQkAICIG9JKCsEyqmxewvWates9a8Za2bZ9du1DPzNcM0y6f5pp6rZRcrH1K338ofdYBa2v963+RT\nCKQ9gbi3NXeKY9lbl1lr3owte06LhQGDP7Zv0unm8MN07ia1xG+kncbyujvkQwgIASGwPwT2LAgL\nCwuzs7OTBSF+m8XFxbsxD1Kh8vLyW2+9NRQKFRTsXQA6zym0s6hjC76ju2+qd2xyDp3z2X0OslcI\nCAEhIAS6T8Aom2gUjfRNPj320b9jy1906rfQZXW2r4ytect30Jm+Qy8mK6yJ2DL4p/Sh6MHuw5WU\naUJA3RtabNVr9oZ3rS0LnNY63bLMaZ9ADZplk7TsIvZKuKY0uRakmUKgrwjsWRCOHj26oqKCCDFX\nX301xrqrrrrqr3/9666qiwBjeeCBB9asWUMatFl+fj4OnxkZTJy604LCfPTRR++//35yZsfhhx8+\ne/bsl156qbS09IUXXvDUJnoSh1UWEpBtS0tLQ0ODl0swGEzOk701NTW//e1vn3zyyUWLmJ9HO++8\n87BPvvLKK1/84hdvuOEG76jEJ+nJPBKJYO0kn92L28RRsiIEhIAQEALJBJTBwpepF40OnPwt/ynf\nYpe1+q3IKz936jdH3rrX2vCeb/KZxqijrCXPaFbUHDFDKxiqjBxmgDFRyfnIuhBIRwJW1Ak32xve\niS74j129TnmDmj6jZIya6nPUDOUS6mpFN7Ceu5aOjKTNQkAIHAgCexaEnsGtm3UhMY6d1113XSI9\npsIrrriiQ6BRNN7111/P4EDE2IgRI1BlCMh3332Xo4YPH47w85xRr7nmmkceecTLCr2HD6q37vf7\nOfzOO+9MaMLVq1fjxfrhhx9izGR8IxFokILkQ3oC23hHJX8iGm+++ebnn39+8uTJt91227nnnkue\nyQlkXQgIASEgBLpFQBn92v/XNN+444zS8bFFT1qr37A3fRjZ9JFnHSRRdP5DbkLHN+UsY9RMo2CY\nUThM0wmdH7cb8qoOE6JrDBFLYrfYS6J+QcC1kbtXtnutO3bMqdvotNTgax1b+pxqgq4ZBeV66Xhz\nxBHm2Nl6MNfdFr8z3JtB7oh+caqlkkKgvxLYsyDc25YVFRWhALdv387gw61bt3Z5+Nq1az2ld+GF\nF37mM5/JzMxct27dQw899NprryEpkXPeUQwd7PJwOg0Y9/hM7H3xxRdXrFiB2fDKK6+8/PLLyQFj\nJoZK1GCXSg8jJ4fYtk0ydOlJJ520t66tiaJlRQgIASEgBJIJ6PmD/bO/aAw/zKlZa29e5EbB0PXc\nQXZTJb1au2KR6gQve47Z7f2HX6pn5Rvl0+KH02dWfWDp+ybjlPUBQIAwTG6XRdesisXWytesrUuc\nhgotGtb8QYyBRvEYs3yqXn6I61c9ANorTRACQqCfEeh5QYhxD9dNrHNf+9rX/vOf/3TJg72xWIxd\nGzdurKqqmjFjBpa6k08+mfRYC5legl38eP7+97//4Q9/ePfdd6PZcnNzf/WrXx166KHsQjQOGjTI\nMw+SjK8EQUXdMcgQ+yS+oBgJjzjiCC9DPFE71wHVipuoV4ecnBxxGe2MSLYIASEgBPadgOP4Rs3Q\nRk53Jp2urH78bvuCDnEyEHyhhuiiJ7X6zdaWhZE3fqUZPj2jfag5IRQz8s3JZ2BmFJ/SfYcvR6YY\nAdSgZkes1W9bHz9vu7ZBdUfklhnjDvUfdpGeVawFs4nGpESjvA5JsXMn1RECaUJgfwUhGgx1l1Bx\nHjXi0KDfEv6cnVFOmTJlwoQJq1atettdvATTpk1j4B/upvH3aLqOuykLowqRfBTBzBOHHML7s50W\ndvH9qKOOolDGOuIFysIW0k+fPh0/0okTJ3qiMfkwhjXW1tZikzz66KNvuukmapu8V9aFgBAQAkJg\nnwmoPq1n5NNNoiMm7H16IFvlmV0UPPHrRM6IvPEbe/NHTrTVDsejWKuQ+tZ6a/NH4ZfuZOptJCVu\npfqgCUTX0NGNhs8x1SRsLHH/EC+K6Y7y3H3yIQT6goDntKRMgcrKrV5qq9fXju3EQrHFT1tr3rYr\nlzu6oRt+PXdw4Pgvm6Nmdqxm+33Tcbt8FwJCQAj0MoH9FYRz585lpB9abq9mn8cG+Nhjj91xxx14\nbDJRIQFmWBjXx/Lwww+j07o06+0GxXHHHXfPPff84Q9/wOTIDIhYHfEpnecu//rXv5566inCoiYf\njgK8y12SN8q6EBACQkAIHBgCelZh8MxbmU6N4IoJxcjYKrtisb19hWZF7NY6NZuFK/10I6DCmQ6e\nrA+aqOeU6tlFSmcafvSj6nSLVeXAnDMpZQ8E4q8pVFhd5hKs26C11NiNlbFFT9iN29B6en65b9ih\nRvlU38TT4uFi9pCh7BYCQkAIHCAC+ysIGStYWVnpRQrtfpXx6nziiScIEoOlDilIwJj169c/99xz\n8+fP37RpE46js2bNSowk9LLlZZsXbrTLUhhASEwaIs3gSorCJBPmLWQie8LMzJkzB5shwxqTD6QC\nzz77LObJMWPGMI6RmDeepTE5jawLASEgBIRArxJgmm3f+BOTxgw6zthjnYatOJc6TZVYEbXWOpuB\niDXrGHPFPyqDo52eP8TIHeL4M3wjp7OF8Vd6Tkmv1lMyFwJ7JODFQ7JrN9m1a+0ti6yN73Ele0eZ\nQ6f5xh6vF482Bk3Q/UE3xkzSVb/HrCWBEBACQqCXCeyLIOzsgbm3lSSEDOZB3EF/8pOfMOs97p0M\n58MjlDg06ENMfMkZEhUGtYZjKvrt2GOPJdLMO++8g4ERUcfwwpIS1Q8gGo0358R9992HzkRMoh7L\nysoWL14cjUbr6uqSM2T9H//4xy233IKLKVFJt2zZwpSJrHRII1+FgBDoAQKuBccd6qvWvAzpD7Ub\nhdr/9kBJAyeLeH+xHVP/9SNTLXCtJsqG194cjHrqBZx6kLiunypF4jLQdX+mXjJGncvBk9WnFXEi\nrVqkxW6qwr/U3vKRtXWZ01hpawvYaa9+XaUJZDOPhTntPCMjzxh6iB7MpzD89VQhKuv2ktWXREHq\nOFmEQHcIuBeTm9C9mL1rSl28CY9lK8qAWGvzAmfzAqutQY+04Ajt2JY55CCjaJQx/HBzyMHtM8ur\nfOQq7A52SSMEhMCBJLAHQcjvIKqJEXp8etX6m7t0qCLj97wtSLWLL74Y61wiAQcyH6D3FbX22c9+\nlnVEHS6dWAUZ44d3KAP5+ErYT9Qg8xbi/5lsHhw/fjxhSNn1fXdJ5ExM0W984xueIPSCyixfvvzM\nM88kw6lTp1LEM888gxrEPfUTn/hE4ihWaBSerl4EVHQmVkS0JcnESJhMSdaFQI8QQBDwX9QOq455\ne46EWDd1XvTY0jVqR7LTX9XX5F87sRiTlWn2Dnw7pU3pL/SY+c+yopzpoBlg3dBNU+e54wbPcOWa\np9x22QwzoGcGtMwCM3+oMewQzblGs8PW+neZ5zC29FktEsLLVA+32VbYfvXX6opSl5tmZBb6z/2R\nUThK6U7Dr5mGqojIwV1Slh27JaBeKqjXCiRSbxmsqG5bNvMHYgOs32JtX2GruVXctxzESHdHuhql\nE/zTrzRGTW9/HxGPnb7bYmSnEBACQqDPCOxBEPILR9xOnDB3X8FEUBakIOJqV4mRXt4uzHGEnCHU\nZyAQ+Oijj9566y22oyq9uDKXXHIJmi0hz84//3xcUvH/xDeVzDkE09/IkSNJNmnSJC9DIoViSMTk\niAJ844038BFFUjJucObMmQQ7TShSEns5n3XWWbiS4mhKGuacEDXoYZRPIdDjBOhIrW9c8fqmp5Jz\nLs8ZPXvomZm+7P4ocpIb0kvraKSw1dYYrkMHtsZaFlfNrw1t76WyejdbR2uNNW9sWEkrDi9TAZ/z\ng8Uj8scPzRntN/x5gSI+u38NuKZERzMC5phj6Zf7j7iUDJ3GbcTqsNa/40TanNYazIl6Q4XVVuc8\nf7tRNglpzbBDc8JJRnZR9wvqXSaSe38joF7QtFYzDtBprUUVqjGuTdtjq15ns9cUPbuQSKF6TrFe\nNMrkqiubrOyB6jAlJHlB0d9aLPUVAkIg7QjsQRDCg5kemP6hqalpN2yYXN7bi3Xul7/8ZUNDQ5eJ\nmQfC20568hw8eDBWPkyInuBE5hER9KCDDuowCQS68ec//zkj/QgYg0EPayGHYzZkCvtEylNPPZVJ\nKZhtAksjohSnU3YNGTIEU+Ho0aOTK+PpzHPOOYdsly1bRh2o824CoiYfK+tCQAh0SSBuflGvW7xe\nN12h+NIUrf/38j9saFrDi3XVQXLfsDcU1B4+6NgMf7Ztx7a2bFhes6A+XC399XZm6m9rtLmmrdJ2\nrOZIY3XbNjdyYfL+/rPunnVO7oeV6sWfuzgj8yYGzIzizLKAGZxaOqM8Z1RuIF/tcm2GiDgvXcdP\ntVldYe7u9qR5Q0z+jT8RDz2ncasTbrbWztG3LmW2Q6thm0q6do61ZYHvoHPMkUcxy63r5efl0DF7\n+Z5uBPjh8q4m1/lTXRru/+6vlPt7ZW1ZpIUaY1sWarx3qFnnNG1rvzgdzcwwR880SsbqgSzm2NTz\nhhj5QzRfxk4MvSt2p03yRQgIASGQigTckRapWDGpkxDoRQL/3tr2rY/rrxmefev4vF4sJo2ypkMV\nX1qjTStrF7fE4m+FllW/v6z6w0xf1vnjP4OZqyXCBANO0JdZECzBe/DNTc+EY6HmaEMEn1JZOhFw\nlY82vnDaOeM+lWFmdtrfjzaoC6Q52riydtHrm57mpDMAkL44Lp75gaKgL8uHH6nujMk/aGLRtHFF\nU3P8rj7c+/bxUkIjIE2khX48R9vVayLMYKHp5rgTAid+TY02VF6krnvf3mcuRww8Auq6dAWgEofu\nr5iKYLRlob3pQxUaNNTISyutzf0103VjyBQiGHGAOfFUPZijZRUyk4pumAMPS8+26LZVjfdvar1r\ncv5FQ/r1j1jPUpHchEBqEdizhTC16iu1EQJCIPUI0MN2lIEmtnD73OfXPbK9bUtCINLp95n+aYOO\nZvqtF9Y+omyJqBy348UHqz4jgJnohBHnZ/iyUq9lfVyjU0dd7LLyTBZ9XJn9Kz4+um9cwdSzxl5h\nWbGlNe9VtW6Zs/nFllhjKNzKNWHb9ramjW9vee6UkRedNfZyvxHYhxKV3vMHCeTIbIcc7iseZZYf\n3Pbwtdbq18ONW/0zrzHLp2q+fcl5Hyojh6Q4AcexdAboMiCQT6LCbHjPWj/faatDG7I4pl/deP4M\nfdgh5ojpvqnnIP/UL5tr91NGe3clxdso1RMCQkAIdIeACMLuUJI0QkAI7JLAtpaNUTuysWH1mvql\n7297nVFhQ7PHFGcNRgF6xxxUfMRRQ07Z0rxu5tBTQ7EWVwzGcyO+yKSiQ6eWzszy5+yygDTe4Y55\npv2q49nPF3cAIG1wLXSm6ZtWejSrJ4+6eHPT2qpWFbSMz/X1Hy+t+WB13aKPKkdgVS7NKmfMoRpr\nuheLOzE4WXtKmp59drH/uOtjHzxqVa2yn/2e//BP+mdevRf5SdJ+TED92HR8m8Jcl/VbNKKANlcz\nW6C14R2nuYZhqJodVV6igUy9cATXjJFXbpRN0AM55vjjuWqV+lMOVe7l6ypB156orjNZhIAQEAID\ngIAIwgFwEqUJQqC3CLhjbJSLXbIkUX0gZenTKlrWv1fx2pr6JRE7wji3iBXO9GWeOvL/ppQcPiRn\nVEIQepUbljvmsslf6a2KDtB8E7G1+n/7kprirbpdaT6G547ln9fAulD1Xe9+bUPjqg1L7/YZvvKc\nMSWZZSPyxh0yaFZxxiA13kv18F2p5439Sr4uE4zivXRVgFrV/Ux1aBQMjy1+ylr1utNSnUgoKwOD\ngPITds+1+llSmo0/fCrd5u7R7PoNKvhQ9RolAjEGVq9zwk2MONXsePBePa/MKBqrl4w2UIN5g5no\nUs8qUhdQ++JeU/EL19suoWLa2chfISAEBgKBPQtCQoDW1tYOhLZ2ow08V4gxQ+jRbqSVJEJg4BNQ\nEfJY3D/eRAH0yNkWtkKvb3py0fb5FU3r8AUkBX2wC8Z/5uDSo4oySn2Ejuyypz7wgUkL94sAhuJp\ng2a9vfm/XD8xO7axccXGxlWLq96ZV/ESRuajh56a48tV3nxccYm+f3cK9GcwEZyzfaW16jW7diNT\nhxtF8UBo3Tla0qQ8Aa4JmwlGqKf6JeJfzRpr61LG/sU2f+gwmjTSFp/Q0p3BxXuZwGhAg+kBi4ab\nww7Hi1j3Z2Ee1Ey/+9oB+58rKlO+5VJBISAEhECPENizILz99ttfeumlHimsX2Qyb948EYT94kxJ\nJXubgOVYDeHqtzc9RyeLfvnK2oVDskdNKT2S1+4vrX+cjhc2wEx/ztnjrjp26BlxuejWSbpSvX1q\nBmr+ASN4ycQvXjLpC14DtzZvIOzQkqr3qlsrnln94DsVL04pOZLXDYScITZpSdbgbr538NxVzUMv\n0ubfb1d+bG9dbBQOd62HAxVkWrXL0a2wEw0zG4S14V3GAeIR6hr0XAg4rpu8n+LTp/szfYddovmz\njOLR5sjp6s2CEo8s3msuT0q6rxr4dduRhZtEPoSAEBACA5rAngUhs9IzOcSAhrBT4woKCnb6Ll+E\nwMAk4Ko29UEHiO6PjRWwPlLbFmtpDNe2RJvYVNW67d2tL293x3fBINufxxQR/OMA5vkckj18fNEh\nZ46+LMvPEK+4M5WHSrpSA/OS6f1WeZdRQuYxHcWlk7+8fUTF/K0vfVz9YWXrltc2PO1dXR9Wvj17\n2JnMXeFVin69oekFGSVl2UPVmENlP3Sz8cw87jFc0v5Zn4u+8dvYsueMMbOMjHzlg6oufln6JQFO\nMtY/p3JlbNVr1tq5WqRZNcMMMP2DTtwgJgbMyFWjAQdNIDCMmpQyuyS5ne6Jj5/9+GWQvCk5qawL\nASEgBAY6gT0Lwu9+97sEfxvoHFT7vHEIzHPojhyXXkI6nPO0bqP7Vpzr3CGGx8aGVTWhytq27UhB\nJodoitSDhn3MDIEpZnLR4XzNDRY2RepcZI6h+4bnqaFfyjtLXKvS+jrq9caXZpefM/aqI8qO29y8\nLmqFMVwvrXp3ee2Cvy9bpWuJZxNaUi/JHDKl+IgJhdPKc0cXZQ6iZur6TuhLgo6OnW0t+S8RROx1\n7xhTTvMsh73eACmgVwg49sYP0PZWxSKttU7PKjTKjtBLxhrFo/TcMs0XVHMDZhWqkuM/UPJM75XT\nIJkKASEwMAjsWRAikAZGU6UVQkAIJAjQRwpbrQQFXVG7YG39slCsjUihvHE3HN00/ZNLDi/OwB9P\nw9hy0ohPZAVyWfdi7MV72G4vW8Xco08tBsEEVlnpcQLuNcYMcENzRw/NGe2OaXUOL5v9wbY3t7du\n2WHec5y19csZ0fp2qOqDba9n+fNmlp8ys/y07EBusg7QMwvMKWfab/4utuIlc8pp6qru8QpLhgeE\ngF2xJPL27526TZphMiugf+p5GsFgiBEanxqe91RqUedXDQc05ES7PORDCAgBIdA1gT0Lwq6Pk61C\nQAikPAFl6/bejysxF7eWqFrr2vKaj55d/bdNTav55jeDhPgfnTNpcvERs8pPD/qzuvajS/bnc7tX\n7Y54KQ9CKth/Cbg9+nj12x37cgMFJ4w4L7lNrluHtqJ20RMr/9QQrq1uq3x69UPzK168/rAfF2aW\nulZslVw5OxcO03OKrM0fqcxEJSRD7Iv1dn8cJd88W64TDTlNlfb6dyPv/d2JtuymUpw/c+hh/lnX\nGYMmdkqW/Joqeb1TQtkgBISAEBACeNAIBCEgBAYwAXeUlFKDLO661hptqWzZ9PDSu5ujDYOyygdn\nD2dGuKPKT6I7Fo/fqDpmsgiBfkaAi3xi4bSbZvy2qm3rvC0vvL/tjcrWra9ufPLCCdchCNQLESUA\nHS2zUM8s1Jpr+lnzBmh1XR8Dd8RnuNmu26i1VMVWvmZXrmB2ELaaRaN31W6lHv1Zvhmf0ksn7CqN\nbBcCQkAICIFuEhBB2E1QkkwI9EMCrhFk0fZ5DL5qCtd5L+Bboo1bmtY1RxuH542/YPy1w3LGBMyg\n2kXi9tf1/bCpUuW0JuDZgFzVpw/KGnL22CtzA4XPr/vnG5uedjTroJLpk4sP54WHeumR1pxSrvGc\nEXvzAhSgtX0F8wRqjZWaY6H0zHHHm+VTjcGTd1ljzmQwW80ZKGd0l4xkhxAQAkKguwREEHaXlKQT\nAqlMQL1j91RdfEVD+M3b8uIH297Agy4ca4tpMXePZybUhuaOum7qzfnBIg5Sx6nN/I27bXn9Zncm\nCbYoZ1P1334v6M3Q+tqWpdu8nFrXVLUs2aocWGUZ6AR0Uy88aULx2VN82QH3OlNXWrsPco80Xl1F\n7dpAZ2qKWcPOWN/w8YLtc9/a9L8tzeuJMTMoc7i60kMNTltDjxQpmXSbgOukwCly7bQ2c8Rv/khj\nSsC2Bmvjh079Zifa6sQi7P//7F0HYBzVmZ6yvWi1kla9V/decMM23UAooYZAQkKoKUfIheS4kEZI\nz6XckRxpXEgghE4IxRRjjI17b7LVrF5X2t5n5743s1qt1SWv5JX0BrOaffPe//73zezM++b/3/+z\nacWKwhWKOVcyCBCqMkTP6Kg7ohUpAhQBigBFYDwIUEI4HtRoG4pAoiEgTYcJ4wuLAhIGnu4+ghxu\nJ6z7eU6p5JQZ+txZqUuQvU1We3ba0mxDPqGCZG4u/Y/gMKFw2BcUA4LE0ETH/iZ/Q4/gDljfPBFX\nyobukD+adEoYqErBKmTdEw1Rqs/4EcBVKAbDTEx4apzq9r/tcx1tMW+sMC7IUqRoh2KDESs1GpDr\nYvybmtdcXfoZtUKLBBU1PcdfO/3nO+Z9TR0SQ0dehTvi+OXSluNDgLxSwlXhDZ3ZFfjod4yXxDEm\ntwEeGQJVnD6Fy1+mmH8dm1ognfZzO/fj05C2oghQBCgCMxgBSghn8MmnQ59GCIDa4T+br+tU9+FX\nqv7kC3kw2yLrA9NXFZtmI1qMPL0ma6hgDOzdBLc/2OUWHP5gtzvQ7nTsqfee7hRCQmRORsyGYd6o\nUabqJdtLX8NeAWP4i46lSb6oTNErkjTSPqstSlFlJ0lSzkn4GPSgVSceAcHlt+864293gvrLG043\njMPOfY3uwy3qAnPmp5YaFuXyOmQM77+RRWXS1TwUY+zfYOjvWCJ72+wHC5MqXq1+qtFZW2k9tCh5\noUQ0cbFBI7pNEgLklx/0CI0HQsffFBr2Miodlz2fNVjQPatLQZ5Avnyj/PuX7hH0VjBJ54V2QxGg\nCFAEoghQQhiFgu5QBKYWAmTaLPvIOfy2Zlddg6Oqqudos7PWJ7jzk0pX5VyOMP3Y4RjkkgAflCfB\nrOAJeOu6PTVdvnorqGCgwyXYvIFOktMZ0zZNhtFQgORdZE5mWJzDqxUghKoMknYiXpvKYlAk02Q2\n8YIzQeUYF+eGHL4Y5UTXsTbXoSZcWoF2R8ufdiavL01alq8tt8C/U7o4++oSKhgnUgBJy7Musvmt\nWEz44qkndWX3FkZ+CH3d0b0JQoBwbpKahmEC7uDhl0P7n2PgF2q0KBZ+EgkhsfxvQL8krNWAQlpA\nEaAIUAQoAhOOACWEEw4x7YAiEH8EiF8dYYOYcsEd7tWqP1m9HQHBFxQCmO7m6ovuWfgogmqQabVU\nBx/+NrvrUIvzQKOnqguuoWFvUMQnmX6JHMPq52Zpi83GJbnaEgunxm2BlPN6NQuHLrpRBMaOAF4i\nxL5HwMsLbUlayiVlkBQOCLXffqvz5SPd750q+6/rVal6crlNyEbkImbSpYU3trubDnXseLXqzw8y\nudQ6OCFgDxBKbiJwDBcCoWOvhw78gxECymWf4uddzSFfPK8aUB0FE3UdDNYXLaMIUAQoAhSBPgQo\nIezDgu5RBKYKAuCBIQHLcZxv1v794+bNEunjeI7XKvU3z3pgSea6yJQXCwOdfsfOuvbnDgdayaId\nzM84FQ/KxxvU+tVFupJUWGnU+WZpJiaxQ/mNPioSnjhV8KB6JjoC5BJlOVib5Wuq5AdX1X7rX97a\n7o5nDmR+foXCqJnQASDT5oqsjZXdh2BLb3UL6STa6IR2SIVLCOBmEg4J1jPBnX8CA1Rf+T2ueDVZ\nOUxvLPQCoQhQBCgCCYYAJYQJdkKoOhSBoRHAysAmZ63N1wnzYJOjZkfz2wHBD5anVuhyDCVzLUvz\njKV5SaVkuovwDZ0uX31P+9/3uyvbWRWvyjapLHplulFXmqYts+jKLAzPY7kWeiMckLifSnNkaeYu\nqYBOsNG5mwQG/ThHBHBd4RKThYgMb1Rbrl3Y+pc91rePext78r58oYY4Kk/YJjK5xtIUTVqP/0yX\npzUdiigGtVBNmAIzT7Dod4Zbj4c7TodOvQe0FQuu4/KX4gKQ3NdnHhx0xBQBigBFILERoIQwsc8P\n1W6iEJDID6aoU2EDuwszQpOzDjkkkFSw29cRo7Vo1lg25F+70LLKrCETXW+NtfNoLWwvgQ6nt9Yq\nOH3a4jRE/NdVpBMvPoshpi12yRRdWrYTmatH/qC8d+/s+vQbRWB8CMirw6SrimU4BZ+8vgSxRtue\n3us52W7dfDLnnlWEMUrX4vg6GK4Vy5jUqRfmfeJV+3/LtFS58JOEoWKboB6H02YaHiNYkhdR5I5C\n/ob8iOYaOvwKknyQk126UbngelahpnBPw3NPh0QRoAhMCwQoIZwWp5EOYowIYN4izWCmAOmRZq0s\n0sr/4dD3vSF3UAhhBivNZDHtYi8tunlt7iajKplnFV0vH3YcaPbVWQVPMOwP4CjmvqmXlmd+biVc\n8jglJ7UaI1K0OkVgYhCA33LSsjy8v/BUdbpPtPkabeq85InpSn65IS7P3LjvzL9Y5jR+/Io5V0hU\nkP4m4gc54fNEWrirNrj3b+GGvaCF/KzL+aIL+NzFjMoArKfADTd+eFBJFAGKAEVgCiFACeEUOllU\n1fgg4AiF3+30Ye6inwoBU+DN6Qo6/3D4cUdAytzFMmGGTdaYLy+85YLsixkPK3pDjg+rm37/MXgg\ny3FYIqgwKPVrCpOW5BmX5vEmbeTNfXzAo1IoAvFDQGTSb1nU8dIh96kO65snM29fijhG8ZPeJwlv\nVfB7V/LKy4tvdVc/zjACwyulKL2UovShdC57xPkcjgzdTcFDL4Yq32HDAqvUKi/4nGLxjVi1jFuQ\nxAYpHzwXjGlbigBFgCIwgQhQQjiB4FLRCYwAmZrckq1LWA2lCRRZxdfiqn++8reNzhpJVWLQyDEU\nZrI5BW05zur6ng9rvKe7kEUQB/RYGTgrQ1uaBmc8Dgnf5df1pFnE/5NOxyQM6UeiICAvJyt85NK6\nxzbbttXgGs68dbHCFMlRGUcto7+FEvOcnqRixlnZ7m7MMqTHsYuZKkryYAAZ7GkQWo4Kx98Md57m\nNCYuaw5fup4vvIDlkWqSkEF685mpVwgdN0WAIjA1EKCEcGqcJ6pl3BGQJjJxlxo3gXK4F2/I+0H9\na2fsp2S5Wre28HTGQu8itU/lbDtmbXfBysFrVYb5Waa1JcYFWZqCFMy9iK8oYY5kHhY3haggikDc\nESBezwziGyUtL7B9WN316lFFkibj1sUTxx44VpGkThEYdnvjWzdmkBgndDsXBMhtxu8OnXxbqNoa\nbq/EN75gBT9nE5c9j9USB2ByJxK5iTuh56I8bUsRoAhQBCgCUQQoIYxCQXdmCgKukLi9G8E5E5ou\nIYTM6e5DJ7r219krRVHIaE4tOZmTV5uu9ioUIawPDAZYRlucmrQiP3XTHJJGwqhGWH+JCspsEHNd\nMlujG0UgcRGQLlK80cj94hplmr7rn0d6PqjK+NTiCXyTAQIK6aJY2X0gcWGZQpoJQeQYDO59hgn5\nGZVOtfpuGAZZNSJXwR0fb6twguUbET7pRhGgCFAEKAKJiwAlhIl7bqhmcUdAokqiwIieMHOZRZOk\nSLhFhLBb2vwdm+ue39O6RQgFlUHQP8WF7y4vqM5ESi9epWR1yqRlSB+fZlyaqy1IHQBRbHRQOgkb\nAA8tSCQEyMUqUQbeoDHMybS+fVL0h0S/wKr5CVKTmKpACVkxGA5saXjp4vwbiQJ0GzMC8ssmVuyq\nC378J0apVi7/tGLlZyEm5gYUddSlEI8ZX9qAIkARoAhMMgKUEE4y4LS784kAXCmxmAUuledTiWH7\nFpnQsa69e9s+MHSqM5uys+vT0tpNBodWmW7QlabqF2QbF+Zoi+AXSjawR+qLJUNBP6c2Aoj4YtFz\nSj5k9yIFheWaeRM/HPZE14HVOZu0Cv3E9zXdeiD3UYYVWo4E3/uFnGNQsfRW6e463UZKx0MRoAhQ\nBGYIApQQzpATTYcpIQAmKDIfyf6iCQmJX/DX2I5nVpsX7C7ObE4B44PGxsU56Tcv1pZaeENvNm1i\n6yTUlkzM6EYRmOII4CLGSkLTBYUwEjp2njGtKlRZjBM8JhGBmk507VuauX6CO5qG4gkbPLM7sP13\noqudLyM5BhmFmryfmoZjpUOiCFAEKAIzAoGEc5mbEajTQZ43BDCTYavcIfS/LlVt4BPl+icRbkgU\nfNHu7w6dsK3cOju9JUXQsNovlM75v08X/selxkW5CoOaaE8mXeSvZBuM5wSM9N+7xe73lkkKRr/I\n+sZ8HWZ3UGmoP1T5MKJGfyjuwg8cOHDxxRc/9thjo9ch7mMcnw5jUnhg5c7Ozssvv/y//uu/AoHA\nwKNxKiFXdfbdq8ApfE02f5MdYnEG5eWwceriLDG5xhJ/yHuwfbsrgL7Qz8R1dVa/U/oLAYncJESh\n+TBhg7ZmrmC58sIvsvrU3ltSPO9IUxorqjxFgCJAEZhaCFAL4dQ6X1TbuCGg5VguYWYvsPVJky2x\nsfa46ZAyyap3lAWV3yxfknNR3G2A1dXVzz333Lx586677joZTUz0T548+eabb+Lrpk2bZs+erVJF\nTJE4VFlZ+fbbb7e1ta1fv37VqlVpaWlIdoiaMiXtdz62bNnyr3/9Sz4KIVdfffXq1atRMxwO9/T0\nfPjhh7t27aqoqLjiiisyMjIUigm8/9TV1f3f//3f5z//+cLCwn5Kju+r3+9vbm7u7u4eU/PDhw+/\n+uqr999/P8Y7poaDVh6fDoOKGn2hIAgYuM1mizvH7qcDr1MZ52U4j7UGu9yED4Jk4FcxMV7Rlxfd\neqb6iSOdu1I06VeX3qHk8bYFXCdh7gj9oEmQr1L4YtHnDO19VrQ1IeO86srHABnWZFLgEuQUUTUo\nAhQBisD4EEgUC8n4tKetKALTAwFMRcOegONQg+LnzWUHszRFKUvvv+mC7Mv7bHbxG2dTU9Of/vSn\nrVu3yiJ9Pt///u//XnTRRX/84x9RDiPYb37zG6/Xi6MgAL///e8vu+yy3/72t2B6X/jCFz71qU8d\nOnQI7G5QboDyn/zkJ0899dR77733/vvvowsQCZk3tra2fulLX3rggQfALb/97W/fdNNNu3fvRv34\nDau/pGeeeeanP/0pxtL/wAR/BzInpE2G6Lvf/e4vfvGLf/7zn+h2UNAmWJ0pJh5+0aCBruOt/nan\n/NZhggaQZyy5c/7DGoXuQMdHnZ4WymdGhbNEz8P2FqFpP2tIV234KqHslA2OCjtaiSJAEaAIJDQC\nE/iGPqHHTZWjCCQAAvDAIu/XGUZwBzpfPtL9biXXIxiW5GbctEg3Kz3uTqGxI47a92DQ+8EPfrBi\nxYpHHnkEhfAMBI+CVQ2cDdQRfGbBggXf/OY3LRYLjF3f+c53/ud//ufXv/610XjWEi9QHbTt6ura\ns2cP3Au//vWv8zwPQ2J2drbc6Y9+9COYBx966CEQzjNnzkAOqONf/vIXs9kcq9Xw+3Ivw9eJHv3E\nJz6h1WpBdKMlE7oT1S0YDH7ta18DGq+99ppSqfzyl78My+rGjRvRexTzfppE2/Yrn7Ffuzcjo52Y\n928bJsA6SFxDpbW3Yl5SydzUZfvbt21r/Nets788AX1NtxOIm1XY3hrc8XuAyKWXYd0g2Pt0GyQd\nD0WAIkARmJEIUEI4I087HXRiIEBSyLOiYPedefxdz6l2BNxPWlWQ99BFvE7BSm6ZE62my+V6+eWX\nnU7nf//3f5eWlqK7/Pz8WbNmoRBenbDmwVR47bXXXnrppSAz5eXle/fu3blzJwr7EUKZ6sDpFHQI\n5GfJkiWx5Ee2SYKh3XPPPcnJyQsXLqyvr//P//zPY8eOrV27FjWHZ0TRo7E1o4VDQYRe5s6dC0oW\nWwGt8DVWt35y5K/9CmMlDLUvy0RDbDAQ4qts/wQaF154YT81hhIil0NC7EiHqixXG1OToUShPFZa\ntNqghdGjE7FjuW5+yOZ1Hmzq2VKd/+CGuHtxyiZ3gi/DaBT6RZlrT/Uc2te2dV3eVTmGYsoJhz+n\nYUdr4I1vC91n+JRC5cLrWZVu+Pr0KEWAIkARoAhMFQQoIZwqZ4rqOR0RwLqloFDzn2+4a7sC6gD/\nb4VFm67AJBgT1okeLeb62EDMsKRw3bp1MhtECQghqGBVVRUO3XXXXXfffXdUE5A92ABlboOaMgWK\nHkUJHCPdbvd99933s5/97I477vjKV74iGwA3b94MayG4H9gg6mPp4PLly3NyckAgscIQlsPXX3/9\nyiuvxNe8vLzrr78edV555RW73Q5jI0yXaPvBBx/E1sHqR/QeW2fgckQsVsTiPYiFgQ48FhQXojwe\nz759+8BvMWSZ02JpHNSura1FzaVLl0KsrM+3vvWt1NRU6PDss89CeCwO8pDhanvq1CmYAXEUXrVH\njhwBYrAHvvXWW1gtCTkwit5+++0gvbCawtV2/vz5gKi9vf3jjz9GCZYUolVJSYlGo0HlhoaGX/7y\nlzCfdnR0YD3nBRdcgH0ZrijC0Z1QKATHXcAFZK666ioQ+CjhxFLPgfLREF2D/GPsOBcw9gIT4INy\n+PHW1NT8/e9/LygogH8vlozeeOONWESKIXz00Ucg/4sWLYLm0a4nekeZYcy4dUmgw+U62V732Oai\nRy+Pb49kEVxYiP66ik2zi0xzjnXsebv2uTvnf0PB0gfikHiLzvbgB78Id59RpJUqr/g2a8rqfwsY\nsik9QBGgCFAEKAKJjgB9/iX6GaL6TV8ERHiKdr1+zFvT5Uh11V5qXTB/XtxNIkOhBxKCDYQHG4iQ\nXA0l2AE5BI1BOfhGbHMsIwQxA0sElZJrxh5taWk5ffr0Jz/5SRxtbGz84Q9/ePz4cfiXpqeng3KA\nsWRlZcn1QU5AdUwmE+K+wIwGlvKrX/3q+eefBwGDLfGFF16wWq0ISIPwLX/+85/B1hD/ZsQ6ixcv\njlUG+0ePHn3iiSfQKcgPKBb2sUISBBU9QiswN3jGguIi3AsMoZmZmegCFaCD3Ne//du/YR+2UzBJ\nKNOPEIJYojKcbCEQY8GySdAtwPWZz3wGICD0CxQA60NMHdBLxLZZuXIlaBWWTX7jG98ALPCkhZX1\nxz/+MSQg7A0QA1EECH/729+gCbT6wx/+APfahx9+GHSx37jwFVQNOut0OsT//PnPfw7nW/QLhIeR\nD/W+973vAU+wQbVaDQQcDgeABSEED4T+IKIIF2QwGIqLi3FqHnzwQRBOvB0A/hggOhqoxoSUiKy6\nwGzeWOap7XKfbPfWWTVFJIJlvPoSQz6xs4pR6RmWBzk0qkyL09dUdR+uth+v7jk6K7X/VRSvfqe6\nHDHkD53cHO6oYbXJyk3f5kxwBYe1Ff/idmqmOkRUf4oARYAiMKUROGvCN6VHQpWnCEwRBKR4orDZ\nMAyyrrU/ezCgDjWudyzceNmi7HVSTMWJtw/2IgV2hC1qX5KLQUJQCNrWW4vYl3bs2AF+Aq9RWL2w\nNi96KLoDsxVIICgHNhCMW2+9FcYobKgAhgMCiVWFcmV5H4Y1lEebgxehFT7BowoLC7GPhYtgTTAM\nDlUHRGtgnWjlaF/REkQ3xapFqAdr2EsvvQRrJzaQKziXgoCBL4EIRSsPvwO2iUA7WF0JgVDj0Ucf\nlUkggLrzzjtTUlJArsD3YLuLykFfWFoJUyTi3KAJGm7YsAHxZsDionVQggA/2KDSO++8AxYXPRS7\nAzMg2CyEIOQPOnr88cdB4IeSL1sCYSPFwK+55hrwWGCL+ED9KD04KgRig6X0ySeffOONN+DfK5fA\n5RV0MVaBCdwny/uYpJUFuhKL4PA1/mKrbVttOCRIV2PfBTl+BcIh0d3NpZdi/Zv8W5tnWY7FhL6g\nZ3/bh96gGx2RVYZ060OAQBLc83Tw0EsATbnui5xJfrMDKkjZYB9MdI8iQBGgCExpBKiFcEqfPqr8\n1ENAmmyC8onehh4y2Q0KdRu6LBtmLcxdx7OT/YIGxiJsME9FccTkD2Y6cEKYxbAv0wZ4kMIwCDdC\nkJkoyYkeRVvsw9sTm2xUhGUJBi44IsIahkMgWqCLcM6M9gKqgy02ogycKufMmSNbq7APn1LQRdjo\nUBJt1a8ODJtwcYzWidUn2iR255JLLoErJkqwxHH79u3wbs3NzV22bBkCooKYge4CCjDh2CaD7qMj\nmByBCeLxYIkgvoIZvvvuu7CgAi7IBHTYAf+EwKgEeHKCtn3605++5ZZbgBIqABak8YBBEjZMuRpC\n4EBDDAoWRdgAke8h2jx254tf/KLsNAt/TlBT8PD9+/fDKjuofBwCz4SqMPTBkLhmzRp0DfoHJgy+\nHRWLOiB++AoEkJUEnBZnEGNBZVhZYSfEIYw0Wn+idqQoS8o0fcZtS2of+Zenuqvj+UOGBVmKZLyD\niAP9CJ14G2JYYiGM/NYQaPTSopurDnz7QPtHs1OXLs5cG0eD5EShNMlyWSZ0+CVGCPGzLuOLVuEq\nmLxXVpM8UtodRYAiQBGYqQhM9gR0puJMx00RiCBA3quL4a43T5669x+eUx1+fbCrwrUsdyMPH7be\nSeqkgQVbGcxxMFKBnqFTzPhh6QJVAKPDBjKAEviCwtEReSPABmE+kg19KMfRqJ6gLvDzjCUwMnmQ\n62BRIkgOqAs+5V4QaBRmLqzli0qAAyT2wZSwyZY6tJWby584ijoQG62DcuzjM7avqMCBO2BEcqFs\n4UQrELYXX3wRAXWwhA8xb/7617+igjxAmRniU97pJw38FuVJSUkohwJoIu/LmvSrLH8Fv8VRvV6P\nyvKI4CmKDZhEW2GAOIpBxbLxgdLg9ilLwCdOE5pD+DDyoSpWPMIki/HKDYFAP2dUdI1D2HASIQo6\nQFV8Re9QRj478teB+sSzhCWEHB0Zl+QW/+Aq5F/x1nQG2p0w2sXFcBfa9wzDKfnSjazaIKsNjjsr\nZfGm4k8Fw4ED7dt8IZICMZ4jmh6yQkEurUQx53JGQV52TI8x0VFQBCgCFAGKQBQBSgijUNAdisAk\nIeA80tr5wiFWpRDma3ffUlW6cHmaNuu8TLNgXoPJCBZCRDTBojLQQqwug4UQsV7AOgAHCrFEDW6H\nSBRx2223RQHqpy0sZjAhwikRi+7AKMD3EFcGjAIWMNSEAQ3WPNjQYJfDUSwdRJJAyIcdLCpwqB2w\nHWzRo/36jT0UrTPiTrQV1knCFRYBZuAyCmvY008/DSIEkgZWhqgtUBVxYsCHsbIuViZ0gIUN+iPe\njEyDEVYUBkDU6adebCuAALMbyDZC0YBPAihwUcBbVFQEqhZbc8R99AvXU9A8nCmsvQTNA6sfRj5c\ngmFxxTpAKIlTjN5xQrHWcdCOQP+wIBPqyTFm8YIAyyBhDh20ctwLWYYwfIjF/4b5mUnLCziVov7H\n78sl4+5OopORq4hNyefMeVFRsj1wRdbF5H0IKUXPlPBE4SGAAKIoMpP/0ipWFbpPEaAIUAQoAhOE\nwNgmIhOkBBVLEZg5CAStnuYnP/a3OdkSXe2VVl1q+pqcK87X8MF84EaIYJJIPwjfQszFt23bBg/G\nz372szgEygGrIFadgbGAyx08eBB6ggghs3zU2iZrjgqIs4JMEmARsD7BzxOUAwFL4FGJCuAYWFB3\n7733IkEfIljCNghShDCeoFXna+Byv4h2g+Ax4HugatAZHpsghGBWZWVlUA/rDMFswZaRkrGfnuC3\ncEDFOkCQW9gzIQfumgifE6Wa/erjK4K1IOwq8jp+7nOfA3+DuyYg3bRpEyBCpwPrD1MCVokTBAdd\n6AYhWK4JVg/6PYx8RDSFfyni1uBcg0BCWxBCmfMP7Og//uM/cPqAAOK44pLAqk4Q14HVJrQEDIRV\nK02rCuwf1/mbbc4DTUlLc8fdI2F4LCPU75X+Ur43biBpQ4oARYAiQBGYngiMbSIyPTGgo6IITCIC\niCka7HSxRkXbdUKjvvGa0s/pVcTz8HxtSP+A2CFga6AKsCCBrsBzEmQD+iBmCdanYa0dLGngBoiB\niQ25HGLXnslqY70cQpXAhAiDG8JyohDr0B577DFY27APmgTG8sc//hG5FuQgouMccYEAAEAASURB\nVIiNieArIIpy8/P1iTCbIITwhoURDPFREaIGmmBVIZxIYTDEGkhEagGJQrDQfhqC+4FCIwQOgrXA\n8omEFiCTqDOMhRAE+4EHHgAsoH+wDR4+fBiEGfZY4N9P+Ihfb775ZqzrQxRQWCb//d//HULgsDq8\nfHBvDAppPNBq69atyGmBYQ7VEQ5h0WBRURFWHoI64pUBGPJQlSeonNikRFZbatGVpmHXthUmyvET\nOax6gx9ouKcBn2xqAZtaOEFqU7EUAYoARYAiQBGYighElt9MRdWpzhSB8SHw/dOOPzd5fj7bdGPW\nINEyxydzxFaSO1o40OZs+K+t7qOtjnzf27fvKzLN/vScr2iVBhrHYkQAaYWZiUDHS4fbnt7Dm3Vz\n/ngrw+MNJkg3MR+OCQ1RDKOd9y+3M85OxYJPKNd9qR91t3rbv7fjrvmWVbfPfVCr0I9J+Eyo7P7v\ni3lLmeqSr2MlYSKPFyty8QILrg0wmMsrZvE2KvZc4yvcoVEBy2L7vZDCIbg5RMMF4w0LhPSLwCxL\nw6fckVwHn/26iMoBVngBNFBOImM4jG6INowXeUAYb9CGqTbw0PerHH9u9PxitumGSXzmDlSDllAE\nKALDIEBdRocBhx6iCMQTATEU7nm/yn2stcfiPHxdsytgx9QTsWTGOruNp05UFkUgsRHQlVlYtUL0\nhTzVnbpZGeOM+AIS6XexYUFU6bjcJWOkk4kNENVOQgAxkOFKfeDAAZjNEUIJrunw/UbgXJj6owjB\n8xkWciR0AaVBqOEbbrgBOVejR8Hi4CEPRwm5BO4McB+YO3duLNnDPpbgIjIwfOPRF9zF4R0A5wJY\n4KPVYuWgEN4EkANnhGhHdIciQBGgCCQgAtRlNAFPClVpOiLAMmFPwLmXOK3tWX+yTlWjVejKU+Yr\nOWQmgMWDbhQBisAgCGhL0zi1QnAHWv60y7athgmNnBdkECn4jXVWi4Kf4RWsPnXQCrRw6iKAtb5Y\nwIzsmohrBbIHkx0I2/333//lL38ZS6Nh0MPQ4OiODJ9I2XLkyBGwR7iCw4Ub65nlUaMOHOOxKhhx\npLAiGoZBfILOYesHC5ZSg+A98cQTMDMi18v3v/99yIldZIv8OlE5ECLL6SeEfqUIUAQoAomGALUQ\nJtoZofpMTwTgnC34Q56aLofZ022xqxXaT1bcsyTjQo6DhZBuFAGKwOAI8FqlrjzN/vEZ97G2sDdk\nXJDNm5AhY/DKQ5Wierizign6WV0KZ+kzCg1Vn5ZPIQRAxsDKsLz5wQcfRNgqBLUCi0PqFATjRfir\n3/3ud7/+9a8ROAoLpMHiEG4Xa4PhxomV0o888sijjz6KCMMYLJoglC5CCmOp7fXXX4+vqNMvNQuq\nwVMUBkYYIbGmGrZBWAsRnxlZTH/7298iFJPsUFpdXT2iHLnmpIEc213s/mgUGGv90cikdSgCFIEE\nRIASwgQ8KVSl6YgAK3a9ckwUwp1ZPSFlOEObuzILYUjGOLGdjsDQMVEEhkFAZMXCb23qeOmQfVuN\np6rTtqMu7aq5w9Qf9JAo4IdXwwgBPnchwypIhBm6TQsEQFcQJAlsUA6xK7NBeWT33XcfEqjAYxNs\nEEQO8a66u7t/+tOfms1mVEBEKMRPhgcpTIJIx4oSRBVGtGGsPISJD3XkzJz9QIIzKoyKSMeKOMNy\n6tEbb7wRwbdAAqPEKSoHdkgIxAJCCMFRsEcYIaGhvExRDgQFeya+og7IJ+pgwxJHcFHsgNNCB9TH\nDkgvVjyiGg7FqgQrJQ6BvkIaPtEKGmIIcjU0hDSYKKPBvdAdKqAviJLr41NWD+UwosK4isqxvaAC\nNERDyIH82N7pPkWAIjCdEKCEcDqdTTqWREYgwv1aCjqDqtC1ZZ/Ds3Wsho5EHh7VjSIwEQggMyHS\n4FmuW8ApeF9DT8eLh0yri5XmsYWDEm2NYVsj3r9weUshjf70JuJMnReZoCsw8ZWXlyP5CuhTrA4g\nMAhujBKcb6zrQ2ZRLOSLprpB5SuuuAJOpHABBSEEY3zjjTdADj/1qU8hQwzywYBhQmysQOyDd2Gd\noUyl8BV8DGLBo6JrCAfKgX8pgvSiSWVlJWySWJQoJxG95pprkPcFjBTZREEv5UQyYHePP/44tAU9\nQ4jj+fPnI2EMlix+8MEHmZmZiPeLzK7gbFGtZD9YeMyiFZLKInUq7KLIG1RSUoI67733HnxoP/GJ\nT6AhuCi+IqsQMuVgvIiKDFoL6ohqaIXyzZs3IxUN8gmtXbsWh9AdDgE6cF0Ejt69ezfko3cww2jv\ndIciQBGYTgiMlhBKj1A8SfsMGnhx2xvsra8wjtAglbCcDVcyouCV7lDTZ7yykhSINJiqc2wpdbLM\nEPrwJO/jIqBHCgkMQLmvigT5kODE8YRQUeeKADnF0jYnbWl5yoJzFUfbUwRmCgIsp2CNS3N7tla5\nT7Vb3ziWefty/JjIM6j/rXBwRMLWOtF6hjVl8/nLSJN+98/BG9HSCAJC/W5CgaTbl/yZUAgiM8qc\nOXPy8/OhLiYqUBWcBwsFYZGTB4A0KqB/4FcgYGCJ0fOKiDKoA7MhSkALYUhEBhd8gn3B6Afmg+yp\nCC0TrS/vQD525E8kIIXrKaxtd9xxh3x0GDlWqxV5XJDhc+XKleCEMGzCFgfmBvsbsvugX6xvBJ9E\nZlGse0TMGxyFs+s//vEP2OtAKWF4xLjwFVbHqEpgdPj6s5/9bMOGDaDEILTQB1leYQiFfRKG0y1b\ntsCfFgwTTq3IlAOaB1EYIDLfINUQPGZBL5EL5zvf+Q7ILfgnRoTMQIiXg0MwrgKcb3zjGxACfcAb\nsfASyyYRrSeqAN2hCFAEpg0CfTfHEYZEboKYzvaxMrxmxU1xQpmI9LSXKBEe/eRWH7kLx6oa8gYd\nH9WEXAGoZlyWq8lPkUlVbJ2psg+IvfU9rsPNCEcJnTk1b1ySp85Kkh9yvaMgpMLf5nDuawwHBLnQ\nuCRXW5h6drXe6vRvYiAgX8e4SjFjgXmQETlpWpEYylEtKAIJj4AmJzlpeZ6vtqv73dPJF5fjxoiH\nwoB3Y4MMQwy4hdqPGSHI5y1lNUmD1KBFwyIA+yqOc6mFrLmAVBwV6sNKjN9B+akHeiYzNPkThAe2\nuKgtC2ZAZOAc2CcYDgpBhPAJEx+MdeBLYF833XQT5EDIyZMnBxJCWQ76hXysHsTSRORxBcuSywfK\nAfGLlQNX1YcffhjrFWHHg0cr3FZBAhHvFDY65ICVhUAaeB3I3t133w0yhg2MF6wP6VtlN1S5Gj7B\nb5FTFFZHaALnVbBNkElY877+9a8fP34cuiHgzaxZsyAcHaFHEF24nsIOCfb45JNPXnLJJbAWYqUl\ngujADIj0s0ADZBKLLTdu3IjoqVAe4XmQoBVkFQ2RcxWG02jvdIciQBGYTgiMihCKYVFw+/FJTHbS\nPBYQyFSQ0ypZZZ8DQzyhwZs+rOG2eWxbqhCNI/2GhbxqEG17Pjzd9OuPOIaDahb7gpzPX5BYz6vR\nI4I1Bp5g61/3OnfUyY0woryHNqow7znL6gkSHm7/x8GezZXkwSyN1nLd/Jx7VtPX3qMH+7zU7Hr1\niKAQORWn5rQMGybvsuk5Oy9ngnY6FRHgWPPF5fZtdd7G7rY/785/aCOrVY5qHEFfuOMUwymUS28Z\nVX1aaVAEOKTI4Yld9qzn0aBVJ7VQdsKEaSstLU3WDSa47373uyBaSEQBw5psGITHI2K9YFmdrBwY\nHZwhQajQCvvIThEdF8yJcByFDQ02PVSWOWe/IUEOeCaiiSKQ6dVXXx1tO4wcWUJFRQVserBn5uTk\nwHQJKxyIJXSDj6hMTVENPqvQCgQMyTNg9AM/RH4LkFXYMzGofpqgMrxPQeqefvppcNpbbrkFzp8/\n+MEPMAqQ23vuuQf1wT+BDyrI1kWYNFEOCyH8XbEkEsPEV3BOWTJYKMyJILEYI7goRgTOiYYYI9J4\nLFq0COsS++lAv1IEKALTAIFBKNbAUXlqOjpfPBz2yfaoXiMh/iq45PXFyetKe++GEkEh7YnxI2ZD\neb+SmIND7MrWR/fxtrZn9oU9IW2FxbQ0f6AUTXYyjGP+JhsTHGc48iH6H02xPK6BoxuqfDiZ4AbA\nU19mCVk9Iac30OxA7YHjJQSQZbQlFn9FD3iyv7EHcdjRn1R5sOoJ9TpX0nNmfgg9Xsyk7KlOQ2GG\nileTUzXo6ZqZ6NBRUwRGREBkVBlJ2fevafjJ+84DTbaPasyXlCMW5MjtnB2io5XLnM0oNCNWphUG\nICCGu+qkQtywJKMsviTMvQtzDxjWkHACJjUQJzAraAeKiA1UB/nTYfWCayjYEYKCwsIGagR+iDow\ntcEGiCVzcIaExQzGNJjLomno4dKJaC7YyFgHEGAwJVDBxx57DOwLSwQhHNWwYZ1ePzlw8ozKkevA\nRTMqEN1F9+WjA+uAsg5aJ1ofR2Hue+aZZ+B3ir7gZQq2CYMhoMC6RBBO1AS3xAbHUbkVmsA6ik8w\nRpk3Yi1ilPeCc6IcGyrASonBYsM+2oKRYot2TXcoAhSB6YTACE9TacGA6D7VYdtW69hTL/1rcOyu\nxz87/u2scx5oJrZC4gjX90+yWvWVgq5IcsaGGyFVuEUJ5B8eP4LDR+yTKCEMp28zzM6y3LiQN6pR\nJ2JvidSQuo2o0tckqhaRJR8lAvuL7etg0D1ZDeLHKmnTJ57UlsTGCEdlqX5f3cjXSOveHlherUAA\nvfyHNliu7/PRlwYV8/gl92U25ZKyvIc25Ny7ijOoIs37P7RIb5EByjv4lDdpsEQFcpxuk4SA80Aj\nruOAKpiRlo/cg9gnlzXdKAIUgTEgwBoWZadePSfkCfR8UB12Bxk4rgx39yY3dqFhH/5wljJG2Xu3\nHEOPM70qHhLhxkOsQs2lVwALQgz6P2vOM0SwX918881IJgFvRpgEwW1Aafbs2fPQQw+BEN51111w\n4wT1QoAZcCSkKwRJg40L9j1kj4CvZlZW1vPPP4+khT/5yU/A6GCpg5MkqCM8LWHNGzg22PGwkA8W\nOTh8YqEdDH1yHZRH5SBOqSwHfp5DyRkoedwlMOIh5QZILCyK0ApDBv2DGVAOG4NThug4RUVFUAZG\nUeh59OhROIWiAkypqA8EkEsDWAG3jo4O4ADWCoMhuCgcR7H2ElZWfOIo1kBicea49aQNKQIUgURG\nYAQLoRQ4RjSvKQm7A4LTH2hz2nfU4qFgXJyjLUpl1UrT+mI8Hcjifjx4Mb/tpRiCN+g82BRodWpK\nUgxzsznlCMxzIEZ47EAkmTPjfhZZQoh9UlHqqncyreCVqXpGwUlKhENOv2NfQ6jbo5udrqvIkF5y\nIUhdb2UiTBR8IU9Vh6+mG4I0xWZU49VKiX2O0hmGUCminqQgGTJ2eif3RGdJRVlTMgC5miD6Wuye\nyg7B4YUSqmyjYV6OQk94bGST1mNyBrVGr/K12Xub9R6N+YsWUJjNM/FaFYMI6oNu5JSQnsNhwVNj\n9Z7uEv1BVaZRNycz2OEKWN3mVUXSIAZtTAvjj0DA6efCYWNWem75KtlCSDh5zJUZ/y6pRIrAdEKA\n3OrIvT/l0oqeLVWuI80nv/Bc8eNX6krh8he9AfcNmNyIyS9MFP1OfHKWcoanFsI+fEa5F67fIwbd\nIq/k9GmjbDLJ1RD5Ew6i4DlwiQRjkSNngr0gWAu8H+HSKacTRIRMsD4QOThqwvzlcrlQgq+gPYjI\ngvSDsPjBvIbpBrgcCCT2i4qKBo5l586dsMW1t7eD9a1evVqugIClWEmIRXoD5SAq6aByBko+l5Lb\nbrsNCsB5FQkzsN15552wAS5cuFCWCSsoSuBHCjMphgZwYBRFBB2wQYwX5kSYOq+99lpABxhhSASl\nBM1GW0QcRZBSrDyUkzfiELbogslzUZi2pQhQBBINgREIIWE9DIsY35m3LMFD176v3i6tcDOtKU69\ncjZhatKA8KR2Hm+t++7b4I0oyb5/Vc97Vd6qLnKY55JXF2Tft0aVahjT4F3HW2wf1gRa7GJIgBq2\n96u9JzvlCbS2IjVlQwXLSyQT+mEygI7YsL/RUfXwa/4zPSgRec68vjj7C6uUZn104i14At0fnO54\n4WCg3U3qEIVE0KTM25YmryvhNaNakQKuW/udt9xHW7CeEi9PFSn68l99UmWJjK7t7/vb/7afkV5b\ns3pV7lfWpa4vs++qa/79x8E2FzqFYys+0TefrMm5d3XKxnIZFik6GpnvkJVlpBqQH2QD+5YrgOaG\nhqZ0pLHIeGo7G3611VdlRZcEIfwjO0SG4YU7FQY4Lg7aySD90qJzQcAX8n5Y/2o5l5GbXFKQXE7m\nr5QMngugtO3MREB6y6VI1qZcMavjhUNwra9/fPOspz5Nfk4DbmXkFgg2iDVjPod0p5SfV/SON8ZL\nR4CLIFY+J3HFq8bYcpKq47xifR0S0CMYDPLFI98gSkD2YDYEQwP3k/UAEYJ7Z1FREWqCy1111VWw\nKIJM4igYDkyLsIzBiRQ8CivlEIsFa/MGDgA8Cs6ZkA9bXOxRyEEh5CB8C4KyxMpBjziEynDOhNkN\nTqrYBwuFIyucV3EI5jhEdgEZww7eEqI+LJnEZZPjMC6EIUU5qmEVH5rLdDe2a3kfo4NVU842gRIE\nlcHKQNgJ5aPYQSQbuNHCsRbBZrAOENwYZA/dQTLYLDxdQQsRXBTWVDigYpPbgluiHINFyBlYFBG3\nBkFr5OEM1IGWUAQoAlMagZEIYeQpK1mvpCepZJ0jd1iZiEXK4Fxu94pBssgQJR3PHgQj0pWkBTud\nIYfPsbfBsCw/9dJZbG9AmtFABmbl2t8kyUN10bm/Cf8gHU9+1U69cUm+0kwc9yOUhujBOvc2cmqF\nFv12uUJ2H7irbm5W2uWz0S9aCS5/69N7ra8fB0dVpRuUJi3m5YEOZ7DN2fjrbYFWR8atS7nB4tb0\n0zYcCIVg5ZOmJvgMe5D81aOygHbiPinCOElUJDDBz1UU7D586373VKjDo8oxafPNIJBhX8B1pCXQ\n6W7+3Q7DklylSYdhyTfZKEOT7YX9upa+Ss+WyJ4E/2CVQPkQB6jx1x/6qq0Ks0a/IFth1AYdXs/x\nNqIhFCQRSoduPqhMWjh2BBABCCx8Z/Nmwe6Hext5wYLvFPixI0lbUASkHw78K4hrPX5H7c/uh7uH\nt7oLz5rBwMGtlxUa94Uq32ON6awxg76EGQylUZXJHiejqnqeKoE1XSptw/QPinWdtA2sg6gtsPsN\nLO9XAuKHgCv9CqNfcWcH3xtKDqxzIGNyZSztg5emvA/q9dRTT0WFgHBG95HyIbqPzBbR5BbRwtgd\nJDOMfoV8bNGv2MHYYevDFlsYfRSBKyJjYeyh6D4cSuEZiy1aQncoAhSBaYnAiIRwFKOWnhXGBbmZ\nty3pePWoYPMxITHr7pX68gxvfVfDTz4I+wVvdae4vpQdnQlO7jJt0xxepw52uj2nOwi9nJWushhl\nFqYpNRNnS2LuitmwSkTFZX52uWFelq/JVv/Dd0T0e6ojvLGM1+A9mWj7uK7nvdOMgjdvKEm9bBaf\npAZtAw/sePmQ+3iH9c2TYE1Ji/JiJA6+C2aV98ULu944bt9aq8jQZ925Qp1h6nrzhKeyM+O2JenX\nzcfwrW+fRI/5X7nQsDAbUjLvWJ5ycYUyTafKTFIatUIg2PHCYTKbcQb89VbVAkJNzx7M4F2PvhTI\nBDpdQA9NQESzPrNcnZ0Miug61Nz52jF/i53XR94djl4mrTkuBNhub8fRrt1zas2UgI8LQNqIItAf\nAU6rMm8sc+6td0lRx3LvW6vKMPavRH5vonDkNXxyWXO5zDmSv8uAWrSAIkARoAhQBCgCMx6BeBBC\n8tgVeYNKNyeDe/sEXCK18yypl8xieFZTkNL8x91Clydk9YoCjoxhM11QZFyWb99e2/ibTjHApVw5\ny3whUv3AhCZyPEf8RYm7A/keEcoyesQb2DSHVbCaQnNzqi5o9YJxEe9NVgz7Qq4DTWFvkNcqFCaN\n51QHaQU7HiOC4MGEKHhCKBwNIUSH+vlZIY/f/mFN2Bc0zMsO+0MdrxwONDl4szr7juUKWAtBw7KM\n5o2lRGEAkp/irem0PluJhYtiMMSqeWWaXlI7HPITS1182SAZGcsoEGiHh2mU9VZ21nzrTV25RWHW\n6UoteV9drzBqEMCGjD+KnqQN/Yg7AkI4uLv1vVrbSV15YWr7LMm5Oe6dUIEUgZmGgKhM0xZ994oj\nN/zZtbfRta4tZRBCyAj1e8Mdp1mVgS9eyyiwIoDe8WbadULHSxGgCFAEKAKjQiAehLCX0ICb4RUs\nHrnq9KTIAj/kB9TwAsvAzZIsnhvLBgk8WJ8CiY/AqcKsguc0krbEmIZeiF2ylwtKcllGlW3iEF0G\nG2ogQSIDd02oQ76DEAqeIPwwkaoBeY1Z2elVOgZiiVAusC5yozSaSb1qcs2Mmhcc/qDNg5WTCJ8D\n9uXY05B505JghxNVdOUZjOSrGrS6z/ziA/fBRng6KVN0vEELpQItciaf3iHEfaIiMso0g+XmBZ3P\nHQk5fcFWp70NPbJW9K3Eqs6i7LtXKVP0vd3LQJBPIOZvtLmPtESQ6zsyHfaIy6bIZrR6NzkCpjZd\nl0lJrtcJ2IhnqDT9bHHWnWn6eIGiPL8nE11PQFdUJEVgxiEgvUJj4UKS/ZnlbX/ZZ99eY1qZzxO3\nkbM2sb0Sd3wuKVtRtv6sA/QLRYAiQBGgCFAEKAIxCMSHEMYInKBdaQIgGwSlSTU+CCeMMXDBXshJ\nPG9QDUDNWJ4s1IP7aMYtizS5yWBrck2JWzKsitdVnOVzP6gcFJJOERJGr9LkmxE4x9fcg3V66mwT\nSrynO91nugg5ZFj9rHRZSeu7ld5jrVg5nrSqkLhuZpkQ+hN+m81/2CmtiByqn3Mql5mHaWkBj5Bi\nCCva4UKQ2FC329/mBH21fVjLKrmChy4a2AdGp8lLxj+C7rTbyPsKkfnbToTQFq6eY0pL10zQMKWL\nk3EEba/u/aUzo2dD/nWzD83qPLafXD50owhQBOKEQPLG8tan9yH8tTggD63otZN89EKAy+tbWxWn\nbqkYigBFgCJAEaAITCsEpgohFANdbtgFibVQZHwddkSCQfAYxMmMzrAJTxt6ss3rVCowMZ4LBwWI\nSrl8lkIfCUEOJulvtfkb7cgLP5pzK5uUYFFU5ySDEHpPdTn3nlEXpBoXZvvqe+DjGrC6QFd1szMJ\naRUQ+9QWDoYYpUJblKLJNpEIkzwHp01J2aE1Ho0qw9Rh2aDdg6A14VA4+84V8N0NewMhhx9Lbjqe\nPwgbpudEO5x4YXftJwPaEaMZ9Jow1fr1OKlfpaE1eYPFemW2Gm8IJmqYEvFkXjr1e6u3rTBp1rLM\nDRzXQ0ZKTj/dKAIUgfgggNDQcIb3nOokTihnb+GWo0LLMTwVFAuuOfsI/UYRoAhQBCgCFAGKwFkI\njEAIpQmziPV1tm3VMDF5m3rAmVDoxHo8TwB5CJNW5SPWC7gDor059jcJyBTMML66bldlG5ar2T+u\nC7uCsJYE2hz2Aw0pF5ZKNGNUVINMnMUwlvzhkS8Eha6XjiKeJ57u7so2b1Un5tXZd69Ou6wCSSAc\n+xuwOBDVPVWd7spWbUm6bUd12ImgjiKyVtj2nCGpHRQke5Xtg5qQzWN9/YTnVHvSskJOwQYdPsRZ\nCbTa4c+Z+8Da5LUlZ8Ez2BeiPYsANgpNAYkfbdtRgzg65ktmJV1Q2PH8YftHtfAjVVr06jQkomDB\n/TgtkhzyTDDUvbky7PYrknSeeqvrYLMs27mnQZtnVmWQ4NcIl+c81AzK62uyy8iTnIp2L8yj6qIU\nw4JsUFa4HfpabM79jWC2kAaaB3h9VZ0dLx6EBFVuctLSPE6pwNgRCtVTaw31eBt+uTX9poXJ60o1\nJp2voYcJwXmX5VO10E3WIfZTGt2oTlBsq6m0L1k+1RyrxugncqDbGv91rGuvRqHfUHBNui67i0U2\nFPw3kV1OpdNAdaUIxAMBniV5aNlOz+lOZbpe9sqWnRvEgIsJeLh5n+BMkdTh6I94CJBHi7Thtygy\nJ6z7Xzr1pCvoImsRUICjJDLwIPfG3mb0L0WAIkARoAhQBKYbAiMQQjJ7FRnrlpPNT+zA9FlacIUE\neAyYnuPjOnhges9Y8750IRLy2XbWtv/jEEkPzzDuY20dz+wzrS9p+f1uwelDQ1+zveHH7xtmZyjT\nCXsc1UYe2yyscLqyNOfB5pDN1/HcQShDmit5VYYB6/GgQPe2050vHiVasozrYFObgjetK279/S7B\nFYB/IEx2jT/dYlyQjSyI2qLU/IfWNz2xPdjt8pzo8JzoxNRAVoZFsopcg7rAPCrF0BfxPVUgbica\nhjq9vFEN9gtirC1Lse9sxLRCnZvMqYjxDVzOtKbQeaDB3+qGK2nHC0fA90QFj4gvnFop+AKIViqG\nwnlfvhBTkLrHNyNXIcRHiYNtW63tw2qJEKbmf3UDUjCH/YHOlw8jJirMpWHiSIshsK7j7a7jrSQv\nIs9UPHGTNjIQloOeDOOvtzX+4sPGn28j6+egExZmpuozb11Gjs20jWWeanDhrGg4BpyQAD0xW4en\n9WD7RwHBf2He1YvTcXKjk9CJ6Y9KpQjMSARInqGKDLyLrP/BOwWPXAK3fHg94D6HF2JwGcUf3Khx\nn4zSO/KDJ14m5IkB35CanmOvnP5jl7ctSWVKTyq9qOB6rUIrYoHBjASTDpoiQBGgCFAEZiwCIxBC\nGRcEUDHMzwoHwsTEITGQCJVScGBr5PkqIpCM0UjqEL8d8BRtebo6x6yfmyH0ePH0xT9CgUigl9Fu\nxEFUZLHiLvOzK9Q5p5FJAovfEGlGkaqFPsbl+boyC2Rh8Z5+XiYjpUAE3dGVp2lyUZIR6gERJUvG\nuCQ1p1FCQ/CfpGX5Rd+/oufDGtgwBZsHjAqBahDwU1OUkryuGEMYnXKyPyALhpm8ttjfbIMmutkI\nIcNYrluIHBtMUDSvLyGGQWkzLsyDMRPUDjkPkZlQaTFghR50Bsv1HGtlOFZXDAwJMDDueautcitA\nDZCxT/6wDPGPTSI+rliLqC1O1c/JlKK2SsdiMOVNGoR7JRIQZdSk0c5N1yKIjEkb6HLBZAoQeK0S\nvNe0qtCwEG/NY1qSNjNjk6aDcBkt1iv6wxcnAELh4N62LbX2k3nGoosKrgPMMxLoOKFJxVAEhkaA\nVfLmtUXO3WfcJ9uQdjVHEBHbGb9r0dUTOviiqDGw6RV4ksg3WIjBbjDshyM3XtYEw4HtTW92eJqT\n1Mm3zX4wWZOSZShEndj6Q/dMj1AEKAIUAYoARWD6IDAKQsiyxnk56q8mwZAljTs6ucWLVNAzHTFT\nMYy+IjPvqxvEEJIoEEJImIleDSdM0RcitAZERscrEGCTvJgl34fcQIAi82dJMMvqy9K1hakhmxc5\nHtAj8geSpYMR85ZonJujfqhXN8KCtLxBnXv/WqSCQBeYirM6pZy0kPQIZpWfqrnNDLslMSGS1IU8\nVIWxLiIPdQgPxZwgOkzSLnYjR8hBUZ1jyr7rAuS7B6XktYSGIRkjWakohEkAz97leXjdnLyq2Lgw\nN9QDCipCQ5IQAnqVpguXIw8Bi1T1MoZZn10JQ6jUl6RCDFIYFBqiMpkAbSw3LsoTw/3CtkInkcdg\nzUhoQfRTJmlz71kD11bOoBLsPnjVYmR4oY7kE5yy/9JBqdPp/yGRbAIOsOol3PEdNbm46+yVu1re\nxc51ZXelajKkDuRO49sXlUYRmOkI4I4I14zsL6yybj7Z/c6pzhcPIdaXriSVweJpbw+fu1hRsEL6\n7Yn19iqrrx1pYKptxxscVXhrExbDDn83ELyh4t7ZaUukan0fMx1ZOn6KAEWAIkARmEkIjIIQgl4o\nOBIbc9hNqkMWwsVueFTHfAX/kpjK8HNjQhglT0eprtwcBEZlwZK8gRvoFLEi9jugGtbWR8yMyTr8\n69eKcEFoCPWinHRADRQQC5OsIssozTr866sFZ9EhukZUG/zrqwmTaZJGNvpFCxFpBv+iX4faGShq\niJpsFAcOy2zoJiHwbLOHnGdyBnEqh78WxwwZ3iXAsv1W7bN2v3VD/rWFplljFkEbUAQoAmNBAAGi\n4TEBXxVvnRUeFvaPazX5CCJNftusEi/ROK/gfrHyycOdu8IieV8pwJsUG7nLkw3re0uS55K7Pvnx\nymX0kyJAEaAIUAQoAjMLgVERwrhAgsetGAqFXAFIG/6xiwc1UjjAtBWXfscgBDFB3QGReJ9iYhCZ\nLgxsTg5wxA9zaCPiwEa0JDEQYBm/EE5S8pdZEOWVTAJHuhjHpnZIDLxd8xwWJll02YvS1+AiHlt7\nWpsiQBEYHwJKPuv25fU/eb/92f26tfnaqqfw47aJ3l01f3m/ZTN+6RqFTs1j7TCbqstcm3Plooy1\nCk56xJB3Q/KrwDjfDcY3DtqKIkARoAhQBCgCk4/AZJIuEUEv2/+2byQ2SIx+6Z9cYJjfFxpucnBB\nwNKuV494KjsISSCeq0NucEMt+ual9H3ykAAl8gESYELyto3b9E++VMh1fbr78I7mNxEYd33eNcWm\n2SO8+UhklKhuFIGphgCWTCtXWIStzQ0vvV2i2eJWsC+Gjp9qOclzytkpixdYLkhSp8I7JNtQYFSR\nANGRTX4zRO4Gwz+aeuvTvxQBisCoEYiY4vH7Im9d5GflqBvTihQBisAkIjCJhJBlBbvXua9B9uUZ\naozkuaziEBhgqAoTV45Fkh4kftjXiBfGyCsxdEcia1JLDodDV6FHEhSBmDkf2Y35eo4Ki6JHcB9o\n2+YNecrNC1dkXyw/+uLXwTnqR5tTBKYBAmR6SZ4RfeQtTNZ8MwxSvHzc+LYq2TtHna39KBBYZazL\n9JzRcfPSVqzJ3ZRrLElSm8l9ffAfZIy8aQASHQJFIKEQIL9QEgf+kCO4KT2s4/F18N9hQmlNlaEI\nzDQEJo8QwgkTUTTnv3jXCBDjac+J58FfVIqDWvjNS8JI1z7kvKFPdzkkSd+0pO8I3ZtZCJDpqcgg\nAm+Dvfp0z1FkA7m86GY4p5FnIDk2s9Cgo6UITCACxL2TxJ+OdnG6+0iDveq4dW+jvRru/roMdXqm\nPqc+zeEqTlqz9us5K8zqNAWnImsAJC45FCOMCqQ7FAGKQDwRIA9BeRkO+1yzp84r/HWRmT4V44kw\nlUURiBMCk0cIcVdAygReP2J8y/M3i8ZUQ6NQjDyFl6b5JAQBne/H6TKcymII8WOZQMh3oP1Du79r\nnmVlqXk+IYMk1j29QqbyqaW6JwAC3pAb+SEQEdQVsEGdFteZLfWvtrjqelWLzC31qqQ8XdmFxas1\nR2y+em/QVlyWfSWnU7OI7ByhkPTH2IvZOP6Gw2LAzapocLJxYDejm5DnI8OtT1Xt6PE3+4QdVv+W\nrsDFaeoZDQodPEUgIRGYTEI4SgDOp9VtdO+PpSnI+VRzlEjSapOHQKurflfLe+hvY/71EZ82cplE\nZquTpwftiSKQAAiQ1yHkFSD5GEYd6a0JagxSB/Y8ZIaotB440rkbMXuDQqDGdlwSJXIsn67L1SkN\nkng+XZuFfUQKndPtEg6/Y/N3timWuFsMPVuqUi6tYNUK4s1B/qcvaIY5FUMeYk3ZDKdkAp5w0yG+\neM2Q9egBisCgCEju2OtTNUtNqseqHC+2en9T50xTsQuMUlZqOo8aFDRaSBE4HwgkICE8HzDQPikC\n40cA89LwC6f/F29CTeo0izaLzD8Hm+OOvwfakiIwtRCQKN6IiRzqHadPWvc3OWsIfRywhcNCk7PW\nEeiBjyisfDqFHtUQD2Z17hWlyXPVPLLaMhzLoUSj0AYPPB/Y/3fG7zLOn+/0pLlOOzteOeKt6Uq5\nYo6uwgJ18JuUjPYDuqEFwyLApRYxvEoME6+/YSvSgxSB4RAwKLjrMrWbO33HXMFXWr0LkpTUZD8c\nXvQYRWDSEaCEcNIhpx1OLwTwVGu01zQ5arMMRbfM+iJiV0yv8dHRUATGjAAhYCLb6Kw63XO4X+Nj\nnXvg9ikXCqIgYNE2EgP2q0QWkmMpN7EzzktbfvOsL2oVyChICAlKlZwKPJC0kBiK6LH53/lp+MxO\nkeWV865RLrm5+PqUqodf957qsraf6t5anbyqMOP2ZZocpKullGYA0CMXkHAgrN8dqt/FF68euTqt\nQREYAoEVJtV9BYYfVzv3O4KbO3wb09Rqjv4khwCLFlMEJh0BSggnHXLa4fRCIBQOvFn3d8xPM3TZ\nSHINBxn6iJteZ3gmj4bY5sgiIGmTr2x88YXcAQEZZUUwOm/QjVTv4FqdnqbqnuM46g9597d9KJMv\nNJZyvKB9rxCGMaiSeYYnTpyw+GmTS5LnZBkL5C5iPsnPKF2bXZayIKYwukvaikFfuP1UcO9fw81H\nGK1JOWeT8oLPoxn0LP/5tbbttV1vnvTVWXu2VjsONGV/bqVpbbFCryRhaYgY6SMqj+4MgQBIuWLZ\npwMf/JK1t4WdHZzRQnxvh6hMiykCwyDAceyGVPVv6lxHncH7jtoeLjWuS1EZeC5Xwym5YeK6DyOS\nHqIIUATihgAlhHGDkgqamQjA4a3Bfkqt0C7JWKdXGaUFS3SyOTOvhWk3aol2Raldo6PGJ3gbHdWt\n7nq7vxuEzi94W1wNfsEd4yUNBskZ1KY0bRYqpOrSk1QpEVxkGiEycPhU8CrCB1kGa/9U/CARJiS/\na3C+IalH2OcMHXw+tP852CK5jNkwDHKl66SlglJvSt68scywKNext8Gx84zrWGvrX/a4T7Rn3blc\nmYLIKGRgdBsNAqDPfN4ynIZwT71oaxSNFoBMb3CjgY7W6Y+AKFYYFF8vMVa7Qx92+39a7fwZyxbr\n+J/PMS1OUvWvTL9TBCgCk4sAJYSTizftbdoh0OSo8Yf9BmXS7LSlGJw0WaIzpml3mmfkgGx+6xn7\nqTOOU+3uJizBs3o7AmG/1dtOwOhdkJesSZ2VuljBkfDRhaZZqdoM/AY0Cl2SivhOG1QmrYKEpowa\nzgnTi7A9iVbgtzLoz0WyTBK/0cHIh+hzhfY9GzryGqPUKBd+ki+/hEvOJQ6mUm38lRgfq0zWpl5a\nkbQ8HwFm2p870P1uZaDDkXb13OS1xahCt9EhIHLGdL5otVD3cfDwK2pLuahBOJ8hifroZNJaMxIB\n6ar5XJ7OL4jvW9XvW32H7MEad/ClVm+FXinlJ5yRsNBBUwQSAwFKCBPjPFAtph4CZP55uvvwe/Uv\nBQR/QVq5ikPuQXmmRGdLU+90Tg+N5fCekgWHLP0iOyQgCwgSqFU4YsfrdZrEYXIRgzz1Xrj40uFp\nOt611+G3b296I8wg7TvxCw2LAofle4QEMlmGQqzruzDvao3M9BgWYT/lKx5L+1h5dR8EDbHJXfX9\nQvr2zmogeSXKrolIHIHgMWQcZETQIRwMHnoxdPhlRgyrr/0RlzWfJf5mfX6MRGRELPmjNOss1883\nLMyuffQt56Fmf4uDhyl/US6BgYxIdoslAiKNzlJkxn+RaLZy3ZdgIQyf2RXc/5xqzRfIWYhBeMZj\nRAEYFQLy0xFV1Tx7hUVzqUV9xhO6dFcX8hO+3OrFFWVRcY9XmNakwH1A+jVKl5l0AdKf5qgQppUo\nAueCACWE54IebTuzERBZm6+rx9dVkbLw8/O+MbR328xGiY5+0hEgCTAjdjjMpsi+V8CqPx+SN3hD\nrlp7JbKkxCpV3XO03dMsl0gzL+IVqObVOoUBn1jyV5o836yxgDCtzrlCpoXRuV2snInYhyaR1UUh\nn+hsC514K3TwJWjC6lJUl/w7l72IYcFaRyJzHKstSSv54VUdLxy27aipeeQN84ZS45I8sERlio5R\nEHkSyaHzzv7nUL6twUioXHV38P2fBg/+g8ueyxeukqbsODl0owiMBwG84sE7pnwt/2iZ8alGD1Yh\n47VTmy98+yHrtRnarxYbMnHrkV7RUBfl8eBL21AExo4AJYRjx4y2oAgAATIXisyHsgwF0rdJmyTT\nE0ARGAIBMoUSOz2troAdO86gHfvYaXe32HydyO3e4m6AuQ8cUW4fuWRFJt9UqkC6OWwiY1KnpmjT\nk1UpmYYC8MB0fY5cLjUB95L+TtaH3JvQdEg4s0s4vVX0WBmFksuez8+9is9dQux7xFaF4YykFsto\nilJyv7RWkaLtee80Is3YPqrVzcowLszWL8jG54gCJmvEidWPDCteL/B5i8Ol68WTm0N7n2G1KVxG\nxShAT6yxUG0SDQHEC74lW7fYpHIL4VCY2WkLwH30tXZfpSuE8DMlegUCkxbqiDs63SgCFIGJRoAS\nwolGmMqfpgiweKMZwiIreXiYWA9vIZQnrdMUCzqsiUIg6s5IKBxhb1HbH3F3RJE8X/eEXPX2U56Q\ns8FR0+FpRu4+X8gDmuQLeZ2BHokskdk7Klt0OUWmigLTrGRNmtRWFsCkatM5Vn4ciDAMYu1f/yFF\nKvYvjvd3mWVgaNhIl+G2SjiIih2nREcbvnJFq5Xzr+HMeYwuheGIwqTSSLpFeC/D8DpV5m1LTRcU\nek53WN866T7ein/KLad1xalJy/JN60p4g5ogTawS0l/8melbL8AqnWLprWF7S7jlaHD7b5UXfolP\nL5vp2NDxnxsC+GEaFOwSEyLKkB/+smTVJWnqn9e49tj8p1whrCos0SkuStOAGfb2Q36YMB4uNinx\n+kryIh/yx09cI0a8NfTKpX8pAhSB6M+MQkERoAiMAQHMWOF9d6BtGx5kBUkVZKJOtqEfTmRGj0Vc\nY+iCVqUIAAEyUZLfNkTseuRSw7W3vfFNHP2w6V/+EIJ8MoK03k/EgjsxLBGayKU2z7IiR1+k5JRz\nLcvTdTkkgx/Lk8V+RK70XyKhLBHBMLzJMOSw3xn84FeIZcIIQfhzcmklyo0P8pYyhsdja8gf2oij\nASc0zMvSz8lMvXy2fWdd50tHvGe67G1Ox+6Grn8dz/rM8qSVBbIQeJGeS0cjajLlKnCmbM0nfuR7\n+avh1hOh/X/nLvp3Vk0iBtGNInDOCJBftFHBLU9W/W1xylar7/0u/xarH1nsT7iCUY9w4thNVhSz\nv56XfIWFvLsZ/E5AakkvwM5ZLSqAIjBzEKCEcOacazrSOCPwxIFHEX+/MHnWrNSF0kR2iIeT1C2v\nVeKJF2hzBFodqqykOKtCxU1TBEDZ4K3nCbqDYX+7q/FAx/aqnqOwAZIQLxJXxPq6JFUqviFdu16J\nnF7KEvO8FE36ssz1al5LUMGlKflVSsFTpOAsZA5FPD+lSVOiAScyHpvQfkJoPCgc+ScJhaM2sCmF\nisU382UbiN5kmoehn/MG0qlTmC8uT7mkvHtrletAs+tQk6/BVvvdt40LctKumwdvUkWyNmKBPefe\npoUA6QpSqFRXftf//JeEmu1C1gLFouunxdDoIBIFAdzXlBxzWZr2Uoum2Ss83ezZ0xPo81MXRWdI\nbPSFHjjSE7kLDPiJpiq5Py5IXpR0Tq+NEgUOqgdFYBIRoIRwEsGmXU0HBMibRzIOlmlx1RtVyWty\nN8HFDtNUqXTIERqX5CpTDd6aLk9N18wjhISUDI/PkMDNvAN1tpPyJYah1/ScAAlqczc6/D2V3Qdl\nMPKNZbD4IdZLuo6sfCtPWYSpukGdnKXPR5DPXpyjfyVbIJk9kZIooSLXcW8VWex5/xTdVqF+r1C7\nXWg+zAS9DK/iC1fwxasVpRsYhZymDFr3/gDPTV38XiNhSxkxZX25eV2p+2SHfUetY0+980izp6rD\nsCDbtLpInW9W5yQrjINkSjy3/qdka+mCETldimL5bcEdfwgefpEvu5DVp07JwVClExMB8svEvYm8\nC8rVKh4p7ffyVKz1hJ5p9h5zBoWwfEvDMOQbGZoxRx1Beyj8h0b3/fn62UalIsFucYkJOdWKIiAj\nQAkhvRJmEAKtPiGEGPayOW9cKwwkZkPaH+3chalpkjolx1CEsPsjgqhKNxgX53S/d9rX2BMOCqyC\nT7Tp+IhDGG8F8pzGPF7+g4f98As/xtvL5LYj14FETUTG6murs59qczU1OquIQY8Uj3vD/EXs8mKx\nXERIp6eFTI4gT2TUCs1F+dcVmioQ8YVneLUykutvxM6inqG9syPyt3d/xNbxqUBOP9FD/iv3Lw+L\nETuqhLYT8ELEKsGwrYHxu1hDmmLhDVz2PC61mNX35rUnisTzR9MrS4KH5wzzMrUlqeaLy+wfn0HG\nQvvueufxNlWyhk/WcRqFaXUxKmjykskw4JcLz9uZ+JJDumo4ns9bIqQV45QFj7yiWnUXuVp70YzP\n5UKlzGQE5PvTYHcoXGhFWsXXig1dAZKNJnaTb7zbrH4YFd/r9FW5gt+vMF1gVkEMuTzxH90oAhSB\nYRGghHBYeOjB6YXAMVfAEw6rObZIpyBvIMex5lye0jLswfbtmKhnG4pACEcFksgYl+aBEHqru8J+\ngVeQzGmjajjFK0nUiTyU8UjG/xj0u3XPT/mhSwFdGhynT1phtSPL9rA8lGQ/ICfr7HnKqE8fwYhU\nJn+jImB8Xpd3FQ6sz78aGd5Jxj9iA5RotdzbqOWf34oyfZZ1kN4JMKKnR6jbFdz9lOhzAjxp0CIL\nq+CC6xSLbwInxFpHuXDSfim8VqEtteiKU1KvmNXx4iHr25XeJjvbaAPbcR5oQrZDMMb0GxaasMhQ\nifMkXc3nF9bz1DuXnMsXrgx3Vgkn3wvPupwz554nRWi3MwsB6X2bqOWRryKSjObs8YsFWj3C0txx\nqLvaLXz2YPeLy9IWGLFYg7y/oxtFgCIwPAKUEA6PDz06rRCw4bVimNGo2FJELcOcfuyMkMzWWaaq\n+3Cl9aCK1xYnzxrJVzQCIFrpZmWiteDwMYLAMArClBL+tbo35PYLXuSvQxxLaaH+OK4HQm/q7aeP\ndH5c3XOMAChxnnEISqAmGJJEcaRMfRqd0qji1QWmimx9/jlMPQgNBM1Q85olmRfKgyXcSSJ++INd\n4uco0ylyHeJAgk5zxJCPAc0jG4s88qLfxQghMegVqraS88+wwRNvQnX57QpryGDURi4ljySTyFnA\nmgsJCqSeNHKyO1kbUQ0xKzjY83MeWJv7wDr3yXbfmW73sVY4ewcdXs+pjrofvqstTElalGu+rEJh\n1CCJBYjiZOmXQP3wFZeEKt8RHe2hY68rV3wGSz0TSDmqynRFAHcG3PiGuPOhHHfIHC3/0rK0n9U4\nX2j13HnY+qs55lVmJVnBP5l3kumKPx3XtEaAEsJpfXrp4M5GYLct4AqLF5JXhng6jHOiiWRuWxpe\ncQedCywXLLSsPruHIb+hM07FqbOTXcdaw74gb9KMs/she4jLAdHu77Z62wk1YUSHv/uk9UAPyV9n\nbyX567Bog5SPDTpJltwQOQ+MymTku8tPKpVKpvyHRZ+TorFk6vOQu28iBkOYkXSh9O5E3yGMcPkQ\naiPZ1yLth1BOsnT29hCpI9knpfYD24qhQLjjFCpG9RgoGHWEup1idz0581ATVvnuerImkHwhwvGH\n5ZVcejmrMbHJOXzBSi61kME+GRP5X97O/tZbOqF/Y0Yl66GfnYF/qZtmBzqcvlqr40CTu7LdV9vV\nfqa7+6MaTb5ZPycDmSp0ZRZNjglBaOQx9uoovTPoG1Bv8bT4CxqvXPHZ4I4nQyfeYnVmuPgiP6Q0\n1mk64Glx1qb+IHpvhIONJHoDSVYwcCvlWeavTZ7vnXY8UmZcn6Lm8a5HeqkWe5MZTAwtowjMUAQo\nIZyhJ34GDtseDGO5OQaOZEfjHj7ms3Z/D5gSJHyy/G6Dqt+S9yEFk5eXKl5TYPa3IGN44s4Un6/8\nXZsLU3nM6kRvyOsJ2sm0nmEydLl5SSWR+e5YpnwQxYkMz/FFptl5xlK1Av4+MKukD4nUVDtALM1j\nAWRyxieZEkee+UQ0l1marJnICnXbmaBPtLcIrccHaBsWHR3kpcAwW1iA4YjU6cWFNVi4ghUsr2CT\nstmsOcS0yfOsMZ1VahiNmZBL8oMAkIgnP4zc83lIaTEo0w2GpbmBNmegy9X9zxM9u+pCVpf7YBPD\ns6r0JEWyhtMpUy6qUGUZdbMzpHHIKCXqkM4BTjIwpKov28gq1P43vhM69BJfcSmnT4uYs89BMm1K\nETh3BHAbSVVxXy82GhTc/55x/qHBvcSEN5Egk/gxTsPf47kjRiVQBIAAJYT0MpgpCLT4BPzDW8JF\nSUhpO84NDxNk+nYEbGgP09BYpPS6uYhM1+vHs7+wcixtJ6nulvpXK60HgmGS9g3PTszR56etvKr0\njgxdtvRilrjGjfVxGqEOiMJBUiUQLjCttmGZ0fkdabhxP7HmSZP3oTQRGveK7ZU4KpkFSS2cH5LU\nkJwnJM6UbcJnt5bOIK6Ns0vP+sZbSpQXfY1PLUapVJNMxYhELIAk15W0S34QUreyJBFXF/Yk6WcJ\nS4wvRGWGU/Lq3GT8M8zPKRBF264zMBu2PXfA12pnW20YnutQC/nlcGz6NfOUGYa0q+cmhvZx1kIC\ng5wqLmcBX3QB1oIG3nlcff0vE/kExhkCKi6BEZDe0YlGBXtnrnZzpxeeQfcesf1jaQp5itGNIkAR\nGAIBSgiHAIYWTzsEJCoCQsIuMY3ZQohJLZ4kfsH3UeMb25vehIVwgWUVEJJ406iQwjwYrmWmVUX2\nnWdEsoYQbaU58qhaT3QlBEQJn7Du29H8NthgqXne7XO+atZapIdnnJ6gspjp90AmIzoniAhfijCk\nPlHE6khKOeyANTFDmM5wFAvzxLbjQvW2yCUCEmdvDjcfAfXGdB1Cokxv0GuIXIIaI+w8sUdJUyM5\n+1z2AtZE3gVIvx1SBQIRUATlsfWH349Fp/cqkCSRL4Qlyvj17Q0v7jwdjZ5nSU+GleLZm9eVMOtK\nsj67wt9scx1ttX1UI7gDIasn6PK1v3QImjb9drthXrY6J4nTKs0by3ijmpWiSfEaBe4GhAhH0SE8\nMsKnyCmL9neexjtSt72nS2VQzLki3FEVbj3m/+fDqjX3MrhgYPjFRkYRHd5I8uhxikD8EJCvTlx8\nZiV/R47+l7WuPfbAj6ocDxQaTcROSO6p0k+PXp/xA51KmvoIUEI49c8hHcHEI0Dm5CyDkJL/rP4/\n5PuuSFl0edEt0qRtnH3Lc75xNo53MyjT7Kx7reovHZ6WhZaVN1Tcm6xJk4dMH5jxBru/PIlsEf7X\nD2rR7wzbmmQbnehziGSfvEc4awOFcHYiqoc0uyH8Qp7nsOZcTmtmOJ5NzmU1xrOa9PvCKbiUfKzl\n65u7k0tT5PKWSBWhlEwGe7XDUVIm0Zd+ombwV3WOSZVjSr18VjgguE+0+Rp6QjYPKGLI5nUda8E/\nYNO9uRJZDcEMcaoVKTpNfjJgVGWZlGl6dba0/jAKKkEYuA+8KBIOYmjK5S5WbfxqYNefwo0H/P/8\nD8W8q/nyizhTTv8LOuF0pwpNfwTwY7spS3PaFXq+1fN0szdVxd9ToCc/LpkPTn8A6AgpAmNAgBLC\nMYBFq85YBOS59rbG1zFnKzPPv7HiPrMmbbxosPYdddn3ru61B4xXTNzaYUzisyd+0+5uWJKx7tqy\nz5nVZGjSI5M+N+OG8pCCWEao3SEGfLETaLJ+r2G/6IMXIrn0EJFF9PTuny2ImJmVGuXim9nMOfIR\nzNFZXTKj0JH8FNpkVolIJ0Nu0osO+WSjXWSLFEIhyb5ILoLegxJnGYS+9jadoX8JRGSWKXJqzrg4\n17A4B4D5WxyCNyDYfCjvfueU+0Q7gpRGflgEJ8KqlUkaTq9CNBpeq9SVp6vzwA8NhjmZjIKbCnxQ\nujKUWq5wpcpoCe1+WqjbETzwPK5nrniNcs4mrB2doRcEHXZiIIAbF5YRPlCoV3Di35q8L7d5C3WK\ni1LVsNNLt7LE0JJqQRFIDAQoIUyM80C1SHj4RpK4AABAAElEQVQEOr0tHe4m5IJbmX2pWWMZq7un\nNMkOa4pS8M97pgvzxfNNtkjMUIR76fA2/c+Bb9t8XUioeEnhDVgYSXxZIxyglwck/NkZvYISxyHj\nIikc8IeYYcLEPke+RIYt7Y3qo88jk5xRXBQE1GhLMuUnEw8iVy4UGvaF2yvDPY1C3cesECQkAhs5\nFaSCzP6wQ6gYg9R8RCipwDB85mwubyn5HpFECqU2LFewlM+c10fayJHRbhHDZIxMtIwUkr0oE4wI\nlL73LxxtZ9O3HkFM/k8aowwg7H7RERsX55FTKp1Mwe3vfO0oDoEfOg80Mw5foNWBY86DzdIZlVBX\nccmritW5Jl1FhvH/2bsOwDiKq73tinTqvViyins3btjY2JjeIYQQkpBASMgf0vMn+UlCCumBECCh\nBJJQ0ugJAdNxwRjbuDe5y7LVeztJ17b839s5rc6yyqkXzyLOe7Mzb958M7cz37w3M+dkmmyT1bBV\nVWZjgUAKQI1QS+yoLtashoVTYsUkNMB6UfmKH6sntwfW36/XFmq1J7SCN+W8ZVhhKGUtNBVjGpot\n2tTZAoffcASGDAFqalkRynVpkSCER1vVO/c3/GFm7JWpEfR75G+yIcOdCx6LCHBCOBZrjes83Aig\n49hZuQFn8cU7U7Ki86xBWR/0IEZIO2pAFAiIv67NnhjZh+SDHRW9IcZxKNGrx/7W4KmNc8avnvix\nrOh8c4QZHGYOdp6jRB5VgMWrTCIoGjglz+fGWXnmyLUvemKUq3pw5h7w1KsP46wFM7E5Hkc2zZVa\nxQFR9YeMPExXXAxF7JFGZDxrSCKIeXQS3bN0pgg5czbMLHLqdKYNVQnyCmEdLCMiGdiOpT8tkgnm\nn8OBAFlr2ytJiY1Iu2URqzFUqK+sqfVApae43nO4Wlc1ze0zVF1v8TWsO8o0Q53bM2NcszIiJsaB\nH7JAuJ5iFSLdY2/WSJvssp/WdNHK6JGVJ30b0sucp5DknHOlGx/WDrymFn5ouKvV/f/FH1NDmXqR\nMvd6IS5LsGMsHvKDGFK1uHCOgIkAdhl9bkHCYydbP2zwP3SybXqUPS+Sj3554+AInIYA/0mcBgf/\nwhHoEgFsJ1PRUqzq6qykxQnO/hyZQHORhqDERyjxkYJY37SxMPn6PuzM0aVWAwmEPj7V+3bR80fq\n98Q7E66bcvv81BU0iiSGQcqO1wtlI15laHpDqV5RAFdM2n/F7zUais2z8vpcbqO1Xm84hWTtuJlj\n8XYx2ItfjE3vGJhLkhiXhXV9UlQKjuAzx+yIKsoT5nXEQSj4JQW3S6FbFtQRwmKBLZhj8dBwfj/q\nETDnIaAlmp4zI45sicTnDM0T8BY36l6/r6w5UNuiNnt9Jfiqeo5WgzdS/PY2YUt22TNw5g01EXty\nFO7NxhJsMZJTYbuhOtLDPRdngJAhY2qyoiFFp0hLb8cpFDCGGw0ltA7W0Iy2BvXIe1rZPhgM5dxl\nEtyb7SM5HTbAwvLkYxGBJXH25CnSr46719f67jrS9MI5Q3Jy7FhEhuvMEWAIcELIWwJHoHcEGjw1\nDd5aDHmmJc7HuL9fg3Aay9kSXDiDTxD0xi1FI0IIycgUpHvGf449uaNyfaQSffOMr01PnI/SgVrQ\nsLR3PEY+BlEmQjQ4AjYVIsqEENNoJggtNTq236wo0OuLabTKbCaW4kjvaaTj8ujA9OBFEsl7sy+X\niSYGuLQbJw5bT58pRp02XyA6XKIjpkNN4OvEuj5zG8bu82mvo9AYZ4YFQ0IhCE3A70ctAh3t1qy8\n9q+iHGF3TaX2Ez2XdAcVVJs8RkDz17gDNa0tBZXYoBgp/DUtrQVV/uqWYAHPaAHYyxTrEpWYCFti\npGtGGg5RjD0vV3LScTtnxA3KGPA/wdcKkyMlTMQfnWbpobWvurtS3fdf7eRW9cAanFEhp8+W51wr\npcP6fVqqAevQZwH0rsBFczkdwJgvSYR2hPRZ7thJQG3pYJWhqo70WNcMsj+zt2jnElDvYD4xEWuH\nxjzuNIhdSN/SOfHIf2c/sbxI21Upzq31/uMt6o4m/8JY/CKov2j/AY68nlwDjsAIIsAJ4QiCz7Me\nMwg0+EAIq7HUDISQTYX3W/W4c3Pdm08Fqt0j0g+h78bwDMOf94vXbC57K9oed9P0r0xPmN9hfqIF\nhIjQsRCu3yUd0oTQEtzW8DRgMZ7RVt+eFw1U9OIdasVBDOcoCpG84Aq99jgh/xqiPPd60R5Flo34\nbDl3aacDGEKidn3LVvqRMsHhIwBuHyx1nYKHcgTCRQCGPru5Sax9Ai1HjL9oKs1sUOqO6Q1vSWPz\nlhNGQDeZDT3DTqfuLae8ZQ2B2lbPCdG9vZiG8r+H06oYkZcQsyyXIglCRF5i7JIc83bIPmxO0ZYG\n6VJMmj1zLiZoApsexxrawLG16rH1cv55tnM/L8ZnDVn2vQs2/Frz1lPe0sbgz1cQvCUN7s0n9cAZ\nO/r2LmxMxuh485vs3DUtNWpBloVG2s0LrFKZDQ+9Ft67tCUL/UdB7I7FYozRSjEab65NjbivsKXM\nqz1S1HLv9NgkO63jGI2Kcp04AsOOACeEww45z3CsIaAbGvxFcRj99AT49TELFP7pZzHkGKcgC1qL\nv3nzydj2wVk/ZfU9GXpszdCO1u19q+hZRZSXZl46M3FhsGvXVPh3qR88qpXuJiI1uq9uenFzRIJt\nLpwxguIQ7S4hMlZKnyNFJ59pihAd0VL6bHhvWi6XtMtMH5kwLf8DUObAyJxmHu24je5a5dp1gwBr\nVmhhOJoSQ3BqccEXEBYWRmQvMG0cCG9/K92+xFfd0nagoqWgAmdgaM0+3RPAYaNtx2vx1x7JFNNN\nhoMbrJuTMqS+MNMQZjNaS57bf1iDX9Dg5tUnaVCBCE4HcAQu1mcqSVEhKPVJ5NiLLKK8kTZMH2h+\nreVQVcvBKprgMq+qv+1gN2h1qD4p2h41K12JdmIXXNfMNHtKNGzacrSdLNLo1+iMzdF+oQk+NTfh\nlj11G+p9z5d77pgYaaeaPntqe7RXENdvBBHghHAEwedZjw0EsICwsLEAPeSSjIvQb1DHOADF0aFi\nwKE2+1S3l6ZXg9dARLbLCONfXVcP1e185dhTrYGWlVlX44+NL3HenV683f/h40ZjmSBJcmyWAE6F\na5j0CkP106MAOFM1UYyIxqo8OnPPUleUpQToHwvvTSkuo+cKo4EO1ahZEX2fKib0zFRmo2hX6nRV\n+TeOwAARMKc/qHWxX+vpP0pqvR2Nvz0nR0q0Y3V0/OrJCMC6xEBDG6xhrYeq2DsHFjDsYdMed8j/\nbbefm7+yYG4wrutGY4nhdUN580HwqQTva5d1qA+Vul2/0Pv2sIH9C4k48AO7uUpOuyUJ6zOdGbFB\nbazQcXoDcOFRjMMw0Ta0Ji8MpFjyySoEu+CizVjl1jUdC1kbt5xk9VH7RgFanrl+NVaOUBxZ8fi0\np8dBlDMzFqvlzYqjKmNItteiGWJOOAZfnFYGw3KD7Ke45B9Pjrn7aPNTpa0rEu1zYmzkbYLc2/8f\nFkV4JhyBUYcAJ4Sjrkq4QqMNAewl0+CrRR+ZGzsNnUZ7x9Z/NR3ZCeqO4rbjNYmXTDWHSt2Yu/qf\nQ7cpA5pvZ9UHNW3ll+V+AtuKRiiRGIuhMwy8/7B2apvhrhITsuXM+cqsqwWbg4ZpAy9tt7oM0gPF\nKUXEYM/UbkHssQhE5AYwDmCJ20vSY07tkfi/HIF+IcCaaZdt7MxAK4RunNnx+MNNzKJsGuvDa1wX\n1BosQbSi9UujgSSCYQ4mS28z9p5Rd79gBDztqhiiK1GauFiZfIEAZnhaFkFmcfqP7rQYff0CVioq\nihLrkGxn+1goei72uGq/TLMplq3Cn4QF0UyEbmCXI90XwG3b0VpvcT32PWorqPLVgNJLwtZixIS1\nUHY5bDEOWB2xI64zK841I92RER0UQusRzEkN+kDdnl697ZkP6b/IEnmvSnRcnOR4odzzxKnWh2fF\nQS3yDsGTkVBpSMvLhXMEwkfgbH8Jho8Uj3nWIgASVdpUmOqaYJM6ZpEHgIYRPT+zGQt7fBotxqDu\nafj6oTatZVflRih/bsbFETLYIKZGRazqUfevQU+NdXSOa+4TXOggTU/IwWC/AwAqzKTmbDMryQgM\nMMJUkkfjCIwKBIK2GVmwp4bsdTTsqhHBoNF3rJCXJay8Tj3xYWDLk3pjCf2CjTbhZIl+8t94/dgW\n3SIl58s5y4hABAfsg/kjpwXVY+MtN6w1xFigPQmLq4P5Ev6CgE1rzUdG1NwMkztRNWL9atPmIl9p\nY+vh6uZdparb56ukdG17y3Rz+hR0UbRLsUtzwQ8Tr52FI1LMykRFB90rhrVslJnoUoQrkp3YbvSN\nau+3DjY+MJNxQswqDrsuPEOOwKhBgBPCUVMVXJGhR4D1c33Nx6u1oX9Lc2UpMm3TN/CLOlpBaC2o\nbCuowAQqdarDcnnVtleOPoWswAaj7LE0wkKn7K7RjqzFv3LOUvtF38WWmOZucqSQuaZu9PeQbMFL\ntwZCKgm/OAIcARMBolV437BXzjC9eLqAHq8V00sPj8ilUMlfruSvQJheV6zuf0WvPmJ4mozW2sC2\nZ6zEyvRLBUcMNvKVE/OEiDic5Gk9GsAN3huj/xU3gPL1KylrJEQCrUoymw1BRSQOPQN9mHUnSg4x\n/gJ4JlOzQpi3ohn9mudUQ9vRat2jas1YGSGoLd6GDcfwvOLvO7BiIm55Lu5jV+TK5s63TEd7WgwW\nIkqOoR6UMgOzMS/Wfn16xMsVnjeqfXE29zdzo+IoZ94Y+tVieKJxgcBQ//bGBUi8EOMHAfRx6Lao\n5wqvTIgpHKrbjc9Ie7QsyuGl6ikW8o9dnovN5bFCo/VwVcS0VEke8rX4MARCp8P1u/dUf5gckb4k\n/UKH7KRAUVD3/Uc98Jqg4MiEGaK5bpB1mARQmCD1VNzheMZHdMOBMs9jnCAwShhQx682RCFRSpxo\nX/UN82zPYr3qoOBt1aoOEdnA3qSH3iY2sudFOXWGmJgjRmGdYec3FHEYhMZnS5HxYmymEJUYpL5m\n3RHPwY1pl6IbSt9ZghnMP0LqJAhGMIRVm/lJ0Fk31i2WX+KPqswQ1AaPD4sSBcNX7oZ/KayIakOb\ne39F/buHEd/87IA6ev6EiMnJsUtzIicn0woAiKD/iX92RBqMO1OcGGcTvj8pel607WfHml+qaJvi\nUj6REcEHxIMBMJcxVhHg7X+s1hzXu88IoGvBH3Ux4Y4C2OjhSD0RwqyofLvk6HOmZySg3kgUEy6d\nBkLoOV5reAMG9jkb7D6vc7ZmsRs9WAkpZMdOmRg7xRwZmTh4mg1dlbMWKjOu6JyKf+cIcAQ4AsOP\ngCtecsXLE+bi3EW5tQb5Gy21gurTKg5oR9dqVQeNqgJzL6jOmpmEUMKGWKItQnBGS9E49MIwfG5l\n2qWIKkYnS+mzREkJ0gxzRqyzCP59MBAwZyAFHLqLP3Q+0XOow6EliN6Av4q2EcKhmv7yZkbLkWHT\nphPu3aUt+8sbN52ImZ+ZdM1s+JdSr0WWSTJHDoZSnWSQ+MtTIkq92q+Pu/9T6bk8xRFvG4Q5307Z\n8K8cgbGCACeEY6WmuJ4DRaDGr+OvT4wQYw78d7h2V7QjPikyDSvrBqoE9XDUt8WcQyv4GzYcT/vc\nIjvWVAz9hWypc4V3lqjIokI9se73b/u7euhtCXt05ixm5sGhV4TnwBHgCHAEekKAbT2Cd5Qoy0IM\nSB1OMkw1DEnKXmBbfKtedUg/9ZHJEs7gCVgUWFuonfjQ8DaK7kqtBm6KdPnL9uITE4I4S9a++LMk\nOG+ZlJRvPuQfg48AeZWa/Q31O6ZJFn2PLdYpxDjtqdhjRoyaw1Yhtmf9v6saN5+seOojWBFry5vq\n3j2SdMWMlE/Ms8XDMfiMWm5PNNB/SUXhurTI5ys8Oxr9bZoRPziLQgaqF0/PERgRBDghHBHYeabD\niIDZMYGI1fi16oC+Ir4P5rjgEgpRjHHER9tpm76BX+iBoJEUFRG3alLjhuPuPWVJl5kHPAxcdI8S\nGrw16069DK9Xl402k0A3rXtatKPrBJsdu/nJExYMXbfbo14Dfdjz/HHPTwea9/hND9xQuKGZmA8X\nNV534SI1HuNZzpztbIA1RgqW06bjr+dC6/Wn9PIDesV+vaWapsHw1tVVwdskNlUGPvobhAS2/Y3e\nxOwZcQ5Rnnmlkr1IyjpHsEWaC+TwnH4D7YSm5wz5004IdGzQYk6BEpB0WfWKu9MuMW5ZTtTstIb1\nxxrWHcfpFzWv7G/afDLjS0uj502QInEyBBoA1cdpiQb2hc3wYoOZpfH2Yo96296Gfy9IjJKZ7Xkw\nMxqYmjw1R2CYEOCEcJiA5tmMGALogajbl/A/3vGT8foPzliGoRF5ICGROaAII3p4UUia7JQjJyUR\nIdxZmnjZjKHufNy+xteO/93tb4qyxSzNvDg40NEDhrsaPlT2lV8VEyaGp/yoi9Uzaen56agrzKhR\naDTgNhp0GDUVwhXpGwJSwkSsJJRnXmG1IpxsoTeU6KW7BNVvtNUbDSWh9EKrPKgVvK4XbZFzlwmR\n8VJcppQyhQ44NYlI3/LmsfuOAGPmcrQz+erZsUvzsAt38+YiuJUW/fxthCRdPdMxIS78frtP+btk\n8eaMiF1NgYMtgQ/q/Zel4LylDtraJ1E8MkdgTCPACeGYrj6ufJgIGPAG2d7kZ7H78LYXhb1VmwZ3\nVpI6GxAyWXLg9N5oZ8vOUl9xAzslLMzC9CNas7+horVYN/SrJn0W52eY5h9BK/wAosSIWDE6tR8y\nR1USj8cTEYGjkDtf3YV3jjfuvvt8vmeffXbSpEnLly8Ps3DAav369U6nE0ns9uFwY+5BsW3bth0/\nfhyaZGfj6Dx+cQT6iABNu5lepe3psKpQSp4spUym92/Ai11M8cSii7q7Ri/ZEdj+j0DBGpqec0SL\nrgSKnzEbi6utaO3C+L+DjEBw2pZqTbQnuZIumxazOBvWwqp/7ah746C3qC7p2tmx52YLypAMWSe7\nbJNc8qGWQIVPMydnQ+cKBrmkXBxHYNQi0OuaKPwwdLKodH9hageP8T8dXIpTfdgfDr7tORkJhE+Q\noVUeVrf/QyvZLRg4A7WnjLpWwcyb8kWO7LPreCMWSoU04aHS0RfSeBi1MbM7DWdUTT8vswAoBCq6\n/QpW9HCWqM/KQznVMBoCUFv4fJbLfOOHK6TRVx9u1DDjoeuj8YXompIaOSVZ8/gr/7WD2gY1kqG6\n3L4Gt68eueDACXMUJKp7/6Nu+rOZLzKmCdGec0d966dfmqYhEBqz4FDVWWT2FJ+4zoyD+Fa49dSM\nG4yPfyyZiGBlZwWG3jz11FOh8UmEef31r38NjcbumTR8hj5CdKYGbkLDz7y3YnaSgJjWoy6F9Pz0\nzIwGEuJ2u2+77bYnn3ySCYGqXaoUmkVLS8svfvGLP/7xj2CGoeGDcm/lzkDoVSbY7Fe+8pXdu2k/\nJ+uyhCAk9N6KwG84AkEE6DWL4c1pL3v24qUXIMhhTBr+MBfG/uAooSz5nOOmx+w4+XDiQsHXYtQX\na4ffC6x7wPOnK/0fPKq31tFYiNpdsBs0myDeFSyAN8iBNr32jpHqR5AkHM6U+vG5+b++Gh1My4GK\nk798t/HDk4S2+TfQzE5Pb5MErCRBXe5pCiALUoBfHIGzD4FeCCG97cjhrqcrOKEiGnr5Ie8/Pu95\n5JK2Ry71rb3P0MyfVk9JBVFXA+/91v/R05iZwxRdL2PSrkTh7YBF5N7nv9z2KPK92PvWPYavtauI\nIxZGnRDrNdy1Wvk+o6liuFUhjDR/O87wEhyIAtqp7Z7Hr/E8fDH7871wZ8/NYyB5DVJa6mi8ulDg\nViNlYmK9DfhDsjWEVdnX9MaVQuL35VZJiIxdkYdDmVp2l7UdqKRusA+a9SEnMJ1ab2Wzv3F64jlW\nMupWRV2Kz1EW3Cw5XAjvuQ+89dZb5dMvRVHuu+++gwcPIvj222+3JOPmz3/+c0xMzG9+8xsSK4pf\n/epXExMTX3vtNRYHA6iqqqpnnnnmuuuuS05ORvLJkyf/z//8z4EDB+jH0h7/1VdfZfHLyso+97nP\nZWRkQKDfHzTzskfss6mp6Wc/+xk0sQKZnDfeeOOJJ55QVZWF01DOMN5++21kCuUXLFiwZ88e9ghZ\nn3vuudAEelr5WtJCb8CsfvKTnzAk/vd//zf0UWVlJdTIysrC04997GOwtlna4ub9999HIB4hwk9/\n+tPy8vLQtEN6f/jw4czMzG984xtDwfTC1Bw1gpgNDQ2oSlR3TQ1tHdnXiwlhqXCP2uyrBB6fI9Al\nAmhNaKBS8iTbks86rv51xB3/tS3/kjxphRifKciKuvff3qdu8r/5C3X/qzgjUXdXirpGr7agLIyS\nwBXbv3WZAQ/sOwKw8Lqmpc58/tb4lZPkaPvJ37xX99Yhw6sOOtAQODMakwTijiZ/nd+knH3Xlqfg\nCIx1BMKyvxs1x9UTH3ZfVENwuJQ5HxM0P/7MLhoH0PgEXRN7OchbBGk0EBNp8HrFXz8u/JTBPIl8\n4g5D3P7K6UfW4SdBx6H60ZcEcIZS5jmOa3856G+07nQJjphQNcAZQOsqyOGAcve3QA52Wwnm6HN3\nl/WoCod1sNynLYy1RxAnhPLhYUBRh3DUGXtuTv1bh9uOVdevP+bMTwQ5DE+tvkHr130lzYVIMy1h\nvpUSFQgUlNSpUspU86fTCyQgM/A/bG5u/s9//gOKxRggPPokqZdJJStHa/gOLnTXXXe98847Cxcu\n/NKXvuRwOEClQJ9SU1NnzZrVKT4if//739+wYcP3vve9O++8k7kyQlTHYEwQQOcaGxtfeOGFH/3o\nR2B6TEJrayv4an19fXV1dXp6OouPhFAYRA50tFNGN9xwA0KOHj1qhXd5A0NlUlLS5z//+X//+9+h\nEbxe749//OPXX3/90ksvBft68803v/71rz/66KOACNG2b9/+zW9+Ezr88Ic/RGFBU4uLix977DH4\nZ4YKGaJ76AYEoqKizjRphpMjQNuxYwd4MkoELh1Oku7ioOVADVS0xdK7i9ldeCAQAOueN2/e9ddf\nH37b607akIb/97//LSkpwQ8HcxlDmhEXPggI4H1ovXzxZrRFKPNuEObeoFcd1utO6CW79PL96vGN\nQuFGMTJBjJsgp00T7C4pbYYYESfGY6kh9Sv8GnQE0PvKUY4J3zi//p0j5U9vK3tiS6Dek3j5NFs8\nTWIO1oUKPz/R/ugpsS6gP1/e9uWJUbwyBwtbLmcMIRAWIdSOrw/seoGNooNDadOoDh9Nc1oNL0Ob\nnL9KSptmX/lN39rfmN75+EGxgbeVwlw7hW+4yExD/wuKQ5l3o1F3XEyZIboSQ0fpZjIWOwRPGsWa\nA3qIN0e0GGOJSXn2Vd/yv3WP7mk07ZlIxQiLOeg186FE4V5EAIjvUBZQkxSlzE6/aESKEPqfjU6D\nCaxYlMAMMxOLoLtGax0sokYt2wg7GJ+iBXOiDonlZlIQGvJSESkG3bIEFuSUc8cFHTqKGBQd1M6U\nrjiVeR836k+IKdMI5y4uUxEqDGWG56ZEhkNHVlBQzlnivO4+mHMDO5/Va4+ZeXVEMAWboqC4GYwP\nSx+zLJaenVJ1odNgBVENEphivF1SyI0oXA5DCYfwMuRYZ/INc+AMgwMJA9Utjuz4ocgQSwdbA80o\nx7TEDkIYrGazbeFRr7+Pa82rtLQUVjWsTwP1YsAwBkWtxbzYj4Hdd/kJTvKd73znvffe+/a3v33L\nLbekpaXBaAbydurUKZC3TknA5eA3CK549913gzpa9Ik1USvypk2boNK6des+85nPwPrEdMDXvXv3\nQvixY8fYiBypcF1sXh9++KFlo0MgiCgu6NArIQThBC8CQYV8SwHcwP4JL0eU6Je//CWso5dffvmn\nP/3pv/3tb/PnE+bgn7W1tf/85z/PO+88OHOCFP3lL3+57LLLbrrpplAhPd+HYht633MqPJ09e/Zz\nzz0XFxcXGYk93MO6OsnftWsXvEk/9alPhRLCTnEsud2FIwK4NFoODJWodyt+n25ACKEJKhrtsRMh\n7CHfPmVhRQ4ViHuEo6lYT3u9gYF68+bNsDxzQtgrViMfIaRqOyqZ7WiaOtXIO8/AIsPqw1jbohVu\nxJ404Id0eLorCWMYHHuIXU+lhFz4nUqxme3vcGowrO8zS9eHljPyaIwODcyOm1SRI2yJl02TnErJ\ng+9Xv7i7rbAm+5urlGh2LPDgAJsXqVyfGvFEcUtRG2y/o6P8XAuOwPAi0AshpN8FrG6elmBnyH6g\nWI5CXA9vUAmMgXpN3W/426SYFGztJUh0kgsRMupBMRbFj0s0MAInhiCRQNPTB2kY6bLNuRYxKG7I\nG5liUQJkIuEf+qrj3uyU6QHtGAk/SLZrMN7IUkIOSCmiUc7mr9lMxZKSZPNR7x9wrqOciQ2ZmpIO\ntPAMGZGCAlY5Ihzi8GdGoUcQ277MkjI0A1BQM5mpDp6a/+EDZdBxEhIufJiFpnsqIGVoPqcA9g3K\nmPkR9wwWy3wUjGpGbP8AeKbyBDxFp86KxFCwqbptzvWUp5lHe6KOf00N8GGKNjMlGQYrNaJRSnaJ\n9kgxbYYQWSXaaYqOEp5+sXIjjPIPZk53TAjxMqrI0yv7dAlnzTeqnNjluWjkbUeq2o5WOybGhUI9\nqDhQfTqkcPlAP7K2rE9U6VTdVPuhcliVr1279sUXX7z99tu/9a1vWQQPBGnmzJksidUywA9BGtes\nWQMCAA4ZKqrTPSyECAFpgSEOZkxIAOVALnAldblcIIQrV67slKTfXy31OklAdtjV5rOf/Wx8fDwe\nwYR1zTXXwGAI+ock8Be96qqr4KQKggpiBrfJf/3rXyBpIITADUAhDoMLJAf3ViDjPNZXBjIi4IKt\nEhnhphMv6qQYviLT/Px8M1Hwh4y8LFEsfqgQSGZPWaAVGYEsHCGQCYFIC9tsdHQ0vuIeT/GIZYQb\ndiEcclhk3MM8iHDra3ssaiqIBgl4ZCmDp5ZMFmgpwG6QyrqYTCbQkmNlxOQg8pnyrYS4YReiMSVD\nU+ER04fdhIpidYGnFiwspvWJJIgfKs0qI8L5NaoRwDjHGSdFxIjJk+WZV6NpaEUf6rUn1O3/NNy1\neLGi7aoVBegvaeyB0/YW3yIl50s5S+kr6/BQvOAvb1QXdNQqB4hFh5J4KXHC4t+ua958qqj+zUn3\nY+jIflgDVRyVgyzSnXinSdhr9JA7MCN6hHfVGmiReHqOQN8R6IUQkkCM4ANt+MHYFt2iLPik4Gv2\nPP81sa1GmX65ffW3tKoj/rX3Gg3FIpwSQy9vi7rz+cCR94SWKiE6zTbrKmXmFYIziggHXYaoBgJH\n1uKYoGCAMw57eQkJWcGviEE9t4TNULDmTSvcjKNmdRwyq3rE2CwpYxbcNrSDbyqLPk188vSLRhZV\nx9UD/0Va3IqyU5l7HTHVcC4MxUr2akfeIQ3jJwqaqh54zdADytwb4f5K9y3VUup02/L/kVPNzco0\nv1ayRzu2VqsuNJrL4ZApijJ1G5POl2dcJjlQXmihGTWFOva5bq2nzgO7Y2AHHbN81F/E50oukwYQ\nkcNTw3BX6UUfqSc2wZao+1tFR6ySPluavFLOXiA4o00ADb3qqHboLdMLVJAy58m5S/WKg+qhN/XS\nPUii5Cy1LbtdoCIDZ79KOB+gngoXcJ55hUQuLqddhreFQC76kDbjbiqlZ6DZaTOVKatpHYW9D0SC\n3tAYBwXatGPvq8feN7BsUg+IjhgpeYohK0blQdulP1Rw1hO/qHrw8xLTbp6PfWVaCyrjlueJEYPf\nD6FVBTQvjUiIjQ/JBRsdtjCxRIODwWRnfQ29ARGKjY2FH53FBtlTNBnq3M1xM0Lg5fjAAw/Au/L3\nv//91772NfaUfYZKwz2430cffQRKCaMTzHTgXTDQgRwicPHixdiVBFbNTkkG/WtbWxuyQ4mmT6fj\n0aAnu8cGLTByolAwPMLUiUBWhGnTpoGpQjck/Pvf/w4X1nPOOWffvn0gCbAxLl26FBy4oKAAJkSA\ngMhYk9lDHEDE8u2uXCdPnszNzUUFsT1msKTwt7/9LVxAUUdwcAWZKSwsXLt2LQMfcCHmW2+9BWve\nd7/7XRhmUQtw1oVwGFFhmkN8eJBiKSZkopogCtQXOoPtwEX2//7v/+DcCwL/8ssv/+lPf9qyZQsY\nIEyLqETEBz3GYlR4HQMHCMSSQuz6gw2B0GDmzp0L2+2DDz6IsmMiAE9hDISJFffQ/+Mf/zg8cjFr\nAB3wCLZWQAq+HWqxRDjY6UsvvQR7LBpkSkoK1EYRQNJgrAOGKCMQ/sQnPnHHHXewJaNbt25FYRET\n4SDtM2bMwALRG2+8EVCgXW3cuBH4w8pns9mWLFmC1oV7xEemQAzlxVNIe+WVV3ADyznmAuB4jJJO\nnTr1oYceghEYKiHhu+++u2rVKhi6//CHP8BTGnmhOFhYC5dpRqQRjV+jGwGiJCa5o35UgcEw7zwQ\nP8Hr1ioK9MoC9MiCv03wNuruamyIQGWJSpbTZ0rpM2X45GPrmsi48D1TRjcUI6Fd+7gw7vxJ9rTY\nskc3tR6pLrx7TfY3LjCPuR8EldDz3Jbl+n1RS5lXL/fpM6IHQSYXwREYWwj0QgjNXhvTX1ihh/lb\nGa9EjGHx28Q7kfpzmv/C/2Sv01V/qB+eXnXIqDwEJkmjPHcFHQKrOGxzr0Uqc1AqEmE48Lpec4Th\nJbqS5YmLpYQOooJoYFN63cnAlr/qJTsF0CpkhXybStTGEtwgZx1ZWISQFMJF6gUOvxM49BZlhC/4\niEoMlxAagnboncBREEJBUiJ0DesbyaCn7vyXoHqp0Chp+T51+7/kq34CwXp9sX/DA0ZrjaA4xYRs\n0RGNPWNQdr32OGAR532MUjSW+d75FdFFusCu3b5X/o9uSDdJWXKbbeHN+Ipv0BfLFVBeo2QXeCQe\nUxRfk1q0SSzfrU+/TFn8WdHc/wPHJakH3wToJKKtSa8pVA+/LdDqPkqileyQimYqCdn4CsutWvC6\nUR3EWTBxFs4khBUFgc1PIC+cyUuLymQFyOulOwN1hYI9Us5fTrAyNPFvLxe1GvXQe4EtfxYCXqyv\nkF2JurdJq9hHq0xtTqOlJjiZ2i7HrGoTgvaQQfyXFKcLSlH10R/NBvbhYlVlJrNu+5C856io+OhF\n2bVrCpq2nEy4bBrW0FNGPacJ+ykjgLSG0F2I8+hlSTYhoPSDlQXTBT6fWC5l6QXjHhvxWyHWDdw4\nsWgQI2YrhN3QmyTkAtOA3Q8r3zBoRjB72ikOi47FeKAZGN+ff/75jzzyCKgFOANcUqESOMBFF12E\n0wsgrRP/DMlqEG7B60APMLiHrYxpC1XBe7HiEVZKEAAEWmY03MOWiKd1dXVQkmV/4sQJbKsDHgtO\nBUpz9dVXw5wIq+PPf/5zkB8WByTky1/+shUHNAzgYOUknFT/8Q9zDMri9fiJHLG7DMgnOAm2twG1\nA1kKrY79+/cDwB/84AcgMPfcc8+FF144YcIE5AUCiYSXXHIJNsiBuyx0A/E7dOgQkoNhgv7BBRfm\nXESGkkgLCXDfxfY52EAItlA8hUttqGrge6CCIGCoOHAwMOfHH38cEayWA1SLiopAJtGcsOoSBBW8\nC/664MYwwILUgVSHCgS/BeP93e9+h8YA3JAjyC0CoQyS5ObmYjEqvmJ5JzSEMswoDQk7d+4E7wWn\nRSlA58BLUTtgrUiVl5eHxZ9IhfKi4Cw7QPT5z38e9A9AAQpQ/SlTpoAJY5tWVARqHLR22bJlqB22\nhhDmWbRSZuXGJxg1gEJ8VDQKFVoEfj86EQh987D3VPBt5YxRcpcK+EO7hR9pQym2nMEOpeiCMTbQ\njq7Hn4rjK9Jm4Lx7OXmSlDad3ryUOCjAJJqjs9CjSCtz6Ef6oJdwTU3J/NKy0kc+aN1bWfb4h+lf\nONeREWuiGYS0X3oH066It71Z7dvZ5F+R4HCYDm39ksYTcQTGJAK9EMLgWwtUEJcM20X7W4zd4dUG\nIqQ4iM3IEBUyyAz4xJzF9rnXY7GZuvlxw9usHnhTmXstIprUx4DRSZ59rVixF3uEGtXHTfBCkrNo\nfo+69xWtZKek6UJijn3+TWJcmtHaqB1Yo5XupNinbxwP4UQjsW9Exhxh/3/I+BKZLGefI+WdZ8oP\n60OeeaXeXKpXHjRUj23GlVL6DP+Gh2CZFJyx9pXfUA+s0ct2aaXbaWsWSZaiU3D0LQyJcuY8MSYF\nVkS9udK/7kGwVu34Rtu8G8iD0waInO17kJkslY3T6e0mSliSbvITKg7I255/Y/06fKeUuTfJmbMF\ne4TQWBE48JpedVAtWAMjmzJtNWLK+SsMn1s7uc1ortQr9gENKWmSbf6NoKOB/a+gRqTUqVRV+N/u\nUmZfY5TvN3E+RuB3deFccmXWlaIjSs6YBSsiFNCqjvrf/pngadRrjsq5iw3ZYdoYu0kfIpPVonp0\nraF6pcQ8+wXfFKOSsHWQXrwj8NEzRLCpOXXIQX3hC82/tneVIcIG5ZY0MjPp+NfqYHrIgCWrbKXZ\nB/OigHASBqOH/Y8zJyFmWS52l6l5aV/k3Reb2Z1Oj8IWFRqRcT98lrmLWgLN2GLUJqES20tDmKNE\nVKiBX9g65f7777fkwAyIEbn1NfQGw2jsGgrTUE5OTmh4p3uM9UFCYMABCQEVgfWP2klXqMCSBr4H\n+gRj1/PPPw/mABKCofYVV1wBsxtMZ+BdGKMPKSGEBYnpBs5gZQQWAc4D9ssIIb6CNLJ73IDtIImV\nEJYlIAYTFhgaOBXbDgeWJRzHByEMHFA47KeCOPCMZXFQNFicYJxEHIjqhGGXX0FgYPgCIwLZA0cF\nEYVioUZUkBw8wr44oHOwsME6hxCAiVoAawKeWAwJ7gRjF2xl4FrYLxRMFWqD/OATRlHUHVgiWDos\ntNATNQ5pMKOBGYYuYkSmsLnhmEFY0sD8AQg+f/3rX1tqMxdcMDTUL6BAfDAu0GbwNKgES6O1gRBL\nAt4IUWiKQG/ixImIjEWhUAYmR7QfEEXQSJCxRYsWwV0ZkwWgbSwhkvzqV78CnweMKBcygnkQbRhp\nYWwEJ8QWOFiyaGV3wQUXYMNbAI7axPZIUA8tDQVBckQGvQQgMAxi+SgegTrm5uY+/PDDmKrARjhQ\nDC0ZDBzmTYDPCaFV3WP9Bl5LMv4y52C/AHn6JYbHrdcd14t3Yc2hVrgJwxjNGSdmzrYt/LQYlwFn\nIJSX9SjdvNjGOh5DqL9rRtrEuy46+Yt33NuLdVWf+N3V2HjGcs4dSMafz3a9We090ab5dIMTwoEg\nydOORQR6I4Q0fDTgIUnzWzlLcJp2SCHN91h8JmxcQkuNnDol1HqC7ZvtS78Au5wYaNVP7dAK3xca\nTtBwmhLhPSgass02/WJhxsWwtvlqjneMUtszQAhO/tGObZCwcWhErOO634mR5jwQdp3Kmut75179\n1NZOu5iyEbBOxq4/gQxihbf9wu9IcdYi73bRPfyL8XLGDHnyxXACQSx57vWSM1qMSoEXpZy9UMk7\nV687pZXugh+m4WkRXDFiRAze74K7FkvMNXJ/NYSoVBxoazQWs3NvIQTHHDk+BeNbq3/jw3BGFR1x\nkV942RyW07JIwpf9A8tea51+bD1WKNiX3CHPu9Z8IAgpU+xZ82BUhF8uzIDytNUQKSbn2VZ+1fD8\nSnNXGAGPMmGx48qfGDY7uhllwU3moB9gkFxDsSnTLjWmX6Jt/5e/5hgWfXZZeik21bbkc5jU1Mv2\ngL1DKSljfpCh+TwCCLmMYYypbpfpTw9EtlgFRUVrLIF90jb1Yiy+h6uqkn++enydlLssNDq1B0jW\n/OrJzUZDaeijQbs39EjNuLOmbVKbLLc5/FLHiqYes6AG5W4+clGtmulTUw9tVsXN1IaH4Eqa1mpr\nKFKrC9StFWDjGCh0SX76mDPpjykJtWbHxc3abFG2734l0M6ptMoCSUBGg1MceGxaB4ijoSQkJHSn\nP6w3oHlwz8PovLs4KCZG2+A/c+bMAQX65Cc/iQ0bYbTpsvhgLKA0GOVjUI61grAyYcwN0gKKBa1g\nnIGVqaKiAo6LXSYflEAwK8gH0cWFHCET3ACZgtKwfKE8DFYIBD/EUzhhgv/A8xDerUyB3NxcFBmM\nCJ/wEYXmgBEUBVQE7JHFAdnAU3AbfIKYIQ4zS0KsFYfF7OETFlokB/jMmAnCBlsWzIxWEoRAK2QN\nrgJGdOZ2oAjH0kcQS5AieITCpRM2TGwVg61T4HIJEyKqA5iDEMKgx8SiLKhrAMJWeLJA1BGsgmDy\noIsIQXFQ46GEEPbVnJwc0DA8AjIoYw/FRBaYZYDFEqwVRWACoQ+oHVxz0YSAGPgbLhjuUEewkTI1\n8AnAQeMhAdgiO+CJegSZBKkDK0YEoIHdgKz4CAQy+IqSHjlyBFlgGsJqzFAVXNSKzG5gVAQ5BM6w\nNFqPAIh1z2/GDwKYKY7JMGIFOXWagPnltgZ11wtqwRt6S5VxuEI/9K4873r7eV801/mjxx6cN/D4\nQS+8kjizYvN/c+Xxu15v3l5c+Y+dE768FGOWgfdmqXZaRvh2jffHk2Nieh0dh6cqj8URGCsI9NLk\nzbG6IMUkS7OvNIvUbtuiL/QQ1h5l4gI22UUEoL3cYnSKGJWMd50oKmBNeGIOatrffginXy9LR4La\n03X8iyA4YMA0h4QKXBbb2SDJtEfbFnxStUdKoJTWRTRIpH3Aqg8LbQ2C3alMu0iKTTffERAW1msX\nEkBmNMalkAb+jVZC2U7ag+pQOWkXGcquvljd9k+QHNpKJzJOlBRB8xleN8SYRaIPypjG5fjE/+Y3\nCCG1ySMBoxD6QAIENJQZOrySRP/mPxmbH4V8hFGW9NxM6vdRUEdpSD76HtuF3zQUWnvGbCgsN8oO\nf6bC+Afepe14I+LpF5Y5lh9Utz2DYxLhxGoWRDYOvI6klAEKS2JMBU5P1+U3aAh1sYTS2FoObqkd\nfht/VERHFMyYcs65gr8Vbqghac0igrhOWhUSOKi3htHm1R711F6S7LhwWiyZc0xse8uDSl944rn3\nhD2L0yefM/MzBH5YCXsTfMZzraKp5d31rccqpX2TM+9YisZlNogz4vUxAC1hT9Wmp5pedKXH5828\nXElcZMk1Nj2mntreR3ldRLcEWs/ODLEe4QYGH/AHuPbByIOFVZbVBeYdUAhwOSsyRuHwD8S4HAvJ\ncFoDDGiwNVlP2Q3oCvwVMS4HG4QoEBWcBgFygpVdoIiIg5VpsNhAeKeEPXw1f5I9PO/iEWgG+Ccs\nUXAFhFUNjAtjfZi/VqxYwXgs6ARW5cGklpubC51hLsNqN8REQiaOgYZP64aFn6kMi3BmeBdqdRWE\n9XKwksGsh0/kDujgzQiZEGhlzW66Sh0MwwGSqEFwbzCr1atXgyLefvvtKCnWE2LLHNAh3INlwTkT\nFYqMPvjgA7As0DNkZ2kOtowLPBmB4MkIDz1JkuXUCZ8eVILOIHVgubDvwU4LyWCPABnMDQwNN7AS\nIxASwMZRfMtfFCEsF1Zqph5S4QIy4O3MqokKBXSWAgwuNDmUFNnBgIn2jKdYSYhUYJJWTCYW5B9s\nE7zxyiupJ0WjhSczfGWtaPxmXCHAat3sP8XIeBxpaF/+JZw7pR5+T68/qe55Gfdy7rnypAuk5DzM\n1GGR4bgq/nAURlTiXOmfWVj8wIa6/+7HQRTOnESzgx5Q3rGKdFGS/Z0aX5lXy3SannEDkscTcwTG\nEgK9EEIMf3v4jbGXHopLcTrFg1ugJDMegWcYmBJLCI0Umobxo9Nxo+eYGjd5CN6YlnjcIAzWP0f6\nTBqwn34ZngaiNNBa9eHlC5d9MTHX0vP0uD1/C7IqM99g5gwLypTuDGzEEtj5nFa4Ac602GJHylki\n2p3YOUbd/RJ4KaUJ9gq4MzU1uwcKZrKJCjJEMBojeAxNxScSSvkrqZ+gTBDFjGTe0Oq+IIoknu4R\nbouApTS0jOxZUDT7BzLNGybPTGt+mN8NXwucOfXyPVhAqCy+RU7KRYn0tqbAm/eYmZjyWOE7UvZw\nh6gG2Lio2LViWkpBS0mbK2hlRfkevfIA3FxtS28DP7REnNYwrNBBvAE67frj37Czo4o6Ur9bEuUo\neyyrtSC2g6ibKcqRFhO7JKftWE3T5qKML2JFCipmcLJ6v+Q1SZTmpy6fHDc7VCS8mNCEByePbtCw\nMA99jmExvPKw1QcsS7DbwAaIYTqcCeH6CAoBB7zQyBiLgwfCjoRFaLCPYbEWs7BZcTDQx0gdhIRZ\nmeDKuHr1avgrQjKslIgGtz2M/iGfjeCthIN+g81gYPyByyKIBCxU4KUwXcLexQxxYKpYM4aywAgG\nQgJ/RdjKsNdol2owTtLlox4CwywgnD/hUosVdImJiVhDCGstrK+dzKe9KgDqhYNAwG3gbIlagwMk\nqCA4D8AHjUetgeqgFu69914shoRfK2ocrAmuqqH65+TkoHbgmYlocC5FLWN3nNAIofe9qoTIaAZw\n7EQtoDiQDKoJL1a0GRBvOLLCpRkLSqEGzHRoD/ARDZVv3bNGm5ubCzKPgyJhoIbZGcY9LA7E9j+d\noqGw2FcWsxUoAuYgIBw1jgYAcgirZmj7B1bYYgf1jukApMIcB0y1mD5g8wWWWH4zvhCg96v1jsXa\nDaz10E5+pBV+oNcVkR9p4SY5dSqWdYgpU7FTOnyLpAnz2DCBemZ0VNQPWALGFzYDKw3DxzUrPXZp\nbuOGY8X3b8j+7gVOnNtkwtZv2Q5ZnORSQAjfqvYsiiMnfBN9XgX9RpQnHEsI9EoIR6ww+MFLsWlg\nd3B5U09ts/mwnwpt2mlSG0Pwe8jnLWkSzFlMRTzAnyjZlJlXwhlD3f8yNncJ7HjWvuqbhsM1FC9V\nbAdq1J0gMueIUuZcJ8ZPwGtD97eIR9d3Rg3EAsrRhaMrAubgxmQlQWbI3joGLS0Am9UDiGM755Ps\n5AgUC4siGTUc/NcSMUqYz5qYi6yUlG+bi9MpwORxzq5AS5f6lSVorXbwbVQQukABiyRx+qKnQS8/\nENj9ghDw0PpMdzVq0wRkVH8UNhRUt5baZGdWdD5ZWwePp3UqNsaO9sxYySbrnkDrgYqo2emdIvTv\na1B/yZkfN9OuOKkVtv8SlMmrAruegzUbVlzRGXRcDDOX0JHumSP1M0NCxeIpzujDcBlDZwzK4Z0I\nMwtbUIfNPEJjsnuM8uGa+IUvfAHxwQkx4rdyhygM+uHdBzMgjHKIj09sHNLc3AzHRZY8NzcXHn2w\nGsFOZVkjQzXEvSWQJen0lQX2+glGiv1gYNIE8QNfgrUTm5FYC89gUoOeYE3YnBPsAkwM+98wEtuD\n5D5pEk5kFBaZgndhZSZW4oG6gGADIoZ/J1h6UAyP4GgKQotFcaB/SIhSo8jgeHiEWkB54U369NNP\ng23CAAhWDEqGSkccSyy+AiKY1FCzYO8w08F9FB6YVoTQm15LBx2QC/a5gTUYplq0KxQKXA7h2H4G\n7QQmTdBg5nSKaNgsB/LxNDQXKwSTFNAN2mKdIaggWBwMjJa5MjQJWiYMm6C12McIbQyPwH6ZzyqL\nhixwwUcXbQPSsCgUZYEamPsItYeHyuT34w8BtAGid5HxCrYfn7hYaKnVTm1Tj7yHfdqpcy/ehcMM\nsd2AFJUkxU1Q2DrD8YfCIJaIJjMNJS4i/bbF7j0lnqLampf2ZHxxmRxNvga9vi66UwTrBnMjaVS8\nptr74ykxZoffrzFQdxnwcI7AKEZAxmxxWOrhdQZXSizn87eoB9/CHqFyUr48cRHzJwzup4w4nib1\n8FsY9EsJ2TLO4YEfI3YTKdnJdhO1L/wUxWRDUuyQCWk4Zap8n162l/aYyTkXe7SQQFyIhg/s0VJ7\nAuv3RGzuXLJbSsyXnLGGp1E7utG//n51z0vYxJJWNiJff5tW8BrylbMWwj3DNvl8o6bIaDgl1J80\nJEXJmNmRb6+lhUqVh7XibRj/K3OuEWVFPfQODtsAWUJ5sUBRL98LGbbZ1wtqGw7DIJskVI3NFLFF\nasBLp1Yc3yB4mrHjqG321aZbqOnJqatq6R6j+phuBCRXipQ00WiqVPe9Enj/EUwZyhmzJbBW2WbU\nnMCupNiTBosV5YRcwRFhqAGjvEDd/Xxg3e8F2SGnTaMSADocX1H4gVF/SoyIV6ZcQG4nIdBRHHa1\n46yV7QfO8NVUQnDGi5NieZrVff+l0ZGvVc5agA2yDXRXxzdpJzfjMXaykTFtabqkUhYQiMMx4At6\ncgsoMU4jtIH1IRx/ZuUSyUWFfPCYfmoboin5y8SYNNQsdlrTsELS2yRGJsp558GRJqjhsPzTrBpP\nlrTlu5RLkp3hLxYvdRfurtnqUqJunv41QAVmzgAbApUN54S4+rePBOpacXhnzLk5/e7SQnUrbTmx\nu3qLyxZ184yvIRyrIzqe2iJxcIug2OXMuaIrsSO8tzuMlTG6xWVFxMgeI2+YiZjO+MSFMTHMR2A+\nuMdIGtsw4iusUvgKC0lubi5MKzfffDPMSjCnYI8T7LoBt08m04oPNogQpIIFCffYIRP5WrwOokCu\nQEhA/2CnYmnh14evluEFTxGCVDk5OdaAnqkE4yQYCLPgdZkvC+zyExLgvwqDJFsxyOKgyLAEgrXC\n+gdzEMgSmCF7BN6F4qO8WBeHbTNBcdniNDyFKJA02KMYiwCTgX8pKw4ig3exAxIQB2Y3fCI+dO4U\nBz6KVukshZE7nHJZvQAH3DOxWE0HHVA1qDWYtmBBBQ0Du0M9Qk/UAtwpQeqQETBHGfGJe6iH+JDD\n5CM76IZqxQ2eohJxWeWFhjhZBOZByMQN29CFFRaFmj17NqNqqFm40aIWgBjsbCgUOCTMjJAMsRCO\nENYG8BVGPySEYrhYuRBoFRY64EJdowpA9uC5ihsQP7QE6IADPGCjQ3aoBfB2TD1ACAaOkICYQI/V\nIySApKEuoD8qAvrD1AwFsF8R2ifzWMYnasSqdxQZJ51gAyQ4puIGvBe+ymjhUAzCATiWLEIUGi10\nhhUR+qB0MFdiWsRqyVYp+M14RQA9KVoXm1EU4dQTlYgXLw4Hpp3DsSF5RIyBsUqgTXDXYYtyDAxw\noIVoixRc9MJEyvEKS//LJWKgSNhIkfboWRn17xzxHK91TIiNyEeX0X9CiLR4ne1xB0559BhFmhfb\n4ZvWf1V5So7AGEHAXJ8Whq5a5SH/e/fRXin0SqMLbyncSzBqzPmY/dzPYWSplR/wv/c7o7mMRZAn\nLLRf+n3fq9/Xao5SVPxKnTGOi78v5SyCfc/77Jd0N5bUd56gpeHilItt53+ZzlfAGQ9lewMf/Emv\nL8Qo2bJW0Vwbrsg42/I75SkXYJNSnIWIAxuQL1io7cLvYieYwLZ/BrY/TeLxLrVHIV9slWkq1vO7\nVffveEHd+hdWBOyhar/kh4EPHwcphf5K7goxMU/d8TcSGhlvX/0d7ehaIjmMiZmFoVcUNuRUvVTe\n6HTHZT+SUqeQNF0LHHiDNlxVcZSFVRYAI8ppM2yrviHBUbPL8rIiQILitC38lIIzKrwt/o2PqMfW\nWvkGtZUU24yrbMu+iPWTRF4QauJsEM6QbUFNCxxRc8rUi+0rCGfD0+x742fYrZR0pv9JHipCsDno\nbCWMbJKmOm96yBBldd+awObHcQJHiDSKjAs7qTouvEuavJy+GKLvha/Cb5ZaiSMaB9mjRmhL7tpj\nUMI262rb0tvRKVLM4bpKvdryzTVYQ/i76bF40YeXrfF64T/fO/VyqmvCXUv+GF6SfsYyJzWFps0n\nT/z8bbiPZn97FZxhQhd29U/uvpqt/yh4IEJx3bP8yU4SkKPnz9djfkeevNJ+wbfIbSlY9aYp1Pqx\ndUrGv45xjc+GBgAAQABJREFUBGA3wzJOMOQvfvGLIDPwucUuLLCgwpTHqNewlQ9mNxxC+OGHH2Lv\nGVA15IsldrBbwoAJ3YZNDZ4RR2DEEWD9KbnxtzWqR97BdDD1vNhoISZTOedGKXmyGDdBME+cYt04\nDTP41Y4A+rLaV/dXPL0N5sG8X1wFx9F+o0N9oCF851DTS5We27NcP5oUzdl4O8z83/GPQNguoxoM\neqYLIaMLQIZ+czSGxC6XMKoRVIijURyiFGCauMeDgAeRcBGFwxPVj69wmIEbIQmwpFEUduEoQL+I\nQx3Mh1LmLNuqr2tH12nl+42mMjoMEPvYxE8Uk3JhZZJpv0o6dpudyEfKUDYSpKoldC4Fe20iCEcg\nQLrJJNvz6eJfehuARLXrQSmEgF+QYHwj/Q1/KzgXldxcfAWjnDL3Bnj/qNiLpa0Oa/mk2Ew5bSaY\nqnrwDey8asBVMkDSSBPsvpO7FEfw0VkR9eCuBs5qxwakYuo0ZdL5Unx2l+WF2iiCGJeNTXrk7EXK\n9IsJcaANfKBqJ/SQDRVTJ5aPVLiDIZHVCCmN+FQySmQ+pXPtzZMMBWeUbfGn1T1OUHrs+CLao3Bc\nhJQxCxwvgAMYA17D10yEHLPeAS+BCAGdsia5BgOZqhuPo5KFliopJo123z61lfalwbRoQo4ycbEy\n4wpIJlVG+yU2eGs1XXVIw8FdgWvM0pyoGWmtByvr3z2CmU4pktwgqbaG4EK7wkpOddvftGPvB+wx\n8rQLJTRdqkbWOIYgSy5yFCAAAy/oH3Z5xe8Vu7xg90vs+ALTpWX6GzYdYUaDNymO/kPWsLBhKxrs\nUgPfURgMh00HnhFHYPQgQOf9opvNPw/epDjp3qgtxLKLwPqHhKgkbHIuZS2gMy0iE4amQxg9MPRN\nE3M8IsRfOKVlf3nThycrn/4o90eX9Rsi6vxEY7ILJ3cJ79R4754cPSS9b9+KyGNzBIYJgXAthAZY\nQXM5Pq3hadAGBZ7kSsZiaPoZqV69sRzbbBJpwXcc2BCToTeWieaB6cQS4EMTmyXCDRLjzrqiUGlW\ncYnCYdUZmJJpx4IghBg+j+Gpx5wZKBb9Yh3RgjNacmJJoUQkR/XRniUm9cIjMTYD9EtvKhe9TUxb\neI1KcRnYMQW5kLieLgPnHJqmSzMS9o+OzTLclUbAR+pHxMMQqrur6Jlsk+KzRNkBl1GjrZG4kKyI\nNhd5QoKRNpWTGU22Yz0A7GzmOJveUUSeW+vBr+geO+XYI8SIOMHmgjwyB6EwIeXFmfIgbKSuPRox\ncfYGVkgSEYPHJpYvtjWSGqEXyhaZIMH9jw76o/ck4mp1RSLVGkSTJPPCE1yihG1RsbkZASLiWEVs\nzUogq5qBgmA9gyte1LBP3ylyT7W7QFlJQFszwOm60YiyFJ8J198g7WwGaG20m6gaoG1FEYrlkZAT\nlWgoDtKml4owdRy8j/5ZCLeWvffy0T9H2aJ/svyvg6dLF5JMCk+NoO6tQyUPvi/BNfgzi1JunIta\nHAhQPVgIqYUEvIEPHqPJC9RHdLrkioPRWJ5xObbMHUimXRSPB40mBLCdCU7zw0aX8KUEDYM7LjwY\n4SY6/JWO9X7YEhZbrcA4iW1IARLMg2Cn3JdyNLUXrsvQI4AOAJmYXTR9YCCgYszTRMdZYZ0hZpwx\nh+6Igm8/bV+Ho5UTcoZep7GSg4mdobfsrSh9+ANfeVPqpxak30JbTPfjMoeuoIK+7xxqjFOkjcuS\ng7XSD1k8CUdgrCHQ9dh+rJUiDH1pZG2Orjt4URepiETR2Hx4yUoXivCgQUagX4RQ6JFQDbKGTJzu\nV6ue3VX1/G7wtcn3Xxc5nWZG+p3Tvuot/zj4UKTi+mn3hFYr2uJfdz+dlWJocEyC2VDJW0E8FD8F\nMgT3P/d+q80TDjUCWI2JTVAOHDiAhXk4Zh1mw6HOsUv57F2LFYzYbxNr+bAGr9N+p12m4oEcgbMH\nAVAUvfJQYPOfsbUBJohpiIJtEWZdqcy/kSZ/RZnmiIm18Be1UP3Snop/7ACdTvvUOSk3zqfJ1D6i\nQoTQMN6r9X37EGbtxfumx2KZydnT2HhJz3IEwnYZHes4kb8kzv1jxrFuC0Ockd6t9NbtNhJ/wBEY\nMgREu5L8sTmek/XNW082flDomjGg86nC4XNy7lL79fcb5XsCe/8LSztWkwor7hQzZkmJueQszX8H\nQ1bXIygY+4tiB1RcI6gDssZ4DZwQ297gGllNeO4cgVGLgJw6Q/rY743GCnXvS3rNcTr9eN8r+FPy\nlsuzr8GLmvyM+ItaMFI+Pldt9la/uLt5W3Hc8nxHBnbP7hsuiA17wIVJzmilpYXYN784AmcRAmcL\nIYQvq3Z8o4EzIbqvXPbrxz6lclbHDordR+dPOAJDgADWkEQ5omamuXeW1K87ilWF0XMy+51Nq79Z\nw+bAvV0SNsiNy5RSpsFaGNjzMnaIFWPTlemXyHnYRSmnt9T8OUeg/whYc/jcM6P/IPKU4xcBGrGY\ni3Ck2HTbyq8ZrbVa8U6jZJdWukct3IQTueSJi+W8ZcqkVVjPMn5hCKdkNLuUfO2sxg3HPSfq3LtL\n7WnTsEdhOCmtOGQRANp9NSxa6fkNR2AsI3DWEEJ3tXrgVcNdQ3tIdX/h5SsqkXQ4bA/Esfvk/AlH\nYIAImA1PTLxsuntvmXtnafnjmzO/dn7U1BRz7ag1eA43ExybEdB8gg0mb/qPCT8zMfbuxh75YsoU\nMWEiDsNUd76o1xcFdj6rHn7P+ZmnEd8clPCfxJnI8ZBBQ6DPjXvQcuaCOAKjGQHr7Uvvb2zZIE27\nRM9dJrfW4dwgde+/sTcpbca+9z84u1iefH77e552ETjbflMAyJboSrp+dtkTW1oLKuJXT5Ij+0YI\nTcR4Tzeafw5ctyFE4GwhhDjjXpn/CQHbnPTkQoAJJkPKnEtrunuKNoT1wUVzBIAAjIT5P7/i+Hdf\naykoL71/Xd4vr7KlRPWjm1Kx5oRmQGgSBJ0lW0TbPcI4asRB+8rkr8RQA4QQR2IG3v4FTl7BdlD9\nyL37jPgTjgBHgCPAEegXAjjY1RmN/fOkFXcqi28JrH8Q5yELNccCb/9c3ZFnX/1tAcdU4GzDfske\n04mw2T1OlIpbllv+l48a1h9P/9xiOZKvABzTVcqVH1YEzhpCiLPR515nEr2e35O0qJiTwWFtgzyz\nrhAAh8v98aXFD25o3l584u43cn92uT0NW2D33Ho7C5qVvGhv9WaI8qleh+zsPbW51y2dVj/1Qr2u\nSD30llayUyveJucs4VMkncHl3zkCHAGOwEggYHo2ImMDZ0TZL7tbrzgY2PuyUH0UpzH73rxHmXap\nlLeMdkEf3sN+RwKJ0/IEGwQnlKOd8SvzG9Yfa95VknTFzNNi8C8cAY5A9wiEeUJ39wLGzBOMpDGc\n7nU83dch95gpP1e0fwiE02j6J7nnVMgXx+xm3rHUNS3VW9JQ9vhmtdGL6QpcPScMfRpli5VF2a95\ny9yFCO+19VMc+gXgZJco2sUuebLhawns+JfeUEJmRsq6D7mHasLvOQIcAY4AR2BQEIBno9kx0b/U\nU6TPdF72Y9vq/8WhQeYb++/+t38Z2PhoYPcLONIw+NZuf3PjLd6XPmRQ9B02ITiITJQcSsSkJGSJ\nNRfosMzithd+2BThGXEExiACZw8hHIOVw1UeaQTQl5gkKhwmNSS62lNjUj+zQI6JaNlT2rz5BPP9\nhFZhZpYVM8kuOzxqy56aLWHRQUsu1p/EZdoW3oz+VK8+imUqgkZ7rvWJjlrC+A1HgCPAEeAIDB0C\n6BSw94H9vP+xX/x/WPZiNJWqcPvf+rR/7f2+l7+hHX7H5EXIn97i5t/Q6TLCknEisiMjFnZC965S\nNofZ48YRI6wtz54jMHoQ4IRw9NQF12R0IQAqtL9qS6vaKkl9W5g+uMWImp0Ruzhb92sVf99R89Ie\nw+cLstQwslEk28rsazXD8PhxzGC4NJIEY+IZ+53iRIrLfgI3nMDWJ/2bHhM1v5lnX+SEoSSPwhHg\nCHAEOAIDQYDmLDF76YiU8s5zXPc7x7X3yvOuE6MSDZ8bxxj6197rf/3HQludoeNUBbzAR2yKcyBl\nDD+tPSUKf7rHX/OffSYwvM8KHzwe8+xFQP7pT3969pael/ysQaBZNZ4sact3KZckOx3hrbcvbCx4\nv/Q1r9r26RlfT3VNGDGoRCF2WY7W5G07VoP1hFKEI2pWWpg9Orp+d6Bxd9UHiJ8TNy3GHh+G1zQV\nlMYL8EWCnTAmRfB79NpCjCqw0bloYI2GKAQ8grcZpySba1RYXzvmRhjjf1REFckvjgBH4OxAwPT2\nZ1RPxLlBcvYS29yPSYk5UkSs4a7Sa47pJz+CQ6UUnyMq2DwCb+xx+w5U4iK8J+vbjtegF4tfPVmk\njSH61kNhtODXBYwWMGY4O5oPLyVHQOBtnTcCjkAnBMglUxO0k81H6jxV+XEzZyVhS5WRu0zClX7b\nYsmp1K4pqHl1vy3ZlbB6sum9aS4h6V41zAbPTj4Xz5v89U2+uszo3L71iuhEbRHKvBuk+Gy1YI1e\nedBfeVCMzRAjYrGdG3bulfOWI0LngYU9QkrIFe2R3es18k+04h2M9o68KoAyY7Yo26meafmmOdPf\nt3oaDYXgOnAEOAIjiEDHKyPIfcwAOe88eeIiMWu+duAN7BCmb37CaKu3zbpGdCWaHQu6iI6EI6j9\noGeNZYSSw+YprPWdbHDkxI/PQg46alzg2Y0AJ4Rnd/3z0p+BAPOs9Gv+0mbaiGVxxmo26XpGxGEK\nQE8GQ53ktKXeNN9Q9drXDpT/Zauh6wkXTu2tk8O8KGijuDD1/B1VG4ubj01NmAcn0r7qLUanyrOv\nkiYu1Io+0k5s1Er3iU3lEKJXH1aLd4jwp6X51xCpkiLYXcKI+tmGaNP5FrriKA6xtUEHNKFqd444\nXN9Ru5Fx5rhMxCog2+LPCLbI0wEdLk14PhwBjsD4Q0C2Kzi3MHWafmqnb+296p6X9MIPxNRptvk3\niok546+4VCJRiDsvr/IfOwL1bXVvH8740tLxWUxeKo7AoCLACeGgwsmFjX0EQBLACVv8TbuqPsAW\nnSBRIzs6N916dLAGHKmU+cWlWouv4b0jFX/dprgcMYuzRbmH9Y1Ed1CcWSnn7qh6H4QQ2432lRAS\nfQLhI9/RNGnOdcrca4meioJe9JF/2zNGU5mhBQivdmZF8XVNaG0wzYajsTWAveKi2XHZRrbgkb7A\n7UVvM3FUHRz7mLrrRWXSCvvFd0E9zAOMtHY8f44AR2AcICCKEYnS9IvtNmfgvfv0xnKhvlgr+tC+\n8htK3nk4Z2j0uEsMCtYiDpTGKsIb5pY+vllr8Zo9VHsXNSgZcCEcgfGIACeE47FWeZkGggARHuNI\n/W6whnNSV0QqUcSILMYzEMn9Smu69ARNWWBeWd9aJUXY6t89UvboprajUxMunWpPi6UOD5fZ5XV8\ntAflxc2IticU1O4odZ+YEJ0fYcMZ9ybNDE+fDp8iQiGIhJR7rjOXnFE7X1pAqzpktNR2Dh9F3836\ntDuU3PNGg1IEV1MFNDGaK3HANFb7qEVb9FfvUvJXSBPmC1GJkiPa1JMPaEZDdXEdOAJjEwHz3S1P\nWiElT9IKP9CKt2tle/zv/EpNm25b9FkpbRqOGkLB6C1DncPYftvQDKUhSC47iuGvaQ3UtNpT2Ft0\nbNYd15ojMCwIcEI4LDDzTMYOAsxmVN1WBpUnxOTj2IZR0zcy1YT0W5fgqKXaNQerntvVerAyZvHE\nqHmZERMTBIVtINdZ3wjFNSt58Zayt1459mRG1MTF6RdOiZ9r9vyDXyuGrMgZs0262VmNwc+snxKJ\nPdNOe6aW/ZQxeMnk1OkC/sxLnrQSR0sHPnhML9/vL98vJU2GT5cy/WIZzJBfHAGOAEdgYAjgpSzG\npIvzPyFPvUg79JZ2dL1egT1IfydhQ+kltwqRWBzOSOHAshkNqUUhZkEWFIFPDf4ETghHQ6VwHUY3\nApwQju764doNPwKYSSUfSbpgHsRBt8OvQjc5YtqWyIzstKV8cr5rZnrJ79e37CtvO1ylvBaZfNWs\npI/P6ZLjgNOuzLqysuVUUdPhMneRTXJMiZ8zVN0+GVNH0qDaDXQdwUAQNUr1O/r0lOIy6C8hx6g9\nHvjoGa32qFh3DPfCqm/I6bM6ysDvOAIcAY5A3xGgt5/ZoYmRCcqCT8qTL1D3/FsreF07/Jbf02Bb\n9gUhbgIcYsa4gTCIiy0BG54JarMXf32HiqfgCJx1CPA1KmddlfMC94yA6VkTQgJpHVfI154TD/VT\n9NToq0VBiXTELpk46/lbU26cJyhyoLal/K9b91z+RMGn/ta0pUj3q2CO8Iyk/03tM6JyvrXw3o9N\n+QICArofgfSUIpi3g6e2OZIYNXB1VS4TwHYcu4owomGATpTis+TJqxyfftr5iUekjHl63Snfy9/0\nb/iDEfAYhoaqM6vVrLoR1ZVnzhHgCIwtBOjtR5TQfAHiBPfYDNv5X7Hf8CCWqMNf3bfmbnJfp2Xj\nrF/A55i8qHjUa0uRM1LUmpZAbeuYLAZXmiMwvAhwQji8ePPcOAKDikDGbUtmPvOp1JsXOCbGOzNj\ndK9a+uim4nvXNX10yltUbwRUk/oRLcRfpA2rRIzqtvIS93EDJwoGZ4tHNX8bVLTGjDAaj4m6lDzN\nccVP5KkXiHaXeuA17yvfVfev0etPiYJGS2R4vY2Z+uSKcgRGKQKgTlLKZMc1v5HSZhjuGv9rP9Cr\njlJ/wXbfGqVah6uWa3Iq6/vCTcDjcQTOYgS4y+hZXPm86OMCASnKkfqpBTFLJuq+QPO2EpxL0fjh\nCdgJnbmJkZOToxdlxy3NoYKKwtSE+fHO1HJ30StHn7xuyuezoicR7xgXIIzDQpDjlmE4ou3Lv6xl\nL1Z3v6hXHQ5UHdZSpspTVtnmfpzm+vnFEeAIcAQGhAC9aHAUqv2SHwQ2/0Uv3ORfe599xVdwBA6m\npcbHS4a/KQfUQHjiswYBTgjPmqrmBR2XCJBvDLG6yEnJ+DciNyl+9eSGd4807yxtK6zFX+OWourn\ndsedn5dwybSYmPhbZ333mYL7jjce+Ou+33xp3o/SXROD6yW5tXA0NQ9Wq2bFolLjlKkXShmztJMf\n6cff18r26vUnxYgEZerqED7Pxzyjqf64LhyBMYMA60DoYCHbyq8E/K1ayQ7/pkfsq74ppc80CwEP\nUnQxY/INY5o5x6TmY6b5cEXHEQLcZXQcVSYvylmPgBxpj8iOT799ydSHrs+7+5LomWmCR/OcqMUK\nw+Pf/k/jumMTHXl3zL47J3Zqo7f60V0/Km05gd6ejhlk+9Wc9QCOWgDE6BRl9tW2y34o5y0XVL9/\n02NazQloOz48u0Yt7FwxjsBZg4AhRcQ5rv6VlDkPpxQG1t5nNJabXHBsu5FwOnjWNGBe0IEiwAnh\nQBHk6TkCowoBWlsmSqJNjl2Wm3/ftRN/cFHydbOcOQm+6pZT96079v019vdbL9OvzfXkN/sbnjv4\nx5ONhzXMAI8X76BRVReDqAzb91aKiMcmELAWCm2N6ta/Cq2N2AEC0/f84ghwBDgCA0PAfMeIouPy\nH0v5K3R3jbnHTDneL/wNMzBgeWqOwNhAgLuMjo164lpyBMJEIOjaE/QkFbC2MHphVvwF9c3bTzW+\nX+g5UlV6pNqRFrM8YnZKnBMyT03fmnx+UnR2cnuvz8ihOa9KnkLm/iZkiWLzxGPTcyhM7AY9mgkg\nTLAhKzUtmNnhJuHiybZ4QC1IUUn287/ie/2nWtk+/7an7efdIdoj2ZjNrDM+Id5TLWJvVlqa2T4D\nEmzUZCMP7rVPNyG11ZOsUfAsWBz6cdLGkeFrxBL2HD+cOD1LGMSnPSjTw6NBVGCIRI0q5VnLFx3R\ntmVfNDyNWunewIdP2C+/B6//ISr+UIv1V7nZuzHMjOjnb74UaNcuQR+7BQ+zvDwaRyAUAU4IQ9Hg\n9xyBcYgAdhePyEt0ZMfFXzClaUdx08ZCnF4oC+IMAwsIReFQoHjtu0qkzTEhLmpuJsrvmpEekZPA\nvBHZGNMcJUvUs2Lo2Zdx5zhEs29FAl5BpsHSmfiRey7GHSYLMUcfYchERbQerPIU1Zm83Kh+Z6EY\n8InvG+LzrwqSTGZhGsqMIS4TRpmHIIpok9DIo+ZmRM/JEGwyciAyReDhohtMgJgosoY/BBoMgcg+\nUUGWf3dJqPS0l9FpjTZMlfuXKkzh3SmM5OwRcrfuO8lkj7p72inywL8OKQ4DVy8cCWJMqjLtUr36\nqF6+Ty/bTU6kY+kH0VFE964SJcYpx9DUZzgXvZVFo9Sj+XVqTngvhJOKx+EIjA8EOCEcH/XIS8ER\n6AkBGusqsi01KunKGUlXzMSQr/b1g1qb33uyoWHrcW99o1AnthXVNWw8IYqYFqWBcsyiLDiawvU0\nZlG2MztelOFLZBNp0nRsDg16gmdonuFkj4CGYx8NDYcHBkFr2VvmOVaD/FAjwL/u9YNhcjiM0HEI\nISLjT0ctiE7JHiVqquFuoMlsyWbAT5hk8drpqTY1VW07WlP94l4Q9eh5mdiGl5r3RDRvGVxRskk6\n8SGrunoSNXTPGIHx+XwWk7HycjqdCPT7/bIs22w2iyZpmob4drtdUahPDwQCqqoishWBSdB1HY/w\nKaGsNhSY1oxAINKyEBYfn16vF+GQhmhW7tZNQ0NDU1PThAkTWHZWeEtLS3V1dVZWVqdUTB8EhsZn\nBYEySB4RQWeI93BBAi4odqYQJgdpUfxO5cUjIIOEKB2e9iB/UB41NzfPnDkTGp44cSIcgagjFB/x\nO6ltpd24ceNtt912zTXXPPDAA1bgMNzgJaJMuziw81mhsUQ99LY9fZYgd9EMhkGTAWZh+DQlM86e\n5ApTDv30DfFgi+rVDKcsTXGNyVKHWVgejSPQCQFOCDsBwr9yBMYhAsyqR7YPMljRXHriFTMYfQic\niN+95d3KmqKsEymgGw6PPaLVbvcrwvbi5u3FwKLqXzsjp6Y4UqNjzs/HWNmW6JJdNLSSo+y2hLA6\n2q4G2AjDNd7YCxigWtdKnw1tvgp325HqtqPVnsJai6fpBjEOs+z0ASTDxhCMT1ISI5UIjFFEyalE\nL5qol+5Wj7yDEb2Ss0TKXSbIdm6/tbDt8sZTWOM52aDWtQTq2lr2lOGv+sU9qA9nflLk1OTIKSlo\n1c6shPDbdpe5DDAQLaSxsfEXv/hFSUlJJ1EPP/wwGNef/vSnhQsXfu5zn7OeHjly5J577rnjjjtW\nr14NCrRmzZrnnnvukUceSUpKYnHAPfbt27dz585du3aBzmVkZCxdunTFihVpaWlut/u3v/1tQkLC\nl7/85cjISJCoo0ePPvTQQ0h46623IiPGG628cAPF/vnPf37ve99LTEy0wqE25G/duvWrX/0qSA4L\nB+HZtm3bG2+8AQ2XLFly0UUXzZo1iwksLy//zW9+g+Ig5vPPP2/JOfMGBBiMaPfu3dDtzjvvXLly\npRUHvBTCQZwQgvBLLrmEqYSYuA4fPvzqq6/u379/4sSJV1555YIFC0CSrbQje9PW1vb3v//9+PHj\nP/nJT6KicEJsTxfKEvre6CnqYD0TRfvyL/nf/a1+cqt2/H15ymocTjFYsodTjvXuDSfT9r3VqHty\nSMLESJob5RdH4CxBgBPCs6SieTHPcgSIhJhMxLyhL0FA8vPmRSTHFtTteL/4Vbe/KbLV4XJHONps\n0U2RiDTNNz2jPImIzZHqho2FSGNPi1FiaVBli4mwpUUzKbYkV0QuhoagmpSJEhcBJ1W4qtJT9K1k\nc2FXMFcWj9wpLT3aY4ySf6GbpTHdUcHaIQtRsXkHcWZc/spmT3GD4VN9lW5MS/urm9UGDz0wBEd2\nvL0dKBhacTSIEu80YRHhzgQ8KVrvFxFCyFGiO0a0ujdF29sS2P4PUW61T1kgTZgeFNONtr1nMt5j\n4PwVqqPyZn+l21/jDtS2wgvXX9WCA1rA2+veOIwKw/SHEkttG26lQDsKzqXUsKkq0VqHp8WCALS2\ntsLiVF9fD5Y1efLknJwcUsEwampqwPdgagslhKBVL7zwwoUXXghCCA528OBBfL333nsZIYSoxx57\n7JlnnqmsrJwxYwZYH+jZk08+CdZ3yy23wBj47rvvZmZmfuELX0AWYIM/+MEPNmzY8POf/9wibwgP\nvWpra0G0kB0ImBXu8Xjeeeedjz76CHJcruBUEdgaeCMe5eXl/epXv3rxxRd///vfg4siFXga8tqz\nZw+U75kQFhcXIzLMbtu3b7/iiissQggqCxr81FNPTZkyBT9PcGAUB0Q6NjYWX48dOwb2WFRUNHXq\n1B07drzyyivgvUgO46ql8wjegPO//PLLwBn8uVdC2OXLZyiVp3ednHOuPPNKddfz6t5/S9kLxYhY\nM8cuXoNDqUm/ZNPrm6Y/g1fwXd7+tft/KSKS0S8d/+D/DhndJ+JPOALjBAFOCMdJRfJicAT6hwA8\nZDKic9NcEyfHzTlYt/P94v9WuxrB5MzRr1Cq1yZoSfnO6XOPTbP5bd7SRjg9BiqbmedoR39pl+QI\neC2anAmT2fBciwhaq4Ids02Ch14H+cGJ62kxtGTRXMfVP82HNBUbCHhLm8jJ80RdW0GlCUjn8YHa\n1MbU0Hyq5gkATEIOBFhRYhZm0XK1eZkgFZKj/U0rClKEDY64JkmWyFhLIjuLPbNo8D81o50WU3JE\niwtu0psr1SPvqdueoQrImtcu80wZPIQqR7LL8IV25saLhqQFVL3Nr6Pu3N6W3RW+quaGdUfbjlTR\nWNAQmjYcFxWJOOG8zLgVeZEzUql+T6uBwYeU2YJAaX75y1/CrLdp06ZPf/rTn/zkJ2G+Q2ahFrkw\n84bDJOyKv/71r8Hu/vKXv2RnZ4MRgaGtW7cOdBHZhcoB07vrrruQ6R//+MePf/zjXbpZIklpaSmI\n1oMPPhhKCOvq6kDJIA05MrGIAzYIOvrss8+CEBYUFNxwww1goeC3yBq0MD8//+tf//pbb70VqkOn\ne4iCbyoshOvXr7/ppptCn8JK+df/Z+89AOQ4qvTxDpPT5py0Wq1yztlBsuVsE2zAGBMM2Ecy/pEP\nMBz/83EHHHdwZDBg4wROyEFOkoOsZCVrlcPuanOOk1N3/7/q3h2NdlebtLM7u/Nao9me7qpXVV9V\nV9dX79Wrhx++7bbbQDVxHVTw0UcfRTHvvfde/ETSyABY8ZVXXllfXw9yCBCQaERrGi1q/M8zMzOR\nN2g4oa0d/9SHmaJ+wa1y82m57kj4xEv65R9HrBg3/2Hma6hg6mPaseNsT26HnWm8wbSme9FTMVRq\ndJ8QmBoI9A5TpkZpqBSEACEwQgTUVfQcjLiKk2dNS5514/Q7fZJ3dz0bou2te7U70FEr1lRLVW9O\n37ap6MOwqJmTvi7HVqjzC92vMoUhDqyF69h2UuVB7DWKEabsCshOv3oTX4yhYCmPt7y1z2galwUu\nTs2QUAjkVqVrrFCCTuSwirK3SJG/IAiCgfWiCODYUGAuzTTmOhwri7AgrbewbMTdew6QNIKsXsMd\nSIyayI6IHegEYxW2WvCiA9FFk379vXJHtdRwQtr6df3qz+gWfYDTGTVuflFg+sEQYFWh8nYGvWjQ\ngR+ysyy7pQQm01zBF9eHvaH2bSecB2oDVR2SJxh2+n3VHa1bj4lWU9adSxzLCyNW07FAVKs4PI+w\n4cTYNCUlBVegQQJ/0JLTBqzDTxpaNejQiouLob7DUr1Iw4A5aORckwaF2//7f//vnXfegSbtjjvu\niF7vF50c+B5MRrHs8JVXXoEB6tKlS7W7zz//vLZ2DjpMWKLiIphedXU1TCJBw5AWLkKrCdXi8ePH\nQdIcDgfKYjQao4X3P0dE2HniSE5Ojr4LDZvGJMEVNZ6MbD/xxBO4iMyD2b744oso46233oq4GRkZ\n99xzD3RxyDBILIqAA0mjFKDHGu+FYSqUqzjXVIg41+7iBPnUroOiIxgMYiM2sdFZipwjPILBdhdJ\nRwxuIQ3XURxcR3TAO2fOHAiMFoVbiIgwSC4SUROr3YKE6EqMpBirE3u6bu51wcZj4X1/1eUt5rPn\nsS4r/g+1a5WdAfSX5pJU1XplWJnGvBu6h9fbAq6wkmWcFEUdVrkoECEwHASIEA4HJQpDCExZBNQB\ncs9bnr0Aec6ss24u+hBO8X2g6a2a7vIa5zl8dlQ/iwDbq59FoFU5m7AeqChppk7Qg9Lk3r2CxQQZ\n5BXJHfSeacVIukco4zCKr7IjWN+lhmE/scoOi7jkYDj+X7n6NItoM8EC1pCb1FMilKD3EI06+8pC\ntRSXKspFNFJDuwcHLcal4vUmof1lEXH0C4yxI29OMV79tdDhp+TKPaH9j0hNJ/RLPyLmzFOYc6Bx\nX3p0cbbj7ZdaGT1YqlZhQJRh2vsfZ7zOasi6fQk+uA4z6WCz013WEGrz+qvb6v+4p+GPew15Sbmf\nXmXITjIVJAl6nars7VcxY1Fy1G1/MdpF2EPC/DJyFzaikfPoE9CevXv3QqH38ssvw1I0+lYf4c3N\nzViCCPNUGGHeddddl2KDkAATU6zNAz0DgfzZz34GS1RQGtAzKBXB8cBnYI+6YMECEBiYgyIwtIKR\ntKDq/M1vflNVVaVRo+j8jPQcdqTgpTAfjWhNoVa9/vrrgQxu7d69G8RpxYoVoGSQDHIFW1msJARd\nhKUrDFlBHREXFptZWVnQhUJlCojgFAc2t/iJuCgFsgoejrWOWO+3fv36devWgQNjSSSUkLBNnTZt\n2oB5BgIwwQUdBaTID5ZNQsMJBIBPRUWF3W5HdSxatOhzn/scrHYhDca9kANAkHNERBUAfNBsVEdE\nPuoRfP6ZZ56Bcez999/fpyojwWJxwgxHi1ZJlXtghqBPm84ZLmpFsUhxDGSyB4fNxKlH7/M+DLm9\n6yTZc3dn7mQo6TAKRUEIgWEiQIRwmEBRMEIgERFYkXXl8uyr2n1N5zrKylr3QWWGt+y5zqPvNW4/\n21k2M2XR/PQVizLXMtqhvX4VjKeN9qVsAKThpWnEkjeU4GfkohwIwecKviNX4hZcfZadrZlE6di4\noqdQF3KrqvzYfHS/OxfCxP5MSC8xXHG/VLg8tP8xqeo9wZwspM/gDMj2hGYr9gWPdQopG6YDwrTr\n5mKNqOdEI4yHXYfrAvXd1f/xBuxO7csLM+9YIlrhfXe8D7AXHEOmCj4Grgi3n7Nnzx48MHgIWAfY\ny2c+8xmNRF0qPGSCukDPhhWJUCfCVw3YC/hVY2MjrDfBP0FywKkQDN5roF6DkWpEFJSEYI9YGAm6\nOAjnjIQf5AR0FAc4XjS3nDFjBnzPwEgVmkkkBMVgRALoIg7YjiJLILSgYXv27AEsoI7gWqB8MGTF\nXRA5MD2424GeE7wRZQR5g0AoNrEWEbwXTBjXQep+//vfR4RHnyDid7/7XaQFennfffdBS/nDH/4w\nJycHCUE46gJ5hhISvBEZgFpViwvQsHQT3ytXrgR0oNnRa0SR4re+9S2wUyg5x5MNsn7PYBVnXCHX\nHwmffoO3ZegWfgAbn0aXNw7P2UtH4bC7UhzmjbJECMQtAkQI47ZqKGOEwMQjwFieoqSbs9Lyrl2Q\nsUqzcfSG3K+f/weUh/sbth9v27+j+rmVuZtKUxZmWvNV4sSsUNmJeoApaXwpMmGLyzCzNE1LQZj4\nJ4Qovzq6UBlhb6F6yqbeU0sRuTBhJ7zJppuzRUjO8z/z1XD5u0LJBrFodS9Nn7BcTfaEGaHGglC7\nQbRnWErSJV/Qc7bVtb/Gpa4sDdR2Bhq7p33n2v4TBbEu+N133w2GEEkFRAL7E0R+Rk5AlkDzQI2G\nfNDAnRCmrKwMpKXPUr2INO0E7AirAWGKuXr16uuuuw6eUUD5oP6CHgz8B0owWIQiJJLGgZPopKGp\ni1zvI3akPzU5EB4tX0sXlA9Hn6Q1+SCikYQefPDBm2++GdQL/A1WpjA9Bb/96le/CgRACLVgCxcu\nhF4OJYJeDgpPOKcBl/vyl78MB6Fw4jogp4VDna9//euwiUVaWAgKqnzNNddATQqBUGbCVQ9UlLAI\nxaHlHAUBs8U6T3BpaH3h1hURIV9DD7HgQxWrJUFT4Y9nyRKmuB7HA5Ngim7GBk7UBV/9/8KHnhJS\nCsWSHnDGMRsjS0pb6+uvbBcsenVz3fGfsRlZhik0IRAPCBAhjIdaoDwQAnGKQGSwhTeqzcDW8IAe\n2QxJH53z5YVZa3bWvFjtLK9ynjnvPMuUhzw3M3VhoWPG8DkSRozZtsK5aUvh6UPTv4nYMBH+zXk2\ncFRH40gzkosJQUnTDKpDin7jigF0hhOTx56cCZmz9as+FTr0eOCl75lu+ymfvzhO12hOCEojT1Sr\ne8Rj+Aq8CO334jx8sG625cnDnTvLu3ZVVj/0WsHXrxZN2su0XxMZeaLDiYEVhrCBjITUNm+I/Iyc\nQNcHxy3QhsHuUaN8kVt9TmBd+Z3vfAdOOOF5BQ5gBtxtQouChYJYDgf6B86zZcsWWF3iOuRjCR+y\nhFTAmsDHkDSoER5dGHYWFxcjDJ5oKNygGYP2TFunpwkc3TcUZTDshHAtOusueB7GqLiOdKFMw/I8\nrCSM3IXLVhza4kbtIqxD8RN5xkJN7PUH21Go72D1CkcvkSwBByj3UBx4YUW2YSwK41LwOnyjIH0I\noUbhFi9efPvtt2srAOEyB25vQJJByyETyWGjQgjEOTKjhUe24fwGnBO8EXtjaElHs32se0SuIArb\nZoxzV6gaPvDYz0ZXslFe9MFw2fNKwM0qEs08jq3R8S7yV3eGsSQBW/XYsEhVnc6LVOqgJyddoVPu\nEMpoVucuxhnwQbNGNwmB2CJAhDC2+JJ0QmDqIQDupxN1CzNWL8pYfaL10P6mHb6QpzvQ7gm5znUc\nhXGpOn7up00bGAiMLNjgYm76coPI3EsUOkoL7CX59hKr3sZE9PxHGDqGRkDBmrZFtynd9eGzO8IH\nHzdkzlTX/BB6Q0M3zBBsiKwoYIa5n12DXUOaHjvUtb9a+N3unLtX6FLAf4YpZpyCQTcIPR5IGlYG\nYueJaDoEigJNVLRPF5hE/uEPf4D663vf+x62OgQtHDCX4CegW2A1GCs/8MADd955J6xSERhKSyQH\npgrbUdheglzB+hHqNRhbgsxoA2vs/QAmCY56+eNsaMwgB7tcIDktM6B/7777LlgTkgazhQIQWYU+\nE/wQjA5moljUBwYbKVQ0nYvGIRIAJwgTyeqlwkSH184BbMQlDGJBgiYEFyPX+8RCADBYjdbiVjTb\nhIkprE+hyQSesGvVRPWJHuufYH+cCZsMKXLrOaX0Kl5vjN3S2TEpi6esXvGFBLsRW4xqJiojFfvR\nPM0ydgRkcqRJUHhCIK4QIEIYV9VBmSEE4h0BNh6OyuPcjGXz0pe5wy6sM3QFujoD2IRdDTG8kXFI\nCpztPFrvPn+i7YAm9UjzLrshZXrynAL7jJU5VyeZsL3h8GRF5SphT5mNqMGGXaTDVe/JbZVya7mY\ntyhh0YhRwZnhtKrcSb1hri7F0vTEwa63y7HtpG1BTuaHF8co0dGJBXkAIYQHFNhDfvGLX8TWC3D4\nCR0aNHWgalhxB61UtGRoqKAAhJIQ69lADqGYir6Lc5Qblo1QkYH44SdWD8LbCigftIva2jbIhDEk\ntg0EK4NwWJOCW0L9iJDbt28Hq1m7dm20brOP/OH/xFo+yIcXFqzQw4YTKClIL1YnYhkkNH64C+73\n2muv4SdWNkL/Bk0dVgyCLg4/idGFRNmfe+45JAoWhz02kDEwumjy2V+sRpKxr8bWrVthhYs1hGDv\nINtaSJBbcPUf/ehHMBn96U9/Crc0/SWMwxVegJMqXvG0c3IYu6vGi3HEQCXH/qJde6qwnUzyFTPg\nFWygIENdQ/FUm5ehwtF9QmDqIECEcOrUJZVkzBDoMVbUeAhNEPbB9aIZaoYRz9n0Dnz6hBvOT7j5\nXpF7dSDs31P3KpYeFjlm7ql/HU5rylr2nGg7uLf+jXX5W4yiWRO1Iucqk87MKgdrRNiIXNXH9K5R\nZGEi6kS16jTiqr3X43n4Mhyghh2GFVTMX8IZzIq7TarYKeQuZCa3GNygoohZDxvHSwe80P5hjZZ6\nzSxTUUrVj99w7q9xH6m3LyswFacC7XjAWiWtHAwdYX8ItobtH+DXRDPXhM0nfJ9ghVsfQgh1FpzK\nnDp1CivfcA6/KX0czEAm1ivCclKzewQ50VbHwfxSQwzXoSfUdpAHOQSHgWdR+JgBtwRbgzSsr4OC\nEXIu4HhprAe5A1UbiC4SAsncsWMHQkIt+YEPfAAuUjV7VNBabOEIDvz9738fekKkiMzALlRbXjiI\n5FFnTIuI/RjBvYE29ITI0k033XTVVVcNLhPsGkpUmNp+9rOfxTaJiAgTXKxa1DKJisACUXg9/etf\n/woujZCDZD5mtxR4M1Z7WDRu1gXHLKHRC2adnLouHf6fPCebkMW8z7L9ToYvEfHZW4MVkT3CI4g5\n/DQoJCEQrwjQApN4rRnK1wQhwF4JPPd29QtYyYZFQ8gFe8nQERsE4Obbpk9KM2fdXHr3zTM+uTBj\nzb8s/sEDy/9rS/FHjaKpK9C6tfyvT5/+7dNn8PndN9/+yJffuOX+7Td/ZfstP9n/tTeq/u4KdfvC\nPlewC35uAmGfH3vDK6GesQozcup5r8cm73EsVdQblt/JybJUV6Y0n+KxqT2woNFNbGrMMjNz+g+u\ns5SmYc1S0+OHOAlwj9kBbRs4DIweIxJxBZyhj+4OF2EOCtanES2Ex8+IVgokEFagMOwEeUNIOP8s\nLi7GrujgS+BOYFbQ+GkbHiIVkBPs8461czC/fOyxx0BOIknjBIsVcQXRER4/ERcaQjhK0X7iCvZF\ngL4LpAjnGFFj3wV4aoF6EAvzoH7EgsNVq1ZpI20tq1DlRRuyItalDq2MWDcYCYDtGf/0pz9h7SLK\niwP8FuQQhdUCQB/45JNPIlFo6sCjcAvFR3mROgIjUY03gqOCoGq8F1QW2GoqOCQHU1sNZ4QELDgg\nGdG1POMERYhkRruFKFglCGtVCES63/jGN6Drg3zcBUQQHqkUQIcrWtkhCjCCrsO3DeBFPcK3DSRE\n8oBsQGEIYgmWC3+w0YmO2zmbZhL1UuVe2dWCgsfja5E1KQ7Oqz1nWpSQlPHhxaJ9iF0u+6CHqRy1\nm7yoWvuEoZ+EwFRFoG+PNlXLSeVKcATq/NL6Pa3XZhh/NifJoRt8HgRvOv4rO27Ks03/+Lyv5tum\nx/liiSlSs+wVrCr/VBKHcVenr3lX3Ssd/lZ2neOwRhErFdW64PxhH35i4G3RWwvtM6q6TqdZczPN\nuRCRYcnJtRXjJNmUZtbZNBKUbEwz621TBKjhFQNDo8Cz98tNJ3WzNuuv+DKnx/I2oEikcHjwjTAU\nuoz63+xqe+mkmGSc/m83WEqZx84Ryoh5cDZa7s1V5DxyMvzkRxElWrgW/TKFRAuMt/NI0fqfXGZW\nIwIvU86oosNfrT/03iPhYy8I9gzjh3/Jm3qI96ikxSQSe3NznO98e+X3X8HcYPGDW+yL8kaYknK4\nO/iNU84KT7hqE/P9QwchkDgIkMlo4tQ1lXS4CGCHvQtDZzZnEhlHDVcChRsxAmz83DNc1YbSqeas\nW0o/1StHafe1eEMudVqa94XdHb6W95t3Y/HhmY4j0OA2OCsbXJVqrTHag2DppiyLwdEjypRpNQxk\n0apwUE4uyVqPtFhIdUChRdGm/idvxaMU4IHBF78rnd8n5C8R51zbiyT9HXsEgHbqljldOyskT8h5\noMYy88L2d2Of2GglRjfmyHnkZPhSRxElWrgW/TKFRAuMt/NI0fqfXGZWIwIvU87oovN6k27OdXLD\nUanlbGjX7/VrP8tbUnonmbRec3SCxzSWwne/VxNq92D1oLk0faSiUZwGv9zglwrMMA7CLxxxU7SR\nFobCEwIjRIAI4QgBo+BTHQG8BLaeexilzLIWZFvz1Ree+jXVCx7f5ePB3PC5kElFwb6IUBVKSlhb\n0AI2B8c2ZzvKQnKoxVt7pqOs3d+srTOsdZbLA9n9IqJBMLxbv03PG9LN2TNTF2ON4szURWnmbGYO\ndhFDvJDypDgDGmJasW7J7aHdvw/t+q2QUcqlF9PQJlZ1p3CWkrS0G+c1P3HIf7ZVcvp1jguWjbFK\nlOQSAuOFADPegP4tJV+/7j75lR+Gz+zgTA7Dus/znIA78dOxKLzsfr8OqEA3qDMbRgpPUFbOesJ+\nWd6Yyp5fevGPFEAKP6kRIEI4qauPMh8DBBTeE/KadJal2etFQc+0RjRJGAOYL1ckz0HpxzzZ9FrB\nQWCmNXdO+lI2PkGd4ZuNYZRGT82p9kPsQr+jzdtwvO2gy98ButjqazzZfhBBsN0i9kW8pviOFEO6\nQWfqF2mSXOAFrGQTZ22WG09I53djW0Lzxx/m9MRSYlR9TCntWD2t+YnDgWZnsMlFhDBGQJPYCUOA\nLbATxdyF+jX3hN76H7n6oDzzKiFzpsoG44MSKpy7rNFV1mDMtBly7KN4cfsl7oQLPlT5DakG9ZUR\nH+WasCqnhBMLASKEiVXfVNohEVCXWrHpUDAKUArig0MiNiEBVDteNm0d/caG81G13tSqU0khLuTY\nCvEZkNTjlX+1t+FA05vuoBMBfGFPl78NZqj7G9/CB5teQAmZYkrXCUadoMu0aMtRNGoZneyEADBE\nouDEzMDMkqJf/jGls1burg/u+YN+9Wd448T4rB8iu5P9NnN7y1tmpBvzk7AjtvNwrXl6Gs/WKsd7\nO5nswFP+xwsBvAkFNvnGK7q5N4bff1ruqJJqDvJp0zlBHzUpN17ZiUqnl/gpgZrOpscOCCJvW5Rr\nmTEas22fJB93h+wiv8hhwAtkYssVVUQ6JQTGAwEihOOBMqUxiRCoc50PyUH2KtBmCOmdEJeVp1ZL\nv7q56AIbiw8+HsfdDEvuDdPvihQRVqbV3WfLO4+91/gmOOH7LbtTTZlG0WgQjcuzr5qTthS+ahjt\nxEQBDjYSGTyFiODxP+nJGKbw9Ru/5N/6Dan6gDjjKiFvgUYVxz9DUzpFNjOBf7n3rD7/b68636tJ\nv36u6DCxTiR+W8iUrhAq3JgiEL18Ea1av/bzwW3fD5/YJs65TrDC+eqEdYPMsp+XMTUYqOmo+/0e\nz6kW68zM9NsWCNYR24sCsKDCtfil1SkGM3NGO2GFGtOqI2GEwHARIEI4XKQoXIIgAG8lYTlk1Flm\npdKO3glS5xeKmWbKSDVmzUtbfnXRB7ZXPXu240izp0aBd32Oq3VWvq7/uyjoZqUuubrwNnWd4YWI\n8Xwm5rOWrLhaFXcLY7Lq/3jO8OTNm7k0w5Dt8Je3eU41O1YXMT325C0M5ZwQ6IeA6m2LF3PnCQXL\n5NrD4RMv61d8YgJbOdgpnjKp21f7q13ek83maanTvn+tLoVtRj8Kv8rPNfnQQTr0vEDPbb+qpwtT\nHoHB/e9P+eJTAQmBARFgOqBJvH5swDLRxWEgoMAsiuOMOhN8zHx0zpceXPfHX25+8f82bZ2bvlwv\nGjxhd5evbVfdtp8f/Ppr559q8zUFJP8wpE5kEAzgoKUyLP84JvFD+x+V3a0Y8dARIwR0dlPK1aXY\n+rwZGxKGsf0jgR0jpEnsxCAA7geixZsculnXcLwgnd87cdpBFQFsPOgOVHx/m/dEE9yKljx0I9gg\nyyNbPz5iVveL8x49z92QgeLR2HhiGhilOoEIkIZwAsGnpOMWAdigSFhOlmIazTqEuC0VZWxIBHqn\nuiMjCfWE5+5d/GCHv6XGWd7uazzRdqDOVfly5RPbKp5YkXPV0uyNxUmzLTorm0VQE2AkgJkKRoQM\nmWwsA7B8KOLCD2DBj9xyWjq/R7/gtgkew8WyuBMrWzAIjhWF3e9Wes+1dL59LmXzrInND6VOCIw1\nAj3dGm/P5G2Zcus5ueG4mLtgrFMZQh6muUBL5VDYc7Kp6ZH9vsp224KcvPvWikmw09Y64hH0v+q0\njdIZhB8uZaZNV2rVD5E83SYEpiICRAinYq1SmS4HAfV9F5L8ta5yIoSXA+QUi4vFhKnGDNgALs7c\ncLbzyLmO42Wte/Y3vXmi/eCM5PmFjhm5tiI0mDx7MdRC4IOMFMYB8erJh9EiTlsptZwJH39JV7SK\nT6I9l2PUPHlzcap9aV6goav5mWPm4nRzyYg3Q4tRzkgsITCGCAhpxWLhUu7Ua9jYRrz9V2MoeTii\n0K15K9q63jrbubMy1OaxzM7Iu3edaRpWM47OJJ5Rwnc7ArCnsOkEu04dBAwnHxSGEJhCCBAhnEKV\nSUUZCwRgB4g1hDZD0qzUxWMhj2RMJQQwUJDTzJkrTZsWZ667seTOV84/ub/hzaOte0+1H9SLpmRj\n2oKM1XaDoyR5bq5t+gjmqGMIEqbSMUgS+eQ83pQkt58Pvf8Pw5X3xzDBhBatCAZdyqZZHW9XBGva\n2187lf+FDQmNBxV+iiIAq1GhYGn43Ducr2v8i+iraD//4DZs+ClJcuo1s3I/vVKfYgGd05YUjrTj\n1fjfzo4QZvHyTGKOCbvS00EIJBwCU5AQMlsCtnSjx36cmW6xfoKmfBKucY+owFiZjvDdwY5TbYdC\ncmB22hKjMGn3oBtRySnw8BFgtkhsbYnIi2adFZ+75j6wqeiD79ZuO91xJCT5mj21De7zHAuDrQ15\nbIq4PPvK0tSFVh3mnVWvd1o/xDqkceqRNL8mStivSCExZ164aq9Us19B9lifOE55GD7Akz8kA9VS\nmpH7qRU1v9jpOtrgPdtimZnBKDkrGwE++WuYStCLAG+wYhkh53dJ5TvFGRuxaC/WAy32mlYU75nW\n8z98Nez2mYpSM25dkHp1Ka8HhdP61NF0rNrjua8raBL5OTadSM9pbxXT34RCYAoSQliWM4stHHj5\nsr9spE/v4YRq1qMoLF4jaCjuQLc71I32srnow9RqRgFjokVBV5NtKbx91n1oP76Q55/n/tLirdML\nBmewyxdyn2o/dLL9kFE0rc3bUpqyEAal+fbicbYk1Ro2pzeJGaV8wCfVl3GhkNJew6dOY7Nmoxk+\nJVolj6a8adfNaX3uqK+6s+vdCliyCXodOZgZDY4UJ44REAuXw/hcaauUWs8JJUwTHvOBVlh2Hqxp\n/NuBsNObfEVp3udW69OsGOCpA77IIu4RQ4ZsN/ilkKwYBb4IO06Mcx894vxSBEIgJghMQULY6mt4\nt24b9pgGYJitxXHbjM+Y9daY4EdCpwoC6htFbTFqidIt2VOlZFSOGCLAJp16B0FQGN4y45M+yaMX\njM5Apzfsru4+A/czR1p2v12z9b2GHammjKKkWQX2krlpy1PM4+iviNmMCkJKoRLwcKJO8XeFT27T\nb/gXZjoR+yFcDNGPb9G5966r+e+32l855VhVZJuXG9+ZpdwRAiNHQOHEgmWh5rNK82nF3SrYY96n\nNT95uGP7mWCrO+2GedmfWK5LMmtckA31Lq8rO+4K+WXFLPDzbPrRM8uRQ0gxCIH4QWAIQqiq2nqm\nmNmwh40feoc/bHoZ/9iYQjWR0nZc6r07cUWEs4e99a8Hwn5sV6rmgt9c+GEihBNXIZMrZa09q416\ncmWccjsxCEQ6RMatrAaHlXMgI0lG5t5gRsq8oBTYUnzH9upnz7QfqXdXNbirDomm187/fV3+9TZ9\n0qy0RWmmbDaWUTtTdUyjtT3NzCFK+GWUrmeoJOiFzFn6+bcED/xNbjqpdNbyKYWXIZWiDoqAwlnn\nZSevn9724vHqh96Y++QnJ/7VOGh+6SYhMGIEeE6/7CPhQ08pfhcMRzl75oglDBqBjT9V63rtpP53\nu9teOaWEwhk3zsv+5Eps8aLFHosni8cCQrekJOn4PLPIRrVj0/UOWjy6SW0yUiQAAEAASURBVAjE\nGQJDEEL1SVP2N779j9O/DUg+QTW/jBShNHnxvIwVK7I32oxJF+bJI7cn6CTfMT3Lku8OdfnCXl/Y\nja6E9SZ0EAKDIqCNyGuc5+pd580itrXVXgpj8a4ZNF26OYUREHmdWafLs0+/e97Xwfr2NWw/0fpe\nlfMszJJfrniMTbCxdYZLsq0FufbpaHjglAW2Yqw8hLJREODqDlNaY7cdFhZTh7y8xcEMoqQwJ8GD\nAh2xQgBVKxj1aTfO9Z5pxpKn5icOZn9s2eXpMGKVVZJLCIwWAZ4tI9Sb5bZyub2Cz5h+mWq6vtnA\nS5gZtStyIMx0g9tO6Uy67M+vSbtx3pjbuvskRVa4T+dbNQraNyf0mxBIAASGIIRAAHSqzdsQloIY\nGuPpxD8NFpyVdx2p6D5e7668fdbnTWK82GQW2ku+vvLnYSW0o+r5lysfTYBKpCKOBQIYLYf9MPCD\nrE3TPsRU4UQGxwJXkhFBYE3u5tW5mzt9rXsbXu/0t3b721t89afb3z/V/j7TEfbOW8Gm9Jppty/K\nXMscNozpwZtTOBm7pZMPvTGFdUBhrO4UU1GKfVmBr7KjfdvJ1M2zDZm2AcPSRUJgciLAZtt1c68L\nH3lOcbWwaSZxTHfw49lTFGhytb14ouO1U4JVn33XirSb5sYQK8yaqdLp5R9DkEl0vCIwJCFkw+JV\nuZv9Yd/u+leCcmBZ1hWz0xZj6NLirX+rdqskh8uad19ZeEuBfTq07HgFgii2+ZpPtx9u8tQGZB/8\nK0xzzCpJmZdqzsTNnseN0Uq5xdtQ2XUSwbDYBhHt+uRMa8HizDUmnVl7JNHXuPxdde5KSQljwJRh\nyc2y5nX62k+07693VekE3Zy0ZXPSlvZMuypceefxc51HOwOtDn1qcfJcxOoPO2R2+JrPdJTVOsvD\nShjbSWdbCwVeV+s6d0XBLRkW2p6rP2YJcQWvATTvOmcFSjsrbQkbnBMjTIiaH49CRmYX0EWmmjNu\nLLkLqXb529CLdvhb23yNja5qk94CQ9Mz7e/XuCreqHoGrm7BCQ2iUbVe6jHNZ7PliNnT1bLudmQD\nGPhInb6eO7pVdrdgAKekl9C4J0bVrwLLvuBdpv210+HuQOvzZdmfWCFYDGxilfqWGOFOYscVAbRj\nXsTmE2XPYYd6LhwcE0IIlsls6PHF8a7DtU1PHXYfa9SnWuBCJuXKmbEonyss48O0HzioT4wFxCRz\nMiAwJCFkhUgzZ81Imb+vcTsnB6YlzVyVsxkPakgJVHaeqnSexDDaE3RiaIJnGAfW771y/nGYa4ak\nINgXrh4Q37IbUm4u+cTi7PXqcAZXlbPtx544+Utv2AXdo8xJeBAFXtDzxkNNOz+94BsWPTxHKbi1\ns+6lXXXbwB55XlybuwXZeO7sn7qCbaFwAF3Rgca3vrr8p1nW/LAcfKH8sYNN20FcwQPhFN7U8Cpo\nXv8qaHLXPnL8Z+2+xqDkhz0WQoKystQ5rsgxkwhhf8QS5AqmKIJysNZVmW7OTjZiL2nWmmncliC1\nP77F7BlxJJvS8VE7unBYRocmCLx4VcFtvznyIGbBnj79u5cqHkP/ibzNSYNZaf70lAX5bG9D1l0p\nvMwrAuLiBxs7DW8Qg1CKLUM/Y0Po8D/kljMYyXE64/iWPeFSg1Yw/Ya5TY8daN92WpdszvjAQuZx\nlA5CYKogIKROQ1Gk6oNc0MsZL9dSDD0aTOXx7g3DgmLbydaXT4TbPeai1Nx719oX58UIs3q/1BiQ\n0JPOs2nPJutWY5QWiSUE4haBEb+ZvCFXh78FA5HqrnO1bqZOseqTwRjB8RRF3lX36ovljwQkv07Q\nOwypoiBKiuQNOdt8DX89/p+f5L69OGstiB+GMXCuEJR8JtGclzwX+sNAOFDWurvFU1fVfQJO+dbk\nXqtNoeK5RFp+eIjhlLKWvYea3vZJPmzqFeAN/pAnqITg6l1Wwm/XvLC7/uWwFDLoDNA0YoQEqhmQ\nnP1xf6XyyUb3eVHQr8zZnGMvavc2nWo/3O5vhmNA2JD3D09XEgQBDKrRgDGbkGObZhAN7J00hsu3\nEgREKubIEcC4Qyfq8NEGIAbB8IUlP3rk+E8b3dX+sBeNMsyFd9e/xvTV6J94eXba0hxrIXrO1XnX\notcyikYda67DGr6owxxeKNnIHd8WOvCYULxGzJw18ixTjBEgAMyz7lzuLW9zv1/X+NcD9qUF5tL0\nYdbXCJKhoITARCFgtInFa6Tze+WAW7xsR6Po5zBk9Nd1Vf/XjmCDk9ML1llZhd/eZMxx4FGK0SGh\nmwUTVfhVKUasWGRscFgdaoyyQ2IJgYlBYMSE8NXzf8cH9AzzONCq6QX9+rwtScY0ZB/Kt/ca3ghI\nXr1ourLg1nV516WY0mAW9SZcrjdCd+d9ufJvUDDC9zoeNmzMlWPDsMaKkRCkiQJWC1terXwyLLOJ\nITyO4JcY6FxRcFO+ffrTp3/tDrnafPW5tuJbZnx6QebK6u7yY637sK9XYXIpaGRZyx4oCU060zXF\nH12XtwUT7fDfsK3ycT8zRr3oaPU0oFtJNWUuzVoPZw8Gwbgu/7qdtS81e+rSzVkXBaUfUwkB7WVy\n6VeK2v/3rB9AuUk5OJUqP77LAp0fJsRZHlV9H2c3JH9x6UN1rnKsM0RD7Aq01boq3MGurkC7N+TG\nmkN8EPjt2hfz7SXoHnNsRVa9Pdc2Df0hm2676ECLvzC0wRkSElOKdPNuCJc9H3ztIdOHf8mbky+K\nQT/GFAE2tOSVad/e1PT4odatx6t/vL30f27VJcFtFR2EwFRAgMdkli0LM/fSyVfEjV8YbZFYT4Vp\nfM/xhs6dFV1vlQtGnWVWpmNFYdadyzRTnQsd2WjTuFQ8PKJMOPtPdkGXAomuT30ERkwI1REFGzez\nsQXDh6/qPtPgri5KKm321rV46nEpz1q8qegDZr0NDxfGKFcV3YYA5zqPuIJdCIwlNAgD/lbdfbba\neaY70CFzMtzxgQpKSggywwp09+o/jnMYU2amLtQxq04ly1oINoifoiCUps7Hh6WvcNh4EB8WwFK0\nPv86s86CZ3pl7tUVnSfKWnexMFFHnq243lPZ5m185szv0825etHgMCZnmvNnpi6eljSLzRGxskX3\nPGziSOUH0RejJNJpvCPA2imrRO3DBt2sjvvkml2+cBUtoG+APuHpJyEwZgj0miZHOh40vgL7DHwi\nSaDzRFfpCbm7/a0gdUeadtW5K851lmHVNMJY9TbQwjW5W4qTZqdhC021gfd00xe1djUFvUk3+xq5\n7ojcfCZ8/EX9irvUINTgI2CP+QkPj6Opm2a5y+rhcbT95VNZdy7FJAB700SqfMzTJIGEwPggoDMJ\nGaV4YUq1h9hQqSfR3r9D5EF976r9Vcdb57reKfeeaAq7A6JJl3bL/NTNs4x5ScMUNEQ6g952sjWE\n6hjh4sHfoJHoJiEw1RAYMSG8rvhjq3OvAQzuYPf+xnfeqfvnma4y58nOb67+hTfoDsiw7eRybUVw\n1qJOd7NXXpIh2WFIwhlM8rDaEGxNVkJ/OfbTyq7jcOuSYy2emTo/LIfqnJVq33BJiNNMWZgOFwRM\ngUd1ETznD3uwDb3A8VnWAsYG2VtWwcrAbFtBWWtfaVtKPtIWaKzsOgFHDi2+BjhZwBvZAN/JhmQs\nelyZcxX6M9VxQ08SITkENw+tvsaLEu0rlX7HNwKK0hVWShSX6NXvqTMZUOf9xmG8Iiebs7V3QnwX\nhnKXiAhAbYh9C1Fy1nIVbkH6qpAUaPLWnel43xXohglGeecJ+Mi16Gzz01etz78e02faKsMBRzhC\nSoFYtFJurwyffE2cuUlIImdaMW9UxoJk+4pC3/mOln8eFZNMaTfMjXqNxTx1SoAQiB0CfGqRkFIk\nd1azJNSXaL8X7MCJY1YE72J4jmn4095As1v2wfEEl3btrJy7VogOI2+Az1Ks3RimsIGTGM7VBr/U\nEJDn2cfURepwEqYwhEA8ITBiQmjR21LMGXiTQfUHjwgVXUfr3eex3KXN02TUm6Dowyqsdl9LSAnD\nCygrqcL5wj6/5NPInkFnBt063nLgbOcR3FyRffXts+81imZ0Ckdb9z5+8hdsQ/m+R897k43icTDG\npk4o9QbTCyZ8grK/K9AK7aKOF3FbhulpoKM3yIW/2KH+zjlfgWtTuCR1h5zVztOwZcVJ0Ne8v3FH\nacoClE7VIPVEgU3svPSVLAcx75QuZJLOxhAB1lYUpdYvVVS3lViMa/KTkvSoz55GFUkIE/ad/pa+\nVyO36YQQmFAE2ChL7fnUIRSHjQrRlTlMqTNTFqFHvbX0U1vP/eV0xxFXoOudupfeqXvxw7PuXZt7\nHbPmGjDbvCDOviZ85g3F3S6d2c4v/zguDBiQLo4VAjDmzfn4cskVaH/lZNPfDuqSTElri/FCGyv5\nJIcQmCgEeIMJuxHiVSuVPScu/JA6Qhs6L5InGGhyNj68z/V+HULrHCbbgsKce1abC1JhqcUeDGZL\njyfkovHe0HJHHkJivFNZnUyEcOTYUYwphMAQhFB9Hllxe7TpUcPooBQErfKEXOy2qmhLN+fAQyMM\nR6tdZ/Y3vIkNJCx6OzzKwBdotfMsnmqL3lHkmIHgTb5a7Rk3iCb4+kX0QNjnDHQqsqy9Hlm6TC4b\n/LCQjI1pJywnuIUA7Co6Hl6BT8hUU3qzr67WXV7WvHdBxkpoC892HjvZdkALw+KokhDjudMPn+sq\nu2H6nTeX3g2yF5LD2Gng4WM/dgY6QAs9oe5UMzxMRh/0yo5GY/Kds4aEOtQGXmgx6u/+xdACsFal\nNrj+AegKITCBCLAOEEfPn6jpKbU9Ww2OO+fe3+ZrOty8s8Z5rqLrxLNn/gAV4ma2o6baqNk3gqpC\ntI7VkaObc13wvb9KFe+K01bzmTHx5z6BiMVf0pjIVPLuW4fFUS1PH2l+6n3r/FzQQjWfGPf2WfwZ\nf9mnHBECl0CATykSUgvlltNye7V4wWq0X+ieYRgXdvndx5q6d1Z0vl2OPgmeeK3zclI3z7Qtzdd6\nuD7dXT9BY3kBPu5hL4r+kY026SAEEhiBIQghGz0rXJXzHNyHhiQ/zg82vl2Lvdp4LhgOYBMtKOUw\nyMi2FiWb0hxcyuLMdW/WPBdQ/cccb30Pu0d4wx6wQXhEAMgb8m/MsDLHwdmWAu3RO9q6xxXshKM8\nOCYFk8QOFmBuJ9sOYnP5+RkrYVC6p+61KudpuAxF+Hrmiv23cEIj8vrFGevmpmMHQjbWybEVzEpb\n3FbX6A954eP0SPNuvFtru8vBMLVx0yvnn8CaxjzHdJQGeYbm8NXKp7CacXryHJiYtnmbsKARcmDa\nCrsslYLi9YwLdBAChAAhMBkQUMcy6ZbsLcV3YJ3hu7Uvba9+9rWqvze6a5D79QU3THPMVver6C0L\n5j/gtWv+jXLjCal6f/j064bUItqCohedGP3VmDmHnSegEvGVt7U+W5bzmVVqYvS+iRHmJHacEOAz\nS7nyd6Taw8z+5lKHOqvf9ea5zncqPCebJHeAN+nSr5+TtGaadU42XBT2znddKn5MrmOnsuOuEJQG\nRRaykogJwiR0siAwBCFkU8k8f7DxLaxUgVId/KrGda7GVa5OMYOjsefbbky5Y9Z98PsCErVp2gcx\nMnm96imsMDwBBV2PbSdvEMzXT//4xoIbBLjy57l56ctnJC8s7zrqDnaWte5h22nxfIopC7aj2MAQ\nNqjvNe0oTV0IJeQ7tS92+puhNxSwDCzQ9n7LLiSNdGVZQgBYpSJRo868pfijLZ6G0x2HO/zNHf4m\n6A0FQUy35HQHOkOyH0lg9/l8R4mqXUR3pXQGWvY1vIHZdDjlgzObkByECRYsrBzGVDgdpsnaydJ8\nKZ+EACEABBi902a/FB678qAfhmNS+GGGdQY64ZNthxZlrd487cMw4ojAhS6XNyXr131OqjkQPvmK\nfukdvC0zcpdOYoAAXlZsQZQuyZx1x5K6X+1q/ecxORjKv299RHMbg0RJJCEwHggI1kweq4SCHrnm\noFC4YkBW6DxU1/jHPYEWrBUMIU+pW2Zn37VcZzcJxh4mxkzDxn0yHkZqbuxKz/MbU2lT1vFoKpRG\n3CIwBCHE2wuUcG768vKuE2BW7HGNKoooGGalLsaegTn2Qm1qB4zuppKPLclau7f+DWj2fGGXTjAu\nSF+9JGs9PM30WOUpiijqP7f4X9+ufvFE+35v2J1lyZ+Tumxx1rrT7YdfrXoSCxFLkufrsWM8L8xP\nX3Gy/WB0okgf5LMkBQF0WnZw125Ium/xDw40vnm4eRe8xaSas5ZlX5FiTHu54nFP2Ik9u6YnzUFB\n8N6dmbrIYrDCfV+nv62q+ySkwVXDtKTZ2Hwiw5o7IRNUUYjS6dgjgFkAJpTVPh2EwFRFAJPr6sH+\n8Hre+NlF332n5kV0uSfaDlZ2nYSpRVnrvltnfApGHJhB652p43h7FpzKyGd2wHbUuOkbrIvEPzpi\nhACvVhPPJW+YDqu5pr8eaH/llGgyZH1sKfxnMFbP0Cf8Y4Q+iY0ZAphEL1nLv2tTgi4u4GWjRnWS\nQ8Hmzn6MHMOhTm/jn9+DYhyT9WKS0bYwN/czq4yFKX1a+3iTQXVECw3haXcYik0jWW3HrIGQ4EmB\nAF5Bgw2UmUqNbcSAaRt1WM1moSOvK/WZZ8995Aq6AVWaekH70voF1j9cFAwvPY1ssuiq4af6LuxV\n4THsemJeEB4NqDbKV4c1PQFY0jhV09FywcL3xu4ZAKkimGBNOL4RQ+2TejPYG0ENSV9TAAHWVBSu\nzi9t2NN6babpZ3OSHLqBO/4OX/MPdt+zMGP1XfMegMZ4CpSdipC4CKidG7o3Z7DzSMveY617q53l\ncMiMbVqXZG2cmbqgt8fjwuf3hrb/VPG7TJ99WjAlR3fUiYtejEuuvSjBBpsePaCEpYzbFmbevpg3\nMD1J1Bs2xpkg8YTAWCGgNujA01+S2yr0S27nF9wVanXBa2iwodtf0e6taPNVd6IvMmbabQtyUjaV\n2pfkq4MzbRw2VpkYsRztMWRjg72tSxz6hxelpOrJanTEMFKEKYPAEBpClZWpI2r1yY1+V/WMN6KQ\nwNOlkj5Gy9hdlUsygtU3aA9zwx2EV59JsE5wNxYRVI0Fx6n2u4ev4dJFR4/YKJKpnSIuG+iA8THO\npyatymECezOi3VUv9LJBllpkgMRC0jFlEGDVzSk7OwJTpkRUEEJgaATYXB/rFGEGv6HgBrjaOtq6\n783q53fXvwaHWx8ovWd+xgq1i5aFtGI+rVhuOCode0lYedfQkinEGCGQfsMc0Wpo+MOe1uePKiEp\nZctsU46j56U1RkmQGEJgPBDgOd+5Np9rQajW56vwKq+/GWr1hFrdYWeP03hzcZptUV7ymmmWuVmC\nOiGrDiujR5Tjkc2+aaiDw2qfhH4y0yjqtGFi30D0mxBIFASGIITa8xpFuy7govGs6Cco6uFWY7AQ\nKu3SuFdUVHah96ImvDdk9B0WoTfUhci9Zz0xen/2hI1ktVdg1P0oaZG7mnw11UjUi6LQj8mPALNz\nrvBKaJ9XpBrsbAYQkwWXblmTv8BUAkIALbynF2ZtHSu0M9bnXQ9nXa+cf/J0e9mjJ/4b5v13zPoX\n+O7C0kExf5HcfCp89k3dyrvowRiHxhN5V8J2FMnV/3Z3y7NHu3ZVpN0035jjcCzL5+A6TeunmCEp\nmD1VyzhUCyVxAYHeVscm99XxEvvb58XpPFTjr+lqebaMNdKgJAd4LrxUljCqrEbj5fV6x+pp9mX5\nScsLBItBwAbAqg5cS4M16Dho1Cjeu+0BKBGKzKKBPXN0EAKJi8AQhDBxgaGSTx0E8DpTnCG84GQj\nW8Kj+jCaOqWjkhACw0JAFEQslv6XJT/689H/ONd5whPs/uPRf99YcHOurXBJ5gxeZ+a8nVLlHt30\ndcMSR4HGAgEwveSNJdiQrfWZI4EGF7SFbNityFm3L7YtK7DOSBcsRiKDY4E0yRgBAkx9x8gR/jIy\nCB8wclgKOwPB2k7XkTqNyPmru5zv16K5wteDYDPgRJdqU7obLdkGx7oFloWzbfOzIEXjWDJr1iPI\nwPgEZYZkPOeW8EeZZdWb6EkbH9wplXhFgAhhvNYM5WvsEMCb6JlGL5YHJDPH1mzKkw5CIPEQYOMd\ntP675n3tbEdZeefxXfXbdta+YNJZA9M/tlynE/1exdWceLBMZInVvkiB7ah9SV7L02XwwBFscXnP\ntLQ8U9a27ZRjeUHy+ulYdqVLtkxkLintxEMAfUWoyxdsdPqrOryV7TABdb5XpcGgcTw0XWOmA+5h\nBKvBvjgPF21L8vx/vF5ILzFsukFIz0ZXw0IydxFsFraXG8YRlIz3csq7HQGTyJtgOtRXAxpHWaWs\nEALjgAARwnEAmZKYYATeaQ9iJj7bJOYyP2Ls1TTBGaLkCYEJQYCZHipG0bQgY1VpyoLpyXM7/S3P\nnf3j4aaduSkpBbWd8AnBOCMzso7D8duEQBbbRFVbUIa2MSep4Csb5WA42Or2V7Z7TjV3vVPRtbMC\nChlLaaZlRnraDXOxf7c2aGW1g1piddTTlbHBN/Vqsa2rqSBdNQRlzQf/1XOcsHbU+1LEX85X2eEt\nb/WdbQk0ujA9Eahjm0jjEEw6x7IC88xMtR2yK/p0m3V2Ft/jpE2VwwSoFqaRpqklFpeNU3v6avxS\niUWXqzJCVio6CIFERYAIYaLWfCKVu9ITRnFnWvWlVr1qApNIhaeyEgIXIdAzNDPpLIsy13QHOt6t\ne7nOVXk8HC4AWWyvkjuq+ZQilXAIxDEuQi72PwSDzpSbZMxNdqwqStsyp+X5o107zrkP1bqP1MMl\nafrNc5NWF5tnpPeMuZEflRaqI3DV9IEqLPZ1NNlT0JoM9nLmOVE1CWWMUPYEO1475TxY66/qlENh\nuDiSQxInY9tMzlyUal9WkH79XLYO0Iw9v3S8OKCbbtax9DRAdUZp8gDFGwUBn8mTYcopIRATBIgQ\nxgRWEhqHCOh4Ts8UhGwiU50hjcM8UpYIgXFFwGFM+dicr7xU8cg+sfqaZr/e2Sx31utSCjUl4bhm\nhRJTEWB2dhis63XGouTC+zem3zzPeaC645VToQ5f4+PvN/+jDMalhmxH6uZZokUv2k1aJJ3DpDmV\nJRQJgcEQAGuTFAlrAn1h2R/013VhrqHjjTOKL4T3It6NOrteEHW81WgqSLYtzkNjM01P0xSI7MXJ\n/g+q7DPYpbZyGBoIGSWDZYPuEQKEQPwhQIQw/uqEchQjBNTFDOx9pq1tiFEqJJYQmFQIzEiZ/9Xl\nP9lT//q55j/PaW33nH/bVrBENJg1W7Le70lVpMmcWa1/Yvo+pmZRzCXplulpqZtmdW4/4z3XClNS\n5/4alK/9heO8UYchOwvEcUkrCsUkMwIbsmzw8XExALiPQxvHsxF9v7t9rlx8n37FOwL963SAHAeb\nXdgEAtsD+huc/so22IUGqju0loHQltIM0WEyYJ/AxXk6q948PV2XYtbksjCskWGeYmi7ZN2czeEj\nz/dtYgNkhy4RAoRA3CFAhDDuqoQyNNYI4I2G0RX77tEM0vhnrCEmeZMUgV5dOb8279qmlXrupf+o\naTpQduLn1876dIY5l9ESFkIbGU7SIk6+bDPIeypGVcfwvD7DmvmxpZLT7y1vl1x+79kWLO7qfve8\n871qrXhw+CHaTKaCFF26RbQYHCsKtevY/82Q61CnwNg0GBvc40vdoFLbqlfV+UTXr2ZBgWDUS2oQ\nxvk3c4yiOsuM1FePTahWga4DteFun/NgTajNI7mDoU6P5GRb8qLK0TaMuQ7rzEx9lt1UlKKzmfTp\n1ujSahJ75EaaZHSIAc57Gu4Ad+gSIUAIxDcCRAjju34od5eNQI+JKF5r6mjosuWRAEJgCiIAupCZ\nNsfHcf6w72jLvjPuc2tyr91YcBM8CMKdxBQs8CQsEuxC7UtzeUVIWjNNkWT5CxvUQihYXhhq8bS9\ndspzspFZQPB89044B2IHc/ihY1uv4rAtyoUiCAwQHWHGhxZqF/vwPvSWrKekUX0POpPhDyoritGz\ndYDVnZI32PHKSVyWA2Fe4qRACCVBzQt6EY3HvrwA7mFEq4ETBbY3oChES5gMZaY8EgKEwNgjQIRw\n7DEliXGFAMY3f67xCpxiHXgpfFxlljJDCEwMAkwZKIiC2THP1V1lEfYJ7a+efyrdnL0yZ9NF482J\nyV2ip8rG/OrMluoXUeEN6MtE0azXiED2x5aBwuV8eqXr/XrJ6Wt76aSKlyJjr3B/CNQRfaAckLre\nLscHt0D6Gv60D3+16Ok3z79AC3EJfmhzHLZF+Txbck1HvCAQqO1yldX3yY3sCXXsOINKE3qrkLUT\nRu8EVB9aiKATxTSTrSAFtqBYdwpPoapNstoI2DOPaNoUAVHCPtDST0Ig4RAgQphwVZ5wBcYbj+fB\nBtelYvNcOggBQmBgBHhLqn7DF0J7H76xpbVNz5+yM80Ss0bTeMPAkejqOCFwwY3/hbNeEoAujuN0\nSeaUK2cgN+m3LGBWhBwXaHL6a3r2DAg2OQM1nYzuQQl8vl0JMQeSCOM739724nGcaAfbQLz3nP7G\nIwKMw6mGxGrmUInQGxuy7FrN4hqqz1ScJugF2H+aitPx076qUG0gF0rDqlitZk0Qu9snxIWwIz9D\n4wu4OEXGlvUjj0wxCAFCYMIQIEI4YdBTwuOGgDY8GrfkKCFCYFIiwItiyQapal/43FupqtNBNkzE\nw0MkYRJWJ2rNmO0wZif15B2aI3AAlU1gZzlZkth1hQ80dHFhpieKBJM8Qe/ZVqw3671Ef+MFAcvM\nDH22HcpiZhisHQon2Az6NLb2r5fTKYa8pN69AVVl4YXajXlB+ORcNDO5pVwJ+3m9JebpUQKEACEw\ndggQIRw7LElSXCJQ5ZODsjphHpfZo0wRAnGCABtk6rCsSN+rL+BPth1akLHarKOBXZxU0XCzwYg8\naEMUE1DZIJzJMIJvzEvWPMpAnHlaKqOJvSFZLEVJuXomu0ZHfCGg8HoRWjeV1PcQQnWus4/XJ7Xi\n1RsIqlbthfqNdYHEgmUsZyEvxzTQdBAChMBkQoAI4WSqLcrrSBBgL0MMg447g35JNov8bBu19pHg\nR2ETC4GeISZjgwp3VcGt+7yvVTvPBqUAEcLJ2BCi7ApZ9lWSz6pY+89+XjgunLNY+G8kY78L6MTb\n2YXa0qoV+Yu+pGkPtQq+6Pp4lIMX9OORzBilgQFCQMIYgX3UFbXjx5zHqAQkhhAYSwSo3x9LNElW\nHCHA+CCb+z7uCvtkJcckFpqJEMZR/VBW4hMBPDVQH+k66/PtJe2+phrnOaZxoIMQIAQIgamFgDMk\n/6bag/7NLHImUaWEU6uAVBpCYEQIECEcEVwUeNIgwJbF8JxLUs57QyGF30geZSZN1VFGJxIBMWsW\nrzMZmsvnp6/AQ3Su81hkvdJEZovSJgQIAUJgTBE47g4/WudN0gufzLfmmsQ+SvUxTYqEEQKTAAHS\nmUyCSqIsjgIBLJaBYuOoK3TUFYbHs/WpBtWA9NI2NKpGkdlLqX40tBU4NBQeBfIUZVIjwFvTOfiq\nD/ltTRXq06IuSZrURaLMEwKEACHQDwFPGL5QOYdOuCETa0r63aYLhECCIUAawgSr8IQpLtMQckqN\nV2oKSGtTjCuTTIMX/WzXsR/uvkcLg5iYLFSX6g8eie4SAlMNAaF4HWe04dkRZVngxXMdx8ISOZyc\narVM5SEECAENAbzuiQ1SYyAEgAARQmoGUxMB0DmvhAWEISg41qcaFZ7tzjzIcaBxB88JVr2j0FGq\n47EynvlyGyQ83SIEpiQCUK2zqRBZztQlZ1ny6tznd1Q/PyVLSoUiBAgBQoAQIAQIAQ0BIoTUEqYm\nArAXdYWVHW0BFA8LCHlFUHWGlyzs2c5jOl5ckrV+Q/4NetHYx3HbJaPRDUJgyiEgJOdjG7EsX2h1\n7majYHqvYfuUKyIViBAgBAgBQoAQIAQuIECE8AIWdDaVEIB275E6T3NQuirNWGAW4ThRXVR4ySIi\nvF40zUxdaNbDXo4OQiBhEeCFguVYdquXwqmWLJ0gaJtbJywcVHBCgBAgBAgBQmDKI0CEcMpXcYIW\nEBrC31Z7TAL/oRwzVo3DpfSQzvNlRQpI/gTFi4pNCKgIMOdKggiTaSUc4OCgFwaktLKA2gYhQAgQ\nAoQAITClESBCOKWrN4EL1xZkiwanW8TpFh3bgUI9BsEj3z49IPngQmOQMHSLEEgEBIT0ErYXYWet\n0lUL9aC2o2ciFJzKSAgQAoQAIUAIJCYCRAgTs96nfql3dgShEkzSCQ69wHYkZJ/BjhnJ85kjGfah\ngxBIYAQUTsxfjMdFdjYpriYoCId4chIYKio6IUAIEAKEACEwNRAgQjg16pFK0ReB7qDEKxx2m801\nUiPvCw79JgQGRUAW59/EBT1K0Cso5Gx3UKjoJiFACBAChAAhMPkRoLHy5K9DKkE/BAKy8nCdVxB4\nh44XaEDbDx+6QAgMhoAi8IIBAZSAW1EkMhkdDCu6RwgQAoQAIUAITH4EiBBO/jqkEkQhAN8xGL9i\n+0FfWAEbvC5ziP3oo6LSKSFACKi21dikJQPLCDm57ogS8g1pbk2oEQKEACFACBAChMCkRoAI4aSu\nPsp8XwS09U4nQAhlxSzy82zYYp4OQoAQGAkC8DOauxAKwqQwJ9Ki2pEgR2EJAUKAECAECIHJiAAR\nwslYa5TnSyLAfGAoPDSEfplbZNdb4T+fDkKAEBg2AphSUeCUV2fgUvLzArJeZvtO0EEIEAKEACFA\nCBACUxgBIoRTuHITtGgNAaneL8NwdGMq1kHRaDZBmwEVe3QIMI0g3DHpzLrsubzMbeiQNDNs9k3a\nwtFhSrEIAUKAECAECIH4RoAIYXzXD+VuhAhAPdjolxr8YcTbmGokPjhC/Ch4oiOgzaDwRrOQtwiP\nj12Se2ZV2A1ihInePKj8hAAhQAgQAlMSASKEU7JaE7hQvFIfACGUsSV9rpkMRhO4JVDRR42AxvsM\ndt5oK/UoAclf3X1WJYqkbx81phSRECAECAFCgBCIXwSIEMZv3VDORoFAQFLOuEMBRdkA9SAdhAAh\nMGIEeBzQCgqOTN6WaQ7LAdlX0XUCYniYktJBCBAChAAhQAgQAlMOASKEU65KE7tAcC563BWGaRuz\nF8XB9lCjUWxitwkq/egQAC1U9/AMycEG13mJbUhIByFACBAChAAhQAhMQQSIEE7BSk3kIsGbzAl3\nOFkvzLXrNSaIUW0iA0JlJwQuH4Fq57nDTbskOXT5okgCIUAIEAKEACFACMQbAkQI461GKD+XhcBZ\nt9QWlObZ9WaBWb7huCxxFJkQSGwEFJ7PMOe1eOv/ee7href+2qtvJ2VhYjcLKj0hMDUQYK6T2Uft\n2ahbmxqVSqUYJQJECEcJHEWLTwR2dgSQsQUghCJRwfisIsrV5EFAUQSF/8qyh+alL3cHut6te3lX\n3TYMnxTam3Dy1CHllBAgBAZE4KKeTCOGA4aji4RAYiBAhDAx6jlhSrmrI6Dj+dk20SgQIUyYWqeC\nxgYB8D6FV5KMqZ9f/OCK3E1YRijJEnYpxOXYJEhSCQFCgBAYJwSMgiByvF+WT8LvALSE5DRrnICn\nZOIUASKEcVoxlK1RIHDMFTrtCeeZhFwTbTgxCvwoCiFwEQI9629hNsou96gF1Zl0mm25CCj6QQgQ\nApMOgfl2nUnggjJX58c8l/pv0pWBMkwIjB0CurETRZIIgQlDgC0AULgDnQHM8c2x6fGZsKxQwoTA\nFEOAsT/2X1ML0sBpilUvFYcQSEwE0g2CurJE6+BUuwea6UrMpkClVhEgDSE1hKmAAAap6MnVAati\nE3mbjvr1qVCtVAZCgBAgBAgBQiAmCCgYN/DOkPRmm58NH2jUEBOUSeikQYAI4aSpKsroIAgocBLG\nc3+p9YqC4NALPbqMQSLQLUKAECAECAFCgBBIYAQ+XWBVeCGgcCEZvrJoaXQCNwUqOscRIaRWMCUQ\n4LnOkIydsy0ivzpZT5tNTIlKpUIQAoQAIUAIEAIxQQD8L8sA73NKvV9qwDJCOgiBxEaACGFi1/9U\nKT1sPU44Qz6ZAxfMNoo00zdVKpbKQQgQAoQAIUAIxASBjWlG0EJPWPFgOplMRmOCMQmdNAgQIZw0\nVUUZHRwBrwyLD8UsKPPteurZB8eK7hIChAAhQAgQAgmNAM87sEuV5pKO+ZQhk9GEbg5U+AknhGwQ\n3+u+bpyrAwnj32V1AVrm1e+ezKul0Qo1zsVJ6OSAuF/msAoAa8TRpmmmL6FbAxV+7BGI9JNqn3l5\n3ebY544kEgKEACEwQgTUcQK2VcVfNmoQaAnVCAGk4FMMgYnddkJlUhO03qvJL7/c4rOJwtXpxgzj\nKLet0/IO6/NG7GWjHjpOmWnVm1VnxlOsrcR3cfgTLpiMKjNRleQ+Or6rinI3SRHA0KnGWY7tCGnC\nZZLWIGWbECAECAFCgBAYEIGJJIRYxHuoOxiWuY1pBih2Bsxf7C5ub/P/Z4XLLgoZBuHqjFESQmQv\nrHAPnOhuho8q9YAFwndn2FcnG2KXc5LcHwG0nvYgcyqzIcWAaYbxb079s0RXCIGphEBx0uwjLXvO\ndR7t8relmNKnUtGoLIQAIUAIEAKEQIIjMAQhhHlQWFaebfS3heCCid+Sbpxhgw6MzRDjyy/LLzX7\nmwISxt9XpRrmObAbeA+vY9aY7FB/YoDOTntuqdfZ166OwDdPdbok/h+Lk5akmCPX+5wwNaI2Jw2h\nkIFf/UT1iRL5qaogGT1QZbDokdntBp8UUjivpGDtWSR8/xM1TTVVdo9Zm0cksKwgAYU/7gp6ZSQC\nTijYdbwTHPESOWShVSwQl6WqlUWzv7pElP5ZoisDIABUWS0rIOTspKflDRCQLhEChMAoEChJmWcU\njUEpWOeqSDals26MDkKAECAECAFCgBCYEggMQQjBWED5vn26C6NsMKGHazyvr0pPN4gKY0bKn2vc\nPz3vwQnI0NMNuldXppt75bHhAiNPjD7hv8bH+iDml0HG+JAs1/iVJX3uRf/Uhh6Qxkb5bKzPBGtU\nMzrYJc+ZBaHGtqKJwtUZpvecwRyDMMPSm+koCRFGgcQ1vgYRjFbiuDAUwhmv45Vnl6eVuUKvtwR2\ndgaib0fJ6z1VuYpagp6AarHY+QWpvWHp7/AROOkK4YMqyjSJrLoRkwAdPnwUkhAYCoEsS4FeMIQU\nDzih2q8PFYHuEwKEACFACBAChMAkQWAALhSdcwyqZ1j0a1KMZfDpLyldIXlbs//uAgv4S0BWnmsK\nqCyNLzCJm9MMul4PNVC5dQXlhoCEbQAgIUXP55tE44DL6hjxGmLkzm5DYEiu80OgglV/BWbRBkXQ\nUEdIVmr94Y6gkqIXiiyCCLoQFWl5sv6ZZWmQMSAX0xKVOKUtIDUF5CCjgnyuUcBqQ0OUEJYznptt\n18+26eu90i5GCC95ABZnSDrvC0ODaBUZJshPhVeaY9UZBgTnkpLoRn8EUCuskm7KhKpZ5e39g9AV\nQoAQGBUCqpGH4jCmdTk7oCFcmrVhwG5zVLIpEiFACBAChAAhQAhMMAJDEEKwtfkO/XdnOL54rKOG\n7dPC/7PZ97F8M/z6lzmD4DagNLDTuy7d9KVicDT2o9Ij/a7GXeENw3JS41EWgSu2iF+ZZp/FgrCB\ne4tf3t0VPNIdBOPCvwPdIZn3aUiUWsR5Dsa5mBqQsTCuJSA9Uefd3RnsDMsw8jQKfKZBvDnTeFOW\n2aLSQgTuDik/r3RVemG8yiXr+H+b5fCGlV9XeZBJt8Q59PxHc8wfyetx9bK3I/BIndcraVRUuSPH\nfF0GuxXNF7GFwb6OwKMNXviecUmKpOoGk3TCXJvuviJrobk34UgcZIJpL9mf/gfKEpCUJ+t9r7f6\nm4JsewS9wIMnY+WiU+K+XWLbkGbsH4uuDB+Bal+42if1qHAvUQvDl0YhCQFCIBoB1TqCn5O2pKr7\ntDvUzXrxSXioFvuTM+uxRJtgiSW6JDtuEVCn+dXZ4xpfuMYbnjMcPUPcloYyRghcNgJDEUKwHJ7L\nNAoggzi1C1y1X8YO4EuSDFsbvbhkFTgPls8JnB0UR83N1052lbmx8FCNgKE5VtYpwmlP+IRLenNN\nOrPn47hvn+p8uysM9ohVd4j1RIMXHzU2l2sSty5NSTPpERNBqzzhb53qPgjCx36xA3/OecL7uoKV\nXvmBYqtJFCCiwh18scXfAc8uCpek4490h791srs1FGbiwVL9XJLIXZVmzDXrgpJ8qCv0elsAcpA0\nsrncrpfTFbEn+1oiXJVX+u8qz+HuIELhfamGZW5jjjqDiPW9Uge4qGoq2xN+kD8sOs8/0+D993Kn\nyqmRKCscCgRbW5uogHOyEIOIoFtDIYBdZT0S96kC61AB6T4hQAiMHAG1CzTrrOi5GlxVDe6qXFvx\nyKWMdwyiOkMiniAQJUgxh6xuChCFAFvAg3HYp/JMj9T7PGGZx8ZVtPNEFEB0mmgIDE0IgQieEmzy\nhmfnk7mWPzX49nQGC8y6dzpDC2ywEuWPuMM+aNsQjjEf7vYcs7nVDzebm9KNs2z6jqD0ULlra7O/\nxh862R2anwTHM1yRWZ/tlZkNKnyMclySXjD38jFYn+pEQeVQik+S/1DjOeAMwlPLFammpUkG0LA6\nr/R6e6DcE/pznXupQ7clywQJJTbdljTjEVfotDvslpQvHOtE1u7Ms+QYxe1twfaQtMBhgOEoiqAT\nhMVJeviihN7v/e4QiBhbAcn42EWMLMMoXJFiSBa5danGq9OMBRax2hO+71j3WV/4YFfQIytmzTsM\n0h7yYKKVrU3wX8PlGcVfz09alGSAPe1jdd6Xmn3gxWbaKGFIDAcNAGC7MGOAiYdBg9FNQoAQGB0C\nrJNUuCsLbnm54vEOf0uHv3VSEEKWa0UJBAJ6vV4U2aKB6OIHg0Fcwa3oi4lz7nQ6z507l5qaWlw8\nCbj9qOulqanp/PnzRUVFubm5oxZCEackAqqaQbHrRMx3nfCEbpBMGIzRQQgkLALDI4QK55HYckAw\nmbz2wGFnKEXnx3K4O3Nsu7uwjJAxN0YH8bZVuI/lWxYl68+4wjs7Am+2B2AkilV/7I7Cd4Rg0qnH\ns/dAif2aLNO+juDvajwwK70zx7Ku12YS6/QcenVFncI1+OVtrX7Uzapkw535Fm2dXbFFl28WflIp\nQR/490bflkxQM1BK8T/mJB/tDtx6qANZyTQI3yixbck0QW15e45c7Q/Pwd6A6hpH5GRDmgkmmt6w\nPHdnK8uWpv+7uAmAT36+yPp+t6HOF36p1Y8gyToh2ySc9XKusMI0egjP/g/rQHR28BzWQL7Q4odx\no1UnbE43zrfpqgLyUtqjQsNntN9onPu7AphEWKRON4xWDMUjBAiBgRHAbIvW5c1OW1zWsscbdEWH\nO3PmTEtLC65oehh843z69Ol5eXknT54EH5s5c6bNZtOihEKhw4cPC4KwbNkyfJeXlyPurFmz0tLY\niu7IgWD19fU1NTUWi6WkpCQlJUW71Sc80mpubsZFk8m0ZMkSsL6IBO0ElG/nzp2FhYWzZ8/uc+vN\nN99EutF0SMsbiKLVasUtfEeidHR0nDhxAj+10qFoyFXkbvSJ1+s9e/Ys6BYC5OTkoIzRd5HE6dOn\nfT4f7oKMRXNUSEYqFRUVZrMZuY01Uz1y5MinP/3pW2655X/+53+iczhZzoEVyF5paengQG3duvVr\nX/vaQw89dP/990+WolE+xxEBHqPB/6t21fnYiqRLOrsfxwxRUoTARCEwDEKosK32oCHEgAAKuk1p\nxpdaA9iKHVc2ZxgPOPEQcX7NohSeZhT51+c9YHGtASy9Y3ajmKK1wqoTB5tiVv9wbFHf2hRjR1DW\nXpWlVnFtSt+N+0DzarxSN9Pjc0ecoW+f7lYtLZkI8DGoASENHl+Qqx5epv1Rv+8ttN6QZRLYfDCf\nZRLxYdG046LQTDPYG783gPoXCxd/V+Xe3hZABtg2EhzHxGlxe757BF0U7dI/PpJrPXa2uyMs/7nW\ni9WD2HgRnDNZz69MMughF6XtlYe9GcEYLy2J7vRFAM2v0Q/DZW6Zo28r6huUfhMC/RDAQLz32e53\nb6wvRKcVfT7W6Yy5vJ7uKcWYgR6zsvvUoqx1RpFZZ+D4wx/+8M9//lM7j3x/+9vfBt/4+c9/Dr73\nk5/8ZM6cOdqt7u7uBx54QKfTbd++3WAw/O1vf3vhhRcQ4JprrtEChMPht99++7e//W1VVVVXVxeG\n++CKt956K2LhvE/49vb2b37zm0ePHv3xj398qUp88cUXwd8QLJqbgab+13/91ze+8Y3i4uJInnfs\n2IFsu1yuuXPnRucZAZ588kmUJRLyE5/4xA9/+MPIz8gJqOl3vvMdUEfIz8zMvP322z/3uc+BDGt5\na2xsfPDBB/fu3QtaOG3aNKR15ZVXRrK9b9++H/zgB9XV1SjmmjVrvve970GvFZFMJ9EI+P3+P/3p\nT4899tjDDz+8YsWK6Ft0TggMEwFt1AU7MrZ6p3cANsy4FIwQmHoIDEkIwYV4DLg17R+UdJsyTH+o\n9TZwysokfbZJx3yH8jyMPzVe9WKT/8+1HrA16L6+V5q0NFkvy8Lvql3/W+0ZKXZ4PEPqTDNEgz0W\nWUDqelkTLmHGmlO2pA88oZMDB56wBWd8dKTJsvBhRUFBHoXbUI5b49DDRQ1MUjsC8kPl7q0tXpby\nSA6NB9+Wa4bh68/Pu895wzAT5RS5GS51eB5ctyUo//ssu1nXw1phGbs0aSQJJHzYOp/03TPdF5pH\nwgNCAIwIgfEcC0SnFX0+ogxPYOANBTe9VfuCO9gtKz2TVqC1a9euhTINOjFQO0mSPvnJTyKHYIAg\nYNDhNDQ0QOcWyTMCQO8HQoiIuNja2griB60aznEFdx955JGvf/3roIIf/OAH582b19bW9vTTT//m\nN7+57777wJS08B4Pe6GAOn7+859//fXXwQY3bdoUzfe05DTKDYUklHIf//jHCwoKItch88CBA2Bf\n2hV8g6SBCkJj9tRTT9XV1UXnWZbl559/HjlBclDfIfDy5csjESMnyPxHP/pR6Eu3bNkCFR/QAKkD\nG7znnnuguoRwMMDHH3/8hhtuyM/Px90PfehD+/fvnzFjBiQAkxtvvBHq0Jtvvhm88S9/+Qso5f/9\n3/8lJdHLIALwhRM8O2hvgBqYX7g6kjNE/PWvfw05X/jCF/orlkciKbZhkc9f/epXyOcXv/jFeM5n\nbFGItXTmhyIMz/mxTofkEwLxjMAQhBDPBxR7AZmtIAS5sutFKLWwdPC0V7ou0wJLUAdjMXChyZYC\nQiO4rzMI3x5Qpt2aZVqVivljBf5mVGPPwciZpmDUYGI7xUsy/HnqBS7HJMCnKJ5SHad8vtCquoDS\nGJ4SlNmysSS4nhnoAAcbxnzPhbh9ugHkYV8XlI/IPvfdUnupnS0yyTCJqUZE6SWlA6U78DXV3GpH\ni++kJ/zHhdAOclA5HnIGj3SFYIwK0nnWE4Krntm2HkJ4IVsDi6OrfRGARxnU4LXpBlDuvvfG6zdG\ntJ2dnXh5JycnYwjYf2yKMSUGlBh0wvgNY8oIGcCgFiNmZBMXoQnpH3GYJUDqGHEiMIREm7rhCnQy\nOHARSY9a/jCzMemCoVIyMjI+9alPYQg+bpmHHmnjxo2bN29+9NFHxy3RMUlIbbcX9Ze4AmKDAyTq\n+PHjaOE/+tGPRpcWREE3+K//+q+LFy8GA4woFaGs+8c//tFnNAyqCZ0hzD7Bsj7zmc9A2dg/UQgE\nbTh06BAa/3vvvQcapuafc7vdv/jFL0D5wEU10oi4YJtQ6OFAeO2R1AQiAMw4ofRbt24dcqJJ6J8W\nrkDFV1ZWBoKBYEajESP4O+64AypNgAPr0Ndee+3ll1/G3V/+8pcIDPp39913f+UrX4FyFTLvvfde\nfOMWaDDufutb34LuC3pR/BwkxQGzkQgXAS/aCaxA+1gaD7/saKg/+9nP0B+C5PdpWsMXMg4h8YKA\nalprIfGcz3GAIkZJwMX8PJvupCsMB/AxSoLEEgKTAoEhCCEYESw/sT8ECgOXLKc9Ibhj+WqJvdwT\nvinLWO8LY0EdbrWHlVOuUAlsQ5m+UIEV6aHu0Mx2v1kQ2oLSux0hxqPUHSmWJElJhh7mA7NJg8DB\n3efLrf5c1WtnQ4C5MG0NSXfnW7FusMiiW59swELEF1r9Nr2wPsXg0AuywrcEwqc9UoUnfH2m8QPZ\nbL4WFO6MJ3zSHQYVxL8znpC5kzG3NJ0wzaLrXTzIasQVkuF4BpkGz2RMjePq/OEDXUFQiWS9MB2B\nwSkUhRWEBedeaA5gZwgcbUHgwAoCV6YnnaG0dAHFQHy4t+lkZrNcQ4Ap/sBN4AQ1Wc8Qm2YS2D7p\nauH/XOM57Aqd94Q/kW+ZZ9fPtFs2pISx94ZXYltlaKazCEnHiBBAXaOa3u1gC03hNEjXU2kjknG5\ngaGy2LZt28GDBzFqhCETlgbNnz8foz2cREZyYGswOcPgFbxxwYIFsDdDGC1hGM5h+Ijz9evXw6ot\nstRqRNnCkiSMwjEYRSwMJaGg0KIjOWg23nrrLbhVyM7OXr16NbQ3DodjRMIpMCEQQaC3X4xcuNyT\nyDMCQdCJQaWWlZX1n//5n9CwRUTjoQDl035q4UE+YXuJZwds8Etf+lKfGZBIRJycOnUKYnG89NJL\neC7sdjsuvvrqq/CnAkqA5wLPyCDRERgp7tq1CxwSEy7/+7//i5WK0Ij255/gjWAXyBVSAV1BRDxo\neNhhIIp5IvQMOMH1L3/5y7iFAyayK1euhPYSOUREnEAylIfaXbAUKCp3796NK8g8bGKh3sRqSdyF\nTCyYRG+Dngd2p/CVghyiLKCsyBXSwuwPbE3BfpFhLBQEF8V6SNBdTXL/byzGQx4gB7GiJ4zQa2Ex\nJHS5WAKq4abFBUXBdQjHdSSH2Q3IR9Ig0phbwTmEYP4LOk8cqDv0TsXFxVhOqdUd9J8AH3pRmPui\naBCi9UjQCUM+JtTwDQ0wkkBCMAcFsAiJn4gOjbEWWLuI6gOGQANRIAoKQ1QTJOMcul9MK0S6U4Sv\nra3FRSQHU16ER7YRDFlF1w2xWrq4HjkQBQhAt4x0YUIcUdWi4Mg/EkIfDmy18Lj4/vvvI2nkHDbS\nWLMKK+UImBCFZgZRqCZAgQygjiJ1iqqBKK3N9MccaaHxaPlEsP+fvfMAjOuo8/++7Stp1ZslF8m9\nO3Gc4iROcXBIbySUEOAIvdyfHOU44HIEAlyBcKEdkFw4ICRAKoSEJE61093i3m3Zkm3JVrHqarXt\n/T/zZvW8Xkm2ykraMi/O6pUpv/m+eTO/7/x+M4MYYAuGlIV6C9qy+KbY43RimPuFHsT/4k8KHWih\nlW4bhDCFZFaiKgRGA4HTEULN8uuazkca/IIlaZbv7+m4ucz1T9Nzlxe7GnvCd2xvO+wP84jd1b+x\ns/WumXln5TqeOebvilheaQls6gwyOw5zX6tBGulX7zvU5dP1z1flGLP7hAEQ7+32rtCbrYF9Plz+\nMJ1F2DbQY7WsKHbTCnttVlZ2qfOHd3eFHjzc/ffGHrdgTlpnKIx5kLOz80Unh2Bkel9tJ5Y3wQ8s\n2v8e8nnquzET5ti0+xfmTyRar8XwgbrOJ46yEI5YOpVmmsDPNwXeag0Sr8xp+8Z075l5Do/NujjX\n+UpTD9ss4jj69yY/4TFDGWui8qt9e3fHN3XLFaWuvR2hb+5qPxoQEx3bQjoFxYHl/+q6/nTEh+Y0\nO9v28wX5TqtwGg2GdZjks43+jR2BMpfgqJ1B/VggDP9c4HWyST1yq2MYCPCW641KON/roOaM8YFW\nwbQfCCH6BF5k6AewMrzCGPW/++67MSnDX2WLAABAAElEQVRQjVEF0CM56M5RmLAYYAZ54okn0Biw\nUaAWcBOuSE+PAjQ8+VEO0MxQ3V544QXMDjIREmciFro1hkHUJhQLdGK0FqwQpp40vOxULIXA4BHg\nG4HemFWOaolVluGJvimgMVM/sZVBjfhw+gaQd/igcPZDBWck5UMf+tCpFeLXXnsNVRt2hHWOGYOo\n/tgMWWhEauFwIY5TE0KU+DfffJNMoYV4eEKcPvnJT37rW9+KEw+BGXBh7h/dCgeXpMx6NjAQyBKk\nCNKF+m5SCG5CLGGJkhCi9J977rlmWfhmocQ84j48Bws2RYAQQgYuvfRS0ONbpiAsqUI7Q8sDGt/7\n3vdYhgdCwgF7vPHGG5999ll4FMjDmUmBHPvKDBFl9ApuCeX78pe/fNttt0nkadNIkDcFFYEo0soh\nLdHJFLsc3ra8x+LiYt4UKWBqY4kgxqSw1/FSCE8wooDABz7wASZb8gtV5kUAI40S+DNABpi0Rbj7\nXnnllZQLaXnKiBXtGCSN0TG8ZxcvXoxL8D333IMtF8EgZgx4ATLNHS+UvHi/NKSQvR/84AerVq1C\nKnKnyEDHWBivG5mJSHFoeOGcyEy5YOO//e1vEY+njCkgP+DHgsNLZ+opZmqZL08pDmhD0RGYKk1G\nsD5qAkZg6hLUFIRZSIk0KTsiUUNwAQA9ikbNIRZhEJsK8Nhjj/GmCA9JBmF8Q4Dohhtu6BfzvnJy\nBwyhjrxQSO+dd95p2tJjizCW50IbM3Sv4LqHwHsss05UXhRBlEIdCoEMRuA0GjSshgVO4C184/Rx\nbJZQA9tjYU5d6wnpmOmgcDzA2nagm8VXIu+r8NxWmcVj1nxs6InA5dya9ctTcs7OhbnpR3vEgp9m\nezHX6/z8lGyvnRZTZ5WaI/5QV0ivcGrfnuG9uhS7H2Y6HTvhfQvyVxS6yKaxJ3TIT5pB2GCJ03rX\nDO9HJwnzIN9xoz9c2x0+GjDaJIveFNTr/AQO7fEFA8Kf8EQLRbA6X4h9SA8bktBVtAXDdd3hWn/4\ngC9EEdBD8Op834Ssq0rhkbpf15midrgnPNll/dmc3IlOO6yvridoRGdtm8h+X4hi1vpDLD9DTrQp\nzYHIISFPcJePrdKFgMCIWwIpQ2Nr/fra1p63jge2dAS5vLnc8/VpTCA8IaGIoI7BIQBqVEzmYRJc\nIHzygn6DS2P4oRjlxaDx8MMP33HHHSheeLWhc+CZ9utf/5qBefpstDRUQ5RCVt24+OKLUQvQUdAM\nUFaYJUXG9OgoqcwUqq6uHr4cFgu6Iy5wMk0zHagpbpCoUAiDayKaEzoiugizp8ww6kQhMNoIYEtB\n9WfIQx58BVhm4jLlM+EOLpfSHtWXusSGRxeHOhKSFVlMBhUbIPYcuxmDNXhmQhKkVzCGLGRgrRdG\nSbC04HoaG77vOdZIBMbhE5JAEaBqqOB8yH1DiiaeFsk4OIECEZdZhYz1wARgI5zEev3hRMB9Wgke\ncYLhSOJAXDgGbAFqwX04IVwCWoi1kJv3338/RAimBP/E1MnQEgEIhpsrAMI/L7/8cggb/rSQDT55\nzGuMRsEf+gosWycYFFHghMzSJEduQstZEGjLli1QmmXLlgEXpZB0lPmQtHKAiS8rMx5p5SBj0F1e\nBN62yEPWpABl+vOf/4xfNFQQlghctEIIQCI0hvA0+C2Zkh2PYLCcEB6qQ6NKcaBGDGCRIC8Iz1sk\ngbUSHj5Gg0mJYFmEBBYG0cid1u9Xv/oVPJns4GAyulnNkAdKD3dihI6kqAwwTzgeAwEczBrFKG2C\nQ2DOQRJqun//forJ9FTeI9nRyF9zzTUUEEyQjdxJCt5IePmOKCO0mfCc0KpTKB4RHmAZBISFQn1B\ngC8C2YhOR7B8+fKFCxcSayDMTTnxH0ZOrOKwUN4mYsPG4dXURpmRWYSxP5F6TmDl90PbnkPdslWf\nr7lOrNA79vIMI0c+3Y3twxyQHUZ2KopCIAkROI2FEIJz16y8i0rccviHAlxeLKgdJ5VZ9kfPLKgR\nGxRyqZe5bEsLXKwnipHttolZ77YF8AVdlGOflsMmEtryEvf2ziCGQZaiEXtQGAcLv1xf7rm02L2p\nLdgQDDNBb062CC/thyKI0b9WZdvvOyOfZSS3dAaNNU21s3PtJW5rluGgCjklvY9Nyp6U7Yidi2jk\noGN5YwtB4zz6883puRcVuTDWCSpx8jHBZTVNjiUu7Udz8z8zObitM8RSOnNzHFM8toimT8ly7PSF\nsihRsYtyL8x1/mxePp6ufVMDk8W5DlFa4deo3zkrrzUYnuN1HPOHN2IG1XU8VBd6HSetgHqyPOrq\ntAhQ8yDb7CdZ4bbxj5EIWWdOGzEhAdARsQQyEsxgNgqcmSZWC4ZsGQnGu4mOHyMA6gLrnkt9EZUF\nLYrBbHQmXIxM9dGMbp6gmqA6oCyifpEUmgQaGDqlTMcMJk/63kTT5SBfYhEGJRsdEfqKpsUlKgWJ\n8wjdCOGlMooGiagonVIjl2HQmQiD/t1vmDgx5CXhUdqIAggoUmhvqDKccJAIuqOUlkupJROSkXUU\nd5Q5MmXInIicy9SITmpofsRFn5aXZMEIPelAD0AGIYmCbk10bB085RGmV1ImC5mvxKFfgblJOnLv\nBEQFEKkXkggnMlnERrUlwdgUJERIDmKgDVvgTSEqFgDJVUgWPVVWD/Q2hEE8ihCbSHqfo4ij6C9a\ntEgWk5eFNSmuyLI+ABTEBkjBXN6RweIuqR4Mr8D0MIajEEMt4lIzL/n6IDO8CLRnjE4sVwO7wIrO\nC8I+gys1VimyM8P3e8LngEGSbxCRYBSsTQo7YlQFrtVveG7CcDA68a0xY/CKK66QZcE+hjyyXsmI\nfG48knWDE2LJkDwFB2oLj8w7fLxsnwCLwB4Ir2BeGZ8q3zIMhxOZIOQBXkQsCkXRWIQTzkmlpY0i\ntVjaI8PzC+XDNxWpQBV7HU6eODJA0qioCI/ZijAwYWgnzR2PaLgw0NHukSzVGH4InkTngLFAVrH+\nkSbDXoxScYIwP/zhD+FRjz/+OM6uMDe+a3zm+Qr4ZHiDv/nNb6BVZAcHAwHeF8FIBCdhPnBGsuCE\nBABGJOHzx2oHCFQqswg0DrwOWl3KTrKUnbfM8JwZgBOeIhsCw/GIzpdOlQBPhCFx6a4pwwM4ZcEO\nibkP2airxKKtpvXANMpT5nZSHAJjysaGSQ2kmPI14Q/MGrO8ZRCD4PHt82oAkzqPnRMaSSx4JvWc\nO5xjkjX7DlaO6Rdz+gtG+kifxEGMolEV4YS8BVKg2WTiLpu7MDrA5XgddMShNb8N73tdy8q3z7nc\nVi1kS5WDNS/meh0rG3s2tAauKRXux+pQCGQmAicpN/1AoFuKnFb2mjcJD22lIISi/dOWFDiXcGUQ\nRNiVMMTxWLNM8tgmulk2wyCO4r4+O8c+22uXAeJyYQuKC4txZRFxhXbPf30PTWPhUP7xRCRrZErC\nggsaRrlsu3atsUN9fFQjaDS48azYab2hzGNk0k9GiC+kMJ5gJ5zjdULhZDgSYYraglzHfGMpG6Gx\nWHQ47flFYqkZEx9TAIMGRhHgzyyxJI5AOy/Hyio1RlnNsOpkuAjolgZMwGIjSo2NIvutO8NN+vTx\nMDjgA8aKEehSsaHhDOYihIxe4xTKiDhKgAyDespQMePH3IcQxkaMO2c4nMF41BfiMhiM7ZExcny6\nJFuLC9z3kmAcqFkMriMSag0pcIImR2D0GLQuXMsY4EfXwfiAnoH9EA0D8bCfwKbMMAyQU8bYMOhA\n+AESJi5fckFBQRNljJwoqFP4XKGlsdcZuaNx4mGFSkQsQqIdYjvCvirPUfJQidC9oFWMst96663Q\nPEKijKLeoWahcWK4QMdCecLuikLPU+THaABDQF1DW4VsV1VVkSmqHjfBDZ0SNZcTMkLFjBNYXmJd\nQTZUWxo2QEbjl9tYo6GiyaEKYxyA9aHSgb8sNfIAF4/ggeQI4cFWgBZLAVH04RvQV1IDTxRHJEc2\nwpMOgYEFlbFfSTL5Jl8Nqjn1BHXZ/F4ABBhFx0KLaxyEoQpRJ/HiQ6eHbwz0WqHljHrwkRIAxRo3\nSxwsSZ+qRc1n1AYuwauPTbwv/mTHYeaOyZ1PmNz7huQOSVExqP8QQigHLE7OeSMFZMA4yVMzIlyO\nL5T7JM4J9iJTEoJRh6FG3JfhoXN8vHykOD3SbpAgVYgPBOpILBkG0AgDB4PEwpP5jvgK5EcEBzbz\njT0BHC4RQMYlTT5GWBNkhpEs3EHlU+gHrQTfJoLBimUbQuIQLb4aGYYRGZZypeC0WtyET4IVj/iu\naSRpTDCF8YjvC9ssOQIjTRNEEZcKPiI+LloMiC4+sRSKT4ZLmhFC8g3y1mQxmWsd9+3AdfnAgRoJ\nCYwYzDykcSNr85DFRGC+Pkon0SCwGSD2hLJj1oMMm7Gwu5IpYwrgT/FlYD5wLHux75RKBfgACP6k\nQDDaf9gaOEgouMO3b+aFZ6l8v8hDOy8xh0kSgMJKzM3AnBCM1pVgLFGLMVYGi60ksYHH8lxvOxI+\ntNESCdpmr3Cc/6levWcsRRh+XkzqqWDnidQSevjFVTEVAgMicBpCSIspiE1MdAgb1/JOlNVwIW4R\nMDZklOARVbgTGBFErx6TFKciQi8BE2F6Q54cSmbQ+9BMQjTn4hE3TJFOjijyNeQnWPSIimhm2ntf\n/j05p2hZRQbSJcIopFEcWV4R6UTScUlFy2L8iVJdmZLMRPwOKPbJSamrARHQLKube4ASNggnjEI+\nYOgEP6CnpzOONVCg7qM0mPoKqgMsAnqA/oSiQPZ8AVRb9Dk0HqjCKQTC4ROtF9MWiaDUMuLOOZNY\n+nxDA6bBcD6qGMoWAqBbIBuTGyEzcngb2wJKG8ooCgqj8pArNELSZzweGwi6DoPQcWHwlzPD4LSG\nhkqYuOzRsBnPBgTERj9jiB1VD/0PVay6uhq+hxKPFohSizbMWDsGTzCEVuHRCgFGAwMcSCyyoefB\n8RjL5xd5QBJHQdig1IpwwZJgwtnwB0MDQxKUe3gX6UAFEZ4wCIzWRSyMPMiAthonsLwkCmZAzCmo\nZXj6ITNyonMzus9ihqjUFAHmyVsAKywqqN0ouFgDeJv4xYEtKhoCw6VJkOzImuITC2mRAXUWawBq\nK0SX1wETBop+Jcnkm5BwGDW1gqEW9HsIg4kGb5Y6wxuRd6AKjFnwRqSjILPXqEhmYPNEWs+oYLx6\nfPN4HfglorVj2CFxvlxJ7fhgTd5lxpUnKN/MVZOqv+hwLBYsk2j5Aw3lUCdx6uMLIi/eshxWIBZV\nCJYC+aH+3HzzzdyB7/HR8T3ykSIeJ1RjKi3cg6fQCc5Bg5JyyUEYecJvrN+peZMTJJRCyjDmeWyY\nuHPZLsXeJCNGcPjFdCbnDTJFmREZ2hDwJGuaCDiPlEcSY5kRGLKgDl8HM+JgZTRfvC8AITUYOB8m\nAzdEhJnzVObIMArDTLQSfFCMyNBOEpJ2FUdNfGIJwx0QwDgGSyQX6BDjaJKnmTKTL98azSmNKumQ\nBQMKfHdmAE7MYg4SE1obGgQOGCDR+aJJlpaEt8b3y1PSoW7QUJC1+To44b48ZO7coWbSPhBY3sF5\nASHluflOCUZGcZhTV+PsfjI1UsBNFAMsGUGYaRVpWmWC4/MbDob3vRY5ulMrnOJYeJPQ6MZHjuHn\nanzZGmslDj8JFVMhkPoInOhjBiqLQbpiPnBxzaW4Q3vE//Kv8Ru9jN6JPj5xU/ZXsRmJZ0YKxk0Z\nMvZ59JwH0bhGjiIOhyGDvB897y+qsYTnCflFQtFM+wktnhh5UYTof6Iw8pZR5OhT+VCkJEKKf30O\n4xG5i0BGEr0pEVKkGM2rTzx1YygIaEzjpAPCX7TSjQ22vxdxmuRgkSgt+qrap4bakdE9i5gxoxzQ\nAOxmWIfkAckhc94+yoQMxjknqBenEcpiQadkVg/j5XhnYSJDSzZVitPGlQFQXzCewJTYwRnPLhJE\ne2PpBVOdQhvGaIaSin8UZAblAxMWFIhzJEdm0jHDsPQC6hFKIeFlGGx0MkysPJBGND/sMITBZQ57\nHXq8DICmiy5IoaBVRMSKgpYvV5WUATAQERfWyqA7Khf6EPOm0PPQwNAaIY2wUFM/Jor4rPo7MEdg\nH2DpCBQvwqDQ41GGGJQuTk00Y6OUY0jEfMHsIywDsGhkI2tWs0D1Bw28DRmSR8fFDIjKi8aJeGhm\ngMAlpcYcRGqxlQFSyiPiQrmxTWFd4T0iAy8U48lADMQUKRlOGE0T43DG/2MgDy+L+oDfIyQcUzCa\nLpniAQiNh87FfTVY3rhPpaV68y4gA30lhN5j0eLl8oiag+ckiWCJgq2RFyQNt0B4V1zKselQDeBF\nuDhC6am0GM0YBZBOibHBzHMIAyu48NVQYUw2yFPaCigNNkmmk2ECokqj0xOYwQ7YEbWdYRR4F1SK\nD4TBIOguGj+TJE3yQCL9Vvh+bxLYrIrmiSlkvyekI5PilzEO+IkcQwElROVrparz+cPQ+Li4pDni\na8XjMTY1ZMa3kwEshorkSidGqhqYUxYGd2CADEjJjIgIY+RFU0YoNyydT0a2TtjhyZcA2AlJjdEW\nIEUkvlB84HllsZkCIGZDpibS/PKB871DXyH5sQU3z6U8pgCx6ZjnPMWXlS+X4QbIPwSYhhSaSqtO\nEXhH/FJnaNz4rikvjNeMa57ILJCZgvNmAYr2hJrDi2YgwwwmTwgsMcf3AVpI2RmWoiVEhtiQPGLu\nImNJtCTwTC5JDUxoW2KDjdm5bB8ibOB3dLslEnIsuU3zloiCD9Ayj5lgQ82oxGkrcVlfOx6gMzea\nPNHqqUMhkGkInJ4QZhoiqrwphYDRcMdQsqEKb3QAlq5Qe1gPu2yuSd7pg0wBDYMxbHpiSAvnHESk\n70eHQEPFk4reGlsEug6WNFQK02xIf0kURqwxHA2UF2oN5gK6fIxpUrFAS471NRooYtx9XFUxNaDA\nMeKOkoFSgk+XGQZOgoWQS9wp0cxQ4PiV/pCo15LsmWHQquPCEECGMRPkBB2RNAksyRgym5PHeAos\nqIxok0wqw5CCzQTBzOjYAVD7uEQ/RiNEaeYgPMoZzArjA3oepFQCYsbqeyK9syByCIwAFBwkJXvv\nlzbwLlBYMQ+SFLodLm1oe1jzULwYgOcVIA+PgAJdFh6CkQeegDsiIslYvGssWnGSgKQEE50S0wqS\nYKqiniA/nFOmGRcluS7DIQ13xL5+HaMpJXwDzR7LGNRL0jY+E2g5tutYaoQIwMiLw5ZIJYexMF4Q\nVxv5iFDiIYSmmQWrNQYoPgEqBi9CfoPs33CKoRasiJABagWMFAF449QNxg6k/SoOCfR+6iq/OH/y\n7SMhB5wTOxIhqZbQXe5jdmOYhkEEqKZpY6fIKPeQLmgkvItGg2Ea088wLqPYS9nyxN6R52QtH3HS\n9+mp70DDAArXSj4ixpWACILKOAvfEWMlSMiIBpYxvKPxSiUpUwY+BOClgLDi2Cyk7Q4YMbzHvUea\nHaIABYydR3xHfGXSMkkKIAAsjBDxIsCEWgGGsU0KYfiU4NVAiti8WUnISSq24LHnsYJxbgofe5/x\nL5omph3C6Hhl2HJpmnhHyAlJ4w7SMpsRNssb73dwh2Q5AISPnVi8WWoyvJcBtdiMzHOJOUMYEnN6\nFom5GUCeUFJGxxhuIymG2EifxPutjXERR+PS8MmJ6M014f1vau48a8X80chlDNIscWglDoZ3I4YT\nGFViDPJUWSgEkg6B07iMJp28SiCFwMkIbGCTzCErPNEk6LCDkYDD5nzr8MquYIfbnjW76MRaBSfn\nE3+FhoF+gOkA+oe2KtkdPTQHbIER3OrqatgCbAS9FvKDsxM6JalgAWAkG0UKGhafaMw1+hY+ovhD\noiJzG+32FHaMmHjxp6SDwgQFRc2KG86nCOgTMgLnUCbOwSQ2ibgwUpmLCxMbHj0J9drUsFHHY8XG\nTMf4OnbC73znOwz8o1iToJkaI+hmUlgpkY2DAPiSoU4RGOsK1kW4ohSVxFHFgCiO5sWmKXU1Mwsz\n/dgTnsLZQBiGwLmk7pyTDiosZkCTaRCMc5ROHhEAdmqmI8+By7wj5eeSE7RJWAFyygCUPU5mM1by\nnOgdx/TOY4aDw6CEgipjQY0rF7o+hY0d+0DDlot5gCHpwrdZ5RLab+bBh4OdBNUfHsKnRHi+IzgS\nNblveOLimfnSSy9he+HVALWZDpd48MJnSFDeBHwICdSCS875NrHnY+yVwxBmxFiZERIPTz5w5CEL\nOAmsEmljXzQRZQVjjIAcOcykOOFLpwicEAUzclVVFYMmVCQ8uiXJlIGRnE8DMxEukZQUkxejKrI4\nROGRtHNSIbHqM7KAYHxr2KzkCbDDLSkRlZOvA7MVpjYuSQE+THQ5NhErGNDBLkx/AcoF15Ku1wjA\npF8SwdeRKLAyRkmo8JwjM6MzuFgzXEJc4GXoSg6LyMTBignSseMdgMOwFJwKAkkBY2WQ55BAqKY8\nZ70c+J78wLlDEXA0ZbxGzmakLaU4FJyXC0SUi4woI+LxamglAJYAnOAQIdHD7wDLsDkoAM0DSV4K\nuJEvL0WWK1YqbgIXS7NSTIZySIfqRy1CKjwskBATLs0OKXNfur9Cks13RDBQopohPMnSgFPr8BUn\nFmLD9wCZMGZ4mfVAmPNmpZwITEi+MkbTGP6AOlJvpQwmXLGlGINzo6vQQpue4AOwzb1Sc+eOQaaj\nkgXNtsFuG/xh9kI7qQsclfxUogqBpESAxlodCoHURIDuNXLB60fnvlL/p8NdwyvCqrqnI3rkD1t/\n/I8vXP3E7gcGnwhZwwHoqumh0ZxY9gAVAfKDLsIlWgIbAHJJgqiSjILTc6NdoUXhDkdHjk2Dnl5m\nhwMStjIGktE4TQHQ1Qgm/dNghpyg6qGxyTTNYLEnaAm0MdhMYm/CQ1CwSB9HNWQ2H6FWoksx0swd\njBXoWDjgcQ5fJRF0YnjRQGEQ2AxjJihPkAHNBuaGno1yRppAgT5nZg1XlFZBRsRhgDIW/nVousiJ\nkNA8/DZRyDC34lOHsQXNCRMBbmOocVAOmBvLtKClYTAkC1xDER6GSVKYL1DC0OQ4R/1CR4Sxcw6A\nDOpjuuyLniwvNJ5MSRl1HCUPFZysmQ/Jq+TdgQ/yYzBBcnQv+DySYzDh1YM2aUJd4Nsmhuhq4IOy\nLktHidAjYQV40kIvyZFBfd4mtgUZIDl/Q/ve6Lrvhq6fLecDQULqDiA0+Rq++MLV92/8ni/YmZxi\nK6mSCgHqDCMCrI0JQeLjGg3Z+LqZoEtTzAnp8xVjwOQ7xcg2GtmpNGMQiISbD3T9+lrf/TeE9r/J\nu455lEqnh7pDH1rfNOWlI38+3GWUIlULkkqgK1mTDwFlIURzU0dqI8D+IwWOE5aBIRXGF2jf2vg2\nw4PEyncJW9wgD0aR4R5wFfoP3EQhQnzdxOU+VinonFT6uYO3J5eMc8M6ZAAczyCEcgDbzE5GNy8h\nDywcD6vEJiZjmQE4IRcz5ClO4Eu4fuH9iHlNWhjiAg8mnb5h+t4xk2UkHqYHMQMTbsKR5CMZBckZ\njwcQTKYIZpoFZBgMLPg+yWLyCNaHEQN/V8geOBOGRLCxoOoRFxssBgcZkRF3NE55fupfE8O4YHB1\nTFXyKTJjXsD0QUbYsnDcYnRfPkIAhGGmE9GlGxg+YxyydBD4ftOnPmBlYmoT84J478QlvAzJr4wb\nJ08yXGreUqu3NOLvxALgWHST4Uw1zK8sGYqjZBgvBPChZToxQzkYx0ZDBr4vPj0MxVgyGYXBAMsI\nDo0twzqjkZ1KMxaB0NoHLQGfdfLZWtmswXVKsbGT5bzSZRWL2OvsLC06cf4fVP+aLOIrORQCiUFA\nEcLE4KhSGQ8ENBz4ou33cLPPcnhfqX2KCYTDSABVHhsRE5wwFkHesGKRCFPFMBZhZZJKP78ckIrq\n6mpYGZ6QrC3BEi/S/0dmCkfCfog7ZexNLGZoNjhfYTSDF+ETxXImzEeCRpJgv9Lim4SrknT6kgHg\nNizAyMA8bCcuCp5duG+RKfexvEFysKFxjjAkwrwschlMmLhkJSDwOigfjoLwN6aEYUOTwUgTJ0As\neFAscoyjxAzzw7GJiOkSv1CKTCzoJbNuWNIT7sRuENK6iOSgwWoKuMLiPsesIelYi+MWyUqfQCxy\nOJXJWVhQO2YlkTsncQLL8sKWUR8xEiISnsDM0pHvAjnJnTVLWDcVYDGcSnJIUsjAS0cGbJjYNnmt\nuLbKOZnADoaYFs28QBJbIhUAczFhKBrmTQKQjhkm2U6sJdO18rmW5v3hg+vsc6+22KMrfCabnEqe\nZEYAex2jOYzv0BSYw0OJFRg2yAgRvp3MuqSlJRfYIB8jH3syD7gkFoRxSS1yZGu4doPF7rFOv8ia\nJWaTpughl7uHBXaGoivCp2hBlNgKgZEgMLYrBoxEUhVXIdAHgbWtPZ/Z3Eo7ft+CgiX5DtryoerX\nG46uenTnr0IslBbuvnHmpy6dfH2fTNSNISCAhyqLE0KJ5YogrAeIAQ2WCNciFbRDPLvgRZgQmUlo\n0iHuQOowimJKHUJmAwQdiRY4krgDiJPCt0P7Xw++9ENcRZ0Xfs4+90pK0uw/dtcbn1hUsvTD8+7w\n2MUUKXUoBAZCgK+JwSBGtRipgRDSDgwUcoT3yQgfbznvlOEtRmeY59l39GeEuajovQgYw7BdLYE3\nfh3es8paNst1zd1iAqGwrA21B+5Nclz/srLoD/Z0/KbOtzjP8cjiQjSKYa1YPq5lUJkrBEaMgLIQ\njhhClcD4IXA8qDMPL9tune9lbRJ6I/H/kMSZkF0VCAdCkRO7RQ8pugochwAzD1lEFKsmtBAtEHMf\nBjRMfzIYa0vg6on9EIulyQbjUhj55UhSHknckUuebCnYJi2JzLky9O7joR0rrZWLrHkVySahkieZ\nEeBrwl4Xt5bVaAhMRtXGMRqJqzTjEIB+s8lEaPdL4Zq32FLJednXWGJUhBla3xuX6nheIjgqhMdm\nOdoTFqUYsh4xnsKrvBUCiUJAzQlJFJIqnXFAYGWTn/0i8AJ02UQrLvjgEI9iT/nFk68b6g6EQ8wk\ng4Kzjgu7R7CiIB6YzO1hah9urrjIAgFrq7CbIovNsOgfDrEZBErKFlWzOx0Xfla36pGGrZH6bUP/\nvFK25EpwhYBCoF8EYINMgfZ3hLY/awl2O674ljVfLNub2oeue2xyhWJjG8KUZbap/RaU9OONgLIQ\njvcbUPmPBAGj9f74JFzXhmnacVid+L9tbXynoau2xX8sEPY7bWIrPHUMDwFIIEuMwgbZC54lVVnd\nlMUkYImkxnbMOHExQ4/5dXGJMz2PNUXlJMa4R+pyHBFgxRsWlHcsvEmsLM9wi9KTxvFlqKwVAsmA\nAD0tS7nuekE/XmetWGCbdEaKuonGYklD57FqzM73RbRtnaF5XqUYx8KjzjMFAVXvM+VNp2c5e2mg\noakOS13VtMm5M6bkzmzoqltz5KXp+fMWli4VWEXnIw4rzfTEerClYtsJln6Rq7/ExmGNQaYOxt4x\nz/vu3mY+Uifji4DxAUjTYGpODxpf+FTuCoG0QyDcsC206S8Wh8c+6zKLU+yxmQbHvFy726b5wpYj\n/sh8r+r30+CVqiIMGQHlMjpkyFSEdEIAEyNtv93mhFr6w77XDz/b6KungNxUDnLp9KJVWYaBQOxX\nENr1In5iw0hERVEIKATSCAE99MZ9elejbeJi2/SLNeFomfpdpW5h5yplHkmjWqqKMhwEFCEcDmoq\nTtogIEYCNe3CyivOKDnfrjl2NW98+/DKYDgITRSP1KEQyGQEhM+o5jjrg1rBpEjdBjYcy2QwVNkV\nAgqB0L7Xwy21mstrm3sF5kGdGcZiTDW1D1EAOTaMi3wa8NvUfhtK+nFDQBHCcYNeZZwcCIi+oNI7\n9YNz/99t8+6o9Fa9e+z1w537hGypP+6ZHAgrKVIWAT4O/rHPWPEMyhCqFTttqqGSlH2dSnCFwHAR\nMIiS3t0W3vGcJdChFU21VZ2HW40YMRJdaGofcvy30mVrD0ZebPLDCY3Onx+lBKT2m1XSDwkBRQiH\nBJcKnLYIeOxZC0uWXjv9H/JdxU/ufqDV36RMhGn7slXBhoKAZndZSwQhjNStG0o8FVYhoBBIGwTE\nUjKhvavChzdZc8ocF3w69WngiVdDWeCE7y1xcWtLe/CvDd09kYiigycAUmeZgYAihJnxnlUpB4GA\nVbPNLFh41bRbg5Hgq7V/NYwjg4imgigE0hsBq03Lr9Tc3kjt+uA7v0vvsqrSKQQUAn0RYE+nwKs/\nCa17mK0mbGfcZC2b3TdM6t4RdkDdMjPHjrlzZ1fort0dH9zQ8rGNLetaA6lbKCW5QmCoCChCOFTE\nVPi0RQD3F7vVMT1/wQ0zP7Hr+Ob6zoMU1ZhRoPxG0valq4INBgFb9VLH4g/qkaBl5wulATXNZjCY\nqTAKgZRHQOxBr0cskWDgue+Ftz+rd7VYiqptM5enmS+l8HvVtGWF7k3LSq4qcXeFI1s6gqubg7ds\naPnU5uMvNfUEdSyGEaENGM6kQivgTDqWpvxLVgVQCEQRUOsqqaqgEDgJATqG6Xnzz6tYvrrumZtm\nfcqh2VlZI53cY04qrbpQCAwCAT4A68xLte3PZ7fVndUWaqhQH8QgUFNBFAKpjkAYN9FXgmse1Nsb\nNG+pfd61thkXWz2FghGlYxuQ57D+YkH++tZgbXfosfru3V2hFxr9Lzb6z8p33DIha77XPivHYce9\nVA4RpyMCqV5hlfwjQUARwpGgp+KmJQK6zaotLr3oFf9fdjSvm1d8ts1iU+6jafmmVaEGiwDqX06J\nfeG1+upfLGwPO/yRwUZU4RQCCoGURSC0+Yng+j9betqtE+Y7Fr8fTwFhG9NSf13RAd6ItPmdleeA\nAV5d6nm5uWd9W2BVS8+61uC61rbqLPvyYtfsHPsZXseMbIcGFupQCKQRAooQptHLVEVJDAJi3C/H\nmTcpd/rKmke2Nq6ZU3TmmWUXRftBNTaYGJBVKimFgGEkt8+5IlK/tWDPaoyErrCuYzuPFqL3b0qV\nSQmrEFAInIQATpB8yoz+CJ8YPbTn1dCaP1jsDseyz9unXqB5y0TgtF5lONYZyGWzXFnqvrTYeWtl\n1itN/ucbe9a0BR6oDeU6rMVO63uLXZeXuM/Mc/T6jYKL4If8gKE4FY2iahhFlVFHqiBgu+uuu1JF\nViWnQiAOgZVNPTs6gxcXuc7Mc8Y9GsGl0axrVpfds7dl68Zjb7ARxRuHnqWRn5A92cYCG5pVrEqt\n3EhHALGKmooIaDaHtWRWcPMTjua60IY/2SsXa94SC5+DOhQCCoHUR0CwQbG4JpMGw8H1fwy+/mtL\nOGCbeZlj6e2aKyf1yzecEtg0S6FDOzPPdUuFZ36Oozts2d8dOh6IrG0N/OmIb0N70G2zVGc5hFO9\nINEGYRYOteKIpZfDyVvFUQiMLQKKEI4t3iq3hCIwOoSQdl0M7DltbjhhMNIT1sO+UOe2prWbm95h\nCNVty3I7PCxJmtCiqMQUAimAQGe48/WDTxVa3M5wOLz/TWtRtZY/UXwt6lAIKARSHAG9rSG8+6Xw\n1r+FNj4e2vWC1eGxTTyTHSasrqyMNXYJlic9ITR9WrbtunLP7ROzHFYtbNF6IpYdXaFnjva82Rpo\nDESCLDqjWdpCLD6jZTFuLJpF1TSm+CeRYeIrl9EMe+GquINGwKbZFpacx789x7cc6ti36dibB9p2\nPbnngYneqedVrDi34j0Oq5ORQDnB3Gj4Ves/aHBVwNREIGC1rC6y9WTPXt5msx5YG9632lZ1bnRg\nPDVLpKRWCGQSAsJ2FbVfGeYsY3EY3dJyMHRwbfjAW3r9tkgkTE9mLZxiX/Q+e9W5WnZRb4xMwulE\nWQW1M/xAo64Q2Xbbl6q9H50Yeac1sLMz8MxR/4bWAFMNXVZtodcBVmVO2+Wl7uvK3L24xSoGUexP\nJK/OFAJJg4AihEnzKpQgyYrAjIIFU/NmLyo5f/fxTexPWNu+t7G74a3DK5dPuems8mX0FaK9F/8b\nHWyylkLJpRBIBAJah11rzM2zeCZpNWsjDTvCDdtt5XPFCuxiclGs6pOI3FQaCgGFQOIQEBPejPlt\nYpqbMeeN5UNDW/4aqXkr0nlMDwWw+bsW3aRh+XflaLkTNKt0hMn077pvy1bgsF5R4l5R7Lq+LGt7\nR+jttp4H67rWtgWFGqAHN7YHy1zWc4yZLLGTSwQdFC0l/2c6pImr1CqlhCGgXEYTBqVKaOwRGB2X\n0X7KYbVYPY6ciTnV51auoG9gbmFrT9OmY2/sb9s1PX++055ljSrDqpXvBz11K20Q6A51vVr3VHn2\npEULPm7FmNC0N3Jkq73qPLatN6q+qv9p86pVQdIQAWiI+C8SYXKg7msPrvxBYNVP9YbtFn8nlkD7\n7BWuFd+wTZir5RTzRRtz4NQXfapqYNX0fLuVHe0vLXR9ripnTrZ9bo5jjy/UEIjAErPs1kqPFY/T\nkG6R/4KYX3U9bLGwkrlC9lTIqmfjgYCyEI4H6irPlENAtN5iVM9hcVw97ba5xUsMU+GeXc3v3rvu\nn3EfXVhybmn2RJfNk3IlUwIrBIaBAGql66rvBF6+J3xwjf9v33Rd/g1ryYxhpKOiKARSH4Ek9w05\nIZ7e3RbpOMrsX2YJWkJ+kLdmFWg5ZdbqpfY5l1tzSoz1UHrnzBlm/9R/O6NYgl5Ln9APXFbLVWVu\nTq4odd+xrXVbZ/Ar21tFALF2a5T9YRsE1Alu29enefNZostpZbZhQuTLtom1T8XCNupQCAwXAUUI\nh4ucipdxCBhtrfFTnTe7asGsnc3vvlb3DDMMn6/504ajq+cVnb2o7PyqvFlMPhRuI2IklkO10BlX\nUTKjwLrF7XVc8FlWGQ3XvAkzdK74F61gCpqPUH9Urc+MSpBepTQcKkWRBlN9RWDa+egR3ZpvMBF7\no4z234Av0nJAD/ii8xm6W8Vl66FI03699TCC2yefZckusk0931o8TfNOkN9stNcyZFOf8WlfkYBL\nvvPeM3p+1p65d17+U0fFvvZdWAZFi9i7FLOud4X13V3BO7a34ozLxobQwtPmMpgAeXatKstOmmVu\n26xsFHuddW1mZtuLnCdWvzPYvkgMkY3qK8+MO6rJHgzK6R5GEcJ0f8OqfKODAArArMJFlTnVB9p2\n4kS3p3Vry6G/b2p8c0bBosum3FCeM0VwQtrbZNIQRgcJlWpGIiB0Ck3LLXde9MXuhh2R43XsWuZY\ndBMs0dyEKyNxUYVOTQRkc43sg2uyhR/g9mfER9BxNHR4kxZm8pjYgi6JCs/aMD2depjlMBEKP8WA\n7u/CW5QLW+VC+zkf0fInaXaXhf0kBJlR3VViXp2oEhZ9epb9H6ty2kLhUEQyRfEOOHgUiuhMddnd\nGXy3PbirK2RwMvlwBL+S3mk95JBltebaRXbw+Vy7laVujAogqsB5+Y6p2Sx7w6FPdNvOyXc5CBgV\nzbitfjIbAUUIM/v9q9IPGwExJ9+W68xfULqUlUi3NK/5+76HGjpr19S/hLVwRdUtK6putuNhqg6F\nQJoiIHyhKFp2oeZwW3wt7GEd3vuq+5ofaN5Si1X1LGn61tOkWDpb7Rn0DRU9ouuo7Xpo/Z+MO5Rw\nQB05uO4hCYBhCBchxSeg4apnTSYuKGUUIzYnvkTdYpu4wFZ1nm3KUmt+pUEBRTn5hqO/AxY6mpr6\nM0gEDAqo0/cXOWwGzjprEMi4osXU9NsnZffizmUCcG8MhF9q6mkORNpD+oOHfO0hUhXMsynAdEXS\nF1mwKcaWjhAWSqqr8GIVNyNfmepdXuyuyrLBDO3ssJwAWQYJkgqWjAiobjsZ34qSKRUQkA41RnOu\naQuKz52WP2/j0dfXN6w+1LH/2f0P1XceXDbpakyIHkc2xekdpkuFkikZFQIDItDrCm3oGYb+oDOZ\nMLTtmUjd+kjbke4HP2qbd7W9aqmWX6HlV2q923UKBcQgkOpDGBBa9aAPAsJuZTCtft0X5bOoEisW\nzdQt3W16oMMS9Ed8LULnFrWuT6KwoJ6OcMMOS0+nJRJipdxIZ6MZSqjsAx+azaZ5yw0FG+3ZZsnl\nXLPmTxQTaM0kBo4+xk+0nBJr2VyLzTAY9clbyivx6RelPjHUjcEg0FsPelu63r8irlQXzLNE1ZkS\np+2DFewVKY5vTPfySy3e2hHc7wsZn48QqbY79G57QISwWAIRCxxyn0+/Z3/HPTWdhGG51HMKXLNz\nbCQ1Lcsu/Vijn4L4iHoLJeOr3zRFQBHCNH2xqlhjjkCWPef8ivfOKz5ne/P6V2v/slGsQbpjbtHi\nSybfUJEzeczFURkqBEYBAUNH6Ai2RsRSeeLghlYwmd2r9ab9oR3PhXc8F9r29/C2Z6xls6zlc21T\nzpPBjIAWzZllKawSv+pQCAwCAWNvBLnGSf+hI0e2WEJBPdClG/Pl9I4GvavF0tMRaT2M6a//ONw1\nqKSh5eoWZzb7plgcHs3utlbMHzCK8UCzsRLIDCMBPC8d1lJxbujcQtlPNq2ZUgqRxCcqxFRH5iDA\n4Nt8r31+jqPfSukLRw74wmvbAjs6g4f94d2d4Reae/iXZdWmZNnYLWOO18H8Q1ZPzWbNm36TyBwo\nM6mkihBm0ttWZR1tBDRLnqvgnAmXwQBfPfjUpsY31tS/Ut9Ze8nk6xaVXmBXfnSjjb9Kf5QRsFkd\nBe7SuvZ9gXCPnI2CqmksImPTSmY48ibY510Z3Py03loXObI50rArvHd1VCI52myzOZd9wTb1glEW\nUyWfJgjoQV94zyu9nEbQmvChjdQuWTxRp3yteL7pkZAw9zFfjkN4c+rW4qnW8jmxxhkZJfrLFMDc\nctvERRarQzhVOnM0GzsH2bSs/FOTJ0GxDDKJc53Bs4w/UE98M5OSeEnL/KkLdRIy6iItEKCaavqA\nbsweqzbHa+dfRzDSHbF0hCIb20Nvtfa8cxyKGNrZEcpxiImIXrv15nJ3qct2XZlaPj0tqsXpCmH4\nEp8ukHquEEhOBL66o+3xet+dM3KFU34yHUJn0LXajt0/X/+tQKQHBWVK7swvLL7bYXXaolv9Iq4a\ntk2md6ZkGQQC3cGOh3f8YtOx1y+aeM37Zn92oEoc8R2P1LwdXPt7HTVdHgwzs/BGOOC49MuO2SsM\npZpb6hMYBOj9BWEOnEF94ErMC+JXzBcLH3hHb97PVgKsJBk++LbgS4KlpPBh1BDBvE54cqLpWh2G\n47KsPMYl86IKJtqmnMMSKUyT0/InqoqVwm9diT5+CLzU5H+k3vdGSyCs41mq80sbUuyyXVbkLnZo\n5xe6Fuc5cCgVhkOmRtIKmQuojp/MKudEIaAIYaKQVOmMAwJJTQjBQ9e6Q51P7nlg3/Etzf5jTqvz\n4knXLym/mB0LcS8yVBalt4xDtVFZjgABfV3D6oe3/6TIXfqt839ppNNPHRZrFqDFiyfRpzDA0JoH\ng2t+b8xrmmOsdWGsazACUTI6qmBJGmaxSMN2Vo+0aKwZIdiTwF1YsTSNxX5S3zVXlBLzXXaBSQip\nT7apSy0sjymqlnhum7lcTBc0jmiNE7ejFU/eV78KAYXA4BAQg3VB3cKEw2eP9dT5Q3u7wo2BiC8U\nFkMvmuXMXMeVpe6JHiuepXlirqH60AaHayqEUi6jqfCWlIwph4Chn7CKhseeffPMzxxs3/3aoac3\nHXtz5YFHdra8e1bZRYtKzy/0lKRcsZTAGY4Ainehu6TAXXLUd1gq4QMp3nH3ISu2acsijXsjh94N\n7zP8SGGNSpcYbn0Sq1saEGuefOukRRp+j8b7sFYuFGQJrp1XoXnykm9e21ALrFsoYF5FjN4pFFbx\nn9REDRbcW5GiVUpVq6GirMIrBKIIGONKdk0/J9/JP26uPR446A+3BfVD/tDKxp41bYG1rQE+vhvL\n3csK3ecXOMtcJ7Y6VDCmNALKQpjSry/ThU9aC2HfF9MRaD3adejZ/Q/vOb7ZYXOXuMsvnXLDORWX\nEVJ4+/Mfw93GZKy+cdUdhUCSIIAifrij5qFt9x7uqnnPlJuvnfbRIVAO1HV/m+47Llb8V0eiELA7\nNWe2IIdyEIpZcMqJK1HYqnQUAgqBXgR8Yb2hJ7ytI/jW8cBTR7u5ZJJhsdN6Rq7jrDxngcN6XoGz\nwI7NMOr6wQjVEHqH3lzU33FEQBHCcQRfZT1SBFKIEErvpvae4+xi/9bh57rDvkgkUppVceXUWxeU\nnOO0uU+MeI8UFRVfITBaCBh9fOTFg088u/ePue78Oy+439xia7SyVOkqBBQCCgGFQLIgIFwRNrcH\n/mt/58a2IDtYsOGhmNJs7DD0kUr3FSWeJXlOp3AmZZibP+pIGQRsd911V8oIqwRVCJyMwMqmHtZN\nvrjIdWae8G1I5kMM3+sWt809s2jRwtLzaCjbA62tPc3vHn19b+v2XGdBUCzbmMsGx8lcCiVbpiMg\n+nitI9C+tXmNTbOdVX6x264WoMv0SqHKrxBQCGQGAkKRwZupzGl/X7nn2jJ3mcuea7dOYdMtm8Zu\nFmtbg3876j8WjJyR58hm5V41wzClqoUihCn1upSwJyOQQoQQNVq4Txj/Q/xmFCyo9E4t9pR3Bttq\n2/dsaXx77/GtDZ21VqstGOnxOvOMlrTXathbahz2xKLnxhQZ0jJO1XyZXnTU39FHgFpHJmygwn4q\nrDjqsrunF5xm67bRF0rloBBQCKQ3AsIqFe33jILKZau4JSbTysN4HB9MLrVkzjjtDZtmf0WppXJA\nwYzZJ318NXuBGWnJQVn8E/OXNS3PYcNZ9Ooy99WlnqUFznleR4XHerSHTSyCrUH93AIni9AYzuwi\nuDqSHwHlMpr870hJOCACKeUy2k8pgpEATqTP7f/j3tYtzd1HaTxzcMW3Od02z9kTLrlsyk1GHLMt\npckXjNDYX0hON0xUK9+PbOqWQuAUCDy97/crax4pyaq8be4d1flzThFSPVIIKAQUAiNBQC4WJJwT\nJCuUEzCMZZSECmv0kDwyHNol+Yt2mv6Qb33Dqt3HNzOBfyQCJHlcSlvkKZ9RsDDH6V1cdjHSmoTQ\nYNLoCeIw0ZOXo/Crd4f1HR2hL21vPRaIvLfE/ZN5echmqCnRNzIKmaokE4aAIoQJg1IlNPYIpDoh\nNBge7bRoMLc3rXt016/8wc5gBJ981nhm4Q1tQk7V/OIl0U4w2qpblk+5iZYdK43VardraqHgsa93\nKkfRx9+77us1rdshhHJtJAWKQkAhoBAYDQRER8medxyW6HpUXEdERyn2yTvUvnd3y2ajl4T+WHe3\nvHuwfY8UAxYiRlA14dQw+nRoNIo+qDTBJxRdqUuw4+KsivklZ9utDiLPLVxSlTcL936AMlnioBId\neiDDbCto++qWwD/vaG0IRB4+o+g8VpshKWUjHDqeYx9DaZNjj7nKUSEgERBtt9hPWjTVlrnFS75d\n/EAw5N/SvKa2bfeulk2BsL++80B9Z00MXmKY7YUDj7GbBa08m91PzJ3qtmfnOQvxPrWx9Hz/h5GB\nzKb/AOquQmCoCOhTvNMghKISq0MhoBBQCAwage5QF64xTd31YT00yEhQvUbf4cOdNXRmHJgy6jr2\nHfMdMa6i94TJUNA+a76rGG92ejwokNuelecqnFfMym3sXZmeR3ew62DbblBt8NWGwqHj/sZXDv5F\nFvWFmseWT7lxRdXNTFQZ7cIbpE8Mby/MdVxX5vndYd8Xt7X8Yn7BeflO1UuMNvgJSX8gDTIhiatE\nFAIKgVMgIBpJ4/8TraXT7maXQv4d6tiPu8vhjv0ySDQVzbKnZUtP2Hek8+CO5g07mtfzNMeRW5RV\nPjGn2m3PYWqikaLFZrFVeKd4HfmCcHLoLAImn5zIK5pm/39kF2v0sGynGJ2J0X9QdTczEZBVi/1U\n0OqsFpvUBjITClVqhUDaIxD1zTR6rIELGxEszOgwCCNOLJYW/zHDY1PvCLQd6azB+aUr2M4UCfo4\nJk0MnFQ/T2KtfFbNNsk7NceZT7jy7EmF7jIZgYXZijxlHodXupDmOPKKs3g0yI6vn0xT4taFE69E\nzgNtOwORQLOvPhDuoX1u9zetbXj15YNPtPW0nFfxnpmFi8T7AAupFSS+YNHKkefQPl+Vs6E9uLEt\n8NBhX3WWrdyluEbi4U54isplNOGQqgTHDoFUdxk9JVKShdF+n9STdQba6FB7Qr4G36E9LZvpWWnx\nRTeJr4zVao4CWi1iZNRmdSyZcCkzEsmoyFMKXbRbB7kcqzHWavQeYsSP9E+S4pSCq4cZgADa4dv1\nLz68/acsgPSRef80u2ixqiIZ8NpVETMUAcMbUPYDp+oJcBlgsFJ2XcFIkE13W7qPBiJ+f8gPcKFI\nECuW2aVxcuHEK4YE6LT8uROyq2QULIEeu5seDZ9Ql83jsrnNvlJKG2U9UprM6MBEWUV/LUZwOULh\nwN7Wbb/f+kNf0EdDvbhs2VXTPoxiIJ6N5iHFONwTvuCNRrdV+9LUnE9MynZaT1VzRlMclfZgEVCE\ncLBIqXBJiEAaE0KjFxOELF7Plkwt2r2Jjo/Rvm1Na4901r588HGjLxAvSsxCjIQx3eg6Q7byMMLK\nEcLonVP9wYW1Itr1anOLFzOb0QzN0Kzd2HQoMzpZs9wxJwJ2JnGKSRqZeugofC/UPIoDM9Xsc2d+\nd1rBXKc1bZ2yMvUtq3JnKALh6Aw98ZkDQV37HubpQfa2N689JSIo/bLDER0Xs/eYyABzs7F8NtPd\ndX1S3kzpxjKv6OyKnEmWIe5TJ5LG24XW1+A8YnagtEJGu8oYykFQTYSUT8RJBhwoBL0KA929ODDX\nHmzf9/Te3+9t3RoWr1L7wuLvTs9fMPAEkwTAJPIW78by7LGeL21jwVH9+XNLZmYrI2ECsB3VJBQh\nHFV4VeKji0AaE8IRACdaY3xNj3UdZm497jokZSxn2hKKBGQncdrExRwPf4vRt/T2o71/6V9ZW3KS\nt1p0sXI08rTJpV8A3ZLnKpqcN9NuseGpyxwVo/+z5bkL3LZTjb/C8/kPLKOajOi9TWRTCSZRDIuF\nuSsrDzy6uvZvbEzM8PN7qm4uz54IVRbPpOvYEBW+VIJAyaoQGFMEDLuX0V5Evy+jBTaUbyGHYEZD\nb0/8YV8bTT1DiII7iMao3ldLarVtou/wh7tZ7czIDg9E0VLlugo9A5uYrBZrrqvIbXeL1Cy6x54z\nJW9Gli2nMndqSVZFirZ1AtxUPqgXwbB/dd3TmxvfqWvfCxVcPvkmXEy9LuFt29v99P5NaEnZmfCe\n/Z1/OOSr9Nh+s7BgioeZBaOSUUKlztzEFCHM3HefBiVXhLC/lyi1hd4nBvNg1/um7gbmFRhDq72P\nBviLWtAZbGWOB89Jq62n+UjHgagnisXS0cM8kAMs72Y8FXll2mF0aL29mm7Jceay5DcgYDjFLzfL\n4T0FIPCl6vy5ldlVkhAapPoUwZP3kRiKRuPTLb5Q5yu1f1lX/yrq46Tc6e+f9bnJeTNOkF5T30je\noijJFAIpgoBhAIp+XELkKAFsD7TWdxzEUA9/Y5KeP9Q9+PL4gp0t3Q1hC8a06JosB9t3nqAJFp0F\nWgz3EL08e3Khp6TYMyFbbJPb/2GzMH+vPMuejWSi8yAhw0QnTowr8aOOsURADN0Jog/+Tb6jbx55\n/sUDjzlt7lmFi86ZcNmikvN6W+jeHi2hspH1ke4wetrbrYEVxe77FhT0ZpfQbFRiCUJAEcIEAamS\nGQ8EFCHsD3UxkIy2bjW0hxinGtknD77djxJL7IqxGgbzQFjthnx5PPi0+pMzhe8xdXN3y6bOQHt3\nuHt9w6sAbo57it534AP7YbYjx2XPOqf8Un7LsipmMNE/JY9I1DtJtwQiPY1dR57c8wCTWvM9xYtK\nll4ybONVJwAAQABJREFU+fpCT6lRPTK2jqTkS1VCJzMCom3RtZq27Yc7DyBnfceBfW3baIZFmxz0\nYSJkenl3yCdH6wZfEMhCbGPOnPMl5ZfQuJ9dzvzzLLuxLy7tvcvuMRbqPNUXjaWRbXINY6XRQRhh\nReJCdGUcGvw7SVhIYUAWPbXso3Ta6gNtu/6446fN3cdy7N6zJlxyyeTrWINHBBmFw8hVf7y++992\ntxc6rKvPL1FW4lGAOWFJKkKYMChVQmOPgCKEY4+5yrFfBGDfe45vqm3fJ5hyn75V9sqHOvbtbtnI\nnJxwOBiyhJhaQ1IlWRPeW/3BecVLWBeBXSUNSyz3pQJFZy7CpMTBcqN/3vnLbU1rQpEQw88fmvPF\nQnepJMqGkSBlCpISaCshxwkBMQ5ijP70+ciHIZC0+BmrrUT0CEQOK58gUqjnvSNMBHnj8HOsIsa9\nbc1r6ztrpWpPGAKyv5zdahNNjpV53WJKc2lWxZzixTaNhf77aYhE0n2Oyd4ZMwoXGuVJRKH6pK9u\nJBsCmJEf3XXfwbadIT04s+CMW2Z/tsRTAY83eq6E1gHR8+nPN/V8bXsbS4++trSsb+eYbOBksjyK\nEGby20/5sitCmPKvMF0KIAic4UR5wlYYWzTUOnHJAG2AFYCYn8NWUSh/ON+29jSHwkGn3bVs4tUz\nCxZW5FTlugsJSrdsaH4J7Z5jRUr8ud7qb153dNXmY2+yKdb8kqU3zfh4YVa5YRw4oeAmPluVokJg\nrBAQDM4Y3uhr6GDeNd71gxeEed1sBoAzP2a92vY9nB9jn72OGkH0GBYSRjtxxGXETDyH1cGkZZcx\nV3mit7rYU8nkv9KsygpvtdFoEJG/MEp5IpM51a9BS8lnsOFPlZZ6lgoIiO5Is7xa+9SGhtUH23fl\nuYpvnvXp6QXzme9g9DcJ63SMbtGystH/tZ1t2VbtybOLy122VEAoQ2VUhDBDX3x6FFsRwvR4j2lQ\nCqG+Gb1snALXWzSDEYpngh+J/la3MDpb07aLnaNq2nZubVzDPebeVOXNXlBy3oKSc5nxn9i+uVeS\nUf0rFIB6X92Tu+7f1bJxduGZ75/zBeyECbOojKrsKnGFwOkRECM7HT2t9V0HIHIEh8K1+ps4EXvr\n+cW860EezOhmnnYgxLzuEzHEfnqe0hPXnBmtBWs+c0pABozw22SenseRzbfGHTGP0KByRvMjAokr\n444R46TE+rsQJRJJCTFiROkvqLqXHgiIZto4jnbWPrP/4V0t77JANHXsmukfzRX7OiauGhiVsrY7\n/L51ze0h/QtV2f+v+lRz7NMD3tQthSKEqfvulOSWr+1ofay++87pubdPzlZwKARSEQEx/yfsa/Y1\nvHzwL7uPi40l8R2dkDMZg+GZZReKtdqjippQ/ITilsDeenTwQtto6Kr9845f7D++s8I75caZn8SD\n1JA7qoUkfxFGBxiV6tghYAzAGB+M+GiMb8f4eqJfkaRSiCM/qt6v6ljXod3HtxBwdd0zYuCGs/4O\nnKIDoe6wwdVw5gxEgqyrK9LQjC0RyKNX4e4v9ol7RVnlTCHGUZyFqdg0PMeRy7fv6G+r2JyB13E5\nkZw6UwgMEQEclbtDnS8ceHRV3dN8MpNzp90w4xMseyaIgem1PMQ0+w1+z/6On9V0nJnn/NHc/GlZ\nav+JfkEa/5uKEI7/O1ASDBuBr25vfbzBd+f0PEUIh42hijjOCAjFU6ip/G3yHXm+5pEtjW/3hLvp\nqifnzphTtHhO0Vms7+e2Z0sfMEODHWeRB5P9Md+R+zZ+91jXkRxX7sWTrl1aeXm23St2I0t6QjuY\n0qkwSY6AJIRRRmg4YIYtYXyz4XhBscNeqNFXv6N5PdSuI9DG3nosEEWJBKkzvke2T3DYnOYARt/C\nshGrTWxDKrjfBRXvdTmyiIiNpTxnStSltG+c+DvCNBelnIJDkntilfD4/NS1QiAOAfMzqW3f+4sN\n/xoI+Rmk+PQZd5bih0zdjNbOuEjDuXygtuvuPe1zvY4fzc2bm5PJ+/cOB70xi6MI4ZhBrTJKMALt\noQiEcGVjz7/NzL19krIQJhheldzYINDrsBU1KqCwsnvkO0de3NWyqam7XjdMDjDDZROvml98LiuU\nSteusZFt2LkIPUOzNPrE0qP7WrZiAmXvyqUVK+C3pdkT+7WBDDsvFVEh0A8CBq/zh7qYo8uoBPN1\nj3cfY6oen8+hjv3UTKKYfIx1NfNdRcaXpeWzz57D67I55xQJL82BDtZuYc6eNASiOIvVNQ312WB2\ng1Wlja9EmC/lYfztvRgoY3VfIZBQBIwPRQyZMLOdDYQYjixwl3x47pfYa8Q98IaTQxXh5eae2zc1\nz8tx/HBOPrRwqNFV+LFBQBHCscFZ5ZJ4BLZ3BL+64/j2zvD9C/JXlHgSn4FKUSEwTggwvwi1FcfL\nw5379x9nlfkabAnnTrjs2ukfE3MLxYoTqWFMCIT9axte2dDw2v7W7RGLXpE9+ZyK91xYeYXBCaMq\ntGkoUQrxOFW34WdrcCp+JDOKsSgIq7e4b9TUwRKkoctheLZFl9QXlvZgOLDn+GYqEtvqbW/C7tfR\n4j/KmorYBuF72O6QyarZK73VXkc+q+1PyJlCph57NjuIso8o59zMduQOThISSxh/S2Rag5NehVII\nmAjQofBffVftQ9vvxVpY7Ck7r2IFnh3sNcL9Xu/REVXSqpeOFDptP5qTf2mxU7QNAzlkmzKpkzFH\nQBHCMYdcZZggBOp7wlgI3zwe/P6s3FsrsxKUqkpGIZBECPSEun3BLkZtn973OxTZj8z/ytzis4R8\ndKiiS02YPiqSG5VDD0ciTIzc07rlhZpHUc3Z2czrKrh9wb9UeqtkKVCqpaIhDCYpUKJRgSllEzXp\nPHXSMJXJG0bFFC9UUMJR0f1Itrm7ga0v2ShVErM19S+z1Kcv2CHBpNZBC+UXgoGdm7MKz8BAzR2x\nxYvVgVMoJymLvBJcIZAwBAw7oSVkidS0bn++5o+7Wra4be6zJ1x63YyPu6zukTfLNAVf2dH6RL3v\nS9Xez1flOI1NiOSIYMLKoBIaMQKKEI4YQpXA+CGAhfDx+p47p+fcPjln/KRQOSsERgsBMWwr1Gn9\nP9750pGOGswaH5jzuQWlS8lvtBTtBBcF+Q27jKax++JLBx9/ufZJf6hbuMJq2tyiJTfN+iRr6Ns1\np1WT+2AlP8VNMEApnRz1E+MbG+hBBrHWsYmCwcD0PS1b2HVTFu2lg08a1TjBBe2tKOKvwTzFJ+E0\nNvNkdh/iuOzZ51dePrforAnZUwy3TGlYF2IIYcUOn4LCJlgslZxCIAURkKZ2ehvDsG9lmehX657i\ncnLe9C8u/j7jJsZI3fA/FhJ+9lj357e0XVLsvHdefr7NRkbq60u2mqJW+0m2N6LkGQoCNCpCszSj\nCO3ZvFAnCoGUR0AYzSiE9okFX//Dtntr2nasPPAoq8B5WXUwFYxpQlNHToqg63ab471TPzC7ePHK\n/Y80+et9wc7tzeu2v7F2yYRLJnmnT86bkWXPyXUVZjvUuuSjVG0Hah4Hun+SGL5QZ5s/us+eOO9p\n5uUyN69O7KF3nKC4B29rXkddFcPM4q0b2qVmcWi24uzKk9JK0AUqZbYzJ9dZSA2TZVhUej7bnEzK\nmy60TSqdkKZXDtkzCKOluGtwwgTJoZJRCKQ4AvJ74BeXatFYy4+FiYXte1888PhV027VLCPaP5D0\nFue6yt22V5sDXUE9z67YYDLWGEUIk/GtKJmGgoD2RksPi8r0DhIPJaoKqxBIbgRMX53irIoPzPnC\ng1t/XNu2l5keXucCqe4mt/iG4o36jZSGrsEfFsj5wJwvtvkbO4Ptm5veWXvkpXUNq/jH3C22RS5w\nFcN1vc4Cdtyu8E4tcpeJqKj7QuE30uFc0I0T5RYPjDAnbqmzfhCggeQQQBq6mAEjNwwkBaSiPhk/\n7LMXOH64k332Qv6Q71BHDUuzEKcr1H7cf0xQLF3rDLa1+I/1ZiLuGbXRwuur9E7lgvl4E71TeY+E\nsVvtcqpeb/jE/dUtTKnNdxf3Y2pAiGjhEE4+7/3bm78RpPdC/VUIZDQCZlcjmgjR8IrPWivNqizL\nniin144MHi3Lri30Ohr8YaNXUB/fyOAcndiKEI4OrirVMUHggkLnc409WzpCdd3hSW5bRNOF25k6\nFALpiEBJ1oSZhQtZYGZX87szCxZINTzlCsr36XXl8Y+Tqflzlk+6fnfr1g1HV+9p3tyiNdRpe1FE\noBAsZuDUPA6bnWAV3mnT8udSUjR6prXIte8ovqQ3BIiOZ6ccFmMosDFeJsigYIOi6ghSzV/2VWfW\nkBTknfqX8OblPKwH/SE/jyOWcE/YDzOUjMqIJ9REFm2R8/EIzO55MwvP8DpzCY+vJlOPjDZYk/P0\nRrWIFIf0kUYdCgGFQGIQMAaM5pecvaruqRbf0eWTb1hYImYoqCMTEFCEMBPectqW8cxcZ5bV4o9Y\ndnSGJnpsVmPoO21LqwqWwQig9bIyJ+Y1yNILNY+hgs8qWJiKurDwIZUGKYvFafeU8C+74oKKyylL\nXfteFjPoCrbtaN6Ad2KX3q6FtLAePuqrf/fYa4byrz+661eCllh05oax5xs1wuvIm110pteZH0cN\nbFYbC4cYVUZzWB2JGOROuvoHOMaSKvA8nZVpTymfHowEdzZvaPLVYwKA+L15+HkRrde3E0ypY8zB\nk4nYNBsuvjaLDeMeO2FS67jPgkZsicmLkKRSMnHxQsUbFTxR8DMOYYyMNeLKu6PyKziuEGBUEleJ\nKgQyDgHjW8p30rxevLLmkWPdh112V8aBkKkFVoQwU998WpR7isfmtGm+YKQzzHpy0hUqLQqmCqEQ\nOBkBqWqzN9rismU4WD67/+Hc2QXlOZMMHTyVFGKhuvfKe0KNN84m5c7gH8+vn/FxdooTm23olrZA\nC0QRIxXRWv2NLCMJFN3Bju1N67c1r5eWq7/u/a1gM/IwzEZcFTGXLHc6VzbNMTl3upydmMd2cyl9\n6Lov1NXmb5I+tMf9jYADIMzfg0WfAKFvGXthMf6Kx1mOHDw8ORHI2KPzNheVnS+jlrDPXna1MCT2\nTdSA2vyRJ5KSGedjRgYFLzX+kyKrX4WAQmCkCMhP2G5zlngm8PnTeI40RRU/dRBQhDB13pWSNB4B\noSRP9tjq/eGt7aEby6UrVHwgda0QSAcEDAuMx551yeQbjvmO1LTtfOvI8zfN/KThAciHEFXF06Gk\nRhmKPRP4B80QH7n4XxzMWzM2FdC7guwvJ+awhSKhwx37OwKtvUGMcBYLy13uPr6pOTrPTccllQdY\nEfPcqU0IIUBdgXbKjmUMD3mTrVH8AndxZU51tPz9/aGKUH+YmSl9btltr8hdIiPKyX6xkQRvNCYW\nxt5U5woBhUAGISA6HdaYSbfOJYPe4BCLqgjhEAFTwZMJAfTFZYWuN1t63m0P7O0Kz8ge0UJYyVQy\nJYtC4CQEon6WmoU9tReUnHugbSecsKHrUHn2RIMqnhQ4PS5EkaXnIbSQM8PoxxqShjGKK8EBYS09\nIX84EpIBRcGN29xnJUyJw77WbYfa97NB+c6Wje3tYj3MFD4MF08chsuzKkWRdcusojPKssTeeszf\nE7tID3AACGGsFpvL7ja9Z8USzSeAOymmwFfCbsw4POmZulAIKAQyAwHajcwoqCqlQEARQlUPUhcB\nMX/ks5Ozfry/s7Y7fMAXmpZtYzhLHQqBdETAahAhQYFWVN381J7fB0L+QFgsAWJwIBT4tDoMr1JZ\nYlEu8yymnOIUE5m0d/UtfA47cxgHC+VZKvo+V3dA9RTtpQF5DNwKL4WAQiBzEDCIoBYRvvrqyBQE\nTtEfZAoEqpwpjICwIGjXl7laApFVzT0saKwOhUB6IyC9BDEMsvnE9qYNoQireKd3iVXpFAIKAYWA\nQmCsEWDwUY+I1RnUkSEIKEKYIS86PYspBrF1y20Ts/FuerW5pzOkGq/0fNGqVLEI4D95w4zbuVPX\nsZfVRGIfqXOFgEJAIaAQUAgkBIGIWD9YHZmCgCKEmfKm07Sc2Eu0Ko/9wkLnIX/44cM+MabFP9WI\n9fe+hwHLMKL0l7O6lzAExBvRLBNyJpPirpaNPeFuc2WRhOWhElIIKAQUAgqBzEYA9ysmcisHlMyp\nBYoQZs67TtuS5just5RnOayWe2s6jP2WlQ9d/++a1r3/BwPfjYsyGH4YGT8nE8QbjIQDFzf6RCbS\n3Nx89OjRYDB42vBjGkC8Es3tyF5Qch6bhhvrgoxp/iozhYBCQCGgEEhvBAz3K9awUgv1pfd7Pql0\nalGZk+BQFymKwIxs+8xsx7bO4N4usbTM0IlPipZ7CGJDb+rr62PZWmlpaXl5uUziwIED7e3tnM+e\nPdvpdMal29XVtXnz5sWLF7tcp9mj1u/379ixg0Q8ngEXPIxLPIGXkr7u27cvPz+/sLAwjs0OJqNW\n45g0aZLNZvvSl760bdu2//u//zvjjDMGE3eswhh01VhLc6xyVPkoBBQCCgGFQCYhIFeVOdW6U5mE\nRmaUVVkIM+M9p3spJ7is/GOZ+u/v6zDmFaZ7gYdevpdeeukzn/nMP8QcTzzxhEympaXFfNTU1BSb\nNuQjHA7/+c9/vv322996663YR/2eHzp06N/+7d/ghPJpQux1/WY00M0tW7Z8/OMf/9nPftbd3T2M\n3L/5zW9+7Wtf27Vr10Dpj/t94SQ9DKY77nIrARQCCoGMQWAYbW9KY5Om5dXMLWpG/na6w/q2TmN/\noChYanLiyEFNcAqKECYYUJXcuCBQ4LReU+bOtls3tgdea+kZFxmSPFOY3qZNm7xe70UXXbRs2TJ+\nq6qqpMzYwWbNmuV2u999991AIBBbEKjHunXr/vu//3vq1KlLliyJfRR3Lhv53/72t88///zq1atD\nIbFc9dgwF7w6f/KTn5Av9k9MlK+//vru3bs5H2TuL7/88kMPPYR3KAJjCIVStrW1xZUu6S6VETzp\nXokSSCGQ6QjQC8iOYJBtb9rglZblTSBjY2WHQEQ/0h1aVuDItjMzMW3efFoVRLmMptXrzNjC0Lxc\nX+b5TV335vbAzw92TfTYq7LsQ54wlwHw3XjjjXfccYdZUDpverILL7zwvPPO+6//+q++NkBo0ve/\n/33I1f/8z//k5OSYEfuekE5jY+Mvf/lLAmNR/OAHP2j6o/YNnNg7EEIK9eEPf/iyyy47++yza2tr\n8/LyTi1trABI++abb0KJ8aH9+9//jn/smEkeK4Y6VwgoBBQCKY0AvQCzD/74xz/OmTPn+uuvpyzj\nwpSQ4U9/+pMpw9hA2tHRQfe3YMGCFStW2O3poVqjICRm5XaUsddbAixQ47VbrZololmUMWpsquWQ\nckmPWjukIqvA6YkALc7P5uffuK5pTWvg7j3t/z03P491ZtRxMgJx3XPc5clhLT09PT/+8Y8x9/3z\nP//zaecE0nUQGAPj8uXL16xZQ6z3v//9cQkyTRG2xk2MkyZh8/l8OJri4VldXZ2bmyujYGCsqamh\nW508eTLT+WTEKVOmYOEkABa8uro6JgpWVlZSBOnhyey/PXv2EAZbKMLIkATG5bWhoYEplLDEiooK\nh8Mhs5C/kFgekTtGRTgh59BLUu5bXtJhEibutaRDvunS5ceCoc4VAgqBEwjQND3zzDO0PzfddJO8\ny2gXLdiGDRvQ/pkpjfaflZUlH9EiMa6EhwItjxn+RFoxZ0eOHMENgUaJloQ2B94S81A0bm+88Qbt\nkrxZXFzMOBfuG7FhEniO2LhUnH/++bScCUmWRvJ3v/vdlVdeecMNNww+wZ07d+LAcumllzIqN/hY\nA4VEBnxVkEGS0oGCJfA+PQ4jib///e959fSA1JlT960JzHr0kmJ6AlNGEpL+nq7Qr2o73Zq2JN/p\nEZSQMXw1Yp8QaBOZiCKEiURTpTVeCIiV9zXLFI/t2zO839/b8XJzz9+P+T9UQScqplyNl1RJmO/D\nDz9MvysF+/znPy+9QPvtuujh/vd///fnP/85gR988EGMhx/72Mfo4wciQrCyRx55ZO7cud/+9re/\n8pWv3HPPPXTG5iI0ELxXXnkFRUGSN2ySLNkCLcRJFdvj9u3b0b1QsG699dYrrrgCzoa+hWWShWG+\n853voGAhM8n+4Ac/OPfcc/fv3w/zhHOWlZWRyHve8x4m/iEk2hhRvvGNbzCH8LrrriMiN0nn/vvv\nf+6552CJ0Lybb775s5/9rNV6YqTghRdeePXVV+nLv/vd7+IWSxFQ14iLoiZR4hco0PN+85vf/OUv\nf4ExFhQUvPe97yWXkpISM4w6UQgoBNIMgePHj+N6QCNmEjzaK1obGkMaFogcTeLnPvc5hrFoHx54\n4IH//M//5ISBLTO8CQhtiGxmmV/9rW99ixQkIaTRY9Iy4c1GGAf+f/qnf2J8SsbF5eGcc84ZPUKI\nJY1Z3wz5yQbTFHiMT773ve/97W9/+8UvfnHbbbeNcdYJyc58fTK1uMuEZDFWiRjenLh4Gjt4RfTw\nSKgb1d5QzSxoZQe7w8sKnFeVuh3wQXUkJQInFKOkFE8JpRAYGgLXlLo/OyWHpowRKZoio20bWgrp\nHRoexbKZ8jh48OApCgu/+o//+A86tltuuQUaBp1DN2K8vN8otPuPPfbY4cOHWZyGwAz0MhkvNjBj\n6jCo1157DQqKDrR+/XoYGjZAEn/qqacYnF66dCkD1V/84hdXrlxJahBIVCICYJcjR0bNGVNHCeMS\nvQHaduaZZ8LioJHcQWciDPyQm5xs3LhRFo10oJF33XUXWhoUlEv0MMb4Y4uArW/ChAnZ2dmsoQrT\nI0coKwbD2DCcP/nkk1//+tdREC+44AIuSRNFSs6TjAupLhUCCoE0Q4CmgxLhp8DaWjQR991339at\nWzEP/vCHP3z22WdpUliZmfE1GsmBDFySIeBzwXpXtHgEpp35wx/+AC2EjMEzJWIkxegYHo8kS0Yc\nf/3rXxkXGz08afeuvvpqZpWPXhb9powvCW0pzbKctX755ZdfddVV8+fP7zewujlmCIiKrguXzoRY\n8CTzW93c825bEGfRWyo85S61j8WYvcwhZ6QshEOGTEVIZgRsVs1roxXSOsMRJjG7xIiHbJSSWeqx\nk+3ee+/Fqnba/FBcsOZhDYMIYQ0j/Cc+8Qn6bG5ecskleDrFpYDVDiJXVFSEl05nZyeEELvcj370\nIy7xvUSd+pd/+RcMfQyi45sklR5cRv/1X/8VWkhIaCEJfvnLX8Y8iDUS7UTqT1IP45F5SVzYGvyN\nGYOLFi1ibB5zH4nffffdZ511FkXD+9QMDyllsZkPfehD2DkxDyIYvDRO8osvvhguCvsl91irYFww\nylJdXc0wNmFgp//4j/+ItRB7JkWOC6kuFQIKgTRDQLY/8ECc0hljwhmeZoe2lPaN9oqGkbEkqCDe\n5gM5UMimDFdGyB7tG00fac6cORPXUEbB8BFlMIs7NG6MZ9HITJ8+nZnMo2cYNF8Q/qgc5uWYnQAI\nbTVFlsh81DjGLHeV0UAIoC0x0y8YChzu2EcYuzV+D6qBIvZ/X7OEwpbH6rvbQ5HZ2fbrSkfL87n/\n3NXdISKgCOEQAVPBkxsBxrc8Ns1jsz5a7z8zz3l1qTvXHjUTYjBU1HCQbw+ehuICxZJskFgoMQzo\nMoMOK1kcIcRGx4xBvDqhZzhQERjTGbY7poW8+OKL1157LWPAWP9w42RMnafoUowEozxxE5Yo1RHU\nAhQg2CacDYMeioI8pMBSaeCckXiUMPJi+wzGtj/1qU8RRYbp+8vyoczwgfLBBnkKjWRt1b7BTnsH\n+RnCJxGMhKa7KUobEp42buIDSGcePNCM+kzlFl454yFI4oumUlQIJCsCtHK4PND00aDJRgDD3TXX\nXANLxHIIITyt4DQXRP/qV79Ko2c2HXKusmzraOVICg/2Y8eOMbaFMwX+8Dhc0OgxEIYrKQs+46eK\n0ykpMIxFE8odBu/mzZtH00oicWFYKowwuGPQghGGVpe5bXFyYqhcu3YtbSne/nv37n377bfx18AX\ng+XEpOOGlJBRMPw7+CUjkjLzYiyPoT2cNWjMSRyBzfQpDsHoCxiYIxdAo82k+6B0GAORnBE6brL7\nEQOIzMwkdwyGTBonBToaxIY/04BTZJxKSJwEGaPEQwS2DFB0UgSmkzJnnptZmydkDVyIQelM8yPp\nAAs2Xug9/RS0nEKZiSAVj/BPoeA8QgbC0+kACAjQCyAblYG3M23aNKKDGLMMGA5gBoSZbyqfML9P\nb+w+9O6xN7Ls2bOLzhrRfD/dsqYtsK4tSCf1zem5qqdK8oqhCGGSvyAl3tAQwEl0SR5+6q6njvp/\nVtO5vjVwXZl7aYHTWNoK5VkpzoPCk36aTpSemw5PrpoASaNHxMGy76A1ffOjjz6KjsIG7sQiAyYB\nMmrOPhB09hA2elaUBpLiIBgBUFDoU3HyZEkDFoORm8ijOtDXkj6JIACJEIzOmPDkjt4jRccwyNg8\n+gT+Wgy0o5ChLshHcb+oX+RC+iRCmvwyAI8wUsi4wKe4RBdBfnJhniEdP3LiekriMMxTxBq9R2Dc\nW4+11w/9/boZ/6Aq9uihrVJWCIAAnAfGwnxCPAUkIPA0zqEoWPlgJoNpVeCNrDhi4kmLivMCbQuz\nBLlJCrhakCANKQ3XT3/608cff5z50rAsLlkAGVcIWiEG2mhFWcqSlg0uR8O4cOFCPNiR4RRhaDaZ\nQA6VMnOXJ/BPpnwz+xrKhKES3weaOAghjT8JMsDHKBj0iXmGrB0KIWRkkPVaaLplXhQH+aF5tMY0\n3bGEkOIgNms4M58cP1iTEJIabApnE1p7ZGBOJgnicMEvB5nu27ePaZYwTPxp6X3gnxhRscrSI+BD\ni9cuTIxOB6AmTZoEJtzhXcSVi0v8PhiplIQQVolpFzLPfaSiB2GrIQghPcKMGTOYG8+8TeYO0NHg\nxvKrX/2KR/QUPIIQQgtxXYHTAgVdEmKTHdMd6Q25gwMwYZhPzswFWaK+kqTYHc2yrWlde8/xJeUX\nT/JOHcmAY3dEX9noP+IPXVTkurDIKZaSUUcSI6DmECbxy1GiDQMBzVLust41M/eSIucRf/jJhu7/\nt639Fwc6hV+8OgaNADoBI6+M2qIQoHbQ3zNijbLCsDSP4pJhKBetgj6b7pzZiUa3Ln6wLtKpM0aL\nGxW7UDCSihJAj4uqwUIyDMHickmnjiaBRoVawxJtzJxBw2Cwlr6fFUHxniJThmxZ+oUAdLr8MvGG\nkPBMhEFjIIU4ecxLxqHp1NFjEIMhdgRAD0AbMAMM8gT50SRQERAGtYlYyI8GgzIxyBQSGEyH2Fos\nbnv2kgkX5zjzVtX97QQ9TGA2KimFgEIgBgEaLkaUYDU0KfI2hIchISgi41yDYYMxiYlTEmR/Vxgd\n8wlpbOXIF20jLvSwO1otZkrTuOH0Dg0z49LoQa5wg2duIXwSCgeXgyLSHMWFoXUlDAnKMPAiLs0w\npziB7WCFYz4k7RvCIAPNLNQUKkhDitt83y5goNSY+E0ZcQ1lxJDG/H3vex9mPRmYFcJo4SdOnIgf\nB1ZQMwXABBA6AqgpJYV2wrIoIyOAZhhII9baVatWQYwhnNBXiZ4ZQJ4QBUcS3EloriHz2GbhkzwC\nXqYYYP8kBWgeZl64NzdhqiDJ4joUkB6N6ExwoO8jivl+GRdgGgX9Ef0U4MAeIbfvvPMO65YRjDci\ns07pX0YbuwLtqEwzCha6bCNy8mRT6Efqu0HvW9PzxCBm70BmSuOTxsIrQpjGLzcziyY86Zi+fN+C\nggfPLDy3wNkTidx7oGvBqqMPHe5uDIQjoutAo+aP+M1MjGJL3W9Xik2MpQ5w8kTPYN1zmBgKCm4z\n0EJUotjomMv+/d//nfU58fxkQh0eNZjOODhhVh6UEq9RRlUZncV/CWWCEV9cQ+l9yZeO/wMf+AAp\nMzTL6PKdd97JsDdrz6CRMOoMh+QmseCHjG2zoB/D29A5/HnozrkJu0ORYvg2Vh6z5+YmGUFQ6dFJ\nlhLhmNTvOjpEiY0Vm5p5zgA5QrKsDrKhJVBqhqVNLyMz2BicGJ6iQuDy7MmF7rJQOHD/pru7gu3h\nCERX1m2qtarYY/AqVBYZhAANFwNDtD/YpmSxacGgavA66fVwaiziWhi4BwNbMAqaJkxktE4EIEH2\niYWf4DGBLRH/SZbcZECNLMzEaYIwdjHWBhdltA5fRygiTZO5KikhZRh8NAjDosr9hjETjD2RQmIu\nw2LJiBsNHZyQAUHac5gbA2pwJFgc0sbGQmyO2DvmOYyO5hq6RaGwtmHNoz2XT+kswJOkSJB23ozC\nsmfkwjo3LL5K2848BToIBuPInVZXBmP9anxcafxBD4bJS4mDVwYDH1glvQZ9x6c//WnseDBARGVd\nH14Z++5i0yMLrJEUFprHm6W/QxiWqiZfHFzpwqTx1hSPkUGAhQRiI6Vz4U3R/SEMBlio++Cpsplg\nUp5oDDsimM1KtRS+QkMV0qgRensw8pOaLpZyuKPaW51FnYlxbRlqiir8mCCgXEbHBGaVydgjoFlY\n43hRbv4jR7qfPubf1Bb4111tfzzsuGWCBw/Smdn2TBuswtfoIx/5iDRwxb0Nmm9oHl0aJAcmJp/C\n6DDoMTDMGDYBeApDk+6jsdGhW1VVVQz9onbE3uccxyc0APpXCCHdJ9s2MIxKv04HgwcObj+YAXHO\nQVfAt4dRXnpl+lpCkh1hsO8hw9NPP43WRd8PO5WKFw5O1dXVTDVknBg+yUAv6SM5qgaxkJ9zVBkp\nDIoFwfDqgZriX0SacdoMwej76cjhvZxDa9Ew5FIxTD5EmZDn6A0MRTPEjpEQCZEZZSKOG8scx+wX\nQnhW2bKGzgPbm9b/dssPL5x4RaGnfFLOVPpy0ZsPuRP//+2dB2BcV53u753e1CVLshXL3cFOHDu2\n03sjgRAIhFCylM3CW3iwYVnIUnffvmWB8KgL7FKWpSe0pYUAaYQ0CHGqHcdxly1btmzVkaa3+77/\nOTOjseQi2SNpynfjjO7ce+4pv3vn3POd//+cM2MZZ0IkUH4EIK5QecIbAqY2bdGCWMI+9MxJyACY\nxTCHM8QGjFeoBvM4YNDTsek6GbUZ1A728wGgzbCPS9AzhaSxj1poXEU0mTD5CAt3dEL54uSFLiLE\nEkSQr6iu4Z2B3j3UkzpRXVcjksJM6jhxBM4d8OlAd6EWFVCAUFmAVpjouH0YJFFkvFN0/LgQ3ZGo\nnPGCgJeHDoz8oBpHgInvo3zS2Cl8JWEAoZ6QDFIcDinICapxHRg2XrxEIESRLkx8KDXi1xmG3sOm\njYQ6ML7qHcSD4zoeHRiZgWzWZ6v90zRGU9Yndo68OJpcVeu8rsXt4lIT5fBMUBCWw11iHk+WAEyF\nfzPff1mTe8Nw8kcHIi+MJl/cnjyz1nlJo/tN87zzMANy1bSb4eKCbSJI/TLD+xUiB1thALwpMZkn\ntsKD4/bxtobbjD6YbxzorzCg6bWtcBwb7HVw4MFWGANeohgcgq3wIPaRK7xrMQfMxGlg0F5Bt3dh\neLSN8nmAfsvvIwzKBV2KTYdHNnR5Cy/H/Hb5r3B8ze9jxpr8PhofaA5iyx/BzlFjKwww3fvnzbum\nwdty947vbht8/lBkv88RmF+7dGnDmWe0rPc6ssJ+uvPA+EmgGgig3kCH2h/+8Ad4cmJUG6QajHJw\nrYSRSguwyUNApxhGrEHkwNMBvVT6QsgVWJwwVzPcI9EPheQwVQmGYcMeWGhAm3wqEyu6iUeOGls+\nGHb0hmAoI3QgnERguMO4R5Rau87CmxTiDSoOjp3oeiuMENeiNsaF6AfUdjb0tcFxtDDMxH2UHe8d\nGAlhmUSHIALo7kJYQfN9eYh54oWFR3QA3B28bhAbRCkUOFQ03h14rUAowo0WXYp6PjPoOiSHzOM9\nAtro+IN/KTKM5OBRgp7EvDAuTAKxIavwR83Hg75CbIVhqnYfPZIP9cd/fzhW6zDf3elfFqDQKI9n\ngfepPO4TczlVAjKwSv6TbYnfucjvvLbFg/HNn9w5smkk+VIo+ZMDkVs6/O9b4NeBZCotbVk50ctm\nqjkp3/AnfO+OK9qxwh/r+LjL81+nGj5/4Ql3ihtzcWM7YeYnBvA6fKvnXNhZu+yBPf/z+L7fDpp9\nB0J7nj30OCTiBfNefsacczElgHquc5O74xchj3n2dyF2h7ztQZ8SJT4xHR4pEwLSRZGrz2Ypy9pd\nWWYqrDgPMSwfj1mytBc6rF5YcAK/FqhEGA8nDxsyEioFg9nQ+wYPRkxcCeEB+QGrI8xTWM0Vp+CX\nCH2oV3bFpDLoWcONnUwS+terA0/ykny0heGxj6jyRzCiD4MF4PMJRwmY1/CJPIMAjGxwy8RgRUyy\nBddQuGbkY9M78OxAZ9xnPvMZKCtcjnGJkF7aF2NcyPxXiG1wBmR0RGLUIpKDawnse3CgRaL5YJPZ\ngZyG+yscT6DZMOYQ3XkYNYCuPfj/I2b0/cFBF2zhBQPm8LPFPjxKMBIBTryYrxVSFh6kGAaZ9zfR\niWo44AOHUvit3HbbbcgwvsIHOD+pjA4zmUyWWhjkfP/orid6HkTG8NCpgmB3cm8FhJZfvfXEUOJL\nXaPhlHHNHPdVLR55y0wuglKjUW35oSCstjtepeXFuLdGl+0N87z4hzlm7uqJ9ifS/941+t/d4Q8t\nDlzT4ml2wV1eN2aqFBGLXaYEGjwtr1/+7tcvf9eGg394sX/DruGt4dTo77t+fG/XXa3++csbzzpn\n7lVuu89u2lx2NyYJwKeUVDf5pAkpr3H1zpZ9vrrL9DFQt7QE8q6eIBGm2Mq8FQjxACMVTEwaK3bg\n4QkZgJlO4DEIlwd4QMCxXH5DahsXXh8s/IQlDXNo4RMGRkxbgg1nYZhCnPB4h4M9YkASGI2GHQgn\nLH8KuQWjFobPwU4If0UcxyUwTyFjuBD7OAvpAlGKbCCHCKOFE87qMPh56zBHdbBEtBiviE99eX4f\nMSOTiAEpwk0DkhWjweFXCe9KGDZxFuY1iChM8gzfV6QFNai9PwrTWrBgAYbqwaEDxjpcAiscrHNw\ntdWlQLaxo+khb0ga8eBySDIY5TBuHJO14CskJaDBdqcLiwLqO4JywUqJSPL8EUBvOg8YXYlJYiBB\nkQomYoVg0w6fGPIH538MkocfLNxE4eSCwe3wUkGwhQsXInWMZscpYET+MdRCWwg1c+RTJ4fUoR4x\n1ygsul/72te0wRCfyBIC6DC57JTTX3Qo/femTycz8bNbL1nZvE56EA155CaxyWsEjahw2rj7cHRP\nJH1pk+vrZ9ar10vuFzKJWBhkFgmMdQLNYiaYNAnMDAFU4toQcjCe/tnB6CMD8WeDSbzMV9Q4Xt/u\nuwBjC8W3ocxbMTODkqmUEgFl9kOGzJSV6hnZvWXwmX0jO/ujvb2hbjlqGBnDwqJS82oWddQsavd3\nQv81eFv9zgAMEUOxw5FUuD3Q6TCdfmdNo3f8LLKlVFDm5XgEIskQ7mbGykg3/axt0q1mM22N3lav\nYwqms1nL77ETxmwuWLcAwkD7FuqA0DPwe4TlCmOP9QDjfARHDZ8/ix0MEcSKpvBgLBQM0CHa+IYA\n+D3CRxEyBtIIugV6TF+O43BHxOg7rOsAyQFbIuLBuG44UsIqhfwgJ9A8WLAB87ggDHTLxDBQmAhT\nmB/sw3YHaxhkDyx+WAQIBjG9j1MwrMHJE8WE2oQixfhJTLsCRQfDoM4/3qewreFyZAPHtU7T+YFz\nZn7dP8zMiYHoiBCpY3lbxAmbG0oBgyEOYiADCMDAiMlIof0gs3EQ5UVZMJcMyoWDeQWI8eSwqeII\nXG0RBuZWTBWD2HQAXKg3eIGCD/KA2AAHZwEzr+UQBjlHPlFYDE3E5fn7KC0E09ToUGoUAUmg7Aij\ny4Wy46AOhniQBwDE/cJxGE4hPpEidlCibFbK7c9A7NAXn7o9mU7csuJ9q1rOm6LHAcBYPz0Y+9DW\nYIfb/qWVdevq3aqXHdGUK5Byu4GnlF8KwlPCx4vLmsCucOrJ4QTGFm4eSaLaOrPWhbGFb57nm+ux\nKfsJCie1mer3msUGVlkzZuZnh0AoOTIYxTqS+7tHdgzG+jKZVPforpE4Fv6SxxkPdYO7xef0QzwM\nxwdiqUirv8NuOpq8c85sOR+eqC6752VNZ0/MOi6ULmNsk5UcOrRcoC6b4Q/VaS0lRrGzPnCz7VN5\nSgTAfyjat29057hYNh7+C+5sLBXG3RRBKHd5djY0qG0C3MQD5nH68BQFnHWnN66R+49z6j4gZ6pa\nxYOYvRuzk1emSgLVTiBbOSpLoDEY7fvt7h8+2/sY6v9bVoognCIeC53s798STFnWBxbVvHme12lq\nHahSmWJcDD7zBCgIZ545UywhAliFIpjK3N8f/7ftI6Npy2katU7bX83zvX9hQDep5Bci3aGz0pwt\nIVDMSpkSSKbjaUsmKkxmEofC+7cOPAsr4sHwXuzoEgVcYoUYTQzLq9u0OW0uGww8yr9U/wSOLDhm\ni5PD58+7xuPILsimA8DwOFFDioBE61/U2Cz8gpR8FfU7mgxuG3g2lAgi673h7pdU2Y9WuiPLWorf\nzIyVxq1Ud0GVQEmreDq/MkEGnfEwCM9W3rO32cJDJDceLsqwFqrVzMybl79rZYusOCdh9GOkhhzp\nA7OVYaZLAtVMwDKkxkAtgurxWxs/iQ5E1DABV8N7z/4E3EamRGZPJPX2jYNwFr2hzfvZ02vddvzQ\nZ6Han1KeGbiQAAVhIQ3uVx8BtJRVoVFvfXVv6Ec9kb6klcgYFzU437sgsKbWhYlIpTubDg/V92hU\nSokLHnGlE6R3Qx569Ve0mvyHQOFk8PsvfqE/KmsrR5MhUVNH0RViIEyko8lMcjJ8ltSfMS+wEAnM\n1rZ/tKtreDNSVz/zbD6gTxy28h0/b6L/3p7LvyqSzevwrG+/EsUE7UUNK22zSFyNGdo1/OKB0O6X\nBjceDu8LJ0PIJCQrnhnsBJy1yxtX+121l552A/oU4KVsM6c2WchsPUtMlwQqjIB+N0RSoYe7f3Vf\n10/wS3TbPE6H918v/i68pKYk5yJp64Nbhn/fF1/id/z3qvrTPLK0ZoXhqvjiUBBW/C1mAY9HQNku\npOkr/xnGwVjmZwcjP++N7o2k53rsr2vzXt7sXlMHw6G0g1X1lvt7vFh5jgRKh0D+8Ya+y8siPMtq\nP5dNPbpWtKFq0L/YL2N+jiUrekZ3D8X69aWIHTvpTOpAeK8+kv8MJYYRTH41s/ajkcTrPc01rnr4\nwTZ6WmGtwhGMpWzwyLKT5bepmzYu/3JXVfWVr8eOeedmqMDyUEim1DxdmOgIye4Y3Lx7+MVUJjUY\nOxRNhXHEZjqXNKzEWprLm9Y0ejhydYbuDZMhAank8esECMsYivfdvfN7zx/6E2r7Vc3nnjnnPFQv\n7X69GooEmcyG1ee/vz/8710hWAX/fUX9hY1uqQHoET4ZdqUUhoKwlO4G81ICBNBn9kwwcc+h2Hf3\nh9GgWeSzr6l1X9DgvLLZg0V1UEGqhg4yOtm6sgTKxCyQwDQSwKs/k0ljIcSxNJRugclxJDE8dnBm\n9yQLSgDXeRr9jlqPw1fnabLTGDWzd0Gnhko1lo4EYwNwVw7G+6OpyEsDz3QFt/VHDnrs3nk1i1c0\nr8V0uPNrlkh4qVlZu2py/CSB6SCguwbh6xH73a4fPbb/nlQmed7cq69b9Oap95SJlXHDcOJ9W4Z7\n45kvrah7TRuGEvD3Ox13bdrjpCCcdsRMoNwISF2JcVdPBxP/uiO0PZSE74THYX9ZwHFFk+s9nQHU\ndaIJWeWV231lfqeDgHY6yv0e8u0AdVh+JPkj05H4CeJUhipkQY1jzDZSZjM/J8huJZ/ONkBxE8RO\nbRkY2hpJh57oeeCx/b8Nx4MOu9Nhd2MSi9cte4fb4Zvdx6aS7wPLRgLSUSbdZfiVbez78/c2fy6V\nTl4w75rXLHunx4GFTPQ0MJPFpOpY45bnB/88lHhbh+/Di2u8HDo4WXglF46CsORuCTM02wSU3BNL\noFSav+iNPdQf+8tQIphMpy3T7zA/tLjmsiZ3o8vul4qPGwlUNQHd0lfeqIVjRuTwrDfr0e4ZG8Yi\nv+fCHFb1XZvxwuN5yM7ymk0adae6HzAS/qH7V9sHnxuJD8fTUbRVX77w5nPnXe1z1Hid/ll/hGYc\nFBMkgeklYFmZYGLwQGjP9sGND+39pc2wr2+//HXL/5fbLpa9sQpzcrlIZqx3vzD0h4HEEp/9U6fX\nrq+HpGS7aHLsSi8UBWHp3RPmqMQIYA7lJ4cSjw7Gnx5OYN1CtHRbXPaXz3Ff3exeXeuqdeb8SCXb\nrApL7OYxOyRAAqVNAFIdBsMNB/+w6fBfdgxvxnhU+Pdixto1cy5c1HBGjatOuuZUzTr2UdolYu5I\noAQJ6A6ybYPP/2rHd3pGu5BDl929ru2yS0971VQnFMVvVrd17u6NfWxbEG2gTy2vu771iHmnS5AA\ns3R8AhSEx+fDsyQgBLSLxe5I6plg8u5D0U0jqZFUps1tO6fBdWOr96JGlxOz8VMN8mEhARIggSkR\nEMstbIVSew7HBvYEtz/V+xDmvseCipiPtKNm8Wk1iy/quA6zzqjlf3LScEpJMDAJkIBuxpjGL7Z/\n65HuX8+vXYbJfhfULVvSsMoL2+BULYMiLo2eWPqDW4LoLn9zh+8ji2sCjqm5m/KelBoBCsJSuyPM\nTykSkP4w1SOGBb5C6cyOUPrLe0KPDMbthum1Gevr3dfMcb2p3TflWrUUy8o8kQAJkMAMETjS5Vj0\nXjwdweS0D3ffveHgQ5jrAvMAwWC4oG75dYtumV+zmHXsDN0YJlNZBLDS7Jb+p8PJ0d/tvhNzybzh\n9PeeM/cKhw0zqOst93eypZY20S97I7dvxTL0xkuXtmK90Sn7m042LYabIQIUhDMEmslUGAF0kGEU\n9Te6w5uw6DUWLjSNxT7H7YsCa+sx8bJV71RdZTJIJl/usb38Ie6QAAmQAAmMI6CshuaBUNeWgaf/\ntP++SHI0huGFRqbVf9r1i98Cm2GNu85pc0M+YuPk9uPo8SsJyC9IfhpW0kqFE8H+2KE7X/zSANaY\ntQy7zb627dLXLL014KqdqluT+mGKMR+xo+Xzd5sxs2j6vQsDt3X6LawjwzZOmT95FIRlfgOZ/Vki\nIP1jljGazjw2mNgwlPzLcGxrKI2a8oIGV4PDdkWzu8OL9SqcGGAolWTu/1nKLJMlARIggbIhoJuz\napiSNRzv3zrw3NbB53rD+w6G9qIMTd7W1XMunF+7dFnjKr+jBq4bnHumbG4tMzojBNBhjclj9o7u\nwPoumw4/2RPa7bK5O2oXt/vn+5yBy+a/utZZZ5ky0GVKW1YQmgaaPR/dGuxPpG9o9X18aSBgt6kf\n4VTjm1LiDDztBCgIpx0xE6hIAloQihupeDmZL40mUEX+YH94fxxepQashG0u2+kBxw2tXijDs2qd\nU+2Kq0hoLBQJkAAJTIKAnqVW165SxYYTo8Pxw1sHN75w+EmMMMR6hj6HH+Og1rVdcm77VarHbRKx\nMggJVAcB/H72jmy9Z+cPtg9tQonnBRae0XLO+rbLm73ttpwMVDP/TlHCyTXGfX3xT+0YORBPv7bN\n94HFgRYXYkT3uOqZqQ68lVpKCsJKvbMs10wTwGSkIbRTMsZX94w+PBjfE02jIeNzmA7M5WUzz6xx\nXtrsvqzRs8BrEwmJpg6Mh+jFU5JS2REzysN0ihX0TJeS6ZEACZDA7BDIWOl4Ot4V3IL5SP/ccx/a\noC6bp97ThEnzVzSulUapeMnpKWpYkc7OPWKq00pAHm/dfkA/tDQe5GmXQ/Loqx3T7Iv03Nf1kxf6\nnsRYwSZv2zULb17VfK7T7saIQRVwyh8SsaQj8f95OPGRl4L7o6lr5ni/sKLOB9sgt0ohQEFYKXeS\n5Zh9AlItq5XPpO7801Dis7tGR1JWMJlJWEYoBb2nqm/DfG27N2A3F/vsWM/Q77A1uVDTSvNFtWdk\nhxsJkAAJkMDRCEiLGBYJeJDes+v7XcPbQokhHFnWsOr6JW9t8bb7nTW6Nj3atTxGAuVNQAtC+QFI\nOcxwciQjPwgLi7XEUtFoKvLHfb/aMbgJxz12b1tg/muW3LqwYQUa+qfyo8gqTcN8fiSBcYOH4umr\nm71fPbOOLZbyfpgm5J6CcAISHiCBkyagLH6qlhTthzo4lrGeGEr0JzJbw8m9kXR/wtoXTQ1hMVdl\nIGx22U/3269u8TQ6bStrnPO9djvHZZ80fF5IAiRQ+QS0uSLbh7ZjaNMzvY9giW2ZMMMwVs+5YHXr\nRU2e1nk1C0/aHlL5CFnCciaAHwDk3zY887FDOwc3qQ5nYzQ+jEmY0lYaLQ/8Nk5vWrO65YIzWs6t\ncdWjrLlmxcl2N0t7xcKgmI+pcYOvlnGDNejUlpRUV3Y542TexwhQEI6x4B4JTCuBvkR6OGlhVq7R\nZCaSMX7dG9k4koQJEYlidXtMUtrqtt/Y5sWAw1a3TWr1fD0u9a58k0PcSIAESIAEcgTQOO4e2b6x\n78nH9/8WPnJeR6DO3dTim+t1+C/ueGVn3VLVQkZoVaXK+kGyg8pUvDlYp+Yw8m8JEpAeZowsETmG\n/41oKtwd3LF3ZAceeHyOxAdyeZbnGM88+kHQG4L5lhbUnd7gac6dPbm/8jNRTQ+RCff3xz+5Y6Q3\nlr6x3ffBRYEWt11Fqs6fXPS8qvQIUBCW3j1hjiqcgNSzGcuMpjNJy/hhTwSDs+/qiRpWxjRtHpsB\nMbjI57ys2XXbghrLyGhVKNZGqfPZfqnwh4PFIwESmCoBNFjTViqejv5m5/f/1HOfHlRlGja3w2M3\nnRd1XFvvablw3stV6xqTfom/Xa4lyxp1qrAZfuYIQAbqfgy8/u+RZ/terMyJhgMG0+LEyqZ1bYHO\nKztfp4SbZbc5baYD63Y6bFBrRXiwVdr4sP15KP6hrUEsQ39ti+cLK+q9IgaLEP/McWRKkyNAQTg5\nTgxFAkUigPpVfnWY8Vk+Ua2iYrUGExmM1f52d/hwIo3VK2RyGivjMm0XNLre0O5dUeOscRgNTnt2\n4ECRcsJoSIAESKASCGTrUjSeZaaubUObDkf2P7rvHizDHU9Fk5m4EoGiAecFFrysaR2W5PY6fDXO\neps0nbmRQIkSGIkP7hp+6ckD9+ORhiXcaXP5XXUYHLi4fuWa1ouWNp6JJoF0MItulF1RaXq3GIIt\nkbHg1nR/X+zb+yKHMW6wxfuVlXWShKTJuWSEe4VtFIQVdkNZnHIgoEZ4a5sfam/Visl+7Aynt4aS\nW8OpDUOJrkiqX0YbGh0ex5k1DsxAM9/rWFvnlEmeuZEACZAACYwRgCgscKPAktyZxI6hF3pCe+BZ\nt2dkG1rMkdToQOQQrCseh29uYAFGWLX6O5q9bZiJ0WV30egxxpJ7M0FAeiiOlU4kGeoKbn1o7y/w\nDCMMhgLO8c1d0bz+9KbVc/0LbKaebUB7ksLejUc/H9PYXv7QSexE09avDkW+ty+6LZT02s1Xt3k/\ntqQm4MhHnt85ibh5SYkSoCAs0RvDbFU5gT2RFFxJXxxJ3dcf3TiSSloZt2mb47YtDzjfNNeLhe/1\nqwBvFLUjvYTK5KiXssh9Frwlqpwniz/rBDKZzO9///vvfOc7X/va11paWqaUn5GRkTvuuKO+vv69\n732v1+vl2K8p0csH3rZt23/8x3+cffbZb3/72/MHK31HLCa9kX0wncBaGIwPbjj4x+6RbcPxQRQc\n7ew6dyPGXJ0/7+rO2mU4gqY1ak3li3G89nqlQ2P5iklA+irkVY1uX7Hgqf3cg3a0d/RAtPeBPf/z\nYv9TeFwbvXMu6XjlaTVL4Pbc7Guffh0mPdQJy/rFwdjnd49iPjxMavcNF2AAADixSURBVHDzXO81\nLZ4mtd6g5J5bhRLAGmncSIAESo5Ap9fe6bOfU+960zwvVqz49z3hhwdiXZH0/lj6T4Mxj922wGvH\nIMPLm1ziJqI8pdQLR70vcq6oJVcqZqg6CHR3d0P7BYPBfHFXrFhx7bXX7ty58+c///nnP//5/PFJ\n7sTj8Ycffri1tfVv//ZvfT7fJK+qnmDhcBjAzzvvvI6OjuOUenBw8P7777fbq8hPUqu6Nl8HGt7K\ngmhhAkYMONzct+HJg3/YMfjCaGL4YGjPs72PuB2+c+dedelprwq46nLC8DgseYoEJktA9zBIzwSu\n0K9oy8TUuPtGd0kU6kg+rlgy/KiaHiljZVa1nH/LytvcNq9pExdNU+YUmG5fTelhfqg//n93jMBI\neMfL6q5v9XjEtVplPp9L7lQiAQrCSryrLFMFEJCXhOUwTD9GDjps/2dZzf8xajG2+wu7QntiqXTG\neGE0deumfp/dcWOru8PrOL/BBRPirkjqiaH4a9pknUMsGFvjsLW4sJRFBeBgEcqJwO7du2HQO3z4\ncE1Njc736173uuuuu66cyjAbeU0mk7CFOp3O2traKaV/1113QSp/6lOf+sAHPoDLj3WttlQc62xF\nHkflJ/1jyiyjlgIyXHa3ZbjXtV2+vu3ypJV8/tDjj+///UD0cDQZur/rp/d3/WRuYOHSxlXL6lc1\n+VrBxGP31bobuIhFRT4e012oUHIEY//wiYSePvhH2Kixj7VSQslRbS88agacNjfcmG9a/renN52t\n/EEllHIFmvbhIv2J9Ae3BNH7jBWSP7a05sY2T36IipqT6aj55cEKIUBBWCE3ksWoMALKZ0l3LOqS\nScPmggbX+WubHhmIhdLWhuHEllDy6eHknQei2gklF8764YEIOsMDDtvpAftVTR5MtOexGxh/6LXB\naWWCOjStlwUcutKfeFamOc3aGydcWGHEWZxiE7jmmmugUnSsc+fOnWr0MlHIMZYFOM6pSaZyrBjG\nHddfxx08iSROGIMO0NXV9YUvfGHlypV/93d/N8lUEAzXrl+//tZbb8XnOOvfuHSPxXPyaZVhSD09\ns1Rf+adJfZGiOEznuvbLlzeefSC0p2d01/ahTf3RXix5j6+PdN8NtAjT7l+4tu1izOPf7G2F/55c\nphvnQh5xsmJUSKrpQ7wqseleBvXWxK4INgVhJDE0FOsLJ4L9sd4dQ5sjydGdg5sLX7w+Z6CzZond\n5sD4Va8zMPEBqnM3r2u/rN7dqOLLPWETX8/qdFE+UFEgnp54+o6do48Pxju9jjfM9b1prk8aBtlq\neDqTL0oZGMkpE6AgPGWEjIAEZo6ANEAua3LJZ7PrcMzaEU6NpDLP59YzzGUEEyoYz48kIBefDibx\nvnGZxhy33a3cTnJh8n8t+KY6DFuH17a6FjMrGD67eWWzW59WvZL5kNwhgUkR0M2LBQsWwE00f0E6\njUWTp7AdtamtYz7qqSlELdogO+RWX5UXTvnj+ohOaFxy+cDjrh2XgfxV48KPC6a/6sBwsn388ccR\nPh+m8Fq9X3gkf+1ZZ531la98xeVyIZ7CAPk86JA4lY+ZO0JAeZHWuOuWu85a1njm2W2XjiQGR+JD\n3SM7+iIHcP5QuKcntPverp46VyPshLDbnNG8vrNuOZShmiSaPKvxOdLaDwoJtx+/t+H4wN6R7fF0\nbG9wezA+AAU4mgxizcDR+BCeLywy1eRrm48RqpZ1dtsleOYwp1Gtq8Fus+MT+4hjAkT1Q5XYJ5yZ\nngMQnU8NJ+7YGdo8mpzvtX9+Rf0yvwMtAeRZZWGm8jE9pWOskyRAQThJUAxGArNOQHxMpL0njT4j\nYLf7/dZCvwMLGL66zaNePJJDaaGodh9WvH+wP7YtlMLk0X8ciGOWGrl44hvGsnaFU7jGZrM5zCiu\nRt3vHvNMsS5scP7r8rpmVxWNOxKO3E6BwDgdomOaqEZCodBvfvMbeJbCm3RoaAha6JZbbmlra0N4\nfP3Zz37W1NT0yle+0uPx5PMyMDDwve99D/bGV7ziFX6//8c//vHw8DD258+fjzCYt+a3v/3tli1b\nXv/61y9atCh/VSqVwvGtW7e+853vvOeeexDs+uuvb24eW7g5Go3ed99927dvv/LKK9etW4cLn376\n6cceeww2t4svvhhfkfl7771Xe72idI8++uhzzz2HdJcuXVpY2F/84hfw+WxoaMBoyeXLl7/85S/H\n1x/96EcIg6JhUhydJQyJfOSRRzZt2nTZZZc1NjYi5quuugpFeOKJJ/r7+59//nlM/fK2t70tEAgg\nqxg8icysXr36iiuugDsookKAP/7xj2vWrNmxYwfC3HDDDcCCVMDqjDPO0Eng1O9+97s5c+Zcfvnl\nKEgikUAGCrOqg1X5Z14+o9q0GbYGd5Ms521ZK5rXZjLSf5G2Mi/0PXHv7p/0RQ8MxA7tGd668fCf\nYNuxGQ6EuXbRG+f45lU5w2osvmmgv2BL/9Mv9j+NvgP40aTxtJhGKpOyLFk6GFURPlc2yzqBV3fe\nZDNtGMOBI067c0zlqVe1CjweIWob/FTlbT/+zHR9/+H+8Kd3hcPpzEKv4ztnNXZ6bSiEZFX5B01X\nqoy3xAhIb2KJZYnZIQESmDkCGHMIQRhKZ359KK6rA0wsln8ThVIZjCw/DWMU651+h4mRihiviJcF\n/FGV9EQ+rRZ3Yb/SkRWKql2kJ9XM5PpT9Rtwxt50M0eSKeUJQMP89V//9Z49e/JHMJHM+973vq9+\n9at///d/j+OnnXbak08++e53vxvCCZLG4XBA6uzbt2/Dhg2YAxOK7sYbb+zr64MD5Pvf/36Mi4Os\nevWrX40LIaUQGF+vvvpqTFj6wAMP/M3f/M3HP/5xhIF9DBIL6cZiMSgoTEaaTx16D/Nq/vSnP4Xo\nwlkIUciwhx56CHIOYZDozTffDE2F6Wp0zF//+tdhrIP808Eg5KAVkSIkFvw5MYMLMglR+q1vfWvx\n4sX5VLCDbEPdQamiewVRXXTRRVC2+/fvx/6FF174zW9+EzIVXzFXKvSnHiiIYZa9vb0/+MEPoPfe\n8573/OQnPwEKiEmkhave+ta3olAIGYlEli1bBgG8ZMkSxKPLixQR+O6770YBIfy++93vQkYCETh/\n8pOfRJsSrMABRUaEkKAQnOCDcn3xi18szDb3T0TAGogewgIA8CPFahaxVCSRjsfS0n22tGFVq3+u\n2+4/f+7VmI0GyxvqyhMVHKpCKvATgT3J8+KeqfhmX0OCW94sSsCoVq1pwmkT87LgUCqdjKYjOArb\n3fbBTfCq0cGmmrZuK3cNv3QgtFdfiwQ9Th8cjzEwFcsD+ly1yxpW+Z01C+tfhsUhSvbuK3pZ2doX\nT3+9O3xnTxQS9oom94eX1CzyFb7QpwqJ4cuYAG98Gd88Zp0ETp3AeQ3u8+rhUmq8qzMgL1nTeHQg\nnu+2xDDFX/fG9kZTP+1N4ex39kWQYofHttivJq5Qr+FLmtz4qzenaayswVpFZovL1uGxK3cTcTuR\neNUmb2315s5ewD+VSwAmrEsvvVSXDwoqX1C0zCB1Pve5z2HSy3/+538+88wzIbdgE8v7lEKqQTV9\n6EMfgnyCCoKq0ddC6kD7QcXBEIdpVLCIAkxwsK1BGd50002dnZ0QYxiGh2UtCtVgPl3sQLDBBgjz\nGiQfroJqQh4gzzCby7/9279B3UGmYhQfziJjb3nLW7785S/DtPiGN7wBuT106BDU2j/90z8h6Z6e\nHog3+MQWRq73odAgumBX/PSnP42C4Np/+Zd/gWaDHIVRceHChV/60pdgYMToSuQcchGqctcumWwQ\ncvRVr3oVzKTQnLfffjv0LXICq+ZHPvIR0ENhMWfMP/zDP6DsOiGIagSrq6sDQGhaHNQN0I0bN372\ns5+FbRPiEGoTFlEYD/Ul/DxJApbR6Gk9t731vLlXwz8Qs5LuGd72u667UKlhghD8Q7RP9/5xeeNq\n9e+sGleDiJN8tXiSqfKyYxIQtGJD0w99theyP9IbTgb3BLfpN8zOoc1Q79jHRLK94b1ixMtvEkKu\nnuKGZC2b6YBZGOMA4fDZ4mtv8y+Ay3GTZ84czGSLWFWMEn0p333Jn2T0z4OJr+0N4bPFbXvjXN9b\nO3zNrumexVQB4kdJEqAgLMnbwkyRwAwTUL5T+iVxaRMGEGbfZhc2Oi9tch2OZ+B3unk01RVJ9cbT\nGLLYE4triYdwEJBwcNH5dZgWxqNjv85pa4bMtIw2tx1DE502o9Zhrql11TiVz+sMl47JzQYBqMFC\nS1Re70G3QIbBuPeud73rtttug0coRBrsgZAxOptYowIHH3zwQUgyaEJY2/RxKB9YzOBHCkdKSCxc\ncu655yIMtBlsYv/4j/945513XnDBBRBaxyruhz/8YbikQkoh5MGDB5GTZ555BlZKhEd+YNiEMQ3b\n5s2bYQZEtAiGhLDcBRZ1gIMowsC89p//+Z+QqW984xvzGStMDgs/QJ0iY5hqFSoOtke4p8LSCOGH\nUsN5FUIUag25hY0RBXG73bCIIgYoSRQW9lLEAFdSHISAhAaGRn322WchWbEPZ1H4lOrk4Cn6V3/1\nV4VJa38fKEBIaExLgwyjgJCXUJWFwbg/ZQKqelMKwqp3N2G2j86aZXNrFulq73C45y8HHjgc6dlw\n8KHNfU921C5d23bJWS3n+5z+KSfECyZNAP6ZGLkXjA0civT0jO5GpyMGf8ZT4d7w/pwaE0uY1o2t\nvnkdNeJDjtuHIaAYv6dPTTo1FVA6Ni24Fte6G912j2hCZ33+PYgQelippIn/c+/QqSUxI6HxOCOD\n3+yO3NkT3htNr6lz3rYgcBkmDijtbM8Im6pOhIKwqm8/C08C0tRR7RptXhgHxGHaVgRcKwJy+Ipm\njKixMpaB0YnqhSIHf9gTGcEMNrmX39e7Q7vDKXlHZsOYGI3444NRvCCRCOyHCHhhg/usGiyoYa6q\ncV7YmJ29RuI69qZe7Mad+yPxjHVFs2ehz462L7rg8R/S0Q01w7RJgzhfHh2bCoddhFEXyO6x0+GZ\nGSIA0TU6OgphBhWEJGENy+/jK5Qkhr197GMfg+0OhjVY5HS2MDZPWwshF6GjoKYgySD/LrnkElgF\nESd8SmFXhPo6VjEg7XAKogsX4nLsw0YHpQqPSqhNfRVG6+ErEoJ0hAkOlkNIO+QQXq+vfe1rET/s\nmd/4xjcwPO+oqSBjetAjbHcwVCIt/LJwOQLjYcRYPshC5BBlwRFkA6kcdZEJKFK4icLsuWrVKp0Q\ndmDx01HhSOEYSB0An0gClkwkirOIHF+xAwkNh9h8GO5MnYCuIvPXmT5XzVlzzsN31CuZ5gwsh08c\nuO/h7l/DGLV98Pndw5v/tP931y5888rm9VJF4Wqpp/TlUjNmv0jthKO5mkmf5+cEAhikh9F6B0f3\nguRoYgj7ocQwfr0ZjNkDfyuNf7qGB0uP039Rxyt0HFcvuEnv2EwsvyTD4PFjtJvFbPcWvk70UyJH\nCo/qHJTAp7wD8b/KyX93h7+8OxTKWBc1uD99el2HV61OVZLZLgFy1ZKFYv4wqoUZy0kCVUkAnqAO\n9cZTpdevDutd8/14+cl/avvQ4gBaN/uj6b8MJeCsM5TETnIomUHLZzRlxS0jks7c2xe99zDey7gk\nK+BOiBPtKfEKUm+zT+wYUa91HMugOYVhjRjz4LfbbmgVbYlIsY81lHJxWjWy6ga+Yv0MGxoWKt3c\nSf6dJQIQNhBCMHxBqLS0tGDAHhwdYQFDduRRGR2FpoKj43/9139BksFEds455xw1p7ibGOCH8YHw\nAkVgDPPDsL3j3OKJpzCqEGnBXRMJISrkB0ZLJKedTrF8IgbmYUQivDfb29thHvzMZz4DV1iYB4+a\nn3EHJyaHaGEG7O7uhlkSE8CgyLAEwtQ57kJ8hYrDBtdZjL2E+AQT5BCCFjpzYuD8EaQI++rPf/5z\nWAXhaApZCyslksOwxnwY7hSXgN2wQR9e1XnT2a0XY5mBh7t/FYwP7R/t+ubGf5UmuNRJoglF/el9\n+a5rTJzS9Vhxc1R5sam3hUz8I7O1OG1Or8MPmHaHz4O637QvrDu9PbAQNNe2X4qxfJVX/qKUCO9P\nPG798cw3u8P/0yuDBv93p//2RTXgxo0EQICCkI8BCZDAyRMY9y6RJo+FQYb2m+Z69an3dErkacvY\nFk71JzM90dTuiIzlGE6m4awiU7NNZssOEpHFMw5jzhv91TQH4mlMivPEUAItrG92h6TdZRiL/I55\nnmzNBhfW5X4HpkhdUePA1KlNTrPTl9eKk0mYYaaFAOxjb3rTm6C1YMWCgIFo+eUvfwl3SiQGe90P\nf/hDzJuCmUIhlqCgEHiisirMFqZjWbBgASyEGCIIS2PhqRPuQ93BYfVXv/oVZq+Bd+VTTz2F2Vzg\n0gkXTdj6kDTcMiHbXvOa1+ArEkJIDCPUhsoTRn7UAB/84AcxEhIjA2EIhbUQJlCIvYkhURCMkPzE\nJz6B0Ybwg4WAhP8q/GO1bJ4YPn8EHqrf/va377jjDhg2oQPheYtpac4///x8AO4UkYDUX6YIFXw2\nelvP9baubb14c/9Tu4ZfhB9jykrDZugwHZjdJG0lsTIBZqNBSKw8Dp/DGle92+bJGPC6gFpEax3/\nuB2LgHlazSKHTRwKAs769ppO6EBov/ZAp9vuhV5UYgcncUNyu8eKqWqPmwZGf9yxc+SXvTGM6Xjv\ngsD/XuDHc0deVftEjCs4BeE4IPxKAiQweQKqy7sguHw/8ph07RoWTIsra9Q8NEbWRzSctvoScPUp\nuHgSu3UOWzAlnn56G01loA+R4N2HIro11RXNvDAi86bmglgPDUgO5nvsDpsJayEkpaRpZeqdjtV1\nDoxvXBmAK6s6JnkVpxrVqMBEdHJQLs5uBbu5Q/x7cgQgVGD4wrWYNhMTbMLnE+YsDOHDEcwsCvWC\n6VgwrQuMcpBPWGQPs2geJyFMygLLHqQdDHrHl44TI4F5ELO/wAT361//+vvf/z4cRzF3C3QX5B8C\nw6P1mmuugRURpjnEjExqITcxnkkeQSRY/gG+oLBnYlwi3FPXrl0Lt9WJlyPpd7zjHdAJmMkG4xih\neCFZ4UN7QlsfvEwxBQ6mw4ExE5ZYuNRixOPE+HmkSATGqgW957S717RehEUpMKQNOhDr0WHVAexA\nDUaSI5FUGOoPw898zpqAs9Zlx5IquE43y4uUo8qLRtXJTZ5WLPhxrMKN3YbCOvtYoavquNip0VVr\n/P5w/Ac94T8PJc6sdbxnQeByNVmAekFXFQ4W9pgEuOzEMdHwBAmQQJkQsOIwQaoWAUY5psUtNNs8\neHwwtmk09dBAfOtoUkbyKOGn5B8mFchAIsKEaDfN0wNOzLgtZ9WFVzR5lvttiCRriRSZqKPPRlsm\nWGYtm7D1wV4HaacdL/P5wAg6HNdD+HBQT5SCsXwQP6CNs1A7sBniFOxg+Ip9CDbEgyMQUQijI4QV\nERIR+7DUIa2PfvSjmLoTtjtMo5JPa9wOwiM5PVoPKWKEHq5FDMoyYyASJIdocRBSUKeoYxDbjSWr\ndOIrdvTAxfwDNi4VZBIBEC1iQHIorM4kYkaKKIseAYjkUECdHEIi6Xww5BN5QEidHMLgLMIjGDKG\nUziOI7gcX/PjCREASSMSPSYTeUAYbMg2juAsrgJbxJaPH2U5VinGFYpfi0FAdTkhIl2n6IomV00V\nI37GQQJHIYCfOV5dibT104PRr+0NH4yl4C/zvdWNLwtgCAj6IvhGOwq0qj1EQVi1t54FJ4HKICAt\nrJxZTySdyLfce05eh9rKZ1rhtPHr3qyhCaMa/zKc3IUe+xRWE7YGMImqejnm3WdumON5R6cf0dY6\nbR6b2eqGHuC7c6YfmOztU3ezUMAU7sPJ89Zbb4UF7/7779ey7Ti5LLywcP84l+AUQuIz/1AdP7A+\nOzHy/JH8TmHIk0jiONkYl8RxQvLUTBOQikanObY303lgelVEwOqOpj+3K/Sbw1GXzbyuxfOuTv/p\nfoeq0fAk8qVWRY/CCYtKQXhCRAxAAiRQ4gTk7aY31cga95LLn9UDTZSAVC9C6MBtoVQ4ndkwnJDL\ncZ1lDSStRwbiOKWPYAhiq9t+scyGKmZCOL767Gan116PlTSO2FTKRxzhl2knAHsX1hLEnJ9wPcVQ\nwFNMr2R1VMlm7BSBV93lrCSq7pbPZoEjabzLYl/ZE35pNNHhdb62zfPO+X5MwiMvSHkZ5vpNZzOP\nTLuECFAQltDNYFZIgARmlwAshFg1Y0so+cveKN6m6Ft9biQpfqZKK+LPaV47+lmX+O1YPAMDGm9o\ng1BU+hMyE69X+VBfZ7cYVZM65tLEzCuYcwVLyR9/+s2qQcKCkgAJVCuBrKeBvJMwSv/re8N39UQH\nk6lz6jwfXeJ/WY1Lr/xEw2C1Ph8nKDcF4QkA8TQJkEA1EcAbFZZAm6hASyZHxYyoP9gfwew1gPBQ\nf2xrCMOx4JJqs6th+g6bDXXoQp/ju2fVN7kxvis32LCakM1iWTFYDmPn9MA/SvFZvBFMmgRIYNYJ\nyEtLG/4s603PBZ8KxtKW+ZZ53o8urcHAB+X5rt5Q7LWc9VtVkhmgICzJ28JMkQAJzA4B6WJVpj6I\nOzH+yX+5F6l615pPDsW/3xPBWov9iUzKwBw2RjBlJS2jwWF8+Yz68xvcBas1zk4ZmCoJkAAJkEC1\nEcBQ+IFk+rlg4kNbR4LJdKvb8e5O/xvn+lw2eZthyw62FwsiNxIYT4CCcDwRficBEiCBExEQO+LT\nw/GYZYVS1gN98b2x9DPDicV++8eW1F7apKagkXcu37snAsnzJEACJEACp0JAujGNw4n0Y4OJe/ti\nWJgX/qKXNLjfvcCPDspTiZjXVhUBCsKqut0sLAmQQFEIyAtYueCI5OtLZiALf3Ig8vXu8GtavZ9Y\nXltjt1EMFgU0IyEBEiABEjgOgeFk+neH43cfir4USgWTmXaP/aZ2783t3g6vncMFj8ONp8YROOYq\nn+PC8SsJkAAJkIAmkHUrxag1DNkwjRaXrcVpvHme7xt7Q5G0rGAhh0Uy0kLIR4YESIAESGC6CIyk\nMh/bNnJ/XyxpmR7TeluH7391+tvc6JJElyX14HRhr8h4KQgr8rayUCRAAtNIQM9fon1Cs5oPE9FA\nHprZ5Qo5wck00mfUJEACJFClBKQ3EkXH0HbMGLMznPrAS8Pbwuk5LtslTe53nuZfHnCo/kr2RVbp\n83EqxaYgPBV6vJYESIAESIAESIAESIAEpp0A/E4wyRnUXn8y8z8Ho1hjMJ7OnFvvwuQxFzViPjM9\nA9q0Z4MJVCQBCsKKvK0sFAmQAAmQAAmQAAmQQAURUJNgf2LH6MaR5NZQMpw23jLX985O/3yvPTuq\nXQYxcCOBkyFAQXgy1HgNCZAACRQSUAtA4U2sOnBlCKG8ncWvhxsJkAAJkAAJTJ6AzFk2tqatfJOl\nkCzMGfOH/tj3eiKDiYwMVTeML66su2GO127LvmjUoHW+dCYPmiGPIEBBeAQOfiEBEiCBkyCAlzBe\nxm6b+eJocl8kU1sjgwn5Zj4JkryEBEiABKqZQNbGZ5k98VQwlXl0INEVST83ktgeTmppuNDruL7V\ne2Obd6HProcUVjMulr1YBCgIi0WS8ZAACVQzAavOabt+jgfjOn7RG11ZW5Nd2L6akbDsJEACJEAC\nUyGQsoyucHpPNNUVST00EN8RTmGteehANNaX+Jxn1zmbXLYrm9zr6l3ih6I8SKcSPcOSwDEJcB3C\nY6LhCRIgARKYJAG9zsTPeqO3bwl2eG2PnT8H7qKc83uS9BiMBEiABKqHgLwvsqXVf8UB9GAs80ww\n+eODkYF4uj+RGUxm0paBfsa1dc6b5/oCdhNS8DSPI4CpY8Y2cScd+8Y9EjgFArQQngI8XkoCJEAC\nioBekPBlAQf+bQ2lcIxDCPlokAAJkAAJTCSAFYpkpVrl7omdxwYSPz4QebA/njYsDA5UwwPN1bXO\nV87xvK3DjxGCjmOOP6AanEiXR06SAAXhSYLjZSRAAiSQJ2DhhW0ZAbvNL9231lf2hG5bCK9RbiRA\nAiRAAiQwjoA1nLQOxFKPDiawpvzzQawqb9Q7bS0ue7vbfss87zn1rnp5lSgvEyUQx13PryRQdAIU\nhEVHyghJgASqjoD005rWAp99TZ3zuWDy4YH4Wzr8DU5MLcONBEiABEigighM8AjNl92KpK3dkfRf\nhuKbR6EG45gvFKJvkd9xXr0LIvCsWudCn0O5gY6pwLx3aT4W7pDAdBDgGMLpoMo4SYAEqpTAk8Px\nd20aDqfT17f63rcwMN9jV84+dOyp0ueBxSYBEqgmApZaMyI7x7R2/tTLEd3bF39yKP5SKNmfsDBn\nTCoDk6C5ts51c7sPw86hA312diBW05NSemWlICy9e8IckQAJlC0BNAduezH4m0NR6MClPsedaxqb\nsRgFx/2X7Q1lxkmABEhgkgSUbRCSENJODRM0ra90hbB+4AP9MZgC8XZQwwYzOHn7opqrWtyLfQ67\nmn5MLjzmQMFJJs5gJHBKBCgITwkfLyYBEiCBCQSs7+yL/Kgn0hVNpyzr1g7/Ozv9bW77hGA8QAIk\nQAIkUAkEMpY1nMLIwAz+PRtMbBiWf0G8ANTKEPUOm9duLPA51teJayj+OU3MK6N6CmUWGarBSngG\nyr0MFITlfgeZfxIggVIksCeS+o89obsPxTBx3AUNrjfO9V3R5PbAWGjoTmLlUySDRehNWoq3j3ki\nARIggUICSriNHUDNjaocYwK7oqldkXRXOLkzkt4ZTu0MSz8gwmEM+SKf3ecwz6pxLfU7Wty2Cxrc\nY9dzjwRKjAAFYYndEGaHBEigUggMJNLbI6l/2jqCVgKWkEKb4Ow61xXN7nV1TukThhaUtSmwURNW\nyi1nOUiABCqUAIx9UlObBmyAzwwng+nMLw5GExkLCwYOJK2hZEbX44v9znW1DiweuMjvbHLaXKYx\n12PHVdL7x6q+Qp+NyigWBWFl3EeWggRIoOQIaGchtB5uf2n4gf4EmgTiJGQTR6G3z/N9fGmtbl6U\nXL6ZIRIgARIggQICW0LJB/pi0IRf2RNW3XiovJUdEH9Ul97Fje5rWtxXN7uxdERW+Yl+1F1+6gCX\npi3gyd0SJEBBWII3hVkiARKoKAIwBz41nHigL/FMMH4ojkEm6XDa8tttb+7wnVPnXOZ3NbmMgENN\nMSejSaSlAdEo/7NHuaIeBBaGBEigdAiIotPCDp/Yw9dUBrY+ayiVwdKAcPtHvb0jksI6gdm62DLs\nNrPVbYPzf4PDDDhtr2hxz/M4ZEygDAfgRgJlTICCsIxvHrNOAiRQFgSyc8sZRiJtPTOS3BWWSece\nG4yjDYImydl1zuUBx6oaFwactLrtWMwQhRLrIv5whGFZ3GBmkgRIoMwISK2MDdUsuud2R1KRjLVh\nKIH9nRGMA0ztiaSzpw2j02Nv89gxI2iT0+62W/D8b3SaS3xOTBCqqumsWiwzAMwuCRxJgILwSB78\nRgIkQALTQkCNQIHZT1kAD8bT28Opp4PJ3xyK7Y2mYBcM2GwNLnvAbjY4YRc019U5rmz2nFXrmpa8\nMFISIAESqG4CsP51R9MbRxJwBx1MWrAN7sMUYDkX0FU1ziV+x7p6Z6fH0eCyoWZudNl8WFY2a1UU\nVw69rw7QPFjdD1NFlJ6CsCJuIwtBAiRQhgTQksC/54OJ3xyOYqUKNRgFDQ44jKKxAQ8kZSW0TIxL\nWVHjwLcVNc6rW9wyFFE5lqoSI4xNrshOWoBjcjYLQ0WQMS01blFOZY/zDwmQAAlULAFVBaJKVFpN\nSql2UP3B9Ifh3P3x1Hf2R/RhbSdECMzxVeOw/XWHd7HPeU2Lxy3mP9aYAo9blRCgIKySG81ikgAJ\nlCaBbIMEMq4nnn56OJG0DIxdeXQwgWnrcA7Tmg+msJCxNE1ECcJ6aJk+u3XdHJ/uoL6p3Yt6HGXD\nUod2m+E0TPRnw8qY3VQ3tpyW8Yj5o7mz/EsCJEAClUUg2yNmGWkjsy+KMYHpLaPJp4LwyEgciKa1\nZc/nsMEXA3Wm1wZ3DOf6ete6ehdmBBUHDl1ZVhYTloYETkiAgvCEiBiABEiABKaPgIg1+T/3Ry9v\nBTWIta3gxdSHnXAKQeIZ8/kRGXaIgE8OJ2QEjBphKCJRacU1dW6PafjstsV+u89mYiwimjs4hdEv\nC7AosmwUhAoDP0iABCqXQDiVwZjAXZEU3PIfH0xgJwyvfMPAPF6oGxf5HJ0+e4vLtsTnWFPnctty\ns4Xq+jHrasGqsnKfD5bsGAQoCI8BhodJgARIoJQIYLHj3nhGcmQZ+2WsC5o45u/7otLWMQ2Mh9kb\nTaumDWYrxSmrwenwOyQ4Rr/M89ivm+PB4SUBx+papxzFJhHIB7ZC46GSmkceUaG0eVIFx3e5LtuZ\nrg/Jp4pMomVzagwK90iABIpDQLtToHYpqIB0zLrG2RFO/3kwfvfh2GAyPZSwguhRs6y5Hsf6OicM\ngHC5b3TCMGird6opnYuTJ8ZCAhVCgIKwQm4ki0ECJFB9BES7iXQTPyeRhbGMhcWyYFp8Lph8dCCu\n9JmSZ3qQoXxXFxgGBsmsqLHXOuy3nubTcWh6lgHNKXpOGSB1Kwv7+TGKY0cQ/kgvVJUZNRRHznAj\nARIggaISyPmCom8KNRIc6bHin+yOpNL/b3fo/sOxfuVmr5wsUB/aLm103jI3cM0cl6oJcRiVG6Vg\nUW8JI6sgAhSEFXQzWRQSIIHqIqAaSFnxlTX2qaaSlnPSjX4glnl6OPnjA1hM2cTwGXiiok2EcYlD\niYzoQFwrcRQaCEULujCupt411yOOphiOuL7e2a68T/PhcFG90wxgTa4C7SdJG1aHF3ZJCsLqehBZ\nWhKYAQKotVCDyZjAUGrjiDjSPxVM7I2kpR4zDA8mAhUDoHlGwHVDm3tdHcYEYjotqeCkQsqKQlZN\nM3CjmERZEqAgLMvbxkyTAAmQQLaNIyDyrRzd9pFDSp7JjtqkQYSp1XeHU/Aw7UvIGBscf2IooYfM\nqMaSDinWRnifHoirZbgkPh25DpJLyMos8DnbMP5GttxB1eY6twHzoFpL/E6M0un02to90If5a3Mu\nXzA55q6TFFQkYxkeS1ROcCMBEqhQAlIz5GsA7Kr9XLtU9TbFMjIPM+ouDAXEHKG7w8ndkTS6tFBr\n6IvPrnO4bbYWtx1+oYv8DqwWiLHTKp5cxNmA2XqmQkmyWCRwqgRyP7xTjYfXkwAJkAAJlBkBNRbx\nyDyLq6gxnMyEUtoP1dg4ktyh12guCLgjlNw0gvlQ83JRn1MHVLMOM5367Wadw1bjMGFpxDx++Lqu\n3j3XIxpS+7hKaIkALbusQDStDL5LFrIqVIXgBwmQQGUS0AowqwmzFYJhJNIW1miF9Q9Do6MZ61As\nHc0Y2rsBFcY8t02NCXQvwfBoS82urCbTwjqBlQmJpSKBGSFAQTgjmJkICZAACZQDATHTqdUtIOtk\nDWYsYSg7eRtgtgy5UYUQjTilz0pz7tvd4dG0tWU09WB/DGEs0waNh09DPiUkXjmr65yXNGGGm4xa\n78sNty6lASVmFRFS41CfLGf+IYHKJoDqRYvCeMp6oD8OM+C394VH0RsljVPULlJ3SAeRYa2pxSqs\nnqta3IsxZ7IcEDCoMeQvaipZuJUbCZDAyROgIDx5drySBEiABCqPgDTQ0BJT7S3l2SnfxhXziJNj\n50Q8SgtNBd8RTsGKOJyysLgipvvDpH+hdBozoQ5iHKNq4+mgeAnN98GE6EI0sCJe2+LVaWMyQIxR\n1HFjvCLWjB5Lh3skQALlTACVAKZH3hdLwTsd9cPOCMYEJlEgXSfM99gcNhkQuCLgOKvW2em1r60X\nR3TowKwQVDWNCiy1k2hH6W/iRgIkcPIEKAhPnh2vJAESIAESmCSBvdFUbzw9mMh0YX1Fy8IooJ0Y\nC5SyYpnMszI/xBEbmn3zPdl1FHFivteO1RSxg0YfWoeYR16HhscYFhODdFQqVFqER2pXpVslaLax\nqIwO8l2dwEFltsydlRPcSIAETpmA6DWt2eSXpn+U0tF0MJ7eFU5D/mGN+P5E5smhhPz41K9xoc++\n2O/Azxm9Quc0uPG5yCerxisReMoZYgQkQAInIkBBeCJCPE8CJEACJHBqBHJWR2n9aSNi0pIpT1MZ\nM2VYh/X6iobxswNRnc72SBIWA7Qg1YY/WUWHP3VOmz9nLcQ88jAjeGyYS1CalZhgcH29O7fIGBqk\nxivneH0iHrOX44j8h+9iaNDWhtwpnRQ/SYAEikBAVq8Rkx4+TQsrxd/VE30qmOyJpfGrxxBleArg\nJ+h3mFgf9Zw61wKfo9ZpNjhkkUC1RqDISfVLxS9bNGERcsQoSIAEjkuAgvC4eHiSBEiABEjglAlg\neUMTwxFVu060mJJ4ovfUF9uExcEQQnxWVfhng8nHBuKSBdN4fiT56CD2sw1E1WrEPmJCePynHV3z\n2UUUyniYO3BJowsjkeRqy3DbzauaPZiTMHdS/k5mHFI27cLLuE8CVUwAP7PCDb9GLBGIX+OWUPLB\ngei3u6Oj6PjRFkMcN805bvvVze5/XFyDGafUD10M9dJBo3/P2Y4aVT1kKwH+5goBc58EpoUABeG0\nYGWkJEACJEAC001g00gCM9HrVBKW8cxwQq2WoZuPFtxTw5iePrdhtpshNTGqHMB0pmiASsC8hhS5\n+vIWt88uvqnH3qxrWzw+uwnjRpOyZaixjmLGUFFlZE8ZH7XozWvXY0fIMyRQGgS0R7XY5NT/UGTq\nuVaiTP+mjIHcbwrrmA4m0vg9hVKZ+/qlvwYh9I/tGawNiFlB1aabmHD5hlX/jIADq5ueXeda6j+i\nF6Y0Cs9ckEC1E6AgrPYngOUnARIggXIlIFYE1QzNtUYL55bYFU71J9PqjBgdDsYy3TG1uKKU1toT\nyRyMQUxmW7o4tDOSFOdVJRMlyFE3mb5CUsQqiwt9MHAYp2GsoweTqZr4xBGcw/T3SyArtdyU6MeS\nOGqUPEgCpUBA/LrxsOafVsuIZaxn1RqAGO6L9UuxdUVS/crBO5zBYOAUJoaRo7hEd4LgLw6Yxtpa\nl1tZ25f4HS1u89x6d7MTvw7MDqqD59OQr9xIgARKgQAFYSncBeaBBEiABEhgygTEU1QJQvnUTdOx\n9myucarbqErFaUMekkHbdyRt6bUW86kOJWUSVNmO3V7dMJzYg3Zw2vrdoai0gREtEsZfy4DNsNaB\nAza3XUYzookM4+E5uTGNC3z2c+plJlVuJFCaBPSv6bkg1h1NbRhK7ImmU5lMXyIDa99wUkzqhRue\n73keG4bsOg0D/SDr8WyrH6EyL1qtLodd/YgwoNcHr235VSp/UP3bKvyRFkbKfRIggdkjQEE4e+yZ\nMgmQAAmQQDkTeD6YeHQojrbu7kj6gb5oQo18xFeMoVJ6VCnQjBhNlOFEzIuXNLpX1yqXOcu8pMl1\nllpvQzWe1cdxaUiTXUUmS3CIWx8GPY5dpaQpThQcOm5s+ZO6qS5t9lw+kIjEI1pXdvIhuVOaBLJj\ndPU9y948pcDkYcAjI4fk/uLTgrSTG4p93Yfy7Eji8YEEhN8DA7H+eFo6N1QXhywAqL7gY02t42Ks\nHaqifHuHv9apliflg1GaTwNzRQInRYCC8KSw8SISIAESIIHqJqDa2aqZLQ1taS2j9Q1bCsZQjSQz\nEIfPBuMHYmJZSRsW5ldEIBwfSuGb0myFl05SxFkWJlldW+eE4QVp1jtsZ6t9JIGv+ECUOFjrPP4w\nSAma36Atm5wmvF8lBhVLtizQDmosWT4kd0qWgO4LUDdMbppWgJJb0+iOpHQXQU80nbYsrAsKL1DM\n8xlJG/f1x9QdV/rPMLDGQ5PLDjfoJpfps5kvx1hZhznf41hb78STZZkyU0z2MVcPi3roSxYJM0YC\nJDA1AhSEU+PF0CRAAiRAAiQgBKQZLo3tI6SUHM/hQfNZbZiBQ6+7fSie2afcUtFkx5jGrigW3VAh\nJicIU1ZmRziNRb11tKp1jt1cMmpFj/k++xz3FCbtgABY6LWLj6thwM1vqd+JlTywj5XBsShck0v2\nuZU+gd2RFFb5048TnqsDMT161nhqOKkV/saRhJ5TKfu4msYcl32pX/oOFqi1PfEMwPkTY/8WerG2\n51hnQPYJVc919lHD4yv26dyDV/p0mEMSIIETEaAgPBEhnicBEiABEiCBYhPAQEQYDMdinUTrGs6n\nsO1gqg9chUs3DMd7lAUyF4m1PZx+Lji2LEfu+NH+KldCnNDWSh3CZmTqnXYPnAXVeh31LuyPZQtj\nxjAM0inaNX/Qwkwh59S58wdEKWTVAqIcC6asp4g1fySbJYQVbSG5GH9KQiifVXXZ0c5m4yjqHyXy\ndTbzgkdwK7GtVJBObnrzozFKShOw4LG551B2uU7s//ZQTAUzRlIZTPipMmeOpqxQGvu5TGrfUMN4\nw1wvAszzOOQ+2kxM8gJ7Mo7ABRQLwatr+UECJFClBCgIq/TGs9gkQAIkQAJlSkCpKDTzC+QaNIvo\nODlzdHE1oagqvPHYQGLjaFKfxHqPsGSK/jEwDFIsoHk7kERtZTLaaTCvUiysL6daEWbOkKgk3MWN\nrtU1mG0kd1B5GJ5V68T4SZ3QEZ+mZbcQUmnGI05IYXCicJzkkeeL/y0jQ+zgG4n5MMfUX9pSEly0\nrtmXsB7sj/VjkZPp3UTOvRROPtifmJiOkm4SQPHRAl3G+9ly8hGS/soWzyK1xmatw/a2Dl82EnV3\nlMzO3ZqJsfMICZBAVRKgIKzK285CkwAJkAAJlC0BbcdC9o/QfnIUYuEY1rajFFbUo/yfE3jZCERY\nmi+MpHaFIRSzhqNgKoOxkUEsMyAnswcxC6UaGzl2BCcQcigBoSi502mKsJTpWMeC5fOCw4t9jjNF\nPR7lLPwW19a52jFtazam/HXTtQNPy2eDySQEYC7/2Megu4OxdE4gqnLkte50ZQTMJEG47GIFv3GJ\nBOwY9inLmiArnT772bVCDxY/LPHX7kG+9e05CjK5edmSHeXsuFT4lQRIoKoIUBBW1e1mYUmABEiA\nBCqDgFYms9myj2esTSNZ62JWs1nGoXh6X3a9x3zesIh5Zns4mYLGOXLDeMgdIRxX4hGfR26ieXDk\naEryyIBF/JaVyEq/ZqMNOEwMrVSj7XDExDqTWFpdVhiZxi3LAoP6xg/jtIxmtQbmNCbOqEmABKqP\nAAVh9d1zlpgESIAESIAEZooAzFKQjph/dYLiM2B4CyYzapUOCKzxEuu5kcT2UEqcVadXfY2BgMF0\nmd+xuh62SRzU+bEw7w4md1XT7sgxj2lipOVM5Wgsb9wjARIggekjQEE4fWwZMwmQAAmQAAlUOwHl\n/QjPVIip8ZIPWk+shmIDPMpZnJSBcuIDOeHC6YGqnSoRd96NFvvae1NMh/LlqDmVM9xIgARIoHwJ\njPdNL9+SMOckQAIkQAIkQAKlRgB6TtSg0lPj86aEF9TeUSWfUoEzJAV1xrQsnWj9g1DU+ZBTRy/J\n+JLxOwmQAAmUEQFaCMvoZjGrJEACJEACJEACJEACJEACJFBMArQQFpMm4yIBEiABEiABEiABEiAB\nEiCBMiJAQVhGN4tZJQESIAESIAESIAESIAESIIFiEqAgLCZNxkUCJEACJEACJEACJEACJEACZUSA\ngrCMbhazSgIkQAIkQAIkQAIkQAIkQALFJEBBWEyajIsESIAESIAESIAESIAESIAEyogABWEZ3Sxm\nlQRIgARIgARIgARIgARIgASKSYCCsJg0GRcJkAAJkAAJkAAJkAAJkAAJlBEBCsIyulnMKgmQAAmQ\nAAmQAAmQAAmQAAkUkwAFYTFpMi4SIAESIAESIAESIAESIAESKCMCFIRldLOYVRIgARIgARIgARIg\nARIgARIoJgEKwmLSZFwkQAIkQAIkQAIkQAIkQAIkUEYEKAjL6GYxqyRAAiRAAiRAAiRAAiRAAiRQ\nTAIUhMWkybhIgARIgARIgARIgARIgARIoIwIUBCW0c1iVkmABEiABEiABEiABEiABEigmAQoCItJ\nk3GRAAmQAAmQAAmQAAmQAAmQQBkRoCAso5vFrJIACZAACZAACZAACZAACZBAMQlQEBaTJuMiARIg\nARIgARIgARIgARIggTIiQEFYRjeLWSUBEiABEiABEiABEiABEiCBYhKgICwmTcZFAiRAAiRAAiRA\nAiRAAiRAAmVEgIKwjG4Ws0oCJEACJEACJEACJEACJEACxSRAQVhMmoyLBEiABEiABEiABEiABEiA\nBMqIAAVhGd0sZpUESIAESIAESIAESIAESIAEikmAgrCYNBkXCZAACZAACZAACZAACZAACZQRAQrC\nMrpZzCoJkAAJkAAJkAAJkAAJkAAJFJMABWExaTIuEiABEiABEiABEiABEiABEigjAhSEZXSzmFUS\nIAESIAESIAESIAESIAESKCYBCsJi0mRcJEACJEACJEACJEACJEACJFBGBCgIy+hmMaskQAIkQAIk\nQAIkQAIkQAIkUEwCFITFpMm4SIAESIAESIAESIAESIAESKCMCFAQltHNYlZJgARIgARIgARIgARI\ngARIoJgEKAiLSZNxkQAJkAAJkAAJkAAJkAAJkEAZEaAgLKObxaySAAmQAAmQAAmQAAmQAAmQQDEJ\nUBAWkybjIgESIAESIAESIAESIAESIIEyIkBBWEY3i1klARIgARIgARIgARIgARIggWISoCAsJk3G\nRQIkQAIkQAIkQAIkQAIkQAJlRICCsIxuFrNKAiRAAiRAAiRAAiRAAiRAAsUkQEFYTJqMiwRIgARI\ngARIgARIgARIgATKiAAFYRndLGaVBEiABEiABEiABEiABEiABIpJgIKwmDQZFwmQAAmQAAmQAAmQ\nAAmQAAmUEQEKwjK6WcwqCZAACZAACZAACZAACZAACRSTAAVhMWkyLhIgARIgARIgARIgARIgARIo\nIwIUhGV0s5hVEiABEiABEiABEiABEiABEigmAQrCYtJkXCRAAiRAAiRAAiRAAiRAAiRQRgQoCMvo\nZjGrJEACJEACJEACJEACJEACJFBMAhSExaTJuEiABEiABEiABEiABEiABEigjAhQEJbRzWJWSYAE\nSIAESIAESIAESIAESKCYBCgIi0mTcZEACZAACZAACZAACZAACZBAGRGgICyjm8WskgAJkAAJkAAJ\nkAAJkAAJkEAxCVAQFpMm4yIBEiABEiABEiABEiABEiCBMiJAQVhGN4tZJQESIAESIAESIAESIAES\nIIFiEqAgLCZNxkUCJEACJEACJEACJEACJEACZUSAgrCMbhazSgIkQAIkQAIkQAIkQAIkQALFJEBB\nWEyajIsESIAESIAESIAESIAESIAEyojA/wcaI3xNUpH9dAAAAABJRU5ErkJggg==\n" + "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAJcCAIAAABmFcpbAABAAElEQVR4AeydB4AdVfm3p9yyvW822fReIKGGBELovUr7S1UQrKio6IeioIKCDbFgAZWioiBKV3onhZ5Oes8mm+39tpn5njNz9+Zmd5Nskt3s3b3vEO7OnTlzyjMzd85v3ve8R3ccR5NFCAgBISAEhIAQEAJCQAgIASEgBNKPgJF+TZYWCwEhIASEgBAQAkJACAgBISAEhIAiIIJQrgMhIASEgBAQAkJACAgBISAEhECaEhBBmKYnXpotBISAEBACQkAICAEhIASEgBAQQSjXgBAQAkJACAgBISAEhIAQEAJCIE0JiCBM0xMvzRYCQkAICAEhIASEgBAQAkJACIgglGtACAgBISAEhIAQEAJCQAgIASGQpgREEKbpiZdmCwEhIASEgBAQAkJACAgBISAERBDKNSAEhIAQEAJCQAgIASEgBISAEEhTAiII0/TES7OFgBAQAkJACAgBISAEhIAQEAIiCOUaEAJCQAgIASEgBISAEBACQkAIpCkBEYRpeuKl2UJACAgBISAEhIAQEAJCQAgIARGEcg0IASEgBISAEBACQkAICAEhIATSlIAvTdstzRYCQqDvCDiOo+mqeN3703c1kZL3jQBn0D2BnML4X01zyIoT657UxMZ9y16OEgJCQAgIASEgBA4cARGEB461lCQEhAAEoo6zuDG6PWyJcujX14OjOUOD5tS8QHsrdFcOusJQ9GA7FPkrBISAEBACQiD1CejqVb0sQkAICIEDRaAiZJ35brWFnnBsTRev9QPFvYfLUQ8Ov64FjB1n8ITiwMRsnzL6tpsPrx2R3cPFSnZCQAgIASEgBIRATxMQQdjTRCU/ISAEdkEADag72pLm6Dnv1rjmQT6c0oCZ7TNcf8NdHCabU48AjqJI+oYokj5uDQzbTiub3IXT6v6X7FDaVRscZ0quf0aBv8BvzCoMDskwsk2dfz5D5ancid33lY6u86Dim1pUxpQZL9TdJB9CQAgIASEgBITAfhEQQbhf+ORgISAE9oaA6s7fsLT+qcrQsEwTGZBn6t8bnzclF9916eLvDci+T+u0xbQ59WG3IurcbQ1ZH7fE1FelCtX/y1uiUXs3p9VpjNqbw7btuqmQbniGb0quOSXHXxIwSgJmeYYZNNhoBk03E3d4ImtYH2XoqeIsixAQAkJACAiBHiIggrCHQEo2QkAI7InAS1Wh/20PvVEbro3aN47JPa0kiGlwTJYP+SA2nz3BS7X9rj5TlepC8nlBg9a2xmK7FYTNlr0tZIcdZ2FjjGGli5uijC/1suNlwaCAgSAcHDQzTGNytm9UljktNzA0w8TKLIIw1a4GqY8QEAJCQAj0awIiCPv16ZPKC4EDT0BZ+WzdMbxuuXLgc+vAZmW+0Va1xt6siXSWCTUR+7+VbZvaLA6YWeT/+eR8QpKIDjzw5y/VSuQKitgOHqcRW3u7NrSkKba+NfZWXSSMO2rceOj4TcMdr6hjSs71GZcPzRqV5TuuKMDG9svPvfj45v5VF6MMT021My31EQJCQAgIgVQlIIIwVc+M1EsIpCQBLwyV6nXzP/1vR2+y7Ll1kbl1eA/qD21ucb0FvY55hwY4AV0/uSRjdpH/2KLgiExTpZTBYB0gpftX5WvqLajEt2ujG0Ox5c2x9+vDYVtvsWyumLpIzBtQyMjC6fnBWUXBYwoDgzOMXNPIMvWERPQuz/bM5K8QEAJCQAgIASGwSwIiCHeJRnYIASHQFQHVZa8I2ataopj7JuX6/13R+sjWNjclks+YmGMOz/QV+c1OxzqMDbt2eHYOcShVcBn69u5/ndLJhrQl4Pmaxl81uBFleGPg/tW2hq2Pm5GC2uvV4Tbb4drbHIoRsVYl1nWGGk7O9eNZOjbbNzzTHJZhFvsNsT+n7YUkDRcCQkAICIG9IiCCcK9wSWIhkCYElF5jPJfqjbvdc6Xe1Hd9UWPkb5tbN4Ssja3Wtog1Osu3rtUiNsxVwzIn5/jphI/OMsuCZj6jA/tuQVdQ1eTPXdXFS+PtTV7fVXrZfsAJqEtRXX5JC/6l28JWZdhGEC5sjCxsii5qjMZsNRQVO2FZUOcKHJnpm5bnPwSVmOvzsvByca9sd1WNRfS2qT+yCAEhIASEgBBIWwIiCNP21EvDhcCuCaCN2OkaZxBW7hoDvbTHK1vv29C6vjXi6ER+JE28m35sYYAxgUwb0KHjvusCDsSeDgKvw9fkGuxmV3KyAbC+ZcuWxx577PDDD585c2YgkJhTvr+2jAilxKHhysS/dE5d5LXq0Ju1kVq+qzGEesDQCUvDpCYnFmUwR+LxRUHs1lyy6iUHV7UrDWWoYX8991JvISAEhIAQ6DkCIgh7jqXkJAQGCgEVk8PRQ7b95LaQmkvAlX7v1UeXNccChkYwmM+NyJ5VFBiRSYwPb3EFpOqEt284UH/Rci0tLW1tns+qKpVK5OTkBINBrzbhcJgEpmnm5uYaSbOok9K2bXaRINNdOuxNbkEkElm1atXIkSPJOXl7NBpdvXp1eXl5fn5+8vb9Wb/yyiuXLl364IMPHnLIIfuTT+dj//vf/5K5ZVknn3zyPffcQ7X74IR1rtZ+bfEuPLKgKfE3F8uao3PqogxqXdsabbac1qjTZhPtVBkEj8oPHFMUOKEoOD7bl20abuyZA37J7ld75WAhIASEgBAQAj1PINGf6/msJUchIAT6moDbRe66Es5z28PVERXzU1lKuliczSHrvo0tboh/ZU4xDY0xWieUZHxpJOMAkX7JPWnVG1f/7bSxi0x7fBM64G9/+xtSJ5Ez4u6LX/ziSSedxJZ169b94x//+OijjxByqKCzzz67qKjIS9nU1PTqq68+//zzGM3GjBnDrhNOOMHv9yfySaygOVtbW//617+ee+65s2bNShZRVVVV99577/XXX9+DgtArl0ITFeiRFdTv//73P1p99913T5o0CXmc3JAeKaIvMlGewVx0XHtxYLqGjyj/Pjs8sypqf9xETJookW83tlkMO3y3PvxufeThLa2nlWR8fUxOMa83ZBECQkAICAEhkPYERBCm/SUgAAYsAaUoXJGG5lPDq9a3WfSPvea+Uh16pTpcH1NhG3cDIN/UbxiTW4bjnabhbUdoUIJ2BI2uDlECsavtu8m9h3YtWbLkxRdfnD59+pAhQ8gyIyMDeyAr1dXVn//85xctWoSpbePGjU8//fSGDRu+/vWvZ2VloY6ee+65b37zm+iiCRMmoJSeeeYZjHKzZ8/uslJYCF977TVUJaVge0ykodyXXnrp4osvHj9+fGJjlyubNm364IMPUGIsXSbosLHH1RpNbmhowDx49dVX0+oOxfXjr65VWl15O64+d03XSgNmabF5XHEwZNmVEbsybDHm8K3ayEvV4YcrWglJenxxcGquP09FJu2zq7cfk5eqCwEhIASEwEAhIIJwoJxJaYcQ6EhA2U3Qgn/e2Iol8NWaMEE4VJRGd2mzHKwjp5ZkEHuj43FJ35kigrD+XsBQZYhRbnc7+t1JCft4FY13ww03nHPOOV49vNFxN91009y5c2+77bbPfe5zCKHrrrvuvvvuY+zcKaec0tjY+NBDD5WWljKgrqysDBMiRsXf/va3XQpCtBlSCtkZCoU++9nPDh482CsFifWTn/wE2VlXV7f79mO9evfdd7/85S8jQbspCHef4f7s9dTy/uTQ747NMNW7jBEZppavnVGaGbXrn9keemhz68Nb2k4vDf5fedbRhT73ZknFa7vf0ZYKCwEhIASEQL8jsLu+YL9rjFRYCAgBjwDx+Z+vCt2xurEuStwNrIMaVpAc0ygIGBlx+55zQnHwO2P37DeonPE86wt/42sphxnNhuEOWZioGSZB3EHHjRuHGvQG/v3whz88+uij33777eOOOy4Wi9XW1h511FGowezsbJINGzassrIycXhiBS1H5gwUZJji4sWLX3nllSuuuMLb+5///GfFihWsY3hEcCaEFpkjODmQnDFXkoC9SErGKyIdWcnLyyNPEpCMxNjrWG9ubmZl94FevGTo0sLCQp9P/XpzFF850LNb0iiqQf6I1ZqaGjZyCEUUFBRg5GThEBQsCVgYM7n7OpCeGnIIDrEJZ1pyw++UwZNsTDaWkiyVl/YBhjqRj44pCq5tjRF6pjpqP1nZxr8j8wPnlGXOLAxwhTM5ChGTcIpWbtGyCAEhIASEgBBIAwIiCNPgJEsT04BAu2uoaiphYJgZ4qWqEOEWJ+f4Mk0D88iYLHNSjp+vzNLmSsTudnYTJsFU7h4TGAa3T9wyaT5jCM8666wFCxYw8I9hgZ4aRPmg/Yiu6W0nDX6kqDv8SBlAOG/evI8//vhTn/pU5ysF5cZGEnj5MADvwgsv5HCUEhZFZBXCbPPmzQgkTxAiRB9//HHSI5wOPvjgiy66aNq0aWykekjKf//73xz7ta99jcT/+te/3njjDfTh1KlTcXadM2cO7qyHHnpo5zp4W1CVH374IQMm169ff+aZZ15++eVIsn/+858vv/wyB2L5JNn3v/99mkn+iM9rr73WM2aiDFHFDJ7EyEka3GiPOOII0tCiDnVALXt1QE+S+Nlnn33//fc55NRTT73kkkswqKKZH3nkkXfeeYfm4z2LSfawww7bTTAer+Yp8Bm/itW51LVLy7M+OSQTa/lrNeH/bm/7sCH6XkPkvfqIMn472kklwRxT52YZlYVRkfvFyPfHhxq6FncCLmEp996RdPcm2gsCXKnkHc+4F/Lfi6pIUiEgBISAEEgXAiII0+VMSzsHOgH6kM6msPXXza1zasLLmpmw22E2tu9PyCsNmmUBIxurBwtb6W8OuAWthTuo16ySkhLcMgn3giQbPny4txFdh40L3YVoZDtSCkMfegz9g7Vt+/btyEIG1+0KDMP/DjroIAYKIvYwPF5wwQUMHWR04ic/+cnly5djJ8RMh7kM6XXnnXfef//9xJ5B+P3pT39CcL7wwgtIJkqnDhgAPRvgXXfd9Ytf/AKJRbZYGhFaJCAEqCsHuq4FGuynP/0pAUhpBUF00IS0YtmyZYxjRBxyDMe+9dZbNIQGAoQ01AHBxlcyR4KykAw7qmfZS9QB4Zqow1VXXUU9aRQaEqGL6iOrhx9+eMaMGcXFxd/5zneeeuqpKVOmsP673/2O4n7961/zlWw95dx11VNvK3eLT9cILXN0YWBlc2x9W+zV6jDVfLU2rFZ07entoQK/wY3DTTQ2y3dovj/PNE4sVhN1uOJSnah22dYLzevd3HuhwpKlEBACQkAI9GcCIgj789mTuguBdgI4IL5YHfrmsoZW24nZenFA/9O0onFZPjzflIuoZ3SIe39i4RhoC9KIeRTQSDQM9YULpefMmayvWMfI5m1B5CDtcAQ98cQTkWQIm4ULF6L0vvSlL3VGg7mMBIw8xKqGUREjIYZHbH1k9e1vfxsFiOEO70oUEWMRCU7DOEPGFvIVHXXjjTc+8MAD3/rWt4hiipGQ8DNf/epXMRj+8Y9/xJSHXMRVlWNRmExrQdG7kVUkW7t27bHHHvvjH/8YUcfSoaocS5W8xdtFYgpCduK8ig0T4YfdD+WMbRA3113VgWNvvfVWRDIpaSnQgIMtlNYRshUhjS6ldEya5513Hp+TJ0/eTbU7VDJ1vqq7QHdyfMbhBf7D8/1nDVLOvUx5H7Y0BtxiPHyjNryiObaCSSxq9X9WGNDNMDAVqtvnmMLAtFwC0vbGnaRe2OT6DcyYvZF76vCXmggBISAEhEDqEBBBmDrnQmoiBLpLQDmIugYKDAl0YfF2+8OGlnn1UaKBDs8wP1mexRzck3Ld4Ilell7XMslvrrsl9ZN0CBJEIGarRH1Zx5mTaSfYgkYiAYpo69atqCO2Yz9ErWES/OUvf8mBa9asueaaawg/g5bDmJbIxFthLx6YuF9ibcOtFJmEbQ0R+I1vfAMLJBY5xCHuqehGnDmZxALV5MlFDkc4oaw8CyFfyRzrHPqKYXiXXXYZAU6pG2lQjFjkOpTb4Sui99JLL8UiR9HEpzn//PMTU2h4KcnKW0nIM2YaHDVqlOfSmbAQYjakDpg3E3XgqOQ6AArrIu6ghNhBSbLXi7Xzs5/9DFFK09jrIUUlkgkWSM/s6ZXeTz7jasv9o26MTNeEnokN1a9dNjSLfzSEOSrm14Xn1UUYi1ujhuNC2AlZ2rPbQ/zrFUGobIPKJfU7yxtHZBhHFwZ5p4MZcyiBcRTZeLX7CeTuVJOfMl5aOUXuFCCFfjWAM9HM+A+d+rHb/QQh6spX4Fy5rhD2ovW2O42SNEJACAiBfkZABGE/O2FSXSEAgfaOj4YUxJrxVGXbtpA9PMs8qzTz08OyBhM3Q6WhkzTwuo/dPf9HHnkkkVSIMoo3JrY4DsO8xkBBrHyIH2x0aEJMW6gjdiGcWDADIvw4qkMZ7733HgoK8YaywoTIKL7f//73+G0iDlFZZM5RSEGmrUdqsoVBep6CQizNnz8fq2CHDJFPdFjRkJ6sYi/rHdJ0/kp8GqyLBMJhFB8hVbEo3nLLLZ4SQ5J56alJ8oFUmCV5S2K9cx2wmrKXilErhCuykMWrIStshxXbaQ6jKPmKlyw2Q1rqeaImch5IK9Pz/dML/F8ZpcC8XosCVMuWNnt1a7TXbi512y5ojLRZGhMnPlrRgha6f2P8tPJiw6vDQPrkgiP+68xCNZvLjIKAinqVaKbjINQZAp3FLKi7WBCSk7JVT8b9xXNHeA5ASLtovGwWAkJACPQQARGEPQRSshECB5bAosbog5taP2qMrG+N0X+6bkTW2YMyx2f7sn30nAagU+je0kWwefY0xBt+m4T3/O53v8twQQQMqgbb2tixYxkOd9pppzHg8PXXX0fboA+9yDEdyiKGCoIQUxvbR4wYgSnvRz/6EYMP0ZDILT6xRmJww7uSNLiAYsFDNzKUEVsiRRDJhuimyXkSZgbbGmP/GMSIV+fKlSt/9atfJSfocp0Biri5EoGG0hnyR8hT5B/1QchhcsQlFfHJqD+iy1DbLnNI3khMnS7rgAJEK5IbvqBUnmGNlIIzLXFocK+lvVhZGUs5evRohPETTzxBfdiVnPNAWkdZKKOgsiA6JxZ5VF0TnpbpapbeUB6qwDUtVsR2tkcs/FeXNEfWtVhsdF/v9EaJfX7GnP9tD71eo8Zw8ukCjzcT7AFDHxQwgrsWhDhCYErl2DFZSr2fWJzhxvzp80ZJBYSAEBAC/YmACML+dLakrmlIQJloaHb722/sN41R5/srG1+oDrXFbHyjJub4b5uQzyAof3w+CTd1GpLaucmYsBgIh05jON9vfvMb/DkZC0cQTrQZu/D/RCUyAvCYY47BrEeQUj6Zk5DPnbPROBChhXXOC53C6fj0pz/NpIKMV/Ssc3hyoqzYwoGY79hOUBlG66GdkGoINsRVhzyxJf7gBz8gCihumWSCfY/ZIxCWVCyRkoIS694K9sY77rgDwyaCFovixIkT0beIXrxeceYk5Cl2PIx4XhDUDsd2/krFuqyDl5JhilgCr7/+eihRE8Tzvffei/BjC9oV6ytWQSyE+NAibgewhXAn18N2kbLjJHXG2gNb1EUwzjV5TcF7VdNOLg0mpg/tgexTMos7Jinn0FeqwytaML2yxBmHbfuNmvB6Zk11rM4VJ5F3k3zcrNZ8RviBzUbQUBOl7MfC761SoScVB68Znj0x2xeX4q5DasJ0qarLIr6p+wFaDhUCQiClCHTs/aRU5aQyQkAIqK6REge6ZTs1UYvZtH+/oRkTYK5PH5/t/8Ko7AvKMlXvKUlLpBs0jHIIMFRZcsMRV6g4vCtRSox5wxEUAca4O0+9IPz4ircnIwkZZ4i4+sIXvoCxLjkHbx0ZxrEsCDa2kC1HoZewK3r6DVMkOtATh4y4Q54hHQktw4HEGmVwILKNA8mBSnrOqxzIkEVMiMSbqaiowLSIne3BBx/07JNINaQdfq0dKsN2jHIEdCFQKmFFv/jFL9IWjJOYNwlsw/wQJKBRXmQd6oMNMBFk1as5CdjoOZF6dWBEJfI1UYeHHnqIEZWeAsT6R/Wee+45SsE5lqGSHHL77bdjR3300UcZGHnGGWdgLGV7h3rK154lwHSIBEQd2Is3OeqFg4OOpkL7eHcWK45m6457X3f5+8aVqmt/36zcrTeHrPl1kYqwvZ+g3OHGelPMfmRr2yMVbd8Zl3tWWXCQ3xc0lQTccR48JbqfhcnhQkAICIGUIaCGi6RMZaQiQkAIdCag7lA8x16oCv2jovX9hiiGwNmFgdNKM84vywgS+9A7ov1v5+Nli0dA9R5dSomV/Sez+6x2v3f/SycHiuAz0YHe5zw7VLXDVy9bb2OXu/a5XDlQCOwgwLXlia72XzPHsdsv7h1aLJF+h5lOSUd15Bs1kcTefV4h27UtsUVNsbdqw7URZ3Kuj6kpi+MhuuLVoKZM6FoaMEdm+rxwOPtcnBwoBISAEEgFAiIIU+EsSB2EQEcCdEraJ79Wu360qumZytD2sDUqy3fL+NyDc/2DeGUtixAQAkIgfQnE9WNvAGiM2S9XhfDIQBkqtdlhcZzSgJHv15nlNdc0Ds71jVFevu2q1XEGB81D8v0J0y474pmoKqN3d3zjl75d/+4ow9O6bnbtee7YKWtCQAgIgZ4nIIKw55lKjkKgBwgoQ4yXjX7T8vrHt4ZijnPtsOwvj8pmvuwuehA9UKRkIQSEgBAQAnECTDMSsh3i3CxqjEfxTaBZ3BSZU0sUHFfbqeGLevJsGag/Q3Pw9cUVlrGIo90RoV8Yme36KODU6ulB9caPlK4a7Kj6lCDcedRiomhZEQJCQAj0BgERhL1BVfIUAvtLgO5Ac9RZ3hJ9s4ZICa10Im4el3tFeRZ9CXltvL9w5XghIASEwJ4IuGY6PhJ++R0OcNa0xJijckVL7MOGqPu77Ok6h2hfGBgxLDZbdpvSkuhGpf6UIFSmQjvXZ149LGtGYaDAr5cFuwrloIaNaxgYMT+iNjsULF+FgBAQAj1OQARhjyOVDIXAfhGoidgb22KLm6JLGqPMMVgdYRSNdnl55jfG5JYEPDdR5XW0X2XIwUJACAgBIbAHAt6Yxi5+bHc4cJBDfP+OZM0xe3lLrCXmrGmNVYRUfFR+z6Pt8W6QmB81usFU3eyPLw5oWudZFpWDSLZPn5Dtm1kQIOopIxUZr+jWV37/93DaZLcQEAL7QEAE4T5Ak0OEwH4RUC+e3Wd63NqXlFlD1GZKCXoPG9usqO0wRuWM0ozji4PHqHfJdBp29DmSDpJVISAEhIAQSF0CG9osfP7b6+esaLaYQnZbyH6Z2YOYY7LTIEL1Q+/Y7qgBHR3omgr1kqAxNsvHeMV8nxqgmO/Nzaj8T0koj4Z2uvJXCAiBfSIggnCfsMlBQmCfCah3yzz/neXNsddrO8bEu2ddY5ulMesW2u+G0bmnlAQnZfv8bsRzHvsydHCfqcuBQkAICIE+J6BEoes5GrM1W3MiiDnlHNpZzjlYFl+tCf1lU+vKFuV1ynODBwCPAjxIST0+y3dKafCG0Tnq3WKXGfR5U6UCQkAI9CsCIgj71emSyvZzAoQoIFLo+/WR+za1LG/uYqplXEKHZRpMiHx5eVaAcSc8+ek90GolIbt4kdzPeUj1hYAQEAJpRMDVdUr/ue8FPVcR9QPfYVFvBN0pN9SKpjXHtKcqW5lr8Z26aNhxaiN2VcSybCUkx2SZMwsD5w3KzPXrhDbN8zFrZRcZdshfvgoBISAEOhAQQdgBiHwVAj1JQD3+vUXX3qmPvFIVdoMQRNk8ItN3SJ6/JMDDe8fzm3kFzy3LmJiTFMG8J6sjeQkBISAEhEBPEnA9Nslwx8+4Z8+Lb4i/x0veGy/dlYPtqdwHRXd8QHA9/aAhMq82Mr8+0hxzljS5wxE1J9M0mC9xfLZvdKaPORKL/caITDXmXL1L5NOtZVemyJ5EIXkJASHQfwmIIOy/505q3i8IKEm4oDH6l00ti5qim1qVVXB0lu+KoVlHFfpHZfhyfAbP6h3PafXYdk2CO3Uv+kVLpZJCQAgIgTQj4JnwXMfNhCa0G7ba2z9GFrosdKNsspE3pDMX5fOh2eojvnRHD6qk3ntGxpljLdzUZn3YEOHzme0htUvT8k29OGjmmEZpQB+T5Z9R6GfoQbwqO8qKFyl/hIAQEAIeARGEciUIgV4k0BS1v7ey4YWqcNgiQoA+Mdt/x6S8g3J9fjUaRIUCcJ/gvMNN9Anct8bqW2JLL1ZPshYCQkAICIH9JBD94J929Vpr3XzycX/UCRTTHlSULerH3vAk2U4F6ZpRNskcNcMcNdMoGOru6tbPftJrQ3LVebZQGFNcvFwdfqU6TGzqqEVsaoyCasyhqetDMkw04Q2jcvJUZDJZhIAQEAJdEBBB2AUU2SQE9oqA46jBHJ6Zj2cwT+vGqL09bD+2re1PG1t5nZvvN4ZnmJ8dkX3+4AxRenvFVhILgdQi4Jp1+KDjn3iPEx8Y5m5UH/wff91Dr9yx2+p0m0nOLS3UpNmx2LLnnVCDvWUhn/6Dz02t1kltukeAM+5EQ9aKV1z9h4pzT3kgR/MzBoCvuhbI1v382mtOLKSFmtvf/e3IXT0yYhEt0qwGh/PYyBtsDj3EGDrNKB2rBXN1w9T82VpA5cCiCiBNNwYHelqxyXKeqWxjzOG7dREmMWqMOSEq6DhH5PvPKMs4rjDII2lwMC4OVcZu7ojYdm+VbulSr27yKQSEwMAgIIJwYJxHaUUfElCdQxaihy9siC5tjkUcZ1VzdG59tDJsBXWdaaZOK804Z1BmhhssNNGJ7MMaS9FCQAjsK4H4/U4vPdFr9lz4VIaO5TRUOOEmVu2tS5VMwCmwYonGr0K01alZ50TbvHL1YK4T4W1RF5GlvATymcoE3BOraZkFRn65uhJMJpgfbxSO0rOLXPmm6cWsF9MEp6XaqdnQZVuctnq7doNTt9lp3GLXV2hIR7IKZOpFo3R/ll44TC8cYY6cbuQOVofvuNy6zCyxUT2O3DimXjgy7bXq8KqWGMMOP26O4VlKNgwvnJDjP6E4UBwwGHCIx0pQV+KQ0QreFSsPqQRNWREC6UNABGH6nGtpaa8QoC+4rjX2UWNsfn14fl2kImQzaQQPXbqNhAX/1NDsyTk+5o9SfUfvadvd53qv1FYyFQJCYD8JqPsY69C6efE+utcDb66yti3TYlGttVYZhUjUsJmC4srBtfHoOSUMJ0MKmmOO0fyZWiysfiZk6YcEOL3qJz2QpWcVqnNs+oy8weqkeyfcfVXgyqr4Ce5aYrFT1zEga611TmsdTqf2tmX2to/RkHEkph9vUnPU0ebkU7vOoRM6VTH3mvMurPi6o1VH7IqwhSB8bGtoQUOkMcbYRS3Xp5cGjWEZxCY1TysNEqT0sHy/X1XebUCnzGWDEBACA5iACMIBfHKlaT1PQD3e3deoPDBZrYnaf9rY8khFKzNFMYqDeaWm5fqPLQqUBIxTSzLxyfG7SrDn6yE5CgEhkETA64qru9LtynqTtLBfdYjVn44dXN7juMEXGdlFpzze/1U3t3d7cwj78Z+zIrH17zj1W9QuK2ytnW/Vb3Jvfe52K16YOkodgFPojnLZFsxOeIT6p1+pkrDRwBTDpwr/KIsQ2IkAIwH5Z/MkcazKZbFVb8YWP63rhmOYemZB8MSvGyOP4kpW15h3caqDO17YO2XY6QuXMUoQq/QDm1q2hOy/b2nheC87H1c7hel6vk//9LBsIp+dVBJQbzKVxIw/9FTR3s2ibhu3Lp2KkA1CQAj0UwIiCPvpiZNq9w0B9XB0tLDtNMScJ7eF/rqlZUublWnqQzN9Q4PGhUMyzygN+nG/UUMx3EfmXj6w+6ZVUqoQ6O8EVP/UfV3j9W/VfedoVsQJN7PidWJ3aqK6k22dSd3Cza7Yi1oVi5ym7aRRVprqdeoWVv+5d7Hb+VVHGD49mK0ZzAqjab4MLZjj5ak66YQNKRplDJ6sZ+Sb5dP0zDx2uT8X7YW7mXjp5VMI7IkArxei1pq3reUv2bXrneYqLm4GGfqPutIoGqllFqrrW11Z/N2nRV2NXJ7avPrIulbr0YrWmKM1xCw+Kwldqu4klSLHp59XljmjwD8yy1ceNNGKDDxUwlGJSK76fS19n6osBwkBIdCrBEQQ9ipeyXzAEXCcVtv5z9a2V6vDr9eGkYKH5fpPKc3A32Zo0Kcese6DVD1M3UU9NGURAkKg9wlYW5eoXjL/mmucpm2qU9vWYNdt0DHldbWo7nBLLb3tpJ2qE4z5Ts8fqmfkqu1s8GcYjObyZah9/kzVHQ9ksYcRYihAlUalUv+pxb3dk+95dRQ73d+B5O1uavkQArsi4F5P7gcXtrXmLQtLdcMWLjNzzNHmmGPNkUfpWQXxC25Xeexuu7owvSuXv3xpiTkrW2ItljO3NtJi2YyDaLO19+sjXipyOrE4OC3Pf2S+/6iCYDBu4ZYreneIZZ8Q6F8ERBD2r/Mlte0rAurxSb+uIWrfvqrptZpwbcQq8Ju3jM+dURAozzDxtOmrmkm5QqB/EYhbFzwJ5XZ5PROeu0r/U91KrrGvo2UPO4kaYWXF3CSaXbvRqVqp2k5qxmK53WX1NdLstDUoFeZlxacKy7/T4vaF1RZj8BQjnznidD2YYww+SM/IUZ5wWUUYAOO3NPFCGCdm+nc6Xr4IgQNJwI7ZNetia96OLfi3Fg2rsYslY/yTTjOnnKVml2BJXO7evbF/dYvYDmMO+VzfFtvgznP4UlWYN6EBXS8lDk2W77YJeaOzfa6QpGR5+O0fbjlaCKQGARGEqXEepBapTiDeWb1zdSODBuld/nJy/tmDMvymcg9N9bpL/YRAyhBQapDKuIJMrXFjud+VaKtcaW3+wNOJbHSiYWv9PGIwxlN7OzD3qYiI7qFqzJWnHNU+QzcYgIUIpG9sDjuMGd4oxyybYow4fHeGepWbqoHq16oeLuu7S54yIKUi6UeAGLZWLDrnXsYWqitWZ2xhXmDmZ4xRM9Q7C3XP9Lwp2p0vRSNS2stV4bvWNa1rIU6pUxwwfzYp/8SSoFuiumXS72RIi4XAQCMggnCgnVFpT68QcPudD2xuvX1lI8++c8syfzwhL9ev3s3KOIpeAS6ZDlQCsYgdblQzszENQ9N2u2KxFm21tjB+r1LdTYZfI+y+G3OFEXvqBjNNtir7h9qta2bACGTTGXaVG/a9yfhtutYRQj5mmuNP4pGmyCmjhScWEYikVVH197iQj0rjjo7aY2JJIAQOMAHvZQrvQnhLEnv/YWvLYu4a6sAchoQv0ocdwhwYeoYavNpzi/vCxb3fVJ669k5d5CdrmhY2RnCQuWhw5udGZBOnVB6CPQdcchICfUZABGGfoZeC+xcBOotEZrt9VfPEbPM74/JmFQZ8EkG0f51CqW2vEHBFFLIr2sYUfBqfqt/Y0WJgVS4nxAvl48zJuD6nZr3dXOUmUspNDdvLLmFKbr10vHLg9LuD9BB1OtNzZ6APd6i8zELPwzNeqtuiuCBU6ypLtwKuuIvXIv7HTbuHDyUe9yL5HnKT3UKgRwl48ix+gfIyJbZurl212sGPOhrS/QFz7PHmmFnGqKN0M9BD5Xr3GZkp86P60DSmVrp3Q/PTlaH6mH1+WeY5ZRmnlmS0F+fefN4t2L5J/goBIdAvCIgg7BenSSrZ5wTUk/iBja23rW66eEjmLybn93mFpAJCIDUIuBrKcWIb5sfm/tlhIj4lBzuKKqtpm5qnoavF8GUYE070TzpVU6Fc8ojh6Uqyjjl0dahsEwJpTYBQpE5TlV2xyNq8wFr+omKRVeA/8krftE+4oky9KnEHGfbY3eTd7cTZfrM28pt1zYubYoMC+umlwc+OyBlOjDXPlqii83bLJp/WJ08aLwRSjIAIwhQ7IVKdFCWgnqz3b2oRQZii50eq1UcEXL9M7H614Sf/n1OzgZ5g133PhKWhQz0Nwz/tPN/Ma3VfMDH+ye10dp1Nh6PlqxBIZwLu3efec45th+ojr97tEIwUX2vGFp50ozlyputp3cULmv2A5jClvZqe0NFXtkR+vqbp5eoomnNitu9bY3NPckcVqvG8cvvuB2I5VAj0CQERhH2CXQrtZwSitj2nLvr1ZfXNMefzI7O/OcYNSd/PGiHVFQK9QUC9Kwm/cLu1+g1CuQTOuEUP5nZ2u+ysB5UxQVWH7qy3oqLBuN6mKsNdyMreqL/kKQT6LwHuGSXOvDvGWjOHkDOOHSMeL8Z235FXmBNPMbC695w+c29OpQYRgcq92nF4T/rPirb1rTGC/x5bGLh5fO6oTDPTFAth/72opOZpSsD8wQ9+kKZNl2YLgW4TWNkc/cHKpo0h68qhWV8YmZ3JC9Cee8R2uxaSUAikDgG6g0q18cdeNzf6zoN6ZqF/1meNktFd9j5J2eEfLXG3qA/0n5KA7ofazDZZhIAQ2DMB91ZRTyO1oueUGuXTzJHTtWCOXb3WXjfHaakyh0zR3Zkz95xZN1K4BXlPPwpV9+5h+YFjC4PMvFQXtRc2RQlGui1sBQx9RIbpylS5mbuBVZIIgRQgIIIwBU6CVCG1CbRazr0bWxgyMTrT/PVBhYUBNdOEdFpT+6RJ7XqXgCcH6ethGIy+/Qc9FjWnnO6bdKpuBMS817voJXch0ImAez8yab1fzykx8srNYYciDrWatfaWJUbxaKN0XKcjenJDgV+fXhA4pjBQHXEWNUaRhe/URxlnyEZ5UPYkaMlLCPQmATHr9yZdyXtAEKiN2n/b3Bq2nD9PK871JuOlzyuLEEhnAu4dYFetjX34CLNHaNnFgVmfxxDBmCU3EmE6o5G2C4EDTwBfTgNfa/e+dDRfwDfpFH3IQZpua+Hm3q4NpWYZ+pRc/x+mFjw1vXhStm9LKPaLNU2fXVjHBPe9XbrkLwSEQI8QEEHYIxglk4FJgGdsi2V/ZmGtqetXDMsqwQ9G+eZ4DjMDs8nSKiHQLQI4jFoxu36jE2nljgiec7tj8DRRt4fy+ZRFCAiBA0hAPZTUo4ki3SeUuhV5Wqlb0tvay3XxCtV5UB6SF3h+RulXR2aXBM2Xa8K/XNvUajG5Pb8X/JNFCAiB1CUggjB1z43UrM8JEOXisYq2lS2xcVnm5eVZ2Waf10gqIARSggDdT6e1NvrGPcw9qJdN0otGiQpMiRMjlRACKUDgG2Nzbx6Xy2/CC1Whxyp4Z0Sd5BciBU6MVEEI7JqACMJds5E9aU/gg4bog5tbA7p+fHFwfDbeorIIASGgCPDK31r9JrPMM1QpOPt6gSIEhIAQ2EHA0WYW+ocEjZqI9Yt1LWtbY2Ih3AFH1oRAShIQQZiSp0Uq1ZcE8G7hn72sOXrrqkaiaef7dCaj9zNAQ95x9uV5kbJTgIDy/XK9v3QnOvc+vNECM642Bk9W/mpyd6TA+ZEqCIFUIMCzsixoPn5k8eyiYHPMvmZBrXIalUUICIEUJiCCMIVPjlSt7wjEbO2VqtDSxmhZ0Hj4sKJx2T7VDXYnSuu7SknJQqCPCahOHXFjmqqib/1Rc2xjyEF6+cF9XCcpXggIgVQjwLPS0QYHzCuHZeWaetTR62OiCFPtJEl9hMBOBEQQ7oRDvggBZF9lyH54S9uDm9TIh8+MyMZZ1Hu7KXpQLo90J6AMgU504ROxxU+xZhQMNfKHpjsTab8QEAI7E/CGVyABx2T5AqbeEnPeq4/snES+CQEhkFoEfKlVHamNEOgjAsoVLv4Q07+7ooGnV1PMOa8s49xBmfjFeXv6qGpSrBBIJQK8+g/Va7ZlDJlqjj8hlWomdRECQiBFCMSfmvVR22p/tKZIzaQaQkAIdElALIRdYpGNaUfAtXy40wvqzoqWWGPMKQ4aFw7JHJJh6jL6Ie0uB2nwLggkuX35xs02hx+5i3SyWQgIASGgFfpNH09QeaUq14IQSHkCYiFM+VMkFTwwBNR02jqx0O5e11QZdkZkmndNyZ9eEMByyMNMHmcH5iRIKSlOQHes2IqX7XXvaP4sPbsEeSi3RoqfMqmeEOhDAmOzfUFDD1lOyE56mdSHFZKihYAQ2AUBsRDuAoxsTjMC6mHlaBvaonPrwlHHvmlsLmqQbWq2X+n0ptnFIM3dFQEn2matm+uEG/1HXWmOPU7U4K5AyXYhIAQ8AmUBs83WXq8JV0XwHpVFCAiBFCUggjBFT4xU6wATIGAMUdDm1Uc3tFqsn1WWqcKKKikond4DfCqkuFQmoG4HRhH6xh3v3hxyd6TyyZK6CYE+J+DcObkgZjvLm2NVYZsfDzVcXxYhIARSj4C4jKbeOZEa9QkBXXt+e+j2lY10c39zcIHq9MoiBISAEBACQkAI7CsB3q5OyDbd5ymPVDUXhcRo21eWcpwQ6F0CYiHsXb6Se38hsDVkfXVJfbapf29c7pmlGUy2prxFZRECQiANCNi23dbW1rmhu9reOaVsSWUCTU1Nr7/++rZt2zpXsrGx8d133129enXnXd3ZEolE5s2bN3/+/O4kTsc0PEaZkDDDXNYU+7g5xjNVLITpeBlIm/sDAbEQ9oezJHXsfQLPVYV5gXlkgf/8wZl+Q6Rg7xOXEtKJQHNz8wcffKAiNLnvWbxOYX5+/sEHH8yuhQsXTpo0afDgwQkka9as2bp168SJE0tLS5FqdNnZy9dEAm+lqqpq7dq1JBg9evSwYcNME1uE1jk9RSxfvpzPKVOmDBo0qEMmfG1oaHjllVcuvPBCw9jpJen27dup9tlnn02aROWj0ejHH3/c2to6bty44uLiZIuHZVnUp6KiwisiIyODOhcU4HHQxVJZWUk+OTk5pMnNzU1OQVk1NTWolKysrMmTJ/t8vuRSYrEYfKjbqFGjhg4dyq7kvcn5yLpHgLN/4oknPvjgg5/+9Kc7MFm6dOk111xz5pln3n333R12dedrXV3dJZdcEggEOO/dSZ+OaXT9rEGZ9zOvL+43cqWm4xUgbe4fBEQQ9o/zJLXsdQLKlcUpDZj86/WypAAhkGYE1q9ff/XVV3do9OGHH/6nP/1pyZIl9Mh/8YtfXHTRRYkE//jHPx577LE777wTMYZhh2Mvvvjin//854kEZHjPPfe8+eab9MgRSIgutOV3vvMdJF9yepQV+u3hhx/+1a9+deqpp06fPj2RQ/IKuaEWZsyYgapMdFk59t///veyZctQCwhFbzti73vf+x5GIbIdOXLkd7/73ZNOOimRFZaoH/3oR9TK20JutItsEwm8lXA4/Je//OVvf/sbVUVLjB079vbbbz/iiCMSyebOnXvrrbdu2LDB7/fPnDnz+9//PtrP21tfX//b3/6WilFWWVnZ5z73ucsvvzwYDCaOTYeVhDhPh8ZKG4WAEBACB4DATm9DD0B5UoQQSFECyiiY6AqmaB2lWkKgnxLAkvapT30K+wzCZtOmTaeddhpfEVrY0FBH6DHMd8lNq62t3bhxY0tLi6foSIDFLJFg8eLF6MNf/vKXHHvuued+8pOfxM72zDPPvP/++x3Sc0s/++yzN95445gxY374wx9mZ2eTIJGPt8KWlStXvvPOOwsWLEj+CUDyoe7QbHgVkpJkrNx0001//etfJ0yYcPrpp3MURkU+ExliaXzppZew+F155ZU0EImLZkvsTay88MILP/jBD7Zs2YJxafbs2e+9994ZZ5yBRdQrhcYig1esWEERmAfRjUhQdCB7cVB84IEHfvzjHxcWFtJqbKFf+cpX3n777UTOA34Fg95PfvKTOXPmDPiWSgOFgBAQAgeSgFgIDyRtKSsFCaje4eY269XqMJKQGZNSsIpSJSHQ3wkMGTIEPUYr+MT89fnPfx7zoNeozgotubEJhZZIhqfl//t//w/5dP/99yO6Ek6euJWSJpGeTEKh0OOPP/6lL30Jd8G77roLEcXG5AReQWx57bXXqqurkY6Y+xCNbCcrrJeUhVcquzy3T4Tcc8899+Uvfxn3Qo5CtlGBG2644amnnsLQx1HUAY1Kieedd56XeedPVNxbb73F4WR10EEHMUwRG+DXv/518vzZz36GCv3CF76A7yv2z0984hNUAyPkfffd9/LLLyMv0dKYOhHSyEKqhG3w2muvRRPi15qZmemV1QFC5wqwpTtpujywzzdiT8ZujCn42GOP9RrCZ+Kc9my79i23fTuqz8FKBYSAEEhzAiII0/wCSPfmYy1AAj60uXV+XWRyjv8TgzPSnYi0XwikJIFEp//JJ5/EmocXJXIooQap8lFHHZVcccb44XeKmjr++OORENj0kvd2WGcQI1uwMX7ta1/DKMc6OhCvTlbQhCwMF0Re4imKSRNB6FXmlFNOodAPP/wQt9JDDz2UxP/5z3/4fOKJJzjkmGOOwX81UW22ewtbOIpSRo8ezRaaMHXqVLLF95WvjHb76KOPcB/FZshXEiP5aAg2MfQnShIr5WWXXcbwS/aSCbZWPGnR2CeccAIjEtGubKQ+w4cPxyhKnVknE/xpPbdSXF4ZmsjIQ1JSNIqUotetW4fUJE1JSQnZdrl0OQ4TNUuGmDQZA4ldlKw4FkVEK7DujhgxwgvWcsghh3gy28uZBOh5LKt5eXmMHWWcJDKPqqJpqRU1hwx1JhlDJTdv3szbBPgjkqkDdmNvoCaHcCyjK5HQWFM5EM9bju2y8omNGFqxAxcVFXGsp+ETuxIr5A8QyoUSDL2Bqd5e2kvNaS91JoeECPf28i4AZc7h1KS8vDyRoawIASEgBFKfgAjC1D9HUsNeJKDrWn3EWd9mMWPu6aXBI/PUa35ZhIAQOMAE7rjjDk+AeeXuJkTHo48+irpDCO2qQ+/lwEA+RBQWv5/+9KeM5dtNcxiMh0gg2Axd+b///e84ZJIY8x1i5rjjjkN44L/KFix76ByKRk54uVEBVB9ijO0IQiTQ//73P3JjOCKWyfHjx5MVbp8dikY14Sma2Eihr776KlIHWchGRB3SCMWYGBaIYRPt4W2nLHxQkT3oJRIjhzxFR5RLRioythAbJuWuWrUKhYbV8fnnn0dekhjtiskRBUiwTfxgaSyCh+1HHnkkiH7zm99QbfTPH//4R68aiep5K/jiosDJFp9VRk5i5kV/osTw2n3kkUdwlAUFBzLukU+yvffeezG6UgfkEzmQmF0cyDqClr3/+te/kNy0EZVLblSAptEcskKDMXyUwZM4ykKGiuEPjKpnNCZqECsuJ4IEZMUW6nD99dej59mIyRRH4m9961sJdF7lE59UiVOD2OMUnHPOObfccounqxMJWAEL4zmpTKJc3iYgXNnFUNXf/e535EAlqR7kaUXiWMhA7/e//z1IORGJ7bIiBISAEOgXBGQMYb84TVLJ3iIQsuz7NjW/VBUydHt2UZDJJmQRAkLgwBNAfdELTyyJQJ0daoLVCPFDxNEux+YlJ0aK0Lk/+uij0TnJ2zuvY4YiW0b9oe7o8aMEMNah6NAV+HCiBrGeYRpCuWFfQkIkm4ywBbGdQ8gBrUUOiBbUHaILyyGCkMw7l+ht4RBW8DJlUCKVJDwMXxEbZEhs1cRRaA/aSxFsR0RhlUo2TGE9Q0cxwJIaspc4NNjKzjrrLJqAaRFVzDoV/sMf/kBB5Ek+1JC6oagZ2Imk+epXv4olE/MgQxkRP4lyEysYxNCT7EUe/9///R9ACHDKXgQVBlhKZyNerxBDm3ntpQ6LFi1CQV166aXoQBqIUqWG6DdkPweygrfttGnTGEhJMmrO4ECyYkQoplE0MGIP3UjNMYciX3Ga/fa3v40UR3ACBAsqOpb0RBuiXBQyyeCD+EewJWreYYVqkBUnmnyQsskxiryUQMMbmRpClerxidswIhOxR4LbbrvtG9/4BmeN9lIBXiJQoqfMWfnnP//JuFAshxySeGXQoQIH9iuT/vGPiQBlEQJCQAjsmYBYCPfMSFIMYALMNbG6Jcbb9j8fUnSYMg/K03MAn21pWuoSYEBg8pQAWLcYJpdcXU8+0f+mm44tDo/Q3Xe7Mdlh2KF/j5piMB7iITm35HWG52HgQpzQy8ckhSUNF0cMa9iaMC3i94iwRBJQNBIR8x3Chsp4SgAlwwoShU/U4Mknn+y5TTKuD5GGpEHoIhqTi0uscwiGUExnWLews3kHUhO20zo+vZSIDc8kxRb0BvKJJZEJu6hPsk2MAKSjRo0iASIKDYPOxGwFB9xNkW3egYR1/fWvf439ELdbLHKIKLQupi0veirNSeRPS1FiFI2kJIIO2xFF6D3i+nCCaDIevN6JwIhHq5GgnissIg2rL6M30ZNYL9HnVJsDqRValBI5Ch9LDLBew9GNKDTSUwSylnxoLHA4idhLcQqlIGyJDB0kyg4CFamJfybOw9QfJ14SH3bYYVdddRVmQD75mmiCt8IFQM3RbMhpqvSZz3yGE80p9vZ6tDEpczF885vfJG4N26keohqrL2oWn1VqTpRaxovyMgIsRA/C4updlry/ICsuOSzMnYvuUJMD89Vp2u40Vzm6rQc6ojgwFZBShIAQ6F8EdvmM7F/NkNoKgX0jYNlaXVS9qB+fxb2gHu7t3bB9y0+OEgJCoHcJoBlefPFFhARWtYRq6lwk8oDoLIhM+veoLFwE6b53TsYWtA2ahB4/VjIMUFh4EDBYz5AcHIiwQY2gDRBdiBYMZawnysUORhrPGRKXxcR2skUsEckGa2GXhbIRU9vNN9/MGD9kWyLEDlqOgjCX8WPk5UZxCBg0KgXhpojgSQ64igMkCah5omhywLCGaOHTG9nI+D3aniwjPcWItEb7MfYPjYTJzpM3yMvkCnMUTcb5E73nFYHAZsG0iDaeNWtWQpYjhikIa6pXEFY+Fg4hc88dlxZhn8Tv9LrrrvOcMGkpItwrDnos3jq6kYX6o9m8LXjqMr4R5ZxcN+Q0bUc8E2jH2w5z5HdySxPpaQJ7PeMqIh+jKJoTPe8loG4s6Dq2XHDBBWzkK9VDAzMiFMi8EaC9hIT1TNO0C1mbyJwSOSlcPDQ5sbFvV+zaDU7tBib+M4Yf2bc1kdKFgBDoFwS6fkD2i6pLJYXA/hFwVrVE71zTvLgpOjRoqsnoecjr4jO6f1DlaCHQmwTopmPyomuOc2AHt1K0AVNEJBeOPQd1hw2NUWFY/JJ3JdY5Cl9Kuv4YmnAHxTKJeYqBapjO0EtoMLQTW9ADaAkyRJslpnlAJ+Aminsnag0rImPeECeJnNEbySInsd1bISVKFesTbpae8vS2I+FQPrjOJmazQI9hZsR8h+mJqRQZg0cFIEB6VBPrCCf8JyHj5cBXb4XPXdlFk7XxrtIkckPyIRc9N1FKwWKJykUTIiZx+PTspSRG34LaE598pYjkUrzc4MyAQCLuJDSb5wrLXn57E+nR556MxG6MLZEFLYc3aSLmjddYVCWNRdphq/SS8RaA8YrJAWy8cvlETILLk7ucdCyirCdb86gAF4Cnab368Al5akUyTiVl4W2b4ExjQeHlz17eOGC6xH/V29KHn+o6sCJ25XK7rc4cf7yRU9yHlZGihYAQ6C8ERBD2lzMl9exJAjzU17RaV3xY+1hFS8TRzh+cWeCXe6EnCUteQqBnCXgva/hEMmFYQ8VhnqL/jQ6hr48wQyxhOUwulMR4GOLpx5A5rHBeGM/kBKzjykjPHqXhWX6wCGGzIi4L9h8ED7LEi9FCEQgnjJPY4jA8EmQF8YkCRCGgIdEDeFQy7I3xZmgkxAYOmQwgpKpYjTqUyFf0FYMMH374YSaQ4HBkJ1s8dYEmwfkQOxvOjdSNmmNPI3AoRSNIMJQxoQUxS/D2RJUhd1lhECDatXMpPbIFOcQ4Pcxf1IfGIkcZV4mORRtD5umnn0aMURPsfgy6I7QmwnU3ChNQeHv++c9/xq8VVYbDJ7mRZ4eqIs69ODok4xBG6+H1Cl7OlHcZLPj1rQAAQABJREFUeOnxgEWNkwnDSlGtyHiwE5G1gyHRS4yE5oygrpHiqEeagLkvmRsPBU4u8hIHVAQ56WHLewdyZlgjZeEKyxbcgBGx2HWJDJSQtRgGyRwjM28rsO56JSakY4fW9epXRg1i3LSjYbtqDavmmOPi7wl6tVTJXAgIgf5PQDrB/f8cSgv2ngB2wDUtUQYQ5vrM2ybkfm5ElsxAuPcU5Qgh0AcEkE9MY4g8QAygzXBHxICDEkNgYLbqXCHiWDKbPGPDmLwORdEhAa6n6AdGqXnmKfQGIU+w9iAM6NCjbcgfwYORkAMRZohAbIaEV8GVFBsgkxAyGo1jma8CRUS4S/ZSMQahIfZQfRzeoUS0H1IQTYLVEcdLKk+LWJhmkJRUgAF+DPljPBuejQhaPGOpOUWzF7lIW9iIKyz2MaYu5CiGxnUoome/QpvWoYFRgMgzao77JVIZOYp4pqpsRPpicGOdKD67KZ360xbSIIMxA6JysawmmzS9Y8kclYtgYxQihxAGBqpowoSF0EvGLpxFGeeJZqZKnDjcVpHTGCG7rAOSGzmNDRDbLDzxR02Wl6yzkQGTZMi5ow5YbimXGDNs4SgajgzmAqC96F4uG++a8crCm/fGG2+kSlwGhITtEzVITZSLS6TFrlrttNXxxSibRFyZLmnIRiEgBIRAMgEZQ5hMQ9bThoDOM1KFX8v36VcOZcy9PDLT5tRLQ/uUAM6NdLWTZ2nDroJ1JTGIzqsdKg7F5ZnXkAEkwC0zUXFyQArS+2cIH36bSCxsSvTIPdXUIT2KC7dMhvlhiULa0WVP5MMKpRAqk45+YiO2QcryAqsgErxpDD1dx1e0Ilmh1jA0IRpxUPQMYohA5k44//zzcfVEDDCSDT3DQMREtokVZAnqgvgrbEmWDVj/vDTIDLSNN+MFlcdbEg4J7UHwGyyEWETx4aQUknml4I15xRVXIFS8TJI5w5boLOTDLqQvtj5vHfsYtlbQsZ3DkZo0sLN9jy343BKtFNoABI4XnAZ7GjFUGNOIPROqiEM8Nr3DicOJf6Znf0OqIZsZqcgu8qcyWFOx6eGNibKiJtBA8qHVk+11NAR/UZIhxYEPTHKgnqCgLQnZiXJDMGMuhgbnhZOFePMIJH+ykUuIPDHuMSIUox98uPBIg+pGnXqBf4DMAEJ0L+oX8yw5o729XaSkvSh52oullEahgWkR4hNuaFqahnkZm6FncyY9W5Lr0NvryjbI0tYQefdv1to5Wku1UT5VC2QwoaM84HobvuQvBAYAATX36wBohjRBCOwtgRerQt/8uCHP1N+e1fEV/t5mJemFQJoQcMLNkVd+Fls7J+vT/9Bzy9Kk1dJMIZDyBNyunK7Flv43+vYfNdsyRx/jP+KTRsk4hGmfC8LbVjXev6n1rsn5Fw3JTHmSUkEhkKYExEKYpidemi0EhIAQEAJCQAgMCAK6ZoWsxc/EPvqXEw0ZBUMDp38PEyXDCQ+omXJAoJRGCIH0JCCCMD3Pu7Raa7WcncKrCxIhIASEgBAQAv2SgBNb+FR03p80f4ZZOjZw6s2uv2p85pJ+2SCptBAQAgeWgAjCA8tbSksNArjXLG2KhiynPNv0vKYP8HiP1MAgtRACQkAICIGBQCC68Ama4Ztwiu+wi438oX3uJjoQmEobhEA6EZAoo+l0tqWt7QQWNEZfrQnFHG12cbB9m/wVAkJACAgBIdD/CMRWvqG1VusFw8xJp+r5w9S4QYkO0f9Oo9RYCPQlARGEfUlfyu4rAkxCuKbF9mnOsYUZ1EFGWfTViZBy+ykBxxaH63566qTaA44A8w7Ou4/4gIQVNYdMUcFr+V+eagPuPEuDhECvEhBB2Kt4JfPUJcB4+08Nzz4s36+cRd3xFqlbV6mZEEgRAoapZxZww0Tm/FFjEK7b80yRqkk1hEC6EVCT0FuR6KKnnFCjkZXvm3ImrzfVIm850+1SkPYKgf0mIIJwvxFKBkJACAiBNCHgyzDGztaziuy1c6yty1zbulgi0uTcSzNTjgD3nl2zIbbsOS0aMqecZZRNTrkqSoWEgBDoJwREEPaTEyXVFAJCQAj0PQHdHHKwUX4wFXG2r3TE27rvz4jUIH0JONE2a+mzTt1GvWiU/8jL0heEtFwICIH9JiCCcL8RSgZCQAgIgfQgoNyr/Zm6qUbe4q6GfSI92i2tFAIpRIDZBdXdZ1uRuX9hJnpmG/RPv0rzZcnQhxQ6SVIVIdDfCMi0E/3tjEl9hYAQEAJ9ToDRg7qhIleIx2ifnwupQLoRcJWftfpNe/FTWka+f+Y15phZum47Mu9gul0J0l4h0HMExELYcywlJyEgBIRAmhCg+7n5I6etXlkKZRECQuBAEsA6uHlh9IOHHd30jT/BnHCybjKhrrybOZDnQMoSAgONgAjCgXZGpT1CQAgIgd4i4IUVzSvTTJ+16UN77VwJZ9hbqCVfIbAzARVTlIWN4cbYkqft2g3msMN8R16uB3DhdoOLis/ozsTkmxAQAt0nIIKw+6wkpRAQAkIgrQlghKA/6j/q0+bY2XYsZG9bltY4pPFC4EASUDZAmwC/kbl/trcs0jTDd/TVRnaRqxEPZD2kLCEgBAYgARlDOABPqjRJCAgBIdAbBOiQuh6ijjFoorHiNSfUgNcoMxP2RlmSpxAQAgkCzDfo1FdYmz6Ivv0HNuq+TN/BZ5uDJqgEYhhMYJIVISAE9pWACMJ9JSfHCQEhIATSjoDb92wfrGRtXoClwhw3ux0D8Q6ld9oOQ/4Kgf0ioN698L+622KR2MfPW8uet6vXaoEs38HnGgXDfeOPx0jIzvbbcb8Kk4OFgBBIcwK9JQgty3r//feXLFlyxhlnDB06dH8o4zOPd/z+5CDHCgEhIASEQA8SMCeeHPv4BadmXXTx08awQ52MXEMFwkcO8oNtyA92D6KWrNKRAPeSF8GX+DG162MfPmqtm2+Hm42SUYEjLjPGHKuZAXn3ko4XhrRZCPQagd4ShMuXL//KV77y3nvvXXDBBY8//vj+1B9t2dbWZhhGVhbT7Igy3B+WcqwQEAJCoAcI6BmFGef/JPz0zfaWhXwGjrnWGXwQIQ8l1GEPwJUs0p6Ao6tpBu3maqRgbNnzmh3VTH/gqE/5j7jM8fnoBrmvX6Q7lPYXigAQAj1HYM+CMBwOv/XWW62trYlCTdMcO3bs+PHjWUls7LDS7C5srK8nLvl+LX//+9+/+tWvjhs37r///e+QIUP2Ky85WAgIASEgBPabgE6HNavIf9KN0TfvcbYtDz39HXPkdN/UT+h5g3TdcLKKmL9+vwuRDIRAOhJwom321iXWtuX2xnftbR9rgRxj0MG4iZpjj0Mo8p9yElUBZuL+pOnISNosBIRATxPYsyDE7fOiiy5qbGxMFO3z+S699NLf/e53eXl5iY0dVoYNG3b66afziYWww67df+3sILp06VIshJs3b96wYcPuBaF3bOccdl+i7BUCQkAICIG9JKCsEyqmxewvWates9a8Za2bZ9du1DPzNcM0y6f5pp6rZRcrH1K338ofdYBa2v963+RTCKQ9gbi3NXeKY9lbl1lr3owte06LhQGDP7Zv0unm8MN07ia1xG+kncbyujvkQwgIASGwPwT2LAgLCwuzs7OTBSF+m8XFxbsxD1Kh8vLyW2+9NRQKFRTsXQA6zym0s6hjC76ju2+qd2xyDp3z2X0OslcICAEhIAS6T8Aom2gUjfRNPj320b9jy1906rfQZXW2r4ytect30Jm+Qy8mK6yJ2DL4p/Sh6MHuw5WUaUJA3RtabNVr9oZ3rS0LnNY63bLMaZ9ADZplk7TsIvZKuKY0uRakmUKgrwjsWRCOHj26oqKCCDFXX301xrqrrrrqr3/9666qiwBjeeCBB9asWUMatFl+fj4OnxkZTJy604LCfPTRR++//35yZsfhhx8+e/bsl156qbS09IUXXvDUJnoSh1UWEpBtS0tLQ0ODl0swGEzOk701NTW//e1vn3zyyUWLmJ9HO++887BPvvLKK1/84hdvuOEG76jEJ+nJPBKJYO0kn92L28RRsiIEhIAQEALJBJTBwpepF40OnPwt/ynfYpe1+q3IKz936jdH3rrX2vCeb/KZxqijrCXPaFbUHDFDKxiqjBxmgDFRyfnIuhBIRwJW1Ak32xveiS74j129TnmDmj6jZIya6nPUDOUS6mpFN7Ceu5aOjKTNQkAIHAgCexaEnsGtm3UhMY6d1113XSI9psIrrriiQ6BRNN7111/P4EDE2IgRI1BlCMh3332Xo4YPH47w85xRr7nmmkceecTLCr2HD6q37vf7OfzOO+9MaMLVq1fjxfrhhx9izGR8IxFokILkQ3oC23hHJX8iGm+++ebnn39+8uTJt91227nnnkueyQlkXQgIASEgBLpFQBn92v/XNN+444zS8bFFT1qr37A3fRjZ9JFnHSRRdP5DbkLHN+UsY9RMo2CYUThM0wmdH7cb8qoOE6JrDBFLYrfYS6J+QcC1kbtXtnutO3bMqdvotNTgax1b+pxqgq4ZBeV66XhzxBHm2Nl6MNfdFr8z3JtB7oh+caqlkkKgvxLYsyDc25YVFRWhALdv387gw61bt3Z5+Nq1az2ld+GFF37mM5/JzMxct27dQw899NprryEpkXPeUQwd7PJwOg0Y9/hM7H3xxRdXrFiB2fDKK6+8/PLLyQFjJoZK1GCXSg8jJ4fYtk0ydOlJJ520t66tiaJlRQgIASEgBJIJ6PmD/bO/aAw/zKlZa29e5EbB0PXcQXZTJb1au2KR6gQve47Z7f2HX6pn5Rvl0+KH02dWfWDp+ybjlPUBQIAwTG6XRdesisXWytesrUuchgotGtb8QYyBRvEYs3yqXn6I61c9ANorTRACQqCfEeh5QYhxD9dNrHNf+9rX/vOf/3TJg72xWIxdGzdurKqqmjFjBpa6k08+mfRYC5legl38eP7+97//4Q9/ePfdd6PZcnNzf/WrXx166KHsQjQOGjTIMw+SjK8EQUXdMcgQ+yS+oBgJjzjiCC9DPFE71wHVipuoV4ecnBxxGe2MSLYIASEgBPadgOP4Rs3QRk53Jp2urH78bvuCDnEyEHyhhuiiJ7X6zdaWhZE3fqUZPj2jfag5IRQz8s3JZ2BmFJ/SfYcvR6YYAdSgZkes1W9bHz9vu7ZBdUfklhnjDvUfdpGeVawFs4nGpESjvA5JsXMn1RECaUJgfwUhGgx1l1BxHjXi0KDfEv6cnVFOmTJlwoQJq1atettdvATTpk1j4B/upvH3aLqOuykLowqRfBTBzBOHHML7s50WdvH9qKOOolDGOuIFysIW0k+fPh0/0okTJ3qiMfkwhjXW1tZikzz66KNvuukmapu8V9aFgBAQAkJgnwmoPq1n5NNNoiMm7H16IFvlmV0UPPHrRM6IvPEbe/NHTrTVDsejWKuQ+tZ6a/NH4ZfuZOptJCVupfqgCUTX0NGNhs8x1SRsLHH/EC+K6Y7y3H3yIQT6goDntKRMgcrKrV5qq9fXju3EQrHFT1tr3rYrlzu6oRt+PXdw4Pgvm6Nmdqxm+33Tcbt8FwJCQAj0MoH9FYRz585lpB9abq9mn8cG+Nhjj91xxx14bDJRIQFmWBjXx/Lwww+j07o06+0GxXHHHXfPPff84Q9/wOTIDIhYHfEpnecu//rXv5566inCoiYfjgK8y12SN8q6EBACQkAIHBgCelZh8MxbmU6N4IoJxcjYKrtisb19hWZF7NY6NZuFK/10I6DCmQ6erA+aqOeU6tlFSmcafvSj6nSLVeXAnDMpZQ8E4q8pVFhd5hKs26C11NiNlbFFT9iN29B6en65b9ihRvlU38TT4uFi9pCh7BYCQkAIHCAC+ysIGStYWVnpRQrtfpXx6nziiScIEoOlDilIwJj169c/99xz8+fP37RpE46js2bNSowk9LLlZZsXbrTLUhhASEwaIs3gSorCJBPmLWQie8LMzJkzB5shwxqTD6QCzz77LObJMWPGMI6RmDeepTE5jawLASEgBIRArxJgmm3f+BOTxgw6zthjnYatOJc6TZVYEbXWOpuBiDXrGHPFPyqDo52eP8TIHeL4M3wjp7OF8Vd6Tkmv1lMyFwJ7JODFQ7JrN9m1a+0ti6yN73Ele0eZQ6f5xh6vF482Bk3Q/UE3xkzSVb/HrCWBEBACQqCXCeyLIOzsgbm3lSSEDOZB3EF/8pOfMOs97p0M58MjlDg06ENMfMkZEhUGtYZjKvrt2GOPJdLMO++8g4ERUcfwwpIS1Q8gGo0358R9992HzkRMoh7LysoWL14cjUbr6uqSM2T9H//4xy233IKLKVFJt2zZwpSJrHRII1+FgBDoAQKuBccd6qvWvAzpD7Ubhdr/9kBJAyeLeH+xHVP/9SNTLXCtJsqG194cjHrqBZx6kLiunypF4jLQdX+mXjJGncvBk9WnFXEirVqkxW6qwr/U3vKRtXWZ01hpawvYaa9+XaUJZDOPhTntPCMjzxh6iB7MpzD89VQhKuv2ktWXREHqOFmEQHcIuBeTm9C9mL1rSl28CY9lK8qAWGvzAmfzAqutQY+04Ajt2JY55CCjaJQx/HBzyMHtM8urfOQq7A52SSMEhMCBJLAHQcjvIKqJEXp8etX6m7t0qCLj97wtSLWLL74Y61wiAQcyH6D3FbX22c9+lnVEHS6dWAUZ44d3KAP5+ErYT9Qg8xbi/5lsHhw/fjxhSNn1fXdJ5ExM0W984xueIPSCyixfvvzMM88kw6lTp1LEM888gxrEPfUTn/hE4ihWaBSerl4EVHQmVkS0JcnESJhMSdaFQI8QQBDwX9QOq455e46EWDd1XvTY0jVqR7LTX9XX5F87sRiTlWn2Dnw7pU3pL/SY+c+yopzpoBlg3dBNU+e54wbPcOWap9x22QwzoGcGtMwCM3+oMewQzblGs8PW+neZ5zC29FktEsLLVA+32VbYfvXX6opSl5tmZBb6z/2RUThK6U7Dr5mGqojIwV1Slh27JaBeKqjXCiRSbxmsqG5bNvMHYgOs32JtX2GruVXctxzESHdHuhqlE/zTrzRGTW9/HxGPnb7bYmSnEBACQqDPCOxBEPILR9xOnDB3X8FEUBakIOJqV4mRXt4uzHGEnCHUZyAQ+Oijj9566y22oyq9uDKXXHIJmi0hz84//3xcUvH/xDeVzDkE09/IkSNJNmnSJC9DIoViSMTkiAJ844038BFFUjJucObMmQQ7TShSEns5n3XWWbiS4mhKGuacEDXoYZRPIdDjBOhIrW9c8fqmp5JzLs8ZPXvomZm+7P4ocpIb0kvraKSw1dYYrkMHtsZaFlfNrw1t76WyejdbR2uNNW9sWEkrDi9TAZ/zg8Uj8scPzRntN/x5gSI+u38NuKZERzMC5phj6Zf7j7iUDJ3GbcTqsNa/40TanNYazIl6Q4XVVuc8f7tRNglpzbBDc8JJRnZR9wvqXSaSe38joF7QtFYzDtBprUUVqjGuTdtjq15ns9cUPbuQSKF6TrFeNMrkqiubrOyB6jAlJHlB0d9aLPUVAkIg7QjsQRDCg5kemP6hqalpN2yYXN7bi3Xul7/8ZUNDQ5eJmQfC20568hw8eDBWPkyInuBE5hER9KCDDuowCQS68ec//zkj/QgYg0EPayGHYzZkCvtEylNPPZVJKZhtAksjohSnU3YNGTIEU+Ho0aOTK+PpzHPOOYdsly1bRh2o824CoiYfK+tCQAh0SSBuflGvW7xeN12h+NIUrf/38j9saFrDi3XVQXLfsDcU1B4+6NgMf7Ztx7a2bFhes6A+XC399XZm6m9rtLmmrdJ2rOZIY3XbNjdyYfL+/rPunnVO7oeV6sWfuzgj8yYGzIzizLKAGZxaOqM8Z1RuIF/tcm2GiDgvXcdPtVldYe7u9qR5Q0z+jT8RDz2ncasTbrbWztG3LmW2Q6thm0q6do61ZYHvoHPMkUcxy63r5efl0DF7+Z5uBPjh8q4m1/lTXRru/+6vlPt7ZW1ZpIUaY1sWarx3qFnnNG1rvzgdzcwwR880SsbqgSzm2NTzhhj5QzRfxk4MvSt2p03yRQgIASGQigTckRapWDGpkxDoRQL/3tr2rY/rrxmefev4vF4sJo2ypkMVX1qjTStrF7fE4m+FllW/v6z6w0xf1vnjP4OZqyXCBANO0JdZECzBe/DNTc+EY6HmaEMEn1JZOhFwlY82vnDaOeM+lWFmdtrfjzaoC6Q52riydtHrm57mpDMAkL44Lp75gaKgL8uHH6nujMk/aGLRtHFFU3P8rj7c+/bxUkIjIE2khX48R9vVayLMYKHp5rgTAid+TY02VF6krnvf3mcuRww8Auq6dAWgEofur5iKYLRlob3pQxUaNNTISyutzf0103VjyBQiGHGAOfFUPZijZRUyk4pumAMPS8+26LZVjfdvar1rcv5FQ/r1j1jPUpHchEBqEdizhTC16iu1EQJCIPUI0MN2lIEmtnD73OfXPbK9bUtCINLp95n+aYOOZvqtF9Y+omyJqBy348UHqz4jgJnohBHnZ/iyUq9lfVyjU0dd7LLyTBZ9XJn9Kz4+um9cwdSzxl5hWbGlNe9VtW6Zs/nFllhjKNzKNWHb9ramjW9vee6UkRedNfZyvxHYhxKV3vMHCeTIbIcc7iseZZYf3Pbwtdbq18ONW/0zrzHLp2q+fcl5Hyojh6Q4AcexdAboMiCQT6LCbHjPWj/faatDG7I4pl/deP4Mfdgh5ojpvqnnIP/UL5tr91NGe3clxdso1RMCQkAIdIeACMLuUJI0QkAI7JLAtpaNUTuysWH1mvql7297nVFhQ7PHFGcNRgF6xxxUfMRRQ07Z0rxu5tBTQ7EWVwzGcyO+yKSiQ6eWzszy5+yygDTe4Y55pv2q49nPF3cAIG1wLXSm6ZtWejSrJ4+6eHPT2qpWFbSMz/X1Hy+t+WB13aKPKkdgVS7NKmfMoRpruheLOzE4WXtKmp59drH/uOtjHzxqVa2yn/2e//BP+mdevRf5SdJ+TED92HR8m8Jcl/VbNKKANlczW6C14R2nuYZhqJodVV6igUy9cATXjJFXbpRN0AM55vjjuWqV+lMOVe7l6ypB156orjNZhIAQEAIDgIAIwgFwEqUJQqC3CLhjbJSLXbIkUX0gZenTKlrWv1fx2pr6JRE7wji3iBXO9GWeOvL/ppQcPiRnVEIQepUbljvmsslf6a2KDtB8E7G1+n/7kprirbpdaT6G547ln9fAulD1Xe9+bUPjqg1L7/YZvvKcMSWZZSPyxh0yaFZxxiA13kv18F2p5439Sr4uE4zivXRVgFrV/Ux1aBQMjy1+ylr1utNSnUgoKwODgPITds+1+llSmo0/fCrd5u7R7PoNKvhQ9RolAjEGVq9zwk2MONXsePBePa/MKBqrl4w2UIN5g5noUs8qUhdQ++JeU/EL19suoWLa2chfISAEBgKBPQtCQoDW1tYOhLZ2ow08V4gxQ+jRbqSVJEJg4BNQEfJY3D/eRAH0yNkWtkKvb3py0fb5FU3r8AUkBX2wC8Z/5uDSo4oySn2Ejuyypz7wgUkL94sAhuJpg2a9vfm/XD8xO7axccXGxlWLq96ZV/ESRuajh56a48tV3nxccYm+f3cK9GcwEZyzfaW16jW7diNThxtF8UBo3Tla0qQ8Aa4JmwlGqKf6JeJfzRpr61LG/sU2f+gwmjTSFp/Q0p3BxXuZwGhAg+kBi4abww7Hi1j3Z2Ee1Ey/+9oB+58rKlO+5VJBISAEhECPENizILz99ttfeumlHimsX2Qyb948EYT94kxJJXubgOVYDeHqtzc9RyeLfvnK2oVDskdNKT2S1+4vrX+cjhc2wEx/ztnjrjp26BlxuejWSbpSvX1qBmr+ASN4ycQvXjLpC14DtzZvIOzQkqr3qlsrnln94DsVL04pOZLXDYScITZpSdbgbr538NxVzUMv0ubfb1d+bG9dbBQOd62HAxVkWrXL0a2wEw0zG4S14V3GAeIR6hr0XAg4rpu8n+LTp/szfYddovmzjOLR5sjp6s2CEo8s3msuT0q6rxr4dduRhZtEPoSAEBACA5rAngUhs9IzOcSAhrBT4woKCnb6Ll+EwMAk4Ko29UEHiO6PjRWwPlLbFmtpDNe2RJvYVNW67d2tL293x3fBINufxxQR/OMA5vkckj18fNEhZ46+LMvPEK+4M5WHSrpSA/OS6f1WeZdRQuYxHcWlk7+8fUTF/K0vfVz9YWXrltc2PO1dXR9Wvj172JnMXeFVin69oekFGSVl2UPVmENlP3Sz8cw87jFc0v5Zn4u+8dvYsueMMbOMjHzlg6oufln6JQFOMtY/p3JlbNVr1tq5WqRZNcMMMP2DTtwgJgbMyFWjAQdNIDCMmpQyuyS5ne6Jj5/9+GWQvCk5qawLASEgBAY6gT0Lwu9+97sEfxvoHFT7vHEIzHPojhyXXkI6nPO0bqP7Vpzr3CGGx8aGVTWhytq27UhBJodoitSDhn3MDIEpZnLR4XzNDRY2RepcZI6h+4bnqaFfyjtLXKvS+jrq9caXZpefM/aqI8qO29y8LmqFMVwvrXp3ee2Cvy9bpWuJZxNaUi/JHDKl+IgJhdPKc0cXZQ6iZur6TuhLgo6OnW0t+S8RROx17xhTTvMsh73eACmgVwg49sYP0PZWxSKttU7PKjTKjtBLxhrFo/TcMs0XVHMDZhWqkuM/UPJM75XTIJkKASEwMAjsWRAikAZGU6UVQkAIJAjQRwpbrQQFXVG7YG39slCsjUihvHE3HN00/ZNLDi/OwB9Pw9hy0ohPZAVyWfdi7MV72G4vW8Xco08tBsEEVlnpcQLuNcYMcENzRw/NGe2OaXUOL5v9wbY3t7du2WHec5y19csZ0fp2qOqDba9n+fNmlp8ys/y07EBusg7QMwvMKWfab/4utuIlc8pp6qru8QpLhgeEgF2xJPL27526TZphMiugf+p5GsFgiBEanxqe91RqUedXDQc05ES7PORDCAgBIdA1gT0Lwq6Pk61CQAikPAFl6/bejysxF7eWqFrr2vKaj55d/bdNTav55jeDhPgfnTNpcvERs8pPD/qzuvajS/bnc7tX7Y54KQ9CKth/Cbg9+nj12x37cgMFJ4w4L7lNrluHtqJ20RMr/9QQrq1uq3x69UPzK168/rAfF2aWulZslVw5OxcO03OKrM0fqcxEJSRD7Iv1dn8cJd88W64TDTlNlfb6dyPv/d2JtuymUpw/c+hh/lnXGYMmdkqW/Joqeb1TQtkgBISAEBACeNAIBCEgBAYwAXeUlFKDLO661hptqWzZ9PDSu5ujDYOyygdnD2dGuKPKT6I7Fo/fqDpmsgiBfkaAi3xi4bSbZvy2qm3rvC0vvL/tjcrWra9ufPLCCdchCNQLESUAHS2zUM8s1Jpr+lnzBmh1XR8Dd8RnuNmu26i1VMVWvmZXrmB2ELaaRaN31W6lHv1Zvhmf0ksn7CqNbBcCQkAICIFuEhBB2E1QkkwI9EMCrhFk0fZ5DL5qCtd5L+Bboo1bmtY1RxuH542/YPy1w3LGBMyg2kXi9tf1/bCpUuW0JuDZgFzVpw/KGnL22CtzA4XPr/vnG5uedjTroJLpk4sP54WHeumR1pxSrvGcEXvzAhSgtX0F8wRqjZWaY6H0zHHHm+VTjcGTd1ljzmQwW80ZKGd0l4xkhxAQAkKguwREEHaXlKQTAqlMQL1j91RdfEVD+M3b8uIH297Agy4ca4tpMXePZybUhuaOum7qzfnBIg5Sx6nN/I27bXn9ZncmCbYoZ1P1334v6M3Q+tqWpdu8nFrXVLUs2aocWGUZ6AR0Uy88aULx2VN82QH3OlNXWrsPco80Xl1F7dpAZ2qKWcPOWN/w8YLtc9/a9L8tzeuJMTMoc7i60kMNTltDjxQpmXSbgOukwCly7bQ2c8Rv/khjSsC2Bmvjh079Zifa6sQi7P//7F0HYBzVmZ6yvWi1kla9V/decMM23UAooYZAQkKoKUfIheS4kEZIz6XckRxpXEgghE4IxRRjjI17b7LVrF5X2t5n5743s1qt1SWv5JX0BrOaffPe//73zezM++b/3/+zacWKwhWKOVcyCBCqMkTP6Kg7ohUpAhQBigBFYDwIUEI4HtRoG4pAoiEgTYcJ4wuLAhIGnu4+ghxuJ6z7eU6p5JQZ+txZqUuQvU1We3ba0mxDPqGCZG4u/Y/gMKFw2BcUA4LE0ETH/iZ/Q4/gDljfPBFXyobukD+adEoYqErBKmTdEw1Rqs/4EcBVKAbDTEx4apzq9r/tcx1tMW+sMC7IUqRoh2KDESs1GpDrYvybmtdcXfoZtUKLBBU1PcdfO/3nO+Z9TR0SQ0dehTvi+OXSluNDgLxSwlXhDZ3ZFfjod4yXxDEmtwEeGQJVnD6Fy1+mmH8dm1ognfZzO/fj05C2oghQBCgCMxgBSghn8MmnQ59GCIDa4T+br+tU9+FXqv7kC3kw2yLrA9NXFZtmI1qMPL0ma6hgDOzdBLc/2OUWHP5gtzvQ7nTsqfee7hRCQmRORsyGYd6oUabqJdtLX8NeAWP4i46lSb6oTNErkjTSPqstSlFlJ0lSzkn4GPSgVSceAcHlt+864293gvrLG043jMPOfY3uwy3qAnPmp5YaFuXyOmQM77+RRWXS1TwUY+zfYOjvWCJ72+wHC5MqXq1+qtFZW2k9tCh5oUQ0cbFBI7pNEgLklx/0CI0HQsffFBr2Miodlz2fNVjQPatLQZ5Avnyj/PuX7hH0VjBJ54V2QxGgCFAEoghQQhiFgu5QBKYWAmTaLPvIOfy2Zlddg6Oqqudos7PWJ7jzk0pX5VyOMP3Y4RjkkgAflCfBrOAJeOu6PTVdvnorqGCgwyXYvIFOktMZ0zZNhtFQgORdZE5mWJzDqxUghKoMknYiXpvKYlAk02Q28YIzQeUYF+eGHL4Y5UTXsTbXoSZcWoF2R8ufdiavL01alq8tt8C/U7o4++oSKhgnUgBJy7MusvmtWEz44qkndWX3FkZ+CH3d0b0JQoBwbpKahmEC7uDhl0P7n2PgF2q0KBZ+EgkhsfxvQL8krNWAQlpAEaAIUAQoAhOOACWEEw4x7YAiEH8EiF8dYYOYcsEd7tWqP1m9HQHBFxQCmO7m6ovuWfgogmqQabVUBx/+NrvrUIvzQKOnqguuoWFvUMQnmX6JHMPq52Zpi83GJbnaEgunxm2BlPN6NQuHLrpRBMaOAF4ixL5HwMsLbUlayiVlkBQOCLXffqvz5SPd750q+6/rVal6crlNyEbkImbSpYU3trubDnXseLXqzw8yudQ6OCFgDxBKbiJwDBcCoWOvhw78gxECymWf4uddzSFfPK8aUB0FE3UdDNYXLaMIUAQoAhSBPgQoIezDgu5RBKYKAuCBIQHLcZxv1v794+bNEunjeI7XKvU3z3pgSea6yJQXCwOdfsfOuvbnDgdayaIdzM84FQ/KxxvU+tVFupJUWGnU+WZpJiaxQ/mNPioSnjhV8KB6JjoC5BJlOVib5Wuq5AdX1X7rX97a7o5nDmR+foXCqJnQASDT5oqsjZXdh2BLb3UL6STa6IR2SIVLCOBmEg4J1jPBnX8CA1Rf+T2ueDVZOUxvLPQCoQhQBCgCCYYAJYQJdkKoOhSBoRHAysAmZ63N1wnzYJOjZkfz2wHBD5anVuhyDCVzLUvzjKV5SaVkuovwDZ0uX31P+9/3uyvbWRWvyjapLHplulFXmqYts+jKLAzPY7kWeiMckLifSnNkaeYuqYBOsNG5mwQG/ThHBHBd4RKThYgMb1Rbrl3Y+pc91rePext78r58oYY4Kk/YJjK5xtIUTVqP/0yXpzUdiigGtVBNmAIzT7Dod4Zbj4c7TodOvQe0FQuu4/KX4gKQ3NdnHhx0xBQBigBFILERoIQwsc8P1W6iEJDID6aoU2EDuwszQpOzDjkkkFSw29cRo7Vo1lg25F+70LLKrCETXW+NtfNoLWwvgQ6nt9YqOH3a4jRE/NdVpBMvPoshpi12yRRdWrYTmatH/qC8d+/s+vQbRWB8CMirw6SrimU4BZ+8vgSxRtue3us52W7dfDLnnlWEMUrX4vg6GK4Vy5jUqRfmfeJV+3/LtFS58JOEoWKboB6H02YaHiNYkhdR5I5C/ob8iOYaOvwKknyQk126UbngelahpnBPw3NPh0QRoAhMCwQoIZwWp5EOYowIYN4izWCmAOmRZq0s0sr/4dD3vSF3UAhhBivNZDHtYi8tunlt7iajKplnFV0vH3YcaPbVWQVPMOwP4CjmvqmXlmd+biVc8jglJ7UaI1K0OkVgYhCA33LSsjy8v/BUdbpPtPkabeq85InpSn65IS7P3LjvzL9Y5jR+/Io5V0hUkP4m4gc54fNEWrirNrj3b+GGvaCF/KzL+aIL+NzFjMoArKfADTd+eFBJFAGKAEVgCiFACeEUOllU1fgg4AiF3+30Ye6inwoBU+DN6Qo6/3D4cUdAytzFMmGGTdaYLy+85YLsixkPK3pDjg+rm37/MXggy3FYIqgwKPVrCpOW5BmX5vEmbeTNfXzAo1IoAvFDQGTSb1nU8dIh96kO65snM29fijhG8ZPeJwlvVfB7V/LKy4tvdVc/zjACwyulKL2UovShdC57xPkcjgzdTcFDL4Yq32HDAqvUKi/4nGLxjVi1jFuQxAYpHzwXjGlbigBFgCIwgQhQQjiB4FLRCYwAmZrckq1LWA2lCRRZxdfiqn++8reNzhpJVWLQyDEUZrI5BW05zur6ng9rvKe7kEUQB/RYGTgrQ1uaBmc8Dgnf5df1pFnE/5NOxyQM6UeiICAvJyt85NK6xzbbttXgGs68dbHCFMlRGUcto7+FEvOcnqRixlnZ7m7MMqTHsYuZKkryYAAZ7GkQWo4Kx98Md57mNCYuaw5fup4vvIDlkWqSkEF685mpVwgdN0WAIjA1EKCEcGqcJ6pl3BGQJjJxlxo3gXK4F2/I+0H9a2fsp2S5Wre28HTGQu8itU/lbDtmbXfBysFrVYb5Waa1JcYFWZqCFMy9iK8oYY5kHhY3haggikDcESBezwziGyUtL7B9WN316lFFkibj1sUTxx44VpGkThEYdnvjWzdmkBgndDsXBMhtxu8OnXxbqNoabq/EN75gBT9nE5c9j9USB2ByJxK5iTuh56I8bUsRoAhQBCgCUQQoIYxCQXdmCgKukLi9G8E5E5ouIYTM6e5DJ7r219krRVHIaE4tOZmTV5uu9ioUIawPDAZYRlucmrQiP3XTHJJGwqhGWH+JCspsEHNdMlujG0UgcRGQLlK80cj94hplmr7rn0d6PqjK+NTiCXyTAQIK6aJY2X0gcWGZQpoJQeQYDO59hgn5GZVOtfpuGAZZNSJXwR0fb6twguUbET7pRhGgCFAEKAKJiwAlhIl7bqhmcUdAokqiwIieMHOZRZOkSLhFhLBb2vwdm+ue39O6RQgFlUHQP8WF7y4vqM5ESi9epWR1yqRlSB+fZlyaqy1IHQBRbHRQOgkbAA8tSCQEyMUqUQbeoDHMybS+fVL0h0S/wKr5CVKTmKpACVkxGA5saXjp4vwbiQJ0GzMC8ssmVuyqC378J0apVi7/tGLlZyEm5gYUddSlEI8ZX9qAIkARoAhMMgKUEE4y4LS784kAXCmxmAUuledTiWH7FpnQsa69e9s+MHSqM5uys+vT0tpNBodWmW7QlabqF2QbF+Zoi+AXSjawR+qLJUNBP6c2Aoj4YtFzSj5k9yIFheWaeRM/HPZE14HVOZu0Cv3E9zXdeiD3UYYVWo4E3/uFnGNQsfRW6e463UZKx0MRoAhQBGYIApQQzpATTYcpIQAmKDIfyf6iCQmJX/DX2I5nVpsX7C7ObE4B44PGxsU56Tcv1pZaeENvNm1i6yTUlkzM6EYRmOII4CLGSkLTBYUwEjp2njGtKlRZjBM8JhGBmk507VuauX6CO5qG4gkbPLM7sP13oqudLyM5BhmFmryfmoZjpUOiCFAEKAIzAoGEc5mbEajTQZ43BDCTYavcIfS/LlVt4BPl+icRbkgUfNHu7w6dsK3cOju9JUXQsNovlM75v08X/selxkW5CoOaaE8mXeSvZBuM5wSM9N+7xe73lkkKRr/I+sZ8HWZ3UGmoP1T5MKJGfyjuwg8cOHDxxRc/9thjo9ch7mMcnw5jUnhg5c7Ozssvv/y//uu/AoHAwKNxKiFXdfbdq8ApfE02f5MdYnEG5eWwceriLDG5xhJ/yHuwfbsrgL7Qz8R1dVa/U/oLAYncJESh+TBhg7ZmrmC58sIvsvrU3ltSPO9IUxorqjxFgCJAEZhaCFAL4dQ6X1TbuCGg5VguYWYvsPVJky2xsfa46ZAyyap3lAWV3yxfknNR3G2A1dXVzz333Lx586677joZTUz0T548+eabb+Lrpk2bZs+erVJFTJE4VFlZ+fbbb7e1ta1fv37VqlVpaWlIdoiaMiXtdz62bNnyr3/9Sz4KIVdfffXq1atRMxwO9/T0fPjhh7t27aqoqLjiiisyMjIUigm8/9TV1f3f//3f5z//+cLCwn5Kju+r3+9vbm7u7u4eU/PDhw+/+uqr999/P8Y7poaDVh6fDoOKGn2hIAgYuM1mizvH7qcDr1MZ52U4j7UGu9yED4Jk4FcxMV7Rlxfdeqb6iSOdu1I06VeX3qHk8bYFXCdh7gj9oEmQr1L4YtHnDO19VrQ1IeO86srHABnWZFLgEuQUUTUoAhQBisD4EEgUC8n4tKetKALTAwFMRcOegONQg+LnzWUHszRFKUvvv+mC7Mv7bHbxG2dTU9Of/vSnrVu3yiJ9Pt///u//XnTRRX/84x9RDiPYb37zG6/Xi6MgAL///e8vu+yy3/72t2B6X/jCFz71qU8dOnQI7G5QboDyn/zkJ0899dR77733/vvvowsQCZk3tra2fulLX3rggQfALb/97W/fdNNNu3fvRv34Dau/pGeeeeanP/0pxtL/wAR/BzInpE2G6Lvf/e4vfvGLf/7zn+h2UNAmWJ0pJh5+0aCBruOt/nan/NZhggaQZyy5c/7DGoXuQMdHnZ4WymdGhbNEz8P2FqFpP2tIV234KqHslA2OCjtaiSJAEaAIJDQCE/iGPqHHTZWjCCQAAvDAIu/XGUZwBzpfPtL9biXXIxiW5GbctEg3Kz3uTqGxI47a92DQ+8EPfrBixYpHHnkEhfAMBI+CVQ2cDdQRfGbBggXf/OY3LRYLjF3f+c53/ud//ufXv/610XjWEi9QHbTt6uras2cP3Au//vWv8zwPQ2J2drbc6Y9+9COYBx966CEQzjNnzkAOqONf/vIXs9kcq9Xw+3Ivw9eJHv3EJz6h1WpBdKMlE7oT1S0YDH7ta18DGq+99ppSqfzyl78My+rGjRvRexTzfppE2/Yrn7Ffuzcjo52Y928bJsA6SFxDpbW3Yl5SydzUZfvbt21r/Nets788AX1NtxOIm1XY3hrc8XuAyKWXYd0g2Pt0GyQdD0WAIkARmJEIUEI4I087HXRiIEBSyLOiYPedefxdz6l2BNxPWlWQ99BFvE7BSm6ZE62my+V6+eWXnU7nf//3f5eWlqK7/Pz8WbNmoRBenbDmwVR47bXXXnrppSAz5eXle/fu3blzJwr7EUKZ6sDpFHQI5GfJkiWx5Ee2SYKh3XPPPcnJyQsXLqyvr//P//zPY8eOrV27FjWHZ0TRo7E1o4VDQYRe5s6dC0oWWwGt8DVWt35y5K/9CmMlDLUvy0RDbDAQ4qts/wQaF154YT81hhIil0NC7EiHqixXG1OToUShPFZatNqghdGjE7FjuW5+yOZ1Hmzq2VKd/+CGuHtxyiZ3gi/DaBT6RZlrT/Uc2te2dV3eVTmGYsoJhz+nYUdr4I1vC91n+JRC5cLrWZVu+Pr0KEWAIkARoAhMFQQoIZwqZ4rqOR0RwLqloFDzn2+4a7sC6gD/b4VFm67AJBgT1okeLeb62EDMsKRw3bp1MhtECQghqGBVVRUO3XXXXXfffXdUE5A92ABlboOaMgWKHkUJHCPdbvd99933s5/97I477vjKV74iGwA3b94MayG4H9gg6mPp4PLly3NyckAgscIQlsPXX3/9yiuvxNe8vLzrr78edV555RW73Q5jI0yXaPvBBx/E1sHqR/QeW2fgckQsVsTiPYiFgQ48FhQXojwez759+8BvMWSZ02JpHNSura1FzaVLl0KsrM+3vvWt1NRU6PDss89CeCwO8pDhanvq1CmYAXEUXrVHjhwBYrAHvvXWW1gtCTkwit5+++0gvbCawtV2/vz5gKi9vf3jjz9GCZYUolVJSYlGo0HlhoaGX/7ylzCfdnR0YD3nBRdcgH0ZrijC0Z1QKATHXcAFZK666ioQ+CjhxFLPgfLREF2D/GPsOBcw9gIT4INy+PHW1NT8/e9/LygogH8vlozeeOONWESKIXz00Ucg/4sWLYLm0a4nekeZYcy4dUmgw+U62V732OaiRy+Pb49kEVxYiP66ik2zi0xzjnXsebv2uTvnf0PB0gfikHiLzvbgB78Id59RpJUqr/g2a8rqfwsYsik9QBGgCFAEKAKJjgB9/iX6GaL6TV8ERHiKdr1+zFvT5Uh11V5qXTB/XtxNIkOhBxKCDYQHG4iQXA0l2AE5BI1BOfhGbHMsIwQxA0sElZJrxh5taWk5ffr0Jz/5SRxtbGz84Q9/ePz4cfiXpqeng3KAsWRlZcn1QU5AdUwmE+K+wIwGlvKrX/3q+eefBwGDLfGFF16wWq0ISIPwLX/+85/B1hD/ZsQ6ixcvjlUG+0ePHn3iiSfQKcgPKBb2sUISBBU9QiswN3jGguIi3AsMoZmZmegCFaCD3Ne//du/YR+2UzBJKNOPEIJYojKcbCEQY8GySdAtwPWZz3wGICD0CxQA60NMHdBLxLZZuXIlaBWWTX7jG98ALPCkhZX1xz/+MSQg7A0QA1EECH/729+gCbT6wx/+APfahx9+GHSx37jwFVQNOut0OsT//PnPfw7nW/QLhIeRD/W+973vAU+wQbVaDQQcDgeABSEED4T+IKIIF2QwGIqLi3FqHnzwQRBOvB0A/hggOhqoxoSUiKy6wGzeWOap7XKfbPfWWTVFJIJlvPoSQz6xs4pR6RmWBzk0qkyL09dUdR+uth+v7jk6K7X/VRSvfqe6HDHkD53cHO6oYbXJyk3f5kxwBYe1Ff/idmqmOkRUf4oARYAiMKUROGvCN6VHQpWnCEwRBKR4orDZMAyyrrU/ezCgDjWudyzceNmi7HVSTMWJtw/2IgV2hC1qX5KLQUJQCNrWW4vYl3bs2AF+Aq9RWL2wNi96KLoDsxVIICgHNhCMW2+9FcYobKgAhgMCiVWFcmV5H4Y1lEebgxehFT7BowoLC7GPhYtgTTAMDlUHRGtgnWjlaF/REkQ3xapFqAdr2EsvvQRrJzaQKziXgoCBL4EIRSsPvwO2iUA7WF0JgVDj0UcflUkggLrzzjtTUlJArsD3YLuLykFfWFoJUyTi3KAJGm7YsAHxZsDionVQggA/2KDSO++8AxYXPRS7AzMg2CyEIOQPOnr88cdB4IeSL1sCYSPFwK+55hrwWGCL+ED9KD04KgRig6X0ySeffOONN+DfK5fA5RV0MVaBCdwny/uYpJUFuhKL4PA1/mKrbVttOCRIV2PfBTl+BcIh0d3NpZdi/Zv8W5tnWY7FhL6gZ3/bh96gGx2RVYZ060OAQBLc83Tw0EsATbnui5xJfrMDKkjZYB9MdI8iQBGgCExpBKiFcEqfPqr81ENAmmyC8onehh4y2Q0KdRu6LBtmLcxdx7OT/YIGxiJsME9FccTkD2Y6cEKYxbAv0wZ4kMIwCDdCkJkoyYkeRVvsw9sTm2xUhGUJBi44IsIahkMgWqCLcM6M9gKqgy02ogycKufMmSNbq7APn1LQRdjoUBJt1a8ODJtwcYzWidUn2iR255JLLoErJkqwxHH79u3wbs3NzV22bBkCooKYge4CCjDh2CaD7qMjmByBCeLxYIkgvoIZvvvuu7CgAi7IBHTYAf+EwKgEeHKCtn3605++5ZZbgBIqABak8YBBEjZMuRpC4EBDDAoWRdgAke8h2jx254tf/KLsNAt/TlBT8PD9+/fDKjuofBwCz4SqMPTBkLhmzRp0DfoHJgy+HRWLOiB++AoEkJUEnBZnEGNBZVhZYSfEIYw0Wn+idqQoS8o0fcZtS2of+Zenuqvj+UOGBVmKZLyDiAP9CJ14G2JYYiGM/NYQaPTSopurDnz7QPtHs1OXLs5cG0eD5EShNMlyWSZ0+CVGCPGzLuOLVuEqmLxXVpM8UtodRYAiQBGYqQhM9gR0puJMx00RiCBA3quL4a43T5669x+eUx1+fbCrwrUsdyMPH7beSeqkgQVbGcxxMFKBnqFTzPhh6QJVAKPDBjKAEviCwtEReSPABmE+kg19KMfRqJ6gLvDzjCUwMnmQ62BRIkgOqAs+5V4QaBRmLqzli0qAAyT2wZSwyZY6tJWby584ijoQG62DcuzjM7avqMCBO2BEcqFs4UQrELYXX3wRAXWwhA8xb/7617+igjxAmRniU97pJw38FuVJSUkohwJoIu/LmvSrLH8Fv8VRvV6PyvKI4CmKDZhEW2GAOIpBxbLxgdLg9ilLwCdOE5pD+DDyoSpWPMIki/HKDYFAP2dUdI1D2HASIQo6QFV8Re9QRj478teB+sSzhCWEHB0Zl+QW/+Aq5F/x1nQG2p0w2sXFcBfa9wzDKfnSjazaIKsNjjsrZfGm4k8Fw4ED7dt8IZICMZ4jmh6yQkEurUQx53JGQV52TI8x0VFQBCgCFAGKQBQBSgijUNAdisAkIeA80tr5wiFWpRDma3ffUlW6cHmaNuu8TLNgXoPJCBZCRDTBojLQQqwug4UQsV7AOgAHCrFEDW6HSBRx2223RQHqpy0sZjAhwikRi+7AKMD3EFcGjAIWMNSEAQ3WPNjQYJfDUSwdRJJAyIcdLCpwqB2wHWzRo/36jT0UrTPiTrQV1knCFRYBZuAyCmvY008/DSIEkgZWhqgtUBVxYsCHsbIuViZ0gIUN+iPejEyDEVYUBkDU6adebCuAALMbyDZC0YBPAihwUcBbVFQEqhZbc8R99AvXU9A8nCmsvQTNA6sfRj5cgmFxxTpAKIlTjN5xQrHWcdCOQP+wIBPqyTFm8YIAyyBhDh20ctwLWYYwfIjF/4b5mUnLCziVov7H78sl4+5OopORq4hNyefMeVFRsj1wRdbF5H0IKUXPlPBE4SGAAKIoMpP/0ipWFbpPEaAIUAQoAhOEwNgmIhOkBBVLEZg5CAStnuYnP/a3OdkSXe2VVl1q+pqcK87X8MF84EaIYJJIPwjfQszFt23bBg/Gz372szgEygGrIFadgbGAyx08eBB6ggghs3zU2iZrjgqIs4JMEmARsD7BzxOUAwFL4FGJCuAYWFB37733IkEfIljCNghShDCeoFXna+Byv4h2g+Ax4HugatAZHpsghGBWZWVlUA/rDMFswZaRkrGfnuC3cEDFOkCQW9gzIQfumgifE6Wa/erjK4K1IOwq8jp+7nOfA3+DuyYg3bRpEyBCpwPrD1MCVokTBAdd6AYhWK4JVg/6PYx8RDSFfyni1uBcg0BCWxBCmfMP7Og//uM/cPqAAOK44pLAqk4Q14HVJrQEDIRVK02rCuwf1/mbbc4DTUlLc8fdI2F4LCPU75X+Ur43biBpQ4oARYAiQBGYngiMbSIyPTGgo6IITCICiCka7HSxRkXbdUKjvvGa0s/pVcTz8HxtSP+A2CFga6AKsCCBrsBzEmQD+iBmCdanYa0dLGngBoiBiQ25HGLXnslqY70cQpXAhAiDG8JyohDr0B577DFY27APmgTG8sc//hG5FuQgouMccYEAAEAASURBVIiNieArIIpy8/P1iTCbIITwhoURDPFREaIGmmBVIZxIYTDEGkhEagGJQrDQfhqC+4FCIwQOgrXA8omEFiCTqDOMhRAE+4EHHgAsoH+wDR4+fBiEGfZY4N9P+Ihfb775ZqzrQxRQWCb//d//HULgsDq8fHBvDAppPNBq69atyGmBYQ7VEQ5h0WBRURFWHoI64pUBGPJQlSeonNikRFZbatGVpmHXthUmyvETOax6gx9ouKcBn2xqAZtaOEFqU7EUAYoARYAiQBGYighElt9MRdWpzhSB8SHw/dOOPzd5fj7bdGPWINEyxydzxFaSO1o40OZs+K+t7qOtjnzf27fvKzLN/vScr2iVBhrHYkQAaYWZiUDHS4fbnt7Dm3Vz/ngrw+MNJkg3MR+OCQ1RDKOd9y+3M85OxYJPKNd9qR91t3rbv7fjrvmWVbfPfVCr0I9J+Eyo7P7vi3lLmeqSr2MlYSKPFyty8QILrg0wmMsrZvE2KvZc4yvcoVEBy2L7vZDCIbg5RMMF4w0LhPSLwCxLw6fckVwHn/26iMoBVngBNFBOImM4jG6INowXeUAYb9CGqTbw0PerHH9u9PxitumGSXzmDlSDllAEKALDIEBdRocBhx6iCMQTATEU7nm/yn2stcfiPHxdsytgx9QTsWTGOruNp05UFkUgsRHQlVlYtUL0hTzVnbpZGeOM+AIS6XexYUFU6bjcJWOkk4kNENVOQgAxkOFKfeDAAZjNEUIJrunw/UbgXJj6owjB8xkWciR0AaVBqOEbbrgBOVejR8Hi4CEPRwm5BO4McB+YO3duLNnDPpbgIjIwfOPRF9zF4R0A5wJY4KPVYuWgEN4EkANnhGhHdIciQBGgCCQgAtRlNAFPClVpOiLAMmFPwLmXOK3tWX+yTlWjVejKU+YrOWQmgMWDbhQBisAgCGhL0zi1QnAHWv60y7athgmNnBdkECn4jXVWi4Kf4RWsPnXQCrRw6iKAtb5YwIzsmohrBbIHkx0I2/333//lL38ZS6Nh0MPQ4OiODJ9I2XLkyBGwR7iCw4Ub65nlUaMOHOOxKhhxpLAiGoZBfILOYesHC5ZSg+A98cQTMDMi18v3v/99yIldZIv8OlE5ECLL6SeEfqUIUAQoAomGALUQJtoZofpMTwTgnC34Q56aLofZ022xqxXaT1bcsyTjQo6DhZBuFAGKwOAI8FqlrjzN/vEZ97G2sDdkXJDNm5AhY/DKQ5Wierizign6WV0KZ+kzCg1Vn5ZPIQRAxsDKsLz5wQcfRNgqBLUCi0PqFATjRfir3/3ud7/+9a8ROAoLpMHiEG4Xa4PhxomV0o888sijjz6KCMMYLJoglC5CCmOp7fXXX4+vqNMvNQuqwVMUBkYYIbGmGrZBWAsRnxlZTH/7298iFJPsUFpdXT2iHLnmpIEc213s/mgUGGv90cikdSgCFIEERIASwgQ8KVSl6YgAK3a9ckwUwp1ZPSFlOEObuzILYUjGOLGdjsDQMVEEhkFAZMXCb23qeOmQfVuNp6rTtqMu7aq5w9Qf9JAo4IdXwwgBPnchwypIhBm6TQsEQFcQJAlsUA6xK7NBeWT33XcfEqjAYxNsEEQO8a66u7t/+tOfms1mVEBEKMRPhgcpTIJIx4oSRBVGtGGsPISJD3XkzJz9QIIzKoyKSMeKOMNy6tEbb7wRwbdAAqPEKSoHdkgIxAJCCMFRsEcYIaGhvExRDgQFeya+og7IJ+pgwxJHcFHsgNNCB9THDkgvVjyiGg7FqgQrJQ6BvkIaPtEKGmIIcjU0hDSYKKPBvdAdKqAviJLr41NWD+UwosK4isqxvaACNERDyIH82N7pPkWAIjCdEKCEcDqdTTqWREYgwv1aCjqDqtC1ZZ/Ds3Wsho5EHh7VjSIwEQggMyHS4FmuW8ApeF9DT8eLh0yri5XmsYWDEm2NYVsj3r9weUshjf70JuJMnReZoCsw8ZWXlyP5CuhTrA4gMAhujBKcb6zrQ2ZRLOSLprpB5SuuuAJOpHABBSEEY3zjjTdADj/1qU8hQwzywYBhQmysQOyDd2GdoUyl8BV8DGLBo6JrCAfKgX8pgvSiSWVlJWySWJQoJxG95pprkPcFjBTZREEv5UQyYHePP/44tAU9Q4jj+fPnI2EMlix+8MEHmZmZiPeLzK7gbFGtZD9YeMyiFZLKInUq7KLIG1RSUoI67733HnxoP/GJT6AhuCi+IqsQMuVgvIiKDFoL6ohqaIXyzZs3IxUN8gmtXbsWh9AdDgE6cF0Ejt69ezfko3cww2jvdIciQBGYTgiMlhBKj1A8SfsMGnhx2xvsra8wjtAglbCcDVcyouCV7lDTZ7yykhSINJiqc2wpdbLMEPrwJO/jIqBHCgkMQLmvigT5kODE8YRQUeeKADnF0jYnbWl5yoJzFUfbUwRmCgIsp2CNS3N7tla5T7Vb3ziWefty/JjIM6j/rXBwRMLWOtF6hjVl8/nLSJN+98/BG9HSCAJC/W5CgaTbl/yZUAgiM8qcOXPy8/OhLiYqUBWcBwsFYZGTB4A0KqB/4FcgYGCJ0fOKiDKoA7MhSkALYUhEBhd8gn3B6Afmg+ypCC0TrS/vQD525E8kIIXrKaxtd9xxh3x0GDlWqxV5XJDhc+XKleCEMGzCFgfmBvsbsvugX6xvBJ9EZlGse0TMGxyFs+s//vEP2OtAKWF4xLjwFVbHqEpgdPj6s5/9bMOGDaDEILTQB1leYQiFfRKG0y1btsCfFgwTTq3IlAOaB1EYIDLfINUQPGZBL5EL5zvf+Q7ILfgnRoTMQIiXg0MwrgKcb3zjGxACfcAbsfASyyYRrSeqAN2hCFAEpg0CfTfHEYZEboKYzvaxMrxmxU1xQpmI9LSXKBEe/eRWH7kLx6oa8gYdH9WEXAGoZlyWq8lPkUlVbJ2psg+IvfU9rsPNCEcJnTk1b1ySp85Kkh9yvaMgpMLf5nDuawwHBLnQuCRXW5h6drXe6vRvYiAgX8e4SjFjgXmQETlpWpEYylEtKAIJj4AmJzlpeZ6vtqv73dPJF5fjxoiHwoB3Y4MMQwy4hdqPGSHI5y1lNUmD1KBFwyIA+yqOc6mFrLmAVBwV6sNKjN9B+akHeiYzNPkThAe2uKgtC2ZAZOAc2CcYDgpBhPAJEx+MdeBLYF833XQT5EDIyZMnBxJCWQ76hXysHsTSRORxBcuSywfKAfGLlQNX1YcffhjrFWHHg0cr3FZBAhHvFDY65ICVhUAaeB3I3t133w0yhg2MF6wP6VtlN1S5Gj7Bb5FTFFZHaALnVbBNkElY877+9a8fP34cuiHgzaxZsyAcHaFHEF24nsIOCfb45JNPXnLJJbAWYqUlgujADIj0s0ADZBKLLTdu3IjoqVAe4XmQoBVkFQ2RcxWG02jvdIciQBGYTgiMihCKYVFw+/FJTHbSPBYQyFSQ0ypZZZ8DQzyhwZs+rOG2eWxbqhCNI/2GhbxqEG17Pjzd9OuPOIaDahb7gpzPX5BYz6vRI4I1Bp5g61/3OnfUyY0woryHNqow7znL6gkSHm7/x8GezZXkwSyN1nLd/Jx7VtPX3qMH+7zU7Hr1iKAQORWn5rQMGybvsuk5Oy9ngnY6FRHgWPPF5fZtdd7G7rY/785/aCOrVY5qHEFfuOMUwymUS28ZVX1aaVAEOKTI4Yld9qzn0aBVJ7VQdsKEaSstLU3WDSa47373uyBaSEQBw5psGITHI2K9YFmdrBwYHZwhQajQCvvIThEdF8yJcByFDQ02PVSWOWe/IUEOeCaiiSKQ6dVXXx1tO4wcWUJFRQVserBn5uTkwHQJKxyIJXSDj6hMTVENPqvQCgQMyTNg9AM/RH4LkFXYMzGofpqgMrxPQeqefvppcNpbbrkFzp8/+MEPMAqQ23vuuQf1wT+BDyrI1kWYNFEOCyH8XbEkEsPEV3BOWTJYKMyJILEYI7goRgTOiYYYI9J4LFq0COsS++lAv1IEKALTAIFBKNbAUXlqOjpfPBz2yfaoXiMh/iq45PXFyetKe++GEkEh7YnxI2ZDeb+SmIND7MrWR/fxtrZn9oU9IW2FxbQ0f6AUTXYyjGP+JhsTHGc48iH6H02xPK6BoxuqfDiZ4AbAU19mCVk9Iac30OxA7YHjJQSQZbQlFn9FD3iyv7EHcdjRn1R5sOoJ9TpX0nNmfgg9Xsyk7KlOQ2GGileTUzXo6ZqZ6NBRUwRGREBkVBlJ2fevafjJ+84DTbaPasyXlCMW5MjtnB2io5XLnM0oNCNWphUGICCGu+qkQtywJKMsviTMvQtzDxjWkHACJjUQJzAraAeKiA1UB/nTYfWCayjYEYKCwsIGagR+iDowtcEGiCVzcIaExQzGNJjLomno4dKJaC7YyFgHEGAwJVDBxx57DOwLSwQhHNWwYZ1ePzlw8ozKkevARTMqEN1F9+WjA+uAsg5aJ1ofR2Hue+aZZ+B3ir7gZQq2CYMhoMC6RBBO1AS3xAbHUbkVmsA6ik8wRpk3Yi1ilPeCc6IcGyrASonBYsM+2oKRYot2TXcoAhSB6YTACE9TacGA6D7VYdtW69hTL/1rcOyuxz87/u2scx5oJrZC4gjX90+yWvWVgq5IcsaGGyFVuEUJ5B8eP4LDR+yTKCEMp28zzM6y3LiQN6pRJ2JvidSQuo2o0tckqhaRJR8lAvuL7etg0D1ZDeLHKmnTJ57UlsTGCEdlqX5f3cjXSOveHlherUAAvfyHNliu7/PRlwYV8/gl92U25ZKyvIc25Ny7ijOoIs37P7RIb5EByjv4lDdpsEQFcpxuk4SA80AjruOAKpiRlo/cg9gnlzXdKAIUgTEgwBoWZadePSfkCfR8UB12Bxk4rgx39yY3dqFhH/5wljJG2Xu3HEOPM70qHhLhxkOsQs2lVwALQgz6P2vOM0SwX918881IJgFvRpgEwW1Aafbs2fPQQw+BEN51111w4wT1QoAZcCSkKwRJg40L9j1kj4CvZlZW1vPPP4+khT/5yU/A6GCpg5MkqCM8LWHNGzg22PGwkA8WOTh8YqEdDH1yHZRH5SBOqSwHfp5DyRkoedwlMOIh5QZILCyK0ApDBv2DGVAOG4NThug4RUVFUAZGUeh59OhROIWiAkypqA8EkEsDWAG3jo4O4ADWCoMhuCgcR7H2ElZWfOIo1kBicea49aQNKQIUgURGYAQLoRQ4RjSvKQm7A4LTH2hz2nfU4qFgXJyjLUpl1UrT+mI8Hcjifjx4Mb/tpRiCN+g82BRodWpKUgxzsznlCMxzIEZ47EAkmTPjfhZZQoh9UlHqqncyreCVqXpGwUlKhENOv2NfQ6jbo5udrqvIkF5yIUhdb2UiTBR8IU9Vh6+mG4I0xWZU49VKiX2O0hmGUCminqQgGTJ2eif3RGdJRVlTMgC5miD6Wuyeyg7B4YUSqmyjYV6OQk94bGST1mNyBrVGr/K12Xub9R6N+YsWUJjNM/FaFYMI6oNu5JSQnsNhwVNj9Z7uEv1BVaZRNycz2OEKWN3mVUXSIAZtTAvjj0DA6efCYWNWem75KtlCSDh5zJUZ/y6pRIrAdEKA3OrIvT/l0oqeLVWuI80nv/Bc8eNX6krh8he9AfcNmNyIyS9MFP1OfHKWcoanFsI+fEa5F67fIwbdIq/k9GmjbDLJ1RD5Ew6i4DlwiQRjkSNngr0gWAu8H+HSKacTRIRMsD4QOThqwvzlcrlQgq+gPYjIgvSDsPjBvIbpBrgcCCT2i4qKBo5l586dsMW1t7eD9a1evVqugIClWEmIRXoD5SAq6aByBko+l5LbbrsNCsB5FQkzsN15552wAS5cuFCWCSsoSuBHCjMphgZwYBRFBB2wQYwX5kSYOq+99lpABxhhSASlBM1GW0QcRZBSrDyUkzfiELbogslzUZi2pQhQBBINgREIIWE9DIsY35m3LMFD176v3i6tcDOtKU69cjZhatKA8KR2Hm+t++7b4I0oyb5/Vc97Vd6qLnKY55JXF2Tft0aVahjT4F3HW2wf1gRa7GJIgBq296u9JzvlCbS2IjVlQwXLSyQT+mEygI7YsL/RUfXwa/4zPSgRec68vjj7C6uUZn104i14At0fnO544WCg3U3qEIVE0KTM25YmryvhNaNakQKuW/udt9xHW7CeEi9PFSn68l99UmWJjK7t7/vb/7afkV5bs3pV7lfWpa4vs++qa/79x8E2FzqFYys+0TefrMm5d3XKxnIZFik6GpnvkJVlpBqQH2QD+5YrgOaGhqZ0pLHIeGo7G3611VdlRZcEIfwjO0SG4YU7FQY4Lg7aySD90qJzQcAX8n5Y/2o5l5GbXFKQXE7mr5QMngugtO3MREB6y6VI1qZcMavjhUNwra9/fPOspz5Nfk4DbmXkFgg2iDVjPod0p5SfV/SON8ZLR4CLIFY+J3HFq8bYcpKq47xifR0S0CMYDPLFI98gSkD2YDYEQwP3k/UAEYJ7Z1FREWqCy1111VWwKIJM4igYDkyLsIzBiRQ8CivlEIsFa/MGDgA8Cs6ZkA9bXOxRyEEh5CB8C4KyxMpBjziEynDOhNkNTqrYBwuFIyucV3EI5jhEdgEZww7eEqI+LJnEZZPjMC6EIUU5qmEVH5rLdDe2a3kfo4NVU842gRIElcHKQNgJ5aPYQSQbuNHCsRbBZrAOENwYZA/dQTLYLDxdQQsRXBTWVDigYpPbgluiHINFyBlYFBG3BkFr5OEM1IGWUAQoAlMagZEIYeQpK1mvpCepZJ0jd1iZiEXK4Fxu94pBssgQJR3PHgQj0pWkBTudIYfPsbfBsCw/9dJZbG9AmtFABmbl2t8kyUN10bm/Cf8gHU9+1U69cUm+0kwc9yOUhujBOvc2cmqFFv12uUJ2H7irbm5W2uWz0S9aCS5/69N7ra8fB0dVpRuUJi3m5YEOZ7DN2fjrbYFWR8atS7nB4tb00zYcCIVg5ZOmJvgMe5D81aOygHbiPinCOElUJDDBz1UU7D586373VKjDo8oxafPNIJBhX8B1pCXQ6W7+3Q7DklylSYdhyTfZKEOT7YX9upa+Ss+WyJ4E/2CVQPkQB6jx1x/6qq0Ks0a/IFth1AYdXs/xNqIhFCQRSoduPqhMWjh2BBABCCx8Z/Nmwe6Hext5wYLvFPixI0lbUASkHw78K4hrPX5H7c/uh7uHt7oLz5rBwMGtlxUa94Uq32ON6awxg76EGQylUZXJHiejqnqeKoE1XSptw/QPinWdtA2sg6gtsPsNLO9XAuKHgCv9CqNfcWcH3xtKDqxzIGNyZSztg5emvA/q9dRTT0WFgHBG95HyIbqPzBbR5BbRwtgdJDOMfoV8bNGv2MHYYevDFlsYfRSBKyJjYeyh6D4cSuEZiy1aQncoAhSBaYnAiIRwFKOWnhXGBbmZty3pePWoYPMxITHr7pX68gxvfVfDTz4I+wVvdae4vpQdnQlO7jJt0xxepw52uj2nOwi9nJWushhlFqYpNRNnS2LuitmwSkTFZX52uWFelq/JVv/Dd0T0e6ojvLGM1+A9mWj7uK7nvdOMgjdvKEm9bBafpAZtAw/sePmQ+3iH9c2TYE1Ji/JiJA6+C2aV98ULu944bt9aq8jQZ925Qp1h6nrzhKeyM+O2JenXzcfwrW+fRI/5X7nQsDAbUjLvWJ5ycYUyTafKTFIatUIg2PHCYTKbcQb89VbVAkJNzx7M4F2PvhTIBDpdQA9NQESzPrNcnZ0Miug61Nz52jF/i53XR94djl4mrTkuBNhub8fRrt1zas2UgI8LQNqIItAfAU6rMm8sc+6td0lRx3LvW6vKMPavRH5vonDkNXxyWXO5zDmSv8uAWrSAIkARoAhQBCgCMx6BeBBC8tgVeYNKNyeDe/sEXCK18yypl8xieFZTkNL8x91Clydk9YoCjoxhM11QZFyWb99e2/ibTjHApVw5y3whUv3AhCZyPEf8RYm7A/keEcoyesQb2DSHVbCaQnNzqi5o9YJxEe9NVgz7Qq4DTWFvkNcqFCaN51QHaQU7HiOC4MGEKHhCKBwNIUSH+vlZIY/f/mFN2Bc0zMsO+0MdrxwONDl4szr7juUKWAtBw7KM5o2lRGEAkp/irem0PluJhYtiMMSqeWWaXlI7HPITS1182SAZGcsoEGiHh2mU9VZ21nzrTV25RWHW6UoteV9drzBqEMCGjD+KnqQN/Yg7AkI4uLv1vVrbSV15YWr7LMm5Oe6dUIEUgZmGgKhM0xZ994ojN/zZtbfRta4tZRBCyAj1e8Mdp1mVgS9eyyiwIoDe8WbadULHSxGgCFAEKAKjQiAehLCX0ICb4RUsHrnq9KTIAj/kB9TwAsvAzZIsnhvLBgk8WJ8CiY/AqcKsguc0krbEmIZeiF2ylwtKcllGlW3iEF0GG2ogQSIDd02oQ76DEAqeIPwwkaoBeY1Z2elVOgZiiVAusC5yozSaSb1qcs2Mmhcc/qDNg5WTCJ8D9uXY05B505JghxNVdOUZjOSrGrS6z/ziA/fBRng6KVN0vEELpQItciaf3iHEfaIiMso0g+XmBZ3PHQk5fcFWp70NPbJW9K3Eqs6i7LtXKVP0vd3LQJBPIOZvtLmPtESQ6zsyHfaIy6bIZrR6NzkCpjZdl0lJrtcJ2IhnqDT9bHHWnWn6eIGiPL8nE11PQFdUJEVgxiEgvUJj4UKS/ZnlbX/ZZ99eY1qZzxO3kbM2sb0Sd3wuKVtRtv6sA/QLRYAiQBGgCFAEKAIxCMSHEMYInKBdaQIgGwSlSTU+CCeMMXDBXshJPG9QDUDNWJ4s1IP7aMYtizS5yWBrck2JWzKsitdVnOVzP6gcFJJOERJGr9LkmxE4x9fcg3V66mwTSrynO91nugg5ZFj9rHRZSeu7ld5jrVg5nrSqkLhuZpkQ+hN+m81/2CmtiByqn3Mql5mHaWkBj5BiCCva4UKQ2FC329/mBH21fVjLKrmChy4a2AdGp8lLxj+C7rTbyPsKkfnbToTQFq6eY0pL10zQMKWLk3EEba/u/aUzo2dD/nWzD83qPLafXD50owhQBOKEQPLG8tan9yH8tTggD63otZN89EKAy+tbWxWnbqkYigBFgCJAEaAITCsEpgohFANdbtgFibVQZHwddkSCQfAYxMmMzrAJTxt6ss3rVCowMZ4LBwWISrl8lkIfCUEOJulvtfkb7cgLP5pzK5uUYFFU5ySDEHpPdTn3nlEXpBoXZvvqe+DjGrC6QFd1szMJaRUQ+9QWDoYYpUJblKLJNpEIkzwHp01J2aE1Ho0qw9Rh2aDdg6A14VA4+84V8N0NewMhhx9LbjqePwgbpudEO5x4YXftJwPaEaMZ9Jow1fr1OKlfpaE1eYPFemW2Gm8IJmqYEvFkXjr1e6u3rTBp1rLMDRzXQ0ZKTj/dKAIUgfgggNDQcIb3nOokTihnb+GWo0LLMTwVFAuuOfsI/UYRoAhQBCgCFAGKwFkIjEAIpQmziPV1tm3VMDF5m3rAmVDoxHo8TwB5CJNW5SPWC7gDor059jcJyBTMML66bldlG5ar2T+uC7uCsJYE2hz2Aw0pF5ZKNGNUVINMnMUwlvzhkS8Eha6XjiKeJ57u7so2b1Un5tXZd69Ou6wCSSAc+xuwOBDVPVWd7spWbUm6bUd12ImgjiKyVtj2nCGpHRQke5Xtg5qQzWN9/YTnVHvSskJOwQYdPsRZCbTa4c+Z+8Da5LUlZ8Ez2BeiPYsANgpNAYkfbdtRgzg65ktmJV1Q2PH8YftHtfAjVVr06jQkomDB/TgtkhzyTDDUvbky7PYrknSeeqvrYLMs27mnQZtnVmWQ4NcIl+c81AzK62uyy8iTnIp2L8yj6qIUw4JsUFa4HfpabM79jWC2kAaaB3h9VZ0dLx6EBFVuctLSPE6pwNgRCtVTaw31eBt+uTX9poXJ60o1Jp2voYcJwXmX5VO10E3WIfZTGt2oTlBsq6m0L1k+1RyrxugncqDbGv91rGuvRqHfUHBNui67i0U2FPw3kV1OpdNAdaUIxAMBniV5aNlOz+lOZbpe9sqWnRvEgIsJeLh5n+BMkdTh6I94CJBHi7ThtygyJ6z7Xzr1pCvoImsRUICjJDLwIPfG3mb0L0WAIkARoAhQBKYbAiMQQjJ7FRnrlpPNT+zA9FlacIUEeAyYnuPjOnhges9Y8750IRLy2XbWtv/jEEkPzzDuY20dz+wzrS9p+f1uwelDQ1+zveHH7xtmZyjTCXsc1UYe2yyscLqyNOfB5pDN1/HcQShDmit5VYYB6/GgQPe2050vHiVasozrYFObgjetK279/S7BFYB/IEx2jT/dYlyQjSyI2qLU/IfWNz2xPdjt8pzo8JzoxNRAVoZFsopcg7rAPCrF0BfxPVUgbicahjq9vFEN9gtirC1Lse9sxLRCnZvMqYjxDVzOtKbQeaDB3+qGK2nHC0fA90QFj4gvnFop+AKIViqGwnlfvhBTkLrHNyNXIcRHiYNtW63tw2qJEKbmf3UDUjCH/YHOlw8jJirMpWHiSIshsK7j7a7jrSQvIs9UPHGTNjIQloOeDOOvtzX+4sPGn28j6+egExZmpuozb11Gjs20jWWeanDhrGg4BpyQAD0xW4en9WD7RwHBf2He1YvTcXKjk9CJ6Y9KpQjMSARInqGKDLyLrP/BOwWPXAK3fHg94D6HF2JwGcUf3Khxn4zSO/KDJ14m5IkB35CanmOvnP5jl7ctSWVKTyq9qOB6rUIrYoHBjASTDpoiQBGgCFAEZiwCIxBCGRcEUDHMzwoHwsTEITGQCJVScGBr5PkqIpCM0UjqEL8d8BRtebo6x6yfmyH0ePH0xT9CgUigl9FuxEFUZLHiLvOzK9Q5p5FJAovfEGlGkaqFPsbl+boyC2Rh8Z5+XiYjpUAE3dGVp2lyUZIR6gERJUvGuCQ1p1FCQ/CfpGX5Rd+/oufDGtgwBZsHjAqBahDwU1OUkryuGEMYnXKyPyALhpm8ttjfbIMmutkIIcNYrluIHBtMUDSvLyGGQWkzLsyDMRPUDjkPkZlQaTFghR50Bsv1HGtlOFZXDAwJMDDueautcitADZCxT/6wDPGPTSI+rliLqC1O1c/JlKK2SsdiMOVNGoR7JRIQZdSk0c5N1yKIjEkb6HLBZAoQeK0SvNe0qtCwEG/NY1qSNjNjk6aDcBkt1iv6wxcnAELh4N62LbX2k3nGoosKrgPMMxLoOKFJxVAEhkaAVfLmtUXO3WfcJ9uQdjVHEBHbGb9r0dUTOviiqDGw6RV4ksg3WIjBbjDshyM3XtYEw4HtTW92eJqT1Mm3zX4wWZOSZShEndj6Q/dMj1AEKAIUAYoARWD6IDAKQsiyxnk56q8mwZAljTs6ucWLVNAzHTFTMYy+IjPvqxvEEJIoEEJImIleDSdM0RcitAZERscrEGCTvJgl34fcQIAi82dJMMvqy9K1hakhmxc5HtAj8geSpYMR85ZonJujfqhXN8KCtLxBnXv/WqSCQBeYirM6pZy0kPQIZpWfqrnNDLslMSGS1IU8VIWxLiIPdQgPxZwgOkzSLnYjR8hBUZ1jyr7rAuS7B6XktYSGIRkjWakohEkAz97leXjdnLyq2LgwN9QDCipCQ5IQAnqVpguXIw8Bi1T1MoZZn10JQ6jUl6RCDFIYFBqiMpkAbSw3LsoTw/3CtkInkcdgzUhoQfRTJmlz71kD11bOoBLsPnjVYmR4oY7kE5yy/9JBqdPp/yGRbAIOsOol3PEdNbm46+yVu1rexc51ZXelajKkDuRO49sXlUYRmOkI4I4I14zsL6yybj7Z/c6pzhcPIdaXriSVweJpbw+fu1hRsEL67Yn19iqrrx1pYKptxxscVXhrExbDDn83ELyh4t7ZaUukan0fMx1ZOn6KAEWAIkARmEkIjIIQgl4oOBIbc9hNqkMWwsVueFTHfAX/kpjK8HNjQhglT0eprtwcBEZlwZK8gRvoFLEi9jugGtbWR8yMyTr869eKcEFoCPWinHRADRQQC5OsIssozTr866sFZ9EhukZUG/zrqwmTaZJGNvpFCxFpBv+iX4faGShqiJpsFAcOy2zoJiHwbLOHnGdyBnEqh78WxwwZ3iXAsv1W7bN2v3VD/rWFplljFkEbUAQoAmNBAAGi4TEBXxVvnRUeFvaPazX5CCJNftusEi/ROK/gfrHyycOdu8IieV8pwJsUG7nLkw3re0uS55K7PvnxymX0kyJAEaAIUAQoAjMLgVERwrhAgsetGAqFXAFIG/6xiwc1UjjAtBWXfscgBDFB3QGReJ9iYhCZLgxsTg5wxA9zaCPiwEa0JDEQYBm/EE5S8pdZEOWVTAJHuhjHpnZIDLxd8xwWJll02YvS1+AiHlt7WpsiQBEYHwJKPuv25fU/eb/92f26tfnaqqfw47aJ3l01f3m/ZTN+6RqFTs1j7TCbqstcm3Plooy1Ck56xJB3Q/KrwDjfDcY3DtqKIkARoAhQBCgCk4/AZJIuEUEv2/+2byQ2SIx+6Z9cYJjfFxpucnBBwNKuV494KjsISSCeq0NucEMt+ual9H3ykAAl8gESYELyto3b9E++VMh1fbr78I7mNxEYd33eNcWm2SO8+UhklKhuFIGphgCWTCtXWIStzQ0vvV2i2eJWsC+Gjp9qOclzytkpixdYLkhSp8I7JNtQYFSRANGRTX4zRO4Gwz+aeuvTvxQBisCoEYiY4vH7Im9d5GflqBvTihQBisAkIjCJhJBlBbvXua9B9uUZaozkuaziEBhgqAoTV45Fkh4kftjXiBfGyCsxdEcia1JLDodDV6FHEhSBmDkf2Y35eo4Ki6JHcB9o2+YNecrNC1dkXyw/+uLXwTnqR5tTBKYBAmR6SZ4RfeQtTNZ8MwxSvHzc+LYq2TtHna39KBBYZazL9JzRcfPSVqzJ3ZRrLElSm8l9ffAfZIy8aQASHQJFIKEQIL9QEgf+kCO4KT2s4/F18N9hQmlNlaEIzDQEJo8QwgkTUTTnv3jXCBDjac+J58FfVIqDWvjNS8JI1z7kvKFPdzkkSd+0pO8I3ZtZCJDpqcggAm+Dvfp0z1FkA7m86GY4p5FnIDk2s9Cgo6UITCACxL2TxJ+OdnG6+0iDveq4dW+jvRru/roMdXqmPqc+zeEqTlqz9us5K8zqNAWnImsAJC45FCOMCqQ7FAGKQDwRIA9BeRkO+1yzp84r/HWRmT4V44kwlUURiBMCk0cIcVdAygReP2J8y/M3i8ZUQ6NQjDyFl6b5JAQBne/H6TKcymII8WOZQMh3oP1Du79rnmVlqXk+IYMk1j29QqbyqaW6JwAC3pAb+SEQEdQVsEGdFteZLfWvtrjqelWLzC31qqQ8XdmFxas1R2y+em/QVlyWfSWnU7OI7ByhkPTH2IvZOP6Gw2LAzapocLJxYDejm5DnI8OtT1Xt6PE3+4QdVv+WrsDFaeoZDQodPEUgIRGYTEI4SgDOp9VtdO+PpSnI+VRzlEjSapOHQKurflfLe+hvY/71EZ82cplEZquTpwftiSKQAAiQ1yHkFSD5GEYd6a0JagxSB/Y8ZIaotB440rkbMXuDQqDGdlwSJXIsn67L1SkNkng+XZuFfUQKndPtEg6/Y/N3timWuFsMPVuqUi6tYNUK4s1B/qcvaIY5FUMeYk3ZDKdkAp5w0yG+eM2Q9egBisCgCEju2OtTNUtNqseqHC+2en9T50xTsQuMUlZqOo8aFDRaSBE4HwgkICE8HzDQPikC40cA89LwC6f/F29CTeo0izaLzD8Hm+OOvwfakiIwtRCQKN6IiRzqHadPWvc3OWsIfRywhcNCk7PWEeiBjyisfDqFHtUQD2Z17hWlyXPVPLLaMhzLoUSj0AYPPB/Y/3fG7zLOn+/0pLlOOzteOeKt6Uq5Yo6uwgJ18JuUjPYDuqEFwyLApRYxvEoME6+/YSvSgxSB4RAwKLjrMrWbO33HXMFXWr0LkpTUZD8cXvQYRWDSEaCEcNIhpx1OLwTwVGu01zQ5arMMRbfM+iJiV0yv8dHRUATGjAAhYCLb6Kw63XO4X+NjnXvg9ikXCqIgYNE2EgP2q0QWkmMpN7EzzktbfvOsL2oVyChICAlKlZwKPJC0kBiK6LH53/lp+MxOkeWV865RLrm5+PqUqodf957qsraf6t5anbyqMOP2ZZocpKullGYA0CMXkHAgrN8dqt/FF68euTqtQREYAoEVJtV9BYYfVzv3O4KbO3wb09Rqjv4khwCLFlMEJh0BSggnHXLa4fRCIBQOvFn3d8xPM3TZSHINBxn6iJteZ3gmj4bY5sgiIGmTr2x88YXcAQEZZUUwOm/QjVTv4FqdnqbqnuM46g9597d9KJMvNJZyvKB9rxCGMaiSeYYnTpyw+GmTS5LnZBkL5C5iPsnPKF2bXZayIKYwukvaikFfuP1UcO9fw81HGK1JOWeT8oLPoxn0LP/5tbbttV1vnvTVWXu2VjsONGV/bqVpbbFCryRhaYgY6SMqj+4MgQBIuWLZpwMf/JK1t4WdHZzRQnxvh6hMiykCwyDAceyGVPVv6lxHncH7jtoeLjWuS1EZeC5Xwym5YeK6DyOSHqIIUATihgAlhHGDkgqamQjA4a3Bfkqt0C7JWKdXGaUFS3SyOTOvhWk3aol2Raldo6PGJ3gbHdWt7nq7vxuEzi94W1wNfsEd4yUNBskZ1KY0bRYqpOrSk1QpEVxkGiEycPhU8CrCB1kGa/9U/CARJiS/a3C+IalH2OcMHXw+tP852CK5jNkwDHKl66SlglJvSt68scywKNext8Gx84zrWGvrX/a4T7Rn3blcmYLIKGRgdBsNAqDPfN4ynIZwT71oaxSNFoBMb3CjgY7W6Y+AKFYYFF8vMVa7Qx92+39a7fwZyxbr+J/PMS1OUvWvTL9TBCgCk4sAJYSTizftbdoh0OSo8Yf9BmXS7LSlGJw0WaIzpml3mmfkgGx+6xn7qTOOU+3uJizBs3o7AmG/1dtOwOhdkJesSZ2VuljBkfDRhaZZqdoM/AY0Cl2SivhOG1QmrYKEpowazgnTi7A9iVbgtzLoz0WyTBK/0cHIh+hzhfY9GzryGqPUKBd+ki+/hEvOJQ6mUm38lRgfq0zWpl5akbQ8HwFm2p870P1uZaDDkXb13OS1xahCt9EhIHLGdL5otVD3cfDwK2pLuahBOJ8hifroZNJaMxIB6ar5XJ7OL4jvW9XvW32H7MEad/ClVm+FXinlJ5yRsNBBUwQSAwFKCBPjPFAtph4CZP55uvvwe/UvBQR/QVq5ikPuQXmmRGdLU+90Tg+N5fCekgWHLP0iOyQgCwgSqFU4YsfrdZrEYXIRgzz1Xrj40uFpOt611+G3b296I8wg7TvxCw2LAofle4QEMlmGQqzruzDvao3M9BgWYT/lKx5L+1h5dR8EDbHJXfX9Qvr2zmogeSXKrolIHIHgMWQcZETQIRwMHnoxdPhlRgyrr/0RlzWfJf5mfX6MRGRELPmjNOss1883LMyuffQt56Fmf4uDhyl/US6BgYxIdoslAiKNzlJkxn+RaLZy3ZdgIQyf2RXc/5xqzRfIWYhBeMZjRAEYFQLy0xFV1Tx7hUVzqUV9xhO6dFcX8hO+3OrFFWVRcY9XmNakwH1A+jVKl5l0AdKf5qgQppUoAueCACWE54IebTuzERBZm6+rx9dVkbLw8/O+MbR328xGiY5+0hEgCTAjdjjMpsi+V8CqPx+SN3hDrlp7JbKkxCpV3XO03dMsl0gzL+IVqObVOoUBn1jyV5o836yxgDCtzrlCpoXRuV2snInYhyaR1UUhn+hsC514K3TwJWjC6lJUl/w7l72IYcFaRyJzHKstSSv54VUdLxy27aipeeQN84ZS45I8sERlio5REHkSyaHzzv7nUL6twUioXHV38P2fBg/+g8ueyxeukqbsODl0owiMBwG84sE7pnwt/2iZ8alGD1Yh47VTmy98+yHrtRnarxYbMnHrkV7RUBfl8eBL21AExo4AJYRjx4y2oAgAATIXisyHsgwF0rdJmyTTE0ARGAIBMoUSOz2troAdO86gHfvYaXe32HydyO3e4m6AuQ8cUW4fuWRFJt9UqkC6OWwiY1KnpmjTk1UpmYYC8MB0fY5cLjUB95L+TtaH3JvQdEg4s0s4vVX0WBmFksuez8+9is9dQux7xFaF4YykFstoilJyv7RWkaLtee80Is3YPqrVzcowLszWL8jG54gCJmvEidWPDCteL/B5i8Ol68WTm0N7n2G1KVxGxShAT6yxUG0SDQHEC74lW7fYpHIL4VCY2WkLwH30tXZfpSuE8DMlegUCkxbqiDs63SgCFIGJRoASwolGmMqfpgiweKMZwiIreXiYWA9vIZQnrdMUCzqsiUIg6s5IKBxhb1HbH3F3RJE8X/eEXPX2U56Qs8FR0+FpRu4+X8gDmuQLeZ2BHokskdk7Klt0OUWmigLTrGRNmtRWFsCkatM5Vn4ciDAMYu1f/yFFKvYvjvd3mWVgaNhIl+G2SjiIih2nREcbvnJFq5Xzr+HMeYwuheGIwqTSSLpFeC/D8DpV5m1LTRcUek53WN866T7ein/KLad1xalJy/JN60p4g5ogTawS0l/8melbL8AqnWLprWF7S7jlaHD7b5UXfolPL5vp2NDxnxsC+GEaFOwSEyLKkB/+smTVJWnqn9e49tj8p1whrCos0SkuStOAGfb2Q36YMB4uNinx+kryIh/yx09cI0a8NfTKpX8pAhSB6M+MQkERoAiMAQHMWOF9d6BtGx5kBUkVZKJOtqEfTmRGj0VcY+iCVqUIAAEyUZLfNkTseuRSw7W3vfFNHP2w6V/+EIJ8MoK03k/EgjsxLBGayKU2z7IiR1+k5JRzLcvTdTkkgx/Lk8V+RK70XyKhLBHBMLzJMOSw3xn84FeIZcIIQfhzcmklyo0P8pYyhsdja8gf2oijASc0zMvSz8lMvXy2fWdd50tHvGe67G1Ox+6Grn8dz/rM8qSVBbIQeJGeS0cjajLlKnCmbM0nfuR7+avh1hOh/X/nLvp3Vk0iBtGNInDOCJBftFHBLU9W/W1xylar7/0u/xarH1nsT7iCUY9w4thNVhSzv56XfIWFvLsZ/E5AakkvwM5ZLSqAIjBzEKCEcOacazrSOCPwxIFHEX+/MHnWrNSF0kR2iIeT1C2vVeKJF2hzBFodqqykOKtCxU1TBEDZ4K3nCbqDYX+7q/FAx/aqnqOwAZIQLxJXxPq6JFUqviFdu16JnF7KEvO8FE36ssz1al5LUMGlKflVSsFTpOAsZA5FPD+lSVOiAScyHpvQfkJoPCgc+ScJhaM2sCmFisU382UbiN5kmoehn/MG0qlTmC8uT7mkvHtrletAs+tQk6/BVvvdt40LctKumwdvUkWyNmKBPefepoUA6QpSqFRXftf//JeEmu1C1gLFouunxdDoIBIFAdzXlBxzWZr2Uoum2Ss83ezZ0xPo81MXRWdIbPSFHjjSE7kLDPiJpiq5Py5IXpR0Tq+NEgUOqgdFYBIRoIRwEsGmXU0HBMibRzIOlmlx1RtVyWtyN8HFDtNUqXTIERqX5CpTDd6aLk9N18wjhISUDI/PkMDNvAN1tpPyJYah1/ScAAlqczc6/D2V3QdlMPKNZbD4IdZLuo6sfCtPWYSpukGdnKXPR5DPXpyjfyVbIJk9kZIooSLXcW8VWex5/xTdVqF+r1C7XWg+zAS9DK/iC1fwxasVpRsYhZymDFr3/gDPTV38XiNhSxkxZX25eV2p+2SHfUetY0+980izp6rDsCDbtLpInW9W5yQrjINkSjy3/qdka+mCETldimL5bcEdfwgefpEvu5DVp07JwVClExMB8svEvYm8C8rVKh4p7ffyVKz1hJ5p9h5zBoWwfEvDMOQbGZoxRx1Beyj8h0b3/fn62UalIsFucYkJOdWKIiAjQAkhvRJmEAKtPiGEGPayOW9cKwwkZkPaH+3chalpkjolx1CEsPsjgqhKNxgX53S/d9rX2BMOCqyCT7Tp+IhDGG8F8pzGPF7+g4f98As/xtvL5LYj14FETUTG6murs59qczU1OquIQY8Uj3vD/EXs8mKxXERIp6eFTI4gT2TUCs1F+dcVmioQ8YVneLUykutvxM6inqG9syPyt3d/xNbxqUBOP9FD/iv3Lw+LETuqhLYT8ELEKsGwrYHxu1hDmmLhDVz2PC61mNX35rUnisTzR9MrS4KH5wzzMrUlqeaLy+wfn0HGQvvueufxNlWyhk/WcRqFaXUxKmjykskw4JcLz9uZ+JJDumo4ns9bIqQV45QFj7yiWnUXuVp70YzP5UKlzGQE5PvTYHcoXGhFWsXXig1dAZKNJnaTb7zbrH4YFd/r9FW5gt+vMF1gVkEMuTzxH90oAhSBYRGghHBYeOjB6YXAMVfAEw6rObZIpyBvIMex5lye0jLswfbtmKhnG4pACEcFksgYl+aBEHqru8J+gVeQzGmjajjFK0nUiTyU8UjG/xj0u3XPT/mhSwFdGhynT1phtSPL9rA8lGQ/ICfr7HnKqE8fwYhUJn+jImB8Xpd3FQ6sz78aGd5Jxj9iA5RotdzbqOWf34oyfZZ1kN4JMKKnR6jbFdz9lOhzAjxp0CILq+CC6xSLbwInxFpHuXDSfim8VqEtteiKU1KvmNXx4iHr25XeJjvbaAPbcR5oQrZDMMb0GxaasMhQifMkXc3nF9bz1DuXnMsXrgx3Vgkn3wvPupwz554nRWi3MwsB6X2bqOWRryKSjObs8YsFWj3C0txxqLvaLXz2YPeLy9IWGLFYg7y/oxtFgCIwPAKUEA6PDz06rRCw4bVimNGo2FJELcOcfuyMkMzWWaaq+3Cl9aCK1xYnzxrJVzQCIFrpZmWiteDwMYLAMArClBL+tbo35PYLXuSvQxxLaaH+OK4HQm/q7aePdH5c3XOMAChxnnEISqAmGJJEcaRMfRqd0qji1QWmimx9/jlMPQgNBM1Q85olmRfKgyXcSSJ++INd4uco0ylyHeJAgk5zxJCPAc0jG4s88qLfxQghMegVqraS88+wwRNvQnX57QpryGDURi4ljySTyFnAmgsJCqSeNHKyO1kbUQ0xKzjY83MeWJv7wDr3yXbfmW73sVY4ewcdXs+pjrofvqstTElalGu+rEJh1CCJBYjiZOmXQP3wFZeEKt8RHe2hY68rV3wGSz0TSDmqynRFAHcG3PiGuPOhHHfIHC3/0rK0n9U4X2j13HnY+qs55lVmJVnBP5l3kumKPx3XtEaAEsJpfXrp4M5GYLct4AqLF5JXhng6jHOiiWRuWxpecQedCywXLLSsPruHIb+hM07FqbOTXcdaw74gb9KMs/she4jLAdHu77Z62wk1YUSHv/uk9UAPyV9nbyX567Bog5SPDTpJltwQOQ+MymTku8tPKpVKpvyHRZ+TorFk6vOQu28iBkOYkXSh9O5E3yGMcPkQaiPZ1yLth1BOsnT29hCpI9knpfYD24qhQLjjFCpG9RgoGHWEup1idz0581ATVvnuerImkHwhwvGH5ZVcejmrMbHJOXzBSi61kME+GRP5X97O/tZbOqF/Y0Yl66GfnYF/qZtmBzqcvlqr40CTu7LdV9vVfqa7+6MaTb5ZPycDmSp0ZRZNjglBaOQx9uoovTPoG1Bv8bT4CxqvXPHZ4I4nQyfeYnVmuPgiP6Q01mk64Glx1qb+IHpvhIONJHoDSVYwcCvlWeavTZ7vnXY8UmZcn6Lm8a5HeqkWe5MZTAwtowjMUAQoIZyhJ34GDtseDGO5OQaOZEfjHj7ms3Z/D5gSJHyy/G6Dqt+S9yEFk5eXKl5TYPa3IGN44s4Un6/8XZsLU3nM6kRvyOsJ2sm0nmEydLl5SSWR+e5YpnwQxYkMz/FFptl5xlK1Av4+MKukD4nUVDtALM1jAWRyxieZEkee+UQ0l1marJnICnXbmaBPtLcIrccHaBsWHR3kpcAwW1iA4YjU6cWFNVi4ghUsr2CTstmsOcS0yfOsMZ1VahiNmZBL8oMAkIgnP4zc83lIaTEo0w2GpbmBNmegy9X9zxM9u+pCVpf7YBPDs6r0JEWyhtMpUy6qUGUZdbMzpHHIKCXqkM4BTjIwpKov28gq1P43vhM69BJfcSmnT4uYs89BMm1KETh3BHAbSVVxXy82GhTc/55x/qHBvcSEN5Egk/gxTsPf47kjRiVQBIAAJYT0MpgpCLT4BPzDW8JFSUhpO84NDxNk+nYEbGgP09BYpPS6uYhM1+vHs7+wcixtJ6nulvpXK60HgmGS9g3PTszR56etvKr0jgxdtvRilrjGjfVxGqEOiMJBUiUQLjCttmGZ0fkdabhxP7HmSZP3oTQRGveK7ZU4KpkFSS2cH5LUkJwnJM6UbcJnt5bOIK6Ns0vP+sZbSpQXfY1PLUapVJNMxYhELIAk15W0S34QUreyJBFXF/Yk6WcJS4wvRGWGU/Lq3GT8M8zPKRBF264zMBu2PXfA12pnW20YnutQC/nlcGz6NfOUGYa0q+cmhvZx1kICg5wqLmcBX3QB1oIG3nlcff0vE/kExhkCKi6BEZDe0YlGBXtnrnZzpxeeQfcesf1jaQp5itGNIkARGAIBSgiHAIYWTzsEJCoCQsIuMY3ZQohJLZ4kfsH3UeMb25vehIVwgWUVEJJ406iQwjwYrmWmVUX2nWdEsoYQbaU58qhaT3QlBEQJn7Du29H8NthgqXne7XO+atZapIdnnJ6gspjp90AmIzoniAhfijCkPlHE6khKOeyANTFDmM5wFAvzxLbjQvW2yCUCEmdvDjcfAfXGdB1Cokxv0GuIXIIaI+w8sUdJUyM5+1z2AtZE3gVIvx1SBQIRUATlsfWH349Fp/cqkCSRL4Qlyvj17Q0v7jwdjZ5nSU+GleLZm9eVMOtKsj67wt9scx1ttX1UI7gDIasn6PK1v3QImjb9drthXrY6J4nTKs0by3ijmpWiSfEaBe4GhAhH0SE8MsKnyCmL9neexjtSt72nS2VQzLki3FEVbj3m/+fDqjX3MrhgYPjFRkYRHd5I8uhxikD8EJCvTlx8ZiV/R47+l7WuPfbAj6ocDxQaTcROSO6p0k+PXp/xA51KmvoIUEI49c8hHcHEI0Dm5CyDkJL/rP4/5PuuSFl0edEt0qRtnH3Lc75xNo53MyjT7Kx7reovHZ6WhZaVN1Tcm6xJk4dMH5jxBru/PIlsEf7XD2rR7wzbmmQbnehziGSfvEc4awOFcHYiqoc0uyH8Qp7nsOZcTmtmOJ5NzmU1xrOa9PvCKbiUfKzl65u7k0tT5PKWSBWhlEwGe7XDUVIm0Zd+ombwV3WOSZVjSr18VjgguE+0+Rp6QjYPKGLI5nUda8E/YNO9uRJZDcEMcaoVKTpNfjJgVGWZlGl6dba0/jAKKkEYuA+8KBIOYmjK5S5WbfxqYNefwo0H/P/8D8W8q/nyizhTTv8LOuF0pwpNfwTwY7spS3PaFXq+1fN0szdVxd9ToCc/LpkPTn8A6AgpAmNAgBLCMYBFq85YBOS59rbG1zFnKzPPv7HiPrMmbbxosPYdddn3ru61B4xXTNzaYUzisyd+0+5uWJKx7tqyz5nVZGjSI5M+N+OG8pCCWEao3SEGfLETaLJ+r2G/6IMXIrn0EJFF9PTuny2ImJmVGuXim9nMOfIRzNFZXTKj0JH8FNpkVolIJ0Nu0osO+WSjXWSLFEIhyb5ILoLegxJnGYS+9jadoX8JRGSWKXJqzrg417A4B4D5WxyCNyDYfCjvfueU+0Q7gpRGflgEJ8KqlUkaTq9CNBpeq9SVp6vzwA8NhjmZjIKbCnxQujKUWq5wpcpoCe1+WqjbETzwPK5nrniNcs4mrB2doRcEHXZiIIAbF5YRPlCoV3Di35q8L7d5C3WKi1LVsNNLt7LE0JJqQRFIDAQoIUyM80C1SHj4RpK4AABAAElEQVQEOr0tHe4m5IJbmX2pWWMZq7unNMkOa4pS8M97pgvzxfNNtkjMUIR76fA2/c+Bb9t8XUioeEnhDVgYSXxZIxyglwck/NkZvYISxyHjIikc8IeYYcLEPke+RIYt7Y3qo88jk5xRXBQE1GhLMuUnEw8iVy4UGvaF2yvDPY1C3cesECQkAhs5FaSCzP6wQ6gYg9R8RCipwDB85mwubyn5HpFECqU2LFewlM+c10fayJHRbhHDZIxMtIwUkr0oE4wIlL73LxxtZ9O3HkFM/k8aowwg7H7RERsX55FTKp1Mwe3vfO0oDoEfOg80Mw5foNWBY86DzdIZlVBXccmritW5Jl1FhvH/2bsOwDiKq73tinTqvViyins3btjY2JjeIYQQkpBASMgf0vMn+UlCCumBECChBJJQ0ugJAdNxwRjbuDe5y7LVeztJ17b839s5rc6yyqkXzyLOe7Mzb958M7cz37w3M+dkmmyT1bBVVWZjgUAKQI1QS+yoLtashoVTYsUkNMB6UfmKH6sntwfW36/XFmq1J7SCN+W8ZVhhKGUtNBVjGpot2tTZAoffcASGDAFqalkRynVpkSCER1vVO/c3/GFm7JWpEfR75G+yIcOdCx6LCHBCOBZrjes83Aig49hZuQFn8cU7U7Ki86xBWR/0IEZIO2pAFAiIv67NnhjZh+SDHRW9IcZxKNGrx/7W4KmNc8avnvixrOh8c4QZHGYOdp6jRB5VgMWrTCIoGjglz+fGWXnmyLUvemKUq3pw5h7w1KsP46wFM7E5Hkc2zZVaxQFR9YeMPExXXAxF7JFGZDxrSCKIeXQS3bN0pgg5czbMLHLqdKYNVQnyCmEdLCMiGdiOpT8tkgnmn8OBAFlr2ytJiY1Iu2URqzFUqK+sqfVApae43nO4Wlc1ze0zVF1v8TWsO8o0Q53bM2NcszIiJsaBH7JAuJ5iFSLdY2/WSJvssp/WdNHK6JGVJ30b0sucp5DknHOlGx/WDrymFn5ouKvV/f/FH1NDmXqRMvd6IS5LsGMsHvKDGFK1uHCOgIkAdhl9bkHCYydbP2zwP3SybXqUPS+Sj3554+AInIYA/0mcBgf/whHoEgFsJ1PRUqzq6qykxQnO/hyZQHORhqDERyjxkYJY37SxMPn6PuzM0aVWAwmEPj7V+3bR80fq98Q7E66bcvv81BU0iiSGQcqO1wtlI15laHpDqV5RAFdM2n/F7zUais2z8vpcbqO1Xm84hWTtuJlj8XYx2ItfjE3vGJhLkhiXhXV9UlQKjuAzx+yIKsoT5nXEQSj4JQW3S6FbFtQRwmKBLZhj8dBwfj/qETDnIaAlmp4zI45sicTnDM0T8BY36l6/r6w5UNuiNnt9Jfiqeo5WgzdS/PY2YUt22TNw5g01EXtyFO7NxhJsMZJTYbuhOtLDPRdngJAhY2qyoiFFp0hLb8cpFDCGGw0ltA7W0Iy2BvXIe1rZPhgM5dxlEtyb7SM5HTbAwvLkYxGBJXH25CnSr46719f67jrS9MI5Q3Jy7FhEhuvMEWAIcELIWwJHoHcEGjw1Dd5aDHmmJc7HuL9fg3Aay9kSXDiDTxD0xi1FI0IIycgUpHvGf449uaNyfaQSffOMr01PnI/SgVrQsLR3PEY+BlEmQjQ4AjYVIsqEENNoJggtNTq236wo0OuLabTKbCaW4kjvaaTj8ujA9OBFEsl7sy+XiSYGuLQbJw5bT58pRp02XyA6XKIjpkNN4OvEuj5zG8bu82mvo9AYZ4YFQ0IhCE3A70ctAh3t1qy89q+iHGF3TaX2Ez2XdAcVVJs8RkDz17gDNa0tBZXYoBgp/DUtrQVV/uqWYAHPaAHYyxTrEpWYCFtipGtGGg5RjD0vV3LScTtnxA3KGPA/wdcKkyMlTMQfnWbpobWvurtS3fdf7eRW9cAanFEhp8+W51wrpcP6fVqqAevQZwH0rsBFczkdwJgvSYR2hPRZ7thJQG3pYJWhqo70WNcMsj+zt2jnElDvYD4xEWuHxjzuNIhdSN/SOfHIf2c/sbxI21Upzq31/uMt6o4m/8JY/CKov2j/AY68nlwDjsAIIsAJ4QiCz7MeMwg0+EAIq7HUDISQTYX3W/W4c3Pdm08Fqt0j0g+h78bwDMOf94vXbC57K9oed9P0r0xPmN9hfqIFhIjQsRCu3yUd0oTQEtzW8DRgMZ7RVt+eFw1U9OIdasVBDOcoCpG84Aq99jgh/xqiPPd60R5Flo34bDl3aacDGEKidn3LVvqRMsHhIwBuHyx1nYKHcgTCRQCGPru5Sax9Ai1HjL9oKs1sUOqO6Q1vSWPzlhNGQDeZDT3DTqfuLae8ZQ2B2lbPCdG9vZiG8r+H06oYkZcQsyyXIglCRF5i7JIc83bIPmxO0ZYG6VJMmj1zLiZoApsexxrawLG16rH1cv55tnM/L8ZnDVn2vQs2/Frz1lPe0sbgz1cQvCUN7s0n9cAZO/r2LmxMxuh485vs3DUtNWpBloVG2s0LrFKZDQ+9Ft67tCUL/UdB7I7FYozRSjEab65NjbivsKXMqz1S1HLv9NgkO63jGI2Kcp04AsOOACeEww45z3CsIaAbGvxFcRj99AT49TELFP7pZzHkGKcgC1qLv3nzydj2wVk/ZfU9GXpszdCO1u19q+hZRZSXZl46M3FhsGvXVPh3qR88qpXuJiI1uq9uenFzRIJtLpwxguIQ7S4hMlZKnyNFJ59pihAd0VL6bHhvWi6XtMtMH5kwLf8DUObAyJxmHu24je5a5dp1gwBrVmhhOJoSQ3BqccEXEBYWRmQvMG0cCG9/K92+xFfd0nagoqWgAmdgaM0+3RPAYaNtx2vx1x7JFNNNhoMbrJuTMqS+MNMQZjNaS57bf1iDX9Dg5tUnaVCBCE4HcAQu1mcqSVEhKPVJ5NiLLKK8kTZMH2h+reVQVcvBKprgMq+qv+1gN2h1qD4p2h41K12JdmIXXNfMNHtKNGzacrSdLNLo1+iMzdF+oQk+NTfhlj11G+p9z5d77pgYaaeaPntqe7RXENdvBBHghHAEwedZjw0EsICwsLEAPeSSjIvQb1DHOADF0aFiwKE2+1S3l6ZXg9dARLbLCONfXVcP1e185dhTrYGWlVlX44+NL3HenV683f/h40ZjmSBJcmyWAE6Fa5j0CkP106MAOFM1UYyIxqo8OnPPUleUpQToHwvvTSkuo+cKo4EO1ahZEX2fKib0zFRmo2hX6nRV+TeOwAARMKc/qHWxX+vpP0pqvR2Nvz0nR0q0Y3V0/OrJCMC6xEBDG6xhrYeq2DsHFjDsYdMed8j/bbefm7+yYG4wrutGY4nhdUN580HwqQTva5d1qA+Vul2/0Pv2sIH9C4k48AO7uUpOuyUJ6zOdGbFBbazQcXoDcOFRjMMw0Ta0Ji8MpFjyySoEu+CizVjl1jUdC1kbt5xk9VH7RgFanrl+NVaOUBxZ8fi0p8dBlDMzFqvlzYqjKmNItteiGWJOOAZfnFYGw3KD7Ke45B9Pjrn7aPNTpa0rEu1zYmzkbYLc2/8fFkV4JhyBUYcAJ4Sjrkq4QqMNAewl0+CrRR+ZGzsNnUZ7x9Z/NR3ZCeqO4rbjNYmXTDWHSt2Yu/qfQ7cpA5pvZ9UHNW3ll+V+AtuKRiiRGIuhMwy8/7B2apvhrhITsuXM+cqsqwWbg4ZpAy9tt7oM0gPFKUXEYM/UbkHssQhE5AYwDmCJ20vSY07tkfi/HIF+IcCaaZdt7MxAK4RunNnx+MNNzKJsGuvDa1wX1BosQbSi9UujgSSCYQ4mS28z9p5Rd79gBDztqhiiK1GauFiZfIEAZnhaFkFmcfqP7rQYff0CVioqihLrkGxn+1goei72uGq/TLMplq3Cn4QF0UyEbmCXI90XwG3b0VpvcT32PWorqPLVgNJLwtZixIS1UHY5bDEOWB2xI64zK841I92RER0UQusRzEkN+kDdnl697ZkP6b/IEnmvSnRcnOR4odzzxKnWh2fFQS3yDsGTkVBpSMvLhXMEwkfgbH8Jho8Uj3nWIgASVdpUmOqaYJM6ZpEHgIYRPT+zGQt7fBotxqDuafj6oTatZVflRih/bsbFETLYIKZGRazqUfevQU+NdXSOa+4TXOggTU/IwWC/AwAqzKTmbDMryQgMMMJUkkfjCIwKBIK2GVmwp4bsdTTsqhHBoNF3rJCXJay8Tj3xYWDLk3pjCf2CjTbhZIl+8t94/dgW3SIl58s5y4hABAfsg/kjpwXVY+MtN6w1xFigPQmLq4P5Ev6CgE1rzUdG1NwMkztRNWL9atPmIl9pY+vh6uZdparb56ukdG17y3Rz+hR0UbRLsUtzwQ8Tr52FI1LMykRFB90rhrVslJnoUoQrkp3YbvSNau+3DjY+MJNxQswqDrsuPEOOwKhBgBPCUVMVXJGhR4D1c33Nx6u1oX9Lc2UpMm3TN/CLOlpBaC2obCuowAQqdarDcnnVtleOPoWswAaj7LE0wkKn7K7RjqzFv3LOUvtF38WWmOZucqSQuaZu9PeQbMFLtwZCKgm/OAIcARMBolV437BXzjC9eLqAHq8V00sPj8ilUMlfruSvQJheV6zuf0WvPmJ4mozW2sC2Z6zEyvRLBUcMNvKVE/OEiDic5Gk9GsAN3huj/xU3gPL1KylrJEQCrUoymw1BRSQOPQN9mHUnSg4x/gJ4JlOzQpi3ohn9mudUQ9vRat2jas1YGSGoLd6GDcfwvOLvO7BiIm55Lu5jV+TK5s63TEd7WgwWIkqOoR6UMgOzMS/Wfn16xMsVnjeqfXE29zdzo+IoZ94Y+tVieKJxgcBQ//bGBUi8EOMHAfRx6Lao5wqvTIgpHKrbjc9Ie7QsyuGl6ikW8o9dnovN5bFCo/VwVcS0VEke8rX4MARCp8P1u/dUf5gckb4k/UKH7KRAUVD3/Uc98Jqg4MiEGaK5bpB1mARQmCD1VNzheMZHdMOBMs9jnCAwShhQx682RCFRSpxoX/UN82zPYr3qoOBt1aoOEdnA3qSH3iY2sudFOXWGmJgjRmGdYec3FHEYhMZnS5HxYmymEJUYpL5m3RHPwY1pl6IbSt9ZghnMP0LqJAhGMIRVm/lJ0Fk31i2WX+KPqswQ1AaPD4sSBcNX7oZ/KayIakObe39F/buHEd/87IA6ev6EiMnJsUtzIicn0woAiKD/iX92RBqMO1OcGGcTvj8pel607WfHml+qaJviUj6REcEHxIMBMJcxVhHg7X+s1hzXu88IoGvBH3Ux4Y4C2OjhSD0RwqyofLvk6HOmZySg3kgUEy6dBkLoOV5reAMG9jkb7D6vc7ZmsRs9WAkpZMdOmRg7xRwZmTh4mg1dlbMWKjOu6JyKf+cIcAQ4AsOPgCtecsXLE+bi3EW5tQb5Gy21gurTKg5oR9dqVQeNqgJzL6jOmpmEUMKGWKItQnBGS9E49MIwfG5l2qWIKkYnS+mzREkJ0gxzRqyzCP59MBAwZyAFHLqLP3Q+0XOow6EliN6Av4q2EcKhmv7yZkbLkWHTphPu3aUt+8sbN52ImZ+ZdM1s+JdSr0WWSTJHDoZSnWSQ+MtTIkq92q+Pu/9T6bk8xRFvG4Q5307Z8K8cgbGCACeEY6WmuJ4DRaDGr+OvT4wQYw78d7h2V7QjPikyDSvrBqoE9XDUt8WcQyv4GzYcT/vcIjvWVAz9hWypc4V3lqjIokI9se73b/u7euhtCXt05ixm5sGhV4TnwBHgCHAEekKAbT2Cd5Qoy0IMSB1OMkw1DEnKXmBbfKtedUg/9ZHJEs7gCVgUWFuonfjQ8DaK7kqtBm6KdPnL9uITE4I4S9a++LMkOG+ZlJRvPuQfg48AeZWa/Q31O6ZJFn2PLdYpxDjtqdhjRoyaw1Yhtmf9v6saN5+seOojWBFry5vq3j2SdMWMlE/Ms8XDMfiMWm5PNNB/SUXhurTI5ys8Oxr9bZoRPziLQgaqF0/PERgRBDghHBHYeabDiIDZMYGI1fi16oC+Ir4P5rjgEgpRjHHER9tpm76BX+iBoJEUFRG3alLjhuPuPWVJl5kHPAxcdI8SGrw16069DK9Xl402k0A3rXtatKPrBJsdu/nJExYMXbfbo14Dfdjz/HHPTwea9/hND9xQuKGZmA8XNV534SI1HuNZzpztbIA1RgqW06bjr+dC6/Wn9PIDesV+vaWapsHw1tVVwdskNlUGPvobhAS2/Y3exOwZcQ5Rnnmlkr1IyjpHsEWaC+TwnH4D7YSm5wz5004IdGzQYk6BEpB0WfWKu9MuMW5ZTtTstIb1xxrWHcfpFzWv7G/afDLjS0uj502QInEyBBoA1cdpiQb2hc3wYoOZpfH2Yo96296Gfy9IjJKZ7XkwMxqYmjw1R2CYEOCEcJiA5tmMGALogajbl/A/3vGT8foPzliGoRF5ICGROaAII3p4UUia7JQjJyURIdxZmnjZjKHufNy+xteO/93tb4qyxSzNvDg40NEDhrsaPlT2lV8VEyaGp/yoi9Uzaen56agrzKhRaDTgNhp0GDUVwhXpGwJSwkSsJJRnXmG1IpxsoTeU6KW7BNVvtNUbDSWh9EKrPKgVvK4XbZFzlwmR8VJcppQyhQ44NYlI3/LmsfuOAGPmcrQz+erZsUvzsAt38+YiuJUW/fxthCRdPdMxIS78frtP+btk8eaMiF1NgYMtgQ/q/Zel4LylDtraJ1E8MkdgTCPACeGYrj6ufJgIGPAG2d7kZ7H78LYXhb1VmwZ3VpI6GxAyWXLg9N5oZ8vOUl9xAzslLMzC9CNas7+horVYN/SrJn0W52eY5h9BK/wAosSIWDE6tR8yR1USj8cTEYGjkDtf3YV3jjfuvvt8vmeffXbSpEnLly8Ps3DAav369U6nE0ns9uFwY+5BsW3bth0/fhyaZGfj6Dx+cQT6iABNu5lepe3psKpQSp4spUym92/Ai11M8cSii7q7Ri/ZEdj+j0DBGpqec0SLrgSKnzEbi6utaO3C+L+DjEBw2pZqTbQnuZIumxazOBvWwqp/7ah746C3qC7p2tmx52YLypAMWSe7bJNc8qGWQIVPMydnQ+cKBrmkXBxHYNQi0OuaKPwwdLKodH9hageP8T8dXIpTfdgfDr7tORkJhE+QoVUeVrf/QyvZLRg4A7WnjLpWwcyb8kWO7LPreCMWSoU04aHS0RfSeBi1MbM7DWdUTT8vswAoBCq6/QpW9HCWqM/KQznVMBoCUFv4fJbLfOOHK6TRVx9u1DDjoeuj8YXompIaOSVZ8/gr/7WD2gY1kqG63L4Gt68eueDACXMUJKp7/6Nu+rOZLzKmCdGec0d966dfmqYhEBqz4FDVWWT2FJ+4zoyD+Fa49dSMG4yPfyyZiGBlZwWG3jz11FOh8UmEef31r38NjcbumTR8hj5CdKYGbkLDz7y3YnaSgJjWoy6F9Pz0zIwGEuJ2u2+77bYnn3ySCYGqXaoUmkVLS8svfvGLP/7xj2CGoeGDcm/lzkDoVSbY7Fe+8pXdu2k/J+uyhCAk9N6KwG84AkEE6DWL4c1pL3v24qUXIMhhTBr+MBfG/uAooSz5nOOmx+w4+XDiQsHXYtQXa4ffC6x7wPOnK/0fPKq31tFYiNpdsBs0myDeFSyAN8iBNr32jpHqR5AkHM6U+vG5+b++Gh1My4GKk798t/HDk4S2+TfQzE5Pb5MErCRBXe5pCiALUoBfHIGzD4FeCCG97cjhrqcrOKEiGnr5Ie8/Pu955JK2Ry71rb3P0MyfVk9JBVFXA+/91v/R05iZwxRdL2PSrkTh7YBF5N7nv9z2KPK92PvWPYavtauIIxZGnRDrNdy1Wvk+o6liuFUhjDR/O87wEhyIAtqp7Z7Hr/E8fDH7871wZ8/NYyB5DVJa6mi8ulDgViNlYmK9DfhDsjWEVdnX9MaVQuL35VZJiIxdkYdDmVp2l7UdqKRusA+a9SEnMJ1ab2Wzv3F64jlWMupWRV2Kz1EW3Cw5XAjvuQ+89dZb5dMvRVHuu+++gwcPIvj222+3JOPmz3/+c0xMzG9+8xsSK4pf/epXExMTX3vtNRYHA6iqqqpnnnnmuuuuS05ORvLJkyf/z//8z4EDB+jH0h7/1VdfZfHLyso+97nPZWRkQKDfHzTzskfss6mp6Wc/+xk0sQKZnDfeeOOJJ55QVZWF01DOMN5++21kCuUXLFiwZ88e9ghZn3vuudAEelr5WtJCb8CsfvKTnzAk/vd//zf0UWVlJdTIysrC04997GOwtlna4ub9999HIB4hwk9/+tPy8vLQtEN6f/jw4czMzG984xtDwfTC1Bw1gpgNDQ2oSlR3TQ1tHdnXiwlhqXCP2uyrBB6fI9AlAmhNaKBS8iTbks86rv51xB3/tS3/kjxphRifKciKuvff3qdu8r/5C3X/qzgjUXdXirpGr7agLIySwBXbv3WZAQ/sOwKw8Lqmpc58/tb4lZPkaPvJ37xX99Yhw6sOOtAQODMakwTijiZ/nd+knH3XlqfgCIx1BMKyvxs1x9UTH3ZfVENwuJQ5HxM0P/7MLhoH0PgEXRN7OchbBGk0EBNp8HrFXz8u/JTBPIl84g5D3P7K6UfW4SdBx6H60ZcEcIZS5jmOa3856G+07nQJjphQNcAZQOsqyOGAcve3QA52Wwnm6HN3l/WoCod1sNynLYy1RxAnhPLhYUBRh3DUGXtuTv1bh9uOVdevP+bMTwQ5DE+tvkHr130lzYVIMy1hvpUSFQgUlNSpUspU86fTCyQgM/A/bG5u/s9//gOKxRggPPokqZdJJStHa/gOLnTXXXe98847Cxcu/NKXvuRwOEClQJ9SU1NnzZrVKT4if//739+wYcP3vve9O++8k7kyQlTHYEwQQOcaGxtfeOGFH/3oR2B6TEJrayv4an19fXV1dXp6OouPhFAYRA50tFNGN9xwA0KOHj1qhXd5A0NlUlLS5z//+X//+9+hEbxe749//OPXX3/90ksvBft68803v/71rz/66KOACNG2b9/+zW9+Ezr88Ic/RGFBU4uLix977DH4Z4YKGaJ76AYEoqKizjRphpMjQNuxYwd4MkoELh1Oku7ioOVADVS0xdK7i9ldeCAQAOueN2/e9ddfH37b607akIb/97//LSkpwQ8HcxlDmhEXPggI4H1ovXzxZrRFKPNuEObeoFcd1utO6CW79PL96vGNQuFGMTJBjJsgp00T7C4pbYYYESfGY6kh9Sv8GnQE0PvKUY4J3zi//p0j5U9vK3tiS6Dek3j5NFs8TWIO1oUKPz/R/ugpsS6gP1/e9uWJUbwyBwtbLmcMIRAWIdSOrw/seoGNooNDadOoDh9Nc1oNL0ObnL9KSptmX/lN39rfmN75+EGxgbeVwlw7hW+4yExD/wuKQ5l3o1F3XEyZIboSQ0fpZjIWOwRPGsWaA3qIN0e0GGOJSXn2Vd/yv3WP7mk07ZlIxQiLOeg186FE4V5EAIjvUBZQkxSlzE6/aESKEPqfjU6DCaxYlMAMMxOLoLtGax0sokYt2wg7GJ+iBXOiDonlZlIQGvJSESkG3bIEFuSUc8cFHTqKGBQd1M6UrjiVeR836k+IKdMI5y4uUxEqDGWG56ZEhkNHVlBQzlnivO4+mHMDO5/Va4+ZeXVEMAWboqC4GYwPSx+zLJaenVJ1odNgBVENEphivF1SyI0oXA5DCYfwMuRYZ/INc+AMgwMJA9Utjuz4ocgQSwdbA80ox7TEDkIYrGazbeFRr7+Pa82rtLQUVjWsTwP1YsAwBkWtxbzYj4Hdd/kJTvKd73znvffe+/a3v33LLbekpaXBaAbydurUKZC3TknA5eA3CK549913gzpa9Ik1USvypk2boNK6des+85nPwPrEdMDXvXv3QvixY8fYiBypcF1sXh9++KFlo0MgiCgu6NArIQThBC8CQYV8SwHcwP4JL0eU6Je//CWso5dffvmnP/3pv/3tb/PnE+bgn7W1tf/85z/PO+88OHOCFP3lL3+57LLLbrrpplAhPd+HYht633MqPJ09e/Zzzz0XFxcXGYk93MO6OsnftWsXvEk/9alPhRLCTnEsud2FIwK4NFoODJWodyt+n25ACKEJKhrtsRMh7CHfPmVhRQ4ViHuEo6lYT3u9gYF68+bNsDxzQtgrViMfIaRqOyqZ7WiaOtXIO8/AIsPqw1jbohVuxJ404Id0eLorCWMYHHuIXU+lhFz4nUqxme3vcGowrO8zS9eHljPyaIwODcyOm1SRI2yJl02TnErJg+9Xv7i7rbAm+5urlGh2LPDgAJsXqVyfGvFEcUtRG2y/o6P8XAuOwPAi0AshpN8FrG6elmBnyH6gWI5CXA9vUAmMgXpN3W/426SYFGztJUh0kgsRMupBMRbFj0s0MAInhiCRQNPTB2kY6bLNuRYxKG7IG5liUQJkIuEf+qrj3uyU6QHtGAk/SLZrMN7IUkIOSCmiUc7mr9lMxZKSZPNR7x9wrqOciQ2ZmpIOtPAMGZGCAlY5Ihzi8GdGoUcQ277MkjI0A1BQM5mpDp6a/+EDZdBxEhIufJiFpnsqIGVoPqcA9g3KmPkR9wwWy3wUjGpGbP8AeKbyBDxFp86KxFCwqbptzvWUp5lHe6KOf00N8GGKNjMlGQYrNaJRSnaJ9kgxbYYQWSXaaYqOEp5+sXIjjPIPZk53TAjxMqrI0yv7dAlnzTeqnNjluWjkbUeq2o5WOybGhUI9qDhQfTqkcPlAP7K2rE9U6VTdVPuhcliVr1279sUXX7z99tu/9a1vWQQPBGnmzJksidUywA9BGtesWQMCAA4ZKqrTPSyECAFpgSEOZkxIAOVALnAldblcIIQrV67slKTfXy31OklAdtjV5rOf/Wx8fDwewYR1zTXXwGAI+ock8Be96qqr4KQKggpiBrfJf/3rXyBpIITADUAhDoMLJAf3ViDjPNZXBjIi4IKtEhnhphMv6qQYviLT/Px8M1Hwh4y8LFEsfqgQSGZPWaAVGYEsHCGQCYFIC9tsdHQ0vuIeT/GIZYQbdiEcclhk3MM8iHDra3ssaiqIBgl4ZCmDp5ZMFmgpwG6QyrqYTCbQkmNlxOQg8pnyrYS4YReiMSVDU+ER04fdhIpidYGnFiwspvWJJIgfKs0qI8L5NaoRwDjHGSdFxIjJk+WZV6NpaEUf6rUn1O3/NNy1eLGi7aoVBegvaeyB0/YW3yIl50s5S+kr6/BQvOAvb1QXdNQqB4hFh5J4KXHC4t+ua958qqj+zUn3Y+jIflgDVRyVgyzSnXinSdhr9JA7MCN6hHfVGmiReHqOQN8R6IUQkkCM4ANt+MHYFt2iLPik4Gv2PP81sa1GmX65ffW3tKoj/rX3Gg3FIpwSQy9vi7rz+cCR94SWKiE6zTbrKmXmFYIziggHXYaoBgJH1uKYoGCAMw57eQkJWcGviEE9t4TNULDmTSvcjKNmdRwyq3rE2CwpYxbcNrSDbyqLPk188vSLRhZVx9UD/0Va3IqyU5l7HTHVcC4MxUr2akfeIQ3jJwqaqh54zdADytwb4f5K9y3VUup02/L/kVPNzco0v1ayRzu2VqsuNJrL4ZApijJ1G5POl2dcJjlQXmihGTWFOva5bq2nzgO7Y2AHHbN81F/E50oukwYQkcNTw3BX6UUfqSc2wZao+1tFR6ySPluavFLOXiA4o00ADb3qqHboLdMLVJAy58m5S/WKg+qhN/XSPUii5Cy1LbtdoCIDZ79KOB+gngoXcJ55hUQuLqddhreFQC76kDbjbiqlZ6DZaTOVKatpHYW9D0SC3tAYBwXatGPvq8feN7BsUg+IjhgpeYohK0blQdulP1Rw1hO/qHrw8xLTbp6PfWVaCyrjlueJEYPfD6FVBTQvjUiIjQ/JBRsdtjCxRIODwWRnfQ29ARGKjY2FH53FBtlTNBnq3M1xM0Lg5fjAAw/Au/L3v//91772NfaUfYZKwz2430cffQRKCaMTzHTgXTDQgRwicPHixdiVBFbNTkkG/WtbWxuyQ4mmT6fj0aAnu8cGLTByolAwPMLUiUBWhGnTpoGpQjck/Pvf/w4X1nPOOWffvn0gCbAxLl26FBy4oKAAJkSAgMhYk9lDHEDE8u2uXCdPnszNzUUFsT1msKTwt7/9LVxAUUdwcAWZKSwsXLt2LQMfcCHmW2+9BWved7/7XRhmUQtw1oVwGFFhmkN8eJBiKSZkopogCtQXOoPtwEX2//7v/+DcCwL/8ssv/+lPf9qyZQsYIEyLqETEBz3GYlR4HQMHCMSSQuz6gw2B0GDmzp0L2+2DDz6IsmMiAE9hDISJFffQ/+Mf/zg8cjFrAB3wCLZWQAq+HWqxRDjY6UsvvQR7LBpkSkoK1EYRQNJgrAOGKCMQ/sQnPnHHHXewJaNbt25FYRET4SDtM2bMwALRG2+8EVCgXW3cuBH4w8pns9mWLFmC1oV7xEemQAzlxVNIe+WVV3ADyznmAuB4jJJOnTr1oYceghEYKiHhu+++u2rVKhi6//CHP8BTGnmhOFhYC5dpRqQRjV+jGwGiJCa5o35UgcEw7zwQP8Hr1ioK9MoC9MiCv03wNuruamyIQGWJSpbTZ0rpM2X45GPrmsi48D1TRjcUI6Fd+7gw7vxJ9rTYskc3tR6pLrx7TfY3LjCPuR8EldDz3Jbl+n1RS5lXL/fpM6IHQSYXwREYWwj0QgjNXhvTX1ihh/lbGa9EjGHx28Q7kfpzmv/C/2Sv01V/qB+eXnXIqDwEJkmjPHcFHQKrOGxzr0Uqc1AqEmE48Lpec4ThJbqS5YmLpYQOooJoYFN63cnAlr/qJTsF0CpkhXybStTGEtwgZx1ZWISQFMJF6gUOvxM49BZlhC/4iEoMlxAagnboncBREEJBUiJ0DesbyaCn7vyXoHqp0Chp+T51+7/kq34CwXp9sX/DA0ZrjaA4xYRs0RGNPWNQdr32OGAR532MUjSW+d75FdFFusCu3b5X/o9uSDdJWXKbbeHN+Ipv0BfLFVBeo2QXeCQeUxRfk1q0SSzfrU+/TFn8WdHc/wPHJakH3wToJKKtSa8pVA+/LdDqPkqileyQimYqCdn4CsutWvC6UR3EWTBxFs4khBUFgc1PIC+cyUuLymQFyOulOwN1hYI9Us5fTrAyNPFvLxe1GvXQe4EtfxYCXqyvkF2JurdJq9hHq0xtTqOlJjiZ2i7HrGoTgvaQQfyXFKcLSlH10R/NBvbhYlVlJrNu+5C856io+OhF2bVrCpq2nEy4bBrW0FNGPacJ+ykjgLSG0F2I8+hlSTYhoPSDlQXTBT6fWC5l6QXjHhvxWyHWDdw4sWgQI2YrhN3QmyTkAtOA3Q8r3zBoRjB72ikOi47FeKAZGN+ff/75jzzyCKgFOANcUqESOMBFF12E0wsgrRP/DMlqEG7B60APMLiHrYxpC1XBe7HiEVZKEAAEWmY03MOWiKd1dXVQkmV/4sQJbKsDHgtOBUpz9dVXw5wIq+PPf/5zkB8WByTky1/+shUHNAzgYOUknFT/8Q9zDMri9fiJHLG7DMgnOAm2twG1A1kKrY79+/cDwB/84AcgMPfcc8+FF144YcIE5AUCiYSXXHIJNsiBuyx0A/E7dOgQkoNhgv7BBRfmXESGkkgLCXDfxfY52EAItlA8hUttqGrge6CCIGCoOHAwMOfHH38cEayWA1SLiopAJtGcsOoSBBW8C/664MYwwILUgVSHCgS/BeP93e9+h8YA3JAjyC0CoQyS5ObmYjEqvmJ5JzSEMswoDQk7d+4E7wWnRSlA58BLUTtgrUiVl5eHxZ9IhfKi4Cw7QPT5z38e9A9AAQpQ/SlTpoAJY5tWVARqHLR22bJlqB22hhDmWbRSZuXGJxg1gEJ8VDQKFVoEfj86EQh987D3VPBt5YxRcpcK+EO7hR9pQym2nMEOpeiCMTbQjq7Hn4rjK9Jm4Lx7OXmSlDad3ryUOCjAJJqjs9CjSCtz6Ef6oJdwTU3J/NKy0kc+aN1bWfb4h+lfONeREWuiGYS0X3oH066It71Z7dvZ5F+R4HCYDm39ksYTcQTGJAK9EMLgWwtUEJcM20X7W4zd4dUGIqQ4iM3IEBUyyAz4xJzF9rnXY7GZuvlxw9usHnhTmXstIprUx4DRSZ59rVixF3uEGtXHTfBCkrNofo+69xWtZKek6UJijn3+TWJcmtHaqB1Yo5XupNinbxwP4UQjsW9Exhxh/3/I+BKZLGefI+WdZ8oP60OeeaXeXKpXHjRUj23GlVL6DP+Gh2CZFJyx9pXfUA+s0ct2aaXbaWsWSZaiU3D0LQyJcuY8MSYFVkS9udK/7kGwVu34Rtu8G8iD0waInO17kJkslY3T6e0mSliSbvITKg7I255/Y/06fKeUuTfJmbMFe4TQWBE48JpedVAtWAMjmzJtNWLK+SsMn1s7uc1ortQr9gENKWmSbf6NoKOB/a+gRqTUqVRV+N/uUmZfY5TvN3E+RuB3deFccmXWlaIjSs6YBSsiFNCqjvrf/pngadRrjsq5iw3ZYdoYu0kfIpPVonp0raF6pcQ8+wXfFKOSsHWQXrwj8NEzRLCpOXXIQX3hC82/tneVIcIG5ZY0MjPp+NfqYHrIgCWrbKXZB/OigHASBqOH/Y8zJyFmWS52l6l5aV/k3Reb2Z1Oj8IWFRqRcT98lrmLWgLN2GLUJqES20tDmKNEVKiBX9g65f7777fkwAyIEbn1NfQGw2jsGgrTUE5OTmh4p3uM9UFCYMABCQEVgfWP2klXqMCSBr4H+gRj1/PPPw/mABKCofYVV1wBsxtMZ+BdGKMPKSGEBYnpBs5gZQQWAc4D9ssIIb6CNLJ73IDtIImVEJYlIAYTFhgaOBXbDgeWJRzHByEMHFA47KeCOPCMZXFQNFicYJxEHIjqhGGXX0FgYPgCIwLZA0cFEYVioUZUkBw8wr44oHOwsME6hxCAiVoAawKeWAwJ7gRjF2xl4FrYLxRMFWqD/OATRlHUHVgiWDostNATNQ5pMKOBGYYuYkSmsLnhmEFY0sD8AQg+f/3rX1tqMxdcMDTUL6BAfDAu0GbwNKgES6O1gRBLAt4IUWiKQG/ixImIjEWhUAYmR7QfEEXQSJCxRYsWwV0ZkwWgbSwhkvzqV78CnweMKBcygnkQbRhpYWwEJ8QWOFiyaGV3wQUXYMNbAI7axPZIUA8tDQVBckQGvQQgMAxi+SgegTrm5uY+/PDDmKrARjhQDC0ZDBzmTYDPCaFV3WP9Bl5LMv4y52C/AHn6JYbHrdcd14t3Yc2hVrgJwxjNGSdmzrYt/LQYlwFnIJSX9SjdvNjGOh5DqL9rRtrEuy46+Yt33NuLdVWf+N3V2HjGcs4dSMafz3a9We090ab5dIMTwoEgydOORQR6I4Q0fDTgIUnzWzlLcJp2SCHN91h8JmxcQkuNnDol1HqC7ZvtS78Au5wYaNVP7dAK3xcaTtBwmhLhPSgass02/WJhxsWwtvlqjneMUtszQAhO/tGObZCwcWhErOO634mR5jwQdp3Kmut751791NZOu5iyEbBOxq4/gQxihbf9wu9IcdYi73bRPfyL8XLGDHnyxXACQSx57vWSM1qMSoEXpZy9UMk7V687pZXugh+m4WkRXDFiRAze74K7FkvMNXJ/NYSoVBxoazQWs3NvIQTHHDk+BeNbq3/jw3BGFR1xkV942RyW07JIwpf9A8tea51+bD1WKNiX3CHPu9Z8IAgpU+xZ82BUhF8uzIDytNUQKSbn2VZ+1fD8SnNXGAGPMmGx48qfGDY7uhllwU3moB9gkFxDsSnTLjWmX6Jt/5e/5hgWfXZZeik21bbkc5jU1Mv2gL1DKSljfpCh+TwCCLmMYYypbpfpTw9EtlgFRUVrLIF90jb1Yiy+h6uqkn++enydlLssNDq1B0jW/OrJzUZDaeijQbs39EjNuLOmbVKbLLc5/FLHiqYes6AG5W4+clGtmulTUw9tVsXN1IaH4Eqa1mprKFKrC9StFWDjGCh0SX76mDPpjykJtWbHxc3abFG2734l0M6ptMoCSUBGg1MceGxaB4ijoSQkJHSnP6w3oHlwz8PovLs4KCZG2+A/c+bMAQX65Cc/iQ0bYbTpsvhgLKA0GOVjUI61grAyYcwN0gKKBa1gnIGVqaKiAo6LXSYflEAwK8gH0cWFHCET3ACZgtKwfKE8DFYIBD/EUzhhgv/A8xDerUyB3NxcFBmMCJ/wEYXmgBEUBVQE7JHFAdnAU3AbfIKYIQ4zS0KsFYfF7OETFlokB/jMmAnCBlsWzIxWEoRAK2QNrgJGdOZ2oAjH0kcQS5AieITCpRM2TGwVg61T4HIJEyKqA5iDEMKgx8SiLKhrAMJWeLJA1BGsgmDyoIsIQXFQ46GEEPbVnJwc0DA8AjIoYw/FRBaYZYDFEqwVRWACoQ+oHVxz0YSAGPgbLhjuUEewkTI18AnAQeMhAdgiO+CJegSZBKkDK0YEoIHdgKz4CAQy+IqSHjlyBFlgGsJqzFAVXNSKzG5gVAQ5BM6wNFqPAIh1z2/GDwKYKY7JMGIFOXWagPnltgZ11wtqwRt6S5VxuEI/9K4873r7eV801/mjxx6cN/D4QS+8kjizYvN/c+Xxu15v3l5c+Y+dE768FGOWgfdmqXZaRvh2jffHk2Nieh0dh6cqj8URGCsI9NLkzbG6IMUkS7OvNIvUbtuiL/QQ1h5l4gI22UUEoL3cYnSKGJWMd50oKmBNeGIOatrffginXy9LR4La03X8iyA4YMA0h4QKXBbb2SDJtEfbFnxStUdKoJTWRTRIpH3Aqg8LbQ2C3alMu0iKTTffERAW1msXEkBmNMalkAb+jVZC2U7ag+pQOWkXGcquvljd9k+QHNpKJzJOlBRB8xleN8SYRaIPypjG5fjE/+Y3CCG1ySMBoxD6QAIENJQZOrySRP/mPxmbH4V8hFGW9NxM6vdRUEdpSD76HtuF3zQUWnvGbCgsN8oOf6bC+Afepe14I+LpF5Y5lh9Utz2DYxLhxGoWRDYOvI6klAEKS2JMBU5P1+U3aAh1sYTS2FoObqkdfht/VERHFMyYcs65gr8Vbqghac0igrhOWhUSOKi3htHm1R711F6S7LhwWiyZc0xse8uDSl944rn3hD2L0yefM/MzBH5YCXsTfMZzraKp5d31rccqpX2TM+9YisZlNogz4vUxAC1hT9Wmp5pedKXH5828XElcZMk1Nj2mntreR3ldRLcEWs/ODLEe4QYGH/AHuPbByIOFVZbVBeYdUAhwOSsyRuHwD8S4HAvJcFoDDGiwNVlP2Q3oCvwVMS4HG4QoEBWcBgFygpVdoIiIg5VpsNhAeKeEPXw1f5I9PO/iEWgG+CcsUXAFhFUNjAtjfZi/VqxYwXgs6ARW5cGklpubC51hLsNqN8REQiaOgYZP64aFn6kMi3BmeBdqdRWE9XKwksGsh0/kDujgzQiZEGhlzW66Sh0MwwGSqEFwbzCr1atXgyLefvvtKCnWE2LLHNAh3INlwTkTFYqMPvjgA7As0DNkZ2kOtowLPBmB4MkIDz1JkuXUCZ8eVILOIHVgubDvwU4LyWCPABnMDQwNN7ASIxASwMZRfMtfFCEsF1Zqph5S4QIy4O3MqokKBXSWAgwuNDmUFNnBgIn2jKdYSYhUYJJWTCYW5B9sE7zxyiupJ0WjhSczfGWtaPxmXCHAat3sP8XIeBxpaF/+JZw7pR5+T68/qe55Gfdy7rnypAuk5DzM1GGR4bgq/nAURlTiXOmfWVj8wIa6/+7HQRTOnESzgx5Q3rGKdFGS/Z0aX5lXy3SannEDkscTcwTGEgK9EEIMf3v4jbGXHopLcTrFg1ugJDMegWcYmBJLCI0Umobxo9Nxo+eYGjd5CN6YlnjcIAzWP0f6TBqwn34ZngaiNNBa9eHlC5d9MTHX0vP0uD1/C7IqM99g5gwLypTuDGzEEtj5nFa4Ac602GJHylki2p3YOUbd/RJ4KaUJ9gq4MzU1uwcKZrKJCjJEMBojeAxNxScSSvkrqZ+gTBDFjGTe0Oq+IIoknu4RbouApTS0jOxZUDT7BzLNGybPTGt+mN8NXwucOfXyPVhAqCy+RU7KRYn0tqbAm/eYmZjyWOE7UvZwh6gG2Lio2LViWkpBS0mbK2hlRfkevfIA3FxtS28DP7REnNYwrNBBvAE67frj37Czo4o6Ur9bEuUoeyyrtSC2g6ibKcqRFhO7JKftWE3T5qKML2JFCipmcLJ6v+Q1SZTmpy6fHDc7VCS8mNCEByePbtCwMA99jmExvPKw1QcsS7DbwAaIYTqcCeH6CAoBB7zQyBiLgwfCjoRFaLCPYbEWs7BZcTDQx0gdhIRZmeDKuHr1avgrQjKslIgGtz2M/iGfjeCthIN+g81gYPyByyKIBCxU4KUwXcLexQxxYKpYM4aywAgGQgJ/RdjKsNdol2owTtLlox4CwywgnD/hUosVdImJiVhDCGstrK+dzKe9KgDqhYNAwG3gbIlagwMkqCA4D8AHjUetgeqgFu69914shoRfK2ocrAmuqqH65+TkoHbgmYlocC5FLWN3nNAIofe9qoTIaAZw7EQtoDiQDKoJL1a0GRBvOLLCpRkLSqEGzHRoD/ARDZVv3bNGm5ubCzKPgyJhoIbZGcY9LA7E9j+doqGw2FcWsxUoAuYgIBw1jgYAcgirZmj7B1bYYgf1jukApMIcB0y1mD5g8wWWWH4zvhCg96v1jsXaDaz10E5+pBV+oNcVkR9p4SY5dSqWdYgpU7FTOnyLpAnz2DCBemZ0VNQPWALGFzYDKw3DxzUrPXZpbuOGY8X3b8j+7gVOnNtkwtZv2Q5ZnORSQAjfqvYsiiMnfBN9XgX9RpQnHEsI9EoIR6ww+MFLsWlgd3B5U09ts/mwnwpt2mlSG0Pwe8jnLWkSzFlMRTzAnyjZlJlXwhlD3f8yNncJ7HjWvuqbhsM1FC9VbAdq1J0gMueIUuZcJ8ZPwGtD97eIR9d3Rg3EAsrRhaMrAubgxmQlQWbI3joGLS0Am9UDiGM755Ps5AgUC4siGTUc/NcSMUqYz5qYi6yUlG+bi9MpwORxzq5AS5f6lSVorXbwbVQQukABiyRx+qKnQS8/ENj9ghDw0PpMdzVq0wRkVH8UNhRUt5baZGdWdD5ZWwePp3UqNsaO9sxYySbrnkDrgYqo2emdIvTva1B/yZkfN9OuOKkVtv8SlMmrAruegzUbVlzRGXRcDDOX0JHumSP1M0NCxeIpzujDcBlDZwzK4Z0IMwtbUIfNPEJjsnuM8uGa+IUvfAHxwQkx4rdyhygM+uHdBzMgjHKIj09sHNLc3AzHRZY8NzcXHn2wGsFOZVkjQzXEvSWQJen0lQX2+glGiv1gYNIE8QNfgrUTm5FYC89gUoOeYE3YnBPsAkwM+98wEtuD5D5pEk5kFBaZgndhZSZW4oG6gGADIoZ/J1h6UAyP4GgKQotFcaB/SIhSo8jgeHiEWkB54U369NNPg23CAAhWDEqGSkccSyy+AiKY1FCzYO8w08F9FB6YVoTQm15LBx2QC/a5gTUYplq0KxQKXA7h2H4G7QQmTdBg5nSKaNgsB/LxNDQXKwSTFNAN2mKdIaggWBwMjJa5MjQJWiYMm6C12McIbQyPwH6ZzyqLhixwwUcXbQPSsCgUZYEamPsItYeHyuT34w8BtAGid5HxCrYfn7hYaKnVTm1Tj7yHfdqpcy/ehcMMsd2AFJUkxU1Q2DrD8YfCIJaIJjMNJS4i/bbF7j0lnqLampf2ZHxxmRxNvga9vi66UwTrBnMjaVS8ptr74ykxZoffrzFQdxnwcI7AKEZAxmxxWOrhdQZXSizn87eoB9/CHqFyUr48cRHzJwzup4w4nib18FsY9EsJ2TLO4YEfI3YTKdnJdhO1L/wUxWRDUuyQCWk4Zap8n162l/aYyTkXe7SQQFyIhg/s0VJ7Auv3RGzuXLJbSsyXnLGGp1E7utG//n51z0vYxJJWNiJff5tW8BrylbMWwj3DNvl8o6bIaDgl1J80JEXJmNmRb6+lhUqVh7XibRj/K3OuEWVFPfQODtsAWUJ5sUBRL98LGbbZ1wtqGw7DIJskVI3NFLFFasBLp1Yc3yB4mrHjqG321aZbqOnJqatq6R6j+phuBCRXipQ00WiqVPe9Enj/EUwZyhmzJbBW2WbUnMCupNiTBosV5YRcwRFhqAGjvEDd/Xxg3e8F2SGnTaMSADocX1H4gVF/SoyIV6ZcQG4nIdBRHHa146yV7QfO8NVUQnDGi5NieZrVff+l0ZGvVc5agA2yDXRXxzdpJzfjMXaykTFtabqkUhYQiMMx4At6cgsoMU4jtIH1IRx/ZuUSyUWFfPCYfmoboin5y8SYNNQsdlrTsELS2yRGJsp558GRJqjhsPzTrBpPlrTlu5RLkp3hLxYvdRfurtnqUqJunv41QAVmzgAbApUN54S4+rePBOpacXhnzLk5/e7SQnUrbTmxu3qLyxZ184yvIRyrIzqe2iJxcIug2OXMuaIrsSO8tzuMlTG6xWVFxMgeI2+YiZjO+MSFMTHMR2A+uMdIGtsw4iusUvgKC0lubi5MKzfffDPMSjCnYI8T7LoBt08m04oPNogQpIIFCffYIRP5WrwOokCuQEhA/2CnYmnh14evluEFTxGCVDk5OdaAnqkE4yQYCLPgdZkvC+zyExLgvwqDJFsxyOKgyLAEgrXC+gdzEMgSmCF7BN6F4qO8WBeHbTNBcdniNDyFKJA02KMYiwCTgX8pKw4ig3exAxIQB2Y3fCI+dO4UBz6KVukshZE7nHJZvQAH3DOxWE0HHVA1qDWYtmBBBQ0Du0M9Qk/UAtwpQeqQETBHGfGJe6iH+JDD5CM76IZqxQ2eohJxWeWFhjhZBOZByMQN29CFFRaFmj17NqNqqFm40aIWgBjsbCgUOCTMjJAMsRCOENYG8BVGPySEYrhYuRBoFRY64EJdowpA9uC5ihsQP7QE6IADPGCjQ3aoBfB2TD1ACAaOkICYQI/VIySApKEuoD8qAvrD1AwFsF8R2ifzWMYnasSqdxQZJ51gAyQ4puIGvBe+ymjhUAzCATiWLEIUGi10hhUR+qB0MFdiWsRqyVYp+M14RQA9KVoXm1EU4dQTlYgXLw4Hpp3DsSF5RIyBsUqgTXDXYYtyDAxwoIVoixRc9MJEyvEKS//LJWKgSNhIkfboWRn17xzxHK91TIiNyEeX0X9CiLR4ne1xB0559BhFmhfb4ZvWf1V5So7AGEHAXJ8Whq5a5SH/e/fRXin0SqMLbyncSzBqzPmY/dzPYWSplR/wv/c7o7mMRZAnLLRf+n3fq9/Xao5SVPxKnTGOi78v5SyCfc/77Jd0N5bUd56gpeHilItt53+ZzlfAGQ9lewMf/EmvL8Qo2bJW0Vwbrsg42/I75SkXYJNSnIWIAxuQL1io7cLvYieYwLZ/BrY/TeLxLrVHIV9slWkq1vO7VffveEHd+hdWBOyhar/kh4EPHwcphf5K7goxMU/d8TcSGhlvX/0d7ehaIjmMiZmFoVcUNuRUvVTe6HTHZT+SUqeQNF0LHHiDNlxVcZSFVRYAI8ppM2yrviHBUbPL8rIiQILitC38lIIzKrwt/o2PqMfWWvkGtZUU24yrbMu+iPWTRF4QauJsEM6QbUFNCxxRc8rUi+0rCGfD0+x742fYrZR0pv9JHipCsDnobCWMbJKmOm96yBBldd+awObHcQJHiDSKjAs7qTouvEuavJy+GKLvha/Cb5ZaiSMaB9mjRmhL7tpjUMI262rb0tvRKVLM4bpKvdryzTVYQ/i76bF40YeXrfF64T/fO/VyqmvCXUv+GF6SfsYyJzWFps0nT/z8bbiPZn97FZxhQhd29U/uvpqt/yh4IEJx3bP8yU4SkKPnz9djfkeevNJ+wbfIbSlY9aYp1PqxdUrGv45xjc+GBgAAQABJREFUBGA3wzJOMOQvfvGLIDPwucUuLLCgwpTHqNewlQ9mNxxC+OGHH2LvGVA15IsldrBbwoAJ3YZNDZ4RR2DEEWD9KbnxtzWqR97BdDD1vNhoISZTOedGKXmyGDdBME+cYt04DTP41Y4A+rLaV/dXPL0N5sG8X1wFx9F+o0N9oCF851DTS5We27NcP5oUzdl4O8z83/GPQNguoxoMeqYLIaMLQIZ+czSGxC6XMKoRVIijURyiFGCauMeDgAeRcBGFwxPVj69wmIEbIQmwpFEUduEoQL+IQx3Mh1LmLNuqr2tH12nl+42mMjoMEPvYxE8Uk3JhZZJpv0o6dpudyEfKUDYSpKoldC4Fe20iCEcgQLrJJNvz6eJfehuARLXrQSmEgF+QYHwj/Q1/KzgXldxcfAWjnDL3Bnj/qNiLpa0Oa/mk2Ew5bSaYqnrwDey8asBVMkDSSBPsvpO7FEfw0VkR9eCuBs5qxwakYuo0ZdL5Unx2l+WF2iiCGJeNTXrk7EXK9IsJcaANfKBqJ/SQDRVTJ5aPVLiDIZHVCCmN+FQySmQ+pXPtzZMMBWeUbfGn1T1OUHrs+CLao3BchJQxCxwvgAMYA17D10yEHLPeAS+BCAGdsia5BgOZqhuPo5KFliopJo123z61lfalwbRoQo4ycbEy4wpIJlVG+yU2eGs1XXVIw8FdgWvM0pyoGWmtByvr3z2CmU4pktwgqbaG4EK7wkpOddvftGPvB+wx8rQLJTRdqkbWOIYgSy5yFCAAAy/oH3Z5xe8Vu7xg90vs+ALTpWX6GzYdYUaDNymO/kPWsLBhKxrsUgPfURgMh00HnhFHYPQgQOf9opvNPw/epDjp3qgtxLKLwPqHhKgkbHIuZS2gMy0iE4amQxg9MPRNE3M8IsRfOKVlf3nThycrn/4o90eX9Rsi6vxEY7ILJ3cJ79R4754cPSS9b9+KyGNzBIYJgXAthAZYQXM5Pq3hadAGBZ7kSsZiaPoZqV69sRzbbBJpwXcc2BCToTeWieaB6cQS4EMTmyXCDRLjzrqiUGlWcYnCYdUZmJJpx4IghBg+j+Gpx5wZKBb9Yh3RgjNacmJJoUQkR/XRniUm9cIjMTYD9EtvKhe9TUxbeI1KcRnYMQW5kLieLgPnHJqmSzMS9o+OzTLclUbAR+pHxMMQqrur6Jlsk+KzRNkBl1GjrZG4kKyINhd5QoKRNpWTGU22Yz0A7GzmOJveUUSeW+vBr+geO+XYI8SIOMHmgjwyB6EwIeXFmfIgbKSuPRoxcfYGVkgSEYPHJpYvtjWSGqEXyhaZIMH9jw76o/ck4mp1RSLVGkSTJPPCE1yihG1RsbkZASLiWEVszUogq5qBgmA9gyte1LBP3ylyT7W7QFlJQFszwOm60YiyFJ8J198g7WwGaG20m6gaoG1FEYrlkZATlWgoDtKml4owdRy8j/5ZCLeWvffy0T9H2aJ/svyvg6dLF5JMCk+NoO6tQyUPvi/BNfgzi1JunItaHAhQPVgIqYUEvIEPHqPJC9RHdLrkioPRWJ5xObbMHUimXRSPB40mBLCdCU7zw0aX8KUEDYM7LjwY4SY6/JWO9X7YEhZbrcA4iW1IARLMg2Cn3JdyNLUXrsvQI4AOAJmYXTR9YCCgYszTRMdZYZ0hZpwxh+6Igm8/bV+Ho5UTcoZep7GSg4mdobfsrSh9+ANfeVPqpxak30JbTPfjMoeuoIK+7xxqjFOkjcuSg7XSD1k8CUdgrCHQ9dh+rJUiDH1pZG2Orjt4URepiETR2Hx4yUoXivCgQUagX4RQ6JFQDbKGTJzuV6ue3VX1/G7wtcn3Xxc5nWZG+p3Tvuot/zj4UKTi+mn3hFYr2uJfdz+dlWJocEyC2VDJW0E8FD8FMgT3P/d+q80TDjUCWI2JTVAOHDiAhXk4Zh1mw6HOsUv57F2LFYzYbxNr+bAGr9N+p12m4oEcgbMHAVAUvfJQYPOfsbUBJohpiIJtEWZdqcy/kSZ/RZnmiIm18Be1UP3Snop/7ACdTvvUOSk3zqfJ1D6iQoTQMN6r9X37EGbtxfumx2KZydnT2HhJz3IEwnYZHes4kb8kzv1jxrFuC0Ockd6t9NbtNhJ/wBEYMgREu5L8sTmek/XNW082flDomjGg86nC4XNy7lL79fcb5XsCe/8LSztWkwor7hQzZkmJueQszX8HQ1bXIygY+4tiB1RcI6gDssZ4DZwQ297gGllNeO4cgVGLgJw6Q/rY743GCnXvS3rNcTr9eN8r+FPylsuzr8GLmvyM+ItaMFI+Pldt9la/uLt5W3Hc8nxHBnbP7hsuiA17wIVJzmilpYXYN784AmcRAmcLIYQvq3Z8o4EzIbqvXPbrxz6lclbHDordR+dPOAJDgADWkEQ5omamuXeW1K87ilWF0XMy+51Nq79Zw+bAvV0SNsiNy5RSpsFaGNjzMnaIFWPTlemXyHnYRSmnt9T8OUeg/whYc/jcM6P/IPKU4xcBGrGYi3Ck2HTbyq8ZrbVa8U6jZJdWukct3IQTueSJi+W8ZcqkVVjPMn5hCKdkNLuUfO2sxg3HPSfq3LtL7WnTsEdhOCmtOGQRANp9NSxa6fkNR2AsI3DWEEJ3tXrgVcNdQ3tIdX/h5SsqkXQ4bA/Esfvk/AlHYIAImA1PTLxsuntvmXtnafnjmzO/dn7U1BRz7ag1eA43ExybEdB8gg0mb/qPCT8zMfbuxh75YsoUMWEiDsNUd76o1xcFdj6rHn7P+ZmnEd8clPCfxJnI8ZBBQ6DPjXvQcuaCOAKjGQHr7Uvvb2zZIE27RM9dJrfW4dwgde+/sTcpbca+9z84u1iefH77e552ETjbflMAyJboSrp+dtkTW1oLKuJXT5Ij+0YITcR4Tzeafw5ctyFE4GwhhDjjXpn/CQHbnPTkQoAJJkPKnEtrunuKNoT1wUVzBIAAjIT5P7/i+HdfaykoL71/Xd4vr7KlRPWjm1Kx5oRmQGgSBJ0lW0TbPcI4asRB+8rkr8RQA4QQR2IG3v4FTl7BdlD9yL37jPgTjgBHgCPAEegXAjjY1RmN/fOkFXcqi28JrH8Q5yELNccCb/9c3ZFnX/1tAcdU4GzDfske04mw2T1OlIpbllv+l48a1h9P/9xiOZKvABzTVcqVH1YEzhpCiLPR515nEr2e35O0qJiTwWFtgzyzrhAAh8v98aXFD25o3l584u43cn92uT0NW2D33Ho7C5qVvGhv9WaI8qleh+zsPbW51y2dVj/1Qr2uSD30llayUyveJucs4VMkncHl3zkCHAGOwEggYHo2ImMDZ0TZL7tbrzgY2PuyUH0UpzH73rxHmXaplLeMdkEf3sN+RwKJ0/IEGwQnlKOd8SvzG9Yfa95VknTFzNNi8C8cAY5A9wiEeUJ39wLGzBOMpDGc7nU83dch95gpP1e0fwiE02j6J7nnVMgXx+xm3rHUNS3VW9JQ9vhmtdGL6QpcPScMfRpli5VF2a95y9yFCO+19VMc+gXgZJco2sUuebLhawns+JfeUEJmRsq6D7mHasLvOQIcAY4AR2BQEIBno9kx0b/UU6TPdF72Y9vq/8WhQeYb++/+t38Z2PhoYPcLONIw+NZuf3PjLd6XPmRQ9B02ITiITJQcSsSkJGSJNRfosMzithd+2BThGXEExiACZw8hHIOVw1UeaQTQl5gkKhwmNSS62lNjUj+zQI6JaNlT2rz5BPP9hFZhZpYVM8kuOzxqy56aLWHRQUsu1p/EZdoW3oz+VK8+imUqgkZ7rvWJjlrC+A1HgCPAEeAIDB0C6BSw94H9vP+xX/x/WPZiNJWqcPvf+rR/7f2+l7+hHX7H5EXIn97i5t/Q6TLCknEisiMjFnZC965SNofZ48YRI6wtz54jMHoQ4IRw9NQF12R0IQAqtL9qS6vaKkl9W5g+uMWImp0Ruzhb92sVf99R89Iew+cLstQwslEk28rsazXD8PhxzGC4NJIEY+IZ+53iRIrLfgI3nMDWJ/2bHhM1v5lnX+SEoSSPwhHgCHAEOAIDQYDmLDF76YiU8s5zXPc7x7X3yvOuE6MSDZ8bxxj6197rf/3HQludoeNUBbzAR2yKcyBlDD+tPSUKf7rHX/OffSYwvM8KHzwe8+xFQP7pT3969pael/ysQaBZNZ4sact3KZckOx3hrbcvbCx4v/Q1r9r26RlfT3VNGDGoRCF2WY7W5G07VoP1hFKEI2pWWpg9Orp+d6Bxd9UHiJ8TNy3GHh+G1zQVlMYL8EWCnTAmRfB79NpCjCqw0bloYI2GKAQ8grcZpySba1RYXzvmRhjjf1REFckvjgBH4OxAwPT2Z1RPxLlBcvYS29yPSYk5UkSs4a7Sa47pJz+CQ6UUnyMq2DwCb+xx+w5U4iK8J+vbjtegF4tfPVmkjSH61kNhtODXBYwWMGY4O5oPLyVHQOBtnTcCjkAnBMglUxO0k81H6jxV+XEzZyVhS5WRu0zClX7bYsmp1K4pqHl1vy3ZlbB6sum9aS4h6V41zAbPTj4Xz5v89U2+uszo3L71iuhEbRHKvBuk+Gy1YI1eedBfeVCMzRAjYrGdG3bulfOWI0LngYU9QkrIFe2R3es18k+04h2M9o68KoAyY7Yo26meafmmOdPft3oaDYXgOnAEOAIjiEDHKyPIfcwAOe88eeIiMWu+duAN7BCmb37CaKu3zbpGdCWaHQu6iI6EI6j9oGeNZYSSw+YprPWdbHDkxI/PQg46alzg2Y0AJ4Rnd/3z0p+BAPOs9Gv+0mbaiGVxxmo26XpGxGEKQE8GQ53ktKXeNN9Q9drXDpT/Zauh6wkXTu2tk8O8KGijuDD1/B1VG4ubj01NmAcn0r7qLUanyrOvkiYu1Io+0k5s1Er3iU3lEKJXH1aLd4jwp6X51xCpkiLYXcKI+tmGaNP5FrriKA6xtUEHNKFqd444XN9Ru5Fx5rhMxCog2+LPCLbI0wEdLk14PhwBjsD4Q0C2Kzi3MHWafmqnb+296p6X9MIPxNRptvk3iok546+4VCJRiDsvr/IfOwL1bXVvH8740tLxWUxeKo7AoCLACeGgwsmFjX0EQBLACVv8TbuqPsAWnSBRIzs6N916dLAGHKmU+cWlWouv4b0jFX/dprgcMYuzRbmH9Y1Ed1CcWSnn7qh6H4QQ2432lRASfQLhI9/RNGnOdcrca4meioJe9JF/2zNGU5mhBQivdmZF8XVNaG0wzYajsTWAveKi2XHZRrbgkb7A7UVvM3FUHRz7mLrrRWXSCvvFd0E9zAOMtHY8f44AR2AcICCKEYnS9IvtNmfgvfv0xnKhvlgr+tC+8htK3nk4Z2j0uEsMCtYiDpTGKsIb5pY+vllr8Zo9VHsXNSgZcCEcgfGIACeE47FWeZkGggARHuNI/W6whnNSV0QqUcSILMYzEMn9Smu69ARNWWBeWd9aJUXY6t89UvboprajUxMunWpPi6UOD5fZ5XV8tAflxc2IticU1O4odZ+YEJ0fYcMZ9ybNDE+fDp8iQiGIhJR7rjOXnFE7X1pAqzpktNR2Dh9F3836tDuU3PNGg1IEV1MFNDGaK3HANFb7qEVb9FfvUvJXSBPmC1GJkiPa1JMPaEZDdXEdOAJjEwHz3S1PWiElT9IKP9CKt2tle/zv/EpNm25b9FkpbRqOGkLB6C1DncPYftvQDKUhSC47iuGvaQ3UtNpT2Ft0bNYd15ojMCwIcEI4LDDzTMYOAsxmVN1WBpUnxOTj2IZR0zcy1YT0W5fgqKXaNQerntvVerAyZvHEqHmZERMTBIVtINdZ3wjFNSt58Zayt1459mRG1MTF6RdOiZ9r9vyDXyuGrMgZs0262VmNwc+snxKJPdNOe6aW/ZQxeMnk1OkC/sxLnrQSR0sHPnhML9/vL98vJU2GT5cy/WIZzJBfHAGOAEdgYAjgpSzGpIvzPyFPvUg79JZ2dL1egT1IfydhQ+kltwqRWBzOSOHAshkNqUUhZkEWFIFPDf4ETghHQ6VwHUY3ApwQju764doNPwKYSSUfSbpgHsRBt8OvQjc5YtqWyIzstKV8cr5rZnrJ79e37CtvO1ylvBaZfNWspI/P6ZLjgNOuzLqysuVUUdPhMneRTXJMiZ8zVN0+GVNH0qDaDXQdwUAQNUr1O/r0lOIy6C8hx6g9HvjoGa32qFh3DPfCqm/I6bM6ysDvOAIcAY5A3xGgt5/ZoYmRCcqCT8qTL1D3/FsreF07/Jbf02Bb9gUhbgIcYsa4gTCIiy0BG54JarMXf32HiqfgCJx1CPA1KmddlfMC94yA6VkTQgJpHVfI154TD/VT9NToq0VBiXTELpk46/lbU26cJyhyoLal/K9b91z+RMGn/ta0pUj3q2CO8Iyk/03tM6JyvrXw3o9N+QICArofgfSUIpi3g6e2OZIYNXB1VS4TwHYcu4owomGATpTis+TJqxyfftr5iUekjHl63Snfy9/0b/iDEfAYhoaqM6vVrLoR1ZVnzhHgCIwtBOjtR5TQfAHiBPfYDNv5X7Hf8CCWqMNf3bfmbnJfp2XjrF/A55i8qHjUa0uRM1LUmpZAbeuYLAZXmiMwvAhwQji8ePPcOAKDikDGbUtmPvOp1JsXOCbGOzNjdK9a+uim4nvXNX10yltUbwRUk/oRLcRfpA2rRIzqtvIS93EDJwoGZ4tHNX8bVLTGjDAaj4m6lDzNccVP5KkXiHaXeuA17yvfVfev0etPiYJGS2R4vY2Z+uSKcgRGKQKgTlLKZMc1v5HSZhjuGv9rP9CrjlJ/wXbfGqVah6uWa3Iq6/vCTcDjcQTOYgS4y+hZXPm86OMCASnKkfqpBTFLJuq+QPO2EpxL0fjhCdgJnbmJkZOToxdlxy3NoYKKwtSE+fHO1HJ30StHn7xuyuezoicR7xgXIIzDQpDjlmE4ou3Lv6xlL1Z3v6hXHQ5UHdZSpspTVtnmfpzm+vnFEeAIcAQGhAC9aHAUqv2SHwQ2/0Uv3ORfe599xVdwBA6mpcbHS4a/KQfUQHjiswYBTgjPmqrmBR2XCJBvDLG6yEnJ+DciNyl+9eSGd4807yxtK6zFX+OWourndsedn5dwybSYmPhbZ333mYL7jjce+Ou+33xp3o/SXROD6yW5tXA0NQ9Wq2bFolLjlKkXShmztJMf6cff18r26vUnxYgEZerqED7Pxzyjqf64LhyBMYMA60DoYCHbyq8E/K1ayQ7/pkfsq74ppc80CwEPUnQxY/INY5o5x6TmY6b5cEXHEQLcZXQcVSYvylmPgBxpj8iOT799ydSHrs+7+5LomWmCR/OcqMUKw+Pf/k/jumMTHXl3zL47J3Zqo7f60V0/Km05gd6ejhlk+9Wc9QCOWgDE6BRl9tW2y34o5y0XVL9/02NazQloOz48u0Yt7FwxjsBZg4AhRcQ5rv6VlDkPpxQG1t5nNJabXHBsu5FwOnjWNGBe0IEiwAnhQBHk6TkCowoBWlsmSqJNjl2Wm3/ftRN/cFHydbOcOQm+6pZT96079v019vdbL9OvzfXkN/sbnjv4x5ONhzXMAI8X76BRVReDqAzb91aKiMcmELAWCm2N6ta/Cq2N2AEC0/f84ghwBDgCA0PAfMeIouPyH0v5K3R3jbnHTDneL/wNMzBgeWqOwNhAgLuMjo164lpyBMJEIOjaE/QkFbC2MHphVvwF9c3bTzW+X+g5UlV6pNqRFrM8YnZKnBMyT03fmnx+UnR2cnuvz8ihOa9KnkLm/iZkiWLzxGPTcyhM7AY9mgkgTLAhKzUtmNnhJuHiybZ4QC1IUUn287/ie/2nWtk+/7an7efdIdoj2ZjNrDM+Id5TLWJvVlqa2T4DEmzUZCMP7rVPNyG11ZOsUfAsWBz6cdLGkeFrxBL2HD+cOD1LGMSnPSjTw6NBVGCIRI0q5VnLFx3RtmVfNDyNWunewIdP2C+/B6//ISr+UIv1V7nZuzHMjOjnb74UaNcuQR+7BQ+zvDwaRyAUAU4IQ9Hg9xyBcYgAdhePyEt0ZMfFXzClaUdx08ZCnF4oC+IMAwsIReFQoHjtu0qkzTEhLmpuJsrvmpEekZPAvBHZGNMcJUvUs2Lo2Zdx5zhEs29FAl5BpsHSmfiRey7GHSYLMUcfYchERbQerPIU1Zm83Kh+Z6EY8InvG+LzrwqSTGZhGsqMIS4TRpmHIIpok9DIo+ZmRM/JEGwyciAyReDhohtMgJgosoY/BBoMgcg+UUGWf3dJqPS0l9FpjTZMlfuXKkzh3SmM5OwRcrfuO8lkj7p72inywL8OKQ4DVy8cCWJMqjLtUr36qF6+Ty/bTU6kY+kH0VFE964SJcYpx9DUZzgXvZVFo9Sj+XVqTngvhJOKx+EIjA8EOCEcH/XIS8ER6AkBGusqsi01KunKGUlXzMSQr/b1g1qb33uyoWHrcW99o1AnthXVNWw8IYqYFqWBcsyiLDiawvU0ZlG2MztelOFLZBNp0nRsDg16gmdonuFkj4CGYx8NDYcHBkFr2VvmOVaD/FAjwL/u9YNhcjiM0HEIISLjT0ctiE7JHiVqquFuoMlsyWbAT5hk8drpqTY1VW07WlP94l4Q9eh5mdiGl5r3RDRvGVxRskk68SGrunoSNXTPGIHx+XwWk7HycjqdCPT7/bIs22w2iyZpmob4drtdUahPDwQCqqoishWBSdB1HY/wKaGsNhSY1oxAINKyEBYfn16vF+GQhmhW7tZNQ0NDU1PThAkTWHZWeEtLS3V1dVZWVqdUTB8EhsZnBYEySB4RQWeI93BBAi4odqYQJgdpUfxO5cUjIIOEKB2e9iB/UB41NzfPnDkTGp44cSIcgagjFB/xO6ltpd24ceNtt912zTXXPPDAA1bgMNzgJaJMuziw81mhsUQ99LY9fZYgd9EMhkGTAWZh+DQlM86e5ApTDv30DfFgi+rVDKcsTXGNyVKHWVgejSPQCQFOCDsBwr9yBMYhAsyqR7YPMljRXHriFTMYfQiciN+95d3KmqKsEymgGw6PPaLVbvcrwvbi5u3FwKLqXzsjp6Y4UqNjzs/HWNmW6JJdNLSSo+y2hLA62q4G2AjDNd7YCxigWtdKnw1tvgp325HqtqPVnsJai6fpBjEOs+z0ASTDxhCMT1ISI5UIjFFEyalEL5qol+5Wj7yDEb2Ss0TKXSbIdm6/tbDt8sZTWOM52aDWtQTq2lr2lOGv+sU9qA9nflLk1OTIKSlo1c6shPDbdpe5DDAQLaSxsfEXv/hFSUlJJ1EPP/wwGNef/vSnhQsXfu5zn7OeHjly5J577rnjjjtWr14NCrRmzZrnnnvukUceSUpKYnHAPfbt27dz585du3aBzmVkZCxdunTFihVpaWlut/u3v/1tQkLCl7/85cjISJCoo0ePPvTQQ0h46623IiPGG628cAPF/vnPf37ve99LTEy0wqE25G/duvWrX/0qSA4LB+HZtm3bG2+8AQ2XLFly0UUXzZo1iwksLy//zW9+g+Ig5vPPP2/JOfMGBBiMaPfu3dDtzjvvXLlypRUHvBTCQZwQgvBLLrmEqYSYuA4fPvzqq6/u379/4sSJV1555YIFC0CSrbQje9PW1vb3v//9+PHjP/nJT6KicEJsTxfKEvre6CnqYD0TRfvyL/nf/a1+cqt2/H15ymocTjFYsodTjvXuDSfT9r3VqHtySMLESJob5RdH4CxBgBPCs6SieTHPcgSIhJhMxLyhL0FA8vPmRSTHFtTteL/4Vbe/KbLV4XJHONps0U2RiDTNNz2jPImIzZHqho2FSGNPi1FiaVBli4mwpUUzKbYkV0QuhoagmpSJEhcBJ1W4qtJT9K1kc2FXMFcWj9wpLT3aY4ySf6GbpTHdUcHaIQtRsXkHcWZc/spmT3GD4VN9lW5MS/urm9UGDz0wBEd2vL0dKBhacTSIEu80YRHhzgQ8KVrvFxFCyFGiO0a0ujdF29sS2P4PUW61T1kgTZgeFNONtr1nMt5j4PwVqqPyZn+l21/jDtS2wgvXX9WCA1rA2+veOIwKw/SHEkttG26lQDsKzqXUsKkq0VqHp8WCALS2tsLiVF9fD5Y1efLknJwcUsEwampqwPdgagslhKBVL7zwwoUXXghCCA528OBBfL333nsZIYSoxx577JlnnqmsrJwxYwZYH+jZk08+CdZ3yy23wBj47rvvZmZmfuELX0AWYIM/+MEPNmzY8POf/9wibwgPvWpra0G0kB0ImBXu8Xjeeeedjz76CHJcruBUEdgaeCMe5eXl/epXv3rxxRd///vfg4siFXga8tqzZw+U75kQFhcXIzLMbtu3b7/iiissQggqCxr81FNPTZkyBT9PcGAUB0Q6NjYWX48dOwb2WFRUNHXq1B07drzyyivgvUgO46ql8wjegPO//PLLwBn8uVdC2OXLZyiVp3ednHOuPPNKddfz6t5/S9kLxYhYM8cuXoNDqUm/ZNPrm6Y/g1fwXd7+tft/KSKS0S8d/+D/DhndJ+JPOALjBAFOCMdJRfJicAT6hwA8ZDKic9NcEyfHzTlYt/P94v9WuxrB5MzRr1Cq1yZoSfnO6XOPTbP5bd7SRjg9BiqbmedoR39pl+QIeC2anAmT2fBciwhaq4Ids02Ch14H+cGJ62kxtGTRXMfVP82HNBUbCHhLm8jJ80RdW0GlCUjn8YHa1MbU0Hyq5gkATEIOBFhRYhZm0XK1eZkgFZKj/U0rClKEDY64JkmWyFhLIjuLPbNo8D81o50WU3JEiwtu0psr1SPvqdueoQrImtcu80wZPIQqR7LL8IV25saLhqQFVL3Nr6Pu3N6W3RW+quaGdUfbjlTRWNAQmjYcFxWJOOG8zLgVeZEzUql+T6uBwYeU2YJAaX75y1/CrLdp06ZPf/rTn/zkJ2G+Q2ahFrkw84bDJOyKv/71r8Hu/vKXv2RnZ4MRgaGtW7cOdBHZhcoB07vrrruQ6R//+MePf/zjXbpZIklpaSmI1oMPPhhKCOvq6kDJIA05MrGIAzYIOvrss8+CEBYUFNxwww1goeC3yBq0MD8//+tf//pbb70VqkOne4iCbyoshOvXr7/ppptCn8JK+df/Z+89AOQ4qvTxDpPT5py0Wq1yztlBsuVsE2zAGBMM2Ecy/pEPMBz/83EHHHdwZDBg4wROyEFOkoOsZCVrlcPuanOOk1N3/7/q3h2NdlebtLM7u/Nao9me7qpXVV9VV9dX79Wrhx++7bbbQDVxHVTw0UcfRTHvvfde/ETSyABY8ZVXXllfXw9yCBCQaERrGi1q/M8zMzORN2g4oa0d/9SHmaJ+wa1y82m57kj4xEv65R9HrBg3/2Hma6hg6mPaseNsT26HnWm8wbSme9FTMVRqdJ8QmBoI9A5TpkZpqBSEACEwQgTUVfQcjLiKk2dNS5514/Q7fZJ3dz0bou2te7U70FEr1lRLVW9O37ap6MOwqJmTvi7HVqjzC92vMoUhDqyF69h2UuVB7DWKEabsCshOv3oTX4yhYCmPt7y1z2galwUuTs2QUAjkVqVrrFCCTuSwirK3SJG/IAiCgfWiCODYUGAuzTTmOhwri7AgrbewbMTdew6QNIKsXsMdSIyayI6IHegEYxW2WvCiA9FFk379vXJHtdRwQtr6df3qz+gWfYDTGTVuflFg+sEQYFWh8nYGvWjQgR+ysyy7pQQm01zBF9eHvaH2bSecB2oDVR2SJxh2+n3VHa1bj4lWU9adSxzLCyNW07FAVKs4PI+w4cTYNCUlBVegQQJ/0JLTBqzDTxpaNejQiouLob7DUr1Iw4A5aORckwaF2//7f//vnXfegSbtjjvuiF7vF50c+B5MRrHs8JVXXoEB6tKlS7W7zz//vLZ2DjpMWKLiIphedXU1TCJBw5AWLkKrCdXi8ePHQdIcDgfKYjQao4X3P0dE2HniSE5Ojr4LDZvGJMEVNZ6MbD/xxBO4iMyD2b744oso46233oq4GRkZ99xzD3RxyDBILIqAA0mjFKDHGu+FYSqUqzjXVIg41+7iBPnUroOiIxgMYiM2sdFZipwjPILBdhdJRwxuIQ3XURxcR3TAO2fOHAiMFoVbiIgwSC4SUROr3YKE6EqMpBirE3u6bu51wcZj4X1/1eUt5rPnsS4r/g+1a5WdAfSX5pJU1XplWJnGvBu6h9fbAq6wkmWcFEUdVrkoECEwHASIEA4HJQpDCExZBNQBcs9bnr0Aec6ss24u+hBO8X2g6a2a7vIa5zl8dlQ/iwDbq59FoFU5m7AeqChppk7Qg9Lk3r2CxQQZ5BXJHfSeacVIukco4zCKr7IjWN+lhmE/scoOi7jkYDj+X7n6NItoM8EC1pCb1FMilKD3EI06+8pCtRSXKspFNFJDuwcHLcal4vUmof1lEXH0C4yxI29OMV79tdDhp+TKPaH9j0hNJ/RLPyLmzFOYc6BxX3p0cbbj7ZdaGT1YqlZhQJRh2vsfZ7zOasi6fQk+uA4z6WCz013WEGrz+qvb6v+4p+GPew15SbmfXmXITjIVJAl6nars7VcxY1Fy1G1/MdpF2EPC/DJyFzaikfPoE9CevXv3QqH38ssvw1I0+lYf4c3NzViCCPNUGGHeddddl2KDkAATU6zNAz0DgfzZz34GS1RQGtAzKBXB8cBnYI+6YMECEBiYgyIwtIKRtKDq/M1vflNVVaVRo+j8jPQcdqTgpTAfjWhNoVa9/vrrgQxu7d69G8RpxYoVoGSQDHIFW1msJARdhKUrDFlBHREXFptZWVnQhUJlCojgFAc2t/iJuCgFsgoejrWOWO+3fv36devWgQNjSSSUkLBNnTZt2oB5BgIwwQUdBaTID5ZNQsMJBIBPRUWF3W5HdSxatOhzn/scrHYhDca9kANAkHNERBUAfNBsVEdEPuoRfP6ZZ56Bcez999/fpyojwWJxwgxHi1ZJlXtghqBPm84ZLmpFsUhxDGSyB4fNxKlH7/M+DLm96yTZc3dn7mQo6TAKRUEIgWEiQIRwmEBRMEIgERFYkXXl8uyr2n1N5zrKylr3QWWGt+y5zqPvNW4/21k2M2XR/PQVizLXMtqhvX4VjKeN9qVsAKThpWnEkjeU4GfkohwIwecKviNX4hZcfZadrZlE6di4oqdQF3KrqvzYfHS/OxfCxP5MSC8xXHG/VLg8tP8xqeo9wZwspM/gDMj2hGYr9gWPdQopG6YDwrTr5mKNqOdEI4yHXYfrAvXd1f/xBuxO7csLM+9YIlrhfXe8D7AXHEOmCj4Grgi3n7Nnzx48MHgIWAfYy2c+8xmNRF0qPGSCukDPhhWJUCfCVw3YC/hVY2MjrDfBP0FywKkQDN5roF6DkWpEFJSEYI9YGAm6OAjnjIQf5AR0FAc4XjS3nDFjBnzPwEgVmkkkBMVgRALoIg7YjiJLILSgYXv27AEsoI7gWqB8MGTFXRA5MD2424GeE7wRZQR5g0AoNrEWEbwXTBjXQep+//vfR4RHnyDid7/7XaQFennfffdBS/nDH/4wJycHCUE46gJ5hhISvBEZgFpViwvQsHQT3ytXrgR0oNnRa0SR4re+9S2wUyg5x5MNsn7PYBVnXCHXHwmffoO3ZegWfgAbn0aXNw7P2UtH4bC7UhzmjbJECMQtAkQI47ZqKGOEwMQjwFieoqSbs9Lyrl2QsUqzcfSG3K+f/weUh/sbth9v27+j+rmVuZtKUxZmWvNV4sSsUNmJeoApaXwpMmGLyzCzNE1LQZj4J4Qovzq6UBlhb6F6yqbeU0sRuTBhJ7zJppuzRUjO8z/z1XD5u0LJBrFodS9Nn7BcTfaEGaHGglC7QbRnWErSJV/Qc7bVtb/Gpa4sDdR2Bhq7p33n2v4TBbEu+N133w2GEEkFRAL7E0R+Rk5AlkDzQI2GfNDAnRCmrKwMpKXPUr2INO0E7AirAWGKuXr16uuuuw6eUUD5oP6CHgz8B0owWIQiJJLGgZPopKGpi1zvI3akPzU5EB4tX0sXlA9Hn6Q1+SCikYQefPDBm2++GdQL/A1WpjA9Bb/96le/CgRACLVgCxcuhF4OJYJeDgpPOKcBl/vyl78MB6Fw4jogp4VDna9//euwiUVaWAgKqnzNNddATQqBUGbCVQ9UlLAIxaHlHAUBs8U6T3BpaH3h1hURIV9DD7HgQxWrJUFT4Y9nyRKmuB7HA5Ngim7GBk7UBV/9/8KHnhJSCsWSHnDGMRsjS0pb6+uvbBcsenVz3fGfsRlZhik0IRAPCBAhjIdaoDwQAnGKQGSwhTeqzcDW8IAe2QxJH53z5YVZa3bWvFjtLK9ynjnvPMuUhzw3M3VhoWPG8DkSRozZtsK5aUvh6UPTv4nYMBH+zXk2cFRH40gzkosJQUnTDKpDin7jigF0hhOTx56cCZmz9as+FTr0eOCl75lu+ymfvzhO12hOCEojT1Sre8Rj+Aq8CO334jx8sG625cnDnTvLu3ZVVj/0WsHXrxZN2su0XxMZeaLDiYEVhrCBjITUNm+I/IycQNcHxy3QhsHuUaN8kVt9TmBd+Z3vfAdOOOF5BQ5gBtxtQouChYJYDgf6B86zZcsWWF3iOuRjCR+yhFTAmsDHkDSoER5dGHYWFxcjDJ5oKNygGYP2TFunpwkc3TcUZTDshHAtOusueB7GqLiOdKFMw/I8rCSM3IXLVhza4kbtIqxD8RN5xkJN7PUH21Go72D1CkcvkSwBByj3UBx4YUW2YSwK41LwOnyjIH0IoUbhFi9efPvtt2srAOEyB25vQJJByyETyWGjQgjEOTKjhUe24fwGnBO8EXtjaElHs32se0SuIArbZoxzV6gaPvDYz0ZXslFe9MFw2fNKwM0qEs08jq3R8S7yV3eGsSQBW/XYsEhVnc6LVOqgJyddoVPuEMpoVucuxhnwQbNGNwmB2CJAhDC2+JJ0QmDqIQDupxN1CzNWL8pYfaL10P6mHb6QpzvQ7gm5znUchXGpOn7up00bGAiMLNjgYm76coPI3EsUOkoL7CX59hKr3sZE9PxHGDqGRkDBmrZFtynd9eGzO8IHHzdkzlTX/BB6Q0M3zBBsiKwoYIa5n12DXUOaHjvUtb9a+N3unLtX6FLAf4YpZpyCQTcIPR5IGlYGYueJaDoEigJNVLRPF5hE/uEPf4D663vf+x62OgQtHDCX4CegW2A1GCs/8MADd955J6xSERhKSyQHpgrbUdheglzB+hHqNRhbgsxoA2vs/QAmCY56+eNsaMwgB7tcIDktM6B/7777LlgTkgazhQIQWYU+E/wQjA5moljUBwYbKVQ0nYvGIRIAJwgTyeqlwkSH184BbMQlDGJBgiYEFyPX+8RCADBYjdbiVjTbhIkprE+hyQSesGvVRPWJHuufYH+cCZsMKXLrOaX0Kl5vjN3S2TEpi6esXvGFBLsRW4xqJiojFfvRPM0ydgRkcqRJUHhCIK4QIEIYV9VBmSEE4h0BNh6OyuPcjGXz0pe5wy6sM3QFujoD2IRdDTG8kXFICpztPFrvPn+i7YAm9UjzLrshZXrynAL7jJU5VyeZsL3h8GRF5SphT5mNqMGGXaTDVe/JbZVya7mYtyhh0YhRwZnhtKrcSb1hri7F0vTEwa63y7HtpG1BTuaHF8co0dGJBXkAIYQHFNhDfvGLX8TWC3D4CR0aNHWgalhxB61UtGRoqKAAhJIQ69lADqGYir6Lc5Qblo1QkYH44SdWD8LbCigftIva2jbIhDEktg0EK4NwWJOCW0L9iJDbt28Hq1m7dm20brOP/OH/xFo+yIcXFqzQw4YTKClIL1YnYhkkNH64C+732muv4SdWNkL/Bk0dVgyCLg4/idGFRNmfe+45JAoWhz02kDEwumjy2V+sRpKxr8bWrVthhYs1hGDvINtaSJBbcPUf/ehHMBn96U9/Crc0/SWMwxVegJMqXvG0c3IYu6vGi3HEQCXH/qJde6qwnUzyFTPgFWygIENdQ/FUm5ehwtF9QmDqIECEcOrUJZVkzBDoMVbUeAhNEPbB9aIZaoYRz9n0Dnz6hBvOT7j5XpF7dSDs31P3KpYeFjlm7ql/HU5rylr2nGg7uLf+jXX5W4yiWRO1Iucqk87MKgdrRNiIXNXH9K5RZGEi6kS16jTiqr3X43n4Mhyghh2GFVTMX8IZzIq7TarYKeQuZCa3GNygoohZDxvHSwe80P5hjZZ6zSxTUUrVj99w7q9xH6m3LyswFacC7XjAWiWtHAwdYX8ItobtH+DXRDPXhM0nfJ9ghVsfQgh1FpzKnDp1CivfcA6/KX0czEAm1ivCclKzewQ50VbHwfxSQwzXoSfUdpAHOQSHgWdR+JgBtwRbgzSsr4OCEXIu4HhprAe5A1UbiC4SAsncsWMHQkIt+YEPfAAuUjV7VNBabOEIDvz9738fekKkiMzALlRbXjiI5FFnTIuI/RjBvYE29ITI0k033XTVVVcNLhPsGkpUmNp+9rOfxTaJiAgTXKxa1DKJisACUXg9/etf/woujZCDZD5mtxR4M1Z7WDRu1gXHLKHRC2adnLouHf6fPCebkMW8z7L9ToYvEfHZW4MVkT3CI4g5/DQoJCEQrwjQApN4rRnK1wQhwF4JPPd29QtYyYZFQ8gFe8nQERsE4Obbpk9KM2fdXHr3zTM+uTBjzb8s/sEDy/9rS/FHjaKpK9C6tfyvT5/+7dNn8PndN9/+yJffuOX+7Td/ZfstP9n/tTeq/u4KdfvCPlewC35uAmGfH3vDK6GesQozcup5r8cm73EsVdQblt/JybJUV6Y0n+KxqT2woNFNbGrMMjNz+g+us5SmYc1S0+OHOAlwj9kBbRs4DIweIxJxBZyhj+4OF2EOCtanES2Ex8+IVgokEFagMOwEeUNIOP8sLi7GrujgS+BOYFbQ+GkbHiIVkBPs8461czC/fOyxx0BOIknjBIsVcQXRER4/ERcaQjhK0X7iCvZFgL4LpAjnGFFj3wV4aoF6EAvzoH7EgsNVq1ZpI20tq1DlRRuyItalDq2MWDcYCYDtGf/0pz9h7SLKiwP8FuQQhdUCQB/45JNPIlFo6sCjcAvFR3mROgIjUY03gqOCoGq8F1QW2GoqOCQHU1sNZ4QELDggGdG1POMERYhkRruFKFglCGtVCES63/jGN6Drg3zcBUQQHqkUQIcrWtkhCjCCrsO3DeBFPcK3DSRE8oBsQGEIYgmWC3+w0YmO2zmbZhL1UuVe2dWCgsfja5E1KQ7Oqz1nWpSQlPHhxaJ9iF0u+6CHqRy1m7yoWvuEoZ+EwFRFoG+PNlXLSeVKcATq/NL6Pa3XZhh/NifJoRt8HgRvOv4rO27Ks03/+Lyv5tumx/liiSlSs+wVrCr/VBKHcVenr3lX3Ssd/lZ2neOwRhErFdW64PxhH35i4G3RWwvtM6q6TqdZczPNuRCRYcnJtRXjJNmUZtbZNBKUbEwz621TBKjhFQNDo8Cz98tNJ3WzNuuv+DKnx/I2oEikcHjwjTAUuoz63+xqe+mkmGSc/m83WEqZx84Ryoh5cDZa7s1V5DxyMvzkRxElWrgW/TKFRAuMt/NI0fqfXGZWIwIvU86oosNfrT/03iPhYy8I9gzjh3/Jm3qI96ikxSQSe3NznO98e+X3X8HcYPGDW+yL8kaYknK4O/iNU84KT7hqE/P9QwchkDgIkMlo4tQ1lXS4CGCHvQtDZzZnEhlHDVcChRsxAmz83DNc1YbSqeasW0o/1StHafe1eEMudVqa94XdHb6W95t3Y/HhmY4j0OA2OCsbXJVqrTHag2DppiyLwdEjypRpNQxk0apwUE4uyVqPtFhIdUChRdGm/idvxaMU4IHBF78rnd8n5C8R51zbiyT9HXsEgHbqljldOyskT8h5oMYy88L2d2Of2GglRjfmyHnkZPhSRxElWrgW/TKFRAuMt/NI0fqfXGZWIwIvU87oovN6k27OdXLDUanlbGjX7/VrP8tbUnonmbRec3SCxzSWwne/VxNq92D1oLk0faSiUZwGv9zglwrMMA7CLxxxU7SRFobCEwIjRIAI4QgBo+BTHQG8BLaeexilzLIWZFvz1Ree+jXVCx7f5ePB3PC5kElFwb6IUBVKSlhb0AI2B8c2ZzvKQnKoxVt7pqOs3d+srTOsdZbLA9n9IqJBMLxbv03PG9LN2TNTF2ON4szURWnmbGYOdhFDvJDypDgDGmJasW7J7aHdvw/t+q2QUcqlF9PQJlZ1p3CWkrS0G+c1P3HIf7ZVcvp1jguWjbFKlOQSAuOFADPegP4tJV+/7j75lR+Gz+zgTA7Dus/znIA78dOxKLzsfr8OqEA3qDMbRgpPUFbOesJ+Wd6Yyp5fevGPFEAKP6kRIEI4qauPMh8DBBTeE/KadJal2etFQc+0RjRJGAOYL1ckz0HpxzzZ9FrBQWCmNXdO+lI2PkGd4ZuNYZRGT82p9kPsQr+jzdtwvO2gy98ButjqazzZfhBBsN0i9kW8pviOFEO6QWfqF2mSXOAFrGQTZ22WG09I53djW0Lzxx/m9MRSYlR9TCntWD2t+YnDgWZnsMlFhDBGQJPYCUOALbATxdyF+jX3hN76H7n6oDzzKiFzpsoG44MSKpy7rNFV1mDMtBly7KN4cfsl7oQLPlT5DakG9ZURH+WasCqnhBMLASKEiVXfVNohEVCXWrHpUDAKUArig0MiNiEBVDteNm0d/caG81G13tSqU0khLuTYCvEZkNTjlX+1t+FA05vuoBMBfGFPl78NZqj7G9/CB5teQAmZYkrXCUadoMu0aMtRNGoZneyEADBEouDEzMDMkqJf/jGls1burg/u+YN+9Wd448T4rB8iu5P9NnN7y1tmpBvzk7AjtvNwrXl6Gs/WKsd7O5nswFP+xwsBvAkFNvnGK7q5N4bff1ruqJJqDvJp0zlBHzUpN17ZiUqnl/gpgZrOpscOCCJvW5RrmTEas22fJB93h+wiv8hhwAtkYssVVUQ6JQTGAwEihOOBMqUxiRCoc50PyUH2KtBmCOmdEJeVp1ZLv7q56AIbiw8+HsfdDEvuDdPvihQRVqbV3WfLO4+91/gmOOH7LbtTTZlG0WgQjcuzr5qTthS+ahjtxEQBDjYSGTyFiODxP+nJGKbw9Ru/5N/6Dan6gDjjKiFvgUYVxz9DUzpFNjOBf7n3rD7/b68636tJv36u6DCxTiR+W8iUrhAq3JgiEL18Ea1av/bzwW3fD5/YJs65TrDC+eqEdYPMsp+XMTUYqOmo+/0ez6kW68zM9NsWCNYR24sCsKDCtfil1SkGM3NGO2GFGtOqI2GEwHARIEI4XKQoXIIgAG8lYTlk1FlmpdKO3glS5xeKmWbKSDVmzUtbfnXRB7ZXPXu240izp0aBd32Oq3VWvq7/uyjoZqUuubrwNnWd4YWI8Xwm5rOWrLhaFXcLY7Lq/3jO8OTNm7k0w5Dt8Je3eU41O1YXMT325C0M5ZwQ6IeA6m2LF3PnCQXL5NrD4RMv61d8YgJbOdgpnjKp21f7q13ek83maanTvn+tLoVtRj8Kv8rPNfnQQTr0vEDPbb+qpwtTHoHB/e9P+eJTAQmBARFgOqBJvH5swDLRxWEgoMAsiuOMOhN8zHx0zpceXPfHX25+8f82bZ2bvlwvGjxhd5evbVfdtp8f/Ppr559q8zUFJP8wpE5kEAzgoKUyLP84JvFD+x+V3a0Y8dARIwR0dlPK1aXY+rwZGxKGsf0jgR0jpEnsxCAA7geixZsculnXcLwgnd87cdpBFQFsPOgOVHx/m/dEE9yKljx0I9ggyyNbPz5iVveL8x49z92QgeLR2HhiGhilOoEIkIZwAsGnpOMWAdigSFhOlmIazTqEuC0VZWxIBHqnuiMjCfWE5+5d/GCHv6XGWd7uazzRdqDOVfly5RPbKp5YkXPV0uyNxUmzLTorm0VQE2AkgJkKRoQMmWwsA7B8KOLCD2DBj9xyWjq/R7/gtgkew8WyuBMrWzAIjhWF3e9Wes+1dL59LmXzrInND6VOCIw1Aj3dGm/P5G2Zcus5ueG4mLtgrFMZQh6muUBL5VDYc7Kp6ZH9vsp224KcvPvWikmw09Y64hH0v+q0jdIZhB8uZaZNV2rVD5E83SYEpiICRAinYq1SmS4HAfV9F5L8ta5yIoSXA+QUi4vFhKnGDNgALs7ccLbzyLmO42Wte/Y3vXmi/eCM5PmFjhm5tiI0mDx7MdRC4IOMFMYB8erJh9EiTlsptZwJH39JV7SKT6I9l2PUPHlzcap9aV6goav5mWPm4nRzyYg3Q4tRzkgsITCGCAhpxWLhUu7Ua9jYRrz9V2MoeTii0K15K9q63jrbubMy1OaxzM7Iu3edaRpWM47OJJ5Rwnc7ArCnsOkEu04dBAwnHxSGEJhCCBAhnEKVSUUZCwRgB4g1hDZD0qzUxWMhj2RMJQQwUJDTzJkrTZsWZ667seTOV84/ub/hzaOte0+1H9SLpmRj2oKM1XaDoyR5bq5t+gjmqGMIEqbSMUgS+eQ83pQkt58Pvf8Pw5X3xzDBhBatCAZdyqZZHW9XBGva2187lf+FDQmNBxV+iiIAq1GhYGn43Ducr2v8i+iraD//4DZs+ClJcuo1s3I/vVKfYgGd05YUjrTj1fjfzo4QZvHyTGKOCbvS00EIJBwCU5AQMlsCtnSjx36cmW6xfoKmfBKucY+owFiZjvDdwY5TbYdCcmB22hKjMGn3oBtRySnw8BFgtkhsbYnIi2adFZ+75j6wqeiD79ZuO91xJCT5mj21De7zHAuDrQ15bIq4PPvK0tSFVh3mnVWvd1o/xDqkceqRNL8mStivSCExZ164aq9Us19B9lifOE55GD7Akz8kA9VSmpH7qRU1v9jpOtrgPdtimZnBKDkrGwE++WuYStCLAG+wYhkh53dJ5TvFGRuxaC/WAy32mlYU75nW8z98Nez2mYpSM25dkHp1Ka8HhdP61NF0rNrjua8raBL5OTadSM9pbxXT34RCYAoSQliWM4stHHj5sr9spE/v4YRq1qMoLF4jaCjuQLc71I32srnow9RqRgFjokVBV5NtKbx91n1oP76Q55/n/tLirdMLBmewyxdyn2o/dLL9kFE0rc3bUpqyEAal+fbicbYk1Ro2pzeJGaV8wCfVl3GhkNJew6dOY7Nmoxk+JVolj6a8adfNaX3uqK+6s+vdCliyCXodOZgZDY4UJ44REAuXw/hcaauUWs8JJUwTHvOBVlh2Hqxp/NuBsNObfEVp3udW69OsGOCpA77IIu4RQ4ZsN/ilkKwYBb4IO06Mcx894vxSBEIgJghMQULY6mt4t24b9pgGYJitxXHbjM+Y9daY4EdCpwoC6htFbTFqidIt2VOlZFSOGCLAJp16B0FQGN4y45M+yaMXjM5Apzfsru4+A/czR1p2v12z9b2GHammjKKkWQX2krlpy1PM4+iviNmMCkJKoRLwcKJO8XeFT27Tb/gXZjoR+yFcDNGPb9G5966r+e+32l855VhVZJuXG9+ZpdwRAiNHQOHEgmWh5rNK82nF3SrYY96nNT95uGP7mWCrO+2GedmfWK5LMmtckA31Lq8rO+4K+WXFLPDzbPrRM8uRQ0gxCIH4QWAIQqiq2nqmmNmwh40feoc/bHoZ/9iYQjWR0nZc6r07cUWEs4e99a8Hwn5sV6rmgt9c+GEihBNXIZMrZa09q416cmWccjsxCEQ6RMatrAaHlXMgI0lG5t5gRsq8oBTYUnzH9upnz7QfqXdXNbirDomm187/fV3+9TZ90qy0RWmmbDaWUTtTdUyjtT3NzCFK+GWUrmeoJOiFzFn6+bcED/xNbjqpdNbyKYWXIZWiDoqAwlnnZSevn9724vHqh96Y++QnJ/7VOGh+6SYhMGIEeE6/7CPhQ08pfhcMRzl75oglDBqBjT9V63rtpP53u9teOaWEwhk3zsv+5Eps8aLFHosni8cCQrekJOn4PLPIRrVj0/UOWjy6SW0yUiQAAEAASURBVAjEGQJDEEL1SVP2N779j9O/DUg+QTW/jBShNHnxvIwVK7I32oxJF+bJI7cn6CTfMT3Lku8OdfnCXl/Yja6E9SZ0EAKDIqCNyGuc5+pd580itrXVXgpj8a4ZNF26OYUREHmdWafLs0+/e97Xwfr2NWw/0fpelfMszJJfrniMTbCxdYZLsq0FufbpaHjglAW2Yqw8hLJREODqDlNaY7cdFhZTh7y8xcEMoqQwJ8GDAh2xQgBVKxj1aTfO9Z5pxpKn5icOZn9s2eXpMGKVVZJLCIwWAZ4tI9Sb5bZyub2Cz5h+mWq6vtnAS5gZtStyIMx0g9tO6Uy67M+vSbtx3pjbuvskRVa4T+dbNQraNyf0mxBIAASGIIRAAHSqzdsQloIYGuPpxD8NFpyVdx2p6D5e7668fdbnTWK82GQW2ku+vvLnYSW0o+r5lysfTYBKpCKOBQIYLYf9MPCDrE3TPsRU4UQGxwJXkhFBYE3u5tW5mzt9rXsbXu/0t3b721t89afb3z/V/j7TEfbOW8Gm9Jppty/KXMscNozpwZtTOBm7pZMPvTGFdUBhrO4UU1GKfVmBr7KjfdvJ1M2zDZm2AcPSRUJgciLAZtt1c68LH3lOcbWwaSZxTHfw49lTFGhytb14ouO1U4JVn33XirSb5sYQK8yaqdLp5R9DkEl0vCIwJCFkw+JVuZv9Yd/u+leCcmBZ1hWz0xZj6NLirX+rdqskh8uad19ZeEuBfTq07HgFgii2+ZpPtx9u8tQGZB/8K0xzzCpJmZdqzsTNnseN0Uq5xdtQ2XUSwbDYBhHt+uRMa8HizDUmnVl7JNHXuPxdde5KSQljwJRhyc2y5nX62k+07693VekE3Zy0ZXPSlvZMuypceefxc51HOwOtDn1qcfJcxOoPO2R2+JrPdJTVOsvDShjbSWdbCwVeV+s6d0XBLRkW2p6rP2YJcQWvATTvOmcFSjsrbQkbnBMjTIiaH49CRmYX0EWmmjNuLLkLqXb529CLdvhb23yNja5qk94CQ9Mz7e/XuCreqHoGrm7BCQ2iUbVe6jHNZ7PliNnT1bLudmQDGPhInb6eO7pVdrdgAKekl9C4J0bVrwLLvuBdpv210+HuQOvzZdmfWCFYDGxilfqWGOFOYscVAbRjXsTmE2XPYYd6LhwcE0IIlsls6PHF8a7DtU1PHXYfa9SnWuBCJuXKmbEonyss48O0HzioT4wFxCRzMiAwJCFkhUgzZ81Imb+vcTsnB6YlzVyVsxkPakgJVHaeqnSexDDaE3RiaIJnGAfW771y/nGYa4akINgXrh4Q37IbUm4u+cTi7PXqcAZXlbPtx544+Utv2AXdo8xJeBAFXtDzxkNNOz+94BsWPTxHKbi1s+6lXXXbwB55XlybuwXZeO7sn7qCbaFwAF3Rgca3vrr8p1nW/LAcfKH8sYNN20FcwQPhFN7U8CpoXv8qaHLXPnL8Z+2+xqDkhz0WQoKystQ5rsgxkwhhf8QS5AqmKIJysNZVmW7OTjZiL2nWmmncliC1P77F7BlxJJvS8VE7unBYRocmCLx4VcFtvznyIGbBnj79u5cqHkP/ibzNSYNZaf70lAX5bG9D1l0pvMwrAuLiBxs7DW8Qg1CKLUM/Y0Po8D/kljMYyXE64/iWPeFSg1Yw/Ya5TY8daN92WpdszvjAQuZxlA5CYKogIKROQ1Gk6oNc0MsZL9dSDD0aTOXx7g3DgmLbydaXT4TbPeai1Nx719oX58UIs3q/1BiQ0JPOs2nPJutWY5QWiSUE4haBEb+ZvCFXh78FA5HqrnO1bqZOseqTwRjB8RRF3lX36ovljwQkv07QOwypoiBKiuQNOdt8DX89/p+f5L69OGstiB+GMXCuEJR8JtGclzwX+sNAOFDWurvFU1fVfQJO+dbkXqtNoeK5RFp+eIjhlLKWvYea3vZJPmzqFeAN/pAnqITg6l1Wwm/XvLC7/uWwFDLoDNA0YoQEqhmQnP1xf6XyyUb3eVHQr8zZnGMvavc2nWo/3O5vhmNA2JD3D09XEgQBDKrRgDGbkGObZhAN7J00hsu3EgREKubIEcC4Qyfq8NEGIAbB8IUlP3rk+E8b3dX+sBeNMsyFd9e/xvTV6J94eXba0hxrIXrO1XnXotcyikYda67DGr6owxxeKNnIHd8WOvCYULxGzJw18ixTjBEgAMyz7lzuLW9zv1/X+NcD9qUF5tL0YdbXCJKhoITARCFgtInFa6Tze+WAW7xsR6Po5zBk9Nd1Vf/XjmCDk9ML1llZhd/eZMxx4FGK0SGhmwUTVfhVKUasWGRscFgdaoyyQ2IJgYlBYMSE8NXzf8cH9AzzONCq6QX9+rwtScY0ZB/Kt/ca3ghIXr1ourLg1nV516WY0mAW9SZcrjdCd+d9ufJvUDDC9zoeNmzMlWPDsMaKkRCkiQJWC1terXwyLLOJITyO4JcY6FxRcFO+ffrTp3/tDrnafPW5tuJbZnx6QebK6u7yY637sK9XYXIpaGRZyx4oCU060zXFH12XtwUT7fDfsK3ycT8zRr3oaPU0oFtJNWUuzVoPZw8Gwbgu/7qdtS81e+rSzVkXBaUfUwkB7WVy6VeK2v/3rB9AuUk5OJUqP77LAp0fJsRZHlV9H2c3JH9x6UN1rnKsM0RD7Aq01boq3MGurkC7N+TGmkN8EPjt2hfz7SXoHnNsRVa9Pdc2Df0hm2676ECLvzC0wRkSElOKdPNuCJc9H3ztIdOHf8mbky+KQT/GFAE2tOSVad/e1PT4odatx6t/vL30f27VJcFtFR2EwFRAgMdkli0LM/fSyVfEjV8YbZFYT4VpfM/xhs6dFV1vlQtGnWVWpmNFYdadyzRTnQsd2WjTuFQ8PKJMOPtPdkGXAomuT30ERkwI1REFGzezsQXDh6/qPtPgri5KKm321rV46nEpz1q8qegDZr0NDxfGKFcV3YYA5zqPuIJdCIwlNAgD/lbdfbbaeaY70CFzMtzxgQpKSggywwp09+o/jnMYU2amLtQxq04ly1oINoifoiCUps7Hh6WvcNh4EB8WwFK0Pv86s86CZ3pl7tUVnSfKWnexMFFHnq243lPZ5m185szv0825etHgMCZnmvNnpi6eljSLzRGxskX3PGziSOUH0RejJNJpvCPA2imrRO3DBt2sjvvkml2+cBUtoG+APuHpJyEwZgj0miZHOh40vgL7DHwiSaDzRFfpCbm7/a0gdUeadtW5K851lmHVNMJY9TbQwjW5W4qTZqdhC021gfd00xe1djUFvUk3+xq57ojcfCZ8/EX9irvUINTgI2CP+QkPj6Opm2a5y+rhcbT95VNZdy7FJAB700SqfMzTJIGEwPggoDMJGaV4YUq1h9hQqSfR3r9D5EF976r9Vcdb57reKfeeaAq7A6JJl3bL/NTNs4x5ScMUNEQ6g952sjWE6hjh4sHfoJHoJiEw1RAYMSG8rvhjq3OvAQzuYPf+xnfeqfvnma4y58nOb67+hTfoDsiw7eRybUVw1qJOd7NXXpIh2WFIwhlM8rDaEGxNVkJ/OfbTyq7jcOuSYy2emTo/LIfqnJVq33BJiNNMWZgOFwRMgUd1ETznD3uwDb3A8VnWAsYG2VtWwcrAbFtBWWtfaVtKPtIWaKzsOgFHDi2+BjhZwBvZAN/JhmQselyZcxX6M9VxQ08SITkENw+tvsaLEu0rlX7HNwKK0hVWShSX6NXvqTMZUOf9xmG8Iiebs7V3QnwXhnKXiAhAbYh9C1Fy1nIVbkH6qpAUaPLWnel43xXohglGeecJ+Mi16Gzz01etz78e02faKsMBRzhCSoFYtFJurwyffE2cuUlIImdaMW9UxoJk+4pC3/mOln8eFZNMaTfMjXqNxTx1SoAQiB0CfGqRkFIkd1azJNSXaL8X7MCJY1YE72J4jmn4095As1v2wfEEl3btrJy7VogOI2+Az1Ks3RimsIGTGM7VBr/UEJDn2cfURepwEqYwhEA8ITBiQmjR21LMGXiTQfUHjwgVXUfr3eex3KXN02TUm6Dowyqsdl9LSAnDCygrqcL5wj6/5NPInkFnBt063nLgbOcR3FyRffXts+81imZ0Ckdb9z5+8hdsQ/m+R897k43icTDGpk4o9QbTCyZ8grK/K9AK7aKOF3FbhulpoKM3yIW/2KH+zjlfgWtTuCR1h5zVztOwZcVJ0Ne8v3FHacoClE7VIPVEgU3svPSVLAcx75QuZJLOxhAB1lYUpdYvVVS3lViMa/KTkvSoz55GFUkIE/ad/pa+VyO36YQQmFAE2ChL7fnUIRSHjQrRlTlMqTNTFqFHvbX0U1vP/eV0xxFXoOudupfeqXvxw7PuXZt7HbPmGjDbvCDOviZ85g3F3S6d2c4v/zguDBiQLo4VAjDmzfn4cskVaH/lZNPfDuqSTElri/FCGyv5JIcQmCgEeIMJuxHiVSuVPScu/JA6Qhs6L5InGGhyNj68z/V+HULrHCbbgsKce1abC1JhqcUeDGZLjyfkovHe0HJHHkJivFNZnUyEcOTYUYwphMAQhFB9Hllxe7TpUcPooBQErfKEXOy2qmhLN+fAQyMMR6tdZ/Y3vIkNJCx6OzzKwBdotfMsnmqL3lHkmIHgTb5a7Rk3iCb4+kX0QNjnDHQqsqy9Hlm6TC4b/LCQjI1pJywnuIUA7Co6Hl6BT8hUU3qzr67WXV7WvHdBxkpoC892HjvZdkALw+KokhDjudMPn+squ2H6nTeX3g2yF5LD2Gng4WM/dgY6QAs9oe5UMzxMRh/0yo5GY/Kds4aEOtQGXmgx6u/+xdACsFalNrj+AegKITCBCLAOEEfPn6jpKbU9Ww2OO+fe3+ZrOty8s8Z5rqLrxLNn/gAV4ma2o6baqNk3gqpCtI7VkaObc13wvb9KFe+K01bzmTHx5z6BiMVf0pjIVPLuW4fFUS1PH2l+6n3r/FzQQjWfGPf2WfwZf9mnHBECl0CATykSUgvlltNye7V4wWq0X+ieYRgXdvndx5q6d1Z0vl2OPgmeeK3zclI3z7Qtzdd6uD7dXT9BY3kBPu5hL4r+kY026SAEEhiBIQghGz0rXJXzHNyHhiQ/zg82vl2Lvdp4LhgOYBMtKOUwyMi2FiWb0hxcyuLMdW/WPBdQ/cccb30Pu0d4wx6wQXhEAMgb8m/MsDLHwdmWAu3RO9q6xxXshKM8OCYFk8QOFmBuJ9sOYnP5+RkrYVC6p+61KudpuAxF+Hrmiv23cEIj8vrFGevmpmMHQjbWybEVzEpb3FbX6A954eP0SPNuvFtru8vBMLVx0yvnn8CaxjzHdJQGeYbm8NXKp7CacXryHJiYtnmbsKARcmDaCrsslYLi9YwLdBAChAAhMBkQUMcy6ZbsLcV3YJ3hu7Uvba9+9rWqvze6a5D79QU3THPMVver6C0L5j/gtWv+jXLjCal6f/j064bUItqCohedGP3VmDmHnSegEvGVt7U+W5bzmVVqYvS+iRHmJHacEOAzS7nyd6Taw8z+5lKHOqvf9ea5zncqPCebJHeAN+nSr5+TtGaadU42XBT2znddKn5MrmOnsuOuEJQGRRaykogJwiR0siAwBCFkU8k8f7DxLaxUgVId/KrGda7GVa5OMYOjsefbbky5Y9Z98PsCErVp2gcxMnm96imsMDwBBV2PbSdvEMzXT//4xoIbBLjy57l56ctnJC8s7zrqDnaWte5h22nxfIopC7aj2MAQNqjvNe0oTV0IJeQ7tS92+puhNxSwDCzQ9n7LLiSNdGVZQgBYpSJRo868pfijLZ6G0x2HO/zNHf4m6A0FQUy35HQHOkOyH0lg9/l8R4mqXUR3pXQGWvY1vIHZdDjlgzObkByECRYsrBzGVDgdpsnaydJ8KZ+EACEABBi902a/FB678qAfhmNS+GGGdQY64ZNthxZlrd487cMw4ojAhS6XNyXr131OqjkQPvmKfukdvC0zcpdOYoAAXlZsQZQuyZx1x5K6X+1q/ecxORjKv299RHMbg0RJJCEwHggI1kweq4SCHrnmoFC4YkBW6DxU1/jHPYEWrBUMIU+pW2Zn37VcZzcJxh4mxkzDxn0yHkZqbuxKz/MbU2lT1vFoKpRG3CIwBCHE2wuUcG768vKuE2BW7HGNKoooGGalLsaegTn2Qm1qB4zuppKPLclau7f+DWj2fGGXTjAuSF+9JGs9PM30WOUpiijqP7f4X9+ufvFE+35v2J1lyZ+Tumxx1rrT7YdfrXoSCxFLkufrsWM8L8xPX3Gy/WB0okgf5LMkBQF0WnZw125Ium/xDw40vnm4eRe8xaSas5ZlX5FiTHu54nFP2Ik9u6YnzUFB8N6dmbrIYrDCfV+nv62q+ySkwVXDtKTZ2Hwiw5o7IRNUUYjS6dgjgFkAJpTVPh2EwFRFAJPr6sH+8Hre+NlF332n5kV0uSfaDlZ2nYSpRVnrvltnfApGHJhB652p43h7FpzKyGd2wHbUuOkbrIvEPzpihACvVhPPJW+YDqu5pr8eaH/llGgyZH1sKfxnMFbP0Cf8Y4Q+iY0ZAphEL1nLv2tTgi4u4GWjRnWSQ8Hmzn6MHMOhTm/jn9+DYhyT9WKS0bYwN/czq4yFKX1a+3iTQXVECw3haXcYik0jWW3HrIGQ4EmBAF5Bgw2UmUqNbcSAaRt1WM1moSOvK/WZZ8995Aq6AVWaekH70voF1j9cFAwvPY1ssuiq4af6LuxV4THsemJeEB4NqDbKV4c1PQFY0jhV09FywcL3xu4ZAKkimGBNOL4RQ+2TejPYG0ENSV9TAAHWVBSuzi9t2NN6babpZ3OSHLqBO/4OX/MPdt+zMGP1XfMegMZ4CpSdipC4CKidG7o3Z7DzSMveY617q53lcMiMbVqXZG2cmbqgt8fjwuf3hrb/VPG7TJ99WjAlR3fUiYtejEuuvSjBBpsePaCEpYzbFmbevpg3MD1J1Bs2xpkg8YTAWCGgNujA01+S2yr0S27nF9wVanXBa2iwodtf0e6taPNVd6IvMmbabQtyUjaV2pfkq4MzbRw2VpkYsRztMWRjg72tSxz6hxelpOrJanTEMFKEKYPAEBpClZWpI2r1yY1+V/WMN6KQwNOlkj5Gy9hdlUsygtU3aA9zwx2EV59JsE5wNxYRVI0Fx6n2u4ev4dJFR4/YKJKpnSIuG+iA8THOpyatymECezOi3VUv9LJBllpkgMRC0jFlEGDVzSk7OwJTpkRUEEJgaATYXB/rFGEGv6HgBrjaOtq6783q53fXvwaHWx8ovWd+xgq1i5aFtGI+rVhuOCode0lYedfQkinEGCGQfsMc0Wpo+MOe1uePKiEpZctsU46j56U1RkmQGEJgPBDgOd+5Np9rQajW56vwKq+/GWr1hFrdYWeP03hzcZptUV7ymmmWuVmCOiGrDiujR5Tjkc2+aaiDw2qfhH4y0yjqtGFi30D0mxBIFASGIITa8xpFuy7govGs6Cco6uFWY7AQKu3SuFdUVHah96ImvDdk9B0WoTfUhci9Zz0xen/2hI1ktVdg1P0oaZG7mnw11UjUi6LQj8mPALNzrvBKaJ9XpBrsbAYQkwWXblmTv8BUAkIALbynF2ZtHSu0M9bnXQ9nXa+cf/J0e9mjJ/4b5v13zPoX+O7C0kExf5HcfCp89k3dyrvowRiHxhN5V8J2FMnV/3Z3y7NHu3ZVpN0035jjcCzL5+A6TeunmCEpmD1VyzhUCyVxAYHeVscm99XxEvvb58XpPFTjr+lqebaMNdKgJAd4LrxUljCqrEbj5fV6x+pp9mX5ScsLBItBwAbAqg5cS4M16Dho1Cjeu+0BKBGKzKKBPXN0EAKJi8AQhDBxgaGSTx0E8DpTnCG84GQjW8Kj+jCaOqWjkhACw0JAFEQslv6XJT/689H/ONd5whPs/uPRf99YcHOurXBJ5gxeZ+a8nVLlHt30dcMSR4HGAgEwveSNJdiQrfWZI4EGF7SFbNityFm3L7YtK7DOSBcsRiKDY4E0yRgBAkx9x8gR/jIyCB8wclgKOwPB2k7XkTqNyPmru5zv16K5wteDYDPgRJdqU7obLdkGx7oFloWzbfOzIEXjWDJr1iPIwPgEZYZkPOeW8EeZZdWb6EkbH9wplXhFgAhhvNYM5WvsEMCb6JlGL5YHJDPH1mzKkw5CIPEQYOMdtP675n3tbEdZeefxXfXbdta+YNJZA9M/tlynE/1exdWceLBMZInVvkiB7ah9SV7L02XwwBFscXnPtLQ8U9a27ZRjeUHy+ulYdqVLtkxkLintxEMAfUWoyxdsdPqrOryV7TABdb5XpcGgcTw0XWOmA+5hBKvBvjgPF21L8vx/vF5ILzFsukFIz0ZXw0IydxFsFraXG8YRlIz3csq7HQGTyJtgOtRXAxpHWaWsEALjgAARwnEAmZKYYATeaQ9iJj7bJOYyP2Ls1TTBGaLkCYEJQYCZHipG0bQgY1VpyoLpyXM7/S3Pnf3j4aaduSkpBbWd8AnBOCMzso7D8duEQBbbRFVbUIa2MSep4Csb5WA42Or2V7Z7TjV3vVPRtbMCChlLaaZlRnraDXOxf7c2aGW1g1piddTTlbHBN/Vqsa2rqSBdNQRlzQf/1XOcsHbU+1LEX85X2eEtb/WdbQk0ujA9Eahjm0jjEEw6x7IC88xMtR2yK/p0m3V2Ft/jpE2VwwSoFqaRpqklFpeNU3v6avxSiUWXqzJCVio6CIFERYAIYaLWfCKVu9ITRnFnWvWlVr1qApNIhaeyEgIXIdAzNDPpLIsy13QHOt6te7nOVXk8HC4AWWyvkjuq+ZQilXAIxDEuQi72PwSDzpSbZMxNdqwqStsyp+X5o107zrkP1bqP1MMlafrNc5NWF5tnpPeMuZEflRaqI3DV9IEqLPZ1NNlT0JoM9nLmOVE1CWWMUPYEO1475TxY66/qlENhuDiSQxInY9tMzlyUal9WkH79XLYO0Iw9v3S8OKCbbtax9DRAdUZp8gDFGwUBn8mTYcopIRATBIgQxgRWEhqHCOh4Ts8UhGwiU50hjcM8UpYIgXFFwGFM+dicr7xU8cg+sfqaZr/e2Sx31utSCjUl4bhmhRJTEWB2dhis63XGouTC+zem3zzPeaC645VToQ5f4+PvN/+jDMalhmxH6uZZokUv2k1aJJ3DpDmVJRQJgcEQAGuTFAlrAn1h2R/013VhrqHjjTOKL4T3It6NOrteEHW81WgqSLYtzkNjM01P0xSI7MXJ/g+q7DPYpbZyGBoIGSWDZYPuEQKEQPwhQIQw/uqEchQjBNTFDOx9pq1tiFEqJJYQmFQIzEiZ/9XlP9lT//q55j/PaW33nH/bVrBENJg1W7Le70lVpMmcWa1/Yvo+pmZRzCXplulpqZtmdW4/4z3XClNS5/4alK/9heO8UYchOwvEcUkrCsUkMwIbsmzw8XExALiPQxvHsxF9v7t9rlx8n37FOwL963SAHAebXdgEAtsD+huc/so22IUGqju0loHQltIM0WEyYJ/AxXk6q948PV2XYtbksjCskWGeYmi7ZN2czeEjz/dtYgNkhy4RAoRA3CFAhDDuqoQyNNYI4I2G0RX77tEM0vhnrCEmeZMUgV5dOb8279qmlXrupf+oaTpQduLn1876dIY5l9ESFkIbGU7SIk6+bDPIeypGVcfwvD7DmvmxpZLT7y1vl1x+79kWLO7qfve8871qrXhw+CHaTKaCFF26RbQYHCsKtevY/82Q61CnwNg0GBvc40vdoFLbqlfV+UTXr2ZBgWDUS2oQxvk3c4yiOsuM1FePTahWga4DteFun/NgTajNI7mDoU6P5GRb8qLK0TaMuQ7rzEx9lt1UlKKzmfTp1ujSahJ75EaaZHSIAc57Gu4Ad+gSIUAIxDcCRAjju34od5eNQI+JKF5r6mjosuWRAEJgCiIAupCZNsfHcf6w72jLvjPuc2tyr91YcBM8CMKdxBQs8CQsEuxC7UtzeUVIWjNNkWT5CxvUQihYXhhq8bS9dspzspFZQPB89044B2IHc/ihY1uv4rAtyoUiCAwQHWHGhxZqF/vwPvSWrKekUX0POpPhDyoritGzdYDVnZI32PHKSVyWA2Fe4qRACCVBzQt6EY3HvrwA7mFEq4ETBbY3oChES5gMZaY8EgKEwNgjQIRw7DEliXGFAMY3f67xCpxiHXgpfFxlljJDCEwMAkwZKIiC2THP1V1lEfYJ7a+efyrdnL0yZ9NF482JyV2ip8rG/OrMluoXUeEN6MtE0azXiED2x5aBwuV8eqXr/XrJ6Wt76aSKlyJjr3B/CNQRfaAckLreLscHt0D6Gv60D3+16Ok3z79AC3EJfmhzHLZF+Txbck1HvCAQqO1yldX3yY3sCXXsOINKE3qrkLUTRu8EVB9aiKATxTSTrSAFtqBYdwpPoapNstoI2DOPaNoUAVHCPtDST0Ig4RAgQphwVZ5wBcYbj+fBBtelYvNcOggBQmBgBHhLqn7DF0J7H76xpbVNz5+yM80Ss0bTeMPAkejqOCFwwY3/hbNeEoAujuN0SeaUK2cgN+m3LGBWhBwXaHL6a3r2DAg2OQM1nYzuQQl8vl0JMQeSCOM739724nGcaAfbQLz3nP7GIwKMw6mGxGrmUInQGxuy7FrN4hqqz1ScJugF2H+aitPx076qUG0gF0rDqlitZk0Qu9snxIWwIz9D4wu4OEXGlvUjj0wxCAFCYMIQIEI4YdBTwuOGgDY8GrfkKCFCYFIiwItiyQapal/43FupqtNBNkzEw0MkYRJWJ2rNmO0wZif15B2aI3AAlU1gZzlZkth1hQ80dHFhpieKBJM8Qe/ZVqw3671Ef+MFAcvMDH22HcpiZhisHQon2Az6NLb2r5fTKYa8pN69AVVl4YXajXlB+ORcNDO5pVwJ+3m9JebpUQKEACEwdggQIRw7LElSXCJQ5ZODsjphHpfZo0wRAnGCABtk6rCsSN+rL+BPth1akLHarKOBXZxU0XCzwYg8aEMUE1DZIJzJMIJvzEvWPMpAnHlaKqOJvSFZLEVJuXomu0ZHfCGg8HoRWjeV1PcQQnWus4/XJ7Xi1RsIqlbthfqNdYHEgmUsZyEvxzTQdBAChMBkQoAI4WSqLcrrSBBgL0MMg447g35JNov8bBu19pHgR2ETC4GeISZjgwp3VcGt+7yvVTvPBqUAEcLJ2BCi7ApZ9lWSz6pY+89+XjgunLNY+G8kY78L6MTb2YXa0qoV+Yu+pGkPtQq+6Pp4lIMX9OORzBilgQFCQMIYgX3UFbXjx5zHqAQkhhAYSwSo3x9LNElWHCHA+CCb+z7uCvtkJcckFpqJEMZR/VBW4hMBPDVQH+k66/PtJe2+phrnOaZxoIMQIAQIgamFgDMk/6bag/7NLHImUaWEU6uAVBpCYEQIECEcEVwUeNIgwJbF8JxLUs57QyGF30geZSZN1VFGJxIBMWsWrzMZmsvnp6/AQ3Su81hkvdJEZovSJgQIAUJgTBE47g4/WudN0gufzLfmmsQ+SvUxTYqEEQKTAAHSmUyCSqIsjgIBLJaBYuOoK3TUFYbHs/WpBtWA9NI2NKpGkdlLqX40tBU4NBQeBfIUZVIjwFvTOfiqD/ltTRXq06IuSZrURaLMEwKEACHQDwFPGL5QOYdOuCETa0r63aYLhECCIUAawgSr8IQpLtMQckqNV2oKSGtTjCuTTIMX/WzXsR/uvkcLg5iYLFSX6g8eie4SAlMNAaF4HWe04dkRZVngxXMdx8ISOZycarVM5SEECAENAbzuiQ1SYyAEgAARQmoGUxMB0DmvhAWEISg41qcaFZ7tzjzIcaBxB88JVr2j0FGq47EynvlyGyQ83SIEpiQCUK2zqRBZztQlZ1ny6tznd1Q/PyVLSoUiBAgBQoAQIAQIAQ0BIoTUEqYmArAXdYWVHW0BFA8LCHlFUHWGlyzs2c5jOl5ckrV+Q/4NetHYx3HbJaPRDUJgyiEgJOdjG7EsX2h17majYHqvYfuUKyIViBAgBAgBQoAQIAQuIECE8AIWdDaVEIB275E6T3NQuirNWGAW4ThRXVR4ySIivF40zUxdaNbDXo4OQiBhEeCFguVYdquXwqmWLJ0gaJtbJywcVHBCgBAgBAgBQmDKI0CEcMpXcYIWEBrC31Z7TAL/oRwzVo3DpfSQzvNlRQpI/gTFi4pNCKgIMOdKggiTaSUc4OCgFwaktLKA2gYhQAgQAoQAITClESBCOKWrN4EL1xZkiwanW8TpFh3bgUI9BsEj3z49IPngQmOQMHSLEEgEBIT0ErYXYWet0lUL9aC2o2ciFJzKSAgQAoQAIUAIJCYCRAgTs96nfql3dgShEkzSCQ69wHYkZJ/BjhnJ85kjGfahgxBIYAQUTsxfjMdFdjYpriYoCId4chIYKio6IUAIEAKEACEwNRAgQjg16pFK0ReB7qDEKxx2m801UiPvCw79JgQGRUAW59/EBT1K0Cso5Gx3UKjoJiFACBAChAAhMPkRoLHy5K9DKkE/BAKy8nCdVxB4h44XaEDbDx+6QAgMhoAi8IIBAZSAW1EkMhkdDCu6RwgQAoQAIUAITH4EiBBO/jqkEkQhAN8xGL9i+0FfWAEbvC5ziP3oo6LSKSFACKi21dikJQPLCDm57ogS8g1pbk2oEQKEACFACBAChMCkRoAI4aSuPsp8XwS09U4nQAhlxSzy82zYYp4OQoAQGAkC8DOauxAKwqQwJ9Ki2pEgR2EJAUKAECAECIHJiAARwslYa5TnSyLAfGAoPDSEfplbZNdb4T+fDkKAEBg2AphSUeCUV2fgUvLzArJeZvtO0EEIEAKEACFACBACUxgBIoRTuHITtGgNAaneL8NwdGMq1kHRaDZBmwEVe3QIMI0g3DHpzLrsubzMbeiQNDNs9k3awtFhSrEIAUKAECAECIH4RoAIYXzXD+VuhAhAPdjolxr8YcTbmGokPjhC/Ch4oiOgzaDwRrOQtwiPj12Se2ZV2A1ihInePKj8hAAhQAgQAlMSASKEU7JaE7hQvFIfACGUsSV9rpkMRhO4JVDRR42AxvsMdt5oK/UoAclf3X1WJYqkbx81phSRECAECAFCgBCIXwSIEMZv3VDORoFAQFLOuEMBRdkA9SAdhAAhMGIEeBzQCgqOTN6WaQ7LAdlX0XUCYniYktJBCBAChAAhQAgQAlMOASKEU65KE7tAcC563BWGaRuzF8XB9lCjUWxitwkq/egQAC1U9/AMycEG13mJbUhIByFACBAChAAhQAhMQQSIEE7BSk3kIsGbzAl3OFkvzLXrNSaIUW0iA0JlJwQuH4Fq57nDTbskOXT5okgCIUAIEAKEACFACMQbAkQI461GKD+XhcBZt9QWlObZ9WaBWb7huCxxFJkQSGwEFJ7PMOe1eOv/ee7href+2qtvJ2VhYjcLKj0hMDUQYK6T2Uft2ahbmxqVSqUYJQJECEcJHEWLTwR2dgSQsQUghCJRwfisIsrV5EFAUQSF/8qyh+alL3cHut6te3lX3TYMnxTam3Dy1CHllBAgBAZE4KKeTCOGA4aji4RAYiBAhDAx6jlhSrmrI6Dj+dk20SgQIUyYWqeCxgYB8D6FV5KMqZ9f/OCK3E1YRijJEnYpxOXYJEhSCQFCgBAYJwSMgiByvF+WT8LvALSE5DRrnICnZOIUASKEcVoxlK1RIHDMFTrtCeeZhFwTbTgxCvwoCiFwEQI9629hNsou96gF1Zl0mm25CCj6QQgQApMOgfl2nUnggjJX58c8l/pv0pWBMkwIjB0CurETRZIIgQlDgC0AULgDnQHM8c2x6fGZsKxQwoTAFEOAsT/2X1ML0sBpilUvFYcQSEwE0g2CurJE6+BUuwea6UrMpkClVhEgDSE1hKmAAAap6MnVAatiE3mbjvr1qVCtVAZCgBAgBAgBQiAmCCgYN/DOkPRmm58NH2jUEBOUSeikQYAI4aSpKsroIAgocBLGc3+p9YqC4NALPbqMQSLQLUKAECAECAFCgBBIYAQ+XWBVeCGgcCEZvrJoaXQCNwUqOscRIaRWMCUQ4LnOkIydsy0ivzpZT5tNTIlKpUIQAoQAIUAIEAIxQQD8L8sA73NKvV9qwDJCOgiBxEaACGFi1/9UKT1sPU44Qz6ZAxfMNoo00zdVKpbKQQgQAoQAIUAIxASBjWlG0EJPWPFgOplMRmOCMQmdNAgQIZw0VUUZHRwBrwyLD8UsKPPteurZB8eK7hIChAAhQAgQAgmNAM87sEuV5pKO+ZQhk9GEbg5U+AknhGwQ3+u+bpyrAwnj32V1AVrm1e+ezKul0Qo1zsVJ6OSAuF/msAoAa8TRpmmmL6FbAxV+7BGI9JNqn3l53ebY544kEgKEACEwQgTUcQK2VcVfNmoQaAnVCAGk4FMMgYnddkJlUhO03qvJL7/c4rOJwtXpxgzjKLet0/IO6/NG7GWjHjpOmWnVm1VnxlOsrcR3cfgTLpiMKjNRleQ+Or6rinI3SRHA0KnGWY7tCGnCZZLWIGWbECAECAFCgBAYEIGJJIRYxHuoOxiWuY1pBih2Bsxf7C5ub/P/Z4XLLgoZBuHqjFESQmQvrHAPnOhuho8q9YAFwndn2FcnG2KXc5LcHwG0nvYgcyqzIcWAaYbxb079s0RXCIGphEBx0uwjLXvOdR7t8relmNKnUtGoLIQAIUAIEAKEQIIjMAQhhHlQWFaebfS3heCCid+Sbpxhgw6MzRDjyy/LLzX7mwISxt9XpRrmObAbeA+vY9aY7FB/YoDOTntuqdfZ166OwDdPdbok/h+Lk5akmCPX+5wwNaI2Jw2hkIFf/UT1iRL5qaogGT1QZbDokdntBp8UUjivpGDtWSR8/xM1TTVVdo9Zm0cksKwgAYU/7gp6ZSQCTijYdbwTHPESOWShVSwQl6WqlUWzv7pElP5ZoisDIABUWS0rIOTspKflDRCQLhEChMAoEChJmWcUjUEpWOeqSDals26MDkKAECAECAFCgBCYEggMQQjBWED5vn26C6NsMKGHazyvr0pPN4gKY0bKn2vcPz3vwQnI0NMNuldXppt75bHhAiNPjD7hv8bH+iDml0HG+JAs1/iVJX3uRf/Uhh6Qxkb5bKzPBGtUMzrYJc+ZBaHGtqKJwtUZpvecwRyDMMPSm+koCRFGgcQ1vgYRjFbiuDAUwhmv45Vnl6eVuUKvtwR2dgaib0fJ6z1VuYpagp6AarHY+QWpvWHp7/AROOkK4YMqyjSJrLoRkwAdPnwUkhAYCoEsS4FeMIQUDzih2q8PFYHuEwKEACFACBAChMAkQWAALhSdcwyqZ1j0a1KMZfDpLyldIXlbs//uAgv4S0BWnmsKqCyNLzCJm9MMul4PNVC5dQXlhoCEbQAgIUXP55tE44DL6hjxGmLkzm5DYEiu80OgglV/BWbRBkXQUEdIVmr94Y6gkqIXiiyCCLoQFWl5sv6ZZWmQMSAX0xKVOKUtIDUF5CCjgnyuUcBqQ0OUEJYznptt18+26eu90i5GCC95ABZnSDrvC0ODaBUZJshPhVeaY9UZBgTnkpLoRn8EUCuskm7KhKpZ5e39g9AVQoAQGBUCqpGH4jCmdTk7oCFcmrVhwG5zVLIpEiFACBAChAAhQAhMMAJDEEKwtfkO/XdnOL54rKOG7dPC/7PZ97F8M/z6lzmD4DagNLDTuy7d9KVicDT2o9Ij/a7GXeENw3JS41EWgSu2iF+ZZp/FgrCBe4tf3t0VPNIdBOPCvwPdIZn3aUiUWsR5Dsa5mBqQsTCuJSA9Uefd3RnsDMsw8jQKfKZBvDnTeFOW2aLSQgTuDik/r3RVemG8yiXr+H+b5fCGlV9XeZBJt8Q59PxHc8wfyetx9bK3I/BIndcraVRUuSPHfF0GuxXNF7GFwb6OwKMNXviecUmKpOoGk3TCXJvuviJrobk34UgcZIJpL9mf/gfKEpCUJ+t9r7f6m4JsewS9wIMnY+WiU+K+XWLbkGbsH4uuDB+Bal+42if1qHAvUQvDl0YhCQFCIBoB1TqCn5O2pKr7tDvUzXrxSXioFvuTM+uxRJtgiSW6JDtuEVCn+dXZ4xpfuMYbnjMcPUPcloYyRghcNgJDEUKwHJ7LNAoggzi1C1y1X8YO4EuSDFsbvbhkFTgPls8JnB0UR83N1052lbmx8FCNgKE5VtYpwmlP+IRLenNNOrPn47hvn+p8uysM9ohVd4j1RIMXHzU2l2sSty5NSTPpERNBqzzhb53qPgjCx36xA3/OecL7uoKVXvmBYqtJFCCiwh18scXfAc8uCpek4490h791srs1FGbiwVL9XJLIXZVmzDXrgpJ8qCv0elsAcpA0srncrpfTFbEn+1oiXJVX+u8qz+HuIELhfamGZW5jjjqDiPW9Uge4qGoq2xN+kD8sOs8/0+D993KnyqmRKCscCgRbW5uogHOyEIOIoFtDIYBdZT0S96kC61AB6T4hQAiMHAG1CzTrrOi5GlxVDe6qXFvxyKWMdwyiOkMiniAQJUgxh6xuChCFAFvAg3HYp/JMj9T7PGGZx8ZVtPNEFEB0mmgIDE0IgQieEmzyhmfnk7mWPzX49nQGC8y6dzpDC2ywEuWPuMM+aNsQjjEf7vYcs7nVDzebm9KNs2z6jqD0ULlra7O/xh862R2anwTHM1yRWZ/tlZkNKnyMclySXjD38jFYn+pEQeVQik+S/1DjOeAMwlPLFammpUkG0LA6r/R6e6DcE/pznXupQ7clywQJJTbdljTjEVfotDvslpQvHOtE1u7Ms+QYxe1twfaQtMBhgOEoiqAThMVJeviihN7v/e4QiBhbAcn42EWMLMMoXJFiSBa5danGq9OMBRax2hO+71j3WV/4YFfQIytmzTsM0h7yYKKVrU3wX8PlGcVfz09alGSAPe1jdd6Xmn3gxWbaKGFIDAcNAGC7MGOAiYdBg9FNQoAQGB0CrJNUuCsLbnm54vEOf0uHv3VSEEKWa0UJBAJ6vV4U2aKB6OIHg0Fcwa3oi4lz7nQ6z507l5qaWlw8Cbj9qOulqanp/PnzRUVFubm5oxZCEackAqqaQbHrRMx3nfCEbpBMGIzRQQgkLALDI4QK55HYckAwmbz2wGFnKEXnx3K4O3Nsu7uwjJAxN0YH8bZVuI/lWxYl68+4wjs7Am+2B2AkilV/7I7Cd4Rg0qnHs/dAif2aLNO+juDvajwwK70zx7Ku12YS6/QcenVFncI1+OVtrX7Uzapkw535Fm2dXbFFl28WflIpQR/490bflkxQM1BK8T/mJB/tDtx6qANZyTQI3yixbck0QW15e45c7Q/Pwd6A6hpH5GRDmgkmmt6wPHdnK8uWpv+7uAmAT36+yPp+t6HOF36p1Y8gyToh2ySc9XKusMI0egjP/g/rQHR28BzWQL7Q4odxo1UnbE43zrfpqgLyUtqjQsNntN9onPu7AphEWKRON4xWDMUjBAiBgRHAbIvW5c1OW1zWsscbdEWHO3PmTEtLC65oehh843z69Ol5eXknT54EH5s5c6bNZtOihEKhw4cPC4KwbNkyfJeXlyPurFmz0tLYiu7IgWD19fU1NTUWi6WkpCQlJUW71Sc80mpubsZFk8m0ZMkSsL6IBO0ElG/nzp2FhYWzZ8/uc+vNN99EutF0SMsbiKLVasUtfEeidHR0nDhxAj+10qFoyFXkbvSJ1+s9e/Ys6BYC5OTkoIzRd5HE6dOnfT4f7oKMRXNUSEYqFRUVZrMZuY01Uz1y5MinP/3pW2655X/+53+iczhZzoEVyF5paengQG3duvVrX/vaQw89dP/990+WolE+xxEBHqPB/6t21fnYiqRLOrsfxwxRUoTARCEwDEKosK32oCHEgAAKuk1pxpdaA9iKHVc2ZxgPOPEQcX7NohSeZhT51+c9YHGtASy9Y3ajmKK1wqoTB5tiVv9wbFHf2hRjR1DWXpWlVnFtSt+N+0DzarxSN9Pjc0ecoW+f7lYtLZkI8DGoASENHl+Qqx5epv1Rv+8ttN6QZRLYfDCfZRLxYdG046LQTDPYG783gPoXCxd/V+Xe3hZABtg2EhzHxGlxe757BF0U7dI/PpJrPXa2uyMs/7nWi9WD2HgRnDNZz69MMughF6XtlYe9GcEYLy2J7vRFAM2v0Q/DZW6Zo28r6huUfhMC/RDAQLz32e53b6wvRKcVfT7W6Yy5vJ7uKcWYgR6zsvvUoqx1RpFZZ+D4wx/+8M9//lM7j3x/+9vfBt/4+c9/Dr73k5/8ZM6cOdqt7u7uBx54QKfTbd++3WAw/O1vf3vhhRcQ4JprrtEChMPht99++7e//W1VVVVXVxeG++CKt956K2LhvE/49vb2b37zm0ePHv3xj398qUp88cUXwd8QLJqbgab+13/91ze+8Y3i4uJInnfs2IFsu1yuuXPnRucZAZ588kmUJRLyE5/4xA9/+MPIz8gJqOl3vvMdUEfIz8zMvP322z/3uc+BDGt5a2xsfPDBB/fu3QtaOG3aNKR15ZVXRrK9b9++H/zgB9XV1SjmmjVrvve970GvFZFMJ9EI+P3+P/3pT4899tjDDz+8YsWK6Ft0TggMEwFt1AU7MrZ6p3cANsy4FIwQmHoIDEkIwYV4DLg17R+UdJsyTH+o9TZwysokfbZJx3yH8jyMPzVe9WKT/8+1HrA16L6+V5q0NFkvy8Lvql3/W+0ZKXZ4PEPqTDNEgz0WWUDqelkTLmHGmlO2pA88oZMDB56wBWd8dKTJsvBhRUFBHoXbUI5b49DDRQ1MUjsC8kPl7q0tXpbySA6NB9+Wa4bh68/Pu895wzAT5RS5GS51eB5ctyUo//ssu1nXw1phGbs0aSQJJHzYOp/03TPdF5pHwgNCAIwIgfEcC0SnFX0+ogxPYOANBTe9VfuCO9gtKz2TVqC1a9euhTINOjFQO0mSPvnJTyKHYIAgYNDhNDQ0QOcWyTMCQO8HQoiIuNja2griB60aznEFdx955JGvf/3roIIf/OAH582b19bW9vTTT//mN7+57777wJS08B4Pe6GAOn7+859//fXXwQY3bdoUzfe05DTKDYUklHIf//jHCwoKItch88CBA2Bf2hV8g6SBCkJj9tRTT9XV1UXnWZbl559/HjlBclDfIfDy5csjESMnyPxHP/pR6Eu3bNkCFR/QAKkDG7znnnuguoRwMMDHH3/8hhtuyM/Px90PfehD+/fvnzFjBiQAkxtvvBHq0Jtvvhm88S9/+Qso5f/93/8lJdHLIALwhRM8O2hvgBqYX7g6kjNE/PWvfw05X/jCF/orlkciKbZhkc9f/epXyOcXv/jFeM5nbFGItXTmhyIMz/mxTofkEwLxjMAQhBDPBxR7AZmtIAS5sutFKLWwdPC0V7ou0wJLUAdjMXChyZYCQiO4rzMI3x5Qpt2aZVqVivljBf5mVGPPwciZpmDUYGI7xUsy/HnqBS7HJMCnKJ5SHad8vtCquoDSGJ4SlNmysSS4nhnoAAcbxnzPhbh9ugHkYV8XlI/IPvfdUnupnS0yyTCJqUZE6SWlA6U78DXV3GpHi++kJ/zHhdAOclA5HnIGj3SFYIwK0nnWE4Krntm2HkJ4IVsDi6OrfRGARxnU4LXpBlDuvvfG6zdGtJ2dnXh5JycnYwjYf2yKMSUGlBh0wvgNY8oIGcCgFiNmZBMXoQnpH3GYJUDqGHEiMIREm7rhCnQyOHARSY9a/jCzMemCoVIyMjI+9alPYQg+bpmHHmnjxo2bN29+9NFHxy3RMUlIbbcX9Ze4AmKDAyTq+PHjaOE/+tGPRpcWREE3+K//+q+LFy8GA4woFaGs+8c//tFnNAyqCZ0hzD7Bsj7zmc9A2dg/UQgEbTh06BAa/3vvvQcapuafc7vdv/jFL0D5wEU10oi4YJtQ6OFAeO2R1AQiAMw4ofRbt24dcqJJ6J8WrkDFV1ZWBoKBYEajESP4O+64AypNgAPr0Ndee+3ll1/G3V/+8pcIDPp39913f+UrX4FyFTLvvfdefOMWaDDufutb34LuC3pR/BwkxQGzkQgXAS/aCaxA+1gaD7/saKg/+9nP0B+C5PdpWsMXMg4h8YKAalprIfGcz3GAIkZJwMX8PJvupCsMB/AxSoLEEgKTAoEhCCEYESw/sT8ECgOXLKc9Ibhj+WqJvdwTvinLWO8LY0EdbrWHlVOuUAlsQ5m+UIEV6aHu0Mx2v1kQ2oLSux0hxqPUHSmWJElJhh7mA7NJg8DB3efLrf5c1WtnQ4C5MG0NSXfnW7FusMiiW59swELEF1r9Nr2wPsXg0AuywrcEwqc9UoUnfH2m8QPZbL4WFO6MJ3zSHQYVxL8znpC5kzG3NJ0wzaLrXTzIasQVkuF4BpkGz2RMjePq/OEDXUFQiWS9MB2BwSkUhRWEBedeaA5gZwgcbUHgwAoCV6YnnaG0dAHFQHy4t+lkZrNcQ4Ap/sBN4AQ1Wc8Qm2YS2D7pauH/XOM57Aqd94Q/kW+ZZ9fPtFs2pISx94ZXYltlaKazCEnHiBBAXaOa3u1gC03hNEjXU2kjknG5gaGy2LZt28GDBzFqhCETlgbNnz8foz2cREZyYGswOcPgFbxxwYIFsDdDGC1hGM5h+Ijz9evXw6otstRqRNnCkiSMwjEYRSwMJaGg0KIjOWg23nrrLbhVyM7OXr16NbQ3DodjRMIpMCEQQaC3X4xcuNyTyDMCQdCJQaWWlZX1n//5n9CwRUTjoQDl035q4UE+YXuJZwds8Etf+lKfGZBIRJycOnUKYnG89NJLeC7sdjsuvvrqq/CnAkqA5wLPyCDRERgp7tq1CxwSEy7/+7//i5WK0Ij255/gjWAXyBVSAV1BRDxoeNhhIIp5IvQMOMH1L3/5y7iFAyayK1euhPYSOUREnEAylIfaXbAUKCp3796NK8g8bGKh3sRqSdyFTCyYRG+Dngd2p/CVghyiLKCsyBXSwuwPbE3BfpFhLBQEF8V6SNBdTXL/byzGQx4gB7GiJ4zQa2ExJHS5WAKq4abFBUXBdQjHdSSH2Q3IR9Ig0phbwTmEYP4LOk8cqDv0TsXFxVhOqdUd9J8AH3pRmPuiaBCi9UjQCUM+JtTwDQ0wkkBCMAcFsAiJn4gOjbEWWLuI6gOGQANRIAoKQ1QTJOMcul9MK0S6U4Svra3FRSQHU16ER7YRDFlF1w2xWrq4HjkQBQhAt4x0YUIcUdWi4Mg/EkIfDmy18Lj4/vvvI2nkHDbSWLMKK+UImBCFZgZRqCZAgQygjiJ1iqqBKK3N9MccaaHxaPlEsP+fvfMAjOuo8/++7Stp1ZslF8m9O3Gc4iROcXBIbySUEOAIvdyfHOU44HIEAlyBcKEdkFw4ICRAKoSEJE61093i3m3Zkm3JVrHqarXt/T/zZvW8Xkm2ykraMi/O6pUpv/m+eTO/7/x+M4MYYAuGlIV6C9qy+KbY43RimPuFHsT/4k8KHWihlW4bhDCFZFaiKgRGA4HTEULN8uuazkca/IIlaZbv7+m4ucz1T9Nzlxe7GnvCd2xvO+wP84jd1b+xs/WumXln5TqeOebvilheaQls6gwyOw5zX6tBGulX7zvU5dP1z1flGLP7hAEQ7+32rtCbrYF9Plz+MJ1F2DbQY7WsKHbTCnttVlZ2qfOHd3eFHjzc/ffGHrdgTlpnKIx5kLOz80Unh2Bkel9tJ5Y3wQ8s2v8e8nnquzET5ti0+xfmTyRar8XwgbrOJ46yEI5YOpVmmsDPNwXeag0Sr8xp+8Z075l5Do/NujjX+UpTD9ss4jj69yY/4TFDGWui8qt9e3fHN3XLFaWuvR2hb+5qPxoQEx3bQjoFxYHl/+q6/nTEh+Y0O9v28wX5TqtwGg2GdZjks43+jR2BMpfgqJ1B/VggDP9c4HWyST1yq2MYCPCW641KON/roOaM8YFWwbQfCCH6BF5k6AewMrzCGPW/++67MSnDX2WLAABAAElEQVRQjVEF0CM56M5RmLAYYAZ54okn0BiwUaAWcBOuSE+PAjQ8+VEO0MxQ3V544QXMDjIREmciFro1hkHUJhQLdGK0FqwQpp40vOxULIXA4BHgG4HemFWOaolVluGJvimgMVM/sZVBjfhw+gaQd/igcPZDBWck5UMf+tCpFeLXXnsNVRt2hHWOGYOo/tgMWWhEauFwIY5TE0KU+DfffJNMoYV4eEKcPvnJT37rW9+KEw+BGXBh7h/dCgeXpMx6NjAQyBKkCNKF+m5SCG5CLGGJkhCi9J977rlmWfhmocQ84j48Bws2RYAQQgYuvfRS0ONbpiAsqUI7Q8sDGt/73vdYhgdCwgF7vPHGG5999ll4FMjDmUmBHPvKDBFl9ApuCeX78pe/fNttt0nkadNIkDcFFYEo0sohLdHJFLsc3ra8x+LiYt4UKWBqY4kgxqSw1/FSCE8wooDABz7wASZb8gtV5kUAI40S+DNABpi0Rbj7XnnllZQLaXnKiBXtGCSN0TG8ZxcvXoxL8D333IMtF8EgZgx4ATLNHS+UvHi/NKSQvR/84AerVq1CKnKnyEDHWBivG5mJSHFoeOGcyEy5YOO//e1vEY+njCkgP+DHgsNLZ+opZmqZL08pDmhD0RGYKk1GsD5qAkZg6hLUFIRZSIk0KTsiUUNwAQA9ikbNIRZhEJsK8Nhjj/GmCA9JBmF8Q4Dohhtu6BfzvnJyBwyhjrxQSO+dd95p2tJjizCW50IbM3Sv4LqHwHsss05UXhRBlEIdCoEMRuA0GjSshgVO4C184/RxbJZQA9tjYU5d6wnpmOmgcDzA2nagm8VXIu+r8NxWmcVj1nxs6InA5dya9ctTcs7OhbnpR3vEgp9mezHX6/z8lGyvnRZTZ5WaI/5QV0ivcGrfnuG9uhS7H2Y6HTvhfQvyVxS6yKaxJ3TIT5pB2GCJ03rXDO9HJwnzIN9xoz9c2x0+GjDaJIveFNTr/AQO7fEFA8Kf8EQLRbA6X4h9SA8bktBVtAXDdd3hWn/4gC9EEdBD8Op834Ssq0rhkbpf15midrgnPNll/dmc3IlOO6yvridoRGdtm8h+X4hi1vpDLD9DTrQpzYHIISFPcJePrdKFgMCIWwIpQ2Nr/fra1p63jge2dAS5vLnc8/VpTCA8IaGIoI7BIQBqVEzmYRJcIHzygn6DS2P4oRjlxaDx8MMP33HHHSheeLWhc+CZ9utf/5qBefpstDRUQ5RCVt24+OKLUQvQUdAMUFaYJUXG9OgoqcwUqq6uHr4cFgu6Iy5wMk0zHagpbpCoUAiDayKaEzoiugizp8ww6kQhMNoIYEtB9WfIQx58BVhm4jLlM+EOLpfSHtWXusSGRxeHOhKSFVlMBhUbIPYcuxmDNXhmQhKkVzCGLGRgrRdGSbC04HoaG77vOdZIBMbhE5JAEaBqqOB8yH1DiiaeFsk4OIECEZdZhYz1wARgI5zEev3hRMB9WgkecYLhSOJAXDgGbAFqwX04IVwCWoi1kJv3338/RAimBP/E1MnQEgEIhpsrAMI/L7/8cggb/rSQDT55zGuMRsEf+gosWycYFFHghMzSJEduQstZEGjLli1QmmXLlgEXpZB0lPmQtHKAiS8rMx5p5SBj0F1eBN62yEPWpABl+vOf/4xfNFQQlghctEIIQCI0hvA0+C2Zkh2PYLCcEB6qQ6NKcaBGDGCRIC8Iz1skgbUSHj5Gg0mJYFmEBBYG0cid1u9Xv/oVPJns4GAyulnNkAdKD3dihI6kqAwwTzgeAwEczBrFKG2CQ2DOQRJqun//forJ9FTeI9nRyF9zzTUUEEyQjdxJCt5IePmOKCO0mfCc0KpTKB4RHmAZBISFQn1BgC8C2YhOR7B8+fKFCxcSayDMTTnxH0ZOrOKwUN4mYsPG4dXURpmRWYSxP5F6TmDl90PbnkPdslWfr7lOrNA79vIMI0c+3Y3twxyQHUZ2KopCIAkROI2FEIJz16y8i0rccviHAlxeLKgdJ5VZ9kfPLKgRGxRyqZe5bEsLXKwnipHttolZ77YF8AVdlGOflsMmEtryEvf2ziCGQZaiEXtQGAcLv1xf7rm02L2pLdgQDDNBb062CC/thyKI0b9WZdvvOyOfZSS3dAaNNU21s3PtJW5rluGgCjklvY9Nyp6U7Yidi2jkoGN5YwtB4zz6883puRcVuTDWCSpx8jHBZTVNjiUu7Udz8z8zObitM8RSOnNzHFM8toimT8ly7PSFsihRsYtyL8x1/mxePp6ufVMDk8W5DlFa4deo3zkrrzUYnuN1HPOHN2IG1XU8VBd6HSetgHqyPOrqtAhQ8yDb7CdZ4bbxj5EIWWdOGzEhAdARsQQyEsxgNgqcmSZWC4ZsGQnGu4mOHyMA6gLrnkt9EZUFLYrBbHQmXIxM9dGMbp6gmqA6oCyifpEUmgQaGDqlTMcMJk/63kTT5SBfYhEGJRsdEfqKpsUlKgWJ8wjdCOGlMooGiagonVIjl2HQmQiD/t1vmDgx5CXhUdqIAggoUmhvqDKccJAIuqOUlkupJROSkXUUd5Q5MmXInIicy9SITmpofsRFn5aXZMEIPelAD0AGIYmCbk10bB085RGmV1ImC5mvxKFfgblJOnLvBEQFEKkXkggnMlnERrUlwdgUJERIDmKgDVvgTSEqFgDJVUgWPVVWD/Q2hEE8ihCbSHqfo4ij6C9atEgWk5eFNSmuyLI+ABTEBkjBXN6RweIuqR4Mr8D0MIajEEMt4lIzL/n6IDO8CLRnjE4sVwO7wIrOC8I+gys1VimyM8P3e8LngEGSbxCRYBSsTQo7YlQFrtVveG7CcDA68a0xY/CKK66QZcE+hjyyXsmIfG48knWDE2LJkDwFB2oLj8w7fLxsnwCLwB4Ir2BeGZ8q3zIMhxOZIOQBXkQsCkXRWIQTzkmlpY0itVjaI8PzC+XDNxWpQBV7HU6eODJA0qioCI/ZijAwYWgnzR2PaLgw0NHukSzVGH4InkTngLFAVrH+kSbDXoxScYIwP/zhD+FRjz/+OM6uMDe+a3zm+Qr4ZHiDv/nNb6BVZAcHAwHeF8FIBCdhPnBGsuCEBABGJOHzx2oHCFQqswg0DrwOWl3KTrKUnbfM8JwZgBOeIhsCw/GIzpdOlQBPhCFx6a4pwwM4ZcEOibkP2airxKKtpvXANMpT5nZSHAJjysaGSQ2kmPI14Q/MGrO8ZRCD4PHt82oAkzqPnRMaSSx4JvWcO5xjkjX7DlaO6Rdz+gtG+kifxEGMolEV4YS8BVKg2WTiLpu7MDrA5XgddMShNb8N73tdy8q3z7ncVi1kS5WDNS/meh0rG3s2tAauKRXux+pQCGQmAicpN/1AoFuKnFb2mjcJD22lIISi/dOWFDiXcGUQRNiVMMTxWLNM8tgmulk2wyCO4r4+O8c+22uXAeJyYQuKC4txZRFxhXbPf30PTWPhUP7xRCRrZErCggsaRrlsu3atsUN9fFQjaDS48azYab2hzGNk0k9GiC+kMJ5gJ5zjdULhZDgSYYraglzHfGMpG6GxWHQ47flFYqkZEx9TAIMGRhHgzyyxJI5AOy/Hyio1RlnNsOpkuAjolgZMwGIjSo2NIvutO8NN+vTxMDjgA8aKEehSsaHhDOYihIxe4xTKiDhKgAyDespQMePH3IcQxkaMO2c4nMF41BfiMhiM7ZExcny6JFuLC9z3kmAcqFkMriMSag0pcIImR2D0GLQuXMsY4EfXwfiAnoH9EA0D8bCfwKbMMAyQU8bYMOhA+AESJi5fckFBQRNljJwoqFP4XKGlsdcZuaNx4mGFSkQsQqIdYjvCvirPUfJQidC9oFWMst96663QPEKijKLeoWahcWK4QMdCecLuikLPU+THaABDQF1DW4VsV1VVkSmqHjfBDZ0SNZcTMkLFjBNYXmJdQTZUWxo2QEbjl9tYo6GiyaEKYxyA9aHSgb8sNfIAF4/ggeQI4cFWgBZLAVH04RvQV1IDTxRHJEc2wpMOgYEFlbFfSTL5Jl8Nqjn1BHXZ/F4ABBhFx0KLaxyEoQpRJ/HiQ6eHbwz0WqHljHrwkRIAxRo3SxwsSZ+qRc1n1AYuwauPTbwv/mTHYeaOyZ1PmNz7huQOSVExqP8QQigHLE7OeSMFZMA4yVMzIlyOL5T7JM4J9iJTEoJRh6FG3JfhoXN8vHykOD3SbpAgVYgPBOpILBkG0AgDB4PEwpP5jvgK5EcEBzbzjT0BHC4RQMYlTT5GWBNkhpEs3EHlU+gHrQTfJoLBimUbQuIQLb4aGYYRGZZypeC0WtyET4IVj/iuaSRpTDCF8YjvC9ssOQIjTRNEEZcKPiI+LloMiC4+sRSKT4ZLmhFC8g3y1mQxmWsd9+3AdfnAgRoJCYwYzDykcSNr85DFRGC+Pkon0SCwGSD2hLJj1oMMm7Gwu5IpYwrgT/FlYD5wLHux75RKBfgACP6kQDDaf9gaOEgouMO3b+aFZ6l8v8hDOy8xh0kSgMJKzM3AnBCM1pVgLFGLMVYGi60ksYHH8lxvOxI+tNESCdpmr3Cc/6levWcsRRh+XkzqqWDnidQSevjFVTEVAgMicBpCSIspiE1MdAgb1/JOlNVwIW4RMDZklOARVbgTGBFErx6TFKciQi8BE2F6Q54cSmbQ+9BMQjTn4hE3TJFOjijyNeQnWPSIimhm2ntf/j05p2hZRQbSJcIopFEcWV4R6UTScUlFy2L8iVJdmZLMRPwOKPbJSamrARHQLKube4ASNggnjEI+YOgEP6CnpzOONVCg7qM0mPoKqgMsAnqA/oSiQPZ8AVRb9Dk0HqjCKQTC4ROtF9MWiaDUMuLOOZNY+nxDA6bBcD6qGMoWAqBbIBuTGyEzcngb2wJKG8ooCgqj8pArNELSZzweGwi6DoPQcWHwlzPD4LSGhkqYuOzRsBnPBgTERj9jiB1VD/0PVay6uhq+hxKPFohSizbMWDsGTzCEVuHRCgFGAwMcSCyyoefB8RjL5xd5QBJHQdig1IpwwZJgwtnwB0MDQxKUe3gX6UAFEZ4wCIzWRSyMPMiAthonsLwkCmZAzCmoZXj6ITNyonMzus9ihqjUFAHmyVsAKywqqN0ouFgDeJv4xYEtKhoCw6VJkOzImuITC2mRAXUWawBqK0SX1wETBop+Jcnkm5BwGDW1gqEW9HsIg4kGb5Y6wxuRd6AKjFnwRqSjILPXqEhmYPNEWs+oYLx6fPN4HfglorVj2CFxvlxJ7fhgTd5lxpUnKN/MVZOqv+hwLBYsk2j5Aw3lUCdx6uMLIi/eshxWIBZVCJYC+aH+3HzzzdyB7/HR8T3ykSIeJ1RjKi3cg6fQCc5Bg5JyyUEYecJvrN+peZMTJJRCyjDmeWyYuHPZLsXeJCNGcPjFdCbnDTJFmREZ2hDwJGuaCDiPlEcSY5kRGLKgDl8HM+JgZTRfvC8AITUYOB8mAzdEhJnzVObIMArDTLQSfFCMyNBOEpJ2FUdNfGIJwx0QwDgGSyQX6BDjaJKnmTKTL98azSmNKumQBQMKfHdmAE7MYg4SE1obGgQOGCDR+aJJlpaEt8b3y1PSoW7QUJC1+To44b48ZO7coWbSPhBY3sF5ASHluflOCUZGcZhTV+PsfjI1UsBNFAMsGUGYaRVpWmWC4/MbDob3vRY5ulMrnOJYeJPQ6MZHjuHnanzZGmslDj8JFVMhkPoInOhjBiqLQbpiPnBxzaW4Q3vE//Kv8Ru9jN6JPj5xU/ZXsRmJZ0YKxk0ZMvZ59JwH0bhGjiIOhyGDvB897y+qsYTnCflFQtFM+wktnhh5UYTof6Iw8pZR5OhT+VCkJEKKf30O4xG5i0BGEr0pEVKkGM2rTzx1YygIaEzjpAPCX7TSjQ22vxdxmuRgkSgt+qrap4bakdE9i5gxoxzQAOxmWIfkAckhc94+yoQMxjknqBenEcpiQadkVg/j5XhnYSJDSzZVitPGlQFQXzCewJTYwRnPLhJEe2PpBVOdQhvGaIaSin8UZAblAxMWFIhzJEdm0jHDsPQC6hFKIeFlGGx0MkysPJBGND/sMITBZQ57HXq8DICmiy5IoaBVRMSKgpYvV5WUATAQERfWyqA7Khf6EPOm0PPQwNAaIY2wUFM/Jor4rPo7MEdgH2DpCBQvwqDQ41GGGJQuTk00Y6OUY0jEfMHsIywDsGhkI2tWs0D1Bw28DRmSR8fFDIjKi8aJeGhmgMAlpcYcRGqxlQFSyiPiQrmxTWFd4T0iAy8U48lADMQUKRlOGE0T43DG/2MgDy+L+oDfIyQcUzCaLpniAQiNh87FfTVY3rhPpaV68y4gA30lhN5j0eLl8oiag+ckiWCJgq2RFyQNt0B4V1zKselQDeBFuDhC6am0GM0YBZBOibHBzHMIAyu48NVQYUw2yFPaCigNNkmmk2ECokqj0xOYwQ7YEbWdYRR4F1SKD4TBIOguGj+TJE3yQCL9Vvh+bxLYrIrmiSlkvyekI5PilzEO+IkcQwElROVrparz+cPQ+Li4pDnia8XjMTY1ZMa3kwEshorkSidGqhqYUxYGd2CADEjJjIgIY+RFU0YoNyydT0a2TtjhyZcA2AlJjdEWIEUkvlB84HllsZkCIGZDpibS/PKB871DXyH5sQU3z6U8pgCx6ZjnPMWXlS+X4QbIPwSYhhSaSqtOEXhH/FJnaNz4rikvjNeMa57ILJCZgvNmAYr2hJrDi2YgwwwmTwgsMcf3AVpI2RmWoiVEhtiQPGLuImNJtCTwTC5JDUxoW2KDjdm5bB8ibOB3dLslEnIsuU3zloiCD9Ayj5lgQ82oxGkrcVlfOx6gMzeaPNHqqUMhkGkInJ4QZhoiqrwphYDRcMdQsqEKb3QAlq5Qe1gPu2yuSd7pg0wBDYMxbHpiSAvnHESk70eHQEPFk4reGlsEug6WNFQK02xIf0kURqwxHA2UF2oN5gK6fIxpUrFAS471NRooYtx9XFUxNaDAMeKOkoFSgk+XGQZOgoWQS9wp0cxQ4PiV/pCo15LsmWHQquPCEECGMRPkBB2RNAksyRgym5PHeAosqIxok0wqw5CCzQTBzOjYAVD7uEQ/RiNEaeYgPMoZzArjA3oepFQCYsbqeyK9syByCIwAFBwkJXvvlzbwLlBYMQ+SFLodLm1oe1jzULwYgOcVIA+PgAJdFh6CkQeegDsiIslYvGssWnGSgKQEE50S0wqSYKqiniA/nFOmGRcluS7DIQ13xL5+HaMpJXwDzR7LGNRL0jY+E2g5tutYaoQIwMiLw5ZIJYexMF4QVxv5iFDiIYSmmQWrNQYoPgEqBi9CfoPs33CKoRasiJABagWMFAF449QNxg6k/SoOCfR+6iq/OH/y7SMhB5wTOxIhqZbQXe5jdmOYhkEEqKZpY6fIKPeQLmgkvItGg2Ea088wLqPYS9nyxN6R52QtH3HS9+mp70DDAArXSj4ixpWACILKOAvfEWMlSMiIBpYxvKPxSiUpUwY+BOClgLDi2Cyk7Q4YMbzHvUeaHaIABYydR3xHfGXSMkkKIAAsjBDxIsCEWgGGsU0KYfiU4NVAiti8WUnISSq24LHnsYJxbgofe5/xL5omph3C6Hhl2HJpmnhHyAlJ4w7SMpsRNssb73dwh2Q5AISPnVi8WWoyvJcBtdiMzHOJOUMYEnN6Fom5GUCeUFJGxxhuIymG2EifxPutjXERR+PS8MmJ6M014f1vau48a8X80chlDNIscWglDoZ3I4YTGFViDPJUWSgEkg6B07iMJp28SiCFwMkIbGCTzCErPNEk6LCDkYDD5nzr8MquYIfbnjW76MRaBSfnE3+FhoF+gOkA+oe2KtkdPTQHbIER3OrqatgCbAS9FvKDsxM6JalgAWAkG0UKGhafaMw1+hY+ovhDoiJzG+32FHaMmHjxp6SDwgQFRc2KG86nCOgTMgLnUCbOwSQ2ibgwUpmLCxMbHj0J9drUsFHHY8XGTMf4OnbC73znOwz8o1iToJkaI+hmUlgpkY2DAPiSoU4RGOsK1kW4ohSVxFHFgCiO5sWmKXU1Mwsz/dgTnsLZQBiGwLmk7pyTDiosZkCTaRCMc5ROHhEAdmqmI8+By7wj5eeSE7RJWAFyygCUPU5mM1bynOgdx/TOY4aDw6CEgipjQY0rF7o+hY0d+0DDlot5gCHpwrdZ5RLab+bBh4OdBNUfHsKnRHi+IzgSNblveOLimfnSSy9he+HVALWZDpd48MJnSFDeBHwICdSCS875NrHnY+yVwxBmxFiZERIPTz5w5CELOAmsEmljXzQRZQVjjIAcOcykOOFLpwicEAUzclVVFYMmVCQ8uiXJlIGRnE8DMxEukZQUkxejKrI4ROGRtHNSIbHqM7KAYHxr2KzkCbDDLSkRlZOvA7MVpjYuSQE+THQ5NhErGNDBLkx/AcoF15Ku1wjApF8SwdeRKLAyRkmo8JwjM6MzuFgzXEJc4GXoSg6LyMTBignSseMdgMOwFJwKAkkBY2WQ55BAqKY8Z70c+J78wLlDEXA0ZbxGzmakLaU4FJyXC0SUi4woI+LxamglAJYAnOAQIdHD7wDLsDkoAM0DSV4KuJEvL0WWK1YqbgIXS7NSTIZySIfqRy1CKjwskBATLs0OKXNfur9Cks13RDBQopohPMnSgFPr8BUnFmLD9wCZMGZ4mfVAmPNmpZwITEi+MkbTGP6AOlJvpQwmXLGlGINzo6vQQpue4AOwzb1Sc+eOQaajkgXNtsFuG/xh9kI7qQsclfxUogqBpESAxlodCoHURIDuNXLB60fnvlL/p8NdwyvCqrqnI3rkD1t//I8vXP3E7gcGnwhZwwHoqumh0ZxY9gAVAfKDLsIlWgIbAHJJgqiSjILTc6NdoUXhDkdHjk2Dnl5mhwMStjIGktE4TQHQ1Qgm/dNghpyg6qGxyTTNYLEnaAm0MdhMYm/CQ1CwSB9HNWQ2H6FWoksx0swdjBXoWDjgcQ5fJRF0YnjRQGEQ2AxjJihPkAHNBuaGno1yRppAgT5nZg1XlFZBRsRhgDIW/nVousiJkNA8/DZRyDC34lOHsQXNCRMBbmOocVAOmBvLtKClYTAkC1xDER6GSVKYL1DC0OQ4R/1CR4Sxcw6ADOpjuuyLniwvNJ5MSRl1HCUPFZysmQ/Jq+TdgQ/yYzBBcnQv+DySYzDh1YM2aUJd4Nsmhuhq4IOyLktHidAjYQV40kIvyZFBfd4mtgUZIDl/Q/ve6Lrvhq6fLecDQULqDiA0+Rq++MLV92/8ni/YmZxiK6mSCgHqDCMCrI0JQeLjGg3Z+LqZoEtTzAnp8xVjwOQ7xcg2GtmpNGMQiISbD3T9+lrf/TeE9r/Ju455lEqnh7pDH1rfNOWlI38+3GWUIlULkkqgK1mTDwFlIURzU0dqI8D+IwWOE5aBIRXGF2jf2vg2w4PEyncJW9wgD0aR4R5wFfoP3EQhQnzdxOU+VinonFT6uYO3J5eMc8M6ZAAczyCEcgDbzE5GNy8hDywcD6vEJiZjmQE4IRcz5ClO4Eu4fuH9iHlNWhjiAg8mnb5h+t4xk2UkHqYHMQMTbsKR5CMZBckZjwcQTKYIZpoFZBgMLPg+yWLyCNaHEQN/V8geOBOGRLCxoOoRFxssBgcZkRF3NE55fupfE8O4YHB1TFXyKTJjXsD0QUbYsnDcYnRfPkIAhGGmE9GlGxg+YxyydBD4ftOnPmBlYmoT84J478QlvAzJr4wbJ08yXGreUqu3NOLvxALgWHST4Uw1zK8sGYqjZBgvBPChZToxQzkYx0ZDBr4vPj0MxVgyGYXBAMsIDo0twzqjkZ1KMxaB0NoHLQGfdfLZWtmswXVKsbGT5bzSZRWL2OvsLC06cf4fVP+aLOIrORQCiUFAEcLE4KhSGQ8ENBz4ou33cLPPcnhfqX2KCYTDSABVHhsRE5wwFkHesGKRCFPFMBZhZZJKP78ckIrq6mpYGZ6QrC3BEi/S/0dmCkfCfog7ZexNLGZoNjhfYTSDF+ETxXImzEeCRpJgv9Lim4SrknT6kgHgNizAyMA8bCcuCp5duG+RKfexvEFysKFxjjAkwrwschlMmLhkJSDwOigfjoLwN6aEYUOTwUgTJ0AseFAscoyjxAzzw7GJiOkSv1CKTCzoJbNuWNIT7sRuENK6iOSgwWoKuMLiPsesIelYi+MWyUqfQCxyOJXJWVhQO2YlkTsncQLL8sKWUR8xEiISnsDM0pHvAjnJnTVLWDcVYDGcSnJIUsjAS0cGbJjYNnmtuLbKOZnADoaYFs28QBJbIhUAczFhKBrmTQKQjhkm2U6sJdO18rmW5v3hg+vsc6+22KMrfCabnEqeZEYAex2jOYzv0BSYw0OJFRg2yAgRvp3MuqSlJRfYIB8jH3syD7gkFoRxSS1yZGu4doPF7rFOv8iaJWaTpughl7uHBXaGoivCp2hBlNgKgZEgMLYrBoxEUhVXIdAHgbWtPZ/Z3Eo7ft+CgiX5DtryoerXG46uenTnr0IslBbuvnHmpy6dfH2fTNSNISCAhyqLE0KJ5YogrAeIAQ2WCNciFbRDPLvgRZgQmUlo0iHuQOowimJKHUJmAwQdiRY4krgDiJPCt0P7Xw++9ENcRZ0Xfs4+90pK0uw/dtcbn1hUsvTD8+7w2MUUKXUoBAZCgK+JwSBGtRipgRDSDgwUcoT3yQgfbznvlOEtRmeY59l39GeEuajovQgYw7BdLYE3fh3es8paNst1zd1iAqGwrA21B+5Nclz/srLoD/Z0/KbOtzjP8cjiQjSKYa1YPq5lUJkrBEaMgLIQjhhClcD4IXA8qDMPL9tune9lbRJ6I/H/kMSZkF0VCAdCkRO7RQ8pugochwAzD1lEFKsmtBAtEHMfBjRMfzIYa0vg6on9EIulyQbjUhj55UhSHknckUuebCnYJi2JzLky9O7joR0rrZWLrHkVySahkieZEeBrwl4Xt5bVaAhMRtXGMRqJqzTjEIB+s8lEaPdL4Zq32FLJednXWGJUhBla3xuX6nheIjgqhMdmOdoTFqUYsh4xnsKrvBUCiUJAzQlJFJIqnXFAYGWTn/0i8AJ02UQrLvjgEI9iT/nFk68b6g6EQ8wkg4Kzjgu7R7CiIB6YzO1hah9urrjIAgFrq7CbIovNsOgfDrEZBErKFlWzOx0Xfla36pGGrZH6bUP/vFK25EpwhYBCoF8EYINMgfZ3hLY/awl2O674ljVfLNub2oeue2xyhWJjG8KUZbap/RaU9OONgLIQjvcbUPmPBAGj9f74JFzXhmnacVid+L9tbXynoau2xX8sEPY7bWIrPHUMDwFIIEuMwgbZC54lVVndlMUkYImkxnbMOHExQ4/5dXGJMz2PNUXlJMa4R+pyHBFgxRsWlHcsvEmsLM9wi9KTxvFlqKwVAsmAAD0tS7nuekE/XmetWGCbdEaKuonGYklD57FqzM73RbRtnaF5XqUYx8KjzjMFAVXvM+VNp2c5e2mgoakOS13VtMm5M6bkzmzoqltz5KXp+fMWli4VWEXnIw4rzfTEerClYtsJln6Rq7/ExmGNQaYOxt4xz/vu3mY+Uifji4DxAUjTYGpODxpf+FTuCoG0QyDcsC206S8Wh8c+6zKLU+yxmQbHvFy726b5wpYj/sh8r+r30+CVqiIMGQHlMjpkyFSEdEIAEyNtv93mhFr6w77XDz/b6KungNxUDnLp9KJVWYaBQOxXENr1In5iw0hERVEIKATSCAE99MZ9elejbeJi2/SLNeFomfpdpW5h5yplHkmjWqqKMhwEFCEcDmoqTtogIEYCNe3CyivOKDnfrjl2NW98+/DKYDgITRSP1KEQyGQEhM+o5jjrg1rBpEjdBjYcy2QwVNkVAgqB0L7Xwy21mstrm3sF5kGdGcZiTDW1D1EAOTaMi3wa8NvUfhtK+nFDQBHCcYNeZZwcCIi+oNI79YNz/99t8+6o9Fa9e+z1w537hGypP+6ZHAgrKVIWAT4O/rHPWPEMyhCqFTttqqGSlH2dSnCFwHARMIiS3t0W3vGcJdChFU21VZ2HW40YMRJdaGofcvy30mVrD0ZebPLDCY3Onx+lBKT2m1XSDwkBRQiHBJcKnLYIeOxZC0uWXjv9H/JdxU/ufqDV36RMhGn7slXBhoKAZndZSwQhjNStG0o8FVYhoBBIGwTEUjKhvavChzdZc8ocF3w69WngiVdDWeCE7y1xcWtLe/CvDd09kYiigycAUmeZgYAihJnxnlUpB4GAVbPNLFh41bRbg5Hgq7V/NYwjg4imgigE0hsBq03Lr9Tc3kjt+uA7v0vvsqrSKQQUAn0RYE+nwKs/Ca17mK0mbGfcZC2b3TdM6t4RdkDdMjPHjrlzZ1fort0dH9zQ8rGNLetaA6lbKCW5QmCoCChCOFTEVPi0RQD3F7vVMT1/wQ0zP7Hr+Ob6zoMU1ZhRoPxG0valq4INBgFb9VLH4g/qkaBl5wulATXNZjCYqTAKgZRHQOxBr0cskWDgue+Ftz+rd7VYiqptM5enmS+l8HvVtGWF7k3LSq4qcXeFI1s6gqubg7dsaPnU5uMvNfUEdSyGEaENGM6kQivgTDqWpvxLVgVQCEQRUOsqqaqgEDgJATqG6Xnzz6tYvrrumZtmfcqh2VlZI53cY04qrbpQCAwCAT4A68xLte3PZ7fVndUWaqhQH8QgUFNBFAKpjkAYN9FXgmse1NsbNG+pfd61thkXWz2FghGlYxuQ57D+YkH++tZgbXfosfru3V2hFxr9Lzb6z8p33DIha77XPivHYce9VA4RpyMCqV5hlfwjQUARwpGgp+KmJQK6zaotLr3oFf9fdjSvm1d8ts1iU+6jafmmVaEGiwDqX06JfeG1+upfLGwPO/yRwUZU4RQCCoGURSC0+Yng+j9betqtE+Y7Fr8fTwFhG9NSf13RAd6ItPmdleeAAV5d6nm5uWd9W2BVS8+61uC61rbqLPvyYtfsHPsZXseMbIcGFupQCKQRAooQptHLVEVJDAJi3C/HmTcpd/rKmke2Nq6ZU3TmmWUXRftBNTaYGJBVKimFgGEkt8+5IlK/tWDPaoyErrCuYzuPFqL3b0qVSQmrEFAInIQATpB8yoz+CJ8YPbTn1dCaP1jsDseyz9unXqB5y0TgtF5lONYZyGWzXFnqvrTYeWtl1itN/ucbe9a0BR6oDeU6rMVO63uLXZeXuM/Mc/T6jYKL4If8gKE4FY2iahhFlVFHqiBgu+uuu1JFViWnQiAOgZVNPTs6gxcXuc7Mc8Y9GsGl0axrVpfds7dl68Zjb7ARxRuHnqWRn5A92cYCG5pVrEqt3EhHALGKmooIaDaHtWRWcPMTjua60IY/2SsXa94SC5+DOhQCCoHUR0CwQbG4JpMGw8H1fwy+/mtLOGCbeZlj6e2aKyf1yzecEtg0S6FDOzPPdUuFZ36Oozts2d8dOh6IrG0N/OmIb0N70G2zVGc5hFO9INEGYRYOteKIpZfDyVvFUQiMLQKKEI4t3iq3hCIwOoSQdl0M7DltbjhhMNIT1sO+UOe2prWbm95hCNVty3I7PCxJmtCiqMQUAimAQGe48/WDTxVa3M5wOLz/TWtRtZY/UXwt6lAIKARSHAG9rSG8+6Xw1r+FNj4e2vWC1eGxTTyTHSasrqyMNXYJlic9ITR9WrbtunLP7ROzHFYtbNF6IpYdXaFnjva82RpoDESCLDqjWdpCLD6jZTFuLJpF1TSm+CeRYeIrl9EMe+GquINGwKbZFpacx789x7cc6ti36dibB9p2PbnngYneqedVrDi34j0Oq5ORQDnB3Gj4Ves/aHBVwNREIGC1rC6y9WTPXt5msx5YG9632lZ1bnRgPDVLpKRWCGQSAsJ2FbVfGeYsY3EY3dJyMHRwbfjAW3r9tkgkTE9mLZxiX/Q+e9W5WnZRb4xMwulEWQW1M/xAo64Q2Xbbl6q9H50Yeac1sLMz8MxR/4bWAFMNXVZtodcBVmVO2+Wl7uvK3L24xSoGUexPJK/OFAJJg4AihEnzKpQgyYrAjIIFU/NmLyo5f/fxTexPWNu+t7G74a3DK5dPuems8mX0FaK9F/8bHWyylkLJpRBIBAJah11rzM2zeCZpNWsjDTvCDdtt5XPFCuxiclGs6pOI3FQaCgGFQOIQEBPejPltYpqbMeeN5UNDW/4aqXkr0nlMDwWw+bsW3aRh+XflaLkTNKt0hMn077pvy1bgsF5R4l5R7Lq+LGt7R+jttp4H67rWtgWFGqAHN7YHy1zWc4yZLLGTSwQdFC0l/2c6pImr1CqlhCGgXEYTBqVKaOwRGB2X0X7KYbVYPY6ciTnV51auoG9gbmFrT9OmY2/sb9s1PX++055ljSrDqpXvBz11K20Q6A51vVr3VHn2pEULPm7FmNC0N3Jkq73qPLatN6q+qv9p86pVQdIQAWiI+C8SYXKg7msPrvxBYNVP9YbtFn8nlkD77BWuFd+wTZir5RTzRRtz4NQXfapqYNX0fLuVHe0vLXR9ripnTrZ9bo5jjy/UEIjAErPs1kqPFY/TkG6R/4KYX3U9bLGwkrlC9lTIqmfjgYCyEI4H6irPlENAtN5iVM9hcVw97ba5xUsMU+GeXc3v3rvun3EfXVhybmn2RJfNk3IlUwIrBIaBAGql66rvBF6+J3xwjf9v33Rd/g1ryYxhpKOiKARSH4Ek9w05IZ7e3RbpOMrsX2YJWkJ+kLdmFWg5ZdbqpfY5l1tzSoz1UHrnzBlm/9R/O6NYgl5Ln9APXFbLVWVuTq4odd+xrXVbZ/Ar21tFALF2a5T9YRsE1Alu29enefNZostpZbZhQuTLtom1T8XCNupQCAwXAUUIh4ucipdxCBhtrfFTnTe7asGsnc3vvlb3DDMMn6/504ajq+cVnb2o7PyqvFlMPhRuI2IklkO10BlXUTKjwLrF7XVc8FlWGQ3XvAkzdK74F61gCpqPUH9Urc+MSpBepTQcKkWRBlN9RWDa+egR3ZpvMBF7o4z234Av0nJAD/ii8xm6W8Vl66FI03699TCC2yefZckusk0931o8TfNOkN9stNcyZFOf8WlfkYBLvvPeM3p+1p65d17+U0fFvvZdWAZFi9i7FLOud4X13V3BO7a34ozLxobQwtPmMpgAeXatKstOmmVu26xsFHuddW1mZtuLnCdWvzPYvkgMkY3qK8+MO6rJHgzK6R5GEcJ0f8OqfKODAArArMJFlTnVB9p24kS3p3Vry6G/b2p8c0bBosum3FCeM0VwQtrbZNIQRgcJlWpGIiB0Ck3LLXde9MXuhh2R43XsWuZYdBMs0dyEKyNxUYVOTQRkc43sg2uyhR/g9mfER9BxNHR4kxZm8pjYgi6JCs/aMD2depjlMBEKP8WA7u/CW5QLW+VC+zkf0fInaXaXhf0kBJlR3VViXp2oEhZ9epb9H6ty2kLhUEQyRfEOOHgUiuhMddndGXy3PbirK2RwMvlwBL+S3mk95JBltebaRXbw+Vy7laVujAogqsB5+Y6p2Sx7w6FPdNvOyXc5CBgVzbitfjIbAUUIM/v9q9IPGwExJ9+W68xfULqUlUi3NK/5+76HGjpr19S/hLVwRdUtK6putuNhqg6FQJoiIHyhKFp2oeZwW3wt7GEd3vuq+5ofaN5Si1X1LGn61tOkWDpb7Rn0DRU9ouuo7Xpo/Z+MO5RwQB05uO4hCYBhCBchxSeg4apnTSYuKGUUIzYnvkTdYpu4wFZ1nm3KUmt+pUEBRTn5hqO/AxY6mpr6M0gEDAqo0/cXOWwGzjprEMi4osXU9NsnZffizmUCcG8MhF9q6mkORNpD+oOHfO0hUhXMsynAdEXSF1mwKcaWjhAWSqqr8GIVNyNfmepdXuyuyrLBDO3ssJwAWQYJkgqWjAiobjsZ34qSKRUQkA41RnOuaQuKz52WP2/j0dfXN6w+1LH/2f0P1XceXDbpakyIHkc2xekdpkuFkikZFQIDItDrCm3oGYb+oDOZMLTtmUjd+kjbke4HP2qbd7W9aqmWX6HlV2q923UKBcQgkOpDGBBa9aAPAsJuZTCtft0X5bOoEisWzdQt3W16oMMS9Ed8LULnFrWuT6KwoJ6OcMMOS0+nJRJipdxIZ6MZSqjsAx+azaZ5yw0FG+3ZZsnlXLPmTxQTaM0kBo4+xk+0nBJr2VyLzTAY9clbyivx6RelPjHUjcEg0FsPelu63r8irlQXzLNE1ZkSp+2DFewVKY5vTPfySy3e2hHc7wsZn48QqbY79G57QISwWAIRCxxyn0+/Z3/HPTWdhGG51HMKXLNzbCQ1Lcsu/Vijn4L4iHoLJeOr3zRFQBHCNH2xqlhjjkCWPef8ivfOKz5ne/P6V2v/slGsQbpjbtHiSybfUJEzeczFURkqBEYBAUNH6Ai2RsRSeeLghlYwmd2r9ab9oR3PhXc8F9r29/C2Z6xls6zlc21TzpPBjIAWzZllKawSv+pQCAwCAWNvBLnGSf+hI0e2WEJBPdClG/Pl9I4GvavF0tMRaT2M6a//ONw1qKSh5eoWZzb7plgcHs3utlbMHzCK8UCzsRLIDCMBPC8d1lJxbujcQtlPNq2ZUgqRxCcqxFRH5iDA4Nt8r31+jqPfSukLRw74wmvbAjs6g4f94d2d4Reae/iXZdWmZNnYLWOO18H8Q1ZPzWbNm36TyBwoM6mkihBm0ttWZR1tBDRLnqvgnAmXwQBfPfjUpsY31tS/Ut9Ze8nk6xaVXmBXfnSjjb9Kf5QRsFkdBe7SuvZ9gXCPnI2CqmksImPTSmY48ibY510Z3Py03loXObI50rArvHd1VCI52myzOZd9wTb1glEWUyWfJgjoQV94zyu9nEbQmvChjdQuWTxRp3yteL7pkZAw9zFfjkN4c+rW4qnW8jmxxhkZJfrLFMDcctvERRarQzhVOnM0GzsH2bSs/FOTJ0GxDDKJc53Bs4w/UE98M5OSeEnL/KkLdRIy6iItEKCaavqAbsweqzbHa+dfRzDSHbF0hCIb20Nvtfa8cxyKGNrZEcpxiImIXrv15nJ3qct2XZlaPj0tqsXpCmH4Ep8ukHquEEhOBL66o+3xet+dM3KFU34yHUJn0LXajt0/X/+tQKQHBWVK7swvLL7bYXXaolv9Iq4atk2md6ZkGQQC3cGOh3f8YtOx1y+aeM37Zn92oEoc8R2P1LwdXPt7HTVdHgwzs/BGOOC49MuO2SsMpZpb6hMYBOj9BWEOnEF94ErMC+JXzBcLH3hHb97PVgKsJBk++LbgS4KlpPBh1BDBvE54cqLpWh2G47KsPMYl86IKJtqmnMMSKUyT0/InqoqVwm9diT5+CLzU5H+k3vdGSyCs41mq80sbUuyyXVbkLnZo5xe6Fuc5cCgVhkOmRtIKmQuojp/MKudEIaAIYaKQVOmMAwJJTQjBQ9e6Q51P7nlg3/Etzf5jTqvz4knXLym/mB0LcS8yVBalt4xDtVFZjgABfV3D6oe3/6TIXfqt839ppNNPHRZrFqDFiyfRpzDA0JoHg2t+b8xrmmOsdWGsazACUTI6qmBJGmaxSMN2Vo+0aKwZIdiTwF1YsTSNxX5S3zVXlBLzXXaBSQipT7apSy0sjymqlnhum7lcTBc0jmiNE7ejFU/eV78KAYXA4BAQg3VB3cKEw2eP9dT5Q3u7wo2BiC8UFkMvmuXMXMeVpe6JHiuepXlirqH60AaHayqEUi6jqfCWlIwph4Chn7CKhseeffPMzxxs3/3aoac3HXtz5YFHdra8e1bZRYtKzy/0lKRcsZTAGY4Ainehu6TAXXLUd1gq4QMp3nH3ISu2acsijXsjh94N7zP8SGGNSpcYbn0Sq1saEGuefOukRRp+j8b7sFYuFGQJrp1XoXnykm9e21ALrFsoYF5FjN4pFFbxn9REDRbcW5GiVUpVq6GirMIrBKIIGONKdk0/J9/JP26uPR446A+3BfVD/tDKxp41bYG1rQE+vhvL3csK3ecXOMtcJ7Y6VDCmNALKQpjSry/ThU9aC2HfF9MRaD3adejZ/Q/vOb7ZYXOXuMsvnXLDORWXEVJ4+/Mfw93GZKy+cdUdhUCSIIAifrij5qFt9x7uqnnPlJuvnfbRIVAO1HV/m+47Llb8V0eiELA7NWe2IIdyEIpZcMqJK1HYqnQUAgqBXgR8Yb2hJ7ytI/jW8cBTR7u5ZJJhsdN6Rq7jrDxngcN6XoGzwI7NMOr6wQjVEHqH3lzU33FEQBHCcQRfZT1SBFKIEErvpvae4+xi/9bh57rDvkgkUppVceXUWxeUnOO0uU+MeI8UFRVfITBaCBh9fOTFg088u/ePue78Oy+439xia7SyVOkqBBQCCgGFQLIgIFwRNrcH/mt/58a2IDtYsOGhmNJs7DD0kUr3FSWeJXlOp3AmZZibP+pIGQRsd911V8oIqwRVCJyMwMqmHtZNvrjIdWae8G1I5kMM3+sWt809s2jRwtLzaCjbA62tPc3vHn19b+v2XGdBUCzbmMsGx8lcCiVbpiMg+nitI9C+tXmNTbOdVX6x264WoMv0SqHKrxBQCGQGAkKRwZupzGl/X7nn2jJ3mcuea7dOYdMtm8ZuFmtbg3876j8WjJyR58hm5V41wzClqoUihCn1upSwJyOQQoQQNVq4Txj/Q/xmFCyo9E4t9pR3Bttq2/dsaXx77/GtDZ21VqstGOnxOvOMlrTXathbahz2xKLnxhQZ0jJO1XyZXnTU39FHgFpHJmygwn4qrDjqsrunF5xm67bRF0rloBBQCKQ3AsIqFe33jILKZau4JSbTysN4HB9MLrVkzjjtDZtmf0WppXJAwYzZJ318NXuBGWnJQVn8E/OXNS3PYcNZ9Ooy99WlnqUFznleR4XHerSHTSyCrUH93AIni9AYzuwiuDqSHwHlMpr870hJOCACKeUy2k8pgpEATqTP7f/j3tYtzd1HaTxzcMW3Od02z9kTLrlsyk1GHLMtpckXjNDYX0hON0xUK9+PbOqWQuAUCDy97/crax4pyaq8be4d1flzThFSPVIIKAQUAiNBQC4WJJwTJCuUEzCMZZSECmv0kDwyHNol+Yt2mv6Qb33Dqt3HNzOBfyQCJHlcSlvkKZ9RsDDH6V1cdjHSmoTQYNLoCeIw0ZOXo/Crd4f1HR2hL21vPRaIvLfE/ZN5echmqCnRNzIKmaokE4aAIoQJg1IlNPYIpDohNBge7bRoMLc3rXt016/8wc5gBJ981nhm4Q1tQk7V/OIl0U4w2qpblk+5iZYdK43VardraqHgsa93KkfRx9+77us1rdshhHJtJAWKQkAhoBAYDQRER8medxyW6HpUXEdERyn2yTvUvnd3y2ajl4T+WHe3vHuwfY8UAxYiRlA14dQw+nRoNIo+qDTBJxRdqUuw4+KsivklZ9utDiLPLVxSlTcL936AMlnioBIdeiDDbCto++qWwD/vaG0IRB4+o+g8VpshKWUjHDqeYx9DaZNjj7nKUSEgERBtt9hPWjTVlrnFS75d/EAw5N/SvKa2bfeulk2BsL++80B9Z00MXmKY7YUDj7GbBa08m91PzJ3qtmfnOQvxPrWx9Hz/h5GBzKb/AOquQmCoCOhTvNMghKISq0MhoBBQCAwage5QF64xTd31YT00yEhQvUbf4cOdNXRmHJgy6jr2HfMdMa6i94TJUNA+a76rGG92ejwokNuelecqnFfMym3sXZmeR3ew62DbblBt8NWGwqHj/sZXDv5FFvWFmseWT7lxRdXNTFQZ7cIbpE8Mby/MdVxX5vndYd8Xt7X8Yn7BeflO1UuMNvgJSX8gDTIhiatEFAIKgVMgIBpJ4/8TraXT7maXQv4d6tiPu8vhjv0ySDQVzbKnZUtP2Hek8+CO5g07mtfzNMeRW5RVPjGn2m3PYWqikaLFZrFVeKd4HfmCcHLoLAImn5zIK5pm/39kF2v0sGynGJ2J0X9QdTczEZBVi/1U0OqsFpvUBjITClVqhUDaIxD1zTR6rIELGxEszOgwCCNOLJYW/zHDY1PvCLQd6azB+aUr2M4UCfo4Jk0MnFQ/T2KtfFbNNsk7NceZT7jy7EmF7jIZgYXZijxlHodXupDmOPKKs3g0yI6vn0xT4taFE69EzgNtOwORQLOvPhDuoX1u9zetbXj15YNPtPW0nFfxnpmFi8T7AAupFSS+YNHKkefQPl+Vs6E9uLEt8NBhX3WWrdyluEbi4U54isplNOGQqgTHDoFUdxk9JVKShdF+n9STdQba6FB7Qr4G36E9LZvpWWnxRTeJr4zVao4CWi1iZNRmdSyZcCkzEsmoyFMKXbRbB7kcqzHWavQeYsSP9E+S4pSCq4cZgADa4dv1Lz68/acsgPSRef80u2ixqiIZ8NpVETMUAcMbUPYDp+oJcBlgsFJ2XcFIkE13W7qPBiJ+f8gPcKFIECuW2aVxcuHEK4YE6LT8uROyq2QULIEeu5seDZ9Ql83jsrnNvlJKG2U9UprM6MBEWUV/LUZwOULhwN7Wbb/f+kNf0EdDvbhs2VXTPoxiIJ6N5iHFONwTvuCNRrdV+9LUnE9MynZaT1VzRlMclfZgEVCEcLBIqXBJiEAaE0KjFxOELF7Plkwt2r2Jjo/Rvm1Na4901r588HGjLxAvSsxCjIQx3eg6Q7byMMLKEcLonVP9wYW1Itr1anOLFzOb0QzN0Kzd2HQoMzpZs9wxJwJ2JnGKSRqZeugofC/UPIoDM9Xsc2d+d1rBXKc1bZ2yMvUtq3JnKALh6Aw98ZkDQV37HubpQfa2N689JSIo/bLDER0Xs/eYyABzs7F8NtPddX1S3kzpxjKv6OyKnEmWIe5TJ5LG24XW1+A8YnagtEJGu8oYykFQTYSUT8RJBhwoBL0KA929ODDXHmzf9/Te3+9t3RoWr1L7wuLvTs9fMPAEkwTAJPIW78by7LGeL21jwVH9+XNLZmYrI2ECsB3VJBQhHFV4VeKji0AaE8IRACdaY3xNj3UdZm497jokZSxn2hKKBGQncdrExRwPf4vRt/T2o71/6V9ZW3KSt1p0sXI08rTJpV8A3ZLnKpqcN9NuseGpyxwVo/+z5bkL3LZTjb/C8/kPLKOajOi9TWRTCSZRDIuFuSsrDzy6uvZvbEzM8PN7qm4uz54IVRbPpOvYEBW+VIJAyaoQGFMEDLuX0V5Evy+jBTaUbyGHYEZDb0/8YV8bTT1DiII7iMao3ldLarVtou/wh7tZ7czIDg9E0VLlugo9A5uYrBZrrqvIbXeL1Cy6x54zJW9Gli2nMndqSVZFirZ1AtxUPqgXwbB/dd3TmxvfqWvfCxVcPvkmXEy9LuFt29v99P5NaEnZmfCe/Z1/OOSr9Nh+s7BgioeZBaOSUUKlztzEFCHM3HefBiVXhLC/lyi1hd4nBvNg1/um7gbmFRhDq72PBviLWtAZbGWOB89Jq62n+UjHgagnisXS0cM8kAMs72Y8FXll2mF0aL29mm7Jceay5DcgYDjFLzfL4T0FIPCl6vy5ldlVkhAapPoUwZP3kRiKRuPTLb5Q5yu1f1lX/yrq46Tc6e+f9bnJeTNOkF5T30jeoijJFAIpgoBhAIp+XELkKAFsD7TWdxzEUA9/Y5KeP9Q9+PL4gp0t3Q1hC8a06JosB9t3nqAJFp0FWgz3EL08e3Khp6TYMyFbbJPb/2GzMH+vPMuejWSi8yAhw0QnTowr8aOOsURADN0Jog/+Tb6jbx55/sUDjzlt7lmFi86ZcNmikvN6W+jeHi2hspH1ke4wetrbrYEVxe77FhT0ZpfQbFRiCUJAEcIEAamSGQ8EFCHsD3UxkIy2bjW0hxinGtknD77djxJL7IqxGgbzQFjthnx5PPi0+pMzhe8xdXN3y6bOQHt3uHt9w6sAbo57it534AP7YbYjx2XPOqf8Un7LsipmMNE/JY9I1DtJtwQiPY1dR57c8wCTWvM9xYtKll4ybONVJwAAQABJREFU+fpCT6lRPTK2jqTkS1VCJzMCom3RtZq27Yc7DyBnfceBfW3baIZFmxz0YSJkenl3yCdH6wZfEMhCbGPOnPMl5ZfQuJ9dzvzzLLuxLy7tvcvuMRbqPNUXjaWRbXINY6XRQRhhReJCdGUcGvw7SVhIYUAWPbXso3Ta6gNtu/6446fN3cdy7N6zJlxyyeTrWINHBBmFw8hVf7y++992txc6rKvPL1FW4lGAOWFJKkKYMChVQmOPgCKEY4+5yrFfBGDfe45vqm3fJ5hyn75V9sqHOvbtbtnInJxwOBiyhJhaQ1IlWRPeW/3BecVLWBeBXSUNSyz3pQJFZy7CpMTBcqN/3vnLbU1rQpEQw88fmvPFQnepJMqGkSBlCpISaCshxwkBMQ5ijP70+ciHIZC0+BmrrUT0CEQOK58gUqjnvSNMBHnj8HOsIsa9bc1r6ztrpWpPGAKyv5zdahNNjpV53WJKc2lWxZzixTaNhf77aYhE0n2Oyd4ZMwoXGuVJRKH6pK9uJBsCmJEf3XXfwbadIT04s+CMW2Z/tsRTAY83eq6E1gHR8+nPN/V8bXsbS4++trSsb+eYbOBksjyKEGby20/5sitCmPKvMF0KIAic4UR5wlYYWzTUOnHJAG2AFYCYn8NWUSh/ON+29jSHwkGn3bVs4tUzCxZW5FTlugsJSrdsaH4J7Z5jRUr8ud7qb153dNXmY2+yKdb8kqU3zfh4YVa5YRw4oeAmPluVokJgrBAQDM4Y3uhr6GDeNd71gxeEed1sBoAzP2a92vY9nB9jn72OGkH0GBYSRjtxxGXETDyH1cGkZZcxV3mit7rYU8nkv9KsygpvtdFoEJG/MEp5IpM51a9BS8lnsOFPlZZ6lgoIiO5Is7xa+9SGhtUH23fluYpvnvXp6QXzme9g9DcJ63SMbtGystH/tZ1t2VbtybOLy122VEAoQ2VUhDBDX3x6FFsRwvR4j2lQCqG+Gb1snALXWzSDEYpngh+J/la3MDpb07aLnaNq2nZubVzDPebeVOXNXlBy3oKSc5nxn9i+uVeSUf0rFIB6X92Tu+7f1bJxduGZ75/zBeyECbOojKrsKnGFwOkRECM7HT2t9V0HIHIEh8K1+ps4EXvr+cW860EezOhmnnYgxLzuEzHEfnqe0hPXnBmtBWs+c0pABozw22SenseRzbfGHTGP0KByRvMjAokr444R46TE+rsQJRJJCTFiROkvqLqXHgiIZto4jnbWPrP/4V0t77JANHXsmukfzRX7OiauGhiVsrY7/L51ze0h/QtV2f+v+lRz7NMD3tQthSKEqfvulOSWr+1ofay++87pubdPzlZwKARSEQEx/yfsa/Y1vHzwL7uPi40l8R2dkDMZg+GZZReKtdqjippQ/ITilsDeenTwQtto6Kr9845f7D++s8I75caZn8SD1JA7qoUkfxFGBxiV6tghYAzAGB+M+GiMb8f4eqJfkaRSiCM/qt6v6ljXod3HtxBwdd0zYuCGs/4OnKIDoe6wwdVw5gxEgqyrK9LQjC0RyKNX4e4v9ol7RVnlTCHGUZyFqdg0PMeRy7fv6G+r2JyB13E5kZw6UwgMEQEclbtDnS8ceHRV3dN8MpNzp90w4xMseyaIgem1PMQ0+w1+z/6On9V0nJnn/NHc/GlZav+JfkEa/5uKEI7/O1ASDBuBr25vfbzBd+f0PEUIh42hijjOCAjFU6ip/G3yHXm+5pEtjW/3hLvpqifnzphTtHhO0Vms7+e2Z0sfMEODHWeRB5P9Md+R+zZ+91jXkRxX7sWTrl1aeXm23St2I0t6QjuY0qkwSY6AJIRRRmg4YIYtYXyz4XhBscNeqNFXv6N5PdSuI9DG3nosEEWJBKkzvke2T3DYnOYARt/CshGrTWxDKrjfBRXvdTmyiIiNpTxnStSltG+c+DvCNBelnIJDkntilfD4/NS1QiAOAfMzqW3f+4sN/xoI+Rmk+PQZd5bih0zdjNbOuEjDuXygtuvuPe1zvY4fzc2bm5PJ+/cOB70xi6MI4ZhBrTJKMALtoQiEcGVjz7/NzL19krIQJhheldzYINDrsBU1KqCwsnvkO0de3NWyqam7XjdMDjDDZROvml98LiuUSteusZFt2LkIPUOzNPrE0qP7WrZiAmXvyqUVK+C3pdkT+7WBDDsvFVEh0A8CBq/zh7qYo8uoBPN1j3cfY6oen8+hjv3UTKKYfIx1NfNdRcaXpeWzz57D67I55xQJL82BDtZuYc6eNASiOIvVNQ312WB2g1Wlja9EmC/lYfztvRgoY3VfIZBQBIwPRQyZMLOdDYQYjixwl3x47pfYa8Q98IaTQxXh5eae2zc1z8tx/HBOPrRwqNFV+LFBQBHCscFZ5ZJ4BLZ3BL+64/j2zvD9C/JXlHgSn4FKUSEwTggwvwi1FcfLw5379x9nlfkabAnnTrjs2ukfE3MLxYoTqWFMCIT9axte2dDw2v7W7RGLXpE9+ZyK91xYeYXBCaMqtGkoUQrxOFW34WdrcCp+JDOKsSgIq7e4b9TUwRKkoctheLZFl9QXlvZgOLDn+GYqEtvqbW/C7tfR4j/KmorYBuF72O6QyarZK73VXkc+q+1PyJlCph57NjuIso8o59zMduQOThISSxh/S2Rag5NehVIImAjQofBffVftQ9vvxVpY7Ck7r2IFnh3sNcL9Xu/REVXSqpeOFDptP5qTf2mxU7QNAzlkmzKpkzFHQBHCMYdcZZggBOp7wlgI3zwe/P6s3FsrsxKUqkpGIZBECPSEun3BLkZtn973OxTZj8z/ytzis4R8dKiiS02YPiqSG5VDD0ciTIzc07rlhZpHUc3Z2czrKrh9wb9UeqtkKVCqpaIhDCYpUKJRgSllEzXpPHXSMJXJG0bFFC9UUMJR0f1Itrm7ga0v2ShVErM19S+z1Kcv2CHBpNZBC+UXgoGdm7MKz8BAzR2xxYvVgVMoJymLvBJcIZAwBAw7oSVkidS0bn++5o+7Wra4be6zJ1x63YyPu6zukTfLNAVf2dH6RL3vS9Xez1flOI1NiOSIYMLKoBIaMQKKEI4YQpXA+CGAhfDx+p47p+fcPjln/KRQOSsERgsBMWwr1Gn9P9750pGOGswaH5jzuQWlS8lvtBTtBBcF+Q27jKax++JLBx9/ufZJf6hbuMJq2tyiJTfN+iRr6Ns1p1WT+2AlP8VNMEApnRz1E+MbG+hBBrHWsYmCwcD0PS1b2HVTFu2lg08a1TjBBe2tKOKvwTzFJ+E0NvNkdh/iuOzZ51dePrforAnZUwy3TGlYF2IIYcUOn4LCJlgslZxCIAURkKZ2ehvDsG9lmehX657icnLe9C8u/j7jJsZI3fA/FhJ+9lj357e0XVLsvHdefr7NRkbq60u2mqJW+0m2N6LkGQoCNCpCszSjCO3ZvFAnCoGUR0AYzSiE9okFX//Dtntr2nasPPAoq8B5WXUwFYxpQlNHToqg63ab471TPzC7ePHK/Y80+et9wc7tzeu2v7F2yYRLJnmnT86bkWXPyXUVZjvUuuSjVG0Hah4Hun+SGL5QZ5s/us+eOO9p5uUyN69O7KF3nKC4B29rXkddFcPM4q0b2qVmcWi24uzKk9JK0AUqZbYzJ9dZSA2TZVhUej7bnEzKmy60TSqdkKZXDtkzCKOluGtwwgTJoZJRCKQ4AvJ74BeXatFYy4+FiYXte1888PhV027VLCPaP5D0Fue6yt22V5sDXUE9z67YYDLWGEUIk/GtKJmGgoD2RksPi8r0DhIPJaoKqxBIbgRMX53irIoPzPnCg1t/XNu2l5keXucCqe4mt/iG4o36jZSGrsEfFsj5wJwvtvkbO4Ptm5veWXvkpXUNq/jH3C22RS5wFcN1vc4Cdtyu8E4tcpeJqKj7QuE30uFc0I0T5RYPjDAnbqmzfhCggeQQQBq6mAEjNwwkBaSiPhk/7LMXOH64k332Qv6Q71BHDUuzEKcr1H7cf0xQLF3rDLa1+I/1ZiLuGbXRwuur9E7lgvl4E71TeY+EsVvtcqpeb/jE/dUtTKnNdxf3Y2pAiGjhEE4+7/3bm78RpPdC/VUIZDQCZlcjmgjR8IrPWivNqizLniin144MHi3Lri30Ohr8YaNXUB/fyOAcndiKEI4OrirVMUHggkLnc409WzpCdd3hSW5bRNOF25k6FALpiEBJ1oSZhQtZYGZX87szCxZINTzlCsr36XXl8Y+Tqflzlk+6fnfr1g1HV+9p3tyiNdRpe1FEoBAsZuDUPA6bnWAV3mnT8udSUjR6prXIte8ovqQ3BIiOZ6ccFmMosDFeJsigYIOi6ghSzV/2VWfWkBTknfqX8OblPKwH/SE/jyOWcE/YDzOUjMqIJ9REFm2R8/EIzO55MwvP8DpzCY+vJlOPjDZYk/P0RrWIFIf0kUYdCgGFQGIQMAaM5pecvaruqRbf0eWTb1hYImYoqCMTEFCEMBPectqW8cxcZ5bV4o9YdnSGJnpsVmPoO21LqwqWwQig9bIyJ+Y1yNILNY+hgs8qWJiKurDwIZUGKYvFafeU8C+74oKKyylLXfteFjPoCrbtaN6Ad2KX3q6FtLAePuqrf/fYa4byrz+661eCllh05oax5xs1wuvIm110pteZH0cNbFYbC4cYVUZzWB2JGOROuvoHOMaSKvA8nZVpTymfHowEdzZvaPLVYwKA+L15+HkRrde3E0ypY8zBk4nYNBsuvjaLDeMeO2FS67jPgkZsicmLkKRSMnHxQsUbFTxR8DMOYYyMNeLKu6PyKziuEGBUEleJKgQyDgHjW8p30rxevLLmkWPdh112V8aBkKkFVoQwU998WpR7isfmtGm+YKQzzHpy0hUqLQqmCqEQOBkBqWqzN9rismU4WD67/+Hc2QXlOZMMHTyVFGKhuvfKe0KNN84m5c7gH8+vn/FxdooTm23olrZAC0QRIxXRWv2NLCMJFN3Bju1N67c1r5eWq7/u/a1gM/IwzEZcFTGXLHc6VzbNMTl3upydmMd2cyl96Lov1NXmb5I+tMf9jYADIMzfg0WfAKFvGXthMf6Kx1mOHDw8ORHI2KPzNheVnS+jlrDPXna1MCT2TdSA2vyRJ5KSGedjRgYFLzX+kyKrX4WAQmCkCMhP2G5zlngm8PnTeI40RRU/dRBQhDB13pWSNB4BoSRP9tjq/eGt7aEby6UrVHwgda0QSAcEDAuMx551yeQbjvmO1LTtfOvI8zfN/KThAciHEFXF06GkRhmKPRP4B80QH7n4XxzMWzM2FdC7guwvJ+awhSKhwx37OwKtvUGMcBYLy13uPr6pOTrPTccllQdYEfPcqU0IIUBdgXbKjmUMD3mTrVH8AndxZU51tPz9/aGKUH+YmSl9btltr8hdIiPKyX6xkQRvNCYWxt5U5woBhUAGISA6HdaYSbfOJYPe4BCLqgjhEAFTwZMJAfTFZYWuN1t63m0P7O0Kz8ge0UJYyVQyJYtC4CQEon6WmoU9tReUnHugbSecsKHrUHn2RIMqnhQ4PS5EkaXnIbSQM8PoxxqShjGKK8EBYS09IX84EpIBRcGN29xnJUyJw77WbYfa97NB+c6Wje3tYj3MFD4MF08chsuzKkWRdcusojPKssTeeszfE7tID3AACGGsFpvL7ja9Z8USzSeAOymmwFfCbsw4POmZulAIKAQyAwHajcwoqCqlQEARQlUPUhcBMX/ks5Ozfry/s7Y7fMAXmpZtYzhLHQqBdETAahAhQYFWVN381J7fB0L+QFgsAWJwIBT4tDoMr1JZYlEu8yymnOIUE5m0d/UtfA47cxgHC+VZKvo+V3dA9RTtpQF5DNwKL4WAQiBzEDCIoBYRvvrqyBQETtEfZAoEqpwpjICwIGjXl7laApFVzT0saKwOhUB6IyC9BDEMsvnE9qYNoQireKd3iVXpFAIKAYWAQmCsEWDwUY+I1RnUkSEIKEKYIS86PYspBrF1y20Ts/FuerW5pzOkGq/0fNGqVLEI4D95w4zbuVPXsZfVRGIfqXOFgEJAIaAQUAgkBIGIWD9YHZmCgCKEmfKm07Sc2Eu0Ko/9wkLnIX/44cM+MabFP9WI9fe+hwHLMKL0l7O6lzAExBvRLBNyJpPirpaNPeFuc2WRhOWhElIIKAQUAgqBzEYA9ysmcisHlMypBYoQZs67TtuS5just5RnOayWe2s6jP2WlQ9d/++a1r3/BwPfjYsyGH4YGT8nE8QbjIQDFzf6RCbS3Nx89OjRYDB42vBjGkC8Es3tyF5Qch6bhhvrgoxp/iozhYBCQCGgEEhvBAz3K9awUgv1pfd7Pql0alGZk+BQFymKwIxs+8xsx7bO4N4usbTM0IlPipZ7CGJDb+rr62PZWmlpaXl5uUziwIED7e3tnM+ePdvpdMal29XVtXnz5sWLF7tcp9mj1u/379ixg0Q8ngEXPIxLPIGXkr7u27cvPz+/sLAwjs0OJqNW45g0aZLNZvvSl760bdu2//u//zvjjDMGE3eswhh01VhLc6xyVPkoBBQCCgGFQCYhIFeVOdW6U5mERmaUVVkIM+M9p3spJ7is/GOZ+u/v6zDmFaZ7gYdevpdeeukzn/nMP8QcTzzxhEympaXFfNTU1BSbNuQjHA7/+c9/vv322996663YR/2eHzp06N/+7d/ghPJpQux1/WY00M0tW7Z8/OMf/9nPftbd3T2M3L/5zW9+7Wtf27Vr10Dpj/t94SQ9DKY77nIrARQCCoGMQWAYbW9KY5Om5dXMLWpG/na6w/q2TmN/oChYanLiyEFNcAqKECYYUJXcuCBQ4LReU+bOtls3tgdea+kZFxmSPFOY3qZNm7xe70UXXbRs2TJ+q6qqpMzYwWbNmuV2u999991AIBBbEKjHunXr/vu//3vq1KlLliyJfRR3Lhv53/72t88///zq1atDIbFc9dgwF7w6f/KTn5Av9k9MlK+//vru3bs5H2TuL7/88kMPPYR3KAJjCIVStrW1xZUu6S6VETzpXokSSCGQ6QjQC8iOYJBtb9rglZblTSBjY2WHQEQ/0h1aVuDItjMzMW3efFoVRLmMptXrzNjC0LxcX+b5TV335vbAzw92TfTYq7LsQ54wlwHw3XjjjXfccYdZUDpverILL7zwvPPO+6//+q++NkBo0ve//33I1f/8z//k5OSYEfuekE5jY+Mvf/lLAmNR/OAHP2j6o/YNnNg7EEIK9eEPf/iyyy47++yza2tr8/LyTi1trABI++abb0KJ8aH9+9//jn/smEkeK4Y6VwgoBBQCKY0AvQCzD/74xz/OmTPn+uuvpyzjwpSQ4U9/+pMpw9hA2tHRQfe3YMGCFStW2O3poVqjICRm5XaUsddbAixQ47VbrZololmUMWpsquWQckmPWjukIqvA6YkALc7P5uffuK5pTWvg7j3t/z03P491ZtRxMgJx3XPc5clhLT09PT/+8Y8x9/3zP//zaecE0nUQGAPj8uXL16xZQ6z3v//9cQkyTRG2xk2MkyZh8/l8OJri4VldXZ2bmyujYGCsqamhW508eTLT+WTEKVOmYOEkABa8uro6JgpWVlZSBOnhyey/PXv2EAZbKMLIkATG5bWhoYEplLDEiooKh8Mhs5C/kFgekTtGRTgh59BLUu5bXtJhEibutaRDvunS5ceCoc4VAgqBEwjQND3zzDO0PzfddJO8y2gXLdiGDRvQ/pkpjfaflZUlH9EiMa6EhwItjxn+RFoxZ0eOHMENgUaJloQ2B94S81A0bm+88QbtkrxZXFzMOBfuG7FhEniO2LhUnH/++bScCUmWRvJ3v/vdlVdeecMNNww+wZ07d+LAcumllzIqN/hYA4VEBnxVkEGS0oGCJfA+PQ4jib///e959fSA1JlT960JzHr0kmJ6AlNGEpL+nq7Qr2o73Zq2JN/pEZSQMXw1Yp8QaBOZiCKEiURTpTVeCIiV9zXLFI/t2zO839/b8XJzz9+P+T9UQScqplyNl1RJmO/DDz9MvysF+/znPy+9QPvtuujh/vd///fnP/85gR988EGMhx/72Mfo4wciQrCyRx55ZO7cud/+9re/8pWv3HPPPXTG5iI0ELxXXnkFRUGSN2ySLNkCLcRJFdvj9u3b0b1QsG699dYrrrgCzoa+hWWShWG+853voGAhM8n+4Ac/OPfcc/fv3w/zhHOWlZWRyHve8x4m/iEk2hhRvvGNbzCH8LrrriMiN0nn/vvvf+6552CJ0Lybb775s5/9rNV6YqTghRdeePXVV+nLv/vd7+IWSxFQ14iLoiZR4hco0PN+85vf/OUvf4ExFhQUvPe97yWXkpISM4w6UQgoBNIMgePHj+N6QCNmEjzaK1obGkMaFogcTeLnPvc5hrFoHx544IH//M//5ISBLTO8CQhtiGxmmV/9rW99ixQkIaTRY9Iy4c1GGAf+f/qnf2J8SsbF5eGcc84ZPUKIJY1Z3wz5yQbTFHiMT773ve/97W9/+8UvfnHbbbeNcdYJyc58fTK1uMuEZDFWiRjenLh4Gjt4RfTwSKgb1d5QzSxoZQe7w8sKnFeVuh3wQXUkJQInFKOkFE8JpRAYGgLXlLo/OyWHpowRKZoio20bWgrpHRoexbKZ8jh48OApCgu/+o//+A86tltuuQUaBp1DN2K8vN8otPuPPfbY4cOHWZyGwAz0MhkvNjBj6jCo1157DQqKDrR+/XoYGjZAEn/qqacYnF66dCkD1V/84hdXrlxJahBIVCICYJcjR0bNGVNHCeMSvQHaduaZZ8LioJHcQWciDPyQm5xs3LhRFo10oJF33XUXWhoUlEv0MMb4Y4uArW/ChAnZ2dmsoQrTI0coKwbD2DCcP/nkk1//+tdREC+44AIuSRNFSs6TjAupLhUCCoE0Q4CmgxLhp8DaWjQR991339atWzEP/vCHP3z22WdpUliZmfE1GsmBDFySIeBzwXpXtHgEpp35wx/+AC2EjMEzJWIkxegYHo8kS0Ycf/3rXxkXGz08afeuvvpqZpWPXhb9powvCW0pzbKctX755ZdfddVV8+fP7zewujlmCIiKrguXzoRY8CTzW93c825bEGfRWyo85S61j8WYvcwhZ6QshEOGTEVIZgRsVs1roxXSOsMRJjG7xIiHbJSSWeqxk+3ee+/Fqnba/FBcsOZhDYMIYQ0j/Cc+8Qn6bG5ecskleDrFpYDVDiJXVFSEl05nZyeEELvcj370Iy7xvUSd+pd/+RcMfQyi45sklR5cRv/1X/8VWkhIaCEJfvnLX8Y8iDUS7UTqT1IP45F5SVzYGvyNGYOLFi1ibB5zH4nffffdZ511FkXD+9QMDyllsZkPfehD2DkxDyIYvDRO8osvvhguCvsl91irYFwwylJdXc0wNmFgp//4j/+ItRB7JkWOC6kuFQIKgTRDQLY/8ECc0hljwhmeZoe2lPaN9oqGkbEkqCDe5gM5UMimDFdGyB7tG00fac6cORPXUEbB8BFlMIs7NG6MZ9HITJ8+nZnMo2cYNF8Q/qgc5uWYnQAIbTVFlsh81DjGLHeV0UAIoC0x0y8YChzu2EcYuzV+D6qBIvZ/X7OEwpbH6rvbQ5HZ2fbrSkfL87n/3NXdISKgCOEQAVPBkxsBxrc8Ns1jsz5a7z8zz3l1qTvXHjUTYjBU1HCQbw+ehuICxZJskFgoMQzoMoMOK1kcIcRGx4xBvDqhZzhQERjTGbY7poW8+OKL1157LWPAWP9w42RMnafoUowEozxxE5Yo1RHUAhQg2CacDYMeioI8pMBSaeCckXiUMPJi+wzGtj/1qU8RRYbp+8vyoczwgfLBBnkKjWRt1b7BTnsH+RnCJxGMhKa7KUobEp42buIDSGcePNCM+kzlFl454yFI4oumUlQIJCsCtHK4PND00aDJRgDD3TXXXANLxHIIITyt4DQXRP/qV79Ko2c2HXKusmzraOVICg/2Y8eOMbaFMwX+8Dhc0OgxEIYrKQs+46eK0ykpMIxFE8odBu/mzZtH00oicWFYKowwuGPQghGGVpe5bXFyYqhcu3YtbSne/nv37n377bfx18AXg+XEpOOGlJBRMPw7+CUjkjLzYiyPoT2cNWjMSRyBzfQpDsHoCxiYIxdAo82k+6B0GAORnBE6brL7EQOIzMwkdwyGTBonBToaxIY/04BTZJxKSJwEGaPEQwS2DFB0UgSmkzJnnptZmydkDVyIQelM8yPpAAs2Xug9/RS0nEKZiSAVj/BPoeA8QgbC0+kACAjQCyAblYG3M23aNKKDGLMMGA5gBoSZbyqfML9Pb+w+9O6xN7Ls2bOLzhrRfD/dsqYtsK4tSCf1zem5qqdK8oqhCGGSvyAl3tAQwEl0SR5+6q6njvp/VtO5vjVwXZl7aYHTWNoK5VkpzoPCk36aTpSemw5PrpoASaNHxMGy76A1ffOjjz6KjsIG7sQiAyYBMmrOPhB09hA2elaUBpLiIBgBUFDoU3HyZEkDFoORm8ijOtDXkj6JIACJEIzOmPDkjt4jRccwyNg8+gT+Wgy0o5ChLshHcb+oX+RC+iRCmvwyAI8wUsi4wKe4RBdBfnJhniEdP3LiekriMMxTxBq9R2DcW4+11w/9/boZ/6Aq9uihrVJWCIAAnAfGwnxCPAUkIPA0zqEoWPlgJoNpVeCNrDhi4kmLivMCbQuzBLlJCrhakCANKQ3XT3/608cff5z50rAsLlkAGVcIWiEG2mhFWcqSlg0uR8O4cOFCPNiR4RRhaDaZQA6VMnOXJ/BPpnwz+xrKhKES3weaOAghjT8JMsDHKBj0iXmGrB0KIWRkkPVaaLplXhQH+aF5tMY03bGEkOIgNms4M58cP1iTEJIabApnE1p7ZGBOJgnicMEvB5nu27ePaZYwTPxp6X3gnxhRscrSI+BDi9cuTIxOB6AmTZoEJtzhXcSVi0v8PhiplIQQVolpFzLPfaSiB2GrIQghPcKMGTOYG8+8TeYO0NHgxvKrX/2KR/QUPIIQQgtxXYHTAgVdEmKTHdMd6Q25gwMwYZhPzswFWaK+kqTYHc2yrWlde8/xJeUXT/JOHcmAY3dEX9noP+IPXVTkurDIKZaSUUcSI6DmECbxy1GiDQMBzVLust41M/eSIucRf/jJhu7/t639Fwc6hV+8OgaNADoBI6+M2qIQoHbQ3zNijbLCsDSP4pJhKBetgj6b7pzZiUa3Ln6wLtKpM0aLGxW7UDCSihJAj4uqwUIyDMHickmnjiaBRoVawxJtzJxBw2Cwlr6fFUHxniJThmxZ+oUAdLr8MvGGkPBMhEFjIIU4ecxLxqHp1NFjEIMhdgRAD0AbMAMM8gT50SRQERAGtYlYyI8GgzIxyBQSGEyH2Fosbnv2kgkX5zjzVtX97QQ9TGA2KimFgEIgBgEaLkaUYDU0KfI2hIchISgi41yDYYMxiYlTEmR/Vxgd8wlpbOXIF20jLvSwO1otZkrTuOH0Dg0z49LoQa5wg2duIXwSCgeXgyLSHMWFoXUlDAnKMPAiLs0wpziB7WCFYz4k7RvCIAPNLNQUKkhDitt83y5goNSY+E0ZcQ1lxJDG/H3vex9mPRmYFcJo4SdOnIgfB1ZQMwXABBA6AqgpJYV2wrIoIyOAZhhII9baVatWQYwhnNBXiZ4ZQJ4QBUcS3EloriHz2GbhkzwCXqYYYP8kBWgeZl64NzdhqiDJ4joUkB6N6ExwoO8jivl+GRdgGgX9Ef0U4MAeIbfvvPMO65YRjDcis07pX0YbuwLtqEwzCha6bCNy8mRT6Efqu0HvW9PzxCBm70BmSuOTxsIrQpjGLzcziyY86Zi+fN+CggfPLDy3wNkTidx7oGvBqqMPHe5uDIQjoutAo+aP+M1MjGJL3W9Xik2MpQ5w8kTPYN1zmBgKCm4z0EJUotjomMv+/d//nfU58fxkQh0eNZjOODhhVh6UEq9RRlUZncV/CWWCEV9cQ+l9yZeO/wMf+AApMzTL6PKdd97JsDdrz6CRMOoMh+QmseCHjG2zoB/D29A5/HnozrkJu0ORYvg2Vh6z5+YmGUFQ6dFJlhLhmNTvOjpEiY0Vm5p5zgA5QrKsDrKhJVBqhqVNLyMz2BicGJ6iQuDy7MmF7rJQOHD/pru7gu3hCERX1m2qtarYY/AqVBYZhAANFwNDtD/YpmSxacGgavA66fVwaiziWhi4BwNbMAqaJkxktE4EIEH2iYWf4DGBLRH/SZbcZECNLMzEaYIwdjHWBhdltA5fRygiTZO5KikhZRh8NAjDosr9hjETjD2RQmIuw2LJiBsNHZyQAUHac5gbA2pwJFgc0sbGQmyO2DvmOYyO5hq6RaGwtmHNoz2XT+kswJOkSJB23ozCsmfkwjo3LL5K2848BToIBuPInVZXBmP9anxcafxBD4bJS4mDVwYDH1glvQZ9x6c//WnseDBARGVdH14Z++5i0yMLrJEUFprHm6W/QxiWqiZfHFzpwqTx1hSPkUGAhQRiI6Vz4U3R/SEMBlio++CpsplgUp5oDDsimM1KtRS+QkMV0qgRensw8pOaLpZyuKPaW51FnYlxbRlqiir8mCCgXEbHBGaVydgjoFlY43hRbv4jR7qfPubf1Bb4111tfzzsuGWCBw/Smdn2TBuswtfoIx/5iDRwxb0Nmm9oHl0aJAcmJp/C6DDoMTDMGDYBeApDk+6jsdGhW1VVVQz9onbE3uccxyc0APpXCCHdJ9s2MIxKv04HgwcObj+YAXHOQVfAt4dRXnpl+lpCkh1hsO8hw9NPP43WRd8PO5WKFw5O1dXVTDVknBg+yUAv6SM5qgaxkJ9zVBkpDIoFwfDqgZriX0SacdoMwej76cjhvZxDa9Ew5FIxTD5EmZDn6A0MRTPEjpEQCZEZZSKOG8scx+wXQnhW2bKGzgPbm9b/dssPL5x4RaGnfFLOVPpy0ZsPuRP//+2dB2BcV53u753e1CVLshXL3cFOHDu203sjgRAIhFCylM3CW3iwYVnIUnffvmWB8KgL7FKWpSe0pYUAaYQ0CHGqHcdxly1btmzVkaa3+77/OTOjseQi2SNpynfjjO7ce+4pv3vn3POd//+cM2MZZ0IkUH4EIK5QecIbAqY2bdGCWMI+9MxJyACYxTCHM8QGjFeoBvM4YNDTsek6GbUZ1A728wGgzbCPS9AzhaSxj1poXEU0mTD5CAt3dEL54uSFLiLEEkSQr6iu4Z2B3j3UkzpRXVcjksJM6jhxBM4d8OlAd6EWFVCAUFmAVpjouH0YJFFkvFN0/LgQ3ZGonPGCgJeHDoz8oBpHgInvo3zS2Cl8JWEAoZ6QDFIcDinICapxHRg2XrxEIESRLkx8KDXi1xmG3sOmjYQ6ML7qHcSD4zoeHRiZgWzWZ6v90zRGU9Yndo68OJpcVeu8rsXt4lIT5fBMUBCWw11iHk+WAEyFfzPff1mTe8Nw8kcHIi+MJl/cnjyz1nlJo/tN87zzMANy1bSb4eKCbSJI/TLD+xUiB1thALwpMZkntsKD4/bxtobbjD6YbxzorzCg6bWtcBwb7HVw4MFWGANeohgcgq3wIPaRK7xrMQfMxGlg0F5Bt3dheLSN8nmAfsvvIwzKBV2KTYdHNnR5Cy/H/Hb5r3B8ze9jxpr8PhofaA5iyx/BzlFjKwww3fvnzbumwdty947vbht8/lBkv88RmF+7dGnDmWe0rPc6ssJ+uvPA+EmgGgig3kCH2h/+8Ad4cmJUG6QajHJwrYSRSguwyUNApxhGrEHkwNMBvVT6QsgVWJwwVzPcI9EPheQwVQmGYcMeWGhAm3wqEyu6iUeOGls+GHb0hmAoI3QgnERguMO4R5Rau87CmxTiDSoOjp3oeiuMENeiNsaF6AfUdjb0tcFxtDDMxH2UHe8dGAlhmUSHIALo7kJYQfN9eYh54oWFR3QA3B28bhAbRCkUOFQ03h14rUAowo0WXYp6PjPoOiSHzOM9Atro+IN/KTKM5OBRgp7EvDAuTAKxIavwR83Hg75CbIVhqnYfPZIP9cd/fzhW6zDf3elfFqDQKI9ngfepPO4TczlVAjKwSv6TbYnfucjvvLbFg/HNn9w5smkk+VIo+ZMDkVs6/O9b4NeBZCotbVk50ctmqjkp3/AnfO+OK9qxwh/r+LjL81+nGj5/4Ql3ihtzcWM7YeYnBvA6fKvnXNhZu+yBPf/z+L7fDpp9B0J7nj30OCTiBfNefsacczElgHquc5O74xchj3n2dyF2h7ztQZ8SJT4xHR4pEwLSRZGrz2Ypy9pdWWYqrDgPMSwfj1mytBc6rF5YcAK/FqhEGA8nDxsyEioFg9nQ+wYPRkxcCeEB+QGrI8xTWM0Vp+CXCH2oV3bFpDLoWcONnUwS+terA0/ykny0heGxj6jyRzCiD4MF4PMJRwmY1/CJPIMAjGxwy8RgRUyyBddQuGbkY9M78OxAZ9xnPvMZKCtcjnGJkF7aF2NcyPxXiG1wBmR0RGLUIpKDawnse3CgRaL5YJPZgZyG+yscT6DZMOYQ3XkYNYCuPfj/I2b0/cFBF2zhBQPm8LPFPjxKMBIBTryYrxVSFh6kGAaZ9zfRiWo44AOHUvit3HbbbcgwvsIHOD+pjA4zmUyWWhjkfP/orid6HkTG8NCpgmB3cm8FhJZfvfXEUOJLXaPhlHHNHPdVLR55y0wuglKjUW35oSCstjtepeXFuLdGl+0N87z4hzlm7uqJ9ifS/941+t/d4Q8tDlzT4ml2wV1eN2aqFBGLXaYEGjwtr1/+7tcvf9eGg394sX/DruGt4dTo77t+fG/XXa3++csbzzpn7lVuu89u2lx2NyYJwKeUVDf5pAkpr3H1zpZ9vrrL9DFQt7QE8q6eIBGm2Mq8FQjxACMVTEwaK3bg4QkZgJlO4DEIlwd4QMCxXH5DahsXXh8s/IQlDXNo4RMGRkxbgg1nYZhCnPB4h4M9YkASGI2GHQgnLH8KuQWjFobPwU4If0UcxyUwTyFjuBD7OAvpAlGKbCCHCKOFE87qMPh56zBHdbBEtBiviE99eX4fMSOTiAEpwk0DkhWjweFXCe9KGDZxFuY1iChM8gzfV6QFNai9PwrTWrBgAYbqwaEDxjpcAiscrHNwtdWlQLaxo+khb0ga8eBySDIY5TBuHJO14CskJaDBdqcLiwLqO4JywUqJSPL8EUBvOg8YXYlJYiBBkQomYoVg0w6fGPIH538MkocfLNxE4eSCwe3wUkGwhQsXInWMZscpYET+MdRCWwg1c+RTJ4fUoR4x1ygsul/72te0wRCfyBIC6DC57JTTX3Qo/femTycz8bNbL1nZvE56EA155CaxyWsEjahw2rj7cHRPJH1pk+vrZ9ar10vuFzKJWBhkFgmMdQLNYiaYNAnMDAFU4toQcjCe/tnB6CMD8WeDSbzMV9Q4Xt/uuwBjC8W3ocxbMTODkqmUEgFl9kOGzJSV6hnZvWXwmX0jO/ujvb2hbjlqGBnDwqJS82oWddQsavd3Qv81eFv9zgAMEUOxw5FUuD3Q6TCdfmdNo3f8LLKlVFDm5XgEIskQ7mbGykg3/axt0q1mM22N3lavYwqms1nL77ETxmwuWLcAwkD7FuqA0DPwe4TlCmOP9QDjfARHDZ8/ix0MEcSKpvBgLBQM0CHa+IYA+D3CRxEyBtIIugV6TF+O43BHxOg7rOsAyQFbIuLBuG44UsIqhfwgJ9A8WLAB87ggDHTLxDBQmAhTmB/sw3YHaxhkDyx+WAQIBjG9j1MwrMHJE8WE2oQixfhJTLsCRQfDoM4/3qewreFyZAPHtU7T+YFzZn7dP8zMiYHoiBCpY3lbxAmbG0oBgyEOYiADCMDAiMlIof0gs3EQ5UVZMJcMyoWDeQWI8eSwqeIIXG0RBuZWTBWD2HQAXKg3eIGCD/KA2AAHZwEzr+UQBjlHPlFYDE3E5fn7KC0E09ToUGoUAUmg7Aijy4Wy46AOhniQBwDE/cJxGE4hPpEidlCibFbK7c9A7NAXn7o9mU7csuJ9q1rOm6LHAcBYPz0Y+9DWYIfb/qWVdevq3aqXHdGUK5Byu4GnlF8KwlPCx4vLmsCucOrJ4QTGFm4eSaLaOrPWhbGFb57nm+uxKfsJCie1mer3msUGVlkzZuZnh0AoOTIYxTqS+7tHdgzG+jKZVPforpE4Fv6SxxkPdYO7xef0QzwMxwdiqUirv8NuOpq8c85sOR+eqC6752VNZ0/MOi6ULmNsk5UcOrRcoC6b4Q/VaS0lRrGzPnCz7VN5SgTAfyjat29057hYNh7+C+5sLBXG3RRBKHd5djY0qG0C3MQD5nH68BQFnHWnN66R+49z6j4gZ6paxYOYvRuzk1emSgLVTiBbOSpLoDEY7fvt7h8+2/sY6v9bVoognCIeC53s798STFnWBxbVvHme12lqHahSmWJcDD7zBCgIZ545UywhAliFIpjK3N8f/7ftI6Npy2katU7bX83zvX9hQDep5Bci3aGz0pwtIVDMSpkSSKbjaUsmKkxmEofC+7cOPAsr4sHwXuzoEgVcYoUYTQzLq9u0OW0uGww8yr9U/wSOLDhmi5PD58+7xuPILsimA8DwOFFDioBE61/U2Cz8gpR8FfU7mgxuG3g2lAgi673h7pdU2Y9WuiPLWorfzIyVxq1Ud0GVQEmreDq/MkEGnfEwCM9W3rO32cJDJDceLsqwFqrVzMybl79rZYusOCdh9GOkhhzpA7OVYaZLAtVMwDKkxkAtgurxWxs/iQ5E1DABV8N7z/4E3EamRGZPJPX2jYNwFr2hzfvZ02vddvzQZ6Han1KeGbiQAAVhIQ3uVx8BtJRVoVFvfXVv6Ec9kb6klcgYFzU437sgsKbWhYlIpTubDg/V92hUSokLHnGlE6R3Qx569Ve0mvyHQOFk8PsvfqE/KmsrR5MhUVNH0RViIEyko8lMcjJ8ltSfMS+wEAnM1rZ/tKtreDNSVz/zbD6gTxy28h0/b6L/3p7LvyqSzevwrG+/EsUE7UUNK22zSFyNGdo1/OKB0O6XBjceDu8LJ0PIJCQrnhnsBJy1yxtX+121l552A/oU4KVsM6c2WchsPUtMlwQqjIB+N0RSoYe7f3Vf10/wS3TbPE6H918v/i68pKYk5yJp64Nbhn/fF1/id/z3qvrTPLK0ZoXhqvjiUBBW/C1mAY9HQNkupOkr/xnGwVjmZwcjP++N7o2k53rsr2vzXt7sXlMHw6G0g1X1lvt7vFh5jgRKh0D+8Ya+y8siPMtqP5dNPbpWtKFq0L/YL2N+jiUrekZ3D8X69aWIHTvpTOpAeK8+kv8MJYYRTH41s/ajkcTrPc01rnr4wTZ6WmGtwhGMpWzwyLKT5bepmzYu/3JXVfWVr8eOeedmqMDyUEim1DxdmOgIye4Y3Lx7+MVUJjUYOxRNhXHEZjqXNKzEWprLm9Y0ejhydYbuDZMhAank8esECMsYivfdvfN7zx/6E2r7Vc3nnjnnPFQv7X69GooEmcyG1ee/vz/8710hWAX/fUX9hY1uqQHoET4ZdqUUhoKwlO4G81ICBNBn9kwwcc+h2Hf3h9GgWeSzr6l1X9DgvLLZg0V1UEGqhg4yOtm6sgTKxCyQwDQSwKs/k0ljIcSxNJRugclxJDE8dnBm9yQLSgDXeRr9jlqPw1fnabLTGDWzd0Gnhko1lo4EYwNwVw7G+6OpyEsDz3QFt/VHDnrs3nk1i1c0r8V0uPNrlkh4qVlZu2py/CSB6SCguwbh6xH73a4fPbb/nlQmed7cq69b9Oap95SJlXHDcOJ9W4Z745kvrah7TRuGEvD3Ox13bdrjpCCcdsRMoNwISF2JcVdPBxP/uiO0PZSE74THYX9ZwHFFk+s9nQHUdaIJWeWV231lfqeDgHY6yv0e8u0AdVh+JPkj05H4CeJUhipkQY1jzDZSZjM/J8huJZ/ONkBxE8RObRkY2hpJh57oeeCx/b8Nx4MOu9Nhd2MSi9cte4fb4Zvdx6aS7wPLRgLSUSbdZfiVbez78/c2fy6VTl4w75rXLHunx4GFTPQ0MJPFpOpY45bnB/88lHhbh+/Di2u8HDo4WXglF46CsORuCTM02wSU3BNLoFSav+iNPdQf+8tQIphMpy3T7zA/tLjmsiZ3o8vul4qPGwlUNQHd0lfeqIVjRuTwrDfr0e4ZG8Yiv+fCHFb1XZvxwuN5yM7ymk0adae6HzAS/qH7V9sHnxuJD8fTUbRVX77w5nPnXe1z1Hid/ll/hGYcFBMkgeklYFmZYGLwQGjP9sGND+39pc2wr2+//HXL/5fbLpa9sQpzcrlIZqx3vzD0h4HEEp/9U6fXrq+HpGS7aHLsSi8UBWHp3RPmqMQIYA7lJ4cSjw7Gnx5OYN1CtHRbXPaXz3Ff3exeXeuqdeb8SCXbrApL7OYxOyRAAqVNAFIdBsMNB/+w6fBfdgxvxnhU+Pdixto1cy5c1HBGjatOuuZUzTr2UdolYu5IoAQJ6A6ybYPP/2rHd3pGu5BDl929ru2yS0971VQnFMVvVrd17u6NfWxbEG2gTy2vu771iHmnS5AAs3R8AhSEx+fDsyQgBLSLxe5I6plg8u5D0U0jqZFUps1tO6fBdWOr96JGlxOz8VMN8mEhARIggSkREMstbIVSew7HBvYEtz/V+xDmvseCipiPtKNm8Wk1iy/quA6zzqjlf3LScEpJMDAJkIBuxpjGL7Z/65HuX8+vXYbJfhfULVvSsMoL2+BULYMiLo2eWPqDW4LoLn9zh+8ji2sCjqm5m/KelBoBCsJSuyPMTykSkP4w1SOGBb5C6cyOUPrLe0KPDMbthum1Gevr3dfMcb2p3TflWrUUy8o8kQAJkMAMETjS5Vj0XjwdweS0D3ffveHgQ5jrAvMAwWC4oG75dYtumV+zmHXsDN0YJlNZBLDS7Jb+p8PJ0d/tvhNzybzh9PeeM/cKhw0zqOst93eypZY20S97I7dvxTL0xkuXtmK90Sn7m042LYabIQIUhDMEmslUGAF0kGEU9Te6w5uw6DUWLjSNxT7H7YsCa+sx8bJV71RdZTJIJl/usb38Ie6QAAmQAAmMI6CshuaBUNeWgaf/tP++SHI0huGFRqbVf9r1i98Cm2GNu85pc0M+YuPk9uPo8SsJyC9IfhpW0kqFE8H+2KE7X/zSANaYtQy7zb627dLXLL014KqdqluT+mGKMR+xo+Xzd5sxs2j6vQsDt3X6LawjwzZOmT95FIRlfgOZ/VkiIP1jljGazjw2mNgwlPzLcGxrKI2a8oIGV4PDdkWzu8OL9SqcGGAolWTu/1nKLJMlARIggbIhoJuzapiSNRzv3zrw3NbB53rD+w6G9qIMTd7W1XMunF+7dFnjKr+jBq4bnHumbG4tMzojBNBhjclj9o7uwPoumw4/2RPa7bK5O2oXt/vn+5yBy+a/utZZZ5ky0GVKW1YQmgaaPR/dGuxPpG9o9X18aSBgt6kf4VTjm1LiDDztBCgIpx0xE6hIAloQihupeDmZL40mUEX+YH94fxxepQashG0u2+kBxw2tXijDs2qdU+2Kq0hoLBQJkAAJTIKAnqVW165SxYYTo8Pxw1sHN75w+EmMMMR6hj6HH+Og1rVdcm77VarHbRKxMggJVAcB/H72jmy9Z+cPtg9tQonnBRae0XLO+rbLm73ttpwMVDP/TlHCyTXGfX3xT+0YORBPv7bN94HFgRYXYkT3uOqZqQ68lVpKCsJKvbMs10wTwGSkIbRTMsZX94w+PBjfE02jIeNzmA7M5WUzz6xxXtrsvqzRs8BrEwmJpg6Mh+jFU5JS2REzysN0ihX0TJeS6ZEACZDA7BDIWOl4Ot4V3IL5SP/ccx/aoC6bp97ThEnzVzSulUapeMnpKWpYkc7OPWKq00pAHm/dfkA/tDQe5GmXQ/Loqx3T7Iv03Nf1kxf6nsRYwSZv2zULb17VfK7T7saIQRVwyh8SsaQj8f95OPGRl4L7o6lr5ni/sKLOB9sgt0ohQEFYKXeS5Zh9AlItq5XPpO7801Dis7tGR1JWMJlJWEYoBb2nqm/DfG27N2A3F/vsWM/Q77A1uVDTSvNFtWdkhxsJkAAJkMDRCEiLGBYJeJDes+v7XcPbQokhHFnWsOr6JW9t8bb7nTW6Nj3atTxGAuVNQAtC+QFIOcxwciQjPwgLi7XEUtFoKvLHfb/aMbgJxz12b1tg/muW3LqwYQUa+qfyo8gqTcN8fiSBcYOH4umrm71fPbOOLZbyfpgm5J6CcAISHiCBkyagLH6qlhTthzo4lrGeGEr0JzJbw8m9kXR/wtoXTQ1hMVdlIGx22U/3269u8TQ6bStrnPO9djvHZZ80fF5IAiRQ+QS0uSLbh7ZjaNMzvY9giW2ZMMMwVs+5YHXrRU2e1nk1C0/aHlL5CFnCciaAHwDk3zY887FDOwc3qQ5nYzQ+jEmY0lYaLQ/8Nk5vWrO65YIzWs6tcdWjrLlmxcl2N0t7xcKgmI+pcYOvlnGDNejUlpRUV3Y542TexwhQEI6x4B4JTCuBvkR6OGlhVq7RZCaSMX7dG9k4koQJEYlidXtMUtrqtt/Y5sWAw1a3TWr1fD0u9a58k0PcSIAESIAEcgTQOO4e2b6x78nH9/8WPnJeR6DO3dTim+t1+C/ueGVn3VLVQkZoVaXK+kGyg8pUvDlYp+Yw8m8JEpAeZowsETmG/41oKtwd3LF3ZAceeHyOxAdyeZbnGM88+kHQG4L5lhbUnd7gac6dPbm/8jNRTQ+RCff3xz+5Y6Q3lr6x3ffBRYEWt11Fqs6fXPS8qvQIUBCW3j1hjiqcgNSzGcuMpjNJy/hhTwSDs+/qiRpWxjRtHpsBMbjI57ys2XXbghrLyGhVKNZGqfPZfqnwh4PFIwESmCoBNFjTViqejv5m5/f/1HOfHlRlGja3w2M3nRd1XFvvablw3stV6xqTfom/Xa4lyxp1qrAZfuYIQAbqfgy8/u+RZ/terMyJhgMG0+LEyqZ1bYHOKztfp4SbZbc5baYD63Y6bFBrRXiwVdr4sP15KP6hrUEsQ39ti+cLK+q9IgaLEP/McWRKkyNAQTg5TgxFAkUigPpVfnWY8Vk+Ua2iYrUGExmM1f52d/hwIo3VK2RyGivjMm0XNLre0O5dUeOscRgNTnt24ECRcsJoSIAESKASCGTrUjSeZaaubUObDkf2P7rvHizDHU9Fk5m4EoGiAecFFrysaR2W5PY6fDXOeps0nbmRQIkSGIkP7hp+6ckD9+ORhiXcaXP5XXUYHLi4fuWa1ouWNp6JJoF0MItulF1RaXq3GIItkbHg1nR/X+zb+yKHMW6wxfuVlXWShKTJuWSEe4VtFIQVdkNZnHIgoEZ4a5sfam/Visl+7Aynt4aSW8OpDUOJrkiqX0YbGh0ex5k1DsxAM9/rWFvnlEmeuZEACZAACYwRgCgscKPAktyZxI6hF3pCe+BZt2dkG1rMkdToQOQQrCseh29uYAFGWLX6O5q9bZiJ0WV30egxxpJ7M0FAeiiOlU4kGeoKbn1o7y/wDCMMhgLO8c1d0bz+9KbVc/0LbKaebUB7ksLejUc/H9PYXv7QSexE09avDkW+ty+6LZT02s1Xt3k/tqQm4MhHnt85ibh5SYkSoCAs0RvDbFU5gT2RFFxJXxxJ3dcf3TiSSloZt2mb47YtDzjfNNeLhe/1qwBvFLUjvYTK5KiXssh9Frwlqpwniz/rBDKZzO9///vvfOc7X/va11paWqaUn5GRkTvuuKO+vv69732v1+vl2K8p0csH3rZt23/8x3+cffbZb3/72/MHK31HLCa9kX0wncBaGIwPbjj4x+6RbcPxQRQc7ew6dyPGXJ0/7+rO2mU4gqY1ak3li3G89nqlQ2P5iklA+irkVY1uX7Hgqf3cg3a0d/RAtPeBPf/zYv9TeFwbvXMu6XjlaTVL4Pbc7Guffh0mPdQJy/rFwdjnd49iPjxMavcNF2AAADixSURBVHDzXO81LZ4mtd6g5J5bhRLAGmncSIAESo5Ap9fe6bOfU+960zwvVqz49z3hhwdiXZH0/lj6T4Mxj922wGvHIMPLm1ziJqI8pdQLR70vcq6oJVcqZqg6CHR3d0P7BYPBfHFXrFhx7bXX7ty58+c///nnP//5/PFJ7sTj8Ycffri1tfVv//ZvfT7fJK+qnmDhcBjAzzvvvI6OjuOUenBw8P7777fbq8hPUqu6Nl8HGt7KgmhhAkYMONzct+HJg3/YMfjCaGL4YGjPs72PuB2+c+dedelprwq46nLC8DgseYoEJktA9zBIzwSu0K9oy8TUuPtGd0kU6kg+rlgy/KiaHiljZVa1nH/LytvcNq9pExdNU+YUmG5fTelhfqg//n93jMBIeMfL6q5v9XjEtVplPp9L7lQiAQrCSryrLFMFEJCXhOUwTD9GDjps/2dZzf8xajG2+wu7QntiqXTGeGE0deumfp/dcWOru8PrOL/BBRPirkjqiaH4a9pknUMsGFvjsLW4sJRFBeBgEcqJwO7du2HQO3z4cE1Njc736173uuuuu66cyjAbeU0mk7CFOp3O2traKaV/1113QSp/6lOf+sAHPoDLj3WttlQc62xFHkflJ/1jyiyjlgIyXHa3ZbjXtV2+vu3ypJV8/tDjj+///UD0cDQZur/rp/d3/WRuYOHSxlXL6lc1+VrBxGP31bobuIhFRT4e012oUHIEY//wiYSePvhH2Kixj7VSQslRbS88agacNjfcmG9a/renN52t/EEllHIFmvbhIv2J9Ae3BNH7jBWSP7a05sY2T36IipqT6aj55cEKIUBBWCE3ksWoMALKZ0l3LOqSScPmggbX+WubHhmIhdLWhuHEllDy6eHknQei2gklF8764YEIOsMDDtvpAftVTR5MtOexGxh/6LXBaWWCOjStlwUcutKfeFamOc3aGydcWGHEWZxiE7jmmmugUnSsc+fOnWr0MlHIMZYFOM6pSaZyrBjGHddfxx08iSROGIMO0NXV9YUvfGHlypV/93d/N8lUEAzXrl+//tZbb8XnOOvfuHSPxXPyaZVhSD09s1Rf+adJfZGiOEznuvbLlzeefSC0p2d01/ahTf3RXix5j6+PdN8NtAjT7l+4tu1izOPf7G2F/55cphvnQh5xsmJUSKrpQ7wqseleBvXWxK4INgVhJDE0FOsLJ4L9sd4dQ5sjydGdg5sLX7w+Z6CzZond5sD4Va8zMPEBqnM3r2u/rN7dqOLLPWETX8/qdFE+UFEgnp54+o6do48Pxju9jjfM9b1prk8aBtlqeDqTL0oZGMkpE6AgPGWEjIAEZo6ANEAua3LJZ7PrcMzaEU6NpDLP59YzzGUEEyoYz48kIBefDibxvnGZxhy33a3cTnJh8n8t+KY6DFuH17a6FjMrGD67eWWzW59WvZL5kNwhgUkR0M2LBQsWwE00f0E6jUWTp7AdtamtYz7qqSlELdogO+RWX5UXTvnj+ohOaFxy+cDjrh2XgfxV48KPC6a/6sBwsn388ccRPh+m8Fq9X3gkf+1ZZ531la98xeVyIZ7CAPk86JA4lY+ZO0JAeZHWuOuWu85a1njm2W2XjiQGR+JD3SM7+iIHcP5QuKcntPverp46VyPshLDbnNG8vrNuOZShmiSaPKvxOdLaDwoJtx+/t+H4wN6R7fF0bG9wezA+AAU4mgxizcDR+BCeLywy1eRrm48RqpZ1dtsleOYwp1Gtq8Fus+MT+4hjAkT1Q5XYJ5yZngMQnU8NJ+7YGdo8mpzvtX9+Rf0yvwMtAeRZZWGm8jE9pWOskyRAQThJUAxGArNOQHxMpL0njT4jYLf7/dZCvwMLGL66zaNePJJDaaGodh9WvH+wP7YtlMLk0X8ciGOWGrl44hvGsnaFU7jGZrM5zCiuRt3vHvNMsS5scP7r8rpmVxWNOxKO3E6BwDgdomOaqEZCodBvfvMbeJbCm3RoaAha6JZbbmlra0N4fP3Zz37W1NT0yle+0uPx5PMyMDDwve99D/bGV7ziFX6//8c//vHw8DD258+fjzCYt+a3v/3tli1bXv/61y9atCh/VSqVwvGtW7e+853vvOeeexDs+uuvb24eW7g5Go3ed99927dvv/LKK9etW4cLn3766cceeww2t4svvhhfkfl7771Xe72idI8++uhzzz2HdJcuXVpY2F/84hfw+WxoaMBoyeXLl7/85S/H1x/96EcIg6JhUhydJQyJfOSRRzZt2nTZZZc1NjYi5quuugpFeOKJJ/r7+59//nlM/fK2t70tEAggqxg8icysXr36iiuugDsookKAP/7xj2vWrNmxYwfC3HDDDcCCVMDqjDPO0Eng1O9+97s5c+ZcfvnlKEgikUAGCrOqg1X5Z14+o9q0GbYGd5Ms521ZK5rXZjLSf5G2Mi/0PXHv7p/0RQ8MxA7tGd668fCfYNuxGQ6EuXbRG+f45lU5w2osvmmgv2BL/9Mv9j+NvgP40aTxtJhGKpOyLFk6GFURPlc2yzqBV3feZDNtGMOBI067c0zlqVe1CjweIWob/FTlbT/+zHR9/+H+8Kd3hcPpzEKv4ztnNXZ6bSiEZFX5B01Xqoy3xAhIb2KJZYnZIQESmDkCGHMIQRhKZ359KK6rA0wsln8ThVIZjCw/DWMU651+h4mRihiviJcF/FGV9EQ+rRZ3Yb/SkRWKql2kJ9XM5PpT9Rtwxt50M0eSKeUJQMP89V//9Z49e/JHMJHM+973vq9+9at///d/j+OnnXbak08++e53vxvCCZLG4XBA6uzbt2/Dhg2YAxOK7sYbb+zr64MD5Pvf/36Mi4OsevWrX40LIaUQGF+vvvpqTFj6wAMP/M3f/M3HP/5xhIF9DBIL6cZiMSgoTEaaTx16D/Nq/vSnP4XowlkIUciwhx56CHIOYZDozTffDE2F6Wp0zF//+tdhrIP808Eg5KAVkSIkFvw5MYMLMglR+q1vfWvx4sX5VLCDbEPdQamiewVRXXTRRVC2+/fvx/6FF174zW9+EzIVXzFXKvSnHiiIYZa9vb0/+MEPoPfe8573/OQnPwEKiEmkhave+ta3olAIGYlEli1bBgG8ZMkSxKPLixQR+O6770YBIfy++93vQkYCETh/8pOfRJsSrMABRUaEkKAQnOCDcn3xi18szDb3T0TAGogewgIA8CPFahaxVCSRjsfS0n22tGFVq3+u2+4/f+7VmI0GyxvqyhMVHKpCKvATgT3J8+KeqfhmX0OCW94sSsCoVq1pwmkT87LgUCqdjKYjOArb3fbBTfCq0cGmmrZuK3cNv3QgtFdfiwQ9Th8cjzEwFcsD+ly1yxpW+Z01C+tfhsUhSvbuK3pZ2doXT3+9O3xnTxQS9oom94eX1CzyFb7QpwqJ4cuYAG98Gd88Zp0ETp3AeQ3u8+rhUmq8qzMgL1nTeHQgnu+2xDDFX/fG9kZTP+1N4ex39kWQYofHttivJq5Qr+FLmtz4qzenaayswVpFZovL1uGxK3cTcTuReNUmb2315s5ewD+VSwAmrEsvvVSXDwoqX1C0zCB1Pve5z2HSy3/+538+88wzIbdgE8v7lEKqQTV96EMfgnyCCoKq0ddC6kD7QcXBEIdpVLCIAkxwsK1BGd50002dnZ0QYxiGh2UtCtVgPl3sQLDBBgjzGiQfroJqQh4gzzCby7/9279B3UGmYhQfziJjb3nLW7785S/DtPiGN7wBuT106BDU2j/90z8h6Z6eHog3+MQWRq73odAgumBX/PSnP42C4Np/+Zd/gWaDHIVRceHChV/60pdgYMToSuQcchGqctcumWwQcvRVr3oVzKTQnLfffjv0LXICq+ZHPvIR0ENhMWfMP/zDP6DsOiGIagSrq6sDQGhaHNQN0I0bN372s5+FbRPiEGoTFlEYD/Ul/DxJApbR6Gk9t731vLlXwz8Qs5LuGd72u667UKlhghD8Q7RP9/5xeeNq9e+sGleDiJN8tXiSqfKyYxIQtGJD0w99theyP9IbTgb3BLfpN8zOoc1Q79jHRLK94b1ixMtvEkKunuKGZC2b6YBZGOMA4fDZ4mtv8y+Ay3GTZ84czGSLWFWMEn0p333Jn2T0z4OJr+0N4bPFbXvjXN9bO3zNrumexVQB4kdJEqAgLMnbwkyRwAwTUL5T+iVxaRMGEGbfZhc2Oi9tch2OZ+B3unk01RVJ9cbTGLLYE4triYdwEJBwcNH5dZgWxqNjv85pa4bMtIw2tx1DE502o9Zhrql11TiVz+sMl47JzQYBqMFCS1Re70G3QIbBuPeud73rtttug0coRBrsgZAxOptYowIHH3zwQUgyaEJY2/RxKB9YzOBHCkdKSCxccu655yIMtBlsYv/4j/945513XnDBBRBaxyruhz/8YbikQkoh5MGDB5GTZ555BlZKhEd+YNiEMQ3b5s2bYQZEtAiGhLDcBRZ1gIMowsC89p//+Z+QqW984xvzGStMDgs/QJ0iY5hqFSoOtke4p8LSCOGHUsN5FUIUag25hY0RBXG73bCIIgYoSRQW9lLEAFdSHISAhAaGRn322WchWbEPZ1H4lOrk4Cn6V3/1V4VJa38fKEBIaExLgwyjgJCXUJWFwbg/ZQKqelMKwqp3N2G2j86aZXNrFulq73C45y8HHjgc6dlw8KHNfU921C5d23bJWS3n+5z+KSfECyZNAP6ZGLkXjA0civT0jO5GpyMGf8ZT4d7w/pwaE0uY1o2tvnkdNeJDjtuHIaAYv6dPTTo1FVA6Ni24Fte6G912j2hCZ33+PYgQelippIn/c+/QqSUxI6HxOCOD3+yO3NkT3htNr6lz3rYgcBkmDijtbM8Im6pOhIKwqm8/C08C0tRR7RptXhgHxGHaVgRcKwJy+IpmjKixMpaB0YnqhSIHf9gTGcEMNrmX39e7Q7vDKXlHZsOYGI3444NRvCCRCOyHCHhhg/usGiyoYa6qcV7YmJ29RuI69qZe7Mad+yPxjHVFs2ehz462L7rg8R/S0Q01w7RJgzhfHh2bCoddhFEXyO6x0+GZGSIA0TU6OgphBhWEJGENy+/jK5Qkhr197GMfg+0OhjVY5HS2MDZPWwshF6GjoKYgySD/LrnkElgFESd8SmFXhPo6VjEg7XAKogsX4nLsw0YHpQqPSqhNfRVG6+ErEoJ0hAkOlkNIO+QQXq+vfe1rET/smd/4xjcwPO+oqSBjetAjbHcwVCIt/LJwOQLjYcRYPshC5BBlwRFkA6kcdZEJKFK4icLsuWrVKp0QdmDx01HhSOEYSB0An0gClkwkirOIHF+xAwkNh9h8GO5MnYCuIvPXmT5XzVlzzsN31CuZ5gwsh08cuO/h7l/DGLV98Pndw5v/tP931y5888rm9VJF4Wqpp/TlUjNmv0jthKO5mkmf5+cEAhikh9F6B0f3guRoYgj7ocQwfr0ZjNkDfyuNf7qGB0uP039Rxyt0HFcvuEnv2EwsvyTD4PFjtJvFbPcWvk70UyJHCo/qHJTAp7wD8b/KyX93h7+8OxTKWBc1uD99el2HV61OVZLZLgFy1ZKFYv4wqoUZy0kCVUkAnqAO9cZTpdevDutd8/14+cl/avvQ4gBaN/uj6b8MJeCsM5TETnIomUHLZzRlxS0jks7c2xe99zDey7gkK+BOiBPtKfEKUm+zT+wYUa91HMugOYVhjRjz4LfbbmgVbYlIsY81lHJxWjWy6ga+Yv0MGxoWKt3cSf6dJQIQNhBCMHxBqLS0tGDAHhwdYQFDduRRGR2FpoKj43/9139BksFEds455xw1p7ibGOCH8YHwAkVgDPPDsL3j3OKJpzCqEGnBXRMJISrkB0ZLJKedTrF8IgbmYUQivDfb29thHvzMZz4DV1iYB4+an3EHJyaHaGEG7O7uhlkSE8CgyLAEwtQ57kJ8hYrDBtdZjL2E+AQT5BCCFjpzYuD8EaQI++rPf/5zWAXhaApZCyslksOwxnwY7hSXgN2wQR9e1XnT2a0XY5mBh7t/FYwP7R/t+ubGf5UmuNRJoglF/el9+a5rTJzS9Vhxc1R5sam3hUz8I7O1OG1Or8MPmHaHz4O637QvrDu9PbAQNNe2X4qxfJVX/qKUCO9PPG798cw3u8P/0yuDBv93p//2RTXgxo0EQICCkI8BCZDAyRMY9y6RJo+FQYb2m+Z69an3dErkacvYFk71JzM90dTuiIzlGE6m4awiU7NNZssOEpHFMw5jzhv91TQH4mlMivPEUAItrG92h6TdZRiL/I55nmzNBhfW5X4HpkhdUePA1KlNTrPTl9eKk0mYYaaFAOxjb3rTm6C1YMWCgIFo+eUvfwl3SiQGe90Pf/hDzJuCmUIhlqCgEHiisirMFqZjWbBgASyEGCIIS2PhqRPuQ93BYfVXv/oVZq+Bd+VTTz2F2Vzg0gkXTdj6kDTcMiHbXvOa1+ArEkJIDCPUhsoTRn7UAB/84AcxEhIjA2EIhbUQJlCIvYkhURCMkPzEJz6B0Ybwg4WAhP8q/GO1bJ4YPn8EHqrf/va377jjDhg2oQPheYtpac4///x8AO4UkYDUX6YIFXw2elvP9baubb14c/9Tu4ZfhB9jykrDZugwHZjdJG0lsTIBZqNBSKw8Dp/DGle92+bJGPC6gFpEax3/uB2LgHlazSKHTRwKAs769ppO6EBov/ZAp9vuhV5UYgcncUNyu8eKqWqPmwZGf9yxc+SXvTGM6XjvgsD/XuDHc0deVftEjCs4BeE4IPxKAiQweQKqy7sguHw/8ph07RoWTIsra9Q8NEbWRzSctvoScPUpuHgSu3UOWzAlnn56G01loA+R4N2HIro11RXNvDAi86bmglgPDUgO5nvsDpsJayEkpaRpZeqdjtV1DoxvXBmAK6s6JnkVpxrVqMBEdHJQLs5uBbu5Q/x7cgQgVGD4wrWYNhMTbMLnE+YsDOHDEcwsCvWC6VgwrQuMcpBPWGQPs2geJyFMygLLHqQdDHrHl44TI4F5ELO/wAT361//+vvf/z4cRzF3C3QX5B8Cw6P1mmuugRURpjnEjExqITcxnkkeQSRY/gG+oLBnYlwi3FPXrl0Lt9WJlyPpd7zjHdAJmMkG4xiheCFZ4UN7QlsfvEwxBQ6mw4ExE5ZYuNRixOPE+HmkSATGqgW957S717RehEUpMKQNOhDr0WHVAexADUaSI5FUGOoPw898zpqAs9Zlx5IquE43y4uUo8qLRtXJTZ5WLPhxrMKN3YbCOvtYoavquNip0VVr/P5w/Ac94T8PJc6sdbxnQeByNVmAekFXFQ4W9pgEuOzEMdHwBAmQQJkQsOIwQaoWAUY5psUtNNs8eHwwtmk09dBAfOtoUkbyKOGn5B8mFchAIsKEaDfN0wNOzLgtZ9WFVzR5lvttiCRriRSZqKPPRlsmWGYtm7D1wV4HaacdL/P5wAg6HNdD+HBQT5SCsXwQP6CNs1A7sBniFOxg+Ip9CDbEgyMQUQijI4QVERIR+7DUIa2PfvSjmLoTtjtMo5JPa9wOwiM5PVoPKWKEHq5FDMoyYyASJIdocRBSUKeoYxDbjSWrdOIrdvTAxfwDNi4VZBIBEC1iQHIorM4kYkaKKIseAYjkUECdHEIi6Xww5BN5QEidHMLgLMIjGDKGUziOI7gcX/PjCREASSMSPSYTeUAYbMg2juAsrgJbxJaPH2U5VinGFYpfi0FAdTkhIl2n6IomV00VI37GQQJHIYCfOV5dibT104PRr+0NH4yl4C/zvdWNLwtgCAj6IvhGOwq0qj1EQVi1t54FJ4HKICAtrJxZTySdyLfce05eh9rKZ1rhtPHr3qyhCaMa/zKc3IUe+xRWE7YGMImqejnm3WdumON5R6cf0dY6bR6b2eqGHuC7c6YfmOztU3ezUMAU7sPJ89Zbb4UF7/7779ey7Ti5LLywcP84l+AUQuIz/1AdP7A+OzHy/JH8TmHIk0jiONkYl8RxQvLUTBOQikanObY303lgelVEwOqOpj+3K/Sbw1GXzbyuxfOuTv/pfoeq0fAk8qVWRY/CCYtKQXhCRAxAAiRQ4gTk7aY31cga95LLn9UDTZSAVC9C6MBtoVQ4ndkwnJDLcZ1lDSStRwbiOKWPYAhiq9t+scyGKmZCOL767Gan116PlTSO2FTKRxzhl2knAHsX1hLEnJ9wPcVQwFNMr2R1VMlm7BSBV93lrCSq7pbPZoEjabzLYl/ZE35pNNHhdb62zfPO+X5MwiMvSHkZ5vpNZzOPTLuECFAQltDNYFZIgARmlwAshFg1Y0so+cveKN6m6Ft9biQpfqZKK+LPaV47+lmX+O1YPAMDGm9og1BU+hMyE69X+VBfZ7cYVZM65tLEzCuYcwVLyR9/+s2qQcKCkgAJVCuBrKeBvJMwSv/re8N39UQHk6lz6jwfXeJ/WY1Lr/xEw2C1Ph8nKDcF4QkA8TQJkEA1EcAbFZZAm6hASyZHxYyoP9gfwew1gPBQf2xrCMOx4JJqs6th+g6bDXXoQp/ju2fVN7kxvis32LCakM1iWTFYDmPn9MA/SvFZvBFMmgRIYNYJyEtLG/4s603PBZ8KxtKW+ZZ53o8urcHAB+X5rt5Q7LWc9VtVkhmgICzJ28JMkQAJzA4B6WJVpj6IOzH+yX+5F6l615pPDsW/3xPBWov9iUzKwBw2RjBlJS2jwWF8+Yz68xvcBas1zk4ZmCoJkAAJkEC1EcBQ+IFk+rlg4kNbR4LJdKvb8e5O/xvn+lw2eZthyw62FwsiNxIYT4CCcDwRficBEiCBExEQO+LTw/GYZYVS1gN98b2x9DPDicV++8eW1F7apKagkXcu37snAsnzJEACJEACp0JAujGNw4n0Y4OJe/tiWJgX/qKXNLjfvcCPDspTiZjXVhUBCsKqut0sLAmQQFEIyAtYueCI5OtLZiALf3Ig8vXu8GtavZ9YXltjt1EMFgU0IyEBEiABEjgOgeFk+neH43cfir4USgWTmXaP/aZ2783t3g6vncMFj8ONp8YROOYqn+PC8SsJkAAJkIAmkHUrxag1DNkwjRaXrcVpvHme7xt7Q5G0rGAhh0Uy0kLIR4YESIAESGC6CIykMh/bNnJ/XyxpmR7TeluH7391+tvc6JJElyX14HRhr8h4KQgr8rayUCRAAtNIQM9fon1Cs5oPE9FAHprZ5Qo5wck00mfUJEACJFClBKQ3EkXH0HbMGLMznPrAS8Pbwuk5LtslTe53nuZfHnCo/kr2RVbp83EqxaYgPBV6vJYESIAESIAESIAESIAEpp0A/E4wyRnUXn8y8z8Ho1hjMJ7OnFvvwuQxFzViPjM9A9q0Z4MJVCQBCsKKvK0sFAmQAAmQAAmQAAmQQAURUJNgf2LH6MaR5NZQMpw23jLX985O/3yvPTuqXQYxcCOBkyFAQXgy1HgNCZAACRQSUAtA4U2sOnBlCKG8ncWvhxsJkAAJkAAJTJ6AzFk2tqatfJOlkCzMGfOH/tj3eiKDiYwMVTeML66su2GO127LvmjUoHW+dCYPmiGPIEBBeAQOfiEBEiCBkyCAlzBexm6b+eJocl8kU1sjgwn5Zj4JkryEBEiABKqZQNbGZ5k98VQwlXl0INEVST83ktgeTmppuNDruL7Ve2Obd6HProcUVjMulr1YBCgIi0WS8ZAACVQzAavOabt+jgfjOn7RG11ZW5Nd2L6akbDsJEACJEACUyGQsoyucHpPNNUVST00EN8RTmGteehANNaX+Jxn1zmbXLYrm9zr6l3ih6I8SKcSPcOSwDEJcB3CY6LhCRIgARKYJAG9zsTPeqO3bwl2eG2PnT8H7qKc83uS9BiMBEiABKqHgLwvsqXVf8UB9GAs80ww+eODkYF4uj+RGUxm0paBfsa1dc6b5/oCdhNS8DSPI4CpY8Y2cScd+8Y9EjgFArQQngI8XkoCJEACioBekPBlAQf+bQ2lcIxDCPlokAAJkAAJTCSAFYpkpVrl7omdxwYSPz4QebA/njYsDA5UwwPN1bXOV87xvK3DjxGCjmOOP6AanEiXR06SAAXhSYLjZSRAAiSQJ2DhhW0ZAbvNL9231lf2hG5bCK9RbiRAAiRAAiQwjoA1nLQOxFKPDiawpvzzQawqb9Q7bS0ue7vbfss87zn1rnp5lSgvEyUQx13PryRQdAIUhEVHyghJgASqjoD005rWAp99TZ3zuWDy4YH4Wzr8DU5MLcONBEiABEigighM8AjNl92KpK3dkfRfhuKbR6EG45gvFKJvkd9xXr0LIvCsWudCn0O5gY6pwLx3aT4W7pDAdBDgGMLpoMo4SYAEqpTAk8Pxd20aDqfT17f63rcwMN9jV84+dOyp0ueBxSYBEqgmApZaMyI7x7R2/tTLEd3bF39yKP5SKNmfsDBnTCoDk6C5ts51c7sPw86hA312diBW05NSemWlICy9e8IckQAJlC0BNAduezH4m0NR6MClPsedaxqbsRgFx/2X7Q1lxkmABEhgkgSUbRCSENJODRM0ra90hbB+4AP9MZgC8XZQwwYzOHn7opqrWtyLfQ67mn5MLjzmQMFJJs5gJHBKBCgITwkfLyYBEiCBCQSs7+yL/Kgn0hVNpyzr1g7/Ozv9bW77hGA8QAIkQAIkUAkEMpY1nMLIwAz+PRtMbBiWf0G8ANTKEPUOm9duLPA51teJayj+OU3MK6N6CmUWGarBSngGyr0MFITlfgeZfxIggVIksCeS+o89obsPxTBx3AUNrjfO9V3R5PbAWGjoTmLlUySDRehNWoq3j3kiARIggUICSriNHUDNjaocYwK7oqldkXRXOLkzkt4ZTu0MSz8gwmEM+SKf3ecwz6pxLfU7Wty2CxrcY9dzjwRKjAAFYYndEGaHBEigUggMJNLbI6l/2jqCVgKWkEKb4Ow61xXN7nV1TukThhaUtSmwURNWyi1nOUiABCqUAIx9UlObBmyAzwwng+nMLw5GExkLCwYOJK2hZEbX44v9znW1DiweuMjvbHLaXKYx12PHVdL7x6q+Qp+NyigWBWFl3EeWggRIoOQIaGchtB5uf2n4gf4EmgTiJGQTR6G3z/N9fGmtbl6UXL6ZIRIgARIggQICW0LJB/pi0IRf2RNW3XiovJUdEH9Ul97Fje5rWtxXN7uxdERW+Yl+1F1+6gCXpi3gyd0SJEBBWII3hVkiARKoKAIwBz41nHigL/FMMH4ojkEm6XDa8tttb+7wnVPnXOZ3NbmMgENNMSejSaSlAdEo/7NHuaIeBBaGBEigdAiIotPCDp/Yw9dUBrY+ayiVwdKAcPtHvb0jksI6gdm62DLsNrPVbYPzf4PDDDhtr2hxz/M4ZEygDAfgRgJlTICCsIxvHrNOAiRQFgSyc8sZRiJtPTOS3BWWSeceG4yjDYImydl1zuUBx6oaFwactLrtWMwQhRLrIv5whGFZ3GBmkgRIoMwISK2MDdUsuud2R1KRjLVhKIH9nRGMA0ztiaSzpw2j02Nv89gxI2iT0+62W/D8b3SaS3xOTBCqqumsWiwzAMwuCRxJgILwSB78RgIkQALTQkCNQIHZT1kAD8bT28Opp4PJ3xyK7Y2mYBcM2GwNLnvAbjY4YRc019U5rmz2nFXrmpa8MFISIAESqG4CsP51R9MbRxJwBx1MWrAN7sMUYDkX0FU1ziV+x7p6Z6fH0eCyoWZudNl8WFY2a1UUVw69rw7QPFjdD1NFlJ6CsCJuIwtBAiRQhgTQksC/54OJ3xyOYqUKNRgFDQ44jKKxAQ8kZSW0TIxLWVHjwLcVNc6rW9wyFFE5lqoSI4xNrshOWoBjcjYLQ0WQMS01blFOZY/zDwmQAAlULAFVBaJKVFpNSql2UP3B9Ifh3P3x1Hf2R/RhbSdECMzxVeOw/XWHd7HPeU2Lxy3mP9aYAo9blRCgIKySG81ikgAJlCaBbIMEMq4nnn56OJG0DIxdeXQwgWnrcA7Tmg+msJCxNE1ECcJ6aJk+u3XdHJ/uoL6p3Yt6HGXDUod2m+E0TPRnw8qY3VQ3tpyW8Yj5o7mz/EsCJEAClUUg2yNmGWkjsy+KMYHpLaPJp4LwyEgciKa1Zc/nsMEXA3Wm1wZ3DOf6ete6ehdmBBUHDl1ZVhYTloYETkiAgvCEiBiABEiABKaPgIg1+T/3Ry9vBTWIta3gxdSHnXAKQeIZ8/kRGXaIgE8OJ2QEjBphKCJRacU1dW6PafjstsV+u89mYiwimjs4hdEvC7AosmwUhAoDP0iABCqXQDiVwZjAXZEU3PIfH0xgJwyvfMPAPF6oGxf5HJ0+e4vLtsTnWFPncttys4Xq+jHrasGqsnKfD5bsGAQoCI8BhodJgARIoJQIYLHj3nhGcmQZ+2WsC5o45u/7otLWMQ2Mh9kbTaumDWYrxSmrwenwOyQ4Rr/M89ivm+PB4SUBx+papxzFJhHIB7ZC46GSmkceUaG0eVIFx3e5LtuZrg/Jp4pMomVzagwK90iABIpDQLtToHYpqIB0zLrG2RFO/3kwfvfh2GAyPZSwguhRs6y5Hsf6OicMgHC5b3TCMGird6opnYuTJ8ZCAhVCgIKwQm4ki0ECJFB9BES7iXQTPyeRhbGMhcWyYFp8Lph8dCCu9JmSZ3qQoXxXFxgGBsmsqLHXOuy3nubTcWh6lgHNKXpOGSB1Kwv7+TGKY0cQ/kgvVJUZNRRHznAjARIggaISyPmCom8KNRIc6bHin+yOpNL/b3fo/sOxfuVmr5wsUB/aLm103jI3cM0cl6oJcRiVG6VgUW8JI6sgAhSEFXQzWRQSIIHqIqAaSFnxlTX2qaaSlnPSjX4glnl6OPnjA1hM2cTwGXiiok2EcYlDiYzoQFwrcRQaCEULujCupt411yOOphiOuL7e2a68T/PhcFG90wxgTa4C7SdJG1aHF3ZJCsLqehBZWhKYAQKotVCDyZjAUGrjiDjSPxVM7I2kpR4zDA8mAhUDoHlGwHVDm3tdHcYEYjotqeCkQsqKQlZNM3CjmERZEqAgLMvbxkyTAAmQQLaNIyDyrRzd9pFDSp7JjtqkQYSp1XeHU/Aw7UvIGBscf2IooYfMqMaSDinWRnifHoirZbgkPh25DpJLyMos8DnbMP5GttxB1eY6twHzoFpL/E6M0un02to90If5a3MuXzA55q6TFFQkYxkeS1ROcCMBEqhQAlIz5GsA7Kr9XLtU9TbFMjIPM+ouDAXEHKG7w8ndkTS6tFBr6IvPrnO4bbYWtx1+oYv8DqwWiLHTKp5cxNmA2XqmQkmyWCRwqgRyP7xTjYfXkwAJkAAJlBkBNRbxyDyLq6gxnMyEUtoP1dg4ktyh12guCLgjlNw0gvlQ83JRn1MHVLMOM5367Wadw1bjMGFpxDx++Lqu3j3XIxpS+7hKaIkALbusQDStDL5LFrIqVIXgBwmQQGUS0AowqwmzFYJhJNIW1miF9Q9Do6MZ61AsHc0Y2rsBFcY8t02NCXQvwfBoS82urCbTwjqBlQmJpSKBGSFAQTgjmJkICZAACZQDATHTqdUtIOtkDWYsYSg7eRtgtgy5UYUQjTilz0pz7tvd4dG0tWU09WB/DGEs0waNh09DPiUkXjmr65yXNGGGm4xa78sNty6lASVmFRFS41CfLGf+IYHKJoDqRYvCeMp6oD8OM+C394VH0RsljVPULlJ3SAeRYa2pxSqsnqta3IsxZ7IcEDCoMeQvaipZuJUbCZDAyROgIDx5drySBEiABCqPgDTQ0BJT7S3l2SnfxhXziJNj50Q8SgtNBd8RTsGKOJyysLgipvvDpH+hdBozoQ5iHKNq4+mgeAnN98GE6EI0sCJe2+LVaWMyQIxR1HFjvCLWjB5Lh3skQALlTACVAKZH3hdLwTsd9cPOCMYEJlEgXSfM99gcNhkQuCLgOKvW2em1r60XR3TowKwQVDWNCiy1k2hH6W/iRgIkcPIEKAhPnh2vJAESIAESmCSBvdFUbzw9mMh0YX1Fy8IooJ0YC5SyYpnMszI/xBEbmn3zPdl1FHFivteO1RSxg0YfWoeYR16HhscYFhODdFQqVFqER2pXpVslaLaxqIwO8l2dwEFltsydlRPcSIAETpmA6DWt2eSXpn+U0tF0MJ7eFU5D/mGN+P5E5smhhPz41K9xoc++2O/Azxm9Quc0uPG5yCerxisReMoZYgQkQAInIkBBeCJCPE8CJEACJHBqBHJWR2n9aSNi0pIpT1MZM2VYh/X6iobxswNRnc72SBIWA7Qg1YY/WUWHP3VOmz9nLcQ88jAjeGyYS1CalZhgcH29O7fIGBqkxivneH0iHrOX44j8h+9iaNDWhtwpnRQ/SYAEikBAVq8Rkx4+TQsrxd/VE30qmOyJpfGrxxBleArgJ+h3mFgf9Zw61wKfo9ZpNjhkkUC1RqDISfVLxS9bNGERcsQoSIAEjkuAgvC4eHiSBEiABEjglAlgeUMTwxFVu060mJJ4ovfUF9uExcEQQnxWVfhng8nHBuKSBdN4fiT56CD2sw1E1WrEPmJCePynHV3z2UUUyniYO3BJowsjkeRqy3DbzauaPZiTMHdS/k5mHFI27cLLuE8CVUwAP7PCDb9GLBGIX+OWUPLBgei3u6Oj6PjRFkMcN805bvvVze5/XFyDGafUD10M9dJBo3/P2Y4aVT1kKwH+5goBc58EpoUABeG0YGWkJEACJEAC001g00gCM9HrVBKW8cxwQq2WoZuPFtxTw5iePrdhtpshNTGqHMB0pmiASsC8hhS5+vIWt88uvqnH3qxrWzw+uwnjRpOyZaixjmLGUFFlZE8ZH7XozWvXY0fIMyRQGgS0R7XY5NT/UGTquVaiTP+mjIHcbwrrmA4m0vg9hVKZ+/qlvwYh9I/tGawNiFlB1aabmHD5hlX/jIADq5ueXeda6j+iF6Y0Cs9ckEC1E6AgrPYngOUnARIggXIlIFYE1QzNtUYL55bYFU71J9PqjBgdDsYy3TG1uKKU1toTyRyMQUxmW7o4tDOSFOdVJRMlyFE3mb5CUsQqiwt9MHAYp2GsoweTqZr4xBGcw/T3SyArtdyU6MeSOGqUPEgCpUBA/LrxsOafVsuIZaxn1RqAGO6L9UuxdUVS/crBO5zBYOAUJoaRo7hEd4LgLw6Yxtpal1tZ25f4HS1u89x6d7MTvw7MDqqD59OQr9xIgARKgQAFYSncBeaBBEiABEhgygTEU1QJQvnUTdOx9myucarbqErFaUMekkHbdyRt6bUW86kOJWUSVNmO3V7dMJzYg3Zw2vrdoai0gREtEsZfy4DNsNaBAza3XUYzookM4+E5uTGNC3z2c+plJlVuJFCaBPSv6bkg1h1NbRhK7ImmU5lMXyIDa99wUkzqhRue73keG4bsOg0D/SDr8WyrH6EyL1qtLodd/YgwoNcHr235VSp/UP3bKvyRFkbKfRIggdkjQEE4e+yZMgmQAAmQQDkTeD6YeHQojrbu7kj6gb5oQo18xFeMoVJ6VCnQjBhNlOFEzIuXNLpX1yqXOcu8pMl1llpvQzWe1cdxaUiTXUUmS3CIWx8GPY5dpaQpThQcOm5s+ZO6qS5t9lw+kIjEI1pXdvIhuVOaBLJjdPU9y948pcDkYcAjI4fk/uLTgrSTG4p93Yfy7Eji8YEEhN8DA7H+eFo6N1QXhywAqL7gY02t42KsHaqifHuHv9apliflg1GaTwNzRQInRYCC8KSw8SISIAESIIHqJqDa2aqZLQ1taS2j9Q1bCsZQjSQzEIfPBuMHYmJZSRsW5ldEIBwfSuGb0myFl05SxFkWJlldW+eE4QVp1jtsZ6t9JIGv+ECUOFjrPP4wSAma36Atm5wmvF8lBhVLtizQDmosWT4kd0qWgO4LUDdMbppWgJJb0+iOpHQXQU80nbYsrAsKL1DM8xlJG/f1x9QdV/rPMLDGQ5PLDjfoJpfps5kvx1hZhznf41hb78STZZkyU0z2MVcPi3roSxYJM0YCJDA1AhSEU+PF0CRAAiRAAiQgBKQZLo3tI6SUHM/hQfNZbZiBQ6+7fSie2afcUtFkx5jGrigW3VAhJicIU1ZmRziNRb11tKp1jt1cMmpFj/k++xz3FCbtgABY6LWLj6thwM1vqd+JlTywj5XBsShck0v2uZU+gd2RFFb5048TnqsDMT161nhqOKkV/saRhJ5TKfu4msYcl32pX/oOFqi1PfEMwPkTY/8WerG251hnQPYJVc919lHD4yv26dyDV/p0mEMSIIETEaAgPBEhnicBEiABEiCBYhPAQEQYDMdinUTrGs6nsO1gqg9chUs3DMd7lAUyF4m1PZx+Lji2LEfu+NH+KldCnNDWSh3CZmTqnXYPnAXVeh31LuyPZQtjxjAM0inaNX/Qwkwh59S58wdEKWTVAqIcC6asp4g1fySbJYQVbSG5GH9KQiifVXXZ0c5m4yjqHyXydTbzgkdwK7GtVJBObnrzozFKShOw4LG551B2uU7s//ZQTAUzRlIZTPipMmeOpqxQGvu5TGrfUMN4w1wvAszzOOQ+2kxM8gJ7Mo7ABRQLwatr+UECJFClBCgIq/TGs9gkQAIkQAJlSkCpKDTzC+QaNIvoODlzdHE1oagqvPHYQGLjaFKfxHqPsGSK/jEwDFIsoHk7kERtZTLaaTCvUiysL6daEWbOkKgk3MWNrtU1mG0kd1B5GJ5V68T4SZ3QEZ+mZbcQUmnGI05IYXCicJzkkeeL/y0jQ+zgG4n5MMfUX9pSEly0rtmXsB7sj/VjkZPp3UTOvRROPtifmJiOkm4SQPHRAl3G+9ly8hGS/soWzyK1xmatw/a2Dl82EnV3lMzO3ZqJsfMICZBAVRKgIKzK285CkwAJkAAJlC0BbcdC9o/QfnIUYuEY1rajFFbUo/yfE3jZCERYmi+MpHaFIRSzhqNgKoOxkUEsMyAnswcxC6UaGzl2BCcQcigBoSi502mKsJTpWMeC5fOCw4t9jjNFPR7lLPwW19a52jFtazam/HXTtQNPy2eDySQEYC7/2Megu4OxdE4gqnLkte50ZQTMJEG47GIFv3GJBOwY9inLmiArnT772bVCDxY/LPHX7kG+9e05CjK5edmSHeXsuFT4lQRIoKoIUBBW1e1mYUmABEiABCqDgFYms9myj2esTSNZ62JWs1nGoXh6X3a9x3zesIh5Zns4mYLGOXLDeMgdIRxX4hGfR26ieXDkaEryyIBF/JaVyEq/ZqMNOEwMrVSj7XDExDqTWFpdVhiZxi3LAoP6xg/jtIxmtQbmNCbOqEmABKqPAAVh9d1zlpgESIAESIAEZooAzFKQjph/dYLiM2B4CyYzapUOCKzxEuu5kcT2UEqcVadXfY2BgMF0md+xuh62SRzU+bEw7w4md1XT7sgxj2lipOVM5Wgsb9wjARIggekjQEE4fWwZMwmQAAmQAAlUOwHl/QjPVIip8ZIPWk+shmIDPMpZnJSBcuIDOeHC6YGqnSoRd96NFvvae1NMh/LlqDmVM9xIgARIoHwJjPdNL9+SMOckQAIkQAIkQAKlRgB6TtSg0lPj86aEF9TeUSWfUoEzJAV1xrQsnWj9g1DU+ZBTRy/J+JLxOwmQAAmUEQFaCMvoZjGrJEACJEACJEACJEACJEACJFBMArQQFpMm4yIBEiABEiABEiABEiABEiCBMiJAQVhGN4tZJQESIAESIAESIAESIAESIIFiEqAgLCZNxkUCJEACJEACJEACJEACJEACZUSAgrCMbhazSgIkQAIkQAIkQAIkQAIkQALFJEBBWEyajIsESIAESIAESIAESIAESIAEyogABWEZ3SxmlQRIgARIgARIgARIgARIgASKSYCCsJg0GRcJkAAJkAAJkAAJkAAJkAAJlBEBCsIyulnMKgmQAAmQAAmQAAmQAAmQAAkUkwAFYTFpMi4SIAESIAESIAESIAESIAESKCMCFIRldLOYVRIgARIgARIgARIgARIgARIoJgEKwmLSZFwkQAIkQAIkQAIkQAIkQAIkUEYEKAjL6GYxqyRAAiRAAiRAAiRAAiRAAiRQTAIUhMWkybhIgARIgARIgARIgARIgARIoIwIUBCW0c1iVkmABEiABEiABEiABEiABEigmAQoCItJk3GRAAmQAAmQAAmQAAmQAAmQQBkRoCAso5vFrJIACZAACZAACZAACZAACZBAMQlQEBaTJuMiARIgARIgARIgARIgARIggTIiQEFYRjeLWSUBEiABEiABEiABEiABEiCBYhKgICwmTcZFAiRAAiRAAiRAAiRAAiRAAmVEgIKwjG4Ws0oCJEACJEACJEACJEACJEACxSRAQVhMmoyLBEiABEiABEiABEiABEiABMqIAAVhGd0sZpUESIAESIAESIAESIAESIAEikmAgrCYNBkXCZAACZAACZAACZAACZAACZQRAQrCMrpZzCoJkAAJkAAJkAAJkAAJkAAJFJMABWExaTIuEiABEiABEiABEiABEiABEigjAhSEZXSzmFUSIAESIAESIAESIAESIAESKCYBCsJi0mRcJEACJEACJEACJEACJEACJFBGBCgIy+hmMaskQAIkQAIkQAIkQAIkQAIkUEwCFITFpMm4SIAESIAESIAESIAESIAESKCMCFAQltHNYlZJgARIgARIgARIgARIgARIoJgEKAiLSZNxkQAJkAAJkAAJkAAJkAAJkEAZEaAgLKObxaySAAmQAAmQAAmQAAmQAAmQQDEJUBAWkybjIgESIAESIAESIAESIAESIIEyIkBBWEY3i1klARIgARIgARIgARIgARIggWISoCAsJk3GRQIkQAIkQAIkQAIkQAIkQAJlRICCsIxuFrNKAiRAAiRAAiRAAiRAAiRAAsUkQEFYTJqMiwRIgARIgARIgARIgARIgATKiAAFYRndLGaVBEiABEiABEiABEiABEiABIpJgIKwmDQZFwmQAAmQAAmQAAmQAAmQAAmUEQEKwjK6WcwqCZAACZAACZAACZAACZAACRSTAAVhMWkyLhIgARIgARIgARIgARIgARIoIwIUhGV0s5hVEiABEiABEiABEiABEiABEigmAQrCYtJkXCRAAiRAAiRAAiRAAiRAAiRQRgQoCMvoZjGrJEACJEACJEACJEACJEACJFBMAhSExaTJuEiABEiABEiABEiABEiABEigjAhQEJbRzWJWSYAESIAESIAESIAESIAESKCYBCgIi0mTcZEACZAACZAACZAACZAACZBAGRGgICyjm8WskgAJkAAJkAAJkAAJkAAJkEAxCVAQFpMm4yIBEiABEiABEiABEiABEiCBMiJAQVhGN4tZJQESIAESIAESIAESIAESIIFiEqAgLCZNxkUCJEACJEACJEACJEACJEACZUSAgrCMbhazSgIkQAIkQAIkQAIkQAIkQALFJEBBWEyajIsESIAESIAESIAESIAESIAEyojA/wcaI3xNUpH9dAAAAABJRU5ErkJggg==\n" }, "metadata": {}, "output_type": "display_data" @@ -2949,27 +2930,27 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 171, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[u'F08 Metal surface',\n", - " u'I01 25mm insulation board',\n", - " u'I02 50mm insulation board',\n", - " u'G01a 19mm gypsum board',\n", - " u'THICK M11 100mm lightweight concrete',\n", - " u'F16 Acoustic tile',\n", - " u'THICK M01 100mm brick',\n", - " u'THICK M15 200mm heavyweight concrete',\n", - " u'THICK M05 200mm concrete block',\n", - " u'G05 25mm wood',\n", + "['F08 Metal surface',\n", + " 'I01 25mm insulation board',\n", + " 'I02 50mm insulation board',\n", + " 'G01a 19mm gypsum board',\n", + " 'THICK M11 100mm lightweight concrete',\n", + " 'F16 Acoustic tile',\n", + " 'THICK M01 100mm brick',\n", + " 'THICK M15 200mm heavyweight concrete',\n", + " 'THICK M05 200mm concrete block',\n", + " 'G05 25mm wood',\n", " 'Peanut Butter',\n", " 'Peanut Butter']" ] }, - "execution_count": 90, + "execution_count": 171, "metadata": {}, "output_type": "execute_result" } @@ -3007,7 +2988,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 172, "metadata": {}, "outputs": [], "source": [ @@ -3023,7 +3004,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 173, "metadata": {}, "outputs": [], "source": [ @@ -3044,7 +3025,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 174, "metadata": {}, "outputs": [ { @@ -3053,59 +3034,59 @@ "text": [ "surface azimuth = 180.0 degrees\n", "surface tilt = 90.0 degrees\n", - "surface area = 18.3 m2\n" + "surface area = 18.299999999999997 m2\n" ] } ], "source": [ "# Let us look at the first surface\n", "asurface = surfaces[0]\n", - "print \"surface azimuth =\", asurface.azimuth, \"degrees\"\n", - "print \"surface tilt =\", asurface.tilt, \"degrees\"\n", - "print \"surface area =\", asurface.area, \"m2\"\n" + "print(\"surface azimuth =\", asurface.azimuth, \"degrees\")\n", + "print(\"surface tilt =\", asurface.tilt, \"degrees\")\n", + "print(\"surface area =\", asurface.area, \"m2\")\n" ] }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 175, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'TOP-1']\n" + "['WALL-1PF', 'WALL-1PR', 'WALL-1PB', 'WALL-1PL', 'TOP-1']\n" ] } ], "source": [ "# all the surface names\n", "s_names = [surface.Name for surface in surfaces]\n", - "print s_names[:5] # print five of them\n" + "print(s_names[:5]) # print five of them\n" ] }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 176, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[(u'WALL-1PF', 180.0), (u'WALL-1PR', 90.0), (u'WALL-1PB', 0.0), (u'WALL-1PL', 270.0), (u'TOP-1', 0.0)]\n" + "[('WALL-1PF', 180.0), ('WALL-1PR', 90.0), ('WALL-1PB', 0.0), ('WALL-1PL', 270.0), ('TOP-1', 0.0)]\n" ] } ], "source": [ "# surface names and azimuths\n", "s_names_azm = [(sf.Name, sf.azimuth) for sf in surfaces]\n", - "print s_names_azm[:5] # print five of them\n" + "print(s_names_azm[:5]) # print five of them\n" ] }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 177, "metadata": {}, "outputs": [ { @@ -3123,13 +3104,13 @@ "source": [ "# or to do that in pretty printing\n", "for name, azimuth in s_names_azm[:5]: # just five of them\n", - " print name, azimuth\n", + " print(name, azimuth)\n", " " ] }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 178, "metadata": {}, "outputs": [ { @@ -3148,24 +3129,24 @@ "# surface names and tilt\n", "s_names_tilt = [(sf.Name, sf.tilt) for sf in surfaces]\n", "for name, tilt in s_names_tilt[:5]: # just five of them\n", - " print name, tilt\n", + " print(name, tilt)\n", " " ] }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 179, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "WALL-1PF 18.3 m2\n", - "WALL-1PR 9.12 m2\n", - "WALL-1PB 18.3 m2\n", - "WALL-1PL 9.12 m2\n", - "TOP-1 463.6 m2\n" + "WALL-1PF 18.299999999999997 m2\n", + "WALL-1PR 9.119999999999997 m2\n", + "WALL-1PB 18.299999999999997 m2\n", + "WALL-1PL 9.119999999999997 m2\n", + "TOP-1 463.59999999999997 m2\n" ] } ], @@ -3173,7 +3154,7 @@ "# surface names and areas\n", "s_names_area = [(sf.Name, sf.area) for sf in surfaces]\n", "for name, area in s_names_area[:5]: # just five of them\n", - " print name, area, \"m2\"\n", + " print(name, area, \"m2\")\n", " " ] }, @@ -3186,64 +3167,64 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 180, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'FRONT-1', u'SB12', u'SB14', u'SB15', u'RIGHT-1', u'SB21', u'SB23', u'BACK-1', u'SB32', u'SB35', u'LEFT-1', u'SB41', u'SB43', u'SB45', u'SB51', u'SB54', u'WALL-1SF', u'WALL-1SR', u'WALL-1SB', u'WALL-1SL']\n" + "['WALL-1PF', 'WALL-1PR', 'WALL-1PB', 'WALL-1PL', 'FRONT-1', 'SB12', 'SB14', 'SB15', 'RIGHT-1', 'SB21', 'SB23', 'BACK-1', 'SB32', 'SB35', 'LEFT-1', 'SB41', 'SB43', 'SB45', 'SB51', 'SB53', 'SB54', 'WALL-1SF', 'WALL-1SR', 'WALL-1SB', 'WALL-1SL']\n" ] } ], "source": [ "# just vertical walls\n", "vertical_walls = [sf for sf in surfaces if sf.tilt == 90.0]\n", - "print [sf.Name for sf in vertical_walls]\n" + "print([sf.Name for sf in vertical_walls])\n" ] }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 181, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[u'WALL-1PB', u'SB15', u'BACK-1', u'WALL-1SB']\n" + "['WALL-1PB', 'SB15', 'BACK-1', 'SB53', 'WALL-1SB']\n" ] } ], "source": [ "# north facing walls\n", "north_walls = [sf for sf in vertical_walls if sf.azimuth == 0.0]\n", - "print [sf.Name for sf in north_walls]\n" + "print([sf.Name for sf in north_walls])\n" ] }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 182, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[u'WALL-1PB', u'BACK-1', u'WALL-1SB']\n" + "['WALL-1PB', 'BACK-1', 'WALL-1SB']\n" ] } ], "source": [ "# north facing exterior walls\n", "exterior_nwall = [sf for sf in north_walls if sf.Outside_Boundary_Condition == \"Outdoors\"]\n", - "print [sf.Name for sf in exterior_nwall]\n" + "print([sf.Name for sf in exterior_nwall])\n" ] }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 183, "metadata": {}, "outputs": [ { @@ -3260,13 +3241,13 @@ "# print out some more details of the north wall\n", "north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall]\n", "for name, azimuth, construction in north_wall_info:\n", - " print name, azimuth, construction\n", + " print(name, azimuth, construction)\n", " " ] }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 184, "metadata": {}, "outputs": [], "source": [ @@ -3278,7 +3259,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 185, "metadata": {}, "outputs": [ { @@ -3295,13 +3276,13 @@ "# see the change\n", "north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall]\n", "for name, azimuth, construction in north_wall_info:\n", - " print name, azimuth, construction\n", + " print(name, azimuth, construction)\n", " " ] }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 186, "metadata": {}, "outputs": [ { @@ -3317,35 +3298,35 @@ "C2-1P 0.0 CLNG-1\n", "C3-1P 0.0 CLNG-1\n", "C4-1P 0.0 CLNG-1\n", - "C5-1P 180.0 CLNG-1\n", + "C5-1P 0.0 CLNG-1\n", "FRONT-1 180.0 WALL-1\n", "C1-1 180.0 CLNG-1\n", "F1-1 0.0 CLNG-1\n", - "SB12 45.0 INT-WALL-1\n", + "SB12 45.000000000000014 INT-WALL-1\n", "SB14 315.0 INT-WALL-1\n", "SB15 0.0 INT-WALL-1\n", "RIGHT-1 90.0 WALL-1\n", "C2-1 0.0 CLNG-1\n", "F2-1 0.0 CLNG-1\n", "SB21 225.0 INT-WALL-1\n", - "SB23 315.784824603 INT-WALL-1\n", + "SB23 315.7848246029919 INT-WALL-1\n", "SB25 270.0 INT-WALL-1\n", "BACK-1 0.0 NORTHERN-WALL\n", "C3-1 0.0 CLNG-1\n", "F3-1 0.0 CLNG-1\n", - "SB32 135.784824603 INT-WALL-1\n", - "SB34 224.215175397 INT-WALL-1\n", + "SB32 135.78482460299188 INT-WALL-1\n", + "SB34 224.21517539700812 INT-WALL-1\n", "SB35 180.0 INT-WALL-1\n", "LEFT-1 270.0 WALL-1\n", "C4-1 0.0 CLNG-1\n", "F4-1 0.0 CLNG-1\n", "SB41 135.0 INT-WALL-1\n", - "SB43 44.215175397 INT-WALL-1\n", + "SB43 44.21517539700812 INT-WALL-1\n", "SB45 90.0 INT-WALL-1\n", "C5-1 0.0 CLNG-1\n", "F5-1 0.0 CLNG-1\n", "SB51 180.0 INT-WALL-1\n", - "SB52 90.0 INT-WALL-1\n", + "SB52 89.99999999999997 INT-WALL-1\n", "SB53 0.0 INT-WALL-1\n", "SB54 270.0 INT-WALL-1\n", "WALL-1SF 180.0 WALL-1\n", @@ -3364,7 +3345,7 @@ "source": [ "# see this in all surfaces\n", "for sf in surfaces:\n", - " print sf.Name, sf.azimuth, sf.Construction_Name\n", + " print(sf.Name, sf.azimuth, sf.Construction_Name)\n", " " ] }, @@ -3380,21 +3361,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.10" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/docs/Main_Tutorial.py b/docs/Main_Tutorial.py deleted file mode 100644 index 5739c4c2..00000000 --- a/docs/Main_Tutorial.py +++ /dev/null @@ -1,1362 +0,0 @@ -# -*- coding: utf-8 -*- -# 3.0 - -# - -# Eppy Tutorial - -# - -# Authors: Santosh Philip, Leora Tanjuatco - -# - -# Eppy is a scripting language for E+ idf files, and E+ output files. Eppy is written in the programming language Python. As a result it takes full advantage of the rich data structure and idioms that are avaliable in python. You can programmatically navigate, search, and modify E+ idf files using eppy. The power of using a scripting language allows you to do the following: -# -# - Make a large number of changes in an idf file with a few lines of eppy code. -# - Use conditions and filters when making changes to an idf file -# - Make changes to multiple idf files. -# - Read data from the output files of a E+ simulation run. -# - Based to the results of a E+ simulation run, generate the input file for the next simulation run. -# -# So what does this matter? Here are some of the things you can do with eppy: -# -# - Change construction for all north facing walls. -# - Change the glass type for all windows larger than 2 square meters. -# - Change the number of people in all the interior zones. -# - Change the lighting power in all south facing zones. -# - Change the efficiency and fan power of all rooftop units. -# - Find the energy use of all the models in a folder (or of models that were run after a certain date) -# - If a model is using more energy than expected, keep increasing the R-value of the roof until you get to the expected energy use. - -# - -# Quick Start - -# - -# Here is a short IDF file that I’ll be using as an example to start us off :: - -# - -# VERSION, -# 7.2; !- Version Identifier -# -# SIMULATIONCONTROL, -# Yes, !- Do Zone Sizing Calculation -# Yes, !- Do System Sizing Calculation -# Yes, !- Do Plant Sizing Calculation -# No, !- Run Simulation for Sizing Periods -# Yes; !- Run Simulation for Weather File Run Periods -# -# BUILDING, -# White House, !- Name -# 30., !- North Axis {deg} -# City, !- Terrain -# 0.04, !- Loads Convergence Tolerance Value -# 0.4, !- Temperature Convergence Tolerance Value {deltaC} -# FullExterior, !- Solar Distribution -# 25, !- Maximum Number of Warmup Days -# 6; !- Minimum Number of Warmup Days -# -# SITE:LOCATION, -# CHICAGO_IL_USA TMY2-94846, !- Name -# 41.78, !- Latitude {deg} -# -87.75, !- Longitude {deg} -# -6.00, !- Time Zone {hr} -# 190.00; !- Elevation {m} - -# - -# To use eppy to look at this model, we have to run a little code first: - -# - -# you would normaly install eppy by doing -# python setup.py install -# or -# pip install eppy -# or -# easy_install eppy - -# if you have not done so, uncomment the following three lines -import sys - -# pathnameto_eppy = 'c:/eppy' -pathnameto_eppy = "../" -sys.path.append(pathnameto_eppy) - -from eppy import modeleditor -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - -# - -IDF.setiddname(iddfile) -idf1 = IDF(fname1) - -# - -# idf1 now holds all the data to your in you idf file. -# -# Now that the behind-the-scenes work is done, we can print this file. - -# - -idf1.printidf() - -# - -# Looks like the same file as before, except that all the comments are slightly different. - -# - -# As you can see, this file has four objects: -# -# - VERSION -# - SIMULATIONCONTROL -# - BUILDING -# - SITE:LOCATION - -# - -# So, let us look take a closer look at the BUILDING object. -# We can do this using this command:: - -# - -# print filename.idfobjects['OBJECTNAME'] - -# - -print( - idf1.idfobjects["BUILDING"] -) # put the name of the object you'd like to look at in brackets - -# - -# We can also zoom in on the object and look just at its individual parts. -# -# For example, let us look at the name of the building. -# -# To do this, we have to do some more behind-the-scenes work, which we'll explain later. - -# - -building = idf1.idfobjects["BUILDING"][0] - -# - -# Now we can do this: - -# - -print(building.Name) - -# - -# Now that we've isolated the building name, we can change it. - -# - -building.Name = "Empire State Building" - -# - -print(building.Name) - -# - -# Did this actually change the name in the model ? Let us print the entire model and see. - -# - -idf1.printidf() - -# - -# Yes! It did. So now you have a taste of what eppy can do. Let's get started! - -# - -# Modifying IDF Fields - -# - -# That was just a quick example -- we were showing off. Let's look a little closer. - -# - -# As you might have guessed, changing an IDF field follows this structure:: - -# - -# object.fieldname = "New Field Name" - -# - -# Plugging the object name (building), the field name (Name) and our new field name ("Empire State Building") into this command gave us this: - -# - -building.Name = "Empire State Building" - -# - -import eppy - -# import eppy.ex_inits -# reload(eppy.ex_inits) -import eppy.ex_inits - -# - -# But how did we know that "Name" is one of the fields in the object "building"? -# -# Are there other fields? -# -# What are they called? -# -# Let's take a look at the IDF editor: - -# - -from eppy import ex_inits # no need to know this code, it just shows the image below - -for_images = ex_inits -for_images.display_png(for_images.idfeditor) - -# - -# In the IDF Editor, the building object is selected. -# -# We can see all the fields of the object "BUILDING". -# -# They are: -# -# - Name -# - North Axis -# - Terrain -# - Loads Convergence Tolerance Value -# - Temperature Convergence Tolerance Value -# - Solar Distribution -# - Maximum Number of Warmup Days -# - Minimum Number of Warmup Days -# -# Let us try to access the other fields. - -# - -print(building.Terrain) - -# - -# How about the field "North Axis" ? -# -# It is not a single word, but two words. -# -# In a programming language, a variable has to be a single word without any spaces. -# -# To solve this problem, put an underscore where there is a space. -# -# So "North Axis" becomes "North_Axis". - -# - -print(building.North_Axis) - -# - -# Now we can do: - -# - -print(building.Name) -print(building.North_Axis) -print(building.Terrain) -print(building.Loads_Convergence_Tolerance_Value) -print(building.Temperature_Convergence_Tolerance_Value) -print(building.Solar_Distribution) -print(building.Maximum_Number_of_Warmup_Days) -print(building.Minimum_Number_of_Warmup_Days) - -# - -# Where else can we find the field names? -# -# The IDF Editor saves the idf file with the field name commented next to field. -# -# Eppy also does this. -# -# Let us take a look at the "BUILDING" object in the text file that the IDF Editor saves :: - -# - -# BUILDING, -# White House, !- Name -# 30., !- North Axis {deg} -# City, !- Terrain -# 0.04, !- Loads Convergence Tolerance Value -# 0.4, !- Temperature Convergence Tolerance Value {deltaC} -# FullExterior, !- Solar Distribution -# 25, !- Maximum Number of Warmup Days -# 6; !- Minimum Number of Warmup Days - -# - -# This a good place to find the field names too. -# -# It is easy to copy and paste from here. You can't do that from the IDF Editor. - -# - -# We know that in an E+ model, there will be only ONE "BUILDING" object. This will be the first and only item in the list "buildings". -# -# But E+ models are made up of objects such as "BUILDING", "SITE:LOCATION", "ZONE", "PEOPLE", "LIGHTS". There can be a number of "ZONE" objects, a number of "PEOPLE" objects and a number of "LIGHTS" objects. -# -# So how do you know if you're looking at the first "ZONE" object or the second one? Or the tenth one? To answer this, we need to learn about how lists work in python. - -# - -# Python lesson 1: lists - -# - -# Eppy holds these objects in a python structure called list. Let us take a look at how lists work in python. - -# - -fruits = ["apple", "orange", "bannana"] -# fruits is a list with three items in it. - -# - -# To get the first item in fruits we say: - -# - -fruits[0] - -# - -# Why "0" ? -# -# Because, unlike us, python starts counting from zero in a list. So, to get the third item in the list we'd need to input 2, like this: - -# - -print(fruits[2]) - -# - -# But calling the first fruit "fruit[0]" is rather cumbersome. Why don't we call it firstfruit? - -# - -firstfruit = fruits[0] -print(firstfruit) - -# - -# We also can say - -# - -goodfruit = fruits[0] -redfruit = fruits[0] - -print(firstfruit) -print(goodfruit) -print(redfruit) -print(fruits[0]) - -# - -# As you see, we can call that item in the list whatever we want. - -# - -# How many items in the list - -# - -# To know how many items are in a list, we ask for the length of the list. -# -# The function 'len' will do this for us. - -# - -print(len(fruits)) - -# - -# There are 3 fruits in the list. - -# - -# Saving an idf file - -# - -# This is easy: - -# - -idf1.save() - -# - -# If you'd like to do a "Save as..." use this: - -# - -idf1.saveas("something.idf") - -# - -# Working with E+ objects - -# - -# Let us open a small idf file that has only "CONSTRUCTION" and "MATERIAL" objects in it. You can go into "../idffiles/V_7_2/constructions.idf" and take a look at the file. We are not printing it here because it is too big. -# -# So let us open it using the idfreader - - -# - -from eppy import modeleditor -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -try: - IDF.setiddname(iddfile) -except modeleditor.IDDAlreadySetError as e: - pass - -fname1 = "../eppy/resources/idffiles/V_7_2/constructions.idf" -idf1 = IDF(fname1) - -# - -# Let us print all the "MATERIAL" objects in this model. - -# - -materials = idf1.idfobjects["MATERIAL"] -print(materials) - -# - -# As you can see, there are many material objects in this idf file. -# -# The variable "materials" now contains a list of "MATERIAL" objects. -# -# You already know a little about lists, so let us take a look at the items in this list. - -# - -firstmaterial = materials[0] -secondmaterial = materials[1] - -# - -print(firstmaterial) - -# - -# Let us print secondmaterial - -# - -print(secondmaterial) - -# - -# This is awesome!! Why? -# -# To understand what you can do with your objects organized as lists, you'll have to learn a little more about lists. - -# - -# Python lesson 2: more about lists - -# - -# More ways to access items in a list - -# - -# You should remember that you can access any item in a list by passing in its index. -# -# The tricky part is that python starts counting at 0, so you need to input 0 in order to get the first item in a list. -# -# Following the same logic, you need to input 3 in order to get the fourth item on the list. Like so: - -# - -bad_architects = [ - "Donald Trump", - "Mick Jagger", - "Steve Jobs", - "Lady Gaga", - "Santa Clause", -] -print(bad_architects[3]) - -# - -# But there's another way to access items in a list. If you input -1, it will return the last item. -2 will give you the second-to-last item, etc. - -# - -print(bad_architects[-1]) -print(bad_architects[-2]) - -# - -# Slicing a list - -# - -# You can also get more than one item in a list: - -# - -# bad_architects[first_slice:second_slice] - -# - -print(bad_architects[1:3]) # slices at 1 and 3 - -# - -# How do I make sense of this? -# -# To understand this you need to see the list in the following manner:: - -# - -# [ "Donald Trump", "Mick Jagger", "Steve Jobs", "Lady Gaga", "Santa Clause" ] -# ^ ^ ^ ^ ^ ^ -# 0 1 2 3 4 5 -# -5 -4 -3 -2 -1 - -# - -# The slice operation bad_architects[1:3] slices right where the numbers are. -# -# Does that make sense? - -# - -# Let us try a few other slices: - -# - -print(bad_architects[2:-1]) # slices at 2 and -1 -print(bad_architects[-3:-1]) # slices at -3 and -1 - -# - -# You can also slice in the following way: - -# - -print(bad_architects[3:]) -print(bad_architects[:2]) -print(bad_architects[-3:]) -print(bad_architects[:-2]) - -# - -# I'll let you figure that out on your own. - -# - -# Adding to a list - -# - -# This is simple: the append function adds an item to the end of the list. -# -# The following command will add 'something' to the end of the list called listname:: - -# - -# listname.append(something) - -# - -bad_architects.append("First-year students") -print(bad_architects) - -# - -# Deleting from a list - -# - -# There are two ways to do this, based on the information you have. If you have the value of the object, you'll want to use the remove function. It looks like this: - -# - -# listname.remove(value) - -# - -# An example: - -# - -bad_architects.remove("First-year students") -print(bad_architects) - -# - -# What if you know the index of the item you want to remove? -# -# What if you appended an item by mistake and just want to remove the last item in the list? -# -# You should use the pop function. It looks like this: - -# - -# listname.pop(index) - -# - -what_i_ate_today = ["coffee", "bacon", "eggs"] -print(what_i_ate_today) - -# - -what_i_ate_today.append("vegetables") # adds vegetables to the end of the list -# but I don't like vegetables -print(what_i_ate_today) - -# - -# since I don't like vegetables -what_i_ate_today.pop( - -1 -) # use index of -1, since vegetables is the last item in the list -print(what_i_ate_today) - -# - -# You can also remove the second item. - -# - -what_i_ate_today.pop(1) - -# - -# Notice the 'bacon' in the line above. -# -# pop actually 'pops' the value (the one you just removed from the list) back to you. -# -# Let us pop the first item. - -# - -was_first_item = what_i_ate_today.pop(0) -print("was_first_item =", was_first_item) -print("what_i_ate_today = ", what_i_ate_today) - -# - -# what_i_ate_today is just 'eggs'? -# -# That is not much of a breakfast! -# -# Let us get back to eppy. - -# - -# Continuing to work with E+ objects - -# - -# Let us get those "MATERIAL" objects again - -# - -materials = idf1.idfobjects["MATERIAL"] - -# - -# With our newfound knowledge of lists, we can do a lot of things. -# -# Let us get the last material: - -# - -print(materials[-1]) - -# - -# How about the last two? - -# - -print(materials[-2:]) - -# - -# Pretty good. - -# - -# Counting all the materials ( or counting all objects ) - -# - -# How many materials are in this model ? - -# - -print(len(materials)) - -# - -# Removing a material - -# - -# Let us remove the last material in the list - -# - -was_last_material = materials.pop(-1) - -# - -print(len(materials)) - -# - -# Success! We have only 9 materials now. - -# - -# The last material used to be: -# -# 'G05 25mm wood' - -# - -print(materials[-1]) - -# - -# Now the last material in the list is: -# -# 'M15 200mm heavyweight concrete' - -# - -# Adding a material to the list - -# - -# We still have the old last material - -# - -print(was_last_material) - -# - -# Let us add it back to the list - -# - -materials.append(was_last_material) - -# - -print(len(materials)) - -# - -# Once again we have 10 materials and the last material is: - -# - -print(materials[-1]) - -# - -# Add a new material to the model - -# - -# So far we have been working only with materials that were already in the list. -# -# What if we want to make new material? -# -# Obviously we would use the function 'newidfobject'. - -# - -idf1.newidfobject("MATERIAL") - -# - -len(materials) - -# - -# We have 11 items in the materials list. -# -# Let us take a look at the last material in the list, where this fancy new material was added - -# - -print(materials[-1]) - -# - -# Looks a little different from the other materials. It does have the name we gave it. -# -# Why do some fields have values and others are blank ? -# -# "addobject" puts in all the default values, and leaves the others blank. It is up to us to put values in the the new fields. -# -# Let's do it now. - -# - -materials[-1].Name = "Peanut Butter" -materials[-1].Roughness = "MediumSmooth" -materials[-1].Thickness = 0.03 -materials[-1].Conductivity = 0.16 -materials[-1].Density = 600 -materials[-1].Specific_Heat = 1500 - -# - -print(materials[-1]) - -# - -# Copy an existing material - -# - -Peanutbuttermaterial = materials[-1] -idf1.copyidfobject(Peanutbuttermaterial) -materials = idf1.idfobjects["MATERIAL"] -len(materials) -materials[-1] - -# - -# Python lesson 3: indentation and looping through lists - -# - -# I'm tired of doing all this work, it's time to make python do some heavy lifting for us! - -# - -# Python can go through each item in a list and perform an operation on any (or every) item in the list. -# -# This is called looping through the list. -# -# Here's how to tell python to step through each item in a list, and then do something to every single item. -# -# We'll use a 'for' loop to do this. :: - -# - -# for in : -# -# - -# - -# A quick note about the second line. Notice that it's indented? There are 4 blank spaces before the code starts:: - -# - -# in python, indentations are used -# to determine the grouping of statements -# some languages use symbols to mark -# where the function code starts and stops -# but python uses indentation to tell you this -# i'm using indentation to -# show the beginning and end of a sentence -# this is a very simple explanation -# of indentation in python -# if you'd like to know more, there is plenty of information -# about indentation in python on the web -# - -# - -# It's elegant, but it means that the indentation of the code holds meaning. -# -# So make sure to indent the second (and third and forth) lines of your loops! -# -# Now let's make some fruit loops. - -# - -fruits = ["apple", "orange", "bannana"] - -# - -# Given the syntax I gave you before I started rambling about indentation, we can easily print every item in the fruits list by using a 'for' loop. - -# - -for fruit in fruits: - print(fruit) - - -# - -# That was easy! But it can get complicated pretty quickly... -# -# Let's make it do something more complicated than just print the fruits. -# -# Let's have python add some words to each fruit. - -# - -for fruit in fruits: - print("I am a fruit said the", fruit) - - -# - -# Now we'll try to confuse you: - -# - -rottenfruits = [] # makes a blank list called rottenfruits -for fruit in fruits: # steps through every item in fruits - rottenfruit = "rotten " + fruit # changes each item to "rotten _____" - rottenfruits.append( - rottenfruit - ) # adds each changed item to the formerly empty list - - -# - -print(rottenfruits) - -# - -# here's a shorter way of writing it -rottenfruits = ["rotten " + fruit for fruit in fruits] - -# - -# Did you follow all that?? -# -# Just in case you didn't, let's review that last one:: - -# - -# ["rotten " + fruit for fruit in fruits] -# ------------------- -# This is the "for loop" -# it steps through each fruit in fruits -# -# ["rotten " + fruit for fruit in fruits] -# ----------------- -# add "rotten " to the fruit at each step -# this is your "do something" -# -# ["rotten " + fruit for fruit in fruits] -# --------------------------------------- -# give a new list that is a result of the "do something" - -# - -print(rottenfruits) - -# - -# Filtering in a loop - -# - -# But what if you don't want to change *every* item in a list? -# -# We can use an 'if' statement to operate on only some items in the list. -# -# Indentation is also important in 'if' statements, as you'll see:: - -# - -# if : -# -# -# - -# - -fruits = [ - "apple", - "orange", - "pear", - "berry", - "mango", - "plum", - "peach", - "melon", - "bannana", -] - -# - -for fruit in fruits: # steps through every fruit in fruits - if len(fruit) > 5: # checks to see if the length of the word is more than 5 - print(fruit) # if true, print the fruit - # if false, python goes back to the 'for' loop - # and checks the next item in the list - - -# - -# Let's say we want to pick only the fruits that start with the letter 'p'. - -# - -p_fruits = [] # creates an empty list called p_fruits -for fruit in fruits: # steps through every fruit in fruits - if fruit.startswith( - "p" - ): # checks to see if the first letter is 'p', using a built-in function - p_fruits.append( - fruit - ) # if the first letter is 'p', the item is added to p_fruits - # if the first letter is not 'p', python goes back to the 'for' loop - # and checks the next item in the list - - -# - -print(p_fruits) - -# - -# here's a shorter way to write it -p_fruits = [fruit for fruit in fruits if fruit.startswith("p")] - -# - -# :: - -# - -# [fruit for fruit in fruits if fruit.startswith("p")] -# ------------------- -# for loop -# -# [fruit for fruit in fruits if fruit.startswith("p")] -# ------------------------ -# pick only some of the fruits -# -# [fruit for fruit in fruits if fruit.startswith("p")] -# ----- -# give me the variable fruit as it appears in the list, don't change it -# -# [fruit for fruit in fruits if fruit.startswith("p")] -# ---------------------------------------------------- -# a fresh new list with those fruits -# - -# - -print(p_fruits) - -# - -# Counting through loops - -# - -# This is not really needed, but it is nice to know. You can safely skip this. - -# - -# Python's built-in function range() makes a list of numbers within a range that you specify. -# -# This is useful because you can use these lists inside of loops. - -# - -list(range(4)) # makes a list - -# - -for i in range(4): - print(i) - - -# - -len(p_fruits) - -# - -for i in range(len(p_fruits)): - print(i) - - -# - -for i in range(len(p_fruits)): - print(p_fruits[i]) - - -# - -for i in range(len(p_fruits)): - print(i, p_fruits[i]) - - -# - -for item_from_enumerate in enumerate(p_fruits): - print(item_from_enumerate) - - -# - -for i, fruit in enumerate(p_fruits): - print(i, fruit) - - -# - -# Looping through E+ objects - -# - -# If you have read the python explanation of loops, you are now masters of using loops. -# -# Let us use the loops with E+ objects. -# -# We'll continue to work with the materials list. - -# - -for material in materials: - print(material.Name) - - -# - -[material.Name for material in materials] - -# - -[material.Roughness for material in materials] - -# - -[material.Thickness for material in materials] - -# - -[material.Thickness for material in materials if material.Thickness > 0.1] - -# - -[material.Name for material in materials if material.Thickness > 0.1] - -# - -thick_materials = [material for material in materials if material.Thickness > 0.1] - -# - -thick_materials - -# - -# change the names of the thick materials -for material in thick_materials: - material.Name = "THICK " + material.Name - - -# - -thick_materials - -# - -# So now we're working with two different lists: materials and thick_materials. -# -# But even though the items can be separated into two lists, we're still working with the same items. -# -# Here's a helpful illustration: - -# - -for_images.display_png(for_images.material_lists) # display the image below - -# - -# here's the same concept, demonstrated with code -# remember, we changed the names of the items in the list thick_materials -# these changes are visible when we print the materials list; the thick materials are also in the materials list -[material.Name for material in materials] - -# - -# Geometry functions in eppy - -# - -# Sometimes, we want information about the E+ object that is not in the fields. For example, it would be useful to know the areas and orientations of the surfaces. These attributes of the surfaces are not in the fields of surfaces, but surface objects *do* have fields that have the coordinates of the surface. The areas and orientations can be calculated from these coordinates. -# -# Pyeplus has some functions that will do the calculations. -# -# In the present version, pyeplus will calculate: -# -# - surface azimuth -# - surface tilt -# - surface area -# -# Let us explore these functions - -# - -# OLD CODE, SHOULD BE DELETED -# from idfreader import idfreader - -# iddfile = "../iddfiles/Energy+V7_0_0_036.idd" -# fname = "../idffiles/V_7_0/5ZoneSupRetPlenRAB.idf" - -# model, to_print, idd_info = idfreader(fname, iddfile) -# surfaces = model['BUILDINGSURFACE:DETAILED'] # all the surfaces - -# - -from eppy import modeleditor -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -try: - IDF.setiddname(iddfile) -except modeleditor.IDDAlreadySetError as e: - pass - - -fname1 = "../eppy/resources/idffiles/V_7_0/5ZoneSupRetPlenRAB.idf" -idf1 = IDF(fname1) -surfaces = idf1.idfobjects["BUILDINGSURFACE:DETAILED"] - -# - -# Let us look at the first surface -asurface = surfaces[0] -print("surface azimuth =", asurface.azimuth, "degrees") -print("surface tilt =", asurface.tilt, "degrees") -print("surface area =", asurface.area, "m2") - -# - -# all the surface names -s_names = [surface.Name for surface in surfaces] -print(s_names[:5]) # print five of them - -# - -# surface names and azimuths -s_names_azm = [(sf.Name, sf.azimuth) for sf in surfaces] -print(s_names_azm[:5]) # print five of them - -# - -# or to do that in pretty printing -for name, azimuth in s_names_azm[:5]: # just five of them - print(name, azimuth) - - -# - -# surface names and tilt -s_names_tilt = [(sf.Name, sf.tilt) for sf in surfaces] -for name, tilt in s_names_tilt[:5]: # just five of them - print(name, tilt) - - -# - -# surface names and areas -s_names_area = [(sf.Name, sf.area) for sf in surfaces] -for name, area in s_names_area[:5]: # just five of them - print(name, area, "m2") - - -# - -# Let us try to isolate the exterior north facing walls and change their construnctions - -# - -# just vertical walls -vertical_walls = [sf for sf in surfaces if sf.tilt == 90.0] -print([sf.Name for sf in vertical_walls]) - -# - -# north facing walls -north_walls = [sf for sf in vertical_walls if sf.azimuth == 0.0] -print([sf.Name for sf in north_walls]) - -# - -# north facing exterior walls -exterior_nwall = [ - sf for sf in north_walls if sf.Outside_Boundary_Condition == "Outdoors" -] -print([sf.Name for sf in exterior_nwall]) - -# - -# print out some more details of the north wall -north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall] -for name, azimuth, construction in north_wall_info: - print(name, azimuth, construction) - - -# - -# change the construction in the exterior north walls -for wall in exterior_nwall: - wall.Construction_Name = ( - "NORTHERN-WALL" # make sure such a construction exists in the model - ) - - -# - -# see the change -north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall] -for name, azimuth, construction in north_wall_info: - print(name, azimuth, construction) - - -# - -# see this in all surfaces -for sf in surfaces: - print(sf.Name, sf.azimuth, sf.Construction_Name) - - -# - -# You can see the "NORTHERN-WALL" in the print out above. -# -# This shows that very sophisticated modification can be made to the model rather quickly. diff --git a/docs/Makefile b/docs/Makefile index be11b35e..cf1d9516 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,177 +1,20 @@ -# Makefile for Sphinx documentation +# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext +SPHINXBUILD = python -msphinx +SPHINXPROJ = eppy +SOURCEDIR = . +BUILDDIR = _build +# Put it first so that "make" without argument is like "make help". help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) generated - @echo - @echo "Build finished. The HTML pages are in generated." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/eppy.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/eppy.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/eppy" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/eppy" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." +.PHONY: help Makefile -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/Outputs_Tutorial.ipynb b/docs/Outputs_Tutorial.ipynb index e4299c16..86759d27 100644 --- a/docs/Outputs_Tutorial.ipynb +++ b/docs/Outputs_Tutorial.ipynb @@ -1,1167 +1,1129 @@ { - "metadata": { - "name": "", - "signature": "sha256:3c0d6fdbad44262be630d6d77e0d3f967dc7e755c4be9daf9d929d1a84c881c7" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Reading outputs from E+" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# some initial set up\n", - "# if you have not installed epp, and only downloaded it\n", - "# you will need the following lines\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../'\n", - "sys.path.append(pathnameto_eppy) \n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Using titletable() to get at the tables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So far we have been making changes to the IDF input file.\n", - "How about looking at the outputs.\n", - "\n", - "Energyplus makes nice htmlout files that look like this." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", - "for_images = ex_inits\n", - "for_images.display_png(for_images.html_snippet1) #display the image below\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\npPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAA\nCZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yU\nFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAE\nSIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8\nACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIk\nQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEv\nJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIg\nARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84\nL0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAA\nCZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzE\nS0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAE\nSIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUj\nzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIk\nQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof\n8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQiB25cNlw+jwMIZHRzFp\nd0n+XBgfnZRf3bgcNoyP2+Il35HljJLXyIHpSgIkQAIkQAIkQAIkQAIkEIpATMrH+MVm5KdkInf1\n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\nkYUlt6djuTAIMDEyDAizUBdzTNt2sRaZsmGA0WTGSve0s+krFnSrU9Vk5OxXP3gI//GWE5u3b8Yv\nj+Sj5cF2NO7MWShpGQ8JkAAJkAAJkAAJkMAiIhBV+VhEslKUuCPgkA9OpsoCcqBjSsF2rw41juqk\nFThW0YoT53bhoCgilWea8MbuLlTPvIT14XXSuCNAgUmABEiABEiABEiABHwEYljz4fPMMxKYGwED\nNu+q0oLsyMxHycGDOChfLs9XFQ9TFXqPbMe9D+oxHt9dipWWZ6h4zA0wfZMACZAACZAACZBAXBHg\nyEdcFVecCqtOIZMpau+qU/ZSbsfd92TLtD3PVDw7RuWbLK7Ue5C33Ds0EqcZpdgkQAIkQAIkQAIk\nQAKRCFD5iESHbiRAAiRAAiRAAiRAAiRAAgtGgNOuFgwlIyIBEiABEiABEiABEiABEohEgMpHJDp0\nIwESIAESIAESIAESIAESWDACVD4WDCUjIgESIAESIAESIAESIAESiESAykckOnQjARIgARIgARIg\nARIgARJYMAJUPhYMJSMiARIgARIgARIgARIgARKIRIDKRyQ6dCMBEiABEiABEiABEiABElgwAlQ+\nFgwlIyIBEiABEiABEiABEiABEohEgMpHJDp0IwESIAESIAESIAESIAESWDACVD4WDCUjIgESIAES\nIAESIAESIAESiESAykckOnQjARIgARIgARIgARIgARJYMAJUPhYMJSMiARIgARIgARIgARIgARKI\nRIDKRyQ6dCMBEiABEiABEiABEiABElgwAlQ+FgwlIyIBEiABEiABEiABEiABEohEgMpHJDp0IwES\nIAESIAESIAESIAESWDACVD4WDCUjIgESIAESIAESIAESIAESiESAykckOnQjARIgARIgARIgARIg\nARJYMAJUPhYMJSMiARIgARIgARIgARIgARKIRCA5kqPq9uyzz0bzQncSIAESIAESIAESIAESIIEl\nTqCtrQ39/f0RKURVPtTQakQ0S4NAUVERyzvBi5plnOAFzOwtaQJs30u6+Jl5ErilBNT+JxYTk/Kh\nRhRNi4klMfpZ/AQ8I10s78VfVvOVkGU8X3IMRwKLnwDb9+IvI0pIAolKwNP/RMsf13xEI0R3EiAB\nEiABEiABEiABEiCBBSFA5WNBMDISEiABEiABEiABEiABEiCBaASofEQjRHcSIAESIAESIAESIAES\n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\nAABJRU5ErkJggg==\n" - } - ], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look at the clipping of the html file above, you see tables with data in them. Eppy has functions that let you access of these tables and get the data from any of it's cells.\n", - "\n", - "Let us say you want to find the \"Net Site Energy\". \n", - "\n", - "This is in table \"Site and Source Energy\". \n", - "\n", - "The number you want is in the third row, second column and it's value is \"47694.47\"\n", - "\n", - "Let us use eppy to extract this number\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.results import readhtml # the eppy module with functions to read the html\n", - "fname = \"../eppy/resources/outputfiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlowTable_ABUPS.html\" # the html file you want to read\n", - "filehandle = open(fname, 'r').read() # get a file handle to the html file\n", - "\n", - "\n", - "htables = readhtml.titletable(filehandle) # reads the tables with their titles\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you open the python file readhtml.py and look at the function titletable, you can see the function documentation.\n", - "\n", - "It says the following" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " \"\"\"return a list of [(title, table), .....]\n", - " title = previous item with a tag\n", - " table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]\"\"\"\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The documentation says that it returns a list.\n", - "Let us take a look inside this list.\n", - "Let us look at the first item in the list." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "firstitem = htables[0]\n", - "print firstitem\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "(u'Site and Source Energy', [[u'', u'Total Energy [kWh]', u'Energy Per Total Building Area [kWh/m2]', u'Energy Per Conditioned Building Area [kWh/m2]'], [u'Total Site Energy', 47694.47, 51.44, 51.44], [u'Net Site Energy', 47694.47, 51.44, 51.44], [u'Total Source Energy', 140159.1, 151.16, 151.16], [u'Net Source Energy', 140159.1, 151.16, 151.16]])\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Ughh !!! that is ugly. Hard to see what it is. \n", - "Let us use a python module to print it pretty" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import pprint\n", - "pp = pprint.PrettyPrinter()\n", - "pp.pprint(firstitem)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "(u'Site and Source Energy',\n", - " [[u'',\n", - " u'Total Energy [kWh]',\n", - " u'Energy Per Total Building Area [kWh/m2]',\n", - " u'Energy Per Conditioned Building Area [kWh/m2]'],\n", - " [u'Total Site Energy', 47694.47, 51.44, 51.44],\n", - " [u'Net Site Energy', 47694.47, 51.44, 51.44],\n", - " [u'Total Source Energy', 140159.1, 151.16, 151.16],\n", - " [u'Net Source Energy', 140159.1, 151.16, 151.16]])\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Nice. that is a little clearer" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "firstitem_title = firstitem[0]\n", - "pp.pprint(firstitem_title)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "u'Site and Source Energy'\n" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "firstitem_table = firstitem[1]\n", - "pp.pprint(firstitem_table)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[[u'',\n", - " u'Total Energy [kWh]',\n", - " u'Energy Per Total Building Area [kWh/m2]',\n", - " u'Energy Per Conditioned Building Area [kWh/m2]'],\n", - " [u'Total Site Energy', 47694.47, 51.44, 51.44],\n", - " [u'Net Site Energy', 47694.47, 51.44, 51.44],\n", - " [u'Total Source Energy', 140159.1, 151.16, 151.16],\n", - " [u'Net Source Energy', 140159.1, 151.16, 151.16]]\n" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How do we get to value of \"Net Site Energy\". \n", - "We know it is in the third row, second column of the table. \n", - "\n", - "Easy." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "thirdrow = firstitem_table[2] # we start counting with 0. So 0, 1, 2 is third row\n", - "print thirdrow\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'Net Site Energy', 47694.47, 51.44, 51.44]\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "thirdrow_secondcolumn = thirdrow[1]\n", - "thirdrow_secondcolumn\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "47694.47" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "the text from the html table is in unicode. \n", - "That is why you see that weird 'u' letter. \n", - "\n", - "Let us convert it to a floating point number" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "net_site_energy = float(thirdrow_secondcolumn)\n", - "net_site_energy\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 10, - "text": [ - "47694.47" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us have a little fun with the tables. \n", - "\n", - "Get the titles of all the tables" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "alltitles = [htable[0] for htable in htables]\n", - "alltitles\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "[u'Site and Source Energy',\n", - " u'Site to Source Energy Conversion Factors',\n", - " u'Building Area',\n", - " u'End Uses',\n", - " u'End Uses By Subcategory',\n", - " u'Utility Use Per Conditioned Floor Area',\n", - " u'Utility Use Per Total Floor Area',\n", - " u'Electric Loads Satisfied',\n", - " u'On-Site Thermal Sources',\n", - " u'Water Source Summary',\n", - " u'Comfort and Setpoint Not Met Summary',\n", - " u'Comfort and Setpoint Not Met Summary']" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let us grab the tables with the titles \"Building Area\" and \"Site to Source Energy Conversion Factors\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "twotables = [htable for htable in htables if htable[0] in [\"Building Area\", \"Site to Source Energy Conversion Factors\"]]\n", - "twotables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us leave readtables for now. \n", - "\n", - "It gives us the basic functionality to read any of the tables in the html output file." - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Using lines_table() to get at the tables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have been using titletable() to get at the tables. There is a constraint using function titletable(). Titletable() assumes that there is a unique title (in HTML bold) just above the table. It is assumed that this title will adequetly describe the table. This is true in most cases and titletable() is perfectly good to use. Unfortuntely there are some tables that do not follow this rule. The snippet below shows one of them." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import ex_inits #no need to know this code, it just shows the image below\n", - "for_images = ex_inits\n", - "for_images.display_png(for_images.html_snippet2) # display the image below\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nuOUIWFMHl4xZW1GiqzIVmxKiS0J76AqNVbriyqVjNT2Wu/htnPWmixXEqUpY7u7zVe1bQvwtTY7e\nfiu/pvaaCmj9h41VNo1p2kRdrkCb7qSB9efWnzCzdyhdgfGzDsT50zhdE3yv12TJ2inmAkhqqGZB\nV6+OvfIuOc5NXBnPrCSXMOXgVXb3QrL+6guQi3t8RIeFTs6Zuxb+lpDKTKqV5B4ptNjyV/1XSU+h\n2UOVbkkcPflEpgeyCivtqdz32dWcQ0MEAp/7Np/L1y/pFc91UpUupQddnLh9OaSb+cCk8xa6WGIp\nys3TVZX/PUU5nbvKuwjYzKeJz0erdblD2PXz8jz2nOWcqYlrOH/aXYYpLTDeZuNlWESi9RpP0h1K\nAn8frSks9tbYbFUathe8Yay6OKd+EDFD0Wh8voB0jt13X3Lkqs0XGZut3N4irtUOO7jYv9FkvtLr\nHIGCTvQyGPjaHBGv9fIDQ1qnVz05zE8+0musHp584Ng18+oHpbJnVMUJdrTbB5gpJbbu3CO0i+be\nEfx8c2Czb/mfvyU7ZyiHrGUvo6QUbzzbv+6nmwBCDQ08UumqIfRJwoREwdOAs+s+tyc7ziAXC50u\nTb6NYRcNbmeuPjkiWBKvgwNiIHArErCmTiorYg0zmUdGl6hHlLF+haWgYoyI38aImszE/0sQm8nL\nTSPTddfr1emP6YmSXHenUU/XS7y6rItOs3c2vSkmSrPvWiYIrWkjNW6Tjr70U7ULSqyrM2l0/FWM\njZiKDkyMC5XJZPLYEWsOFJJFROf2b1mQNDDxu/Ub5gwm6QG1ohZsPcuV0p1ZOqYXSSHpCdNXF9AP\npK0Xcw+kTv3gsxXbs5JHkfThfRt1W1S8begQubp7eoEua2LnwMYTTntew2ay0Lp3TOn0y/Hyxl2n\nHHy5OVcXRZnytr+9qoQc2kzZX6w5yKezEYupLCD+0xHRtclh5ebhLT5ZbaBF6WfllYyEKS+rz690\nccWI11qrZEwa8yEL6T13fe/6gY4UJsZakpP67qrTuuDH3jn4Sgs3AfZBvCNZIdDqSHXEOPk2rw9i\nJzy+HTzTDYVAp8B4hw7CwSKQYTL4ehl4Qlmq5rHkbmZ7QTH4xXs9YNTsX/PeFRr/axNeayxg0vTp\n51njBk7adGGftAytwh7cW83m/AtNtptwvSOQ18NEfBkMXAnvI1+gVkKndz0KdSO7KlqPQkH/ViHh\n6aDw13fuez6Snnl1C8ouP+7s1pqe8nfvCFXzjuwPgMpzwzcc0zJlDemjx88Y0kHupkj6dKuhgUcG\nlaXcFjd1/uho+ofHnGEpBazptgvJA4+l/bmUf0bsYqP7pcmXce59DDNnbtBrO/ZK4nUxBocgcIsR\nCOg1pg63EMrZMnmjWpP6qMjN+HSWPjZa03Ngad0ozZqTjguGtrBy2TQtSQztUbpBkM6rMV8xTxqk\nYQXWHGTv53wmEymzLJtEqyX/Bs7RM66ILWO6tuFg4mrYBr5ZWreHVnirPZ1V8WsV9cjrqui7nX2k\nIOWCKarIWsxNS0xnwSHjgmna2ERdxvpytroNJ+mr5ZbJuv57bAeTK0hiRkGVm8E23wpa96SVxfYo\nHUgQEYM9rPBzttjOoUynM+suHdm+csCzg0na3Hdi6csbCdqDbzR5ovX4PFtV8eIWP3dr12hDvqEo\nd8egLxbOGvZKRmjc7o0L2lt2Doq9d8M5I2U8M6bJAwPl8eXG7eVnM0593LN566RzJt2RTfP6fDRj\ncu/oucdU5PpojfmBfHafMeVKweLYRoqiQwerdAcrLB4XJJquFh7fNOPlRcUNFFYq+J42jdWsaeRz\n78KpSZsyp3YIIfHssXOP6J2UWMy6bi8M+urntax85fS4txftJdN6fPHCQ3vZ+FutmrjeVBo8M/TV\n1rwkGyGW5G7/+eH3NzcgjqKsbpuW9DyfWzAcWb9iVjn9zkW3b4a1CRK4MG6iggRFCLu6yFLmBYVA\n3j3qa701jqXw1GHWmrcebsHd9nnr7BgvHTvApoWqnFyB4IZtWXfWtqPg1NH9kjIljhOfr0M6UuNN\n5qu8zhHI63GOSA8G7/U6a2OPxHX6qEelIGeNYesvP7O6Xou57+6W94e5njNctWHN7o90HQd2i2Qh\nL3w0iT0YNvtP+iQp3PHmySGvPkJ7gS5B8nSrqYHHDCod1bR938R3iQ2WC+NS9xSRiGb30ml9h8a0\nrLfdKrp2m3K/NPkyzt3GsMiZG3FteF0I4hAEbmEC1ivmxz83vzIjZOWCulkDAvoPNBQz1pIbfEZK\n5Zb6ip9HKWSXbG8mlO3RON3ZqTLzW930rRJDSreHzm1q6/9e+YYC5zPUbBn7ctnQKmXh9rDCX2qf\nTjU/1FV3ziTrNCIkfQDtAn09J6Twx5DmDl+A0pXQVbRsIXe/qrWMqh1JUj3otFRULVtTdXCvNe6A\nLHNWrS4y6o1vKsgvtyf71XpERj3fr1beH6ExoRY3g22+FIxSVHaZZvnfotAFC0K+kFM6Zwx834p7\ndcOeaqQKjXw4ute6fgtzi8oHPsr5K0dWfLVG9aqt+FD6liNUCIMj48KTvd5PjlErJ/81s2/XJ7sm\nrN2dTLSvzj6Tt3nel6Yntn3QlXiEwc2fW75hIrk+ztqo6fLeTPKgM7DP4iUzJ28zVMzt+2RrZUBo\n/XpharVSFtRj8emCM4vbBnv0fgZ9mvDACx/wDXBEtAdHL3qw//Mduw+lPdGqksWLNuc5cplYcVmF\nqslzhczaO5KwKuGJuVlHKLXDL7TLO5wFq5Wb3iBZgigtSCxpHf2WvYjI99tt6spkwQ93H0Pyluw+\nnxr/uIiQaFKtJrG9uBsbP80mKiiaWN16axaLwySz2G8mJluhoj1vsWAptdJD1arZaZBJy2hMHsa1\nmGph2g1pck2OQIGxkoPBh3oF6pioqE6f9fRuVZsM7K6frwjo0H9J9tlRzzZw1e/zccRjr7ArWc3z\n4/7WWHI3fN3+m77C6Vtek+TpxktS1zfw2EFVbJa36dKHnZYbPfsPg828/vVJC4Z1UFs8vqntfmny\nZZwLx3B1z1xHkxEDAT8nIFfIiA90Pz03ZqtUyshjtEvMvIyOop4fVHtBv+CXuoXsHU3PAszPsu9M\nwTT56JqKdHIfuFqZsc1EMZ7DN8wvRJ7HuS0Vc6zU5vdqE1ckqGmtZRMUlK1qVrpZLg8Ir0c8DVmI\nOiAoJEDgwFXlbKP9wpj7nCYdeIUk4klns6drDWxE2e4PLPg8uN1jtfrHcp5MUISipYwKrRcQFhJw\nSsxgXwramMm5jL/IjhLyQeNUtZ19V948ca8u9dTlw8waGluIqkEE/XIiEwxndv0p690pjBxUVjbp\nlrY9K2tGhyaUTB4SoXilKef5hT0YQ6ZbtFRV4YmDsuBWIXb/N6LVI6ScrryCfKrUchnF/H5Xkk/a\nhdKauduzPDgsMsLdzSIiXEhdmmGrOM0uxren0d95f369u2OMymCo0+ZpNn3u8FUXxW76kdGJ/PLk\n9zo93n91aW2OPPcwRHuFDCQ6FKTPUCgU5DExG5Rh3TMKHM+GU3/MIHOWxKN1JLHF7J/JG9eza4zo\nhKBgwaCxS3j6thSfWVPOZnqetSSjUVzltdVbU1i459m09Q7n2KWh5LEvl0LOXmEw08ODBPlTHUNk\n0jL1fZ37ZLW6ftZYkxnFNTECXS2kj6UGg+/1OrSL6fRdz9TtZ/R0MFq3/tj32eYOtdcQUzR6c9Ew\nttyMqTNHj6oY3+U+UTWSp1tNDTxuUJHnqXUen/DxXcQYS1ryj0tnJ9Se/HKzQIvHQU25X5p8GefC\nMXxtZ64oLiSCgJ8RqKtcsa3uvXkVvaJLu/xAJlNk/IxGaAh3m2jZXklmvCihU2eznT5gq3pMHkbS\nK6nGXWptmFJrepTQG7NdOE3cHxnvijS4l84la/o88wl4JJq+t24Ve9rLlPKms05D2lrGAlnrxwJk\n7NISiq6O8XOqPBksVZAKujswPoCa+6WhXlTpLlVgGzsWxiTHh7hXZ7Kq2w6cTfwVy/T/vjxjm2O2\nitxu9ZGxHTt26dIlNrZ9+9jYdi1FnpUwTw+t+gobVamtsF8EVQ1bExeHa6DDgGrHTEYTVeve/37e\noYhzABgNtkurB60x58/s/kLX7sNmsUorz3+ctrdEtIK2b89w3/Gh4f91YIXX/ZXH+neNu4y0VXCr\nvwObfv1PyernG9u9VHr5momS1X9p9KfaMprQxayfN5zmXDFWj/q+zp/9/hUb7x8zar+nCVNWQvhp\nLM2poCe65Op27EXfcXugBJ6cRXN8a6nrcj+KuuZ6awRLgwcfZpuybH0O5yYLm8bE737wKTZNe9VJ\nxHTl3GpmZztZi0b3Psh5515kQrmT3a0C8gh+4nPfHZUebjXSZLr6mhiBIs0gSW6DwUmsmvVyZd11\nVkdPk3oNgujgOBecTKrmQfPnB7CP3VdN/mjd4I+fjRBekR26JE+3mhp4wkH17MDviQVkne57/T4c\nt7h7mJdfKuSC4HZp8mWcC6u75jPXgQkxEPBTAmbr9N6lT8+yTs8KOzhacJsTTPpQQfJ2MkrLeEjC\nVsr0ATHRtZ/vVDs2ulb76Nrt7nUqbjASWRvviigZ38hdiVBhHWaSasU+i9P9SSDhq04PrqN3g+l6\nRAsGKaZvCJlGz//ZevbTLTho964EhpGouFdHX7tk9Qeu/pNsMbDtgw5fbj7PlFIEhgSYl/f4nfdd\nSvb2eGGZq6+iu0CWkT3aOKL5g49WlaXtP8/Ne1lLCkh6qJJzQmzkubTAFD6d+OH2HWsF2YKoSkF3\n2H2DV7z7sMOh1B3+bUzdGdptXCg/xK34GTl9E1c95zvzioJemrqPXYHHJ6madyCOLDm0ZO78h1+H\nWKs59zD0hcbhzrcb1pLI2PfebRdOlR9774V+emcBymiJiB7MbpVHngg//VEKbwxfqXOEG4sX96xd\nxIzBmavfjGQcl/rN27CSpgqBj62/+FWlujb/i4bXVZ16nU2uASzBraLmxNAPTyvT5u4pdhqbpvzN\nI79YR86TsHavsu/Arpnw6znBODh/YBfbiAUjOzfyQYZb7smUYbuDLW4t3Bw90fh4I/FJ3xpvMqm0\nRkYga7z90+NgsAvQ377UK5D3qLN6epwJCvSTk8dS5mHZmZOY8KDOg0O+jmMT5r7Z3tMaPMnTraYG\nHhlUfPv49znkkZ/0frqR0Gr3uPulyZdxLhzD0leMa8DrbihSQOAmExD5OV6wxTDhArVmXkhjcvqx\ni3e4yxUVyj/S0VkXkZcY7rFn0K2QKYMp2YnK38/Y74ylpl699IJbraz5fXR1+/O5B5ZWjYUocegk\nFy2n2xSttFnH2j0CqICt5lXHBPcnOocq2Gc8csUmrZMRdvlgKpUw2LU+RgVrrSHHsOyMLGFi3aOz\nVGTO8oN1ZuGspaMulzdr2f3q5u7ndoIt2buQFU1jdpzSMt4S2Tckef223ZmpZNEJI6lPia+v6PQ1\nvQEsswcVvV0F2Tfk6t9EgOwhQrYgIeHU2lFkq1t6D5EqTXJcXbKXAbeTWcUJ8ktdMXJxzrGsJRsO\nkSk0Ira7xHVfEv6ZqXCjAc545jGo8xYnBexiHWJ8sr0th394Xjlps9N2MVcPkKrJhiP8njeWC9nE\nkSWlAj9YxZln5p72Kp9fzKbwloxht/EjG2id2kJel+M38uAF4pcxu65c/ZvVSdSKGC/YTozZi850\nKpNjnrSB29qNNNNymTOM1LKPhVN+emp47Q4LHRu7+FIvv4eCY7etGsLC9QXzZbywhW2yote3OSXM\nW+OVupw/vyME2D29iJTxPCeT6Nidjmtj/EJuBztfZPjNUOzdoc/bu4EeUewgFGyNcQObXGMj0LG3\nnJfB4EDtU70+6PRND79f3dQtBQ4bnGPsJYI+g/pw5wuf7z72+CzLhQxShO8yPp1E+FFt71/X000o\nXFMDj75WTP6L20Zx1zxiWxx7Ltts/CUxzn7q8RaKnd0+jXNeg+QVwwteIQfEQeCWJnCpIiaqRJ1Q\nxt1kGVtz19MbCycuN+QeNbB7Aqf+VZF3wUTiMbMNzMloTZ+mIZsAs9ujHE9ldjYhO97Ru5PQu5Ak\nbzTs/ktPNM894Ow/aIwkMTROy7oiuZvoitjtzJjtUcjmw4LttezgivaWc2q3mli3waSzpC9gNsnT\nkf3tPOmkt+UjTWOKVG0gGy9HldK7dzFbtISMKTt+omL+fJ2YwdIFFyzShfZgoVWl9i6pM99gN9bp\nW7BfnfPfliBb4LIt4fdST0one6dZcux76pIr3dwsdjc1x19uIInkR+2+Io6p9lQG6zYlfRJLfLUs\nsl9upWM34LjPlhfRfcVtsUu8q91FGjGvzvUvBHAeJNcQx17w3GbuFaeTOvBrAem96zbll2wa3YnY\nRgK5cwj//ED5yd+IgNP2M+XnUpIGEkliz9Q5U4n9JB7dY3gqvU+yqyVUVBStlAmBg3/RVrkKRH9O\n7zxc+OcMuxTlvK2afv2nkXwWHyFb/x8utG+MbO8v04X97FYLvFjctI32s8KHet126pf3mvbzJx1Z\nbdeHxW6i8FvLYeStJTw35Tr/3Qjt6SWjexKBgJjhSZ8m0JHw/ml7zgvV2LzJ6Plu5WoRdAe9yaJb\nd9yYJtfUCKzGYGAQ+VSvDwPsWvSwfwrCqafIiSz4uwtsb2YVsjtBuY5P4u7bN4xkdZjSetRT2v0k\nu1rXUq6nm13O6ft6B56jUnJS0BtZVRUkRURvL6IvzJnf9OJGGvPl/rclnC9Ndru8jmGXv5/h+Yrh\nBa+9InyDwC1PIH9bGevTkE/yRx2y8rkN4SzFRnaLOHWCNn0dIxNVmqO1bl/C+UBEnnhFzB9Scfxt\niZiE0t0XrcfXO2TmbmU9FycQujMVjHLNxCT6j1VknSOeR9XuFB3t7bEe4Q6zUwHmQHfOOHEgJ8CK\nJcwuL7KrF9W5fQHtMpJ/Y5brt6/mrOoxW28i1dEeIcnS7C5yN7jKl4Jb/6b9V3VC6UTyJzfiSvcV\nO++lZ2+AjESE1ylf4lZDmc5kUanDgrh5UENqzyYre+38tWczXZklOMSezOkya4qvGi2KepERnp6t\nkFceDWUmFVeQPIGVBzETZr4Yc/0yuuJiRUSE03MQ8hhYrykq1hotVK3gYHWoWl1DS4iu21rzxXPn\nSyttgbLA4PqRkXVrZmGTqFU1gsWq11ws1pIpZUVwOHkJRjhvzldq1hUXFtEytYLrRUaK74/hiwyv\n8JojNdLka6hdtN5r0OPXRcyai/rgyDDP14hqta6mBl61KvUu/O+MYe82IBcEbm0CNoOBCmLegbOa\nbXL+wavVZjDZyLIwtefX46yGKp3ZpgqRu/gfgvbaNFesRous3t3yal1myB+B1eptcrksNJx4JgJ9\ndLRaOm2GMmIh97KtDwbzdTkXNFfpTZSa2YSElxBGrsWrE5an47aypZ2aDHx1nWlktGsWjkEABEAA\nBEAABO54AmQD3jueQQ0DKN1O3uByDdfv1Znzti9rEZ1Anp39sXVC1ENNXCa9XCvEMQiAAAiAAAiA\nAAiAwA0gQC8au65gMRRXNM7avj3QVll6/h9Tmyae5z+vqx4UBgEQAAEQAAEQAAEQ8ELg+ufqvChH\nFgiAAAiAAAiAAAiAwL9EwNN+df9S9agGBEAABEAABEAABECgRgjAq6sRjFACAiAAAiAAAiAAAjeZ\nALy6m9wBqB4EQAAEQAAEQAAEaoQAvLoawQglIAACIAACIAACIHCTCcCru8kdgOpBAARAAARAAARA\noEYIwKurEYxQAgIgAAIgAAIgAAI3mQC8upvcAageBEAABEAABEAABGqEALy6GsEIJSAAAiAAAiAA\nAiBwkwnAq7vJHYDqQQAEQAAEQAAEQKBGCMCrqxGMUAICIAACIAACIAACN5kAvLqb3AGoHgRAAARA\nAARAAARqhAC8uhrBCCUgAAIgAAIgAAIgcJMJwKu7yR2A6kEABEAABEAABECgRgjAq6sRjFACAiAA\nAiAAAiAAAjeZALy6m9wBqB4EQAAEQAAEQAAEaoQAvLoawQglIAACIAACIAACIHCTCcCru8kdgOpB\nAARAAARAAARAoEYIwKurEYxQUjMEDDqNzmCtGV3QAgIgAAIgAAJ3GAGBV2e5tDSxo0wsKIcsN1wX\nF8OGxLtdFAfUikr4bGr60UKKMmwY08kllz8cuTKHFnArTgR6JI5ZmnHYbpirEkXnSQvfi+D19Ji3\ny6UF+5MH87nKUb+ulrJhjZgNrAbSlg35mppohYuN/KETgeq2xQUF3+rESUv2n9PxdXiM2EqXxtfn\nS3GR9oEkohqy2mAzrElowCbK1d0zzhlZPaazf/BF1pwu96hckKE7/EtwaHhEwgp7nwryEAUBEAAB\nEAABEJAkYHMO++b0JkWS91y2WUx0MOrz9y5Ttvhe6yxW/SPL7tm0Zlr5/qu2yuKU4Q3Yw6nZl4m2\nwz8N5g63/EMOLRZTYc6WEXWUccuOsnU5C1gOr57MyivH/mGyW3MqZRSbGDfvb5dSAeH9D5dX2QVt\ntrKj3ZVyTnihq/BUERv0afER8o7j9+VrLaVH42srSNn4ZQctlbrdy8eS+JLjpUS5s5HX2AqHkc4x\nXrkvbXFDYdn+Dcd/Lulcm+1s5jy2+fHf/aV3rsj1qOwEaa984OzDhSUmi814YQtbkG71kau0sLEg\neUA9NjGgwfuHtXbOVw8QyJvyy10Vih1bLmezPRI4+BcJe8SKIw0EQAAEQAAEQEAwV8fclmuHhJJv\nVUgQJVfSQRXU+LFuOxc9QXsx1xXkISoZq0BVW0kp6r88bC57OOaP/WaKqqUKYQ+bNAqnIyXnTY07\nTMoav66ogk13FpC3fbkX8flIluW71JN6GyvT9NGn2UhoSG2uVB2u0qqSxYs257KJ5DNvS+pqM/ek\nL1RlF/Zqw5V1hl+WjGnXWC1XKULkLDeFXBHyZJ/PU2Lrlllo3c5GXmMreCNdIrWq0xY3FPIGTRqz\nCkNI51JU847v5CynneBFQzt89ttZl7qcDy25wW+dmPde28gwpdzwx9ecd6ictPmNh5jOUjXq/Ep/\ntkhV0ezH4uYUMDSo8Navv94vMoyuTiKY/plyX2e2R2Q+zB5KaEM2CIAACIAACNyRBFy9OgXj2agU\ndi/O9s/Ed9beH9OOvjPrziwd04s8bSRP1hKmry4wEF/KejH3QOrUDz5bsT0reRRJ/y77XNbEzoGN\nJ5w2ueJUqBvZk2h3SqGgfTISngoK5ibNmEMT4xDkpL676rQu+LF3Dr7Sgkl2fJgsruuuFJznRrG+\nhEOU+Hzltrip80dH0+bPGZbCeRu2C8kDj6X9uTSKc86EJei4mA1Br+3Y+3ykHYtTCWWXH3d2a017\nw3wQ08Bn0hEvrXCSExxUqy3uKASaOIBtXh/ETjp+O3ime3855APrTc2a1JJpevG2+d1mXSZZZL5w\n74hOfMdZTGUB8Z+OiKb948rNw1t8spp+imqjK6ok/yWCYc3QJw5+uybl07skBJENAiAAAiAAAiDg\nmYCrV8dK7tiyOXvLlqys9KUTByRpmZkw45kxTR4YKI8vN24vP5tx6uOezVsnnTPpjmya1+ejGZN7\nR889piJOUu4VfdGhg1W6gxUWbv7MvWqVQkWWym395Wc267WY+3jngKSYrhbmbv/54fc3NyAegqxu\nm5bMbJCrFsOR9StmlZM5PqrbN8PaBNndOlcxcqyjmrbvm/guiVkujEvdU0Qimt1Lp/UdGtOy3nZr\nlUgJDzZEtLw/TGiooGRYs/sjOR+VS63pVrBqr6UtAjPdo/ZJR0uZl/6iVHc/+VBDunD5yUkvfsJq\nmbB6YttgB3aLWdfthUFf/byWza2cHvf2or2UjHS0dChYP673lqRFb3VUFYl3h7QKSIAACIAACIAA\nCJA5F1EIBXknjh87lpOTu+/A36xA3uZ5X5qe2PZBVzLrFdz8ueUbJhInadZGTZf3Zqb0CA/ss3jJ\nzMnbDBUzXnuwx+LTBWcWC2/5LlX0blVbJgvu+vmKgA79l2SfHfUst8COFRv0aULr6LdciggP325T\nlxR/uPsYkrhk9/nU+MeFue7xYrO8TZc+7LTc6Nl/GGzm9a9PWjCsg9qidxdmUyRt8FSQT5fUUN1W\nsJqvoS28SSKRWk1ie3FTjPx8p4gYl2TN/n4Y60mTpW/vx/Azr1x2cVmFqslzhX/NYI9XJTwxN+sI\npVZ7VkjnWAu33vPGmZ0HBqtldpdZrRKdEfWuB7kgAAIgAAIgAALiXl2vAe8NHEaHmb/sfaWErBmz\nFp44KAtuFWKffIlo9QhhpyunF72p1HIZxUxVKelPeXBYZIS3e/nU7Wf0dDBat/7Y99nmLn2Q+mOG\nrao4OUbt9giXE0zeuJ5dUUcfOz+9dVHFHZKnoXUen/Ax/XTPkpb849LZCbUnv9ws0OL5IaWkDeIV\nCVIlNVS7Fazy6rdFYJRb1FJ8Zg33dqrnqVWulD4nLeqjP8mBTNU+/X892Q426zQu+5BERifyb3W8\n1+nx/qtLaztm9NwMoMzrRsQFPPFMxZEdWVkbt+TSxliWL/v9QKG7KFJAAARAAARAAAS8ExD36kwW\nu09V674laf3UlFVfYaMqtRV2T0jVsDVxrbTedXvIbVKvQRAd7B6isxhdtaz+S6M/1ZbRq7IuZv28\nwXlfDPV9nT/7/Su2UP+YUft1Hh/1ChU/O/B7cmgzZb/X78Nxi7uHEe9BmO0cl7TBWVzkSFLDtbWC\nralabRExjk8yluZU0Mve5Op29b09xSbgLn0f/TZbbsDCH2Lt6wuzv3hg8XHXUdD27RnrR/i4Qo50\nts2S+XFUVFSnTi/P2kb/SKgqS+vdYx1emeB7CREQAAEQAAEQ8JGAuFenUtgfh5HpMNr9UjZ/8FFy\nu91/nrvbWksKyMO4UGUgW42NMgucJLPB/nqpuBFeH7CxVUfGvvduu3Cq/Nh7L/TTu8gbLRHRg8k+\nI0Q5ebP16Y9SvHgAfFFV845L4sJJEXnkJ72fdn166GKnhA0WS5mHBXm8HgkNRK46rWDVXltbeJME\nEa5zL+5Zu4jx02eufjPS24wadTx13IcltMsV2PTriW88yKkq2fvcomeim9PTdrxtTFbQS1P3Te3A\nvdTMCYt/KZq/+lnSVCZ8k8TvNfPhl48Hi8sjFQRAAARAAARAwCMBV6+OvMxIZPMvuE7AtIqll6YN\nHbnkIvMC5dl96wJCuiW+2Iqyma9oK6ldvGdF9sttGlK/5x6NwM2ja7dqigtYK9yVk3QjUy+JHDpF\nv9BAKVTas1vHvPjkmrpD20bSt3heYNO+M8TVfP2b31knoHL+G+N+O0UXoajCA9xWw1oT7YKQYDRe\n3XW5hDZZFvLyR5PI9+vf/LclM0toLuNs1rIvrAqq8GQDrZE8dz57iHWGlq7fyzebzeKN9KSBF/DS\nClaV+2e12uKGwlqUz/E3VZD3U825WYsadqbXJiZtODb0Udrf9RTI0rfBby1gcxduSIiUkeeuF3P3\nb5k4qDMVyC3Lo227dMnMq1A0GpX2F/uCLZ8mFlE+2feDsaOY8OHovm/RZigHrxrX8zHHrwqxYkgD\nARAAARAAARAQIeDYsq/yYvKIWF4i/rs/+d19WRntqQxynyZbWiR9Ektcuqy8clulY/vZuM+WF1mI\noJ48fSO5u0sqHZpJ4qeRvGYSiZ7k2DqYLjK6ozCXioriD8nCfG2Vq0D053Txwj+5hflEOPVUkYsS\nea9pP37CqVU0Gp9rtNmqCpIiorcXkT1yTZnf9OKrIJHAD1au8m4D1xjL7vmDhAUJjaxCopoEVyOv\npRW5ZVw9rl8O5dfQFgaFyCPRERN/OlwovUVwZlInvslkUR0fp7n1WVxSpd80mhMgtuWxMBj7y0/+\nRuT3CTd/dm2X8Jje55noVI5ai12IhVwQBwEQAAEQAAEfCciInPA+LRU3a4qvGi2KepERzlt5CMuR\nJ7DyIPtfbhBmIC5BwFJ2/HiuheKea/PClRZFy4fbqG/o/NWNqVpXXKyIiAi6Mcp5PoiAAAiAAAiA\nAAgQAtX16gDtRhIoPxZd92HRXfTIjFc7wf5wNW/EDa36hiqveRbQCAIgAAIgAAJ+SQBe3S3VbVaD\nwf72sbNdqqCgGzpVRxY+3siqb6hyZ1I4AgEQAAEQAIE7lQC8uju159FuEAABEAABEACB24uA6zuw\nt1fr0BoQAAEQAAEQAAEQuFMIwKu7U3oa7QQBEAABEAABELi9CcCru737F60DARAAARAAARC4UwjA\nq7tTehrtBAEQAAEQAAEQuL0JwKu7vfsXrQMBEAABEAABELhTCMCru1N6Gu0EARAAARAAARC4vQnA\nq7u9+xetAwEQAAEQAAEQuFMIwKu7U3oa7QQBEAABEAABELi9CcCru737F60DARAAARAAARC4UwjA\nq7tTehrtBAEQAAEQAAEQuL0JwKu7vfsXrQMBEAABEAABELhTCMCru1N6Gu0EARAAARAAARC4vQnA\nq7u9+xetAwEQAAEQAAEQuFMIwKu7U3oa7QQBEAABEAABELi9CcCru737F60DARAAARAAARC4UwjA\nq7tTehrtBAEQAAEQAAEQuL0JwKu7vfsXrQMBEAABEAABELhTCMCru1N6Gu0EARAAARAAARC4vQlU\nz6sz6y4VXNLdTkQMOo2mTG91axKb7pbMJFgNBrN7CTqLlNIZxLNYVZ7UejKDLcV/eirOC0hExCyv\nVtVubbMSfgSgRL0MGTExprhGYzBLKoAACIAACIAACICABAGhV2dYk3i3zEMYuTKH3Jp/T3ioabMX\nj+htElr9Ilt3Zm5CbHBoeLi6jqrThP3FJs5qy6WlIxqw6YEf/HRR4MiYdQVZqd9Fq0LeXnnCvYm6\nw7+QUhEJKwzueSTFk1pPZrgoEStuOvuHe3d1mLHNpSg5FLfcx6o9iGly/kgIqlU38hUCUDFozvEy\nD6NCzHJiUvHh30jxsHsSXo2oH6ySTVy5W5ybe2OQAgIgAAIgAAIgIErA5gj6lB7hY9L2luiMxsv7\n42srAp/7odBo0RblLRkeEbfsqM1mydm0IOm7jSWOIjUUMxZkZZ+tIV2+qam6ODW8thBIYNOvCy02\nW5UuLT6CpGddrDKeXEkiylFr9URl5cUlI2J5+XiahlOwXM7urpQTgcDBv9DyLsGTWk9m+FY8f+Nk\n3iQ+MnXPZafSniz3tWpxUMYzv5MaA0K6HTZWaffOI3FFo/F5lU410wceGq49RrMNfO7bIiJTWTC1\nQwg5TM0tcyuPBBAAARAAARAAAV8JCObqbFZZmy8TX38sLESlUgeFyAOoFiGhKrk6otkbo366j5JR\nlLxNl4Sx73YNI3fgGgy2sjVDHx134l+dqSlI+9/ooaklFpul/FzygHqkNdbynCtGm+74um6LigMa\nvH9XGKVq+uiIOkrztFfXny6nFOoXxq0vP78limBxD6Z/ptzXeTXzWFYm9oDak1pPZrjU4KG4NnfP\n3IAxP2zKzMzKytqemUbcSmL5iw/TXqkjeLDcx6o9iR374ydSRcCLLzRWydRN/o9gsVwYl5x+1lEv\nE/NgefmFvRkk37o7K09joxR339+yFjnUGQXzoi6KcAgCIAACIAACICBFQOCjyEJ6TRjk7BFwpeVN\n/zPpzQd0F09nrV/Yo+EI8gRWV3Biw5LJPT6Yn525LFohD6gVtXRPviZva2KHIPJMMGFeJuujmYoO\nTIwLJSny2BFrDhQy6sx7UidHx8QlxHVQdJpw2mDL+uw+4khtGzpEru6eXqDPTV9IFMZ170B0rjlR\nQopI12UznNu/ZUHSwMTv1m+YM5hUR8ou2Mp6GOasiZ0DG084bX++yjYpPHrclaRXwuSUPPieuMFj\nuXZS1OXDW+m4pYyiHQwLm75p9z8UFRQRFhwc0fix2go2UfBpWDP0iYPfrkn59C5BolPUk1pPZjgV\n9mjV6cr60y5NGtylY8fY2Nj2T7SqK5cpEnu2VhH/WxjELfdSdV76PLoTZ2wiDqoHsbJjWbRbVpV1\n9JLBRqkbsFguaSpIorC4p4bXCqdZVZWlPdMyPnX98kXLSuSRn7RvoRbajTgIgAAIgAAIgEC1CAi8\nOoly1stnjmX8ODLNpFNQ1n8O/vFl/OerZgzpmGL9bv+fnz554O2nmtZ/fPGLM3enTei1aGjnVSfK\nKe3BN5o80Xp8nq2qeHGLn7u1a7ShwGQt/OupPp8lrft14a8rvpKd09moJ99dTmZ6us+YcqVgcZTy\nUOuuA1/fWbxq9V97p9bu9Z+fi22+1KUryt0x6IuFs4a9khEat3vjgvaWnYNi791wzkg8s6JDB6t0\nByssTqu+giIieQ+i9GIBabqixyv3BFUc2/WbO4bTRWX2SSTOzxPKFKwf13tL0qK3OqqKqoTpgrjB\nk1qVqBnBLm6Zp+KVnd/tzXvheVtSF1VYFnR7mH4MLBJcLRcnQFdtOJQ6jihYPO6H0zqbB7HgFo88\nSldC3F9Sn1OVwuJ6Tw1v+lwC+wS8qmRxn1f6rlG9eiB3Spsgl4aLNANJIAACIAACIAACngj47tXJ\nW0W9NuitwbQimbzty8NH9asX2Gfx5fn92j4cO2DoW2SJ1c68RV3atX19WCJTmfXIiq/I3dpWfCh9\nyxEqhK7o6/QT8xLHAAAAQABJREFUxvJSEsnIOm6V3T1oZr/aVRSZAGutDAitXy9MrQ5SBJHHiPfT\nHpfVompuvZp1yRAgXZes9pO93k+OUSsn/zWzb9cnuyas3Z1MalmdfYbMsfVYfLrgzOK2rq4SYyP5\nsFz4OX4uMT5z4qtqmSK08UP2DMf3zj0n9Y4jp5i1cOs9b5zZeWCwWmZ3bdQqt9k8H9QKzXCqgRz4\nUNxW+ufUWWRlW8eWoa6lJY9dq1Y1fLQTKSR/qmOkEJqTmLztq/FEhvhkU1fuvph7bFY5/Rarlq5L\nUDwo0CPPWveMOvIHLc4EMmn32OtzCpznU+2Z+AYBEAABEAABEPCJgO9eHa3OYiqza6XvwDJKqWKO\nazdoRgWGhrDuTFAD8qYFZas4s+tPWe9O9CK8ysom3dK2Z2XN6NAkuBG9WG3y6w8q7xq+q/YjbULI\n9Aw9jaQ1M3Np4Y+sMhla5C6JU6meGpxM1W6soKdvpOoiIjJ5SITilabhJEpC2IMxxAbGySDPWMMi\nI/iJOTbf8bnn+/5fVDz2x+Gl7SOI9RZDwVFHnj3W9+XHPZQ3rxsRF/DEMxVHdmRlbdySW05KWJYv\n+/1Aof7Ur+QhJhsCR63SSKl1NoOqbnFT3s5BW3WvTXixsZtHaW+Ex2+Xqok79+R7KdqSkvKM9yPt\nniop7CKmfviNs9uWERd8Ud9nGj74Gqv9kUbkpQdBcYVHnsGFO+KadyarAFNWJ7NLFSs3D/9p23mP\nViIDBEAABEAABEBAikD1vDpP2iKataIqWSeKiFhKrdzjTrk+MrZjxy5dupB1X+1jY9uRmaTge2de\nyEkeEVtVNLtrq7oLDhQ56TRdmBZT//8m62fpLWdXj6If8LkFT3W5CNJve0iFgswpzyS12XtxW5dm\nwZTx5Hff72r29FtShYT5FhNls2R+HBUV1anTy7O20avKyLRT7x7ryiyOHdgCjphbeFXrZkZmZXWK\nk0rZdxfe6iQy0Sg01z3uXjVrtzosTCmQFhVrHvXmKpPFVqVZEkc708RFi3uyCVvIXjyo9TPiPA+l\nfUteLuk2JaF3t4Ebc9LYUgcui3S3wApEQQAEQAAEQAAEvBHw5PpUb87HVF5G5urs9SjIsn1KoQwM\nCTAv7/E7eYGUDSV7e7yw7NLhlUvP3DVwZlb+rhVkkmbY6v3sY7dQZSCRKsj44cO/ytJ/eY+ec2Ln\nBQXTRawasbrchHQXyDPBRxvXZYqYRTcN1uX82qTzGNnAx6/8/fuatGVjurRLsambtXuaLqIIEa4V\ne+Wpe9iqKYulzCpcPKdo/upnSVOZ8E0Su7MJkfzwy8cj7n0x3x7OpfZo5VmtqBl1fS5OG2Y88+uY\nNLJLSPtm9Juk4sHVclpKtGrizOVlLSIvrPCvvHgSYysq3pPy9qoSEl/8ZxK7ME5YvOGjojwjr1wo\nJkVCQ+jNZYJbPTsnht7ZhDK5Lv6jExFAAARAAARAAAR8JCC+BcoFegsPsmxO65x9avnggPD+OcYq\nm81E9nVT9uH2ZiPpMlX73SUk3Wa7+jcpOzH7svbQz8QGkp68ftvuzFSSOHf/1fJjPyufZ9VaUmLr\nKr/721ZxgjwtVYxcnHMs6+vR/UiRxKV/nTq0gd6nI6Rbaua2vBK9ZF02mz4lvr6i09d5RmaPtBF3\nkUVm+fT2afr1I+4ienaXOO2lVn42g9jjgoiYR+TZ/erSC+371Q1exe8/pz20iC0St/BvZzDkyMIW\nVA5eZXLL86TWsxkuKrxZVbJrHg1txUmXMsJDd8s9Vl2lWxJLO+gE2r7yKo9itHbTqcxlrGTaEfsm\nec7FPTX87LpRpGDgoMX03odl9AAgh6nHS4U2Iw4CIAACIAACIFAtApS7dH4m7SWwIaBD/6x84iiR\nYNr901guMfaj+d8MZ+Pxc9fty1zKekjyjuMz92YldQgmWbQzt/t8zurJrBj5nJt1hmgpZ7b2Dejx\nadLwGCK/r4got+ye3ZsIEH9xR04We4NX9Pp206ppJFHR8PNls0aySrzWdZp1qlhJsk3GviLWjRP1\n6uj9lllJ/pM4MdvZIuXn5sTVJfaTRikG/sC13nhuTo8YXphEiLV2MgweuzvI7VrMpgk/RdR6NUNY\nlsRFirMSlsykTsRazniXUuRQ3PISzwQs27/pTBpItmXOr/RoYf6fM4gMqXfOml0lTm6ssDhjjajl\nVbrM+Z/RGqK7Ec4EZuqeC+62IwUEQAAEQAAEQMB3AjIiSm6uNy5YDWU6k0WlDgsSPCa1mg16E6UO\nCbLXS6RMqhBWxGww2IKC6NcwrGazXClc32UXF/k2pPZssrLXzl97NtOVWYI5VawceQIrD2L+8INI\nOQ9JOk2xyaoKr68WWO1BtDrJ16n2Oov7bKlVU1yiCo8QdplLWateo6tShoXQHrxbECkubrnZUKzV\nE98wtL7ax252qwsJIAACIAACIAACHIEb7tX9S6RtZUs7NRn46jrTyOh/qUZUAwIgAAIgAAIgAAK3\nEgHXtWW3km2+22LOy1759hatZeKi9KP5/+qfHvPdRkiCAAiAAAiAAAiAwI0kQK9S9/tgMRRXNM7a\nvj3QVll6/h9TmyZeHh36fWPRABAAARAAARAAARAQI3C7PIEVaxvSQAAEQAAEQAAEQODOIXB7PIG9\nc/oLLQUBEAABEAABEAABcQLw6sS5IBUEQAAEQAAEQAAE/IsAvDr/6i9YCwIgAAIgAAIgAALiBODV\niXNBKgiAAAiAAAiAAAj4FwF4df7VX7AWBEAABEAABEAABMQJwKsT54JUEAABEAABEAABEPAvAvDq\n/Ku/YC0IgAAIgAAIgAAIiBOAVyfOBakgAAIgAAIgAAIg4F8E4NX5V3/BWhAAARAAARAAARAQJwCv\nTpwLUkEABEAABEAABEDAvwjAq/Ov/oK1IAACIAACIAACICBOAF6dOBekggAIgAAIgAAIgIB/EYBX\n51/9BWtBAARAAARAAARAQJwAvDpxLkgFARAAARAAARAAAf8iAK/Ov/oL1oIACIAACIAACICAOAGF\nMHn27NnCQ8RBAARAAARAAARAAARuNQIpKSnZ2dnuVjl5dSSbyLkLIeVGEOjTpw9o3wiw0AkCIOBC\nAFcbFyA4vOkEMCavpwsIPU/FXb06Iifq/Xkqj/RrJsDOjIL2NQNEQRAAAR8J4GrjIyiI/WsEMCav\nB7WXJ6tYV3c9YFEWBEAABEAABEAABG4VAvDqbpWegB0gAAIgAAIgAAIgcD0E4NVdDz2UBQEQAAEQ\nAAEQAIFbhQC8ululJ2AHCIAACIAACIAACFwPAXh110MPZUEABEAABEAABEDgViEAr+5W6YkbbYdZ\nrykmQaMz37CarHqi3cqot+o0xRqNjj6wGuyJvlfsY3EfxXyvVyh5Q5ULK6pe3Go26AjZMgML2mxw\n7U9fOtoXmeqZ5YM0bzk7RqwGN9N9UOIiQnSyHFzSb8Sh2VCmKdNfg+Z/hfZNG6410gU3YmxcQ0/V\nSJHqjpN/ZXi4tuxfqfQGjkmMOtceFRzDqxPA8MOo/tSvMg9h6YlytkHmwgPT4sNVdcIbdO/eIDxU\nJZN99/thzhewXFqa2JFVMG3reR5AQdb3vNYFfx3kZfhENqIcstzAl6HM6165d9yOS9aSoxNjQkPD\nG4SHhyrV3eOC1CvOVlCUOXtqH7ZUQK2ohOnrNUxBU/7WxJgOJJ0kbjhH3zI9FHdUw8bExQTNETFV\nkOuxsTsKPdtgzpozmFer6D1z+YxB/CEbkceOWLBmezELV1AdyU2YkenkfznnCvU4U3U03Ko5vTSp\nl0IVHErIqoMVMlnimMQ6bWZdtHEy3jrarsabjLNJrgZTTs2X95w4/b2OrNneYdI8ieVjHJarFLKE\nMWOUd791Um83nTXPcmlBQqwQBYn3GJm0Zk+e3Xznb1vp940ifrSPc3ueYU3i3S5K+MPElK2+DWa7\nMuZbl7c1sUOQKlg9YcV+M+EwzdHvPZhuNeVvjiOtYoK83oAtBSa2vDfaRM/U3rxhPaZvYk8l/tSj\nz4jTZ30BIn4uOLWgmgfOI4E3kkRcB6doFwiKX9fYEOgR2sCZIT1anAizGhI+m5N9uoRcjoTwXbME\n/ctmyWMGzF2RfrpYwqd3GifejWc6xNvwkG6dsE9vizHpAzGuzRh1ws53j9sE4dtvv3322WcFCYje\nQAI1QvvUT4MVvX/IKdKamGCz6TMnNCK9rBy8SsvYXrJ3GTlU9Po2V1vJJJhyNk4nKYEfrCqxN+7U\nus/ZgZGWW2ZPs1nOZ8hU7Xdrq9iUfXN6E5nk/ZdtFqYmoz5/70Jli+/ZWmiZsqNRwe33lZYsiQtX\nNBqfZ6TTinIyuivliRvO0Ac221mm6oDw/vvsakniqeWDiXyujqmoSuOlOKOD+fAq5t1U6cZ6VV6y\ndyHhEPfdTtYY7nDh3xabRa8tzJz/Ac128C88FtaYqVsKHMYLYt5NFQjatMd+I5oDQrqtz7lgYTK0\n5/eMVisJzMPlNDpfOtoXGe8GuzRfGqbNpj35e5Q8gNi5/ghnuf7ykandQ0lKjp4bXcKW7ptP767J\njrSi8/uJJDnkh5BQsvwkzUQ5aq1JmGrTp/QIH5O2t0RnNF7eH19bEfjcD4VGi7Yob8nwiLhlR4ms\n79gZxbRCcpblsycQk5SzfDCpOp7RxlVedoLUFdDg/Rwj1yhfaOf85KbHZj/1Sjg9EkC8DlfONpvt\nGq42HKU9wlN+mdMpb7N56AK62poaG947SwKOzcYSZoaTvvDUFnLKkI6bm32BWOgti+nfpA0nmfO6\n6HDmUnIdo8fhMnKmewoi48QLQ1+Gh2TrhKbcHmPSCzG+sRh1BIWXM5riSXmXE4ohXiMEvPSK7/pz\nlkxKL3TcGrWHfiaXHvpOz7pNZUdd7jSsZvZylrjmJHtoPLOSlGILOvytihPxzcbzutkiS4473D7i\nQe7LPqy321r01xRln1/KK06MqKMMfO5b3mUsIenT/7ZL2fbNH0QqCuyzmPV7LP/8Tg53229gNqni\nnB6vYt5NlW6sV+XlJ2lW8SuOsZZwh/zdvUpHvFLie7GeFpFhjUkVuMs8Cj7XC1VOmPEYiJOdVSjw\nLEhe2QHakyZenS8d7YuMlMEuzZeGyfo6Id22FzlGKd0o8+n4ulG05W7hVMooQphnwlZBfqXwI81e\nwpI5OpJIumKp0qV+Pr+IFWK7cvAvbFky2MYsozvO+wix6+e/9evjI+JWcCcLm+piJJ3oXJdPPUJc\nH+fGclWSU+95xxnkIuMKxOtw5RR6vQfwMi4RcUpb9gk6wkMXMIpqamyIm2G/8kjAcSNsZM5fdji5\nlnXLcjptKwvmxISQ8TYm4x8XUPZDkXEibvyWfeW+nYyuFjIXarFzgTbBRZhO8sMx6YkYRh3doYLg\nxX/AE1hynvpxaNN3zPORMq4B5cdGPt2PxH/YPK2tmk7My/hxUYWl2/i326jsMoxom5cHkZ+ec4f/\nxj68sxjNiQv+2vR156qSxU/HzeGe6Fks1DP3hNrLKVT0FU2l4P8YiWFBnzHqJ9sGMQrJE409i6cP\njW8frKrXqpaicvPwiEFzjmssJDPsmXdO9ryXk6KodgMnJ8eoK1P6j/vtLGUrnfloXGL6P0+G2auR\nKs7p8Srm3VTpxnpVbm+u86NDZSCXbio6nlFOBYYq7A1ijTFZxFd/eTeVh5abnkz6MWrchOhInj+T\nWeeRResnRtaS+dLRvsgQpd4N5kwyc82XhJmXwVg+/uP2EXYirIrAe2fnLG8Z7JzIaXf6Mml0Tsf8\nQUl2lyXv7P5rgc2U/cWavXwyJQvpNWFQhOPYEZM3/c+kNx8gxz5i50uWkwWi5kr+kI+ohL0hFx74\neurZVTkPD3Lq1VfTU0NiwRWIL8NVTI9kmisl2z8T31l7f0w7+ylPUZ66gFFdU2PD1QzK5crj1A5X\nOI5MZ8KOdBLzmOV02ioaDVy6mkh/M4i7bDrpYA7cx4mr8XaGRb5dmV2q8Nw6h6C/j0lPxDDq+JU2\njs72EINX5wGM/yUb1oztTO79HabvHPhoOGu+hVnJFVrPcUZwzQoKa6KUW8tzrhjY27MpXxbe5cNl\nU8NrE4fsnikbuRVgV020XyYIO7Zszt5ChzVzxg7J0FaY7M5Ned6iZSU9Hm9Cyep3Xz+blLAueP+B\n8MBpv+0zKOo2axzm0CGrP2DpKnI4q/fb8QOajumycPzzTYW5EsVZUclaKMqjqZRUY31Q7jCYiS1J\n35K9Ozt9/bLELm2n6MyzV49vEyTtr/BKPJvKiZRdvUBirVo2dr/Tt4qNjZRTvnS0LzK8ST5HvMO0\nFp4pIKpaNqB/EtiDtbjgXEFBgZZS6QvOFRtchhgnVabTmXWXjmxfOeBZ+hnl3HdiXQbxkV+Snv2q\n95NRryXVrZU99ocjLkv07JV5+ZbEzpW1FB9KJ0tURezMP3Xy3OnTx0nIzc09fHRfhUPmemmTpV/O\nwSOQ6g9XZ8USRyylrKz0pRMHJGnt5ztTSKoLanJseO8sj3DsjVMpVHRUf2Hpl++Q76GvPcIPJy9Z\n9tLctyqiOXkQYdXtt182nfM9jxN3htUaHpKtE9pxe4xJd2J8GzHqeBSeIvDqPJHxs/S8tC+7zboc\n2PTrn99/2sV0tdJpFoHONZWxdyB+SokyWyjZ3aOO/0nm8Co/+88nZCItyK0URRXknTh+7Nix3GNH\n9+8navjimqN/rI9Z2JaZcot8Kl5/fk9Sh2Ai8OHrj4cOmn/R+cewvMlzOctHkSmWn1Y/t+3bnmra\nIEeQLM6KSop5MpUuLtVYSeUOc5lY1eqdu/bu+v3H5FnbyHshlNJmdG6xi7jroTdTiayt7NimdPId\n2+Yu15LOx750tC8yzlqljrzAtBnO7sog5R9oLnDrLWVHs1b/t9k9DRs2aPL2kny9OKphTzVShUY+\nHN1rXb+FuUXl/A8VzhrjmZnj1XNeb01+RSSkfEHmmBdtzpUy1DVfArtdvOCvNOKpP9OaftrrEj6c\nkth3wIDBJMTHxz/Vfbu1ykWgBml7AVLd4epipPdDllJOTu6+A387SfrSBTU3Nrx3lhc4rM19Hnou\nOkolq9N48C/3T12xd9KLLfi2eMniZZwiipDa/IVPkOFlnHhi6OPwkGydwArq9hiTnohRGHXCzvYQ\nF7lze5BE8q1LwHT+jxbdk4h9G7KHNxZ0qcVWRhJ15NrqElQhj9VW7CDzD06/vSmqwTMLdvy0+vG3\nZr5+b7s/16ubMT9wBWV7DXivV8tadMLAN6mNCRVccevBlK/eGpbN+2dBTZ4Yu7XktbS5D3f/wLJg\nSLO7m5YlvUCvUraHNq8Piq89a9l/33ooQmCuPVeyOCvoXcyDqfY6yLfXxnpXLtBCR/t/P3pUz9bU\nsFHTSo5O6fb0oI73Xd5S8FkM/dqKL0HCVFnII117UKvmbzl+oe9D9KsD7sGnjq7uYHCvxkuKKExZ\nyINdu1CrUnLyNNSzDbnSirod+36wpE5hi+7Tfpn/cbsI1zHGiqWeutxmy4iHB6fYQlQNIuhfCMJw\ncceKRVdWh8yb3kRGXd0xhWTNGZYy6qUvhINfKC8al8BOyhjPRNdpTXy11COXez3UwF1J6o8Z3OlA\n8irPJIY/8J1dyKceISegiT5DReYBbdxbtHZ9lHcg1RquvE5fIg5KCc8VvLaVv5RUowtqYmw4zHC6\n8nAt8A6HCM3ZuKjnfSEWRa164WHMaw+OpnvJcggJY5aySiu58Akm46XGicN4O0MfhwdbrWTrhNbd\nHmPSnRjbRow6YV97imOuzhMZ/0m3XPjm/7oTc8nbD8835u+RhoJLuroN2pD03NOXXOZDrMV5s8rN\n8i6x97gtbAp77E0ykUZKvd355e8yKRefy2Sx32xkdT84ubRdcJWuzEQZzy2bf6Xvs/SDVM3htRmn\n2R1VlG27jWTf3Kz6cU8hfzcgQkwIkQfYKLs2e6KPxX0REzfVXhH7LdpYX5Q7qyGTf9yiK3n4Q28m\n0o94DhSUuso4HRuKrzh2SZA0tU59+gnm0l0n2M0vnDQxB750tC8y7prtKU4G2xOdvkVhhtSjXdtl\nB85yz/TtJdgnUI6G29P5b5NV3XbgbLIE0zL9vy/P2OY0gG1XVveemJSW+cYzT5Pw0sd/JA+PsFwY\nl7qniC/uS8RRu3AwC0vWarL8yLapA8L+G/PJnmK3EUymvPnTgZRyXq3gI+2773uUFN1yqEBYLfEQ\ntc7HtHoPQK5luLop95LgaGOt+5ak9eN+uVWzC65/bDjMEOssT3D4dtW/u2FEZGRkhKtLRwS8ZPHF\n2Yj+7AFy2VR06XKPy/oK38eJnaGPw4OtV7J1QjsdoEiq345JRyvsxOg2YtQJe9pzHF6dZzb+kWPN\nntnv81IjeTFq0muteZOtZ39PTDkV2aEnvepoypx9GqdJuV2pXxLJce88x16jzTotJXhK26bPhPWf\n0s+bbJ2ULrcylcKxsisoJKg4c3zEgiO6k5uXRc5px8y6KamrLw9bxzsf6lYPkpUotiqD24pkF3eR\nM9zH4r6IiZpKqpFsrC/KKaXglzpnO/dVfoWZfXFOFBpDcoozv2ycfIQXEebyVPlcEmn+/ADyLnPl\n9LhVR0uE6SResCfjyBWLLx3tiwyvXGgSSXQxmG++JMxWXQaRAWCe9mrqUSdHRSGcueVrdYqQJQH1\nB66mlwRs+6DDl5vP85n64+kjg/435PWOT7ZnwlPt/zuEniMbPW4NuwkiL0nWCAjirlFhG0Wxk2fp\njds8O+q7nf0rli3fcda1vMuxc1U+0laG1SdqtGX0g3s+aI5uWUeFOOsjmeJAfBquvOrqR5woBXE/\nGn3pgpodG05m2K88gtaIw3EIuNH0JUtYKZm4ndG+Lym1YNyL/Jo8uxKJcSLUE8Qw9HF42PVLtc4u\n5/rt3GofK70VxqQ7MdI0jDrX/vVwDK/OAxg/SS7enRz10Z9kc4fM/70UZDWzQZP/95TH+lIRtSlF\no+HZqVVlae3bJh3RsBNj5iOpn5MigWPXjrQ/Iszbu2Hd7pO8K0ZRQS8l/U3enJDpHHdFI/OoKL+g\niK2C/OmI49t/btA5aUZsi8Nrk175siPrICrq3G1Of+PteZnsi4ua48foScH3X2rCzyEyYK0lBWRh\nn01LJvqcgo/FvYt5MZVUJtlY78rNZXTLtFfY9lHcoa6MzEWR7dqPZy16ePB8IjCgfTPySYLDGNI7\nJvJnIS4eyVpGuM19hZ5GdeQyWIVUmdL2jzoPfpn1Azl4u229BVtOsfNeZl1B+pw+97yyTqGS+9TR\nvg0Gh0liBrs0XxImVee+cdn0bjtvt63LW241Xck5eoAkuvQ+29oyHf1qSFkF08rwxxfsoHmOff6e\nNScYv9BWtnrY0Gcmvyh8yzW4TSzZdaJy8xBXr5cZZu5LEBxt9I6dNahWky4vqfeXc9OxbBr75PS3\nHefYQ/azzFpl/TX9H/YNJN9oB9/zBPndterdJyb+nsPOR2pO/RH+zMjJ4zrzroN3IN6Hq9C86sbZ\nNuZfcHLHaSW+dUFNjQ3vneUdDjHWYyu8ZpE2krKHjp23kr+No7m4P31ZXOh95Mdz0ppjfe8XXwVB\neR4nIgx9Gx6SraO7wx5ujzHpsb8w6uwdLf0t2ADF2752QjHEa4SAl/1mfNVfeY7dVFO0m1Pte8uZ\nLuwnT5FomW70g1riAs5NP8Zt3Fp5MTk+hi1Odipmtw7mar+8Nfr5H+hd5YjMiFhWxuWT3hivKJfM\npqzn91EjW23VVgzoRz8xJHvPks+4SasKnTbuNO3+aSyvRxbdbQmzIyhXqXRxRtCTmHdTrxZKN5ao\n96TcZsqcPYi3XN5rxi/TB/KHfCR+zOztecxmfF6MIXvVlhZ6oyrYpZkjQ7bzPZud1J17AsZWFz9t\n3f+zdyZwTRzfA9+QkGCAIFRUBC88qrW21mqtCmgPbS1qy6GibT3A619tQaGH1h5eaPsDtYJHRfur\nYi1YFRVtFS14gPdRQfFAQeVSUSKBRBIS8p/dzW42yW4Igv2R8Paj7OzMm7cz330zeTuzO/uAsQKv\nuQtNaTEnY77AVdXM6tsFL142qS7LoU6qfnR1y2IDVnZ+k+N3nyPXLKSkCEujrBFVMHTtMbJy5BqH\nKGZx2tWDxCgybsNH6GXDlOkxeuX7CqpIhYXp6+iLgk6XUUisi22mjvQqj/oCkSF8dVly+WLiWJn+\nn7G05qAVf6NCVt/FV9smI1Gj0J1LqzVHmzqL+v4Fo8sasx9fVA/fUGnrAHKL21xJFbq/9ettDCmF\nrsXrSG3Kui9B3i262Jy9CqXOnG0YFoNmjgJ4z8NoziiG1VpMrxR1WpaLyJqku6bOAYvXJGUX6kyL\nkjTaG9qJYeENGeoymjMPSy69/vws1bE+mzRHDKxOf7HJkJkWzUMSdGuJi4tLSkrKysqiYyDw7Aj8\ny7TRMJEcf8xC4IIeLrGsVhr0oU4x9WPFmUVVVlrh4uFO6VTJFHyJmI8+hiiXV2MOEldnw2E6Tj1k\ngoXZLRSr42TMZEZlG18580QNDKPxPJlczecLXJ5zF1PQmTotudCWyDB11jfMgKnPqlGiJRqq1Wi1\nOEexhJrL0yc33ZAieUz7tSPSj4a+/HRltIS2SiatqGfzpApjkbn+y70NVTaWvW3ZBrOCT2knlpgH\n8zSNErbkpLZkk7ZndWZatOHEe6PYCyhpkgTEEld6TsfCAvJZvQbjzEJ3D+ZsmFBCnEYodkb/jGXr\nPrYwu4VidZ+PlmBUtvGV02dpeEDi6i4hBl65VFlyoS2R4dJvSTwDpl6cL3J2dX8Kk9Br+B+FRK1f\nanEsrE/ii/njXu1c512OaSEtoS1E19U0p0UxTdpcTWtgW7bBrN9T2okl5sE8TaOELTmpLdmk7Vod\niznAc3UsUCAKCAABIEAR4L+x4Or5g4lXf5z89g8HGI+fUumwBwI4AbATsIMmQQDG6prEZYBCAAEg\n0HQJ8Jz7Dv8I/Wu6JYSSNQUCYCdN4So0+zLAWF2zNwEAAASAABAAAkAACNgEAfDqbOIyQiWAABAA\nAkAACACBZk8AvLpmbwIAAAg0gABapa8MbVIZuYqeiSYNemlXKpXhi7FpFDKVwUciTIT/nQj01nap\nVMG6WF7jFKAuJo1yliYItlHq1dyUNMJ1/Ffsjbwuz7ztNLfL/yzqC17ds6AKOoGAtRNQZcSM4xlu\nYV/HZ93Uf9xCVXIxNtRN5OTWOjCwtZuLiMdb+2c207fTlF9eMsTFxa21m5uLUBIYJJZsz0cfUVBl\nxE+nFQvGrfh5tjt9aBSY88c/hsKrfl+uK5Wdg8/aw7rvPShLTkQM8UN5+ZLAI7fvJEa8YaSHPBTO\n+B1/10Fdtufr3m6ODn5zN9wmVwxmuVaK/fPfRLmCQoPDolMPxEyjFQavTEd1VBYeDhIJyEj+c1OO\nFOl8RLNMDJAGrzhIvnhRlLGe1INqtP9m/sawofS5yEDwnMW7zxQwy8gBFis4uNI3KAh9xp7f5rOr\nnFVjaoLw/5IAx3VUZcQ2hr2pi2OHSEgT8gvZUFRRtDHYVXc4NDTtNv7FQtqMBW8sWDH7DTI19uhd\nGgptnChp44mSeredZQdzwSZpmhYFGD3PU9Njrm1nZl07phiEG4UA0G4UjKDk2RHI3TwddUQJF+5r\n1fKSG0fIJa/XEKtGl5/bipLQGrN5FTVEAZS5B1agGPu5O8vJAtVKtwS5CTwXkktbP8jF1+mN2H+L\nTCw/twkJB609qdXia7fOTzlXLquuvn8BLWFt//bPJdXqigcFWz5zJ9f+ZQij3OrTceNQXt+1Z0lV\nur/3j6KliTMfkIXRno/HZYiSK/GtWl54bpPQez297nHV9T+RAF0eA1X4gTwptJUwZJucSsj9HUcR\nuvUyFaHVVuILbtuhBaWra8nIuplotSRSAz2oSncPocKfLtfpOb8hhC78g7sXYgLxjxnoi2oWLCrJ\n+bi30SK9uXKdNrJs0NvoL1wTCZm9jo1jbzVF6BNByHj2FZLtQp4Siq+fk3DhMc2g6tJ6+w4/lhDG\nciP1G5SKtpS8SlpAZ5yMddHr23aQKrBJmmddAeOe5ynowVgdacbwFwgAAWMCAhG+vJyohRjjiz26\nDfnuLP7trzmbT8mrrkT5TkYOTfaW2V0l5Hv0wp7vzEEuC/pY7aI9N3BFyvvnD1bxerq6EKtQu/d8\ne+PhJWuv64b6hM74RzJcWkkwrYbXc3nEB6+i1apFErEz+h6Jt7OLiC9x7zQhcvPzGP69Xb0wrpf/\n2sdfIQcx68voCzL9CupXD6yz/27ZYOJjxEiohTPuCRElF+KbSOz1asjJxEH0O/+O3Xy2DHW5IEVj\nh+ybiDg1nSbg4SiGvtqRjkFf00Ol5X8wsKOI+CiwJUyQH0wgNdCDquTeforfuG6uuo8LO0s80VnI\nwru3f2X2fzaiw7V7/tEtqmIWLJJ0dn/K1ZL1VYPQv0DA7HVsHHsTeE7cHY2q8kPqOaJC4mFfrkWB\nT7b+TY2pa84kLfx43TgPwvQ6vPASWe+gAZ/SjQs3To/h7Z11xokE6tt2UBawSRKsJX+Nep6noAde\nnSWcQQYINGcCxg/D3Un77y9P1AELJ/YkHRqKTc+R05C/teazPaXI3RI9181BUHP4M/dp8Vel6KMm\nmOvAmdfHdKFkib1Ki/Gcxy6axroAL7/DiKUfvqCXR8Lk5tLny6VD0deN16Tm6mK093aG704c/wot\nrPNHBbQXp9gYMl/yWm/9Qtw8vrAVn/W8tBLTgIjWh9L4zAOs4JAFTPQaDZGq1Vgrie6LY3oZXUgp\n1X10WHdcJ1jiG6YmaiCiiRGo8zqiNsQ0saeyN/eBAWiIPev7bTeJZwQcnNzRhxzVa1acLcObJFZ1\nbU18lxk+7Uk06mpVxMZjB398q7b819eD4vFWjDZknAM7uuidOvTRyfq3HbBJEvHT/a0nPfDqng4z\n5AICzYWASECMtsmLE5fPRHX+5P0+9sSX7l2e0/tIOhZi1/ZCvqYq9yF6qIvXKnBfHIrXbPz0BTf7\n2D3nFYKWnbzMfhbDYqKvTvgKyW7+PPE28Vslv5q+qOWPwzo5GSk4ceRw1hF82x2/YMahiidKyi+k\n5Mrwj3TVYyu8cf32zZtX0ZaXl5d9+fwTfXY1MfpRBxMzp9INYuol0OfVVLJ7OZl/TBmET/6umTlU\nh/tZgtWfHkLPmoAF17ER7E3QMTg6oPZB3J7zJahCNw6vz9TUapVZvxzBB9RLzySnTviij4R22ZSF\nPLfhUVvRvC26H+u47IBuSO8RSzupb9t51jhBP00AvDoaBQSAABBgIRDy4tvoAXyek9f0bT1itp9b\n+p43KSQRMkcSiDhlJenoCIifCY8BofK7Zxb7OaK0qA/6uUzbUGo4RMVyMsui+O0G7Qtvoyn94bfj\nxSjHma1RH6/xN3UYiwquXb1y5UrelcsXLiAxslTUGUSerzlmRizMKtW96EDFm9tHLYv4eMqU6WgL\nDQ0dEIh+II2k62RiJG/mcNYAT5GLx0u+Y1Mnbcp7UDX1FTda+NmBpU8BgX+BQJ3XsVHsrdewCagu\n8zefUmnvJc4t3ncuAz0Pmhi1v0yrOrY4LjpssJBZVZUa47WNvPo3GnSv+XrEl3vyMbFJM8eepu0w\nTwLhZ0oAvLpniheUAwGrJxB/4Jddf9wueVBeLc+MHPMqGjFSEzMCMvQDYLSJnF9tgf8GqKlBMXH7\n/guOlmfvWoFHbpzR6Xvq7t8oY70PxUOn4zoX/rBfSswizfLpbKpj7JTZU2fNmjVt1oJNuxeKZE+o\nUhGSfJ/Pr52Md/dp5yB6nng31jS/SUzyfw8dp7cnN8Kd9D+IFjJRKytxrSbkMK2xc5l843428dqE\n1lnU2h33jJnbMwPLPAmEnzkB89ex4faGKiDq9lr8EGf171u3JG6KdfnwjVd9x01vVXP3i+27k9dc\n+/j9l/R3C/rath648cRmdLjqgy6JR25KOhGj9frkp2k7+twQesYEwKt7xoBBPRCwcgKt2rZz9/Dw\ncHelP2zfsnVPVKe8m/eMht40ZQU/Van4w4d2dORJs/ceullFVF3YO2BOxZU9KFz73zMlpg7NU/Fx\n7PlewhBJzeEZo999OTXi+5f1s0h6dUo15SrxWs69ntjXsVZWScWg6afTSQMmbQhfk/rPEX+TuWS9\nEmZIrxDFGs5KWcIEZWr7PP7w35FLRUy1GFZTYXiMjpQaSe+pcaiO6hXjR648TqN+1mBNCgIRz4SA\nJdex4faGF53X9s2Z49FzqNMmLfgkbhh69an/x9+h6NmBE09/MaGrkcNG1dX11Q9zf49ERxPfGrk2\nHb0aZLA9RdsxyA8Hz5IAeHXPki7oBgI2QMCoR8cwD78xi1s6ZC2LPy81GP46lbwcVfe7mW9L0Iur\n2KORs1J1r21imKRbLzSypa1VYLR7gkSF9AM9JCaTMzHpGQnzWvp/uxClZ2apNk4YwPqqgUigjxY7\ni8vSF7pvzKFUKo59FSlcejj2k5E9PVB5678ZFtYSJugcQtdW6G9FpcG7t9LLR1IxZ0N9SArNhbWa\nugufCzs+12/54btkES0CS4rC3yZMoN7X0dA+LLQ3EkB3vzEoYOccMH4gPqTt+vIIcpWijSPw2zN6\nU8kqMMZjFT1DFu37ygOlat8UGt6LNbjt0KeEwDMgAF7dM4AKKoGATRAgpwsLi00GkgSen2Ulo7v/\nwb0X50jJ0S9VTvI3Pp//bb9g75wh+MIcAqe2qrQJE9elky9wSq9ewYfxPvVvT4wNqCrx6IqHZCIF\nq7wIfyzPZGaXXRh3LvH3++w7rX63h/F7EtXERGdh0QMVsaHvW1zN/K31W4tXDvWmToZhrexGdWyr\n9/v0CSwhEsWeE7eZaZWaWs2OtDvker8WMEF5HTv2Rw7xzv/rv+TPXNK/ld74y23gnOjv3qLHCytl\n+MOClU+IR9Xd+m08sQEdLhjWcfc1/EKYB4sEYLMKAuavY2PZG4mC79EPDfoKxn/0Irl6DnqFYqkf\n3+NL3674AkD0VnBuf+rp6/SdGIaJ/RefRW9O8GTGY3X1aju0fgj8SwSYa+LBSpVMGs86DLSfNWHQ\n3wACyvT/jKX7oKAVfytNdCmLL8RMccVlAgLRH7SO7pq0K3qxJ/givVMm4cu8ocUU0N+gpTtL1EiL\nMj1uGjokN7SOMblMcWH6OioOs/ObnFFYTZyQXZguS+7mkKCt1+hDPFBTmhA+lFbFDKC1ebP1i6nK\nU4KfI1c5NsiuO8DXa6VWIWZBUX0XX1SZVI7UUqXV1sGEUK6+f2FxoMHoYMz+K7rTosKHDqHLHLr2\nGMnz/AYdscVpt7ScYHU6bvw+HVYh1rFoyjvO69jI9kYyyN0QEnGoiOZRdeU3YdRh+hBvNZTh0U1S\nl3r/qO+wn+nlu4lIy9uOTgfYpB51HSFmz/OU9DDmKcDPYNJ41mGg/awJg/5/gYC8ovwBvpXr/Tnd\nWZUVcsKJk8uQBPp0xDMpjFqpxE9S/622CI2Z1eHVDfuV/rZEvU7AzUSvRsnJTS/DEaoDbP6uSPDq\nONA1qeg6rqPlZbXE3rRqJdEcaa1queExnWAaUMsNG1n92w7YpClVjhjCqzPseepLz3Cunr5JhAAQ\nAAJAwAICYokrPXVoKC6UEAlCsTP6Z5jUeEd8of41VIu1auQPj/228JvH1TGdibFGtoyV+Sr1+T2Z\nF15rL2nZvauHhRO1pCZuJvozCSWu9V0DmcrMCVZRdvvO4yfZRxKxmsH0a8hULtg3NQKc17G+BbXE\n3jC+0LCd8sWGx2ZOyhfrG1l9246Xi7IIbNIMXJMkZs/zdPTAqzOBChFAAAjYMIHqW8vee7nAZ3lG\nTvHQF9txVFT0Ruzuvx6qau5ev+7o3aWeXh2HzmceLX94J/u61Mk/8a+AVl4ORm+iPPOzwwlsn0D9\n247ESwo2WR/DMOh5no4eeHX1AQ6yQAAIWDsBhy4LjpJLrpipCd+r71AvM+lNMsm955BxBi81NslS\nQqGsl8BTtR2wyfpccOOe5ynowTuw9QEOskAACAABIAAEgAAQaKoEwKtrqlcGygUEgAAQAAJAAAgA\ngfoQAK+uPrRAFggAASAABIAAEAACTZUAeHVN9cpAuYAAEAACQAAIAAEgUB8CLG9LxMXF1UcDyDaI\nANBuED7IDASAgMUEoLexGBUI/ksEwCYbHTSLV5eUlNTopwGFpgRCQkJQJNA2JQMxQAAINC4B6G0a\nlydoazgBsMmGMCTpsWpg8eqysrJYRSGycQmQ9yhAu3GpgjYgAARMCUBvY8oEYv63BMAmG8LfzBgn\nPFfXELCQFwgAASAABIAAEAACTYUAeHVN5UpAOYAAEAACQAAIAAEg0BAC4NU1hB7kBQJAAAgAASAA\nBIBAUyEAXl1TuRJQDiAABIAAEAACQAAINIQAeHUNoQd5gQAQAAJAAAgAASDQVAiAV9dUrgSUAwgA\nAasmoFGpjMuvUcmkUlml0jge06B4aaXcJJ4lQiEtvZmTU1SpptJU0rKyMqmMOoQ9EKg3ARZbrY9N\novPJSoukenvX2bOGuyCG8txyTT2Fq/VZ0qK5ZLh04izYrlQdjGzbq1NlrYnkUZtgWvxt0961Dj6Q\nDASAABCog4BGVpSWECke+TvT1ZIXHA0Si13CprpIHPxWHFRQOqS5fwWJRC5ubm4SJ7/IzaX6n0ZK\ngtpL847O93N08hiTdPpmNeHUyW785Sto4da6dWs3F/tpG4rIDq36eoSziOrndPvt16ooNbAHAnoC\nrLZqoU1eTdT/nrr2+fGRFldblv1XmNjBP+r7qa1cRO2+OlOkv1dhldcXxdpC7K0PwyyhxyXDpROx\nYb1SFjHTMrbVq1cPGjSIEWELwfJzmxCIoLUnm1plbJJ2U4MM5QECz5pAdXHWvPBwH76d/fRtcvpk\njy8GCvlBm87iEZXXQlsIdOHHZ1F3tDg5Pft8RkygCwoLlx5W07n0AeXpzXNRasT2c0o68vFFdJaU\n7Lvl5YUH4+eg1JisYpSYvyvSrvWnW5J3peDbvvgpbnZuk7Mraul8KAC9DZNGsw1z2KplNll5ObSl\nT0zCloSEhPj4mOSsuzjGmtvhTsL5h+4QSOX7wtsIx+/QWSyrPAO9ldkkR+vTWtKiuWS4dGq17FfK\nMnosqxCjzsKWNqGzBFXHpRX+FzYgAASAQOMSELUbFL1qwO7KbeMYI3U5239I4b1+KuBV/FxOz0es\nD+4zO/pCwM4WO2LnH7m3YEgbFN07+dIT9x6LcvDBDaPuqSBlyYBJK0K3Xl45phddWnl5xeJrsqFd\nHVHM8LAZgXNXlyvQCJ4ir/zlO8Ufe1F9+dWy4QJh4PMSHp0RAkCAJMBqq1e3W2STV3ctSZSMvuQ/\nsruHK58CqikvPv9E/a7uUNy97xvY1qpqdK+CYazyVD7r23O0PswSelwyfPYWjcNhvVIWUrPtGVgG\nBBUxWIxp8tI2+Qr4QYF+dg4+u6+Vo2HOogtHNi6e6jctPm3XCjR7wZcE7r9WganvJc6fGuTnt/Sv\nfEz7cGPEGJQleBk5jcKipDTvYnLM3K+3Z2Yk4GPUsz6ZEBwWEREWtvZwPirEhcTosNDgOeuOc0+2\nMIoKQSAABKyMgNGzHYrctDSB77jOrjrXyrtfUG1lyoXb0o7Bq78jXDq8fgKPVwKdeZiQ8sd0ddY8\nODFxzFI754DAnsojaWlZF/PI2VvHzkNIlw7JFZ3Yldp22f/5dsAw8fAwvUuHqYsTo3Z9O3EA+lmF\nDQiwETCyVcwSm8Sqb8XM3FFz94sX2rkJeLzYP3NJzXw3T19HwYJhHTeeLZEVHA0N3f7JrIH4LQqH\nPFt5rCOOo/VZRI+LMJdOiojxlaLi69g3G6+O4KB5cLr7O1M/OFm2c9exczEtxo74rQzj1yiKNy/8\n7/GNn4680On8qd0fKPcGLvxTIWj78fzZu44fzy9/gvFaTV2Z8IHdldTscnRrzKJEW5lzcF3I5yuj\nx/muuSLC52J8Pnb5fc3a9D5j3vZGZ+47+r28lNrQiT7Q1dZhj5AMBGyAQHXpyQNVmHcrfFSN3AjH\n7WRuqdjVXd8JqMsu7qocNfIlMSVF7ssLsjM1tcgL/GFHetrPwT59u7ecvrmMkpGVXE6cP7b9W/O1\nXTG1hrxZpdIwTJ5/8get/+gX3fVREAICZglYYpOYQ/vlN/KyM9NiPhuKlEX594o9UYJrFXT8/Pgf\n6Cdv2mueLt5D/fbmrXy/Ox7PJY+nWfFm2vosoWdexlRnAwE1L6+OLxCjh116eKB7CY1a1FnzKOOe\nXNvZJ2C6r7MwZNvDJYF9B4wM/b9WFNMW6GkYXZgndHbBR53RMYsShcvw2auSgt3sQ37dsir6uOLJ\nqgkjotaH1tz+bM/lCpSr9NSu01980dsR5kQotLAHAjZNQGyH8RgTsmRd8b6AsRWkrvy+RfjygBcY\ncXjwcfFN9Bc9M3csOip6R3FKeJuahMmrDt8lxFR3rtxx6z8adU3q9C+en5NCv4RBpGLX06IEE6bA\n9CtJA/7WlwCXTaI5VXevTr0HD4v8KaPw+Dqkdn7cUdLAXXv7TfJxIk/0Y8ph3Rs83PL1LVJTkq+j\n9XHT01fCRKYOnfqcFoeal1eHufXZqVR4521B76ANmJ6AtfASEI6Wszd+/0x4cPzur7+PoYlZ6tio\nI8bjOZSIJHw0mYILCPG/Pd+fhjzIWXF/azDNseVxG8e8iCfBBgSAgM0TEDl6viLS4hNRuo28OxzY\nWT+Epszf22X8qaOXlnQVs9/svdThOTwzz3nEZxvQ/t79SkKXsPcwf/+AjzZJb8YHtVTvSL0lZwzX\nqYt3fF367fi+RDdEiMMfIGAxgTptktTk5TPz/IYQdVraHWR72sfJY7vM8lhf8rggARnkxhnekzdL\nDc9oIG+YZG1H5lqfJfTYZMzpfDo+zcyrUxbHDmn1crT8J7kavTiGqcmO0gidQST+lprRZpES9ILG\nK3OXDq3ZvOLAqYN/3Jn/blfd3YyRMjgEAkDA1gjwJJ5dHLADRRWUxyV78BDVsbWbSFfTiisTegYm\n/bN/sDs1G8BEUIMfSKuJHf7cdC/0mqHx7aWo43sfhmE1BtFo+nW5sv+IV9oxlUEYCFhEwLxNGqpo\nIcJ4ojbOAp6mLDdkR/nG70Z5uHSa+kcBGlfW7N9TIKPsnspFy1MRVr43bX2W0DMvY6rzaSHZsleH\nLwCqIkfgMPT6A0JUdOjnqGOVadtm4++LKQnvjX6ZByMkmBzxHCgjuek6X7Qzo0SLqYhMZBb+6+O+\n0iqzRg70x1a+r79J1ymEHRAAAjZFgDE4J+7lPxE9Wp7/UPfz9rjoIlptpE87YvhOXRzr3X/EqUdj\nexD3jOj9hl/SyYlUcsVR70H4O4WXbpNTBmi91+KfqlTtnVoYwVIrSwTu73gxnutA06/2gXN6wNuv\nRqTg0IQAw1aJtLps0kiBuvoRf/TgdiKs+uFtlCQifx55LUd8Eo+eB30kM34tkJY30mO9hwatzxJ6\n3DI0BAOdVKzxlaLizext16vTPt7StX3bSb+XqPGO9d0X2qO/T1R457nnYGZe9p9RkzahO92cE1m3\npRqlDF8T2wH9x1Q3TqXXXskrR5kcHNrY26XM/TmroPDM5kkBv5Sp72WfvS3jUKJ4WFGDnTJ4lIbf\nfhC6d+GJBs8Z5I3rhg0IAAHbJID/rNWmXsL7DWLrNnwKevRt3tZMvGepvr5m2q8BqyN6I38LzVjN\n6BNV/qTi3NZYYguTdLrWoSt6YQLNzghEojl7bvDb+6Uv8lw+7rscYszjavpvyCOcPqyzsvBw8Jvh\nu88UIJ3ywqOhHyUn7g9x1Z0Q3ZXi069Rof2N3r2g0yEABAgCxrZqiU0W7FvGf27K9rOFSENZ9o6X\nZhzat2A4muh39HwZPWgUf+gibucYduPUIb7Hlz3birjkCSmr/MPZ+ixo0VyE+eZbNDEkxexVLAXH\nWNbOxlaqxFdEJClEbDxGrouovp9FvgAhGLv64M5YlCpo983W/0wlxeYn/p2ZtJQMB634G2XJP7BC\nd7g4Dk2C+IYvSj5y3VQJv82chR/qpmqDvv79AWNR0Ypz64TDGWuTMnBb2RqMjJJDEAgAAZqA+v6Z\nxaHBZEfhG/xVZmE1mVR9F+9teIFT8OWIYw9UELE3dkYiSZ/B+iff0ALCuXJ8xeCq63+gpKDtV3DB\nWunB/4xFh1MCHJFLl1lYheKq7x4iz4L++o5ZREbiwsRWdf03FH+63GDxYSrRxvp2uloQqB8BVlu1\nxCZL/o6mbc9uzKLTJbhBklv5lT+Rndv5TQ4PcELGnFGAJ5mRp/JZmU1ytT5L6HHJcOlEiFivFI0O\nBcz4DzyUTF+tuLi4pKSkrKwsOsbKA+izazJMJJaIqcdZ8PqoFAqtmIhB8x184s0GM9XUqBRyNR9p\n0Kg0fCE9X2upkszFXn/5nV46xNP0FDZH27SKEAMEmjkBjUwmxwSOEjHddZgDoqiUCZwltMenUlTK\nlVpHV30M+iqkQqnGBCKxvi+iFBJJYjH7UB30NhQm2NePAG2T+E8h+m6dQGT4e0pq0yhkMiXGl0gk\ntKGblcdzWZ9Nmml9HFBpehzpaDUO7hbNmQdPMEOPnA83m9uKE/kSV/0EBVUPId3v1enSoSx8oZjs\nUxkuHYquQ4ms4MSBS8quz5UMiQ+8NY/FpaMKA3sgAARsmAD+O2d59cTEh3BoeaHYWWjkpKH+SEx7\nfbQgETCTZCgIR0DAcgK0TdI/hWx5+WKJq6mpMm5H2DJZXVz9mxhNj7Ou9dfJqYpKsG2vjqrlv76/\nfzxu3KQkdFq06FQnYPyv84cTAgEgAASAABBohgTA43gmF73jqGWZGTPs23Z/rQesMvBMCINSIAAE\ngAAQAAJAwIgAeHVGQBrnUOjaafDQTo2jC7QAASAABIAAEAACQMACAra7sokFlQcRIAAEgAAQAAJA\nAAjYDAHw6mzmUkJFgAAQAAJAAAgAgWZNALy6Zn35ofJAAAgAASAABICAzRBgea4OrYNiM9Vr+hUB\n2k3/GkEJgYBtEIDexjauoy3VAmyy0a8mi1eHFiJu9NOAQlMCISEhKBJom5KBGCAABBqXAPQ2jcsT\ntDWcANhkQxiS9Fg1sHh1NvRtCdYqN5VI8h4FaDeV6wHlAAK2SwB6G9u9ttZaM7DJhlw5M2Oc8Fxd\nQ8BCXiAABIAAEAACQAAINBUC4NU1lSsB5QACQAAIAAEgAASAQEMIgFfXEHqQFwgAASAABIAAEAAC\nTYUAeHVN5UpAOYAAEAACQAAIAAEg0BAC4NU1hB7kBQJAAAgAASAABIBAUyHQXL065ePSh/KmchGg\nHEAACFg/AY1KxVUJhULJlcQZr1HJpFJZpbmMstIiqck5n+ZcnIWABNskwGKrFtgbk4WB7XHl5Ypn\nKrKysAa1Smklp/NgtvVx5eWK16MxoK2PZg9Zv1envpcY8QaPbRPO+F1hWmv1vY0RY3gOriF7b5om\nQgwQAAJAoL4ENLKitIRI8cjfZWw5y06vd3J7K0euxROrr0c4i4y6q+3XqozyyQuOBonFLmFTXSQO\nfisOMvuxq4mRdHbXPj8+IrTS2Q3ORcdCAAhQBFht1Yy9UfnwPavtceXlimcqtK6wNPevIJHIxc3N\nTeLkF7m51OSGykzr48rLFc9F2xJiLOvVWZKtCckI2n68KqNXt5BXZycnnLk/tW9LlQbDtOoHl1O6\njJWpTQuK5L+YPe2nHV1F1l9309pBDBAAAv8uAWXJiYU/bj8eH6cN28rSp5Sfa/36/9m1/lTAw4tV\n8FdCnHjGlk1vOAvRsX3x3omf7Rnds52jQZEr/pnY4y3eulPa0H5Y1fWw1i9ObHlyBwqjrepKzGdn\nYhK2uGBKpbLC/ZWxXUWMrIbnYiRAEAjgBNht1Yy9MbGx2h5XXq54pkLrClecc60TOHEAAEAASURB\nVOv13uLk9O+78tKWfhC1YnKn57wU89/i07Uw0/q48nLFI52stOlzmQ2w9EJm5ZtoYgtnF1QykbMY\n4wuFOGah16sBJ3+5xlo9kVvb0BYCTGjfRCsDxQICQMB6CIjaDYpeNWB35bZxpiN12scbpw9jVEWR\nV/7yneKPvaiO6WrZcIEw8HkJ4fFRcjnbf0jhvX4q4FU8wun5iPXBfWZHXwjY2deVd3XXkkTJ6Ev+\nI7t7uOp/TsiMxuei1MEeCFAEWG3VjL1R+fA9q+1x5bXfwWnDTJ1WFL66PXb+kXsLhrRBZe6dfOmJ\ne49FOUVoIlZC1sFs6+PKW8ytk5W2hbisfwaWqKhA5Iz2IgHVWWrvLJm5t8eQvmJ0d/Lg4pIgFzRn\nwR8avvtiCc2l4u6FxMVjyfj918oxTFOadzE5Zu7X2zMzEvA5jo8/Hh/k57f0r3xM+xBN2gYF+gUv\nI6dCNHlpm3wFfBRj5+Czmy3vrE8mBIdFRISFrT2cj854ITE6LDR4zrrjJkO2dHEgAASAgPUSYH/6\nLSdh7JYRh26kfoOpK4m6iYeH6V06TF2cGLXr24kDhAb1VuSmpQl8x3V21bl63v2CaitTLtyWYtW3\nYmbuqLn7xQvt3AQ8Xuyfucx8JudiJkIYCNAEjGyV297oHCjAbnsceQuKOW2YqdOqwh2DV39HuHR4\nqQUerwQ68zAh5XBg5lsfV16ueA7alvKyEa+OrO6JI4ezjhzJyEhLXDJlcQXxvEnFPxPa9+++sEBb\nW/ar928BfT33F+E27cy32xk1/ojH+H2/L609unpUn9FnymU5B9eFfL4yepzvmisiH77dc/4Tdh0/\nnl/+BOO1mroy4QO7K6nZ5WhKV/PgdPd3pn5wsmznrmPnYlqMHfFbmbbSKK+9z8cuv69Zm95nzNve\n6HR9R7+Xl1IbOtHHsPu29CKBHBAAAlZHQJb731eXDtsZ1k9QdZ+18PL8kz9o/Ue/6G6QWl168kAV\n5t1KPylL/HSczC3FHNovv5GXnZkW89lQlCXKv1fsCd1tap3nMjgFHAABmoAZe6NlUIDV9rjyXsrh\ntGGmTqsKi13d9T/f6rKLuypHjXwJDRuhrc7Wx5WXK56dtsW4bMqrKyq4dvXKldzcvPMXz5IE0Pjw\nbtFobdmltCM5mDNe2R/TrqG/lZraoE3/bJoa4B8y/8auBVpl1s9/lw2fvSop2M0+5Nctq6KPK56s\nGtkdn6glN57Q2QWf8UDHfIE4UMjv4YFGXjVqUWfNo4x7ChfjvBNGRK0Prbn92Z7LFShX6aldp7/4\norejwTyLTjPsgAAQsD0CVdfn9Juedm4OctnUQnwmATOeMcWup0UJJkwxmn5FgmI7jGcymYv3I5jQ\n3atT78HDIn/KKDy+Dh3PjzuKC1pwLjw3bECAjQC3vTGl2W2PKy9XPFOj9YYLUld+3yJ8ecALeBXq\n2foM8jIQGMaz02aImwvalFc3dsrsqbPwbdW2c6PKK9Vaxa1Tf/PGvemKCNTUtA9IyczIWOnXnuTh\n4qx7rq7bkPfQyBymqkHxIgkfDaviAkIh7sFhGNGZ4gH95tZnp1LhnbcFvQ4zYHoC1sKLfA7aIC+G\n9Xx/GnL+ZsX9rcE0x5bHbRzzol4DhIAAELBlAordUwZvXXCgl0BaJi0tyv8Hq6kovFsqZS5Toi7e\n8XXpt+P76gcASCAiR89XRFrd0zp4FHlnObCzwZCel8/M8xtC1Glpd+Tyus9ly6ihbg0jYJm9Mc+h\ntz21mN1Wu7Vnjze0YaZOKwor8/d2GX/q6KUlXcVomMaCls6om2FefQJXPJLQ0yZfotdn4gxRY1Gc\nAtaUoFSj2VUHvMQOz29J6STmobdhMb7cY+gbbzC6Tg1WXYbiK1TUkgDi1q+2EBTh2Vg2/C0Mo01Z\nHDu85zzh0ny5OiY1quvUR0bpukOXV+YuHZqyYMWBKQ5/3Jm/rqsTuxjEAgEgYGMEqgpiU6SqHW+3\n/lpfsXe6pwjX/aOc+TIZhaZflyv7n3ulnV6CDPEknl0csANF6BES/FcDze88eIj+tnZjvuyKx7cQ\nYTxRG2dl3efCpWEDAqwELLY3Zm6d7dm7sNvqc62cLbNhpk7rCFdcmdAzMOnSo8HuhO9kQUvX18so\nL53AFU8J6GiTo0dUpJm9TY3ViQT6SQ6xGHWCAntnO9XvwX/epJaDKj8X/O5WcnLDBV9ZgNhkxT9V\nqfp0wkf00KbFVLr1UIgdNVanc3/RrujQz1HHKtO2zcZfZFMSD0FTp9XnxTXxXx/3FZrbHTnQH1v5\nvsGNNp4KGxAAAjZFQD/A5tRjb+GdwsKSkpLCkgclBxe9aecccDD3blFID7rCaPrVPnBOD8O3X4m1\nYcW9/CeiVyLyH+puOx8XXbRzm9ynHWP4jtCirn7EHz24nVvPOs9FnxQCQIAkoLdVrA57Y1mvGD1U\nQNqeiCOvZxsLbdjKLoe6ONa7/4hTj8b2IEZ70NtO20uTzLZ0PT3TvL+k4+tQcsUz0FC0GVFmgzbi\n1akJ76qwmPLBdHUW+oauQMHAF9/duD/zTMZ239YD3lw2SqJWP9Zo84oe4UN5mCLt5/H2nVbPGNwO\n06oeVtRgp6hHWhwc2tjbpcz9Oaug8MzmSQG/lKnvZZ+9LXuiwq/FnoOZedl/Rk3ahOZWck5k3ZYq\nDPLimjF++0Ep4W14osFzBnkTEfAHCAABmySA3/XVpl4q13lifFcPLy8vDw8PLw93j87dumL2Lu29\nvdxbUuNtxPRrVGh/8mlrkgiahRGIRHP23Og2fAp6onfe1ky8g6q+vmbarwGrI3pLeAX7lvGfm7L9\nbCGKLsve8dKMQ/sWDBdidZ2L1A5/gYCOgJGtYlz2hsRpm+SwPc68ZnRa63XQPk6e0Seq/EnFua2x\nxBYm6XStQ3dP7pZO08PY83YVc8TfZ2/pFpPTMrbVq1cPGjSIEWENwZrShPChdHVD1/6tNCi1OndX\nNJ26JuMWkSjP3IBPjSB/C/0VzPm1sFqrrSlKmPIcKRn09e8P1Lhg/gHcKURb0OK4cCehb/ii5CPX\n1fezyLcoBGNXH9wZi1L5beYs/FA3VUvnJUtRcW6dcPg2OXlg+NcqaRtWAY6AABBQ3z+zODSY6Ccw\n3+CvMvHexGDLT/0GrUKcK6+lY6uu/4bkT5frY1BS1fU/8K5m+xUUrr6LdzK8wCno2dyg2AMVRM6S\nv/Vdmd2YRadLqmiFdMD0XGQS9DY0ouYc4LJVVntDoGibNGN7XHm54mn+1mWTN3ZGoubpM1j/MJdR\no0b1Mmp9ND2uvFzxZmhbQo+HhMj+CP2Ni4tLSkrKysqiY2wjoFFUypRqkcRVTE2V4vXSqBTVSjVP\nKMHnajk3JCVX85GMRqXhEwscE6IqhUJLTPIiNSq08jFX/szFXn/5nV46xNNUwFZpm9YUYoAAEDAg\ngLoVpVosZg7V4emooxI4S6jeRCOTyTGBo4TRbeHdUbUaE4jM91oG5yIOoLcxZQIxhgRY7A0J0DZp\n1vbY86JfWVMbpk/aHGySpkfX2sKAWdq4DjP08MFYm9/4YmdX4/4TjbAJxY5U/8mNAEmRvSzDpUPS\nQrpDZnXpZAUnDlxSdn2uZEh84K15LC4d9wkhBQgAAVsngLoVMUvnI3ZmPjzHl0iYhzgTujuydUBQ\nv3+fAIu9oULQNmnW9tjzIoM1teF/v2L/wzPS9OpbBrO061DWLLy6Ohg8g+T7x+PGTUpCimOyijsB\n42dAGFQCASAABIAAEAACRgTA4zAC0jiHHUcty8yYYd+2+2s9TFYuaJwzgBYgAASAABAAAkAACBgQ\nAK/OAEdjHQhdOw0e2qmxtIEeIAAEgAAQAAJAAAjUScBGVjaps54gAASAABAAAkAACAAB2yYAXp1t\nX1+oHRAAAkAACAABINBcCIBX11yuNNQTCAABIAAEgAAQsG0CLM/VoXVQbLvOTap2QLtJXQ4oDBCw\nYQLQ29jwxbXSqoFNNvqFY/Hq0ELEjX4aUGhKICQkBEUCbVMyEAMEgEDjEoDepnF5graGEwCbbAhD\nkh6rBhavzva+LcFa8/95JHmPArT/5xcCCgAEbJ4A9DY2f4mtroJgkw25ZGbGOOG5uoaAhbxAAAgA\nASAABIAAEGgqBMCraypXAsoBBIAAEAACQAAIAIGGEACvriH0IC8QAAJAAAgAASAABJoKAfDqmsqV\ngHIAASAABIAAEAACQKAhBMCrawg9yAsEgAAQAAJAAAgAgaZCALy6Z3YllJVlUvkz0w6KgQAQaDoE\nNDKpVFpp2t518RqOkiqkpTdzcooq1WzpXHlV0rKyMqmMLYsuTlZaJFWZSYckIGBKgMveTCVNY1Qc\n9s8Vb6rBmmI0Ks7W9VQtWld347wanJ6sUllfNM3Qq1NlxE7jEZvftwdMLo4mI2acLnXuhlKuztg8\nZvW9xIixPAdJcMpN84KQCgSAgLUTkOb+FSQSubi5uUmc/CI3l1J9Sln2X2FiB/+o76e2chG1++pM\nkYHPJ807Ot/P0cljTNLpm9UmTh1XXtmNv3wFLdxat27t5mI/bUMRo8O/mhhJdlzor2ufHx9prZ0r\nlP/fI8Blb/oSVF+PcBbRBkYGtl+rQgLIJoNEYv/ISGT/9pFJ9I8mV7xepxWGNLKitIRI8cjfTW+q\nnq5FkwxM88oLjgaJxS5hU10kDn4rDirqxUrL2FavXj1o0CBGhM0G83dFkpTSSmoMKvnoBBkftOkf\ng/h6HqjvnwkU8kO3XjaTr/nQNgMBkoCAdRN4fBb1GIuT07PPZ8QEuqCwcOlhNapSze1wJ+H8Q3eI\n2sn3hbcRjt+h1FVVeXrzXCQZsf0cFWPIgCvv44s+fLuU7Lvl5YUH4+cgDTFZxbqclZdDW/rEJGxJ\nSEiIj49JzrprqFELvY0REDjUE+CyN72EFv1i2rX+dEvyrhR82xc/xc3ObXJ2Ra36fhayw/lpt3DZ\nymvzJEL7uTvlWi1XPEOl9dlkdXHWvPBw1Abtp29DdWRsT9uicRVseR9fRP5D0KazeHrltdAWAl0Y\nP9ZtZlo0yyrE6CLZ/Nbu5b5kHRf/evLNeb58qsI5O1eTQRdRg8jwJZKWfF6F0J5SDHsgAARskMDV\n7bHzj9xbMKQNqlvv5EtP3HssysEH5RzLi88/Ub+rq7G4e983sK1V1cjnw7CClCUDJq1At3wrx/Ri\nJaLhyFtTXrH4mmxoV0eUa3jYjMC5q8sVulG+q7uWJEpGX/If2d3Dle7NWJVDJBAwIsBlb8hWqU2R\nV/7yneKPvahfxatlwwXCwOclvPw/N/NEg9/r1xmXdHr+k9++XDYqKO3TJ71Oscd/0MmB0ml9e1G7\nQdGrBuyu3DbOcKTuqVs0V2+Qs/2HFN7rpwJeJalGrA/uMzv6QsDOvq48S6g1wxlYHIu6WhgUsQi5\nwJkL552SUnMV1dcXRhalHEhkgNPkpW3yFfCDAv3sHHx2XyvHME1p3sXkmLlfb8/MSMCnPNaeKMHk\ndzZGvEEOSkes3FdGz9uW3UCjtSieLwlMu20w/8I4BQSBABCwVgIdg1d/R7h0eAUEHq8EOvMwIfrt\n47t5+joKFgzruPFsiazgaGjo9k9mDZSg7uPBiYljlto5BwT2VB5JS8u6mGc6t8KV17HzENKlQ6cq\nOrErte2y//PtgJ+3+lbMzB01d794oZ2bgMeL/TMXj4QNCFhGgMveGLnFw8P0Lh2mLk6M2vXtxAGk\n28cTtm5Bibp374eCZ3NL0F+ueErWSveMhx6IGjSkRXPkVeSmpQl8x3WmfDjvfkG1lSkXbkstRNZM\nvToMq2zfb/Ss9aFaZdbKlPMkrIJDK1NnfD+k23M0O82D093fmfrBybKdu46di2kxdsRvZdrKnIPr\nQj5fGT3Od80VERqMvVF6c3677icHxaBpl5K/o3+aOyr6YD7S4My32zlr1Iaa4dnndn+g3Dtq3l7T\n7ps+EQSAABCwRgJiV3f9kIa67OKuylEjXxKjmgg6fn78D9Q/THvN08V7qN/evJXvd0fR5QXZmZpa\n1Ef/sCM97edgn77dW07fXGZUc468pJSs5HLi/LHt35qv7YqpNcQdqUP75TfysjPTYj4bimSi/HvF\noltN2ICAhQTM2pupDnn+yR+0/qNfdEdJahWGOxzFusErATGYd136hCveVJu1xzSkRbPnrS45eaAK\n826Fj8mTG0H1ZG4pdVzHvtl6dVihyqHv+5Px51Q+X5Mj12Laewkf/Tdxlp8E0w+q8QViNL3dwwO/\nx1aLOmseZdxTuAyfvSop2M0+5Nctq6KPK55EiVL/4/z1kjGvookPj8ET4sNCh3i3RNQrNbW+a8/u\n+OSd3q+OnDG3tfZEUQU9hlfHRYFkIAAErI9AQerK71uELw94gSy6a2+/ST5OZPjHlMPkmw2Pi/E3\nqNDzcMeio6J3FKeEt6lJmLzq8F2j2rLmJWRUd67cces/Gs0zqNO/eH5OCnGvKHT36tR78LDInzIK\nj69DYvPjjhrOERmph0MgYECA294MxMiD62lRgglT0PQrOuzw+jD09//CN1yVqdGbBNt+mooO333Z\niyue1GBLfxvSolnzrvy7RGyH8UwacIXF1JqvV4cpqzGXgd983qa2/NdfjhbIsvfEtlr9bid7NfN9\nNLc+O5UK77wt6B23AdMTsBZeAmJeWyTho3kWHLIQy836ze6Fji7kfLeo46yNmz7o4Uby79YKv2lH\nszGd+0/QSE8+rKameslk+AsEgICtEFDm7+0y/tTRS0u6iom+QPs4eWyXWR7rSx4XJAS1VG+c4T15\nMz2D8lIHYkKA5zzisw0IwL37lQYYzOUV9h7m7x/w0SbpzXikdkfqLXRHyti8fGae3xCiTku7YxjP\nEIEgEDAkYM7eDCXRkbp4x9el347vSw5RO3YPvpG6At1gvOBiL3BpP3E1Pu7cyoHPFW+izkYiGtCi\nMaO896Vaz1dEWjSURG3EUB02sDM+OGrJ1oy9OgLPkGnr0X6VfxeXPjNXJo1BJJlOHaYsjh3S6uVo\n+U9yNf7arNqw88U1qGue1GqvP6gw6FoJ1RhWoaJiVZWYvQvpEerSYAcEgIDNEKi4MqFnYNI/+we7\nkz0wpinLDdlRvvG7UR4unab+UYDG5DT79xTItFgNXmdpNbHDMFG7XuhVWaO7cM68TFyiju99GIbV\nGGXFJVqIMJ6ojTN0N0xcEOYmYJG9UdnR9OtyZf8Rr7SjIrBuI+eolfIKuVr3DmzIr292xYeoueLp\njDYSaEiLZs/r5NnFATtQRDsVsgcPEavWbiILiTVTr04lqyCeacZE3m8nhbZCsOw7/BjQDx9jE5CD\ncAS/okM/Rx2rTNs2G3/3R0m4dNQLZlpMRfh/InevF9FzyvvP6R5k0ZQcDo5KJZ+odKHfgRU6W3g9\nQAwIAAErI6AujvXuP+LUo7E98JVN8GfJf0mXPryNgro36XktR3wSjx4/eiRTeQ/C34u9dLsc/cU3\nWfFPVar2TrrHzcnVTas58pI56L9qZYnA/R0vR3KagI5Gr4I94o8e3M7SnwB9Rgg1TwLm7c1oxV00\n/WofOKcHMf1K4+ILxRIxlrF+1jKZaut3H9DDTFzxdEYrDTAH0hrSotnzOrv28p+InIr8h7pRocdF\nF9E6Mn3a0VzrwNZMvbqCc/tTT18nHkkRjwj/EUH6fF2QB9E9lhfh7zpUKHGf7YkKF9lzMDMv+8+o\nSZvQnXHOiazbUsXDihrsFDnvze81eiaSQc9Ez0/cl5GyVuA5bErEcBEfv2Xfmp1PPEqnKTi7DR1i\nlEeIh2EDAkDABgig2asZfaLKn1Sc2xpLbGGSTtc6dG3l+TJ6JDf+0EXyYdobpw7xPb7s2VbEb++X\nvshz+bjvctC4HYZdTf8N9dfTh3VGYTSHKxCJ5uy54ciRV1l4OPjN8N1nCpBOeeHR0I+SE/eHuKKl\nUvYt4z83ZfvZQqSkLHvHSzMO7VswnJwgswHAUIVnTYDL3tB5aZvUlYGYfo0K7U8+WqQvmLYyI/7D\nNz//O+bQLd29DZnGFa/PaXUh/Je9NvVSOTUP15AWzZW32/Ap6MHZeVsz8d6j+vqaab8GrI7obehJ\nmwNHrWmH782sa8cUs+5wTWlC6BCSiGDs6oJqrba2LOat8Fx5LVoPMDN+Gg3Ld9rPBcVZCC6KQZIH\nd8aiAL/NnIUfEnfkGBb09e8P8PVGtYXHN6G3LlAqWrknOee+tqZ0S/hQdIi2+cnHM5OWkmHfpX8x\nFx1tFrSt21ag9ECgDgI3dkai1u0zWO9EocVaic5EW37lT9R72PlNDg9wQpEZBVU6XbXSg/8Zi3JN\nCXBELl1moS6+6vofKDJo+xUkxpq3+u4hsidBf33HLKIzolfv6Xi7MYtOl1AnYpQdehsGDAgaE2C1\nNyTEtEni8DdkaafL0W+lblOX5yXFf40ikeFl5j2iorVc8bQAClidTaKPCywODSbbmm/wV5mFyHsg\ntqdt0XhmjrzVd3Hfgxc4BV+OOPZABXkixl8z9HhIjO4R4uLikpKSsrKy6BgIYJhKodCKxfh8BhqL\n5gv13bcBHPTJNnm1g6NEaPGAHNA2AAgHQMAGCWgUMpkSQ6uSS4w6BpWiUq7UOrpKmB2KolImcKZj\n2PJqVAo0jSAQiQ07GhQtR98dE4gkRE9lChJ6G1MmEGNIgM3eMMzAJgnzE4v1Q3Ua2b3ckideHdq5\nGhoeVzzzjDZmk0/ZogkirHmRxyGTyTGBo0Rs1HngeczQwweiYDNLQEjbMKdLh/LzhRK6NzarDhKB\nABBoNgT4Yomr/jeQUW2h2FlokiB2Zj46w5YXPakkZvqBOo34A0ws0YzzQRAI1EGAzd4wzMAmTcyP\nL2nbm2mz1Cm44ql0G9w/ZYsmSLDmRV4Fuht8ClLN9Lm6pyAFWYAAEAACQAAIAAEg0JQJgFfXlK8O\nlA0IAAEgAASAABAAApYSAK/OUlIgBwSAABAAAkAACACBpkwAvLqmfHWgbEAACAABIAAEgAAQsJQA\neHWWkgI5IAAEgAAQAAJAAAg0ZQLg1TXlqwNlAwJAAAgAASAABICApQRYVjZB66BYmhvkGkwAaDcY\nISgAAkDAIgLQ21iECYT+RQJgk40Om8WrQwsRN/ppQKEpgZCQEBQJtE3JQAwQAAKNSwB6m8blCdoa\nTgBssiEMSXqsGli8Ovi2BCupRo8k71GAdqODBYVAAAgYEYDexggIHP7PCYBNNuQSmBnjhOfqGgIW\n8gIBIAAEgAAQAAJAoKkQAK+uqVwJKAcQAAJAAAgAASAABBpCALy6htCDvEAACAABIAAEgAAQaCoE\nwKtrKlcCygEEgAAQAAJAAAgAgYYQAK+uIfQgLxAAAkAACAABIAAEmgoB8Oo4r4RGpdBwJtadoJLd\nK7ono+RUpbdvyxqijlIEeyAABJoeAZW0rKxMSrd34wIqpKU3c3KKKtVUQh3ylBimUanosFHARKc+\nXVZaJOXMpxeDEBBoHAIalUwqlVUqubQpFJxJXFmsLR4nIK2UW1Jsk5ar4ciri6+v4wBeHcdV0D5e\n7+n+32tVHMl1Riv+DHuxQ6f3cuTKMwmRPJ7Is8dHd6q1dWYDASAABKyLgOzGX76CFm6tW7d2c7Gf\ntqHI8PdLmnd0vp+jk8eYpNM3qwmnzrw8XXeNrCgtIVI88ndTV9FUJ8p1NRH1M7rNtc+Pj6CzoVFC\nwDyB6usRziLKdnT77Ua/fdwy8oKjQWKxS9hUF4mD34qDCpNzlZ1e7+T2Vo7cZi0Steggkdg/MtJN\n4mQfmVTK7YWZtlxpLsorcnFzQ3n9IjeXUjdjZdl/hYkd/KO+n9rKRdTuqzNFFvmLOvZaxrZ69epB\ngwYxIppvsOr6HgRIGLlX+ZQM1LkHNy5ee6Acz648vyHEzm1yrryWqQxoM2lAGAhYJYHHF334dinZ\nd8vLCw/Gz0GdRkxWMVUR5enNc1FMxPZz+m7EnDyVT6utLs6aFx6ONNtP3ybXR6MQm04UXXk5tKVP\nTMKWhISE+PiY5Ky7Bpm0WuhtjIDAIU0gf1ekXetPtyTvSsG3ffFT3NCvVXaFwa8Vp8zji4FCftCm\ns7i2ymuhLQS6MK390VnUBJB+o58/lG4bNqm+n4UqOD/tFklgnkRoP3enYZslWbC13Mc4nMXJ6dnn\nM2ICXVBYuPSwGonX3A53Es4/dIfIKd8X3kY4foe+DyFizdBjWYUYqW72m+bMrzMRhJr4H05Ejhjq\n8RSU+D2Hhy3QcRQ6O0swjHLCmz1cAAAEbIaAvLxi8TXZ0K6OqEbDw2YEzl1drtBNsxakLBkwaUXo\n1ssrx/Si62tGnpZBAVG7QdGrBuyu3DbOcKSOVSeSv7prSaJk9CX/kd09XPlMRRAGAnUQUOSVv3yn\n+GMv6lfuatlwgTDweQmPkY9TJifhhxTe66cCXsWFnZ6PWB/cZ3b0hYCdfV2J7NrHG6cPY+ixwWB+\n+maeaPB7/TqTBD757ctlo4LSPn3yQScHZm1ZW+7V7bHzj9xbMKQNkuydfOmJe49FOfignGN58fkn\n6nd1+cXd+76Bba2qRj4fUyN3GGZg2diUZw3fMvP0sY1aZda3u88xJBS3LxzZuHhqxNp9++Ono6Fq\nOwefjUfzMUxTmncxOWbu19szM/D5Vl7s3qyMfZuC24Xb8LAzAwsEgUAzJeDYeQjp0qH6F53Yldp2\n2f/5dkBhzYMTE8cstXMOCOypPJKWlnUxj5yZ4pJnw2c4lcutE6u+FTNzR83dL15o5yZAnc+fuWza\nIA4IsBIQDw/Tu3SYujgxate3EwcYOhBcMorctDSB77jOpA+HYd79gmorUy7clpJnykkYu2XEoRup\n32DqStZz20YkT9i6BVUT9+79UPBsbgkVge+5eoOOwau/I1w6XEjg8UqgMw8TIu+a7+bp6yhYMKzj\nxrMlsoKjoaHbP5k1EI0MWbiBV8cCKmfb4kE/jHvN5/3FLR2yFvys98y0mgd5J6Z9u+mnWaMOuQSd\nPrBxsPrktKFd9heU5RxcF/L5yuhxvmuuiNC8Sc7lnEP/nZOilAmYNzwsp4IoIAAErJ6ArORy4vyx\n7d+ar+2KqTX480PlBdmZmlr0C/fDjvS0n4N9+nZvOX1zGVVRU3kqxdyeU6dD++U38rIz02I+G4ry\nR/n3ij1h8KNiTimkAQEGAXn+yR+0/qNfdGfEGQf1MtWlJw9UYd6t8JFqciMG/E7mlqIjWe5/X106\nbGdYP0HVfSrZBvdqFYY7ssW6QXUBQeC69AmzqlwtV+zqrvee1WUXd1WOGvmSGOUUdPz8+B/IkZj2\nmqeL91C/vXkr3+/OVGg+DF6dCZ/qW6sWSuI/6I7xWoUlfVtb/usvh/N0Qjzn18Z+mjBEIow+turj\nd157J2zv6QSUtOvEo+GzVyUFu9mH/LplVfRxxZNf58+c9tF0E9UQAQSAgO0RUN25cset/2j0UJE6\n/Yvn56SgYbnHxTdRPdEzdseio6J3FKeEt6lJmLzq8F2i8izylkDh1il09+rUe/CwyJ8yCo+vQ6rm\nxx01nLm1RD3IAAHselqUYMIUw+lXYyxMGbEdxjMxtQqUo+r6nH7T087NQe6hWuiMq7DRJwM6vI5P\nMf9f+IarMjV6w2nbT1PR4bsve+FVpjbulktJYFhB6srvW4QvD3iBjHLt7TfJx4kM/5hy2OgdLH02\nthB4dcZUSk9s/+Xhrk3rVsTGxsZtWIaS42clFekelcEwHt/ZXTCqgxuZzbXXENSV40aMHoWR8NHw\nKR4S4n/VSlsec8arCRsQAAI4AWHvYf7+AR9tkt6MD2qp3pF6i3rd76UOz+HpPOcRn21A+3v3yT6B\nUx4Xrmvj0KnL5uUzE72bpU5Lu0OVoS59kA4EKALq4h1fl347vi/xM0ZFGu2ZMiJHz1dEWsbUIDFQ\nhQ3s5LR7yuCtCw70EkjLpKVF+f9gNRWFd0ul3EufGJ3Eig4duwffSF2BbudecLEXuLSfuBofkW/l\nwOLDmmm5yvy9XcafOnppSVex7nnE5LFdZnmsL3lckIC6lI0zvCdv1s1qW4AGvDpDSNqHu8YtWZyS\nPmHg62jz/+KvhM/c1cXfJZ95YCinP3LmA0M9DQgBgeZLQNTxvQ/D0A8YTqAG/yOtJnb42w+90Ett\n5O0fnkBuTHkqztzeEp0Y1kKE8URtnOHhD3MoIY2FAJpaXa7sP+KVdixpVJSBDE/i2cUBO1BUQS1a\nInvwEAm2blESmyJVff12a7Tej1u7Nz//G81RvtPds+1v1yg1NrXvNnKOWimvkKvRW8D4O7Ahv77Z\nVTfMpqun+ZZbcWVCz8Ckf/YPdie9YkxTlhuyo3zjd6M8XDpN/aMAjfRr9u8pkFGU64IHHokBIfnV\ntDni72d88MZrg4ltwODxM9YiiXnf7Wb3lGXFP1WpXvFqSWrRYip6UM9ALxwAASDQDAiolSUC93e8\nHHneg/A32C7dLtdVmugo2jvRD1Xroml58th0zWHmQIilOqsf8UcPbifSnQJ2QMBCAmhq1T5wTg+D\nt1+N18E2lBH38p+IXtPJf6hzOB4XXUSrovTp2n9v4Z3CwpKSksKSByUHF72JXhs6mHu3KKSHhSWx\nOjG+UCwRYxnrZy2TqbZ+9wE9fEm2aHMtV10c691/xKlHY3vgK5vgb6v8ki59eBsFRaSPx2s54pN4\n5BY/klm6jAZ4dThJ3aat3DXrk4HR7zGfFHXsOTR+iHPN4Rk7L1MdtMRuzy9/3kYvqGkrd0ePFXgu\nnDTYE9OqHlbUYKdMHjEgBmLRA5X4xjIoqzsz7IAAELBGAsrCw8Fvhu8+U4BWHpUXHg39KDlxf4gr\nauvt/dIXeS4f910OcYd9Nf039Gs3fVhnLnlUdzQLIxCJ5uy5QXHAO/Xa1Evl1C06l86Cfcv4z03Z\nfrYQyZdl73hpxqF9C4abm0SjTgB7IKAnQEytRoX2x5/WpzZjmzSR6TZ8CnoGad7WTHzl3erra6b9\nGrA6ordE4Orh5eXl4eHh5eHu0blbV8zepb23l3tL273V0FZmxH+IRiVjDt3S+WeMFs3VcjHt4+QZ\nfaLKn1Sc24qe+EJbmKTTtQ5dW3m+jFYBjD90kVzP+MapQ3yPL3u2tZgeuUAe+dfMunZMMRsNKw9+\n5YEsE609s+YIufofqqgyPWYqZeHYvoIqrVaeEqr3+hDr8w9qtDVFCVOIB2gwLOjr3x/UoPUGF5C5\n7IZ+vuk/n5Fh3+CvTpdU0/SaN20aAwSAgBUTqL57iO4ffMcsyixEXQS11UoP/mcsSp0S4IhcOjLJ\njHzV9T+QcND2Kyi/+v6ZxaHBdL+RWUj1G2w6S/6OpstgN2bR6RJGGaiyQG9DkYA9O4Gq678hKzpd\nbrD4MNMmUTZWmeq7Wcix4wVOwZcjjj1QYaI+P/UbW16FuDwvKf5rhA41vcy8R8zaG9Bja7k3dkai\njD6D9bdgNKjyK38iqnZ+k8MDnFBkBu57GGxmWjQPCdI9QlxcXFJSUlYWvlYybBwEFMlj2v8x9uSO\nMZ1klWpHZ/FTD8ABbQ7CEA0ErIoA+mK0Uo0JRGIhS2egUlTKlVpHV4m+5+aWV1TKBM4MSQ4MpjqR\nSjn6HplAJBGz39BDb8PBEqIpAoRZisXMoTo8ycAmOWTQimwymRwTOErq83toGzapkd3LLXni1aGd\nK1vTM6CHPkVg2htQ+Nn2GoVMpsT4EonEtGcxQ0/3dB6bRohjI6DVqB5qUovQAjzdJc76jppNFOKA\nABBoBgTQMzVizq5AKHYWGv1QcsuL8Y/Q1L2Z6sQf6+EsQt0KQQIIYBxmaWCTHDLoiQPkeTRPhnxJ\n297cVTegh96WN+0NzFHjiyWuRp2HOXEqDZ6ro0hYtFcVZP0x8UiFeskvaZcL0apUsAEBIAAEgAAQ\nAAJAoIkQgLG6+lwItaLsiVdGZqa9tubx3TvKnu3rM95cnxOBLBAAAkAACAABIAAE6kkAvLr6ABO0\nfG3Y8PpkAFkgAASAABAAAkAACPxLBGAG9l8CDacBAkAACAABIAAEgMAzJQBe3TPFC8qBABAAAkAA\nCAABIPAvEQCv7l8CDacBAkAACAABIAAEgMAzJcDyXB1aB+WZnhKUMwkAbSYNCAMBIPDsCEBv8+zY\nguanIwA2+XTczORi8erQQsRmMkBSYxEICQlBqoB2Y/EEPUAACHARgN6GiwzE/68IgE02hDxJj1UD\ni1cH35ZgJdXokeQ9CtBudLCgEAgAASMC0NsYAYHD/zkBsMmGXAIzY5zwXF1DwEJeIAAEgAAQAAJA\nAAg0FQLg1TWVKwHlAAJAAAgAASAABIBAQwiAV9cQepAXCAABIAAEgAAQAAJNhQB4dU3lSkA5gAAQ\nAAJAAAgAASDQEALg1TWEHuQFAkAACAABIAAEgEBTIQBeXVO5ElAOIAAErJ2AQqE0rIJGJpVKK+WG\nkehIF68xSTCNMNGpF5GVFklV9GE9dNJ5INA8CWhUeruhCKg4bJVKZ+wV0tKbOTlFlWpGHB40sVUu\n+zfKZ0WH5mrERpWlasaUNDh5WaVR16HLaKFO5mnAq2PSoMOqjNhpPGLz+/aAiflrMmLG6VLnbii1\npGOmFUMACAABGyVQdnq9k9tbOXItWT9p7l9BIpGLm5ubxMkvcnMp1Y+UZf8VJnbwj/p+aisXUbuv\nzhSZ+nx6QEY6UcLVxEiy80F/Xfv8+Ig4W7106rVDqPkR0MiK0hIixSN/lzHqLruBbFXsHxmJbNU+\nMsnMj5o07+h8P0cnjzFJp29WGzp1RrbKZf+M01pZ0EyNWKmyVs+IkrzgaJBY7BI21UXi4LfioIKR\nx3KdjExEUMvYVq9ePWjQIEZEsw7m74okYaWV1BiAeHSCjA/a9I9BfD0PgHY9gYE4EGjCBB6dRd2C\nXetPc+W1eCkf44eLk9Ozz2fEBLqgsHDpYTWKr7kd7iScf+gOURP5vvA2wvE7lMQByx8jnUii8nJo\nS5+YhC0JCQnx8THJWXfxXBbohN6GBW/zi6ouzpoXHu7Dt7Ofvk1OVV99PwvZ5/y0W3hE5bV5EqH9\n3J10KiWF9srTm+ciyYjt51gs1shWueyfoc7KbJK7RqxUGRVlBI0pXQwU8oM2ncUlKq+FthDowlpt\nnTrN0GNZhRhdNtgQgXYv9yU5LP715JvzfPkUlJydq8mgiwjoUVBgDwSaMwHt443ThzEBXN0eO//I\nvQVD2qDI3smXnrj3WJSDD8o5lheff6J+Vycq7t73DWxrVTXy+ZiZybCJThR9ddeSRMnoS/4ju3u4\n0j2SxnKdpmeBmOZEQNRuUPSqAbsrt41jjNTlp2/miQa/168zTsLp+U9++3LZqKC0T5980MmByaYg\nZcmASStCt15eOaYXMx4Pm9gql/1LjHNazbGZGrFSZamYCaWc7T+k8F4/FfAqLuz0fMT64D6zoy8E\n7OzryrNUJ8tpMJiBZaNCxKmrhUERi5D7nLlw3impblYFq76+MLIo5UAiI5smL22Tr4AfFOhn5+Cz\n+1o5hqnSYqYFh0VEhIWtPZyPJC8kRoeFBs9Zd5yahGHkhiAQAAJWTiAnYeyWEYdupH6DqSvJqnQM\nXv0d4dLhhwKPVwKdeZgQ3QXy3Tx9HQULhnXceLZEVnA0NHT7J7MGsv7UmerEqm/FzNxRc/eLF9q5\nCXi82D9zyXNZrpOUh7/NmwDL81s8YesWFBT37v1Q8GxuCRWB7zUPTkwcs9TOOSCwp/JIWlrWxTzm\nXKGprXLZP1OndYXrqhELVaMKmlBS5KalCXzHdXblkZLe/YJqK1Mu3JZSGevWSUka7MGrM8BheFDZ\nvt/oWetDtcqslSnnyaSCQytTZ3w/pNtztKTmwenu70z94GTZzl3HzsW0GDvitzJMOHxahMvva9am\n9xnztjeS7Dv6vbyU2tCJPix35LQiCAABIGCFBGS5/3116bCdYf0EVffp4otd3fWNXV12cVflqJEv\niVGyoOPnx/9AU2DTXvN08R7qtzdv5fvd6Vx0gFUn5tB++Y287My0mM+GIsko/16xJ4ifXst00soh\nAASYBNQqDHcminXDdwJiCuq69AlTprwgO1NTi8R+2JGe9nOwT9/uLadvLiMkWG2V0/6ZSq0q3MAa\nsVCqLj15oArzbuVIcyDIn8wtpSOeLgBenTluhSqHvu9PRl1wyudrctBD0Np7CR/9N3GWnwTTP+DM\nF4jR1HgPD3S/rVGLOmseZdxDki69otaH1tz+bM/lCnSC0lO7Tn/xRW9HnUtu7pSQBgSAgBURqLo+\np9/0tHNz3DFMLXTGC07PjFK1KEhd+X2L8OUBL5ARrr39Jvk4keEfUw4Xmd6Qc+oUunt16j14WORP\nGYXH1yEN8+OOkj/FdeukCgN7IGBEoMPr+MMD/xe+4apMjZ7Q3/bTVHT47steTLHHxTfRYUxW8bHo\nqOgdxSnhbWoSJq86fBfjtFV9biP71ydYbajeNeKgJLbDeIypcJIH7jE0bAOvziw/ZTXmMvCbz9vU\nlv/6y9ECWfae2Far3+1kr2a+++PWZ6dS4Z23Bb3vNmB6AtbCS0A4bz3fn4a8vVlxf2swzbHlcRvH\nvGj2TJAIBICA1RFQ7J4yeOuCA70E0jJpaVH+P1hNReHdUiljkQJl/t4u408dvbSkq5joF7SPk8d2\nmeWxvuRxQUJQS/XGGd6TN9MzLkT969aJxLx8Zp7fEKJOS7uD323WqdPqwEKB/z0Cjt2Db6SuUKd/\n8YKLvcCl/cTV+BhcKweTuxMMe6kDMUnFcx7x2QYkc+9+Wb3t/9+r1rM6k3GLrvs8HC1aZe/5ikjL\nePyCGKrDBnZGd4gN2kg9DVJh85mHTFuPLX9/lX+XVRi25swjdBX0I3Wo8sri2OE95wmX5svVMalR\nXac+0gFxeWXu0qEpC1YcmOLwx53567rq7s5tHhdUEAg0FwJVBbEpUtWOt1t/ra/xO91ThOv+Uc58\nGY+quDKhZ2DSpUeD3XU9raYsN2RH+ZarozxcnKb+UdBqTo+gX/YUyCa6SqiB/Dp1UqdqIcJ4ojbO\nAl7dOqkssAcCrAS6jZyjVs6Qq0WS2pvzPV+KeW/Dm0Y/WDV4Pmk12olQQNSuF3qVu6i6sL72z3p2\na4o0adF1F56rRa89ldzFATtQVKHFyDs+2YOHSFtrN5xwQzYYq+Okp5JVEM83YyLvt5NCWyE5+w4/\nBvRzQwEB45W1okM/Rx2rTNs22wv120riWWndTQ7/9XFfoWfyRg70x1a+31D3m7OYkAAEgMD/iIBT\nj72FdwoLS0pKCkselBxc9CZ6nPxg7t2ikB54gdTFsd79R5x6NLYHvrIJOkz8JV368DYK6t6e57Uc\n8Uk8elbpkUz3GhW+4qh5nbgi3aaufsQfPbidCKs2q5MShz0Q0BNgDhGRsXyhWCLGMtbPWiZTbf3u\nA3oIiVwF13sQ/t72pdvlOhWy4p+qVO1b9aqv/TPfsdCXxlpCbC2aWSNTquZa9Pg+vfwnopef8h/q\n3sV8XHTRzm1yn3Y0e5yLqc46aYFXx4mo4Nz+1NPXiWsmHhH+I5L7fF2QB3FHXV6Ev9laocQnYp+o\ncJE9BzPzsv+MmrQJTcHknMi6/RhP4rcfhJ4/QC+NzxnkjQ5hAwJAwLYI8F09vLy8PDw8vDzcPTp3\n64rZu7T39nJvKcJnRWf0iSp/UnFuayyxhUk6XevQtZXny+jBjPhDF8nFy2+cOsT3+LJnW/zuHM3s\nCESiOXtuceks2LeM/9yU7WcLkXBZ9o6XZhzat2A4eifDkVunbdGG2jQKAXzYuDb1Ujm1roNOqbYy\nI/7DNz//O+bQLd19iN4mb/Db+6Uv8lw+7rscGZ7tavpvyP+YPqwrl61y2T/+wpCVbhwtmqoRC9U6\nW3S34VPQIhvztmbivUH19TXTfg1YHdGbHrZHw0esV6pOgIwF8rRm1rVjitl+uKY0IXQIiU4wdnVB\ntVZbWxbzVjixvqgyM34aTdV32s8FxVnowqAYJHlwZywe8FyYKyNWItVqK86tEw7Xr/fIRAe0mTQg\nDASsnUB+6jf0KsQ3dkairsBnsP5FWDqp/MqfqMew85scHuCEIjMKqsiKV13/A2UJ2n6FyYGps+Tv\naCRAbnZjFp0u0WVE8lw6aVXQ29AomnNAff/M4tBg0oR8g7/KLES/bVp1eV5SPP4MATKqzLxHTD4G\nNlkrPfifsUhsSoAjcukyC/XmR2Zh2qoZ+6f1W5dNmqkRK1VUTQN6VLWZlFBc9V3cf+AFTsGXI449\nUEGJcemk0s15azwkRF5j9DcuLi4pKSkrC19pGrb6EFApFFqxGL/hRiOufKG+K89c7PWX3+mlQzxN\ntQFtUyYQAwSaBwGNQiZTYnyJRMJ8KF1RKRM4S/TdhwkLjUohR99pEogkRG9jmM6uk5SB3saQFRzp\nCWhk93JLnnh1aOfKYlSYkU2qFJVypdbR1ZyV6lWbDTUHmzSix8FDI5PJMYGjRMzsDDhkqWgz9PBB\nJtgaTEAopsZhSZdOVnDiwCVl1+dKhsQH3prH4tI1+IygAAgAAeslwBdLXKk+Q18LsbPBIzX6BCqE\nP/zE6fSx66Sywh4IsBPgS9r25rY7I5sUip2FpobLrhhiMSN6HETwuzuOpKeJBq/uaajVmef+8bhx\nk5KQGFrgpxMwrpMXCAABIAAEgAAQAAINJgAeR4MRsinoOGpZZsYM+7bdX+vRji0d4oAAEAACQAAI\nAAEg0MgEwKtrZKCkOqFrp8FDOz0T1aAUCAABIAAEgAAQAAJsBGBlEzYqEAcEgAAQAAJAAAgAAWsj\nAF6dtV0xKC8QAAJAAAgAASAABNgIgFfHRgXigAAQAAJAAAgAASBgbQRYnqtD66BYWy2suLxA24ov\nHhQdCFgVAehtrOpyNYvCgk02+mVm8erQQsSNfhpQaEogJCQERQJtUzIQAwSAQOMSgN6mcXmCtoYT\nAJtsCEOSHqsGFq8Ovi3BSqrRI8l7FKDd6GBBIRAAAkYEoLcxAgKH/3MCYJMNuQRmxjjhubqGgIW8\nQAAIAAEgAASAABBoKgTAq2sqVwLKAQSAABAAAkAACACBhhAAr64h9CAvEAACQAAIAAEgAASaCgHw\n6prKlYByAAEgAASAABAAAkCgIQTAq2sIPcgLBIAAEAACQAAIAIGmQgC8uqZyJaAcQAAIWDsBhUJp\nWAWVtKysTCozjNQdaVQq1ngqUiOTSqWVcuqQZS8rLZLSOjQqJC+rNCoASy6IAgIstmeJ/XDK4LbH\nZqt127CtXAsuAsz61S1j0KKprCa9CpXAsQevjgMMpspaE8mjNsG0+Nv/397ZRzVxZQF8QkICwSTC\nCoqCVYqu1dXarp52Raila2urdYWgzbbddsXvs9sipduzsu3p+lW7HtBTpNsuaKviVnRVXPEzVtEV\n6rcoSoqooASCigQIBAgMZN98JJkkM5MU4RTCnT+Y9+67782839x3uTPz5gW8JRcqkAMBIIBhNee/\nHhDw0nWjmYJhKD0SKfINCAoKClB4L8qoZDiQDkOlOjNJOmsne7iHYXWaI0qJRBEQECAfEJW0rdoa\numHYj1k2v+Q/cX0teTRj+WmlVKpYsFAh94nacKwZLgcQ4CDAanvu2A+XDrJzpUQ6MykJ2ap3UnZ1\nB31gHhvmOLW+KuYiwOwPjw7riLbWdfAqVjlfwszY0tLSpkyZwhD096T+0hbETvnPsz0BAmj3BFVo\nEwj8PARqLyJf4RX0nsbYSZxAfeFUoVdOUYVerz2WnoiKUgqqqBNrrSpYkZCASr0Xf2dkPdd6oqnV\nu04WXc5LiVWgtHjt9zil2XgjfuDUlMztmZmZ6ekpuwoqCHF9YaxYqNxykUg3lsT7iug0kac38DYW\nEv16z257btgPl43hDwqQfSar7xBYG0tWyMXeH+wlrJrHhi1XwDNskpOApZtoz6fDOqKtdR28ilVu\nNvPQwxhqfHpMtf6Tbrr5H2Sy8buLe6LLPFelJw4HbQIBINBTBDrrMpUDka+wRnVNZafybjXRh2sp\nQVFX8vF7jKPjOfGBYhV7VKfJUCWfuk8rt99dPdDHW7W1gcxrtqm8h6/X6PR0kEcKizJUAknEeT0Z\nTZrNRdtUXrKYy5Ys1Q54G5on7MyOtueO/XDplO5cjGwv32Js2txP0CjIKW/hsWHrFfAMm+QiYO0m\nSvDosI5ouq6TV2G2yUMP3sAiI3S1tZkx/H5W8kJlVNTaI2WY+dHm5XOVsVFx69Cbjo7KK6c2r14Y\ntShdvW8DemErlMceKmmgWjQ9LFyjVBDCaQn7C3WuDgPlQAAI9EkC1zPnbX/1eCn6l4Y3Uh3wG/nC\ntHA/Kl35w77cIeuWRQ5n9I3xOpYhpZJPxKV9+sJgWiwKfiZWJsDExK8Atd5JWbqnveKjsUMDRAJB\n6mENqdOsUatFkW+M9BdQVcImKTsbc67craNbgB0QsCPgYHvu2A+fjkAc5GtpP3D0JJS8qNFx2rBF\n05P2rAQcOsiuwz6i6arOXsWhTa4sRHVcZOzloiF/SP7zvjNnyvQtmGDQwo2Zc7yKc4v0OCZsb67a\ntvLbM5vfm3VlxOVz++eYDsSuPEzMa2m4+mbo5NEry82dNVvD/h3z7LBDzJk19s1DDggAgT5KwKD5\n9tdrp+9dMEnU9MChCwbdjazkeaEvJZvDMbyDnm/noOOclfoHiq1SvKZwX+PrsyZIkcQn9PPSW0X5\n6pT3p6HchzPHpf6gw1qrzx5twsIG0SEkKiB/BvKspholYQMCLgi4Yz/cOngbRtxCVNETREWk7d2s\na+G0YRdn0/eKuQgwe8KpwzqiyZo8XoXZMmsaojpWLKxCXzRhhS4QiGUKIUqj/MipMYsjZehlyqM1\nsc8+Nyt+2SBK5/ruf+yXzDbXXFOfuo7JCM7r1SV0ddgBASDgGQSabiZOWqy+lBiIYbhYRvSJcAzU\n1nav+F7A5NnIb+AnP/plYk4XPmIoz934d9+Ez2PGki2KA0NGjI+YnvRFnvbMV0iSvOk0+ncq9cIE\nTp9d0O8L6DOBHRDgJOCO/XDpDH9+Omp3WULGjwYcfYfx3RcLUXbG0yHMg9nbMLPEE9LuEODWYR/R\nGJ9XcQ0NojrXjGgNMqJj9ZWyMOLWmiwXjn7+d5gew8zNd86dELwR7Y8K2ttDY3Ly8/I2RoW6fTBQ\nBAJAoPcTaN4/P2LHx0fHiepq6qory65i7Q3aiuo6enkR8fjpM2fGvL2l7na6ciC+J/eO5fNYNztm\nKjvw5O/Pnb62JlxKv121VgyZuvRyhgpXq+/h0mHPSMxyawnliLDfjERxJmxAwBUBiZ9r++HW8Rsd\nV5q7Ad20jFV4ixSh76TVoOMN8rHd2fDYsKsz6xvlLgmgbrijYxvRRiOvV3GNhQxFXKuBBk2A+CDN\nxUZPrEFaQmPwtBdftL1MwSzffLtoAYqBABDoCwSaylNz6tr2/Dbob7azfWV0jvirq6alT9tEkide\ne2vB++oym8SdVEPxm0/FZl+rjQhk99K+EkwgGSzzVgx70gc7WtlgxqjYz/DwEWo+KEDizkFAp78T\nEMhd2w+vzqhZibhpiRGXyDtvJw+bkPJaRnT4AJqqKxv2DPh8BCw9dEeHHtEm97yKpWXnPTyrc2ZC\nSIjlAtvou94GDCdE5B/LszrazzLdLVlOKJKbyFvm1bYz7vDtJlqgvxQ3Y4fTexK6EHZAAAj0PQID\nxhzQ3tNqdTqdVvdQd2xVNPr49JimolI1xqEvuEknCnwlxM/ukRvzARulb1sbFq9KDZv86rnaeWPI\nG0m8Kuubkw4vcPHWWuHsiKES6biZ76BPKMoe0fP26isLvQL+OHEo4/Gdw9lAtt8TYNieC/shbdKF\njlAslUuxvK//tM7QtuPTObTluWHDHnMd2AlgmG1Eo6c8rJQYCOgRHfCUm16FUdUuCVGdHQ46Y67f\nHh465N2dOpxwlDPGkm9OfXwGe3vlfPCvgnKJMdaHAAAEH0lEQVTthW3vxnxTg98vuniXiNNMBuIh\nnA9Rua303MnO4lt6TBwZvwHlY381Y/Oh/At5uyODnote9zo4WgISbEDAQwgI/YNDQkKCg4NDggOD\nR44Kx7wVoWEhgQMlJu33cdEJ+y+UI9dg1J6Of3tX1iEVMR+D3oj7wc7ca3rGFxToXZVIIkn8bylm\nrt+1ZOKH+paGSztSyW2BfETJ8PAHB9cJfzF/90UtqltTtGfCkuMHP34ZvQoY9fJ8NHVvxY58wg21\n3vxy0daYtOXj5XYRJH1Y2AEB8mEF0/Z47Mdqkzw6BFFzY176W9F/OZFy/A59H8Jhw8RHPx65ORNA\ngYF1RFNddtIpZx/RnF7FXXJuroDCVOsHaePBBHplgeWb/2eydLjsKBGooU25elPCAHFkwqpdeTfy\n0xdRwuSsE/nZa6m0csMJkxnX7PuMyqK/X+aR6zRamkJ7nvVmGFqQBAJAoG8QKMv9xLpeXWvFcevY\nj5y7Kl9rWbuOWJL0wur4OKo0Mu6v+dpWqnvU6pjK3cWle5NQ6dQI29wNqlndCZs/8Zq76rzO1mZr\nRQEK7ASx84nliFOPUovbMamBt2HS6LdpLtvjsh+rTSJirDq4/lZ2OjH/ABlk/q1aK1guG7YqoIRn\n2CQXAdRBKz0uHZ4RbQXF9CpWIT89ASq2ep9NmzZlZ2cXFBCrRff7Df2AnQGToAfLdtNTOtqajbgQ\nCTvaOoRi25xQLlwdzY0GE5px4C910gXaXNBADgQ8gQByFiYcE0mkbjgKqr/IW4hkcls050SB8D+t\nRJsOfolU7DAYjJjIT+7sazAMvI0TSxA4EGC3H3ubdNTpMNzX6FpChg/1t/9H6dA0a9YzbJKfAEVP\nyE2Jd0SzYqOFPPSYE8P4muh/ZUK5P+OFiaX/xKtx0um6E9KhSkKpzN9jHzpboMAeCAABZwLIWUh5\nIjTnCphU5mKOhtX/sFTGhHK5i+pstUAGBCgC7PZjb5OOOkL5kPH92+j4CdD0uCnxjuguWibMq+si\nOKgGBIAAEAACQAAIAIFeRQCiul51OeBkgAAQAAJAAAgAASDQRQIQ1XURHFQDAkAACAABIAAEgECv\nIgBRXa+6HHAyQAAIAAEgAASAABDoIgGI6roIDqoBASAABIAAEAACQKBXEYCorlddDjgZIAAEgAAQ\nAAJAAAh0kQDLyiZoHZQuNgbVfjoBoP3TmUENIAAEukIAvE1XqEGdniQANtntdFmiOrQQcbcfBhp0\nJqBSqZAQaDuTAQkQAALdSwC8TffyhNYenwDY5OMwpOixtsAS1cFvS7CS6nYhdY8CtLsdLDQIBICA\nAwHwNg5AIPuzEwCbfJxLwPOME+bVPQ5YqAsEgAAQAAJAAAgAgd5CAKK63nIl4DyAABAAAkAACAAB\nIPA4BP4P6Bjnf1iX39wAAAAASUVORK5CYII=\n" - } - ], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice that the HTML snippet shows a table with three lines above it. The first two lines have information that describe the table. We need to look at both those lines to understand what the table contains. So we need a different function that will capture all those lines before the table. The funtion lines_table() described below will do this.\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.results import readhtml # the eppy module with functions to read the html\n", - "fname = \"../eppy/resources/outputfiles/V_8_1/ASHRAE30pct.PI.Final11_OfficeMedium_STD2010_Chicago-baseTable.html\" # the html file you want to read\n", - "filehandle = open(fname, 'r').read() # get a file handle to the html file\n", - "\n", - "\n", - "ltables = readhtml.lines_table(filehandle) # reads the tables with their titles\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 18 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The html snippet shown above is the last table in HTML file we just opened. We have used lines_table() to read the tables into the variable ltables. We can get to the last table by ltable[-1]. Let us print it and see what we have.\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import pprint\n", - "pp = pprint.PrettyPrinter()\n", - "pp.pprint(ltables[-1])\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[[u'Table of Contents',\n", - " u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", - " u'For: PERIMETER_MID_ZN_4',\n", - " u'Timestamp: 2014-02-07\\n 12:29:08'],\n", - " [[u'',\n", - " u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',\n", - " u'FANGERPPD {FOR HOURS SHOWN} []',\n", - " u'FANGERPPD []'],\n", - " [u'January', 102.637, 12.585, 32.231],\n", - " [u'February', 147.054, 10.5, 24.225],\n", - " [u'March', 286.835, 8.799, 16.86],\n", - " [u'April', 363.165, 7.704, 9.628],\n", - " [u'May', 428.458, 19.642, 21.401],\n", - " [u'June', 431.25, 10.092, 9.954],\n", - " [u'July', 432.134, 8.835, 7.959],\n", - " [u'August', 443.5, 9.743, 8.785],\n", - " [u'September', 408.833, 15.91, 14.855],\n", - " [u'October', 383.652, 6.919, 7.57],\n", - " [u'November', 243.114, 8.567, 15.256],\n", - " [u'December', 91.926, 14.298, 29.001],\n", - " [u'\\xa0', u'\\xa0', u'\\xa0', u'\\xa0'],\n", - " [u'Annual Sum or Average', 3762.56, 11.062, 16.458],\n", - " [u'Minimum of Months', 91.926, 6.919, 7.57],\n", - " [u'Maximum of Months', 443.5, 19.642, 32.231]]]\n" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that ltables has captured all the lines before the table. Let us make our code more explicit to see this" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "last_ltable = ltables[-1]\n", - "lines_before_table = last_ltable[0]\n", - "table_itself = last_ltable[-1]\n", - "\n", - "pp.pprint(lines_before_table)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[u'Table of Contents',\n", - " u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", - " u'For: PERIMETER_MID_ZN_4',\n", - " u'Timestamp: 2014-02-07\\n 12:29:08']\n" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We found this table the easy way this time, because we knew it was the last one. How do we find it if we don't know where it is in the file ? Python comes to our rescue :-) Let assume that we want to find the table that has the following two lines before it.\n", - "\n", - "- Report: FANGER DURING COOLING AND ADAPTIVE COMFORT\n", - "- For: PERIMETER_MID_ZN_4\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "line1 = 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT'\n", - "line2 = 'For: PERIMETER_MID_ZN_4'\n", - "#\n", - "# check if those two lines are before the table\n", - "line1 in lines_before_table and line2 in lines_before_table\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 21, - "text": [ - "True" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# find all the tables where those two lines are before the table\n", - "[ltable for ltable in ltables \n", - " if line1 in ltable[0] and line2 in ltable[0]]\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 22, - "text": [ - "[[[u'Table of Contents',\n", - " u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", - " u'For: PERIMETER_MID_ZN_4',\n", - " u'Timestamp: 2014-02-07\\n 12:29:08'],\n", - " [[u'',\n", - " u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',\n", - " u'FANGERPPD {FOR HOURS SHOWN} []',\n", - " u'FANGERPPD []'],\n", - " [u'January', 102.637, 12.585, 32.231],\n", - " [u'February', 147.054, 10.5, 24.225],\n", - " [u'March', 286.835, 8.799, 16.86],\n", - " [u'April', 363.165, 7.704, 9.628],\n", - " [u'May', 428.458, 19.642, 21.401],\n", - " [u'June', 431.25, 10.092, 9.954],\n", - " [u'July', 432.134, 8.835, 7.959],\n", - " [u'August', 443.5, 9.743, 8.785],\n", - " [u'September', 408.833, 15.91, 14.855],\n", - " [u'October', 383.652, 6.919, 7.57],\n", - " [u'November', 243.114, 8.567, 15.256],\n", - " [u'December', 91.926, 14.298, 29.001],\n", - " [u'\\xa0', u'\\xa0', u'\\xa0', u'\\xa0'],\n", - " [u'Annual Sum or Average', 3762.56, 11.062, 16.458],\n", - " [u'Minimum of Months', 91.926, 6.919, 7.57],\n", - " [u'Maximum of Months', 443.5, 19.642, 32.231]]]]" - ] - } - ], - "prompt_number": 22 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That worked !\n", - "\n", - "What if you want to find the words \"FANGER\" and \"PERIMETER_MID_ZN_4\" before the table. The following code will do it.\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# sample code to illustrate what we are going to do\n", - "last_ltable = ltables[-1]\n", - "lines_before_table = last_ltable[0]\n", - "table_itself = last_ltable[-1]\n", - "\n", - "# join lines_before_table into a paragraph of text\n", - "justtext = '\\n'.join(lines_before_table)\n", - "print justtext\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Table of Contents\n", - "Report: FANGER DURING COOLING AND ADAPTIVE COMFORT\n", - "For: PERIMETER_MID_ZN_4\n", - "Timestamp: 2014-02-07\n", - " 12:29:08\n" - ] - } - ], - "prompt_number": 23 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "\"FANGER\" in justtext and \"PERIMETER_MID_ZN_4\" in justtext\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 24, - "text": [ - "True" - ] - } - ], - "prompt_number": 24 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Let us combine the this trick to find the table\n", - "[ltable for ltable in ltables \n", - " if \"FANGER\" in '\\n'.join(ltable[0]) and \"PERIMETER_MID_ZN_4\" in '\\n'.join(ltable[0])]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 25, - "text": [ - "[[[u'Table of Contents',\n", - " u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", - " u'For: PERIMETER_MID_ZN_4',\n", - " u'Timestamp: 2014-02-07\\n 12:29:08'],\n", - " [[u'',\n", - " u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',\n", - " u'FANGERPPD {FOR HOURS SHOWN} []',\n", - " u'FANGERPPD []'],\n", - " [u'January', 102.637, 12.585, 32.231],\n", - " [u'February', 147.054, 10.5, 24.225],\n", - " [u'March', 286.835, 8.799, 16.86],\n", - " [u'April', 363.165, 7.704, 9.628],\n", - " [u'May', 428.458, 19.642, 21.401],\n", - " [u'June', 431.25, 10.092, 9.954],\n", - " [u'July', 432.134, 8.835, 7.959],\n", - " [u'August', 443.5, 9.743, 8.785],\n", - " [u'September', 408.833, 15.91, 14.855],\n", - " [u'October', 383.652, 6.919, 7.57],\n", - " [u'November', 243.114, 8.567, 15.256],\n", - " [u'December', 91.926, 14.298, 29.001],\n", - " [u'\\xa0', u'\\xa0', u'\\xa0', u'\\xa0'],\n", - " [u'Annual Sum or Average', 3762.56, 11.062, 16.458],\n", - " [u'Minimum of Months', 91.926, 6.919, 7.57],\n", - " [u'Maximum of Months', 443.5, 19.642, 32.231]]]]" - ] - } - ], - "prompt_number": 25 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Extracting data from the tables" - ] - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading outputs from E+" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# some initial set up\n", + "# if you have not installed epp, and only downloaded it\n", + "# you will need the following lines\n", + "import sys\n", + "# pathnameto_eppy = 'c:/eppy'\n", + "pathnameto_eppy = '../'\n", + "sys.path.append(pathnameto_eppy) \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using titletable() to get at the tables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So far we have been making changes to the IDF input file.\n", + "How about looking at the outputs.\n", + "\n", + "Energyplus makes nice htmlout files that look like this." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", + "data": { + "image/png": "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BEiABEiABEhg6hCg8zF1+pKWkAAJkAAJkAAJkAAJkMCkJkDnY1J3D5UjARIgARIgARIgARIggalDgM7H1OlLWkICJEACJEACJEACJEACk5oAnY9J3T1UjgRIgARIgARIgARIgASmDgE6H1OnL2kJCZAACZAACZAACZAACUxqAnQ+JnX3UDkSIAESIAESIAESIAESmDoE6HxMnb6kJSRAAiRAAiRAAiRAAiQwqQnQ+ZjU3UPlSIAESIAESIAESIAESGDqEKDzMXX6kpaQAAmQAAmQAAmQAAmQwKQmQOdjUncPlSMBEiABEiABEiABEiCBqUOAzsfU6UtaQgIkQAIkQAIkQAIkQAKTmgCdj0ndPVSOBEiABEiABEiABEiABKYOgaR4puzbty9eEeaTAAmQAAmQAAmQAAmQAAlc5gRWrVqFmTNnxqQQ1/lQtZUgJhIgARIgARIgARIgARIgARKYCIFpmqSJCGBdEiABEiABEiABEiABEiABEkiEANd8JEKJZUiABEiABEiABEiABEiABCZMgM7HhBFSAAmQAAmQAAmQAAmQAAmQQCIE6HwkQollSIAESIAESIAESIAESIAEJkyAzseEEVIACZAACZAACZAACZAACZBAIgTofCRCiWVIgARIgARIgARIgARIgAQmTIDOx4QRUgAJkAAJkAAJkAAJkAAJkEAiBOh8JEKJZUiABEiABEiABEiABEiABCZMgM7HhBFSAAmQAAmQAAmQAAmQAAmQQCIE6HwkQollSIAESIAESIAESIAESIAEJkyAzseEEVIACZAACZAACZAACZAACZBAIgTofCRCiWVIgARIgARIgARIgARIgAQmTIDOx4QRUgAJkAAJkAAJkAAJkAAJkEAiBOh8JEKJZUiABEiABEiABEiABEiABCZMgM7HhBFSAAmQAAmQAAmQAAmQAAmQQCIE6HwkQollSIAESIAESIAESIAESIAEJkyAzseEEVIACZAACZAACZAACZAACZBAIgTofCRCiWVIgARIgARIgARIgARIgAQmTOCydz68g8MYmTDGqSlgxD+M/v7hCRl3MWRMSIEEK8fTM15+gs18+MVGvOjv7UU/n3OD/cgweru70S1MBr3qkz8ifAb5N+DDfzLZIgmQAAl8sAT8Z9DX74vRxvvo63wHZz7AQeCpzjfx2ol3cGr4/Rh6yP9Efh/ODJ7B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irVNhAhKKxIgARIgARIgARK4oQTmpXzcUIluSOTqRwJTsbsF6JhSsN270nsc1UkrcKyiA84T24MeUG+IIIyUBEiABEiABEiABEiABJYsgTmv+YhPUgZs3lWlib4jMx8lBw/ioHy5O19VPExV6D2yjYpHfBYspSYBEiABEiABEiABEogjAktk5MNdIjKdSJ1y9O5V+VBdyu24+55sLI8wFSyOypGikgAJkAAJkAAJkAAJkMCiJ7C0lI9FXxwUkARIgARIgARIgARIgAQSl8ASmXaVuAXInJEACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQoDKR7yUFOUkARIgARIgARIgARIggTgnQOUjzguQ4pMACZAACZAACZAACZBAvBCg8hEvJUU5SYAESIAESIAESIAESCDOCVD5iPMCpPgkQAIkQAIkQAIkQAIkEC8EqHzES0lRThIgARIgARIgARIgARKIcwJUPuK8ACk+CZAACZAACZAACZAACcQLASof8VJSlJMESIAESIAESIAESIAE4pwAlY84L0CKTwIkQAIkQAIkQAIkQALxQiB25cNlw+jwMIZHRzFpd0n+XBgfnZRf3bgcNoyP2+Il35HljJLXyIHpSgIkQAIkQAIkQAIkQAIkEIpATMrH+MVm5KdkInf111D7dCmy01OQX5CCFTubYFdjdQ3i66mZWLEiEwfbR33piEJi0xQVn9UtOXMN40hBEpKS3P8lZ3W5QwgTNa8hwiw+KzvOluf78uvJd9CxpLFv8YlOiUiABEiABEiABEiABBKWQHTlY/IcdjxYCmvZGcwo59D40jk4J3pR0C1M7r4TySoa11W840Z0eeRd95kN9Zsz8fwbmnritrtFh+Q8PHduGg1md/pjdu+ITYBEseQ1IMBivUjDE42XcaHOk2Gg0jIERVHgdM5gpNeCYhF97NpilZ9ykQAJkAAJkAAJkAAJJCKBqMrHeP/PYFVz/o4dU24CyVkb8O2hJqB7Qn+IN2xA3YUOtLb2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yEdcFVecCqtOIZMpau+qU/ZSbsfd92TLtD3PVDw7RuWbLK7Ue5C33Ds0EqcZpdgkQAIkQAIkQAIkQAKRCFD5iESHbiRAAiRAAiRAAiRAAiRAAgtGgNOuFgwlIyIBEiABEiABEiABEiABEohEgMpHJDp0IwESIAESIAESIAESIAESWDACVD4WDCUjIgESIAESIAESIAESIAESiESAykckOnQjARIgARIgARIgARIgARJYMAJUPhYMJSMiARIgARIgARIgARIgARKIRIDKRyQ6dCMBEiABEiABEiABEiABElgwAlQ+FgwlIyIBEiABEiABEiABEiABEohEgMpHJDp0IwESIAESIAESIAESIAESWDACVD4WDCUjIgESIAESIAESIAESIAESiESAykckOnQjARIgARIgARIgARIgARJYMAJUPhYMJSMiARIgARIgARIgARIgARKIRIDKRyQ6dCMBEiABEiABEiABEiABElgwAlQ+FgwlIyIBEiABEiABEiABEiABEohEgMpHJDp0IwESIAESIAESIAESIAESWDACVD4WDCUjIgESIAESIAESIAESIAESiESAykckOnQjARIgARIgARIgARIgARJYMAJUPhYMJSMiARIgARIgARIgARIgARKIRCA5kqPq9uyzz0bzQncSIAESIAESIAESIAESIIElTqCtrQ39/f0RKURVPtTQakQ0S4NAUVERyzvBi5plnOAFzOwtaQJs30u6+Jl5ErilBNT+JxYTk/KhRhRNi4klMfpZ/AQ8I10s78VfVvOVkGU8X3IMRwKLnwDb9+IvI0pIAolKwNP/RMsf13xEI0R3EiABEiABEiABEiABEiCBBSFA5WNBMDISEiABEiABEiABEiABEiCBaASofEQjRHcSIAESIAESIAESIAESIIEFIUDlY0EwMhISIAESIAESIAESIAESIIFoBKh8RCNEdxIgARIgARIgARIgARIggQUhQOVjQTAyksQh4MDo4CBsrsTJEXNCAjeOwM1rLw7bKIZHbX5ZiZa2A+Ojk/A05dnh/aK6Aacuh92b9g2InlEuEQJqPbJNTsJm89Unh91xA3M/t3Zzs9tVYMYDZQ10W9ir2flk/3M9hKl8XA89hr1BBOxoLklCUlLk/5LGvgVM34FztSWSZipy1z2KN2eConaNor4kP7JMhY2wBwXj5TwJJAxvB9qP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BGh8+NOgnwRIgARIgARIgARIgARIYNUIcNjVqqGlYBIgARIgARIgARIgARIgAX8CND78adBPAiRAAiRAAiRAAiRAAiSwagRofKwaWgomARIgARIgARIgARIgARLwJ0Djw58G/SRAAiRAAiRAAiRAAiRAAqtGgMbHqqGlYBIgARIgARIgARIgARIgAX8CND78adBPAiRAAiRAAiRAAiRAAiSwagRofKwaWgomARIgARIgARIgARIgARLwJ0Djw58G/SRAAiRAAiRAAiRAAiRAAqtGgMbHqqGlYBIgARIgARIgARIgARIgAX8CND78adBPAiRAAiRAAiRAAiRAAiSwagRofKwaWgomARIgARIgARIgARIgARLwJ0Djw58G/SRAAiRAAiRAAiRAAiRAAqtGgMbHqqGlYBIgARIgARIgARIgARIgAX8CND78adBPAiRAAiRAAiRAAiRAAiSwagRofKwaWgomARIgARIgARIgARIgARLwJ0Djw58G/SRAAiRAAiRAAiRAAiRAAqtGgMbHqqGlYBIgARIgARIgARIgARIgAX8Csf4nwfwvvvhisMu8RgIkQAIkIARaWlowODhIFiRAAiRAAiRAAlEQiGh8KBnqP1e6tUcgPz+fdbf2qo0aryEC6h6jIwESIAESIAESiJ5AVMaHEscve9FDvVlienqtWHc3S41Qj/VGwHOPrbdysTwkQAIkQAIksFoEOOdjtchSLgmQAAmQAAmQAAmQAAmQQAABGh8BOHhCAiRAAiRAAiRAAiRAAiSwWgRofKwWWcolARIgARIgARIgARIgARIIIEDjIwAHT0iABEiABEiABEiABEiABFaLAI2P1SJLuSRAAiRAAiRAAiRAAiRAAgEEaHwE4LjVTtywT09ietoOtyq62wm7S/fpIFz2cYyO228CKOH1vAkUjEoFt0v4Tk/DbncavCWVy+mKKu3NFOnmaRc3ExXqQgIkQAIkQAIkEA0BGh/RUFqHcdzTPSjLjkNK2iakpaUgLiYXuXFJeOWdWbO0Trz6ZAa2ZjyGHueHByCynh+ebtHm7J4eRG1ZLuISkoR3GlJSkoR3DApLCpGQVIHxaAXdFPFWsV24x1FbmI0YYRPyL68eH2JzvClqgEqQAAmQAAmQwFomQONjLdfeknWfxpkDj+D0QCmGZjVomoaJ3md1aYPDE6bUBGQ9W4XSiuO4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\n" + }, "metadata": {}, - "source": [ - "The tables in the HTML page in general have text in the top header row. The first vertical row has text. The remaining cells have numbers. We can identify the numbers we need by looking at the labelin the top row and the label in the first column. Let us construct a simple example and explore this." + "output_type": "display_data" + } + ], + "source": [ + "import ex_inits #no need to know this code, it just shows the image below\n", + "for_images = ex_inits\n", + "for_images.display_png(for_images.html_snippet1) #display the image below\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you look at the clipping of the html file above, you see tables with data in them. Eppy has functions that let you access of these tables and get the data from any of it's cells.\n", + "\n", + "Let us say you want to find the \"Net Site Energy\". \n", + "\n", + "This is in table \"Site and Source Energy\". \n", + "\n", + "The number you want is in the third row, second column and it's value is \"47694.47\"\n", + "\n", + "Let us use eppy to extract this number\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from eppy.results import readhtml # the eppy module with functions to read the html\n", + "fname = \"../eppy/resources/outputfiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlowTable_ABUPS.html\" # the html file you want to read\n", + "filehandle = open(fname, 'r').read() # get a file handle to the html file\n", + "\n", + "\n", + "htables = readhtml.titletable(filehandle) # reads the tables with their titles\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you open the python file readhtml.py and look at the function titletable, you can see the function documentation.\n", + "\n", + "It says the following" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + " \"\"\"return a list of [(title, table), .....]\n", + " title = previous item with a tag\n", + " table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]\"\"\"\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The documentation says that it returns a list.\n", + "Let us take a look inside this list.\n", + "Let us look at the first item in the list." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Site and Source Energy', [['', 'Total Energy [kWh]', 'Energy Per Total Building Area [kWh/m2]', 'Energy Per Conditioned Building Area [kWh/m2]'], ['Total Site Energy', 47694.47, 51.44, 51.44], ['Net Site Energy', 47694.47, 51.44, 51.44], ['Total Source Energy', 140159.1, 151.16, 151.16], ['Net Source Energy', 140159.1, 151.16, 151.16]])\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# ignore the following three lines. I am using them to construct the table below\n", - "from IPython.display import HTML\n", - "atablestring = '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
 a bb cc d
x y123
y z456
z z789
'\n", - "HTML(atablestring)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
 a bb cc d
x y123
y z456
z z789
" - ], - "metadata": {}, - "output_type": "pyout", - "prompt_number": 26, - "text": [ - "" - ] - } - ], - "prompt_number": 26 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This table is actually in the follwoing form:" + } + ], + "source": [ + "firstitem = htables[0]\n", + "print(firstitem)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ughh !!! that is ugly. Hard to see what it is. \n", + "Let us use a python module to print it pretty" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Site and Source Energy',\n", + " [['',\n", + " 'Total Energy [kWh]',\n", + " 'Energy Per Total Building Area [kWh/m2]',\n", + " 'Energy Per Conditioned Building Area [kWh/m2]'],\n", + " ['Total Site Energy', 47694.47, 51.44, 51.44],\n", + " ['Net Site Energy', 47694.47, 51.44, 51.44],\n", + " ['Total Source Energy', 140159.1, 151.16, 151.16],\n", + " ['Net Source Energy', 140159.1, 151.16, 151.16]])\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "atable = [[\"\", \"a b\", \"b c\", \"c d\"],\n", - " [\"x y\", 1, 2, 3 ],\n", - " [\"y z\", 4, 5, 6 ],\n", - " [\"z z\", 7, 8, 9 ],]\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 27 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see the labels in the table. So we an look at row \"x y\" and column \"c d\". The value there is 3" + } + ], + "source": [ + "import pprint\n", + "pp = pprint.PrettyPrinter()\n", + "pp.pprint(firstitem)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nice. that is a little clearer" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'Site and Source Energy'\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "right now we can get to it by saying atable[1][3]" + } + ], + "source": [ + "firstitem_title = firstitem[0]\n", + "pp.pprint(firstitem_title)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[['',\n", + " 'Total Energy [kWh]',\n", + " 'Energy Per Total Building Area [kWh/m2]',\n", + " 'Energy Per Conditioned Building Area [kWh/m2]'],\n", + " ['Total Site Energy', 47694.47, 51.44, 51.44],\n", + " ['Net Site Energy', 47694.47, 51.44, 51.44],\n", + " ['Total Source Energy', 140159.1, 151.16, 151.16],\n", + " ['Net Source Energy', 140159.1, 151.16, 151.16]]\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print atable[1][3]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n" - ] - } - ], - "prompt_number": 28 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "readhtml has some functions that will let us address the values by the labels. We use a structure from python called named tuples to do this. The only limitation is that the labels have to be letters or digits. Named tuples does not allow spaces in the labels. We could replace the space with an underscore ' _ '. So \"a b\" will become \"a_b\". So we can look for row \"x_y\" and column \"c_d\". Let us try this out." + } + ], + "source": [ + "firstitem_table = firstitem[1]\n", + "pp.pprint(firstitem_table)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How do we get to value of \"Net Site Energy\". \n", + "We know it is in the third row, second column of the table. \n", + "\n", + "Easy." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Net Site Energy', 47694.47, 51.44, 51.44]\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.results import readhtml\n", - "h_table = readhtml.named_grid_h(atable)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 31 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print h_table.x_y.c_d\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n" - ] - } - ], - "prompt_number": 32 - }, + } + ], + "source": [ + "thirdrow = firstitem_table[2] # we start counting with 0. So 0, 1, 2 is third row\n", + "print(thirdrow)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "47694.47" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "thirdrow_secondcolumn = thirdrow[1]\n", + "thirdrow_secondcolumn\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the text from the html table is in unicode. \n", + "That is why you see that weird 'u' letter. \n", + "\n", + "Let us convert it to a floating point number" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "47694.47" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "net_site_energy = float(thirdrow_secondcolumn)\n", + "net_site_energy\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us have a little fun with the tables. \n", + "\n", + "Get the titles of all the tables" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Site and Source Energy',\n", + " 'Site to Source Energy Conversion Factors',\n", + " 'Building Area',\n", + " 'End Uses',\n", + " 'End Uses By Subcategory',\n", + " 'Utility Use Per Conditioned Floor Area',\n", + " 'Utility Use Per Total Floor Area',\n", + " 'Electric Loads Satisfied',\n", + " 'On-Site Thermal Sources',\n", + " 'Water Source Summary',\n", + " 'Comfort and Setpoint Not Met Summary',\n", + " 'Comfort and Setpoint Not Met Summary']" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alltitles = [htable[0] for htable in htables]\n", + "alltitles\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let us grab the tables with the titles \"Building Area\" and \"Site to Source Energy Conversion Factors\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "twotables = [htable for htable in htables if htable[0] in [\"Building Area\", \"Site to Source Energy Conversion Factors\"]]\n", + "twotables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us leave readtables for now. \n", + "\n", + "It gives us the basic functionality to read any of the tables in the html output file." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using lines_table() to get at the tables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have been using titletable() to get at the tables. There is a constraint using function titletable(). Titletable() assumes that there is a unique title (in HTML bold) just above the table. It is assumed that this title will adequetly describe the table. This is true in most cases and titletable() is perfectly good to use. Unfortuntely there are some tables that do not follow this rule. The snippet below shows one of them." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", + "data": { + "image/png": "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\n" + }, "metadata": {}, - "source": [ - "We can still get to the value by index" + "output_type": "display_data" + } + ], + "source": [ + "import ex_inits #no need to know this code, it just shows the image below\n", + "for_images = ex_inits\n", + "for_images.display_png(for_images.html_snippet2) # display the image below\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that the HTML snippet shows a table with three lines above it. The first two lines have information that describe the table. We need to look at both those lines to understand what the table contains. So we need a different function that will capture all those lines before the table. The funtion lines_table() described below will do this.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from eppy.results import readhtml # the eppy module with functions to read the html\n", + "fname = \"../eppy/resources/outputfiles/V_8_1/ASHRAE30pct.PI.Final11_OfficeMedium_STD2010_Chicago-baseTable.html\" # the html file you want to read\n", + "filehandle = open(fname, 'r').read() # get a file handle to the html file\n", + "\n", + "\n", + "ltables = readhtml.lines_table(filehandle) # reads the tables with their titles\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The html snippet shown above is the last table in HTML file we just opened. We have used lines_table() to read the tables into the variable ltables. We can get to the last table by ltable[-1]. Let us print it and see what we have.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[['Table of Contents',\n", + " 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", + " 'For: PERIMETER_MID_ZN_4',\n", + " 'Timestamp: 2014-02-07\\n 12:29:08'],\n", + " [['',\n", + " 'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',\n", + " 'FANGERPPD {FOR HOURS SHOWN} []',\n", + " 'FANGERPPD []'],\n", + " ['January', 102.637, 12.585, 32.231],\n", + " ['February', 147.054, 10.5, 24.225],\n", + " ['March', 286.835, 8.799, 16.86],\n", + " ['April', 363.165, 7.704, 9.628],\n", + " ['May', 428.458, 19.642, 21.401],\n", + " ['June', 431.25, 10.092, 9.954],\n", + " ['July', 432.134, 8.835, 7.959],\n", + " ['August', 443.5, 9.743, 8.785],\n", + " ['September', 408.833, 15.91, 14.855],\n", + " ['October', 383.652, 6.919, 7.57],\n", + " ['November', 243.114, 8.567, 15.256],\n", + " ['December', 91.926, 14.298, 29.001],\n", + " ['\\xa0', '\\xa0', '\\xa0', '\\xa0'],\n", + " ['Annual Sum or Average', 3762.56, 11.062, 16.458],\n", + " ['Minimum of Months', 91.926, 6.919, 7.57],\n", + " ['Maximum of Months', 443.5, 19.642, 32.231]]]\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print h_table[0][2]\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n" - ] - } - ], - "prompt_number": 33 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that we used atable[1][3], but here we used h_table[0][2]. That is because h_table does not count the rows and columns where the labels are." + } + ], + "source": [ + "import pprint\n", + "pp = pprint.PrettyPrinter()\n", + "pp.pprint(ltables[-1])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that ltables has captured all the lines before the table. Let us make our code more explicit to see this" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Table of Contents',\n", + " 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", + " 'For: PERIMETER_MID_ZN_4',\n", + " 'Timestamp: 2014-02-07\\n 12:29:08']\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also do the following:" + } + ], + "source": [ + "last_ltable = ltables[-1]\n", + "lines_before_table = last_ltable[0]\n", + "table_itself = last_ltable[-1]\n", + "\n", + "pp.pprint(lines_before_table)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We found this table the easy way this time, because we knew it was the last one. How do we find it if we don't know where it is in the file ? Python comes to our rescue :-) Let assume that we want to find the table that has the following two lines before it.\n", + "\n", + "- Report: FANGER DURING COOLING AND ADAPTIVE COMFORT\n", + "- For: PERIMETER_MID_ZN_4\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "line1 = 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT'\n", + "line2 = 'For: PERIMETER_MID_ZN_4'\n", + "#\n", + "# check if those two lines are before the table\n", + "line1 in lines_before_table and line2 in lines_before_table\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[['Table of Contents',\n", + " 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", + " 'For: PERIMETER_MID_ZN_4',\n", + " 'Timestamp: 2014-02-07\\n 12:29:08'],\n", + " [['',\n", + " 'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',\n", + " 'FANGERPPD {FOR HOURS SHOWN} []',\n", + " 'FANGERPPD []'],\n", + " ['January', 102.637, 12.585, 32.231],\n", + " ['February', 147.054, 10.5, 24.225],\n", + " ['March', 286.835, 8.799, 16.86],\n", + " ['April', 363.165, 7.704, 9.628],\n", + " ['May', 428.458, 19.642, 21.401],\n", + " ['June', 431.25, 10.092, 9.954],\n", + " ['July', 432.134, 8.835, 7.959],\n", + " ['August', 443.5, 9.743, 8.785],\n", + " ['September', 408.833, 15.91, 14.855],\n", + " ['October', 383.652, 6.919, 7.57],\n", + " ['November', 243.114, 8.567, 15.256],\n", + " ['December', 91.926, 14.298, 29.001],\n", + " ['\\xa0', '\\xa0', '\\xa0', '\\xa0'],\n", + " ['Annual Sum or Average', 3762.56, 11.062, 16.458],\n", + " ['Minimum of Months', 91.926, 6.919, 7.57],\n", + " ['Maximum of Months', 443.5, 19.642, 32.231]]]]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find all the tables where those two lines are before the table\n", + "[ltable for ltable in ltables \n", + " if line1 in ltable[0] and line2 in ltable[0]]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That worked !\n", + "\n", + "What if you want to find the words \"FANGER\" and \"PERIMETER_MID_ZN_4\" before the table. The following code will do it.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Table of Contents\n", + "Report: FANGER DURING COOLING AND ADAPTIVE COMFORT\n", + "For: PERIMETER_MID_ZN_4\n", + "Timestamp: 2014-02-07\n", + " 12:29:08\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print h_table.x_y[2]\n", - "# or\n", - "print h_table[0].c_d\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n", - "3\n" - ] - } - ], - "prompt_number": 34 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Wow \u2026 that is pretty cool. What if we want to just check what the labels are ?" + } + ], + "source": [ + "# sample code to illustrate what we are going to do\n", + "last_ltable = ltables[-1]\n", + "lines_before_table = last_ltable[0]\n", + "table_itself = last_ltable[-1]\n", + "\n", + "# join lines_before_table into a paragraph of text\n", + "justtext = '\\n'.join(lines_before_table)\n", + "print(justtext)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"FANGER\" in justtext and \"PERIMETER_MID_ZN_4\" in justtext\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[['Table of Contents',\n", + " 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',\n", + " 'For: PERIMETER_MID_ZN_4',\n", + " 'Timestamp: 2014-02-07\\n 12:29:08'],\n", + " [['',\n", + " 'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',\n", + " 'FANGERPPD {FOR HOURS SHOWN} []',\n", + " 'FANGERPPD []'],\n", + " ['January', 102.637, 12.585, 32.231],\n", + " ['February', 147.054, 10.5, 24.225],\n", + " ['March', 286.835, 8.799, 16.86],\n", + " ['April', 363.165, 7.704, 9.628],\n", + " ['May', 428.458, 19.642, 21.401],\n", + " ['June', 431.25, 10.092, 9.954],\n", + " ['July', 432.134, 8.835, 7.959],\n", + " ['August', 443.5, 9.743, 8.785],\n", + " ['September', 408.833, 15.91, 14.855],\n", + " ['October', 383.652, 6.919, 7.57],\n", + " ['November', 243.114, 8.567, 15.256],\n", + " ['December', 91.926, 14.298, 29.001],\n", + " ['\\xa0', '\\xa0', '\\xa0', '\\xa0'],\n", + " ['Annual Sum or Average', 3762.56, 11.062, 16.458],\n", + " ['Minimum of Months', 91.926, 6.919, 7.57],\n", + " ['Maximum of Months', 443.5, 19.642, 32.231]]]]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Let us combine the this trick to find the table\n", + "[ltable for ltable in ltables \n", + " if \"FANGER\" in '\\n'.join(ltable[0]) and \"PERIMETER_MID_ZN_4\" in '\\n'.join(ltable[0])]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Extracting data from the tables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The tables in the HTML page in general have text in the top header row. The first vertical row has text. The remaining cells have numbers. We can identify the numbers we need by looking at the labelin the top row and the label in the first column. Let us construct a simple example and explore this." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 a bb cc d
x y123
y z456
z z789
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# ignore the following three lines. I am using them to construct the table below\n", + "from IPython.display import HTML\n", + "atablestring = '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
 a bb cc d
x y123
y z456
z z789
'\n", + "HTML(atablestring)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This table is actually in the follwoing form:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "atable = [[\"\", \"a b\", \"b c\", \"c d\"],\n", + " [\"x y\", 1, 2, 3 ],\n", + " [\"y z\", 4, 5, 6 ],\n", + " [\"z z\", 7, 8, 9 ],]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see the labels in the table. So we an look at row \"x y\" and column \"c d\". The value there is 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "right now we can get to it by saying atable[1][3]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print h_table._fields\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "('x_y', 'y_z', 'z_z')\n" - ] - } - ], - "prompt_number": 35 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That gives us the horizontal lables. How about the vertical labels ?" + } + ], + "source": [ + "print(atable[1][3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "readhtml has some functions that will let us address the values by the labels. We use a structure from python called named tuples to do this. The only limitation is that the labels have to be letters or digits. Named tuples does not allow spaces in the labels. We could replace the space with an underscore ' _ '. So \"a b\" will become \"a_b\". So we can look for row \"x_y\" and column \"c_d\". Let us try this out." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "from eppy.results import readhtml\n", + "h_table = readhtml.named_grid_h(atable)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "h_table.x_y._fields\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 36, - "text": [ - "('a_b', 'b_c', 'c_d')" - ] - } - ], - "prompt_number": 36 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There you go !!!" + } + ], + "source": [ + "print(h_table.x_y.c_d)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can still get to the value by index" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How about if I want to use the labels differently ? Say I want to refer to the row first and then to the column. That woul be saying table.c_d.x_y. We can do that by using a different function" + } + ], + "source": [ + "print(h_table[0][2])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that we used atable[1][3], but here we used h_table[0][2]. That is because h_table does not count the rows and columns where the labels are." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also do the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "3\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "v_table = readhtml.named_grid_v(atable)\n", - "print v_table.c_d.x_y\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n" - ] - } - ], - "prompt_number": 37 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And we can do the following" + } + ], + "source": [ + "print(h_table.x_y[2])\n", + "# or\n", + "print(h_table[0].c_d)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wow … that is pretty cool. What if we want to just check what the labels are ?" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('x_y', 'y_z', 'z_z')\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print v_table[2][0]\n", - "print v_table.c_d[0]\n", - "print v_table[2].x_y\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n", - "3\n", - "3\n" - ] - } - ], - "prompt_number": 38 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us try to get the numbers in the first column and then get their sum" + } + ], + "source": [ + "print(h_table._fields)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That gives us the horizontal lables. How about the vertical labels ?" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('a_b', 'b_c', 'c_d')" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h_table.x_y._fields\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There you go !!!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How about if I want to use the labels differently ? Say I want to refer to the row first and then to the column. That woul be saying table.c_d.x_y. We can do that by using a different function" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "v_table.a_b\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 39, - "text": [ - "ntrow(x_y=1, y_z=4, z_z=7)" - ] - } - ], - "prompt_number": 39 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Look like we got the right column. But not in the right format. We really need a list of numbers" + } + ], + "source": [ + "v_table = readhtml.named_grid_v(atable)\n", + "print(v_table.c_d.x_y)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can do the following" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "3\n", + "3\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "[cell for cell in v_table.a_b]\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 33, - "text": [ - "[1, 4, 7]" - ] - } - ], - "prompt_number": 33 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That looks like waht we wanted. Now let us get the sum" + } + ], + "source": [ + "print(v_table[2][0])\n", + "print(v_table.c_d[0])\n", + "print(v_table[2].x_y)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us try to get the numbers in the first column and then get their sum" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ntrow(x_y=1, y_z=4, z_z=7)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "v_table.a_b\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Look like we got the right column. But not in the right format. We really need a list of numbers" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 4, 7]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[cell for cell in v_table.a_b]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That looks like waht we wanted. Now let us get the sum" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 4, 7]\n", + "12\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "values_in_first_column = [cell for cell in v_table.a_b]\n", - "print values_in_first_column\n", - "print sum(values_in_first_column) # sum is a builtin function that will sum a list\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[1, 4, 7]\n", - "12\n" - ] - } - ], - "prompt_number": 34 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To get the first row we use the variable h_table" + } + ], + "source": [ + "values_in_first_column = [cell for cell in v_table.a_b]\n", + "print(values_in_first_column)\n", + "print(sum(values_in_first_column)) # sum is a builtin function that will sum a list\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get the first row we use the variable h_table" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3]\n", + "6\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "values_in_first_row = [cell for cell in h_table.x_y]\n", - "print values_in_first_row\n", - "print sum(values_in_first_row)\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[1, 2, 3]\n", - "6\n" - ] - } - ], - "prompt_number": 35 } ], - "metadata": {} + "source": [ + "values_in_first_row = [cell for cell in h_table.x_y]\n", + "print(values_in_first_row)\n", + "print(sum(values_in_first_row))\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" } - ] -} \ No newline at end of file + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/docs/Outputs_Tutorial.py b/docs/Outputs_Tutorial.py deleted file mode 100644 index 9e575d43..00000000 --- a/docs/Outputs_Tutorial.py +++ /dev/null @@ -1,418 +0,0 @@ -# -*- coding: utf-8 -*- -# 3.0 - -# - -# Reading outputs from E+ - -# - -# some initial set up -# if you have not installed epp, and only downloaded it -# you will need the following lines -import sys - -# pathnameto_eppy = 'c:/eppy' -pathnameto_eppy = "../" -sys.path.append(pathnameto_eppy) - -# - -# Using titletable() to get at the tables - -# - -# So far we have been making changes to the IDF input file. -# How about looking at the outputs. -# -# Energyplus makes nice htmlout files that look like this. - -# - -from eppy import ex_inits # no need to know this code, it just shows the image below - -for_images = ex_inits -for_images.display_png(for_images.html_snippet1) # display the image below - -# - -# If you look at the clipping of the html file above, you see tables with data in them. Eppy has functions that let you access of these tables and get the data from any of it's cells. -# -# Let us say you want to find the "Net Site Energy". -# -# This is in table "Site and Source Energy". -# -# The number you want is in the third row, second column and it's value is "47694.47" -# -# Let us use eppy to extract this number - -# - -from eppy import readhtml # the eppy module with functions to read the html - -fname = "../eppy/resources/outputfiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlowTable_ABUPS.html" # the html file you want to read -filehandle = open(fname, "r").read() # get a file handle to the html file - - -htables = readhtml.titletable(filehandle) # reads the tables with their titles - -# - -# If you open the python file readhtml.py and look at the function titletable, you can see the function documentation. -# -# It says the following - -# - -# """return a list of [(title, table), .....] -# title = previous item with a tag -# table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]""" -# - -# - -# The documentation says that it returns a list. -# Let us take a look inside this list. -# Let us look at the first item in the list. - -# - -firstitem = htables[0] -print(firstitem) - -# - -# Ughh !!! that is ugly. Hard to see what it is. -# Let us use a python module to print it pretty - -# - -import pprint - -pp = pprint.PrettyPrinter() -pp.pprint(firstitem) - -# - -# Nice. that is a little clearer - -# - -firstitem_title = firstitem[0] -pp.pprint(firstitem_title) - -# - -firstitem_table = firstitem[1] -pp.pprint(firstitem_table) - -# - -# How do we get to value of "Net Site Energy". -# We know it is in the third row, second column of the table. -# -# Easy. - -# - -thirdrow = firstitem_table[2] # we start counting with 0. So 0, 1, 2 is third row -print(thirdrow) - -# - -thirdrow_secondcolumn = thirdrow[1] -thirdrow_secondcolumn - -# - -# the text from the html table is in unicode. -# That is why you see that weird 'u' letter. -# -# Let us convert it to a floating point number - -# - -net_site_energy = float(thirdrow_secondcolumn) -net_site_energy - -# - -# Let us have a little fun with the tables. -# -# Get the titles of all the tables - -# - -alltitles = [htable[0] for htable in htables] -alltitles - -# - -# Now let us grab the tables with the titles "Building Area" and "Site to Source Energy Conversion Factors" - -# - -# twotables = [htable for htable in htables if htable[0] in ["Building Area", "Site to Source Energy Conversion Factors"]] -# twotables - -# - -# Let us leave readtables for now. -# -# It gives us the basic functionality to read any of the tables in the html output file. - -# - -# Using lines_table() to get at the tables - -# - -# We have been using titletable() to get at the tables. There is a constraint using function titletable(). Titletable() assumes that there is a unique title (in HTML bold) just above the table. It is assumed that this title will adequetly describe the table. This is true in most cases and titletable() is perfectly good to use. Unfortuntely there are some tables that do not follow this rule. The snippet below shows one of them. - -# - -from eppy import ex_inits # no need to know this code, it just shows the image below - -for_images = ex_inits -for_images.display_png(for_images.html_snippet2) # display the image below - -# - -# Notice that the HTML snippet shows a table with three lines above it. The first two lines have information that describe the table. We need to look at both those lines to understand what the table contains. So we need a different function that will capture all those lines before the table. The funtion lines_table() described below will do this. - -# - -from eppy import readhtml # the eppy module with functions to read the html - -fname = "../eppy/resources/outputfiles/V_8_1/ASHRAE30pct.PI.Final11_OfficeMedium_STD2010_Chicago-baseTable.html" # the html file you want to read -filehandle = open(fname, "r").read() # get a file handle to the html file - - -ltables = readhtml.lines_table(filehandle) # reads the tables with their titles - -# - -# The html snippet shown above is the last table in HTML file we just opened. We have used lines_table() to read the tables into the variable ltables. We can get to the last table by ltable[-1]. Let us print it and see what we have. - -# - -import pprint - -pp = pprint.PrettyPrinter() -pp.pprint(ltables[-1]) - -# - -# We can see that ltables has captured all the lines before the table. Let us make our code more explicit to see this - -# - -last_ltable = ltables[-1] -lines_before_table = last_ltable[0] -table_itself = last_ltable[-1] - -pp.pprint(lines_before_table) - -# - -# We found this table the easy way this time, because we knew it was the last one. How do we find it if we don't know where it is in the file ? Python comes to our rescue :-) Let assume that we want to find the table that has the following two lines before it. -# -# - Report: FANGER DURING COOLING AND ADAPTIVE COMFORT -# - For: PERIMETER_MID_ZN_4 - -# - -line1 = "Report: FANGER DURING COOLING AND ADAPTIVE COMFORT" -line2 = "For: PERIMETER_MID_ZN_4" -# -# check if those two lines are before the table -line1 in lines_before_table and line2 in lines_before_table - -# - -# find all the tables where those two lines are before the table -[ltable for ltable in ltables if line1 in ltable[0] and line2 in ltable[0]] - -# - -# That worked ! -# -# What if you want to find the words "FANGER" and "PERIMETER_MID_ZN_4" before the table. The following code will do it. - -# - -# sample code to illustrate what we are going to do -last_ltable = ltables[-1] -lines_before_table = last_ltable[0] -table_itself = last_ltable[-1] - -# join lines_before_table into a paragraph of text -justtext = "\n".join(lines_before_table) -print(justtext) - -# - -"FANGER" in justtext and "PERIMETER_MID_ZN_4" in justtext - -# - -# Let us combine the this trick to find the table -[ - ltable - for ltable in ltables - if "FANGER" in "\n".join(ltable[0]) and "PERIMETER_MID_ZN_4" in "\n".join(ltable[0]) -] - -# - -# Extracting data from the tables - -# - -# The tables in the HTML page in general have text in the top header row. The first vertical row has text. The remaining cells have numbers. We can identify the numbers we need by looking at the labelin the top row and the label in the first column. Let us construct a simple example and explore this. - -# - -# ignore the following three lines. I am using them to construct the table below -from IPython.display import HTML - -atablestring = '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 a bb cc d
x y123
y z456
z z789
' -HTML(atablestring) - -# - -# This table is actually in the follwoing form: - -# - -atable = [ - ["", "a b", "b c", "c d"], - ["x y", 1, 2, 3], - ["y z", 4, 5, 6], - ["z z", 7, 8, 9], -] - -# - -# We can see the labels in the table. So we an look at row "x y" and column "c d". The value there is 3 - -# - -# right now we can get to it by saying atable[1][3] - -# - -print(atable[1][3]) - -# - -# readhtml has some functions that will let us address the values by the labels. We use a structure from python called named tuples to do this. The only limitation is that the labels have to be letters or digits. Named tuples does not allow spaces in the labels. We could replace the space with an underscore ' _ '. So "a b" will become "a_b". So we can look for row "x_y" and column "c_d". Let us try this out. - -# - -from eppy import readhtml - -h_table = readhtml.named_grid_h(atable) - -# - -print(h_table.x_y.c_d) - -# - -# We can still get to the value by index - -# - -print(h_table[0][2]) - -# - -# Note that we used atable[1][3], but here we used h_table[0][2]. That is because h_table does not count the rows and columns where the labels are. - -# - -# We can also do the following: - -# - -print(h_table.x_y[2]) -# or -print(h_table[0].c_d) - -# - -# Wow … that is pretty cool. What if we want to just check what the labels are ? - -# - -print(h_table._fields) - -# - -# That gives us the horizontal lables. How about the vertical labels ? - -# - -h_table.x_y._fields - -# - -# There you go !!! - -# - -# How about if I want to use the labels differently ? Say I want to refer to the row first and then to the column. That woul be saying table.c_d.x_y. We can do that by using a different function - -# - -v_table = readhtml.named_grid_v(atable) -print(v_table.c_d.x_y) - -# - -# And we can do the following - -# - -print(v_table[2][0]) -print(v_table.c_d[0]) -print(v_table[2].x_y) - -# - -# Let us try to get the numbers in the first column and then get their sum - -# - -v_table.a_b - -# - -# Look like we got the right column. But not in the right format. We really need a list of numbers - -# - -[cell for cell in v_table.a_b] - -# - -# That looks like waht we wanted. Now let us get the sum - -# - -values_in_first_column = [cell for cell in v_table.a_b] -print(values_in_first_column) -print(sum(values_in_first_column)) # sum is a builtin function that will sum a list - -# - -# To get the first row we use the variable h_table - -# - -values_in_first_row = [cell for cell in h_table.x_y] -print(values_in_first_row) -print(sum(values_in_first_row)) - -# diff --git a/docs/_build/doctrees/HVAC_Tutorial.doctree b/docs/_build/doctrees/HVAC_Tutorial.doctree deleted file mode 100644 index 2ef51d92..00000000 Binary files a/docs/_build/doctrees/HVAC_Tutorial.doctree and /dev/null differ diff --git a/docs/_build/doctrees/HVAC_diagrams.doctree b/docs/_build/doctrees/HVAC_diagrams.doctree deleted file mode 100644 index 83bb571a..00000000 Binary files a/docs/_build/doctrees/HVAC_diagrams.doctree and /dev/null differ diff --git a/docs/_build/doctrees/LICENSE.doctree b/docs/_build/doctrees/LICENSE.doctree deleted file mode 100644 index 73330d2f..00000000 Binary files a/docs/_build/doctrees/LICENSE.doctree and /dev/null differ diff --git a/docs/_build/doctrees/Main_Tutorial.doctree b/docs/_build/doctrees/Main_Tutorial.doctree deleted file mode 100644 index 6a16ca1a..00000000 Binary files a/docs/_build/doctrees/Main_Tutorial.doctree and /dev/null differ diff --git a/docs/_build/doctrees/Outputs_Tutorial.doctree b/docs/_build/doctrees/Outputs_Tutorial.doctree deleted file mode 100644 index 85318a23..00000000 Binary files a/docs/_build/doctrees/Outputs_Tutorial.doctree and /dev/null differ diff --git a/docs/_build/doctrees/changes.doctree b/docs/_build/doctrees/changes.doctree deleted file mode 100644 index 51ad47e3..00000000 Binary files a/docs/_build/doctrees/changes.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/classes_eppy.doctree b/docs/_build/doctrees/dev_docs/classes_eppy.doctree deleted file mode 100644 index cee186a2..00000000 Binary files a/docs/_build/doctrees/dev_docs/classes_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/data_eppy.doctree b/docs/_build/doctrees/dev_docs/data_eppy.doctree deleted file mode 100644 index b25e763b..00000000 Binary files a/docs/_build/doctrees/dev_docs/data_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/doc_eppy.doctree b/docs/_build/doctrees/dev_docs/doc_eppy.doctree deleted file mode 100644 index 6c072ada..00000000 Binary files a/docs/_build/doctrees/dev_docs/doc_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/epbunch.doctree b/docs/_build/doctrees/dev_docs/epbunch.doctree deleted file mode 100644 index 5eab4d7f..00000000 Binary files a/docs/_build/doctrees/dev_docs/epbunch.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/future_eppy.doctree b/docs/_build/doctrees/dev_docs/future_eppy.doctree deleted file mode 100644 index f4114166..00000000 Binary files a/docs/_build/doctrees/dev_docs/future_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/hist_eppy.doctree b/docs/_build/doctrees/dev_docs/hist_eppy.doctree deleted file mode 100644 index 35545ce6..00000000 Binary files a/docs/_build/doctrees/dev_docs/hist_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/idf_msequence.doctree b/docs/_build/doctrees/dev_docs/idf_msequence.doctree deleted file mode 100644 index 7bdf3708..00000000 Binary files a/docs/_build/doctrees/dev_docs/idf_msequence.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/index.doctree b/docs/_build/doctrees/dev_docs/index.doctree deleted file mode 100644 index a7edf59d..00000000 Binary files a/docs/_build/doctrees/dev_docs/index.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/modeleditor.doctree b/docs/_build/doctrees/dev_docs/modeleditor.doctree deleted file mode 100644 index 8cac00c8..00000000 Binary files a/docs/_build/doctrees/dev_docs/modeleditor.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/phil_eppy.doctree b/docs/_build/doctrees/dev_docs/phil_eppy.doctree deleted file mode 100644 index 9a75f753..00000000 Binary files a/docs/_build/doctrees/dev_docs/phil_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/dev_docs/pytest_eppy.doctree b/docs/_build/doctrees/dev_docs/pytest_eppy.doctree deleted file mode 100644 index a1d9e557..00000000 Binary files a/docs/_build/doctrees/dev_docs/pytest_eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle deleted file mode 100644 index 2139e329..00000000 Binary files a/docs/_build/doctrees/environment.pickle and /dev/null differ diff --git a/docs/_build/doctrees/eppy.EPlusInterfaceFunctions.doctree b/docs/_build/doctrees/eppy.EPlusInterfaceFunctions.doctree deleted file mode 100644 index c54640f6..00000000 Binary files a/docs/_build/doctrees/eppy.EPlusInterfaceFunctions.doctree and /dev/null differ diff --git a/docs/_build/doctrees/eppy.doctree b/docs/_build/doctrees/eppy.doctree deleted file mode 100644 index 25e3f3e9..00000000 Binary files a/docs/_build/doctrees/eppy.doctree and /dev/null differ diff --git a/docs/_build/doctrees/eppy.useful_scripts.doctree b/docs/_build/doctrees/eppy.useful_scripts.doctree deleted file mode 100644 index 52b17016..00000000 Binary files a/docs/_build/doctrees/eppy.useful_scripts.doctree and /dev/null differ diff --git a/docs/_build/doctrees/eppyfunctions.doctree b/docs/_build/doctrees/eppyfunctions.doctree deleted file mode 100644 index bd5cca81..00000000 Binary files a/docs/_build/doctrees/eppyfunctions.doctree and /dev/null differ diff --git a/docs/_build/doctrees/eppyrecipies.doctree b/docs/_build/doctrees/eppyrecipies.doctree deleted file mode 100644 index 78838ec8..00000000 Binary files a/docs/_build/doctrees/eppyrecipies.doctree and /dev/null differ diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree deleted file mode 100644 index aa8c6012..00000000 Binary files a/docs/_build/doctrees/index.doctree and /dev/null differ diff --git a/docs/_build/doctrees/installation.doctree b/docs/_build/doctrees/installation.doctree deleted file mode 100644 index 0eea0797..00000000 Binary files a/docs/_build/doctrees/installation.doctree and /dev/null differ diff --git a/docs/_build/doctrees/modules.doctree b/docs/_build/doctrees/modules.doctree deleted file mode 100644 index df3e5050..00000000 Binary files a/docs/_build/doctrees/modules.doctree and /dev/null differ diff --git a/docs/_build/doctrees/newfunctions.doctree b/docs/_build/doctrees/newfunctions.doctree deleted file mode 100644 index 88828d38..00000000 Binary files a/docs/_build/doctrees/newfunctions.doctree and /dev/null differ diff --git a/docs/_build/doctrees/runningeplus.doctree b/docs/_build/doctrees/runningeplus.doctree deleted file mode 100644 index 486c4db7..00000000 Binary files a/docs/_build/doctrees/runningeplus.doctree and /dev/null differ diff --git a/docs/_build/doctrees/useful_scripts.doctree b/docs/_build/doctrees/useful_scripts.doctree deleted file mode 100644 index 71fc280c..00000000 Binary files a/docs/_build/doctrees/useful_scripts.doctree and /dev/null differ diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo deleted file mode 100644 index c5455c42..00000000 --- a/docs/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 1fe65c1e4927aab03e6f9a6c6e6e89d5 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/HVAC_Tutorial.html b/docs/_build/html/HVAC_Tutorial.html deleted file mode 100644 index 4818634f..00000000 --- a/docs/_build/html/HVAC_Tutorial.html +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - - HVAC Loops — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

HVAC Loops

-
-

Conceptual Introduction to HVAC Loops

-

Eppy builds threee kinds of loops for the energyplus idf file:

-
    -
  1. Plant Loops
  2. -
  3. Condensor Loops
  4. -
  5. Air Loops
  6. -
-

All loops have two halves:

-
    -
  1. Supply side
  2. -
  3. Demand Side
  4. -
-

The supply side provides the energy to the demand side that needs the -energy. So the end-nodes on the supply side connect to the end-nodes on -the demand side.

-

The loop is made up of branches connected to each other. A single branch -can lead to multiple branches through a splitter component. Multiple -branches can lead to a single branch through a mixer component.

-

Each branch is made up of components connected in series (in a line)

-

Eppy starts off by building the shape or topology of the loop by -connecting the branches in the right order. The braches themselves have -a single component in them, that is just a place holder. Usually it is a -pipe component. In an air loop it would be a duct component.

-

The shape of the loop for the supply or demand side is quite simple.

-

It can be described in the following manner for the supply side

-
    -
  • The supply side starts single branch leads to a splitter
  • -
  • The splitter leads to multiple branches
  • -
  • these multiple branches come back and join in a mixer
  • -
  • the mixer leads to a single branch that becomes end of the suppply -side
  • -
-

For the demand side we have:

-
    -
  • The demand side starts single branch leads to a splitter
  • -
  • The splitter leads to multiple branches
  • -
  • these multiple branches come back and join in a mixer
  • -
  • the mixer leads to a single branch that becomes end of the demand -side
  • -
-

The two ends of the supply side connect to the two ends of the demand -side.

-

Diagramtically the the two sides of the loop will look like this:

-
Supply Side:
-------------
-                -> branch1 ->
-start_branch   --> branch2 --> end_branch
-                -> branch3 ->
-Demand Side:
-------------
-
-                  -> d_branch1 ->
-d_start_branch   --> d_branch2 --> d_end_branch
-                  -> d_branch3 ->
-
-
-

In eppy you could embody this is a list

-
supplyside = ['start_brandh',   [  'branch1',   'branch2',   'branch3'],   'end_branch']
-demandside = ['d_start_brandh', ['d_branch1', 'd_branch2', 'd_branch3'], 'd_end_branch']
-
-
-

Eppy will build the build the shape/topology of the loop using the two -lists above. Each branch will have a placeholder component, like a pipe -or a duct:

-
branch1 = --duct--
-
-
-

Now we will have to replace the placeholder with the real components -that make up the loop. For instance, branch1 should really have a -pre-heat coil leading to a supply fan leading to a cooling coil leading -to a heating coil:

-
new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil
-
-
-

Eppy lets you build a new branch and you can replace branch1 with -new_branch

-

In this manner we can build up the entire loop with the right -components, once the initial toplogy is right

-
-
-

Building a Plant loops

-

Eppy can build up the topology of a plant loop using single pipes in a -branch. Once we do that the simple branch in the loop we have built can -be replaced with a more complex branch.

-

Let us try this out ans see how it works.

-
-

Building the topology of the loop

-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../'
-sys.path.append(pathnameto_eppy)
-
-
-
from eppy.modeleditor import IDF
-from eppy import hvacbuilder
-
-from StringIO import StringIO
-iddfile = "../eppy/resources/iddfiles/Energy+V7_0_0_036.idd"
-IDF.setiddname(iddfile)
-
-
-
# make the topology of the loop
-idf = IDF(StringIO('')) # makes an empty idf file in memory with no file name
-loopname = "p_loop"
-sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop
-dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side of the loop
-hvacbuilder.makeplantloop(idf, loopname, sloop, dloop)
-idf.saveas("hhh1.idf")
-
-
-
-
We have made plant loop and saved it as hhh1.idf.
-
Now let us look at what the loop looks like.
-
-
-
-

Diagram of the loop

-

Let us use the script “eppy/useful_scripts/loopdiagrams.py” to draw -this diagram

-

See Generating a Loop Diagram -page for details on how to do this

-

Below is the diagram for this simple loop

-

Note: the supply and demnd sides are not connected in the diagram, but -shown seperately for clarity

-
from eppy import ex_inits #no need to know this code, it just shows the image below
-for_images = ex_inits
-for_images.display_png(for_images.plantloop1) # display the image below
-
-
-HVAC_Tutorial_files/HVAC_Tutorial_23_0.png -
-
-

Modifying the topology of the loop

-

Let us make a new branch and replace the exisiting branch

-

The existing branch name is “sb0” and it contains a single pipe -component sb0_pipe.

-

Let us replace it with a branch that has a chiller that is connected to -a pipe which is turn connected to another pipe. So the connections in -the new branch would look like “chiller-> pipe1->pipe2”

-
# make a new branch chiller->pipe1-> pipe2
-
-# make a new pipe component
-pipe1 = idf.newidfobject("PIPE:ADIABATIC", 'np1')
-
-# make a new chiller
-chiller = idf.newidfobject("Chiller:Electric".upper(), 'Central_Chiller')
-
-# make another pipe component
-pipe2 = idf.newidfobject("PIPE:ADIABATIC", 'np2')
-
-# get the loop we are trying to modify
-loop = idf.getobject('PLANTLOOP', 'p_loop') # args are (key, name)
-# get the branch we are trying to modify
-branch = idf.getobject('BRANCH', 'sb0') # args are (key, name)
-listofcomponents = [chiller, pipe1, pipe2] # the new components are connected in this order
-
-
-

Now we are going to try to replace branch with the a branch made up -of listofcomponents

-
    -
  • We will do this by calling the function replacebranch
  • -
  • Calling replacebranch can throw an exception WhichLoopError
  • -
  • In a moment, you will see why this exception is important
  • -
-
try:
-    newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')
-except hvacbuilder.WhichLoopError as e:
-    print e
-
-
-
Where should this loop connect ?
-CHILLER:ELECTRIC - Central_Chiller
-[u'Chilled_Water_', u'Condenser_', u'Heat_Recovery_']
-
-
-

The above code throws the exception. It says that the idfobject -CHILLER:ELECTRIC - Central_Chiller has three possible connections. -The chiller has inlet outlet nodes for the following

-
    -
  • Chilled water
  • -
  • Condenser
  • -
  • Heat Recovery
  • -
-

eppy does not know which one to connect to, and it needs your help. We -know that the chiller needs to be connected to the chilled water inlet -and outlet. Simply copy Chilled_Water_ from the text in the -exception and paste as shown in the code below. (make sure you copy it -exactly. eppy is a little nerdy about that)

-
# instead of passing chiller to the function, we pass a tuple (chiller, 'Chilled_Water_').
-# This lets eppy know where the connection should be made.
-# The idfobject pipe does not have this ambiguity. So pipes do not need this extra information
-listofcomponents = [(chiller, 'Chilled_Water_'), pipe1, pipe2]
-
-try:
-    newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water')
-except Exception as e:
-    print e
-else: # else will run only if the try suceeds
-    print "no exception was thrown"
-
-idf.saveas("hhh_new.idf")
-
-
-
no exception was thrown
-
-
-

Tagential note: The "try .. except .. else" statement is useful -here. If you have not run across it before, take a look at these two -links

- -
-
We have saved this as file “hhh_new.idf”.
-
Let us draw the diagram of this file. (run this from eppy/eppy folder)
-
-

python ex_loopdiagram.py hhh_new.idf

-
from eppy import ex_inits #no need to know this code, it just shows the image below
-for_images = ex_inits
-for_images.display_png(for_images.plantloop2) # display the image below
-
-
-HVAC_Tutorial_files/HVAC_Tutorial_34_0.png -

This diagram shows the new components in the branch

-
-

Work flow with WhichLoopError

-

When you are writing scripts don’t bother to use try .. except for -WhichLoopError.

-
    -
  • Simply allow the exception to be raised.
  • -
  • Use the information in the exception to update your code
  • -
  • You may have to do this a couple of times in your script.
  • -
  • In a sense you are letting eppy tell you how to update the script.
  • -
-

Question: I am writing an application using eppy, not just a script. -The above workflow does not work for me

-

Response: Aha ! If that is the case, open an issue in -github/eppy. We are lazy -people. We don’t write code unless it is needed :-)

-
-
-
-

Traversing the loop

-

It would be nice to move through the loop using functions “nextnode()” -and “prevnode()”

-

Eppy indeed has such functions

-

Let us try to traverse the loop above.

-
# to traverse the loop we are going to call some functions ex_loopdiagrams.py,
-# the program that draws the loop diagrams.
-from eppy import ex_loopdiagram
-fname = 'hhh_new.idf'
-iddfile = '../eppy/resources/iddfiles/Energy+V8_0_0.idd'
-edges = ex_loopdiagram.getedges(fname, iddfile)
-# edges are the lines that draw the nodes in the loop.
-# The term comes from graph theory in mathematics
-
-
-

The above code gets us the edges of the loop diagram. Once we have the -edges, we can traverse through the diagram. Let us start with the -“Central_Chiller” and work our way down.

-
from eppy import walk_hvac
-firstnode = "Central_Chiller"
-nextnodes = walk_hvac.nextnode(edges, firstnode)
-print nextnodes
-
-
-
[u'np1']
-
-
-
nextnodes = walk_hvac.nextnode(edges, nextnodes[0])
-print nextnodes
-
-
-
[u'np2']
-
-
-
nextnodes = walk_hvac.nextnode(edges, nextnodes[0])
-print nextnodes
-
-
-
[u'p_loop_supply_splitter']
-
-
-
nextnodes = walk_hvac.nextnode(edges, nextnodes[0])
-print nextnodes
-
-
-
[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe']
-
-
-

This leads us to three components -> [‘sb1_pipe’, ‘sb2_pipe’, -‘sb3_pipe’]. Let us follow one of them

-
nextnodes = walk_hvac.nextnode(edges, nextnodes[0])
-print nextnodes
-
-
-
[u'p_loop_supply_mixer']
-
-
-
nextnodes = walk_hvac.nextnode(edges, nextnodes[0])
-print nextnodes
-
-
-
[u'sb4_pipe']
-
-
-
nextnodes = walk_hvac.nextnode(edges, nextnodes[0])
-print nextnodes
-
-
-
[]
-
-
-

We have reached the end of this branch. There are no more components.

-

We can follow this in reverse using the function prevnode()

-
lastnode = 'sb4_pipe'
-prevnodes = walk_hvac.prevnode(edges, lastnode)
-print prevnodes
-
-
-
[u'p_loop_supply_mixer']
-
-
-
prevnodes = walk_hvac.prevnode(edges, prevnodes[0])
-print prevnodes
-
-
-
[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe']
-
-
-
prevnodes = walk_hvac.prevnode(edges, prevnodes[0])
-print prevnodes
-
-
-
[u'p_loop_supply_splitter']
-
-
-
prevnodes = walk_hvac.prevnode(edges, prevnodes[0])
-print prevnodes
-
-
-
[u'np2']
-
-
-
prevnodes = walk_hvac.prevnode(edges, prevnodes[0])
-print prevnodes
-
-
-
[u'np1']
-
-
-
prevnodes = walk_hvac.prevnode(edges, prevnodes[0])
-print prevnodes
-
-
-
[u'Central_Chiller']
-
-
-
prevnodes = walk_hvac.prevnode(edges, prevnodes[0])
-print prevnodes
-
-
-
[]
-
-
-

All the way to where the loop ends

-
-
-
-

Building a Condensor loop

-

We build the condensor loop the same way we built the plant loop. Pipes -are put as place holders for the components. Let us build a new idf file -with just a condensor loop in it.

-
condensorloop_idf = IDF(StringIO(''))
-loopname = "c_loop"
-sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side
-dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side
-theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop)
-condensorloop_idf.saveas("c_loop.idf")
-
-
-

Again, just as we did in the plant loop, we can change the components of -the loop, by replacing the branchs and traverse the loop using the -functions nextnode() and prevnode()

-
-
-

Building an Air Loop

-

Building an air loop is similar to the plant and condensor loop. The -difference is that instead of pipes , we have ducts as placeholder -components. The other difference is that we have zones on the demand -side.

-
airloop_idf = IDF(StringIO(''))
-loopname = "a_loop"
-sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop
-dloop = ['zone1', 'zone2', 'zone3'] # zones on the demand side
-hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop)
-airloop_idf.saveas("a_loop.idf")
-
-
-

Again, just as we did in the plant and condensor loop, we can change the -components of the loop, by replacing the branchs and traverse the loop -using the functions nextnode() and prevnode()

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/HVAC_diagrams.html b/docs/_build/html/HVAC_diagrams.html deleted file mode 100644 index 2b56e14c..00000000 --- a/docs/_build/html/HVAC_diagrams.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - <no title> — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
"""HVAC diagrams"""
-
-
-
'HVAC diagrams'
-
-
-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../'
-sys.path.append(pathnameto_eppy)
-
-
-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../eppy/resources/iddfiles/Energy+V8_0_0.idd"
-fname = "../eppy/resources/idffiles/V8_0_0/5ZoneSupRetPlenRAB.idf"
-IDF.setiddname(iddfile)
-
-
-
idf = IDF(fname)
-
-
-
# idf.model
-
-
-
from eppy.EPlusInterfaceFunctions import readidf
-from eppy.ex_loopdiagram import makeairplantloop, makediagram
-
-print "readingfile"
-data, commdct = readidf.readdatacommdct(fname, iddfile=iddfile)
-print "constructing the loops"
-edges = makeairplantloop(data, commdct)
-print "making the diagram"
-g = makediagram(edges)
-dotname = "a.dot"
-pngname = "a.png"
-# dotname = '%s.dot' % (os.path.splitext(fname)[0])
-# pngname = '%s.png' % (os.path.splitext(fname)[0])
-g.write(dotname)
-g.write_png(pngname)
-
-
-
readingfile
-constructing the loops
-making the diagram
-
-
-
True
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/LICENSE.html b/docs/_build/html/LICENSE.html deleted file mode 100644 index 06eb1cf8..00000000 --- a/docs/_build/html/LICENSE.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - LICENSE — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

LICENSE

-

The MIT License (MIT)

-

Copyright (c) 2004, 2012-2016 Santosh Philip -Copyright (c) 2012 Tuan Tran -Copyright (c) 2014 Eric Allen Youngson -Copyright (c) 2015-2016 Jamie Bull

-

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.

-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/Main_Tutorial.html b/docs/_build/html/Main_Tutorial.html deleted file mode 100644 index 15e6f3c1..00000000 --- a/docs/_build/html/Main_Tutorial.html +++ /dev/null @@ -1,1726 +0,0 @@ - - - - - - - - Eppy Tutorial — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Eppy Tutorial

-

Authors: Santosh Philip, Leora Tanjuatco

-

Eppy is a scripting language for E+ idf files, and E+ output files. Eppy -is written in the programming language Python. As a result it takes full -advantage of the rich data structure and idioms that are avaliable in -python. You can programmatically navigate, search, and modify E+ idf -files using eppy. The power of using a scripting language allows you to -do the following:

-
    -
  • Make a large number of changes in an idf file with a few lines of -eppy code.
  • -
  • Use conditions and filters when making changes to an idf file
  • -
  • Make changes to multiple idf files.
  • -
  • Read data from the output files of a E+ simulation run.
  • -
  • Based to the results of a E+ simulation run, generate the input file -for the next simulation run.
  • -
-

So what does this matter? Here are some of the things you can do with -eppy:

-
    -
  • Change construction for all north facing walls.
  • -
  • Change the glass type for all windows larger than 2 square meters.
  • -
  • Change the number of people in all the interior zones.
  • -
  • Change the lighting power in all south facing zones.
  • -
  • Change the efficiency and fan power of all rooftop units.
  • -
  • Find the energy use of all the models in a folder (or of models that -were run after a certain date)
  • -
  • If a model is using more energy than expected, keep increasing the -R-value of the roof until you get to the expected energy use.
  • -
-
-

Quick Start

-

Here is a short IDF file that I’ll be using as an example to start us -off

-
VERSION,
-    7.2;                     !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                     !- Do Zone Sizing Calculation
-    Yes,                     !- Do System Sizing Calculation
-    Yes,                     !- Do Plant Sizing Calculation
-    No,                      !- Run Simulation for Sizing Periods
-    Yes;                     !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    White House,             !- Name
-    30.,                     !- North Axis {deg}
-    City,                    !- Terrain
-    0.04,                    !- Loads Convergence Tolerance Value
-    0.4,                     !- Temperature Convergence Tolerance Value {deltaC}
-    FullExterior,            !- Solar Distribution
-    25,                      !- Maximum Number of Warmup Days
-    6;                       !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,  !- Name
-    41.78,                   !- Latitude {deg}
-    -87.75,                  !- Longitude {deg}
-    -6.00,                   !- Time Zone {hr}
-    190.00;                  !- Elevation {m}
-
-
-

To use eppy to look at this model, we have to run a little code first:

-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../'
-sys.path.append(pathnameto_eppy)
-
-from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf"
-
-
-
IDF.setiddname(iddfile)
-idf1 = IDF(fname1)
-
-
-

idf1 now holds all the data to your in you idf file.

-

Now that the behind-the-scenes work is done, we can print this file.

-
idf1.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-
-

Looks like the same file as before, except that all the comments are -slightly different.

-

As you can see, this file has four objects:

-
    -
  • VERSION
  • -
  • SIMULATIONCONTROL
  • -
  • BUILDING
  • -
  • SITE:LOCATION
  • -
-

So, let us look take a closer look at the BUILDING object. We can do -this using this command:

-
print filename.idfobjects['OBJECTNAME']
-
-
-
print idf1.idfobjects['BUILDING']  # put the name of the object you'd like to look at in brackets
-
-
-
[
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-]
-
-
-

We can also zoom in on the object and look just at its individual parts.

-

For example, let us look at the name of the building.

-

To do this, we have to do some more behind-the-scenes work, which we’ll -explain later.

-
building = idf1.idfobjects['BUILDING'][0]
-
-
-

Now we can do this:

-
print building.Name
-
-
-
Empire State Building
-
-
-

Now that we’ve isolated the building name, we can change it.

-
building.Name = "Empire State Building"
-
-
-
print building.Name
-
-
-
Empire State Building
-
-
-

Did this actually change the name in the model ? Let us print the entire -model and see.

-
idf1.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-
-

Yes! It did. So now you have a taste of what eppy can do. Let’s get -started!

-
-
-

Modifying IDF Fields

-

That was just a quick example – we were showing off. Let’s look a -little closer.

-

As you might have guessed, changing an IDF field follows this -structure:

-
object.fieldname = "New Field Name"
-
-
-

Plugging the object name (building), the field name (Name) and our new -field name (“Empire State Building”) into this command gave us this:

-
building.Name = "Empire State Building"
-
-
-
import eppy
-# import eppy.ex_inits
-# reload(eppy.ex_inits)
-import eppy.ex_inits
-
-
-

But how did we know that “Name” is one of the fields in the object -“building”?

-

Are there other fields?

-

What are they called?

-

Let’s take a look at the IDF editor:

-
from eppy import ex_inits #no need to know this code, it just shows the image below
-for_images = ex_inits
-for_images.display_png(for_images.idfeditor)
-
-
-Main_Tutorial_files/Main_Tutorial_34_0.png -

In the IDF Editor, the building object is selected.

-

We can see all the fields of the object “BUILDING”.

-

They are:

-
    -
  • Name
  • -
  • North Axis
  • -
  • Terrain
  • -
  • Loads Convergence Tolerance Value
  • -
  • Temperature Convergence Tolerance Value
  • -
  • Solar Distribution
  • -
  • Maximum Number of Warmup Days
  • -
  • Minimum Number of Warmup Days
  • -
-

Let us try to access the other fields.

-
print building.Terrain
-
-
-
City
-
-
-

How about the field “North Axis” ?

-

It is not a single word, but two words.

-

In a programming language, a variable has to be a single word without -any spaces.

-

To solve this problem, put an underscore where there is a space.

-

So “North Axis” becomes “North_Axis”.

-
print building.North_Axis
-
-
-
30.0
-
-
-

Now we can do:

-
print building.Name
-print building.North_Axis
-print building.Terrain
-print building.Loads_Convergence_Tolerance_Value
-print building.Temperature_Convergence_Tolerance_Value
-print building.Solar_Distribution
-print building.Maximum_Number_of_Warmup_Days
-print building.Minimum_Number_of_Warmup_Days
-
-
-
Empire State Building
-30.0
-City
-0.04
-0.4
-FullExterior
-25
-6
-
-
-

Where else can we find the field names?

-

The IDF Editor saves the idf file with the field name commented next to -field.

-

Eppy also does this.

-

Let us take a look at the “BUILDING” object in the text file that the -IDF Editor saves

-
BUILDING,
-    White House,             !- Name
-    30.,                     !- North Axis {deg}
-    City,                    !- Terrain
-    0.04,                    !- Loads Convergence Tolerance Value
-    0.4,                     !- Temperature Convergence Tolerance Value {deltaC}
-    FullExterior,            !- Solar Distribution
-    25,                      !- Maximum Number of Warmup Days
-    6;                       !- Minimum Number of Warmup Days
-
-
-

This a good place to find the field names too.

-

It is easy to copy and paste from here. You can’t do that from the IDF -Editor.

-

We know that in an E+ model, there will be only ONE “BUILDING” object. -This will be the first and only item in the list “buildings”.

-

But E+ models are made up of objects such as “BUILDING”, -“SITE:LOCATION”, “ZONE”, “PEOPLE”, “LIGHTS”. There can be a number of -“ZONE” objects, a number of “PEOPLE” objects and a number of “LIGHTS” -objects.

-

So how do you know if you’re looking at the first “ZONE” object or the -second one? Or the tenth one? To answer this, we need to learn about how -lists work in python.

-
-
-

Python lesson 1: lists

-

Eppy holds these objects in a python structure called list. Let us take -a look at how lists work in python.

-
fruits = ["apple", "orange", "bannana"]
-# fruits is a list with three items in it.
-
-
-

To get the first item in fruits we say:

-
fruits[0]
-
-
-
'apple'
-
-
-

Why “0” ?

-

Because, unlike us, python starts counting from zero in a list. So, to -get the third item in the list we’d need to input 2, like this:

-
print fruits[2]
-
-
-
bannana
-
-
-

But calling the first fruit “fruit[0]” is rather cumbersome. Why don’t -we call it firstfruit?

-
firstfruit = fruits[0]
-print firstfruit
-
-
-
apple
-
-
-

We also can say

-
goodfruit = fruits[0]
-redfruit = fruits[0]
-
-print firstfruit
-print goodfruit
-print redfruit
-print fruits[0]
-
-
-
apple
-apple
-apple
-apple
-
-
-

As you see, we can call that item in the list whatever we want.

-
-

How many items in the list

-

To know how many items are in a list, we ask for the length of the list.

-

The function ‘len’ will do this for us.

-
print len(fruits)
-
-
-
3
-
-
-

There are 3 fruits in the list.

-
-
-
-

Saving an idf file

-

This is easy:

-
idf1.save()
-
-
-

If you’d like to do a “Save as…” use this:

-
idf1.saveas('something.idf')
-
-
-
-
-

Working with E+ objects

-

Let us open a small idf file that has only “CONSTRUCTION” and “MATERIAL” -objects in it. You can go into “../idffiles/V_7_2/constructions.idf” -and take a look at the file. We are not printing it here because it is -too big.

-

So let us open it using the idfreader -

-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-try:
-    IDF.setiddname(iddfile)
-except modeleditor.IDDAlreadySetError as e:
-    pass
-
-fname1 = "../eppy/resources/idffiles/V_7_2/constructions.idf"
-idf1 = IDF(fname1)
-
-
-

Let us print all the “MATERIAL” objects in this model.

-
materials = idf1.idfobjects["MATERIAL"]
-print materials
-
-
-
[
-Material,
-    F08 Metal surface,        !- Name
-    Smooth,                   !- Roughness
-    0.0008,                   !- Thickness
-    45.28,                    !- Conductivity
-    7824.0,                   !- Density
-    500.0;                    !- Specific Heat
-,
-Material,
-    I01 25mm insulation board,    !- Name
-    MediumRough,              !- Roughness
-    0.0254,                   !- Thickness
-    0.03,                     !- Conductivity
-    43.0,                     !- Density
-    1210.0;                   !- Specific Heat
-,
-Material,
-    I02 50mm insulation board,    !- Name
-    MediumRough,              !- Roughness
-    0.0508,                   !- Thickness
-    0.03,                     !- Conductivity
-    43.0,                     !- Density
-    1210.0;                   !- Specific Heat
-,
-Material,
-    G01a 19mm gypsum board,    !- Name
-    MediumSmooth,             !- Roughness
-    0.019,                    !- Thickness
-    0.16,                     !- Conductivity
-    800.0,                    !- Density
-    1090.0;                   !- Specific Heat
-,
-Material,
-    M11 100mm lightweight concrete,    !- Name
-    MediumRough,              !- Roughness
-    0.1016,                   !- Thickness
-    0.53,                     !- Conductivity
-    1280.0,                   !- Density
-    840.0;                    !- Specific Heat
-,
-Material,
-    F16 Acoustic tile,        !- Name
-    MediumSmooth,             !- Roughness
-    0.0191,                   !- Thickness
-    0.06,                     !- Conductivity
-    368.0,                    !- Density
-    590.0;                    !- Specific Heat
-,
-Material,
-    M01 100mm brick,          !- Name
-    MediumRough,              !- Roughness
-    0.1016,                   !- Thickness
-    0.89,                     !- Conductivity
-    1920.0,                   !- Density
-    790.0;                    !- Specific Heat
-,
-Material,
-    M15 200mm heavyweight concrete,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.95,                     !- Conductivity
-    2240.0,                   !- Density
-    900.0;                    !- Specific Heat
-,
-Material,
-    M05 200mm concrete block,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.11,                     !- Conductivity
-    800.0,                    !- Density
-    920.0;                    !- Specific Heat
-,
-Material,
-    G05 25mm wood,            !- Name
-    MediumSmooth,             !- Roughness
-    0.0254,                   !- Thickness
-    0.15,                     !- Conductivity
-    608.0,                    !- Density
-    1630.0;                   !- Specific Heat
-]
-
-
-

As you can see, there are many material objects in this idf file.

-

The variable “materials” now contains a list of “MATERIAL” objects.

-

You already know a little about lists, so let us take a look at the -items in this list.

-
firstmaterial = materials[0]
-secondmaterial = materials[1]
-
-
-
print firstmaterial
-
-
-
Material,
-    F08 Metal surface,        !- Name
-    Smooth,                   !- Roughness
-    0.0008,                   !- Thickness
-    45.28,                    !- Conductivity
-    7824.0,                   !- Density
-    500.0;                    !- Specific Heat
-
-
-

Let us print secondmaterial

-
print secondmaterial
-
-
-
Material,
-    I01 25mm insulation board,    !- Name
-    MediumRough,              !- Roughness
-    0.0254,                   !- Thickness
-    0.03,                     !- Conductivity
-    43.0,                     !- Density
-    1210.0;                   !- Specific Heat
-
-
-

This is awesome!! Why?

-

To understand what you can do with your objects organized as lists, -you’ll have to learn a little more about lists.

-
-
-

Python lesson 2: more about lists

-
-

More ways to access items in a list

-

You should remember that you can access any item in a list by passing in -its index.

-

The tricky part is that python starts counting at 0, so you need to -input 0 in order to get the first item in a list.

-

Following the same logic, you need to input 3 in order to get the fourth -item on the list. Like so:

-
bad_architects = ["Donald Trump", "Mick Jagger",
-        "Steve Jobs", "Lady Gaga", "Santa Clause"]
-print bad_architects[3]
-
-
-
Lady Gaga
-
-
-

But there’s another way to access items in a list. If you input -1, it -will return the last item. -2 will give you the second-to-last item, -etc.

-
print bad_architects[-1]
-print bad_architects[-2]
-
-
-
Santa Clause
-Lady Gaga
-
-
-
-
-

Slicing a list

-

You can also get more than one item in a list:

-

bad_architects[first_slice:second_slice]

-
print bad_architects[1:3] # slices at 1 and 3
-
-
-
['Mick Jagger', 'Steve Jobs']
-
-
-

How do I make sense of this?

-

To understand this you need to see the list in the following manner:

-
[ "Donald Trump", "Mick Jagger", "Steve Jobs", "Lady Gaga", "Santa Clause" ]
- ^               ^              ^             ^            ^              ^
- 0               1              2             3            4              5
--5              -4             -3            -2           -1
-
-
-

The slice operation bad_architects[1:3] slices right where the numbers -are.

-

Does that make sense?

-

Let us try a few other slices:

-
print bad_architects[2:-1] # slices at 2 and -1
-print bad_architects[-3:-1] # slices at -3 and -1
-
-
-
['Steve Jobs', 'Lady Gaga']
-['Steve Jobs', 'Lady Gaga']
-
-
-

You can also slice in the following way:

-
print bad_architects[3:]
-print bad_architects[:2]
-print bad_architects[-3:]
-print bad_architects[:-2]
-
-
-
['Lady Gaga', 'Santa Clause']
-['Donald Trump', 'Mick Jagger']
-['Steve Jobs', 'Lady Gaga', 'Santa Clause']
-['Donald Trump', 'Mick Jagger', 'Steve Jobs']
-
-
-

I’ll let you figure that out on your own.

-
-
-

Adding to a list

-

This is simple: the append function adds an item to the end of the list.

-

The following command will add ‘something’ to the end of the list called -listname:

-
listname.append(something)
-
-
-
bad_architects.append("First-year students")
-print bad_architects
-
-
-
['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause', 'First-year students']
-
-
-
-
-

Deleting from a list

-

There are two ways to do this, based on the information you have. If you -have the value of the object, you’ll want to use the remove function. It -looks like this:

-

listname.remove(value)

-

An example:

-
bad_architects.remove("First-year students")
-print bad_architects
-
-
-
['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause']
-
-
-

What if you know the index of the item you want to remove?

-

What if you appended an item by mistake and just want to remove the last -item in the list?

-

You should use the pop function. It looks like this:

-

listname.pop(index)

-
what_i_ate_today = ["coffee", "bacon", "eggs"]
-print what_i_ate_today
-
-
-
['coffee', 'bacon', 'eggs']
-
-
-
what_i_ate_today.append("vegetables") # adds vegetables to the end of the list
-# but I don't like vegetables
-print what_i_ate_today
-
-
-
['coffee', 'bacon', 'eggs', 'vegetables']
-
-
-
# since I don't like vegetables
-what_i_ate_today.pop(-1) # use index of -1, since vegetables is the last item in the list
-print what_i_ate_today
-
-
-
['coffee', 'bacon', 'eggs']
-
-
-

You can also remove the second item.

-
what_i_ate_today.pop(1)
-
-
-
'bacon'
-
-
-

Notice the ‘bacon’ in the line above.

-

pop actually ‘pops’ the value (the one you just removed from the list) -back to you.

-

Let us pop the first item.

-
was_first_item = what_i_ate_today.pop(0)
-print 'was_first_item =', was_first_item
-print 'what_i_ate_today = ', what_i_ate_today
-
-
-
was_first_item = coffee
-what_i_ate_today =  ['eggs']
-
-
-

what_i_ate_today is just ‘eggs’?

-

That is not much of a breakfast!

-

Let us get back to eppy.

-
-
-
-

Continuing to work with E+ objects

-

Let us get those “MATERIAL” objects again

-
materials = idf1.idfobjects["MATERIAL"]
-
-
-

With our newfound knowledge of lists, we can do a lot of things.

-

Let us get the last material:

-
print materials[-1]
-
-
-
Material,
-    G05 25mm wood,            !- Name
-    MediumSmooth,             !- Roughness
-    0.0254,                   !- Thickness
-    0.15,                     !- Conductivity
-    608.0,                    !- Density
-    1630.0;                   !- Specific Heat
-
-
-

How about the last two?

-
print materials[-2:]
-
-
-
[
-Material,
-    M05 200mm concrete block,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.11,                     !- Conductivity
-    800.0,                    !- Density
-    920.0;                    !- Specific Heat
-,
-Material,
-    G05 25mm wood,            !- Name
-    MediumSmooth,             !- Roughness
-    0.0254,                   !- Thickness
-    0.15,                     !- Conductivity
-    608.0,                    !- Density
-    1630.0;                   !- Specific Heat
-]
-
-
-

Pretty good.

-
-

Counting all the materials ( or counting all objects )

-

How many materials are in this model ?

-
print len(materials)
-
-
-
10
-
-
-
-
-

Removing a material

-

Let us remove the last material in the list

-
was_last_material = materials.pop(-1)
-
-
-
print len(materials)
-
-
-
9
-
-
-

Success! We have only 9 materials now.

-

The last material used to be:

-

‘G05 25mm wood’

-
print materials[-1]
-
-
-
Material,
-    M05 200mm concrete block,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.11,                     !- Conductivity
-    800.0,                    !- Density
-    920.0;                    !- Specific Heat
-
-
-

Now the last material in the list is:

-

‘M15 200mm heavyweight concrete’

-
-
-

Adding a material to the list

-

We still have the old last material

-
print was_last_material
-
-
-
Material,
-    G05 25mm wood,            !- Name
-    MediumSmooth,             !- Roughness
-    0.0254,                   !- Thickness
-    0.15,                     !- Conductivity
-    608.0,                    !- Density
-    1630.0;                   !- Specific Heat
-
-
-

Let us add it back to the list

-
materials.append(was_last_material)
-
-
-
print len(materials)
-
-
-
10
-
-
-

Once again we have 10 materials and the last material is:

-
print materials[-1]
-
-
-
Material,
-    G05 25mm wood,            !- Name
-    MediumSmooth,             !- Roughness
-    0.0254,                   !- Thickness
-    0.15,                     !- Conductivity
-    608.0,                    !- Density
-    1630.0;                   !- Specific Heat
-
-
-
-
-

Add a new material to the model

-

So far we have been working only with materials that were already in the -list.

-

What if we want to make new material?

-

Obviously we would use the function ‘newidfobject’.

-
idf1.newidfobject("MATERIAL")
-
-
-
MATERIAL,
-    ,                         !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-
len(materials)
-
-
-
11
-
-
-

We have 11 items in the materials list.

-

Let us take a look at the last material in the list, where this fancy -new material was added

-
print materials[-1]
-
-
-
MATERIAL,
-    ,                         !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-

Looks a little different from the other materials. It does have the name -we gave it.

-

Why do some fields have values and others are blank ?

-

“addobject” puts in all the default values, and leaves the others blank. -It is up to us to put values in the the new fields.

-

Let’s do it now.

-
materials[-1].Name = 'Peanut Butter'
-materials[-1].Roughness = 'MediumSmooth'
-materials[-1].Thickness = 0.03
-materials[-1].Conductivity = 0.16
-materials[-1].Density = 600
-materials[-1].Specific_Heat = 1500
-
-
-
print materials[-1]
-
-
-
MATERIAL,
-    Peanut Butter,            !- Name
-    MediumSmooth,             !- Roughness
-    0.03,                     !- Thickness
-    0.16,                     !- Conductivity
-    600,                      !- Density
-    1500,                     !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-
-
-

Copy an existing material

-
Peanutbuttermaterial = materials[-1]
-idf1.copyidfobject(Peanutbuttermaterial)
-materials = idf1.idfobjects["MATERIAL"]
-len(materials)
-materials[-1]
-
-
-
MATERIAL,
-    Peanut Butter,            !- Name
-    MediumSmooth,             !- Roughness
-    0.03,                     !- Thickness
-    0.16,                     !- Conductivity
-    600,                      !- Density
-    1500,                     !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-
-
-
-

Python lesson 3: indentation and looping through lists

-

I’m tired of doing all this work, it’s time to make python do some heavy -lifting for us!

-

Python can go through each item in a list and perform an operation on -any (or every) item in the list.

-

This is called looping through the list.

-

Here’s how to tell python to step through each item in a list, and then -do something to every single item.

-

We’ll use a ‘for’ loop to do this.

-
for <variable> in <listname>:
-    <do something>
-
-
-

A quick note about the second line. Notice that it’s indented? There are -4 blank spaces before the code starts:

-
in python, indentations are used
-to determine the grouping of statements
-       some languages use symbols to mark
-       where the function code starts and stops
-       but python uses indentation to tell you this
-                i'm using indentation to
-                show the beginning and end of a sentence
-       this is a very simple explanation
-       of indentation in python
- if you'd like to know more, there is plenty of information
- about indentation in python on the web
-
-
-

It’s elegant, but it means that the indentation of the code holds -meaning.

-

So make sure to indent the second (and third and forth) lines of your -loops!

-

Now let’s make some fruit loops.

-
fruits = ["apple", "orange", "bannana"]
-
-
-

Given the syntax I gave you before I started rambling about indentation, -we can easily print every item in the fruits list by using a ‘for’ loop.

-
for fruit in fruits:
-   print fruit
-
-
-
apple
-orange
-bannana
-
-
-

That was easy! But it can get complicated pretty quickly…

-

Let’s make it do something more complicated than just print the fruits.

-

Let’s have python add some words to each fruit.

-
for fruit in fruits:
-    print "I am a fruit said the", fruit
-
-
-
I am a fruit said the apple
-I am a fruit said the orange
-I am a fruit said the bannana
-
-
-

Now we’ll try to confuse you:

-
rottenfruits = [] # makes a blank list called rottenfruits
-for fruit in fruits: # steps through every item in fruits
-    rottenfruit = "rotten " + fruit # changes each item to "rotten _____"
-    rottenfruits.append(rottenfruit) # adds each changed item to the formerly empty list
-
-
-
print rottenfruits
-
-
-
['rotten apple', 'rotten orange', 'rotten bannana']
-
-
-
# here's a shorter way of writing it
-rottenfruits = ["rotten " + fruit for fruit in fruits]
-
-
-

Did you follow all that??

-

Just in case you didn’t, let’s review that last one:

-
["rotten " + fruit for fruit in fruits]
-                   -------------------
-                   This is the "for loop"
-                   it steps through each fruit in fruits
-
-["rotten " + fruit for fruit in fruits]
- -----------------
- add "rotten " to the fruit at each step
- this is your "do something"
-
-["rotten " + fruit for fruit in fruits]
----------------------------------------
-give a new list that is a result of the "do something"
-
-
-
print rottenfruits
-
-
-
['rotten apple', 'rotten orange', 'rotten bannana']
-
-
-
-

Filtering in a loop

-

But what if you don’t want to change every item in a list?

-

We can use an ‘if’ statement to operate on only some items in the list.

-

Indentation is also important in ‘if’ statements, as you’ll see:

-
if <someconstraint>:
-    <if the first line is true, do this>
-<but if it's false, do this>
-
-
-
fruits = ["apple", "orange", "pear", "berry", "mango", "plum", "peach", "melon", "bannana"]
-
-
-
for fruit in fruits:               # steps through every fruit in fruits
-    if len(fruit) > 5:             # checks to see if the length of the word is more than 5
-        print fruit                # if true, print the fruit
-                                   # if false, python goes back to the 'for' loop
-                                      # and checks the next item in the list
-
-
-
orange
-bannana
-
-
-

Let’s say we want to pick only the fruits that start with the letter -‘p’.

-
p_fruits = []                      # creates an empty list called p_fruits
-for fruit in fruits:               # steps through every fruit in fruits
-    if fruit.startswith("p"):      # checks to see if the first letter is 'p', using a built-in function
-        p_fruits.append(fruit)     # if the first letter is 'p', the item is added to p_fruits
-                                   # if the first letter is not 'p', python goes back to the 'for' loop
-                                      # and checks the next item in the list
-
-
-
print p_fruits
-
-
-
['pear', 'plum', 'peach']
-
-
-
# here's a shorter way to write it
-p_fruits = [fruit for fruit in fruits if fruit.startswith("p")]
-
-
-
[fruit for fruit in fruits if fruit.startswith("p")]
-       -------------------
-       for loop
-
-[fruit for fruit in fruits if fruit.startswith("p")]
-                           ------------------------
-                           pick only some of the fruits
-
-[fruit for fruit in fruits if fruit.startswith("p")]
- -----
- give me the variable fruit as it appears in the list, don't change it
-
-[fruit for fruit in fruits if fruit.startswith("p")]
-----------------------------------------------------
-a fresh new list with those fruits
-
-
-
print p_fruits
-
-
-
['pear', 'plum', 'peach']
-
-
-
-
-

Counting through loops

-

This is not really needed, but it is nice to know. You can safely skip -this.

-

Python’s built-in function range() makes a list of numbers within a -range that you specify.

-

This is useful because you can use these lists inside of loops.

-
range(4) # makes a list
-
-
-
[0, 1, 2, 3]
-
-
-
for i in range(4):
-    print i
-
-
-
0
-1
-2
-3
-
-
-
len(p_fruits)
-
-
-
3
-
-
-
for i in range(len(p_fruits)):
-    print i
-
-
-
0
-1
-2
-
-
-
for i in range(len(p_fruits)):
-    print p_fruits[i]
-
-
-
pear
-plum
-peach
-
-
-
for i in range(len(p_fruits)):
-    print i,  p_fruits[i]
-
-
-
0 pear
-1 plum
-2 peach
-
-
-
for item_from_enumerate in enumerate(p_fruits):
-    print item_from_enumerate
-
-
-
(0, 'pear')
-(1, 'plum')
-(2, 'peach')
-
-
-
for i, fruit in enumerate(p_fruits):
-    print i, fruit
-
-
-
0 pear
-1 plum
-2 peach
-
-
-
-
-
-

Looping through E+ objects

-

If you have read the python explanation of loops, you are now masters of -using loops.

-

Let us use the loops with E+ objects.

-

We’ll continue to work with the materials list.

-
for material in materials:
-    print material.Name
-
-
-
F08 Metal surface
-I01 25mm insulation board
-I02 50mm insulation board
-G01a 19mm gypsum board
-M11 100mm lightweight concrete
-F16 Acoustic tile
-M01 100mm brick
-M15 200mm heavyweight concrete
-M05 200mm concrete block
-G05 25mm wood
-Peanut Butter
-Peanut Butter
-
-
-
[material.Name for material in materials]
-
-
-
[u'F08 Metal surface',
- u'I01 25mm insulation board',
- u'I02 50mm insulation board',
- u'G01a 19mm gypsum board',
- u'M11 100mm lightweight concrete',
- u'F16 Acoustic tile',
- u'M01 100mm brick',
- u'M15 200mm heavyweight concrete',
- u'M05 200mm concrete block',
- u'G05 25mm wood',
- 'Peanut Butter',
- 'Peanut Butter']
-
-
-
[material.Roughness for material in materials]
-
-
-
[u'Smooth',
- u'MediumRough',
- u'MediumRough',
- u'MediumSmooth',
- u'MediumRough',
- u'MediumSmooth',
- u'MediumRough',
- u'MediumRough',
- u'MediumRough',
- u'MediumSmooth',
- 'MediumSmooth',
- 'MediumSmooth']
-
-
-
[material.Thickness for material in materials]
-
-
-
[0.0008,
- 0.0254,
- 0.0508,
- 0.019,
- 0.1016,
- 0.0191,
- 0.1016,
- 0.2032,
- 0.2032,
- 0.0254,
- 0.03,
- 0.03]
-
-
-
[material.Thickness for material in materials if material.Thickness > 0.1]
-
-
-
[0.1016, 0.1016, 0.2032, 0.2032]
-
-
-
[material.Name for material in materials if material.Thickness > 0.1]
-
-
-
[u'M11 100mm lightweight concrete',
- u'M01 100mm brick',
- u'M15 200mm heavyweight concrete',
- u'M05 200mm concrete block']
-
-
-
thick_materials = [material for material in materials if material.Thickness > 0.1]
-
-
-
thick_materials
-
-
-
[
-Material,
-    M11 100mm lightweight concrete,    !- Name
-    MediumRough,              !- Roughness
-    0.1016,                   !- Thickness
-    0.53,                     !- Conductivity
-    1280.0,                   !- Density
-    840.0;                    !- Specific Heat
-,
-
-Material,
-    M01 100mm brick,          !- Name
-    MediumRough,              !- Roughness
-    0.1016,                   !- Thickness
-    0.89,                     !- Conductivity
-    1920.0,                   !- Density
-    790.0;                    !- Specific Heat
-,
-
-Material,
-    M15 200mm heavyweight concrete,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.95,                     !- Conductivity
-    2240.0,                   !- Density
-    900.0;                    !- Specific Heat
-,
-
-Material,
-    M05 200mm concrete block,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.11,                     !- Conductivity
-    800.0,                    !- Density
-    920.0;                    !- Specific Heat
-]
-
-
-
# change the names of the thick materials
-for material in thick_materials:
-    material.Name = "THICK " + material.Name
-
-
-
thick_materials
-
-
-
[
-Material,
-    THICK M11 100mm lightweight concrete,    !- Name
-    MediumRough,              !- Roughness
-    0.1016,                   !- Thickness
-    0.53,                     !- Conductivity
-    1280.0,                   !- Density
-    840.0;                    !- Specific Heat
-,
-
-Material,
-    THICK M01 100mm brick,    !- Name
-    MediumRough,              !- Roughness
-    0.1016,                   !- Thickness
-    0.89,                     !- Conductivity
-    1920.0,                   !- Density
-    790.0;                    !- Specific Heat
-,
-
-Material,
-    THICK M15 200mm heavyweight concrete,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.95,                     !- Conductivity
-    2240.0,                   !- Density
-    900.0;                    !- Specific Heat
-,
-
-Material,
-    THICK M05 200mm concrete block,    !- Name
-    MediumRough,              !- Roughness
-    0.2032,                   !- Thickness
-    1.11,                     !- Conductivity
-    800.0,                    !- Density
-    920.0;                    !- Specific Heat
-]
-
-
-

So now we’re working with two different lists: materials and -thick_materials.

-

But even though the items can be separated into two lists, we’re still -working with the same items.

-

Here’s a helpful illustration:

-
for_images.display_png(for_images.material_lists) # display the image below
-
-
-Main_Tutorial_files/Main_Tutorial_207_0.png -
# here's the same concept, demonstrated with code
-# remember, we changed the names of the items in the list thick_materials
-# these changes are visible when we print the materials list; the thick materials are also in the materials list
-[material.Name for material in materials]
-
-
-
[u'F08 Metal surface',
- u'I01 25mm insulation board',
- u'I02 50mm insulation board',
- u'G01a 19mm gypsum board',
- u'THICK M11 100mm lightweight concrete',
- u'F16 Acoustic tile',
- u'THICK M01 100mm brick',
- u'THICK M15 200mm heavyweight concrete',
- u'THICK M05 200mm concrete block',
- u'G05 25mm wood',
- 'Peanut Butter',
- 'Peanut Butter']
-
-
-
-
-

Geometry functions in eppy

-

Sometimes, we want information about the E+ object that is not in the -fields. For example, it would be useful to know the areas and -orientations of the surfaces. These attributes of the surfaces are not -in the fields of surfaces, but surface objects do have fields that -have the coordinates of the surface. The areas and orientations can be -calculated from these coordinates.

-

Pyeplus has some functions that will do the calculations.

-

In the present version, pyeplus will calculate:

-
    -
  • surface azimuth
  • -
  • surface tilt
  • -
  • surface area
  • -
-

Let us explore these functions

-
# OLD CODE, SHOULD BE DELETED
-# from idfreader import idfreader
-
-# iddfile = "../iddfiles/Energy+V7_0_0_036.idd"
-# fname = "../idffiles/V_7_0/5ZoneSupRetPlenRAB.idf"
-
-# model, to_print, idd_info = idfreader(fname, iddfile)
-# surfaces = model['BUILDINGSURFACE:DETAILED'] # all the surfaces
-
-
-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-try:
-    IDF.setiddname(iddfile)
-except modeleditor.IDDAlreadySetError as e:
-    pass
-
-
-fname1 = "../eppy/resources/idffiles/V_7_0/5ZoneSupRetPlenRAB.idf"
-idf1 = IDF(fname1)
-surfaces = idf1.idfobjects['BUILDINGSURFACE:DETAILED']
-
-
-
# Let us look at the first surface
-asurface = surfaces[0]
-print "surface azimuth =",  asurface.azimuth, "degrees"
-print "surface tilt =", asurface.tilt, "degrees"
-print "surface area =", asurface.area, "m2"
-
-
-
surface azimuth = 180.0 degrees
-surface tilt = 90.0 degrees
-surface area = 18.3 m2
-
-
-
# all the surface names
-s_names = [surface.Name for surface in surfaces]
-print s_names[:5] # print five of them
-
-
-
[u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'TOP-1']
-
-
-
# surface names and azimuths
-s_names_azm = [(sf.Name, sf.azimuth) for sf in surfaces]
-print s_names_azm[:5] # print five of them
-
-
-
[(u'WALL-1PF', 180.0), (u'WALL-1PR', 90.0), (u'WALL-1PB', 0.0), (u'WALL-1PL', 270.0), (u'TOP-1', 0.0)]
-
-
-
# or to do that in pretty printing
-for name, azimuth in s_names_azm[:5]: # just five of them
-    print name, azimuth
-
-
-
WALL-1PF 180.0
-WALL-1PR 90.0
-WALL-1PB 0.0
-WALL-1PL 270.0
-TOP-1 0.0
-
-
-
# surface names and tilt
-s_names_tilt = [(sf.Name, sf.tilt) for sf in surfaces]
-for name, tilt in s_names_tilt[:5]: # just five of them
-    print name, tilt
-
-
-
WALL-1PF 90.0
-WALL-1PR 90.0
-WALL-1PB 90.0
-WALL-1PL 90.0
-TOP-1 0.0
-
-
-
# surface names and areas
-s_names_area = [(sf.Name, sf.area) for sf in surfaces]
-for name, area in s_names_area[:5]: # just five of them
-    print name, area, "m2"
-
-
-
WALL-1PF 18.3 m2
-WALL-1PR 9.12 m2
-WALL-1PB 18.3 m2
-WALL-1PL 9.12 m2
-TOP-1 463.6 m2
-
-
-

Let us try to isolate the exterior north facing walls and change their -construnctions

-
# just vertical walls
-vertical_walls = [sf for sf in surfaces if sf.tilt == 90.0]
-print [sf.Name for sf in vertical_walls]
-
-
-
[u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'FRONT-1', u'SB12', u'SB14', u'SB15', u'RIGHT-1', u'SB21', u'SB23', u'BACK-1', u'SB32', u'SB35', u'LEFT-1', u'SB41', u'SB43', u'SB45', u'SB51', u'SB54', u'WALL-1SF', u'WALL-1SR', u'WALL-1SB', u'WALL-1SL']
-
-
-
# north facing walls
-north_walls = [sf for sf in vertical_walls if sf.azimuth == 0.0]
-print [sf.Name for sf in north_walls]
-
-
-
[u'WALL-1PB', u'SB15', u'BACK-1', u'WALL-1SB']
-
-
-
# north facing exterior walls
-exterior_nwall = [sf for sf in north_walls if sf.Outside_Boundary_Condition == "Outdoors"]
-print [sf.Name for sf in exterior_nwall]
-
-
-
[u'WALL-1PB', u'BACK-1', u'WALL-1SB']
-
-
-
# print out some more details of the north wall
-north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall]
-for name, azimuth, construction in north_wall_info:
-    print name, azimuth, construction
-
-
-
WALL-1PB 0.0 WALL-1
-BACK-1 0.0 WALL-1
-WALL-1SB 0.0 WALL-1
-
-
-
# change the construction in the exterior north walls
-for wall in exterior_nwall:
-    wall.Construction_Name = "NORTHERN-WALL" # make sure such a construction exists in the model
-
-
-
# see the change
-north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall]
-for name, azimuth, construction in north_wall_info:
-    print name, azimuth, construction
-
-
-
WALL-1PB 0.0 NORTHERN-WALL
-BACK-1 0.0 NORTHERN-WALL
-WALL-1SB 0.0 NORTHERN-WALL
-
-
-
# see this in all surfaces
-for sf in surfaces:
-    print sf.Name, sf.azimuth, sf.Construction_Name
-
-
-
WALL-1PF 180.0 WALL-1
-WALL-1PR 90.0 WALL-1
-WALL-1PB 0.0 NORTHERN-WALL
-WALL-1PL 270.0 WALL-1
-TOP-1 0.0 ROOF-1
-C1-1P 0.0 CLNG-1
-C2-1P 0.0 CLNG-1
-C3-1P 0.0 CLNG-1
-C4-1P 0.0 CLNG-1
-C5-1P 180.0 CLNG-1
-FRONT-1 180.0 WALL-1
-C1-1 180.0 CLNG-1
-F1-1 0.0 CLNG-1
-SB12 45.0 INT-WALL-1
-SB14 315.0 INT-WALL-1
-SB15 0.0 INT-WALL-1
-RIGHT-1 90.0 WALL-1
-C2-1 0.0 CLNG-1
-F2-1 0.0 CLNG-1
-SB21 225.0 INT-WALL-1
-SB23 315.784824603 INT-WALL-1
-SB25 270.0 INT-WALL-1
-BACK-1 0.0 NORTHERN-WALL
-C3-1 0.0 CLNG-1
-F3-1 0.0 CLNG-1
-SB32 135.784824603 INT-WALL-1
-SB34 224.215175397 INT-WALL-1
-SB35 180.0 INT-WALL-1
-LEFT-1 270.0 WALL-1
-C4-1 0.0 CLNG-1
-F4-1 0.0 CLNG-1
-SB41 135.0 INT-WALL-1
-SB43 44.215175397 INT-WALL-1
-SB45 90.0 INT-WALL-1
-C5-1 0.0 CLNG-1
-F5-1 0.0 CLNG-1
-SB51 180.0 INT-WALL-1
-SB52 90.0 INT-WALL-1
-SB53 0.0 INT-WALL-1
-SB54 270.0 INT-WALL-1
-WALL-1SF 180.0 WALL-1
-WALL-1SR 90.0 WALL-1
-WALL-1SB 0.0 NORTHERN-WALL
-WALL-1SL 270.0 WALL-1
-BOTTOM-1 0.0 FLOOR-SLAB-1
-F1-1S 0.0 CLNG-1
-F2-1S 0.0 CLNG-1
-F3-1S 0.0 CLNG-1
-F4-1S 0.0 CLNG-1
-F5-1S 0.0 CLNG-1
-
-
-

You can see the “NORTHERN-WALL” in the print out above.

-

This shows that very sophisticated modification can be made to the model -rather quickly.

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/Outputs_Tutorial.html b/docs/_build/html/Outputs_Tutorial.html deleted file mode 100644 index 45f6cdb3..00000000 --- a/docs/_build/html/Outputs_Tutorial.html +++ /dev/null @@ -1,605 +0,0 @@ - - - - - - - - Reading outputs from E+ — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Reading outputs from E+

-
# some initial set up
-# if you have not installed epp, and only downloaded it
-# you will need the following lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../'
-sys.path.append(pathnameto_eppy)
-
-
-
-

Using titletable() to get at the tables

-

So far we have been making changes to the IDF input file. How about -looking at the outputs.

-

Energyplus makes nice htmlout files that look like this.

-
from eppy import ex_inits #no need to know this code, it just shows the image below
-for_images = ex_inits
-for_images.display_png(for_images.html_snippet1) #display the image below
-
-
-Outputs_Tutorial_files/Outputs_Tutorial_4_0.png -

If you look at the clipping of the html file above, you see tables with -data in them. Eppy has functions that let you access of these tables and -get the data from any of it’s cells.

-

Let us say you want to find the “Net Site Energy”.

-

This is in table “Site and Source Energy”.

-

The number you want is in the third row, second column and it’s value is -“47694.47”

-

Let us use eppy to extract this number

-
from eppy.results import readhtml # the eppy module with functions to read the html
-fname = "../eppy/resources/outputfiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlowTable_ABUPS.html" # the html file you want to read
-filehandle = open(fname, 'r').read() # get a file handle to the html file
-
-
-htables = readhtml.titletable(filehandle) # reads the tables with their titles
-
-
-

If you open the python file readhtml.py and look at the function -titletable, you can see the function documentation.

-

It says the following

-
-
“”“return a list of [(title, table), …..] -title = previous item with a <b> tag -table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]”“”
-

The documentation says that it returns a list. Let us take a look inside -this list. Let us look at the first item in the list.

-
firstitem = htables[0]
-print firstitem
-
-
-
(u'Site and Source Energy', [[u'', u'Total Energy [kWh]', u'Energy Per Total Building Area [kWh/m2]', u'Energy Per Conditioned Building Area [kWh/m2]'], [u'Total Site Energy', 47694.47, 51.44, 51.44], [u'Net Site Energy', 47694.47, 51.44, 51.44], [u'Total Source Energy', 140159.1, 151.16, 151.16], [u'Net Source Energy', 140159.1, 151.16, 151.16]])
-
-
-
-
Ughh !!! that is ugly. Hard to see what it is.
-
Let us use a python module to print it pretty
-
-
import pprint
-pp = pprint.PrettyPrinter()
-pp.pprint(firstitem)
-
-
-
(u'Site and Source Energy',
- [[u'',
-   u'Total Energy [kWh]',
-   u'Energy Per Total Building Area [kWh/m2]',
-   u'Energy Per Conditioned Building Area [kWh/m2]'],
-  [u'Total Site Energy', 47694.47, 51.44, 51.44],
-  [u'Net Site Energy', 47694.47, 51.44, 51.44],
-  [u'Total Source Energy', 140159.1, 151.16, 151.16],
-  [u'Net Source Energy', 140159.1, 151.16, 151.16]])
-
-
-

Nice. that is a little clearer

-
firstitem_title = firstitem[0]
-pp.pprint(firstitem_title)
-
-
-
u'Site and Source Energy'
-
-
-
firstitem_table = firstitem[1]
-pp.pprint(firstitem_table)
-
-
-
[[u'',
-  u'Total Energy [kWh]',
-  u'Energy Per Total Building Area [kWh/m2]',
-  u'Energy Per Conditioned Building Area [kWh/m2]'],
- [u'Total Site Energy', 47694.47, 51.44, 51.44],
- [u'Net Site Energy', 47694.47, 51.44, 51.44],
- [u'Total Source Energy', 140159.1, 151.16, 151.16],
- [u'Net Source Energy', 140159.1, 151.16, 151.16]]
-
-
-
-
How do we get to value of “Net Site Energy”.
-
We know it is in the third row, second column of the table.
-
-

Easy.

-
thirdrow = firstitem_table[2] # we start counting with 0. So 0, 1, 2 is third row
-print thirdrow
-
-
-
[u'Net Site Energy', 47694.47, 51.44, 51.44]
-
-
-
thirdrow_secondcolumn = thirdrow[1]
-thirdrow_secondcolumn
-
-
-
47694.47
-
-
-
-
the text from the html table is in unicode.
-
That is why you see that weird ‘u’ letter.
-
-

Let us convert it to a floating point number

-
net_site_energy = float(thirdrow_secondcolumn)
-net_site_energy
-
-
-
47694.47
-
-
-

Let us have a little fun with the tables.

-

Get the titles of all the tables

-
alltitles = [htable[0] for htable in htables]
-alltitles
-
-
-
[u'Site and Source Energy',
- u'Site to Source Energy Conversion Factors',
- u'Building Area',
- u'End Uses',
- u'End Uses By Subcategory',
- u'Utility Use Per Conditioned Floor Area',
- u'Utility Use Per Total Floor Area',
- u'Electric Loads Satisfied',
- u'On-Site Thermal Sources',
- u'Water Source Summary',
- u'Comfort and Setpoint Not Met Summary',
- u'Comfort and Setpoint Not Met Summary']
-
-
-

Now let us grab the tables with the titles “Building Area” and “Site to -Source Energy Conversion Factors”

-

twotables = [htable for htable in htables if htable[0] in [“Building -Area”, “Site to Source Energy Conversion Factors”]] twotables

-

Let us leave readtables for now.

-

It gives us the basic functionality to read any of the tables in the -html output file.

-
-
-

Using lines_table() to get at the tables

-

We have been using titletable() to get at the tables. There is a -constraint using function titletable(). Titletable() assumes that there -is a unique title (in HTML bold) just above the table. It is assumed -that this title will adequetly describe the table. This is true in most -cases and titletable() is perfectly good to use. Unfortuntely there are -some tables that do not follow this rule. The snippet below shows one of -them.

-
from eppy import ex_inits #no need to know this code, it just shows the image below
-for_images = ex_inits
-for_images.display_png(for_images.html_snippet2) # display the image below
-
-
-Outputs_Tutorial_files/Outputs_Tutorial_28_0.png -

Notice that the HTML snippet shows a table with three lines above it. -The first two lines have information that describe the table. We need to -look at both those lines to understand what the table contains. So we -need a different function that will capture all those lines before the -table. The funtion lines_table() described below will do this.

-
from eppy.results import readhtml # the eppy module with functions to read the html
-fname = "../eppy/resources/outputfiles/V_8_1/ASHRAE30pct.PI.Final11_OfficeMedium_STD2010_Chicago-baseTable.html" # the html file you want to read
-filehandle = open(fname, 'r').read() # get a file handle to the html file
-
-
-ltables = readhtml.lines_table(filehandle) # reads the tables with their titles
-
-
-

The html snippet shown above is the last table in HTML file we just -opened. We have used lines_table() to read the tables into the variable -ltables. We can get to the last table by ltable[-1]. Let us print it and -see what we have.

-
import pprint
-pp = pprint.PrettyPrinter()
-pp.pprint(ltables[-1])
-
-
-
-[[u'Table of Contents',
-  u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',
-  u'For: PERIMETER_MID_ZN_4',
-  u'Timestamp: 2014-02-07n    12:29:08'],
- [[u'',
-   u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',
-   u'FANGERPPD {FOR HOURS SHOWN} []',
-   u'FANGERPPD []'],
-  [u'January', 102.637, 12.585, 32.231],
-  [u'February', 147.054, 10.5, 24.225],
-  [u'March', 286.835, 8.799, 16.86],
-  [u'April', 363.165, 7.704, 9.628],
-  [u'May', 428.458, 19.642, 21.401],
-  [u'June', 431.25, 10.092, 9.954],
-  [u'July', 432.134, 8.835, 7.959],
-  [u'August', 443.5, 9.743, 8.785],
-  [u'September', 408.833, 15.91, 14.855],
-  [u'October', 383.652, 6.919, 7.57],
-  [u'November', 243.114, 8.567, 15.256],
-  [u'December', 91.926, 14.298, 29.001],
-  [u'xa0', u'xa0', u'xa0', u'xa0'],
-  [u'Annual Sum or Average', 3762.56, 11.062, 16.458],
-  [u'Minimum of Months', 91.926, 6.919, 7.57],
-  [u'Maximum of Months', 443.5, 19.642, 32.231]]]
-
-

We can see that ltables has captured all the lines before the table. Let -us make our code more explicit to see this

-
last_ltable = ltables[-1]
-lines_before_table = last_ltable[0]
-table_itself = last_ltable[-1]
-
-pp.pprint(lines_before_table)
-
-
-
-[u'Table of Contents',
- u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',
- u'For: PERIMETER_MID_ZN_4',
- u'Timestamp: 2014-02-07n    12:29:08']
-
-

We found this table the easy way this time, because we knew it was the -last one. How do we find it if we don’t know where it is in the file ? -Python comes to our rescue :-) Let assume that we want to find the table -that has the following two lines before it.

-
    -
  • Report: FANGER DURING COOLING AND ADAPTIVE COMFORT
  • -
  • For: PERIMETER_MID_ZN_4
  • -
-
line1 = 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT'
-line2 = 'For: PERIMETER_MID_ZN_4'
-#
-# check if those two lines are before the table
-line1 in lines_before_table and line2 in lines_before_table
-
-
-
True
-
-
-
# find all the tables where those two lines are before the table
-[ltable for ltable in ltables
-    if line1 in ltable[0] and line2 in ltable[0]]
-
-
-
-[[[u'Table of Contents',
-   u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',
-   u'For: PERIMETER_MID_ZN_4',
-   u'Timestamp: 2014-02-07n    12:29:08'],
-  [[u'',
-    u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',
-    u'FANGERPPD {FOR HOURS SHOWN} []',
-    u'FANGERPPD []'],
-   [u'January', 102.637, 12.585, 32.231],
-   [u'February', 147.054, 10.5, 24.225],
-   [u'March', 286.835, 8.799, 16.86],
-   [u'April', 363.165, 7.704, 9.628],
-   [u'May', 428.458, 19.642, 21.401],
-   [u'June', 431.25, 10.092, 9.954],
-   [u'July', 432.134, 8.835, 7.959],
-   [u'August', 443.5, 9.743, 8.785],
-   [u'September', 408.833, 15.91, 14.855],
-   [u'October', 383.652, 6.919, 7.57],
-   [u'November', 243.114, 8.567, 15.256],
-   [u'December', 91.926, 14.298, 29.001],
-   [u'xa0', u'xa0', u'xa0', u'xa0'],
-   [u'Annual Sum or Average', 3762.56, 11.062, 16.458],
-   [u'Minimum of Months', 91.926, 6.919, 7.57],
-   [u'Maximum of Months', 443.5, 19.642, 32.231]]]]
-
-

That worked !

-

What if you want to find the words “FANGER” and “PERIMETER_MID_ZN_4” -before the table. The following code will do it.

-
# sample code to illustrate what we are going to do
-last_ltable = ltables[-1]
-lines_before_table = last_ltable[0]
-table_itself = last_ltable[-1]
-
-# join lines_before_table into a paragraph of text
-justtext = '\n'.join(lines_before_table)
-print justtext
-
-
-
Table of Contents
-Report: FANGER DURING COOLING AND ADAPTIVE COMFORT
-For: PERIMETER_MID_ZN_4
-Timestamp: 2014-02-07
-    12:29:08
-
-
-
"FANGER" in justtext and "PERIMETER_MID_ZN_4" in justtext
-
-
-
True
-
-
-
# Let us combine the this trick to find the table
-[ltable for ltable in ltables
-    if "FANGER" in '\n'.join(ltable[0]) and "PERIMETER_MID_ZN_4" in '\n'.join(ltable[0])]
-
-
-
-[[[u'Table of Contents',
-   u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT',
-   u'For: PERIMETER_MID_ZN_4',
-   u'Timestamp: 2014-02-07n    12:29:08'],
-  [[u'',
-    u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]',
-    u'FANGERPPD {FOR HOURS SHOWN} []',
-    u'FANGERPPD []'],
-   [u'January', 102.637, 12.585, 32.231],
-   [u'February', 147.054, 10.5, 24.225],
-   [u'March', 286.835, 8.799, 16.86],
-   [u'April', 363.165, 7.704, 9.628],
-   [u'May', 428.458, 19.642, 21.401],
-   [u'June', 431.25, 10.092, 9.954],
-   [u'July', 432.134, 8.835, 7.959],
-   [u'August', 443.5, 9.743, 8.785],
-   [u'September', 408.833, 15.91, 14.855],
-   [u'October', 383.652, 6.919, 7.57],
-   [u'November', 243.114, 8.567, 15.256],
-   [u'December', 91.926, 14.298, 29.001],
-   [u'xa0', u'xa0', u'xa0', u'xa0'],
-   [u'Annual Sum or Average', 3762.56, 11.062, 16.458],
-   [u'Minimum of Months', 91.926, 6.919, 7.57],
-   [u'Maximum of Months', 443.5, 19.642, 32.231]]]]
-
-
-
-

Extracting data from the tables

-

The tables in the HTML page in general have text in the top header row. -The first vertical row has text. The remaining cells have numbers. We -can identify the numbers we need by looking at the labelin the top row -and the label in the first column. Let us construct a simple example and -explore this.

-
# ignore the following three lines. I am using them to construct the table below
-from IPython.display import HTML
-atablestring = '<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n  <TD>&nbsp;</TD>\n  <TD>a b</TD>\n  <TD>b c</TD>\n  <TD>c d</TD>\n </TR>\n <TR>\n  <TD>x y</TD>\n  <TD>1</TD>\n  <TD>2</TD>\n  <TD>3</TD>\n </TR>\n <TR>\n  <TD>y z</TD>\n  <TD>4</TD>\n  <TD>5</TD>\n  <TD>6</TD>\n </TR>\n <TR>\n  <TD>z z</TD>\n  <TD>7</TD>\n  <TD>8</TD>\n  <TD>9</TD>\n </TR>\n</TABLE>'
-HTML(atablestring)
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
 a bb cc d
x y123
y z456
z z789

This table is actually in the follwoing form:

-
atable = [["",  "a b", "b c", "c d"],
-     ["x y", 1,     2,     3 ],
-     ["y z", 4,     5,     6 ],
-     ["z z", 7,     8,     9 ],]
-
-
-

We can see the labels in the table. So we an look at row “x y” and -column “c d”. The value there is 3

-

right now we can get to it by saying atable[1][3]

-
print atable[1][3]
-
-
-
3
-
-
-

readhtml has some functions that will let us address the values by the -labels. We use a structure from python called named tuples to do this. -The only limitation is that the labels have to be letters or digits. -Named tuples does not allow spaces in the labels. We could replace the -space with an underscore ‘ _ ‘. So “a b” will become “a_b”. So we can -look for row “x_y” and column “c_d”. Let us try this out.

-
from eppy.results import readhtml
-h_table = readhtml.named_grid_h(atable)
-
-
-
print h_table.x_y.c_d
-
-
-
3
-
-
-

We can still get to the value by index

-
print h_table[0][2]
-
-
-
3
-
-
-

Note that we used atable[1][3], but here we used h_table[0][2]. That is -because h_table does not count the rows and columns where the labels -are.

-

We can also do the following:

-
print h_table.x_y[2]
-# or
-print h_table[0].c_d
-
-
-
3
-3
-
-
-

Wow … that is pretty cool. What if we want to just check what the labels -are ?

-
print h_table._fields
-
-
-
('x_y', 'y_z', 'z_z')
-
-
-

That gives us the horizontal lables. How about the vertical labels ?

-
h_table.x_y._fields
-
-
-
('a_b', 'b_c', 'c_d')
-
-
-

There you go !!!

-

How about if I want to use the labels differently ? Say I want to refer -to the row first and then to the column. That woul be saying -table.c_d.x_y. We can do that by using a different function

-
v_table = readhtml.named_grid_v(atable)
-print v_table.c_d.x_y
-
-
-
3
-
-
-

And we can do the following

-
print v_table[2][0]
-print v_table.c_d[0]
-print v_table[2].x_y
-
-
-
3
-3
-3
-
-
-

Let us try to get the numbers in the first column and then get their sum

-
v_table.a_b
-
-
-
ntrow(x_y=1, y_z=4, z_z=7)
-
-
-

Look like we got the right column. But not in the right format. We -really need a list of numbers

-
[cell for cell in v_table.a_b]
-
-
-
[1, 4, 7]
-
-
-

That looks like waht we wanted. Now let us get the sum

-
values_in_first_column = [cell for cell in v_table.a_b]
-print values_in_first_column
-print sum(values_in_first_column) # sum is a builtin function that will sum a list
-
-
-
[1, 4, 7]
-12
-
-
-

To get the first row we use the variable h_table

-
values_in_first_row = [cell for cell in h_table.x_y]
-print values_in_first_row
-print sum(values_in_first_row)
-
-
-
[1, 2, 3]
-6
-
-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/HVAC_Tutorial.rst.txt b/docs/_build/html/_sources/HVAC_Tutorial.rst.txt deleted file mode 100644 index 31696300..00000000 --- a/docs/_build/html/_sources/HVAC_Tutorial.rst.txt +++ /dev/null @@ -1,564 +0,0 @@ - -HVAC Loops -========== - -Conceptual Introduction to HVAC Loops -------------------------------------- - -Eppy builds threee kinds of loops for the energyplus idf file: - -1. Plant Loops -2. Condensor Loops -3. Air Loops - -All loops have two halves: - -1. Supply side -2. Demand Side - -The supply side provides the energy to the demand side that needs the -energy. So the end-nodes on the supply side connect to the end-nodes on -the demand side. - -The loop is made up of branches connected to each other. A single branch -can lead to multiple branches through a **splitter** component. Multiple -branches can lead to a single branch through a **mixer** component. - -Each branch is made up of components connected in series (in a line) - -Eppy starts off by building the shape or topology of the loop by -connecting the branches in the right order. The braches themselves have -a single component in them, that is just a place holder. Usually it is a -pipe component. In an air loop it would be a duct component. - -The shape of the loop for the supply or demand side is quite simple. - -It can be described in the following manner for the supply side - -- The supply side starts single branch leads to a splitter -- The splitter leads to multiple branches -- these multiple branches come back and join in a mixer -- the mixer leads to a single branch that becomes end of the suppply - side - -For the demand side we have: - -- The demand side starts single branch leads to a splitter -- The splitter leads to multiple branches -- these multiple branches come back and join in a mixer -- the mixer leads to a single branch that becomes end of the demand - side - -The two ends of the supply side connect to the two ends of the demand -side. - -Diagramtically the the two sides of the loop will look like this:: - - Supply Side: - ------------ - -> branch1 -> - start_branch --> branch2 --> end_branch - -> branch3 -> - Demand Side: - ------------ - - -> d_branch1 -> - d_start_branch --> d_branch2 --> d_end_branch - -> d_branch3 -> - - -In eppy you could embody this is a list - -.. code:: python - - supplyside = ['start_brandh', [ 'branch1', 'branch2', 'branch3'], 'end_branch'] - demandside = ['d_start_brandh', ['d_branch1', 'd_branch2', 'd_branch3'], 'd_end_branch'] - - -Eppy will build the build the shape/topology of the loop using the two -lists above. Each branch will have a placeholder component, like a pipe -or a duct:: - - - branch1 = --duct-- - - -Now we will have to replace the placeholder with the real components -that make up the loop. For instance, branch1 should really have a -pre-heat coil leading to a supply fan leading to a cooling coil leading -to a heating coil:: - - - new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil - - -Eppy lets you build a new branch and you can replace branch1 with -new\_branch - -In this manner we can build up the entire loop with the right -components, once the initial toplogy is right - -Building a Plant loops ----------------------- - -Eppy can build up the topology of a plant loop using single pipes in a -branch. Once we do that the simple branch in the loop we have built can -be replaced with a more complex branch. - -Let us try this out ans see how it works. - -Building the topology of the loop -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - -.. code:: python - - from eppy.modeleditor import IDF - from eppy import hvacbuilder - - from StringIO import StringIO - iddfile = "../eppy/resources/iddfiles/Energy+V7_0_0_036.idd" - IDF.setiddname(iddfile) - - -.. code:: python - - # make the topology of the loop - idf = IDF(StringIO('')) # makes an empty idf file in memory with no file name - loopname = "p_loop" - sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop - dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side of the loop - hvacbuilder.makeplantloop(idf, loopname, sloop, dloop) - idf.saveas("hhh1.idf") - - -| We have made plant loop and saved it as hhh1.idf. -| Now let us look at what the loop looks like. - -Diagram of the loop -~~~~~~~~~~~~~~~~~~~ - -Let us use the script "eppy/useful\_scripts/loopdiagrams.py" to draw -this diagram - -See `Generating a Loop Diagram `__ -page for details on how to do this - -Below is the diagram for this simple loop - -*Note: the supply and demnd sides are not connected in the diagram, but -shown seperately for clarity* - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.plantloop1) # display the image below - - - - -.. image:: HVAC_Tutorial_files/HVAC_Tutorial_23_0.png - - -Modifying the topology of the loop -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Let us make a new branch and replace the exisiting branch - -The existing branch name is "sb0" and it contains a single pipe -component sb0\_pipe. - -Let us replace it with a branch that has a chiller that is connected to -a pipe which is turn connected to another pipe. So the connections in -the new branch would look like "chiller-> pipe1->pipe2" - -.. code:: python - - # make a new branch chiller->pipe1-> pipe2 - - # make a new pipe component - pipe1 = idf.newidfobject("PIPE:ADIABATIC", 'np1') - - # make a new chiller - chiller = idf.newidfobject("Chiller:Electric".upper(), 'Central_Chiller') - - # make another pipe component - pipe2 = idf.newidfobject("PIPE:ADIABATIC", 'np2') - - # get the loop we are trying to modify - loop = idf.getobject('PLANTLOOP', 'p_loop') # args are (key, name) - # get the branch we are trying to modify - branch = idf.getobject('BRANCH', 'sb0') # args are (key, name) - listofcomponents = [chiller, pipe1, pipe2] # the new components are connected in this order - - -Now we are going to try to replace **branch** with the a branch made up -of **listofcomponents** - -- We will do this by calling the function replacebranch -- Calling replacebranch can throw an exception ``WhichLoopError`` -- In a moment, you will see why this exception is important - -.. code:: python - - try: - newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water') - except hvacbuilder.WhichLoopError as e: - print e - - - -.. parsed-literal:: - - Where should this loop connect ? - CHILLER:ELECTRIC - Central_Chiller - [u'Chilled_Water_', u'Condenser_', u'Heat_Recovery_'] - - - -The above code throws the exception. It says that the idfobject -``CHILLER:ELECTRIC - Central_Chiller`` has three possible connections. -The chiller has inlet outlet nodes for the following - -- Chilled water -- Condenser -- Heat Recovery - -eppy does not know which one to connect to, and it needs your help. We -know that the chiller needs to be connected to the chilled water inlet -and outlet. Simply copy ``Chilled_Water_`` from the text in the -exception and paste as shown in the code below. (make sure you copy it -exactly. eppy is a little nerdy about that) - -.. code:: python - - # instead of passing chiller to the function, we pass a tuple (chiller, 'Chilled_Water_'). - # This lets eppy know where the connection should be made. - # The idfobject pipe does not have this ambiguity. So pipes do not need this extra information - listofcomponents = [(chiller, 'Chilled_Water_'), pipe1, pipe2] - - try: - newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water') - except Exception as e: - print e - else: # else will run only if the try suceeds - print "no exception was thrown" - - idf.saveas("hhh_new.idf") - - - -.. parsed-literal:: - - no exception was thrown - - -*Tagential note*: The ``"try .. except .. else"`` statement is useful -here. If you have not run across it before, take a look at these two -links - -- http://shahriar.svbtle.com/the-possibly-forgotten-optional-else-in-python-try-statement -- https://docs.python.org/2/tutorial/errors.html - -| We have saved this as file "hhh\_new.idf". -| Let us draw the diagram of this file. (run this from eppy/eppy folder) - -python ex_loopdiagram.py hhh_new.idf - - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.plantloop2) # display the image below - - - - -.. image:: HVAC_Tutorial_files/HVAC_Tutorial_34_0.png - - -This diagram shows the new components in the branch - -Work flow with ``WhichLoopError`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -When you are writing scripts don't bother to use ``try .. except`` for -``WhichLoopError``. - -- Simply allow the exception to be raised. -- Use the information in the exception to update your code -- You may have to do this a couple of times in your script. -- In a sense you are letting eppy tell you how to update the script. - -*Question:* I am writing an application using eppy, not just a script. -The above workflow does not work for me - -*Response:* Aha ! If that is the case, open an issue in -`github/eppy `__. We are lazy -people. We don't write code unless it is needed :-) - -Traversing the loop -~~~~~~~~~~~~~~~~~~~ - -It would be nice to move through the loop using functions "nextnode()" -and "prevnode()" - -Eppy indeed has such functions - -Let us try to traverse the loop above. - -.. code:: python - - # to traverse the loop we are going to call some functions ex_loopdiagrams.py, - # the program that draws the loop diagrams. - from eppy import ex_loopdiagram - fname = 'hhh_new.idf' - iddfile = '../eppy/resources/iddfiles/Energy+V8_0_0.idd' - edges = ex_loopdiagram.getedges(fname, iddfile) - # edges are the lines that draw the nodes in the loop. - # The term comes from graph theory in mathematics - - -The above code gets us the edges of the loop diagram. Once we have the -edges, we can traverse through the diagram. Let us start with the -"Central\_Chiller" and work our way down. - -.. code:: python - - from eppy import walk_hvac - firstnode = "Central_Chiller" - nextnodes = walk_hvac.nextnode(edges, firstnode) - print nextnodes - - - -.. parsed-literal:: - - [u'np1'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'np2'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_splitter'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] - - -This leads us to three components -> ['sb1\_pipe', 'sb2\_pipe', -'sb3\_pipe']. Let us follow one of them - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_mixer'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'sb4_pipe'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [] - - -We have reached the end of this branch. There are no more components. - -We can follow this in reverse using the function prevnode() - -.. code:: python - - lastnode = 'sb4_pipe' - prevnodes = walk_hvac.prevnode(edges, lastnode) - print prevnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_mixer'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_splitter'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'np2'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'np1'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'Central_Chiller'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [] - - -All the way to where the loop ends - -Building a Condensor loop -------------------------- - -We build the condensor loop the same way we built the plant loop. Pipes -are put as place holders for the components. Let us build a new idf file -with just a condensor loop in it. - -.. code:: python - - condensorloop_idf = IDF(StringIO('')) - loopname = "c_loop" - sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side - dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side - theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop) - condensorloop_idf.saveas("c_loop.idf") - - -Again, just as we did in the plant loop, we can change the components of -the loop, by replacing the branchs and traverse the loop using the -functions nextnode() and prevnode() - -Building an Air Loop --------------------- - -Building an air loop is similar to the plant and condensor loop. The -difference is that instead of pipes , we have ducts as placeholder -components. The other difference is that we have zones on the demand -side. - -.. code:: python - - airloop_idf = IDF(StringIO('')) - loopname = "a_loop" - sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop - dloop = ['zone1', 'zone2', 'zone3'] # zones on the demand side - hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop) - airloop_idf.saveas("a_loop.idf") - - -Again, just as we did in the plant and condensor loop, we can change the -components of the loop, by replacing the branchs and traverse the loop -using the functions nextnode() and prevnode() diff --git a/docs/_build/html/_sources/HVAC_diagrams.rst.txt b/docs/_build/html/_sources/HVAC_diagrams.rst.txt deleted file mode 100644 index cc89b36f..00000000 --- a/docs/_build/html/_sources/HVAC_diagrams.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ - -.. code:: python - - """HVAC diagrams""" - - - -.. parsed-literal:: - - 'HVAC diagrams' - - - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V8_0_0.idd" - fname = "../eppy/resources/idffiles/V8_0_0/5ZoneSupRetPlenRAB.idf" - IDF.setiddname(iddfile) -.. code:: python - - idf = IDF(fname) -.. code:: python - - # idf.model -.. code:: python - - from eppy.EPlusInterfaceFunctions import readidf - from eppy.ex_loopdiagram import makeairplantloop, makediagram - - print "readingfile" - data, commdct = readidf.readdatacommdct(fname, iddfile=iddfile) - print "constructing the loops" - edges = makeairplantloop(data, commdct) - print "making the diagram" - g = makediagram(edges) - dotname = "a.dot" - pngname = "a.png" - # dotname = '%s.dot' % (os.path.splitext(fname)[0]) - # pngname = '%s.png' % (os.path.splitext(fname)[0]) - g.write(dotname) - g.write_png(pngname) - - -.. parsed-literal:: - - readingfile - constructing the loops - making the diagram - - - - -.. parsed-literal:: - - True - - - -.. code:: python - - \ No newline at end of file diff --git a/docs/_build/html/_sources/LICENSE.rst.txt b/docs/_build/html/_sources/LICENSE.rst.txt deleted file mode 100644 index b5000d4f..00000000 --- a/docs/_build/html/_sources/LICENSE.rst.txt +++ /dev/null @@ -1,27 +0,0 @@ -LICENSE -======= - -The MIT License (MIT) - -Copyright (c) 2004, 2012-2016 Santosh Philip -Copyright (c) 2012 Tuan Tran -Copyright (c) 2014 Eric Allen Youngson -Copyright (c) 2015-2016 Jamie Bull - -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. \ No newline at end of file diff --git a/docs/_build/html/_sources/Main_Tutorial.rst.txt b/docs/_build/html/_sources/Main_Tutorial.rst.txt deleted file mode 100644 index 24ec5369..00000000 --- a/docs/_build/html/_sources/Main_Tutorial.rst.txt +++ /dev/null @@ -1,2263 +0,0 @@ - -Eppy Tutorial -============= - -Authors: Santosh Philip, Leora Tanjuatco - -Eppy is a scripting language for E+ idf files, and E+ output files. Eppy -is written in the programming language Python. As a result it takes full -advantage of the rich data structure and idioms that are avaliable in -python. You can programmatically navigate, search, and modify E+ idf -files using eppy. The power of using a scripting language allows you to -do the following: - -- Make a large number of changes in an idf file with a few lines of - eppy code. -- Use conditions and filters when making changes to an idf file -- Make changes to multiple idf files. -- Read data from the output files of a E+ simulation run. -- Based to the results of a E+ simulation run, generate the input file - for the next simulation run. - -So what does this matter? Here are some of the things you can do with -eppy: - -- Change construction for all north facing walls. -- Change the glass type for all windows larger than 2 square meters. -- Change the number of people in all the interior zones. -- Change the lighting power in all south facing zones. -- Change the efficiency and fan power of all rooftop units. -- Find the energy use of all the models in a folder (or of models that - were run after a certain date) -- If a model is using more energy than expected, keep increasing the - R-value of the roof until you get to the expected energy use. - -Quick Start ------------ - -Here is a short IDF file that I’ll be using as an example to start us -off :: - - VERSION, - 7.2; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - White House, !- Name - 30., !- North Axis {deg} - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value {deltaC} - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude {deg} - -87.75, !- Longitude {deg} - -6.00, !- Time Zone {hr} - 190.00; !- Elevation {m} - - -To use eppy to look at this model, we have to run a little code first: - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - -.. code:: python - - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - - -idf1 now holds all the data to your in you idf file. - -Now that the behind-the-scenes work is done, we can print this file. - -.. code:: python - - idf1.printidf() - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -Looks like the same file as before, except that all the comments are -slightly different. - -As you can see, this file has four objects: - -- VERSION -- SIMULATIONCONTROL -- BUILDING -- SITE:LOCATION - -So, let us look take a closer look at the BUILDING object. We can do -this using this command:: - - print filename.idfobjects['OBJECTNAME'] - -.. code:: python - - print idf1.idfobjects['BUILDING'] # put the name of the object you'd like to look at in brackets - - -.. parsed-literal:: - - [ - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - ] - - -We can also zoom in on the object and look just at its individual parts. - -For example, let us look at the name of the building. - -To do this, we have to do some more behind-the-scenes work, which we'll -explain later. - -.. code:: python - - building = idf1.idfobjects['BUILDING'][0] - - -Now we can do this: - -.. code:: python - - print building.Name - - - -.. parsed-literal:: - - Empire State Building - - -Now that we've isolated the building name, we can change it. - -.. code:: python - - building.Name = "Empire State Building" - - -.. code:: python - - print building.Name - - - -.. parsed-literal:: - - Empire State Building - - -Did this actually change the name in the model ? Let us print the entire -model and see. - -.. code:: python - - idf1.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -Yes! It did. So now you have a taste of what eppy can do. Let's get -started! - -Modifying IDF Fields --------------------- - -That was just a quick example -- we were showing off. Let's look a -little closer. - -As you might have guessed, changing an IDF field follows this -structure:: - - object.fieldname = "New Field Name" - - -Plugging the object name (building), the field name (Name) and our new -field name ("Empire State Building") into this command gave us this: - -.. code:: python - - building.Name = "Empire State Building" - - -.. code:: python - - import eppy - # import eppy.ex_inits - # reload(eppy.ex_inits) - import eppy.ex_inits - - -But how did we know that "Name" is one of the fields in the object -"building"? - -Are there other fields? - -What are they called? - -Let's take a look at the IDF editor: - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.idfeditor) - - - - -.. image:: Main_Tutorial_files/Main_Tutorial_34_0.png - - -In the IDF Editor, the building object is selected. - -We can see all the fields of the object "BUILDING". - -They are: - -- Name -- North Axis -- Terrain -- Loads Convergence Tolerance Value -- Temperature Convergence Tolerance Value -- Solar Distribution -- Maximum Number of Warmup Days -- Minimum Number of Warmup Days - -Let us try to access the other fields. - -.. code:: python - - print building.Terrain - - - -.. parsed-literal:: - - City - - -How about the field "North Axis" ? - -It is not a single word, but two words. - -In a programming language, a variable has to be a single word without -any spaces. - -To solve this problem, put an underscore where there is a space. - -So "North Axis" becomes "North\_Axis". - -.. code:: python - - print building.North_Axis - - - -.. parsed-literal:: - - 30.0 - - -Now we can do: - -.. code:: python - - print building.Name - print building.North_Axis - print building.Terrain - print building.Loads_Convergence_Tolerance_Value - print building.Temperature_Convergence_Tolerance_Value - print building.Solar_Distribution - print building.Maximum_Number_of_Warmup_Days - print building.Minimum_Number_of_Warmup_Days - - - -.. parsed-literal:: - - Empire State Building - 30.0 - City - 0.04 - 0.4 - FullExterior - 25 - 6 - - -Where else can we find the field names? - -The IDF Editor saves the idf file with the field name commented next to -field. - -Eppy also does this. - -Let us take a look at the "BUILDING" object in the text file that the -IDF Editor saves :: - - BUILDING, - White House, !- Name - 30., !- North Axis {deg} - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value {deltaC} - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - -This a good place to find the field names too. - -It is easy to copy and paste from here. You can't do that from the IDF -Editor. - -We know that in an E+ model, there will be only ONE "BUILDING" object. -This will be the first and only item in the list "buildings". - -But E+ models are made up of objects such as "BUILDING", -"SITE:LOCATION", "ZONE", "PEOPLE", "LIGHTS". There can be a number of -"ZONE" objects, a number of "PEOPLE" objects and a number of "LIGHTS" -objects. - -So how do you know if you're looking at the first "ZONE" object or the -second one? Or the tenth one? To answer this, we need to learn about how -lists work in python. - -Python lesson 1: lists ----------------------- - -Eppy holds these objects in a python structure called list. Let us take -a look at how lists work in python. - -.. code:: python - - fruits = ["apple", "orange", "bannana"] - # fruits is a list with three items in it. - - -To get the first item in fruits we say: - -.. code:: python - - fruits[0] - - - - - -.. parsed-literal:: - - 'apple' - - - -Why "0" ? - -Because, unlike us, python starts counting from zero in a list. So, to -get the third item in the list we'd need to input 2, like this: - -.. code:: python - - print fruits[2] - - - -.. parsed-literal:: - - bannana - - -But calling the first fruit "fruit[0]" is rather cumbersome. Why don't -we call it firstfruit? - -.. code:: python - - firstfruit = fruits[0] - print firstfruit - - - -.. parsed-literal:: - - apple - - -We also can say - -.. code:: python - - goodfruit = fruits[0] - redfruit = fruits[0] - - print firstfruit - print goodfruit - print redfruit - print fruits[0] - - - -.. parsed-literal:: - - apple - apple - apple - apple - - -As you see, we can call that item in the list whatever we want. - -How many items in the list -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To know how many items are in a list, we ask for the length of the list. - -The function 'len' will do this for us. - -.. code:: python - - print len(fruits) - - - -.. parsed-literal:: - - 3 - - -There are 3 fruits in the list. - -Saving an idf file ------------------- - -This is easy: - -.. code:: python - - idf1.save() - - -If you'd like to do a "Save as..." use this: - -.. code:: python - - idf1.saveas('something.idf') - - -Working with E+ objects ------------------------ - -Let us open a small idf file that has only "CONSTRUCTION" and "MATERIAL" -objects in it. You can go into "../idffiles/V\_7\_2/constructions.idf" -and take a look at the file. We are not printing it here because it is -too big. - -So let us open it using the idfreader - - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - try: - IDF.setiddname(iddfile) - except modeleditor.IDDAlreadySetError as e: - pass - - fname1 = "../eppy/resources/idffiles/V_7_2/constructions.idf" - idf1 = IDF(fname1) - - -Let us print all the "MATERIAL" objects in this model. - -.. code:: python - - materials = idf1.idfobjects["MATERIAL"] - print materials - - - -.. parsed-literal:: - - [ - Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat - , - Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - , - Material, - I02 50mm insulation board, !- Name - MediumRough, !- Roughness - 0.0508, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - , - Material, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800.0, !- Density - 1090.0; !- Specific Heat - , - Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat - , - Material, - F16 Acoustic tile, !- Name - MediumSmooth, !- Roughness - 0.0191, !- Thickness - 0.06, !- Conductivity - 368.0, !- Density - 590.0; !- Specific Heat - , - Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat - , - Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat - , - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - , - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - ] - - -As you can see, there are many material objects in this idf file. - -The variable "materials" now contains a list of "MATERIAL" objects. - -You already know a little about lists, so let us take a look at the -items in this list. - -.. code:: python - - firstmaterial = materials[0] - secondmaterial = materials[1] - - -.. code:: python - - print firstmaterial - - - -.. parsed-literal:: - - - Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat - - - -Let us print secondmaterial - -.. code:: python - - print secondmaterial - - - -.. parsed-literal:: - - - Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - - - -This is awesome!! Why? - -To understand what you can do with your objects organized as lists, -you'll have to learn a little more about lists. - -Python lesson 2: more about lists ---------------------------------- - -More ways to access items in a list -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You should remember that you can access any item in a list by passing in -its index. - -The tricky part is that python starts counting at 0, so you need to -input 0 in order to get the first item in a list. - -Following the same logic, you need to input 3 in order to get the fourth -item on the list. Like so: - -.. code:: python - - bad_architects = ["Donald Trump", "Mick Jagger", - "Steve Jobs", "Lady Gaga", "Santa Clause"] - print bad_architects[3] - - - -.. parsed-literal:: - - Lady Gaga - - -But there's another way to access items in a list. If you input -1, it -will return the last item. -2 will give you the second-to-last item, -etc. - -.. code:: python - - print bad_architects[-1] - print bad_architects[-2] - - - -.. parsed-literal:: - - Santa Clause - Lady Gaga - - -Slicing a list -^^^^^^^^^^^^^^ - -You can also get more than one item in a list: - -bad_architects[first_slice:second_slice] - - -.. code:: python - - print bad_architects[1:3] # slices at 1 and 3 - - - -.. parsed-literal:: - - ['Mick Jagger', 'Steve Jobs'] - - -How do I make sense of this? - -To understand this you need to see the list in the following manner:: - - [ "Donald Trump", "Mick Jagger", "Steve Jobs", "Lady Gaga", "Santa Clause" ] - ^ ^ ^ ^ ^ ^ - 0 1 2 3 4 5 - -5 -4 -3 -2 -1 - - -The slice operation bad\_architects[1:3] slices right where the numbers -are. - -Does that make sense? - -Let us try a few other slices: - -.. code:: python - - print bad_architects[2:-1] # slices at 2 and -1 - print bad_architects[-3:-1] # slices at -3 and -1 - - - -.. parsed-literal:: - - ['Steve Jobs', 'Lady Gaga'] - ['Steve Jobs', 'Lady Gaga'] - - -You can also slice in the following way: - -.. code:: python - - print bad_architects[3:] - print bad_architects[:2] - print bad_architects[-3:] - print bad_architects[:-2] - - - -.. parsed-literal:: - - ['Lady Gaga', 'Santa Clause'] - ['Donald Trump', 'Mick Jagger'] - ['Steve Jobs', 'Lady Gaga', 'Santa Clause'] - ['Donald Trump', 'Mick Jagger', 'Steve Jobs'] - - -I'll let you figure that out on your own. - -Adding to a list -^^^^^^^^^^^^^^^^ - -This is simple: the append function adds an item to the end of the list. - -The following command will add 'something' to the end of the list called -listname:: - - listname.append(something) - - -.. code:: python - - bad_architects.append("First-year students") - print bad_architects - - - -.. parsed-literal:: - - ['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause', 'First-year students'] - - -Deleting from a list -^^^^^^^^^^^^^^^^^^^^ - -There are two ways to do this, based on the information you have. If you -have the value of the object, you'll want to use the remove function. It -looks like this: - -listname.remove(value) - - -An example: - -.. code:: python - - bad_architects.remove("First-year students") - print bad_architects - - - -.. parsed-literal:: - - ['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause'] - - -What if you know the index of the item you want to remove? - -What if you appended an item by mistake and just want to remove the last -item in the list? - -You should use the pop function. It looks like this: - -listname.pop(index) - - -.. code:: python - - what_i_ate_today = ["coffee", "bacon", "eggs"] - print what_i_ate_today - - - -.. parsed-literal:: - - ['coffee', 'bacon', 'eggs'] - - -.. code:: python - - what_i_ate_today.append("vegetables") # adds vegetables to the end of the list - # but I don't like vegetables - print what_i_ate_today - - - -.. parsed-literal:: - - ['coffee', 'bacon', 'eggs', 'vegetables'] - - -.. code:: python - - # since I don't like vegetables - what_i_ate_today.pop(-1) # use index of -1, since vegetables is the last item in the list - print what_i_ate_today - - - -.. parsed-literal:: - - ['coffee', 'bacon', 'eggs'] - - -You can also remove the second item. - -.. code:: python - - what_i_ate_today.pop(1) - - - - - -.. parsed-literal:: - - 'bacon' - - - -Notice the 'bacon' in the line above. - -pop actually 'pops' the value (the one you just removed from the list) -back to you. - -Let us pop the first item. - -.. code:: python - - was_first_item = what_i_ate_today.pop(0) - print 'was_first_item =', was_first_item - print 'what_i_ate_today = ', what_i_ate_today - - -.. parsed-literal:: - - was_first_item = coffee - what_i_ate_today = ['eggs'] - - -what\_i\_ate\_today is just 'eggs'? - -That is not much of a breakfast! - -Let us get back to eppy. - -Continuing to work with E+ objects ----------------------------------- - -Let us get those "MATERIAL" objects again - -.. code:: python - - materials = idf1.idfobjects["MATERIAL"] - - -With our newfound knowledge of lists, we can do a lot of things. - -Let us get the last material: - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - - - -How about the last two? - -.. code:: python - - print materials[-2:] - - - -.. parsed-literal:: - - [ - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - , - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - ] - - -Pretty good. - -Counting all the materials ( or counting all objects ) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -How many materials are in this model ? - -.. code:: python - - print len(materials) - - - -.. parsed-literal:: - - 10 - - -Removing a material -^^^^^^^^^^^^^^^^^^^ - -Let us remove the last material in the list - -.. code:: python - - was_last_material = materials.pop(-1) - - -.. code:: python - - print len(materials) - - - -.. parsed-literal:: - - 9 - - -Success! We have only 9 materials now. - -The last material used to be: - -'G05 25mm wood' - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - - - -Now the last material in the list is: - -'M15 200mm heavyweight concrete' - -Adding a material to the list -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -We still have the old last material - -.. code:: python - - print was_last_material - - - -.. parsed-literal:: - - - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - - - -Let us add it back to the list - -.. code:: python - - materials.append(was_last_material) - - -.. code:: python - - print len(materials) - - - -.. parsed-literal:: - - 10 - - -Once again we have 10 materials and the last material is: - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - - - -Add a new material to the model -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -So far we have been working only with materials that were already in the -list. - -What if we want to make new material? - -Obviously we would use the function 'newidfobject'. - -.. code:: python - - idf1.newidfobject("MATERIAL") - - - - - -.. parsed-literal:: - - - MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -.. code:: python - - len(materials) - - - - - -.. parsed-literal:: - - 11 - - - -We have 11 items in the materials list. - -Let us take a look at the last material in the list, where this fancy -new material was added - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Looks a little different from the other materials. It does have the name -we gave it. - -Why do some fields have values and others are blank ? - -"addobject" puts in all the default values, and leaves the others blank. -It is up to us to put values in the the new fields. - -Let's do it now. - -.. code:: python - - materials[-1].Name = 'Peanut Butter' - materials[-1].Roughness = 'MediumSmooth' - materials[-1].Thickness = 0.03 - materials[-1].Conductivity = 0.16 - materials[-1].Density = 600 - materials[-1].Specific_Heat = 1500 - - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Copy an existing material -^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code:: python - - Peanutbuttermaterial = materials[-1] - idf1.copyidfobject(Peanutbuttermaterial) - materials = idf1.idfobjects["MATERIAL"] - len(materials) - materials[-1] - - - - - -.. parsed-literal:: - - - MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -Python lesson 3: indentation and looping through lists ------------------------------------------------------- - -I'm tired of doing all this work, it's time to make python do some heavy -lifting for us! - -Python can go through each item in a list and perform an operation on -any (or every) item in the list. - -This is called looping through the list. - -Here's how to tell python to step through each item in a list, and then -do something to every single item. - -We'll use a 'for' loop to do this. :: - - for in : - - - -A quick note about the second line. Notice that it's indented? There are -4 blank spaces before the code starts:: - - in python, indentations are used - to determine the grouping of statements - some languages use symbols to mark - where the function code starts and stops - but python uses indentation to tell you this - i'm using indentation to - show the beginning and end of a sentence - this is a very simple explanation - of indentation in python - if you'd like to know more, there is plenty of information - about indentation in python on the web - - -It's elegant, but it means that the indentation of the code holds -meaning. - -So make sure to indent the second (and third and forth) lines of your -loops! - -Now let's make some fruit loops. - -.. code:: python - - fruits = ["apple", "orange", "bannana"] - - -Given the syntax I gave you before I started rambling about indentation, -we can easily print every item in the fruits list by using a 'for' loop. - -.. code:: python - - for fruit in fruits: - print fruit - - - -.. parsed-literal:: - - apple - orange - bannana - - -That was easy! But it can get complicated pretty quickly... - -Let's make it do something more complicated than just print the fruits. - -Let's have python add some words to each fruit. - -.. code:: python - - for fruit in fruits: - print "I am a fruit said the", fruit - - - -.. parsed-literal:: - - I am a fruit said the apple - I am a fruit said the orange - I am a fruit said the bannana - - -Now we'll try to confuse you: - -.. code:: python - - rottenfruits = [] # makes a blank list called rottenfruits - for fruit in fruits: # steps through every item in fruits - rottenfruit = "rotten " + fruit # changes each item to "rotten _____" - rottenfruits.append(rottenfruit) # adds each changed item to the formerly empty list - - -.. code:: python - - print rottenfruits - - - -.. parsed-literal:: - - ['rotten apple', 'rotten orange', 'rotten bannana'] - - -.. code:: python - - # here's a shorter way of writing it - rottenfruits = ["rotten " + fruit for fruit in fruits] - - -Did you follow all that?? - -Just in case you didn't, let's review that last one:: - - ["rotten " + fruit for fruit in fruits] - ------------------- - This is the "for loop" - it steps through each fruit in fruits - - ["rotten " + fruit for fruit in fruits] - ----------------- - add "rotten " to the fruit at each step - this is your "do something" - - ["rotten " + fruit for fruit in fruits] - --------------------------------------- - give a new list that is a result of the "do something" - - -.. code:: python - - print rottenfruits - - - -.. parsed-literal:: - - ['rotten apple', 'rotten orange', 'rotten bannana'] - - -Filtering in a loop -^^^^^^^^^^^^^^^^^^^ - -But what if you don't want to change *every* item in a list? - -We can use an 'if' statement to operate on only some items in the list. - -Indentation is also important in 'if' statements, as you'll see:: - - if : - - - - -.. code:: python - - fruits = ["apple", "orange", "pear", "berry", "mango", "plum", "peach", "melon", "bannana"] - - -.. code:: python - - for fruit in fruits: # steps through every fruit in fruits - if len(fruit) > 5: # checks to see if the length of the word is more than 5 - print fruit # if true, print the fruit - # if false, python goes back to the 'for' loop - # and checks the next item in the list - - - -.. parsed-literal:: - - orange - bannana - - -Let's say we want to pick only the fruits that start with the letter -'p'. - -.. code:: python - - p_fruits = [] # creates an empty list called p_fruits - for fruit in fruits: # steps through every fruit in fruits - if fruit.startswith("p"): # checks to see if the first letter is 'p', using a built-in function - p_fruits.append(fruit) # if the first letter is 'p', the item is added to p_fruits - # if the first letter is not 'p', python goes back to the 'for' loop - # and checks the next item in the list - - -.. code:: python - - print p_fruits - - - -.. parsed-literal:: - - ['pear', 'plum', 'peach'] - - -.. code:: python - - # here's a shorter way to write it - p_fruits = [fruit for fruit in fruits if fruit.startswith("p")] - - -:: - - [fruit for fruit in fruits if fruit.startswith("p")] - ------------------- - for loop - - [fruit for fruit in fruits if fruit.startswith("p")] - ------------------------ - pick only some of the fruits - - [fruit for fruit in fruits if fruit.startswith("p")] - ----- - give me the variable fruit as it appears in the list, don't change it - - [fruit for fruit in fruits if fruit.startswith("p")] - ---------------------------------------------------- - a fresh new list with those fruits - - -.. code:: python - - print p_fruits - - - -.. parsed-literal:: - - ['pear', 'plum', 'peach'] - - -Counting through loops -^^^^^^^^^^^^^^^^^^^^^^ - -This is not really needed, but it is nice to know. You can safely skip -this. - -Python's built-in function range() makes a list of numbers within a -range that you specify. - -This is useful because you can use these lists inside of loops. - -.. code:: python - - range(4) # makes a list - - - - - -.. parsed-literal:: - - [0, 1, 2, 3] - - - -.. code:: python - - for i in range(4): - print i - - - -.. parsed-literal:: - - 0 - 1 - 2 - 3 - - -.. code:: python - - len(p_fruits) - - - - - -.. parsed-literal:: - - 3 - - - -.. code:: python - - for i in range(len(p_fruits)): - print i - - - -.. parsed-literal:: - - 0 - 1 - 2 - - -.. code:: python - - for i in range(len(p_fruits)): - print p_fruits[i] - - - -.. parsed-literal:: - - pear - plum - peach - - -.. code:: python - - for i in range(len(p_fruits)): - print i, p_fruits[i] - - - -.. parsed-literal:: - - 0 pear - 1 plum - 2 peach - - -.. code:: python - - for item_from_enumerate in enumerate(p_fruits): - print item_from_enumerate - - - -.. parsed-literal:: - - (0, 'pear') - (1, 'plum') - (2, 'peach') - - -.. code:: python - - for i, fruit in enumerate(p_fruits): - print i, fruit - - - -.. parsed-literal:: - - 0 pear - 1 plum - 2 peach - - -Looping through E+ objects --------------------------- - -If you have read the python explanation of loops, you are now masters of -using loops. - -Let us use the loops with E+ objects. - -We'll continue to work with the materials list. - -.. code:: python - - for material in materials: - print material.Name - - - -.. parsed-literal:: - - F08 Metal surface - I01 25mm insulation board - I02 50mm insulation board - G01a 19mm gypsum board - M11 100mm lightweight concrete - F16 Acoustic tile - M01 100mm brick - M15 200mm heavyweight concrete - M05 200mm concrete block - G05 25mm wood - Peanut Butter - Peanut Butter - - -.. code:: python - - [material.Name for material in materials] - - - - - -.. parsed-literal:: - - [u'F08 Metal surface', - u'I01 25mm insulation board', - u'I02 50mm insulation board', - u'G01a 19mm gypsum board', - u'M11 100mm lightweight concrete', - u'F16 Acoustic tile', - u'M01 100mm brick', - u'M15 200mm heavyweight concrete', - u'M05 200mm concrete block', - u'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] - - - -.. code:: python - - [material.Roughness for material in materials] - - - - - -.. parsed-literal:: - - [u'Smooth', - u'MediumRough', - u'MediumRough', - u'MediumSmooth', - u'MediumRough', - u'MediumSmooth', - u'MediumRough', - u'MediumRough', - u'MediumRough', - u'MediumSmooth', - 'MediumSmooth', - 'MediumSmooth'] - - - -.. code:: python - - [material.Thickness for material in materials] - - - - - -.. parsed-literal:: - - [0.0008, - 0.0254, - 0.0508, - 0.019, - 0.1016, - 0.0191, - 0.1016, - 0.2032, - 0.2032, - 0.0254, - 0.03, - 0.03] - - - -.. code:: python - - [material.Thickness for material in materials if material.Thickness > 0.1] - - - - - -.. parsed-literal:: - - [0.1016, 0.1016, 0.2032, 0.2032] - - - -.. code:: python - - [material.Name for material in materials if material.Thickness > 0.1] - - - - - -.. parsed-literal:: - - [u'M11 100mm lightweight concrete', - u'M01 100mm brick', - u'M15 200mm heavyweight concrete', - u'M05 200mm concrete block'] - - - -.. code:: python - - thick_materials = [material for material in materials if material.Thickness > 0.1] - - -.. code:: python - - thick_materials - - - - - -.. parsed-literal:: - - [ - Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat - , - - Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat - , - - Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat - , - - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - ] - - - -.. code:: python - - # change the names of the thick materials - for material in thick_materials: - material.Name = "THICK " + material.Name - - -.. code:: python - - thick_materials - - - - - -.. parsed-literal:: - - [ - Material, - THICK M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat - , - - Material, - THICK M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat - , - - Material, - THICK M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat - , - - Material, - THICK M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - ] - - - -So now we're working with two different lists: materials and -thick\_materials. - -But even though the items can be separated into two lists, we're still -working with the same items. - -Here's a helpful illustration: - -.. code:: python - - for_images.display_png(for_images.material_lists) # display the image below - - - -.. image:: Main_Tutorial_files/Main_Tutorial_207_0.png - - -.. code:: python - - # here's the same concept, demonstrated with code - # remember, we changed the names of the items in the list thick_materials - # these changes are visible when we print the materials list; the thick materials are also in the materials list - [material.Name for material in materials] - - - - - -.. parsed-literal:: - - [u'F08 Metal surface', - u'I01 25mm insulation board', - u'I02 50mm insulation board', - u'G01a 19mm gypsum board', - u'THICK M11 100mm lightweight concrete', - u'F16 Acoustic tile', - u'THICK M01 100mm brick', - u'THICK M15 200mm heavyweight concrete', - u'THICK M05 200mm concrete block', - u'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] - - - -Geometry functions in eppy --------------------------- - -Sometimes, we want information about the E+ object that is not in the -fields. For example, it would be useful to know the areas and -orientations of the surfaces. These attributes of the surfaces are not -in the fields of surfaces, but surface objects *do* have fields that -have the coordinates of the surface. The areas and orientations can be -calculated from these coordinates. - -Pyeplus has some functions that will do the calculations. - -In the present version, pyeplus will calculate: - -- surface azimuth -- surface tilt -- surface area - -Let us explore these functions - -.. code:: python - - # OLD CODE, SHOULD BE DELETED - # from idfreader import idfreader - - # iddfile = "../iddfiles/Energy+V7_0_0_036.idd" - # fname = "../idffiles/V_7_0/5ZoneSupRetPlenRAB.idf" - - # model, to_print, idd_info = idfreader(fname, iddfile) - # surfaces = model['BUILDINGSURFACE:DETAILED'] # all the surfaces - - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - try: - IDF.setiddname(iddfile) - except modeleditor.IDDAlreadySetError as e: - pass - - - fname1 = "../eppy/resources/idffiles/V_7_0/5ZoneSupRetPlenRAB.idf" - idf1 = IDF(fname1) - surfaces = idf1.idfobjects['BUILDINGSURFACE:DETAILED'] - - -.. code:: python - - # Let us look at the first surface - asurface = surfaces[0] - print "surface azimuth =", asurface.azimuth, "degrees" - print "surface tilt =", asurface.tilt, "degrees" - print "surface area =", asurface.area, "m2" - - - -.. parsed-literal:: - - surface azimuth = 180.0 degrees - surface tilt = 90.0 degrees - surface area = 18.3 m2 - - -.. code:: python - - # all the surface names - s_names = [surface.Name for surface in surfaces] - print s_names[:5] # print five of them - - - -.. parsed-literal:: - - [u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'TOP-1'] - - -.. code:: python - - # surface names and azimuths - s_names_azm = [(sf.Name, sf.azimuth) for sf in surfaces] - print s_names_azm[:5] # print five of them - - - -.. parsed-literal:: - - [(u'WALL-1PF', 180.0), (u'WALL-1PR', 90.0), (u'WALL-1PB', 0.0), (u'WALL-1PL', 270.0), (u'TOP-1', 0.0)] - - -.. code:: python - - # or to do that in pretty printing - for name, azimuth in s_names_azm[:5]: # just five of them - print name, azimuth - - - -.. parsed-literal:: - - WALL-1PF 180.0 - WALL-1PR 90.0 - WALL-1PB 0.0 - WALL-1PL 270.0 - TOP-1 0.0 - - -.. code:: python - - # surface names and tilt - s_names_tilt = [(sf.Name, sf.tilt) for sf in surfaces] - for name, tilt in s_names_tilt[:5]: # just five of them - print name, tilt - - - -.. parsed-literal:: - - WALL-1PF 90.0 - WALL-1PR 90.0 - WALL-1PB 90.0 - WALL-1PL 90.0 - TOP-1 0.0 - - -.. code:: python - - # surface names and areas - s_names_area = [(sf.Name, sf.area) for sf in surfaces] - for name, area in s_names_area[:5]: # just five of them - print name, area, "m2" - - - -.. parsed-literal:: - - WALL-1PF 18.3 m2 - WALL-1PR 9.12 m2 - WALL-1PB 18.3 m2 - WALL-1PL 9.12 m2 - TOP-1 463.6 m2 - - -Let us try to isolate the exterior north facing walls and change their -construnctions - -.. code:: python - - # just vertical walls - vertical_walls = [sf for sf in surfaces if sf.tilt == 90.0] - print [sf.Name for sf in vertical_walls] - - - -.. parsed-literal:: - - [u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'FRONT-1', u'SB12', u'SB14', u'SB15', u'RIGHT-1', u'SB21', u'SB23', u'BACK-1', u'SB32', u'SB35', u'LEFT-1', u'SB41', u'SB43', u'SB45', u'SB51', u'SB54', u'WALL-1SF', u'WALL-1SR', u'WALL-1SB', u'WALL-1SL'] - - -.. code:: python - - # north facing walls - north_walls = [sf for sf in vertical_walls if sf.azimuth == 0.0] - print [sf.Name for sf in north_walls] - - - -.. parsed-literal:: - - [u'WALL-1PB', u'SB15', u'BACK-1', u'WALL-1SB'] - - -.. code:: python - - # north facing exterior walls - exterior_nwall = [sf for sf in north_walls if sf.Outside_Boundary_Condition == "Outdoors"] - print [sf.Name for sf in exterior_nwall] - - - -.. parsed-literal:: - - [u'WALL-1PB', u'BACK-1', u'WALL-1SB'] - - -.. code:: python - - # print out some more details of the north wall - north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall] - for name, azimuth, construction in north_wall_info: - print name, azimuth, construction - - - -.. parsed-literal:: - - WALL-1PB 0.0 WALL-1 - BACK-1 0.0 WALL-1 - WALL-1SB 0.0 WALL-1 - - -.. code:: python - - # change the construction in the exterior north walls - for wall in exterior_nwall: - wall.Construction_Name = "NORTHERN-WALL" # make sure such a construction exists in the model - - -.. code:: python - - # see the change - north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall] - for name, azimuth, construction in north_wall_info: - print name, azimuth, construction - - - -.. parsed-literal:: - - WALL-1PB 0.0 NORTHERN-WALL - BACK-1 0.0 NORTHERN-WALL - WALL-1SB 0.0 NORTHERN-WALL - - -.. code:: python - - # see this in all surfaces - for sf in surfaces: - print sf.Name, sf.azimuth, sf.Construction_Name - - - -.. parsed-literal:: - - WALL-1PF 180.0 WALL-1 - WALL-1PR 90.0 WALL-1 - WALL-1PB 0.0 NORTHERN-WALL - WALL-1PL 270.0 WALL-1 - TOP-1 0.0 ROOF-1 - C1-1P 0.0 CLNG-1 - C2-1P 0.0 CLNG-1 - C3-1P 0.0 CLNG-1 - C4-1P 0.0 CLNG-1 - C5-1P 180.0 CLNG-1 - FRONT-1 180.0 WALL-1 - C1-1 180.0 CLNG-1 - F1-1 0.0 CLNG-1 - SB12 45.0 INT-WALL-1 - SB14 315.0 INT-WALL-1 - SB15 0.0 INT-WALL-1 - RIGHT-1 90.0 WALL-1 - C2-1 0.0 CLNG-1 - F2-1 0.0 CLNG-1 - SB21 225.0 INT-WALL-1 - SB23 315.784824603 INT-WALL-1 - SB25 270.0 INT-WALL-1 - BACK-1 0.0 NORTHERN-WALL - C3-1 0.0 CLNG-1 - F3-1 0.0 CLNG-1 - SB32 135.784824603 INT-WALL-1 - SB34 224.215175397 INT-WALL-1 - SB35 180.0 INT-WALL-1 - LEFT-1 270.0 WALL-1 - C4-1 0.0 CLNG-1 - F4-1 0.0 CLNG-1 - SB41 135.0 INT-WALL-1 - SB43 44.215175397 INT-WALL-1 - SB45 90.0 INT-WALL-1 - C5-1 0.0 CLNG-1 - F5-1 0.0 CLNG-1 - SB51 180.0 INT-WALL-1 - SB52 90.0 INT-WALL-1 - SB53 0.0 INT-WALL-1 - SB54 270.0 INT-WALL-1 - WALL-1SF 180.0 WALL-1 - WALL-1SR 90.0 WALL-1 - WALL-1SB 0.0 NORTHERN-WALL - WALL-1SL 270.0 WALL-1 - BOTTOM-1 0.0 FLOOR-SLAB-1 - F1-1S 0.0 CLNG-1 - F2-1S 0.0 CLNG-1 - F3-1S 0.0 CLNG-1 - F4-1S 0.0 CLNG-1 - F5-1S 0.0 CLNG-1 - - -You can see the "NORTHERN-WALL" in the print out above. - -This shows that very sophisticated modification can be made to the model -rather quickly. diff --git a/docs/_build/html/_sources/Outputs_Tutorial.rst.txt b/docs/_build/html/_sources/Outputs_Tutorial.rst.txt deleted file mode 100644 index 50875a63..00000000 --- a/docs/_build/html/_sources/Outputs_Tutorial.rst.txt +++ /dev/null @@ -1,740 +0,0 @@ - -Reading outputs from E+ -======================= - -.. code:: python - - # some initial set up - # if you have not installed epp, and only downloaded it - # you will need the following lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - -Using titletable() to get at the tables ---------------------------------------- - -So far we have been making changes to the IDF input file. How about -looking at the outputs. - -Energyplus makes nice htmlout files that look like this. - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.html_snippet1) #display the image below - - - - -.. image:: Outputs_Tutorial_files/Outputs_Tutorial_4_0.png - - -If you look at the clipping of the html file above, you see tables with -data in them. Eppy has functions that let you access of these tables and -get the data from any of it's cells. - -Let us say you want to find the "Net Site Energy". - -This is in table "Site and Source Energy". - -The number you want is in the third row, second column and it's value is -"47694.47" - -Let us use eppy to extract this number - -.. code:: python - - from eppy.results import readhtml # the eppy module with functions to read the html - fname = "../eppy/resources/outputfiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlowTable_ABUPS.html" # the html file you want to read - filehandle = open(fname, 'r').read() # get a file handle to the html file - - - htables = readhtml.titletable(filehandle) # reads the tables with their titles - - -If you open the python file readhtml.py and look at the function -titletable, you can see the function documentation. - -It says the following - - """return a list of [(title, table), .....] - title = previous item with a tag - table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]""" - - -The documentation says that it returns a list. Let us take a look inside -this list. Let us look at the first item in the list. - -.. code:: python - - firstitem = htables[0] - print firstitem - - - -.. parsed-literal:: - - (u'Site and Source Energy', [[u'', u'Total Energy [kWh]', u'Energy Per Total Building Area [kWh/m2]', u'Energy Per Conditioned Building Area [kWh/m2]'], [u'Total Site Energy', 47694.47, 51.44, 51.44], [u'Net Site Energy', 47694.47, 51.44, 51.44], [u'Total Source Energy', 140159.1, 151.16, 151.16], [u'Net Source Energy', 140159.1, 151.16, 151.16]]) - - -| Ughh !!! that is ugly. Hard to see what it is. -| Let us use a python module to print it pretty - -.. code:: python - - import pprint - pp = pprint.PrettyPrinter() - pp.pprint(firstitem) - - - -.. parsed-literal:: - - (u'Site and Source Energy', - [[u'', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]]) - - -Nice. that is a little clearer - -.. code:: python - - firstitem_title = firstitem[0] - pp.pprint(firstitem_title) - - - -.. parsed-literal:: - - u'Site and Source Energy' - - -.. code:: python - - firstitem_table = firstitem[1] - pp.pprint(firstitem_table) - - - -.. parsed-literal:: - - [[u'', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]] - - -| How do we get to value of "Net Site Energy". -| We know it is in the third row, second column of the table. - -Easy. - -.. code:: python - - thirdrow = firstitem_table[2] # we start counting with 0. So 0, 1, 2 is third row - print thirdrow - - - -.. parsed-literal:: - - [u'Net Site Energy', 47694.47, 51.44, 51.44] - - -.. code:: python - - thirdrow_secondcolumn = thirdrow[1] - thirdrow_secondcolumn - - - - - -.. parsed-literal:: - - 47694.47 - - - -| the text from the html table is in unicode. -| That is why you see that weird 'u' letter. - -Let us convert it to a floating point number - -.. code:: python - - net_site_energy = float(thirdrow_secondcolumn) - net_site_energy - - - - - -.. parsed-literal:: - - 47694.47 - - - -Let us have a little fun with the tables. - -Get the titles of all the tables - -.. code:: python - - alltitles = [htable[0] for htable in htables] - alltitles - - - - - -.. parsed-literal:: - - [u'Site and Source Energy', - u'Site to Source Energy Conversion Factors', - u'Building Area', - u'End Uses', - u'End Uses By Subcategory', - u'Utility Use Per Conditioned Floor Area', - u'Utility Use Per Total Floor Area', - u'Electric Loads Satisfied', - u'On-Site Thermal Sources', - u'Water Source Summary', - u'Comfort and Setpoint Not Met Summary', - u'Comfort and Setpoint Not Met Summary'] - - - -Now let us grab the tables with the titles "Building Area" and "Site to -Source Energy Conversion Factors" - -twotables = [htable for htable in htables if htable[0] in ["Building -Area", "Site to Source Energy Conversion Factors"]] twotables - -Let us leave readtables for now. - -It gives us the basic functionality to read any of the tables in the -html output file. - -Using lines\_table() to get at the tables ------------------------------------------ - -We have been using titletable() to get at the tables. There is a -constraint using function titletable(). Titletable() assumes that there -is a unique title (in HTML bold) just above the table. It is assumed -that this title will adequetly describe the table. This is true in most -cases and titletable() is perfectly good to use. Unfortuntely there are -some tables that do not follow this rule. The snippet below shows one of -them. - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.html_snippet2) # display the image below - - - - -.. image:: Outputs_Tutorial_files/Outputs_Tutorial_28_0.png - - -Notice that the HTML snippet shows a table with three lines above it. -The first two lines have information that describe the table. We need to -look at both those lines to understand what the table contains. So we -need a different function that will capture all those lines before the -table. The funtion lines\_table() described below will do this. - -.. code:: python - - from eppy.results import readhtml # the eppy module with functions to read the html - fname = "../eppy/resources/outputfiles/V_8_1/ASHRAE30pct.PI.Final11_OfficeMedium_STD2010_Chicago-baseTable.html" # the html file you want to read - filehandle = open(fname, 'r').read() # get a file handle to the html file - - - ltables = readhtml.lines_table(filehandle) # reads the tables with their titles - - -The html snippet shown above is the last table in HTML file we just -opened. We have used lines\_table() to read the tables into the variable -ltables. We can get to the last table by ltable[-1]. Let us print it and -see what we have. - -.. code:: python - - import pprint - pp = pprint.PrettyPrinter() - pp.pprint(ltables[-1]) - - - -.. parsed-literal:: - - [[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]] - - -We can see that ltables has captured all the lines before the table. Let -us make our code more explicit to see this - -.. code:: python - - last_ltable = ltables[-1] - lines_before_table = last_ltable[0] - table_itself = last_ltable[-1] - - pp.pprint(lines_before_table) - - - -.. parsed-literal:: - - [u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'] - - -We found this table the easy way this time, because we knew it was the -last one. How do we find it if we don't know where it is in the file ? -Python comes to our rescue :-) Let assume that we want to find the table -that has the following two lines before it. - -- Report: FANGER DURING COOLING AND ADAPTIVE COMFORT -- For: PERIMETER\_MID\_ZN\_4 - -.. code:: python - - line1 = 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT' - line2 = 'For: PERIMETER_MID_ZN_4' - # - # check if those two lines are before the table - line1 in lines_before_table and line2 in lines_before_table - - - - - -.. parsed-literal:: - - True - - - -.. code:: python - - # find all the tables where those two lines are before the table - [ltable for ltable in ltables - if line1 in ltable[0] and line2 in ltable[0]] - - - - - -.. parsed-literal:: - - [[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]]] - - - -That worked ! - -What if you want to find the words "FANGER" and "PERIMETER\_MID\_ZN\_4" -before the table. The following code will do it. - -.. code:: python - - # sample code to illustrate what we are going to do - last_ltable = ltables[-1] - lines_before_table = last_ltable[0] - table_itself = last_ltable[-1] - - # join lines_before_table into a paragraph of text - justtext = '\n'.join(lines_before_table) - print justtext - - - -.. parsed-literal:: - - Table of Contents - Report: FANGER DURING COOLING AND ADAPTIVE COMFORT - For: PERIMETER_MID_ZN_4 - Timestamp: 2014-02-07 - 12:29:08 - - -.. code:: python - - "FANGER" in justtext and "PERIMETER_MID_ZN_4" in justtext - - - - - -.. parsed-literal:: - - True - - - -.. code:: python - - # Let us combine the this trick to find the table - [ltable for ltable in ltables - if "FANGER" in '\n'.join(ltable[0]) and "PERIMETER_MID_ZN_4" in '\n'.join(ltable[0])] - - - - -.. parsed-literal:: - - [[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]]] - - - -Extracting data from the tables -------------------------------- - -The tables in the HTML page in general have text in the top header row. -The first vertical row has text. The remaining cells have numbers. We -can identify the numbers we need by looking at the labelin the top row -and the label in the first column. Let us construct a simple example and -explore this. - -.. code:: python - - # ignore the following three lines. I am using them to construct the table below - from IPython.display import HTML - atablestring = '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 a bb cc d
x y123
y z456
z z789
' - HTML(atablestring) - - - - - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - -
 a bb cc d
x y123
y z456
z z789
- - - -This table is actually in the follwoing form: - -.. code:: python - - atable = [["", "a b", "b c", "c d"], - ["x y", 1, 2, 3 ], - ["y z", 4, 5, 6 ], - ["z z", 7, 8, 9 ],] - - -We can see the labels in the table. So we an look at row "x y" and -column "c d". The value there is 3 - -right now we can get to it by saying atable[1][3] - -.. code:: python - - print atable[1][3] - - -.. parsed-literal:: - - 3 - - -readhtml has some functions that will let us address the values by the -labels. We use a structure from python called named tuples to do this. -The only limitation is that the labels have to be letters or digits. -Named tuples does not allow spaces in the labels. We could replace the -space with an underscore ' \_ '. So "a b" will become "a\_b". So we can -look for row "x\_y" and column "c\_d". Let us try this out. - -.. code:: python - - from eppy.results import readhtml - h_table = readhtml.named_grid_h(atable) - - -.. code:: python - - print h_table.x_y.c_d - - - -.. parsed-literal:: - - 3 - - -We can still get to the value by index - -.. code:: python - - print h_table[0][2] - - - -.. parsed-literal:: - - 3 - - -Note that we used atable[1][3], but here we used h\_table[0][2]. That is -because h\_table does not count the rows and columns where the labels -are. - -We can also do the following: - -.. code:: python - - print h_table.x_y[2] - # or - print h_table[0].c_d - - - -.. parsed-literal:: - - 3 - 3 - - -Wow … that is pretty cool. What if we want to just check what the labels -are ? - -.. code:: python - - print h_table._fields - - - -.. parsed-literal:: - - ('x_y', 'y_z', 'z_z') - - -That gives us the horizontal lables. How about the vertical labels ? - -.. code:: python - - h_table.x_y._fields - - - - - -.. parsed-literal:: - - ('a_b', 'b_c', 'c_d') - - - -There you go !!! - -How about if I want to use the labels differently ? Say I want to refer -to the row first and then to the column. That woul be saying -table.c\_d.x\_y. We can do that by using a different function - -.. code:: python - - v_table = readhtml.named_grid_v(atable) - print v_table.c_d.x_y - - - -.. parsed-literal:: - - 3 - - -And we can do the following - -.. code:: python - - print v_table[2][0] - print v_table.c_d[0] - print v_table[2].x_y - - - -.. parsed-literal:: - - 3 - 3 - 3 - - -Let us try to get the numbers in the first column and then get their sum - -.. code:: python - - v_table.a_b - - - - - -.. parsed-literal:: - - ntrow(x_y=1, y_z=4, z_z=7) - - - -Look like we got the right column. But not in the right format. We -really need a list of numbers - -.. code:: python - - [cell for cell in v_table.a_b] - - - - - -.. parsed-literal:: - - [1, 4, 7] - - - -That looks like waht we wanted. Now let us get the sum - -.. code:: python - - values_in_first_column = [cell for cell in v_table.a_b] - print values_in_first_column - print sum(values_in_first_column) # sum is a builtin function that will sum a list - - - -.. parsed-literal:: - - [1, 4, 7] - 12 - - -To get the first row we use the variable h\_table - -.. code:: python - - values_in_first_row = [cell for cell in h_table.x_y] - print values_in_first_row - print sum(values_in_first_row) - - - -.. parsed-literal:: - - [1, 2, 3] - 6 - diff --git a/docs/_build/html/_sources/changes.rst.txt b/docs/_build/html/_sources/changes.rst.txt deleted file mode 100644 index efcf3b88..00000000 --- a/docs/_build/html/_sources/changes.rst.txt +++ /dev/null @@ -1,268 +0,0 @@ -Changes -======= - -next release -~~~~~~~~~~~~ - -2018-07-06 -~~~~~~~~~~ - -- reorganized the files to use with https://github.com/audreyr/cookiecutter - -2018-04-23 ----------- - -- idf.newidfobject() has a parameter defaultvlaues=True or False. This can be toggled to set or not set the default values in the IDF file - -2018-03-24 ----------- - -- fixed a bug, where some idfobject fields stayed as strings even though they were supposed to be numbers - -2018-03-21 ----------- - -- new function easyopen(idffile) will automatically set the IDD file and open the IDF file. This has been documented in ./docs/source/newfunctions.rst - -2017-12-11 ----------- - -- Added documentation in the installation section on how to run eppy in grasshopper -- added functions to get fan power in watts, bhp and fan flow in cfm for any fan object. This has been documented in ./docs/source/newfunctions.rst - -release r0.5.46 -~~~~~~~~~~~~~~~ - -2017-12-10 ----------- - -- documentation is now at http://eppy.readthedocs.io/en/latest/ - -release r0.5.45 -~~~~~~~~~~~~~~~ - -2017-10-01 ----------- - -- fixed a bug in the setup.py (It was not installing some required folders) -- updated documentation to include how to run Energyplus from eppy -- format of the table file was changed in E+ 8.7. - - readhtml is updated to be able to read the new format (it still reads the older versions) - -release r0.5.44 -~~~~~~~~~~~~~~~ - -2017-05-23 ----------- - -- IDF.run() works with E+ version >= 8.3 - - This will run the idf file - - documentation updated to reflect this -- Some changes made to support eppy working on grasshopper - - more work needs to be done on this - -release r0.5.43 -~~~~~~~~~~~~~~~ - -2017-02-09 ----------- - -fixed the bug in the setup file - -release r0.5.42 -~~~~~~~~~~~~~~~ - -2016-12-31 -~~~~~~~~~~ - -bugfix for idfobjects with no fieldnames. Such fields are named A!, A2, A3/ N1, N2, N3 taken from the IDD file - -There is a bug in the setup.py in this version - -2016-11-02 ----------- - -It is now possible to run E+ from eppy - -release r0.5.41 -~~~~~~~~~~~~~~~ - -2016-09-14 ----------- - -bugfix in loopdiagram.py. Some cleanup by removing extra copies of loopdiagram.py - -release r0.5.40 -~~~~~~~~~~~~~~~ - -2016-09-06 ----------- - -This is a release for python2 and python3. pip install will automatically install the correct version. - -release r0.5.31 -~~~~~~~~~~~~~~~ - -2016-09-04 ----------- - -bugfix so that json_functions can have idf objects with names that have dots in them - -release r0.5.3 -~~~~~~~~~~~~~~ - -2016-07-21 ----------- - -tab completion of fileds (of idfobjects) works in ipython and ipython notebook - -2016-07-09 ----------- - -added: - -- construction.rfactor and material.rfactor -- construction.uvalue and material.uvalue -- construction.heatcapacity and material.heatcapacity -- the above functions do not work in all cases yet. But are still usefull - -added: - -- zone.zonesurfaces -> return all surfaces of the zone -- surface.subsurfaces -> will return all the subsurfaces (windows, doors etc.) that belong to the surface - -added two functions that scan through the entire idf file: - -- EpBunch.getreferingobjs(args) -- EpBunch.get_referenced_object(args) -- they make it possible for an idf object to scan through it's idf file and find other idf objects that are related to it (thru object-list and reference) - - -2016-05-31 ----------- - -refactored code for class IDF and class EpBunch -fixed a bug in modeleditor.newidfobject - -release r0.5.2 -~~~~~~~~~~~~~~ - -2016-05-27 ----------- - -added ability to update idf files thru JSON messages. - -2016-04-02 ----------- - -Replaced library bunch with munch - -release r0.5.1 -~~~~~~~~~~~~~~ - -2016-02-07 ----------- - -- bug fix -> read files that have mixed line endings. Both DOS and Unix line endings - -release r0.5 -~~~~~~~~~~~~ - -2015-07-12 ----------- - -- python3 version of eppy is in ./p3/eppy -- eppy license has transitioned from GPLv3 to MIT license -- made some bugfixes to hvacbuilder.py - -2015-05-30 ----------- - -- bugfix in ./eppy/Air:useful_scripts/idfdiff.py -- added in ./eppy/Air:useful_scripts/idfdiff_missing.py - - this displays only the missing objects in either file - -2015-05-27 ----------- - -- idf.saveas(newname) changes the idf.idfname to newname - - so the next idf.save() will save to newname -- to retain the original idf.idfname use idf.savecopy(copyname) - - -2015-05-26 ----------- - -updated the following: -- idf.save(lineendings='default') -- idf.saveas(fname, lineendings='default') - -- optional argument lineendings - - if lineendings='default', uses the line endings of the platform - - if lineendings='windows', forces windows line endings - - if lineendings='unix', forces unix line endings - -release r0.464a -~~~~~~~~~~~~~~~ - -2015-01-13 ----------- - -r0.464a released on 2015-01-13. This in alpha release of this version. There may be minor updates after review from users. - -2015-01-06 ----------- - -- Developer documentation has been completed -- Added a stubs folder with scripts that can be used as templates - -2014-10-21 ----------- - -- fixed a bug in script eppy/useful_scripts/loopdiagram.py - -2014-09-01 ----------- - -- added a script eppy/useful_scripts/loopdiagram.py:: - - python loopdiagram.py --help - - usage: loopdiagram.py [-h] idd file - - draw all the loops in the idf file - There are two output files saved in the same location as the idf file: - - idf_file_location/idf_filename.dot - - idf_file_location/idf_filename.png - - positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file location of idf file = ./somewhere/f1.idf - - optional arguments: - -h, --help show this help message and exit - -- fixed a bug in hvacbuilder.makeplantloop and hvacbuilder.makecondenserloop - -release r0.463 -~~~~~~~~~~~~~~ - -2014-08-21 ----------- - -- added eppy/useful_scripts/eppy_version.py -- updated documentation to match - -release r0.462 -~~~~~~~~~~~~~~ - -2014-08-19 ----------- - -- added a script that can compare two idf files. It is documented in "Useful Scripts". The script is in - - eppy/usefull_scripts/idfdiff.py -- added two scripts that test if eppy works when new versions of energyplus are released. Documentation for this is not yet done. The scripts are - - eppy/usefull_scripts/eppyreadtest_file.py - - eppy/usefull_scripts/eppyreadtest_folder.py -- fixed a bug where eppy would not read backslashes in a path name. Some idf objects have fields that are path names. On dos/windows machines these path names have backslashes - diff --git a/docs/_build/html/_sources/dev_docs/classes_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/classes_eppy.rst.txt deleted file mode 100644 index 6051d96e..00000000 --- a/docs/_build/html/_sources/dev_docs/classes_eppy.rst.txt +++ /dev/null @@ -1,2 +0,0 @@ -classes eppy -============ \ No newline at end of file diff --git a/docs/_build/html/_sources/dev_docs/data_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/data_eppy.rst.txt deleted file mode 100644 index cf5361cf..00000000 --- a/docs/_build/html/_sources/dev_docs/data_eppy.rst.txt +++ /dev/null @@ -1,612 +0,0 @@ - -Underlying Data Structure of eppy -================================= - - -As described in previous sections, eppy was built on EplusInterface - -Let us open a small **idf** file to explore the data structure - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../../' - sys.path.append(pathnameto_eppy) -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../../../eppy/resources/idffiles/V_7_2/dev1.idf" - - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - idf1.printidf() - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - - - -Original Data Structure in EPlusInterface ------------------------------------------ - - -The original data structure in EPlusInterface was stupidly simple and -robust. In fact attributes **stupidly simple** and **robust** seem to go -together. Eppy evolved in such a way that this data structure is still -retained. The rest of eppy is simply `syntactic -sugar `__ for this data -structure. - -from: -https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic\_sugar.html -*"Syntactic sugar is a computer science term that refers to syntax -within a programming language that is designed to make things easier to -read or to express, while alternative ways of expressing them exist. -Syntactic sugar"* - -Let us take a look at this data structure. If we open an idf file with -eppy we can explore the original data structure that comes from -EPlusInterface. - -**Note** The variable names are not very intuitive at this level. I did -not know what I was doing when I wrote this code and now we are stuck -with it - -There are three varaibles that hold all the data we need. They are: - -- ``idf1.model.dtls`` -- ``idf1.model.dt`` -- ``idf1.idd_info`` - - -.. code:: python - - dtls = idf1.model.dtls # names of all the idf objects - dt = idf1.model.dt # the idf model - idd_info = idf1.idd_info # all the idd data -idf1.model.dtls - Overview -~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. code:: python - - dtls = idf1.model.dtls # names of all the idf objects - print type(dtls) - -.. parsed-literal:: - - - - -.. code:: python - - # dtls is a list - print dtls[:10] # print the first ten items - -.. parsed-literal:: - - ['LEAD INPUT', 'SIMULATION DATA', 'VERSION', 'SIMULATIONCONTROL', 'BUILDING', 'SHADOWCALCULATION', 'SURFACECONVECTIONALGORITHM:INSIDE', 'SURFACECONVECTIONALGORITHM:OUTSIDE', 'HEATBALANCEALGORITHM', 'HEATBALANCESETTINGS:CONDUCTIONFINITEDIFFERENCE'] - - -.. code:: python - - print len(dtls) # print the numer of items in the list - -.. parsed-literal:: - - 683 - - -Couple of points to note about ``dtls``: - -- **dtls** is a list of all the names of the Energyplus objects. -- This list is extracted from the the **idd** file -- the list is in the same order as the objects in the **idd** file - - -idf1.model.dt - Overview -~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. code:: python - - dt = idf1.model.dt # the idf model - print type(dt) - -.. parsed-literal:: - - - - -.. code:: python - - # print 10 of the keys - print dt.keys()[:10] - -.. parsed-literal:: - - ['ZONEHVAC:OUTDOORAIRUNIT', 'TABLE:TWOINDEPENDENTVARIABLES', 'ENERGYMANAGEMENTSYSTEM:INTERNALVARIABLE', 'AVAILABILITYMANAGER:NIGHTCYCLE', 'GROUNDHEATTRANSFER:SLAB:BLDGPROPS', 'GENERATOR:MICROTURBINE', 'SHADING:BUILDING:DETAILED', 'EVAPORATIVECOOLER:INDIRECT:RESEARCHSPECIAL', 'ZONEHVAC:PACKAGEDTERMINALAIRCONDITIONER', 'CONSTRUCTION:WINDOWDATAFILE'] - - -.. code:: python - - # dt is a dict - number_of_keys = len(dt.keys()) - print number_of_keys - -.. parsed-literal:: - - 683 - - -- The keys of **dt** are names of the objects (note that they are in - capitals) -- Items in a python dict are unordered. So the keys may be in any order -- **dtls** will give us these names in the same order as they are in - the idd file. -- so use **dtls** if you want the keys in an order - -We'll look at **dt** in further detail later - -idf1.idd\_info - Overview -~~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. code:: python - - idd_info = idf1.idd_info # all the idd data - print type(idd_info) - -.. parsed-literal:: - - - - -.. code:: python - - print len(idd_info) # number of items in the list - -.. parsed-literal:: - - 683 - - -.. code:: python - - # print the first three items - idd_info[:3] - - - -.. parsed-literal:: - - [[{}], - [{}], - [{'format': ['singleLine'], 'unique-object': ['']}, - {'default': ['7.0'], - 'field': ['Version Identifier'], - 'required-field': ['']}]] - - - -.. code:: python - - # print the first three items in seperate lines - for i, item in enumerate(idd_info[:3]): - print "%s. %s" % (i, item) - -.. parsed-literal:: - - 0. [{}] - 1. [{}] - 2. [{'unique-object': [''], 'format': ['singleLine']}, {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}] - - -That does not make much sense. Below is the first 3 items from the idd -file :: - - Lead Input; - - Simulation Data; - - \group Simulation Parameters - - Version, - \unique-object - \format singleLine - A1 ; \field Version Identifier - \required-field - \default 7.0 - - -- If you compare the text file with the sturcture of idd\_info, you can - start to see the similarities -- Note that the idd\_info does not have the object name. -- This was an unfortunate design decision that we are stuck with now - :-(. -- We need to jump through some hoops to get to an item in idd\_info - - -.. code:: python - - # the object "VERSION" is the third item in idd_info - # to get to "VERSION" we need to find it's location in the list - # we use "dtls" to do this - location_of_version = dtls.index("version".upper()) - print location_of_version - -.. parsed-literal:: - - 2 - - -.. code:: python - - # print idd_info of "VERSION" - idd_info[location_of_version] - - - -.. parsed-literal:: - - [{'format': ['singleLine'], 'unique-object': ['']}, - {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}] - - - -**NOTE:** - -- the idd file is very large and uses a lot of memory when pulled into - idd\_info -- only one copy of idd\_info is kept when eppy is running. -- This is the reason, eppy throws an exception when you try to set the - idd file when it has already been set - - -idf1.model.dt - in detail -~~~~~~~~~~~~~~~~~~~~~~~~~ - - -Let us look at a specific object, say **MATERIAL:AIRGAP** in -idf1.model.dt - -.. code:: python - - dt = idf1.model.dt -.. code:: python - - airgaps = dt['MATERIAL:AIRGAP'.upper()] - print type(airgaps) - -.. parsed-literal:: - - - - -.. code:: python - - airgaps - - - -.. parsed-literal:: - - [['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] - - - -A snippet of the **idf** text file shows this :: - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - -Notice the following things about idf1.model.dt: - -- The idf model is held within a dict. -- the keys in the dict are names of the IDF objects in caps, such as - BUILDING, VERSION, CONSTRUCTION, MATERIAL:AIRGAP etc. -- The values in the dict are lists -- the list contains lists. This means that **airgaps** can contain more - than one airgap. -- So airgaps = [airgap1, airgap2, ... ]. -- where, airgaps1 = [Type\_of\_Object, field1, field2, field3, .... ] -- In airgaps1, all types have been converted. Note that "Thermal - Resistance" is a float and not a string - - -What about an Energyplus object that does not exist in the idf file ? - -.. code:: python - - roofs = dt['ROOF'] - print roofs - -.. parsed-literal:: - - [] - - -You get an empty list, meaning there are no roof items within roofs - -idf1.idd\_info - in detail -~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -Let us find the idd\_info for airgaps - -.. code:: python - - location_of_airgaps = dtls.index("material:airgap".upper()) - print location_of_airgaps - -.. parsed-literal:: - - 50 - - -.. code:: python - - idd_airgaps = idd_info[location_of_airgaps] - idd_airgaps - - - -.. parsed-literal:: - - [{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']}, - {'field': ['Name'], - 'reference': ['MaterialName'], - 'required-field': [''], - 'type': ['alpha']}, - {'field': ['Thermal Resistance'], - 'minimum>': ['0'], - 'type': ['real'], - 'units': ['m2-K/W']}] - - - -Compare to text in idd file:: - - Material:AirGap, - \min-fields 2 - \memo Air Space in Opaque Construction - A1 , \field Name - \required-field - \type alpha - \reference MaterialName - N1 ; \field Thermal Resistance - \units m2-K/W - \type real - \minimum> 0 - -- idd\_airgaps gives details about each field -- the last field N1 says that *type = real* -- This tells us that the text value coming from the the test file has - to be converted to a float - - -Syntactic Sugar ---------------- - - -from: -https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic\_sugar.html -*"Syntactic sugar is a computer science term that refers to syntax -within a programming language that is designed to make things easier to -read or to express, while alternative ways of expressing them exist"* - -Wikipedia article on `syntactic -sugar `__ - -**All the rest of the code in eppy is simply syntactic sugar over the -data structure in model.dtls, model.dt and idd\_info** - -Of course, the above statement is a gross exageration, but it gives you -a basis for understanding the code that comes later. At the end of the -day, any further code is simply a means for changing the data within -model.dt. And you need to access the data within model.dtls and -idd\_info to do so. - -Bunch -~~~~~ - - -Bunch is a great library that subclasses dict. You can see it at: - -- https://pypi.python.org/pypi/bunch/1.0.1 -- https://github.com/dsc/bunch - -Let us first take a look at a dict - -.. code:: python - - adict = {'a':1, 'b':2, 'c':3} - adict - - - -.. parsed-literal:: - - {'a': 1, 'b': 2, 'c': 3} - - - -.. code:: python - - # one would access the values in this dict by: - print adict - print adict['a'] - print adict['b'] - print adict['c'] - -.. parsed-literal:: - - {'a': 1, 'c': 3, 'b': 2} - 1 - 2 - 3 - - -Bunch allows us to do this with a lot less typing - -.. code:: python - - from bunch import Bunch - bunchdict = Bunch(adict) - print bunchdict - print bunchdict.a - print bunchdict.b - print bunchdict.c - -.. parsed-literal:: - - Bunch(a=1, b=2, c=3) - 1 - 2 - 3 - - -Let us take a look at variable **airgaps** from the previous section. - -.. code:: python - - airgaps - - - -.. parsed-literal:: - - [['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] - - - -.. code:: python - - airgap1, airgap2 = airgaps[0], airgaps[1] -.. code:: python - - airgap1 - - - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - - - -We are going to subclass bunch so that we can do the following to -**airgap1** from the previous section: - -- airgap1.Name -- airgap1.Thermal\_Resistance - -to remind you, the text file we are reading looks like this:: - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - -- We are using the field names that come from the idd file -- A space and other illegal (illegal for python) characters are - replaced by an underscore - - -It is a little tricky tring to use bunch with airgap, because: - -- airgap is a list -- but bunch works on dicts - -So we do it in the following way: - -- we make a new Bunch from the **airgap** list. -- The Bunch is made by by doing airgap1 = Bunch( {"Name" : "F04 Wall - air space resistance", "Thermal\_Resistance" : 0.15} ) -- This will allow us to use the dot notation we see in bunch -- Of course if we make changes in this Bunch, the **airgap** list does - not change -- Ideally we would like to see the changes reflected in the **airgap** - list -- We subclass Bunch as EpBunch. EpBunch is designed so that changes in - EpBunch will make changes to the **airgap** list - -*Note:* Some simplifications were made in the explanations above. So -take it with a pinch of salt :-) - -EpBunch -~~~~~~~ - - -The code of EpBunch is in eppy/bunch\_subclass.py. If you look at the -code you will see The subclassing happening in the following manner: - -- Bunch -> EpBunch1 -> EpBunch2 -> ..... -> EpBunch5 , where "Bunch -> - EpBunch" means "EpBunch subclassed from Bunch" -- then EpBunch = EpBunch5 - -**Question:** Are you demented ? Why don't you just subclass Bunch -> -EpBunch ? - -**Answer:** One can get demented trying to subclass from dict. This is -pretty tricky coding and testing-debugging is difficult, since we are -overriding built-in functions of dict. When you make mistakes there, the -subclassed dict just stops working, or does very strange things. So I -built it in a carefull and incremental way, fully testing before -subclassing again. Each subclass implements some functionality and the -next one implements more. - -**EpBunch** is described in more detail in the next section diff --git a/docs/_build/html/_sources/dev_docs/doc_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/doc_eppy.rst.txt deleted file mode 100644 index 73d5251b..00000000 --- a/docs/_build/html/_sources/dev_docs/doc_eppy.rst.txt +++ /dev/null @@ -1,17 +0,0 @@ -Documenting eppy -================ - -Sphinx is used to document eppy. Sphinx uses restructured text (*.rst) to build up the documentation. Some of the documentation is done directly in restructured text files. In other cases ipython notebooks are used to generate the restructured text files. - -This documentation is incomplete. - -When completed it will list the steps needed to let you to add to the documentation and then generate the html files - -Restructured text ------------------ - -Ipython notebook ----------------- - -Sphinx ------- \ No newline at end of file diff --git a/docs/_build/html/_sources/dev_docs/epbunch.rst.txt b/docs/_build/html/_sources/dev_docs/epbunch.rst.txt deleted file mode 100644 index 4214653f..00000000 --- a/docs/_build/html/_sources/dev_docs/epbunch.rst.txt +++ /dev/null @@ -1,562 +0,0 @@ - -EpBunch -======= - - -:Author: Santosh Philip. - -EpBunch is at the heart of what makes eppy easy to use. Specifically -Epbunch is what allows us to use the syntax ``building.Name`` and -``building.North_Axis``. Some advanced coding had to be done to make -this happen. Coding that would be easy for professional programmers, but -not for us ordinary folk :-( - -Most of us who are going to be coding eppy are not professional -programmers. I was completely out of my depth when I did this coding. I -had the code reviewed by programmers who do this for a living (at python -meetups in the Bay Area). In their opinion, I was not doing anything -fundamentally wrong. - -Below is a fairly long explanation, to ease you into the code. Read -through the whole thing without trying to understand every detail, just -getting a birds eye veiw of the explanation. Then read it again, you -will start to grok some of the details. All the code here is working -code, so you can experiment with it. - -Magic Methods (Dunders) of Python ---------------------------------- - - -To understand how EpBunch or Bunch is coded, one has to have an -understanding of the magic methods of Python. (For a background on magic -methods, take a look at http://www.rafekettler.com/magicmethods.html) -Let us dive straight into this with some examples - -.. code:: python - - adict = dict(a=10, b=20) # create a dictionary - print adict - print adict['a'] - print adict['b'] - -.. parsed-literal:: - - {'a': 10, 'b': 20} - 10 - 20 - - -What happens when we say d['a'] ? - -This is where the magic methods come in. Magic methods are methods that -work behind the scenes and do some magic. So when we say d['a'], The -dict is calling the method ``__getitem__('a')``. - -Magic methods have a *double underscore* "``__``\ ", called **dunder** -methods for short - -Let us override that method and see what happens. - -.. code:: python - - class Funnydict(dict): # we are subclassing dict here - def __getitem__(self, key): - value = super(Funnydict, self).__getitem__(key) - return "key = %s, value = %s" % (key, value) - - funny = Funnydict(dict(a=10, b=20)) - print funny - -.. parsed-literal:: - - {'a': 10, 'b': 20} - - -The print worked as expected. Now let us try to print the values - -.. code:: python - - print funny['a'] - print funny['b'] - -.. parsed-literal:: - - key = a, value = 10 - key = b, value = 20 - - -Now that worked very differently from a dict - -So it is true, funny['a'] does call ``__getitem__()`` that we just wrote - -Let us go back to the variable **adict** - -.. code:: python - - # to jog our memory - print adict - -.. parsed-literal:: - - {'a': 10, 'b': 20} - - -.. code:: python - - # this should not work - print adict.a - -:: - - - --------------------------------------------------------------------------- - AttributeError Traceback (most recent call last) - - in () - 1 # this should not work - ----> 2 print adict.a - - - AttributeError: 'dict' object has no attribute 'a' - - -What method gets called when we say **adict.a** ? - -The magic method here is ``__getattr__``\ () and ``__setattr__()``. -Shall we override them and see if we can get the dot notation to work ? - -.. code:: python - - class Like_bunch(dict): - def __getattr__(self, name): - return self[name] - def __setattr__(self, name, value): - self[name] = value - - lbunch = Like_bunch(dict(a=10, b=20)) - print lbunch - -.. parsed-literal:: - - {'a': 10, 'b': 20} - - -Works like a dict so far. How about **lbunch.a** ? - -.. code:: python - - print lbunch.a - print lbunch.b - -.. parsed-literal:: - - 10 - 20 - - -Yipeee !!! I works - -How about ``lbunch.nota = 100`` - -.. code:: python - - lbunch.anot = 100 - print lbunch.anot - -.. parsed-literal:: - - 100 - - -All good here. But don't trust the code above too much. It was simply -done as a demonstration of **dunder** methods and is not fully tested. - -Eppy uses the bunch library to do something similar. You can read more -about the bunch library in the previous section. - -Open an IDF file ----------------- - - -Once again let us open a small idf file to test. - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../../' - sys.path.append(pathnameto_eppy) -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../../../eppy/resources/idffiles/V_7_2/dev1.idf" - - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - idf1.printidf() - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - - - -.. code:: python - - dtls = idf1.model.dtls - dt = idf1.model.dt - idd_info = idf1.idd_info -.. code:: python - - dt['MATERIAL:AIRGAP'] - - - -.. parsed-literal:: - - [['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] - - - -.. code:: python - - obj_i = dtls.index('MATERIAL:AIRGAP') - obj_idd = idd_info[obj_i] - obj_idd - - - -.. parsed-literal:: - - [{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']}, - {'field': ['Name'], - 'reference': ['MaterialName'], - 'required-field': [''], - 'type': ['alpha']}, - {'field': ['Thermal Resistance'], - 'minimum>': ['0'], - 'type': ['real'], - 'units': ['m2-K/W']}] - - - -For the rest of this section let us look at only one airgap object - -.. code:: python - - airgap = dt['MATERIAL:AIRGAP'][0] - airgap - - - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - - - -Subclassing of Bunch --------------------- - - -Let us review our knowledge of bunch - -.. code:: python - - from bunch import Bunch - adict = {'a':1, 'b':2, 'c':3} - bunchdict = Bunch(adict) - print bunchdict - print bunchdict.a - print bunchdict.b - print bunchdict.c - -.. parsed-literal:: - - Bunch(a=1, b=2, c=3) - 1 - 2 - 3 - - -Bunch lets us use dot notation on the keys of a dictionary. We need to -find a way of making ``airgap.Name`` work. This is not straightforward -because, airgap is **list** and Bunch works on **dicts**. It would be -easy if airgap was in the form -``{'Name' : 'F04 Wall air space resistance', 'Thermal Resistance' : 0.15}``. - -The rest of this section is a simplified version of how EpBunch works. - -.. code:: python - - class EpBunch(Bunch): - def __init__(self, obj, objls, objidd, *args, **kwargs): - super(EpBunch, self).__init__(*args, **kwargs) - self.obj = obj - self.objls = objls - self.objidd = objidd -The above code shows how EpBunch is initialized. Three variables are -passed to EpBunch to initialize it. They are ``obj, objls, objidd``. - -.. code:: python - - obj = airgap - objls = ['key', 'Name', 'Thermal_Resistance'] # a function extracts this from idf1.idd_info - objidd = obj_idd - # - print obj - print objls - # let us ignore objidd for now - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - ['key', 'Name', 'Thermal_Resistance'] - - -Now we override ``__setattr__()`` and ``__getattr__()`` in the following -way - -.. code:: python - - class EpBunch(Bunch): - def __init__(self, obj, objls, objidd, *args, **kwargs): - super(EpBunch, self).__init__(*args, **kwargs) - self.obj = obj - self.objls = objls - self.objidd = objidd - - def __getattr__(self, name): - if name in ('obj', 'objls', 'objidd'): - return super(EpBunch, self).__getattr__(name) - i = self.objls.index(name) - return self.obj[i] - - def __setattr__(self, name, value): - if name in ('obj', 'objls', 'objidd'): - super(EpBunch, self).__setattr__(name, value) - return None - i = self.objls.index(name) - self.obj[i] = value - -.. code:: python - - # Let us create a EpBunch object - bunch_airgap = EpBunch(obj, objls, objidd) - # Use this table to see how __setattr__ and __getattr__ work in EpBunch - - obj = ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15 ] - objls = ['key', 'Name', 'Thermal_Resistance'] - i = 0 1 2 - -.. code:: python - - print bunch_airgap.Name - print bunch_airgap.Thermal_Resistance - -.. parsed-literal:: - - F04 Wall air space resistance - 0.15 - - -.. code:: python - - print bunch_airgap.obj - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - - -Let us change some values using the dot notation - -.. code:: python - - bunch_airgap.Name = 'Argon in gap' -.. code:: python - - print bunch_airgap.Name - -.. parsed-literal:: - - Argon in gap - - -.. code:: python - - print bunch_airgap.obj - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'Argon in gap', 0.15] - - -Using the dot notation the value is changed in the list - -Let us make sure it actually has done that. - -.. code:: python - - idf1.model.dt['MATERIAL:AIRGAP'][0] - - - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'Argon in gap', 0.15] - - - -``EpBunch`` acts as a wrapper around -``idf1.model.dt['MATERIAL:AIRGAP'][0]`` - -In other words ``EpBunch`` is just **Syntactic Sugar** for -``idf1.model.dt['MATERIAL:AIRGAP'][0]`` - -Variables and Names in Python ------------------------------ - - -At this point your reaction may, "I don't see how all those values in -``idf1.model.dt`` changed". If such question arises in your mind, you -need to read the following: - -- `Other languages have - 'variables' `__ -- `Python has - 'names' `__ -- Also see `Facts and myths about Python names and - values `__ - -This is especially important if you are experienced in other languages, -and you expect the behavior to be a little different. Actually follow -and read those links in any case. - -Continuing with EpBunch ------------------------ - - -EpBunch\_1 -~~~~~~~~~~ - - -The code for EpBunch in the earlier section will work, but has been -simplified for clarity. In file ``bunch_subclass.py`` take a look at the -class **EpBunch\_1** . This class does the first override of -``__setattr__`` and ``__getattr__``. You will see that the code is a -little more involved, dealing with edge conditions and catching -exceptions. - -**EpBunch\_1** also defines ``__repr__``. This lets you print EpBunch in -a human readable format. Further research indicates that ``__str__`` -should have been used to do this, not ``__repr__`` :-( - -EpBunch\_2 -~~~~~~~~~~ - - -``EpBunch_2`` is subclassed from ``EpBunch_1``. - -It overrides ``__setattr__`` and ``__getattr__`` to add a small -functionality that has not been documented or used. The idea was to give -the ability to shorten field names with alias. So -``building.Maximum_Number_of_Warmup_Days`` could be made into -``building.warmupdays``. - -I seemed like a good idea when I wrote it. Ignore it for now, although -it may make a comeback :-) - -EpBunch\_3 -~~~~~~~~~~ - - -``EpBunch_3`` is subclassed from ``EpBunch_2``. - -EpBunch\_3 adds the ability to add functions to EpBunch objects. This -would allow the object to make calculations using data within the -object. So ``BuildingSurface:Detailed`` object has all the geometry data -of the object. The function 'area' will let us calculate the are of the -object even though area is not a field in ``BuildingSurface:Detailed``. - -So you can call ``idf1.idfobjects["BuildingSurface:Detailed"][0].area`` -and get the area of the surface. - -At the moment, the functions can use only data within the object for -it's calculation. We need to extend this functionality so that -calculations can be done using data outside the object. This would be -useful in calculating the volume of a Zone. Such a calculation would -need data from the surfaces that the aone refers to. - -EpBunch\_4 -~~~~~~~~~~ - - -``EpBunch_4`` is subclassed from ``EpBunch_3``. - -``EpBunch_4`` overrides ``_setitem__`` and ``__getitem__``. Right now -``airgap.Name`` works. This update allows ``airgap["Name"]`` to work -correctly too - -EpBunch\_5 -~~~~~~~~~~ - - -``EpBunch_5`` is subclassed from ``EpBunch_4``. - -``EpBunch_5`` adds functions that allows you to call functions -``getrange`` and ``checkrange`` for a field - -Finally EpBunch -~~~~~~~~~~~~~~~ - - -``EpBunch = EpBunch_5`` - -Finally ``EpBunch_5`` is named as EpBunch. So the rest of the code uses -EpBunch and in effect it uses ``Epbunch_5`` diff --git a/docs/_build/html/_sources/dev_docs/future_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/future_eppy.rst.txt deleted file mode 100644 index f5dc39a0..00000000 --- a/docs/_build/html/_sources/dev_docs/future_eppy.rst.txt +++ /dev/null @@ -1,18 +0,0 @@ -The Future of eppy -================== - -The future of eppy lies in the use of eppy to build a more comprehensive tool kit to work with Energyplus models. In a sense eppy should not grow much at all. Eppy should become more effective as tool kit at a very granular level. - -Longterm TODOs for eppy ------------------------ - -Some of the possibilities for the future growth of eppy are: - -- A geometry builder for Energyplus. The open source 3-D software Blender has a python scripting language. One possibility would be to use Blender as a geometry interface for eppy and Energyplus -- A HVAC Builder for Energyplus. -- A HVAC diagram tool for Energyplus. Eppy has a reasonbly good diagram tool for HVAC network. Right now it shows a purely static image of the network. An enhancement of this would be to ability to edit the network through the diagram -- A User interface for Energyplus. This may be redundant, since the present IDF editor is quite good. -- A web based user interface Energyplus. The path of least resistance to do this would be to a python web framework like django, flask, pyramid or bottle. Bottle is a very light weight web framework and could be used to make small special purpose interfaces for Energyplus. - -The eppy project will take a lead on some of these projects. Working on these projects will feed back information into eppy, on how to improve the functionality of eppy - \ No newline at end of file diff --git a/docs/_build/html/_sources/dev_docs/hist_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/hist_eppy.rst.txt deleted file mode 100644 index da9f2ba3..00000000 --- a/docs/_build/html/_sources/dev_docs/hist_eppy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ -History of Eppy -=============== - -:Author: Santosh Philip (santosh_philip at yahoo.com) - -EPlusInterface --------------- - -EPlusInterface is a text based interface to Energyplus. EPlusInterface is the direct ancestor to Eppy. The data structure of EPlusInterface was simple and quite robust. EPlusInterface also had good functions to read the idd file and the idf files. In principle the idd file reader of EPlusInterface was written so that it could read any version of the idd file. Eppy directly uses the file readers from EPlusInterface - -.. Energyplus and python -.. ````````````````````` -.. -.. Around 2004 version 1 of Energyplus had been released. In an attempt to understand what Energyplus could do, I decided write a simple interface for Energyplus. I had recently discovered the programming language python, and was very impressed with how elegantly simple the language was. Python allowed me to focus on the task at hand and did not have me obsessing over "programming". -.. -.. Writing an interface -.. ```````````````````` -.. -.. Writing good Graphic User Interface (GUI) can be a surprisingly complex design and programming task. I found a simple library that allowed me to build text based GUI. It was fairly limited in what it could do compared to a standard GUI. This suited my purposes as it let me focus on Energyplus rather than the GUI issues. \ No newline at end of file diff --git a/docs/_build/html/_sources/dev_docs/idf_msequence.rst.txt b/docs/_build/html/_sources/dev_docs/idf_msequence.rst.txt deleted file mode 100644 index c27ddf55..00000000 --- a/docs/_build/html/_sources/dev_docs/idf_msequence.rst.txt +++ /dev/null @@ -1,411 +0,0 @@ - -Idf\_MSequence - Syntactic Sugar work -===================================== - - -Underlying Data structure of again ----------------------------------- - - -Let us open a small idf file and look at the underlying data structure. - -:: - - # assume we have open an IDF file called idf - # let us add three construction objects to it - idf.newidfobject('construction'.upper(), Name='C1') - idf.newidfobject('construction'.upper(), Name='C2') - idf.newidfobject('construction'.upper(), Name='C3') - constructions = idf.idfobjects['construction'.upper()] - print constructions - - -:: - - [ - CONSTRUCTION, - C1; !- Name - , - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -We know that constructions us just syntactic sugar around the underlying -data structure. Let us call the underlying data structure -*real\_constructions* - -:: - - # set real_constructions - real_constructions = = idf.model.dt['construction'.upper()] - print real_constructions - - -:: - - [['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -:: - - real_constructions -> the underlying data structure - constructions -> syntactic sugar for real_constructions - - -So any changes made in constructions should reflected in constructions. -Let us test this out. - -:: - - constructions[0].Name = 'New C1' - print constructions - - -:: - - [ - CONSTRUCTION, - New C1; !- Name - , - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -:: - - print real_constructions - - -:: - - [['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Even though we made the change only in *constructions*, we can see the -changes in both *constructions* and *real\_constructions*. ``Ep_Bunch`` -takes care of this for us. - -:: - - print 'type for constructions', type(constructions) - - -:: - - type for constructions - - -since constructions is a list, we can do all the list operations on it. -Let us try some of them: - -:: - - constructions.pop(0) - - -:: - - CONSTRUCTION, - New C1; !- Name - - -:: - - print constructions - - -:: - - [ - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -That makes sense. We poped the first item in the list and now we have -only two items. - -Is this change reflected in real\_constructions ? - -:: - - print real_constructions - - -:: - - [['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Dammit !! Why not ? - -We still have 3 items in real\_constructions and 2 items in -constructions - -:: - - print 'type for constructions', type(constructions) - print 'id of constructions', id(constructions) - print 'type for real_constructions', type(constructions) - print 'id of real_constructions', id(real_constructions) - - -:: - - type for constructions - id of constructions 4576898440 - type for real_constructions - id of real_constructions 4535436208 - - -- Both ``constructions`` and ``real_constructions`` are lists. -- But looking at their ids, it is clear that they are two different - lists. -- poping an item in one list will not pop it in the other list :-( - - -- In ``constructions[0].Name =`` ``"New C1"`` we see changes to an item - within ``constructions`` is reflected within ``real_constructions`` -- ``EpBunch`` takes care of that connection -- We are having problems with the list functions. -- we see that pop() does not work for us -- similarly the results of append(), insert(), sort() and reverse() in - ``constructions`` will not be reflected in ``real_constructions`` - -This is how it works in eppy version 0.5 - -We need to fix this. Now we describe how this problem was fixed. - -``constructions`` should be a list-like wrapper around -``real_constructions``. Python has an excellent data structure called -``collections.MutableSequence`` that works perfectly for this. Alex -Martelli has a great discussion of this in this stackoverflow thread -`Overriding append method after inheriting from a Python -List `__ - -- So we make a class ``eppy.idf_msequence.Idf_MSequence`` that inherits - form ``collections.MutableSequence`` -- ``constructions`` is now an instance of - ``eppy.idf_msequence.Idf_MSequence`` -- reading the above stackoverflow thread and the code wihtin - ``eppy.idf_msequence.Idf_MSequence`` should show you how it works -- version of eppy higher than 0.5 will use - ``eppy.idf_msequence.Idf_MSequence`` - -Let us take a look at how it works (in all versions of eppy newer than -0.5): - -.. code:: python - - # using eppy version greater than 0.5 - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../../' - sys.path.append(pathnameto_eppy) - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../../../eppy/resources/idffiles/V_7_2/smallfile.idf" - IDF.setiddname(iddfile) - idf = IDF(fname1) - - idf.newidfobject('construction'.upper(), Name='C1') - idf.newidfobject('construction'.upper(), Name='C2') - idf.newidfobject('construction'.upper(), Name='C3') - constructions = idf.idfobjects['construction'.upper()] -.. code:: python - - print constructions - -.. parsed-literal:: - - [ - CONSTRUCTION, - C1; !- Name - , - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -.. code:: python - - real_constructions = idf.model.dt['construction'.upper()] - print real_constructions - -.. parsed-literal:: - - [['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Shall we test ``pop(0)`` here ? - -.. code:: python - - constructions.pop(0) - - - -.. parsed-literal:: - - - CONSTRUCTION, - C1; !- Name - - - - -.. code:: python - - print constructions - -.. parsed-literal:: - - [ - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -.. code:: python - - print real_constructions - -.. parsed-literal:: - - [['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Awesome !!! both ``constructions`` and ``real_constructions`` have the -same number of items - -.. code:: python - - print type(constructions) - print type(real_constructions) - -.. parsed-literal:: - - - - - -what kind of sorcery is this. How did that work. How does -``Idf.Msequence`` do this magic ? Let us look at that -`link `__ -in stackoverflow. The question raised in stackovverflow is: - -*I want to create a list that can only accept certain types. As such, -I'm trying to inherit from a list in Python, and overriding the append() -method like so:* and there is a sample code after this. - -Alex Martelli responds: - -*Not the best approach! Python lists have so many mutating methods that -you'd have to be overriding a bunch (and would probably forget some).* - -*Rather, wrap a list, inherit from collections.MutableSequence, and add -your checks at the very few "choke point" methods on which -MutableSequence relies to implement all others.* Alex's code follows -after this point. In ``eppy.idf_msequence`` I have included Alex's code. - -Stop here and read through the `stackoverflow -link `__ - -Well ... you don't really have to. It does go off on some tangents -unrelated to what we do in eppy. - -The strategy in ``eppy.idf_msequence.Idf_MSequence`` is to have two -lists, list1 and list2. To play with this I made a simple class -``TwoLists``. Here ``TwoLists`` acts just like a list. Any operation -list operation on ``TwoLists`` will result in a similar operation on -both list1 and list2. ``TwoLists`` is not used in eppy, I simply use it -to flesh out how ``MutableSequence`` can be used. I am going to play -with ``TwoLists`` here to show you how cool it is :-) - -.. code:: python - - from eppy.idf_msequence import TwoLists - twolists = TwoLists() - print twolists - -.. parsed-literal:: - - list1 = [], list2 = [] - - -.. code:: python - - twolists.append(5) - print twolists - -.. parsed-literal:: - - list1 = [5], list2 = ['r_5'] - - -.. code:: python - - twolists.append(dict(a=15)) - print twolists - -.. parsed-literal:: - - list1 = [5, {'a': 15}], list2 = ['r_5', "r_{'a': 15}"] - - -.. code:: python - - twolists.insert(1, 42) - print twolists - -.. parsed-literal:: - - list1 = [5, 42, {'a': 15}], list2 = ['r_5', 'r_42', "r_{'a': 15}"] - - -.. code:: python - - twolists.pop(-1) - - - -.. parsed-literal:: - - {'a': 15} - - - -.. code:: python - - print twolists - -.. parsed-literal:: - - list1 = [5, 42], list2 = ['r_5', 'r_42'] - - -Isn't that neat !! ``Idf_MSequence`` works in a similar way. Out of -sheer laziness I am going to let you figure it out on your own. (ignore -``Idf_MSequence_old``, since that went in the wrong direction) - -.. code:: python - - \ No newline at end of file diff --git a/docs/_build/html/_sources/dev_docs/index.rst.txt b/docs/_build/html/_sources/dev_docs/index.rst.txt deleted file mode 100644 index 27cddc0d..00000000 --- a/docs/_build/html/_sources/dev_docs/index.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -Developer Documentation for eppy -================================ - -The documentation you have read so far is written for *Users of eppy*. Users of eppy will simply install eppy and use it. They may be writing a lot of code using eppy, but they will not be changing any code within eppy itself. - -This section of the documentation is for people who want to contribute to the development of eppy. In contrast to *eppy users* people who contribute code to eppy will be changing and adding code to eppy. To change code within eppy, developers will need to have a good sense of how eppy is written and structured. This section hopes to give clarity to such issues. It is assumed that most developers of eppy will not be professional programmers and may come from a rage of programming abilities. So this documentation is slanted to such an audience. - -If you look at the table of contents below, You will notice sections on the *history* and *philosophy* of eppy. Eppy was built off an earlier program, and a lot of the data structure and program design, will become clear when you see the history behind eppy. The philosophy of eppy alludes to the Unix philosophy of *Do one thing, and do it well*. - -Topics ------- - -.. toctree:: - :maxdepth: 2 - - phil_eppy - hist_eppy - future_eppy - data_eppy - epbunch - idf_msequence - modeleditor - pytest_eppy - doc_eppy diff --git a/docs/_build/html/_sources/dev_docs/modeleditor.rst.txt b/docs/_build/html/_sources/dev_docs/modeleditor.rst.txt deleted file mode 100644 index 080754af..00000000 --- a/docs/_build/html/_sources/dev_docs/modeleditor.rst.txt +++ /dev/null @@ -1,100 +0,0 @@ - -IDF in modeleditor -================== - - -The previous section talks about EpBunch, which deals with a single -object from Energyplus. Here we put all the pieces together so that we -have the entire **IDF** file - -Class IDF ---------- - - -IDF0 is the first class that was written. As the code was refined, it -was further refined to by subclassing to IDF1, IDF2, IDF3. Finally the -following was set as IDF = IDF3 - -Class IDF0 ----------- - - -Some important methods in IDF0 - -IDF0.setiddname -~~~~~~~~~~~~~~~ - - -This method has a decorator ``@classmethod``. This decorator makes the -method a class method. From a stackoverflow comment, I found a brief -description of when this should be used. - -``"Class methods are essential when you are doing set-up or computation that precedes the creation of an actual instance, because until the instance exists you obviously cannot use the instance as the dispatch point for your method calls"`` - -Having said that, I am outside my comfort zone on trying to explain this -in any depth. I will simply explain what I am doing with this here. -Below is a brief explanation intent. - -- the idd file is a very large file. There is a large overhead in - opening more than one idd file. -- A design decision was made to use only one idd file to be used in a - script. -- This means that you cannot open two idf files that are of different - version (meaning they will use different idd files) -- You can open any number of idf file as long as they are of the same - version (meaing, the use the same idd file) - -The class method allows us to achieve the objective: - -- The class method 'setiddname', allows us to set the name of the idd - file, before creating an instance of IDF. It is set by the statement - ``IDF.setiddname(iddfilename)`` -- There are other class methods that make sure that this idd name - cannot be changed. -- An instance of the class IDF is created using the statement - ``idf = IDF(idffilename)``. This can be done multiple times, creating - multiple instances and they will all use the same idd file - - -IDF0.\ ``__init__`` -~~~~~~~~~~~~~~~~~~~ - - -IDF is initialized by passing it the idf file name. I would look like -this: - - idf1 = IDF(filename) # filename can be a file name, file handle or an StringIO - -- Once the class is initialized, it will read the idf file. -- If this the first time the class is inititalized, the idd file set by - ``setiddname()`` will be read too. -- the idd file is read only once and then same copy is used. - - -IDF0.read -~~~~~~~~~ - - -The read function is called when the class IDF is initialized. The read -function calls routines from the original EPlusInterface program to do -the actual read. The read get the values for the following variables: - -- idfobjects -- model.dt -- model.dtls -- idd\_info - -The functions within EPlusInterface are not documented here. I wrote -them in 2004 and I have no idea how I did them. they have been working -really well with some minor updates. I don't intent to poke at that code -yet. - -Other IDF methods ------------------ - - -The other functions in IDF0, IDF1, IDF2 and IDF3 not too complicated. It -should be possible to understand them by reading the code. - -Sometime in the future, these functions will be documented later in more -detail diff --git a/docs/_build/html/_sources/dev_docs/phil_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/phil_eppy.rst.txt deleted file mode 100644 index c8c5141b..00000000 --- a/docs/_build/html/_sources/dev_docs/phil_eppy.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ -Philosophy of Eppy -================== - -:Author: Santosh Philip - -The *Philosophy of eppy* alludes to the `Unix Philosophy `_. The philosophy of eppy takes inspiration from the *Unix Philosophy*, that speaks of doing one thing and doing it well. Unix has the tradition of having small tools that do a single thing. A number of tools can be stitched together to do a more complex task. -Of course, since eppy is written in Python, it adheres to the "Zen of Python" - -The rules of Unix are shown in the appendix at the bottom of this page.(You may find that eppy breaks the rules at times) - - - -Purpose of Eppy ---------------- - -The purpose of eppy is to be a *scripting language* to Energyplus. So what does that mean ? Let us start by describing what it is not. - -What eppy is **not**: - -- Eppy is **not** a User Interface to Energyplus. -- Eppy is **not** a HVAC builder for Energyplus -- Eppy is **not** a Geometry builder for Energyplus -- Eppy does **not** make batch runs for Energyplus -- Eppy does **not** optimize Energyplus models - -Now you may ask, "What use is eppy, if it cannot do any of these things ?" - -Aha ! Eppy is a scripting language. That means you can write scripts that can help to do any of those things listed above. And many more that are not listed above :-) - -A scripting language has to be *simple* and *expressive*. It has to be simple so that it is easy to understand and use, and should ideally have a negligible learning curve. Now, it can be simple, but may be simplistic and you may be able to do only simple things in it. To go beyond the simple, the language has to be expressive. Most natural languages (like English or Malayalam) are expressive and you can write poetry in them. Of course, some languages are more expressive than others, which is why Malayalam is more poetic than English ... just kidding here :-) - -In the world of programming languages, python is a very expressive language. If you doubt this, you should take a look at the *Zen of Python* to see the philosophy behind python. Eppy attempts to piggyback on the expressiveness of python. Developers who are working on eppy should use this as a guiding principle, especially if you are working deep within the innards of eppy. Some of this is tricky coding, because you are overriding the functionality within python itself. Depending on your coding ability and what you want to learn, you should pick an area you want to work in - -**Question**: You claim that Eppy is **not** a HVAC builder for Energyplus. I see a module called hvacbulider.py in eppy. - -**Answer**: Yup ! you are right. I cheated. Hvacbulider should not be in eppy. We are at an early stage of the evolution of eppy and it made sense to keep it within eppy for now. In the future, it will be made into a standalone library that will use eppy for it's functionality. - -The power of the idd file -````````````````````````` - -Due to historic reasons, the developers of Energyplus were tasked to write the simulation engine without an user interface. This meant they had to write Energyplus in such a way that others could write user interfaces to it. This constraint forced them to make two excellent design decisions: - -- All models in Energyplus are text files called *idf* files. Text files are human readable and are platform agnostic. -- There is a special text file called an *idd* file, that describes all the objects that can be in an Energyplus model. Again this file is human readable and it is very well documented with comments. If you intend to do any development in Energyplus or eppy, it is well worth taking a look at this file. It is usually called *Energy+.idd* and is found in the main Energyplus folder -- When newer versions of Energyplus are released, an updated idd file is released with it. The simulation engine within Energyplus uses the idd file to parse the objects in the model. If an interface software is able to read and understand the idd file, it can effectively understand any idf file. -- Eppy is written so that it can read and understand idd files, including idd files of future releases.In principle, eppy should be able to work with any future version of Energyplus without any changes. At the date this documentation was written, eppy can read all idf files, from version 1 to version 8. - -Idd file and eppy ------------------ - -Both the idd file and idf file are text files. If you look at these files, you will see that there is a clear structure that is visible to you, the reader. Eppy reads these text files and pushes it into classic python data structures, like lists and dictionaries. Once this information is in lists and dicts, it becomes much easier to walk through the data structure and to add, delete and change the information. - -At it's heart, eppy is simply a scripting language that puts the idd and idf file into a python data structure. Then it uses the power of python to edit the idf file. - - -Appendix: Unix Philosophy -------------------------- - -From http://www.catb.org/esr/writings/taoup/html/ch01s06.html: - -- Rule of Modularity: Write simple parts connected by clean interfaces. -- Rule of Clarity: Clarity is better than cleverness. -- Rule of Composition: Design programs to be connected to other programs. -- Rule of Separation: Separate policy from mechanism; separate interfaces from engines. -- Rule of Simplicity: Design for simplicity; add complexity only where you must. -- Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do. -- Rule of Transparency: Design for visibility to make inspection and debugging easier. -- Rule of Robustness: Robustness is the child of transparency and simplicity. -- Rule of Representation: Fold knowledge into data so program logic can be stupid and robust. -- Rule of Least Surprise: In interface design, always do the least surprising thing. -- Rule of Silence: When a program has nothing surprising to say, it should say nothing. -- Rule of Repair: When you must fail, fail noisily and as soon as possible. -- Rule of Economy: Programmer time is expensive; conserve it in preference to machine time. -- Rule of Generation: Avoid hand-hacking; write programs to write programs when you can. -- Rule of Optimization: Prototype before polishing. Get it working before you optimize it. -- Rule of Diversity: Distrust all claims for “one true way”. -- Rule of Extensibility: Design for the future, because it will be here sooner than you think. diff --git a/docs/_build/html/_sources/dev_docs/pytest_eppy.rst.txt b/docs/_build/html/_sources/dev_docs/pytest_eppy.rst.txt deleted file mode 100644 index e235580f..00000000 --- a/docs/_build/html/_sources/dev_docs/pytest_eppy.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -Unit Testing Eppy -================= - -Pytest for eppy ---------------- - -`Pytest framework `_ is used to unit test eppy - -This section is yet to be documented \ No newline at end of file diff --git a/docs/_build/html/_sources/eppy.EPlusInterfaceFunctions.rst.txt b/docs/_build/html/_sources/eppy.EPlusInterfaceFunctions.rst.txt deleted file mode 100644 index 812c71e7..00000000 --- a/docs/_build/html/_sources/eppy.EPlusInterfaceFunctions.rst.txt +++ /dev/null @@ -1,70 +0,0 @@ -eppy.EPlusInterfaceFunctions package -==================================== - -Submodules ----------- - -eppy.EPlusInterfaceFunctions.eplusdata module ---------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.eplusdata - :members: - :undoc-members: - :show-inheritance: - -eppy.EPlusInterfaceFunctions.iddgroups module ---------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.iddgroups - :members: - :undoc-members: - :show-inheritance: - -eppy.EPlusInterfaceFunctions.iddindex module --------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.iddindex - :members: - :undoc-members: - :show-inheritance: - -eppy.EPlusInterfaceFunctions.mylib1 module ------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.mylib1 - :members: - :undoc-members: - :show-inheritance: - -eppy.EPlusInterfaceFunctions.mylib2 module ------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.mylib2 - :members: - :undoc-members: - :show-inheritance: - -eppy.EPlusInterfaceFunctions.parse\_idd module ----------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.parse_idd - :members: - :undoc-members: - :show-inheritance: - -eppy.EPlusInterfaceFunctions.readidf module -------------------------------------------- - -.. automodule:: eppy.EPlusInterfaceFunctions.readidf - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: eppy.EPlusInterfaceFunctions - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/_build/html/_sources/eppy.rst.txt b/docs/_build/html/_sources/eppy.rst.txt deleted file mode 100644 index 94ec8832..00000000 --- a/docs/_build/html/_sources/eppy.rst.txt +++ /dev/null @@ -1,10 +0,0 @@ -eppy package -============ - -Module contents ---------------- - -.. automodule:: eppy - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/_build/html/_sources/eppy.useful_scripts.rst.txt b/docs/_build/html/_sources/eppy.useful_scripts.rst.txt deleted file mode 100644 index 5e1a0d73..00000000 --- a/docs/_build/html/_sources/eppy.useful_scripts.rst.txt +++ /dev/null @@ -1,102 +0,0 @@ -eppy.useful\_scripts package -============================ - -Submodules ----------- - -eppy.useful\_scripts.autosize module ------------------------------------- - -.. automodule:: eppy.useful_scripts.autosize - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.change\_edges module ------------------------------------------ - -.. automodule:: eppy.useful_scripts.change_edges - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.doc\_images module ---------------------------------------- - -.. automodule:: eppy.useful_scripts.doc_images - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.eppy\_version module ------------------------------------------ - -.. automodule:: eppy.useful_scripts.eppy_version - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.eppyreadtest\_file module ----------------------------------------------- - -.. automodule:: eppy.useful_scripts.eppyreadtest_file - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.eppyreadtest\_folder module ------------------------------------------------- - -.. automodule:: eppy.useful_scripts.eppyreadtest_folder - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.idfdiff module ------------------------------------ - -.. automodule:: eppy.useful_scripts.idfdiff - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.idfdiff\_missing module --------------------------------------------- - -.. automodule:: eppy.useful_scripts.idfdiff_missing - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.loopdiagram module ---------------------------------------- - -.. automodule:: eppy.useful_scripts.loopdiagram - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.relatedobjects module ------------------------------------------- - -.. automodule:: eppy.useful_scripts.relatedobjects - :members: - :undoc-members: - :show-inheritance: - -eppy.useful\_scripts.renamecolon module ---------------------------------------- - -.. automodule:: eppy.useful_scripts.renamecolon - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: eppy.useful_scripts - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/_build/html/_sources/eppyfunctions.rst.txt b/docs/_build/html/_sources/eppyfunctions.rst.txt deleted file mode 100644 index 75528034..00000000 --- a/docs/_build/html/_sources/eppyfunctions.rst.txt +++ /dev/null @@ -1,39 +0,0 @@ -Eppy Functions -============== - -This Document is a work in progress - -The most commonly used eppy functions are gathered here. - - -IDF functions: - -- idf = IDF(fname) # fname or fhandle -- idf.printidf -- idf1.idfobjects['BUILDING'] -- idf.save -- idf.saveas -- idf.newidfobject -- idf.copyidfobject -- idf.newidfobject -- idf.removeidfobject -- idf.popidfobject -- idf.copyidfobject - -idfobjects function: - -- building.Name -- surface azimuth -- surface tilt -- surface area -- building.getrange("Loads_Convergence_Tolerance_Value") -- building.checkrange("Loads_Convergence_Tolerance_Value") -- building.fieldnames - -Other Functions: - -- area = modeleditor.zonearea(idf, zone.Name) -- volume = modeleditor.zonevolume(idf, zone.Name) -- json_functions.updateidf(idf1, json_str) -- idf_helpers.getidfobjectlist -- idf_helpers.copyidfintoidf diff --git a/docs/_build/html/_sources/eppyrecipies.rst.txt b/docs/_build/html/_sources/eppyrecipies.rst.txt deleted file mode 100644 index 643f89ef..00000000 --- a/docs/_build/html/_sources/eppyrecipies.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -Eppy Recipies -============= - -This Document is a work in progress - -Common ways in which eppy can be used \ No newline at end of file diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index 07a83da4..00000000 --- a/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -.. eppy documentation master file, created by - sphinx-quickstart on Sun Sep 22 12:06:04 2013. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to eppy's documentation! -================================ - -Contents: - -.. toctree:: - :maxdepth: 1 - - installation - Main_Tutorial - HVAC_Tutorial - Outputs_Tutorial - newfunctions - runningeplus - useful_scripts - eppyfunctions - eppyrecipies - changes - dev_docs/index - LICENSE - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/docs/_build/html/_sources/installation.rst.txt b/docs/_build/html/_sources/installation.rst.txt deleted file mode 100644 index 8ca4982b..00000000 --- a/docs/_build/html/_sources/installation.rst.txt +++ /dev/null @@ -1,28 +0,0 @@ -Installation -============ - -Type the following at your terminal to install **eppy** - -:: - - pip install eppy - -.. Go to http://www.numpy.org and install NumPy. - -.. I have disabled the install of NumPy through "pip install eppy", since it was not reliable - -For additional functionality: - -- Go to http://www.graphviz.org and install graphviz -- This is needed to draw loop diagrams. -- The rest of eppy will work without graphviz - -*Note: eppy runs on python2 and python 3.* - -Running eppy on other platforms -------------------------------- - -Eppy on Grasshopper (for use within Rhino) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Use the `CPython plugin for Rhino-Grasshopper `_ to run eppy in `Grasshopper `_ diff --git a/docs/_build/html/_sources/modules.rst.txt b/docs/_build/html/_sources/modules.rst.txt deleted file mode 100644 index 4f283ba5..00000000 --- a/docs/_build/html/_sources/modules.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -eppy -==== - -.. toctree:: - :maxdepth: 4 - - eppy diff --git a/docs/_build/html/_sources/newfunctions.rst.txt b/docs/_build/html/_sources/newfunctions.rst.txt deleted file mode 100644 index 7614f1e2..00000000 --- a/docs/_build/html/_sources/newfunctions.rst.txt +++ /dev/null @@ -1,1454 +0,0 @@ - -New functions -============= - -These are recently written functions that have not made it into the main -documentation - -Python Lesson: Errors and Exceptions ------------------------------------- - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - -When things go wrong in your eppy script, you get "Errors and -Exceptions". - -To know more about how this works in python and eppy, take a look at -`Python: Errors and -Exceptions `__ - -Setting IDD name ----------------- - -When you work with Energyplus you are working with **idf** files (files -that have the extension \*.idf). There is another file that is very -important, called the **idd** file. This is the file that defines all -the objects in Energyplus. Esch version of Energyplus has a different -**idd** file. - -So eppy needs to know which **idd** file to use. Only one **idd** file -can be used in a script or program. This means that you cannot change -the **idd** file once you have selected it. Of course you have to first -select an **idd** file before eppy can work. - -If you use eppy and break the above rules, eppy will raise an exception. -So let us use eppy incorrectly and make eppy raise the exception, just -see how that happens. - -First let us try to open an **idf** file without setting an **idd** -file. - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - - -Now let us open file fname1 without setting the **idd** file - -.. code:: python - - try: - idf1 = IDF(fname1) - except Exception, e: - raise e - - - -:: - - - --------------------------------------------------------------------------- - - IDDNotSetError Traceback (most recent call last) - - in () - 2 idf1 = IDF(fname1) - 3 except Exception, e: - ----> 4 raise e - 5 - - - IDDNotSetError: IDD file needed to read the idf file. Set it using IDF.setiddname(iddfile) - - -OK. It does not let you do that and it raises an exception - -So let us set the **idd** file and then open the idf file - -.. code:: python - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - - -That worked without raising an exception - -Now let us try to change the **idd** file. Eppy should not let you do -this and should raise an exception. - -.. code:: python - - try: - IDF.setiddname("anotheridd.idd") - except Exception, e: - raise e - - - -:: - - - --------------------------------------------------------------------------- - - IDDAlreadySetError Traceback (most recent call last) - - in () - 2 IDF.setiddname("anotheridd.idd") - 3 except Exception, e: - ----> 4 raise e - 5 - - - IDDAlreadySetError: IDD file is set to: ../eppy/resources/iddfiles/Energy+V7_2_0.idd - - -Excellent!! It raised the exception we were expecting. - -Check range for fields ----------------------- - -The fields of idf objects often have a range of legal values. The -following functions will let you discover what that range is and test if -your value lies within that range - -demonstrate two new functions: - -- EpBunch.getrange(fieldname) # will return the ranges for that field -- EpBunch.checkrange(fieldname) # will throw an exception if the value - is outside the range - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - - -.. code:: python - - # IDF.setiddname(iddfile)# idd ws set further up in this page - idf1 = IDF(fname1) - - -.. code:: python - - building = idf1.idfobjects['building'.upper()][0] - print building - - - -.. parsed-literal:: - - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - - -.. code:: python - - print building.getrange("Loads_Convergence_Tolerance_Value") - - - -.. parsed-literal:: - - {u'maximum<': None, u'minimum': None, u'type': u'real', u'maximum': 0.5, u'minimum>': 0.0} - - -.. code:: python - - print building.checkrange("Loads_Convergence_Tolerance_Value") - - - -.. parsed-literal:: - - 0.04 - - -Let us set these values outside the range and see what happens - -.. code:: python - - building.Loads_Convergence_Tolerance_Value = 0.6 - from eppy.bunch_subclass import RangeError - try: - print building.checkrange("Loads_Convergence_Tolerance_Value") - except RangeError, e: - raise e - - - -:: - - - --------------------------------------------------------------------------- - - RangeError Traceback (most recent call last) - - in () - 4 print building.checkrange("Loads_Convergence_Tolerance_Value") - 5 except RangeError, e: - ----> 6 raise e - 7 - - - RangeError: Value 0.6 is not less or equal to the 'maximum' of 0.5 - - -So the Range Check works - -Looping through all the fields in an idf object ------------------------------------------------ - -We have seen how to check the range of field in the idf object. What if -you want to do a *range check* on all the fields in an idf object ? To -do this we will need a list of all the fields in the idf object. We can -do this easily by the following line - -.. code:: python - - print building.fieldnames - - - -.. parsed-literal:: - - [u'key', u'Name', u'North_Axis', u'Terrain', u'Loads_Convergence_Tolerance_Value', u'Temperature_Convergence_Tolerance_Value', u'Solar_Distribution', u'Maximum_Number_of_Warmup_Days', u'Minimum_Number_of_Warmup_Days'] - - -So let us use this - -.. code:: python - - for fieldname in building.fieldnames: - print "%s = %s" % (fieldname, building[fieldname]) - - - -.. parsed-literal:: - - key = BUILDING - Name = Empire State Building - North_Axis = 30.0 - Terrain = City - Loads_Convergence_Tolerance_Value = 0.6 - Temperature_Convergence_Tolerance_Value = 0.4 - Solar_Distribution = FullExterior - Maximum_Number_of_Warmup_Days = 25 - Minimum_Number_of_Warmup_Days = 6 - - -Now let us test if the values are in the legal range. We know that -"Loads\_Convergence\_Tolerance\_Value" is out of range - -.. code:: python - - from eppy.bunch_subclass import RangeError - for fieldname in building.fieldnames: - try: - building.checkrange(fieldname) - print "%s = %s #-in range" % (fieldname, building[fieldname],) - except RangeError as e: - print "%s = %s #-****OUT OF RANGE****" % (fieldname, building[fieldname],) - - - -.. parsed-literal:: - - key = BUILDING #-in range - Name = Empire State Building #-in range - North_Axis = 30.0 #-in range - Terrain = City #-in range - Loads_Convergence_Tolerance_Value = 0.6 #-****OUT OF RANGE**** - Temperature_Convergence_Tolerance_Value = 0.4 #-in range - Solar_Distribution = FullExterior #-in range - Maximum_Number_of_Warmup_Days = 25 #-in range - Minimum_Number_of_Warmup_Days = 6 #-in range - - -You see, we caught the out of range value - -Blank idf file --------------- - -Until now in all our examples, we have been reading an idf file from -disk: - -- How do I create a blank new idf file -- give it a file name -- Save it to the disk - -Here are the steps to do that - -.. code:: python - - # some initial steps - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - # IDF.setiddname(iddfile) # Has already been set - - # - Let us first open a file from the disk - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - idf_fromfilename = IDF(fname1) # initialize the IDF object with the file name - - idf_fromfilename.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -.. code:: python - - # - now let us open a file from the disk differently - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - fhandle = open(fname1, 'r') # open the file for reading and assign it a file handle - idf_fromfilehandle = IDF(fhandle) # initialize the IDF object with the file handle - - idf_fromfilehandle.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -.. code:: python - - # So IDF object can be initialized with either a file name or a file handle - - # - How do I create a blank new idf file - idftxt = "" # empty string - from StringIO import StringIO - fhandle = StringIO(idftxt) # we can make a file handle of a string - idf_emptyfile = IDF(fhandle) # initialize the IDF object with the file handle - - idf_emptyfile.printidf() - - - -.. parsed-literal:: - - - - -It did not print anything. Why should it. It was empty. - -What if we give it a string that was not blank - -.. code:: python - - # - The string does not have to be blank - idftxt = "VERSION, 7.3;" # Not an emplty string. has just the version number - fhandle = StringIO(idftxt) # we can make a file handle of a string - idf_notemptyfile = IDF(fhandle) # initialize the IDF object with the file handle - - idf_notemptyfile.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - - -Aha ! - -Now let us give it a file name - -.. code:: python - - # - give it a file name - idf_notemptyfile.idfname = "notemptyfile.idf" - # - Save it to the disk - idf_notemptyfile.save() - - -Let us confirm that the file was saved to disk - -.. code:: python - - txt = open("notemptyfile.idf", 'r').read()# read the file from the disk - print txt - - - -.. parsed-literal:: - - !- Darwin Line endings - - VERSION, - 7.3; !- Version Identifier - - -Yup ! that file was saved. Let us delete it since we were just playing - -.. code:: python - - import os - os.remove("notemptyfile.idf") - - -Deleting, copying/adding and making new idfobjects --------------------------------------------------- - -Making a new idf object -~~~~~~~~~~~~~~~~~~~~~~~ - -Let us start with a blank idf file and make some new "MATERIAL" objects -in it - -.. code:: python - - # making a blank idf object - blankstr = "" - from StringIO import StringIO - idf = IDF(StringIO(blankstr)) - - -To make and add a new idfobject object, we use the function -IDF.newidfobject(). We want to make an object of type "MATERIAL" - -.. code:: python - - newobject = idf.newidfobject("material".upper()) # the key for the object type has to be in upper case - # .upper() makes it upper case - - -.. code:: python - - print newobject - - - -.. parsed-literal:: - - - MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Let us give this a name, say "Shiny new material object" - -.. code:: python - - newobject.Name = "Shiny new material object" - print newobject - - - -.. parsed-literal:: - - - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -.. code:: python - - anothermaterial = idf.newidfobject("material".upper()) - anothermaterial.Name = "Lousy material" - thirdmaterial = idf.newidfobject("material".upper()) - thirdmaterial.Name = "third material" - print thirdmaterial - - - -.. parsed-literal:: - - - MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Let us look at all the "MATERIAL" objects - -.. code:: python - - print idf.idfobjects["MATERIAL"] - - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -As we can see there are three MATERIAL idfobjects. They are: - -1. Shiny new material object -2. Lousy material -3. third material - -Deleting an idf object -~~~~~~~~~~~~~~~~~~~~~~ - -Let us remove 2. Lousy material. It is the second material in the list. -So let us remove the second material - -.. code:: python - - idf.popidfobject('MATERIAL', 1) # first material is '0', second is '1' - - - - - -.. parsed-literal:: - - - MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -.. code:: python - - print idf.idfobjects['MATERIAL'] - - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -You can see that the second material is gone ! Now let us remove the -first material, but do it using a different function - -.. code:: python - - firstmaterial = idf.idfobjects['MATERIAL'][-1] - - -.. code:: python - - idf.removeidfobject(firstmaterial) - - -.. code:: python - - print idf.idfobjects['MATERIAL'] - - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -So we have two ways of deleting an idf object: - -1. popidfobject -> give it the idf key: "MATERIAL", and the index number -2. removeidfobject -> give it the idf object to be deleted - -Copying/Adding an idf object -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Having deleted two "MATERIAL" objects, we have only one left. Let us -make a copy of this object and add it to our idf file - -.. code:: python - - onlymaterial = idf.idfobjects["MATERIAL"][0] - -.. code:: python - - idf.copyidfobject(onlymaterial) - -.. code:: python - - print idf.idfobjects["MATERIAL"] - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -So now we have a copy of the material. You can use this method to copy -idf objects from other idf files too. - -Making an idf object with named arguments ------------------------------------------ - -What if we wanted to make an idf object with values for it's fields? We -can do that too. - -.. code:: python - - gypboard = idf.newidfobject('MATERIAL', Name="G01a 19mm gypsum board", - Roughness="MediumSmooth", - Thickness=0.019, - Conductivity=0.16, - Density=800, - Specific_Heat=1090) - -.. code:: python - - print gypboard - - -.. parsed-literal:: - - - MATERIAL, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -newidfobject() also fills in the default values like "Thermal -Absorptance", "Solar Absorptance", etc. - -.. code:: python - - print idf.idfobjects["MATERIAL"] - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -Renaming an idf object ----------------------- - -It is easy to rename an idf object. If we want to rename the gypboard -object that we created above, we simply say: - - gypboard.Name = "a new name". - - -But this could create a problem. What if this gypboard is part of a -"CONSTRUCTION" object. The construction object will refer to the -gypboard by name. If we change the name of the gypboard, we should -change it in the construction object. - -But there may be many constructions objects using the gypboard. Now we -will have to change it in all those construction objects. Sounds -painfull. - -Let us try this with an example: - -.. code:: python - - interiorwall = idf.newidfobject("CONSTRUCTION", Name="Interior Wall", - Outside_Layer="G01a 19mm gypsum board", - Layer_2="Shiny new material object", - Layer_3="G01a 19mm gypsum board") - print interiorwall - - - -.. parsed-literal:: - - - CONSTRUCTION, - Interior Wall, !- Name - G01a 19mm gypsum board, !- Outside Layer - Shiny new material object, !- Layer 2 - G01a 19mm gypsum board; !- Layer 3 - - - -to rename gypboard and have that name change in all the places we call -modeleditor.rename(idf, key, oldname, newname) - -.. code:: python - - modeleditor.rename(idf, "MATERIAL", "G01a 19mm gypsum board", "peanut butter") - - - - -.. parsed-literal:: - - - MATERIAL, - peanut butter, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -.. code:: python - - print interiorwall - - -.. parsed-literal:: - - - CONSTRUCTION, - Interior Wall, !- Name - peanut butter, !- Outside Layer - Shiny new material object, !- Layer 2 - peanut butter; !- Layer 3 - - - -Now we have "peanut butter" everywhere. At least where we need it. Let -us look at the entir idf file, just to be sure - -.. code:: python - - idf.printidf() - - -.. parsed-literal:: - - - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - MATERIAL, - peanut butter, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - CONSTRUCTION, - Interior Wall, !- Name - peanut butter, !- Outside Layer - Shiny new material object, !- Layer 2 - peanut butter; !- Layer 3 - - - -Turn off default values -~~~~~~~~~~~~~~~~~~~~~~~ - -Can I turn off the defautl values. Yes you can: - -.. code:: python - - defaultmaterial = idf.newidfobject("MATERIAL", - Name='with default') - print defaultmaterial - nodefaultmaterial = idf.newidfobject("MATERIAL", - Name='Without default', - defaultvalues=False) - print nodefaultmaterial - - -.. parsed-literal:: - - - MATERIAL, - with default, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - MATERIAL, - Without default; !- Name - - - -- But why would you want to turn it off. -- Well .... sometimes you have to -- Try it with the object ``DAYLIGHTING:CONTROLS``, and you will see the - need for ``defaultvalues=False`` - -Of course, internally EnergyPlus will still use the default values it it -is left blank. If just won't turn up in the IDF file. - -Zone area and volume --------------------- - -The idf file has zones with surfaces and windows. It is easy to get the -attributes of the surfaces and windows as we have seen in the tutorial. -Let us review this once more: - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../eppy/resources/idffiles/V_7_2/box.idf" - # IDF.setiddname(iddfile) - -.. code:: python - - idf = IDF(fname1) - -.. code:: python - - surfaces = idf.idfobjects["BuildingSurface:Detailed".upper()] - surface = surfaces[0] - print "area = %s" % (surface.area, ) - print "tilt = %s" % (surface.tilt, ) - print "azimuth = %s" % (surface.azimuth, ) - - -.. parsed-literal:: - - area = 30.0 - tilt = 180.0 - azimuth = 0.0 - - -Can we do the same for zones ? - -Not yet .. not yet. Not in this version on eppy - -But we can still get the area and volume of the zone - -.. code:: python - - zones = idf.idfobjects["ZONE"] - zone = zones[0] - area = modeleditor.zonearea(idf, zone.Name) - volume = modeleditor.zonevolume(idf, zone.Name) - print "zone area = %s" % (area, ) - print "zone volume = %s" % (volume, ) - - -.. parsed-literal:: - - zone area = 30.0 - zone volume = 90.0 - - -Not as slick, but still pretty easy - -Some notes on the zone area calculation: - -- area is calculated by summing up all the areas of the floor surfaces -- if there are no floors, then the sum of ceilings and roof is taken as - zone area -- if there are no floors, ceilings or roof, we are out of luck. The - function returns 0 - -Using JSON to update idf ------------------------- - -we are going to update ``idf1`` using json. First let us print the -``idf1`` before changing it, so we can see what has changed once we make -an update - -.. code:: python - - idf1.printidf() - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -.. code:: python - - import eppy.json_functions as json_functions - json_str = {"idf.VERSION..Version_Identifier":8.5, - "idf.SIMULATIONCONTROL..Do_Zone_Sizing_Calculation": "No", - "idf.SIMULATIONCONTROL..Do_System_Sizing_Calculation": "No", - "idf.SIMULATIONCONTROL..Do_Plant_Sizing_Calculation": "No", - "idf.BUILDING.Empire State Building.North_Axis": 52, - "idf.BUILDING.Empire State Building.Terrain": "Rural", - } - json_functions.updateidf(idf1, json_str) - -.. code:: python - - idf1.printidf() - - -.. parsed-literal:: - - - VERSION, - 8.5; !- Version Identifier - - SIMULATIONCONTROL, - No, !- Do Zone Sizing Calculation - No, !- Do System Sizing Calculation - No, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -Compare the first printidf() and the second printidf(). - -The syntax of the json string is described below:: - - idf.BUILDING.Empire State Building.Terrain": "Rural" - - The key fields are seperated by dots. Let us walk through each field: - - idf -> make a change to the idf. (in the future there may be changes that are not related to idf) - BUILDING -> the key for object to be changed - Empire State Building -> The name of the object. In other word - the value of the field `Name` - Terrain -> the field to be changed - - "Rural" -> the new value of the field - - If the object does not have a `Name` field, you leave a blank between the two dots and the first object will be changed. - This is done for the version number change. - - "idf.VERSION..Version_Identifier":8.5 - -You can also create a new object using JSON, using the same syntax. Take -a look at this: - -.. code:: python - - json_str = {"idf.BUILDING.Taj.Terrain": "Rural",} - json_functions.updateidf(idf1, json_str) - idf1.idfobjects['building'.upper()] - # of course, you are creating an invalid E+ file. But we are just playing here. - - - - -.. parsed-literal:: - - [ - BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Taj, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - ] - - - -What if you object name had a dot ``.`` in it? Will the json\_function -get confused? - -If the name has a dot in it, there are two ways of doing this. - -.. code:: python - - # first way - json_str = {"idf.BUILDING.Taj.with.dot.Terrain": "Rural",} - json_functions.updateidf(idf1, json_str) - # second way (put the name in single quotes) - json_str = {"idf.BUILDING.'Another.Taj.with.dot'.Terrain": "Rural",} - json_functions.updateidf(idf1, json_str) - -.. code:: python - - idf1.idfobjects['building'.upper()] - - - - -.. parsed-literal:: - - [ - BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Taj, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Taj.with.dot, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Another.Taj.with.dot, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - ] - - - -**Note** When you us the json update function: - -- The json function expects the ``Name`` field to have a value. -- If you try to update an object with a blank ``Name`` field, the - results may be unexpected (undefined ? :-). So don't do this. -- If the object has no ``Name`` field (some don't), changes are made to - the first object in the list. Which should be fine, since usually - there is only one item in the list -- In any case, if the object does not exist, it is created with the - default values - -Use Case for JSON update -~~~~~~~~~~~~~~~~~~~~~~~~ - -If you have an eppy running on a remote server somewhere on the -internet, you can change an idf file by sending it a JSON over the -internet. This is very useful if you ever need it. If you don't need it, -you shouldn't care :-) - -Open a file quickly¶ --------------------- - -It is rather cumbersome to open an IDF file in eppy. From the tutorial, -the steps look like this: - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - IDF.setiddname(iddfile) - idf = IDF(fname) - -- You have to find the IDD file on your hard disk. -- Then set the IDD using setiddname(iddfile). -- Now you can open the IDF file - -Why can’t you just open the IDF file without jumping thru all those -hoops. Why do you have to find the IDD file. What is the point of having -a computer, if it does not do the grunt work for you. - -The function easyopen will do the grunt work for you. It will -automatically read the version number from the IDF file, locate the -correct IDD file and set it in eppy and then open your file. It works -like this: - -.. code:: python - - from eppy.easyopen import easyopen - - fname = './eppy/resources/idffiles/V8_8/smallfile.idf' - idf = easyopen(fname) - -For this to work, - -- the IDF file should have the VERSION object. You may not have this if - you are just working on a file snippet. -- you need to have the version of EnergyPlus installed that matches - your IDF version. -- Energyplus should be installed in the default location. - -If easyopen does not work, use the long winded steps shown in the -tutorial. That is guaranteed to work - -*Note:* easyopen() will also take a epw argument looking like:: - - idf = easyopen(fname, epw=path2weatherfile) - -If you pass the epw argument:: - - idf.run() - -will work. To know more about idf.run() see `here -<./runningeplus.html>`_. - -Other miscellaneous functions¶ ------------------------------- - -Fan power in Watts, BHP and fan cfm¶ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We normally think of fan power in terms of Brake Horsepower (BHP), -Watts. Also when working with IP units it is useful to think of fan flow -volume in terms of cubic feet per minute (cfm). - -Energyplus does not have fields for those values. With eppy we have -functions that will calculate the values - -- fan power in BHP -- fan power in Watts -- fan flow in CFM - -It will work for the following objects: - -- FAN:CONSTANTVOLUME -- FAN:VARIABLEVOLUME -- FAN:ONOFF -- FAN:ZONEEXHAUST -- FANPERFORMANCE:NIGHTVENTILATION - -The sample code would look like this: - -.. code:: python - - thefans = idf.idfobjects['Fan:VariableVolume'.upper()] - thefan = thefans[0] - bhp = thefan.fanpower_bhp - watts = thefan.fanpower_watts - cfm = thefan.fan_maxcfm - -*Note: This code was hacked together quickly. Needs peer review in -../eppy/fanpower.py* diff --git a/docs/_build/html/_sources/runningeplus.rst.txt b/docs/_build/html/_sources/runningeplus.rst.txt deleted file mode 100644 index 11475eb7..00000000 --- a/docs/_build/html/_sources/runningeplus.rst.txt +++ /dev/null @@ -1,181 +0,0 @@ - -Running EnergyPlus from Eppy -============================ - -It would be great if we could run EnergyPlus directly from our IDF -wouldn’t it? - -Well here’s how we can. - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - -.. code:: python - - from eppy.modeleditor import IDF - - iddfile = "/Applications/EnergyPlus-8-3-0/Energy+.idd" - IDF.setiddname(iddfile) - - -.. code:: python - - idfname = "/Applications/EnergyPlus-8-3-0/ExampleFiles/BasicsFiles/Exercise1A.idf" - epwfile = "/Applications/EnergyPlus-8-3-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw" - - idf = IDF(idfname, epwfile) - idf.run() - -if you are in a terminal, you will see something like this:: - - - Processing Data Dictionary - Processing Input File - Initializing Simulation - Reporting Surfaces - Beginning Primary Simulation - Initializing New Environment Parameters - Warming up {1} - Warming up {2} - Warming up {3} - Warming up {4} - Warming up {5} - Warming up {6} - Starting Simulation at 07/21 for CHICAGO_IL_USA COOLING .4% CONDITIONS DB=>MWB - Initializing New Environment Parameters - Warming up {1} - Warming up {2} - Warming up {3} - Warming up {4} - Warming up {5} - Warming up {6} - Starting Simulation at 01/21 for CHICAGO_IL_USA HEATING 99.6% CONDITIONS - Writing final SQL reports - EnergyPlus Run Time=00hr 00min 0.24sec - - -It’s as simple as that to run using the EnergyPlus defaults, but all the -EnergyPlus command line interface options are also supported. - -To get a description of the options available, as well as the defaults -you can call the Python built-in help function on the IDF.run method and -it will print a full description of the options to the console. - -.. code:: python - - help(idf.run) - - -.. parsed-literal:: - - Help on method run in module eppy.modeleditor: - - run(self, **kwargs) method of eppy.modeleditor.IDF instance - This method wraps the following method: - - run(idf=None, weather=None, output_directory=u'', annual=False, design_day=False, idd=None, epmacro=False, expandobjects=False, readvars=False, output_prefix=None, output_suffix=None, version=False, verbose=u'v', ep_version=None) - Wrapper around the EnergyPlus command line interface. - - Parameters - ---------- - idf : str - Full or relative path to the IDF file to be run, or an IDF object. - - weather : str - Full or relative path to the weather file. - - output_directory : str, optional - Full or relative path to an output directory (default: 'run_outputs) - - annual : bool, optional - If True then force annual simulation (default: False) - - design_day : bool, optional - Force design-day-only simulation (default: False) - - idd : str, optional - Input data dictionary (default: Energy+.idd in EnergyPlus directory) - - epmacro : str, optional - Run EPMacro prior to simulation (default: False). - - expandobjects : bool, optional - Run ExpandObjects prior to simulation (default: False) - - readvars : bool, optional - Run ReadVarsESO after simulation (default: False) - - output_prefix : str, optional - Prefix for output file names (default: eplus) - - output_suffix : str, optional - Suffix style for output file names (default: L) - L: Legacy (e.g., eplustbl.csv) - C: Capital (e.g., eplusTable.csv) - D: Dash (e.g., eplus-table.csv) - - version : bool, optional - Display version information (default: False) - - verbose: str - Set verbosity of runtime messages (default: v) - v: verbose - q: quiet - - ep_version: str - EnergyPlus version, used to find install directory. Required if run() is - called with an IDF file path rather than an IDF object. - - Returns - ------- - str : status - - Raises - ------ - CalledProcessError - - AttributeError - If no ep_version parameter is passed when calling with an IDF file path - rather than an IDF object. - - - -*Note 1:* idf.run() works for E+ version >= 8.3 -*Note 2:* idf.run(readvars=True) has been tested only for E+ version >= 8.9. It may work with earlier versions - - -Running in parallel processes ------------------------------ - -One of the great things about Eppy is that it allows you to set up a lot -of jobs really easily. However, it can be slow running a lot of -EnergyPlus simulations, so it’s pretty important that we can make the -most of the processing power you have available by running on multiple -CPUs. - -Again this is as simple as you’d hope it would be. - -You first need to create your jobs as a list of lists in the form:: - - - [[, ], ...] - -The example here just creates 4 identical jobs apart from the -output\_directory the results are saved in, but you would obviously want -to make each job different. - -Then run the jobs on the required number of CPUs using runIDFs... - -... and your results will all be in the output\_directory you specified. diff --git a/docs/_build/html/_sources/useful_scripts.rst.txt b/docs/_build/html/_sources/useful_scripts.rst.txt deleted file mode 100644 index b2894934..00000000 --- a/docs/_build/html/_sources/useful_scripts.rst.txt +++ /dev/null @@ -1,328 +0,0 @@ - -Useful Scripts -============== - -Location of the scripts ------------------------ - -Here are some scripts that you may find useful. They are in the folder -"./eppy/useful\_scripts" - -And now for some housekeeping before we start off - -.. code:: python - - import os - os.chdir("../eppy/useful_scripts") - # changes directory, so we are where the scripts are located - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, the following three lines are needed - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../' - sys.path.append(pathnameto_eppy) - - -If you look in the folder "./eppy/useful\_scripts", you fill find the -following scripts - -The scripts are: - -:: - - - eppy_version.py - - idfdiff.py - - loopdiagram.py - - eppyreadtest_folder.py - - eppyreadtest_file.py - - -eppy\_version.py ----------------- - -Many scripts will print out some help information, if you use the --help -option. Let us try that - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python eppy_version.py --help - - -.. parsed-literal:: - - usage: eppy_version.py [-h] - - I print the current version of eppy. Being polite, I also say hello ! - - optional arguments: - -h, --help show this help message and exit - - -That was useful ! - -Now let us try running the program - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python eppy_version.py - - -.. parsed-literal:: - - Hello! I am eppy version 0.4.6.4a - - -Redirecting output to a file ----------------------------- - -Most scripts will print the output to a terminal. Sometimes we want to -send the output to a file, so that we can save it for posterity. We can -do that py using ">" with the filename after that. For eppy\_version.py, -it will look like this: - -python eppy_version.py > save_output.txt - -Some of the following scripts will generate csv or html outputs. We can -direct the output to a file with .html extension and open it in a -browser - -Compare two idf files - idfdiff.py ----------------------------------- - -This script will compare two idf files. The results will be displayed -printed in "csv" format or in "html" format. - -You would run the script from the command line. This would be the -terminal on Mac or unix, and the dos prompt on windows. Let us look at -the help for this script, by typing: - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python idfdiff.py -h - - -.. parsed-literal:: - - usage: idfdiff.py [-h] (--csv | --html) idd file1 file2 - - Do a diff between two idf files. Prints the diff in csv or html file format. - You can redirect the output to a file and open the file using as a spreadsheet - or by using a browser - - positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file1 location of first with idf files = ./somewhere/f1.idf - file2 location of second with idf files = ./somewhere/f2.idf - - optional arguments: - -h, --help show this help message and exit - --csv - --html - - -Now let us try this with two "idf" files that are slightly different. If -we open them in a file comparing software, it would look like this: - -.. code:: python - - from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below - for_images = doc_images - for_images.display_png(for_images.filemerge) # display the image below - - - -.. image:: useful_scripts_files/useful_scripts_21_0.png - - -There are 4 differences between the files. Let us see what idfdiff.py -does with the two files. We will use the --html option to print out the -diff in html format. - -.. code:: python - - %%bash - # python idfdiff.py idd file1 file2 - python idfdiff.py --html ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf - - -.. parsed-literal:: - -

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfaceis herenot here
MATERIALF08 Metal surface hahanot hereis here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
- - -reprinting the output again for clarity: - -

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfacenot hereis here
MATERIALF08 Metal surface hahais herenot here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
- - -It does look like html :-). We need to redirect this output to a file -and then open the file in a browser to see what it looks like. Displayed -below is the html file - -.. code:: python - - from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below - from IPython.display import HTML - h = HTML(open(doc_images.idfdiff_path, 'r').read()) - h - - - - -.. raw:: html - -

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
- - - - -Pretty straight forward. Scroll up and look at the origin text files, -and see how idfdiff.py understands the difference - -Now let us try the same thin in csv format - -.. code:: python - - %%bash - # python idfdiff.py idd file1 file2 - python idfdiff.py --csv ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf - - -.. parsed-literal:: - - file1 = ../resources/idffiles/V_7_2/constr.idf - file2 = ../resources/idffiles/V_7_2/constr_diff.idf - - Object Key, Object Name, Field Name, file1, file2 - CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8 - CONSTRUCTION,GARAGE-SLAB-1,,is here,not here - CONSTRUCTION,SB-E,,is here,not here - CONSTRUCTION,SB-U,,not here,is here - OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV - - -We see the same output, but now in csv format. You can redirect it to a -".csv" file and open it up as a spreadsheet - -loopdiagram.py --------------- - -Diagrams of HVAC loops -~~~~~~~~~~~~~~~~~~~~~~ - -This script will draw all the loops in an idf file. It is a bit of a -hack. So it will work on most files, but sometimes it will not :-(. But -it is pretty useful when it works. - -If it does not work, send us the idf file and we'll try to fix the code - -Make sure `grapphviz `__ -is installed for this script to work - -Again, we'll have to run the script from the terminal. Let us look at -the help for this script - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python loopdiagram.py --help - - -.. parsed-literal:: - - usage: loopdiagram.py [-h] idd file - - draw all the loops in the idf file - There are two output files saved in the same location as the idf file: - - idf_file_location/idf_filename.dot - - idf_file_location/idf_filename.png - - positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file location of idf file = ./somewhere/f1.idf - - optional arguments: - -h, --help show this help message and exit - - -Pretty straightforward. Simply open png file and you will see the loop -diagram. (ignore the dot file for now. it will be documented later) - -So let us try this out with and simple example file. We have a very -simple plant loop in "../resources/idffiles/V\_7\_2/plantloop.idf" - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python loopdiagram.py ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/plantloop.idf - - -.. parsed-literal:: - - constructing the loops - cleaning edges - making the diagram - saved file: ../resources/idffiles/V_7_2/plantloop.dot - saved file: ../resources/idffiles/V_7_2/plantloop.png - - -The script prints out it's progress. On larger files, this might take a -few seconds. If we open this file, it will look like the diagram below - -*Note: the supply and demnd sides are not connected in the diagram, but -shown seperately for clarity* - -.. code:: python - - from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below - for_images = doc_images - for_images.display_png(for_images.plantloop) # display the image below - - - -.. image:: useful_scripts_files/useful_scripts_38_0.png - - -That diagram is not a real system. Does this script really work ? - -Try it yourself. Draw the daigram for -"../resources/idffiles/V\_7\_2/5ZoneCAVtoVAVWarmestTempFlow.idf" - -Names in loopdiagrams -~~~~~~~~~~~~~~~~~~~~~ - -- `Designbuilder `__ is an energyplus - editor autogenerates object names like "MyHouse:SAPZone1" -- Note the ":" in the name. -- Unfortunatley ":" is a reserved character when making a loop - diagrams. (eppy uses pydot and grapphviz which has this constraint) -- to work around this, loopdiagram will replace all ":" with a "\_\_" -- So the names in the diagram will not match the names in your file, - but you can make out what is going on - -eppyreadtest\_folder.py ------------------------ - -Not yet documented - -eppyreadtest\_file.py ---------------------- - -Not yet documented diff --git a/docs/_build/html/_static/ajax-loader.gif b/docs/_build/html/_static/ajax-loader.gif deleted file mode 100644 index 61faf8ca..00000000 Binary files a/docs/_build/html/_static/ajax-loader.gif and /dev/null differ diff --git a/docs/_build/html/_static/alabaster.css b/docs/_build/html/_static/alabaster.css deleted file mode 100644 index 25e77387..00000000 --- a/docs/_build/html/_static/alabaster.css +++ /dev/null @@ -1,688 +0,0 @@ -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: Georgia, serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} \ No newline at end of file diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css deleted file mode 100644 index 19ced105..00000000 --- a/docs/_build/html/_static/basic.css +++ /dev/null @@ -1,665 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 450px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -dl { - margin-bottom: 15px; -} - -dd p { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -div.code-block-caption { - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: relative; - left: 0px; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/_build/html/_static/comment-bright.png b/docs/_build/html/_static/comment-bright.png deleted file mode 100644 index 15e27edb..00000000 Binary files a/docs/_build/html/_static/comment-bright.png and /dev/null differ diff --git a/docs/_build/html/_static/comment-close.png b/docs/_build/html/_static/comment-close.png deleted file mode 100644 index 4d91bcf5..00000000 Binary files a/docs/_build/html/_static/comment-close.png and /dev/null differ diff --git a/docs/_build/html/_static/comment.png b/docs/_build/html/_static/comment.png deleted file mode 100644 index dfbc0cbd..00000000 Binary files a/docs/_build/html/_static/comment.png and /dev/null differ diff --git a/docs/_build/html/_static/custom.css b/docs/_build/html/_static/custom.css deleted file mode 100644 index 2a924f1d..00000000 --- a/docs/_build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js deleted file mode 100644 index 0c15c009..00000000 --- a/docs/_build/html/_static/doctools.js +++ /dev/null @@ -1,311 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var bbox = span.getBBox(); - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - var parentOfText = node.parentNode.parentNode; - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keyup(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - } - } - }); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); \ No newline at end of file diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js deleted file mode 100644 index 707d6f0e..00000000 --- a/docs/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,9 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: '', - VERSION: '0.5.46', - LANGUAGE: 'None', - COLLAPSE_INDEX: false, - FILE_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' -}; \ No newline at end of file diff --git a/docs/_build/html/_static/down-pressed.png b/docs/_build/html/_static/down-pressed.png deleted file mode 100644 index 5756c8ca..00000000 Binary files a/docs/_build/html/_static/down-pressed.png and /dev/null differ diff --git a/docs/_build/html/_static/down.png b/docs/_build/html/_static/down.png deleted file mode 100644 index 1b3bdad2..00000000 Binary files a/docs/_build/html/_static/down.png and /dev/null differ diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png deleted file mode 100644 index a858a410..00000000 Binary files a/docs/_build/html/_static/file.png and /dev/null differ diff --git a/docs/_build/html/_static/jquery-3.2.1.js b/docs/_build/html/_static/jquery-3.2.1.js deleted file mode 100644 index d2d8ca47..00000000 --- a/docs/_build/html/_static/jquery-3.2.1.js +++ /dev/null @@ -1,10253 +0,0 @@ -/*! - * jQuery JavaScript Library v3.2.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2017-03-20T18:59Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - - - - function DOMEval( code, doc ) { - doc = doc || document; - - var script = doc.createElement( "script" ); - - script.text = code; - doc.head.appendChild( script ).parentNode.removeChild( script ); - } -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.2.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); - }, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.3 - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2016-08-08 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Simple selector that can be filtered directly, removing non-Elements - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - // Complex selector, compare the two sets, removing non-Elements - qualifier = jQuery.filter( qualifier, elements ); - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; - } ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( jQuery.isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( jQuery.isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ jQuery.camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ jQuery.camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( jQuery.camelCase ); - } else { - key = jQuery.camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - jQuery.contains( elem.ownerDocument, elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, - scale = 1, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - do { - - // If previous iteration zeroed out, double until we get *something*. - // Use string for doubling so we don't accidentally see scale as unchanged below - scale = scale || ".5"; - - // Adjust and apply - initialInUnit = initialInUnit / scale; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Update scale, tolerating zero or NaN from tween.cur() - // Break the loop if scale is unchanged or perfect, or if we've just had enough. - } while ( - scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations - ); - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); - -var rscriptType = ( /^$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE <=9 only - option: [ 1, "" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); -var documentElement = document.documentElement; - - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 only -// See #13393 for more info -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: jQuery.isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - - // Support: IE <=10 - 11, Edge 12 - 13 - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( ">tbody", elem )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rmargin = ( /^margin/ ); - -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - div.style.cssText = - "box-sizing:border-box;" + - "position:relative;display:block;" + - "margin:auto;border:1px;padding:1px;" + - "top:1%;width:50%"; - div.innerHTML = ""; - documentElement.appendChild( container ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = divStyle.marginLeft === "2px"; - boxSizingReliableVal = divStyle.width === "4px"; - - // Support: Android 4.0 - 4.3 only - // Some styles come back with percentage values, even though they shouldn't - div.style.marginRight = "50%"; - pixelMarginRightVal = divStyle.marginRight === "4px"; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + - "padding:0;margin-top:1px;position:absolute"; - container.appendChild( div ); - - jQuery.extend( support, { - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelMarginRight: function() { - computeStyleTests(); - return pixelMarginRightVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }, - - cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style; - -// Return a css property mapped to a potentially vendor prefixed property -function vendorPropName( name ) { - - // Shortcut for names that are not vendor prefixed - if ( name in emptyStyle ) { - return name; - } - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a property mapped along what jQuery.cssProps suggests or to -// a vendor prefixed property. -function finalPropName( name ) { - var ret = jQuery.cssProps[ name ]; - if ( !ret ) { - ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; - } - return ret; -} - -function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i, - val = 0; - - // If we already have the right measurement, avoid augmentation - if ( extra === ( isBorderBox ? "border" : "content" ) ) { - i = 4; - - // Otherwise initialize for horizontal or vertical properties - } else { - i = name === "width" ? 1 : 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // At this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - - // At this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // At this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; -} - -function getWidthOrHeight( elem, name, extra ) { - - // Start with computed style - var valueIsBorderBox, - styles = getStyles( elem ), - val = curCSS( elem, name, styles ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test( val ) ) { - return val; - } - - // Check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && - ( support.boxSizingReliable() || val === elem.style[ name ] ); - - // Fall back to offsetWidth/Height when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - if ( val === "auto" ) { - val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; - } - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - - // Use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - "float": "cssFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - if ( type === "number" ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = jQuery.camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( i, name ) { - jQuery.cssHooks[ name ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, name, extra ); - } ) : - getWidthOrHeight( elem, name, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = extra && getStyles( elem ), - subtract = extra && augmentWidthOrHeight( - elem, - name, - extra, - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - styles - ); - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ name ] = value; - value = jQuery.css( elem, name ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( !rmargin.test( prefix ) ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && - ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || - jQuery.cssHooks[ tween.prop ] ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = jQuery.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 13 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = jQuery.camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( jQuery.isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - jQuery.proxy( result.stop, result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( jQuery.isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( jQuery.isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( jQuery.isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = jQuery.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( jQuery.isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; - - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( jQuery.isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; - - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value; - - if ( typeof stateVal === "boolean" && type === "string" ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( jQuery.isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( type === "string" ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = value.match( rnothtmlwhite ) || []; - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, isFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; -} ); - -jQuery.fn.extend( { - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - - - - -support.focusin = "onfocusin" in window; - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = jQuery.now(); - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && jQuery.type( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = jQuery.isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( jQuery.isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match == null ? null : match; - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 13 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available, append data to url - if ( s.data ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( jQuery.isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - - -jQuery._evalUrl = function( url ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - "throws": true - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( jQuery.isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Changes

-
-

next release

-
-
-

2018-07-06

- -
-

2018-04-23

-
    -
  • idf.newidfobject() has a parameter defaultvlaues=True or False. This can be toggled to set or not set the default values in the IDF file
  • -
-
-
-

2018-03-24

-
    -
  • fixed a bug, where some idfobject fields stayed as strings even though they were supposed to be numbers
  • -
-
-
-

2018-03-21

-
    -
  • new function easyopen(idffile) will automatically set the IDD file and open the IDF file. This has been documented in ./docs/source/newfunctions.rst
  • -
-
-
-

2017-12-11

-
    -
  • Added documentation in the installation section on how to run eppy in grasshopper
  • -
  • added functions to get fan power in watts, bhp and fan flow in cfm for any fan object. This has been documented in ./docs/source/newfunctions.rst
  • -
-
-
-
-

release r0.5.46

-
-

2017-12-10

- -
-
-
-

release r0.5.45

-
-

2017-10-01

-
    -
  • fixed a bug in the setup.py (It was not installing some required folders)
  • -
  • updated documentation to include how to run Energyplus from eppy
  • -
  • -
    format of the table file was changed in E+ 8.7.
    -
      -
    • readhtml is updated to be able to read the new format (it still reads the older versions)
    • -
    -
    -
    -
  • -
-
-
-
-

release r0.5.44

-
-

2017-05-23

-
    -
  • -
    IDF.run() works with E+ version >= 8.3
    -
      -
    • This will run the idf file
    • -
    • documentation updated to reflect this
    • -
    -
    -
    -
  • -
  • -
    Some changes made to support eppy working on grasshopper
    -
      -
    • more work needs to be done on this
    • -
    -
    -
    -
  • -
-
-
-
-

release r0.5.43

-
-

2017-02-09

-

fixed the bug in the setup file

-
-
-
-

release r0.5.42

-
-
-

2016-12-31

-

bugfix for idfobjects with no fieldnames. Such fields are named A!, A2, A3/ N1, N2, N3 taken from the IDD file

-

There is a bug in the setup.py in this version

-
-

2016-11-02

-

It is now possible to run E+ from eppy

-
-
-
-

release r0.5.41

-
-

2016-09-14

-

bugfix in loopdiagram.py. Some cleanup by removing extra copies of loopdiagram.py

-
-
-
-

release r0.5.40

-
-

2016-09-06

-

This is a release for python2 and python3. pip install will automatically install the correct version.

-
-
-
-

release r0.5.31

-
-

2016-09-04

-

bugfix so that json_functions can have idf objects with names that have dots in them

-
-
-
-

release r0.5.3

-
-

2016-07-21

-

tab completion of fileds (of idfobjects) works in ipython and ipython notebook

-
-
-

2016-07-09

-

added:

-
    -
  • construction.rfactor and material.rfactor
  • -
  • construction.uvalue and material.uvalue
  • -
  • construction.heatcapacity and material.heatcapacity
  • -
  • the above functions do not work in all cases yet. But are still usefull
  • -
-

added:

-
    -
  • zone.zonesurfaces -> return all surfaces of the zone
  • -
  • surface.subsurfaces -> will return all the subsurfaces (windows, doors etc.) that belong to the surface
  • -
-

added two functions that scan through the entire idf file:

-
    -
  • EpBunch.getreferingobjs(args)
  • -
  • EpBunch.get_referenced_object(args)
  • -
  • they make it possible for an idf object to scan through it’s idf file and find other idf objects that are related to it (thru object-list and reference)
  • -
-
-
-

2016-05-31

-

refactored code for class IDF and class EpBunch -fixed a bug in modeleditor.newidfobject

-
-
-
-

release r0.5.2

-
-

2016-05-27

-

added ability to update idf files thru JSON messages.

-
-
-

2016-04-02

-

Replaced library bunch with munch

-
-
-
-

release r0.5.1

-
-

2016-02-07

-
    -
  • bug fix -> read files that have mixed line endings. Both DOS and Unix line endings
  • -
-
-
-
-

release r0.5

-
-

2015-07-12

-
    -
  • python3 version of eppy is in ./p3/eppy
  • -
  • eppy license has transitioned from GPLv3 to MIT license
  • -
  • made some bugfixes to hvacbuilder.py
  • -
-
-
-

2015-05-30

-
    -
  • bugfix in ./eppy/Air:useful_scripts/idfdiff.py
  • -
  • -
    added in ./eppy/Air:useful_scripts/idfdiff_missing.py
    -
      -
    • this displays only the missing objects in either file
    • -
    -
    -
    -
  • -
-
-
-

2015-05-27

-
    -
  • -
    idf.saveas(newname) changes the idf.idfname to newname
    -
      -
    • so the next idf.save() will save to newname
    • -
    -
    -
    -
  • -
  • to retain the original idf.idfname use idf.savecopy(copyname)
  • -
-
-
-

2015-05-26

-

updated the following: -- idf.save(lineendings=’default’) -- idf.saveas(fname, lineendings=’default’)

-
    -
  • -
    optional argument lineendings
    -
      -
    • if lineendings=’default’, uses the line endings of the platform
    • -
    • if lineendings=’windows’, forces windows line endings
    • -
    • if lineendings=’unix’, forces unix line endings
    • -
    -
    -
    -
  • -
-
-
-
-

release r0.464a

-
-

2015-01-13

-

r0.464a released on 2015-01-13. This in alpha release of this version. There may be minor updates after review from users.

-
-
-

2015-01-06

-
    -
  • Developer documentation has been completed
  • -
  • Added a stubs folder with scripts that can be used as templates
  • -
-
-
-

2014-10-21

-
    -
  • fixed a bug in script eppy/useful_scripts/loopdiagram.py
  • -
-
-
-

2014-09-01

-
    -
  • added a script eppy/useful_scripts/loopdiagram.py:

    -
    python loopdiagram.py --help
    -
    -usage: loopdiagram.py [-h] idd file
    -
    -draw all the  loops in the idf file
    -There are two output files saved in the same location as the idf file:
    -- idf_file_location/idf_filename.dot
    -- idf_file_location/idf_filename.png
    -
    -positional arguments:
    -  idd         location of idd file = ./somewhere/eplusv8-0-1.idd
    -  file        location of idf file = ./somewhere/f1.idf
    -
    -optional arguments:
    -  -h, --help  show this help message and exit
    -
    -
    -
  • -
  • fixed a bug in hvacbuilder.makeplantloop and hvacbuilder.makecondenserloop

    -
  • -
-
-
-
-

release r0.463

-
-

2014-08-21

-
    -
  • added eppy/useful_scripts/eppy_version.py
  • -
  • updated documentation to match
  • -
-
-
-
-

release r0.462

-
-

2014-08-19

-
    -
  • -
    added a script that can compare two idf files. It is documented in “Useful Scripts”. The script is in
    -
      -
    • eppy/usefull_scripts/idfdiff.py
    • -
    -
    -
    -
  • -
  • -
    added two scripts that test if eppy works when new versions of energyplus are released. Documentation for this is not yet done. The scripts are
    -
      -
    • eppy/usefull_scripts/eppyreadtest_file.py
    • -
    • eppy/usefull_scripts/eppyreadtest_folder.py
    • -
    -
    -
    -
  • -
  • fixed a bug where eppy would not read backslashes in a path name. Some idf objects have fields that are path names. On dos/windows machines these path names have backslashes
  • -
-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/classes_eppy.html b/docs/_build/html/dev_docs/classes_eppy.html deleted file mode 100644 index be98b7c6..00000000 --- a/docs/_build/html/dev_docs/classes_eppy.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - classes eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

classes eppy

-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/data_eppy.html b/docs/_build/html/dev_docs/data_eppy.html deleted file mode 100644 index 4f93aaaa..00000000 --- a/docs/_build/html/dev_docs/data_eppy.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - - - Underlying Data Structure of eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Underlying Data Structure of eppy

-

As described in previous sections, eppy was built on EplusInterface

-

Let us open a small idf file to explore the data structure

-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../../../'
-sys.path.append(pathnameto_eppy)
-
-
-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname1 = "../../../eppy/resources/idffiles/V_7_2/dev1.idf"
-
-IDF.setiddname(iddfile)
-idf1 = IDF(fname1)
-idf1.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-MATERIAL:AIRGAP,
-    F04 Wall air space resistance,    !- Name
-    0.15;                     !- Thermal Resistance
-
-MATERIAL:AIRGAP,
-    F05 Ceiling air space resistance,    !- Name
-    0.18;                     !- Thermal Resistance
-
-
-
-

Original Data Structure in EPlusInterface

-

The original data structure in EPlusInterface was stupidly simple and -robust. In fact attributes stupidly simple and robust seem to go -together. Eppy evolved in such a way that this data structure is still -retained. The rest of eppy is simply syntactic -sugar for this data -structure.

-

from: -https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic_sugar.html -“Syntactic sugar is a computer science term that refers to syntax -within a programming language that is designed to make things easier to -read or to express, while alternative ways of expressing them exist. -Syntactic sugar”

-

Let us take a look at this data structure. If we open an idf file with -eppy we can explore the original data structure that comes from -EPlusInterface.

-

Note The variable names are not very intuitive at this level. I did -not know what I was doing when I wrote this code and now we are stuck -with it

-

There are three varaibles that hold all the data we need. They are:

-
    -
  • idf1.model.dtls
  • -
  • idf1.model.dt
  • -
  • idf1.idd_info
  • -
-
dtls = idf1.model.dtls # names of all the idf objects
-dt = idf1.model.dt # the idf model
-idd_info = idf1.idd_info # all the idd data
-
-
-
-

idf1.model.dtls - Overview

-
dtls = idf1.model.dtls # names of all the idf objects
-print type(dtls)
-
-
-
<type 'list'>
-
-
-
# dtls is a list
-print dtls[:10] # print the first ten items
-
-
-
['LEAD INPUT', 'SIMULATION DATA', 'VERSION', 'SIMULATIONCONTROL', 'BUILDING', 'SHADOWCALCULATION', 'SURFACECONVECTIONALGORITHM:INSIDE', 'SURFACECONVECTIONALGORITHM:OUTSIDE', 'HEATBALANCEALGORITHM', 'HEATBALANCESETTINGS:CONDUCTIONFINITEDIFFERENCE']
-
-
-
print len(dtls) # print the numer of items in the list
-
-
-
683
-
-
-

Couple of points to note about dtls:

-
    -
  • dtls is a list of all the names of the Energyplus objects.
  • -
  • This list is extracted from the the idd file
  • -
  • the list is in the same order as the objects in the idd file
  • -
-
-
-

idf1.model.dt - Overview

-
dt = idf1.model.dt # the idf model
-print type(dt)
-
-
-
<type 'dict'>
-
-
-
# print 10 of the keys
-print dt.keys()[:10]
-
-
-
['ZONEHVAC:OUTDOORAIRUNIT', 'TABLE:TWOINDEPENDENTVARIABLES', 'ENERGYMANAGEMENTSYSTEM:INTERNALVARIABLE', 'AVAILABILITYMANAGER:NIGHTCYCLE', 'GROUNDHEATTRANSFER:SLAB:BLDGPROPS', 'GENERATOR:MICROTURBINE', 'SHADING:BUILDING:DETAILED', 'EVAPORATIVECOOLER:INDIRECT:RESEARCHSPECIAL', 'ZONEHVAC:PACKAGEDTERMINALAIRCONDITIONER', 'CONSTRUCTION:WINDOWDATAFILE']
-
-
-
# dt is a dict
-number_of_keys = len(dt.keys())
-print number_of_keys
-
-
-
683
-
-
-
    -
  • The keys of dt are names of the objects (note that they are in -capitals)
  • -
  • Items in a python dict are unordered. So the keys may be in any order
  • -
  • dtls will give us these names in the same order as they are in -the idd file.
  • -
  • so use dtls if you want the keys in an order
  • -
-

We’ll look at dt in further detail later

-
-
-

idf1.idd_info - Overview

-
idd_info = idf1.idd_info # all the idd data
-print type(idd_info)
-
-
-
<type 'list'>
-
-
-
print len(idd_info) # number of items in the list
-
-
-
683
-
-
-
# print the first three items
-idd_info[:3]
-
-
-
[[{}],
- [{}],
- [{'format': ['singleLine'], 'unique-object': ['']},
-  {'default': ['7.0'],
-   'field': ['Version Identifier'],
-   'required-field': ['']}]]
-
-
-
# print the first three items in seperate lines
-for i, item in enumerate(idd_info[:3]):
-    print "%s. %s" % (i, item)
-
-
-
0. [{}]
-1. [{}]
-2. [{'unique-object': [''], 'format': ['singleLine']}, {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}]
-
-
-

That does not make much sense. Below is the first 3 items from the idd -file

-
Lead Input;
-
-Simulation Data;
-
-\group Simulation Parameters
-
-Version,
-      \unique-object
-      \format singleLine
-  A1 ; \field Version Identifier
-      \required-field
-      \default 7.0
-
-
-
    -
  • If you compare the text file with the sturcture of idd_info, you can -start to see the similarities
  • -
  • Note that the idd_info does not have the object name.
  • -
  • This was an unfortunate design decision that we are stuck with now -:-(.
  • -
  • We need to jump through some hoops to get to an item in idd_info
  • -
-
# the object "VERSION" is the third item in idd_info
-# to get to "VERSION" we need to find it's location in the list
-# we use "dtls" to do this
-location_of_version = dtls.index("version".upper())
-print location_of_version
-
-
-
2
-
-
-
# print idd_info of "VERSION"
-idd_info[location_of_version]
-
-
-
[{'format': ['singleLine'], 'unique-object': ['']},
- {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}]
-
-
-

NOTE:

-
    -
  • the idd file is very large and uses a lot of memory when pulled into -idd_info
  • -
  • only one copy of idd_info is kept when eppy is running.
  • -
  • This is the reason, eppy throws an exception when you try to set the -idd file when it has already been set
  • -
-
-
-

idf1.model.dt - in detail

-

Let us look at a specific object, say MATERIAL:AIRGAP in -idf1.model.dt

-
dt = idf1.model.dt
-
-
-
airgaps = dt['MATERIAL:AIRGAP'.upper()]
-print type(airgaps)
-
-
-
<type 'list'>
-
-
-
airgaps
-
-
-
[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15],
- ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]]
-
-
-

A snippet of the idf text file shows this

-
MATERIAL:AIRGAP,
-    F04 Wall air space resistance,    !- Name
-    0.15;                     !- Thermal Resistance
-
-MATERIAL:AIRGAP,
-    F05 Ceiling air space resistance,    !- Name
-    0.18;                     !- Thermal Resistance
-
-
-

Notice the following things about idf1.model.dt:

-
    -
  • The idf model is held within a dict.
  • -
  • the keys in the dict are names of the IDF objects in caps, such as -BUILDING, VERSION, CONSTRUCTION, MATERIAL:AIRGAP etc.
  • -
  • The values in the dict are lists
  • -
  • the list contains lists. This means that airgaps can contain more -than one airgap.
  • -
  • So airgaps = [airgap1, airgap2, … ].
  • -
  • where, airgaps1 = [Type_of_Object, field1, field2, field3, …. ]
  • -
  • In airgaps1, all types have been converted. Note that “Thermal -Resistance” is a float and not a string
  • -
-

What about an Energyplus object that does not exist in the idf file ?

-
roofs = dt['ROOF']
-print roofs
-
-
-
[]
-
-
-

You get an empty list, meaning there are no roof items within roofs

-
-
-

idf1.idd_info - in detail

-

Let us find the idd_info for airgaps

-
location_of_airgaps = dtls.index("material:airgap".upper())
-print location_of_airgaps
-
-
-
50
-
-
-
idd_airgaps = idd_info[location_of_airgaps]
-idd_airgaps
-
-
-
[{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']},
- {'field': ['Name'],
-  'reference': ['MaterialName'],
-  'required-field': [''],
-  'type': ['alpha']},
- {'field': ['Thermal Resistance'],
-  'minimum>': ['0'],
-  'type': ['real'],
-  'units': ['m2-K/W']}]
-
-
-

Compare to text in idd file:

-
Material:AirGap,
-       \min-fields 2
-       \memo Air Space in Opaque Construction
-  A1 , \field Name
-       \required-field
-       \type alpha
-       \reference MaterialName
-  N1 ; \field Thermal Resistance
-       \units m2-K/W
-       \type real
-       \minimum> 0
-
-
-
    -
  • idd_airgaps gives details about each field
  • -
  • the last field N1 says that type = real
  • -
  • This tells us that the text value coming from the the test file has -to be converted to a float
  • -
-
-
-
-

Syntactic Sugar

-

from: -https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic_sugar.html -“Syntactic sugar is a computer science term that refers to syntax -within a programming language that is designed to make things easier to -read or to express, while alternative ways of expressing them exist”

-

Wikipedia article on syntactic -sugar

-

All the rest of the code in eppy is simply syntactic sugar over the -data structure in model.dtls, model.dt and idd_info

-

Of course, the above statement is a gross exageration, but it gives you -a basis for understanding the code that comes later. At the end of the -day, any further code is simply a means for changing the data within -model.dt. And you need to access the data within model.dtls and -idd_info to do so.

-
-

Bunch

-

Bunch is a great library that subclasses dict. You can see it at:

- -

Let us first take a look at a dict

-
adict = {'a':1, 'b':2, 'c':3}
-adict
-
-
-
{'a': 1, 'b': 2, 'c': 3}
-
-
-
# one would access the values in this dict by:
-print adict
-print adict['a']
-print adict['b']
-print adict['c']
-
-
-
{'a': 1, 'c': 3, 'b': 2}
-1
-2
-3
-
-
-

Bunch allows us to do this with a lot less typing

-
from bunch import Bunch
-bunchdict = Bunch(adict)
-print bunchdict
-print bunchdict.a
-print bunchdict.b
-print bunchdict.c
-
-
-
Bunch(a=1, b=2, c=3)
-1
-2
-3
-
-
-

Let us take a look at variable airgaps from the previous section.

-
airgaps
-
-
-
[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15],
- ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]]
-
-
-
airgap1, airgap2 = airgaps[0], airgaps[1]
-
-
-
airgap1
-
-
-
['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]
-
-
-

We are going to subclass bunch so that we can do the following to -airgap1 from the previous section:

-
    -
  • airgap1.Name
  • -
  • airgap1.Thermal_Resistance
  • -
-

to remind you, the text file we are reading looks like this:

-
MATERIAL:AIRGAP,
-    F04 Wall air space resistance,    !- Name
-    0.15;                             !- Thermal Resistance
-
-
-
    -
  • We are using the field names that come from the idd file
  • -
  • A space and other illegal (illegal for python) characters are -replaced by an underscore
  • -
-

It is a little tricky tring to use bunch with airgap, because:

-
    -
  • airgap is a list
  • -
  • but bunch works on dicts
  • -
-

So we do it in the following way:

-
    -
  • we make a new Bunch from the airgap list.
  • -
  • The Bunch is made by by doing airgap1 = Bunch( {“Name” : “F04 Wall -air space resistance”, “Thermal_Resistance” : 0.15} )
  • -
  • This will allow us to use the dot notation we see in bunch
  • -
  • Of course if we make changes in this Bunch, the airgap list does -not change
  • -
  • Ideally we would like to see the changes reflected in the airgap -list
  • -
  • We subclass Bunch as EpBunch. EpBunch is designed so that changes in -EpBunch will make changes to the airgap list
  • -
-

Note: Some simplifications were made in the explanations above. So -take it with a pinch of salt :-)

-
-
-

EpBunch

-

The code of EpBunch is in eppy/bunch_subclass.py. If you look at the -code you will see The subclassing happening in the following manner:

-
    -
  • Bunch -> EpBunch1 -> EpBunch2 -> ….. -> EpBunch5 , where “Bunch -> -EpBunch” means “EpBunch subclassed from Bunch”
  • -
  • then EpBunch = EpBunch5
  • -
-

Question: Are you demented ? Why don’t you just subclass Bunch -> -EpBunch ?

-

Answer: One can get demented trying to subclass from dict. This is -pretty tricky coding and testing-debugging is difficult, since we are -overriding built-in functions of dict. When you make mistakes there, the -subclassed dict just stops working, or does very strange things. So I -built it in a carefull and incremental way, fully testing before -subclassing again. Each subclass implements some functionality and the -next one implements more.

-

EpBunch is described in more detail in the next section

-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/doc_eppy.html b/docs/_build/html/dev_docs/doc_eppy.html deleted file mode 100644 index c66a1941..00000000 --- a/docs/_build/html/dev_docs/doc_eppy.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - Documenting eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Documenting eppy

-

Sphinx is used to document eppy. Sphinx uses restructured text (*.rst) to build up the documentation. Some of the documentation is done directly in restructured text files. In other cases ipython notebooks are used to generate the restructured text files.

-

This documentation is incomplete.

-

When completed it will list the steps needed to let you to add to the documentation and then generate the html files

-
-

Restructured text

-
-
-

Ipython notebook

-
-
-

Sphinx

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/epbunch.html b/docs/_build/html/dev_docs/epbunch.html deleted file mode 100644 index 5e2d8a56..00000000 --- a/docs/_build/html/dev_docs/epbunch.html +++ /dev/null @@ -1,548 +0,0 @@ - - - - - - - - EpBunch — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

EpBunch

- --- - - - -
Author:Santosh Philip.
-

EpBunch is at the heart of what makes eppy easy to use. Specifically -Epbunch is what allows us to use the syntax building.Name and -building.North_Axis. Some advanced coding had to be done to make -this happen. Coding that would be easy for professional programmers, but -not for us ordinary folk :-(

-

Most of us who are going to be coding eppy are not professional -programmers. I was completely out of my depth when I did this coding. I -had the code reviewed by programmers who do this for a living (at python -meetups in the Bay Area). In their opinion, I was not doing anything -fundamentally wrong.

-

Below is a fairly long explanation, to ease you into the code. Read -through the whole thing without trying to understand every detail, just -getting a birds eye veiw of the explanation. Then read it again, you -will start to grok some of the details. All the code here is working -code, so you can experiment with it.

-
-

Magic Methods (Dunders) of Python

-

To understand how EpBunch or Bunch is coded, one has to have an -understanding of the magic methods of Python. (For a background on magic -methods, take a look at http://www.rafekettler.com/magicmethods.html) -Let us dive straight into this with some examples

-
adict = dict(a=10, b=20) # create a dictionary
-print adict
-print adict['a']
-print adict['b']
-
-
-
{'a': 10, 'b': 20}
-10
-20
-
-
-

What happens when we say d[‘a’] ?

-

This is where the magic methods come in. Magic methods are methods that -work behind the scenes and do some magic. So when we say d[‘a’], The -dict is calling the method __getitem__('a').

-

Magic methods have a double underscore__”, called dunder -methods for short

-

Let us override that method and see what happens.

-
class Funnydict(dict): # we are subclassing dict here
-    def __getitem__(self, key):
-        value = super(Funnydict, self).__getitem__(key)
-        return "key = %s, value = %s" % (key, value)
-
-funny = Funnydict(dict(a=10, b=20))
-print funny
-
-
-
{'a': 10, 'b': 20}
-
-
-

The print worked as expected. Now let us try to print the values

-
print funny['a']
-print funny['b']
-
-
-
key = a, value = 10
-key = b, value = 20
-
-
-

Now that worked very differently from a dict

-

So it is true, funny[‘a’] does call __getitem__() that we just wrote

-

Let us go back to the variable adict

-
# to jog our memory
-print adict
-
-
-
{'a': 10, 'b': 20}
-
-
-
# this should not work
-print adict.a
-
-
-
---------------------------------------------------------------------------
-AttributeError                            Traceback (most recent call last)
-
-<ipython-input-5-8aa7211fcb66> in <module>()
-      1 # this should not work
-----> 2 print adict.a
-
-
-AttributeError: 'dict' object has no attribute 'a'
-
-
-

What method gets called when we say adict.a ?

-

The magic method here is __getattr__() and __setattr__(). -Shall we override them and see if we can get the dot notation to work ?

-
class Like_bunch(dict):
-    def __getattr__(self, name):
-        return self[name]
-    def __setattr__(self, name, value):
-        self[name] = value
-
-lbunch = Like_bunch(dict(a=10, b=20))
-print lbunch
-
-
-
{'a': 10, 'b': 20}
-
-
-

Works like a dict so far. How about lbunch.a ?

-
print lbunch.a
-print lbunch.b
-
-
-
10
-20
-
-
-

Yipeee !!! I works

-

How about lbunch.nota = 100

-
lbunch.anot = 100
-print lbunch.anot
-
-
-
100
-
-
-

All good here. But don’t trust the code above too much. It was simply -done as a demonstration of dunder methods and is not fully tested.

-

Eppy uses the bunch library to do something similar. You can read more -about the bunch library in the previous section.

-
-
-

Open an IDF file

-

Once again let us open a small idf file to test.

-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../../../'
-sys.path.append(pathnameto_eppy)
-
-
-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname1 = "../../../eppy/resources/idffiles/V_7_2/dev1.idf"
-
-IDF.setiddname(iddfile)
-idf1 = IDF(fname1)
-idf1.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-MATERIAL:AIRGAP,
-    F04 Wall air space resistance,    !- Name
-    0.15;                     !- Thermal Resistance
-
-MATERIAL:AIRGAP,
-    F05 Ceiling air space resistance,    !- Name
-    0.18;                     !- Thermal Resistance
-
-
-
dtls = idf1.model.dtls
-dt = idf1.model.dt
-idd_info = idf1.idd_info
-
-
-
dt['MATERIAL:AIRGAP']
-
-
-
[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15],
- ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]]
-
-
-
obj_i = dtls.index('MATERIAL:AIRGAP')
-obj_idd = idd_info[obj_i]
-obj_idd
-
-
-
[{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']},
- {'field': ['Name'],
-  'reference': ['MaterialName'],
-  'required-field': [''],
-  'type': ['alpha']},
- {'field': ['Thermal Resistance'],
-  'minimum>': ['0'],
-  'type': ['real'],
-  'units': ['m2-K/W']}]
-
-
-

For the rest of this section let us look at only one airgap object

-
airgap = dt['MATERIAL:AIRGAP'][0]
-airgap
-
-
-
['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]
-
-
-
-
-

Subclassing of Bunch

-

Let us review our knowledge of bunch

-
from bunch import Bunch
-adict = {'a':1, 'b':2, 'c':3}
-bunchdict = Bunch(adict)
-print bunchdict
-print bunchdict.a
-print bunchdict.b
-print bunchdict.c
-
-
-
Bunch(a=1, b=2, c=3)
-1
-2
-3
-
-
-

Bunch lets us use dot notation on the keys of a dictionary. We need to -find a way of making airgap.Name work. This is not straightforward -because, airgap is list and Bunch works on dicts. It would be -easy if airgap was in the form -{'Name' : 'F04 Wall air space resistance', 'Thermal Resistance' : 0.15}.

-

The rest of this section is a simplified version of how EpBunch works.

-
class EpBunch(Bunch):
-    def __init__(self, obj, objls, objidd, *args, **kwargs):
-        super(EpBunch, self).__init__(*args, **kwargs)
-        self.obj = obj
-        self.objls = objls
-        self.objidd = objidd
-
-
-

The above code shows how EpBunch is initialized. Three variables are -passed to EpBunch to initialize it. They are obj, objls, objidd.

-
obj = airgap
-objls = ['key', 'Name', 'Thermal_Resistance'] # a function extracts this from idf1.idd_info
-objidd = obj_idd
-#
-print obj
-print objls
-# let us ignore objidd for now
-
-
-
['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]
-['key', 'Name', 'Thermal_Resistance']
-
-
-

Now we override __setattr__() and __getattr__() in the following -way

-
class EpBunch(Bunch):
-    def __init__(self, obj, objls, objidd, *args, **kwargs):
-        super(EpBunch, self).__init__(*args, **kwargs)
-        self.obj = obj
-        self.objls = objls
-        self.objidd = objidd
-
-    def __getattr__(self, name):
-        if name in ('obj', 'objls', 'objidd'):
-            return super(EpBunch, self).__getattr__(name)
-        i = self.objls.index(name)
-        return self.obj[i]
-
-    def __setattr__(self, name, value):
-        if name in ('obj', 'objls', 'objidd'):
-            super(EpBunch, self).__setattr__(name, value)
-            return None
-        i = self.objls.index(name)
-        self.obj[i] = value
-
-
-
# Let us create a EpBunch object
-bunch_airgap = EpBunch(obj, objls, objidd)
-# Use this table to see how __setattr__ and __getattr__ work in EpBunch
-
-obj   = ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15                ]
-objls = ['key',             'Name',                         'Thermal_Resistance']
-i     =   0                  1                               2
-
-
-
print bunch_airgap.Name
-print bunch_airgap.Thermal_Resistance
-
-
-
F04 Wall air space resistance
-0.15
-
-
-
print bunch_airgap.obj
-
-
-
['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]
-
-
-

Let us change some values using the dot notation

-
bunch_airgap.Name = 'Argon in gap'
-
-
-
print bunch_airgap.Name
-
-
-
Argon in gap
-
-
-
print bunch_airgap.obj
-
-
-
['MATERIAL:AIRGAP', 'Argon in gap', 0.15]
-
-
-

Using the dot notation the value is changed in the list

-

Let us make sure it actually has done that.

-
idf1.model.dt['MATERIAL:AIRGAP'][0]
-
-
-
['MATERIAL:AIRGAP', 'Argon in gap', 0.15]
-
-
-

EpBunch acts as a wrapper around -idf1.model.dt['MATERIAL:AIRGAP'][0]

-

In other words EpBunch is just Syntactic Sugar for -idf1.model.dt['MATERIAL:AIRGAP'][0]

-
-
-

Variables and Names in Python

-

At this point your reaction may, “I don’t see how all those values in -idf1.model.dt changed”. If such question arises in your mind, you -need to read the following:

- -

This is especially important if you are experienced in other languages, -and you expect the behavior to be a little different. Actually follow -and read those links in any case.

-
-
-

Continuing with EpBunch

-
-

EpBunch_1

-

The code for EpBunch in the earlier section will work, but has been -simplified for clarity. In file bunch_subclass.py take a look at the -class EpBunch_1 . This class does the first override of -__setattr__ and __getattr__. You will see that the code is a -little more involved, dealing with edge conditions and catching -exceptions.

-

EpBunch_1 also defines __repr__. This lets you print EpBunch in -a human readable format. Further research indicates that __str__ -should have been used to do this, not __repr__ :-(

-
-
-

EpBunch_2

-

EpBunch_2 is subclassed from EpBunch_1.

-

It overrides __setattr__ and __getattr__ to add a small -functionality that has not been documented or used. The idea was to give -the ability to shorten field names with alias. So -building.Maximum_Number_of_Warmup_Days could be made into -building.warmupdays.

-

I seemed like a good idea when I wrote it. Ignore it for now, although -it may make a comeback :-)

-
-
-

EpBunch_3

-

EpBunch_3 is subclassed from EpBunch_2.

-

EpBunch_3 adds the ability to add functions to EpBunch objects. This -would allow the object to make calculations using data within the -object. So BuildingSurface:Detailed object has all the geometry data -of the object. The function ‘area’ will let us calculate the are of the -object even though area is not a field in BuildingSurface:Detailed.

-

So you can call idf1.idfobjects["BuildingSurface:Detailed"][0].area -and get the area of the surface.

-

At the moment, the functions can use only data within the object for -it’s calculation. We need to extend this functionality so that -calculations can be done using data outside the object. This would be -useful in calculating the volume of a Zone. Such a calculation would -need data from the surfaces that the aone refers to.

-
-
-

EpBunch_4

-

EpBunch_4 is subclassed from EpBunch_3.

-

EpBunch_4 overrides _setitem__ and __getitem__. Right now -airgap.Name works. This update allows airgap["Name"] to work -correctly too

-
-
-

EpBunch_5

-

EpBunch_5 is subclassed from EpBunch_4.

-

EpBunch_5 adds functions that allows you to call functions -getrange and checkrange for a field

-
-
-

Finally EpBunch

-

EpBunch = EpBunch_5

-

Finally EpBunch_5 is named as EpBunch. So the rest of the code uses -EpBunch and in effect it uses Epbunch_5

-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/future_eppy.html b/docs/_build/html/dev_docs/future_eppy.html deleted file mode 100644 index b5810703..00000000 --- a/docs/_build/html/dev_docs/future_eppy.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - The Future of eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

The Future of eppy

-

The future of eppy lies in the use of eppy to build a more comprehensive tool kit to work with Energyplus models. In a sense eppy should not grow much at all. Eppy should become more effective as tool kit at a very granular level.

-
-

Longterm TODOs for eppy

-

Some of the possibilities for the future growth of eppy are:

-
    -
  • A geometry builder for Energyplus. The open source 3-D software Blender has a python scripting language. One possibility would be to use Blender as a geometry interface for eppy and Energyplus
  • -
  • A HVAC Builder for Energyplus.
  • -
  • A HVAC diagram tool for Energyplus. Eppy has a reasonbly good diagram tool for HVAC network. Right now it shows a purely static image of the network. An enhancement of this would be to ability to edit the network through the diagram
  • -
  • A User interface for Energyplus. This may be redundant, since the present IDF editor is quite good.
  • -
  • A web based user interface Energyplus. The path of least resistance to do this would be to a python web framework like django, flask, pyramid or bottle. Bottle is a very light weight web framework and could be used to make small special purpose interfaces for Energyplus.
  • -
-

The eppy project will take a lead on some of these projects. Working on these projects will feed back information into eppy, on how to improve the functionality of eppy

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/hist_eppy.html b/docs/_build/html/dev_docs/hist_eppy.html deleted file mode 100644 index a0cd7b40..00000000 --- a/docs/_build/html/dev_docs/hist_eppy.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - History of Eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

History of Eppy

- --- - - - -
Author:Santosh Philip (santosh_philip at yahoo.com)
-
-

EPlusInterface

-

EPlusInterface is a text based interface to Energyplus. EPlusInterface is the direct ancestor to Eppy. The data structure of EPlusInterface was simple and quite robust. EPlusInterface also had good functions to read the idd file and the idf files. In principle the idd file reader of EPlusInterface was written so that it could read any version of the idd file. Eppy directly uses the file readers from EPlusInterface

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/idf_msequence.html b/docs/_build/html/dev_docs/idf_msequence.html deleted file mode 100644 index 67d29a37..00000000 --- a/docs/_build/html/dev_docs/idf_msequence.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - - - Idf_MSequence - Syntactic Sugar work — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Idf_MSequence - Syntactic Sugar work

-
-

Underlying Data structure of again

-

Let us open a small idf file and look at the underlying data structure.

-
# assume we have open an IDF file called idf
-# let us add three construction objects to it
-idf.newidfobject('construction'.upper(), Name='C1')
-idf.newidfobject('construction'.upper(), Name='C2')
-idf.newidfobject('construction'.upper(), Name='C3')
-constructions = idf.idfobjects['construction'.upper()]
-print constructions
-
-
-
[
-CONSTRUCTION,
-    C1;                       !- Name
-,
-CONSTRUCTION,
-    C2;                       !- Name
-,
-CONSTRUCTION,
-    C3;                       !- Name
-]
-
-
-

We know that constructions us just syntactic sugar around the underlying -data structure. Let us call the underlying data structure -real_constructions

-
# set real_constructions
-real_constructions = = idf.model.dt['construction'.upper()]
-print real_constructions
-
-
-
[['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]
-
-
-
real_constructions -> the underlying data structure
-constructions -> syntactic sugar for real_constructions
-
-
-

So any changes made in constructions should reflected in constructions. -Let us test this out.

-
constructions[0].Name = 'New C1'
-print constructions
-
-
-
[
-CONSTRUCTION,
-    New C1;                   !- Name
-,
-CONSTRUCTION,
-    C2;                       !- Name
-,
-CONSTRUCTION,
-    C3;                       !- Name
-]
-
-
-
print real_constructions
-
-
-
[['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]
-
-
-

Even though we made the change only in constructions, we can see the -changes in both constructions and real_constructions. Ep_Bunch -takes care of this for us.

-
print 'type for constructions', type(constructions)
-
-
-
type for constructions <type 'list'>
-
-
-

since constructions is a list, we can do all the list operations on it. -Let us try some of them:

-
constructions.pop(0)
-
-
-
CONSTRUCTION,
-    New C1;                   !- Name
-
-
-
print constructions
-
-
-
[
-CONSTRUCTION,
-    C2;                       !- Name
-,
-CONSTRUCTION,
-    C3;                       !- Name
-]
-
-
-

That makes sense. We poped the first item in the list and now we have -only two items.

-

Is this change reflected in real_constructions ?

-
print real_constructions
-
-
-
[['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]
-
-
-

Dammit !! Why not ?

-

We still have 3 items in real_constructions and 2 items in -constructions

-
print 'type for constructions', type(constructions)
-print 'id of constructions', id(constructions)
-print 'type for real_constructions', type(constructions)
-print 'id of real_constructions', id(real_constructions)
-
-
-
type for constructions <type 'list'>
-id of constructions 4576898440
-type for real_constructions <type 'list'>
-id of real_constructions 4535436208
-
-
-
    -
  • Both constructions and real_constructions are lists.
  • -
  • But looking at their ids, it is clear that they are two different -lists.
  • -
  • poping an item in one list will not pop it in the other list :-(
  • -
  • In constructions[0].Name = "New C1" we see changes to an item -within constructions is reflected within real_constructions
  • -
  • EpBunch takes care of that connection
  • -
  • We are having problems with the list functions.
  • -
  • we see that pop() does not work for us
  • -
  • similarly the results of append(), insert(), sort() and reverse() in -constructions will not be reflected in real_constructions
  • -
-

This is how it works in eppy version 0.5

-

We need to fix this. Now we describe how this problem was fixed.

-

constructions should be a list-like wrapper around -real_constructions. Python has an excellent data structure called -collections.MutableSequence that works perfectly for this. Alex -Martelli has a great discussion of this in this stackoverflow thread -Overriding append method after inheriting from a Python -List

-
    -
  • So we make a class eppy.idf_msequence.Idf_MSequence that inherits -form collections.MutableSequence
  • -
  • constructions is now an instance of -eppy.idf_msequence.Idf_MSequence
  • -
  • reading the above stackoverflow thread and the code wihtin -eppy.idf_msequence.Idf_MSequence should show you how it works
  • -
  • version of eppy higher than 0.5 will use -eppy.idf_msequence.Idf_MSequence
  • -
-

Let us take a look at how it works (in all versions of eppy newer than -0.5):

-
# using eppy version greater than 0.5
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../../../'
-sys.path.append(pathnameto_eppy)
-from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname1 = "../../../eppy/resources/idffiles/V_7_2/smallfile.idf"
-IDF.setiddname(iddfile)
-idf = IDF(fname1)
-
-idf.newidfobject('construction'.upper(), Name='C1')
-idf.newidfobject('construction'.upper(), Name='C2')
-idf.newidfobject('construction'.upper(), Name='C3')
-constructions = idf.idfobjects['construction'.upper()]
-
-
-
print constructions
-
-
-
[
-CONSTRUCTION,
-    C1;                       !- Name
-,
-CONSTRUCTION,
-    C2;                       !- Name
-,
-CONSTRUCTION,
-    C3;                       !- Name
-]
-
-
-
real_constructions = idf.model.dt['construction'.upper()]
-print real_constructions
-
-
-
[['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]
-
-
-

Shall we test pop(0) here ?

-
constructions.pop(0)
-
-
-
CONSTRUCTION,
-    C1;                       !- Name
-
-
-
print constructions
-
-
-
[
-CONSTRUCTION,
-    C2;                       !- Name
-,
-CONSTRUCTION,
-    C3;                       !- Name
-]
-
-
-
print real_constructions
-
-
-
[['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]
-
-
-

Awesome !!! both constructions and real_constructions have the -same number of items

-
print type(constructions)
-print type(real_constructions)
-
-
-
<class 'eppy.idf_msequence.Idf_MSequence'>
-<type 'list'>
-
-
-

what kind of sorcery is this. How did that work. How does -Idf.Msequence do this magic ? Let us look at that -link -in stackoverflow. The question raised in stackovverflow is:

-

I want to create a list that can only accept certain types. As such, -I’m trying to inherit from a list in Python, and overriding the append() -method like so: and there is a sample code after this.

-

Alex Martelli responds:

-

Not the best approach! Python lists have so many mutating methods that -you’d have to be overriding a bunch (and would probably forget some).

-

Rather, wrap a list, inherit from collections.MutableSequence, and add -your checks at the very few “choke point” methods on which -MutableSequence relies to implement all others. Alex’s code follows -after this point. In eppy.idf_msequence I have included Alex’s code.

-

Stop here and read through the stackoverflow -link

-

Well … you don’t really have to. It does go off on some tangents -unrelated to what we do in eppy.

-

The strategy in eppy.idf_msequence.Idf_MSequence is to have two -lists, list1 and list2. To play with this I made a simple class -TwoLists. Here TwoLists acts just like a list. Any operation -list operation on TwoLists will result in a similar operation on -both list1 and list2. TwoLists is not used in eppy, I simply use it -to flesh out how MutableSequence can be used. I am going to play -with TwoLists here to show you how cool it is :-)

-
from eppy.idf_msequence import TwoLists
-twolists = TwoLists()
-print twolists
-
-
-
list1 = [], list2 = []
-
-
-
twolists.append(5)
-print twolists
-
-
-
list1 = [5], list2 = ['r_5']
-
-
-
twolists.append(dict(a=15))
-print twolists
-
-
-
list1 = [5, {'a': 15}], list2 = ['r_5', "r_{'a': 15}"]
-
-
-
twolists.insert(1, 42)
-print twolists
-
-
-
list1 = [5, 42, {'a': 15}], list2 = ['r_5', 'r_42', "r_{'a': 15}"]
-
-
-
twolists.pop(-1)
-
-
-
{'a': 15}
-
-
-
print twolists
-
-
-
list1 = [5, 42], list2 = ['r_5', 'r_42']
-
-
-

Isn’t that neat !! Idf_MSequence works in a similar way. Out of -sheer laziness I am going to let you figure it out on your own. (ignore -Idf_MSequence_old, since that went in the wrong direction)

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/index.html b/docs/_build/html/dev_docs/index.html deleted file mode 100644 index cf93f054..00000000 --- a/docs/_build/html/dev_docs/index.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - Developer Documentation for eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Developer Documentation for eppy

-

The documentation you have read so far is written for Users of eppy. Users of eppy will simply install eppy and use it. They may be writing a lot of code using eppy, but they will not be changing any code within eppy itself.

-

This section of the documentation is for people who want to contribute to the development of eppy. In contrast to eppy users people who contribute code to eppy will be changing and adding code to eppy. To change code within eppy, developers will need to have a good sense of how eppy is written and structured. This section hopes to give clarity to such issues. It is assumed that most developers of eppy will not be professional programmers and may come from a rage of programming abilities. So this documentation is slanted to such an audience.

-

If you look at the table of contents below, You will notice sections on the history and philosophy of eppy. Eppy was built off an earlier program, and a lot of the data structure and program design, will become clear when you see the history behind eppy. The philosophy of eppy alludes to the Unix philosophy of Do one thing, and do it well.

- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/modeleditor.html b/docs/_build/html/dev_docs/modeleditor.html deleted file mode 100644 index 358c2b63..00000000 --- a/docs/_build/html/dev_docs/modeleditor.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - IDF in modeleditor — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

IDF in modeleditor

-

The previous section talks about EpBunch, which deals with a single -object from Energyplus. Here we put all the pieces together so that we -have the entire IDF file

-
-

Class IDF

-

IDF0 is the first class that was written. As the code was refined, it -was further refined to by subclassing to IDF1, IDF2, IDF3. Finally the -following was set as IDF = IDF3

-
-
-

Class IDF0

-

Some important methods in IDF0

-
-

IDF0.setiddname

-

This method has a decorator @classmethod. This decorator makes the -method a class method. From a stackoverflow comment, I found a brief -description of when this should be used.

-

"Class methods are essential when you are doing set-up or computation that precedes the creation of an actual instance, because until the instance exists you obviously cannot use the instance as the dispatch point for your method calls"

-

Having said that, I am outside my comfort zone on trying to explain this -in any depth. I will simply explain what I am doing with this here. -Below is a brief explanation intent.

-
    -
  • the idd file is a very large file. There is a large overhead in -opening more than one idd file.
  • -
  • A design decision was made to use only one idd file to be used in a -script.
  • -
  • This means that you cannot open two idf files that are of different -version (meaning they will use different idd files)
  • -
  • You can open any number of idf file as long as they are of the same -version (meaing, the use the same idd file)
  • -
-

The class method allows us to achieve the objective:

-
    -
  • The class method ‘setiddname’, allows us to set the name of the idd -file, before creating an instance of IDF. It is set by the statement -IDF.setiddname(iddfilename)
  • -
  • There are other class methods that make sure that this idd name -cannot be changed.
  • -
  • An instance of the class IDF is created using the statement -idf = IDF(idffilename). This can be done multiple times, creating -multiple instances and they will all use the same idd file
  • -
-
-
-

IDF0.__init__

-

IDF is initialized by passing it the idf file name. I would look like -this:

-
-
idf1 = IDF(filename) # filename can be a file name, file handle or an StringIO
-
    -
  • Once the class is initialized, it will read the idf file.
  • -
  • If this the first time the class is inititalized, the idd file set by -setiddname() will be read too.
  • -
  • the idd file is read only once and then same copy is used.
  • -
-
-
-

IDF0.read

-

The read function is called when the class IDF is initialized. The read -function calls routines from the original EPlusInterface program to do -the actual read. The read get the values for the following variables:

-
    -
  • idfobjects
  • -
  • model.dt
  • -
  • model.dtls
  • -
  • idd_info
  • -
-

The functions within EPlusInterface are not documented here. I wrote -them in 2004 and I have no idea how I did them. they have been working -really well with some minor updates. I don’t intent to poke at that code -yet.

-
-
-
-

Other IDF methods

-

The other functions in IDF0, IDF1, IDF2 and IDF3 not too complicated. It -should be possible to understand them by reading the code.

-

Sometime in the future, these functions will be documented later in more -detail

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/phil_eppy.html b/docs/_build/html/dev_docs/phil_eppy.html deleted file mode 100644 index bcde1967..00000000 --- a/docs/_build/html/dev_docs/phil_eppy.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - Philosophy of Eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Philosophy of Eppy

- --- - - - -
Author:Santosh Philip
-

The Philosophy of eppy alludes to the Unix Philosophy. The philosophy of eppy takes inspiration from the Unix Philosophy, that speaks of doing one thing and doing it well. Unix has the tradition of having small tools that do a single thing. A number of tools can be stitched together to do a more complex task. -Of course, since eppy is written in Python, it adheres to the “Zen of Python”

-

The rules of Unix are shown in the appendix at the bottom of this page.(You may find that eppy breaks the rules at times)

-
-

Purpose of Eppy

-

The purpose of eppy is to be a scripting language to Energyplus. So what does that mean ? Let us start by describing what it is not.

-

What eppy is not:

-
    -
  • Eppy is not a User Interface to Energyplus.
  • -
  • Eppy is not a HVAC builder for Energyplus
  • -
  • Eppy is not a Geometry builder for Energyplus
  • -
  • Eppy does not make batch runs for Energyplus
  • -
  • Eppy does not optimize Energyplus models
  • -
-

Now you may ask, “What use is eppy, if it cannot do any of these things ?”

-

Aha ! Eppy is a scripting language. That means you can write scripts that can help to do any of those things listed above. And many more that are not listed above :-)

-

A scripting language has to be simple and expressive. It has to be simple so that it is easy to understand and use, and should ideally have a negligible learning curve. Now, it can be simple, but may be simplistic and you may be able to do only simple things in it. To go beyond the simple, the language has to be expressive. Most natural languages (like English or Malayalam) are expressive and you can write poetry in them. Of course, some languages are more expressive than others, which is why Malayalam is more poetic than English … just kidding here :-)

-

In the world of programming languages, python is a very expressive language. If you doubt this, you should take a look at the Zen of Python to see the philosophy behind python. Eppy attempts to piggyback on the expressiveness of python. Developers who are working on eppy should use this as a guiding principle, especially if you are working deep within the innards of eppy. Some of this is tricky coding, because you are overriding the functionality within python itself. Depending on your coding ability and what you want to learn, you should pick an area you want to work in

-

Question: You claim that Eppy is not a HVAC builder for Energyplus. I see a module called hvacbulider.py in eppy.

-

Answer: Yup ! you are right. I cheated. Hvacbulider should not be in eppy. We are at an early stage of the evolution of eppy and it made sense to keep it within eppy for now. In the future, it will be made into a standalone library that will use eppy for it’s functionality.

-
-

The power of the idd file

-

Due to historic reasons, the developers of Energyplus were tasked to write the simulation engine without an user interface. This meant they had to write Energyplus in such a way that others could write user interfaces to it. This constraint forced them to make two excellent design decisions:

-
    -
  • All models in Energyplus are text files called idf files. Text files are human readable and are platform agnostic.
  • -
  • There is a special text file called an idd file, that describes all the objects that can be in an Energyplus model. Again this file is human readable and it is very well documented with comments. If you intend to do any development in Energyplus or eppy, it is well worth taking a look at this file. It is usually called Energy+.idd and is found in the main Energyplus folder
  • -
  • When newer versions of Energyplus are released, an updated idd file is released with it. The simulation engine within Energyplus uses the idd file to parse the objects in the model. If an interface software is able to read and understand the idd file, it can effectively understand any idf file.
  • -
  • Eppy is written so that it can read and understand idd files, including idd files of future releases.In principle, eppy should be able to work with any future version of Energyplus without any changes. At the date this documentation was written, eppy can read all idf files, from version 1 to version 8.
  • -
-
-
-
-

Idd file and eppy

-

Both the idd file and idf file are text files. If you look at these files, you will see that there is a clear structure that is visible to you, the reader. Eppy reads these text files and pushes it into classic python data structures, like lists and dictionaries. Once this information is in lists and dicts, it becomes much easier to walk through the data structure and to add, delete and change the information.

-

At it’s heart, eppy is simply a scripting language that puts the idd and idf file into a python data structure. Then it uses the power of python to edit the idf file.

-
-
-

Appendix: Unix Philosophy

-

From http://www.catb.org/esr/writings/taoup/html/ch01s06.html:

-
    -
  • Rule of Modularity: Write simple parts connected by clean interfaces.
  • -
  • Rule of Clarity: Clarity is better than cleverness.
  • -
  • Rule of Composition: Design programs to be connected to other programs.
  • -
  • Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
  • -
  • Rule of Simplicity: Design for simplicity; add complexity only where you must.
  • -
  • Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
  • -
  • Rule of Transparency: Design for visibility to make inspection and debugging easier.
  • -
  • Rule of Robustness: Robustness is the child of transparency and simplicity.
  • -
  • Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
  • -
  • Rule of Least Surprise: In interface design, always do the least surprising thing.
  • -
  • Rule of Silence: When a program has nothing surprising to say, it should say nothing.
  • -
  • Rule of Repair: When you must fail, fail noisily and as soon as possible.
  • -
  • Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
  • -
  • Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
  • -
  • Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
  • -
  • Rule of Diversity: Distrust all claims for “one true way”.
  • -
  • Rule of Extensibility: Design for the future, because it will be here sooner than you think.
  • -
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/dev_docs/pytest_eppy.html b/docs/_build/html/dev_docs/pytest_eppy.html deleted file mode 100644 index a3ebca3f..00000000 --- a/docs/_build/html/dev_docs/pytest_eppy.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - Unit Testing Eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Unit Testing Eppy

-
-

Pytest for eppy

-

Pytest framework is used to unit test eppy

-

This section is yet to be documented

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/eppy.EPlusInterfaceFunctions.html b/docs/_build/html/eppy.EPlusInterfaceFunctions.html deleted file mode 100644 index c08770f0..00000000 --- a/docs/_build/html/eppy.EPlusInterfaceFunctions.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - eppy.EPlusInterfaceFunctions package — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

eppy.EPlusInterfaceFunctions package

-
-

Submodules

-
-
-

eppy.EPlusInterfaceFunctions.eplusdata module

-
-
-

eppy.EPlusInterfaceFunctions.iddgroups module

-
-
-

eppy.EPlusInterfaceFunctions.iddindex module

-
-
-

eppy.EPlusInterfaceFunctions.mylib1 module

-
-
-

eppy.EPlusInterfaceFunctions.mylib2 module

-
-
-

eppy.EPlusInterfaceFunctions.parse_idd module

-
-
-

eppy.EPlusInterfaceFunctions.readidf module

-
-
-

Module contents

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/eppy.html b/docs/_build/html/eppy.html deleted file mode 100644 index 703ba90e..00000000 --- a/docs/_build/html/eppy.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - eppy package — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

eppy package

-
-

Module contents

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/eppy.useful_scripts.html b/docs/_build/html/eppy.useful_scripts.html deleted file mode 100644 index fecefb03..00000000 --- a/docs/_build/html/eppy.useful_scripts.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - eppy.useful_scripts package — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

eppy.useful_scripts package

-
-

Submodules

-
-
-

eppy.useful_scripts.autosize module

-
-
-

eppy.useful_scripts.change_edges module

-
-
-

eppy.useful_scripts.doc_images module

-
-
-

eppy.useful_scripts.eppy_version module

-
-
-

eppy.useful_scripts.eppyreadtest_file module

-
-
-

eppy.useful_scripts.eppyreadtest_folder module

-
-
-

eppy.useful_scripts.idfdiff module

-
-
-

eppy.useful_scripts.idfdiff_missing module

-
-
-

eppy.useful_scripts.loopdiagram module

-
-
-

eppy.useful_scripts.relatedobjects module

-
-
-

eppy.useful_scripts.renamecolon module

-
-
-

Module contents

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/eppyfunctions.html b/docs/_build/html/eppyfunctions.html deleted file mode 100644 index a29f810c..00000000 --- a/docs/_build/html/eppyfunctions.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - Eppy Functions — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Eppy Functions

-

This Document is a work in progress

-

The most commonly used eppy functions are gathered here.

-

IDF functions:

-
    -
  • idf = IDF(fname) # fname or fhandle
  • -
  • idf.printidf
  • -
  • idf1.idfobjects[‘BUILDING’]
  • -
  • idf.save
  • -
  • idf.saveas
  • -
  • idf.newidfobject
  • -
  • idf.copyidfobject
  • -
  • idf.newidfobject
  • -
  • idf.removeidfobject
  • -
  • idf.popidfobject
  • -
  • idf.copyidfobject
  • -
-

idfobjects function:

-
    -
  • building.Name
  • -
  • surface azimuth
  • -
  • surface tilt
  • -
  • surface area
  • -
  • building.getrange(“Loads_Convergence_Tolerance_Value”)
  • -
  • building.checkrange(“Loads_Convergence_Tolerance_Value”)
  • -
  • building.fieldnames
  • -
-

Other Functions:

-
    -
  • area = modeleditor.zonearea(idf, zone.Name)
  • -
  • volume = modeleditor.zonevolume(idf, zone.Name)
  • -
  • json_functions.updateidf(idf1, json_str)
  • -
  • idf_helpers.getidfobjectlist
  • -
  • idf_helpers.copyidfintoidf
  • -
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/eppyrecipies.html b/docs/_build/html/eppyrecipies.html deleted file mode 100644 index a5d7e9a8..00000000 --- a/docs/_build/html/eppyrecipies.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - Eppy Recipies — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Eppy Recipies

-

This Document is a work in progress

-

Common ways in which eppy can be used

-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html deleted file mode 100644 index 8c34623c..00000000 --- a/docs/_build/html/genindex.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - Index — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- - -

Index

- -
- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html deleted file mode 100644 index bb245540..00000000 --- a/docs/_build/html/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - Welcome to eppy’s documentation! — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - -
- - -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/installation.html b/docs/_build/html/installation.html deleted file mode 100644 index 4d26d73f..00000000 --- a/docs/_build/html/installation.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - Installation — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Installation

-

Type the following at your terminal to install eppy

-
pip install eppy
-
-
-

For additional functionality:

-
    -
  • Go to http://www.graphviz.org and install graphviz
  • -
  • This is needed to draw loop diagrams.
  • -
  • The rest of eppy will work without graphviz
  • -
-

Note: eppy runs on python2 and python 3.

-
-

Running eppy on other platforms

-
-

Eppy on Grasshopper (for use within Rhino)

-

Use the CPython plugin for Rhino-Grasshopper to run eppy in Grasshopper

-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/modules.html b/docs/_build/html/modules.html deleted file mode 100644 index 2962b674..00000000 --- a/docs/_build/html/modules.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

eppy

- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/newfunctions.html b/docs/_build/html/newfunctions.html deleted file mode 100644 index c9dfc9cd..00000000 --- a/docs/_build/html/newfunctions.html +++ /dev/null @@ -1,1270 +0,0 @@ - - - - - - - - New functions — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

New functions

-

These are recently written functions that have not made it into the main -documentation

-
-

Python Lesson: Errors and Exceptions

-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../'
-sys.path.append(pathnameto_eppy)
-
-
-

When things go wrong in your eppy script, you get “Errors and -Exceptions”.

-

To know more about how this works in python and eppy, take a look at -Python: Errors and -Exceptions

-
-
-

Setting IDD name

-

When you work with Energyplus you are working with idf files (files -that have the extension *.idf). There is another file that is very -important, called the idd file. This is the file that defines all -the objects in Energyplus. Esch version of Energyplus has a different -idd file.

-

So eppy needs to know which idd file to use. Only one idd file -can be used in a script or program. This means that you cannot change -the idd file once you have selected it. Of course you have to first -select an idd file before eppy can work.

-

If you use eppy and break the above rules, eppy will raise an exception. -So let us use eppy incorrectly and make eppy raise the exception, just -see how that happens.

-

First let us try to open an idf file without setting an idd -file.

-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf"
-
-
-

Now let us open file fname1 without setting the idd file

-
try:
-    idf1 = IDF(fname1)
-except Exception, e:
-    raise e
-
-
-
---------------------------------------------------------------------------
-
-IDDNotSetError                            Traceback (most recent call last)
-
-<ipython-input-7-44ad2b53d42c> in <module>()
-      2     idf1 = IDF(fname1)
-      3 except Exception, e:
-----> 4     raise e
-      5
-
-
-IDDNotSetError: IDD file needed to read the idf file. Set it using IDF.setiddname(iddfile)
-
-
-

OK. It does not let you do that and it raises an exception

-

So let us set the idd file and then open the idf file

-
iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-IDF.setiddname(iddfile)
-idf1 = IDF(fname1)
-
-
-

That worked without raising an exception

-

Now let us try to change the idd file. Eppy should not let you do -this and should raise an exception.

-
try:
-    IDF.setiddname("anotheridd.idd")
-except Exception, e:
-    raise e
-
-
-
---------------------------------------------------------------------------
-
-IDDAlreadySetError                        Traceback (most recent call last)
-
-<ipython-input-9-52df819ac489> in <module>()
-      2     IDF.setiddname("anotheridd.idd")
-      3 except Exception, e:
-----> 4     raise e
-      5
-
-
-IDDAlreadySetError: IDD file is set to: ../eppy/resources/iddfiles/Energy+V7_2_0.idd
-
-
-

Excellent!! It raised the exception we were expecting.

-
-
-

Check range for fields

-

The fields of idf objects often have a range of legal values. The -following functions will let you discover what that range is and test if -your value lies within that range

-

demonstrate two new functions:

-
    -
  • EpBunch.getrange(fieldname) # will return the ranges for that field
  • -
  • EpBunch.checkrange(fieldname) # will throw an exception if the value -is outside the range
  • -
-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf"
-
-
-
# IDF.setiddname(iddfile)# idd ws set further up in this page
-idf1 = IDF(fname1)
-
-
-
building = idf1.idfobjects['building'.upper()][0]
-print building
-
-
-
BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-
-
print building.getrange("Loads_Convergence_Tolerance_Value")
-
-
-
{u'maximum<': None, u'minimum': None, u'type': u'real', u'maximum': 0.5, u'minimum>': 0.0}
-
-
-
print building.checkrange("Loads_Convergence_Tolerance_Value")
-
-
-
0.04
-
-
-

Let us set these values outside the range and see what happens

-
building.Loads_Convergence_Tolerance_Value = 0.6
-from eppy.bunch_subclass import RangeError
-try:
-    print building.checkrange("Loads_Convergence_Tolerance_Value")
-except RangeError, e:
-    raise e
-
-
-
---------------------------------------------------------------------------
-
-RangeError                                Traceback (most recent call last)
-
-<ipython-input-15-a824cb1ec673> in <module>()
-      4     print building.checkrange("Loads_Convergence_Tolerance_Value")
-      5 except RangeError, e:
-----> 6     raise e
-      7
-
-
-RangeError: Value 0.6 is not less or equal to the 'maximum' of 0.5
-
-
-

So the Range Check works

-
-
-

Looping through all the fields in an idf object

-

We have seen how to check the range of field in the idf object. What if -you want to do a range check on all the fields in an idf object ? To -do this we will need a list of all the fields in the idf object. We can -do this easily by the following line

-
print building.fieldnames
-
-
-
[u'key', u'Name', u'North_Axis', u'Terrain', u'Loads_Convergence_Tolerance_Value', u'Temperature_Convergence_Tolerance_Value', u'Solar_Distribution', u'Maximum_Number_of_Warmup_Days', u'Minimum_Number_of_Warmup_Days']
-
-
-

So let us use this

-
for fieldname in building.fieldnames:
-    print "%s = %s" % (fieldname, building[fieldname])
-
-
-
key = BUILDING
-Name = Empire State Building
-North_Axis = 30.0
-Terrain = City
-Loads_Convergence_Tolerance_Value = 0.6
-Temperature_Convergence_Tolerance_Value = 0.4
-Solar_Distribution = FullExterior
-Maximum_Number_of_Warmup_Days = 25
-Minimum_Number_of_Warmup_Days = 6
-
-
-

Now let us test if the values are in the legal range. We know that -“Loads_Convergence_Tolerance_Value” is out of range

-
from eppy.bunch_subclass import RangeError
-for fieldname in building.fieldnames:
-    try:
-        building.checkrange(fieldname)
-        print "%s = %s #-in range" % (fieldname, building[fieldname],)
-    except RangeError as e:
-        print "%s = %s #-****OUT OF RANGE****" % (fieldname, building[fieldname],)
-
-
-
-key = BUILDING #-in range
-Name = Empire State Building #-in range
-North_Axis = 30.0 #-in range
-Terrain = City #-in range
-Loads_Convergence_Tolerance_Value = 0.6 #-**OUT OF RANGE**
-Temperature_Convergence_Tolerance_Value = 0.4 #-in range
-Solar_Distribution = FullExterior #-in range
-Maximum_Number_of_Warmup_Days = 25 #-in range
-Minimum_Number_of_Warmup_Days = 6 #-in range
-
-

You see, we caught the out of range value

-
-
-

Blank idf file

-

Until now in all our examples, we have been reading an idf file from -disk:

-
    -
  • How do I create a blank new idf file
  • -
  • give it a file name
  • -
  • Save it to the disk
  • -
-

Here are the steps to do that

-
# some initial steps
-from eppy.modeleditor import IDF
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-# IDF.setiddname(iddfile) # Has already been set
-
-# - Let us first open a file from the disk
-fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf"
-idf_fromfilename = IDF(fname1) # initialize the IDF object with the file name
-
-idf_fromfilename.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-
-
# - now let us open a file from the disk differently
-fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf"
-fhandle = open(fname1, 'r') # open the file for reading and assign it a file handle
-idf_fromfilehandle = IDF(fhandle) # initialize the IDF object with the file handle
-
-idf_fromfilehandle.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-
-
# So IDF object can be initialized with either a file name or a file handle
-
-# - How do I create a blank new idf file
-idftxt = "" # empty string
-from StringIO import StringIO
-fhandle = StringIO(idftxt) # we can make a file handle of a string
-idf_emptyfile = IDF(fhandle) # initialize the IDF object with the file handle
-
-idf_emptyfile.printidf()
-
-
-

It did not print anything. Why should it. It was empty.

-

What if we give it a string that was not blank

-
# - The string does not have to be blank
-idftxt = "VERSION, 7.3;" # Not an emplty string. has just the version number
-fhandle = StringIO(idftxt) # we can make a file handle of a string
-idf_notemptyfile = IDF(fhandle) # initialize the IDF object with the file handle
-
-idf_notemptyfile.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-
-

Aha !

-

Now let us give it a file name

-
# - give it a file name
-idf_notemptyfile.idfname = "notemptyfile.idf"
-# - Save it to the disk
-idf_notemptyfile.save()
-
-
-

Let us confirm that the file was saved to disk

-
txt = open("notemptyfile.idf", 'r').read()# read the file from the disk
-print txt
-
-
-
!- Darwin Line endings
-
-VERSION,
-    7.3;                      !- Version Identifier
-
-
-

Yup ! that file was saved. Let us delete it since we were just playing

-
import os
-os.remove("notemptyfile.idf")
-
-
-
-
-

Deleting, copying/adding and making new idfobjects

-
-

Making a new idf object

-

Let us start with a blank idf file and make some new “MATERIAL” objects -in it

-
# making a blank idf object
-blankstr = ""
-from StringIO import StringIO
-idf = IDF(StringIO(blankstr))
-
-
-

To make and add a new idfobject object, we use the function -IDF.newidfobject(). We want to make an object of type “MATERIAL”

-
newobject = idf.newidfobject("material".upper()) # the key for the object type has to be in upper case
-                                     # .upper() makes it upper case
-
-
-
print newobject
-
-
-
MATERIAL,
-    ,                         !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-

Let us give this a name, say “Shiny new material object”

-
newobject.Name = "Shiny new material object"
-print newobject
-
-
-
MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-
anothermaterial = idf.newidfobject("material".upper())
-anothermaterial.Name = "Lousy material"
-thirdmaterial = idf.newidfobject("material".upper())
-thirdmaterial.Name = "third material"
-print thirdmaterial
-
-
-
MATERIAL,
-    third material,           !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-

Let us look at all the “MATERIAL” objects

-
print idf.idfobjects["MATERIAL"]
-
-
-
[
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-,
-MATERIAL,
-    Lousy material,           !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-,
-MATERIAL,
-    third material,           !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-]
-
-
-

As we can see there are three MATERIAL idfobjects. They are:

-
    -
  1. Shiny new material object
  2. -
  3. Lousy material
  4. -
  5. third material
  6. -
-
-
-

Deleting an idf object

-

Let us remove 2. Lousy material. It is the second material in the list. -So let us remove the second material

-
idf.popidfobject('MATERIAL', 1) # first material is '0', second is '1'
-
-
-
MATERIAL,
-    Lousy material,           !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-
print idf.idfobjects['MATERIAL']
-
-
-
[
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-,
-MATERIAL,
-    third material,           !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-]
-
-
-

You can see that the second material is gone ! Now let us remove the -first material, but do it using a different function

-
firstmaterial = idf.idfobjects['MATERIAL'][-1]
-
-
-
idf.removeidfobject(firstmaterial)
-
-
-
print idf.idfobjects['MATERIAL']
-
-
-
[
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-]
-
-
-

So we have two ways of deleting an idf object:

-
    -
  1. popidfobject -> give it the idf key: “MATERIAL”, and the index number
  2. -
  3. removeidfobject -> give it the idf object to be deleted
  4. -
-
-
-

Copying/Adding an idf object

-

Having deleted two “MATERIAL” objects, we have only one left. Let us -make a copy of this object and add it to our idf file

-
onlymaterial = idf.idfobjects["MATERIAL"][0]
-
-
-
idf.copyidfobject(onlymaterial)
-
-
-
print idf.idfobjects["MATERIAL"]
-
-
-
[
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-,
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-]
-
-
-

So now we have a copy of the material. You can use this method to copy -idf objects from other idf files too.

-
-
-
-

Making an idf object with named arguments

-

What if we wanted to make an idf object with values for it’s fields? We -can do that too.

-
gypboard = idf.newidfobject('MATERIAL', Name="G01a 19mm gypsum board",
-                            Roughness="MediumSmooth",
-                            Thickness=0.019,
-                            Conductivity=0.16,
-                            Density=800,
-                            Specific_Heat=1090)
-
-
-
print gypboard
-
-
-
MATERIAL,
-    G01a 19mm gypsum board,    !- Name
-    MediumSmooth,             !- Roughness
-    0.019,                    !- Thickness
-    0.16,                     !- Conductivity
-    800,                      !- Density
-    1090,                     !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-

newidfobject() also fills in the default values like “Thermal -Absorptance”, “Solar Absorptance”, etc.

-
print idf.idfobjects["MATERIAL"]
-
-
-
[
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-,
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-,
-MATERIAL,
-    G01a 19mm gypsum board,    !- Name
-    MediumSmooth,             !- Roughness
-    0.019,                    !- Thickness
-    0.16,                     !- Conductivity
-    800,                      !- Density
-    1090,                     !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-]
-
-
-
-
-

Renaming an idf object

-

It is easy to rename an idf object. If we want to rename the gypboard -object that we created above, we simply say:

-
-
gypboard.Name = “a new name”.
-

But this could create a problem. What if this gypboard is part of a -“CONSTRUCTION” object. The construction object will refer to the -gypboard by name. If we change the name of the gypboard, we should -change it in the construction object.

-

But there may be many constructions objects using the gypboard. Now we -will have to change it in all those construction objects. Sounds -painfull.

-

Let us try this with an example:

-
interiorwall = idf.newidfobject("CONSTRUCTION", Name="Interior Wall",
-                 Outside_Layer="G01a 19mm gypsum board",
-                 Layer_2="Shiny new material object",
-                 Layer_3="G01a 19mm gypsum board")
-print interiorwall
-
-
-
CONSTRUCTION,
-    Interior Wall,            !- Name
-    G01a 19mm gypsum board,    !- Outside Layer
-    Shiny new material object,    !- Layer 2
-    G01a 19mm gypsum board;    !- Layer 3
-
-
-

to rename gypboard and have that name change in all the places we call -modeleditor.rename(idf, key, oldname, newname)

-
modeleditor.rename(idf, "MATERIAL", "G01a 19mm gypsum board", "peanut butter")
-
-
-
MATERIAL,
-    peanut butter,            !- Name
-    MediumSmooth,             !- Roughness
-    0.019,                    !- Thickness
-    0.16,                     !- Conductivity
-    800,                      !- Density
-    1090,                     !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-
print interiorwall
-
-
-
CONSTRUCTION,
-    Interior Wall,            !- Name
-    peanut butter,            !- Outside Layer
-    Shiny new material object,    !- Layer 2
-    peanut butter;            !- Layer 3
-
-
-

Now we have “peanut butter” everywhere. At least where we need it. Let -us look at the entir idf file, just to be sure

-
idf.printidf()
-
-
-
MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-MATERIAL,
-    Shiny new material object,    !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-MATERIAL,
-    peanut butter,            !- Name
-    MediumSmooth,             !- Roughness
-    0.019,                    !- Thickness
-    0.16,                     !- Conductivity
-    800,                      !- Density
-    1090,                     !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-CONSTRUCTION,
-    Interior Wall,            !- Name
-    peanut butter,            !- Outside Layer
-    Shiny new material object,    !- Layer 2
-    peanut butter;            !- Layer 3
-
-
-
-

Turn off default values

-

Can I turn off the defautl values. Yes you can:

-
defaultmaterial = idf.newidfobject("MATERIAL",
-                                     Name='with default')
-print defaultmaterial
-nodefaultmaterial = idf.newidfobject("MATERIAL",
-                                     Name='Without default',
-                                  defaultvalues=False)
-print nodefaultmaterial
-
-
-
MATERIAL,
-    with default,             !- Name
-    ,                         !- Roughness
-    ,                         !- Thickness
-    ,                         !- Conductivity
-    ,                         !- Density
-    ,                         !- Specific Heat
-    0.9,                      !- Thermal Absorptance
-    0.7,                      !- Solar Absorptance
-    0.7;                      !- Visible Absorptance
-
-
-MATERIAL,
-    Without default;          !- Name
-
-
-
    -
  • But why would you want to turn it off.
  • -
  • Well …. sometimes you have to
  • -
  • Try it with the object DAYLIGHTING:CONTROLS, and you will see the -need for defaultvalues=False
  • -
-

Of course, internally EnergyPlus will still use the default values it it -is left blank. If just won’t turn up in the IDF file.

-
-
-
-

Zone area and volume

-

The idf file has zones with surfaces and windows. It is easy to get the -attributes of the surfaces and windows as we have seen in the tutorial. -Let us review this once more:

-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname1 = "../eppy/resources/idffiles/V_7_2/box.idf"
-# IDF.setiddname(iddfile)
-
-
-
idf = IDF(fname1)
-
-
-
surfaces = idf.idfobjects["BuildingSurface:Detailed".upper()]
-surface = surfaces[0]
-print "area = %s" % (surface.area, )
-print "tilt = %s" % (surface.tilt, )
-print "azimuth = %s" % (surface.azimuth, )
-
-
-
area = 30.0
-tilt = 180.0
-azimuth = 0.0
-
-
-

Can we do the same for zones ?

-

Not yet .. not yet. Not in this version on eppy

-

But we can still get the area and volume of the zone

-
zones = idf.idfobjects["ZONE"]
-zone = zones[0]
-area = modeleditor.zonearea(idf, zone.Name)
-volume = modeleditor.zonevolume(idf, zone.Name)
-print "zone area = %s" % (area, )
-print "zone volume = %s" % (volume, )
-
-
-
zone area = 30.0
-zone volume = 90.0
-
-
-

Not as slick, but still pretty easy

-

Some notes on the zone area calculation:

-
    -
  • area is calculated by summing up all the areas of the floor surfaces
  • -
  • if there are no floors, then the sum of ceilings and roof is taken as -zone area
  • -
  • if there are no floors, ceilings or roof, we are out of luck. The -function returns 0
  • -
-
-
-

Using JSON to update idf

-

we are going to update idf1 using json. First let us print the -idf1 before changing it, so we can see what has changed once we make -an update

-
idf1.printidf()
-
-
-
VERSION,
-    7.3;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    Yes,                      !- Do Zone Sizing Calculation
-    Yes,                      !- Do System Sizing Calculation
-    Yes,                      !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    30.0,                     !- North Axis
-    City,                     !- Terrain
-    0.6,                      !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-
-
import eppy.json_functions as json_functions
-json_str = {"idf.VERSION..Version_Identifier":8.5,
-            "idf.SIMULATIONCONTROL..Do_Zone_Sizing_Calculation": "No",
-            "idf.SIMULATIONCONTROL..Do_System_Sizing_Calculation": "No",
-            "idf.SIMULATIONCONTROL..Do_Plant_Sizing_Calculation": "No",
-            "idf.BUILDING.Empire State Building.North_Axis": 52,
-            "idf.BUILDING.Empire State Building.Terrain": "Rural",
-            }
-json_functions.updateidf(idf1, json_str)
-
-
-
idf1.printidf()
-
-
-
VERSION,
-    8.5;                      !- Version Identifier
-
-SIMULATIONCONTROL,
-    No,                       !- Do Zone Sizing Calculation
-    No,                       !- Do System Sizing Calculation
-    No,                       !- Do Plant Sizing Calculation
-    No,                       !- Run Simulation for Sizing Periods
-    Yes;                      !- Run Simulation for Weather File Run Periods
-
-BUILDING,
-    Empire State Building,    !- Name
-    52,                       !- North Axis
-    Rural,                    !- Terrain
-    0.6,                      !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-
-SITE:LOCATION,
-    CHICAGO_IL_USA TMY2-94846,    !- Name
-    41.78,                    !- Latitude
-    -87.75,                   !- Longitude
-    -6.0,                     !- Time Zone
-    190.0;                    !- Elevation
-
-
-

Compare the first printidf() and the second printidf().

-

The syntax of the json string is described below:

-
idf.BUILDING.Empire State Building.Terrain": "Rural"
-
-The key fields are seperated by dots. Let us walk through each field:
-
-idf -> make a change to the idf. (in the future there may be changes that are not related to idf)
-BUILDING -> the key for object to be changed
-Empire State Building -> The name of the object. In other word - the value of the field `Name`
-Terrain -> the field to be changed
-
-"Rural" -> the new value of the field
-
-If the object does not have a `Name` field, you leave a blank between the two dots and the first object will be changed.
-This is done for the version number change.
-
-"idf.VERSION..Version_Identifier":8.5
-
-
-

You can also create a new object using JSON, using the same syntax. Take -a look at this:

-
json_str = {"idf.BUILDING.Taj.Terrain": "Rural",}
-json_functions.updateidf(idf1, json_str)
-idf1.idfobjects['building'.upper()]
-# of course, you are creating an invalid E+ file. But we are just playing here.
-
-
-
[
-BUILDING,
-    Empire State Building,    !- Name
-    52,                       !- North Axis
-    Rural,                    !- Terrain
-    0.6,                      !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-,
-BUILDING,
-    Taj,                      !- Name
-    0.0,                      !- North Axis
-    Rural,                    !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-]
-
-
-

What if you object name had a dot . in it? Will the json_function -get confused?

-

If the name has a dot in it, there are two ways of doing this.

-
# first way
-json_str = {"idf.BUILDING.Taj.with.dot.Terrain": "Rural",}
-json_functions.updateidf(idf1, json_str)
-# second way (put the name in single quotes)
-json_str = {"idf.BUILDING.'Another.Taj.with.dot'.Terrain": "Rural",}
-json_functions.updateidf(idf1, json_str)
-
-
-
idf1.idfobjects['building'.upper()]
-
-
-
[
-BUILDING,
-    Empire State Building,    !- Name
-    52,                       !- North Axis
-    Rural,                    !- Terrain
-    0.6,                      !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-,
-BUILDING,
-    Taj,                      !- Name
-    0.0,                      !- North Axis
-    Rural,                    !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-,
-BUILDING,
-    Taj.with.dot,             !- Name
-    0.0,                      !- North Axis
-    Rural,                    !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-,
-BUILDING,
-    Another.Taj.with.dot,     !- Name
-    0.0,                      !- North Axis
-    Rural,                    !- Terrain
-    0.04,                     !- Loads Convergence Tolerance Value
-    0.4,                      !- Temperature Convergence Tolerance Value
-    FullExterior,             !- Solar Distribution
-    25,                       !- Maximum Number of Warmup Days
-    6;                        !- Minimum Number of Warmup Days
-]
-
-
-

Note When you us the json update function:

-
    -
  • The json function expects the Name field to have a value.
  • -
  • If you try to update an object with a blank Name field, the -results may be unexpected (undefined ? :-). So don’t do this.
  • -
  • If the object has no Name field (some don’t), changes are made to -the first object in the list. Which should be fine, since usually -there is only one item in the list
  • -
  • In any case, if the object does not exist, it is created with the -default values
  • -
-
-

Use Case for JSON update

-

If you have an eppy running on a remote server somewhere on the -internet, you can change an idf file by sending it a JSON over the -internet. This is very useful if you ever need it. If you don’t need it, -you shouldn’t care :-)

-
-
-
-

Open a file quickly¶

-

It is rather cumbersome to open an IDF file in eppy. From the tutorial, -the steps look like this:

-
from eppy import modeleditor
-from eppy.modeleditor import IDF
-
-iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd"
-fname = "../eppy/resources/idffiles/V_7_2/smallfile.idf"
-IDF.setiddname(iddfile)
-idf = IDF(fname)
-
-
-
    -
  • You have to find the IDD file on your hard disk.
  • -
  • Then set the IDD using setiddname(iddfile).
  • -
  • Now you can open the IDF file
  • -
-

Why can’t you just open the IDF file without jumping thru all those -hoops. Why do you have to find the IDD file. What is the point of having -a computer, if it does not do the grunt work for you.

-

The function easyopen will do the grunt work for you. It will -automatically read the version number from the IDF file, locate the -correct IDD file and set it in eppy and then open your file. It works -like this:

-
from eppy.easyopen import easyopen
-
-fname = './eppy/resources/idffiles/V8_8/smallfile.idf'
-idf = easyopen(fname)
-
-
-

For this to work,

-
    -
  • the IDF file should have the VERSION object. You may not have this if -you are just working on a file snippet.
  • -
  • you need to have the version of EnergyPlus installed that matches -your IDF version.
  • -
  • Energyplus should be installed in the default location.
  • -
-

If easyopen does not work, use the long winded steps shown in the -tutorial. That is guaranteed to work

-

Note: easyopen() will also take a epw argument looking like:

-
idf = easyopen(fname, epw=path2weatherfile)
-
-
-

If you pass the epw argument:

-
idf.run()
-
-
-

will work. To know more about idf.run() see here.

-
-
-

Other miscellaneous functions¶

-
-

Fan power in Watts, BHP and fan cfm¶

-

We normally think of fan power in terms of Brake Horsepower (BHP), -Watts. Also when working with IP units it is useful to think of fan flow -volume in terms of cubic feet per minute (cfm).

-

Energyplus does not have fields for those values. With eppy we have -functions that will calculate the values

-
    -
  • fan power in BHP
  • -
  • fan power in Watts
  • -
  • fan flow in CFM
  • -
-

It will work for the following objects:

-
    -
  • FAN:CONSTANTVOLUME
  • -
  • FAN:VARIABLEVOLUME
  • -
  • FAN:ONOFF
  • -
  • FAN:ZONEEXHAUST
  • -
  • FANPERFORMANCE:NIGHTVENTILATION
  • -
-

The sample code would look like this:

-
thefans = idf.idfobjects['Fan:VariableVolume'.upper()]
-thefan = thefans[0]
-bhp = thefan.fanpower_bhp
-watts = thefan.fanpower_watts
-cfm = thefan.fan_maxcfm
-
-
-

Note: This code was hacked together quickly. Needs peer review in -../eppy/fanpower.py

-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv deleted file mode 100644 index 813b72d5..00000000 Binary files a/docs/_build/html/objects.inv and /dev/null differ diff --git a/docs/_build/html/runningeplus.html b/docs/_build/html/runningeplus.html deleted file mode 100644 index 57831146..00000000 --- a/docs/_build/html/runningeplus.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - Running EnergyPlus from Eppy — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Running EnergyPlus from Eppy

-

It would be great if we could run EnergyPlus directly from our IDF -wouldn’t it?

-

Well here’s how we can.

-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, uncomment the following three lines
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../'
-sys.path.append(pathnameto_eppy)
-
-
-
from eppy.modeleditor import IDF
-
-iddfile = "/Applications/EnergyPlus-8-3-0/Energy+.idd"
-IDF.setiddname(iddfile)
-
-
-
idfname = "/Applications/EnergyPlus-8-3-0/ExampleFiles/BasicsFiles/Exercise1A.idf"
-epwfile = "/Applications/EnergyPlus-8-3-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw"
-
-idf = IDF(idfname, epwfile)
-idf.run()
-
-
-

if you are in a terminal, you will see something like this:

-
Processing Data Dictionary
-Processing Input File
-Initializing Simulation
-Reporting Surfaces
-Beginning Primary Simulation
-Initializing New Environment Parameters
-Warming up {1}
-Warming up {2}
-Warming up {3}
-Warming up {4}
-Warming up {5}
-Warming up {6}
-Starting Simulation at 07/21 for CHICAGO_IL_USA COOLING .4% CONDITIONS DB=>MWB
-Initializing New Environment Parameters
-Warming up {1}
-Warming up {2}
-Warming up {3}
-Warming up {4}
-Warming up {5}
-Warming up {6}
-Starting Simulation at 01/21 for CHICAGO_IL_USA HEATING 99.6% CONDITIONS
-Writing final SQL reports
-EnergyPlus Run Time=00hr 00min  0.24sec
-
-
-

It’s as simple as that to run using the EnergyPlus defaults, but all the -EnergyPlus command line interface options are also supported.

-

To get a description of the options available, as well as the defaults -you can call the Python built-in help function on the IDF.run method and -it will print a full description of the options to the console.

-
help(idf.run)
-
-
-
Help on method run in module eppy.modeleditor:
-
-run(self, **kwargs) method of eppy.modeleditor.IDF instance
-    This method wraps the following method:
-
-    run(idf=None, weather=None, output_directory=u'', annual=False, design_day=False, idd=None, epmacro=False, expandobjects=False, readvars=False, output_prefix=None, output_suffix=None, version=False, verbose=u'v', ep_version=None)
-        Wrapper around the EnergyPlus command line interface.
-
-        Parameters
-        ----------
-        idf : str
-            Full or relative path to the IDF file to be run, or an IDF object.
-
-        weather : str
-            Full or relative path to the weather file.
-
-        output_directory : str, optional
-            Full or relative path to an output directory (default: 'run_outputs)
-
-        annual : bool, optional
-            If True then force annual simulation (default: False)
-
-        design_day : bool, optional
-            Force design-day-only simulation (default: False)
-
-        idd : str, optional
-            Input data dictionary (default: Energy+.idd in EnergyPlus directory)
-
-        epmacro : str, optional
-            Run EPMacro prior to simulation (default: False).
-
-        expandobjects : bool, optional
-            Run ExpandObjects prior to simulation (default: False)
-
-        readvars : bool, optional
-            Run ReadVarsESO after simulation (default: False)
-
-        output_prefix : str, optional
-            Prefix for output file names (default: eplus)
-
-        output_suffix : str, optional
-            Suffix style for output file names (default: L)
-                L: Legacy (e.g., eplustbl.csv)
-                C: Capital (e.g., eplusTable.csv)
-                D: Dash (e.g., eplus-table.csv)
-
-        version : bool, optional
-            Display version information (default: False)
-
-        verbose: str
-            Set verbosity of runtime messages (default: v)
-                v: verbose
-                q: quiet
-
-        ep_version: str
-            EnergyPlus version, used to find install directory. Required if run() is
-            called with an IDF file path rather than an IDF object.
-
-        Returns
-        -------
-        str : status
-
-        Raises
-        ------
-        CalledProcessError
-
-        AttributeError
-            If no ep_version parameter is passed when calling with an IDF file path
-            rather than an IDF object.
-
-
-

Note 1: idf.run() works for E+ version >= 8.3 -Note 2: idf.run(readvars=True) has been tested only for E+ version >= 8.9. It may work with earlier versions

-
-

Running in parallel processes

-

One of the great things about Eppy is that it allows you to set up a lot -of jobs really easily. However, it can be slow running a lot of -EnergyPlus simulations, so it’s pretty important that we can make the -most of the processing power you have available by running on multiple -CPUs.

-

Again this is as simple as you’d hope it would be.

-

You first need to create your jobs as a list of lists in the form:

-
[[<IDF object>, <dict of command line parameters>], ...]
-
-
-

The example here just creates 4 identical jobs apart from the -output_directory the results are saved in, but you would obviously want -to make each job different.

-

Then run the jobs on the required number of CPUs using runIDFs…

-

… and your results will all be in the output_directory you specified.

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html deleted file mode 100644 index f74c0852..00000000 --- a/docs/_build/html/search.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - Search — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -

Search

-
- -

- Please activate JavaScript to enable the search - functionality. -

-
-

- From here you can search these documents. Enter your search - words into the box below and click "search". Note that the search - function will automatically search for all of the words. Pages - containing fewer words won't appear in the result list. -

-
- - - -
- -
- -
- -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js deleted file mode 100644 index 8cbed229..00000000 --- a/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({docnames:["HVAC_Tutorial","HVAC_diagrams","LICENSE","Main_Tutorial","Outputs_Tutorial","changes","dev_docs/classes_eppy","dev_docs/data_eppy","dev_docs/doc_eppy","dev_docs/epbunch","dev_docs/future_eppy","dev_docs/hist_eppy","dev_docs/idf_msequence","dev_docs/index","dev_docs/modeleditor","dev_docs/phil_eppy","dev_docs/pytest_eppy","eppy","eppy.EPlusInterfaceFunctions","eppy.useful_scripts","eppyfunctions","eppyrecipies","index","installation","modules","newfunctions","runningeplus","useful_scripts"],envversion:52,filenames:["HVAC_Tutorial.rst","HVAC_diagrams.rst","LICENSE.rst","Main_Tutorial.rst","Outputs_Tutorial.rst","changes.rst","dev_docs/classes_eppy.rst","dev_docs/data_eppy.rst","dev_docs/doc_eppy.rst","dev_docs/epbunch.rst","dev_docs/future_eppy.rst","dev_docs/hist_eppy.rst","dev_docs/idf_msequence.rst","dev_docs/index.rst","dev_docs/modeleditor.rst","dev_docs/phil_eppy.rst","dev_docs/pytest_eppy.rst","eppy.rst","eppy.EPlusInterfaceFunctions.rst","eppy.useful_scripts.rst","eppyfunctions.rst","eppyrecipies.rst","index.rst","installation.rst","modules.rst","newfunctions.rst","runningeplus.rst","useful_scripts.rst"],objects:{},objnames:{},objtypes:{},terms:{"00hr":26,"00min":26,"07n":4,"100mm":3,"19mm":[3,25],"1is":27,"1mat":27,"1outsid":27,"1pb":3,"1pf":3,"1pl":3,"1pr":3,"1px":4,"1sb":3,"1sf":3,"1sl":3,"1sr":3,"200mm":3,"24sec":26,"25mm":[3,27],"44ad2b53d42c":25,"50mm":3,"52df819ac489":25,"5zonecavtovavwarmesttempflow":27,"5zonecavtovavwarmesttempflowtable_abup":4,"5zonesupretplenrab":[1,3],"725300_tmy3":26,"8aa7211fcb66":9,"8constructiongarag":27,"break":[15,25],"case":[0,3,4,5,8,9],"catch":9,"class":[5,9,12,13],"default":[3,5,7,26],"final":[14,26],"float":[4,7],"function":[0,4,5,7,9,10,11,12,14,15,22,23,26],"import":[0,1,3,4,7,9,12,14,25,26,27],"int":3,"long":[9,14,25],"new":[0,5,7,12,22,26],"return":[3,4,5,9,25,26],"short":[3,9],"static":10,"super":9,"throw":[0,7,25],"true":[1,3,4,5,9,15,26],"try":[0,3,4,7,9,12,14,25,27],"while":7,AND:[2,4],Added:5,And:[4,7,15,27],Are:[3,7],BUT:2,Being:27,But:[3,4,5,9,12,25,27],DOS:5,Eis:27,FOR:[2,4],For:[0,3,4,9,23,25,27],Has:25,NOT:2,Not:[4,12,25,27],ONE:3,One:[7,10,26],SYS:4,Such:[5,9],THE:2,That:[3,4,7,12,15,25,27],The:[0,2,3,4,5,7,9,11,12,13,14,20,23,25,26,27],Then:[9,15,25,26],There:[0,3,4,5,7,14,15,25,27],These:[3,25],USE:2,Use:[0,3,4,9,23],Useful:[5,22],Uses:4,Using:9,WITH:2,Will:25,With:[3,25],Yes:[3,7,9,25],_____:3,__getattr__:9,__getitem__:9,__init__:9,__repr__:9,__setattr__:9,__str__:9,_field:4,_setitem__:9,a824cb1ec673:25,a_b:4,a_loop:0,abil:[5,9,10,13,15],abl:[5,15],about:[0,4,7,9,14,25,26],abov:[0,2,3,4,5,7,9,12,15,25,27],absorpt:[3,25],accept:12,access:[4,7],achanei:7,achiev:14,acoust:3,across:0,act:[9,12],action:2,actual:[3,4,9,14],adapt:4,add:[8,9,12,15,25],added:[3,5],adding:13,addit:23,addobject:3,address:4,adequetli:4,adher:15,adiabat:0,adict:[7,9],advanc:9,advantag:3,after:[3,5,12,26,27],again:[0,3,7,9,13,15,26,27],agnost:15,aha:[0,15,25],air:[5,7,9],airgap1:7,airgap2:7,airgap:[7,9],airgaps1:7,airloop_idf:0,alex:12,alia:9,all:[0,2,4,5,7,9,10,12,14,15,26,27],allen:2,allow:[0,3,4,7,9,14,26],alltitl:4,allud:[13,15],alpha:[5,7,9],alreadi:[3,7,25],also:[3,4,9,11,25,26,27],altern:7,although:9,alwai:15,ambigu:0,ancestor:11,ani:[2,3,4,5,7,9,11,12,13,14,15,25],annual:[4,26],anot:9,anoth:[0,3,25],anotheridd:25,anothermateri:25,ans:0,answer:[3,7,15],anyth:[9,25],aon:9,apart:26,appear:3,append:[0,1,3,4,7,9,12,25,26,27],appendix:13,appl:3,applic:[0,26],approach:12,april:4,area:[3,4,9,15,20],arg:[0,5,9],argon:9,argument:[5,27],aris:[2,9],around:[9,12,26,27],articl:7,ashrae30pct:4,ask:[3,15],assign:25,associ:2,assum:[4,12,13],asurfac:3,atabl:4,atablestr:4,attempt:15,attribut:[3,7,9,25],attributeerror:[9,26],audienc:13,audreyr:5,august:4,author:[2,3,9,11,15],autogener:27,automat:[5,25],avail:26,availabilitymanag:7,avali:3,averag:4,avoid:15,awesom:[3,12],axi:[3,7,9,25],azimuth:[3,20,25],b_c:4,back:[0,3,9,10],background:9,backslash:5,bacon:3,bad_architect:3,bai:9,bannana:3,base:[3,10,11],baset:4,bash:27,basi:7,basic:4,basicsfil:26,batch:15,becaus:[3,4,7,9,14,15],becom:[0,3,4,10,13,15],been:[3,4,5,7,9,14,25,26],befor:[0,3,4,7,14,15,25,27],begin:[3,26],behavior:9,behind:[3,9,13,15],belong:5,below:[0,3,4,7,9,13,14,25,27],berri:3,best:12,better:15,between:[25,27],beyond:15,bhp:5,big:[3,15],bird:9,bit:27,blank:3,blankstr:25,bldgprop:7,blender:10,block:3,board:[3,25],bold:4,bool:26,border:[4,27],both:[4,5,12,15],bother:0,bottl:10,bottom:[3,15],box:25,brach:0,bracket:3,brake:25,branch1:0,branch2:0,branch3:0,branch:0,breakfast:3,brick:3,brief:14,browser:27,bug:5,bugfix:5,build:[3,4,7,8,9,10,20,25],builder:[10,15],buildingsurfac:[3,9,25],built:[0,3,7,13,26],builtin:4,bull:2,bunch:[5,12,13],bunch_airgap:9,bunch_subclass:[7,9,25],bunchdict:[7,9],butter:[3,25],c_d:4,c_loop:0,calcul:[3,7,9,25],call:[0,3,4,9,12,14,15,25,26],calledprocesserror:26,can:[0,3,4,5,7,9,12,14,15,21,25,26,27],cannot:[14,15,25],cap:7,capit:[7,26],captur:4,care:[12,25],careful:7,catb:15,caught:25,ceil:[7,9,25],cell1:4,cell2:4,cell:4,cellpad:4,central_chil:0,certain:[3,12],cfm:5,ch01s06:15,chang:[0,3,4,7,9,12,13,14,15,22,25,27],charact:[7,27],charg:2,chdir:27,cheat:15,check:[3,4,12],checkrang:[9,20,25],chicago_il_usa:[3,7,9,25,26],child:15,chill:0,chilled_water_:0,chiller:0,choke:12,citi:[3,7,9,25],claim:[2,15],clariti:[0,9,13,15,27],classic:15,classmethod:14,claus:3,clean:[15,27],cleanup:5,clear:[12,13,15],clearer:4,clever:15,clip:4,clng:[3,27],closer:3,code:[0,3,4,5,7,9,12,13,14,15,25,27],coffe:3,coil:0,collaps:4,collect:12,column:[4,27],com:[0,5,7,9,11],combin:4,come:[0,4,7,9,13],comeback:9,comfort:[4,14],command:[3,26,27],commdct:1,comment:[3,14,15],common:21,commonli:20,compar:[5,7,25],complet:[5,8,9],complex:[0,15],complic:[3,14],compon:0,composit:15,comprehens:10,comput:[7,14,25],concept:3,concret:3,condens:0,condenser_:0,condensorloop_idf:0,condit:[2,3,4,9,26],conduct:[3,25,27],conductionfinitediffer:7,confirm:25,confus:[3,25],connect:[0,2,12,15,27],conserv:15,consol:26,constantvolum:25,constr:27,constr_diff:27,constraint:[4,15,27],construct:[1,3,4,5,7,9,12,25,27],construction_nam:3,constructions_diff:27,construnct:3,contain:[0,3,4,7],content:[4,13,22,24],continu:13,contract:2,contrast:13,contribut:13,control:25,converg:[3,7,9,25],convers:4,convert:[4,7],cookiecutt:5,cool:[0,4,12,26],coolingcoil:0,coordin:3,copi:[0,2,5,7,14],copyidfintoidf:20,copyidfobject:[3,20,25],copynam:5,copyright:2,correct:[5,25],correctli:9,could:[0,4,9,10,11,15,25,26],count:4,coupl:[0,7],cours:[7,15,25],cpu:26,cpython:23,creat:[3,9,12,14,25,26],creation:14,csv:[26,27],cubic:25,cumbersom:[3,25],current:27,curv:15,d_branch1:0,d_branch2:0,d_branch3:0,d_end_branch:0,d_start_branch:0,d_start_brandh:0,dai:[3,7,9,25,26],daigram:27,damag:2,dammit:12,darwin:25,dash:26,data:[1,3,9,11,13,15,26],date:[3,15],daylight:25,db0:0,db1:0,db2:0,db3:0,db4:0,deal:[2,9,14],debug:[7,15],decemb:4,decis:[7,14,15],decor:14,deep:15,def:9,defaultmateri:25,defaultvalu:25,defaultvlau:5,defautl:25,defin:[9,25],deg:3,degre:3,delet:15,deltac:3,demand:0,demandsid:0,dement:7,demnd:[0,27],demonstr:[3,9,15,25],densiti:[3,25],depend:15,depth:[9,14],describ:[0,4,7,12,15,25],descript:[14,26],design:[7,13,14,15,26],design_dai:26,designbuild:27,detail:[0,3,9,14,25],determin:3,dev1:[7,9],develop:[5,15,22],diagram:[1,10,23],diagramt:0,dict:[7,9,12,15,26],dictionari:[9,15,26],did:[0,3,7,9,12,14,25],didn:3,diff:27,differ:[0,3,4,9,12,14,25,26,27],difficult:7,digit:4,direct:[11,12,27],directli:[8,11,26],directori:[26,27],discov:25,discuss:12,disk:25,dispatch:14,displai:[0,3,4,5,26,27],display_png:[0,3,4,27],distribut:[2,3,7,9,25],distrust:15,dive:9,divers:15,django:10,dloop:0,do_plant_sizing_calcul:25,do_system_sizing_calcul:25,do_zone_sizing_calcul:25,doc:[0,5,7],doc_imag:27,document:[2,4,5,9,14,15,16,20,21,25,27],doe:[0,3,4,7,9,12,15,25,27],doing:[0,1,3,7,9,14,15,25,26,27],don:[0,3,4,7,9,12,14,25],donald:3,done:[0,1,3,5,7,8,9,14,25,26,27],door:[5,27],dos:[5,27],dot:[1,5,7,9,25,27],dotnam:1,doubl:9,doubt:15,down:0,download:4,draw:[0,5,23,27],dsc:7,dtl:[9,14],duct:0,due:15,dunder:13,dure:4,each:[0,3,7,25,26],earli:15,earlier:[9,13,26],eas:9,easi:[3,4,9,15,25],easier:[7,15],easili:[3,25,26],easy_instal:[0,1,3,7,9,25,26,27],easyopen:[5,25],economi:15,edg:[0,1,9,27],edit:[10,15],editor:[3,10,27],edu:7,effect:[9,10,15],effici:3,egg:3,either:[5,25],electr:[0,4],eleg:3,elev:[3,7,9,25],els:[0,3,15],embodi:0,empir:[3,7,9,25],emplti:25,empti:[0,3,7,25],end:[0,3,4,5,7,25],end_branch:0,energi:[0,1,3,4,7,9,12,15,25,26,27],energymanagementsystem:7,energyplu:[0,4,5,7,10,11,14,15,22,25,27],engin:15,english:15,enhanc:10,entir:[0,3,5,14,25],enumer:[3,7],environ:26,ep_bunch:12,ep_vers:26,epbunch1:7,epbunch2:7,epbunch5:7,epbunch:[5,12,13,14,25],eplu:26,eplusinterfac:[13,14],eplusinterfacefunct:1,eplust:26,eplustbl:26,eplusv8:[5,27],epmacro:26,epp:4,eppi:[0,1,4,5,9,12,25,27],eppy_vers:5,eppyreadtest_fil:5,eppyreadtest_fold:5,epw:[25,26],epwfil:26,equal:25,eric:2,error:0,esch:25,especi:[9,15],esr:15,essenti:14,etc:[3,5,7,25],evaporativecool:7,even:[3,5,9,12],event:2,ever:25,everi:[3,9],everywher:25,evolut:15,evolv:7,ex_init:[0,3,4],ex_loopdiagram:[0,1],exactli:0,exager:7,exampl:[3,4,9,25,26,27],examplefil:26,excel:[12,15,25],except:[0,3,7,9],exercise1a:26,exisit:0,exist:[0,7,14,25],exit:[5,27],expandobject:26,expect:[3,9,25],expens:15,experi:9,experienc:9,explain:[3,14],explan:[3,7,9,14],explicit:4,explor:[3,4,7],express:[2,7,15],extend:9,extens:[15,25,27],exterior:[3,27],exterior_nwal:3,extra:[0,5],extract:[7,9],eye:9,f04:[7,9],f05:[7,9],f08:[3,27],f16:3,face:3,fact:[7,9],factor:4,fail:15,fairli:9,fals:[3,5,25,26],fan:[0,3,5],fan_maxcfm:25,fanci:3,fanger:4,fangerppd:4,fanperform:25,fanpow:25,fanpower_bhp:25,fanpower_watt:25,far:[3,4,9,13],februari:4,feed:10,feet:25,few:[3,12,27],fhandl:[20,25],field1:7,field2:7,field3:7,field:[5,7,9,27],fieldnam:[3,5,20,25],figur:[3,12],file1:27,file2:27,file2constructionclng:27,file:[0,2,4,5,7,8,11,12,13,14,26],filehandl:4,filemerg:27,filenam:[3,14,27],fill:[25,27],final11_officemedium_std2010_chicago:4,find:[3,4,5,7,9,15,25,26,27],fine:25,first:[3,4,7,9,12,14,25,26,27],first_slic:3,firstfruit:3,firstitem:4,firstitem_t:4,firstitem_titl:4,firstmateri:[3,25],firstnod:0,fit:2,five:3,fix:[5,12,27],flask:10,flesh:12,floor:[3,4,25],flow:[5,25],fluid:0,fname1:[3,7,9,12,25],fname:[0,1,3,4,5,20,25],fold:15,folder:[0,3,5,15,27],folk:9,follow:[0,1,2,3,4,5,7,9,12,14,23,25,26,27],follwo:4,for_imag:[0,3,4,27],forc:[5,15,26],forget:12,forgotten:0,form:[4,9,12,26],format:[4,5,7,9,27],formerli:3,forth:3,forward:27,found:[4,14,15],four:3,fourth:3,framework:[10,16],free:2,fresh:3,from:[0,1,2,5,7,9,11,12,13,14,15,22,25,27],front:3,fruit:3,full:[3,26],fullexterior:[3,7,9,25],fulli:[7,9],fun:4,fundament:9,funni:9,funnydict:9,funtion:4,furnish:2,further:[7,9,14,25],futur:[13,14,15,25],g01a:[3,25],g05:[3,27],gaga:3,gap:9,garag:27,gather:20,gave:3,gener:[0,3,4,7,8,15,27],geometri:[9,10,15],get:[0,3,5,7,9,14,15,25,26],get_referenced_object:5,getedg:0,getidfobjectlist:20,getobject:0,getrang:[9,20,25],getreferingobj:5,github:[0,5,7],give:[3,4,7,9,13,25],given:3,glass:3,goe:3,going:[0,4,7,9,12,25,27],gone:25,good:[3,4,9,10,11,13],goodfruit:3,got:4,gplv3:5,grab:4,grant:2,granular:10,graph:0,graphviz:23,grapphviz:27,grasshopp:5,great:[7,12,26],greater:12,grok:9,gross:7,groundheattransf:7,group:[3,7],grow:10,growth:10,grunt:25,guarante:25,guess:3,guid:15,gypboard:25,gypsum:[3,25],h_tabl:4,hack:[15,25,27],had:[9,11,15,25],haha:27,halv:0,hand:15,handl:[4,14,25],happen:[7,9,25],hard:[4,25],has:[0,3,4,5,7,9,10,12,14,15,25,26,27],have:[0,1,3,4,5,7,9,12,13,14,15,25,26,27],header:4,heart:[9,15],heat:[0,3,25,26],heat_recovery_:0,heatbalancealgorithm:7,heatbalanceset:7,heatcapac:5,heatcoil:0,heatingcoil:0,heavi:3,heavyweight:3,held:7,hello:27,help:[0,3,5,15,26,27],here:[0,3,4,9,12,14,15,20,25,26,27],herebi:2,hereconstructionsb:27,herei:27,herenot:27,hereoutputcontrol:27,hhh1:0,hhh_new:0,higher:12,histor:15,histori:13,hold:[3,7],holder:[0,2],hoop:[7,25],hope:[13,26],horizont:4,horsepow:25,hour:4,hous:3,housekeep:27,how:[0,4,5,9,10,12,13,14,25,26,27],howev:26,htabl:4,html:[0,4,7,8,9,15,27],html_snippet1:4,html_snippet2:4,htmlout:4,http:[0,5,7,9,15,23],human:[9,15],hvac:[1,10,15,22],hvacbuild:[0,5],hvacbulid:15,i01:3,i02:3,idd:[0,1,3,5,7,9,11,12,13,14,26,27],idd_airgap:7,idd_info:[3,9,14],iddalreadyseterror:[3,25],iddfil:[0,1,3,7,9,12,25,26,27],iddfilenam:14,iddnotseterror:25,idea:[9,14],ideal:[7,15],ident:26,identifi:[3,4,7,9,25],idf0:13,idf1:[3,9,14,20,25],idf2:14,idf3:14,idf:[0,1,4,5,7,10,11,12,13,15,20,26],idf_emptyfil:25,idf_file_loc:[5,27],idf_filenam:[5,27],idf_fromfilehandl:25,idf_fromfilenam:25,idf_help:20,idf_msequ:13,idf_msequence_old:12,idf_notemptyfil:25,idfdiff:5,idfdiff_miss:5,idfdiff_path:27,idfeditor:3,idffil:[1,3,5,7,9,12,25,27],idffile2:27,idffilenam:14,idfnam:[5,25,26],idfobject:[0,3,5,9,12,14,20,27],idfread:3,idftxt:25,idiom:3,ids:12,ignor:[4,9,12,27],illeg:7,illustr:[3,4],imag:[0,3,4,10,27],implement:[7,12],impli:2,improv:10,includ:[2,5,12,15],incomplet:8,incorrectli:25,increas:3,increment:7,inde:0,index:[3,4,7,9,22,25],indic:9,indirect:7,individu:3,inform:[0,3,4,10,15,26,27],inherit:12,initi:[0,4,9,14,25,26],initit:14,inlet:0,innard:15,input:[3,4,7,9,25,26],insert:12,insid:[3,4,7],inspect:15,inspir:15,instal:[0,1,3,4,5,7,9,13,22,25,26,27],instanc:[0,12,14,26],instead:0,insul:3,intend:15,intent:14,interfac:[10,11,15,26],interior:[3,25],interiorwal:25,intern:25,internalvari:7,internet:25,intl:26,intuit:7,invalid:25,involv:9,ipython:[4,5,9,13,25,27],isn:12,isol:3,issu:[0,13],item:[4,7,12,25],item_from_enumer:3,its:3,itself:[13,15],jagger:3,jami:2,januari:4,job:[3,26],jog:9,join:[0,4],json:5,json_funct:[5,20,25],json_str:[20,25],juli:4,jump:[7,25],june:4,just:[0,3,4,7,9,12,15,25,26,27],justtext:4,keep:[3,15],kei:[0,7,9,25,27],kept:7,kid:15,kind:[0,2,12],kit:10,knew:4,know:[0,3,4,7,12,25,27],knowledg:[3,9,15],kwarg:[9,26],kwh:4,label:4,labelin:4,labl:4,ladi:3,languag:[3,7,9,10,15],larg:[3,7,14],larger:[3,27],last:[3,4,7,9,25],last_ltabl:4,lastnod:0,later:[3,7,14,27],latest:5,latitud:[3,7,9,25],layer:[25,27],layer_2:25,layer_3:25,layermat:27,lazi:[0,12],lbunch:9,lead:[0,7,10],learn:[3,15],least:[10,15,25],leav:[3,4,25],left:[3,25],legaci:26,legal:25,len:[3,7],length:3,leora:3,less:[7,25],let:[0,3,4,7,8,9,12,15,25,27],letter:[3,4],level:[7,10],liabil:2,liabl:2,librari:[5,7,9,15],licens:[5,22],lies:[10,25],lift:3,light:[3,10],lightweight:3,like:[0,3,4,7,9,10,12,14,15,25,26,27],like_bunch:9,limit:[2,4],line1:4,line2:4,line:[0,1,3,4,5,7,9,25,26,27],lineend:5,lines_before_t:4,link:[0,9,12],list1:12,list2:12,list:[0,4,5,7,8,9,12,15,25,26],listnam:3,listofcompon:0,littl:[0,3,4,7,9],live:9,load:[3,4,7,9,25],loads_convergence_tolerance_valu:[3,20,25],locat:[3,5,7,9,25],location_of_airgap:7,location_of_vers:7,logic:[3,15],longitud:[3,7,9,25],longterm:13,look:[0,3,4,7,9,12,13,14,15,25,27],loop:[1,5,22,23],loopdiagram:[0,5],loopnam:0,lot:[3,7,13,26],lousi:25,ltabl:4,luck:25,m01:3,m05:3,m11:3,m15:3,mac:27,machin:[5,15],made:[0,3,5,7,9,12,14,15,25],magic:[12,13],magicmethod:9,mai:[0,4,5,7,9,10,13,15,25,26,27],main:[15,25],make:[0,1,3,4,5,7,9,10,12,14,15,26,27],makeairloop:0,makeairplantloop:1,makecondenserloop:[0,5],makediagram:1,makeplantloop:[0,5],malayalam:15,mango:3,mani:[12,15,25,27],manner:[0,3,7],march:4,mark:3,martelli:12,master:3,mat:27,match:[5,25,27],materi:[5,7,9,25,27],material_list:3,materialnam:[7,9],mathemat:0,matter:3,maximum:[3,4,7,9,25],maximum_number_of_warmup_dai:[3,9,25],mea:14,mean:[3,7,14,15,25],meant:15,mechan:15,mediumrough:3,mediumsmooth:[3,25],meetup:9,melon:3,memo:[7,9],memori:[0,7,9],merchant:2,merg:2,messag:[5,26,27],met:4,metal:[3,27],meter:3,method:[12,13,25,26],mick:3,microturbin:7,might:[3,27],min:[7,9],mind:9,minimum:[3,4,7,9,25],minimum_number_of_warmup_dai:[3,25],minor:[5,14],minut:25,miss:5,mistak:[3,7],mit:[2,5],mix:5,mixer:0,model:[1,9,10,12,14,15],modeleditor:[0,1,3,5,7,9,12,13,20,25,26],modif:3,modifi:2,modul:[4,9,15,22,24,25,26],modular:15,moment:[0,9],month:4,more:[0,4,5,7,9,10,14,15,25],most:[4,9,13,15,20,25,26,27],move:0,msequenc:12,much:[3,7,9,10,15],multipl:[0,3,14,26],munch:5,must:15,mutablesequ:12,mutat:12,mwb:26,myhous:27,myth:9,name:[0,3,4,5,7,12,13,14,20,26],named_grid_h:4,named_grid_v:4,natur:15,navig:3,nbsp:4,neat:12,need:[0,3,4,5,7,8,9,12,13,23,25,26,27],neglig:15,nerdi:0,net:4,net_site_energi:4,network:10,new_branch:0,newbr:0,newer:[12,15],newfound:3,newfunct:5,newidfobject:[0,3,5,12,20,25],newnam:[5,25],newobject:25,next:[3,7],nextnod:0,nice:[0,3,4],nightcycl:7,nightventil:25,node:0,nodefaultmateri:25,noisili:15,none:[9,25,26],noninfring:2,normal:25,normali:[0,1,3,7,9,25,26,27],north:[3,7,9,25],north_axi:[3,9,25],north_wal:3,north_wall_info:3,northern:3,nota:9,notat:[7,9],note:[0,3,4,7,23,25,26,27],notebook:[5,13,27],notemptyfil:25,noth:15,notic:[2,3,4,7,13],novemb:4,now:[0,3,4,5,7,9,10,12,15,25,27],np1:0,np2:0,ntrow:4,number:[3,4,5,7,9,12,14,15,25,26],number_of_kei:7,numer:7,obj:9,obj_i:9,obj_idd:9,object:[5,7,9,12,14,15,26,27],objectnam:3,objidd:9,objl:9,obtain:2,obvious:[3,14,26],octob:4,off:[0,3,12,13,27],often:25,ohar:26,old:3,older:5,oldnam:25,onc:[0,3,9,14,15,25],one:[0,3,4,7,9,12,13,14,15,25],onli:[0,3,4,5,7,9,12,14,15,25,26],onlymateri:25,onoff:25,opaqu:[7,9],open:[0,3,4,5,7,10,12,13,14,27],oper:[3,12],opinion:9,optim:15,option:[0,5,26,27],orang:3,order:[0,3,7],ordinari:9,org:[0,7,15,23],organ:3,orient:3,origin:[5,13,14,27],other:[0,2,3,5,7,8,9,12,13,15,20],otherwis:2,our:[0,3,4,9,25,26],out:[0,2,3,4,9,12,25,27],outdoor:3,outdoorairunit:7,outlet:0,output:[3,5,22,26],output_directori:26,output_prefix:26,output_suffix:26,outputcontrol:27,outputfil:4,outsid:[7,9,14,25,27],outside_boundary_condit:3,outside_lay:25,over:[7,25],overhead:14,overrid:[7,9,12,15],own:[3,12],p_fruit:3,p_loop:0,p_loop_supply_mix:0,p_loop_supply_splitt:0,packag:24,packagedterminalaircondition:7,page:[0,4,15,22,25],painful:25,paragraph:4,paramet:[5,7,26],pars:15,parsimoni:15,part:[3,15,25],particular:2,pass:[0,3,9,14,25,26],past:[0,3],path2weatherfil:25,path:[0,1,3,4,5,7,9,10,12,25,26,27],pathnameto_eppi:[0,1,3,4,7,9,12,25,26,27],peach:3,peanut:[3,25],peanutbuttermateri:3,pear:3,peer:25,peopl:[0,3,13],per:[4,25],perfectli:[4,12],perform:3,perimeter_mid_zn_4:4,period:[3,7,9,25],permiss:2,permit:2,person:2,philip:[2,3,9,11,15],philosophi:13,pick:[3,15],piec:14,piggyback:15,pinch:7,pip:[0,1,3,5,7,9,23,25,26,27],pipe1:0,pipe2:0,pipe:0,place:[0,3,25],placehold:0,plai:[12,25],plant:[3,7,9,25,27],plantloop1:0,plantloop2:0,plantloop:[0,27],platform:[5,15],plenti:3,plug:3,plugin:23,plum:3,png:[1,5,27],pngname:1,poetic:15,poetri:15,point:[4,7,9,12,14,25],poke:14,polici:15,polish:15,polit:27,pop:[3,12],pope:12,popidfobject:[20,25],portion:2,posit:[4,5,27],possibl:[0,5,10,14,15],poster:27,power:[3,5,26],pprint:4,pre:0,preced:14,prefer:15,prefix:26,present:[3,10],pretti:[3,4,7,25,26,27],prettyprint:4,previou:[4,7,9,14],prevnod:0,primari:26,princeton:7,principl:[11,15],print:[0,1,3,4,7,9,12,25,26,27],printidf:[3,7,9,20,25],prior:26,probabl:12,problem:[3,12,25],profession:[9,13],program:[0,3,7,13,14,15,25,27],programm:[9,13,15],programmat:3,progress:[20,21,27],project:10,prompt:27,prototyp:15,provid:[0,2],publish:2,pull:7,pure:10,purpos:[2,10,13],push:15,put:[0,3,14,15,25],pydot:27,pyeplu:3,pypi:7,pyramid:10,pytest:13,python2:[5,23],python3:5,python:[0,1,4,5,7,10,12,13,15,23,26,27],question:[0,7,9,12,15],quickli:3,quiet:26,quit:[0,10,11],quot:25,r_42:12,r_5:12,rafekettl:9,rage:13,rais:[0,12,25,26],rambl:3,rang:3,rangeerror:25,rate:4,rather:[3,12,25,26],reach:0,reaction:9,read:[3,5,7,9,11,12,13,15,22,25,27],readabl:[9,15],readdatacommdct:1,reader:[11,15],readhtml:[4,5],readidf:1,readingfil:1,readtabl:4,readthedoc:5,readvar:26,readvarseso:26,real:[0,7,9,25,27],real_construct:12,realli:[0,3,4,12,14,26,27],reason:[7,15],reasonbl:10,recent:[9,25],recipi:22,recoveri:0,redfruit:3,redund:10,refactor:5,refer:[4,5,7,9,25],refin:14,reflect:[5,7,12],rel:26,relat:[5,25],releas:15,reli:12,reload:3,remain:4,rememb:3,remind:7,remot:25,remov:[5,25],removeidfobject:[20,25],reorgan:5,repair:15,replac:[0,4,5,7,27],replacebranch:0,report:[4,26],represent:15,reprint:27,requir:[5,7,9,26],rescu:4,research:9,researchspeci:7,reserv:27,resist:[7,9,10],resourc:[0,1,3,4,7,9,12,25,27],respond:12,respons:0,rest:[7,9,23],restrict:2,restructur:13,result:[3,4,12,25,26,27],retain:[5,7],revers:[0,12],review:[3,5,9,25],rfactor:5,rich:3,right:[0,2,3,4,9,10,15],robust:[7,11,15],roof:[3,7,25],rooftop:3,rotten:3,rottenfruit:3,rough:[3,25],routin:14,row:4,rst:[5,8],rule:[4,15,25],run:[0,3,5,7,9,15,22,25,27],run_output:26,runidf:26,runtim:26,rural:25,s_name:3,s_names_area:3,s_names_azm:3,s_names_tilt:3,safe:3,sai:[0,3,4,7,9,15,25,27],said:[3,14],salt:7,same:[0,3,5,7,12,14,25,27],sampl:[4,12,25],santa:3,santosh:[2,3,9,11,15],santosh_philip:11,sapzone1:27,satisfi:4,save:[0,5,20,25,26,27],save_output:27,savea:[0,3,5,20],savecopi:5,sb0:0,sb0_pipe:0,sb12:3,sb14:3,sb15:3,sb1:0,sb1_pipe:0,sb21:3,sb23:3,sb25:3,sb2:0,sb2_pipe:0,sb32:3,sb34:3,sb35:3,sb3:0,sb3_pipe:0,sb41:3,sb43:3,sb45:3,sb4:0,sb4_pipe:0,sb51:3,sb52:3,sb53:3,sb54:3,scan:5,scene:[3,9],scienc:7,script:[0,3,5,10,14,15,22,25],scroll:27,search:[3,22],second:[3,4,25,27],second_slic:3,secondmateri:3,section:[5,7,9,13,14,16],see:[0,3,4,7,9,12,13,15,25,26,27],seem:[7,9],seen:25,select:[3,25],self:[9,26],sell:2,send:[25,27],sens:[0,3,7,10,12,13,15],sensibl:4,sentenc:3,separ:[3,15,27],separatorhtmlcsv:27,seper:[0,7,25,27],septemb:4,seri:0,server:25,set:[4,5,7,12,14,26],setiddnam:[0,1,3,7,9,12,25,26],setpoint:4,setup:[0,1,3,5,7,9,25,26,27],shade:7,shadowcalcul:7,shahriar:0,shall:[2,9,12],shape:0,sheer:12,shini:25,shorten:9,shorter:3,should:[0,3,9,10,12,14,15,25],shouldn:25,show:[0,3,4,5,7,9,10,12,27],shown:[0,4,15,25,27],side:[0,27],silenc:15,similar:[0,7,9,12],similarli:12,simpl:[0,3,4,7,11,12,15,26,27],simpli:[0,7,9,12,13,14,15,25,27],simplic:15,simplif:7,simplifi:9,simplist:15,simul:[3,7,9,15,25,26],simulationcontrol:[3,7,9,25],sinc:[3,7,10,12,15,25],singl:[0,3,14,15,25],singlelin:7,site:[3,4,7,9,25],size:[3,7,9,25],skip:3,slab:[3,7,27],slant:13,slick:25,slightli:[3,27],sloop:0,slow:26,small:[3,7,9,10,12,15],smallfil:[3,12,25],smooth:3,snippet:[4,7,25],softwar:[2,10,15,27],solar:[3,7,9,25],solar_distribut:[3,25],solid:4,solv:3,some:[0,3,4,5,7,8,9,10,12,14,15,25,27],someconstraint:3,someth:[3,9,26],sometim:[3,14,25,27],somewher:[5,25,27],soon:15,sooner:15,sophist:3,sorceri:12,sort:12,sound:25,sourc:[4,5,10],south:3,space:[3,4,7,9],speak:15,special:[10,15],specif:[3,7,9,25],specifi:[3,26],specific_heat:[3,25],sphinx:13,splitext:1,splitter:0,spreadsheet:27,sql:26,squar:3,stackoverflow:[12,14],stackovverflow:12,stage:15,stai:5,standalon:15,start:[0,4,7,9,15,25,26,27],start_branch:0,start_brandh:0,startswith:3,state:[3,7,9,25],statement:[0,3,7,14],statu:26,step:[3,8,25],steve:3,still:[3,4,5,7,12,25],stitch:15,stop:[3,7,12],str:26,straight:[9,27],straightforward:[9,27],strang:7,strategi:12,string:[5,7,25],stringio:[0,14,25],structur:[3,4,11,13,15],stub:5,stuck:7,student:3,stupid:15,stupidli:7,sturctur:7,style:[4,26,27],subcategori:4,subclass:[7,13,14],subject:2,sublicens:2,substanti:2,subsurfac:5,success:3,suce:0,suffix:26,sugar:[9,13],sum:[4,25],summari:4,suppli:[0,27],supplyfan:0,supplysid:0,support:[5,26],suppos:5,supppli:0,sure:[0,3,9,14,25,27],surfac:[3,5,9,20,25,26,27],surfaceconvectionalgorithm:7,surpris:15,svbtle:0,symbol:3,syntact:[9,13],syntactic_sugar:7,syntax:[3,7,9,25],sys:[0,1,3,4,7,9,12,25,26,27],system:[3,7,9,25,27],tab:5,tabl:[5,7,9,13,26,27],table_itself:4,tag:4,tagenti:0,taj:25,take:[0,3,4,7,9,10,12,15,25,27],taken:[5,25],talk:14,tangent:12,tanjuatco:3,taoup:15,task:15,tast:3,tell:[0,3,7],temperatur:[3,7,9,25],temperature_convergence_tolerance_valu:[3,25],templat:5,ten:7,tenth:3,term:[0,7,25],termin:[23,26,27],terrain:[3,7,9,25],test:[5,7,9,12,13,25,26],text:[0,3,4,7,11,13,15,27],than:[3,7,12,14,15,26],thefan:25,thei:[3,5,7,9,12,13,14,15,25,27],theloop:0,them:[0,3,4,5,7,9,12,14,15,27],themselv:0,theori:0,thermal:[3,4,7,9,25],thermal_resist:[7,9],thi:[0,2,3,4,5,7,8,9,10,12,13,14,15,16,20,21,23,25,26,27],thick:[3,25],thick_materi:3,thin:27,thing:[3,7,9,13,15,25,26],think:[15,25],third:[3,4,7,25],thirdmateri:25,thirdrow:4,thirdrow_secondcolumn:4,those:[3,4,9,15,25],though:[3,5,9,12],thread:12,three:[0,1,3,4,7,9,12,25,26,27],threee:0,through:[0,5,7,9,10,12,15],thrown:0,thru:[5,25],tile:3,tilt:[3,20,25],time:[0,3,4,7,9,14,15,25,26],timestamp:4,tire:3,titl:4,tmve:7,tmy2:[3,7,9,25],to_print:3,todo:13,togeth:[7,14,15,25],toggl:5,toler:[3,7,9,25],too:[3,9,14,25],tool:[10,15],top:[3,4],toplog:0,tort:2,total:4,traceback:[9,25],tradit:15,tran:2,transit:5,transpar:15,trick:4,tricki:[3,7,15],tring:7,trump:3,trust:9,tuan:2,tupl:[0,4],turn:0,tutori:[0,22,25],two:[0,3,4,5,12,14,15,25],twoindependentvari:7,twolist:12,twotabl:4,txt:[25,27],type:[3,7,9,12,23,25,27],type_of_object:7,ughh:4,ugli:4,uncom:[0,1,3,7,9,25,26],undefin:25,underli:13,underscor:[3,4,7,9],understand:[3,4,7,9,14,15,27],unexpect:25,unfortun:7,unfortunatlei:27,unfortunt:4,unicod:4,uniqu:[4,7],unit:[3,7,9,13,25],unix:[5,13,27],unless:0,unlik:3,unord:7,unot:27,unrel:12,until:[3,14,25],updat:[0,5,9,14,15],updateidf:[20,25],upper:[0,7,12,25],usa_il_chicago:26,usag:[5,27],use:[0,2,3,4,5,7,9,10,12,13,14,15,25,27],used:[3,4,5,8,9,10,12,14,16,20,21,25,26],useful:[0,3,5,9,25,27],useful_script:[0,5,27],usefull_script:5,user:[5,10,13,15],uses:[3,5,7,8,9,11,15,27],using:[0,3,4,7,9,12,13,14,25,26,27],usual:[0,15,25],util:4,uvalu:5,v7_0_0_036:[0,3],v7_2_0:[3,7,9,12,25,27],v8_0_0:[0,1],v8_8:25,v_7_0:3,v_7_2:[3,4,7,9,12,25,27],v_8_1:4,v_tabl:4,valu:[3,4,5,7,9,14],values_in_first_column:4,values_in_first_row:4,varaibl:7,variabl:[3,4,7,13,14],variablevolum:25,veget:3,veiw:9,verbos:26,veri:[3,7,9,10,12,14,15,25,27],version:[3,5,7,9,11,12,14,15,25,26,27],version_identifi:25,vertic:[3,4],vertical_wal:3,visibl:[3,15,25],volum:[9,20],waht:4,wai:[0,4,7,9,12,15,21,25],walk:[15,25],walk_hvac:0,wall:[3,7,9,25],want:[3,4,7,12,13,15,25,26,27],warm:26,warmup:[3,7,9,25],warmupdai:9,warranti:2,was_first_item:3,was_last_materi:3,water:[0,4],watt:5,weather:[3,7,9,25,26],weatherdata:26,web:[3,10],weight:10,weird:4,well:[12,13,14,15,25,26],went:12,were:[3,5,7,15,25],what:[0,3,4,7,9,12,14,15,25,27],what_i_ate_todai:3,whatev:3,when:[0,3,5,7,8,9,13,14,15,25,26,27],where:[0,3,4,5,7,9,15,25,27],whether:2,which:[0,3,12,14,15,21,25,27],white:3,who:[9,13,15],whole:9,whom:2,why:[0,3,4,7,12,15,25],wihtin:12,wiki100k:7,wikipedia:7,wind:25,window:[3,5,25,27],windowdatafil:7,within:[3,7,9,12,13,14,15,25],without:[2,3,9,15,23,25],won:25,wood:[3,27],word:[3,4,9,25],work:[4,5,7,9,10,13,14,15,20,21,23,25,26,27],workflow:0,world:15,worth:15,woul:4,would:[0,1,3,5,7,9,10,12,14,25,26,27],wouldn:26,wow:4,wrap:[12,26],wrapper:[9,12,26],write:[0,1,3,13,15,26],write_png:1,written:[3,11,13,14,15,25],wrong:[9,12,25],wrote:[7,9,14],www:[7,9,15,23],x_y:4,xa0:4,y_z:4,yahoo:11,year:3,yet:[5,14,16,25,27],yipee:9,you:[0,1,3,4,7,8,9,12,13,14,15,25,26,27],youngson:2,your:[0,3,9,12,14,15,23,25,26,27],yourself:27,yup:[15,25],z_z:4,zen:15,zero:3,zone1:0,zone2:0,zone3:0,zone:[0,3,4,5,7,9,14,20],zonearea:[20,25],zoneexhaust:25,zonehvac:7,zonesurfac:5,zonevolum:[20,25],zoom:3},titles:["HVAC Loops","<no title>","LICENSE","Eppy Tutorial","Reading outputs from E+","Changes","classes eppy","Underlying Data Structure of eppy","Documenting eppy","EpBunch","The Future of eppy","History of Eppy","Idf_MSequence - Syntactic Sugar work","Developer Documentation for eppy","IDF in modeleditor","Philosophy of Eppy","Unit Testing Eppy","eppy package","eppy.EPlusInterfaceFunctions package","eppy.useful_scripts package","Eppy Functions","Eppy Recipies","Welcome to eppy\u2019s documentation!","Installation","eppy","New functions","Running EnergyPlus from Eppy","Useful Scripts"],titleterms:{"464a":5,"case":25,"class":[6,14],"default":25,"final":9,"function":[3,20,25],"new":[3,25],Adding:[3,25],The:[10,15],Use:25,Useful:27,Using:[4,25],__init__:14,about:3,access:3,add:3,adding:25,again:12,air:0,all:[3,25],appendix:15,area:25,argument:25,autos:19,bhp:25,blank:25,build:0,bunch:[7,9],cfm:25,chang:5,change_edg:19,check:25,compar:27,conceptu:0,condensor:0,content:[17,18,19],continu:[3,9],copi:[3,25],count:3,data:[4,7,12],delet:[3,25],detail:7,develop:13,diagram:[0,27],doc_imag:19,document:[8,13,22],dtl:7,dunder:9,energyplu:26,epbunch:[7,9],epbunch_1:9,epbunch_2:9,epbunch_3:9,epbunch_4:9,epbunch_5:9,eplusdata:18,eplusinterfac:[7,11],eplusinterfacefunct:18,eppi:[3,6,7,8,10,11,13,15,16,17,18,19,20,21,22,23,24,26],eppy_vers:[19,27],eppyreadtest_fil:[19,27],eppyreadtest_fold:[19,27],error:25,except:25,exist:3,extract:4,fan:25,field:[3,25],file:[3,9,15,25,27],filter:3,flow:0,from:[3,4,26],futur:10,geometri:3,get:4,grasshopp:23,histori:11,how:3,hvac:[0,27],idd:[15,25],idd_info:7,iddgroup:18,iddindex:18,idf0:14,idf1:7,idf:[3,9,14,25,27],idf_msequ:12,idfdiff:[19,27],idfdiff_miss:19,idfobject:25,indent:3,indic:22,instal:23,introduct:0,ipython:8,item:3,json:25,lesson:[3,25],licens:2,lines_t:4,list:3,locat:27,longterm:10,loop:[0,3,25,27],loopdiagram:[19,27],magic:9,make:25,mani:3,materi:3,method:[9,14],miscellan:25,model:[3,7],modeleditor:14,modifi:[0,3],modul:[17,18,19],more:3,mylib1:18,mylib2:18,name:[9,25,27],next:5,notebook:8,object:[3,25],off:25,open:[9,25],origin:7,other:[14,23,25],output:[4,27],overview:7,packag:[17,18,19],parallel:26,parse_idd:18,philosophi:15,plant:0,platform:23,power:[15,25],process:26,purpos:15,pytest:16,python:[3,9,25],quick:3,quickli:25,rang:25,read:[4,14],readidf:18,recipi:21,redirect:27,relatedobject:19,releas:5,remov:3,renam:25,renamecolon:19,restructur:8,rhino:23,run:[23,26],save:3,script:27,set:25,setiddnam:14,slice:3,sphinx:8,start:3,structur:[7,12],subclass:9,submodul:[18,19],sugar:[7,12],syntact:[7,12],tabl:[4,22],test:16,text:8,through:[3,25],titlet:4,todo:10,topic:13,topolog:0,travers:0,turn:25,tutori:3,two:27,underli:[7,12],unit:16,unix:15,updat:25,use:23,useful_script:19,valu:25,variabl:9,volum:25,wai:3,watt:25,welcom:22,whichlooperror:0,within:23,work:[0,3,12],zone:25}}) \ No newline at end of file diff --git a/docs/_build/html/useful_scripts.html b/docs/_build/html/useful_scripts.html deleted file mode 100644 index 5add2617..00000000 --- a/docs/_build/html/useful_scripts.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - Useful Scripts — eppy 0.5.46 documentation - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Useful Scripts

-
-

Location of the scripts

-

Here are some scripts that you may find useful. They are in the folder -“./eppy/useful_scripts”

-

And now for some housekeeping before we start off

-
import os
-os.chdir("../eppy/useful_scripts")
-# changes directory, so we are where the scripts are located
-
-
-
# you would normaly install eppy by doing
-# python setup.py install
-# or
-# pip install eppy
-# or
-# easy_install eppy
-
-# if you have not done so, the following three lines are needed
-import sys
-# pathnameto_eppy = 'c:/eppy'
-pathnameto_eppy = '../../'
-sys.path.append(pathnameto_eppy)
-
-
-

If you look in the folder “./eppy/useful_scripts”, you fill find the -following scripts

-

The scripts are:

-
- eppy_version.py
-- idfdiff.py
-- loopdiagram.py
-- eppyreadtest_folder.py
-- eppyreadtest_file.py
-
-
-
-
-

eppy_version.py

-

Many scripts will print out some help information, if you use the –help -option. Let us try that

-
%%bash
-# ignore the line above. It simply lets me run a command line from ipython notebook
-python eppy_version.py --help
-
-
-
usage: eppy_version.py [-h]
-
-I print the current version of eppy. Being polite, I also say hello !
-
-optional arguments:
-  -h, --help  show this help message and exit
-
-
-

That was useful !

-

Now let us try running the program

-
%%bash
-# ignore the line above. It simply lets me run a command line from ipython notebook
-python eppy_version.py
-
-
-
Hello! I am  eppy version 0.4.6.4a
-
-
-
-
-

Redirecting output to a file

-

Most scripts will print the output to a terminal. Sometimes we want to -send the output to a file, so that we can save it for posterity. We can -do that py using “>” with the filename after that. For eppy_version.py, -it will look like this:

-

python eppy_version.py > save_output.txt

-

Some of the following scripts will generate csv or html outputs. We can -direct the output to a file with .html extension and open it in a -browser

-
-
-

Compare two idf files - idfdiff.py

-

This script will compare two idf files. The results will be displayed -printed in “csv” format or in “html” format.

-

You would run the script from the command line. This would be the -terminal on Mac or unix, and the dos prompt on windows. Let us look at -the help for this script, by typing:

-
%%bash
-# ignore the line above. It simply lets me run a command line from ipython notebook
-python idfdiff.py -h
-
-
-
usage: idfdiff.py [-h] (--csv | --html) idd file1 file2
-
-Do a diff between two idf files. Prints the diff in csv or html file format.
-You can redirect the output to a file and open the file using as a spreadsheet
-or by using a browser
-
-positional arguments:
-  idd         location of idd file = ./somewhere/eplusv8-0-1.idd
-  file1       location of first with idf files = ./somewhere/f1.idf
-  file2       location of second with idf files = ./somewhere/f2.idf
-
-optional arguments:
-  -h, --help  show this help message and exit
-  --csv
-  --html
-
-
-

Now let us try this with two “idf” files that are slightly different. If -we open them in a file comparing software, it would look like this:

-
from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below
-for_images = doc_images
-for_images.display_png(for_images.filemerge) # display the image below
-
-
-useful_scripts_files/useful_scripts_21_0.png -

There are 4 differences between the files. Let us see what idfdiff.py -does with the two files. We will use the –html option to print out the -diff in html format.

-
%%bash
-# python idfdiff.py idd file1 file2
-python idfdiff.py --html ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf
-
-
-
<html><p>file1 = ../resources/idffiles/V_7_2/constructions.idf</p><p>file2 = ../resources/idffiles/V_7_2/constructions_diff.idf</p><table border="1"><tr><th>Object Key</th><th> Object Name</th><th> Field Name</th><th> file1</th><th> file2</th></tr><tr><td>MATERIAL</td><td>F08 Metal surface</td><td></td><td>is here</td><td>not here</td></tr><tr><td>MATERIAL</td><td>F08 Metal surface haha</td><td></td><td>not here</td><td>is here</td></tr><tr><td>MATERIAL</td><td>G05 25mm wood</td><td>Conductivity</td><td>0.15</td><td>0.155</td></tr><tr><td>CONSTRUCTION</td><td>Exterior Door</td><td>Outside Layer</td><td>F08 Metal surface</td><td>F08 Metal surface haha</td></tr></table></html>
-
-
-

reprinting the output again for clarity:

-

<html><p>file1 = ../resources/idffiles/V_7_2/constructions.idf</p><p>file2 = ../resources/idffiles/V_7_2/constructions_diff.idf</p><table border=”1”><tr><th>Object Key</th><th> Object Name</th><th> Field Name</th><th> file1</th><th> file2</th></tr><tr><td>MATERIAL</td><td>F08 Metal surface</td><td></td><td>not here</td><td>is here</td></tr><tr><td>MATERIAL</td><td>F08 Metal surface haha</td><td></td><td>is here</td><td>not here</td></tr><tr><td>MATERIAL</td><td>G05 25mm wood</td><td>Conductivity</td><td>0.15</td><td>0.155</td></tr><tr><td>CONSTRUCTION</td><td>Exterior Door</td><td>Outside Layer</td><td>F08 Metal surface</td><td>F08 Metal surface haha</td></tr></table></html>

-

It does look like html :-). We need to redirect this output to a file -and then open the file in a browser to see what it looks like. Displayed -below is the html file

-
from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below
-from IPython.display import HTML
-h = HTML(open(doc_images.idfdiff_path, 'r').read())
-h
-
-
-

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV

Pretty straight forward. Scroll up and look at the origin text files, -and see how idfdiff.py understands the difference

-

Now let us try the same thin in csv format

-
%%bash
-# python idfdiff.py idd file1 file2
-python idfdiff.py --csv ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf
-
-
-
file1 = ../resources/idffiles/V_7_2/constr.idf
-file2 = ../resources/idffiles/V_7_2/constr_diff.idf
-
-Object Key, Object Name, Field Name, file1, file2
-CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8
-CONSTRUCTION,GARAGE-SLAB-1,,is here,not here
-CONSTRUCTION,SB-E,,is here,not here
-CONSTRUCTION,SB-U,,not here,is here
-OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV
-
-
-

We see the same output, but now in csv format. You can redirect it to a -“.csv” file and open it up as a spreadsheet

-
-
-

loopdiagram.py

-
-

Diagrams of HVAC loops

-

This script will draw all the loops in an idf file. It is a bit of a -hack. So it will work on most files, but sometimes it will not :-(. But -it is pretty useful when it works.

-

If it does not work, send us the idf file and we’ll try to fix the code

-

Make sure grapphviz -is installed for this script to work

-

Again, we’ll have to run the script from the terminal. Let us look at -the help for this script

-
%%bash
-# ignore the line above. It simply lets me run a command line from ipython notebook
-python loopdiagram.py --help
-
-
-
usage: loopdiagram.py [-h] idd file
-
-draw all the  loops in the idf file
-There are two output files saved in the same location as the idf file:
-- idf_file_location/idf_filename.dot
-- idf_file_location/idf_filename.png
-
-positional arguments:
-  idd         location of idd file = ./somewhere/eplusv8-0-1.idd
-  file        location of idf file = ./somewhere/f1.idf
-
-optional arguments:
-  -h, --help  show this help message and exit
-
-
-

Pretty straightforward. Simply open png file and you will see the loop -diagram. (ignore the dot file for now. it will be documented later)

-

So let us try this out with and simple example file. We have a very -simple plant loop in “../resources/idffiles/V_7_2/plantloop.idf”

-
%%bash
-# ignore the line above. It simply lets me run a command line from ipython notebook
-python loopdiagram.py ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/plantloop.idf
-
-
-
constructing the loops
-cleaning edges
-making the diagram
-saved file: ../resources/idffiles/V_7_2/plantloop.dot
-saved file: ../resources/idffiles/V_7_2/plantloop.png
-
-
-

The script prints out it’s progress. On larger files, this might take a -few seconds. If we open this file, it will look like the diagram below

-

Note: the supply and demnd sides are not connected in the diagram, but -shown seperately for clarity

-
from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below
-for_images = doc_images
-for_images.display_png(for_images.plantloop) # display the image below
-
-
-useful_scripts_files/useful_scripts_38_0.png -

That diagram is not a real system. Does this script really work ?

-

Try it yourself. Draw the daigram for -“../resources/idffiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlow.idf”

-
-
-

Names in loopdiagrams

-
    -
  • Designbuilder is an energyplus -editor autogenerates object names like “MyHouse:SAPZone1”
  • -
  • Note the “:” in the name.
  • -
  • Unfortunatley “:” is a reserved character when making a loop -diagrams. (eppy uses pydot and grapphviz which has this constraint)
  • -
  • to work around this, loopdiagram will replace all “:” with a “__”
  • -
  • So the names in the diagram will not match the names in your file, -but you can make out what is going on
  • -
-
-
-
-

eppyreadtest_folder.py

-

Not yet documented

-
-
-

eppyreadtest_file.py

-

Not yet documented

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/docs/a_loop.idf b/docs/a_loop.idf index 33a211df..1d2929a4 100644 --- a/docs/a_loop.idf +++ b/docs/a_loop.idf @@ -1,3 +1,4 @@ +!- Darwin Line endings AIRTERMINAL:SINGLEDUCT:UNCONTROLLED, zone1DirectAir, !- Name @@ -17,21 +18,21 @@ AIRTERMINAL:SINGLEDUCT:UNCONTROLLED, zone3 Inlet Node, !- Zone Supply Air Node Name autosize; !- Maximum Air Flow Rate -ZONEHVAC:EQUIPMENTLIST, +ZONEHVAC:EQUIPMENTLIST, zone1 equip list, !- Name AirTerminal:SingleDuct:Uncontrolled, !- Zone Equipment 1 Object Type zone1DirectAir, !- Zone Equipment 1 Name 1, !- Zone Equipment 1 Cooling Sequence 1; !- Zone Equipment 1 Heating or NoLoad Sequence -ZONEHVAC:EQUIPMENTLIST, +ZONEHVAC:EQUIPMENTLIST, zone2 equip list, !- Name AirTerminal:SingleDuct:Uncontrolled, !- Zone Equipment 1 Object Type zone2DirectAir, !- Zone Equipment 1 Name 1, !- Zone Equipment 1 Cooling Sequence 1; !- Zone Equipment 1 Heating or NoLoad Sequence -ZONEHVAC:EQUIPMENTLIST, +ZONEHVAC:EQUIPMENTLIST, zone3 equip list, !- Name AirTerminal:SingleDuct:Uncontrolled, !- Zone Equipment 1 Object Type zone3DirectAir, !- Zone Equipment 1 Name @@ -62,7 +63,7 @@ ZONEHVAC:EQUIPMENTCONNECTIONS, zone3 Node, !- Zone Air Node Name zone3 Outlet Node; !- Zone Return Air Node Name -AIRLOOPHVAC, +AIRLOOPHVAC, a_loop, !- Name , !- Controller List Name , !- Availability Manager List Name @@ -74,33 +75,33 @@ AIRLOOPHVAC, a_loop Demand Inlet, !- Demand Side Inlet Node Names a_loop Supply Outlet; !- Supply Side Outlet Node Names -AIRLOOPHVAC:ZONESPLITTER, +AIRLOOPHVAC:ZONESPLITTER, a_loop Demand Side Splitter, !- Name a_loop Demand Inlet, !- Inlet Node Name zone1 Inlet Node, !- Outlet 1 Node Name zone2 Inlet Node, !- Outlet 2 Node Name zone3 Inlet Node; !- Outlet 3 Node Name -AIRLOOPHVAC:SUPPLYPATH, +AIRLOOPHVAC:SUPPLYPATH, a_loopSupplyPath, !- Name a_loop Demand Inlet, !- Supply Air Path Inlet Node Name AirLoopHVAC:ZoneSplitter, !- Component 1 Object Type a_loop Demand Side Splitter; !- Component 1 Name -AIRLOOPHVAC:ZONEMIXER, +AIRLOOPHVAC:ZONEMIXER, a_loop Demand Side Mixer, !- Name a_loop Demand Outlet, !- Outlet Node Name zone1 Outlet Node, !- Inlet 1 Node Name zone2 Outlet Node, !- Inlet 2 Node Name zone3 Outlet Node; !- Inlet 3 Node Name -AIRLOOPHVAC:RETURNPATH, +AIRLOOPHVAC:RETURNPATH, a_loopReturnPath, !- Name a_loop Demand Outlet, !- Return Air Path Outlet Node Name AirLoopHVAC:ZoneMixer, !- Component 1 Object Type a_loop Demand Side Mixer; !- Component 1 Name -BRANCH, +BRANCH, sb0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -110,7 +111,7 @@ BRANCH, sb0_duct_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -120,7 +121,7 @@ BRANCH, sb1_duct_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -130,7 +131,7 @@ BRANCH, sb2_duct_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -140,7 +141,7 @@ BRANCH, sb3_duct_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -150,7 +151,7 @@ BRANCH, a_loop Supply Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCHLIST, +BRANCHLIST, a_loop Branches, !- Name sb0, !- Branch 1 Name sb1, !- Branch 2 Name @@ -158,48 +159,48 @@ BRANCHLIST, sb3, !- Branch 4 Name sb4; !- Branch 5 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, a_loop_supply_splitter, !- Name sb0, !- Inlet Branch Name sb1, !- Outlet Branch 1 Name sb2, !- Outlet Branch 2 Name sb3; !- Outlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, a_loop_supply_mixer, !- Name sb4, !- Outlet Branch Name sb1, !- Inlet Branch 1 Name sb2, !- Inlet Branch 2 Name sb3; !- Inlet Branch 3 Name -CONNECTORLIST, +CONNECTORLIST, a_loop Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type a_loop_supply_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type a_loop_supply_mixer; !- Connector 2 Name -DUCT, +DUCT, sb0_duct, !- Name a_loop Supply Inlet, !- Inlet Node Name sb0_duct_outlet; !- Outlet Node Name -DUCT, +DUCT, sb1_duct, !- Name sb1_duct_inlet, !- Inlet Node Name sb1_duct_outlet; !- Outlet Node Name -DUCT, +DUCT, sb2_duct, !- Name sb2_duct_inlet, !- Inlet Node Name sb2_duct_outlet; !- Outlet Node Name -DUCT, +DUCT, sb3_duct, !- Name sb3_duct_inlet, !- Inlet Node Name sb3_duct_outlet; !- Outlet Node Name -DUCT, +DUCT, sb4_duct, !- Name sb4_duct_inlet, !- Inlet Node Name - a_loop Supply Outlet; !- Outlet Node Name + a_loop Supply Outlet; !- Outlet Node Name \ No newline at end of file diff --git a/docs/authors.rst b/docs/authors.rst new file mode 100644 index 00000000..e122f914 --- /dev/null +++ b/docs/authors.rst @@ -0,0 +1 @@ +.. include:: ../AUTHORS.rst diff --git a/docs/c_loop.idf b/docs/c_loop.idf index 05492b1e..91b915db 100644 --- a/docs/c_loop.idf +++ b/docs/c_loop.idf @@ -1,5 +1,6 @@ +!- Darwin Line endings -BRANCH, +BRANCH, sb0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -9,7 +10,7 @@ BRANCH, sb0_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -19,7 +20,7 @@ BRANCH, sb1_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -29,7 +30,7 @@ BRANCH, sb2_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -39,7 +40,7 @@ BRANCH, sb3_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -49,7 +50,7 @@ BRANCH, c_loop Cond_Supply Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -59,7 +60,7 @@ BRANCH, db0_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -69,7 +70,7 @@ BRANCH, db1_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -79,7 +80,7 @@ BRANCH, db2_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -89,7 +90,7 @@ BRANCH, db3_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -99,7 +100,7 @@ BRANCH, c_loop Demand Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCHLIST, +BRANCHLIST, c_loop Cond_Supply Branchs, !- Name sb0, !- Branch 1 Name sb1, !- Branch 2 Name @@ -107,7 +108,7 @@ BRANCHLIST, sb3, !- Branch 4 Name sb4; !- Branch 5 Name -BRANCHLIST, +BRANCHLIST, c_loop Condenser Demand Branchs, !- Name db0, !- Branch 1 Name db1, !- Branch 2 Name @@ -115,99 +116,99 @@ BRANCHLIST, db3, !- Branch 4 Name db4; !- Branch 5 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, c_loop_supply_splitter, !- Name sb0, !- Inlet Branch Name sb1, !- Outlet Branch 1 Name sb2, !- Outlet Branch 2 Name sb3; !- Outlet Branch 3 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, c_loop_demand_splitter, !- Name db0, !- Inlet Branch Name db1, !- Outlet Branch 1 Name db2, !- Outlet Branch 2 Name db3; !- Outlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, c_loop_supply_mixer, !- Name sb4, !- Outlet Branch Name sb1, !- Inlet Branch 1 Name sb2, !- Inlet Branch 2 Name sb3; !- Inlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, c_loop_demand_mixer, !- Name db4, !- Outlet Branch Name db1, !- Inlet Branch 1 Name db2, !- Inlet Branch 2 Name db3; !- Inlet Branch 3 Name -CONNECTORLIST, +CONNECTORLIST, c_loop Cond_Supply Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type c_loop_supply_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type c_loop_supply_mixer; !- Connector 2 Name -CONNECTORLIST, +CONNECTORLIST, c_loop Condenser Demand Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type c_loop_demand_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type c_loop_demand_mixer; !- Connector 2 Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb0_pipe, !- Name c_loop Cond_Supply Inlet, !- Inlet Node Name sb0_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb1_pipe, !- Name sb1_pipe_inlet, !- Inlet Node Name sb1_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb2_pipe, !- Name sb2_pipe_inlet, !- Inlet Node Name sb2_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb3_pipe, !- Name sb3_pipe_inlet, !- Inlet Node Name sb3_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb4_pipe, !- Name sb4_pipe_inlet, !- Inlet Node Name c_loop Cond_Supply Outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db0_pipe, !- Name c_loop Demand Inlet, !- Inlet Node Name db0_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db1_pipe, !- Name db1_pipe_inlet, !- Inlet Node Name db1_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db2_pipe, !- Name db2_pipe_inlet, !- Inlet Node Name db2_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db3_pipe, !- Name db3_pipe_inlet, !- Inlet Node Name db3_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db4_pipe, !- Name db4_pipe_inlet, !- Inlet Node Name c_loop Demand Outlet; !- Outlet Node Name -CONDENSERLOOP, +CONDENSERLOOP, c_loop, !- Name Water, !- Fluid Type , !- User Defined Fluid Type @@ -216,7 +217,7 @@ CONDENSERLOOP, , !- Maximum Loop Temperature , !- Minimum Loop Temperature , !- Maximum Loop Flow Rate - 0.0, !- Minimum Loop Flow Rate + 0, !- Minimum Loop Flow Rate Autocalculate, !- Condenser Loop Volume c_loop Cond_Supply Inlet, !- Condenser Side Inlet Node Name c_loop Cond_Supply Outlet, !- Condenser Side Outlet Node Name @@ -227,4 +228,4 @@ CONDENSERLOOP, c_loop Condenser Demand Branchs, !- Condenser Demand Side Branch List Name c_loop Condenser Demand Connectors, !- Condenser Demand Side Connector List Name Sequential, !- Load Distribution Scheme - None; !- Pressure Simulation Type + None; !- Pressure Simulation Type \ No newline at end of file diff --git a/docs/cleandocs.py b/docs/cleandocs.py deleted file mode 100644 index c45fe1b4..00000000 --- a/docs/cleandocs.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2012 Santosh Philip - -"""clean up the docs files in this folder""" - -import shutil -import os - -pth = "./generated" -if os.path.exists(pth): - shutil.rmtree(pth) -# rm -r ./generated -pth1, pth2 = "./_build/html", "./generated" -if os.path.exists(pth1): - shutil.move(pth1, pth2) -pth = "./_build" -if os.path.exists(pth): - shutil.rmtree(pth) -pth = "./_templates" -if os.path.exists(pth): - shutil.rmtree(pth) -# mv ./_build/html ./generated -# rm -r _build -# rm -r _templates diff --git a/docs/conf.py b/docs/conf.py new file mode 100755 index 00000000..b113b19a --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python +# +# eppy documentation build configuration file, created by +# sphinx-quickstart on Fri Jun 9 13:47:02 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another +# directory, add these directories to sys.path here. If the directory is +# relative to the documentation root, use os.path.abspath to make it +# absolute, like shown here. +# +import os +import sys + +sys.path.insert(0, os.path.abspath("..")) + +import eppy + +# -- General configuration --------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.viewcode", + "sphinx.ext.napoleon", + "nbsphinx", +] +# extensions = ['nbsphinx'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = ".rst" + +# The master toctree document. +master_doc = "index" + +# General information about the project. +project = "eppy" +copyright = "2020, Santosh Philip" +author = "Santosh Philip" + +# The version info for the project you're documenting, acts as replacement +# for |version| and |release|, also used in various other places throughout +# the built documents. +# +# The short X.Y version. +version = eppy.__version__ +# The full version, including alpha/beta/rc tags. +release = eppy.__version__ + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = False + + +# -- Options for HTML output ------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "alabaster" + +# Theme options are theme-specific and customize the look and feel of a +# theme further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + + +# -- Options for HTMLHelp output --------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = "eppydoc" + + +# -- Options for LaTeX output ------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass +# [howto, manual, or own class]). +latex_documents = [ + (master_doc, "eppy.tex", "eppy Documentation", "Santosh Philip", "manual"), +] + + +# -- Options for manual page output ------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [(master_doc, "eppy", "eppy Documentation", [author], 1)] + + +# -- Options for Texinfo output ---------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + master_doc, + "eppy", + "eppy Documentation", + author, + "eppy", + "One line description of project.", + "Miscellaneous", + ), +] diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 00000000..e582053e --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1 @@ +.. include:: ../CONTRIBUTING.rst diff --git a/docs/eppy.EPlusInterfaceFunctions.rst b/docs/eppy.EPlusInterfaceFunctions.rst index 812c71e7..ad11ee2f 100644 --- a/docs/eppy.EPlusInterfaceFunctions.rst +++ b/docs/eppy.EPlusInterfaceFunctions.rst @@ -60,6 +60,14 @@ eppy.EPlusInterfaceFunctions.readidf module :undoc-members: :show-inheritance: +eppy.EPlusInterfaceFunctions.structures module +---------------------------------------------- + +.. automodule:: eppy.EPlusInterfaceFunctions.structures + :members: + :undoc-members: + :show-inheritance: + Module contents --------------- diff --git a/docs/eppy.rst b/docs/eppy.rst index ff21fea2..23b1c715 100644 --- a/docs/eppy.rst +++ b/docs/eppy.rst @@ -36,10 +36,10 @@ eppy.easyopen module :undoc-members: :show-inheritance: -eppy.ex\_inits module ---------------------- +eppy.eppy module +---------------- -.. automodule:: eppy.ex_inits +.. automodule:: eppy.eppy :members: :undoc-members: :show-inheritance: @@ -68,6 +68,14 @@ eppy.hvacbuilder module :undoc-members: :show-inheritance: +eppy.idd\_helpers module +------------------------ + +.. automodule:: eppy.idd_helpers + :members: + :undoc-members: + :show-inheritance: + eppy.iddcurrent module ---------------------- diff --git a/docs/eppy.tests.EPlusInterfaceFunctions_tests.rst b/docs/eppy.tests.EPlusInterfaceFunctions_tests.rst deleted file mode 100644 index 9258432a..00000000 --- a/docs/eppy.tests.EPlusInterfaceFunctions_tests.rst +++ /dev/null @@ -1,46 +0,0 @@ -eppy.tests.EPlusInterfaceFunctions\_tests package -================================================= - -Submodules ----------- - -eppy.tests.EPlusInterfaceFunctions\_tests.integration module ------------------------------------------------------------- - -.. automodule:: eppy.tests.EPlusInterfaceFunctions_tests.integration - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.EPlusInterfaceFunctions\_tests.test\_iddgroups module ----------------------------------------------------------------- - -.. automodule:: eppy.tests.EPlusInterfaceFunctions_tests.test_iddgroups - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.EPlusInterfaceFunctions\_tests.test\_iddindex module ---------------------------------------------------------------- - -.. automodule:: eppy.tests.EPlusInterfaceFunctions_tests.test_iddindex - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.EPlusInterfaceFunctions\_tests.test\_parse\_idd module ------------------------------------------------------------------ - -.. automodule:: eppy.tests.EPlusInterfaceFunctions_tests.test_parse_idd - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: eppy.tests.EPlusInterfaceFunctions_tests - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/eppy.tests.geometry_tests.rst b/docs/eppy.tests.geometry_tests.rst deleted file mode 100644 index 4f114c06..00000000 --- a/docs/eppy.tests.geometry_tests.rst +++ /dev/null @@ -1,38 +0,0 @@ -eppy.tests.geometry\_tests package -================================== - -Submodules ----------- - -eppy.tests.geometry\_tests.test\_area\_zone module --------------------------------------------------- - -.. automodule:: eppy.tests.geometry_tests.test_area_zone - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.geometry\_tests.test\_surface module ------------------------------------------------ - -.. automodule:: eppy.tests.geometry_tests.test_surface - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.geometry\_tests.test\_volume\_zone module ----------------------------------------------------- - -.. automodule:: eppy.tests.geometry_tests.test_volume_zone - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: eppy.tests.geometry_tests - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/eppy.tests.integration.rst b/docs/eppy.tests.integration.rst deleted file mode 100644 index 13afe0f6..00000000 --- a/docs/eppy.tests.integration.rst +++ /dev/null @@ -1,22 +0,0 @@ -eppy.tests.integration package -============================== - -Submodules ----------- - -eppy.tests.integration.test\_integration module ------------------------------------------------ - -.. automodule:: eppy.tests.integration.test_integration - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: eppy.tests.integration - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/eppy.tests.rst b/docs/eppy.tests.rst deleted file mode 100644 index c1e56e0d..00000000 --- a/docs/eppy.tests.rst +++ /dev/null @@ -1,182 +0,0 @@ -eppy.tests package -================== - -Submodules ----------- - -eppy.tests.sample\_html module ------------------------------- - -.. automodule:: eppy.tests.sample_html - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.sketch module ------------------------- - -.. automodule:: eppy.tests.sketch - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_IDF module ---------------------------- - -.. automodule:: eppy.tests.test_IDF - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_bunch\_subclass module ---------------------------------------- - -.. automodule:: eppy.tests.test_bunch_subclass - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_bunchhelpers module ------------------------------------- - -.. automodule:: eppy.tests.test_bunchhelpers - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_easyopen module --------------------------------- - -.. automodule:: eppy.tests.test_easyopen - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_examples module --------------------------------- - -.. automodule:: eppy.tests.test_examples - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_fanpower module --------------------------------- - -.. automodule:: eppy.tests.test_fanpower - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_hvacbuilder module ------------------------------------ - -.. automodule:: eppy.tests.test_hvacbuilder - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_iddgaps module -------------------------------- - -.. automodule:: eppy.tests.test_iddgaps - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_idf\_helpers module ------------------------------------- - -.. automodule:: eppy.tests.test_idf_helpers - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_idfreader module ---------------------------------- - -.. automodule:: eppy.tests.test_idfreader - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_json\_functions module ---------------------------------------- - -.. automodule:: eppy.tests.test_json_functions - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_loopdiagram module ------------------------------------ - -.. automodule:: eppy.tests.test_loopdiagram - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_modeleditor module ------------------------------------ - -.. automodule:: eppy.tests.test_modeleditor - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_modeleditor1 module ------------------------------------- - -.. automodule:: eppy.tests.test_modeleditor1 - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_readhtml module --------------------------------- - -.. automodule:: eppy.tests.test_readhtml - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_runner module ------------------------------- - -.. automodule:: eppy.tests.test_runner - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_simpleread module ----------------------------------- - -.. automodule:: eppy.tests.test_simpleread - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_thermal\_properties module -------------------------------------------- - -.. automodule:: eppy.tests.test_thermal_properties - :members: - :undoc-members: - :show-inheritance: - -eppy.tests.test\_walk\_hvac module ----------------------------------- - -.. automodule:: eppy.tests.test_walk_hvac - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: eppy.tests - :members: - :undoc-members: - :show-inheritance: diff --git a/eppy/ex_inits.py b/docs/ex_inits.py similarity index 66% rename from eppy/ex_inits.py rename to docs/ex_inits.py index 94fad40c..38712b62 100644 --- a/eppy/ex_inits.py +++ b/docs/ex_inits.py @@ -22,9 +22,9 @@ display_svg, ) -idfeditor = Image(filename="../docs/images/idf3.png") -material_lists = Image(filename="../docs/images/material_lists.png") -html_snippet1 = Image(filename="../docs/images/html1.png") -html_snippet2 = Image(filename="../docs/images/html2.png") -plantloop1 = Image(filename="../docs/images/hhh1.png") -plantloop2 = Image(filename="../docs/images/hhh_new.png") +idfeditor = Image(filename="./images/idf3.png") +material_lists = Image(filename="./images/material_lists.png") +html_snippet1 = Image(filename="./images/html1.png") +html_snippet2 = Image(filename="./images/html2.png") +plantloop1 = Image(filename="./images/hhh1.png") +plantloop2 = Image(filename="./images/hhh_new.png") diff --git a/docs/hhh1.dot b/docs/hhh1.dot deleted file mode 100644 index 06340e8f..00000000 --- a/docs/hhh1.dot +++ /dev/null @@ -1,72 +0,0 @@ -digraph G { -sb1_pipe [shape=box3d, label=sb1_pipe]; -sb3_pipe_outlet [shape=plaintext, label=sb3_pipe_outlet]; -sb0_pipe [shape=box3d, label=sb0_pipe]; -"p_loop Demand Outlet" [shape=plaintext, label="p_loop Demand Outlet"]; -db1_pipe_inlet [shape=plaintext, label=db1_pipe_inlet]; -p_loop_supply_splitter [shape=box3d, label=p_loop_supply_splitter]; -db2_pipe [shape=box3d, label=db2_pipe]; -db0_pipe [shape=box3d, label=db0_pipe]; -sb0_pipe_outlet [shape=plaintext, label=sb0_pipe_outlet]; -db1_pipe [shape=box3d, label=db1_pipe]; -db0_pipe_outlet [shape=plaintext, label=db0_pipe_outlet]; -"p_loop Supply Inlet" [shape=plaintext, label="p_loop Supply Inlet"]; -sb3_pipe_inlet [shape=plaintext, label=sb3_pipe_inlet]; -db1_pipe_outlet [shape=plaintext, label=db1_pipe_outlet]; -p_loop_supply_mixer [shape=box3d, label=p_loop_supply_mixer]; -db2_pipe_outlet [shape=plaintext, label=db2_pipe_outlet]; -p_loop_demand_mixer [shape=box3d, label=p_loop_demand_mixer]; -"p_loop Demand Inlet" [shape=plaintext, label="p_loop Demand Inlet"]; -sb1_pipe_outlet [shape=plaintext, label=sb1_pipe_outlet]; -p_loop_demand_splitter [shape=box3d, label=p_loop_demand_splitter]; -sb3_pipe [shape=box3d, label=sb3_pipe]; -db2_pipe_inlet [shape=plaintext, label=db2_pipe_inlet]; -db4_pipe [shape=box3d, label=db4_pipe]; -sb2_pipe [shape=box3d, label=sb2_pipe]; -sb4_pipe [shape=box3d, label=sb4_pipe]; -db3_pipe_inlet [shape=plaintext, label=db3_pipe_inlet]; -"p_loop Supply Outlet" [shape=plaintext, label="p_loop Supply Outlet"]; -sb2_pipe_inlet [shape=plaintext, label=sb2_pipe_inlet]; -sb4_pipe_inlet [shape=plaintext, label=sb4_pipe_inlet]; -sb2_pipe_outlet [shape=plaintext, label=sb2_pipe_outlet]; -db4_pipe_inlet [shape=plaintext, label=db4_pipe_inlet]; -db3_pipe [shape=box3d, label=db3_pipe]; -sb1_pipe_inlet [shape=plaintext, label=sb1_pipe_inlet]; -db3_pipe_outlet [shape=plaintext, label=db3_pipe_outlet]; -"p_loop Supply Inlet" -> sb0_pipe; -sb0_pipe -> sb0_pipe_outlet; -sb1_pipe_inlet -> sb1_pipe; -sb1_pipe -> sb1_pipe_outlet; -sb2_pipe_inlet -> sb2_pipe; -sb2_pipe -> sb2_pipe_outlet; -sb3_pipe_inlet -> sb3_pipe; -sb3_pipe -> sb3_pipe_outlet; -sb4_pipe_inlet -> sb4_pipe; -sb4_pipe -> "p_loop Supply Outlet"; -"p_loop Demand Inlet" -> db0_pipe; -db0_pipe -> db0_pipe_outlet; -db1_pipe_inlet -> db1_pipe; -db1_pipe -> db1_pipe_outlet; -db2_pipe_inlet -> db2_pipe; -db2_pipe -> db2_pipe_outlet; -db3_pipe_inlet -> db3_pipe; -db3_pipe -> db3_pipe_outlet; -db4_pipe_inlet -> db4_pipe; -db4_pipe -> "p_loop Demand Outlet"; -sb0_pipe_outlet -> p_loop_supply_splitter; -p_loop_supply_splitter -> sb1_pipe_inlet; -p_loop_supply_splitter -> sb2_pipe_inlet; -p_loop_supply_splitter -> sb3_pipe_inlet; -db0_pipe_outlet -> p_loop_demand_splitter; -p_loop_demand_splitter -> db1_pipe_inlet; -p_loop_demand_splitter -> db2_pipe_inlet; -p_loop_demand_splitter -> db3_pipe_inlet; -p_loop_supply_mixer -> sb4_pipe_inlet; -sb1_pipe_outlet -> p_loop_supply_mixer; -sb2_pipe_outlet -> p_loop_supply_mixer; -sb3_pipe_outlet -> p_loop_supply_mixer; -p_loop_demand_mixer -> db4_pipe_inlet; -db1_pipe_outlet -> p_loop_demand_mixer; -db2_pipe_outlet -> p_loop_demand_mixer; -db3_pipe_outlet -> p_loop_demand_mixer; -} diff --git a/docs/hhh1.idf b/docs/hhh1.idf index fc379b51..8442b286 100644 --- a/docs/hhh1.idf +++ b/docs/hhh1.idf @@ -1,5 +1,6 @@ +!- Darwin Line endings -BRANCH, +BRANCH, sb0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -9,7 +10,7 @@ BRANCH, sb0_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -19,7 +20,7 @@ BRANCH, sb1_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -29,7 +30,7 @@ BRANCH, sb2_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -39,7 +40,7 @@ BRANCH, sb3_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -49,7 +50,7 @@ BRANCH, p_loop Supply Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -59,7 +60,7 @@ BRANCH, db0_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -69,7 +70,7 @@ BRANCH, db1_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -79,7 +80,7 @@ BRANCH, db2_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -89,7 +90,7 @@ BRANCH, db3_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -99,7 +100,7 @@ BRANCH, p_loop Demand Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCHLIST, +BRANCHLIST, p_loop Supply Branchs, !- Name sb0, !- Branch 1 Name sb1, !- Branch 2 Name @@ -107,7 +108,7 @@ BRANCHLIST, sb3, !- Branch 4 Name sb4; !- Branch 5 Name -BRANCHLIST, +BRANCHLIST, p_loop Demand Branchs, !- Name db0, !- Branch 1 Name db1, !- Branch 2 Name @@ -115,99 +116,99 @@ BRANCHLIST, db3, !- Branch 4 Name db4; !- Branch 5 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, p_loop_supply_splitter, !- Name sb0, !- Inlet Branch Name sb1, !- Outlet Branch 1 Name sb2, !- Outlet Branch 2 Name sb3; !- Outlet Branch 3 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, p_loop_demand_splitter, !- Name db0, !- Inlet Branch Name db1, !- Outlet Branch 1 Name db2, !- Outlet Branch 2 Name db3; !- Outlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, p_loop_supply_mixer, !- Name sb4, !- Outlet Branch Name sb1, !- Inlet Branch 1 Name sb2, !- Inlet Branch 2 Name sb3; !- Inlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, p_loop_demand_mixer, !- Name db4, !- Outlet Branch Name db1, !- Inlet Branch 1 Name db2, !- Inlet Branch 2 Name db3; !- Inlet Branch 3 Name -CONNECTORLIST, +CONNECTORLIST, p_loop Supply Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type p_loop_supply_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type p_loop_supply_mixer; !- Connector 2 Name -CONNECTORLIST, +CONNECTORLIST, p_loop Demand Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type p_loop_demand_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type p_loop_demand_mixer; !- Connector 2 Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb0_pipe, !- Name p_loop Supply Inlet, !- Inlet Node Name sb0_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb1_pipe, !- Name sb1_pipe_inlet, !- Inlet Node Name sb1_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb2_pipe, !- Name sb2_pipe_inlet, !- Inlet Node Name sb2_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb3_pipe, !- Name sb3_pipe_inlet, !- Inlet Node Name sb3_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb4_pipe, !- Name sb4_pipe_inlet, !- Inlet Node Name p_loop Supply Outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db0_pipe, !- Name p_loop Demand Inlet, !- Inlet Node Name db0_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db1_pipe, !- Name db1_pipe_inlet, !- Inlet Node Name db1_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db2_pipe, !- Name db2_pipe_inlet, !- Inlet Node Name db2_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db3_pipe, !- Name db3_pipe_inlet, !- Inlet Node Name db3_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db4_pipe, !- Name db4_pipe_inlet, !- Inlet Node Name p_loop Demand Outlet; !- Outlet Node Name -PLANTLOOP, +PLANTLOOP, p_loop, !- Name Water, !- Fluid Type , !- User Defined Fluid Type @@ -216,7 +217,7 @@ PLANTLOOP, , !- Maximum Loop Temperature , !- Minimum Loop Temperature , !- Maximum Loop Flow Rate - 0.0, !- Minimum Loop Flow Rate + 0, !- Minimum Loop Flow Rate Autocalculate, !- Plant Loop Volume p_loop Supply Inlet, !- Plant Side Inlet Node Name p_loop Supply Outlet, !- Plant Side Outlet Node Name @@ -230,4 +231,4 @@ PLANTLOOP, , !- Availability Manager List Name SingleSetpoint, !- Plant Loop Demand Calculation Scheme None, !- Common Pipe Simulation - None; !- Pressure Simulation Type + None; !- Pressure Simulation Type \ No newline at end of file diff --git a/docs/hhh1.png b/docs/hhh1.png deleted file mode 100644 index 24180c22..00000000 Binary files a/docs/hhh1.png and /dev/null differ diff --git a/docs/hhh_new.idf b/docs/hhh_new.idf index d49519b7..7179a4c9 100644 --- a/docs/hhh_new.idf +++ b/docs/hhh_new.idf @@ -1,5 +1,6 @@ +!- Darwin Line endings -BRANCH, +BRANCH, sb0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -19,7 +20,7 @@ BRANCH, np2_Outlet_Node_Name, !- Component 3 Outlet Node Name ; !- Component 3 Branch Control Type -BRANCH, +BRANCH, sb1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -29,7 +30,7 @@ BRANCH, sb1_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -39,7 +40,7 @@ BRANCH, sb2_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -49,7 +50,7 @@ BRANCH, sb3_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, sb4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -59,7 +60,7 @@ BRANCH, p_loop Supply Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db0, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -69,7 +70,7 @@ BRANCH, db0_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db1, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -79,7 +80,7 @@ BRANCH, db1_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db2, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -89,7 +90,7 @@ BRANCH, db2_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db3, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -99,7 +100,7 @@ BRANCH, db3_pipe_outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCH, +BRANCH, db4, !- Name 0, !- Maximum Flow Rate , !- Pressure Drop Curve Name @@ -109,7 +110,7 @@ BRANCH, p_loop Demand Outlet, !- Component 1 Outlet Node Name Bypass; !- Component 1 Branch Control Type -BRANCHLIST, +BRANCHLIST, p_loop Supply Branchs, !- Name sb0, !- Branch 1 Name sb1, !- Branch 2 Name @@ -117,7 +118,7 @@ BRANCHLIST, sb3, !- Branch 4 Name sb4; !- Branch 5 Name -BRANCHLIST, +BRANCHLIST, p_loop Demand Branchs, !- Name db0, !- Branch 1 Name db1, !- Branch 2 Name @@ -125,109 +126,109 @@ BRANCHLIST, db3, !- Branch 4 Name db4; !- Branch 5 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, p_loop_supply_splitter, !- Name sb0, !- Inlet Branch Name sb1, !- Outlet Branch 1 Name sb2, !- Outlet Branch 2 Name sb3; !- Outlet Branch 3 Name -CONNECTOR:SPLITTER, +CONNECTOR:SPLITTER, p_loop_demand_splitter, !- Name db0, !- Inlet Branch Name db1, !- Outlet Branch 1 Name db2, !- Outlet Branch 2 Name db3; !- Outlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, p_loop_supply_mixer, !- Name sb4, !- Outlet Branch Name sb1, !- Inlet Branch 1 Name sb2, !- Inlet Branch 2 Name sb3; !- Inlet Branch 3 Name -CONNECTOR:MIXER, +CONNECTOR:MIXER, p_loop_demand_mixer, !- Name db4, !- Outlet Branch Name db1, !- Inlet Branch 1 Name db2, !- Inlet Branch 2 Name db3; !- Inlet Branch 3 Name -CONNECTORLIST, +CONNECTORLIST, p_loop Supply Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type p_loop_supply_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type p_loop_supply_mixer; !- Connector 2 Name -CONNECTORLIST, +CONNECTORLIST, p_loop Demand Connectors, !- Name Connector:Splitter, !- Connector 1 Object Type p_loop_demand_splitter, !- Connector 1 Name Connector:Mixer, !- Connector 2 Object Type p_loop_demand_mixer; !- Connector 2 Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb0_pipe, !- Name p_loop Supply Inlet, !- Inlet Node Name sb0_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb1_pipe, !- Name sb1_pipe_inlet, !- Inlet Node Name sb1_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb2_pipe, !- Name sb2_pipe_inlet, !- Inlet Node Name sb2_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb3_pipe, !- Name sb3_pipe_inlet, !- Inlet Node Name sb3_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, sb4_pipe, !- Name sb4_pipe_inlet, !- Inlet Node Name p_loop Supply Outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db0_pipe, !- Name p_loop Demand Inlet, !- Inlet Node Name db0_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db1_pipe, !- Name db1_pipe_inlet, !- Inlet Node Name db1_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db2_pipe, !- Name db2_pipe_inlet, !- Inlet Node Name db2_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db3_pipe, !- Name db3_pipe_inlet, !- Inlet Node Name db3_pipe_outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, db4_pipe, !- Name db4_pipe_inlet, !- Inlet Node Name p_loop Demand Outlet; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, np1, !- Name Central_Chiller_np1_node, !- Inlet Node Name np1_np2_node; !- Outlet Node Name -PIPE:ADIABATIC, +PIPE:ADIABATIC, np2, !- Name np1_np2_node, !- Inlet Node Name np2_Outlet_Node_Name; !- Outlet Node Name -CHILLER:ELECTRIC, +CHILLER:ELECTRIC, Central_Chiller, !- Name AirCooled, !- Condenser Type , !- Nominal Capacity @@ -255,14 +256,14 @@ CHILLER:ELECTRIC, , !- Coefficient 3 of Full Load Ratio Curve , !- Chilled Water Outlet Temperature Lower Limit VariableFlow, !- Chiller Flow Mode - 0.0, !- Design Heat Recovery Water Flow Rate + 0, !- Design Heat Recovery Water Flow Rate , !- Heat Recovery Inlet Node Name , !- Heat Recovery Outlet Node Name - 1.0, !- Sizing Factor - 0.0, !- Basin Heater Capacity - 2.0; !- Basin Heater Setpoint Temperature + 1, !- Sizing Factor + 0, !- Basin Heater Capacity + 2; !- Basin Heater Setpoint Temperature -PLANTLOOP, +PLANTLOOP, p_loop, !- Name Water, !- Fluid Type , !- User Defined Fluid Type @@ -271,7 +272,7 @@ PLANTLOOP, , !- Maximum Loop Temperature , !- Minimum Loop Temperature , !- Maximum Loop Flow Rate - 0.0, !- Minimum Loop Flow Rate + 0, !- Minimum Loop Flow Rate Autocalculate, !- Plant Loop Volume p_loop Supply Inlet, !- Plant Side Inlet Node Name p_loop Supply Outlet, !- Plant Side Outlet Node Name @@ -285,4 +286,4 @@ PLANTLOOP, , !- Availability Manager List Name SingleSetpoint, !- Plant Loop Demand Calculation Scheme None, !- Common Pipe Simulation - None; !- Pressure Simulation Type + None; !- Pressure Simulation Type \ No newline at end of file diff --git a/docs/history.rst b/docs/history.rst new file mode 100644 index 00000000..25064996 --- /dev/null +++ b/docs/history.rst @@ -0,0 +1 @@ +.. include:: ../HISTORY.rst diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..34394b1a --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,24 @@ +Welcome to eppy's documentation! +====================================== + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + + readme + installation + Main_Tutorial + HVAC_Tutorial + Outputs_Tutorial + newfunctions + runningeplus + useful_scripts + modules + contributing + history + +Indices and tables +================== +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 00000000..06183776 --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,51 @@ +.. highlight:: shell + +============ +Installation +============ + + +Stable release +-------------- + +To install eppy, run this command in your terminal: + +.. code-block:: console + + $ pip install eppy + +This is the preferred method to install eppy, as it will always install the most recent stable release. + +If you don't have `pip`_ installed, this `Python installation guide`_ can guide +you through the process. + +.. _pip: https://pip.pypa.io +.. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/ + + +From sources +------------ + +The sources for eppy can be downloaded from the `Github repo`_. + +You can either clone the public repository: + +.. code-block:: console + + $ git clone git://github.com/santoshphilip/eppy + +Or download the `tarball`_: + +.. code-block:: console + + $ curl -OJL https://github.com/santoshphilip/eppy/tarball/master + +Once you have a copy of the source, you can install it with: + +.. code-block:: console + + $ python setup.py install + + +.. _Github repo: https://github.com/santoshphilip/eppy +.. _tarball: https://github.com/santoshphilip/eppy/tarball/master diff --git a/docs/make.bat b/docs/make.bat index 4c910c98..123743ec 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -1,242 +1,36 @@ @ECHO OFF +pushd %~dp0 + REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source -set I18NSPHINXOPTS=%SPHINXOPTS% source -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% + set SPHINXBUILD=python -msphinx ) +set SOURCEDIR=. +set BUILDDIR=_build +set SPHINXPROJ=eppy if "%1" == "" goto help -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. xml to make Docutils-native XML files - echo. pseudoxml to make pseudoxml-XML files for display purposes - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - - -%SPHINXBUILD% 2> nul +%SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. + echo.The Sphinx module was not found. Make sure you have Sphinx installed, + echo.then set the SPHINXBUILD environment variable to point to the full + echo.path of the 'sphinx-build' executable. Alternatively you may add the + echo.Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\eppy.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\eppy.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdf" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf - cd %BUILDDIR%/.. - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdfja" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf-ja - cd %BUILDDIR%/.. - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -if "%1" == "xml" ( - %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The XML files are in %BUILDDIR%/xml. - goto end -) - -if "%1" == "pseudoxml" ( - %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. - goto end -) +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% :end +popd diff --git a/docs/makehtml.sh b/docs/makehtml.sh deleted file mode 100644 index 8fe3e4e0..00000000 --- a/docs/makehtml.sh +++ /dev/null @@ -1,6 +0,0 @@ -cd generated -ipython nbconvert --to rst ../*.ipynb # run from ./docs/generated -cd ../source -ipython nbconvert --to rst ../*.ipynb # run from ./docs/generated -cd .. -make html \ No newline at end of file diff --git a/docs/newfunctions.ipynb b/docs/newfunctions.ipynb index 443c314d..82020989 100644 --- a/docs/newfunctions.ipynb +++ b/docs/newfunctions.ipynb @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -90,25 +90,13 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, "metadata": {}, - "outputs": [ - { - "ename": "IDDNotSetError", - "evalue": "IDD file needed to read the idf file. Set it using IDF.setiddname(iddfile)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIDDNotSetError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0midf1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mIDF\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mIDDNotSetError\u001b[0m: IDD file needed to read the idf file. Set it using IDF.setiddname(iddfile)" - ] - } - ], + "outputs": [], "source": [ "try:\n", " idf1 = IDF(fname1)\n", - "except Exception, e:\n", + "except Exception as e:\n", " raise e\n", " " ] @@ -124,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -144,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -154,7 +142,9 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mIDDAlreadySetError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mIDF\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetiddname\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"anotheridd.idd\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mIDF\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetiddname\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"anotheridd.idd\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mIDF\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetiddname\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"anotheridd.idd\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Documents/coolshadow/github/cutter_eppy/r_eppy/eppy/modeleditor.py\u001b[0m in \u001b[0;36msetiddname\u001b[0;34m(cls, iddname, testing)\u001b[0m\n\u001b[1;32m 583\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtesting\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 584\u001b[0m \u001b[0merrortxt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"IDD file is set to: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0middname\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 585\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mIDDAlreadySetError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrortxt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 586\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 587\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mclassmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mIDDAlreadySetError\u001b[0m: IDD file is set to: ../eppy/resources/iddfiles/Energy+V7_2_0.idd" ] } @@ -162,7 +152,7 @@ "source": [ "try:\n", " IDF.setiddname(\"anotheridd.idd\")\n", - "except Exception, e:\n", + "except Exception as e:\n", " raise e \n", " " ] @@ -200,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -212,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -222,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -245,29 +235,29 @@ ], "source": [ "building = idf1.idfobjects['building'][0]\n", - "print building\n" + "print(building)\n" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{u'maximum<': None, u'minimum': None, u'type': u'real', u'maximum': 0.5, u'minimum>': 0.0}\n" + "{'maximum': 0.5, 'minimum': None, 'maximum<': None, 'minimum>': 0.0, 'type': 'real'}\n" ] } ], "source": [ - "print building.getrange(\"Loads_Convergence_Tolerance_Value\")\n" + "print(building.getrange(\"Loads_Convergence_Tolerance_Value\"))\n" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -279,7 +269,7 @@ } ], "source": [ - "print building.checkrange(\"Loads_Convergence_Tolerance_Value\")\n" + "print(building.checkrange(\"Loads_Convergence_Tolerance_Value\"))\n" ] }, { @@ -291,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -301,7 +291,10 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mRangeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mbuilding\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheckrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Loads_Convergence_Tolerance_Value\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mRangeError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuilding\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheckrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Loads_Convergence_Tolerance_Value\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mRangeError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0meppy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbunch_subclass\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mRangeError\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuilding\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheckrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Loads_Convergence_Tolerance_Value\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mRangeError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Documents/coolshadow/github/cutter_eppy/r_eppy/eppy/bunch_subclass.py\u001b[0m in \u001b[0;36mcheckrange\u001b[0;34m(self, fieldname)\u001b[0m\n\u001b[1;32m 213\u001b[0m \"\"\"Check if the value for a field is within the allowed range.\n\u001b[1;32m 214\u001b[0m \"\"\"\n\u001b[0;32m--> 215\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcheckrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfieldname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 216\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfieldname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Documents/coolshadow/github/cutter_eppy/r_eppy/eppy/bunch_subclass.py\u001b[0m in \u001b[0;36mcheckrange\u001b[0;34m(bch, fieldname)\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[0mastr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"Value %s is not less or equal to the 'maximum' of %s\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 428\u001b[0m \u001b[0mastr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastr\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mfieldvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtherange\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"maximum\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 429\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRangeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mastr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 430\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtherange\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"minimum\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfieldvalue\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mtherange\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"minimum\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mRangeError\u001b[0m: Value 0.6 is not less or equal to the 'maximum' of 0.5" ] } @@ -310,8 +303,8 @@ "building.Loads_Convergence_Tolerance_Value = 0.6\n", "from eppy.bunch_subclass import RangeError\n", "try:\n", - " print building.checkrange(\"Loads_Convergence_Tolerance_Value\")\n", - "except RangeError, e:\n", + " print(building.checkrange(\"Loads_Convergence_Tolerance_Value\"))\n", + "except RangeError as e:\n", " raise e\n", " " ] @@ -339,19 +332,19 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[u'key', u'Name', u'North_Axis', u'Terrain', u'Loads_Convergence_Tolerance_Value', u'Temperature_Convergence_Tolerance_Value', u'Solar_Distribution', u'Maximum_Number_of_Warmup_Days', u'Minimum_Number_of_Warmup_Days']\n" + "['key', 'Name', 'North_Axis', 'Terrain', 'Loads_Convergence_Tolerance_Value', 'Temperature_Convergence_Tolerance_Value', 'Solar_Distribution', 'Maximum_Number_of_Warmup_Days', 'Minimum_Number_of_Warmup_Days']\n" ] } ], "source": [ - "print building.fieldnames\n" + "print(building.fieldnames)\n" ] }, { @@ -363,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -384,7 +377,7 @@ ], "source": [ "for fieldname in building.fieldnames:\n", - " print \"%s = %s\" % (fieldname, building[fieldname])\n", + " print(\"%s = %s\" % (fieldname, building[fieldname]))\n", " " ] }, @@ -397,7 +390,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -421,9 +414,9 @@ "for fieldname in building.fieldnames:\n", " try:\n", " building.checkrange(fieldname)\n", - " print \"%s = %s #-in range\" % (fieldname, building[fieldname],)\n", + " print(\"%s = %s #-in range\" % (fieldname, building[fieldname],))\n", " except RangeError as e:\n", - " print \"%s = %s #-****OUT OF RANGE****\" % (fieldname, building[fieldname],)\n", + " print(\"%s = %s #-****OUT OF RANGE****\" % (fieldname, building[fieldname],))\n", " " ] }, @@ -456,7 +449,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -509,7 +502,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -558,7 +551,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -574,7 +567,7 @@ "\n", "# - How do I create a blank new idf file \n", "idftxt = \"\" # empty string\n", - "from StringIO import StringIO\n", + "from io import StringIO\n", "fhandle = StringIO(idftxt) # we can make a file handle of a string\n", "idf_emptyfile = IDF(fhandle) # initialize the IDF object with the file handle\n", "\n", @@ -592,7 +585,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -626,7 +619,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -645,7 +638,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -661,7 +654,7 @@ ], "source": [ "txt = open(\"notemptyfile.idf\", 'r').read()# read the file from the disk\n", - "print txt\n" + "print(txt)\n" ] }, { @@ -673,7 +666,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -704,13 +697,13 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "# making a blank idf object\n", "blankstr = \"\"\n", - "from StringIO import StringIO\n", + "from io import StringIO\n", "idf = IDF(StringIO(blankstr))\n" ] }, @@ -723,7 +716,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -734,7 +727,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -757,7 +750,7 @@ } ], "source": [ - "print newobject\n" + "print(newobject)\n" ] }, { @@ -769,7 +762,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -793,12 +786,12 @@ ], "source": [ "newobject.Name = \"Shiny new material object\"\n", - "print newobject\n" + "print(newobject)\n" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -825,7 +818,7 @@ "anothermaterial.Name = \"Lousy material\"\n", "thirdmaterial = idf.newidfobject(\"material\")\n", "thirdmaterial.Name = \"third material\"\n", - "print thirdmaterial\n" + "print(thirdmaterial)\n" ] }, { @@ -837,7 +830,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 43, "metadata": {}, "outputs": [ { @@ -882,7 +875,7 @@ } ], "source": [ - "print idf.idfobjects[\"MATERIAL\"]\n" + "print(idf.idfobjects[\"MATERIAL\"])\n" ] }, { @@ -912,7 +905,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 44, "metadata": {}, "outputs": [ { @@ -931,7 +924,7 @@ " 0.7; !- Visible Absorptance" ] }, - "execution_count": 28, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -942,7 +935,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 45, "metadata": {}, "outputs": [ { @@ -976,7 +969,7 @@ } ], "source": [ - "print idf.idfobjects['MATERIAL']\n" + "print(idf.idfobjects['MATERIAL'])\n" ] }, { @@ -988,7 +981,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -997,7 +990,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -1006,7 +999,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -1029,7 +1022,7 @@ } ], "source": [ - "print idf.idfobjects['MATERIAL']\n" + "print(idf.idfobjects['MATERIAL'])\n" ] }, { @@ -1058,7 +1051,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -1067,7 +1060,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 50, "metadata": {}, "outputs": [ { @@ -1086,7 +1079,7 @@ " 0.7; !- Visible Absorptance" ] }, - "execution_count": 34, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -1097,7 +1090,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 51, "metadata": {}, "outputs": [ { @@ -1131,7 +1124,7 @@ } ], "source": [ - "print idf.idfobjects[\"MATERIAL\"]" + "print(idf.idfobjects[\"MATERIAL\"])" ] }, { @@ -1157,7 +1150,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -1171,7 +1164,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 53, "metadata": {}, "outputs": [ { @@ -1194,7 +1187,7 @@ } ], "source": [ - "print gypboard" + "print(gypboard)" ] }, { @@ -1206,7 +1199,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 54, "metadata": {}, "outputs": [ { @@ -1251,7 +1244,7 @@ } ], "source": [ - "print idf.idfobjects[\"MATERIAL\"]" + "print(idf.idfobjects[\"MATERIAL\"])" ] }, { @@ -1288,7 +1281,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 55, "metadata": {}, "outputs": [ { @@ -1310,7 +1303,7 @@ " Outside_Layer=\"G01a 19mm gypsum board\",\n", " Layer_2=\"Shiny new material object\",\n", " Layer_3=\"G01a 19mm gypsum board\")\n", - "print interiorwall\n" + "print(interiorwall)\n" ] }, { @@ -1322,7 +1315,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 56, "metadata": {}, "outputs": [ { @@ -1341,7 +1334,7 @@ " 0.7; !- Visible Absorptance" ] }, - "execution_count": 40, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -1352,7 +1345,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 57, "metadata": {}, "outputs": [ { @@ -1370,7 +1363,7 @@ } ], "source": [ - "print interiorwall" + "print(interiorwall)" ] }, { @@ -1382,7 +1375,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 58, "metadata": {}, "outputs": [ { @@ -1452,7 +1445,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 59, "metadata": {}, "outputs": [ { @@ -1481,11 +1474,11 @@ "source": [ "defaultmaterial = idf.newidfobject(\"MATERIAL\", \n", " Name='with default')\n", - "print defaultmaterial\n", + "print(defaultmaterial)\n", "nodefaultmaterial = idf.newidfobject(\"MATERIAL\", \n", " Name='Without default',\n", " defaultvalues=False)\n", - "print nodefaultmaterial" + "print(nodefaultmaterial)" ] }, { @@ -1515,7 +1508,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 60, "metadata": {}, "outputs": [], "source": [ @@ -1528,7 +1521,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 61, "metadata": {}, "outputs": [], "source": [ @@ -1537,7 +1530,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 62, "metadata": {}, "outputs": [ { @@ -1553,9 +1546,9 @@ "source": [ "surfaces = idf.idfobjects[\"BuildingSurface:Detailed\"]\n", "surface = surfaces[0]\n", - "print \"area = %s\" % (surface.area, )\n", - "print \"tilt = %s\" % (surface.tilt, )\n", - "print \"azimuth = %s\" % (surface.azimuth, )" + "print(\"area = %s\" % (surface.area, ))\n", + "print(\"tilt = %s\" % (surface.tilt, ))\n", + "print( \"azimuth = %s\" % (surface.azimuth, ))" ] }, { @@ -1571,7 +1564,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 63, "metadata": {}, "outputs": [ { @@ -1588,8 +1581,8 @@ "zone = zones[0]\n", "area = modeleditor.zonearea(idf, zone.Name)\n", "volume = modeleditor.zonevolume(idf, zone.Name)\n", - "print \"zone area = %s\" % (area, )\n", - "print \"zone volume = %s\" % (volume, )" + "print(\"zone area = %s\" % (area, ))\n", + "print(\"zone volume = %s\" % (volume, ))" ] }, { @@ -1626,7 +1619,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 64, "metadata": {}, "outputs": [ { @@ -1670,7 +1663,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ @@ -1687,7 +1680,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 66, "metadata": {}, "outputs": [ { @@ -1768,7 +1761,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 67, "metadata": {}, "outputs": [ { @@ -1797,7 +1790,7 @@ "]" ] }, - "execution_count": 51, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -1820,7 +1813,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 68, "metadata": {}, "outputs": [], "source": [ @@ -1834,7 +1827,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -1883,7 +1876,7 @@ "]" ] }, - "execution_count": 53, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -1934,7 +1927,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 70, "metadata": {}, "outputs": [], "source": [ @@ -1963,11 +1956,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 74, "metadata": {}, "outputs": [], "source": [ + "from importlib import reload\n", "import eppy\n", + "reload(eppy.modeleditor)\n", "from eppy.easyopen import easyopen\n", "\n", "fname = '../eppy/resources/idffiles/V8_8/smallfile.idf'\n", @@ -2045,21 +2040,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.10" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/docs/newfunctions.py b/docs/newfunctions.py deleted file mode 100644 index 95ae4b77..00000000 --- a/docs/newfunctions.py +++ /dev/null @@ -1,575 +0,0 @@ -# -*- coding: utf-8 -*- -# 3.0 - -# - -# New functions - -# - -# These are recently written functions that have not made it into the main documentation - -# - -# Python Lesson: Errors and Exceptions - -# - -# you would normaly install eppy by doing -# python setup.py install -# or -# pip install eppy -# or -# easy_install eppy - -# if you have not done so, uncomment the following three lines -import sys - -# pathnameto_eppy = 'c:/eppy' -pathnameto_eppy = "../" -sys.path.append(pathnameto_eppy) - -# - -# When things go wrong in your eppy script, you get "Errors and Exceptions". -# -# To know more about how this works in python and eppy, take a look at [Python: Errors and Exceptions](http://docs.python.org/2/tutorial/errors.html) - -# - -# Setting IDD name - -# - -# When you work with Energyplus you are working with **idf** files (files that have the extension \*.idf). There is another file that is very important, called the **idd** file. This is the file that defines all the objects in Energyplus. Esch version of Energyplus has a different **idd** file. -# -# So eppy needs to know which **idd** file to use. Only one **idd** file can be used in a script or program. This means that you cannot change the **idd** file once you have selected it. Of course you have to first select an **idd** file before eppy can work. -# -# If you use eppy and break the above rules, eppy will raise an exception. So let us use eppy incorrectly and make eppy raise the exception, just see how that happens. -# -# First let us try to open an **idf** file without setting an **idd** file. - -# - -from eppy import modeleditor -from eppy.modeleditor import IDF - -fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - -# - -# Now let us open file fname1 without setting the **idd** file - -# - -try: - idf1 = IDF(fname1) -except modeleditor.IDDNotSetError as e: - print("raised eppy.modeleditor.IDDNotSetError") - - -# - -# OK. It does not let you do that and it raises an exception -# -# So let us set the **idd** file and then open the idf file - -# - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -IDF.setiddname(iddfile) -idf1 = IDF(fname1) - -# - -# That worked without raising an exception -# -# Now let us try to change the **idd** file. Eppy should not let you do this and should raise an exception. - -# - -try: - IDF.setiddname("anotheridd.idd") -except modeleditor.IDDAlreadySetError as e: - print("raised modeleditor.IDDAlreadySetError") - - -# - -# Excellent!! It raised the exception we were expecting. - -# - -# Check range for fields - -# - -# The fields of idf objects often have a range of legal values. The following functions will let you discover what that range is and test if your value lies within that range - -# - -# demonstrate two new functions: -# -# - EpBunch.getrange(fieldname) # will return the ranges for that field -# - EpBunch.checkrange(fieldname) # will throw an exception if the value is outside the range - -# - -from eppy import modeleditor -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - -# - -# IDF.setiddname(iddfile)# idd ws set further up in this page -idf1 = IDF(fname1) - -# - -building = idf1.idfobjects["building".upper()][0] -print(building) - -# - -print(building.getrange("Loads_Convergence_Tolerance_Value")) - -# - -print(building.checkrange("Loads_Convergence_Tolerance_Value")) - -# - -# Let us set these values outside the range and see what happens - -# - -building.Loads_Convergence_Tolerance_Value = 0.6 -from eppy.bunch_subclass import RangeError - -try: - print(building.checkrange("Loads_Convergence_Tolerance_Value")) -except RangeError as e: - print("raised range error") - - -# - -# So the Range Check works - -# - -# Looping through all the fields in an idf object - -# - -# We have seen how to check the range of field in the idf object. What if you want to do a *range check* on all the fields in an idf object ? To do this we will need a list of all the fields in the idf object. We can do this easily by the following line - -# - -print(building.fieldnames) - -# - -# So let us use this - -# - -for fieldname in building.fieldnames: - print("%s = %s" % (fieldname, building[fieldname])) - - -# - -# Now let us test if the values are in the legal range. We know that "Loads_Convergence_Tolerance_Value" is out of range - -# - -from eppy.bunch_subclass import RangeError - -for fieldname in building.fieldnames: - try: - building.checkrange(fieldname) - print("%s = %s #-in range" % (fieldname, building[fieldname])) - except RangeError as e: - print("%s = %s #-****OUT OF RANGE****" % (fieldname, building[fieldname])) - - -# - -# You see, we caught the out of range value - -# - -# Blank idf file - -# - -# Until now in all our examples, we have been reading an idf file from disk: -# -# - How do I create a blank new idf file -# - give it a file name -# - Save it to the disk -# -# Here are the steps to do that - -# - -# some initial steps -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -# IDF.setiddname(iddfile) # Has already been set - -# - Let us first open a file from the disk -fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" -idf_fromfilename = IDF(fname1) # initialize the IDF object with the file name - -idf_fromfilename.printidf() - -# - -# - now let us open a file from the disk differently -fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" -fhandle = open(fname1, "r") # open the file for reading and assign it a file handle -idf_fromfilehandle = IDF(fhandle) # initialize the IDF object with the file handle - -idf_fromfilehandle.printidf() - -# - -# So IDF object can be initialized with either a file name or a file handle - -# - How do I create a blank new idf file -idftxt = "" # empty string -from io import StringIO - -fhandle = StringIO(idftxt) # we can make a file handle of a string -idf_emptyfile = IDF(fhandle) # initialize the IDF object with the file handle - -idf_emptyfile.printidf() - -# - -# It did not print anything. Why should it. It was empty. -# -# What if we give it a string that was not blank - -# - -# - The string does not have to be blank -idftxt = "VERSION, 7.3;" # Not an emplty string. has just the version number -fhandle = StringIO(idftxt) # we can make a file handle of a string -idf_notemptyfile = IDF(fhandle) # initialize the IDF object with the file handle - -idf_notemptyfile.printidf() - -# - -# Aha ! -# -# Now let us give it a file name - -# - -# - give it a file name -idf_notemptyfile.idfname = "notemptyfile.idf" -# - Save it to the disk -idf_notemptyfile.save() - -# - -# Let us confirm that the file was saved to disk - -# - -txt = open("notemptyfile.idf", "r").read() # read the file from the disk -print(txt) - -# - -# Yup ! that file was saved. Let us delete it since we were just playing - -# - -import os - -os.remove("notemptyfile.idf") - -# - -# Deleting, copying/adding and making new idfobjects - -# - -# Making a new idf object - -# - -# Let us start with a blank idf file and make some new "MATERIAL" objects in it - -# - -# making a blank idf object -blankstr = "" -from io import StringIO - -idf = IDF(StringIO(blankstr)) - -# - -# To make and add a new idfobject object, we use the function IDF.newidfobject(). We want to make an object of type "MATERIAL" - -# - -newobject = idf.newidfobject( - "material".upper() -) # the key for the object type has to be in upper case -# .upper() makes it upper case - - -# - -print(newobject) - -# - -# Let us give this a name, say "Shiny new material object" - -# - -newobject.Name = "Shiny new material object" -print(newobject) - -# - -anothermaterial = idf.newidfobject("material".upper()) -anothermaterial.Name = "Lousy material" -thirdmaterial = idf.newidfobject("material".upper()) -thirdmaterial.Name = "third material" -print(thirdmaterial) - -# - -# Let us look at all the "MATERIAL" objects - -# - -print(idf.idfobjects["MATERIAL"]) - -# - -# As we can see there are three MATERIAL idfobjects. They are: -# -# 1. Shiny new material object -# 2. Lousy material -# 3. third material - -# - -# Deleting an idf object - -# - -# Let us remove 2. Lousy material. It is the second material in the list. So let us remove the second material - -# - -idf.popidfobject("MATERIAL", 1) # first material is '0', second is '1' - -# - -print(idf.idfobjects["MATERIAL"]) - -# - -# You can see that the second material is gone ! Now let us remove the first material, but do it using a different function - -# - -firstmaterial = idf.idfobjects["MATERIAL"][-1] - -# - -idf.removeidfobject(firstmaterial) - -# - -print(idf.idfobjects["MATERIAL"]) - -# - -# So we have two ways of deleting an idf object: -# -# 1. popidfobject -> give it the idf key: "MATERIAL", and the index number -# 2. removeidfobject -> give it the idf object to be deleted - -# - -# Copying/Adding an idf object - -# - -# Having deleted two "MATERIAL" objects, we have only one left. Let us make a copy of this object and add it to our idf file - -# - -onlymaterial = idf.idfobjects["MATERIAL"][0] - -# - -idf.copyidfobject(onlymaterial) - -# - -print(idf.idfobjects["MATERIAL"]) - -# - -# So now we have a copy of the material. You can use this method to copy idf objects from other idf files too. - -# - -# Making an idf object with named arguments - -# - -# What if we wanted to make an idf object with values for it's fields? We can do that too. - -# - -# Renaming an idf object - -# - -gypboard = idf.newidfobject( - "MATERIAL", - Name="G01a 19mm gypsum board", - Roughness="MediumSmooth", - Thickness=0.019, - Conductivity=0.16, - Density=800, - Specific_Heat=1090, -) - -# - -print(gypboard) - -# - -# newidfobject() also fills in the default values like "Thermal Absorptance", "Solar Absorptance", etc. - -# - -print(idf.idfobjects["MATERIAL"]) - -# - -# Renaming an idf object - -# - -# It is easy to rename an idf object. If we want to rename the gypboard object that we created above, we simply say: - -# - -# gypboard.Name = "a new name". - -# - -# But this could create a problem. What if this gypboard is part of a "CONSTRUCTION" object. The construction object will refer to the gypboard by name. If we change the name of the gypboard, we should change it in the construction object. -# -# But there may be many constructions objects using the gypboard. Now we will have to change it in all those construction objects. Sounds painfull. -# -# Let us try this with an example: - -# - -interiorwall = idf.newidfobject( - "CONSTRUCTION", - Name="Interior Wall", - Outside_Layer="G01a 19mm gypsum board", - Layer_2="Shiny new material object", - Layer_3="G01a 19mm gypsum board", -) -print(interiorwall) - -# - -# to rename gypboard and have that name change in all the places we call modeleditor.rename(idf, key, oldname, newname) - -# - -modeleditor.rename(idf, "MATERIAL", "G01a 19mm gypsum board", "peanut butter") - -# - -print(interiorwall) - -# - -# Now we have "peanut butter" everywhere. At least where we need it. Let us look at the entir idf file, just to be sure - -# - -idf.printidf() - -# - -# Zone area and volume - -# - -# The idf file has zones with surfaces and windows. It is easy to get the attributes of the surfaces and windows as we have seen in the tutorial. Let us review this once more: - -# - -from eppy import modeleditor -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -fname1 = "../eppy/resources/idffiles/V_7_2/box.idf" -# IDF.setiddname(iddfile) - -# - -idf = IDF(fname1) - -# - -surfaces = idf.idfobjects["BuildingSurface:Detailed".upper()] -surface = surfaces[0] -print("area = %s" % (surface.area,)) -print("tilt = %s" % (surface.tilt,)) -print("azimuth = %s" % (surface.azimuth,)) - -# - -# Can we do the same for zones ? -# -# Not yet .. not yet. Not in this version on eppy -# -# But we can still get the area and volume of the zone - -# - -zones = idf.idfobjects["ZONE"] -zone = zones[0] -area = modeleditor.zonearea(idf, zone.Name) -volume = modeleditor.zonevolume(idf, zone.Name) -print("zone area = %s" % (area,)) -print("zone volume = %s" % (volume,)) - -# - -# Not as slick, but still pretty easy - -# - -# Some notes on the zone area calculation: -# -# - area is calculated by summing up all the areas of the floor surfaces -# - if there are no floors, then the sum of ceilings and roof is taken as zone area -# - if there are no floors, ceilings or roof, we are out of luck. The function returns 0 diff --git a/docs/notes.txt b/docs/notes.txt deleted file mode 100644 index d180059c..00000000 --- a/docs/notes.txt +++ /dev/null @@ -1,151 +0,0 @@ -2017-12-10 ----------- -now upload docs to RTD (Read the docs) -- goto https://readthedocs.org/projects/eppy/ -- login as santoshphilip -- click on build -> it will build from the master in github - -uploading using twine: -- python setup.py sdist -- twine upload dist/* - - -pre-steps -- change docs link on Readme.md - DONE -- change version in - - eppy/__init__.py - - docs/source.conf.py - - setup.py - -uploading using twine: -- python setup.py sdist -- twine upload dist/* - -2015-01-13 ----------- -updated notes on publishing the documentation. - -1. main docs -- ipython notebook to make the docs in ./docs -- ipython nbconvert --to rst ../*.ipynb # run from ./docs/source -- put the rst file names in index.rst - -2. developer docs -- ipython notebook to make the docs in ./docs/source/dev_docs/ -- ipython nbconvert --to rst ./*.ipynb # run from ./docs/source/dev_docs/ -- put the rst file names in index.rst # DONE - ignore - -- set the correct version number in ./source/conf.py -- make html # run from ./docs -- correct any errors -- git push to remote -- goto and build docs again - -> ***this has changed*** - -notes on reducing rst errors from ipython notebook -- instead of multiple lines do multiple paragraphs -- indent raw text - -2014-02-11 ----------- -Steps for release -- merge develop to master -- make any copyright updates to ./LICENSE and ./docs/source/LICENSE.rst -- make notes in docs/source/changes.rst -- -- establish a release number (0.4.6) -- change the release number in the documentation. (in .docs/source/conf.py) -- change version number in ./eppy/eppy/__init__.py -- rebuild the documentation -- -- upload code to pypi ****UPLOAD DIFFERENTLY see note 2017-12-10**** - - python setup.py sdist upload - or - - python setup.py register sdist upload -r https://www.python.org/pypi - - if your computer does not have password -- install from pypi in virtualenv. eplus_sphinx (or eppy_sphinx) - - pip install --upgrade eppy - - this is needed so that code api is there -- rebuild the documentation (make html from ./docs) -- upload documentation to pypi -python setup.py upload_docs --upload-dir=docs/generated - ****DONT USE see note 2017-12-10**** -- -- push to github -- git tag r0.5.46 -- git push origin r0.5.46 -- make a release on github with a new tag = release number - - copy and paste from changes.rst (translate to markdown) - -- -- to delete a tag -- git push --delete origin tagname # on remote -- git tag --delete tagname # on local - - -2013-10-30 ----------- -change documentation verison number in ./source/conf.py -to publish the documentation -- cd ../ -- python setup.py upload_docs --upload-dir=docs/generated -2013-09-25 ----------- -notes on reducing rst errors from ipython notebook -- indent raw text, add :: in preceding markdown -- if markdown has extraneous whitespace will trigger an explicit markup and :: will not work -- raw text after code (with no results) will appear in same cell as code insert :: cell between - -2013-09-22 ----------- -notes on publishing the documentation. -- ipython notebook to make the docs -- ipython nbconvert --to rst ../*.ipynb # run from ./docs/generated -- ipython nbconvert --to rst ../*.ipynb # run from ./docs/source -- put the rst file names in index.rst -- set the correct version number in ./source/conf.py -- make html # run from docs -- correct any errors -- git push to remote -- goto and build docs again - -notes on reducing rst errors from ipython notebook -- instead of multiple lines do multiple paragraphs -- indent raw text - -2013-09-20 ----------- -to make html of the tutorials do: -ipython nbconvert --to html *.ipynb -ipython nbconvert --to html ../*.ipynb # run from ./docs/generated -ipython nbconvert --to rst ../*.ipynb # run from ./docs/generated -ipython nbconvert --to rst ../*.ipynb # run from ./docs/source - -2013-08-31 ----------- -the Tutorial is built up in the ipython notebook file -> tutorial.ipynb -tutorial.ipynb imports from eppy. -This import can be done only if eppy is installed in an virtual env. -Otherwise I'll have to hardcode the path names in the not the example code - -The following lines describe how to install eppy to use while writing the tutorial -- make a new virtualenv -> eppytutorial (need to do only once) -- install ipython notebook (need to do only once) - - easy_install ipython[all] -- install eppy in it (need to do only once - see notes below) -- do > workon eppytutorial -- workon tutorial -- cd docs -- ipython notebook (and you are ready to edit the docs in ipython) -- - - -installing the most current eppy -- workon eppytutorial # eppy_sphinx -- pip uninstall eppy (not needed first time) -- make an eppy egg - - python setup.py sdist - - - - pip install ../dist/eppy-0.4.0.tar.gz - (version number may be different - check) - - rm -r ../dist - - rm -r ../eppy.egg-info diff --git a/docs/other/2014-04-17announce.txt b/docs/other/2014-04-17announce.txt deleted file mode 100644 index 4a93483d..00000000 --- a/docs/other/2014-04-17announce.txt +++ /dev/null @@ -1,52 +0,0 @@ -[ANNOUNCEMENT] Eppy - Open Source scripting language for Energyplus - -Eppy -==== - -Eppy is a scripting language for EnergyPlus idf files, and EnergyPlus output files. Eppy is written in the programming language Python. As a result it takes full advantage of the rich data structure and idioms that are avaliable in python. You can programmatically navigate, search, and modify EnergyPlus idf files using eppy. The power of using a scripting language allows you to do the following: - -- Make a large number of changes in an idf file with a few lines of eppy code. -- Use conditions and filters when making changes to an idf file -- Make changes to multiple idf files. -- Read data from the output files of a EnergyPlus simulation run. -- Based on the results of a EnergyPlus simulation run, generate the input file for the next simulation run. - -So what does this matter? -Here are some of the things you can do with eppy: - - -- Change construction for all north facing walls. -- Change the glass type for all windows larger than 2 square meters. -- Change the number of people in all the interior zones. -- Change the lighting power in all south facing zones. -- Change the efficiency and fan power of all rooftop units. -- Find the energy use of all the models in a folder (or of models that were run after a certain date) - -You can install from : - - -The documentation is at: - - -to get a quick sense of how it feels to use eppy, take a look at - - -The code repository is at - - -email me if you run into any issues. -Put eppy in the subject line (the spam filter tends to be rather aggressive, and I might have to look in the junk folder) - -The code is hosted on github , in case you want to grab the latest code. It is under active development - --------------------------- - -Some background to the project - -Eppy was developed over the last year, for the ASHRAE 1651-RP research project that required modifying large number of files and analyzing the results. -Eppy was partially funded by ASHRAE -The original code was written in 2004 as a text interface for Energyplus and the scripting language was built on it's foundations -The open source license is GPLv3 - -The code has been heavily used and is very robust and stable -It works for all versions of Energyplus. It is designed to to work without modifications on future versions too. diff --git a/docs/readme.rst b/docs/readme.rst new file mode 100644 index 00000000..72a33558 --- /dev/null +++ b/docs/readme.rst @@ -0,0 +1 @@ +.. include:: ../README.rst diff --git a/docs/runningeplus.ipynb b/docs/runningeplus.ipynb index f7216996..76f6a84e 100644 --- a/docs/runningeplus.ipynb +++ b/docs/runningeplus.ipynb @@ -18,10 +18,8 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, + "execution_count": 4, + "metadata": {}, "outputs": [], "source": [ "# you would normaly install eppy by doing\n", @@ -40,10 +38,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [], "source": [ "from eppy.modeleditor import IDF\n", @@ -54,11 +50,19 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\r\n", + "/Applications/EnergyPlus-8-3-0/energyplus --weather /Applications/EnergyPlus-8-3-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw --output-directory /Users/santoshphilip/Documents/coolshadow/github/cutter_eppy/r_eppy/docs --idd /Applications/EnergyPlus-8-3-0/Energy+.idd /Users/santoshphilip/Documents/coolshadow/github/cutter_eppy/r_eppy/docs/in.idf\r\n", + "\n" + ] + } + ], "source": [ "idfname = \"/Applications/EnergyPlus-8-3-0/ExampleFiles/BasicsFiles/Exercise1A.idf\"\n", "epwfile = \"/Applications/EnergyPlus-8-3-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw\"\n", @@ -76,7 +80,7 @@ ] }, { - "cell_type": "raw", + "cell_type": "markdown", "metadata": {}, "source": [ " \n", @@ -116,10 +120,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -127,10 +129,10 @@ "text": [ "Help on method run in module eppy.modeleditor:\n", "\n", - "run(self, **kwargs) method of eppy.modeleditor.IDF instance\n", + "run(**kwargs) method of eppy.modeleditor.IDF instance\n", " This method wraps the following method:\n", " \n", - " run(idf=None, weather=None, output_directory=u'', annual=False, design_day=False, idd=None, epmacro=False, expandobjects=False, readvars=False, output_prefix=None, output_suffix=None, version=False, verbose=u'v', ep_version=None)\n", + " run(idf=None, weather=None, output_directory='', annual=False, design_day=False, idd=None, epmacro=False, expandobjects=False, readvars=False, output_prefix=None, output_suffix=None, version=False, verbose='v', ep_version=None)\n", " Wrapper around the EnergyPlus command line interface.\n", " \n", " Parameters\n", @@ -249,23 +251,23 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.10" + "pygments_lexer": "ipython3", + "version": "3.8.5" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/runningnotes.txt b/docs/runningnotes.txt deleted file mode 100644 index e6df54d4..00000000 --- a/docs/runningnotes.txt +++ /dev/null @@ -1,4 +0,0 @@ -2013-09-22 ----------- - -fix the notebook file so that sphinx does not make any errors with it. - DONE \ No newline at end of file diff --git a/docs/something.idf b/docs/something.idf index 6787d8c2..39ef67c7 100644 --- a/docs/something.idf +++ b/docs/something.idf @@ -1,17 +1,18 @@ +!- Darwin Line endings -VERSION, +VERSION, 7.3; !- Version Identifier -SIMULATIONCONTROL, +SIMULATIONCONTROL, Yes, !- Do Zone Sizing Calculation Yes, !- Do System Sizing Calculation Yes, !- Do Plant Sizing Calculation No, !- Run Simulation for Sizing Periods Yes; !- Run Simulation for Weather File Run Periods -BUILDING, +BUILDING, Empire State Building, !- Name - 30.0, !- North Axis + 30, !- North Axis City, !- Terrain 0.04, !- Loads Convergence Tolerance Value 0.4, !- Temperature Convergence Tolerance Value @@ -19,9 +20,9 @@ BUILDING, 25, !- Maximum Number of Warmup Days 6; !- Minimum Number of Warmup Days -SITE:LOCATION, +SITE:LOCATION, CHICAGO_IL_USA TMY2-94846, !- Name 41.78, !- Latitude -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation + -6, !- Time Zone + 190; !- Elevation \ No newline at end of file diff --git a/docs/source/HVAC_Tutorial.rst b/docs/source/HVAC_Tutorial.rst deleted file mode 100644 index 31696300..00000000 --- a/docs/source/HVAC_Tutorial.rst +++ /dev/null @@ -1,564 +0,0 @@ - -HVAC Loops -========== - -Conceptual Introduction to HVAC Loops -------------------------------------- - -Eppy builds threee kinds of loops for the energyplus idf file: - -1. Plant Loops -2. Condensor Loops -3. Air Loops - -All loops have two halves: - -1. Supply side -2. Demand Side - -The supply side provides the energy to the demand side that needs the -energy. So the end-nodes on the supply side connect to the end-nodes on -the demand side. - -The loop is made up of branches connected to each other. A single branch -can lead to multiple branches through a **splitter** component. Multiple -branches can lead to a single branch through a **mixer** component. - -Each branch is made up of components connected in series (in a line) - -Eppy starts off by building the shape or topology of the loop by -connecting the branches in the right order. The braches themselves have -a single component in them, that is just a place holder. Usually it is a -pipe component. In an air loop it would be a duct component. - -The shape of the loop for the supply or demand side is quite simple. - -It can be described in the following manner for the supply side - -- The supply side starts single branch leads to a splitter -- The splitter leads to multiple branches -- these multiple branches come back and join in a mixer -- the mixer leads to a single branch that becomes end of the suppply - side - -For the demand side we have: - -- The demand side starts single branch leads to a splitter -- The splitter leads to multiple branches -- these multiple branches come back and join in a mixer -- the mixer leads to a single branch that becomes end of the demand - side - -The two ends of the supply side connect to the two ends of the demand -side. - -Diagramtically the the two sides of the loop will look like this:: - - Supply Side: - ------------ - -> branch1 -> - start_branch --> branch2 --> end_branch - -> branch3 -> - Demand Side: - ------------ - - -> d_branch1 -> - d_start_branch --> d_branch2 --> d_end_branch - -> d_branch3 -> - - -In eppy you could embody this is a list - -.. code:: python - - supplyside = ['start_brandh', [ 'branch1', 'branch2', 'branch3'], 'end_branch'] - demandside = ['d_start_brandh', ['d_branch1', 'd_branch2', 'd_branch3'], 'd_end_branch'] - - -Eppy will build the build the shape/topology of the loop using the two -lists above. Each branch will have a placeholder component, like a pipe -or a duct:: - - - branch1 = --duct-- - - -Now we will have to replace the placeholder with the real components -that make up the loop. For instance, branch1 should really have a -pre-heat coil leading to a supply fan leading to a cooling coil leading -to a heating coil:: - - - new_branch = pre-heatcoil -> supplyfan -> coolingcoil -> heatingcoil - - -Eppy lets you build a new branch and you can replace branch1 with -new\_branch - -In this manner we can build up the entire loop with the right -components, once the initial toplogy is right - -Building a Plant loops ----------------------- - -Eppy can build up the topology of a plant loop using single pipes in a -branch. Once we do that the simple branch in the loop we have built can -be replaced with a more complex branch. - -Let us try this out ans see how it works. - -Building the topology of the loop -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - -.. code:: python - - from eppy.modeleditor import IDF - from eppy import hvacbuilder - - from StringIO import StringIO - iddfile = "../eppy/resources/iddfiles/Energy+V7_0_0_036.idd" - IDF.setiddname(iddfile) - - -.. code:: python - - # make the topology of the loop - idf = IDF(StringIO('')) # makes an empty idf file in memory with no file name - loopname = "p_loop" - sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop - dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side of the loop - hvacbuilder.makeplantloop(idf, loopname, sloop, dloop) - idf.saveas("hhh1.idf") - - -| We have made plant loop and saved it as hhh1.idf. -| Now let us look at what the loop looks like. - -Diagram of the loop -~~~~~~~~~~~~~~~~~~~ - -Let us use the script "eppy/useful\_scripts/loopdiagrams.py" to draw -this diagram - -See `Generating a Loop Diagram `__ -page for details on how to do this - -Below is the diagram for this simple loop - -*Note: the supply and demnd sides are not connected in the diagram, but -shown seperately for clarity* - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.plantloop1) # display the image below - - - - -.. image:: HVAC_Tutorial_files/HVAC_Tutorial_23_0.png - - -Modifying the topology of the loop -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Let us make a new branch and replace the exisiting branch - -The existing branch name is "sb0" and it contains a single pipe -component sb0\_pipe. - -Let us replace it with a branch that has a chiller that is connected to -a pipe which is turn connected to another pipe. So the connections in -the new branch would look like "chiller-> pipe1->pipe2" - -.. code:: python - - # make a new branch chiller->pipe1-> pipe2 - - # make a new pipe component - pipe1 = idf.newidfobject("PIPE:ADIABATIC", 'np1') - - # make a new chiller - chiller = idf.newidfobject("Chiller:Electric".upper(), 'Central_Chiller') - - # make another pipe component - pipe2 = idf.newidfobject("PIPE:ADIABATIC", 'np2') - - # get the loop we are trying to modify - loop = idf.getobject('PLANTLOOP', 'p_loop') # args are (key, name) - # get the branch we are trying to modify - branch = idf.getobject('BRANCH', 'sb0') # args are (key, name) - listofcomponents = [chiller, pipe1, pipe2] # the new components are connected in this order - - -Now we are going to try to replace **branch** with the a branch made up -of **listofcomponents** - -- We will do this by calling the function replacebranch -- Calling replacebranch can throw an exception ``WhichLoopError`` -- In a moment, you will see why this exception is important - -.. code:: python - - try: - newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water') - except hvacbuilder.WhichLoopError as e: - print e - - - -.. parsed-literal:: - - Where should this loop connect ? - CHILLER:ELECTRIC - Central_Chiller - [u'Chilled_Water_', u'Condenser_', u'Heat_Recovery_'] - - - -The above code throws the exception. It says that the idfobject -``CHILLER:ELECTRIC - Central_Chiller`` has three possible connections. -The chiller has inlet outlet nodes for the following - -- Chilled water -- Condenser -- Heat Recovery - -eppy does not know which one to connect to, and it needs your help. We -know that the chiller needs to be connected to the chilled water inlet -and outlet. Simply copy ``Chilled_Water_`` from the text in the -exception and paste as shown in the code below. (make sure you copy it -exactly. eppy is a little nerdy about that) - -.. code:: python - - # instead of passing chiller to the function, we pass a tuple (chiller, 'Chilled_Water_'). - # This lets eppy know where the connection should be made. - # The idfobject pipe does not have this ambiguity. So pipes do not need this extra information - listofcomponents = [(chiller, 'Chilled_Water_'), pipe1, pipe2] - - try: - newbr = hvacbuilder.replacebranch(idf, loop, branch, listofcomponents, fluid='Water') - except Exception as e: - print e - else: # else will run only if the try suceeds - print "no exception was thrown" - - idf.saveas("hhh_new.idf") - - - -.. parsed-literal:: - - no exception was thrown - - -*Tagential note*: The ``"try .. except .. else"`` statement is useful -here. If you have not run across it before, take a look at these two -links - -- http://shahriar.svbtle.com/the-possibly-forgotten-optional-else-in-python-try-statement -- https://docs.python.org/2/tutorial/errors.html - -| We have saved this as file "hhh\_new.idf". -| Let us draw the diagram of this file. (run this from eppy/eppy folder) - -python ex_loopdiagram.py hhh_new.idf - - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.plantloop2) # display the image below - - - - -.. image:: HVAC_Tutorial_files/HVAC_Tutorial_34_0.png - - -This diagram shows the new components in the branch - -Work flow with ``WhichLoopError`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -When you are writing scripts don't bother to use ``try .. except`` for -``WhichLoopError``. - -- Simply allow the exception to be raised. -- Use the information in the exception to update your code -- You may have to do this a couple of times in your script. -- In a sense you are letting eppy tell you how to update the script. - -*Question:* I am writing an application using eppy, not just a script. -The above workflow does not work for me - -*Response:* Aha ! If that is the case, open an issue in -`github/eppy `__. We are lazy -people. We don't write code unless it is needed :-) - -Traversing the loop -~~~~~~~~~~~~~~~~~~~ - -It would be nice to move through the loop using functions "nextnode()" -and "prevnode()" - -Eppy indeed has such functions - -Let us try to traverse the loop above. - -.. code:: python - - # to traverse the loop we are going to call some functions ex_loopdiagrams.py, - # the program that draws the loop diagrams. - from eppy import ex_loopdiagram - fname = 'hhh_new.idf' - iddfile = '../eppy/resources/iddfiles/Energy+V8_0_0.idd' - edges = ex_loopdiagram.getedges(fname, iddfile) - # edges are the lines that draw the nodes in the loop. - # The term comes from graph theory in mathematics - - -The above code gets us the edges of the loop diagram. Once we have the -edges, we can traverse through the diagram. Let us start with the -"Central\_Chiller" and work our way down. - -.. code:: python - - from eppy import walk_hvac - firstnode = "Central_Chiller" - nextnodes = walk_hvac.nextnode(edges, firstnode) - print nextnodes - - - -.. parsed-literal:: - - [u'np1'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'np2'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_splitter'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] - - -This leads us to three components -> ['sb1\_pipe', 'sb2\_pipe', -'sb3\_pipe']. Let us follow one of them - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_mixer'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [u'sb4_pipe'] - - -.. code:: python - - nextnodes = walk_hvac.nextnode(edges, nextnodes[0]) - print nextnodes - - - -.. parsed-literal:: - - [] - - -We have reached the end of this branch. There are no more components. - -We can follow this in reverse using the function prevnode() - -.. code:: python - - lastnode = 'sb4_pipe' - prevnodes = walk_hvac.prevnode(edges, lastnode) - print prevnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_mixer'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'p_loop_supply_splitter'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'np2'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'np1'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [u'Central_Chiller'] - - -.. code:: python - - prevnodes = walk_hvac.prevnode(edges, prevnodes[0]) - print prevnodes - - - -.. parsed-literal:: - - [] - - -All the way to where the loop ends - -Building a Condensor loop -------------------------- - -We build the condensor loop the same way we built the plant loop. Pipes -are put as place holders for the components. Let us build a new idf file -with just a condensor loop in it. - -.. code:: python - - condensorloop_idf = IDF(StringIO('')) - loopname = "c_loop" - sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side - dloop = ['db0', ['db1', 'db2', 'db3'], 'db4'] # demand side - theloop = hvacbuilder.makecondenserloop(condensorloop_idf, loopname, sloop, dloop) - condensorloop_idf.saveas("c_loop.idf") - - -Again, just as we did in the plant loop, we can change the components of -the loop, by replacing the branchs and traverse the loop using the -functions nextnode() and prevnode() - -Building an Air Loop --------------------- - -Building an air loop is similar to the plant and condensor loop. The -difference is that instead of pipes , we have ducts as placeholder -components. The other difference is that we have zones on the demand -side. - -.. code:: python - - airloop_idf = IDF(StringIO('')) - loopname = "a_loop" - sloop = ['sb0', ['sb1', 'sb2', 'sb3'], 'sb4'] # supply side of the loop - dloop = ['zone1', 'zone2', 'zone3'] # zones on the demand side - hvacbuilder.makeairloop(airloop_idf, loopname, sloop, dloop) - airloop_idf.saveas("a_loop.idf") - - -Again, just as we did in the plant and condensor loop, we can change the -components of the loop, by replacing the branchs and traverse the loop -using the functions nextnode() and prevnode() diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_10_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_10_0.png deleted file mode 100644 index e96d62b7..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_10_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_11_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_11_0.png deleted file mode 100644 index e96d62b7..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_11_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_12_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_12_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_12_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_15_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_15_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_15_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_17_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_17_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_17_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_20_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_20_0.text deleted file mode 100644 index f1ecc218..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_20_0.text +++ /dev/null @@ -1 +0,0 @@ -['np1'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_21_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_21_0.png deleted file mode 100644 index e96d62b7..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_21_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_21_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_21_0.text deleted file mode 100644 index 0c375bf3..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_21_0.text +++ /dev/null @@ -1 +0,0 @@ -['np2'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_22_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_22_0.text deleted file mode 100644 index f1ecc218..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_22_0.text +++ /dev/null @@ -1 +0,0 @@ -['np1'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_23_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_23_0.png deleted file mode 100644 index e96d62b7..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_23_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_23_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_23_0.text deleted file mode 100644 index 2f9e9ef4..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_23_0.text +++ /dev/null @@ -1,4 +0,0 @@ -constructing the loops -making the diagram -saved file: ../../docs/hhh1.dot -saved file: ../../docs/hhh1.png diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_24_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_24_0.text deleted file mode 100644 index d1b125f0..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_24_0.text +++ /dev/null @@ -1 +0,0 @@ -['p_loop_supply_splitter'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_25_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_25_0.text deleted file mode 100644 index 03f4b188..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_25_0.text +++ /dev/null @@ -1 +0,0 @@ -['sb1_pipe', 'sb2_pipe', 'sb3_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_26_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_26_0.png deleted file mode 100644 index e96d62b7..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_26_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_26_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_26_0.text deleted file mode 100644 index 1ffcb36f..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_26_0.text +++ /dev/null @@ -1 +0,0 @@ -['sb4_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_27_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_27_0.text deleted file mode 100644 index aa22307a..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_27_0.text +++ /dev/null @@ -1 +0,0 @@ -['p_loop_supply_mixer'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_28_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_28_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_28_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_28_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_28_0.text deleted file mode 100644 index d3c53c33..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_28_0.text +++ /dev/null @@ -1,4 +0,0 @@ -Where should this loop connect ? -CHILLER:ELECTRIC - Central_Chiller -[u'Chilled_Water_', u'Condenser_', u'Heat_Recovery_'] - diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_29_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_29_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_29_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_29_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_29_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_29_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_30_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_30_0.text deleted file mode 100644 index 555e9e42..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_30_0.text +++ /dev/null @@ -1 +0,0 @@ -no exception was thrown diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_31_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_31_0.text deleted file mode 100644 index aa22307a..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_31_0.text +++ /dev/null @@ -1 +0,0 @@ -['p_loop_supply_mixer'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_32_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_32_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_32_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_32_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_32_0.text deleted file mode 100644 index 03f4b188..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_32_0.text +++ /dev/null @@ -1 +0,0 @@ -['sb1_pipe', 'sb2_pipe', 'sb3_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_33_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_33_0.text deleted file mode 100644 index f1ecc218..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_33_0.text +++ /dev/null @@ -1 +0,0 @@ -['np1'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_34_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_34_0.png deleted file mode 100644 index bdbd410e..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_34_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_34_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_34_0.text deleted file mode 100644 index 0c375bf3..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_34_0.text +++ /dev/null @@ -1 +0,0 @@ -['np2'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_35_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_35_0.text deleted file mode 100644 index e7009694..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_35_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'np1'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_36_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_36_0.text deleted file mode 100644 index cd6f0aab..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_36_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'np2'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_37_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_37_0.text deleted file mode 100644 index 44dd8698..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_37_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_splitter'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_38_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_38_0.text deleted file mode 100644 index 62a4c610..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_38_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_39_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_39_0.text deleted file mode 100644 index 0c375bf3..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_39_0.text +++ /dev/null @@ -1 +0,0 @@ -['np2'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_40_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_40_0.text deleted file mode 100644 index efaeb04b..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_40_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_mixer'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_41_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_41_0.text deleted file mode 100644 index 7a532e58..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_41_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'sb4_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_42_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_42_0.text deleted file mode 100644 index e7009694..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_42_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'np1'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_43_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_43_0.text deleted file mode 100644 index cd6f0aab..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_43_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'np2'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_44_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_44_0.text deleted file mode 100644 index 44dd8698..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_44_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_splitter'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_45_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_45_0.text deleted file mode 100644 index 62a4c610..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_45_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_46_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_46_0.text deleted file mode 100644 index 44dd8698..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_46_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_splitter'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_47_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_47_0.text deleted file mode 100644 index efaeb04b..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_47_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_mixer'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_48_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_48_0.text deleted file mode 100644 index 7a532e58..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_48_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'sb4_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_49_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_49_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_49_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_50_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_50_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_50_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_51_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_51_0.text deleted file mode 100644 index efaeb04b..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_51_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_mixer'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_52_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_52_0.text deleted file mode 100644 index 62a4c610..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_52_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'sb1_pipe', u'sb2_pipe', u'sb3_pipe'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_53_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_53_0.text deleted file mode 100644 index 44dd8698..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_53_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'p_loop_supply_splitter'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_54_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_54_0.text deleted file mode 100644 index cd6f0aab..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_54_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'np2'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_55_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_55_0.text deleted file mode 100644 index e7009694..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_55_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'np1'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_56_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_56_0.text deleted file mode 100644 index 6de3070a..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_56_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'Central_Chiller'] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_57_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_57_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_57_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_7_0.png b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_7_0.png deleted file mode 100644 index e96d62b7..00000000 Binary files a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_7_0.png and /dev/null differ diff --git a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_9_0.text b/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_9_0.text deleted file mode 100644 index fccd1b3e..00000000 --- a/docs/source/HVAC_Tutorial_files/HVAC_Tutorial_9_0.text +++ /dev/null @@ -1,2 +0,0 @@ -unknown field Connector_3_Object_Type -unknown field Connector_3_Object_Type diff --git a/docs/source/HVAC_diagrams.rst b/docs/source/HVAC_diagrams.rst deleted file mode 100644 index cc89b36f..00000000 --- a/docs/source/HVAC_diagrams.rst +++ /dev/null @@ -1,77 +0,0 @@ - -.. code:: python - - """HVAC diagrams""" - - - -.. parsed-literal:: - - 'HVAC diagrams' - - - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V8_0_0.idd" - fname = "../eppy/resources/idffiles/V8_0_0/5ZoneSupRetPlenRAB.idf" - IDF.setiddname(iddfile) -.. code:: python - - idf = IDF(fname) -.. code:: python - - # idf.model -.. code:: python - - from eppy.EPlusInterfaceFunctions import readidf - from eppy.ex_loopdiagram import makeairplantloop, makediagram - - print "readingfile" - data, commdct = readidf.readdatacommdct(fname, iddfile=iddfile) - print "constructing the loops" - edges = makeairplantloop(data, commdct) - print "making the diagram" - g = makediagram(edges) - dotname = "a.dot" - pngname = "a.png" - # dotname = '%s.dot' % (os.path.splitext(fname)[0]) - # pngname = '%s.png' % (os.path.splitext(fname)[0]) - g.write(dotname) - g.write_png(pngname) - - -.. parsed-literal:: - - readingfile - constructing the loops - making the diagram - - - - -.. parsed-literal:: - - True - - - -.. code:: python - - \ No newline at end of file diff --git a/docs/source/HVAC_diagrams_files/HVAC_diagrams_0_0.text b/docs/source/HVAC_diagrams_files/HVAC_diagrams_0_0.text deleted file mode 100644 index b0f384ec..00000000 --- a/docs/source/HVAC_diagrams_files/HVAC_diagrams_0_0.text +++ /dev/null @@ -1 +0,0 @@ -'HVAC diagrams' \ No newline at end of file diff --git a/docs/source/HVAC_diagrams_files/HVAC_diagrams_5_0.text b/docs/source/HVAC_diagrams_files/HVAC_diagrams_5_0.text deleted file mode 100644 index f283b07c..00000000 --- a/docs/source/HVAC_diagrams_files/HVAC_diagrams_5_0.text +++ /dev/null @@ -1,3 +0,0 @@ -readingfile -constructing the loops -making the diagram diff --git a/docs/source/HVAC_diagrams_files/HVAC_diagrams_5_1.text b/docs/source/HVAC_diagrams_files/HVAC_diagrams_5_1.text deleted file mode 100644 index 4791ed55..00000000 --- a/docs/source/HVAC_diagrams_files/HVAC_diagrams_5_1.text +++ /dev/null @@ -1 +0,0 @@ -True \ No newline at end of file diff --git a/docs/source/LICENSE.rst b/docs/source/LICENSE.rst deleted file mode 100644 index b5000d4f..00000000 --- a/docs/source/LICENSE.rst +++ /dev/null @@ -1,27 +0,0 @@ -LICENSE -======= - -The MIT License (MIT) - -Copyright (c) 2004, 2012-2016 Santosh Philip -Copyright (c) 2012 Tuan Tran -Copyright (c) 2014 Eric Allen Youngson -Copyright (c) 2015-2016 Jamie Bull - -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. \ No newline at end of file diff --git a/docs/source/Main_Tutorial.rst b/docs/source/Main_Tutorial.rst deleted file mode 100644 index 24ec5369..00000000 --- a/docs/source/Main_Tutorial.rst +++ /dev/null @@ -1,2263 +0,0 @@ - -Eppy Tutorial -============= - -Authors: Santosh Philip, Leora Tanjuatco - -Eppy is a scripting language for E+ idf files, and E+ output files. Eppy -is written in the programming language Python. As a result it takes full -advantage of the rich data structure and idioms that are avaliable in -python. You can programmatically navigate, search, and modify E+ idf -files using eppy. The power of using a scripting language allows you to -do the following: - -- Make a large number of changes in an idf file with a few lines of - eppy code. -- Use conditions and filters when making changes to an idf file -- Make changes to multiple idf files. -- Read data from the output files of a E+ simulation run. -- Based to the results of a E+ simulation run, generate the input file - for the next simulation run. - -So what does this matter? Here are some of the things you can do with -eppy: - -- Change construction for all north facing walls. -- Change the glass type for all windows larger than 2 square meters. -- Change the number of people in all the interior zones. -- Change the lighting power in all south facing zones. -- Change the efficiency and fan power of all rooftop units. -- Find the energy use of all the models in a folder (or of models that - were run after a certain date) -- If a model is using more energy than expected, keep increasing the - R-value of the roof until you get to the expected energy use. - -Quick Start ------------ - -Here is a short IDF file that I’ll be using as an example to start us -off :: - - VERSION, - 7.2; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - White House, !- Name - 30., !- North Axis {deg} - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value {deltaC} - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude {deg} - -87.75, !- Longitude {deg} - -6.00, !- Time Zone {hr} - 190.00; !- Elevation {m} - - -To use eppy to look at this model, we have to run a little code first: - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - -.. code:: python - - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - - -idf1 now holds all the data to your in you idf file. - -Now that the behind-the-scenes work is done, we can print this file. - -.. code:: python - - idf1.printidf() - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -Looks like the same file as before, except that all the comments are -slightly different. - -As you can see, this file has four objects: - -- VERSION -- SIMULATIONCONTROL -- BUILDING -- SITE:LOCATION - -So, let us look take a closer look at the BUILDING object. We can do -this using this command:: - - print filename.idfobjects['OBJECTNAME'] - -.. code:: python - - print idf1.idfobjects['BUILDING'] # put the name of the object you'd like to look at in brackets - - -.. parsed-literal:: - - [ - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - ] - - -We can also zoom in on the object and look just at its individual parts. - -For example, let us look at the name of the building. - -To do this, we have to do some more behind-the-scenes work, which we'll -explain later. - -.. code:: python - - building = idf1.idfobjects['BUILDING'][0] - - -Now we can do this: - -.. code:: python - - print building.Name - - - -.. parsed-literal:: - - Empire State Building - - -Now that we've isolated the building name, we can change it. - -.. code:: python - - building.Name = "Empire State Building" - - -.. code:: python - - print building.Name - - - -.. parsed-literal:: - - Empire State Building - - -Did this actually change the name in the model ? Let us print the entire -model and see. - -.. code:: python - - idf1.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -Yes! It did. So now you have a taste of what eppy can do. Let's get -started! - -Modifying IDF Fields --------------------- - -That was just a quick example -- we were showing off. Let's look a -little closer. - -As you might have guessed, changing an IDF field follows this -structure:: - - object.fieldname = "New Field Name" - - -Plugging the object name (building), the field name (Name) and our new -field name ("Empire State Building") into this command gave us this: - -.. code:: python - - building.Name = "Empire State Building" - - -.. code:: python - - import eppy - # import eppy.ex_inits - # reload(eppy.ex_inits) - import eppy.ex_inits - - -But how did we know that "Name" is one of the fields in the object -"building"? - -Are there other fields? - -What are they called? - -Let's take a look at the IDF editor: - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.idfeditor) - - - - -.. image:: Main_Tutorial_files/Main_Tutorial_34_0.png - - -In the IDF Editor, the building object is selected. - -We can see all the fields of the object "BUILDING". - -They are: - -- Name -- North Axis -- Terrain -- Loads Convergence Tolerance Value -- Temperature Convergence Tolerance Value -- Solar Distribution -- Maximum Number of Warmup Days -- Minimum Number of Warmup Days - -Let us try to access the other fields. - -.. code:: python - - print building.Terrain - - - -.. parsed-literal:: - - City - - -How about the field "North Axis" ? - -It is not a single word, but two words. - -In a programming language, a variable has to be a single word without -any spaces. - -To solve this problem, put an underscore where there is a space. - -So "North Axis" becomes "North\_Axis". - -.. code:: python - - print building.North_Axis - - - -.. parsed-literal:: - - 30.0 - - -Now we can do: - -.. code:: python - - print building.Name - print building.North_Axis - print building.Terrain - print building.Loads_Convergence_Tolerance_Value - print building.Temperature_Convergence_Tolerance_Value - print building.Solar_Distribution - print building.Maximum_Number_of_Warmup_Days - print building.Minimum_Number_of_Warmup_Days - - - -.. parsed-literal:: - - Empire State Building - 30.0 - City - 0.04 - 0.4 - FullExterior - 25 - 6 - - -Where else can we find the field names? - -The IDF Editor saves the idf file with the field name commented next to -field. - -Eppy also does this. - -Let us take a look at the "BUILDING" object in the text file that the -IDF Editor saves :: - - BUILDING, - White House, !- Name - 30., !- North Axis {deg} - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value {deltaC} - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - -This a good place to find the field names too. - -It is easy to copy and paste from here. You can't do that from the IDF -Editor. - -We know that in an E+ model, there will be only ONE "BUILDING" object. -This will be the first and only item in the list "buildings". - -But E+ models are made up of objects such as "BUILDING", -"SITE:LOCATION", "ZONE", "PEOPLE", "LIGHTS". There can be a number of -"ZONE" objects, a number of "PEOPLE" objects and a number of "LIGHTS" -objects. - -So how do you know if you're looking at the first "ZONE" object or the -second one? Or the tenth one? To answer this, we need to learn about how -lists work in python. - -Python lesson 1: lists ----------------------- - -Eppy holds these objects in a python structure called list. Let us take -a look at how lists work in python. - -.. code:: python - - fruits = ["apple", "orange", "bannana"] - # fruits is a list with three items in it. - - -To get the first item in fruits we say: - -.. code:: python - - fruits[0] - - - - - -.. parsed-literal:: - - 'apple' - - - -Why "0" ? - -Because, unlike us, python starts counting from zero in a list. So, to -get the third item in the list we'd need to input 2, like this: - -.. code:: python - - print fruits[2] - - - -.. parsed-literal:: - - bannana - - -But calling the first fruit "fruit[0]" is rather cumbersome. Why don't -we call it firstfruit? - -.. code:: python - - firstfruit = fruits[0] - print firstfruit - - - -.. parsed-literal:: - - apple - - -We also can say - -.. code:: python - - goodfruit = fruits[0] - redfruit = fruits[0] - - print firstfruit - print goodfruit - print redfruit - print fruits[0] - - - -.. parsed-literal:: - - apple - apple - apple - apple - - -As you see, we can call that item in the list whatever we want. - -How many items in the list -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To know how many items are in a list, we ask for the length of the list. - -The function 'len' will do this for us. - -.. code:: python - - print len(fruits) - - - -.. parsed-literal:: - - 3 - - -There are 3 fruits in the list. - -Saving an idf file ------------------- - -This is easy: - -.. code:: python - - idf1.save() - - -If you'd like to do a "Save as..." use this: - -.. code:: python - - idf1.saveas('something.idf') - - -Working with E+ objects ------------------------ - -Let us open a small idf file that has only "CONSTRUCTION" and "MATERIAL" -objects in it. You can go into "../idffiles/V\_7\_2/constructions.idf" -and take a look at the file. We are not printing it here because it is -too big. - -So let us open it using the idfreader - - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - try: - IDF.setiddname(iddfile) - except modeleditor.IDDAlreadySetError as e: - pass - - fname1 = "../eppy/resources/idffiles/V_7_2/constructions.idf" - idf1 = IDF(fname1) - - -Let us print all the "MATERIAL" objects in this model. - -.. code:: python - - materials = idf1.idfobjects["MATERIAL"] - print materials - - - -.. parsed-literal:: - - [ - Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat - , - Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - , - Material, - I02 50mm insulation board, !- Name - MediumRough, !- Roughness - 0.0508, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - , - Material, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800.0, !- Density - 1090.0; !- Specific Heat - , - Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat - , - Material, - F16 Acoustic tile, !- Name - MediumSmooth, !- Roughness - 0.0191, !- Thickness - 0.06, !- Conductivity - 368.0, !- Density - 590.0; !- Specific Heat - , - Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat - , - Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat - , - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - , - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - ] - - -As you can see, there are many material objects in this idf file. - -The variable "materials" now contains a list of "MATERIAL" objects. - -You already know a little about lists, so let us take a look at the -items in this list. - -.. code:: python - - firstmaterial = materials[0] - secondmaterial = materials[1] - - -.. code:: python - - print firstmaterial - - - -.. parsed-literal:: - - - Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat - - - -Let us print secondmaterial - -.. code:: python - - print secondmaterial - - - -.. parsed-literal:: - - - Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - - - -This is awesome!! Why? - -To understand what you can do with your objects organized as lists, -you'll have to learn a little more about lists. - -Python lesson 2: more about lists ---------------------------------- - -More ways to access items in a list -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You should remember that you can access any item in a list by passing in -its index. - -The tricky part is that python starts counting at 0, so you need to -input 0 in order to get the first item in a list. - -Following the same logic, you need to input 3 in order to get the fourth -item on the list. Like so: - -.. code:: python - - bad_architects = ["Donald Trump", "Mick Jagger", - "Steve Jobs", "Lady Gaga", "Santa Clause"] - print bad_architects[3] - - - -.. parsed-literal:: - - Lady Gaga - - -But there's another way to access items in a list. If you input -1, it -will return the last item. -2 will give you the second-to-last item, -etc. - -.. code:: python - - print bad_architects[-1] - print bad_architects[-2] - - - -.. parsed-literal:: - - Santa Clause - Lady Gaga - - -Slicing a list -^^^^^^^^^^^^^^ - -You can also get more than one item in a list: - -bad_architects[first_slice:second_slice] - - -.. code:: python - - print bad_architects[1:3] # slices at 1 and 3 - - - -.. parsed-literal:: - - ['Mick Jagger', 'Steve Jobs'] - - -How do I make sense of this? - -To understand this you need to see the list in the following manner:: - - [ "Donald Trump", "Mick Jagger", "Steve Jobs", "Lady Gaga", "Santa Clause" ] - ^ ^ ^ ^ ^ ^ - 0 1 2 3 4 5 - -5 -4 -3 -2 -1 - - -The slice operation bad\_architects[1:3] slices right where the numbers -are. - -Does that make sense? - -Let us try a few other slices: - -.. code:: python - - print bad_architects[2:-1] # slices at 2 and -1 - print bad_architects[-3:-1] # slices at -3 and -1 - - - -.. parsed-literal:: - - ['Steve Jobs', 'Lady Gaga'] - ['Steve Jobs', 'Lady Gaga'] - - -You can also slice in the following way: - -.. code:: python - - print bad_architects[3:] - print bad_architects[:2] - print bad_architects[-3:] - print bad_architects[:-2] - - - -.. parsed-literal:: - - ['Lady Gaga', 'Santa Clause'] - ['Donald Trump', 'Mick Jagger'] - ['Steve Jobs', 'Lady Gaga', 'Santa Clause'] - ['Donald Trump', 'Mick Jagger', 'Steve Jobs'] - - -I'll let you figure that out on your own. - -Adding to a list -^^^^^^^^^^^^^^^^ - -This is simple: the append function adds an item to the end of the list. - -The following command will add 'something' to the end of the list called -listname:: - - listname.append(something) - - -.. code:: python - - bad_architects.append("First-year students") - print bad_architects - - - -.. parsed-literal:: - - ['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause', 'First-year students'] - - -Deleting from a list -^^^^^^^^^^^^^^^^^^^^ - -There are two ways to do this, based on the information you have. If you -have the value of the object, you'll want to use the remove function. It -looks like this: - -listname.remove(value) - - -An example: - -.. code:: python - - bad_architects.remove("First-year students") - print bad_architects - - - -.. parsed-literal:: - - ['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause'] - - -What if you know the index of the item you want to remove? - -What if you appended an item by mistake and just want to remove the last -item in the list? - -You should use the pop function. It looks like this: - -listname.pop(index) - - -.. code:: python - - what_i_ate_today = ["coffee", "bacon", "eggs"] - print what_i_ate_today - - - -.. parsed-literal:: - - ['coffee', 'bacon', 'eggs'] - - -.. code:: python - - what_i_ate_today.append("vegetables") # adds vegetables to the end of the list - # but I don't like vegetables - print what_i_ate_today - - - -.. parsed-literal:: - - ['coffee', 'bacon', 'eggs', 'vegetables'] - - -.. code:: python - - # since I don't like vegetables - what_i_ate_today.pop(-1) # use index of -1, since vegetables is the last item in the list - print what_i_ate_today - - - -.. parsed-literal:: - - ['coffee', 'bacon', 'eggs'] - - -You can also remove the second item. - -.. code:: python - - what_i_ate_today.pop(1) - - - - - -.. parsed-literal:: - - 'bacon' - - - -Notice the 'bacon' in the line above. - -pop actually 'pops' the value (the one you just removed from the list) -back to you. - -Let us pop the first item. - -.. code:: python - - was_first_item = what_i_ate_today.pop(0) - print 'was_first_item =', was_first_item - print 'what_i_ate_today = ', what_i_ate_today - - -.. parsed-literal:: - - was_first_item = coffee - what_i_ate_today = ['eggs'] - - -what\_i\_ate\_today is just 'eggs'? - -That is not much of a breakfast! - -Let us get back to eppy. - -Continuing to work with E+ objects ----------------------------------- - -Let us get those "MATERIAL" objects again - -.. code:: python - - materials = idf1.idfobjects["MATERIAL"] - - -With our newfound knowledge of lists, we can do a lot of things. - -Let us get the last material: - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - - - -How about the last two? - -.. code:: python - - print materials[-2:] - - - -.. parsed-literal:: - - [ - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - , - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - ] - - -Pretty good. - -Counting all the materials ( or counting all objects ) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -How many materials are in this model ? - -.. code:: python - - print len(materials) - - - -.. parsed-literal:: - - 10 - - -Removing a material -^^^^^^^^^^^^^^^^^^^ - -Let us remove the last material in the list - -.. code:: python - - was_last_material = materials.pop(-1) - - -.. code:: python - - print len(materials) - - - -.. parsed-literal:: - - 9 - - -Success! We have only 9 materials now. - -The last material used to be: - -'G05 25mm wood' - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - - - -Now the last material in the list is: - -'M15 200mm heavyweight concrete' - -Adding a material to the list -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -We still have the old last material - -.. code:: python - - print was_last_material - - - -.. parsed-literal:: - - - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - - - -Let us add it back to the list - -.. code:: python - - materials.append(was_last_material) - - -.. code:: python - - print len(materials) - - - -.. parsed-literal:: - - 10 - - -Once again we have 10 materials and the last material is: - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - - - -Add a new material to the model -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -So far we have been working only with materials that were already in the -list. - -What if we want to make new material? - -Obviously we would use the function 'newidfobject'. - -.. code:: python - - idf1.newidfobject("MATERIAL") - - - - - -.. parsed-literal:: - - - MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -.. code:: python - - len(materials) - - - - - -.. parsed-literal:: - - 11 - - - -We have 11 items in the materials list. - -Let us take a look at the last material in the list, where this fancy -new material was added - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Looks a little different from the other materials. It does have the name -we gave it. - -Why do some fields have values and others are blank ? - -"addobject" puts in all the default values, and leaves the others blank. -It is up to us to put values in the the new fields. - -Let's do it now. - -.. code:: python - - materials[-1].Name = 'Peanut Butter' - materials[-1].Roughness = 'MediumSmooth' - materials[-1].Thickness = 0.03 - materials[-1].Conductivity = 0.16 - materials[-1].Density = 600 - materials[-1].Specific_Heat = 1500 - - -.. code:: python - - print materials[-1] - - - -.. parsed-literal:: - - - MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Copy an existing material -^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code:: python - - Peanutbuttermaterial = materials[-1] - idf1.copyidfobject(Peanutbuttermaterial) - materials = idf1.idfobjects["MATERIAL"] - len(materials) - materials[-1] - - - - - -.. parsed-literal:: - - - MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -Python lesson 3: indentation and looping through lists ------------------------------------------------------- - -I'm tired of doing all this work, it's time to make python do some heavy -lifting for us! - -Python can go through each item in a list and perform an operation on -any (or every) item in the list. - -This is called looping through the list. - -Here's how to tell python to step through each item in a list, and then -do something to every single item. - -We'll use a 'for' loop to do this. :: - - for in : - - - -A quick note about the second line. Notice that it's indented? There are -4 blank spaces before the code starts:: - - in python, indentations are used - to determine the grouping of statements - some languages use symbols to mark - where the function code starts and stops - but python uses indentation to tell you this - i'm using indentation to - show the beginning and end of a sentence - this is a very simple explanation - of indentation in python - if you'd like to know more, there is plenty of information - about indentation in python on the web - - -It's elegant, but it means that the indentation of the code holds -meaning. - -So make sure to indent the second (and third and forth) lines of your -loops! - -Now let's make some fruit loops. - -.. code:: python - - fruits = ["apple", "orange", "bannana"] - - -Given the syntax I gave you before I started rambling about indentation, -we can easily print every item in the fruits list by using a 'for' loop. - -.. code:: python - - for fruit in fruits: - print fruit - - - -.. parsed-literal:: - - apple - orange - bannana - - -That was easy! But it can get complicated pretty quickly... - -Let's make it do something more complicated than just print the fruits. - -Let's have python add some words to each fruit. - -.. code:: python - - for fruit in fruits: - print "I am a fruit said the", fruit - - - -.. parsed-literal:: - - I am a fruit said the apple - I am a fruit said the orange - I am a fruit said the bannana - - -Now we'll try to confuse you: - -.. code:: python - - rottenfruits = [] # makes a blank list called rottenfruits - for fruit in fruits: # steps through every item in fruits - rottenfruit = "rotten " + fruit # changes each item to "rotten _____" - rottenfruits.append(rottenfruit) # adds each changed item to the formerly empty list - - -.. code:: python - - print rottenfruits - - - -.. parsed-literal:: - - ['rotten apple', 'rotten orange', 'rotten bannana'] - - -.. code:: python - - # here's a shorter way of writing it - rottenfruits = ["rotten " + fruit for fruit in fruits] - - -Did you follow all that?? - -Just in case you didn't, let's review that last one:: - - ["rotten " + fruit for fruit in fruits] - ------------------- - This is the "for loop" - it steps through each fruit in fruits - - ["rotten " + fruit for fruit in fruits] - ----------------- - add "rotten " to the fruit at each step - this is your "do something" - - ["rotten " + fruit for fruit in fruits] - --------------------------------------- - give a new list that is a result of the "do something" - - -.. code:: python - - print rottenfruits - - - -.. parsed-literal:: - - ['rotten apple', 'rotten orange', 'rotten bannana'] - - -Filtering in a loop -^^^^^^^^^^^^^^^^^^^ - -But what if you don't want to change *every* item in a list? - -We can use an 'if' statement to operate on only some items in the list. - -Indentation is also important in 'if' statements, as you'll see:: - - if : - - - - -.. code:: python - - fruits = ["apple", "orange", "pear", "berry", "mango", "plum", "peach", "melon", "bannana"] - - -.. code:: python - - for fruit in fruits: # steps through every fruit in fruits - if len(fruit) > 5: # checks to see if the length of the word is more than 5 - print fruit # if true, print the fruit - # if false, python goes back to the 'for' loop - # and checks the next item in the list - - - -.. parsed-literal:: - - orange - bannana - - -Let's say we want to pick only the fruits that start with the letter -'p'. - -.. code:: python - - p_fruits = [] # creates an empty list called p_fruits - for fruit in fruits: # steps through every fruit in fruits - if fruit.startswith("p"): # checks to see if the first letter is 'p', using a built-in function - p_fruits.append(fruit) # if the first letter is 'p', the item is added to p_fruits - # if the first letter is not 'p', python goes back to the 'for' loop - # and checks the next item in the list - - -.. code:: python - - print p_fruits - - - -.. parsed-literal:: - - ['pear', 'plum', 'peach'] - - -.. code:: python - - # here's a shorter way to write it - p_fruits = [fruit for fruit in fruits if fruit.startswith("p")] - - -:: - - [fruit for fruit in fruits if fruit.startswith("p")] - ------------------- - for loop - - [fruit for fruit in fruits if fruit.startswith("p")] - ------------------------ - pick only some of the fruits - - [fruit for fruit in fruits if fruit.startswith("p")] - ----- - give me the variable fruit as it appears in the list, don't change it - - [fruit for fruit in fruits if fruit.startswith("p")] - ---------------------------------------------------- - a fresh new list with those fruits - - -.. code:: python - - print p_fruits - - - -.. parsed-literal:: - - ['pear', 'plum', 'peach'] - - -Counting through loops -^^^^^^^^^^^^^^^^^^^^^^ - -This is not really needed, but it is nice to know. You can safely skip -this. - -Python's built-in function range() makes a list of numbers within a -range that you specify. - -This is useful because you can use these lists inside of loops. - -.. code:: python - - range(4) # makes a list - - - - - -.. parsed-literal:: - - [0, 1, 2, 3] - - - -.. code:: python - - for i in range(4): - print i - - - -.. parsed-literal:: - - 0 - 1 - 2 - 3 - - -.. code:: python - - len(p_fruits) - - - - - -.. parsed-literal:: - - 3 - - - -.. code:: python - - for i in range(len(p_fruits)): - print i - - - -.. parsed-literal:: - - 0 - 1 - 2 - - -.. code:: python - - for i in range(len(p_fruits)): - print p_fruits[i] - - - -.. parsed-literal:: - - pear - plum - peach - - -.. code:: python - - for i in range(len(p_fruits)): - print i, p_fruits[i] - - - -.. parsed-literal:: - - 0 pear - 1 plum - 2 peach - - -.. code:: python - - for item_from_enumerate in enumerate(p_fruits): - print item_from_enumerate - - - -.. parsed-literal:: - - (0, 'pear') - (1, 'plum') - (2, 'peach') - - -.. code:: python - - for i, fruit in enumerate(p_fruits): - print i, fruit - - - -.. parsed-literal:: - - 0 pear - 1 plum - 2 peach - - -Looping through E+ objects --------------------------- - -If you have read the python explanation of loops, you are now masters of -using loops. - -Let us use the loops with E+ objects. - -We'll continue to work with the materials list. - -.. code:: python - - for material in materials: - print material.Name - - - -.. parsed-literal:: - - F08 Metal surface - I01 25mm insulation board - I02 50mm insulation board - G01a 19mm gypsum board - M11 100mm lightweight concrete - F16 Acoustic tile - M01 100mm brick - M15 200mm heavyweight concrete - M05 200mm concrete block - G05 25mm wood - Peanut Butter - Peanut Butter - - -.. code:: python - - [material.Name for material in materials] - - - - - -.. parsed-literal:: - - [u'F08 Metal surface', - u'I01 25mm insulation board', - u'I02 50mm insulation board', - u'G01a 19mm gypsum board', - u'M11 100mm lightweight concrete', - u'F16 Acoustic tile', - u'M01 100mm brick', - u'M15 200mm heavyweight concrete', - u'M05 200mm concrete block', - u'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] - - - -.. code:: python - - [material.Roughness for material in materials] - - - - - -.. parsed-literal:: - - [u'Smooth', - u'MediumRough', - u'MediumRough', - u'MediumSmooth', - u'MediumRough', - u'MediumSmooth', - u'MediumRough', - u'MediumRough', - u'MediumRough', - u'MediumSmooth', - 'MediumSmooth', - 'MediumSmooth'] - - - -.. code:: python - - [material.Thickness for material in materials] - - - - - -.. parsed-literal:: - - [0.0008, - 0.0254, - 0.0508, - 0.019, - 0.1016, - 0.0191, - 0.1016, - 0.2032, - 0.2032, - 0.0254, - 0.03, - 0.03] - - - -.. code:: python - - [material.Thickness for material in materials if material.Thickness > 0.1] - - - - - -.. parsed-literal:: - - [0.1016, 0.1016, 0.2032, 0.2032] - - - -.. code:: python - - [material.Name for material in materials if material.Thickness > 0.1] - - - - - -.. parsed-literal:: - - [u'M11 100mm lightweight concrete', - u'M01 100mm brick', - u'M15 200mm heavyweight concrete', - u'M05 200mm concrete block'] - - - -.. code:: python - - thick_materials = [material for material in materials if material.Thickness > 0.1] - - -.. code:: python - - thick_materials - - - - - -.. parsed-literal:: - - [ - Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat - , - - Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat - , - - Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat - , - - Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - ] - - - -.. code:: python - - # change the names of the thick materials - for material in thick_materials: - material.Name = "THICK " + material.Name - - -.. code:: python - - thick_materials - - - - - -.. parsed-literal:: - - [ - Material, - THICK M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat - , - - Material, - THICK M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat - , - - Material, - THICK M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat - , - - Material, - THICK M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - ] - - - -So now we're working with two different lists: materials and -thick\_materials. - -But even though the items can be separated into two lists, we're still -working with the same items. - -Here's a helpful illustration: - -.. code:: python - - for_images.display_png(for_images.material_lists) # display the image below - - - -.. image:: Main_Tutorial_files/Main_Tutorial_207_0.png - - -.. code:: python - - # here's the same concept, demonstrated with code - # remember, we changed the names of the items in the list thick_materials - # these changes are visible when we print the materials list; the thick materials are also in the materials list - [material.Name for material in materials] - - - - - -.. parsed-literal:: - - [u'F08 Metal surface', - u'I01 25mm insulation board', - u'I02 50mm insulation board', - u'G01a 19mm gypsum board', - u'THICK M11 100mm lightweight concrete', - u'F16 Acoustic tile', - u'THICK M01 100mm brick', - u'THICK M15 200mm heavyweight concrete', - u'THICK M05 200mm concrete block', - u'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] - - - -Geometry functions in eppy --------------------------- - -Sometimes, we want information about the E+ object that is not in the -fields. For example, it would be useful to know the areas and -orientations of the surfaces. These attributes of the surfaces are not -in the fields of surfaces, but surface objects *do* have fields that -have the coordinates of the surface. The areas and orientations can be -calculated from these coordinates. - -Pyeplus has some functions that will do the calculations. - -In the present version, pyeplus will calculate: - -- surface azimuth -- surface tilt -- surface area - -Let us explore these functions - -.. code:: python - - # OLD CODE, SHOULD BE DELETED - # from idfreader import idfreader - - # iddfile = "../iddfiles/Energy+V7_0_0_036.idd" - # fname = "../idffiles/V_7_0/5ZoneSupRetPlenRAB.idf" - - # model, to_print, idd_info = idfreader(fname, iddfile) - # surfaces = model['BUILDINGSURFACE:DETAILED'] # all the surfaces - - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - try: - IDF.setiddname(iddfile) - except modeleditor.IDDAlreadySetError as e: - pass - - - fname1 = "../eppy/resources/idffiles/V_7_0/5ZoneSupRetPlenRAB.idf" - idf1 = IDF(fname1) - surfaces = idf1.idfobjects['BUILDINGSURFACE:DETAILED'] - - -.. code:: python - - # Let us look at the first surface - asurface = surfaces[0] - print "surface azimuth =", asurface.azimuth, "degrees" - print "surface tilt =", asurface.tilt, "degrees" - print "surface area =", asurface.area, "m2" - - - -.. parsed-literal:: - - surface azimuth = 180.0 degrees - surface tilt = 90.0 degrees - surface area = 18.3 m2 - - -.. code:: python - - # all the surface names - s_names = [surface.Name for surface in surfaces] - print s_names[:5] # print five of them - - - -.. parsed-literal:: - - [u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'TOP-1'] - - -.. code:: python - - # surface names and azimuths - s_names_azm = [(sf.Name, sf.azimuth) for sf in surfaces] - print s_names_azm[:5] # print five of them - - - -.. parsed-literal:: - - [(u'WALL-1PF', 180.0), (u'WALL-1PR', 90.0), (u'WALL-1PB', 0.0), (u'WALL-1PL', 270.0), (u'TOP-1', 0.0)] - - -.. code:: python - - # or to do that in pretty printing - for name, azimuth in s_names_azm[:5]: # just five of them - print name, azimuth - - - -.. parsed-literal:: - - WALL-1PF 180.0 - WALL-1PR 90.0 - WALL-1PB 0.0 - WALL-1PL 270.0 - TOP-1 0.0 - - -.. code:: python - - # surface names and tilt - s_names_tilt = [(sf.Name, sf.tilt) for sf in surfaces] - for name, tilt in s_names_tilt[:5]: # just five of them - print name, tilt - - - -.. parsed-literal:: - - WALL-1PF 90.0 - WALL-1PR 90.0 - WALL-1PB 90.0 - WALL-1PL 90.0 - TOP-1 0.0 - - -.. code:: python - - # surface names and areas - s_names_area = [(sf.Name, sf.area) for sf in surfaces] - for name, area in s_names_area[:5]: # just five of them - print name, area, "m2" - - - -.. parsed-literal:: - - WALL-1PF 18.3 m2 - WALL-1PR 9.12 m2 - WALL-1PB 18.3 m2 - WALL-1PL 9.12 m2 - TOP-1 463.6 m2 - - -Let us try to isolate the exterior north facing walls and change their -construnctions - -.. code:: python - - # just vertical walls - vertical_walls = [sf for sf in surfaces if sf.tilt == 90.0] - print [sf.Name for sf in vertical_walls] - - - -.. parsed-literal:: - - [u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'FRONT-1', u'SB12', u'SB14', u'SB15', u'RIGHT-1', u'SB21', u'SB23', u'BACK-1', u'SB32', u'SB35', u'LEFT-1', u'SB41', u'SB43', u'SB45', u'SB51', u'SB54', u'WALL-1SF', u'WALL-1SR', u'WALL-1SB', u'WALL-1SL'] - - -.. code:: python - - # north facing walls - north_walls = [sf for sf in vertical_walls if sf.azimuth == 0.0] - print [sf.Name for sf in north_walls] - - - -.. parsed-literal:: - - [u'WALL-1PB', u'SB15', u'BACK-1', u'WALL-1SB'] - - -.. code:: python - - # north facing exterior walls - exterior_nwall = [sf for sf in north_walls if sf.Outside_Boundary_Condition == "Outdoors"] - print [sf.Name for sf in exterior_nwall] - - - -.. parsed-literal:: - - [u'WALL-1PB', u'BACK-1', u'WALL-1SB'] - - -.. code:: python - - # print out some more details of the north wall - north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall] - for name, azimuth, construction in north_wall_info: - print name, azimuth, construction - - - -.. parsed-literal:: - - WALL-1PB 0.0 WALL-1 - BACK-1 0.0 WALL-1 - WALL-1SB 0.0 WALL-1 - - -.. code:: python - - # change the construction in the exterior north walls - for wall in exterior_nwall: - wall.Construction_Name = "NORTHERN-WALL" # make sure such a construction exists in the model - - -.. code:: python - - # see the change - north_wall_info = [(sf.Name, sf.azimuth, sf.Construction_Name) for sf in exterior_nwall] - for name, azimuth, construction in north_wall_info: - print name, azimuth, construction - - - -.. parsed-literal:: - - WALL-1PB 0.0 NORTHERN-WALL - BACK-1 0.0 NORTHERN-WALL - WALL-1SB 0.0 NORTHERN-WALL - - -.. code:: python - - # see this in all surfaces - for sf in surfaces: - print sf.Name, sf.azimuth, sf.Construction_Name - - - -.. parsed-literal:: - - WALL-1PF 180.0 WALL-1 - WALL-1PR 90.0 WALL-1 - WALL-1PB 0.0 NORTHERN-WALL - WALL-1PL 270.0 WALL-1 - TOP-1 0.0 ROOF-1 - C1-1P 0.0 CLNG-1 - C2-1P 0.0 CLNG-1 - C3-1P 0.0 CLNG-1 - C4-1P 0.0 CLNG-1 - C5-1P 180.0 CLNG-1 - FRONT-1 180.0 WALL-1 - C1-1 180.0 CLNG-1 - F1-1 0.0 CLNG-1 - SB12 45.0 INT-WALL-1 - SB14 315.0 INT-WALL-1 - SB15 0.0 INT-WALL-1 - RIGHT-1 90.0 WALL-1 - C2-1 0.0 CLNG-1 - F2-1 0.0 CLNG-1 - SB21 225.0 INT-WALL-1 - SB23 315.784824603 INT-WALL-1 - SB25 270.0 INT-WALL-1 - BACK-1 0.0 NORTHERN-WALL - C3-1 0.0 CLNG-1 - F3-1 0.0 CLNG-1 - SB32 135.784824603 INT-WALL-1 - SB34 224.215175397 INT-WALL-1 - SB35 180.0 INT-WALL-1 - LEFT-1 270.0 WALL-1 - C4-1 0.0 CLNG-1 - F4-1 0.0 CLNG-1 - SB41 135.0 INT-WALL-1 - SB43 44.215175397 INT-WALL-1 - SB45 90.0 INT-WALL-1 - C5-1 0.0 CLNG-1 - F5-1 0.0 CLNG-1 - SB51 180.0 INT-WALL-1 - SB52 90.0 INT-WALL-1 - SB53 0.0 INT-WALL-1 - SB54 270.0 INT-WALL-1 - WALL-1SF 180.0 WALL-1 - WALL-1SR 90.0 WALL-1 - WALL-1SB 0.0 NORTHERN-WALL - WALL-1SL 270.0 WALL-1 - BOTTOM-1 0.0 FLOOR-SLAB-1 - F1-1S 0.0 CLNG-1 - F2-1S 0.0 CLNG-1 - F3-1S 0.0 CLNG-1 - F4-1S 0.0 CLNG-1 - F5-1S 0.0 CLNG-1 - - -You can see the "NORTHERN-WALL" in the print out above. - -This shows that very sophisticated modification can be made to the model -rather quickly. diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_100_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_100_0.text deleted file mode 100644 index b8ce2fe0..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_100_0.text +++ /dev/null @@ -1 +0,0 @@ -['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause', 'First-year students'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_103_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_103_0.text deleted file mode 100644 index 4cbed079..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_103_0.text +++ /dev/null @@ -1 +0,0 @@ -['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_104_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_104_0.text deleted file mode 100644 index 4cbed079..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_104_0.text +++ /dev/null @@ -1 +0,0 @@ -['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_105_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_105_0.text deleted file mode 100644 index 4cbed079..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_105_0.text +++ /dev/null @@ -1 +0,0 @@ -['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_106_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_106_0.text deleted file mode 100644 index 97413325..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_106_0.text +++ /dev/null @@ -1 +0,0 @@ -['coffee', 'bacon', 'eggs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_107_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_107_0.text deleted file mode 100644 index e3599aac..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_107_0.text +++ /dev/null @@ -1 +0,0 @@ -['coffee', 'bacon', 'eggs', 'vegetables'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_108_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_108_0.text deleted file mode 100644 index 97413325..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_108_0.text +++ /dev/null @@ -1 +0,0 @@ -['coffee', 'bacon', 'eggs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_109_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_109_0.text deleted file mode 100644 index 97413325..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_109_0.text +++ /dev/null @@ -1 +0,0 @@ -['coffee', 'bacon', 'eggs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_10_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_10_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_10_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_110_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_110_0.text deleted file mode 100644 index 13791892..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_110_0.text +++ /dev/null @@ -1 +0,0 @@ -'bacon' \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_111_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_111_0.text deleted file mode 100644 index 13791892..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_111_0.text +++ /dev/null @@ -1 +0,0 @@ -'bacon' \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_112_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_112_0.text deleted file mode 100644 index b5ce5798..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_112_0.text +++ /dev/null @@ -1,2 +0,0 @@ -was_first_item = coffee -what_i_ate_today = ['eggs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_113_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_113_0.text deleted file mode 100644 index b5ce5798..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_113_0.text +++ /dev/null @@ -1,2 +0,0 @@ -was_first_item = coffee -what_i_ate_today = ['eggs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_114_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_114_0.text deleted file mode 100644 index b5ce5798..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_114_0.text +++ /dev/null @@ -1,2 +0,0 @@ -was_first_item = coffee -what_i_ate_today = ['eggs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_118_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_118_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_118_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_119_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_119_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_119_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_120_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_120_0.text deleted file mode 100644 index 7b084a96..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_120_0.text +++ /dev/null @@ -1,17 +0,0 @@ -[ -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -, -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_121_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_121_0.text deleted file mode 100644 index 7b084a96..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_121_0.text +++ /dev/null @@ -1,17 +0,0 @@ -[ -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -, -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_122_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_122_0.text deleted file mode 100644 index 7b084a96..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_122_0.text +++ /dev/null @@ -1,17 +0,0 @@ -[ -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -, -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_124_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_124_0.text deleted file mode 100644 index f599e28b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_124_0.text +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_125_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_125_0.text deleted file mode 100644 index f599e28b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_125_0.text +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_126_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_126_0.text deleted file mode 100644 index f599e28b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_126_0.text +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_128_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_128_0.text deleted file mode 100644 index ec635144..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_128_0.text +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_129_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_129_0.text deleted file mode 100644 index ec635144..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_129_0.text +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_12_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_12_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_12_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_130_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_130_0.text deleted file mode 100644 index ec635144..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_130_0.text +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_131_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_131_0.text deleted file mode 100644 index 2d317766..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_131_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_132_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_132_0.text deleted file mode 100644 index 2d317766..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_132_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_133_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_133_0.text deleted file mode 100644 index 2d317766..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_133_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_135_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_135_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_135_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_136_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_136_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_136_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_137_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_137_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_137_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_138_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_138_0.text deleted file mode 100644 index f599e28b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_138_0.text +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_139_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_139_0.text deleted file mode 100644 index f599e28b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_139_0.text +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_140_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_140_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_140_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_141_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_141_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_141_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_142_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_142_0.text deleted file mode 100644 index 00849235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_142_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_143_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_143_0.text deleted file mode 100644 index e03c9695..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_143_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_144_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_144_0.text deleted file mode 100644 index 9d607966..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_144_0.text +++ /dev/null @@ -1 +0,0 @@ -11 \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_145_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_145_0.text deleted file mode 100644 index 9d607966..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_145_0.text +++ /dev/null @@ -1 +0,0 @@ -11 \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_146_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_146_0.text deleted file mode 100644 index b8b9931f..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_146_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_147_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_147_0.text deleted file mode 100644 index b8b9931f..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_147_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_148_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_148_0.text deleted file mode 100644 index b8b9931f..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_148_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_149_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_149_0.text deleted file mode 100644 index a65278b6..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_149_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_14_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_14_0.text deleted file mode 100644 index cec30f3c..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_14_0.text +++ /dev/null @@ -1,11 +0,0 @@ -[ -BUILDING, - White House, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_150_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_150_0.text deleted file mode 100644 index a65278b6..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_150_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_151_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_151_0.text deleted file mode 100644 index f549a2db..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_151_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_152_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_152_0.text deleted file mode 100644 index f549a2db..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_152_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_153_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_153_0.text deleted file mode 100644 index f549a2db..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_153_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -MATERIAL, - Peanut Butter, !- Name - MediumSmooth, !- Roughness - 0.03, !- Thickness - 0.16, !- Conductivity - 600, !- Density - 1500, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_15_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_15_0.text deleted file mode 100644 index 08af8afb..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_15_0.text +++ /dev/null @@ -1,11 +0,0 @@ -[ -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_161_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_161_0.text deleted file mode 100644 index 46cb6f2e..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_161_0.text +++ /dev/null @@ -1,3 +0,0 @@ -apple -orange -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_162_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_162_0.text deleted file mode 100644 index 46cb6f2e..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_162_0.text +++ /dev/null @@ -1,3 +0,0 @@ -apple -orange -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_163_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_163_0.text deleted file mode 100644 index 0b448f87..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_163_0.text +++ /dev/null @@ -1,3 +0,0 @@ -I am a fruit said the apple -I am a fruit said the orange -I am a fruit said the bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_164_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_164_0.text deleted file mode 100644 index 0b448f87..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_164_0.text +++ /dev/null @@ -1,3 +0,0 @@ -I am a fruit said the apple -I am a fruit said the orange -I am a fruit said the bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_165_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_165_0.text deleted file mode 100644 index 0b448f87..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_165_0.text +++ /dev/null @@ -1,3 +0,0 @@ -I am a fruit said the apple -I am a fruit said the orange -I am a fruit said the bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_166_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_166_0.text deleted file mode 100644 index b2fdbf05..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_166_0.text +++ /dev/null @@ -1 +0,0 @@ -['rotten apple', 'rotten orange', 'rotten bannana'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_167_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_167_0.text deleted file mode 100644 index b2fdbf05..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_167_0.text +++ /dev/null @@ -1 +0,0 @@ -['rotten apple', 'rotten orange', 'rotten bannana'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_168_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_168_0.text deleted file mode 100644 index b2fdbf05..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_168_0.text +++ /dev/null @@ -1 +0,0 @@ -['rotten apple', 'rotten orange', 'rotten bannana'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_16_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_16_0.text deleted file mode 100644 index 08af8afb..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_16_0.text +++ /dev/null @@ -1,11 +0,0 @@ -[ -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_170_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_170_0.text deleted file mode 100644 index b2fdbf05..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_170_0.text +++ /dev/null @@ -1 +0,0 @@ -['rotten apple', 'rotten orange', 'rotten bannana'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_171_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_171_0.text deleted file mode 100644 index b2fdbf05..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_171_0.text +++ /dev/null @@ -1 +0,0 @@ -['rotten apple', 'rotten orange', 'rotten bannana'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_172_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_172_0.text deleted file mode 100644 index b2fdbf05..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_172_0.text +++ /dev/null @@ -1 +0,0 @@ -['rotten apple', 'rotten orange', 'rotten bannana'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_175_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_175_0.text deleted file mode 100644 index 556dec21..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_175_0.text +++ /dev/null @@ -1,2 +0,0 @@ -orange -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_176_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_176_0.text deleted file mode 100644 index 556dec21..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_176_0.text +++ /dev/null @@ -1,2 +0,0 @@ -orange -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_177_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_177_0.text deleted file mode 100644 index 556dec21..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_177_0.text +++ /dev/null @@ -1,2 +0,0 @@ -orange -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_178_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_178_0.text deleted file mode 100644 index 99073ec5..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_178_0.text +++ /dev/null @@ -1 +0,0 @@ -['pear', 'plum', 'peach'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_179_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_179_0.text deleted file mode 100644 index 99073ec5..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_179_0.text +++ /dev/null @@ -1 +0,0 @@ -['pear', 'plum', 'peach'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_180_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_180_0.text deleted file mode 100644 index 99073ec5..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_180_0.text +++ /dev/null @@ -1 +0,0 @@ -['pear', 'plum', 'peach'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_181_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_181_0.text deleted file mode 100644 index 99073ec5..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_181_0.text +++ /dev/null @@ -1 +0,0 @@ -['pear', 'plum', 'peach'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_182_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_182_0.text deleted file mode 100644 index 99073ec5..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_182_0.text +++ /dev/null @@ -1 +0,0 @@ -['pear', 'plum', 'peach'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_183_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_183_0.text deleted file mode 100644 index 99073ec5..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_183_0.text +++ /dev/null @@ -1 +0,0 @@ -['pear', 'plum', 'peach'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_185_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_185_0.text deleted file mode 100644 index dc036e78..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_185_0.text +++ /dev/null @@ -1 +0,0 @@ -[0, 1, 2, 3] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_186_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_186_0.text deleted file mode 100644 index dc036e78..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_186_0.text +++ /dev/null @@ -1 +0,0 @@ -[0, 1, 2, 3] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_187_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_187_0.text deleted file mode 100644 index bc856daf..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_187_0.text +++ /dev/null @@ -1,4 +0,0 @@ -0 -1 -2 -3 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_188_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_188_0.text deleted file mode 100644 index e440e5c8..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_188_0.text +++ /dev/null @@ -1 +0,0 @@ -3 \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_189_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_189_0.text deleted file mode 100644 index 4539bbf2..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_189_0.text +++ /dev/null @@ -1,3 +0,0 @@ -0 -1 -2 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_18_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_18_0.text deleted file mode 100644 index e01612ac..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_18_0.text +++ /dev/null @@ -1 +0,0 @@ -White House diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_190_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_190_0.text deleted file mode 100644 index 11f41d10..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_190_0.text +++ /dev/null @@ -1,3 +0,0 @@ -pear -plum -peach diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_191_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_191_0.text deleted file mode 100644 index db537604..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_191_0.text +++ /dev/null @@ -1,3 +0,0 @@ -0 pear -1 plum -2 peach diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_192_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_192_0.text deleted file mode 100644 index 5a810a6e..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_192_0.text +++ /dev/null @@ -1,3 +0,0 @@ -(0, 'pear') -(1, 'plum') -(2, 'peach') diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_193_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_193_0.text deleted file mode 100644 index db537604..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_193_0.text +++ /dev/null @@ -1,3 +0,0 @@ -0 pear -1 plum -2 peach diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_194_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_194_0.text deleted file mode 100644 index db537604..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_194_0.text +++ /dev/null @@ -1,3 +0,0 @@ -0 pear -1 plum -2 peach diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_195_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_195_0.text deleted file mode 100644 index c2b446e2..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_195_0.text +++ /dev/null @@ -1,12 +0,0 @@ -F08 Metal surface -I01 25mm insulation board -I02 50mm insulation board -G01a 19mm gypsum board -M11 100mm lightweight concrete -F16 Acoustic tile -M01 100mm brick -M15 200mm heavyweight concrete -M05 200mm concrete block -G05 25mm wood -Peanut Butter -Peanut Butter diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_196_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_196_0.text deleted file mode 100644 index c2b446e2..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_196_0.text +++ /dev/null @@ -1,12 +0,0 @@ -F08 Metal surface -I01 25mm insulation board -I02 50mm insulation board -G01a 19mm gypsum board -M11 100mm lightweight concrete -F16 Acoustic tile -M01 100mm brick -M15 200mm heavyweight concrete -M05 200mm concrete block -G05 25mm wood -Peanut Butter -Peanut Butter diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_197_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_197_0.text deleted file mode 100644 index 42915eaf..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_197_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[u'F08 Metal surface', - u'I01 25mm insulation board', - u'I02 50mm insulation board', - u'G01a 19mm gypsum board', - u'M11 100mm lightweight concrete', - u'F16 Acoustic tile', - u'M01 100mm brick', - u'M15 200mm heavyweight concrete', - u'M05 200mm concrete block', - u'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_198_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_198_0.text deleted file mode 100644 index 8f39b013..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_198_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[u'Smooth', - u'MediumRough', - u'MediumRough', - u'MediumSmooth', - u'MediumRough', - u'MediumSmooth', - u'MediumRough', - u'MediumRough', - u'MediumRough', - u'MediumSmooth', - 'MediumSmooth', - 'MediumSmooth'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_199_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_199_0.text deleted file mode 100644 index 216a7b6d..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_199_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[0.0008, - 0.0254, - 0.0508, - 0.019, - 0.1016, - 0.0191, - 0.1016, - 0.2032, - 0.2032, - 0.0254, - 0.03, - 0.03] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_19_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_19_0.text deleted file mode 100644 index 9884a921..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_19_0.text +++ /dev/null @@ -1 +0,0 @@ -Empire State Building diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_200_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_200_0.text deleted file mode 100644 index 85246cec..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_200_0.text +++ /dev/null @@ -1 +0,0 @@ -[0.1016, 0.1016, 0.2032, 0.2032] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_201_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_201_0.text deleted file mode 100644 index 84d4f718..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_201_0.text +++ /dev/null @@ -1,4 +0,0 @@ -[u'M11 100mm lightweight concrete', - u'M01 100mm brick', - u'M15 200mm heavyweight concrete', - u'M05 200mm concrete block'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_202_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_202_0.text deleted file mode 100644 index 55fd9c20..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_202_0.text +++ /dev/null @@ -1,4 +0,0 @@ -['M11 100mm lightweight concrete', - 'M01 100mm brick', - 'M15 200mm heavyweight concrete', - 'M05 200mm concrete block'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_203_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_203_0.text deleted file mode 100644 index 9a91ad29..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_203_0.text +++ /dev/null @@ -1,36 +0,0 @@ -[ -Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, - -Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, - -Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, - -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_204_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_204_0.text deleted file mode 100644 index 9a91ad29..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_204_0.text +++ /dev/null @@ -1,36 +0,0 @@ -[ -Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, - -Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, - -Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, - -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_205_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_205_0.text deleted file mode 100644 index 43d13235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_205_0.text +++ /dev/null @@ -1,36 +0,0 @@ -[ -Material, - THICK M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, - -Material, - THICK M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, - -Material, - THICK M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, - -Material, - THICK M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_206_0.png b/docs/source/Main_Tutorial_files/Main_Tutorial_206_0.png deleted file mode 100644 index 33c8cf5f..00000000 Binary files a/docs/source/Main_Tutorial_files/Main_Tutorial_206_0.png and /dev/null differ diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_206_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_206_0.text deleted file mode 100644 index 43d13235..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_206_0.text +++ /dev/null @@ -1,36 +0,0 @@ -[ -Material, - THICK M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, - -Material, - THICK M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, - -Material, - THICK M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, - -Material, - THICK M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_207_0.png b/docs/source/Main_Tutorial_files/Main_Tutorial_207_0.png deleted file mode 100644 index 33c8cf5f..00000000 Binary files a/docs/source/Main_Tutorial_files/Main_Tutorial_207_0.png and /dev/null differ diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_207_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_207_0.text deleted file mode 100644 index 10f284f6..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_207_0.text +++ /dev/null @@ -1,12 +0,0 @@ -['F08 Metal surface', - 'I01 25mm insulation board', - 'I02 50mm insulation board', - 'G01a 19mm gypsum board', - 'THICK M11 100mm lightweight concrete', - 'F16 Acoustic tile', - 'THICK M01 100mm brick', - 'THICK M15 200mm heavyweight concrete', - 'THICK M05 200mm concrete block', - 'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_208_0.png b/docs/source/Main_Tutorial_files/Main_Tutorial_208_0.png deleted file mode 100644 index 33c8cf5f..00000000 Binary files a/docs/source/Main_Tutorial_files/Main_Tutorial_208_0.png and /dev/null differ diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_208_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_208_0.text deleted file mode 100644 index 2043fe6d..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_208_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[u'F08 Metal surface', - u'I01 25mm insulation board', - u'I02 50mm insulation board', - u'G01a 19mm gypsum board', - u'THICK M11 100mm lightweight concrete', - u'F16 Acoustic tile', - u'THICK M01 100mm brick', - u'THICK M15 200mm heavyweight concrete', - u'THICK M05 200mm concrete block', - u'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_209_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_209_0.text deleted file mode 100644 index 10f284f6..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_209_0.text +++ /dev/null @@ -1,12 +0,0 @@ -['F08 Metal surface', - 'I01 25mm insulation board', - 'I02 50mm insulation board', - 'G01a 19mm gypsum board', - 'THICK M11 100mm lightweight concrete', - 'F16 Acoustic tile', - 'THICK M01 100mm brick', - 'THICK M15 200mm heavyweight concrete', - 'THICK M05 200mm concrete block', - 'G05 25mm wood', - 'Peanut Butter', - 'Peanut Butter'] \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_20_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_20_0.text deleted file mode 100644 index 9884a921..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_20_0.text +++ /dev/null @@ -1 +0,0 @@ -Empire State Building diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_212_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_212_0.text deleted file mode 100644 index 3b206d37..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_212_0.text +++ /dev/null @@ -1,3 +0,0 @@ -surface azimuth = 180.0 degrees -surface tilt = 90.0 degrees -surface area = 18.3 m2 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_213_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_213_0.text deleted file mode 100644 index 3b206d37..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_213_0.text +++ /dev/null @@ -1,3 +0,0 @@ -surface azimuth = 180.0 degrees -surface tilt = 90.0 degrees -surface area = 18.3 m2 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_214_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_214_0.text deleted file mode 100644 index 89bd6124..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_214_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'TOP-1'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_215_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_215_0.text deleted file mode 100644 index 04328a6d..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_215_0.text +++ /dev/null @@ -1 +0,0 @@ -[(u'WALL-1PF', 180.0), (u'WALL-1PR', 90.0), (u'WALL-1PB', 0.0), (u'WALL-1PL', 270.0), (u'TOP-1', 0.0)] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_216_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_216_0.text deleted file mode 100644 index 45972b1b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_216_0.text +++ /dev/null @@ -1,5 +0,0 @@ -WALL-1PF 180.0 -WALL-1PR 90.0 -WALL-1PB 0.0 -WALL-1PL 270.0 -TOP-1 0.0 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_217_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_217_0.text deleted file mode 100644 index b2fab19e..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_217_0.text +++ /dev/null @@ -1,5 +0,0 @@ -WALL-1PF 90.0 -WALL-1PR 90.0 -WALL-1PB 90.0 -WALL-1PL 90.0 -TOP-1 0.0 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_218_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_218_0.text deleted file mode 100644 index 5bf417a1..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_218_0.text +++ /dev/null @@ -1,5 +0,0 @@ -WALL-1PF 18.3 m2 -WALL-1PR 9.12 m2 -WALL-1PB 18.3 m2 -WALL-1PL 9.12 m2 -TOP-1 463.6 m2 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_219_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_219_0.text deleted file mode 100644 index 5bf417a1..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_219_0.text +++ /dev/null @@ -1,5 +0,0 @@ -WALL-1PF 18.3 m2 -WALL-1PR 9.12 m2 -WALL-1PB 18.3 m2 -WALL-1PL 9.12 m2 -TOP-1 463.6 m2 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_21_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_21_0.text deleted file mode 100644 index 9884a921..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_21_0.text +++ /dev/null @@ -1 +0,0 @@ -Empire State Building diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_220_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_220_0.text deleted file mode 100644 index 028a1049..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_220_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'WALL-1PF', u'WALL-1PR', u'WALL-1PB', u'WALL-1PL', u'FRONT-1', u'SB12', u'SB14', u'SB15', u'RIGHT-1', u'SB21', u'SB23', u'BACK-1', u'SB32', u'SB35', u'LEFT-1', u'SB41', u'SB43', u'SB45', u'SB51', u'SB54', u'WALL-1SF', u'WALL-1SR', u'WALL-1SB', u'WALL-1SL'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_221_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_221_0.text deleted file mode 100644 index c947a632..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_221_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'WALL-1PB', u'SB15', u'BACK-1', u'WALL-1SB'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_222_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_222_0.text deleted file mode 100644 index 05104bc6..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_222_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'WALL-1PB', u'BACK-1', u'WALL-1SB'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_223_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_223_0.text deleted file mode 100644 index 5ad54b83..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_223_0.text +++ /dev/null @@ -1,3 +0,0 @@ -WALL-1PB 0.0 WALL-1 -BACK-1 0.0 WALL-1 -WALL-1SB 0.0 WALL-1 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_224_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_224_0.text deleted file mode 100644 index 5ad54b83..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_224_0.text +++ /dev/null @@ -1,3 +0,0 @@ -WALL-1PB 0.0 WALL-1 -BACK-1 0.0 WALL-1 -WALL-1SB 0.0 WALL-1 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_225_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_225_0.text deleted file mode 100644 index c5fbcba7..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_225_0.text +++ /dev/null @@ -1,3 +0,0 @@ -WALL-1PB 0.0 NORTHERN-WALL -BACK-1 0.0 NORTHERN-WALL -WALL-1SB 0.0 NORTHERN-WALL diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_226_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_226_0.text deleted file mode 100644 index 21e7ac64..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_226_0.text +++ /dev/null @@ -1,50 +0,0 @@ -WALL-1PF 180.0 WALL-1 -WALL-1PR 90.0 WALL-1 -WALL-1PB 0.0 NORTHERN-WALL -WALL-1PL 270.0 WALL-1 -TOP-1 0.0 ROOF-1 -C1-1P 0.0 CLNG-1 -C2-1P 0.0 CLNG-1 -C3-1P 0.0 CLNG-1 -C4-1P 0.0 CLNG-1 -C5-1P 180.0 CLNG-1 -FRONT-1 180.0 WALL-1 -C1-1 180.0 CLNG-1 -F1-1 0.0 CLNG-1 -SB12 45.0 INT-WALL-1 -SB14 315.0 INT-WALL-1 -SB15 0.0 INT-WALL-1 -RIGHT-1 90.0 WALL-1 -C2-1 0.0 CLNG-1 -F2-1 0.0 CLNG-1 -SB21 225.0 INT-WALL-1 -SB23 315.784824603 INT-WALL-1 -SB25 270.0 INT-WALL-1 -BACK-1 0.0 NORTHERN-WALL -C3-1 0.0 CLNG-1 -F3-1 0.0 CLNG-1 -SB32 135.784824603 INT-WALL-1 -SB34 224.215175397 INT-WALL-1 -SB35 180.0 INT-WALL-1 -LEFT-1 270.0 WALL-1 -C4-1 0.0 CLNG-1 -F4-1 0.0 CLNG-1 -SB41 135.0 INT-WALL-1 -SB43 44.215175397 INT-WALL-1 -SB45 90.0 INT-WALL-1 -C5-1 0.0 CLNG-1 -F5-1 0.0 CLNG-1 -SB51 180.0 INT-WALL-1 -SB52 90.0 INT-WALL-1 -SB53 0.0 INT-WALL-1 -SB54 270.0 INT-WALL-1 -WALL-1SF 180.0 WALL-1 -WALL-1SR 90.0 WALL-1 -WALL-1SB 0.0 NORTHERN-WALL -WALL-1SL 270.0 WALL-1 -BOTTOM-1 0.0 FLOOR-SLAB-1 -F1-1S 0.0 CLNG-1 -F2-1S 0.0 CLNG-1 -F3-1S 0.0 CLNG-1 -F4-1S 0.0 CLNG-1 -F5-1S 0.0 CLNG-1 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_227_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_227_0.text deleted file mode 100644 index 21e7ac64..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_227_0.text +++ /dev/null @@ -1,50 +0,0 @@ -WALL-1PF 180.0 WALL-1 -WALL-1PR 90.0 WALL-1 -WALL-1PB 0.0 NORTHERN-WALL -WALL-1PL 270.0 WALL-1 -TOP-1 0.0 ROOF-1 -C1-1P 0.0 CLNG-1 -C2-1P 0.0 CLNG-1 -C3-1P 0.0 CLNG-1 -C4-1P 0.0 CLNG-1 -C5-1P 180.0 CLNG-1 -FRONT-1 180.0 WALL-1 -C1-1 180.0 CLNG-1 -F1-1 0.0 CLNG-1 -SB12 45.0 INT-WALL-1 -SB14 315.0 INT-WALL-1 -SB15 0.0 INT-WALL-1 -RIGHT-1 90.0 WALL-1 -C2-1 0.0 CLNG-1 -F2-1 0.0 CLNG-1 -SB21 225.0 INT-WALL-1 -SB23 315.784824603 INT-WALL-1 -SB25 270.0 INT-WALL-1 -BACK-1 0.0 NORTHERN-WALL -C3-1 0.0 CLNG-1 -F3-1 0.0 CLNG-1 -SB32 135.784824603 INT-WALL-1 -SB34 224.215175397 INT-WALL-1 -SB35 180.0 INT-WALL-1 -LEFT-1 270.0 WALL-1 -C4-1 0.0 CLNG-1 -F4-1 0.0 CLNG-1 -SB41 135.0 INT-WALL-1 -SB43 44.215175397 INT-WALL-1 -SB45 90.0 INT-WALL-1 -C5-1 0.0 CLNG-1 -F5-1 0.0 CLNG-1 -SB51 180.0 INT-WALL-1 -SB52 90.0 INT-WALL-1 -SB53 0.0 INT-WALL-1 -SB54 270.0 INT-WALL-1 -WALL-1SF 180.0 WALL-1 -WALL-1SR 90.0 WALL-1 -WALL-1SB 0.0 NORTHERN-WALL -WALL-1SL 270.0 WALL-1 -BOTTOM-1 0.0 FLOOR-SLAB-1 -F1-1S 0.0 CLNG-1 -F2-1S 0.0 CLNG-1 -F3-1S 0.0 CLNG-1 -F4-1S 0.0 CLNG-1 -F5-1S 0.0 CLNG-1 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_228_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_228_0.text deleted file mode 100644 index 21e7ac64..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_228_0.text +++ /dev/null @@ -1,50 +0,0 @@ -WALL-1PF 180.0 WALL-1 -WALL-1PR 90.0 WALL-1 -WALL-1PB 0.0 NORTHERN-WALL -WALL-1PL 270.0 WALL-1 -TOP-1 0.0 ROOF-1 -C1-1P 0.0 CLNG-1 -C2-1P 0.0 CLNG-1 -C3-1P 0.0 CLNG-1 -C4-1P 0.0 CLNG-1 -C5-1P 180.0 CLNG-1 -FRONT-1 180.0 WALL-1 -C1-1 180.0 CLNG-1 -F1-1 0.0 CLNG-1 -SB12 45.0 INT-WALL-1 -SB14 315.0 INT-WALL-1 -SB15 0.0 INT-WALL-1 -RIGHT-1 90.0 WALL-1 -C2-1 0.0 CLNG-1 -F2-1 0.0 CLNG-1 -SB21 225.0 INT-WALL-1 -SB23 315.784824603 INT-WALL-1 -SB25 270.0 INT-WALL-1 -BACK-1 0.0 NORTHERN-WALL -C3-1 0.0 CLNG-1 -F3-1 0.0 CLNG-1 -SB32 135.784824603 INT-WALL-1 -SB34 224.215175397 INT-WALL-1 -SB35 180.0 INT-WALL-1 -LEFT-1 270.0 WALL-1 -C4-1 0.0 CLNG-1 -F4-1 0.0 CLNG-1 -SB41 135.0 INT-WALL-1 -SB43 44.215175397 INT-WALL-1 -SB45 90.0 INT-WALL-1 -C5-1 0.0 CLNG-1 -F5-1 0.0 CLNG-1 -SB51 180.0 INT-WALL-1 -SB52 90.0 INT-WALL-1 -SB53 0.0 INT-WALL-1 -SB54 270.0 INT-WALL-1 -WALL-1SF 180.0 WALL-1 -WALL-1SR 90.0 WALL-1 -WALL-1SB 0.0 NORTHERN-WALL -WALL-1SL 270.0 WALL-1 -BOTTOM-1 0.0 FLOOR-SLAB-1 -F1-1S 0.0 CLNG-1 -F2-1S 0.0 CLNG-1 -F3-1S 0.0 CLNG-1 -F4-1S 0.0 CLNG-1 -F5-1S 0.0 CLNG-1 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_22_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_22_0.text deleted file mode 100644 index 9884a921..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_22_0.text +++ /dev/null @@ -1 +0,0 @@ -Empire State Building diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_23_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_23_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_23_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_24_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_24_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_24_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_25_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_25_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_25_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_34_0.png b/docs/source/Main_Tutorial_files/Main_Tutorial_34_0.png deleted file mode 100644 index b0f65bf1..00000000 Binary files a/docs/source/Main_Tutorial_files/Main_Tutorial_34_0.png and /dev/null differ diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_35_0.png b/docs/source/Main_Tutorial_files/Main_Tutorial_35_0.png deleted file mode 100644 index b0f65bf1..00000000 Binary files a/docs/source/Main_Tutorial_files/Main_Tutorial_35_0.png and /dev/null differ diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_36_0.png b/docs/source/Main_Tutorial_files/Main_Tutorial_36_0.png deleted file mode 100644 index b0f65bf1..00000000 Binary files a/docs/source/Main_Tutorial_files/Main_Tutorial_36_0.png and /dev/null differ diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_36_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_36_0.text deleted file mode 100644 index 9ef6ba5a..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_36_0.text +++ /dev/null @@ -1 +0,0 @@ -City diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_37_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_37_0.text deleted file mode 100644 index 9ef6ba5a..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_37_0.text +++ /dev/null @@ -1 +0,0 @@ -City diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_38_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_38_0.text deleted file mode 100644 index 8b7373e9..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_38_0.text +++ /dev/null @@ -1 +0,0 @@ -30.0 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_39_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_39_0.text deleted file mode 100644 index 8b7373e9..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_39_0.text +++ /dev/null @@ -1 +0,0 @@ -30.0 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_40_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_40_0.text deleted file mode 100644 index de22092c..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_40_0.text +++ /dev/null @@ -1,8 +0,0 @@ -Empire State Building -30.0 -City -0.04 -0.4 -FullExterior -25 -6 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_41_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_41_0.text deleted file mode 100644 index de22092c..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_41_0.text +++ /dev/null @@ -1,8 +0,0 @@ -Empire State Building -30.0 -City -0.04 -0.4 -FullExterior -25 -6 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_42_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_42_0.text deleted file mode 100644 index de22092c..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_42_0.text +++ /dev/null @@ -1,8 +0,0 @@ -Empire State Building -30.0 -City -0.04 -0.4 -FullExterior -25 -6 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_49_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_49_0.text deleted file mode 100644 index fd1f8389..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_49_0.text +++ /dev/null @@ -1 +0,0 @@ -'apple' \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_50_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_50_0.text deleted file mode 100644 index fd1f8389..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_50_0.text +++ /dev/null @@ -1 +0,0 @@ -'apple' \ No newline at end of file diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_51_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_51_0.text deleted file mode 100644 index cd061343..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_51_0.text +++ /dev/null @@ -1 +0,0 @@ -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_52_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_52_0.text deleted file mode 100644 index cd061343..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_52_0.text +++ /dev/null @@ -1 +0,0 @@ -bannana diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_53_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_53_0.text deleted file mode 100644 index 4c479def..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_53_0.text +++ /dev/null @@ -1 +0,0 @@ -apple diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_54_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_54_0.text deleted file mode 100644 index 4c479def..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_54_0.text +++ /dev/null @@ -1 +0,0 @@ -apple diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_55_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_55_0.text deleted file mode 100644 index 8ec19ba3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_55_0.text +++ /dev/null @@ -1,4 +0,0 @@ -apple -apple -apple -apple diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_56_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_56_0.text deleted file mode 100644 index 8ec19ba3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_56_0.text +++ /dev/null @@ -1,4 +0,0 @@ -apple -apple -apple -apple diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_57_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_57_0.text deleted file mode 100644 index 8ec19ba3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_57_0.text +++ /dev/null @@ -1,4 +0,0 @@ -apple -apple -apple -apple diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_59_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_59_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_59_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_60_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_60_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_60_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_61_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_61_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_61_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_70_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_70_0.text deleted file mode 100644 index 160a1f74..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_70_0.text +++ /dev/null @@ -1,81 +0,0 @@ -[ -Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat -, -Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat -, -Material, - I02 50mm insulation board, !- Name - MediumRough, !- Roughness - 0.0508, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat -, -Material, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800.0, !- Density - 1090.0; !- Specific Heat -, -Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, -Material, - F16 Acoustic tile, !- Name - MediumSmooth, !- Roughness - 0.0191, !- Thickness - 0.06, !- Conductivity - 368.0, !- Density - 590.0; !- Specific Heat -, -Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, -Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -, -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_71_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_71_0.text deleted file mode 100644 index 160a1f74..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_71_0.text +++ /dev/null @@ -1,81 +0,0 @@ -[ -Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat -, -Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat -, -Material, - I02 50mm insulation board, !- Name - MediumRough, !- Roughness - 0.0508, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat -, -Material, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800.0, !- Density - 1090.0; !- Specific Heat -, -Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, -Material, - F16 Acoustic tile, !- Name - MediumSmooth, !- Roughness - 0.0191, !- Thickness - 0.06, !- Conductivity - 368.0, !- Density - 590.0; !- Specific Heat -, -Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, -Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -, -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_72_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_72_0.text deleted file mode 100644 index 160a1f74..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_72_0.text +++ /dev/null @@ -1,81 +0,0 @@ -[ -Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat -, -Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat -, -Material, - I02 50mm insulation board, !- Name - MediumRough, !- Roughness - 0.0508, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat -, -Material, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800.0, !- Density - 1090.0; !- Specific Heat -, -Material, - M11 100mm lightweight concrete, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.53, !- Conductivity - 1280.0, !- Density - 840.0; !- Specific Heat -, -Material, - F16 Acoustic tile, !- Name - MediumSmooth, !- Roughness - 0.0191, !- Thickness - 0.06, !- Conductivity - 368.0, !- Density - 590.0; !- Specific Heat -, -Material, - M01 100mm brick, !- Name - MediumRough, !- Roughness - 0.1016, !- Thickness - 0.89, !- Conductivity - 1920.0, !- Density - 790.0; !- Specific Heat -, -Material, - M15 200mm heavyweight concrete, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.95, !- Conductivity - 2240.0, !- Density - 900.0; !- Specific Heat -, -Material, - M05 200mm concrete block, !- Name - MediumRough, !- Roughness - 0.2032, !- Thickness - 1.11, !- Conductivity - 800.0, !- Density - 920.0; !- Specific Heat -, -Material, - G05 25mm wood, !- Name - MediumSmooth, !- Roughness - 0.0254, !- Thickness - 0.15, !- Conductivity - 608.0, !- Density - 1630.0; !- Specific Heat -] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_73_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_73_0.text deleted file mode 100644 index cf3a9331..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_73_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_74_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_74_0.text deleted file mode 100644 index cf3a9331..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_74_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - F08 Metal surface, !- Name - Smooth, !- Roughness - 0.0008, !- Thickness - 45.28, !- Conductivity - 7824.0, !- Density - 500.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_75_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_75_0.text deleted file mode 100644 index 9886ec3d..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_75_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_76_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_76_0.text deleted file mode 100644 index 9886ec3d..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_76_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_77_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_77_0.text deleted file mode 100644 index 9886ec3d..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_77_0.text +++ /dev/null @@ -1,9 +0,0 @@ - -Material, - I01 25mm insulation board, !- Name - MediumRough, !- Roughness - 0.0254, !- Thickness - 0.03, !- Conductivity - 43.0, !- Density - 1210.0; !- Specific Heat - diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_80_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_80_0.text deleted file mode 100644 index b2903a30..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_80_0.text +++ /dev/null @@ -1 +0,0 @@ -Lady Gaga diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_81_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_81_0.text deleted file mode 100644 index b2903a30..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_81_0.text +++ /dev/null @@ -1 +0,0 @@ -Lady Gaga diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_82_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_82_0.text deleted file mode 100644 index cab1874b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_82_0.text +++ /dev/null @@ -1,2 +0,0 @@ -Santa Clause -Lady Gaga diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_83_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_83_0.text deleted file mode 100644 index cab1874b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_83_0.text +++ /dev/null @@ -1,2 +0,0 @@ -Santa Clause -Lady Gaga diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_84_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_84_0.text deleted file mode 100644 index cab1874b..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_84_0.text +++ /dev/null @@ -1,2 +0,0 @@ -Santa Clause -Lady Gaga diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_86_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_86_0.text deleted file mode 100644 index 74c031f3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_86_0.text +++ /dev/null @@ -1 +0,0 @@ -['Mick Jagger', 'Steve Jobs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_87_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_87_0.text deleted file mode 100644 index 74c031f3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_87_0.text +++ /dev/null @@ -1 +0,0 @@ -['Mick Jagger', 'Steve Jobs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_88_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_88_0.text deleted file mode 100644 index 74c031f3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_88_0.text +++ /dev/null @@ -1 +0,0 @@ -['Mick Jagger', 'Steve Jobs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_91_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_91_0.text deleted file mode 100644 index e267a293..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_91_0.text +++ /dev/null @@ -1,2 +0,0 @@ -['Steve Jobs', 'Lady Gaga'] -['Steve Jobs', 'Lady Gaga'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_92_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_92_0.text deleted file mode 100644 index e267a293..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_92_0.text +++ /dev/null @@ -1,2 +0,0 @@ -['Steve Jobs', 'Lady Gaga'] -['Steve Jobs', 'Lady Gaga'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_93_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_93_0.text deleted file mode 100644 index 1c36bfa3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_93_0.text +++ /dev/null @@ -1,4 +0,0 @@ -['Lady Gaga', 'Santa Clause'] -['Donald Trump', 'Mick Jagger'] -['Steve Jobs', 'Lady Gaga', 'Santa Clause'] -['Donald Trump', 'Mick Jagger', 'Steve Jobs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_94_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_94_0.text deleted file mode 100644 index 1c36bfa3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_94_0.text +++ /dev/null @@ -1,4 +0,0 @@ -['Lady Gaga', 'Santa Clause'] -['Donald Trump', 'Mick Jagger'] -['Steve Jobs', 'Lady Gaga', 'Santa Clause'] -['Donald Trump', 'Mick Jagger', 'Steve Jobs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_95_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_95_0.text deleted file mode 100644 index 1c36bfa3..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_95_0.text +++ /dev/null @@ -1,4 +0,0 @@ -['Lady Gaga', 'Santa Clause'] -['Donald Trump', 'Mick Jagger'] -['Steve Jobs', 'Lady Gaga', 'Santa Clause'] -['Donald Trump', 'Mick Jagger', 'Steve Jobs'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_98_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_98_0.text deleted file mode 100644 index b8ce2fe0..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_98_0.text +++ /dev/null @@ -1 +0,0 @@ -['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause', 'First-year students'] diff --git a/docs/source/Main_Tutorial_files/Main_Tutorial_99_0.text b/docs/source/Main_Tutorial_files/Main_Tutorial_99_0.text deleted file mode 100644 index b8ce2fe0..00000000 --- a/docs/source/Main_Tutorial_files/Main_Tutorial_99_0.text +++ /dev/null @@ -1 +0,0 @@ -['Donald Trump', 'Mick Jagger', 'Steve Jobs', 'Lady Gaga', 'Santa Clause', 'First-year students'] diff --git a/docs/source/Outputs_Tutorial.rst b/docs/source/Outputs_Tutorial.rst deleted file mode 100644 index 50875a63..00000000 --- a/docs/source/Outputs_Tutorial.rst +++ /dev/null @@ -1,740 +0,0 @@ - -Reading outputs from E+ -======================= - -.. code:: python - - # some initial set up - # if you have not installed epp, and only downloaded it - # you will need the following lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - -Using titletable() to get at the tables ---------------------------------------- - -So far we have been making changes to the IDF input file. How about -looking at the outputs. - -Energyplus makes nice htmlout files that look like this. - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.html_snippet1) #display the image below - - - - -.. image:: Outputs_Tutorial_files/Outputs_Tutorial_4_0.png - - -If you look at the clipping of the html file above, you see tables with -data in them. Eppy has functions that let you access of these tables and -get the data from any of it's cells. - -Let us say you want to find the "Net Site Energy". - -This is in table "Site and Source Energy". - -The number you want is in the third row, second column and it's value is -"47694.47" - -Let us use eppy to extract this number - -.. code:: python - - from eppy.results import readhtml # the eppy module with functions to read the html - fname = "../eppy/resources/outputfiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlowTable_ABUPS.html" # the html file you want to read - filehandle = open(fname, 'r').read() # get a file handle to the html file - - - htables = readhtml.titletable(filehandle) # reads the tables with their titles - - -If you open the python file readhtml.py and look at the function -titletable, you can see the function documentation. - -It says the following - - """return a list of [(title, table), .....] - title = previous item with a tag - table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]""" - - -The documentation says that it returns a list. Let us take a look inside -this list. Let us look at the first item in the list. - -.. code:: python - - firstitem = htables[0] - print firstitem - - - -.. parsed-literal:: - - (u'Site and Source Energy', [[u'', u'Total Energy [kWh]', u'Energy Per Total Building Area [kWh/m2]', u'Energy Per Conditioned Building Area [kWh/m2]'], [u'Total Site Energy', 47694.47, 51.44, 51.44], [u'Net Site Energy', 47694.47, 51.44, 51.44], [u'Total Source Energy', 140159.1, 151.16, 151.16], [u'Net Source Energy', 140159.1, 151.16, 151.16]]) - - -| Ughh !!! that is ugly. Hard to see what it is. -| Let us use a python module to print it pretty - -.. code:: python - - import pprint - pp = pprint.PrettyPrinter() - pp.pprint(firstitem) - - - -.. parsed-literal:: - - (u'Site and Source Energy', - [[u'', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]]) - - -Nice. that is a little clearer - -.. code:: python - - firstitem_title = firstitem[0] - pp.pprint(firstitem_title) - - - -.. parsed-literal:: - - u'Site and Source Energy' - - -.. code:: python - - firstitem_table = firstitem[1] - pp.pprint(firstitem_table) - - - -.. parsed-literal:: - - [[u'', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]] - - -| How do we get to value of "Net Site Energy". -| We know it is in the third row, second column of the table. - -Easy. - -.. code:: python - - thirdrow = firstitem_table[2] # we start counting with 0. So 0, 1, 2 is third row - print thirdrow - - - -.. parsed-literal:: - - [u'Net Site Energy', 47694.47, 51.44, 51.44] - - -.. code:: python - - thirdrow_secondcolumn = thirdrow[1] - thirdrow_secondcolumn - - - - - -.. parsed-literal:: - - 47694.47 - - - -| the text from the html table is in unicode. -| That is why you see that weird 'u' letter. - -Let us convert it to a floating point number - -.. code:: python - - net_site_energy = float(thirdrow_secondcolumn) - net_site_energy - - - - - -.. parsed-literal:: - - 47694.47 - - - -Let us have a little fun with the tables. - -Get the titles of all the tables - -.. code:: python - - alltitles = [htable[0] for htable in htables] - alltitles - - - - - -.. parsed-literal:: - - [u'Site and Source Energy', - u'Site to Source Energy Conversion Factors', - u'Building Area', - u'End Uses', - u'End Uses By Subcategory', - u'Utility Use Per Conditioned Floor Area', - u'Utility Use Per Total Floor Area', - u'Electric Loads Satisfied', - u'On-Site Thermal Sources', - u'Water Source Summary', - u'Comfort and Setpoint Not Met Summary', - u'Comfort and Setpoint Not Met Summary'] - - - -Now let us grab the tables with the titles "Building Area" and "Site to -Source Energy Conversion Factors" - -twotables = [htable for htable in htables if htable[0] in ["Building -Area", "Site to Source Energy Conversion Factors"]] twotables - -Let us leave readtables for now. - -It gives us the basic functionality to read any of the tables in the -html output file. - -Using lines\_table() to get at the tables ------------------------------------------ - -We have been using titletable() to get at the tables. There is a -constraint using function titletable(). Titletable() assumes that there -is a unique title (in HTML bold) just above the table. It is assumed -that this title will adequetly describe the table. This is true in most -cases and titletable() is perfectly good to use. Unfortuntely there are -some tables that do not follow this rule. The snippet below shows one of -them. - -.. code:: python - - from eppy import ex_inits #no need to know this code, it just shows the image below - for_images = ex_inits - for_images.display_png(for_images.html_snippet2) # display the image below - - - - -.. image:: Outputs_Tutorial_files/Outputs_Tutorial_28_0.png - - -Notice that the HTML snippet shows a table with three lines above it. -The first two lines have information that describe the table. We need to -look at both those lines to understand what the table contains. So we -need a different function that will capture all those lines before the -table. The funtion lines\_table() described below will do this. - -.. code:: python - - from eppy.results import readhtml # the eppy module with functions to read the html - fname = "../eppy/resources/outputfiles/V_8_1/ASHRAE30pct.PI.Final11_OfficeMedium_STD2010_Chicago-baseTable.html" # the html file you want to read - filehandle = open(fname, 'r').read() # get a file handle to the html file - - - ltables = readhtml.lines_table(filehandle) # reads the tables with their titles - - -The html snippet shown above is the last table in HTML file we just -opened. We have used lines\_table() to read the tables into the variable -ltables. We can get to the last table by ltable[-1]. Let us print it and -see what we have. - -.. code:: python - - import pprint - pp = pprint.PrettyPrinter() - pp.pprint(ltables[-1]) - - - -.. parsed-literal:: - - [[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]] - - -We can see that ltables has captured all the lines before the table. Let -us make our code more explicit to see this - -.. code:: python - - last_ltable = ltables[-1] - lines_before_table = last_ltable[0] - table_itself = last_ltable[-1] - - pp.pprint(lines_before_table) - - - -.. parsed-literal:: - - [u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'] - - -We found this table the easy way this time, because we knew it was the -last one. How do we find it if we don't know where it is in the file ? -Python comes to our rescue :-) Let assume that we want to find the table -that has the following two lines before it. - -- Report: FANGER DURING COOLING AND ADAPTIVE COMFORT -- For: PERIMETER\_MID\_ZN\_4 - -.. code:: python - - line1 = 'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT' - line2 = 'For: PERIMETER_MID_ZN_4' - # - # check if those two lines are before the table - line1 in lines_before_table and line2 in lines_before_table - - - - - -.. parsed-literal:: - - True - - - -.. code:: python - - # find all the tables where those two lines are before the table - [ltable for ltable in ltables - if line1 in ltable[0] and line2 in ltable[0]] - - - - - -.. parsed-literal:: - - [[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]]] - - - -That worked ! - -What if you want to find the words "FANGER" and "PERIMETER\_MID\_ZN\_4" -before the table. The following code will do it. - -.. code:: python - - # sample code to illustrate what we are going to do - last_ltable = ltables[-1] - lines_before_table = last_ltable[0] - table_itself = last_ltable[-1] - - # join lines_before_table into a paragraph of text - justtext = '\n'.join(lines_before_table) - print justtext - - - -.. parsed-literal:: - - Table of Contents - Report: FANGER DURING COOLING AND ADAPTIVE COMFORT - For: PERIMETER_MID_ZN_4 - Timestamp: 2014-02-07 - 12:29:08 - - -.. code:: python - - "FANGER" in justtext and "PERIMETER_MID_ZN_4" in justtext - - - - - -.. parsed-literal:: - - True - - - -.. code:: python - - # Let us combine the this trick to find the table - [ltable for ltable in ltables - if "FANGER" in '\n'.join(ltable[0]) and "PERIMETER_MID_ZN_4" in '\n'.join(ltable[0])] - - - - -.. parsed-literal:: - - [[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]]] - - - -Extracting data from the tables -------------------------------- - -The tables in the HTML page in general have text in the top header row. -The first vertical row has text. The remaining cells have numbers. We -can identify the numbers we need by looking at the labelin the top row -and the label in the first column. Let us construct a simple example and -explore this. - -.. code:: python - - # ignore the following three lines. I am using them to construct the table below - from IPython.display import HTML - atablestring = '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 a bb cc d
x y123
y z456
z z789
' - HTML(atablestring) - - - - - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - -
 a bb cc d
x y123
y z456
z z789
- - - -This table is actually in the follwoing form: - -.. code:: python - - atable = [["", "a b", "b c", "c d"], - ["x y", 1, 2, 3 ], - ["y z", 4, 5, 6 ], - ["z z", 7, 8, 9 ],] - - -We can see the labels in the table. So we an look at row "x y" and -column "c d". The value there is 3 - -right now we can get to it by saying atable[1][3] - -.. code:: python - - print atable[1][3] - - -.. parsed-literal:: - - 3 - - -readhtml has some functions that will let us address the values by the -labels. We use a structure from python called named tuples to do this. -The only limitation is that the labels have to be letters or digits. -Named tuples does not allow spaces in the labels. We could replace the -space with an underscore ' \_ '. So "a b" will become "a\_b". So we can -look for row "x\_y" and column "c\_d". Let us try this out. - -.. code:: python - - from eppy.results import readhtml - h_table = readhtml.named_grid_h(atable) - - -.. code:: python - - print h_table.x_y.c_d - - - -.. parsed-literal:: - - 3 - - -We can still get to the value by index - -.. code:: python - - print h_table[0][2] - - - -.. parsed-literal:: - - 3 - - -Note that we used atable[1][3], but here we used h\_table[0][2]. That is -because h\_table does not count the rows and columns where the labels -are. - -We can also do the following: - -.. code:: python - - print h_table.x_y[2] - # or - print h_table[0].c_d - - - -.. parsed-literal:: - - 3 - 3 - - -Wow … that is pretty cool. What if we want to just check what the labels -are ? - -.. code:: python - - print h_table._fields - - - -.. parsed-literal:: - - ('x_y', 'y_z', 'z_z') - - -That gives us the horizontal lables. How about the vertical labels ? - -.. code:: python - - h_table.x_y._fields - - - - - -.. parsed-literal:: - - ('a_b', 'b_c', 'c_d') - - - -There you go !!! - -How about if I want to use the labels differently ? Say I want to refer -to the row first and then to the column. That woul be saying -table.c\_d.x\_y. We can do that by using a different function - -.. code:: python - - v_table = readhtml.named_grid_v(atable) - print v_table.c_d.x_y - - - -.. parsed-literal:: - - 3 - - -And we can do the following - -.. code:: python - - print v_table[2][0] - print v_table.c_d[0] - print v_table[2].x_y - - - -.. parsed-literal:: - - 3 - 3 - 3 - - -Let us try to get the numbers in the first column and then get their sum - -.. code:: python - - v_table.a_b - - - - - -.. parsed-literal:: - - ntrow(x_y=1, y_z=4, z_z=7) - - - -Look like we got the right column. But not in the right format. We -really need a list of numbers - -.. code:: python - - [cell for cell in v_table.a_b] - - - - - -.. parsed-literal:: - - [1, 4, 7] - - - -That looks like waht we wanted. Now let us get the sum - -.. code:: python - - values_in_first_column = [cell for cell in v_table.a_b] - print values_in_first_column - print sum(values_in_first_column) # sum is a builtin function that will sum a list - - - -.. parsed-literal:: - - [1, 4, 7] - 12 - - -To get the first row we use the variable h\_table - -.. code:: python - - values_in_first_row = [cell for cell in h_table.x_y] - print values_in_first_row - print sum(values_in_first_row) - - - -.. parsed-literal:: - - [1, 2, 3] - 6 - diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_10_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_10_0.text deleted file mode 100644 index 8af60eae..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_10_0.text +++ /dev/null @@ -1 +0,0 @@ -(u'Site and Source Energy', [[u'', u'Total Energy [kWh]', u'Energy Per Total Building Area [kWh/m2]', u'Energy Per Conditioned Building Area [kWh/m2]'], [u'Total Site Energy', 47694.47, 51.44, 51.44], [u'Net Site Energy', 47694.47, 51.44, 51.44], [u'Total Source Energy', 140159.1, 151.16, 151.16], [u'Net Source Energy', 140159.1, 151.16, 151.16]]) diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_11_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_11_0.text deleted file mode 100644 index 229be360..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_11_0.text +++ /dev/null @@ -1,9 +0,0 @@ -(u'Site and Source Energy', - [['', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]]) diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_12_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_12_0.text deleted file mode 100644 index d50ac146..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_12_0.text +++ /dev/null @@ -1,9 +0,0 @@ -(u'Site and Source Energy', - [[u'', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]]) diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_13_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_13_0.text deleted file mode 100644 index 0f18e697..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_13_0.text +++ /dev/null @@ -1 +0,0 @@ -u'Site and Source Energy' diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_14_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_14_0.text deleted file mode 100644 index 0f18e697..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_14_0.text +++ /dev/null @@ -1 +0,0 @@ -u'Site and Source Energy' diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_15_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_15_0.text deleted file mode 100644 index 125cc93b..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_15_0.text +++ /dev/null @@ -1,8 +0,0 @@ -[[u'', - u'Total Energy [kWh]', - u'Energy Per Total Building Area [kWh/m2]', - u'Energy Per Conditioned Building Area [kWh/m2]'], - [u'Total Site Energy', 47694.47, 51.44, 51.44], - [u'Net Site Energy', 47694.47, 51.44, 51.44], - [u'Total Source Energy', 140159.1, 151.16, 151.16], - [u'Net Source Energy', 140159.1, 151.16, 151.16]] diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_16_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_16_0.text deleted file mode 100644 index 2c9494d3..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_16_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'Net Site Energy', 47694.47, 51.44, 51.44] diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_17_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_17_0.text deleted file mode 100644 index 2c9494d3..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_17_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'Net Site Energy', 47694.47, 51.44, 51.44] diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_18_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_18_0.text deleted file mode 100644 index e2f4576e..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_18_0.text +++ /dev/null @@ -1 +0,0 @@ -47694.47 \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_19_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_19_0.text deleted file mode 100644 index e2f4576e..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_19_0.text +++ /dev/null @@ -1 +0,0 @@ -47694.47 \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_20_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_20_0.text deleted file mode 100644 index e2f4576e..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_20_0.text +++ /dev/null @@ -1 +0,0 @@ -47694.47 \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_21_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_21_0.text deleted file mode 100644 index 68f75597..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_21_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[u'Site and Source Energy', - u'Site to Source Energy Conversion Factors', - u'Building Area', - u'End Uses', - u'End Uses By Subcategory', - u'Utility Use Per Conditioned Floor Area', - u'Utility Use Per Total Floor Area', - u'Electric Loads Satisfied', - u'On-Site Thermal Sources', - u'Water Source Summary', - u'Comfort and Setpoint Not Met Summary', - u'Comfort and Setpoint Not Met Summary'] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_22_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_22_0.text deleted file mode 100644 index 68f75597..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_22_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[u'Site and Source Energy', - u'Site to Source Energy Conversion Factors', - u'Building Area', - u'End Uses', - u'End Uses By Subcategory', - u'Utility Use Per Conditioned Floor Area', - u'Utility Use Per Total Floor Area', - u'Electric Loads Satisfied', - u'On-Site Thermal Sources', - u'Water Source Summary', - u'Comfort and Setpoint Not Met Summary', - u'Comfort and Setpoint Not Met Summary'] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_23_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_23_0.text deleted file mode 100644 index cf110612..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_23_0.text +++ /dev/null @@ -1,18 +0,0 @@ -[(u'Site to Source Energy Conversion Factors', - [['', u'Site=>Source Conversion Factor'], - [u'Electricity', 3.167], - [u'Natural Gas', 1.084], - [u'District Cooling', 1.056], - [u'District Heating', 3.613], - [u'Steam', 0.3], - [u'Gasoline', 1.05], - [u'Diesel', 1.05], - [u'Coal', 1.05], - [u'Fuel Oil #1', 1.05], - [u'Fuel Oil #2', 1.05], - [u'Propane', 1.05]]), - (u'Building Area', - [['', u'Area [m2]'], - [u'Total Building Area', 927.2], - [u'Net Conditioned Building Area', 927.2], - [u'Unconditioned Building Area', 0.0]])] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_27_0.html b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_27_0.html deleted file mode 100644 index c6aa52e7..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_27_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -
 a bb cc d
x y123
y z456
z z789
\ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_27_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_27_0.text deleted file mode 100644 index 6c8e6230..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_27_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_28_0.png b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_28_0.png deleted file mode 100644 index b7b7445f..00000000 Binary files a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_28_0.png and /dev/null differ diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_28_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_28_0.text deleted file mode 100644 index 7a16090d..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_28_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_32_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_32_0.text deleted file mode 100644 index 9a896947..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_32_0.text +++ /dev/null @@ -1,24 +0,0 @@ -[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]] diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_34_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_34_0.text deleted file mode 100644 index 2f2b8e89..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_34_0.text +++ /dev/null @@ -1,4 +0,0 @@ -[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'] diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_35_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_35_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_35_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_36_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_36_0.text deleted file mode 100644 index 4791ed55..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_36_0.text +++ /dev/null @@ -1 +0,0 @@ -True \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_37_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_37_0.text deleted file mode 100644 index ad399d03..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_37_0.text +++ /dev/null @@ -1,24 +0,0 @@ -[[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]]] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_39_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_39_0.text deleted file mode 100644 index 13b5c728..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_39_0.text +++ /dev/null @@ -1,5 +0,0 @@ -Table of Contents -Report: FANGER DURING COOLING AND ADAPTIVE COMFORT -For: PERIMETER_MID_ZN_4 -Timestamp: 2014-02-07 - 12:29:08 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_3_0.png b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_3_0.png deleted file mode 100644 index edf42b56..00000000 Binary files a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_3_0.png and /dev/null differ diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_3_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_3_0.text deleted file mode 100644 index 7f568645..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_3_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_40_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_40_0.text deleted file mode 100644 index 4791ed55..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_40_0.text +++ /dev/null @@ -1 +0,0 @@ -True \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_41_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_41_0.text deleted file mode 100644 index ad399d03..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_41_0.text +++ /dev/null @@ -1,24 +0,0 @@ -[[[u'Table of Contents', - u'Report: FANGER DURING COOLING AND ADAPTIVE COMFORT', - u'For: PERIMETER_MID_ZN_4', - u'Timestamp: 2014-02-07\n 12:29:08'], - [[u'', - u'ZONE/SYS SENSIBLE COOLING RATE {HOURS POSITIVE} [HOURS]', - u'FANGERPPD {FOR HOURS SHOWN} []', - u'FANGERPPD []'], - [u'January', 102.637, 12.585, 32.231], - [u'February', 147.054, 10.5, 24.225], - [u'March', 286.835, 8.799, 16.86], - [u'April', 363.165, 7.704, 9.628], - [u'May', 428.458, 19.642, 21.401], - [u'June', 431.25, 10.092, 9.954], - [u'July', 432.134, 8.835, 7.959], - [u'August', 443.5, 9.743, 8.785], - [u'September', 408.833, 15.91, 14.855], - [u'October', 383.652, 6.919, 7.57], - [u'November', 243.114, 8.567, 15.256], - [u'December', 91.926, 14.298, 29.001], - [u'\xa0', u'\xa0', u'\xa0', u'\xa0'], - [u'Annual Sum or Average', 3762.56, 11.062, 16.458], - [u'Minimum of Months', 91.926, 6.919, 7.57], - [u'Maximum of Months', 443.5, 19.642, 32.231]]]] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_42_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_42_0.text deleted file mode 100644 index a58a8543..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_42_0.text +++ /dev/null @@ -1 +0,0 @@ -('x_y', 'y_z', 'z_z') diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_44_0.html b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_44_0.html deleted file mode 100644 index c6aa52e7..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_44_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -
 a bb cc d
x y123
y z456
z z789
\ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_44_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_44_0.text deleted file mode 100644 index aaecc2b9..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_44_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_47_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_47_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_47_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_49_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_49_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_49_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_4_0.png b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_4_0.png deleted file mode 100644 index edf42b56..00000000 Binary files a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_4_0.png and /dev/null differ diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_4_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_4_0.text deleted file mode 100644 index 015d70c2..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_4_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_51_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_51_0.text deleted file mode 100644 index 0c7ed494..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_51_0.text +++ /dev/null @@ -1 +0,0 @@ -ntrow(x_y=1, y_z=4, z_z=7) \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_52_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_52_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_52_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_53_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_53_0.text deleted file mode 100644 index 707bd180..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_53_0.text +++ /dev/null @@ -1 +0,0 @@ -[1, 4, 7] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_54_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_54_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_54_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_55_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_55_0.text deleted file mode 100644 index 4c8c605c..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_55_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[1, 4, 7] -12 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_57_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_57_0.text deleted file mode 100644 index a5c88062..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_57_0.text +++ /dev/null @@ -1,2 +0,0 @@ -3 -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_59_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_59_0.text deleted file mode 100644 index a58a8543..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_59_0.text +++ /dev/null @@ -1 +0,0 @@ -('x_y', 'y_z', 'z_z') diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_61_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_61_0.text deleted file mode 100644 index a2a07b35..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_61_0.text +++ /dev/null @@ -1 +0,0 @@ -('a_b', 'b_c', 'c_d') \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_64_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_64_0.text deleted file mode 100644 index 00750edc..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_64_0.text +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_66_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_66_0.text deleted file mode 100644 index 1f242fa6..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_66_0.text +++ /dev/null @@ -1,3 +0,0 @@ -3 -3 -3 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_68_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_68_0.text deleted file mode 100644 index 0c7ed494..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_68_0.text +++ /dev/null @@ -1 +0,0 @@ -ntrow(x_y=1, y_z=4, z_z=7) \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_70_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_70_0.text deleted file mode 100644 index 707bd180..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_70_0.text +++ /dev/null @@ -1 +0,0 @@ -[1, 4, 7] \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_72_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_72_0.text deleted file mode 100644 index 4c8c605c..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_72_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[1, 4, 7] -12 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_74_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_74_0.text deleted file mode 100644 index 8b66be48..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_74_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[1, 2, 3] -6 diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_7_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_7_0.text deleted file mode 100644 index 01959dd9..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_7_0.text +++ /dev/null @@ -1 +0,0 @@ -'return a list of [(title, table), .....]\ntitle = previous item with a tag\ntable = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..]' \ No newline at end of file diff --git a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_9_0.text b/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_9_0.text deleted file mode 100644 index bacaff2b..00000000 --- a/docs/source/Outputs_Tutorial_files/Outputs_Tutorial_9_0.text +++ /dev/null @@ -1 +0,0 @@ -(u'Site and Source Energy', [['', u'Total Energy [kWh]', u'Energy Per Total Building Area [kWh/m2]', u'Energy Per Conditioned Building Area [kWh/m2]'], [u'Total Site Energy', 47694.47, 51.44, 51.44], [u'Net Site Energy', 47694.47, 51.44, 51.44], [u'Total Source Energy', 140159.1, 151.16, 151.16], [u'Net Source Energy', 140159.1, 151.16, 151.16]]) diff --git a/docs/source/conf.py b/docs/source/conf.py deleted file mode 100644 index 87446c32..00000000 --- a/docs/source/conf.py +++ /dev/null @@ -1,267 +0,0 @@ -# -*- coding: utf-8 -*- -# -# eppy documentation build configuration file, created by -# sphinx-quickstart on Sun Sep 22 12:06:04 2013. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.intersphinx", - "sphinx.ext.ifconfig", - "sphinx.ext.viewcode", -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# The suffix of source filenames. -source_suffix = ".rst" - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = "index" - -# General information about the project. -project = "eppy" -copyright = "2013, Santosh Philip" - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = "0.5.51" -# The full version, including alpha/beta/rc tags. -release = "0.5.51" - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = "default" - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static", "default.css"] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -# html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = "eppydoc" - - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - #'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto/manual]). -latex_documents = [ - ("index", "eppy.tex", "eppy Documentation", "Santosh Philip", "manual") -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [("index", "eppy", "eppy Documentation", ["Santosh Philip"], 1)] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - "index", - "eppy", - "eppy Documentation", - "Santosh Philip", - "eppy", - "One line description of project.", - "Miscellaneous", - ) -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {"http://docs.python.org/": None} diff --git a/docs/source/default.css b/docs/source/default.css deleted file mode 100644 index 6342f98f..00000000 --- a/docs/source/default.css +++ /dev/null @@ -1,266 +0,0 @@ -/* - * default.css_t - * ~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- default theme. - * - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: sans-serif; - font-size: 100%; - background-color: #11303d; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: #1c4e63; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: #ffffff; - color: #000000; - padding: 0 20px 30px 20px; -} - -div.footer { - color: #ffffff; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: #ffffff; - text-decoration: underline; -} - -div.related { - background-color: #133f52; - line-height: 30px; - color: #ffffff; -} - -div.related a { - color: #ffffff; -} - -div.sphinxsidebar { -} - -div.sphinxsidebar h3 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: #ffffff; -} - -div.sphinxsidebar h4 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: #ffffff; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: #ffffff; -} - -div.sphinxsidebar a { - color: #98dbcc; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - - - -/* -- hyperlink styles ------------------------------------------------------ */ - -a { - color: #355f7c; - text-decoration: none; -} - -a:visited { - color: #355f7c; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - - - -/* -- body styles ----------------------------------------------------------- */ - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Trebuchet MS', sans-serif; - background-color: #f2f2f2; - font-weight: normal; - color: #20435c; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: white; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.admonition p { - margin-bottom: 5px; -} - -div.admonition pre { - margin-bottom: 5px; -} - -div.admonition ul, div.admonition ol { - margin-bottom: 5px; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - color: #333333; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -.highlight { - -} - -.highlight-python { - -} - -.code { - background-color: #eeffcc; -} - -tt { - padding: 0 1px 0 1px; - font-size: 0.95em; -} - -th { - background-color: #ede; -} - -.warning tt { - background: #efc2c2; -} - -.note tt { - background: #d6d6d6; -} - -.viewcode-back { - font-family: sans-serif; -} - -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} \ No newline at end of file diff --git a/docs/source/dev_docs/classes_eppy.rst b/docs/source/dev_docs/classes_eppy.rst deleted file mode 100644 index 6051d96e..00000000 --- a/docs/source/dev_docs/classes_eppy.rst +++ /dev/null @@ -1,2 +0,0 @@ -classes eppy -============ \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy.ipynb b/docs/source/dev_docs/data_eppy.ipynb deleted file mode 100644 index 32a9fb64..00000000 --- a/docs/source/dev_docs/data_eppy.ipynb +++ /dev/null @@ -1,995 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Underlying Data Structure of eppy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As described in previous sections, eppy was built on EplusInterface" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us open a small **idf** file to explore the data structure" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# you would normaly install eppy by doing\n", - "# python setup.py install\n", - "# or\n", - "# pip install eppy\n", - "# or\n", - "# easy_install eppy\n", - "\n", - "# if you have not done so, uncomment the following three lines\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../../../'\n", - "sys.path.append(pathnameto_eppy)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import modeleditor\n", - "from eppy.modeleditor import IDF\n", - "iddfile = \"../../../eppy/resources/iddfiles/Energy+V7_2_0.idd\"\n", - "fname1 = \"../../../eppy/resources/idffiles/V_7_2/dev1.idf\"\n", - "\n", - "IDF.setiddname(iddfile)\n", - "idf1 = IDF(fname1)\n", - "idf1.printidf()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n", - "VERSION, \n", - " 7.3; !- Version Identifier\n", - "\n", - "SIMULATIONCONTROL, \n", - " Yes, !- Do Zone Sizing Calculation\n", - " Yes, !- Do System Sizing Calculation\n", - " Yes, !- Do Plant Sizing Calculation\n", - " No, !- Run Simulation for Sizing Periods\n", - " Yes; !- Run Simulation for Weather File Run Periods\n", - "\n", - "BUILDING, \n", - " Empire State Building, !- Name\n", - " 30.0, !- North Axis\n", - " City, !- Terrain\n", - " 0.04, !- Loads Convergence Tolerance Value\n", - " 0.4, !- Temperature Convergence Tolerance Value\n", - " FullExterior, !- Solar Distribution\n", - " 25, !- Maximum Number of Warmup Days\n", - " 6; !- Minimum Number of Warmup Days\n", - "\n", - "SITE:LOCATION, \n", - " CHICAGO_IL_USA TMY2-94846, !- Name\n", - " 41.78, !- Latitude\n", - " -87.75, !- Longitude\n", - " -6.0, !- Time Zone\n", - " 190.0; !- Elevation\n", - "\n", - "MATERIAL:AIRGAP, \n", - " F04 Wall air space resistance, !- Name\n", - " 0.15; !- Thermal Resistance\n", - "\n", - "MATERIAL:AIRGAP, \n", - " F05 Ceiling air space resistance, !- Name\n", - " 0.18; !- Thermal Resistance\n", - "\n" - ] - } - ], - "prompt_number": 2 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Original Data Structure in EPlusInterface" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The original data structure in EPlusInterface was stupidly simple and robust. In fact attributes **stupidly simple** and **robust** seem to go together. Eppy evolved in such a way that this data structure is still retained. The rest of eppy is simply [syntactic sugar](http://en.wikipedia.org/wiki/Syntactic_sugar) for this data structure.\n", - "\n", - "from: https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic_sugar.html *\"Syntactic sugar is a computer science term that refers to syntax within a programming language that is designed to make things easier to read or to express, while alternative ways of expressing them exist.\n", - "Syntactic sugar\"*\n", - "\n", - "Let us take a look at this data structure. If we open an idf file with eppy we can explore the original data structure that comes from EPlusInterface.\n", - "\n", - "**Note** The variable names are not very intuitive at this level. I did not know what I was doing when I wrote this code and now we are stuck with it\n", - "\n", - "There are three varaibles that hold all the data we need. They are:\n", - "\n", - "- `idf1.model.dtls`\n", - "- `idf1.model.dt` \n", - "- `idf1.idd_info`" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dtls = idf1.model.dtls # names of all the idf objects\n", - "dt = idf1.model.dt # the idf model\n", - "idd_info = idf1.idd_info # all the idd data" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "idf1.model.dtls - Overview" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dtls = idf1.model.dtls # names of all the idf objects\n", - "print type(dtls)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# dtls is a list\n", - "print dtls[:10] # print the first ten items" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['LEAD INPUT', 'SIMULATION DATA', 'VERSION', 'SIMULATIONCONTROL', 'BUILDING', 'SHADOWCALCULATION', 'SURFACECONVECTIONALGORITHM:INSIDE', 'SURFACECONVECTIONALGORITHM:OUTSIDE', 'HEATBALANCEALGORITHM', 'HEATBALANCESETTINGS:CONDUCTIONFINITEDIFFERENCE']\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print len(dtls) # print the numer of items in the list" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "683\n" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Couple of points to note about `dtls`:\n", - "\n", - "- **dtls** is a list of all the names of the Energyplus objects.\n", - "- This list is extracted from the the **idd** file\n", - "- the list is in the same order as the objects in the **idd** file" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "idf1.model.dt - Overview" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dt = idf1.model.dt # the idf model\n", - "print type(dt)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# print 10 of the keys\n", - "print dt.keys()[:10]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['ZONEHVAC:OUTDOORAIRUNIT', 'TABLE:TWOINDEPENDENTVARIABLES', 'ENERGYMANAGEMENTSYSTEM:INTERNALVARIABLE', 'AVAILABILITYMANAGER:NIGHTCYCLE', 'GROUNDHEATTRANSFER:SLAB:BLDGPROPS', 'GENERATOR:MICROTURBINE', 'SHADING:BUILDING:DETAILED', 'EVAPORATIVECOOLER:INDIRECT:RESEARCHSPECIAL', 'ZONEHVAC:PACKAGEDTERMINALAIRCONDITIONER', 'CONSTRUCTION:WINDOWDATAFILE']\n" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# dt is a dict\n", - "number_of_keys = len(dt.keys())\n", - "print number_of_keys" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "683\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- The keys of **dt** are names of the objects (note that they are in capitals)\n", - "- Items in a python dict are unordered. So the keys may be in any order\n", - "- **dtls** will give us these names in the same order as they are in the idd file.\n", - "- so use **dtls** if you want the keys in an order\n", - "\n", - "We'll look at **dt** in further detail later" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "idf1.idd_info - Overview" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "idd_info = idf1.idd_info # all the idd data\n", - "print type(idd_info)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print len(idd_info) # number of items in the list" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "683\n" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# print the first three items\n", - "idd_info[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 41, - "text": [ - "[[{}],\n", - " [{}],\n", - " [{'format': ['singleLine'], 'unique-object': ['']},\n", - " {'default': ['7.0'],\n", - " 'field': ['Version Identifier'],\n", - " 'required-field': ['']}]]" - ] - } - ], - "prompt_number": 41 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# print the first three items in seperate lines\n", - "for i, item in enumerate(idd_info[:3]):\n", - " print \"%s. %s\" % (i, item)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0. [{}]\n", - "1. [{}]\n", - "2. [{'unique-object': [''], 'format': ['singleLine']}, {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}]\n" - ] - } - ], - "prompt_number": 40 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That does not make much sense. Below is the first 3 items from the idd file ::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " Lead Input;\n", - " \n", - " Simulation Data;\n", - " \n", - " \\group Simulation Parameters\n", - " \n", - " Version,\n", - " \\unique-object\n", - " \\format singleLine\n", - " A1 ; \\field Version Identifier\n", - " \\required-field\n", - " \\default 7.0\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- If you compare the text file with the sturcture of idd_info, you can start to see the similarities\n", - "- Note that the idd_info does not have the object name.\n", - "- This was an unfortunate design decision that we are stuck with now :-(. \n", - "- We need to jump through some hoops to get to an item in idd_info" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# the object \"VERSION\" is the third item in idd_info\n", - "# to get to \"VERSION\" we need to find it's location in the list\n", - "# we use \"dtls\" to do this\n", - "location_of_version = dtls.index(\"version\".upper())\n", - "print location_of_version" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "2\n" - ] - } - ], - "prompt_number": 37 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# print idd_info of \"VERSION\"\n", - "idd_info[location_of_version]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 42, - "text": [ - "[{'format': ['singleLine'], 'unique-object': ['']},\n", - " {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}]" - ] - } - ], - "prompt_number": 42 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**NOTE:** \n", - "\n", - "- the idd file is very large and uses a lot of memory when pulled into idd_info\n", - "- only one copy of idd_info is kept when eppy is running. \n", - "- This is the reason, eppy throws an exception when you try to set the idd file when it has already been set" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "idf1.model.dt - in detail" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us look at a specific object, say **MATERIAL:AIRGAP** in idf1.model.dt" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dt = idf1.model.dt" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 15 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airgaps = dt['MATERIAL:AIRGAP'.upper()]\n", - "print type(airgaps)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n" - ] - } - ], - "prompt_number": 23 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airgaps" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 43, - "text": [ - "[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15],\n", - " ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]]" - ] - } - ], - "prompt_number": 43 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A snippet of the **idf** text file shows this ::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " MATERIAL:AIRGAP,\n", - " F04 Wall air space resistance, !- Name\n", - " 0.15; !- Thermal Resistance\n", - " \n", - " MATERIAL:AIRGAP,\n", - " F05 Ceiling air space resistance, !- Name\n", - " 0.18; !- Thermal Resistance" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice the following things about idf1.model.dt:\n", - "\n", - "- The idf model is held within a dict. \n", - "- the keys in the dict are names of the IDF objects in caps, such as BUILDING, VERSION, CONSTRUCTION, MATERIAL:AIRGAP etc.\n", - "- The values in the dict are lists\n", - "- the list contains lists. This means that **airgaps** can contain more than one airgap.\n", - "- So airgaps = [airgap1, airgap2, ... ].\n", - "- where, airgaps1 = [Type_of_Object, field1, field2, field3, .... ]\n", - "- In airgaps1, all types have been converted. Note that \"Thermal Resistance\" is a float and not a string" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What about an Energyplus object that does not exist in the idf file ?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "roofs = dt['ROOF']\n", - "print roofs" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[]\n" - ] - } - ], - "prompt_number": 30 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You get an empty list, meaning there are no roof items within roofs" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "idf1.idd_info - in detail" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us find the idd_info for airgaps" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "location_of_airgaps = dtls.index(\"material:airgap\".upper())\n", - "print location_of_airgaps" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "50\n" - ] - } - ], - "prompt_number": 44 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "idd_airgaps = idd_info[location_of_airgaps]\n", - "idd_airgaps" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 45, - "text": [ - "[{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']},\n", - " {'field': ['Name'],\n", - " 'reference': ['MaterialName'],\n", - " 'required-field': [''],\n", - " 'type': ['alpha']},\n", - " {'field': ['Thermal Resistance'],\n", - " 'minimum>': ['0'],\n", - " 'type': ['real'],\n", - " 'units': ['m2-K/W']}]" - ] - } - ], - "prompt_number": 45 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Compare to text in idd file::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " Material:AirGap,\n", - " \\min-fields 2\n", - " \\memo Air Space in Opaque Construction\n", - " A1 , \\field Name\n", - " \\required-field\n", - " \\type alpha\n", - " \\reference MaterialName\n", - " N1 ; \\field Thermal Resistance\n", - " \\units m2-K/W\n", - " \\type real\n", - " \\minimum> 0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- idd_airgaps gives details about each field\n", - "- the last field N1 says that *type = real*\n", - "- This tells us that the text value coming from the the test file has to be converted to a float" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Syntactic Sugar" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "from: https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic_sugar.html *\"Syntactic sugar is a computer science term that refers to syntax within a programming language that is designed to make things easier to read or to express, while alternative ways of expressing them exist\"*\n", - "\n", - "Wikipedia article on [syntactic sugar](http://en.wikipedia.org/wiki/Syntactic_sugar)\n", - "\n", - "**All the rest of the code in eppy is simply syntactic sugar over the data structure in model.dtls, model.dt and idd_info**\n", - "\n", - "Of course, the above statement is a gross exageration, but it gives you a basis for understanding the code that comes later. At the end of the day, any further code is simply a means for changing the data within model.dt. And you need to access the data within model.dtls and idd_info to do so." - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Bunch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Bunch is a great library that subclasses dict. You can see it at:\n", - "\n", - "- https://pypi.python.org/pypi/bunch/1.0.1\n", - "- https://github.com/dsc/bunch\n", - "\n", - "Let us first take a look at a dict" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "adict = {'a':1, 'b':2, 'c':3}\n", - "adict" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 56, - "text": [ - "{'a': 1, 'b': 2, 'c': 3}" - ] - } - ], - "prompt_number": 56 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# one would access the values in this dict by:\n", - "print adict\n", - "print adict['a']\n", - "print adict['b']\n", - "print adict['c']" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "{'a': 1, 'c': 3, 'b': 2}\n", - "1\n", - "2\n", - "3\n" - ] - } - ], - "prompt_number": 57 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Bunch allows us to do this with a lot less typing" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from bunch import Bunch\n", - "bunchdict = Bunch(adict)\n", - "print bunchdict\n", - "print bunchdict.a\n", - "print bunchdict.b\n", - "print bunchdict.c" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Bunch(a=1, b=2, c=3)\n", - "1\n", - "2\n", - "3\n" - ] - } - ], - "prompt_number": 58 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us take a look at variable **airgaps** from the previous section." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airgaps" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 59, - "text": [ - "[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15],\n", - " ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]]" - ] - } - ], - "prompt_number": 59 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airgap1, airgap2 = airgaps[0], airgaps[1]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 60 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airgap1" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 61, - "text": [ - "['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]" - ] - } - ], - "prompt_number": 61 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are going to subclass bunch so that we can do the following to **airgap1** from the previous section:\n", - "\n", - "- airgap1.Name\n", - "- airgap1.Thermal_Resistance\n", - "\n", - "to remind you, the text file we are reading looks like this::" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " MATERIAL:AIRGAP, \n", - " F04 Wall air space resistance, !- Name\n", - " 0.15; !- Thermal Resistance\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- We are using the field names that come from the idd file\n", - "- A space and other illegal (illegal for python) characters are replaced by an underscore" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is a little tricky tring to use bunch with airgap, because:\n", - "\n", - "- airgap is a list\n", - "- but bunch works on dicts\n", - "\n", - "So we do it in the following way:\n", - "\n", - "- we make a new Bunch from the **airgap** list.\n", - "- The Bunch is made by by doing airgap1 = Bunch( {\"Name\" : \"F04 Wall air space resistance\", \"Thermal_Resistance\" : 0.15} )\n", - "- This will allow us to use the dot notation we see in bunch\n", - "- Of course if we make changes in this Bunch, the **airgap** list does not change\n", - "- Ideally we would like to see the changes reflected in the **airgap** list\n", - "- We subclass Bunch as EpBunch. EpBunch is designed so that changes in EpBunch will make changes to the **airgap** list\n", - "\n", - "*Note:* Some simplifications were made in the explanations above. So take it with a pinch of salt :-)\n", - "\n" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "EpBunch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The code of EpBunch is in eppy/bunch_subclass.py. If you look at the code you will see The subclassing happening in the following manner:\n", - "\n", - "- Bunch -> EpBunch1 -> EpBunch2 -> ..... -> EpBunch5 , where \"Bunch -> EpBunch\" means \"EpBunch subclassed from Bunch\"\n", - "- then EpBunch = EpBunch5\n", - "\n", - "**Question:** Are you demented ? Why don't you just subclass Bunch -> EpBunch ?\n", - "\n", - "**Answer:** One can get demented trying to subclass from dict. This is pretty tricky coding and testing-debugging is difficult, since we are overriding built-in functions of dict. When you make mistakes there, the subclassed dict just stops working, or does very strange things. So I built it in a carefull and incremental way, fully testing before subclassing again. Each subclass implements some functionality and the next one implements more.\n", - "\n", - "**EpBunch** is described in more detail in the next section" - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy.rst b/docs/source/dev_docs/data_eppy.rst deleted file mode 100644 index cf5361cf..00000000 --- a/docs/source/dev_docs/data_eppy.rst +++ /dev/null @@ -1,612 +0,0 @@ - -Underlying Data Structure of eppy -================================= - - -As described in previous sections, eppy was built on EplusInterface - -Let us open a small **idf** file to explore the data structure - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../../' - sys.path.append(pathnameto_eppy) -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../../../eppy/resources/idffiles/V_7_2/dev1.idf" - - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - idf1.printidf() - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - - - -Original Data Structure in EPlusInterface ------------------------------------------ - - -The original data structure in EPlusInterface was stupidly simple and -robust. In fact attributes **stupidly simple** and **robust** seem to go -together. Eppy evolved in such a way that this data structure is still -retained. The rest of eppy is simply `syntactic -sugar `__ for this data -structure. - -from: -https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic\_sugar.html -*"Syntactic sugar is a computer science term that refers to syntax -within a programming language that is designed to make things easier to -read or to express, while alternative ways of expressing them exist. -Syntactic sugar"* - -Let us take a look at this data structure. If we open an idf file with -eppy we can explore the original data structure that comes from -EPlusInterface. - -**Note** The variable names are not very intuitive at this level. I did -not know what I was doing when I wrote this code and now we are stuck -with it - -There are three varaibles that hold all the data we need. They are: - -- ``idf1.model.dtls`` -- ``idf1.model.dt`` -- ``idf1.idd_info`` - - -.. code:: python - - dtls = idf1.model.dtls # names of all the idf objects - dt = idf1.model.dt # the idf model - idd_info = idf1.idd_info # all the idd data -idf1.model.dtls - Overview -~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. code:: python - - dtls = idf1.model.dtls # names of all the idf objects - print type(dtls) - -.. parsed-literal:: - - - - -.. code:: python - - # dtls is a list - print dtls[:10] # print the first ten items - -.. parsed-literal:: - - ['LEAD INPUT', 'SIMULATION DATA', 'VERSION', 'SIMULATIONCONTROL', 'BUILDING', 'SHADOWCALCULATION', 'SURFACECONVECTIONALGORITHM:INSIDE', 'SURFACECONVECTIONALGORITHM:OUTSIDE', 'HEATBALANCEALGORITHM', 'HEATBALANCESETTINGS:CONDUCTIONFINITEDIFFERENCE'] - - -.. code:: python - - print len(dtls) # print the numer of items in the list - -.. parsed-literal:: - - 683 - - -Couple of points to note about ``dtls``: - -- **dtls** is a list of all the names of the Energyplus objects. -- This list is extracted from the the **idd** file -- the list is in the same order as the objects in the **idd** file - - -idf1.model.dt - Overview -~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. code:: python - - dt = idf1.model.dt # the idf model - print type(dt) - -.. parsed-literal:: - - - - -.. code:: python - - # print 10 of the keys - print dt.keys()[:10] - -.. parsed-literal:: - - ['ZONEHVAC:OUTDOORAIRUNIT', 'TABLE:TWOINDEPENDENTVARIABLES', 'ENERGYMANAGEMENTSYSTEM:INTERNALVARIABLE', 'AVAILABILITYMANAGER:NIGHTCYCLE', 'GROUNDHEATTRANSFER:SLAB:BLDGPROPS', 'GENERATOR:MICROTURBINE', 'SHADING:BUILDING:DETAILED', 'EVAPORATIVECOOLER:INDIRECT:RESEARCHSPECIAL', 'ZONEHVAC:PACKAGEDTERMINALAIRCONDITIONER', 'CONSTRUCTION:WINDOWDATAFILE'] - - -.. code:: python - - # dt is a dict - number_of_keys = len(dt.keys()) - print number_of_keys - -.. parsed-literal:: - - 683 - - -- The keys of **dt** are names of the objects (note that they are in - capitals) -- Items in a python dict are unordered. So the keys may be in any order -- **dtls** will give us these names in the same order as they are in - the idd file. -- so use **dtls** if you want the keys in an order - -We'll look at **dt** in further detail later - -idf1.idd\_info - Overview -~~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. code:: python - - idd_info = idf1.idd_info # all the idd data - print type(idd_info) - -.. parsed-literal:: - - - - -.. code:: python - - print len(idd_info) # number of items in the list - -.. parsed-literal:: - - 683 - - -.. code:: python - - # print the first three items - idd_info[:3] - - - -.. parsed-literal:: - - [[{}], - [{}], - [{'format': ['singleLine'], 'unique-object': ['']}, - {'default': ['7.0'], - 'field': ['Version Identifier'], - 'required-field': ['']}]] - - - -.. code:: python - - # print the first three items in seperate lines - for i, item in enumerate(idd_info[:3]): - print "%s. %s" % (i, item) - -.. parsed-literal:: - - 0. [{}] - 1. [{}] - 2. [{'unique-object': [''], 'format': ['singleLine']}, {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}] - - -That does not make much sense. Below is the first 3 items from the idd -file :: - - Lead Input; - - Simulation Data; - - \group Simulation Parameters - - Version, - \unique-object - \format singleLine - A1 ; \field Version Identifier - \required-field - \default 7.0 - - -- If you compare the text file with the sturcture of idd\_info, you can - start to see the similarities -- Note that the idd\_info does not have the object name. -- This was an unfortunate design decision that we are stuck with now - :-(. -- We need to jump through some hoops to get to an item in idd\_info - - -.. code:: python - - # the object "VERSION" is the third item in idd_info - # to get to "VERSION" we need to find it's location in the list - # we use "dtls" to do this - location_of_version = dtls.index("version".upper()) - print location_of_version - -.. parsed-literal:: - - 2 - - -.. code:: python - - # print idd_info of "VERSION" - idd_info[location_of_version] - - - -.. parsed-literal:: - - [{'format': ['singleLine'], 'unique-object': ['']}, - {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}] - - - -**NOTE:** - -- the idd file is very large and uses a lot of memory when pulled into - idd\_info -- only one copy of idd\_info is kept when eppy is running. -- This is the reason, eppy throws an exception when you try to set the - idd file when it has already been set - - -idf1.model.dt - in detail -~~~~~~~~~~~~~~~~~~~~~~~~~ - - -Let us look at a specific object, say **MATERIAL:AIRGAP** in -idf1.model.dt - -.. code:: python - - dt = idf1.model.dt -.. code:: python - - airgaps = dt['MATERIAL:AIRGAP'.upper()] - print type(airgaps) - -.. parsed-literal:: - - - - -.. code:: python - - airgaps - - - -.. parsed-literal:: - - [['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] - - - -A snippet of the **idf** text file shows this :: - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - -Notice the following things about idf1.model.dt: - -- The idf model is held within a dict. -- the keys in the dict are names of the IDF objects in caps, such as - BUILDING, VERSION, CONSTRUCTION, MATERIAL:AIRGAP etc. -- The values in the dict are lists -- the list contains lists. This means that **airgaps** can contain more - than one airgap. -- So airgaps = [airgap1, airgap2, ... ]. -- where, airgaps1 = [Type\_of\_Object, field1, field2, field3, .... ] -- In airgaps1, all types have been converted. Note that "Thermal - Resistance" is a float and not a string - - -What about an Energyplus object that does not exist in the idf file ? - -.. code:: python - - roofs = dt['ROOF'] - print roofs - -.. parsed-literal:: - - [] - - -You get an empty list, meaning there are no roof items within roofs - -idf1.idd\_info - in detail -~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -Let us find the idd\_info for airgaps - -.. code:: python - - location_of_airgaps = dtls.index("material:airgap".upper()) - print location_of_airgaps - -.. parsed-literal:: - - 50 - - -.. code:: python - - idd_airgaps = idd_info[location_of_airgaps] - idd_airgaps - - - -.. parsed-literal:: - - [{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']}, - {'field': ['Name'], - 'reference': ['MaterialName'], - 'required-field': [''], - 'type': ['alpha']}, - {'field': ['Thermal Resistance'], - 'minimum>': ['0'], - 'type': ['real'], - 'units': ['m2-K/W']}] - - - -Compare to text in idd file:: - - Material:AirGap, - \min-fields 2 - \memo Air Space in Opaque Construction - A1 , \field Name - \required-field - \type alpha - \reference MaterialName - N1 ; \field Thermal Resistance - \units m2-K/W - \type real - \minimum> 0 - -- idd\_airgaps gives details about each field -- the last field N1 says that *type = real* -- This tells us that the text value coming from the the test file has - to be converted to a float - - -Syntactic Sugar ---------------- - - -from: -https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Syntactic\_sugar.html -*"Syntactic sugar is a computer science term that refers to syntax -within a programming language that is designed to make things easier to -read or to express, while alternative ways of expressing them exist"* - -Wikipedia article on `syntactic -sugar `__ - -**All the rest of the code in eppy is simply syntactic sugar over the -data structure in model.dtls, model.dt and idd\_info** - -Of course, the above statement is a gross exageration, but it gives you -a basis for understanding the code that comes later. At the end of the -day, any further code is simply a means for changing the data within -model.dt. And you need to access the data within model.dtls and -idd\_info to do so. - -Bunch -~~~~~ - - -Bunch is a great library that subclasses dict. You can see it at: - -- https://pypi.python.org/pypi/bunch/1.0.1 -- https://github.com/dsc/bunch - -Let us first take a look at a dict - -.. code:: python - - adict = {'a':1, 'b':2, 'c':3} - adict - - - -.. parsed-literal:: - - {'a': 1, 'b': 2, 'c': 3} - - - -.. code:: python - - # one would access the values in this dict by: - print adict - print adict['a'] - print adict['b'] - print adict['c'] - -.. parsed-literal:: - - {'a': 1, 'c': 3, 'b': 2} - 1 - 2 - 3 - - -Bunch allows us to do this with a lot less typing - -.. code:: python - - from bunch import Bunch - bunchdict = Bunch(adict) - print bunchdict - print bunchdict.a - print bunchdict.b - print bunchdict.c - -.. parsed-literal:: - - Bunch(a=1, b=2, c=3) - 1 - 2 - 3 - - -Let us take a look at variable **airgaps** from the previous section. - -.. code:: python - - airgaps - - - -.. parsed-literal:: - - [['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] - - - -.. code:: python - - airgap1, airgap2 = airgaps[0], airgaps[1] -.. code:: python - - airgap1 - - - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - - - -We are going to subclass bunch so that we can do the following to -**airgap1** from the previous section: - -- airgap1.Name -- airgap1.Thermal\_Resistance - -to remind you, the text file we are reading looks like this:: - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - -- We are using the field names that come from the idd file -- A space and other illegal (illegal for python) characters are - replaced by an underscore - - -It is a little tricky tring to use bunch with airgap, because: - -- airgap is a list -- but bunch works on dicts - -So we do it in the following way: - -- we make a new Bunch from the **airgap** list. -- The Bunch is made by by doing airgap1 = Bunch( {"Name" : "F04 Wall - air space resistance", "Thermal\_Resistance" : 0.15} ) -- This will allow us to use the dot notation we see in bunch -- Of course if we make changes in this Bunch, the **airgap** list does - not change -- Ideally we would like to see the changes reflected in the **airgap** - list -- We subclass Bunch as EpBunch. EpBunch is designed so that changes in - EpBunch will make changes to the **airgap** list - -*Note:* Some simplifications were made in the explanations above. So -take it with a pinch of salt :-) - -EpBunch -~~~~~~~ - - -The code of EpBunch is in eppy/bunch\_subclass.py. If you look at the -code you will see The subclassing happening in the following manner: - -- Bunch -> EpBunch1 -> EpBunch2 -> ..... -> EpBunch5 , where "Bunch -> - EpBunch" means "EpBunch subclassed from Bunch" -- then EpBunch = EpBunch5 - -**Question:** Are you demented ? Why don't you just subclass Bunch -> -EpBunch ? - -**Answer:** One can get demented trying to subclass from dict. This is -pretty tricky coding and testing-debugging is difficult, since we are -overriding built-in functions of dict. When you make mistakes there, the -subclassed dict just stops working, or does very strange things. So I -built it in a carefull and incremental way, fully testing before -subclassing again. Each subclass implements some functionality and the -next one implements more. - -**EpBunch** is described in more detail in the next section diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_10_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_10_0.text deleted file mode 100644 index 8d4dc34e..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_10_0.text +++ /dev/null @@ -1 +0,0 @@ -['LEAD INPUT', 'SIMULATION DATA', 'VERSION', 'SIMULATIONCONTROL', 'BUILDING', 'SHADOWCALCULATION', 'SURFACECONVECTIONALGORITHM:INSIDE', 'SURFACECONVECTIONALGORITHM:OUTSIDE', 'HEATBALANCEALGORITHM', 'HEATBALANCESETTINGS:CONDUCTIONFINITEDIFFERENCE'] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_11_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_11_0.text deleted file mode 100644 index 8ec1add5..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_11_0.text +++ /dev/null @@ -1 +0,0 @@ -683 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_12_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_12_0.text deleted file mode 100644 index 35ae5747..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_12_0.text +++ /dev/null @@ -1 +0,0 @@ -[['BUILDING', 'Empire State Building', 30.0, 'City', 0.04, 0.4, 'FullExterior', 25, 6]] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_14_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_14_0.text deleted file mode 100644 index 93c15fb3..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_14_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_15_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_15_0.text deleted file mode 100644 index eac3494e..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_15_0.text +++ /dev/null @@ -1 +0,0 @@ -['ZONEHVAC:OUTDOORAIRUNIT', 'TABLE:TWOINDEPENDENTVARIABLES', 'ENERGYMANAGEMENTSYSTEM:INTERNALVARIABLE', 'AVAILABILITYMANAGER:NIGHTCYCLE', 'GROUNDHEATTRANSFER:SLAB:BLDGPROPS', 'GENERATOR:MICROTURBINE', 'SHADING:BUILDING:DETAILED', 'EVAPORATIVECOOLER:INDIRECT:RESEARCHSPECIAL', 'ZONEHVAC:PACKAGEDTERMINALAIRCONDITIONER', 'CONSTRUCTION:WINDOWDATAFILE'] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_16_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_16_0.text deleted file mode 100644 index 8ec1add5..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_16_0.text +++ /dev/null @@ -1 +0,0 @@ -683 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_17_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_17_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_17_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_18_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_18_0.text deleted file mode 100644 index 8f65a655..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_18_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_19_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_19_0.text deleted file mode 100644 index 8f65a655..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_19_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_20_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_20_0.text deleted file mode 100644 index 8ec1add5..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_20_0.text +++ /dev/null @@ -1 +0,0 @@ -683 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_21_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_21_0.text deleted file mode 100644 index bdeaf95a..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_21_0.text +++ /dev/null @@ -1,6 +0,0 @@ -[[{}], - [{}], - [{'format': ['singleLine'], 'unique-object': ['']}, - {'default': ['7.0'], - 'field': ['Version Identifier'], - 'required-field': ['']}]] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_22_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_22_0.text deleted file mode 100644 index e6826aad..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_22_0.text +++ /dev/null @@ -1,3 +0,0 @@ -0. [{}] -1. [{}] -2. [{'unique-object': [''], 'format': ['singleLine']}, {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_24_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_24_0.text deleted file mode 100644 index 0cfbf088..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_24_0.text +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_25_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_25_0.text deleted file mode 100644 index 0cfbf088..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_25_0.text +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_26_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_26_0.text deleted file mode 100644 index 0cfbf088..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_26_0.text +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_27_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_27_0.text deleted file mode 100644 index 3f245d74..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_27_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[{'format': ['singleLine'], 'unique-object': ['']}, - {'default': ['7.0'], 'field': ['Version Identifier'], 'required-field': ['']}] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_29_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_29_0.text deleted file mode 100644 index 35ae5747..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_29_0.text +++ /dev/null @@ -1 +0,0 @@ -[['BUILDING', 'Empire State Building', 30.0, 'City', 0.04, 0.4, 'FullExterior', 25, 6]] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_30_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_30_0.text deleted file mode 100644 index 35ae5747..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_30_0.text +++ /dev/null @@ -1 +0,0 @@ -[['BUILDING', 'Empire State Building', 30.0, 'City', 0.04, 0.4, 'FullExterior', 25, 6]] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_31_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_31_0.text deleted file mode 100644 index 8f65a655..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_31_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_32_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_32_0.text deleted file mode 100644 index 8f65a655..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_32_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_33_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_33_0.text deleted file mode 100644 index 83a51c9f..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_33_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_34_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_34_0.text deleted file mode 100644 index 94241809..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_34_0.text +++ /dev/null @@ -1,2 +0,0 @@ -['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] -['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_35_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_35_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_35_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_36_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_36_0.text deleted file mode 100644 index ba9c258a..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_36_0.text +++ /dev/null @@ -1 +0,0 @@ -[['VERSION', '7.3']] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_37_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_37_0.text deleted file mode 100644 index ca34d7ca..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_37_0.text +++ /dev/null @@ -1,10 +0,0 @@ -['ZONEAIRHEATBALANCEALGORITHM', - 'ZONEAIRCONTAMINANTBALANCE', - 'ZONECAPACITANCEMULTIPLIER:RESEARCHSPECIAL', - 'TIMESTEP', - 'CONVERGENCELIMITS', - 'PROGRAMCONTROL', - 'COMPLIANCE:BUILDING', - 'SITE:LOCATION', - 'SIZINGPERIOD:DESIGNDAY', - 'SIZINGPERIOD:WEATHERFILEDAYS'] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_38_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_38_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_38_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_39_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_39_0.text deleted file mode 100644 index fe51488c..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_39_0.text +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_40_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_40_0.text deleted file mode 100644 index bf0d87ab..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_40_0.text +++ /dev/null @@ -1 +0,0 @@ -4 \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_41_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_41_0.text deleted file mode 100644 index e373ee69..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_41_0.text +++ /dev/null @@ -1 +0,0 @@ -50 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_42_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_42_0.text deleted file mode 100644 index e373ee69..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_42_0.text +++ /dev/null @@ -1 +0,0 @@ -50 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_43_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_43_0.text deleted file mode 100644 index 7e494474..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_43_0.text +++ /dev/null @@ -1,9 +0,0 @@ -[{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']}, - {'field': ['Name'], - 'reference': ['MaterialName'], - 'required-field': [''], - 'type': ['alpha']}, - {'field': ['Thermal Resistance'], - 'minimum>': ['0'], - 'type': ['real'], - 'units': ['m2-K/W']}] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_44_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_44_0.text deleted file mode 100644 index 3eacba1f..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_44_0.text +++ /dev/null @@ -1,3 +0,0 @@ -{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']} -{'field': ['Name'], 'type': ['alpha'], 'reference': ['MaterialName'], 'required-field': ['']} -{'units': ['m2-K/W'], 'field': ['Thermal Resistance'], 'minimum>': ['0'], 'type': ['real']} diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_4_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_4_0.text deleted file mode 100644 index 77a9a954..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_4_0.text +++ /dev/null @@ -1,36 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - -MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - -MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_51_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_51_0.text deleted file mode 100644 index de027b6f..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_51_0.text +++ /dev/null @@ -1 +0,0 @@ -{'a': 1, 'b': 2, 'c': 3} \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_52_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_52_0.text deleted file mode 100644 index caead7f1..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_52_0.text +++ /dev/null @@ -1,4 +0,0 @@ -{'a': 1, 'c': 3, 'b': 2} -1 -2 -3 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_54_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_54_0.text deleted file mode 100644 index 03c36723..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_54_0.text +++ /dev/null @@ -1,4 +0,0 @@ -Bunch(a=1, b=2, c=3) -1 -2 -3 diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_56_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_56_0.text deleted file mode 100644 index 83a51c9f..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_56_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_58_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_58_0.text deleted file mode 100644 index b5002f77..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_58_0.text +++ /dev/null @@ -1 +0,0 @@ -['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] \ No newline at end of file diff --git a/docs/source/dev_docs/data_eppy_files/data_eppy_9_0.text b/docs/source/dev_docs/data_eppy_files/data_eppy_9_0.text deleted file mode 100644 index 8f65a655..00000000 --- a/docs/source/dev_docs/data_eppy_files/data_eppy_9_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/dev_docs/doc_eppy.rst b/docs/source/dev_docs/doc_eppy.rst deleted file mode 100644 index 73d5251b..00000000 --- a/docs/source/dev_docs/doc_eppy.rst +++ /dev/null @@ -1,17 +0,0 @@ -Documenting eppy -================ - -Sphinx is used to document eppy. Sphinx uses restructured text (*.rst) to build up the documentation. Some of the documentation is done directly in restructured text files. In other cases ipython notebooks are used to generate the restructured text files. - -This documentation is incomplete. - -When completed it will list the steps needed to let you to add to the documentation and then generate the html files - -Restructured text ------------------ - -Ipython notebook ----------------- - -Sphinx ------- \ No newline at end of file diff --git a/docs/source/dev_docs/epbunch.ipynb b/docs/source/dev_docs/epbunch.ipynb deleted file mode 100644 index 94436b41..00000000 --- a/docs/source/dev_docs/epbunch.ipynb +++ /dev/null @@ -1,921 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "EpBunch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - ":Author: Santosh Philip. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "EpBunch is at the heart of what makes eppy easy to use. Specifically Epbunch is what allows us to use the syntax `building.Name` and `building.North_Axis`. Some advanced coding had to be done to make this happen. Coding that would be easy for professional programmers, but not for us ordinary folk :-(\n", - "\n", - "Most of us who are going to be coding eppy are not professional programmers. I was completely out of my depth when I did this coding. I had the code reviewed by programmers who do this for a living (at python meetups in the Bay Area). In their opinion, I was not doing anything fundamentally wrong.\n", - "\n", - "Below is a fairly long explanation, to ease you into the code. Read through the whole thing without trying to understand every detail, just getting a birds eye veiw of the explanation. Then read it again, you will start to grok some of the details. All the code here is working code, so you can experiment with it." - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Magic Methods (Dunders) of Python" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To understand how EpBunch or Bunch is coded, one has to have an understanding of the magic methods of Python. (For a background on magic methods, take a look at http://www.rafekettler.com/magicmethods.html) Let us dive straight into this with some examples" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "adict = dict(a=10, b=20) # create a dictionary\n", - "print adict\n", - "print adict['a']\n", - "print adict['b']" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "{'a': 10, 'b': 20}\n", - "10\n", - "20\n" - ] - } - ], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What happens when we say d['a'] ?\n", - "\n", - "This is where the magic methods come in. Magic methods are methods that work behind the scenes and do some magic. So when we say d['a'], The dict is calling the method `__getitem__('a')`. \n", - "\n", - "Magic methods have a *double underscore* \"`__`\", called **dunder** methods for short\n", - "\n", - "Let us override that method and see what happens." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "class Funnydict(dict): # we are subclassing dict here\n", - " def __getitem__(self, key):\n", - " value = super(Funnydict, self).__getitem__(key)\n", - " return \"key = %s, value = %s\" % (key, value)\n", - "\n", - "funny = Funnydict(dict(a=10, b=20)) \n", - "print funny" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "{'a': 10, 'b': 20}\n" - ] - } - ], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The print worked as expected. Now let us try to print the values" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print funny['a']\n", - "print funny['b']" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "key = a, value = 10\n", - "key = b, value = 20\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that worked very differently from a dict \n", - "\n", - "So it is true, funny['a'] does call `__getitem__()` that we just wrote\n", - "\n", - "Let us go back to the variable **adict**" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# to jog our memory\n", - "print adict" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "{'a': 10, 'b': 20}\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# this should not work\n", - "print adict.a" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'dict' object has no attribute 'a'", - "output_type": "pyerr", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# this should not work\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0madict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m: 'dict' object has no attribute 'a'" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What method gets called when we say **adict.a** ?\n", - "\n", - "The magic method here is `__getattr__`() and `__setattr__()`. Shall we override them and see if we can get the dot notation to work ?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "class Like_bunch(dict):\n", - " def __getattr__(self, name):\n", - " return self[name]\n", - " def __setattr__(self, name, value):\n", - " self[name] = value\n", - "\n", - "lbunch = Like_bunch(dict(a=10, b=20))\n", - "print lbunch" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "{'a': 10, 'b': 20}\n" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Works like a dict so far. How about **lbunch.a** ?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print lbunch.a\n", - "print lbunch.b" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "10\n", - "20\n" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Yipeee !!! I works\n", - "\n", - "How about `lbunch.nota = 100`" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "lbunch.anot = 100\n", - "print lbunch.anot" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "All good here. But don't trust the code above too much. It was simply done as a demonstration of **dunder** methods and is not fully tested.\n", - "\n", - "Eppy uses the bunch library to do something similar. You can read more about the bunch library in the previous section." - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Open an IDF file" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once again let us open a small idf file to test." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# you would normaly install eppy by doing\n", - "# python setup.py install\n", - "# or\n", - "# pip install eppy\n", - "# or\n", - "# easy_install eppy\n", - "\n", - "# if you have not done so, uncomment the following three lines\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../../../'\n", - "sys.path.append(pathnameto_eppy)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy import modeleditor\n", - "from eppy.modeleditor import IDF\n", - "iddfile = \"../../../eppy/resources/iddfiles/Energy+V7_2_0.idd\"\n", - "fname1 = \"../../../eppy/resources/idffiles/V_7_2/dev1.idf\"\n", - "\n", - "IDF.setiddname(iddfile)\n", - "idf1 = IDF(fname1)\n", - "idf1.printidf()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n", - "VERSION, \n", - " 7.3; !- Version Identifier\n", - "\n", - "SIMULATIONCONTROL, \n", - " Yes, !- Do Zone Sizing Calculation\n", - " Yes, !- Do System Sizing Calculation\n", - " Yes, !- Do Plant Sizing Calculation\n", - " No, !- Run Simulation for Sizing Periods\n", - " Yes; !- Run Simulation for Weather File Run Periods\n", - "\n", - "BUILDING, \n", - " Empire State Building, !- Name\n", - " 30.0, !- North Axis\n", - " City, !- Terrain\n", - " 0.04, !- Loads Convergence Tolerance Value\n", - " 0.4, !- Temperature Convergence Tolerance Value\n", - " FullExterior, !- Solar Distribution\n", - " 25, !- Maximum Number of Warmup Days\n", - " 6; !- Minimum Number of Warmup Days\n", - "\n", - "SITE:LOCATION, \n", - " CHICAGO_IL_USA TMY2-94846, !- Name\n", - " 41.78, !- Latitude\n", - " -87.75, !- Longitude\n", - " -6.0, !- Time Zone\n", - " 190.0; !- Elevation\n", - "\n", - "MATERIAL:AIRGAP, \n", - " F04 Wall air space resistance, !- Name\n", - " 0.15; !- Thermal Resistance\n", - "\n", - "MATERIAL:AIRGAP, \n", - " F05 Ceiling air space resistance, !- Name\n", - " 0.18; !- Thermal Resistance\n", - "\n" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dtls = idf1.model.dtls\n", - "dt = idf1.model.dt\n", - "idd_info = idf1.idd_info" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 11 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dt['MATERIAL:AIRGAP']" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 12, - "text": [ - "[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15],\n", - " ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]]" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "obj_i = dtls.index('MATERIAL:AIRGAP')\n", - "obj_idd = idd_info[obj_i]\n", - "obj_idd" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "[{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']},\n", - " {'field': ['Name'],\n", - " 'reference': ['MaterialName'],\n", - " 'required-field': [''],\n", - " 'type': ['alpha']},\n", - " {'field': ['Thermal Resistance'],\n", - " 'minimum>': ['0'],\n", - " 'type': ['real'],\n", - " 'units': ['m2-K/W']}]" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For the rest of this section let us look at only one airgap object" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "airgap = dt['MATERIAL:AIRGAP'][0]\n", - "airgap" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 14, - "text": [ - "['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Subclassing of Bunch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us review our knowledge of bunch" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from bunch import Bunch\n", - "adict = {'a':1, 'b':2, 'c':3}\n", - "bunchdict = Bunch(adict)\n", - "print bunchdict\n", - "print bunchdict.a\n", - "print bunchdict.b\n", - "print bunchdict.c" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Bunch(a=1, b=2, c=3)\n", - "1\n", - "2\n", - "3\n" - ] - } - ], - "prompt_number": 15 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Bunch lets us use dot notation on the keys of a dictionary. We need to find a way of making `airgap.Name` work. This is not straightforward because, airgap is **list** and Bunch works on **dicts**. It would be easy if airgap was in the form `{'Name' : 'F04 Wall air space resistance', 'Thermal Resistance' : 0.15}`. \n", - "\n", - "The rest of this section is a simplified version of how EpBunch works. " - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "class EpBunch(Bunch):\n", - " def __init__(self, obj, objls, objidd, *args, **kwargs):\n", - " super(EpBunch, self).__init__(*args, **kwargs)\n", - " self.obj = obj\n", - " self.objls = objls\n", - " self.objidd = objidd" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 16 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above code shows how EpBunch is initialized. Three variables are passed to EpBunch to initialize it. They are `obj, objls, objidd`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "obj = airgap\n", - "objls = ['key', 'Name', 'Thermal_Resistance'] # a function extracts this from idf1.idd_info\n", - "objidd = obj_idd\n", - "#\n", - "print obj\n", - "print objls\n", - "# let us ignore objidd for now" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]\n", - "['key', 'Name', 'Thermal_Resistance']\n" - ] - } - ], - "prompt_number": 17 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we override `__setattr__()` and `__getattr__()` in the following way" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "class EpBunch(Bunch):\n", - " def __init__(self, obj, objls, objidd, *args, **kwargs):\n", - " super(EpBunch, self).__init__(*args, **kwargs)\n", - " self.obj = obj\n", - " self.objls = objls\n", - " self.objidd = objidd\n", - " \n", - " def __getattr__(self, name):\n", - " if name in ('obj', 'objls', 'objidd'):\n", - " return super(EpBunch, self).__getattr__(name)\n", - " i = self.objls.index(name)\n", - " return self.obj[i]\n", - "\n", - " def __setattr__(self, name, value):\n", - " if name in ('obj', 'objls', 'objidd'):\n", - " super(EpBunch, self).__setattr__(name, value)\n", - " return None\n", - " i = self.objls.index(name)\n", - " self.obj[i] = value\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Let us create a EpBunch object\n", - "bunch_airgap = EpBunch(obj, objls, objidd)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 19 - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " # Use this table to see how __setattr__ and __getattr__ work in EpBunch\n", - "\n", - " obj = ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15 ]\n", - " objls = ['key', 'Name', 'Thermal_Resistance']\n", - " i = 0 1 2" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print bunch_airgap.Name\n", - "print bunch_airgap.Thermal_Resistance" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "F04 Wall air space resistance\n", - "0.15\n" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print bunch_airgap.obj" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15]\n" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us change some values using the dot notation" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "bunch_airgap.Name = 'Argon in gap'" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 22 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print bunch_airgap.Name" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Argon in gap\n" - ] - } - ], - "prompt_number": 23 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print bunch_airgap.obj" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "['MATERIAL:AIRGAP', 'Argon in gap', 0.15]\n" - ] - } - ], - "prompt_number": 24 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using the dot notation the value is changed in the list\n", - "\n", - "Let us make sure it actually has done that." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "idf1.model.dt['MATERIAL:AIRGAP'][0]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 25, - "text": [ - "['MATERIAL:AIRGAP', 'Argon in gap', 0.15]" - ] - } - ], - "prompt_number": 25 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`EpBunch` acts as a wrapper around `idf1.model.dt['MATERIAL:AIRGAP'][0]`\n", - "\n", - "In other words `EpBunch` is just **Syntactic Sugar** for `idf1.model.dt['MATERIAL:AIRGAP'][0]`" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Variables and Names in Python" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "At this point your reaction may, \"I don't see how all those values in `idf1.model.dt` changed\". If such question arises in your mind, you need to read the following:\n", - "\n", - "- [Other languages have 'variables'](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables)\n", - "- [Python has 'names'](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#python-has-names)\n", - "- Also see [Facts and myths about Python names and values](http://nedbatchelder.com/text/names.html)\n", - "\n", - "This is especially important if you are experienced in other languages, and you expect the behavior to be a little different. Actually follow and read those links in any case.\n" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Continuing with EpBunch" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "EpBunch_1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The code for EpBunch in the earlier section will work, but has been simplified for clarity. In file `bunch_subclass.py` take a look at the class **EpBunch_1** . This class does the first override of `__setattr__` and `__getattr__`. You will see that the code is a little more involved, dealing with edge conditions and catching exceptions.\n", - "\n", - "**EpBunch_1** also defines `__repr__`. This lets you print EpBunch in a human readable format. Further research indicates that `__str__` should have been used to do this, not `__repr__` :-(" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "EpBunch_2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`EpBunch_2` is subclassed from `EpBunch_1`. \n", - "\n", - "It overrides `__setattr__` and `__getattr__` to add a small functionality that has not been documented or used. The idea was to give the ability to shorten field names with alias. So `building.Maximum_Number_of_Warmup_Days` could be made into `building.warmupdays`. \n", - "\n", - "I seemed like a good idea when I wrote it. Ignore it for now, although it may make a comeback :-)" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "EpBunch_3" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`EpBunch_3` is subclassed from `EpBunch_2`.\n", - "\n", - "EpBunch_3 adds the ability to add functions to EpBunch objects. This would allow the object to make calculations using data within the object. So `BuildingSurface:Detailed` object has all the geometry data of the object. The function 'area' will let us calculate the are of the object even though area is not a field in `BuildingSurface:Detailed`.\n", - "\n", - "So you can call `idf1.idfobjects[\"BuildingSurface:Detailed\"][0].area` and get the area of the surface.\n", - "\n", - "At the moment, the functions can use only data within the object for it's calculation. We need to extend this functionality so that calculations can be done using data outside the object. This would be useful in calculating the volume of a Zone. Such a calculation would need data from the surfaces that the aone refers to.\n" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "EpBunch_4" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`EpBunch_4` is subclassed from `EpBunch_3`.\n", - "\n", - "`EpBunch_4` overrides `_setitem__` and `__getitem__`. Right now `airgap.Name` works. This update allows `airgap[\"Name\"]` to work correctly too" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "EpBunch_5" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`EpBunch_5` is subclassed from `EpBunch_4`.\n", - "\n", - "`EpBunch_5` adds functions that allows you to call functions `getrange` and `checkrange` for a field\n" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Finally EpBunch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`EpBunch = EpBunch_5`\n", - "\n", - "Finally `EpBunch_5` is named as EpBunch. So the rest of the code uses EpBunch and in effect it uses `Epbunch_5`" - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/docs/source/dev_docs/epbunch.rst b/docs/source/dev_docs/epbunch.rst deleted file mode 100644 index 4214653f..00000000 --- a/docs/source/dev_docs/epbunch.rst +++ /dev/null @@ -1,562 +0,0 @@ - -EpBunch -======= - - -:Author: Santosh Philip. - -EpBunch is at the heart of what makes eppy easy to use. Specifically -Epbunch is what allows us to use the syntax ``building.Name`` and -``building.North_Axis``. Some advanced coding had to be done to make -this happen. Coding that would be easy for professional programmers, but -not for us ordinary folk :-( - -Most of us who are going to be coding eppy are not professional -programmers. I was completely out of my depth when I did this coding. I -had the code reviewed by programmers who do this for a living (at python -meetups in the Bay Area). In their opinion, I was not doing anything -fundamentally wrong. - -Below is a fairly long explanation, to ease you into the code. Read -through the whole thing without trying to understand every detail, just -getting a birds eye veiw of the explanation. Then read it again, you -will start to grok some of the details. All the code here is working -code, so you can experiment with it. - -Magic Methods (Dunders) of Python ---------------------------------- - - -To understand how EpBunch or Bunch is coded, one has to have an -understanding of the magic methods of Python. (For a background on magic -methods, take a look at http://www.rafekettler.com/magicmethods.html) -Let us dive straight into this with some examples - -.. code:: python - - adict = dict(a=10, b=20) # create a dictionary - print adict - print adict['a'] - print adict['b'] - -.. parsed-literal:: - - {'a': 10, 'b': 20} - 10 - 20 - - -What happens when we say d['a'] ? - -This is where the magic methods come in. Magic methods are methods that -work behind the scenes and do some magic. So when we say d['a'], The -dict is calling the method ``__getitem__('a')``. - -Magic methods have a *double underscore* "``__``\ ", called **dunder** -methods for short - -Let us override that method and see what happens. - -.. code:: python - - class Funnydict(dict): # we are subclassing dict here - def __getitem__(self, key): - value = super(Funnydict, self).__getitem__(key) - return "key = %s, value = %s" % (key, value) - - funny = Funnydict(dict(a=10, b=20)) - print funny - -.. parsed-literal:: - - {'a': 10, 'b': 20} - - -The print worked as expected. Now let us try to print the values - -.. code:: python - - print funny['a'] - print funny['b'] - -.. parsed-literal:: - - key = a, value = 10 - key = b, value = 20 - - -Now that worked very differently from a dict - -So it is true, funny['a'] does call ``__getitem__()`` that we just wrote - -Let us go back to the variable **adict** - -.. code:: python - - # to jog our memory - print adict - -.. parsed-literal:: - - {'a': 10, 'b': 20} - - -.. code:: python - - # this should not work - print adict.a - -:: - - - --------------------------------------------------------------------------- - AttributeError Traceback (most recent call last) - - in () - 1 # this should not work - ----> 2 print adict.a - - - AttributeError: 'dict' object has no attribute 'a' - - -What method gets called when we say **adict.a** ? - -The magic method here is ``__getattr__``\ () and ``__setattr__()``. -Shall we override them and see if we can get the dot notation to work ? - -.. code:: python - - class Like_bunch(dict): - def __getattr__(self, name): - return self[name] - def __setattr__(self, name, value): - self[name] = value - - lbunch = Like_bunch(dict(a=10, b=20)) - print lbunch - -.. parsed-literal:: - - {'a': 10, 'b': 20} - - -Works like a dict so far. How about **lbunch.a** ? - -.. code:: python - - print lbunch.a - print lbunch.b - -.. parsed-literal:: - - 10 - 20 - - -Yipeee !!! I works - -How about ``lbunch.nota = 100`` - -.. code:: python - - lbunch.anot = 100 - print lbunch.anot - -.. parsed-literal:: - - 100 - - -All good here. But don't trust the code above too much. It was simply -done as a demonstration of **dunder** methods and is not fully tested. - -Eppy uses the bunch library to do something similar. You can read more -about the bunch library in the previous section. - -Open an IDF file ----------------- - - -Once again let us open a small idf file to test. - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../../' - sys.path.append(pathnameto_eppy) -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../../../eppy/resources/idffiles/V_7_2/dev1.idf" - - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - idf1.printidf() - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - - MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - - - -.. code:: python - - dtls = idf1.model.dtls - dt = idf1.model.dt - idd_info = idf1.idd_info -.. code:: python - - dt['MATERIAL:AIRGAP'] - - - -.. parsed-literal:: - - [['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] - - - -.. code:: python - - obj_i = dtls.index('MATERIAL:AIRGAP') - obj_idd = idd_info[obj_i] - obj_idd - - - -.. parsed-literal:: - - [{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']}, - {'field': ['Name'], - 'reference': ['MaterialName'], - 'required-field': [''], - 'type': ['alpha']}, - {'field': ['Thermal Resistance'], - 'minimum>': ['0'], - 'type': ['real'], - 'units': ['m2-K/W']}] - - - -For the rest of this section let us look at only one airgap object - -.. code:: python - - airgap = dt['MATERIAL:AIRGAP'][0] - airgap - - - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - - - -Subclassing of Bunch --------------------- - - -Let us review our knowledge of bunch - -.. code:: python - - from bunch import Bunch - adict = {'a':1, 'b':2, 'c':3} - bunchdict = Bunch(adict) - print bunchdict - print bunchdict.a - print bunchdict.b - print bunchdict.c - -.. parsed-literal:: - - Bunch(a=1, b=2, c=3) - 1 - 2 - 3 - - -Bunch lets us use dot notation on the keys of a dictionary. We need to -find a way of making ``airgap.Name`` work. This is not straightforward -because, airgap is **list** and Bunch works on **dicts**. It would be -easy if airgap was in the form -``{'Name' : 'F04 Wall air space resistance', 'Thermal Resistance' : 0.15}``. - -The rest of this section is a simplified version of how EpBunch works. - -.. code:: python - - class EpBunch(Bunch): - def __init__(self, obj, objls, objidd, *args, **kwargs): - super(EpBunch, self).__init__(*args, **kwargs) - self.obj = obj - self.objls = objls - self.objidd = objidd -The above code shows how EpBunch is initialized. Three variables are -passed to EpBunch to initialize it. They are ``obj, objls, objidd``. - -.. code:: python - - obj = airgap - objls = ['key', 'Name', 'Thermal_Resistance'] # a function extracts this from idf1.idd_info - objidd = obj_idd - # - print obj - print objls - # let us ignore objidd for now - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - ['key', 'Name', 'Thermal_Resistance'] - - -Now we override ``__setattr__()`` and ``__getattr__()`` in the following -way - -.. code:: python - - class EpBunch(Bunch): - def __init__(self, obj, objls, objidd, *args, **kwargs): - super(EpBunch, self).__init__(*args, **kwargs) - self.obj = obj - self.objls = objls - self.objidd = objidd - - def __getattr__(self, name): - if name in ('obj', 'objls', 'objidd'): - return super(EpBunch, self).__getattr__(name) - i = self.objls.index(name) - return self.obj[i] - - def __setattr__(self, name, value): - if name in ('obj', 'objls', 'objidd'): - super(EpBunch, self).__setattr__(name, value) - return None - i = self.objls.index(name) - self.obj[i] = value - -.. code:: python - - # Let us create a EpBunch object - bunch_airgap = EpBunch(obj, objls, objidd) - # Use this table to see how __setattr__ and __getattr__ work in EpBunch - - obj = ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15 ] - objls = ['key', 'Name', 'Thermal_Resistance'] - i = 0 1 2 - -.. code:: python - - print bunch_airgap.Name - print bunch_airgap.Thermal_Resistance - -.. parsed-literal:: - - F04 Wall air space resistance - 0.15 - - -.. code:: python - - print bunch_airgap.obj - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] - - -Let us change some values using the dot notation - -.. code:: python - - bunch_airgap.Name = 'Argon in gap' -.. code:: python - - print bunch_airgap.Name - -.. parsed-literal:: - - Argon in gap - - -.. code:: python - - print bunch_airgap.obj - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'Argon in gap', 0.15] - - -Using the dot notation the value is changed in the list - -Let us make sure it actually has done that. - -.. code:: python - - idf1.model.dt['MATERIAL:AIRGAP'][0] - - - -.. parsed-literal:: - - ['MATERIAL:AIRGAP', 'Argon in gap', 0.15] - - - -``EpBunch`` acts as a wrapper around -``idf1.model.dt['MATERIAL:AIRGAP'][0]`` - -In other words ``EpBunch`` is just **Syntactic Sugar** for -``idf1.model.dt['MATERIAL:AIRGAP'][0]`` - -Variables and Names in Python ------------------------------ - - -At this point your reaction may, "I don't see how all those values in -``idf1.model.dt`` changed". If such question arises in your mind, you -need to read the following: - -- `Other languages have - 'variables' `__ -- `Python has - 'names' `__ -- Also see `Facts and myths about Python names and - values `__ - -This is especially important if you are experienced in other languages, -and you expect the behavior to be a little different. Actually follow -and read those links in any case. - -Continuing with EpBunch ------------------------ - - -EpBunch\_1 -~~~~~~~~~~ - - -The code for EpBunch in the earlier section will work, but has been -simplified for clarity. In file ``bunch_subclass.py`` take a look at the -class **EpBunch\_1** . This class does the first override of -``__setattr__`` and ``__getattr__``. You will see that the code is a -little more involved, dealing with edge conditions and catching -exceptions. - -**EpBunch\_1** also defines ``__repr__``. This lets you print EpBunch in -a human readable format. Further research indicates that ``__str__`` -should have been used to do this, not ``__repr__`` :-( - -EpBunch\_2 -~~~~~~~~~~ - - -``EpBunch_2`` is subclassed from ``EpBunch_1``. - -It overrides ``__setattr__`` and ``__getattr__`` to add a small -functionality that has not been documented or used. The idea was to give -the ability to shorten field names with alias. So -``building.Maximum_Number_of_Warmup_Days`` could be made into -``building.warmupdays``. - -I seemed like a good idea when I wrote it. Ignore it for now, although -it may make a comeback :-) - -EpBunch\_3 -~~~~~~~~~~ - - -``EpBunch_3`` is subclassed from ``EpBunch_2``. - -EpBunch\_3 adds the ability to add functions to EpBunch objects. This -would allow the object to make calculations using data within the -object. So ``BuildingSurface:Detailed`` object has all the geometry data -of the object. The function 'area' will let us calculate the are of the -object even though area is not a field in ``BuildingSurface:Detailed``. - -So you can call ``idf1.idfobjects["BuildingSurface:Detailed"][0].area`` -and get the area of the surface. - -At the moment, the functions can use only data within the object for -it's calculation. We need to extend this functionality so that -calculations can be done using data outside the object. This would be -useful in calculating the volume of a Zone. Such a calculation would -need data from the surfaces that the aone refers to. - -EpBunch\_4 -~~~~~~~~~~ - - -``EpBunch_4`` is subclassed from ``EpBunch_3``. - -``EpBunch_4`` overrides ``_setitem__`` and ``__getitem__``. Right now -``airgap.Name`` works. This update allows ``airgap["Name"]`` to work -correctly too - -EpBunch\_5 -~~~~~~~~~~ - - -``EpBunch_5`` is subclassed from ``EpBunch_4``. - -``EpBunch_5`` adds functions that allows you to call functions -``getrange`` and ``checkrange`` for a field - -Finally EpBunch -~~~~~~~~~~~~~~~ - - -``EpBunch = EpBunch_5`` - -Finally ``EpBunch_5`` is named as EpBunch. So the rest of the code uses -EpBunch and in effect it uses ``Epbunch_5`` diff --git a/docs/source/dev_docs/epbunch_files/epbunch_11_0.text b/docs/source/dev_docs/epbunch_files/epbunch_11_0.text deleted file mode 100644 index 8db9b807..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_11_0.text +++ /dev/null @@ -1 +0,0 @@ -{'a': 10, 'b': 20} diff --git a/docs/source/dev_docs/epbunch_files/epbunch_12_0.text b/docs/source/dev_docs/epbunch_files/epbunch_12_0.text deleted file mode 100644 index e5cec191..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_12_0.text +++ /dev/null @@ -1,8 +0,0 @@ -I am getting the value -2 -I am getting the value -10 -I am getting the value -20 -I am getting the value -1 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_14_0.text b/docs/source/dev_docs/epbunch_files/epbunch_14_0.text deleted file mode 100644 index 8db9b807..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_14_0.text +++ /dev/null @@ -1 +0,0 @@ -{'a': 10, 'b': 20} diff --git a/docs/source/dev_docs/epbunch_files/epbunch_16_0.text b/docs/source/dev_docs/epbunch_files/epbunch_16_0.text deleted file mode 100644 index 3b86147b..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_16_0.text +++ /dev/null @@ -1,2 +0,0 @@ -10 -20 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_18_0.text b/docs/source/dev_docs/epbunch_files/epbunch_18_0.text deleted file mode 100644 index 29d6383b..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_18_0.text +++ /dev/null @@ -1 +0,0 @@ -100 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_20_0.text b/docs/source/dev_docs/epbunch_files/epbunch_20_0.text deleted file mode 100644 index e5cec191..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_20_0.text +++ /dev/null @@ -1,8 +0,0 @@ -I am getting the value -2 -I am getting the value -10 -I am getting the value -20 -I am getting the value -1 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_23_0.text b/docs/source/dev_docs/epbunch_files/epbunch_23_0.text deleted file mode 100644 index 77a9a954..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_23_0.text +++ /dev/null @@ -1,36 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - -MATERIAL:AIRGAP, - F04 Wall air space resistance, !- Name - 0.15; !- Thermal Resistance - -MATERIAL:AIRGAP, - F05 Ceiling air space resistance, !- Name - 0.18; !- Thermal Resistance - diff --git a/docs/source/dev_docs/epbunch_files/epbunch_25_0.text b/docs/source/dev_docs/epbunch_files/epbunch_25_0.text deleted file mode 100644 index 83a51c9f..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_25_0.text +++ /dev/null @@ -1,2 +0,0 @@ -[['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15], - ['MATERIAL:AIRGAP', 'F05 Ceiling air space resistance', 0.18]] \ No newline at end of file diff --git a/docs/source/dev_docs/epbunch_files/epbunch_26_0.text b/docs/source/dev_docs/epbunch_files/epbunch_26_0.text deleted file mode 100644 index 7e494474..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_26_0.text +++ /dev/null @@ -1,9 +0,0 @@ -[{'memo': ['Air Space in Opaque Construction'], 'min-fields': ['2']}, - {'field': ['Name'], - 'reference': ['MaterialName'], - 'required-field': [''], - 'type': ['alpha']}, - {'field': ['Thermal Resistance'], - 'minimum>': ['0'], - 'type': ['real'], - 'units': ['m2-K/W']}] \ No newline at end of file diff --git a/docs/source/dev_docs/epbunch_files/epbunch_28_0.text b/docs/source/dev_docs/epbunch_files/epbunch_28_0.text deleted file mode 100644 index b5002f77..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_28_0.text +++ /dev/null @@ -1 +0,0 @@ -['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] \ No newline at end of file diff --git a/docs/source/dev_docs/epbunch_files/epbunch_31_0.text b/docs/source/dev_docs/epbunch_files/epbunch_31_0.text deleted file mode 100644 index 03c36723..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_31_0.text +++ /dev/null @@ -1,4 +0,0 @@ -Bunch(a=1, b=2, c=3) -1 -2 -3 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_35_0.text b/docs/source/dev_docs/epbunch_files/epbunch_35_0.text deleted file mode 100644 index 08012789..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_35_0.text +++ /dev/null @@ -1,2 +0,0 @@ -['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] -['key', 'Name', 'Thermal_Resistance'] diff --git a/docs/source/dev_docs/epbunch_files/epbunch_40_0.text b/docs/source/dev_docs/epbunch_files/epbunch_40_0.text deleted file mode 100644 index 7ce4eb50..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_40_0.text +++ /dev/null @@ -1,2 +0,0 @@ -F04 Wall air space resistance -0.15 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_41_0.text b/docs/source/dev_docs/epbunch_files/epbunch_41_0.text deleted file mode 100644 index 855e0023..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_41_0.text +++ /dev/null @@ -1 +0,0 @@ -['MATERIAL:AIRGAP', 'F04 Wall air space resistance', 0.15] diff --git a/docs/source/dev_docs/epbunch_files/epbunch_44_0.text b/docs/source/dev_docs/epbunch_files/epbunch_44_0.text deleted file mode 100644 index 7ca46794..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_44_0.text +++ /dev/null @@ -1 +0,0 @@ -Argon in gap diff --git a/docs/source/dev_docs/epbunch_files/epbunch_45_0.text b/docs/source/dev_docs/epbunch_files/epbunch_45_0.text deleted file mode 100644 index 74fc3ba7..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_45_0.text +++ /dev/null @@ -1 +0,0 @@ -['MATERIAL:AIRGAP', 'Argon in gap', 0.15] diff --git a/docs/source/dev_docs/epbunch_files/epbunch_47_0.text b/docs/source/dev_docs/epbunch_files/epbunch_47_0.text deleted file mode 100644 index 0c70d82b..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_47_0.text +++ /dev/null @@ -1 +0,0 @@ -['MATERIAL:AIRGAP', 'Argon in gap', 0.15] \ No newline at end of file diff --git a/docs/source/dev_docs/epbunch_files/epbunch_5_0.text b/docs/source/dev_docs/epbunch_files/epbunch_5_0.text deleted file mode 100644 index 35f8427f..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_5_0.text +++ /dev/null @@ -1,3 +0,0 @@ -{'a': 10, 'b': 20} -10 -20 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_5_1.text b/docs/source/dev_docs/epbunch_files/epbunch_5_1.text deleted file mode 100644 index 422c2b7a..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_5_1.text +++ /dev/null @@ -1,2 +0,0 @@ -a -b diff --git a/docs/source/dev_docs/epbunch_files/epbunch_7_0.text b/docs/source/dev_docs/epbunch_files/epbunch_7_0.text deleted file mode 100644 index 8db9b807..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_7_0.text +++ /dev/null @@ -1 +0,0 @@ -{'a': 10, 'b': 20} diff --git a/docs/source/dev_docs/epbunch_files/epbunch_8_0.text b/docs/source/dev_docs/epbunch_files/epbunch_8_0.text deleted file mode 100644 index 87f5b5b9..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_8_0.text +++ /dev/null @@ -1,3 +0,0 @@ -{'a': 1, 'b': 2} -1 -2 diff --git a/docs/source/dev_docs/epbunch_files/epbunch_9_0.text b/docs/source/dev_docs/epbunch_files/epbunch_9_0.text deleted file mode 100644 index 48f54366..00000000 --- a/docs/source/dev_docs/epbunch_files/epbunch_9_0.text +++ /dev/null @@ -1,2 +0,0 @@ -key = a, value = 10 -key = b, value = 20 diff --git a/docs/source/dev_docs/future_eppy.rst b/docs/source/dev_docs/future_eppy.rst deleted file mode 100644 index f5dc39a0..00000000 --- a/docs/source/dev_docs/future_eppy.rst +++ /dev/null @@ -1,18 +0,0 @@ -The Future of eppy -================== - -The future of eppy lies in the use of eppy to build a more comprehensive tool kit to work with Energyplus models. In a sense eppy should not grow much at all. Eppy should become more effective as tool kit at a very granular level. - -Longterm TODOs for eppy ------------------------ - -Some of the possibilities for the future growth of eppy are: - -- A geometry builder for Energyplus. The open source 3-D software Blender has a python scripting language. One possibility would be to use Blender as a geometry interface for eppy and Energyplus -- A HVAC Builder for Energyplus. -- A HVAC diagram tool for Energyplus. Eppy has a reasonbly good diagram tool for HVAC network. Right now it shows a purely static image of the network. An enhancement of this would be to ability to edit the network through the diagram -- A User interface for Energyplus. This may be redundant, since the present IDF editor is quite good. -- A web based user interface Energyplus. The path of least resistance to do this would be to a python web framework like django, flask, pyramid or bottle. Bottle is a very light weight web framework and could be used to make small special purpose interfaces for Energyplus. - -The eppy project will take a lead on some of these projects. Working on these projects will feed back information into eppy, on how to improve the functionality of eppy - \ No newline at end of file diff --git a/docs/source/dev_docs/hist_eppy.rst b/docs/source/dev_docs/hist_eppy.rst deleted file mode 100644 index da9f2ba3..00000000 --- a/docs/source/dev_docs/hist_eppy.rst +++ /dev/null @@ -1,19 +0,0 @@ -History of Eppy -=============== - -:Author: Santosh Philip (santosh_philip at yahoo.com) - -EPlusInterface --------------- - -EPlusInterface is a text based interface to Energyplus. EPlusInterface is the direct ancestor to Eppy. The data structure of EPlusInterface was simple and quite robust. EPlusInterface also had good functions to read the idd file and the idf files. In principle the idd file reader of EPlusInterface was written so that it could read any version of the idd file. Eppy directly uses the file readers from EPlusInterface - -.. Energyplus and python -.. ````````````````````` -.. -.. Around 2004 version 1 of Energyplus had been released. In an attempt to understand what Energyplus could do, I decided write a simple interface for Energyplus. I had recently discovered the programming language python, and was very impressed with how elegantly simple the language was. Python allowed me to focus on the task at hand and did not have me obsessing over "programming". -.. -.. Writing an interface -.. ```````````````````` -.. -.. Writing good Graphic User Interface (GUI) can be a surprisingly complex design and programming task. I found a simple library that allowed me to build text based GUI. It was fairly limited in what it could do compared to a standard GUI. This suited my purposes as it let me focus on Energyplus rather than the GUI issues. \ No newline at end of file diff --git a/docs/source/dev_docs/idf_msequence.ipynb b/docs/source/dev_docs/idf_msequence.ipynb deleted file mode 100644 index be746ba0..00000000 --- a/docs/source/dev_docs/idf_msequence.ipynb +++ /dev/null @@ -1,660 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Idf_MSequence - Syntactic Sugar work" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Underlying Data structure of again" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us open a small idf file and look at the underlying data structure." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " # assume we have open an IDF file called idf\n", - " # let us add three construction objects to it\n", - " idf.newidfobject('construction'.upper(), Name='C1')\n", - " idf.newidfobject('construction'.upper(), Name='C2')\n", - " idf.newidfobject('construction'.upper(), Name='C3')\n", - " constructions = idf.idfobjects['construction'.upper()]\n", - " print constructions\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " [\n", - " CONSTRUCTION, \n", - " C1; !- Name\n", - " , \n", - " CONSTRUCTION, \n", - " C2; !- Name\n", - " , \n", - " CONSTRUCTION, \n", - " C3; !- Name\n", - " ]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We know that constructions us just syntactic sugar around the underlying data structure. Let us call the underlying data structure *real_constructions*" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " # set real_constructions\n", - " real_constructions = = idf.model.dt['construction'.upper()]\n", - " print real_constructions\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " [['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " real_constructions -> the underlying data structure\n", - " constructions -> syntactic sugar for real_constructions\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So any changes made in constructions should reflected in constructions. Let us test this out. " - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " constructions[0].Name = 'New C1'\n", - " print constructions\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " [\n", - " CONSTRUCTION, \n", - " New C1; !- Name\n", - " , \n", - " CONSTRUCTION, \n", - " C2; !- Name\n", - " , \n", - " CONSTRUCTION, \n", - " C3; !- Name\n", - " ]\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " print real_constructions\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " [['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Even though we made the change only in *constructions*, we can see the changes in both *constructions* and *real_constructions*. `Ep_Bunch` takes care of this for us." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " print 'type for constructions', type(constructions)\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " type for constructions \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "since constructions is a list, we can do all the list operations on it. Let us try some of them:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - " \n", - " constructions.pop(0)\n", - " " - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " CONSTRUCTION, \n", - " New C1; !- Name \n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " print constructions \n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " [\n", - " CONSTRUCTION, \n", - " C2; !- Name\n", - " , \n", - " CONSTRUCTION, \n", - " C3; !- Name\n", - " ]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That makes sense. We poped the first item in the list and now we have only two items.\n", - "\n", - "Is this change reflected in real_constructions ?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " print real_constructions\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " [['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Dammit !! Why not ?\n", - "\n", - "We still have 3 items in real_constructions and 2 items in constructions " - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " print 'type for constructions', type(constructions)\n", - " print 'id of constructions', id(constructions)\n", - " print 'type for real_constructions', type(constructions)\n", - " print 'id of real_constructions', id(real_constructions)\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "::\n", - "\n", - " type for constructions \n", - " id of constructions 4576898440\n", - " type for real_constructions \n", - " id of real_constructions 4535436208\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- Both `constructions` and `real_constructions` are lists. \n", - "- But looking at their ids, it is clear that they are two different lists.\n", - "- poping an item in one list will not pop it in the other list :-(\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- In `constructions[0].Name =` `\"New C1\"` we see changes to an item within `constructions` is reflected within `real_constructions`\n", - "- `EpBunch` takes care of that connection\n", - "- We are having problems with the list functions. \n", - "- we see that pop() does not work for us\n", - "- similarly the results of append(), insert(), sort() and reverse() in `constructions` will not be reflected in `real_constructions` \n", - "\n", - "This is how it works in eppy version 0.5\n", - "\n", - "We need to fix this. Now we describe how this problem was fixed. \n", - "\n", - "`constructions` should be a list-like wrapper around `real_constructions`. Python has an excellent data structure called `collections.MutableSequence` that works perfectly for this. Alex Martelli has a great discussion of this in this stackoverflow thread [Overriding append method after inheriting from a Python List](http://stackoverflow.com/questions/3487434/overriding-append-method-after-inheriting-from-a-python-list) \n", - "\n", - "- So we make a class `eppy.idf_msequence.Idf_MSequence` that inherits form `collections.MutableSequence`\n", - "- `constructions` is now an instance of `eppy.idf_msequence.Idf_MSequence`\n", - "- reading the above stackoverflow thread and the code wihtin `eppy.idf_msequence.Idf_MSequence` should show you how it works\n", - "- version of eppy higher than 0.5 will use `eppy.idf_msequence.Idf_MSequence`\n", - "\n", - "Let us take a look at how it works (in all versions of eppy newer than 0.5):" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# using eppy version greater than 0.5\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../../../'\n", - "sys.path.append(pathnameto_eppy)\n", - "from eppy import modeleditor\n", - "from eppy.modeleditor import IDF\n", - "iddfile = \"../../../eppy/resources/iddfiles/Energy+V7_2_0.idd\"\n", - "fname1 = \"../../../eppy/resources/idffiles/V_7_2/smallfile.idf\"\n", - "IDF.setiddname(iddfile)\n", - "idf = IDF(fname1)\n", - "\n", - "idf.newidfobject('construction'.upper(), Name='C1')\n", - "idf.newidfobject('construction'.upper(), Name='C2')\n", - "idf.newidfobject('construction'.upper(), Name='C3')\n", - "constructions = idf.idfobjects['construction'.upper()]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print constructions" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[\n", - "CONSTRUCTION, \n", - " C1; !- Name\n", - ", \n", - "CONSTRUCTION, \n", - " C2; !- Name\n", - ", \n", - "CONSTRUCTION, \n", - " C3; !- Name\n", - "]\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "real_constructions = idf.model.dt['construction'.upper()]\n", - "print real_constructions" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Shall we test `pop(0)` here ?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "constructions.pop(0)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "\n", - "CONSTRUCTION, \n", - " C1; !- Name\n" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print constructions" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[\n", - "CONSTRUCTION, \n", - " C2; !- Name\n", - ", \n", - "CONSTRUCTION, \n", - " C3; !- Name\n", - "]\n" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print real_constructions" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']]\n" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Awesome !!! both `constructions` and `real_constructions` have the same number of items" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print type(constructions)\n", - "print type(real_constructions)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n", - "\n" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "what kind of sorcery is this. How did that work. How does `Idf.Msequence` do this magic ? Let us look at that [link](http://stackoverflow.com/questions/3487434/overriding-append-method-after-inheriting-from-a-python-list) in stackoverflow. The question raised in stackovverflow is:\n", - "\n", - "*I want to create a list that can only accept certain types. As such, I'm trying to inherit from a list in Python, and overriding the append() method like so:* and there is a sample code after this.\n", - "\n", - "Alex Martelli responds:\n", - "\n", - "*Not the best approach! Python lists have so many mutating methods that you'd have to be overriding a bunch (and would probably forget some).*\n", - "\n", - "*Rather, wrap a list, inherit from collections.MutableSequence, and add your checks at the very few \"choke point\" methods on which MutableSequence relies to implement all others.* Alex's code follows after this point. In `eppy.idf_msequence` I have included Alex's code. \n", - "\n", - "Stop here and read through the [stackoverflow link](http://stackoverflow.com/questions/3487434/overriding-append-method-after-inheriting-from-a-python-list)\n", - "\n", - "Well ... you don't really have to. It does go off on some tangents unrelated to what we do in eppy.\n", - "\n", - "The strategy in `eppy.idf_msequence.Idf_MSequence` is to have two lists, list1 and list2. To play with this I made a simple class `TwoLists`. Here `TwoLists` acts just like a list. Any operation list operation on `TwoLists` will result in a similar operation on both list1 and list2. `TwoLists` is not used in eppy, I simply use it to flesh out how `MutableSequence` can be used. I am going to play with `TwoLists` here to show you how cool it is :-)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.idf_msequence import TwoLists\n", - "twolists = TwoLists()\n", - "print twolists" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "list1 = [], list2 = []\n" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "twolists.append(5)\n", - "print twolists" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "list1 = [5], list2 = ['r_5']\n" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "twolists.append(dict(a=15))\n", - "print twolists" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "list1 = [5, {'a': 15}], list2 = ['r_5', \"r_{'a': 15}\"]\n" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "twolists.insert(1, 42)\n", - "print twolists" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "list1 = [5, 42, {'a': 15}], list2 = ['r_5', 'r_42', \"r_{'a': 15}\"]\n" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "twolists.pop(-1)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 21, - "text": [ - "{'a': 15}" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print twolists" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "list1 = [5, 42], list2 = ['r_5', 'r_42']\n" - ] - } - ], - "prompt_number": 22 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Isn't that neat !! `Idf_MSequence` works in a similar way. Out of sheer laziness I am going to let you figure it out on your own. (ignore `Idf_MSequence_old`, since that went in the wrong direction)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/docs/source/dev_docs/idf_msequence.rst b/docs/source/dev_docs/idf_msequence.rst deleted file mode 100644 index c27ddf55..00000000 --- a/docs/source/dev_docs/idf_msequence.rst +++ /dev/null @@ -1,411 +0,0 @@ - -Idf\_MSequence - Syntactic Sugar work -===================================== - - -Underlying Data structure of again ----------------------------------- - - -Let us open a small idf file and look at the underlying data structure. - -:: - - # assume we have open an IDF file called idf - # let us add three construction objects to it - idf.newidfobject('construction'.upper(), Name='C1') - idf.newidfobject('construction'.upper(), Name='C2') - idf.newidfobject('construction'.upper(), Name='C3') - constructions = idf.idfobjects['construction'.upper()] - print constructions - - -:: - - [ - CONSTRUCTION, - C1; !- Name - , - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -We know that constructions us just syntactic sugar around the underlying -data structure. Let us call the underlying data structure -*real\_constructions* - -:: - - # set real_constructions - real_constructions = = idf.model.dt['construction'.upper()] - print real_constructions - - -:: - - [['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -:: - - real_constructions -> the underlying data structure - constructions -> syntactic sugar for real_constructions - - -So any changes made in constructions should reflected in constructions. -Let us test this out. - -:: - - constructions[0].Name = 'New C1' - print constructions - - -:: - - [ - CONSTRUCTION, - New C1; !- Name - , - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -:: - - print real_constructions - - -:: - - [['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Even though we made the change only in *constructions*, we can see the -changes in both *constructions* and *real\_constructions*. ``Ep_Bunch`` -takes care of this for us. - -:: - - print 'type for constructions', type(constructions) - - -:: - - type for constructions - - -since constructions is a list, we can do all the list operations on it. -Let us try some of them: - -:: - - constructions.pop(0) - - -:: - - CONSTRUCTION, - New C1; !- Name - - -:: - - print constructions - - -:: - - [ - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -That makes sense. We poped the first item in the list and now we have -only two items. - -Is this change reflected in real\_constructions ? - -:: - - print real_constructions - - -:: - - [['CONSTRUCTION', 'New C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Dammit !! Why not ? - -We still have 3 items in real\_constructions and 2 items in -constructions - -:: - - print 'type for constructions', type(constructions) - print 'id of constructions', id(constructions) - print 'type for real_constructions', type(constructions) - print 'id of real_constructions', id(real_constructions) - - -:: - - type for constructions - id of constructions 4576898440 - type for real_constructions - id of real_constructions 4535436208 - - -- Both ``constructions`` and ``real_constructions`` are lists. -- But looking at their ids, it is clear that they are two different - lists. -- poping an item in one list will not pop it in the other list :-( - - -- In ``constructions[0].Name =`` ``"New C1"`` we see changes to an item - within ``constructions`` is reflected within ``real_constructions`` -- ``EpBunch`` takes care of that connection -- We are having problems with the list functions. -- we see that pop() does not work for us -- similarly the results of append(), insert(), sort() and reverse() in - ``constructions`` will not be reflected in ``real_constructions`` - -This is how it works in eppy version 0.5 - -We need to fix this. Now we describe how this problem was fixed. - -``constructions`` should be a list-like wrapper around -``real_constructions``. Python has an excellent data structure called -``collections.MutableSequence`` that works perfectly for this. Alex -Martelli has a great discussion of this in this stackoverflow thread -`Overriding append method after inheriting from a Python -List `__ - -- So we make a class ``eppy.idf_msequence.Idf_MSequence`` that inherits - form ``collections.MutableSequence`` -- ``constructions`` is now an instance of - ``eppy.idf_msequence.Idf_MSequence`` -- reading the above stackoverflow thread and the code wihtin - ``eppy.idf_msequence.Idf_MSequence`` should show you how it works -- version of eppy higher than 0.5 will use - ``eppy.idf_msequence.Idf_MSequence`` - -Let us take a look at how it works (in all versions of eppy newer than -0.5): - -.. code:: python - - # using eppy version greater than 0.5 - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../../' - sys.path.append(pathnameto_eppy) - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../../../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../../../eppy/resources/idffiles/V_7_2/smallfile.idf" - IDF.setiddname(iddfile) - idf = IDF(fname1) - - idf.newidfobject('construction'.upper(), Name='C1') - idf.newidfobject('construction'.upper(), Name='C2') - idf.newidfobject('construction'.upper(), Name='C3') - constructions = idf.idfobjects['construction'.upper()] -.. code:: python - - print constructions - -.. parsed-literal:: - - [ - CONSTRUCTION, - C1; !- Name - , - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -.. code:: python - - real_constructions = idf.model.dt['construction'.upper()] - print real_constructions - -.. parsed-literal:: - - [['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Shall we test ``pop(0)`` here ? - -.. code:: python - - constructions.pop(0) - - - -.. parsed-literal:: - - - CONSTRUCTION, - C1; !- Name - - - - -.. code:: python - - print constructions - -.. parsed-literal:: - - [ - CONSTRUCTION, - C2; !- Name - , - CONSTRUCTION, - C3; !- Name - ] - - -.. code:: python - - print real_constructions - -.. parsed-literal:: - - [['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] - - -Awesome !!! both ``constructions`` and ``real_constructions`` have the -same number of items - -.. code:: python - - print type(constructions) - print type(real_constructions) - -.. parsed-literal:: - - - - - -what kind of sorcery is this. How did that work. How does -``Idf.Msequence`` do this magic ? Let us look at that -`link `__ -in stackoverflow. The question raised in stackovverflow is: - -*I want to create a list that can only accept certain types. As such, -I'm trying to inherit from a list in Python, and overriding the append() -method like so:* and there is a sample code after this. - -Alex Martelli responds: - -*Not the best approach! Python lists have so many mutating methods that -you'd have to be overriding a bunch (and would probably forget some).* - -*Rather, wrap a list, inherit from collections.MutableSequence, and add -your checks at the very few "choke point" methods on which -MutableSequence relies to implement all others.* Alex's code follows -after this point. In ``eppy.idf_msequence`` I have included Alex's code. - -Stop here and read through the `stackoverflow -link `__ - -Well ... you don't really have to. It does go off on some tangents -unrelated to what we do in eppy. - -The strategy in ``eppy.idf_msequence.Idf_MSequence`` is to have two -lists, list1 and list2. To play with this I made a simple class -``TwoLists``. Here ``TwoLists`` acts just like a list. Any operation -list operation on ``TwoLists`` will result in a similar operation on -both list1 and list2. ``TwoLists`` is not used in eppy, I simply use it -to flesh out how ``MutableSequence`` can be used. I am going to play -with ``TwoLists`` here to show you how cool it is :-) - -.. code:: python - - from eppy.idf_msequence import TwoLists - twolists = TwoLists() - print twolists - -.. parsed-literal:: - - list1 = [], list2 = [] - - -.. code:: python - - twolists.append(5) - print twolists - -.. parsed-literal:: - - list1 = [5], list2 = ['r_5'] - - -.. code:: python - - twolists.append(dict(a=15)) - print twolists - -.. parsed-literal:: - - list1 = [5, {'a': 15}], list2 = ['r_5', "r_{'a': 15}"] - - -.. code:: python - - twolists.insert(1, 42) - print twolists - -.. parsed-literal:: - - list1 = [5, 42, {'a': 15}], list2 = ['r_5', 'r_42', "r_{'a': 15}"] - - -.. code:: python - - twolists.pop(-1) - - - -.. parsed-literal:: - - {'a': 15} - - - -.. code:: python - - print twolists - -.. parsed-literal:: - - list1 = [5, 42], list2 = ['r_5', 'r_42'] - - -Isn't that neat !! ``Idf_MSequence`` works in a similar way. Out of -sheer laziness I am going to let you figure it out on your own. (ignore -``Idf_MSequence_old``, since that went in the wrong direction) - -.. code:: python - - \ No newline at end of file diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_31_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_31_0.text deleted file mode 100644 index babd8889..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_31_0.text +++ /dev/null @@ -1,10 +0,0 @@ -[ -CONSTRUCTION, - C1; !- Name -, -CONSTRUCTION, - C2; !- Name -, -CONSTRUCTION, - C3; !- Name -] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_32_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_32_0.text deleted file mode 100644 index 54190466..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_32_0.text +++ /dev/null @@ -1 +0,0 @@ -[['CONSTRUCTION', 'C1'], ['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_34_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_34_0.text deleted file mode 100644 index 3c71929d..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_34_0.text +++ /dev/null @@ -1,3 +0,0 @@ - -CONSTRUCTION, - C1; !- Name diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_35_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_35_0.text deleted file mode 100644 index 7d91fa86..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_35_0.text +++ /dev/null @@ -1,7 +0,0 @@ -[ -CONSTRUCTION, - C2; !- Name -, -CONSTRUCTION, - C3; !- Name -] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_36_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_36_0.text deleted file mode 100644 index 97ccc0e5..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_36_0.text +++ /dev/null @@ -1 +0,0 @@ -[['CONSTRUCTION', 'C2'], ['CONSTRUCTION', 'C3']] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_38_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_38_0.text deleted file mode 100644 index faea842f..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_38_0.text +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_40_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_40_0.text deleted file mode 100644 index 7c6f057c..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_40_0.text +++ /dev/null @@ -1 +0,0 @@ -list1 = [], list2 = [] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_41_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_41_0.text deleted file mode 100644 index 38836213..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_41_0.text +++ /dev/null @@ -1 +0,0 @@ -list1 = [5], list2 = ['r_5'] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_42_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_42_0.text deleted file mode 100644 index 7f4ca41c..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_42_0.text +++ /dev/null @@ -1 +0,0 @@ -list1 = [5, {'a': 15}], list2 = ['r_5', "r_{'a': 15}"] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_43_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_43_0.text deleted file mode 100644 index e888d2c1..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_43_0.text +++ /dev/null @@ -1 +0,0 @@ -list1 = [5, 42, {'a': 15}], list2 = ['r_5', 'r_42', "r_{'a': 15}"] diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_44_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_44_0.text deleted file mode 100644 index a8b1be0e..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_44_0.text +++ /dev/null @@ -1 +0,0 @@ -{'a': 15} \ No newline at end of file diff --git a/docs/source/dev_docs/idf_msequence_files/idf_msequence_45_0.text b/docs/source/dev_docs/idf_msequence_files/idf_msequence_45_0.text deleted file mode 100644 index c85cf842..00000000 --- a/docs/source/dev_docs/idf_msequence_files/idf_msequence_45_0.text +++ /dev/null @@ -1 +0,0 @@ -list1 = [5, 42], list2 = ['r_5', 'r_42'] diff --git a/docs/source/dev_docs/index.rst b/docs/source/dev_docs/index.rst deleted file mode 100644 index 27cddc0d..00000000 --- a/docs/source/dev_docs/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -Developer Documentation for eppy -================================ - -The documentation you have read so far is written for *Users of eppy*. Users of eppy will simply install eppy and use it. They may be writing a lot of code using eppy, but they will not be changing any code within eppy itself. - -This section of the documentation is for people who want to contribute to the development of eppy. In contrast to *eppy users* people who contribute code to eppy will be changing and adding code to eppy. To change code within eppy, developers will need to have a good sense of how eppy is written and structured. This section hopes to give clarity to such issues. It is assumed that most developers of eppy will not be professional programmers and may come from a rage of programming abilities. So this documentation is slanted to such an audience. - -If you look at the table of contents below, You will notice sections on the *history* and *philosophy* of eppy. Eppy was built off an earlier program, and a lot of the data structure and program design, will become clear when you see the history behind eppy. The philosophy of eppy alludes to the Unix philosophy of *Do one thing, and do it well*. - -Topics ------- - -.. toctree:: - :maxdepth: 2 - - phil_eppy - hist_eppy - future_eppy - data_eppy - epbunch - idf_msequence - modeleditor - pytest_eppy - doc_eppy diff --git a/docs/source/dev_docs/modeleditor.ipynb b/docs/source/dev_docs/modeleditor.ipynb deleted file mode 100644 index 46955027..00000000 --- a/docs/source/dev_docs/modeleditor.ipynb +++ /dev/null @@ -1,159 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "IDF in modeleditor" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The previous section talks about EpBunch, which deals with a single object from Energyplus. Here we put all the pieces together so that we have the entire **IDF** file" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Class IDF" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "IDF0 is the first class that was written. As the code was refined, it was further refined to by subclassing to IDF1, IDF2, IDF3. Finally the following was set as IDF = IDF3" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Class IDF0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Some important methods in IDF0" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "IDF0.setiddname" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This method has a decorator `@classmethod`. This decorator makes the method a class method. From a stackoverflow comment, I found a brief description of when this should be used.\n", - "\n", - "`\"Class methods are essential when you are doing set-up or computation that precedes the creation of an actual instance, because until the instance exists you obviously cannot use the instance as the dispatch point for your method calls\"`\n", - "\n", - "Having said that, I am outside my comfort zone on trying to explain this in any depth. I will simply explain what I am doing with this here. Below is a brief explanation intent.\n", - "\n", - "- the idd file is a very large file. There is a large overhead in opening more than one idd file.\n", - "- A design decision was made to use only one idd file to be used in a script. \n", - "- This means that you cannot open two idf files that are of different version (meaning they will use different idd files)\n", - "- You can open any number of idf file as long as they are of the same version (meaing, the use the same idd file)\n", - "\n", - "The class method allows us to achieve the objective:\n", - "\n", - "- The class method 'setiddname', allows us to set the name of the idd file, before creating an instance of IDF. It is set by the statement `IDF.setiddname(iddfilename)`\n", - "- There are other class methods that make sure that this idd name cannot be changed.\n", - "- An instance of the class IDF is created using the statement `idf = IDF(idffilename)`. This can be done multiple times, creating multiple instances and they will all use the same idd file" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "IDF0.`__init__`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "IDF is initialized by passing it the idf file name. I would look like this:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " idf1 = IDF(filename) # filename can be a file name, file handle or an StringIO" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- Once the class is initialized, it will read the idf file. \n", - "- If this the first time the class is inititalized, the idd file set by `setiddname()` will be read too.\n", - "- the idd file is read only once and then same copy is used." - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "IDF0.read" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The read function is called when the class IDF is initialized. The read function calls routines from the original EPlusInterface program to do the actual read. The read get the values for the following variables:\n", - "\n", - "- idfobjects\n", - "- model.dt\n", - "- model.dtls\n", - "- idd_info\n", - "\n", - "The functions within EPlusInterface are not documented here. I wrote them in 2004 and I have no idea how I did them. they have been working really well with some minor updates. I don't intent to poke at that code yet." - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Other IDF methods" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The other functions in IDF0, IDF1, IDF2 and IDF3 not too complicated. It should be possible to understand them by reading the code. \n", - "\n", - "Sometime in the future, these functions will be documented later in more detail" - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/docs/source/dev_docs/modeleditor.rst b/docs/source/dev_docs/modeleditor.rst deleted file mode 100644 index 080754af..00000000 --- a/docs/source/dev_docs/modeleditor.rst +++ /dev/null @@ -1,100 +0,0 @@ - -IDF in modeleditor -================== - - -The previous section talks about EpBunch, which deals with a single -object from Energyplus. Here we put all the pieces together so that we -have the entire **IDF** file - -Class IDF ---------- - - -IDF0 is the first class that was written. As the code was refined, it -was further refined to by subclassing to IDF1, IDF2, IDF3. Finally the -following was set as IDF = IDF3 - -Class IDF0 ----------- - - -Some important methods in IDF0 - -IDF0.setiddname -~~~~~~~~~~~~~~~ - - -This method has a decorator ``@classmethod``. This decorator makes the -method a class method. From a stackoverflow comment, I found a brief -description of when this should be used. - -``"Class methods are essential when you are doing set-up or computation that precedes the creation of an actual instance, because until the instance exists you obviously cannot use the instance as the dispatch point for your method calls"`` - -Having said that, I am outside my comfort zone on trying to explain this -in any depth. I will simply explain what I am doing with this here. -Below is a brief explanation intent. - -- the idd file is a very large file. There is a large overhead in - opening more than one idd file. -- A design decision was made to use only one idd file to be used in a - script. -- This means that you cannot open two idf files that are of different - version (meaning they will use different idd files) -- You can open any number of idf file as long as they are of the same - version (meaing, the use the same idd file) - -The class method allows us to achieve the objective: - -- The class method 'setiddname', allows us to set the name of the idd - file, before creating an instance of IDF. It is set by the statement - ``IDF.setiddname(iddfilename)`` -- There are other class methods that make sure that this idd name - cannot be changed. -- An instance of the class IDF is created using the statement - ``idf = IDF(idffilename)``. This can be done multiple times, creating - multiple instances and they will all use the same idd file - - -IDF0.\ ``__init__`` -~~~~~~~~~~~~~~~~~~~ - - -IDF is initialized by passing it the idf file name. I would look like -this: - - idf1 = IDF(filename) # filename can be a file name, file handle or an StringIO - -- Once the class is initialized, it will read the idf file. -- If this the first time the class is inititalized, the idd file set by - ``setiddname()`` will be read too. -- the idd file is read only once and then same copy is used. - - -IDF0.read -~~~~~~~~~ - - -The read function is called when the class IDF is initialized. The read -function calls routines from the original EPlusInterface program to do -the actual read. The read get the values for the following variables: - -- idfobjects -- model.dt -- model.dtls -- idd\_info - -The functions within EPlusInterface are not documented here. I wrote -them in 2004 and I have no idea how I did them. they have been working -really well with some minor updates. I don't intent to poke at that code -yet. - -Other IDF methods ------------------ - - -The other functions in IDF0, IDF1, IDF2 and IDF3 not too complicated. It -should be possible to understand them by reading the code. - -Sometime in the future, these functions will be documented later in more -detail diff --git a/docs/source/dev_docs/phil_eppy.rst b/docs/source/dev_docs/phil_eppy.rst deleted file mode 100644 index c8c5141b..00000000 --- a/docs/source/dev_docs/phil_eppy.rst +++ /dev/null @@ -1,77 +0,0 @@ -Philosophy of Eppy -================== - -:Author: Santosh Philip - -The *Philosophy of eppy* alludes to the `Unix Philosophy `_. The philosophy of eppy takes inspiration from the *Unix Philosophy*, that speaks of doing one thing and doing it well. Unix has the tradition of having small tools that do a single thing. A number of tools can be stitched together to do a more complex task. -Of course, since eppy is written in Python, it adheres to the "Zen of Python" - -The rules of Unix are shown in the appendix at the bottom of this page.(You may find that eppy breaks the rules at times) - - - -Purpose of Eppy ---------------- - -The purpose of eppy is to be a *scripting language* to Energyplus. So what does that mean ? Let us start by describing what it is not. - -What eppy is **not**: - -- Eppy is **not** a User Interface to Energyplus. -- Eppy is **not** a HVAC builder for Energyplus -- Eppy is **not** a Geometry builder for Energyplus -- Eppy does **not** make batch runs for Energyplus -- Eppy does **not** optimize Energyplus models - -Now you may ask, "What use is eppy, if it cannot do any of these things ?" - -Aha ! Eppy is a scripting language. That means you can write scripts that can help to do any of those things listed above. And many more that are not listed above :-) - -A scripting language has to be *simple* and *expressive*. It has to be simple so that it is easy to understand and use, and should ideally have a negligible learning curve. Now, it can be simple, but may be simplistic and you may be able to do only simple things in it. To go beyond the simple, the language has to be expressive. Most natural languages (like English or Malayalam) are expressive and you can write poetry in them. Of course, some languages are more expressive than others, which is why Malayalam is more poetic than English ... just kidding here :-) - -In the world of programming languages, python is a very expressive language. If you doubt this, you should take a look at the *Zen of Python* to see the philosophy behind python. Eppy attempts to piggyback on the expressiveness of python. Developers who are working on eppy should use this as a guiding principle, especially if you are working deep within the innards of eppy. Some of this is tricky coding, because you are overriding the functionality within python itself. Depending on your coding ability and what you want to learn, you should pick an area you want to work in - -**Question**: You claim that Eppy is **not** a HVAC builder for Energyplus. I see a module called hvacbulider.py in eppy. - -**Answer**: Yup ! you are right. I cheated. Hvacbulider should not be in eppy. We are at an early stage of the evolution of eppy and it made sense to keep it within eppy for now. In the future, it will be made into a standalone library that will use eppy for it's functionality. - -The power of the idd file -````````````````````````` - -Due to historic reasons, the developers of Energyplus were tasked to write the simulation engine without an user interface. This meant they had to write Energyplus in such a way that others could write user interfaces to it. This constraint forced them to make two excellent design decisions: - -- All models in Energyplus are text files called *idf* files. Text files are human readable and are platform agnostic. -- There is a special text file called an *idd* file, that describes all the objects that can be in an Energyplus model. Again this file is human readable and it is very well documented with comments. If you intend to do any development in Energyplus or eppy, it is well worth taking a look at this file. It is usually called *Energy+.idd* and is found in the main Energyplus folder -- When newer versions of Energyplus are released, an updated idd file is released with it. The simulation engine within Energyplus uses the idd file to parse the objects in the model. If an interface software is able to read and understand the idd file, it can effectively understand any idf file. -- Eppy is written so that it can read and understand idd files, including idd files of future releases.In principle, eppy should be able to work with any future version of Energyplus without any changes. At the date this documentation was written, eppy can read all idf files, from version 1 to version 8. - -Idd file and eppy ------------------ - -Both the idd file and idf file are text files. If you look at these files, you will see that there is a clear structure that is visible to you, the reader. Eppy reads these text files and pushes it into classic python data structures, like lists and dictionaries. Once this information is in lists and dicts, it becomes much easier to walk through the data structure and to add, delete and change the information. - -At it's heart, eppy is simply a scripting language that puts the idd and idf file into a python data structure. Then it uses the power of python to edit the idf file. - - -Appendix: Unix Philosophy -------------------------- - -From http://www.catb.org/esr/writings/taoup/html/ch01s06.html: - -- Rule of Modularity: Write simple parts connected by clean interfaces. -- Rule of Clarity: Clarity is better than cleverness. -- Rule of Composition: Design programs to be connected to other programs. -- Rule of Separation: Separate policy from mechanism; separate interfaces from engines. -- Rule of Simplicity: Design for simplicity; add complexity only where you must. -- Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do. -- Rule of Transparency: Design for visibility to make inspection and debugging easier. -- Rule of Robustness: Robustness is the child of transparency and simplicity. -- Rule of Representation: Fold knowledge into data so program logic can be stupid and robust. -- Rule of Least Surprise: In interface design, always do the least surprising thing. -- Rule of Silence: When a program has nothing surprising to say, it should say nothing. -- Rule of Repair: When you must fail, fail noisily and as soon as possible. -- Rule of Economy: Programmer time is expensive; conserve it in preference to machine time. -- Rule of Generation: Avoid hand-hacking; write programs to write programs when you can. -- Rule of Optimization: Prototype before polishing. Get it working before you optimize it. -- Rule of Diversity: Distrust all claims for “one true way”. -- Rule of Extensibility: Design for the future, because it will be here sooner than you think. diff --git a/docs/source/dev_docs/pytest_eppy.rst b/docs/source/dev_docs/pytest_eppy.rst deleted file mode 100644 index e235580f..00000000 --- a/docs/source/dev_docs/pytest_eppy.rst +++ /dev/null @@ -1,9 +0,0 @@ -Unit Testing Eppy -================= - -Pytest for eppy ---------------- - -`Pytest framework `_ is used to unit test eppy - -This section is yet to be documented \ No newline at end of file diff --git a/docs/source/eppyfunctions.rst b/docs/source/eppyfunctions.rst deleted file mode 100644 index 75528034..00000000 --- a/docs/source/eppyfunctions.rst +++ /dev/null @@ -1,39 +0,0 @@ -Eppy Functions -============== - -This Document is a work in progress - -The most commonly used eppy functions are gathered here. - - -IDF functions: - -- idf = IDF(fname) # fname or fhandle -- idf.printidf -- idf1.idfobjects['BUILDING'] -- idf.save -- idf.saveas -- idf.newidfobject -- idf.copyidfobject -- idf.newidfobject -- idf.removeidfobject -- idf.popidfobject -- idf.copyidfobject - -idfobjects function: - -- building.Name -- surface azimuth -- surface tilt -- surface area -- building.getrange("Loads_Convergence_Tolerance_Value") -- building.checkrange("Loads_Convergence_Tolerance_Value") -- building.fieldnames - -Other Functions: - -- area = modeleditor.zonearea(idf, zone.Name) -- volume = modeleditor.zonevolume(idf, zone.Name) -- json_functions.updateidf(idf1, json_str) -- idf_helpers.getidfobjectlist -- idf_helpers.copyidfintoidf diff --git a/docs/source/eppyrecipies.rst b/docs/source/eppyrecipies.rst deleted file mode 100644 index 643f89ef..00000000 --- a/docs/source/eppyrecipies.rst +++ /dev/null @@ -1,6 +0,0 @@ -Eppy Recipies -============= - -This Document is a work in progress - -Common ways in which eppy can be used \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst deleted file mode 100644 index 07a83da4..00000000 --- a/docs/source/index.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. eppy documentation master file, created by - sphinx-quickstart on Sun Sep 22 12:06:04 2013. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to eppy's documentation! -================================ - -Contents: - -.. toctree:: - :maxdepth: 1 - - installation - Main_Tutorial - HVAC_Tutorial - Outputs_Tutorial - newfunctions - runningeplus - useful_scripts - eppyfunctions - eppyrecipies - changes - dev_docs/index - LICENSE - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/docs/source/installation.rst b/docs/source/installation.rst deleted file mode 100644 index 8ca4982b..00000000 --- a/docs/source/installation.rst +++ /dev/null @@ -1,28 +0,0 @@ -Installation -============ - -Type the following at your terminal to install **eppy** - -:: - - pip install eppy - -.. Go to http://www.numpy.org and install NumPy. - -.. I have disabled the install of NumPy through "pip install eppy", since it was not reliable - -For additional functionality: - -- Go to http://www.graphviz.org and install graphviz -- This is needed to draw loop diagrams. -- The rest of eppy will work without graphviz - -*Note: eppy runs on python2 and python 3.* - -Running eppy on other platforms -------------------------------- - -Eppy on Grasshopper (for use within Rhino) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Use the `CPython plugin for Rhino-Grasshopper `_ to run eppy in `Grasshopper `_ diff --git a/docs/source/newfunctions.rst b/docs/source/newfunctions.rst deleted file mode 100644 index 55d770b0..00000000 --- a/docs/source/newfunctions.rst +++ /dev/null @@ -1,1507 +0,0 @@ - -New functions -============= - -These are recently written functions that have not made it into the main -documentation - -Python Lesson: Errors and Exceptions ------------------------------------- - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - - -When things go wrong in your eppy script, you get "Errors and -Exceptions". - -To know more about how this works in python and eppy, take a look at -`Python: Errors and -Exceptions `__ - -Setting IDD name ----------------- - -When you work with Energyplus you are working with **idf** files (files -that have the extension \*.idf). There is another file that is very -important, called the **idd** file. This is the file that defines all -the objects in Energyplus. Esch version of Energyplus has a different -**idd** file. - -So eppy needs to know which **idd** file to use. Only one **idd** file -can be used in a script or program. This means that you cannot change -the **idd** file once you have selected it. Of course you have to first -select an **idd** file before eppy can work. - -If you use eppy and break the above rules, eppy will raise an exception. -So let us use eppy incorrectly and make eppy raise the exception, just -see how that happens. - -First let us try to open an **idf** file without setting an **idd** -file. - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - - -Now let us open file fname1 without setting the **idd** file - -.. code:: python - - try: - idf1 = IDF(fname1) - except Exception, e: - raise e - - - -:: - - - --------------------------------------------------------------------------- - - IDDNotSetError Traceback (most recent call last) - - in () - 2 idf1 = IDF(fname1) - 3 except Exception, e: - ----> 4 raise e - 5 - - - IDDNotSetError: IDD file needed to read the idf file. Set it using IDF.setiddname(iddfile) - - -OK. It does not let you do that and it raises an exception - -So let us set the **idd** file and then open the idf file - -.. code:: python - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - IDF.setiddname(iddfile) - idf1 = IDF(fname1) - - -That worked without raising an exception - -Now let us try to change the **idd** file. Eppy should not let you do -this and should raise an exception. - -.. code:: python - - try: - IDF.setiddname("anotheridd.idd") - except Exception, e: - raise e - - - -:: - - - --------------------------------------------------------------------------- - - IDDAlreadySetError Traceback (most recent call last) - - in () - 2 IDF.setiddname("anotheridd.idd") - 3 except Exception, e: - ----> 4 raise e - 5 - - - IDDAlreadySetError: IDD file is set to: ../eppy/resources/iddfiles/Energy+V7_2_0.idd - - -Excellent!! It raised the exception we were expecting. - -Check range for fields ----------------------- - -The fields of idf objects often have a range of legal values. The -following functions will let you discover what that range is and test if -your value lies within that range - -demonstrate two new functions: - -- EpBunch.getrange(fieldname) # will return the ranges for that field -- EpBunch.checkrange(fieldname) # will throw an exception if the value - is outside the range - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - - -.. code:: python - - # IDF.setiddname(iddfile)# idd ws set further up in this page - idf1 = IDF(fname1) - - -.. code:: python - - building = idf1.idfobjects['building'.upper()][0] - print building - - - -.. parsed-literal:: - - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - - -.. code:: python - - print building.getrange("Loads_Convergence_Tolerance_Value") - - - -.. parsed-literal:: - - {u'maximum<': None, u'minimum': None, u'type': u'real', u'maximum': 0.5, u'minimum>': 0.0} - - -.. code:: python - - print building.checkrange("Loads_Convergence_Tolerance_Value") - - - -.. parsed-literal:: - - 0.04 - - -Let us set these values outside the range and see what happens - -.. code:: python - - building.Loads_Convergence_Tolerance_Value = 0.6 - from eppy.bunch_subclass import RangeError - try: - print building.checkrange("Loads_Convergence_Tolerance_Value") - except RangeError, e: - raise e - - - -:: - - - --------------------------------------------------------------------------- - - RangeError Traceback (most recent call last) - - in () - 4 print building.checkrange("Loads_Convergence_Tolerance_Value") - 5 except RangeError, e: - ----> 6 raise e - 7 - - - RangeError: Value 0.6 is not less or equal to the 'maximum' of 0.5 - - -So the Range Check works - -Looping through all the fields in an idf object ------------------------------------------------ - -We have seen how to check the range of field in the idf object. What if -you want to do a *range check* on all the fields in an idf object ? To -do this we will need a list of all the fields in the idf object. We can -do this easily by the following line - -.. code:: python - - print building.fieldnames - - - -.. parsed-literal:: - - [u'key', u'Name', u'North_Axis', u'Terrain', u'Loads_Convergence_Tolerance_Value', u'Temperature_Convergence_Tolerance_Value', u'Solar_Distribution', u'Maximum_Number_of_Warmup_Days', u'Minimum_Number_of_Warmup_Days'] - - -So let us use this - -.. code:: python - - for fieldname in building.fieldnames: - print "%s = %s" % (fieldname, building[fieldname]) - - - -.. parsed-literal:: - - key = BUILDING - Name = Empire State Building - North_Axis = 30.0 - Terrain = City - Loads_Convergence_Tolerance_Value = 0.6 - Temperature_Convergence_Tolerance_Value = 0.4 - Solar_Distribution = FullExterior - Maximum_Number_of_Warmup_Days = 25 - Minimum_Number_of_Warmup_Days = 6 - - -Now let us test if the values are in the legal range. We know that -"Loads\_Convergence\_Tolerance\_Value" is out of range - -.. code:: python - - from eppy.bunch_subclass import RangeError - for fieldname in building.fieldnames: - try: - building.checkrange(fieldname) - print "%s = %s #-in range" % (fieldname, building[fieldname],) - except RangeError as e: - print "%s = %s #-****OUT OF RANGE****" % (fieldname, building[fieldname],) - - - -.. parsed-literal:: - - key = BUILDING #-in range - Name = Empire State Building #-in range - North_Axis = 30.0 #-in range - Terrain = City #-in range - Loads_Convergence_Tolerance_Value = 0.6 #-****OUT OF RANGE**** - Temperature_Convergence_Tolerance_Value = 0.4 #-in range - Solar_Distribution = FullExterior #-in range - Maximum_Number_of_Warmup_Days = 25 #-in range - Minimum_Number_of_Warmup_Days = 6 #-in range - - -You see, we caught the out of range value - -Blank idf file --------------- - -Until now in all our examples, we have been reading an idf file from -disk: - -- How do I create a blank new idf file -- give it a file name -- Save it to the disk - -Here are the steps to do that - -.. code:: python - - # some initial steps - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - # IDF.setiddname(iddfile) # Has already been set - - # - Let us first open a file from the disk - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - idf_fromfilename = IDF(fname1) # initialize the IDF object with the file name - - idf_fromfilename.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -.. code:: python - - # - now let us open a file from the disk differently - fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - fhandle = open(fname1, 'r') # open the file for reading and assign it a file handle - idf_fromfilehandle = IDF(fhandle) # initialize the IDF object with the file handle - - idf_fromfilehandle.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -.. code:: python - - # So IDF object can be initialized with either a file name or a file handle - - # - How do I create a blank new idf file - idftxt = "" # empty string - from StringIO import StringIO - fhandle = StringIO(idftxt) # we can make a file handle of a string - idf_emptyfile = IDF(fhandle) # initialize the IDF object with the file handle - - idf_emptyfile.printidf() - - - -.. parsed-literal:: - - - - -It did not print anything. Why should it. It was empty. - -What if we give it a string that was not blank - -.. code:: python - - # - The string does not have to be blank - idftxt = "VERSION, 7.3;" # Not an emplty string. has just the version number - fhandle = StringIO(idftxt) # we can make a file handle of a string - idf_notemptyfile = IDF(fhandle) # initialize the IDF object with the file handle - - idf_notemptyfile.printidf() - - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - - -Aha ! - -Now let us give it a file name - -.. code:: python - - # - give it a file name - idf_notemptyfile.idfname = "notemptyfile.idf" - # - Save it to the disk - idf_notemptyfile.save() - - -Let us confirm that the file was saved to disk - -.. code:: python - - txt = open("notemptyfile.idf", 'r').read()# read the file from the disk - print txt - - - -.. parsed-literal:: - - !- Darwin Line endings - - VERSION, - 7.3; !- Version Identifier - - -Yup ! that file was saved. Let us delete it since we were just playing - -.. code:: python - - import os - os.remove("notemptyfile.idf") - - -Deleting, copying/adding and making new idfobjects --------------------------------------------------- - -Making a new idf object -~~~~~~~~~~~~~~~~~~~~~~~ - -Let us start with a blank idf file and make some new "MATERIAL" objects -in it - -.. code:: python - - # making a blank idf object - blankstr = "" - from StringIO import StringIO - idf = IDF(StringIO(blankstr)) - - -To make and add a new idfobject object, we use the function -IDF.newidfobject(). We want to make an object of type "MATERIAL" - -.. code:: python - - newobject = idf.newidfobject("material".upper()) # the key for the object type has to be in upper case - # .upper() makes it upper case - - -.. code:: python - - print newobject - - - -.. parsed-literal:: - - - MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Let us give this a name, say "Shiny new material object" - -.. code:: python - - newobject.Name = "Shiny new material object" - print newobject - - - -.. parsed-literal:: - - - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -.. code:: python - - anothermaterial = idf.newidfobject("material".upper()) - anothermaterial.Name = "Lousy material" - thirdmaterial = idf.newidfobject("material".upper()) - thirdmaterial.Name = "third material" - print thirdmaterial - - - -.. parsed-literal:: - - - MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -Let us look at all the "MATERIAL" objects - -.. code:: python - - print idf.idfobjects["MATERIAL"] - - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -As we can see there are three MATERIAL idfobjects. They are: - -1. Shiny new material object -2. Lousy material -3. third material - -Deleting an idf object -~~~~~~~~~~~~~~~~~~~~~~ - -Let us remove 2. Lousy material. It is the second material in the list. -So let us remove the second material - -.. code:: python - - idf.popidfobject('MATERIAL', 1) # first material is '0', second is '1' - - - - - -.. parsed-literal:: - - - MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -.. code:: python - - print idf.idfobjects['MATERIAL'] - - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -You can see that the second material is gone ! Now let us remove the -first material, but do it using a different function - -.. code:: python - - firstmaterial = idf.idfobjects['MATERIAL'][-1] - - -.. code:: python - - idf.removeidfobject(firstmaterial) - - -.. code:: python - - print idf.idfobjects['MATERIAL'] - - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -So we have two ways of deleting an idf object: - -1. popidfobject -> give it the idf key: "MATERIAL", and the index number -2. removeidfobject -> give it the idf object to be deleted - -Copying/Adding an idf object -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Having deleted two "MATERIAL" objects, we have only one left. Let us -make a copy of this object and add it to our idf file - -.. code:: python - - onlymaterial = idf.idfobjects["MATERIAL"][0] - -.. code:: python - - idf.copyidfobject(onlymaterial) - -.. code:: python - - print idf.idfobjects["MATERIAL"] - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -So now we have a copy of the material. You can use this method to copy -idf objects from other idf files too. - -Making an idf object with named arguments ------------------------------------------ - -What if we wanted to make an idf object with values for it's fields? We -can do that too. - -.. code:: python - - gypboard = idf.newidfobject('MATERIAL', Name="G01a 19mm gypsum board", - Roughness="MediumSmooth", - Thickness=0.019, - Conductivity=0.16, - Density=800, - Specific_Heat=1090) - -.. code:: python - - print gypboard - - -.. parsed-literal:: - - - MATERIAL, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - -newidfobject() also fills in the default values like "Thermal -Absorptance", "Solar Absorptance", etc. - -.. code:: python - - print idf.idfobjects["MATERIAL"] - - -.. parsed-literal:: - - [ - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - , - MATERIAL, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - ] - - -Renaming an idf object ----------------------- - -It is easy to rename an idf object. If we want to rename the gypboard -object that we created above, we simply say: - - gypboard.Name = "a new name". - - -But this could create a problem. What if this gypboard is part of a -"CONSTRUCTION" object. The construction object will refer to the -gypboard by name. If we change the name of the gypboard, we should -change it in the construction object. - -But there may be many constructions objects using the gypboard. Now we -will have to change it in all those construction objects. Sounds -painfull. - -Let us try this with an example: - -.. code:: python - - interiorwall = idf.newidfobject("CONSTRUCTION", Name="Interior Wall", - Outside_Layer="G01a 19mm gypsum board", - Layer_2="Shiny new material object", - Layer_3="G01a 19mm gypsum board") - print interiorwall - - - -.. parsed-literal:: - - - CONSTRUCTION, - Interior Wall, !- Name - G01a 19mm gypsum board, !- Outside Layer - Shiny new material object, !- Layer 2 - G01a 19mm gypsum board; !- Layer 3 - - - -to rename gypboard and have that name change in all the places we call -modeleditor.rename(idf, key, oldname, newname) - -.. code:: python - - modeleditor.rename(idf, "MATERIAL", "G01a 19mm gypsum board", "peanut butter") - - - - -.. parsed-literal:: - - - MATERIAL, - peanut butter, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - - -.. code:: python - - print interiorwall - - -.. parsed-literal:: - - - CONSTRUCTION, - Interior Wall, !- Name - peanut butter, !- Outside Layer - Shiny new material object, !- Layer 2 - peanut butter; !- Layer 3 - - - -Now we have "peanut butter" everywhere. At least where we need it. Let -us look at the entir idf file, just to be sure - -.. code:: python - - idf.printidf() - - -.. parsed-literal:: - - - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - MATERIAL, - peanut butter, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - CONSTRUCTION, - Interior Wall, !- Name - peanut butter, !- Outside Layer - Shiny new material object, !- Layer 2 - peanut butter; !- Layer 3 - - - -Turn off default values -~~~~~~~~~~~~~~~~~~~~~~~ - -Can I turn off the defautl values. Yes you can: - -.. code:: python - - defaultmaterial = idf.newidfobject("MATERIAL", - Name='with default') - print defaultmaterial - nodefaultmaterial = idf.newidfobject("MATERIAL", - Name='Without default', - defaultvalues=False) - print nodefaultmaterial - - -.. parsed-literal:: - - - MATERIAL, - with default, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - - MATERIAL, - Without default; !- Name - - - -- But why would you want to turn it off. -- Well .... sometimes you have to -- Try it with the object ``DAYLIGHTING:CONTROLS``, and you will see the - need for ``defaultvalues=False`` - -Of course, internally EnergyPlus will still use the default values it it -is left blank. If just won't turn up in the IDF file. - -Zone area and volume --------------------- - -The idf file has zones with surfaces and windows. It is easy to get the -attributes of the surfaces and windows as we have seen in the tutorial. -Let us review this once more: - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname1 = "../eppy/resources/idffiles/V_7_2/box.idf" - # IDF.setiddname(iddfile) - -.. code:: python - - idf = IDF(fname1) - -.. code:: python - - surfaces = idf.idfobjects["BuildingSurface:Detailed".upper()] - surface = surfaces[0] - print "area = %s" % (surface.area, ) - print "tilt = %s" % (surface.tilt, ) - print "azimuth = %s" % (surface.azimuth, ) - - -.. parsed-literal:: - - area = 30.0 - tilt = 180.0 - azimuth = 0.0 - - -Can we do the same for zones ? - -Not yet .. not yet. Not in this version on eppy - -But we can still get the area and volume of the zone - -.. code:: python - - zones = idf.idfobjects["ZONE"] - zone = zones[0] - area = modeleditor.zonearea(idf, zone.Name) - volume = modeleditor.zonevolume(idf, zone.Name) - print "zone area = %s" % (area, ) - print "zone volume = %s" % (volume, ) - - -.. parsed-literal:: - - zone area = 30.0 - zone volume = 90.0 - - -Not as slick, but still pretty easy - -Some notes on the zone area calculation: - -- area is calculated by summing up all the areas of the floor surfaces -- if there are no floors, then the sum of ceilings and roof is taken as - zone area -- if there are no floors, ceilings or roof, we are out of luck. The - function returns 0 - -Using JSON to update idf ------------------------- - -we are going to update ``idf1`` using json. First let us print the -``idf1`` before changing it, so we can see what has changed once we make -an update - -.. code:: python - - idf1.printidf() - - -.. parsed-literal:: - - - VERSION, - 7.3; !- Version Identifier - - SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -.. code:: python - - import eppy.json_functions as json_functions - json_str = {"idf.VERSION..Version_Identifier":8.5, - "idf.SIMULATIONCONTROL..Do_Zone_Sizing_Calculation": "No", - "idf.SIMULATIONCONTROL..Do_System_Sizing_Calculation": "No", - "idf.SIMULATIONCONTROL..Do_Plant_Sizing_Calculation": "No", - "idf.BUILDING.Empire State Building.North_Axis": 52, - "idf.BUILDING.Empire State Building.Terrain": "Rural", - } - json_functions.updateidf(idf1, json_str) - -.. code:: python - - idf1.printidf() - - -.. parsed-literal:: - - - VERSION, - 8.5; !- Version Identifier - - SIMULATIONCONTROL, - No, !- Do Zone Sizing Calculation - No, !- Do System Sizing Calculation - No, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - - BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - - - -Compare the first printidf() and the second printidf(). - -The syntax of the json string is described below:: - - idf.BUILDING.Empire State Building.Terrain": "Rural" - - The key fields are seperated by dots. Let us walk through each field: - - idf -> make a change to the idf. (in the future there may be changes that are not related to idf) - BUILDING -> the key for object to be changed - Empire State Building -> The name of the object. In other word - the value of the field `Name` - Terrain -> the field to be changed - - "Rural" -> the new value of the field - - If the object does not have a `Name` field, you leave a blank between the two dots and the first object will be changed. - This is done for the version number change. - - "idf.VERSION..Version_Identifier":8.5 - -You can also create a new object using JSON, using the same syntax. Take -a look at this: - -.. code:: python - - json_str = {"idf.BUILDING.Taj.Terrain": "Rural",} - json_functions.updateidf(idf1, json_str) - idf1.idfobjects['building'.upper()] - # of course, you are creating an invalid E+ file. But we are just playing here. - - - - -.. parsed-literal:: - - [ - BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Taj, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - ] - - - -What if you object name had a dot ``.`` in it? Will the json\_function -get confused? - -If the name has a dot in it, there are two ways of doing this. - -.. code:: python - - # first way - json_str = {"idf.BUILDING.Taj.with.dot.Terrain": "Rural",} - json_functions.updateidf(idf1, json_str) - # second way (put the name in single quotes) - json_str = {"idf.BUILDING.'Another.Taj.with.dot'.Terrain": "Rural",} - json_functions.updateidf(idf1, json_str) - -.. code:: python - - idf1.idfobjects['building'.upper()] - - - - -.. parsed-literal:: - - [ - BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Taj, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Taj.with.dot, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - , - BUILDING, - Another.Taj.with.dot, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - ] - - - -**Note** When you us the json update function: - -- The json function expects the ``Name`` field to have a value. -- If you try to update an object with a blank ``Name`` field, the - results may be unexpected (undefined ? :-). So don't do this. -- If the object has no ``Name`` field (some don't), changes are made to - the first object in the list. Which should be fine, since usually - there is only one item in the list -- In any case, if the object does not exist, it is created with the - default values - -Use Case for JSON update -~~~~~~~~~~~~~~~~~~~~~~~~ - -If you have an eppy running on a remote server somewhere on the -internet, you can change an idf file by sending it a JSON over the -internet. This is very useful if you ever need it. If you don't need it, -you shouldn't care :-) - -Easy Functions: Open a file quickly ------------------------------------ - -It is rather cumbersome to open an IDF file in eppy. From the tutorial, -the steps look like this: - -.. code:: python - - from eppy import modeleditor - from eppy.modeleditor import IDF - - iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" - fname = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - IDF.setiddname(iddfile) - idf = IDF(fname) - -- You have to find the IDD file on your hard disk. -- Then set the IDD using setiddname(iddfile). -- Now you can open the IDF file - -Why can’t you just open the IDF file without jumping thru all those -hoops. Why do you have to find the IDD file. What is the point of having -a computer, if it does not do the grunt work for you. - -The function easyopen will do the grunt work for you. It will -automatically read the version number from the IDF file, locate the -correct IDD file and set it in eppy and then open your file. It works -like this: - -.. code:: python - - from eppy.easyopen import easyopen - - fname = './eppy/resources/idffiles/V8_8/smallfile.idf' - idf = easyopen(fname) - -For this to work, - -- the IDF file should have the VERSION object. You may not have this if - you are just working on a file snippet. -- you need to have the version of EnergyPlus installed that matches - your IDF version. -- Energyplus should be installed in the default location. - -If easyopen does not work, use the long winded steps shown in the -tutorial. That is guaranteed to work - -*Note:* easyopen() will also take a epw argument looking like:: - - idf = easyopen(fname, epw=path2weatherfile) - -If you pass the epw argument:: - - idf.run() - -will work. To know more about idf.run() see `here -<./runningeplus.html>`_. - - -More Easy Functions -------------------- - -Try this:: - - import eppy - idf= eppy.newidf(version="8.9") - -This will open a new idf file of version "8.9". The function is fragile. It will fail if that version of EnergyPlus is not installed or if eppy is unable to find the installation. - -Also try:: - - import eppy - fname = './eppy/resources/idffiles/V8_8/smallfile.idf' - idf= eppy.openidf(fname) - -this actually calls the function easyopen(fname) shown above. - - -Extremely large IDF files -------------------------- - -Sometimes users make extremely large Energyplus input files that can take hours to run. When the Energyplus files are very large some issues can occur with reading the IDF files. This error will occur with preinstalled "Energyplus Editor" as well as with eppy. - -The IDD files defines all the fields that can be in the IDF file. Some objects have extensible fields. On installation of Energplus, the IDD file will have a fixed number of fields. - -From the documentation in the IDD file:: - - ! \extensible:<#> This object is dynamically extensible -- meaning, if you - ! change the IDD appropriately (if the object has a simple list - ! structure -- just add items to the list arguments (i.e. BRANCH - ! LIST). These will be automatically redimensioned and used during - ! the simulation. <#> should be entered by the developer to signify - ! how many of the last fields are needed to be extended (and EnergyPlus - ! will attempt to auto-extend the object). The first field of the first - ! instance of the extensible field set is marked with \begin-extensible. - ! - -Eppy will throw an exception if the you don't have enough fields in the IDD file. The exception message will give you enough information to be able to update the IDD file. - -A Sample error message is shown here:: - - NoIDDFieldsError: idfobject with key 'CONTROLLER:MECHANICALVENTILATION' & first - field 'BaseSys6 OACtrl-7 Mech Vent Controller' has 194 fields while the idd for - 'CONTROLLER:MECHANICALVENTILATION' has only 155 fields. Add the following - fields to the object 'CONTROLLER:MECHANICALVENTILATION' in file Energy+.idd - 'A155, A156, A157, A158, A159, A160, A161, A162, A163, A164, A165, A166, A167, - A168, A169, A170, A171, A172, A173, A174, A175, A176, A177, A178, A179, A180, - A181, A182, A183, A184, A185, A186, A187, A188, A189, A190, A191, A192, A193;' - - -Other miscellaneous functions¶ ------------------------------- - -Fan power in Watts, BHP and fan cfm¶ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We normally think of fan power in terms of Brake Horsepower (BHP), -Watts. Also when working with IP units it is useful to think of fan flow -volume in terms of cubic feet per minute (cfm). - -Energyplus does not have fields for those values. With eppy we have -functions that will calculate the values - -- fan power in BHP -- fan power in Watts -- fan flow in CFM - -It will work for the following objects: - -- FAN:CONSTANTVOLUME -- FAN:VARIABLEVOLUME -- FAN:ONOFF -- FAN:ZONEEXHAUST -- FANPERFORMANCE:NIGHTVENTILATION - -The sample code would look like this: - -.. code:: python - - thefans = idf.idfobjects['Fan:VariableVolume'.upper()] - thefan = thefans[0] - bhp = thefan.f_fanpower_bhp - watts = thefan.f_fanpower_watts - cfm = thefan.f_fan_maxcfm - -*Note: This code was hacked together quickly. Needs peer review in -../eppy/fanpower.py* - diff --git a/docs/source/newfunctions_files/newfunctions_103_0.text b/docs/source/newfunctions_files/newfunctions_103_0.text deleted file mode 100644 index 49b4401f..00000000 --- a/docs/source/newfunctions_files/newfunctions_103_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_105_0.text b/docs/source/newfunctions_files/newfunctions_105_0.text deleted file mode 100644 index ec6efb4e..00000000 --- a/docs/source/newfunctions_files/newfunctions_105_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 8.5; !- Version Identifier - -SIMULATIONCONTROL, - No, !- Do Zone Sizing Calculation - No, !- Do System Sizing Calculation - No, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_109_0.text b/docs/source/newfunctions_files/newfunctions_109_0.text deleted file mode 100644 index 5f32ff5d..00000000 --- a/docs/source/newfunctions_files/newfunctions_109_0.text +++ /dev/null @@ -1,21 +0,0 @@ -[ -BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -, -BUILDING, - Taj, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -] \ No newline at end of file diff --git a/docs/source/newfunctions_files/newfunctions_112_0.text b/docs/source/newfunctions_files/newfunctions_112_0.text deleted file mode 100644 index fe13c337..00000000 --- a/docs/source/newfunctions_files/newfunctions_112_0.text +++ /dev/null @@ -1,41 +0,0 @@ -[ -BUILDING, - Empire State Building, !- Name - 52, !- North Axis - Rural, !- Terrain - 0.6, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -, -BUILDING, - Taj, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -, -BUILDING, - Taj.with.dot, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -, -BUILDING, - Another.Taj.with.dot, !- Name - 0.0, !- North Axis - Rural, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -] \ No newline at end of file diff --git a/docs/source/newfunctions_files/newfunctions_11_0.text b/docs/source/newfunctions_files/newfunctions_11_0.text deleted file mode 100644 index 3bec672f..00000000 --- a/docs/source/newfunctions_files/newfunctions_11_0.text +++ /dev/null @@ -1 +0,0 @@ -['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add2node', 'addinnode', 'dt', 'dtls', 'getrefs', 'initdict', 'makedict', 'replacenode'] diff --git a/docs/source/newfunctions_files/newfunctions_14_0.text b/docs/source/newfunctions_files/newfunctions_14_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_14_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_15_0.text b/docs/source/newfunctions_files/newfunctions_15_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_15_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_16_0.text b/docs/source/newfunctions_files/newfunctions_16_0.text deleted file mode 100644 index fb47a8cc..00000000 --- a/docs/source/newfunctions_files/newfunctions_16_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - diff --git a/docs/source/newfunctions_files/newfunctions_17_0.text b/docs/source/newfunctions_files/newfunctions_17_0.text deleted file mode 100644 index 1a97f2a6..00000000 --- a/docs/source/newfunctions_files/newfunctions_17_0.text +++ /dev/null @@ -1 +0,0 @@ -{'maximum<': None, 'minimum': None, 'type': 'real', 'maximum': 0.5, 'minimum>': 0.0} diff --git a/docs/source/newfunctions_files/newfunctions_18_0.text b/docs/source/newfunctions_files/newfunctions_18_0.text deleted file mode 100644 index a9d7c182..00000000 --- a/docs/source/newfunctions_files/newfunctions_18_0.text +++ /dev/null @@ -1 +0,0 @@ -0.04 diff --git a/docs/source/newfunctions_files/newfunctions_19_0.text b/docs/source/newfunctions_files/newfunctions_19_0.text deleted file mode 100644 index 3bec672f..00000000 --- a/docs/source/newfunctions_files/newfunctions_19_0.text +++ /dev/null @@ -1 +0,0 @@ -['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add2node', 'addinnode', 'dt', 'dtls', 'getrefs', 'initdict', 'makedict', 'replacenode'] diff --git a/docs/source/newfunctions_files/newfunctions_20_0.text b/docs/source/newfunctions_files/newfunctions_20_0.text deleted file mode 100644 index fb47a8cc..00000000 --- a/docs/source/newfunctions_files/newfunctions_20_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - diff --git a/docs/source/newfunctions_files/newfunctions_21_0.text b/docs/source/newfunctions_files/newfunctions_21_0.text deleted file mode 100644 index 572d4374..00000000 --- a/docs/source/newfunctions_files/newfunctions_21_0.text +++ /dev/null @@ -1 +0,0 @@ -{u'maximum<': None, u'minimum': None, u'type': u'real', u'maximum': 0.5, u'minimum>': 0.0} diff --git a/docs/source/newfunctions_files/newfunctions_22_0.text b/docs/source/newfunctions_files/newfunctions_22_0.text deleted file mode 100644 index a9d7c182..00000000 --- a/docs/source/newfunctions_files/newfunctions_22_0.text +++ /dev/null @@ -1 +0,0 @@ -0.04 diff --git a/docs/source/newfunctions_files/newfunctions_24_0.text b/docs/source/newfunctions_files/newfunctions_24_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_24_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_25_0.text b/docs/source/newfunctions_files/newfunctions_25_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_25_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_26_0.text b/docs/source/newfunctions_files/newfunctions_26_0.text deleted file mode 100644 index 8b137891..00000000 --- a/docs/source/newfunctions_files/newfunctions_26_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/newfunctions_files/newfunctions_27_0.text b/docs/source/newfunctions_files/newfunctions_27_0.text deleted file mode 100644 index 62c73b38..00000000 --- a/docs/source/newfunctions_files/newfunctions_27_0.text +++ /dev/null @@ -1 +0,0 @@ -['key', 'Name', 'North_Axis', 'Terrain', 'Loads_Convergence_Tolerance_Value', 'Temperature_Convergence_Tolerance_Value', 'Solar_Distribution', 'Maximum_Number_of_Warmup_Days', 'Minimum_Number_of_Warmup_Days'] diff --git a/docs/source/newfunctions_files/newfunctions_28_0.text b/docs/source/newfunctions_files/newfunctions_28_0.text deleted file mode 100644 index eab0dc81..00000000 --- a/docs/source/newfunctions_files/newfunctions_28_0.text +++ /dev/null @@ -1 +0,0 @@ -[u'key', u'Name', u'North_Axis', u'Terrain', u'Loads_Convergence_Tolerance_Value', u'Temperature_Convergence_Tolerance_Value', u'Solar_Distribution', u'Maximum_Number_of_Warmup_Days', u'Minimum_Number_of_Warmup_Days'] diff --git a/docs/source/newfunctions_files/newfunctions_29_0.text b/docs/source/newfunctions_files/newfunctions_29_0.text deleted file mode 100644 index 63292baf..00000000 --- a/docs/source/newfunctions_files/newfunctions_29_0.text +++ /dev/null @@ -1,9 +0,0 @@ -key = BUILDING -Name = Empire State Building -North_Axis = 30.0 -Terrain = City -Loads_Convergence_Tolerance_Value = 0.6 -Temperature_Convergence_Tolerance_Value = 0.4 -Solar_Distribution = FullExterior -Maximum_Number_of_Warmup_Days = 25 -Minimum_Number_of_Warmup_Days = 6 diff --git a/docs/source/newfunctions_files/newfunctions_30_0.text b/docs/source/newfunctions_files/newfunctions_30_0.text deleted file mode 100644 index 63292baf..00000000 --- a/docs/source/newfunctions_files/newfunctions_30_0.text +++ /dev/null @@ -1,9 +0,0 @@ -key = BUILDING -Name = Empire State Building -North_Axis = 30.0 -Terrain = City -Loads_Convergence_Tolerance_Value = 0.6 -Temperature_Convergence_Tolerance_Value = 0.4 -Solar_Distribution = FullExterior -Maximum_Number_of_Warmup_Days = 25 -Minimum_Number_of_Warmup_Days = 6 diff --git a/docs/source/newfunctions_files/newfunctions_31_0.text b/docs/source/newfunctions_files/newfunctions_31_0.text deleted file mode 100644 index ce45d11f..00000000 --- a/docs/source/newfunctions_files/newfunctions_31_0.text +++ /dev/null @@ -1,9 +0,0 @@ -key = BUILDING #-in range -Name = Empire State Building #-in range -North_Axis = 30.0 #-in range -Terrain = City #-in range -Loads_Convergence_Tolerance_Value = 0.6 #-****OUT OF RANGE**** -Temperature_Convergence_Tolerance_Value = 0.4 #-in range -Solar_Distribution = FullExterior #-in range -Maximum_Number_of_Warmup_Days = 25 #-in range -Minimum_Number_of_Warmup_Days = 6 #-in range diff --git a/docs/source/newfunctions_files/newfunctions_32_0.text b/docs/source/newfunctions_files/newfunctions_32_0.text deleted file mode 100644 index ce45d11f..00000000 --- a/docs/source/newfunctions_files/newfunctions_32_0.text +++ /dev/null @@ -1,9 +0,0 @@ -key = BUILDING #-in range -Name = Empire State Building #-in range -North_Axis = 30.0 #-in range -Terrain = City #-in range -Loads_Convergence_Tolerance_Value = 0.6 #-****OUT OF RANGE**** -Temperature_Convergence_Tolerance_Value = 0.4 #-in range -Solar_Distribution = FullExterior #-in range -Maximum_Number_of_Warmup_Days = 25 #-in range -Minimum_Number_of_Warmup_Days = 6 #-in range diff --git a/docs/source/newfunctions_files/newfunctions_35_0.text b/docs/source/newfunctions_files/newfunctions_35_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_35_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_36_0.text b/docs/source/newfunctions_files/newfunctions_36_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_36_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_37_0.text b/docs/source/newfunctions_files/newfunctions_37_0.text deleted file mode 100644 index b14b2a50..00000000 --- a/docs/source/newfunctions_files/newfunctions_37_0.text +++ /dev/null @@ -1,28 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - -SIMULATIONCONTROL, - Yes, !- Do Zone Sizing Calculation - Yes, !- Do System Sizing Calculation - Yes, !- Do Plant Sizing Calculation - No, !- Run Simulation for Sizing Periods - Yes; !- Run Simulation for Weather File Run Periods - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -SITE:LOCATION, - CHICAGO_IL_USA TMY2-94846, !- Name - 41.78, !- Latitude - -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation - diff --git a/docs/source/newfunctions_files/newfunctions_37_1.text b/docs/source/newfunctions_files/newfunctions_37_1.text deleted file mode 100644 index 1a5b9f4d..00000000 --- a/docs/source/newfunctions_files/newfunctions_37_1.text +++ /dev/null @@ -1 +0,0 @@ -['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add2node', 'addinnode', 'getrefs', 'initdict', 'makedict', 'replacenode'] diff --git a/docs/source/newfunctions_files/newfunctions_38_0.text b/docs/source/newfunctions_files/newfunctions_38_0.text deleted file mode 100644 index 8b137891..00000000 --- a/docs/source/newfunctions_files/newfunctions_38_0.text +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/source/newfunctions_files/newfunctions_39_0.text b/docs/source/newfunctions_files/newfunctions_39_0.text deleted file mode 100644 index dcd4a2db..00000000 --- a/docs/source/newfunctions_files/newfunctions_39_0.text +++ /dev/null @@ -1,4 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - diff --git a/docs/source/newfunctions_files/newfunctions_40_0.text b/docs/source/newfunctions_files/newfunctions_40_0.text deleted file mode 100644 index dcd4a2db..00000000 --- a/docs/source/newfunctions_files/newfunctions_40_0.text +++ /dev/null @@ -1,4 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - diff --git a/docs/source/newfunctions_files/newfunctions_43_0.text b/docs/source/newfunctions_files/newfunctions_43_0.text deleted file mode 100644 index dcd4a2db..00000000 --- a/docs/source/newfunctions_files/newfunctions_43_0.text +++ /dev/null @@ -1,4 +0,0 @@ - -VERSION, - 7.3; !- Version Identifier - diff --git a/docs/source/newfunctions_files/newfunctions_44_0.text b/docs/source/newfunctions_files/newfunctions_44_0.text deleted file mode 100644 index 56179ca3..00000000 --- a/docs/source/newfunctions_files/newfunctions_44_0.text +++ /dev/null @@ -1,4 +0,0 @@ -!- Darwin Line endings - -VERSION, - 7.3; !- Version Identifier diff --git a/docs/source/newfunctions_files/newfunctions_51_0.text b/docs/source/newfunctions_files/newfunctions_51_0.text deleted file mode 100644 index b8b9931f..00000000 --- a/docs/source/newfunctions_files/newfunctions_51_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_52_0.text b/docs/source/newfunctions_files/newfunctions_52_0.text deleted file mode 100644 index b8b9931f..00000000 --- a/docs/source/newfunctions_files/newfunctions_52_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_53_0.text b/docs/source/newfunctions_files/newfunctions_53_0.text deleted file mode 100644 index b8b9931f..00000000 --- a/docs/source/newfunctions_files/newfunctions_53_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - , !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_54_0.text b/docs/source/newfunctions_files/newfunctions_54_0.text deleted file mode 100644 index 7c76e582..00000000 --- a/docs/source/newfunctions_files/newfunctions_54_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_55_0.text b/docs/source/newfunctions_files/newfunctions_55_0.text deleted file mode 100644 index 7c76e582..00000000 --- a/docs/source/newfunctions_files/newfunctions_55_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_56_0.text b/docs/source/newfunctions_files/newfunctions_56_0.text deleted file mode 100644 index 3887800a..00000000 --- a/docs/source/newfunctions_files/newfunctions_56_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_57_0.text b/docs/source/newfunctions_files/newfunctions_57_0.text deleted file mode 100644 index 127432fd..00000000 --- a/docs/source/newfunctions_files/newfunctions_57_0.text +++ /dev/null @@ -1,34 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_58_0.text b/docs/source/newfunctions_files/newfunctions_58_0.text deleted file mode 100644 index 127432fd..00000000 --- a/docs/source/newfunctions_files/newfunctions_58_0.text +++ /dev/null @@ -1,34 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_61_0.text b/docs/source/newfunctions_files/newfunctions_61_0.text deleted file mode 100644 index 06bcd06a..00000000 --- a/docs/source/newfunctions_files/newfunctions_61_0.text +++ /dev/null @@ -1,23 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_62_0.text b/docs/source/newfunctions_files/newfunctions_62_0.text deleted file mode 100644 index b42eb9d7..00000000 --- a/docs/source/newfunctions_files/newfunctions_62_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -MATERIAL, - Lousy material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance diff --git a/docs/source/newfunctions_files/newfunctions_63_0.text b/docs/source/newfunctions_files/newfunctions_63_0.text deleted file mode 100644 index 06bcd06a..00000000 --- a/docs/source/newfunctions_files/newfunctions_63_0.text +++ /dev/null @@ -1,23 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - third material, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_65_0.text b/docs/source/newfunctions_files/newfunctions_65_0.text deleted file mode 100644 index 2a142e56..00000000 --- a/docs/source/newfunctions_files/newfunctions_65_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_66_0.text b/docs/source/newfunctions_files/newfunctions_66_0.text deleted file mode 100644 index 50c91dc3..00000000 --- a/docs/source/newfunctions_files/newfunctions_66_0.text +++ /dev/null @@ -1 +0,0 @@ -['MATERIAL', 'third material', '', '', '', '', '', 0.9, 0.7, 0.7] \ No newline at end of file diff --git a/docs/source/newfunctions_files/newfunctions_67_0.text b/docs/source/newfunctions_files/newfunctions_67_0.text deleted file mode 100644 index 2a142e56..00000000 --- a/docs/source/newfunctions_files/newfunctions_67_0.text +++ /dev/null @@ -1,12 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_6_0.text b/docs/source/newfunctions_files/newfunctions_6_0.text deleted file mode 100644 index fb47a8cc..00000000 --- a/docs/source/newfunctions_files/newfunctions_6_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -BUILDING, - Empire State Building, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - diff --git a/docs/source/newfunctions_files/newfunctions_70_0.text b/docs/source/newfunctions_files/newfunctions_70_0.text deleted file mode 100644 index 06fd064f..00000000 --- a/docs/source/newfunctions_files/newfunctions_70_0.text +++ /dev/null @@ -1,23 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_71_0.text b/docs/source/newfunctions_files/newfunctions_71_0.text deleted file mode 100644 index 06fd064f..00000000 --- a/docs/source/newfunctions_files/newfunctions_71_0.text +++ /dev/null @@ -1,23 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_73_0.text b/docs/source/newfunctions_files/newfunctions_73_0.text deleted file mode 100644 index 06fd064f..00000000 --- a/docs/source/newfunctions_files/newfunctions_73_0.text +++ /dev/null @@ -1,23 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_79_0.text b/docs/source/newfunctions_files/newfunctions_79_0.text deleted file mode 100644 index 3966d284..00000000 --- a/docs/source/newfunctions_files/newfunctions_79_0.text +++ /dev/null @@ -1,12 +0,0 @@ - -MATERIAL, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - diff --git a/docs/source/newfunctions_files/newfunctions_7_0.text b/docs/source/newfunctions_files/newfunctions_7_0.text deleted file mode 100644 index 1a97f2a6..00000000 --- a/docs/source/newfunctions_files/newfunctions_7_0.text +++ /dev/null @@ -1 +0,0 @@ -{'maximum<': None, 'minimum': None, 'type': 'real', 'maximum': 0.5, 'minimum>': 0.0} diff --git a/docs/source/newfunctions_files/newfunctions_81_0.text b/docs/source/newfunctions_files/newfunctions_81_0.text deleted file mode 100644 index 5438aeba..00000000 --- a/docs/source/newfunctions_files/newfunctions_81_0.text +++ /dev/null @@ -1,34 +0,0 @@ -[ -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -, -MATERIAL, - G01a 19mm gypsum board, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance -] diff --git a/docs/source/newfunctions_files/newfunctions_86_0.text b/docs/source/newfunctions_files/newfunctions_86_0.text deleted file mode 100644 index fd51a41b..00000000 --- a/docs/source/newfunctions_files/newfunctions_86_0.text +++ /dev/null @@ -1,7 +0,0 @@ - -CONSTRUCTION, - Interior Wall, !- Name - G01a 19mm gypsum board, !- Outside Layer - Shiny new material object, !- Layer 2 - G01a 19mm gypsum board; !- Layer 3 - diff --git a/docs/source/newfunctions_files/newfunctions_88_0.text b/docs/source/newfunctions_files/newfunctions_88_0.text deleted file mode 100644 index 3ddf9108..00000000 --- a/docs/source/newfunctions_files/newfunctions_88_0.text +++ /dev/null @@ -1,11 +0,0 @@ - -MATERIAL, - peanut butter, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance diff --git a/docs/source/newfunctions_files/newfunctions_89_0.text b/docs/source/newfunctions_files/newfunctions_89_0.text deleted file mode 100644 index 55753701..00000000 --- a/docs/source/newfunctions_files/newfunctions_89_0.text +++ /dev/null @@ -1,7 +0,0 @@ - -CONSTRUCTION, - Interior Wall, !- Name - peanut butter, !- Outside Layer - Shiny new material object, !- Layer 2 - peanut butter; !- Layer 3 - diff --git a/docs/source/newfunctions_files/newfunctions_8_0.text b/docs/source/newfunctions_files/newfunctions_8_0.text deleted file mode 100644 index a9d7c182..00000000 --- a/docs/source/newfunctions_files/newfunctions_8_0.text +++ /dev/null @@ -1 +0,0 @@ -0.04 diff --git a/docs/source/newfunctions_files/newfunctions_91_0.text b/docs/source/newfunctions_files/newfunctions_91_0.text deleted file mode 100644 index 730f29d3..00000000 --- a/docs/source/newfunctions_files/newfunctions_91_0.text +++ /dev/null @@ -1,40 +0,0 @@ - -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - -MATERIAL, - Shiny new material object, !- Name - , !- Roughness - , !- Thickness - , !- Conductivity - , !- Density - , !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - -MATERIAL, - peanut butter, !- Name - MediumSmooth, !- Roughness - 0.019, !- Thickness - 0.16, !- Conductivity - 800, !- Density - 1090, !- Specific Heat - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - -CONSTRUCTION, - Interior Wall, !- Name - peanut butter, !- Outside Layer - Shiny new material object, !- Layer 2 - peanut butter; !- Layer 3 - diff --git a/docs/source/newfunctions_files/newfunctions_96_0.text b/docs/source/newfunctions_files/newfunctions_96_0.text deleted file mode 100644 index dc1dcc89..00000000 --- a/docs/source/newfunctions_files/newfunctions_96_0.text +++ /dev/null @@ -1,3 +0,0 @@ -area = 30.0 -tilt = 180.0 -azimuth = 0.0 diff --git a/docs/source/newfunctions_files/newfunctions_98_0.text b/docs/source/newfunctions_files/newfunctions_98_0.text deleted file mode 100644 index 7970a8f1..00000000 --- a/docs/source/newfunctions_files/newfunctions_98_0.text +++ /dev/null @@ -1,2 +0,0 @@ -zone area = 30.0 -zone volume = 90.0 diff --git a/docs/source/runningeplus.rst b/docs/source/runningeplus.rst deleted file mode 100644 index a86f1c05..00000000 --- a/docs/source/runningeplus.rst +++ /dev/null @@ -1,217 +0,0 @@ - -Running EnergyPlus from Eppy -============================ - -It would be great if we could run EnergyPlus directly from our IDF -wouldn’t it? - -Well here’s how we can. - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, uncomment the following three lines - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../' - sys.path.append(pathnameto_eppy) - -.. code:: python - - from eppy.modeleditor import IDF - - iddfile = "/Applications/EnergyPlus-8-3-0/Energy+.idd" - IDF.setiddname(iddfile) - - -.. code:: python - - idfname = "/Applications/EnergyPlus-8-3-0/ExampleFiles/BasicsFiles/Exercise1A.idf" - epwfile = "/Applications/EnergyPlus-8-3-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw" - - idf = IDF(idfname, epwfile) - idf.run() - -if you are in a terminal, you will see something like this:: - - - Processing Data Dictionary - Processing Input File - Initializing Simulation - Reporting Surfaces - Beginning Primary Simulation - Initializing New Environment Parameters - Warming up {1} - Warming up {2} - Warming up {3} - Warming up {4} - Warming up {5} - Warming up {6} - Starting Simulation at 07/21 for CHICAGO_IL_USA COOLING .4% CONDITIONS DB=>MWB - Initializing New Environment Parameters - Warming up {1} - Warming up {2} - Warming up {3} - Warming up {4} - Warming up {5} - Warming up {6} - Starting Simulation at 01/21 for CHICAGO_IL_USA HEATING 99.6% CONDITIONS - Writing final SQL reports - EnergyPlus Run Time=00hr 00min 0.24sec - - -It’s as simple as that to run using the EnergyPlus defaults, but all the -EnergyPlus command line interface options are also supported. - -To get a description of the options available, as well as the defaults -you can call the Python built-in help function on the IDF.run method and -it will print a full description of the options to the console. - -.. code:: python - - help(idf.run) - - -.. parsed-literal:: - - Help on method run in module eppy.modeleditor: - - run(self, **kwargs) method of eppy.modeleditor.IDF instance - This method wraps the following method: - - run(idf=None, weather=None, output_directory=u'', annual=False, design_day=False, idd=None, epmacro=False, expandobjects=False, readvars=False, output_prefix=None, output_suffix=None, version=False, verbose=u'v', ep_version=None) - Wrapper around the EnergyPlus command line interface. - - Parameters - ---------- - idf : str - Full or relative path to the IDF file to be run, or an IDF object. - - weather : str - Full or relative path to the weather file. - - output_directory : str, optional - Full or relative path to an output directory (default: 'run_outputs) - - annual : bool, optional - If True then force annual simulation (default: False) - - design_day : bool, optional - Force design-day-only simulation (default: False) - - idd : str, optional - Input data dictionary (default: Energy+.idd in EnergyPlus directory) - - epmacro : str, optional - Run EPMacro prior to simulation (default: False). - - expandobjects : bool, optional - Run ExpandObjects prior to simulation (default: False) - - readvars : bool, optional - Run ReadVarsESO after simulation (default: False) - - output_prefix : str, optional - Prefix for output file names (default: eplus) - - output_suffix : str, optional - Suffix style for output file names (default: L) - L: Legacy (e.g., eplustbl.csv) - C: Capital (e.g., eplusTable.csv) - D: Dash (e.g., eplus-table.csv) - - version : bool, optional - Display version information (default: False) - - verbose: str - Set verbosity of runtime messages (default: v) - v: verbose - q: quiet - - ep_version: str - EnergyPlus version, used to find install directory. Required if run() is - called with an IDF file path rather than an IDF object. - - Returns - ------- - str : status - - Raises - ------ - CalledProcessError - - AttributeError - If no ep_version parameter is passed when calling with an IDF file path - rather than an IDF object. - - - -*Note 1:* idf.run() works for E+ version >= 8.3 -*Note 2:* idf.run(readvars=True) has been tested only for E+ version >= 8.9. It may work with earlier versions - - -Running in parallel processes ------------------------------ - -One of the great things about Eppy is that it allows you to set up a lot -of jobs really easily. However, it can be slow running a lot of -EnergyPlus simulations, so it’s pretty important that we can make the -most of the processing power you have available by running on multiple -CPUs. - -Again this is as simple as you’d hope it would be. - -You first need to create your jobs as a list of lists in the form:: - - - [[, ], ...] - -The example here just creates 4 identical jobs apart from the -output\_directory the results are saved in, but you would obviously want -to make each job different. - -Then run the jobs on the required number of CPUs using runIDFs... - -... and your results will all be in the output\_directory you specified. - -Debugging and reporting problems --------------------------------- - -Debugging issues with `IDF.run()` used to be difficult, since you needed to -go and hunt for the `eplusout.err` file, and the error message returned was -not at all helpful. - -Now the output from EnergyPlus is returned in the error message, as well as -the location and contents of `eplusout.err`. - -For example, this is the error message produced when running an IDF which contains an -"HVACTemplate:Thermostat" object without passing `expand_objects=True` to -`idf.run()`:: - - - E eppy.runner.run_functions.EnergyPlusRunError: - E Program terminated: EnergyPlus Terminated--Error(s) Detected. - E - E Contents of EnergyPlus error file at C:\Users\jamiebull1\git\eppy\eppy\tests\test_dir\eplusout.err - E Program Version,EnergyPlus, Version 8.9.0-40101eaafd, YMD=2018.10.14 20:49, - E ** Severe ** Line: 107 You must run the ExpandObjects program for "HVACTemplate:Thermostat" - E ** Fatal ** Errors occurred on processing input file. Preceding condition(s) cause termination. - E ...Summary of Errors that led to program termination: - E ..... Reference severe error count=1 - E ..... Last severe error=Line: 107 You must run the ExpandObjects program for "HVACTemplate:Thermostat" - E ************* Warning: Node connection errors not checked - most system input has not been read (see previous warning). - E ************* Fatal error -- final processing. Program exited before simulations began. See previous error messages. - E ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors. - E ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors. - E ************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min 0.16sec - - -When reporting any issues related to `IDF.run()`, please include the error message -as well as the code used to call the function. Also, it may help to include an IDF -and EPW which display the problem so that we can try to reproduce it. \ No newline at end of file diff --git a/docs/source/useful_scripts.rst b/docs/source/useful_scripts.rst deleted file mode 100644 index 0f4a2f35..00000000 --- a/docs/source/useful_scripts.rst +++ /dev/null @@ -1,326 +0,0 @@ - -Useful Scripts -============== - -Location of the scripts ------------------------ - -Here are some scripts that you may find useful. They are in the folder -"./eppy/useful\_scripts" - -And now for some housekeeping before we start off - -.. code:: python - - import os - os.chdir("../eppy/useful_scripts") - # changes directory, so we are where the scripts are located - -.. code:: python - - # you would normaly install eppy by doing - # python setup.py install - # or - # pip install eppy - # or - # easy_install eppy - - # if you have not done so, the following three lines are needed - import sys - # pathnameto_eppy = 'c:/eppy' - pathnameto_eppy = '../../' - sys.path.append(pathnameto_eppy) - - -If you look in the folder "./eppy/useful\_scripts", you fill find the -following scripts - -The scripts are: - -:: - - - eppy_version.py - - idfdiff.py - - loopdiagram.py - - eppyreadtest_folder.py - - eppyreadtest_file.py - - -eppy\_version.py ----------------- - -Many scripts will print out some help information, if you use the --help -option. Let us try that - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python eppy_version.py --help - - -.. parsed-literal:: - - usage: eppy_version.py [-h] - - I print the current version of eppy. Being polite, I also say hello ! - - optional arguments: - -h, --help show this help message and exit - - -That was useful ! - -Now let us try running the program - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python eppy_version.py - - -.. parsed-literal:: - - Hello! I am eppy version 0.4.6.4a - - -Redirecting output to a file ----------------------------- - -Most scripts will print the output to a terminal. Sometimes we want to -send the output to a file, so that we can save it for posterity. We can -do that py using ">" with the filename after that. For eppy\_version.py, -it will look like this: - -python eppy_version.py > save_output.txt - -Some of the following scripts will generate csv or html outputs. We can -direct the output to a file with .html extension and open it in a -browser - -Compare two idf files - idfdiff.py ----------------------------------- - -This script will compare two idf files. The results will be displayed -printed in "csv" format or in "html" format. - -You would run the script from the command line. This would be the -terminal on Mac or unix, and the dos prompt on windows. Let us look at -the help for this script, by typing: - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python idfdiff.py -h - - -.. parsed-literal:: - - Do a diff between two idf files. Prints the diff in csv or html file format. - You can redirect the output to a file and open the file using as a spreadsheet - or by using a browser - - positional arguments: - file1 location of first with idf files = ./somewhere/f1.idf - file2 location of second with idf files = ./somewhere/f2.idf - - optional arguments: - -h, --help show this help message and exit - --idd IDD location of idd file = ./somewhere/eplusv8-0-1.idd - --csv - --html - - -Now let us try this with two "idf" files that are slightly different. If -we open them in a file comparing software, it would look like this: - -.. code:: python - - from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below - for_images = doc_images - for_images.display_png(for_images.filemerge) # display the image below - - - -.. image:: useful_scripts_files/useful_scripts_21_0.png - - -There are 4 differences between the files. Let us see what idfdiff.py -does with the two files. We will use the --html option to print out the -diff in html format. - -.. code:: python - - %%bash - # python idfdiff.py --idd IDD file1 file2 - python idfdiff.py --html --idd ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf - - -.. parsed-literal:: - -

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfaceis herenot here
MATERIALF08 Metal surface hahanot hereis here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
- - -reprinting the output again for clarity: - -

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfacenot hereis here
MATERIALF08 Metal surface hahais herenot here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
- - -It does look like html :-). We need to redirect this output to a file -and then open the file in a browser to see what it looks like. Displayed -below is the html file - -.. code:: python - - from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below - from IPython.display import HTML - h = HTML(open(doc_images.idfdiff_path, 'r').read()) - h - - - - -.. raw:: html - -

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
- - - - -Pretty straight forward. Scroll up and look at the origin text files, -and see how idfdiff.py understands the difference - -Now let us try the same thin in csv format - -.. code:: python - - %%bash - # python idfdiff.py --idd IDD file1 file2 - python idfdiff.py --csv --idd ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf - - -.. parsed-literal:: - - file1 = ../resources/idffiles/V_7_2/constr.idf - file2 = ../resources/idffiles/V_7_2/constr_diff.idf - - Object Key, Object Name, Field Name, file1, file2 - CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8 - CONSTRUCTION,GARAGE-SLAB-1,,is here,not here - CONSTRUCTION,SB-E,,is here,not here - CONSTRUCTION,SB-U,,not here,is here - OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV - - -We see the same output, but now in csv format. You can redirect it to a -".csv" file and open it up as a spreadsheet - -loopdiagram.py --------------- - -Diagrams of HVAC loops -~~~~~~~~~~~~~~~~~~~~~~ - -This script will draw all the loops in an idf file. It is a bit of a -hack. So it will work on most files, but sometimes it will not :-(. But -it is pretty useful when it works. - -If it does not work, send us the idf file and we'll try to fix the code - -Make sure `grapphviz `__ -is installed for this script to work - -Again, we'll have to run the script from the terminal. Let us look at -the help for this script - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python loopdiagram.py --help - - -.. parsed-literal:: - - usage: loopdiagram.py [-h] idd file - - draw all the loops in the idf file - There are two output files saved in the same location as the idf file: - - idf_file_location/idf_filename.dot - - idf_file_location/idf_filename.png - - positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file location of idf file = ./somewhere/f1.idf - - optional arguments: - -h, --help show this help message and exit - - -Pretty straightforward. Simply open png file and you will see the loop -diagram. (ignore the dot file for now. it will be documented later) - -So let us try this out with and simple example file. We have a very -simple plant loop in "../resources/idffiles/V\_7\_2/plantloop.idf" - -.. code:: python - - %%bash - # ignore the line above. It simply lets me run a command line from ipython notebook - python loopdiagram.py ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/plantloop.idf - - -.. parsed-literal:: - - constructing the loops - cleaning edges - making the diagram - saved file: ../resources/idffiles/V_7_2/plantloop.dot - saved file: ../resources/idffiles/V_7_2/plantloop.png - - -The script prints out it's progress. On larger files, this might take a -few seconds. If we open this file, it will look like the diagram below - -*Note: the supply and demnd sides are not connected in the diagram, but -shown seperately for clarity* - -.. code:: python - - from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below - for_images = doc_images - for_images.display_png(for_images.plantloop) # display the image below - - - -.. image:: useful_scripts_files/useful_scripts_38_0.png - - -That diagram is not a real system. Does this script really work ? - -Try it yourself. Draw the daigram for -"../resources/idffiles/V\_7\_2/5ZoneCAVtoVAVWarmestTempFlow.idf" - -Names in loopdiagrams -~~~~~~~~~~~~~~~~~~~~~ - -- `Designbuilder `__ is an energyplus - editor autogenerates object names like "MyHouse:SAPZone1" -- Note the ":" in the name. -- Unfortunatley ":" is a reserved character when making a loop - diagrams. (eppy uses pydot and grapphviz which has this constraint) -- to work around this, loopdiagram will replace all ":" with a "\_\_" -- So the names in the diagram will not match the names in your file, - but you can make out what is going on - -eppyreadtest\_folder.py ------------------------ - -Not yet documented - -eppyreadtest\_file.py ---------------------- - -Not yet documented diff --git a/docs/source/useful_scripts_files/useful_scripts_10_0.text b/docs/source/useful_scripts_files/useful_scripts_10_0.text deleted file mode 100644 index 33340b39..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_10_0.text +++ /dev/null @@ -1,15 +0,0 @@ -usage: idfdiff.py [-h] (--csv | --html) idd file1 file2 - -Do a diff between two idf files. Prints the diff in csv or html file format. -You can redirect the output to a file and open the file using as a spreadsheet -or by using a browser - -positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file1 location of first with idf files = ./somewhere/f1.idf - file2 location of second with idf files = ./somewhere/f2.idf - -optional arguments: - -h, --help show this help message and exit - --csv - --html diff --git a/docs/source/useful_scripts_files/useful_scripts_11_0.text b/docs/source/useful_scripts_files/useful_scripts_11_0.text deleted file mode 100644 index 9fd0a92f..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_11_0.text +++ /dev/null @@ -1 +0,0 @@ -Hello! I am eppy version 0.4.6.4a diff --git a/docs/source/useful_scripts_files/useful_scripts_12_0.png b/docs/source/useful_scripts_files/useful_scripts_12_0.png deleted file mode 100644 index 11ec4f1c..00000000 Binary files a/docs/source/useful_scripts_files/useful_scripts_12_0.png and /dev/null differ diff --git a/docs/source/useful_scripts_files/useful_scripts_14_0.text b/docs/source/useful_scripts_files/useful_scripts_14_0.text deleted file mode 100644 index 00fc25f4..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_14_0.text +++ /dev/null @@ -1 +0,0 @@ -

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfacenot hereis here
MATERIALF08 Metal surface hahais herenot here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
diff --git a/docs/source/useful_scripts_files/useful_scripts_16_0.html b/docs/source/useful_scripts_files/useful_scripts_16_0.html deleted file mode 100644 index 9f536600..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_16_0.html +++ /dev/null @@ -1 +0,0 @@ -

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
diff --git a/docs/source/useful_scripts_files/useful_scripts_16_0.text b/docs/source/useful_scripts_files/useful_scripts_16_0.text deleted file mode 100644 index 692f8be8..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_16_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/useful_scripts_files/useful_scripts_17_0.html b/docs/source/useful_scripts_files/useful_scripts_17_0.html deleted file mode 100644 index 9f536600..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_17_0.html +++ /dev/null @@ -1 +0,0 @@ -

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
diff --git a/docs/source/useful_scripts_files/useful_scripts_17_0.text b/docs/source/useful_scripts_files/useful_scripts_17_0.text deleted file mode 100644 index e71f5471..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_17_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/useful_scripts_files/useful_scripts_19_0.text b/docs/source/useful_scripts_files/useful_scripts_19_0.text deleted file mode 100644 index 33340b39..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_19_0.text +++ /dev/null @@ -1,15 +0,0 @@ -usage: idfdiff.py [-h] (--csv | --html) idd file1 file2 - -Do a diff between two idf files. Prints the diff in csv or html file format. -You can redirect the output to a file and open the file using as a spreadsheet -or by using a browser - -positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file1 location of first with idf files = ./somewhere/f1.idf - file2 location of second with idf files = ./somewhere/f2.idf - -optional arguments: - -h, --help show this help message and exit - --csv - --html diff --git a/docs/source/useful_scripts_files/useful_scripts_20_0.text b/docs/source/useful_scripts_files/useful_scripts_20_0.text deleted file mode 100644 index 5e261f94..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_20_0.text +++ /dev/null @@ -1,9 +0,0 @@ -file1 = ../resources/idffiles/V_7_2/constr.idf -file2 = ../resources/idffiles/V_7_2/constr_diff.idf - -Object Key, Object Name, Field Name, file1, file2 -CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8 -CONSTRUCTION,GARAGE-SLAB-1,,is here,not here -CONSTRUCTION,SB-E,,is here,not here -CONSTRUCTION,SB-U,,not here,is here -OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV diff --git a/docs/source/useful_scripts_files/useful_scripts_21_0.png b/docs/source/useful_scripts_files/useful_scripts_21_0.png deleted file mode 100644 index 11ec4f1c..00000000 Binary files a/docs/source/useful_scripts_files/useful_scripts_21_0.png and /dev/null differ diff --git a/docs/source/useful_scripts_files/useful_scripts_23_0.text b/docs/source/useful_scripts_files/useful_scripts_23_0.text deleted file mode 100644 index 89f2fe41..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_23_0.text +++ /dev/null @@ -1 +0,0 @@ -

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfaceis herenot here
MATERIALF08 Metal surface hahanot hereis here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
diff --git a/docs/source/useful_scripts_files/useful_scripts_26_0.html b/docs/source/useful_scripts_files/useful_scripts_26_0.html deleted file mode 100644 index 9f536600..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_26_0.html +++ /dev/null @@ -1 +0,0 @@ -

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
diff --git a/docs/source/useful_scripts_files/useful_scripts_26_0.text b/docs/source/useful_scripts_files/useful_scripts_26_0.text deleted file mode 100644 index c85c8fa2..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_26_0.text +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/source/useful_scripts_files/useful_scripts_29_0.text b/docs/source/useful_scripts_files/useful_scripts_29_0.text deleted file mode 100644 index 5e261f94..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_29_0.text +++ /dev/null @@ -1,9 +0,0 @@ -file1 = ../resources/idffiles/V_7_2/constr.idf -file2 = ../resources/idffiles/V_7_2/constr_diff.idf - -Object Key, Object Name, Field Name, file1, file2 -CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8 -CONSTRUCTION,GARAGE-SLAB-1,,is here,not here -CONSTRUCTION,SB-E,,is here,not here -CONSTRUCTION,SB-U,,not here,is here -OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV diff --git a/docs/source/useful_scripts_files/useful_scripts_33_0.text b/docs/source/useful_scripts_files/useful_scripts_33_0.text deleted file mode 100644 index 9d5c8f88..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_33_0.text +++ /dev/null @@ -1,13 +0,0 @@ -usage: loopdiagram.py [-h] idd file - -draw all the loops in the idf file -There are two output files saved in the same location as the idf file: -- idf_file_location/idf_filename.dot -- idf_file_location/idf_filename.png - -positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file location of idf file = ./somewhere/f1.idf - -optional arguments: - -h, --help show this help message and exit diff --git a/docs/source/useful_scripts_files/useful_scripts_34_0.text b/docs/source/useful_scripts_files/useful_scripts_34_0.text deleted file mode 100644 index 9d5c8f88..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_34_0.text +++ /dev/null @@ -1,13 +0,0 @@ -usage: loopdiagram.py [-h] idd file - -draw all the loops in the idf file -There are two output files saved in the same location as the idf file: -- idf_file_location/idf_filename.dot -- idf_file_location/idf_filename.png - -positional arguments: - idd location of idd file = ./somewhere/eplusv8-0-1.idd - file location of idf file = ./somewhere/f1.idf - -optional arguments: - -h, --help show this help message and exit diff --git a/docs/source/useful_scripts_files/useful_scripts_35_0.text b/docs/source/useful_scripts_files/useful_scripts_35_0.text deleted file mode 100644 index 33dc2c9c..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_35_0.text +++ /dev/null @@ -1,5 +0,0 @@ -constructing the loops -cleaning edges -making the diagram -saved file: ../resources/idffiles/V_7_2/plantloop.dot -saved file: ../resources/idffiles/V_7_2/plantloop.png diff --git a/docs/source/useful_scripts_files/useful_scripts_36_0.text b/docs/source/useful_scripts_files/useful_scripts_36_0.text deleted file mode 100644 index 33dc2c9c..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_36_0.text +++ /dev/null @@ -1,5 +0,0 @@ -constructing the loops -cleaning edges -making the diagram -saved file: ../resources/idffiles/V_7_2/plantloop.dot -saved file: ../resources/idffiles/V_7_2/plantloop.png diff --git a/docs/source/useful_scripts_files/useful_scripts_37_0.png b/docs/source/useful_scripts_files/useful_scripts_37_0.png deleted file mode 100644 index 24180c22..00000000 Binary files a/docs/source/useful_scripts_files/useful_scripts_37_0.png and /dev/null differ diff --git a/docs/source/useful_scripts_files/useful_scripts_38_0.png b/docs/source/useful_scripts_files/useful_scripts_38_0.png deleted file mode 100644 index 24180c22..00000000 Binary files a/docs/source/useful_scripts_files/useful_scripts_38_0.png and /dev/null differ diff --git a/docs/source/useful_scripts_files/useful_scripts_9_0.text b/docs/source/useful_scripts_files/useful_scripts_9_0.text deleted file mode 100644 index 1c50b7ba..00000000 --- a/docs/source/useful_scripts_files/useful_scripts_9_0.text +++ /dev/null @@ -1,6 +0,0 @@ -usage: eppy_version.py [-h] - -I print the current version of eppy. Being polite, I also say hello ! - -optional arguments: - -h, --help show this help message and exit diff --git a/eppy/tests/EPlusInterfaceFunctions_tests/__init__.py b/docs/sqlite.err similarity index 100% rename from eppy/tests/EPlusInterfaceFunctions_tests/__init__.py rename to docs/sqlite.err diff --git a/docs/useful_scripts.ipynb b/docs/useful_scripts.ipynb index 4eec0131..a49d0335 100644 --- a/docs/useful_scripts.ipynb +++ b/docs/useful_scripts.ipynb @@ -1,580 +1,579 @@ { - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Useful Scripts" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Location of the scripts" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are some scripts that you may find useful. They are in the folder \"./eppy/useful_scripts\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And now for some housekeeping before we start off" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import os\n", - "os.chdir(\"../eppy/useful_scripts\")\n", - "# changes directory, so we are where the scripts are located" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# you would normaly install eppy by doing\n", - "# python setup.py install\n", - "# or\n", - "# pip install eppy\n", - "# or\n", - "# easy_install eppy\n", - "\n", - "# if you have not done so, the following three lines are needed\n", - "import sys\n", - "# pathnameto_eppy = 'c:/eppy'\n", - "pathnameto_eppy = '../../'\n", - "sys.path.append(pathnameto_eppy) \n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look in the folder \"./eppy/useful_scripts\", you fill find the following scripts\n", + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Useful Scripts" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Location of the scripts" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are some scripts that you may find useful. They are in the folder \"./eppy/useful_scripts\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now for some housekeeping before we start off" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.chdir(\"../eppy/useful_scripts\")\n", + "# changes directory, so we are where the scripts are located" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# you would normaly install eppy by doing\n", + "# python setup.py install\n", + "# or\n", + "# pip install eppy\n", + "# or\n", + "# easy_install eppy\n", + "\n", + "# if you have not done so, the following three lines are needed\n", + "import sys\n", + "# pathnameto_eppy = 'c:/eppy'\n", + "pathnameto_eppy = '../../'\n", + "sys.path.append(pathnameto_eppy) \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you look in the folder \"./eppy/useful_scripts\", you fill find the following scripts\n", + "\n", + "The scripts are:\n", + "\n", + " - eppy_version.py\n", + " - idfdiff.py\n", + " - loopdiagram.py\n", + " - eppyreadtest_folder.py\n", + " - eppyreadtest_file.py\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## eppy_version.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Many scripts will print out some help information, if you use the --help option. Let us try that" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "usage: eppy_version.py [-h]\n", "\n", - "The scripts are:\n", + "I print the current version of eppy. Being polite, I also say hello !\n", "\n", - " - eppy_version.py\n", - " - idfdiff.py\n", - " - loopdiagram.py\n", - " - eppyreadtest_folder.py\n", - " - eppyreadtest_file.py\n", - " " + "optional arguments:\n", + " -h, --help show this help message and exit\n" ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "eppy_version.py" - ] - }, + } + ], + "source": [ + "%%bash\n", + "# ignore the line above. It simply lets me run a command line from ipython notebook\n", + "python eppy_version.py --help" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That was useful !\n", + "\n", + "Now let us try running the program" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Many scripts will print out some help information, if you use the --help option. Let us try that" + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello! I am eppy version 0.5.52\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# ignore the line above. It simply lets me run a command line from ipython notebook\n", - "python eppy_version.py --help" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "usage: eppy_version.py [-h]\n", - "\n", - "I print the current version of eppy. Being polite, I also say hello !\n", - "\n", - "optional arguments:\n", - " -h, --help show this help message and exit\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That was useful !\n", + } + ], + "source": [ + "%%bash\n", + "# ignore the line above. It simply lets me run a command line from ipython notebook\n", + "python eppy_version.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Redirecting output to a file" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Most scripts will print the output to a terminal. Sometimes we want to send the output to a file, so that we can save it for posterity. We can do that py using \">\" with the filename after that. For eppy_version.py, it will look like this:" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "python eppy_version.py > save_output.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some of the following scripts will generate csv or html outputs. We can direct the output to a file with .html extension and open it in a browser" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compare two idf files - idfdiff.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This script will compare two idf files. The results will be displayed printed in \"csv\" format or in \"html\" format. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You would run the script from the command line. This would be the terminal on Mac or unix, and the dos prompt on windows. Let us look at the help for this script, by typing:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "usage: idfdiff.py [-h] [--idd IDD] (--csv | --html) file1 file2\n", "\n", - "Now let us try running the program" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# ignore the line above. It simply lets me run a command line from ipython notebook\n", - "python eppy_version.py" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Hello! I am eppy version 0.4.6.4a\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Redirecting output to a file" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Most scripts will print the output to a terminal. Sometimes we want to send the output to a file, so that we can save it for posterity. We can do that py using \">\" with the filename after that. For eppy_version.py, it will look like this:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "python eppy_version.py > save_output.txt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Some of the following scripts will generate csv or html outputs. We can direct the output to a file with .html extension and open it in a browser" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Compare two idf files - idfdiff.py" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This script will compare two idf files. The results will be displayed printed in \"csv\" format or in \"html\" format. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You would run the script from the command line. This would be the terminal on Mac or unix, and the dos prompt on windows. Let us look at the help for this script, by typing:\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# ignore the line above. It simply lets me run a command line from ipython notebook\n", - "python idfdiff.py -h" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "usage: idfdiff.py [-h] (--csv | --html) idd file1 file2\n", - "\n", - "Do a diff between two idf files. Prints the diff in csv or html file format.\n", - "You can redirect the output to a file and open the file using as a spreadsheet\n", - "or by using a browser\n", - "\n", - "positional arguments:\n", - " idd location of idd file = ./somewhere/eplusv8-0-1.idd\n", - " file1 location of first with idf files = ./somewhere/f1.idf\n", - " file2 location of second with idf files = ./somewhere/f2.idf\n", - "\n", - "optional arguments:\n", - " -h, --help show this help message and exit\n", - " --csv\n", - " --html\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let us try this with two \"idf\" files that are slightly different. If we open them in a file comparing software, it would look like this:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below\n", - "for_images = doc_images\n", - "for_images.display_png(for_images.filemerge) # display the image below" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH\n4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN\n8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqw\nK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTk\nmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99u\nit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/nd\nzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqv\nakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/\nZ39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4\nH++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HO\nFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9\njdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3R\nB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0\nRupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk\n03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAACXBIWXMA\nAAsTAAALEwEAmpwYAAABpWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxu\nczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJE\nRiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi\nPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0\naWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOlBob3Rv\nbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgog\nICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3Jk\nZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KMn15GgAAQABJREFUeAHs\nXQeYFEXafmczYUlLzohEJaoICiYEIybEgJ5i9kxnTr853xnuDOcZUIwgZlRERIKJKDkjSXJaFthl\n8+7839s932xN0zO7y4IgVD3PbFV99aV6K3Z3dW8AEoLBYOfCwsILJHme/NqQti+C+IFAIEB/HPOa\nZuwXysvvp8OkqT7SNK2xybe30mqLMUO0+iu9rPxl9XdP6yurXeUrr/3y8qudaLHqY7mmNY4msyfp\naosxg7azt/8rvaz8ZfVxT+srq13lK6/98vKrnWix6mO5pjWOJrMn6WqLMYO2s21/O/+b/Uz7RVn7\niykbK72n9cWy5VdWXvvl5fezadJUH2ma1tjk21tptcWYQdvZjn87/s0+p/1CadJfFslvRFJS0nAp\nmxmQTJeCgoIXiouLTyCTdigV2JMxdZsOaZrxngqqc0/p25N6/Oq/J/VXVNfexs6v/kqrqO8qv7fr\noHZ2J9a6MmbYk/1+d/zxyuxt7PzqrzSvL7ub39t12F2/KKd1te1f0v8Vk4rgasra9jfRKF96b2On\nbW32f6WVz9Po3Hu7DtEtl16idTXrX7rUn8ext7Hzq7/S9lQt93YdKuKn1nVvtD/rHRcX92NiYuJt\ngby8vKdkQ3+fGqqI03+2rDYgYwYvaH+2P3+2PVt/96mObX/b/+34t/Ofnf8jb5r92evRn23Prn92\n/dMxb+d/d/TJxv6ZQG5u7uKioqLWJOnmyC3+6y8S5R305eVXnPbXWOtD/zStsZ/PLDODDhjGf8Wg\nddV6lVaf8vLv75hofeinpjX2851lZigNL5N3f0xrXbVepdWnvPz7Y51Nn7Q+pGlaY5NP0ywzQ2l4\nmbz7Y1rrqvUqrT7l5d8f62z6pPUhTdMam3yaZpkZSsPL5N0f01pXrVdp9Skv//5YZ9MnrQ9pmtbY\n5NM0y8xQGl4m7/6Y1rpqvUqrT3n598c6x8fHLwns3LkzKJt6p9FNJwmA7PrDd79Z5gXFC4Ip75eW\nJwKOTsaULU1e7Xl1qZyXrvyMGTSvfCrH2CxXfpPGdGn8Wk5eBtXr5krkNW/aUX710atLZcoaqx7y\nM23mVYfaUD+VR9tD+VSHbf/Yd0IUT8VNcTXzxFiDmSZN5RlrWnnLG2tbUo5pM6+61AZj5WPatn9k\nGyk+0fDSdtRyE19NM/aWq5zyaDljTWtZeWOzvZk286pLbTBmUB7b/rb9tU9oX2HfsPO/nf91jjDn\nC9IYvPOJQ4zxh/MM+5TON6XJm7ZNtSpn0phWfvVP88qncoz9+E0a06Xxazl5GVSvmyuR17z6pXmV\nZ6xpLStvrHV1dGVmZoZnNC1Q42qIcXZ2NjZt2oStW7ciKyvLsVmlShWkpaWhTp06qFy5ctgP8jNU\nVJ9pP6xcEko39dO/zZs3Iz09HXKh4rBXrVoVtWrVQt26dSP8M3WpDtI0HavTKY/ya0yf1C/SYgXy\n+QXVHcu+Kaf8jBnUfjT9pqxfurz61K5Xl9ovrz4d9Ko3Wn2UXl79Xj+ZVx1mOhb+Xn5TTv0iLVZQ\nfLw8qjuWfVNG+RkzqP1o+k1Zv3R59aldry61X159B2L7Z25egx1xtdAoTefHQqz5fQk2ZeaiSloT\ntG5eF3EhABUv2/7+/bkoZytWb8xDoxYNkSh9XvHSfsh+t2PTSixbnY645FQ0bdUKNeJ3YPH8ZdhZ\nGI86TVuhaR1tBxd01cGcpk38C7PTsWZTPho2b4CkEA/yM7Bw0QrkiM7azVqhSa1KztjT8edqjv5X\nx4eXw8++0ry8zGsZYwa1H02/wxTjT3n1qV2vSrVfXn0H4vj3YsO84uMtU7zM/qc0Ly/zWsaYwbZ/\n5EWYA0opfxRDsmk6Fv7Ko/waE3vFn7RYYW+3f/x99933SCwHWJaRkYGlS5dix44dqFGjBho1aoTa\ntWs7YtxIb9u2DSkpKahUqZJDY8XNyjtE+aO0suhLTk4O61N5janHDNS3bNmyqP6xnProowavDtKV\nFg10ldVY68N8WWVUljHl1aZJL6suP3kvzZtXu6a9PZ1Wm956kO5H8/OJvNGCX1lZaaozFr/XR5Xx\nxtShvBp7eWLlKe/nR1l1+cl7ad48/fGzGcvP8papTW89SPej+fkUy0e/srLStC6x+L0+qow3DgZz\nMW/s11iQUxMt6lb1Fks+D5OGvo8Ji+PQpWtTxAvl9/FD8dUv85CVm4l5y4vQuWMTJHgky25/1/7D\nepl18+Zpyiz3mN4jWbXprQfpfjQ/n/x8zNk4C0M//x4tOnVDVQFt47wf8c3sLLRuKRdGojt7wyy8\n9dForNmRi3ULZqFKs6ZY8tUw/LRgPXK3L8WmuOZo17iaU0fVTx0j52Sh1SF1HB0sNH3M3RRpE0Vb\n8eWr7+G3FRuRu3k5NqWIzobVImQcA2X4ozh5WU373jIz7yfvpXnzlCdtbwa16a0H6X40P59i+ehX\nVlaa1jsWv9dHlfHG1KG8Gnt5YuUp7+dHWXX5yXtp3jz98bMZy8/ylqlNbz1I96P5+RTLR7+ystK0\nLrH4vT6qjDemDuXV2MsTK095Pz/KqstPnrQEXpUwqHJTIWly5h4rVqyAvFWLww47zLnjnZDgLkPy\nGUznDv7ixYuxcuVKyCd1nHLVSV3UoTp3Rx8vFEx5L0g5OTll8o91oH/c2Ks+00/FQMvMvFkHta80\n6tDHlEpjrEFpqo8xbZh0L6/K+/Eor6lHaSpH/Vo3bxnzfnpNWVPGz1eVVzusv6lXbXtlVU71a7nm\n1QfKq26WMc2g5U7G88fUZaa9cqYPpp/Kp7bMvCmjZpVGHbb9/+LtX5yFmb9MRZV2x6B1XffGRNna\nP4htf6zBmpQCp29qn2DshmKkVItHXH68Mx6LinOwZlkGGhx9Pi7q3kT6dRCFcvRRub3ymtc+542j\n9XPStW+rTIlPf87437Z6HmasDqBHD1kz4krGrzm+ovkfbfwXB+ReeaAGAsVFKCoKoDBvM9YviUfh\nSUVIkDpvXD4fSOiCa684Ebx9U7B1AV7JCOL4C6/AkQ3lDn2wCAXGUVPaoY51i+NRdFIx4o21irgR\ns2Ag2bEZFywWTAPI2bgCf8izFdUZDBaiWBrQ4Q3JR8Na6VpvEwu1p2Vmnmm/YPKy3NS/r9uf/qh/\nWk/6p2mznGkG9T9a+2u5yx35V22RaqaZN+VMHxQj9cksUznVpTykMygvddj5/y8+/xv7C7OdtY01\ndlve/au0/bH947Rj01WzQppfv36904GbNWvm3O3m+Xtu9PljmnfAWUY9GzZsCC8mqktjgsBAHqZL\n00ce8lKeaZWnDjNdHn3r1q1z9NFX/tQ36mTQvNrTvMZqVzFTPtVHHVrGNMspq3KkaZ408mqscsRU\ng8ox9v5UVnkowzT1U4fSNdZyjUnnT+2SrvVkmkF9Vbqpi3Iq602rrBmbsmqbflJWY/Izr/ZUXvmZ\nZzB1uRSXpnTq0LSJp+pmrGmVZ6x21Z7mNVadlGVQPtVHmpZpOWVVjjTNk0ZejVXO9FflGHt/Kqs8\npj3qULrGWq6x6lO7pGs9mWZQX5Vu6qKcynrTKmvGpqza1nbXmPzUpfZUXvmZZzB1uZSStmCeOpTH\nxFN1q78ldnIxZ95C7HTupZfo0nKNVSflGYLBJPS86hZc3rNxBBYsI0swGCd34eMQ0PM1cvGwLjeA\nRLlln1+Yj7yCAtkQuv1AdZr+qj3G3h/5lUZ7DMzTV+pgWmlOIlSuNJVVu6RrPZlmYF51Mq86maac\nynrTLM/etAALZ83EztB0ZsqqbW13jVWv6YdZnwS5OIiTn+pq0HUAbr+pp7OBJy0pMQUJlWUTXpCP\nAvnl5+yUOgBxzsVTgWBe6NRJ/aVu6rjj5l6ODrVLXfSJ+YR4sUklEkhnPhBXHQ2qx6NA2rCg0J3D\nTCwc5hA/dai/pGueNMporPK0q0HlGHt/Kqs8lGGa+qlD6Rprucak86d2SaesGdRXpZu6KKey3rSp\ny09WbWu7a0w56lIZ1aP8zDOYfrgUl6Z06tC0iafqVn9NO9SjebWneY1VJ+UZlE/1kaZlWk5ZlSNN\n86SRV2OVM/1VOcben8oqj2mPOpSusZZrrPrULulaT6YZ1Felm7oop7LetMqasSmrtrXdNSY/dak9\nlVd+5hlMXS6lpC2Ypw7lMfFU3eqvaYdymld7mtdYdVKeQflUH2lapuWUVTnSNE8aeTVWOdNflWPs\n/ams8pj2AnJG3pn91RhjCjBmmD17tnNmnmfTeYeeV6VaRoXk5R17nrXnUZzOnTuHHSAvy+WNXCfe\nHX2dOnUKg6L6GDPQ/u76R3mzzqqPsQbqVx7StN4am3yaZhnrzODnr1cfec36mOXaYEojn/pE/ZpW\nPqWZ+khjUB0au9SSv0pnTJ8Ya1D9Wh8t09jkI438/Cm/2f4sN/Ehn8pQj6aVThrTDKrPrJ/ys1zT\nZkw6g+rQMtI0zZhBeZxMKK88pCmfxiafpllm1i9W+ypvtPqoP+RjmnyM1b6mlY8+KJ+mTb/8+P3K\n93X7F+duxpQJEzB96UbXvbgmuOCqM1E3OYilM37C6EkLHXowUA99zjkVrRtUcfIb5o7FhPVpOLFN\nHL4Z+YscfgEaHH4Szji+HZIEt6Kd6/HrmNGYty7bwanFsf1xeodkjH5/OFbkCnNSIorz66L/oDNR\nvER0rauJ7k2y8e2EOaje6Qxc2rO5Y0fx5/GaWSM/w8YmJ6BvhwZO2Y61c/DliJ/BN5WqNmyEog3r\nUVTvKAw6ryPmjngHU9bJZhHJKJYT2n0uugiH1pA7+aH5LFc2wsM/nYtjLzwXLWslOj4Gs9fhq/dH\no+U5F6NFcDm++fInpIfml+PPvwod6ldy+Bzj8ida+2etX4Rx4yZgzXZ3bkpodAwGnd1ZvCjE8pk/\nY9TEBe54CNRH77P7oG3DVEflhrk/YPy62jhBvo828ttfkSs4NurQG6cLpinSLzPXzXN82ip02j5h\nwNU4FIsx+NNfES8b8CJZG1KbHouLz+qCdNH14/paOKphFkb9OBc1OvfDJcc2DY9DGtS+Tl3I3YDx\n34zAgo2FUlAbXTvXwOw5mRhw1QDUSQ5g/Zwx+H51XVx0ekdsnvUdRkxaIdgG5UZTivgid/Xzs1Ag\nQzsod9mR0gIXXnoq0pLcMaS21s0egzFr6uDiMzq75/RzNmDc119g8RZZ24K10KVTdcydtxPnDToP\nNXYuwfsfjxed0oJJMh7TjsYl5xyBBPoaCvTfjn87/7M7cFzb+T9y/+cdH941yRz/TDM4c0EZ8TT1\nqbypQ/WTpmnlUzssYzB1Ma98GpPGYMqxbF+Pf5mP3AGojqqD6ph8x945UqN8pJu8SueLsuTllYaW\na5qx6i2vPtVPnXoVo76xjE8MaFv5yuKf2xTuX+pVWcbqO0u1jGnl8dKUjzED+TSon4xVt+ohj+pS\nPtK8/pOmQfFUG6pTy5Vu8qkNlnGSYVm0zSH1qA71ifJKV5rGpGu5wyR/TP/VD8aq1+RXXtXn5dE8\nY8pRD4Mfv/KwnGmVpZzmdZIljwaz3NTBci1jWnV4acrHmEHtMq1+Mlbdqoflqkv5VIZ0BlMX84qn\n0lUnyxiUbvKpDZb9Jdq/aAdGD/kEfwQq4ZjTzkerOklI37wDVeQO6YqJX+D7WZvRtU9/dGyUhKVT\nxmPsl++i6Pwr0SYtCcUFudi2bBI+X56C7qeehcrpszFh+gQsaSvnntMSsW7eT5i/sQ7Ou/QEVMnf\njowCmTeQiI7Hdce6MVPQqPPx6NAgFdUTgkgvyMOOldMwamV9nHTa2ahXt064byvOjLO370BGbbd/\n56cvwodfTUTDjifh3K6NsHHRJIzdGCdntaVtihPRQm54TF03A4mNDsepRzVBVTkjQh3a/km1GiIt\n7kf8PG8lDul1qFO2YckMbIirj+Nr5mLMkJ+Qc2gvDOp1CLK2bEFStYSwbKz2z9s0D+9+/jOS0tqi\n34CuqBbIxeaMQue4yR9TvsJ3MzbiiL7nhzCdgAkjPkBR/0FoV1suPgSH7csn4csVgqngUDl9FsYL\npr+3a4H2NXfih69+cXy6XH1KjUdSQjN0qTkZc3dUxQlnHodalapAHgmjKD8P25ZPxXfLQ5jWq+P0\nW62/4ur0/2AWxrz3JVZUaoP+A49CUvYa/PDNjzJm0pw68yhMkbywmrulCuQ/KKL2oUehm9xUmrai\nnrRXByTLU5LsjbPxw5QVaHnkyTi8SRpS5dSoziGOYY6Zwq2ODvkEHIqKMzFWbC5PaYNzLzJt1nba\nIq5qQ/Q8sikmzNiMbiecjFqVxTbnttB4NduAaa0XY9bNHIss17zyqYxTf8koHqQzmOOaedXJNIPy\nm3xqg2V/ifEv9fDWX+upbad4aX21jqact0zrr7IOYCFbLNOf6mC56mXaLGdaaYxNGS0jXW0xJl31\nKY/mlU9lVJ/ykc5gtivzqpNpBuU3+dQGy2z7uxdZLlruXxMfL55apthqueKssbaX8ql+bdc/u/3D\nm3p1SCuijjLmHXrebWWaHUMD83SYZeRhnhXVyqtOrTzzu6NP9TDWoHboT3n8o7zpj6bplzdomdLV\nJvNaVy3TWGXMck17y5jXMpVnTEy9dOXVjuJXbupgWu2ZssSLeS3z41N+lqk95aNdM63l1KtpU97P\nluqgHk5A6pPSqUfrpzTTX7WvNI2VrrKaZ0yaqZc0BpVVOy7V/atlSmNeaaYNLWfsV6683jLmtczU\nEc1P8irGXjnVbepRmtqhrGKtZabPyqcxy9Se8tGumdbyPdX+OZuWY5WcV+l40nno2iJV7mgHkJpa\nC0V5GzB9TjpqdDwdx7auj0I5yNzpxN5YuXQ45i/bjNayIQ4GCxCIr4EzLr4ITasKVk2S8NvMNc5R\njICcxw7K8Zr4gJzD3rAd7Vs1RFPRXiQ3ces3bYSqUq+6jZqiQT3hE5zkDIccs5ALgMvOQ4MUd1Eu\nErriFsZf+n0i7w9LW25auQhxCU1wUs92SJV1P7VrH2xb+TZmFbDfFKN6oxaoFz8LiY2boVH9ug6N\n2wPViUB1HNGtIUZMm4fNRx+CNPlyy+xp61G3y5nyFZc4pMQnoHDLRqRnNUVT0REsLgzLhnU4reP+\nUdqGFQvlnaia6HdObzRMkYsIKa5eW55c5G3Eb7O3oKZgekyrei6mJxHTj7Bw+RbZ1DeSu9Uupqdf\ndCGapcrc0TRZMF3nYCqVRZLcjadPW7Obo7Hgx3PrxcFqaNm+MeZNyUY9+ahCmmym2U+Cginiakdg\nyqe82ie1b5E3X/rBCjm61P2UY9Ggptx1r9Ue/c8vxNufzxO0Xcxk9MjAdp8CJ1auhcZp1TFjQ000\nadDAeem1ILEhMHWFtG9zp12LeVNA2llxIUrFsvmnDoa8TSscmz1O9bcZSKiKQ5o3xoSZO1CviVkv\nR9z5o7rD/UOomvaWMa9lJRpcrLx05dXx5ldu6mBa7ZmyirWW+fEpP8vUnvLRrpnW8j01/qmbOrV+\npj3HcOgPfdQ6aMwi9V1pGlOPqVd1meVK01jLzLzS1D8t09ivXHm9Zcxrmcozjuan1oE8XjnVzTIN\nSlM71GvbP3L8K0bE0xu0TOnMK82Lv8nDtFmuaa8s81qm8owr2v4JelVHRRrUEGO+WJqfn+/E7BD8\nkc6gTjJNHr7U6u04Ju/u6KMNrbxZWeqiL+X1T/2mvNdXlikeJh/TZqCs1y+W0x/1kXnFR2mmnJYp\nH8u0nLEGlWVe0yxnWmm0q2nVwbzyefWZeJppR0lIzuuf6lO62lF5XZyJHy/ySNcyyqoc0+o70wxm\nnmk9rqP+k0fTapexmVZ7qk/LqY9pDcpHGsuIndLIY9s/ckIiJtp2ijdpmmYZ03uq/YPSVHGyqU+V\nO76F0j7U7zyfkU1xnGxsC+Rub67MNU77BSqjQVo85qzdhPwjGwiv3H2ufijqVSqUFyJFkfRFZ8Md\n2nQ37tIbHTeNxLTxX2PKuCA69uqHo9vKBYKcbc+XOhUX5so8FuprspmNq94MNRPykC97UTOU1J1j\nUOzIRraoKAcbVm1FYloXJMlGtUgwCQbzZCPLvueOhWKhU1WQZ74lrUExDASK5Y5zB6RM+wGLV2fi\niMpLsVqO6pzRvp6DQc+zj8eoLydg1Ke/I5jcEKec1QeN5W597PEvX4L5IxPB+BaokkBc3PZ08AuN\nDc7dPN/PUFSULJgmYO66TcgrLsG0fmW+ZCrtIXxJHE+sH6riuLNPwKgR8gWZ4UsQqNQIJ5/RG81r\npTjnzWmjSAwWh87Bu+2zK6Z+479I2jsQSEHNFOlb0o7EJifUEIVF8nJqsTvn0RWGYnl5tqCY/SLo\n1IU+Fggf+1KBtGtRkbtxl0Zx+pTWn7KcPukDLzvkDBZq8li+tA/bJU9s0kaR6OfTgVypD00W5hfK\nwaVQXxFZBjv/u0+C7fzvdkr2HwZdg0rmDbcPOoXyp2T8u/sK8mlQWeY1bfZd0mKP/8j1j/xqz5tW\nm+qn5rUeJl3TqmtPzf/0ya7/FWt/5069Np7ZUKSxwfitd34Skp+yZOfhj6AzcAOkgTw8BkMd2llY\npjoZ88dv25dVH3npA/VRlkE7kdoor3/qs7fzUDdpZjB9J522WX/G/CnNScgflddyxqbfKkOaSde8\nlmtMfbSnesnHMv6Y1nJzI6o0+qRpxqY9ylOv6lP/Na/21Q7LmVY5TZt6yaN+kE4eBtXJmD/1iWXK\nw1j5SNc28parjOphXuXIq1gpTf3TWPWpvDl5UBf5zKB6GDOoDcaqS2OWq7yWMzZllZc0k655LdeY\n+rRO1E8+lvHHtJYr7uoDZcw0+Ux7lN9f2z9O7v7S1+07c1EsR2oYHDxkQ8VNVNXK7terHKyDO7Ap\nQ+6It6/Nz3gRINltyRdlpOvJiXQUyya0iFhIGfmDgVQcfebfcFTeNsySjf2MST+iabPz5e65uyGL\np7wGvt0qBovkiYD5oiRx0zYQzxyblOIZ7pp1KqFwyQ7kikxl2VySr7DQfdGSaacdnHHntiVNkc76\n8sc0ZGPcsWECZs76Ddnx8kWxpj1QN4kbSilKa4ULr2uNHRuXYvRXEzBu/FwMPKcr4p1Nr+s7bUS2\nfwoatqiOBXM2YkeufNhAIKUdl0cunKSa1aq4n/p1fJCXeTfJF2OqtIvEtEDqRExppZA4Sb6wsADJ\ntQ7FgGtayffhXZ8m/LgAF8tZfXk4IWEn8mVzzmVC68jGoRaqcOprYKB59uegbKLjAvnI2FmA+pXk\n0kwECnJzxO+SeaRYrgAdV6TOPILj2hBbIZ3FRY4Tjq9O+xNfCeRj3tl8OtwOWfoLnxoUICO7EA2q\nJIVtkp/BwU3S7su6nONCbeaKOzqVj7z8mbJaP9fPEp2a13KNtS0ZM5CPZfwxreUH0vhnPe387/ZT\nbV/b/pHjSPu+d0xwTiNWOk40rbGOK5U/YNd/AsPKsuL86aShEwf/sRT/mRNfgiVoumBQjqAwzzLy\n1KtXLyxP4PhjMEEmT1n10bb6QT3qmw560vi9/PLoowzrqbG33trgXiwcgZCs+qE0jf3oXj1qT2PK\nUs7kI4159cXEj2UMLGegrJabacVI+UxeplmuZWqfeab1p3rJzzQDyzSw7c288pPGtMoonfrNtMoy\nZpnXPumqS20zr3UjjTIM9IV01e8Q5Y/Kqy7SVUZtmnYpr3SVYazB5FWaxsqvecYmP8tVt8bkUbop\nz3L1RetEmgZNU0bLzbRipHxqh7wM+2v7J6TJ0RI5P79w/FgsXJOOnJ07sPaPP5AlL0p2blMZ6bPH\nYv7adNlQZmOlfF1lnWwuW8l56QDbX9LO5YzRXtyzufgUyecPF2DZ2o3IKU5Ajbq1ZNOYIj/pd7wK\nEFzWrtkgd3ndcVEsuoiU2SbBgs347sO3MW6e+0UwB8jwpjCI6nUayOcWl2DyrKXyT/A2YOa4zzBP\nXkwNJIb06D0Qox9QB22wnRxb0sStOh+O4owVWJ0ewBFdWgiH9Mn8dMz4bR42pGcisWoNVJPNbby8\nEMrvs29a8CPeevtz/L7VfYJBPSXtX4Q6zQ8TDTvx/Q+TsHlHNnZu34zl8p31ovg0dGlTBelzxmHB\nuq3ylCILK2bOwHqRb92kloOJJB1MzQsbYsUQKNqGmdPnuz5VqYHqcXK8Sb6GRp+q1UhzNuU7MjLl\nqI77zoFA6ugy60s9mg9jIPLJ1euhitRxxtSZ2JCxDX/I+wmfjl0gRuV4lIxzDbLNdZLO+A+1P/WF\nQ7j9OZfkYd64zzFs9GzniQntme1Mm6nSj2ZMnYF18k8MVy6ciE9+cG2qPmcIuh1DSeGYdiNsS4lZ\nJ7Oeru2SOdzko0Lm2W81Vlk1RjoD6QfS+Gd9vD+ds5SufZv1Vxzs/F+yVhInxUjxMfsK0/vr/K9t\nbMa2/d2LebMtNU2cvOM/fPyGDc1gMrHh+W33xo0bY82aNc5LqdxE8+44A/+z7BZ5YWv79u0OD3kp\nozocJs8ffu++PProPPVpMBu4vP7x85uqT3VqrMDQjtLMWO2qHzqJMCaf8qoezSu/xlrOvPJ4ddNH\n0rThtJyx4qt2Va/G5FG9pKku1aFljKmLQcuYJl11aFrzjFUfeZk2/SC//kyd5DWD6vPTrzTGDGpT\n5VUvyxUflnnT9IvBq09pql9j9UnLvbHaJZ2B+omf1t+rR/Mud8lfPzte3Yqx1knLGR/w7V9cGSdd\ncAYmjBqFqfKPnaZINwjE1cRpAxqjRY+zkV00Cr+N+RpT2T/kbnqn4/qho5yDz5djIXHxfFLoLljx\nzriUO/bCI3tD6R/52LxyOmat1/kpDm2PPV1eTJV+FF8TR7avg5/mTMBHcyrjlAHnyQ0L0SUbRrYj\nPzup7ZZbJAfE89073UXyJCAg+rnHY1tVb3k0um/YgalzJ2LVbHnK2aw1mlZfhg3C4PSHhGT5p0ly\nIyT0BRbtI9q+2ksSax+CZgnzsLZqG7SoqV8OC2Lj/Gny9ZfJDltcfH2ccExLVlZwkM85JmQhJy9f\n/EhwbYWU0a+EGq1wbp88jPxhOkZ9scS5U55QqyMayMVQ8xCm077/ClNFhvXp1OssdKwvmMoRlLg4\n/p8QF1Nu7Hn3O1FiYspH7vRpjvgkCAn+9cI+pTZsi2aVlmLSqM/xa3xbXCgvu1KXIOFgxTvrrD/r\nrthGxEn10fekLhgxbha+/0q+dhTfEMce2x5TJrtfRHJk6ZtoZB0L5MdnCXHyVRyOEbZ/gBcZ8nPb\n390EF+bIURz5DCXfm+Ds5/QZkXTmQsdmZ3wpNsd8vcix2bNnyCb188mAo0/u4ot+2rXjv+TGDttE\nf94+LVCHg7ZzzPYXXQzkJc4aVC9lTbo3bed/FzHiQsxM3FhC/Jw+L2ktUzrzZjtqnrHqIy/T2v9V\n1pQjzS+oPvIyrXlvTFnSzLZlnoGyJt2bPpjbPyDfoRd8Sgaj2UjaaHwRlRP4pk2bnKMz3MwzcHNf\ns2ZN5w49eXg2U+UJvjaSNh716d39WPrq1q3rvPxKHgZtWK9udkqW8UKhQBb1aP5RHy84yKP6GNMv\njZlW/Q4xVK51cB7VhnDScpWlHPnoD9OsJ/MazLTKaJlio3QvL+mkqX+mbqUx5s8b1BfGGpSPOrV9\nVZ4xeZVHy1VW/WDe5FUZ5WcZeZVf8yzXR16qk7H6adLMtNdX1a3tr3ZUxsxrWn0kD2kMWk/G/Jk8\nWq7ytv1L+qFio3hpvMfaX15cTJIxXShnz3lvNzE5wTl6ERR6QoIcApFjEk5vl6M68rVwOTsdaj/Z\nNCfFy0uWct6ZG3HZlck7N/LRxnw5yiN64hNlMyayfOE1LiFJ7ijz2+Xc5Aun6JWeL2nZvMnRj2B8\nMhLjisK63PaPk3mEb30WOHf0BREkyLwS7/xTIx4zkQ9Vyt3zovwcsS+2xW/HrjwN4Nls6WFSLnea\n5fvmtKs4mv3RTbt8/IdHee4hf/GL7w/JHCZfGJMOLHYTna/JyEwj73kmiq8y/xTmOVg4iuUP20Xb\nJE54Ehw/ZKMudWc1cnPz3I2v1L1YsCZmCUlyvKlY3iModJ+cJSRVcjDNy5O5U+zSj+RkaRsHU3lR\nVhQVybxKtOPkgkWccM7eB6StkqX++bnShvIuhDiCYFwiUhLlXLrYddpPXvSlHfVT/WabJ4jeBNZL\ntt750r5xbB+xT1XsF6x3MJCAZPlSkbZ3fKK0mdQxv8Bt/wDtiZ4Cx1f6Lhd5ScnysjT7iPs/AuKk\nz7Cdc8VPbtQD0qdoM0/8Yn/hzMnpk0dz+HI2aDPRfbeDp3t03mC72fnfbUtiQjz407mVaTv/uz2c\nmGhQrJg301rOWHHUccI8A/l17jV1OoXyR/kZa1A+bQ9T3tRHfp07VFb9YN7kVR3KzzLyKr/mbfu7\nSBIPDYoN82ZayxkrjtqezDOQX7E3dQbWrl0rebcRCLrZGI5k6A83zvxx866KOIlRhpt5pk3FqlMd\nMnUxTT2mPtKoixt5br6Z5k9tsVwnTaapnwut0qhPf5RhYBl/6p/qUt8Yk0Y7mqYc0wwmv/IpoA5D\niEd91TLGpDE20yqjsfqhedOGWab+MCYPg9JMG6SrDqYZWG7yqg6lkYdp009ThuUM1Kt8zDNtto9X\nRnm9dMpq8PIoL2P+TP2U0bZmmrJm+yu/qYPyGkjXOqhdxoqXplU3Y5Nf+ajHDErX9maZ6YuZNuWY\nVj+UrrooY5Yxrfzk0TRj8qoN5lUH0wyqy0yTR3WSrra0DqYMyxlUhmUMlDHbxyujOr10Rzj0x8uj\nvIw1bdZH21/LeDeWL1GShzT1X/Uyr4Hlbh1Ikf4uf7mJVf2U4V1dhmLZTDO4/CUXfKrfKQz9UXmz\nTGlkMf0y5ZhWP5Wuclo/xsqnMfs8g9aNPGqDdNXBNIPqctPsO1JnYhXqU6TTD5VzLEo5aWZguekv\n0/SBdAbTB+aV15ETvkht5JB/ULV+Br4cvyjso/rK+LDe56JjXTle5LSJSIs9bWvKUv/eG/+sj2AZ\nwom2wviwwAhKN9tfsWBspg0xJ6kYKV11UcYsY5pB/dA0Y9MG86qDaQbVZabJozpJV1taB1OG5Qwq\nwzIGymj7q7yfTj9djoKQDpYrjxkzbeqnjI5/pmlr77W/i7fWmbYUV/plBqUrdixT3xmbaVOOacVN\n6aqLMmYZ08pPHk0zNm0wrzqYZlBdZpo8qpN0taV1MGVYzqAyLGOgjNk+XhnV6aU7wqE/Xh7lZcyf\nqZ8itv3dfkgsiB2DiRXzbKfAqlWrnFItJLMpQEYFX4UoyEDQWWaCrY2hvKqLeVOPpjkwKaPl1Mmf\n0pyCKH9Ut/pONqdShj76pkH1MiYff+qHlpGX+kjnT3lUB2OVN+2b5ZT38rDc1KtpMyaP+qM6SCNG\nakvLSVefyat5lpOfZRpI4491YWCawawbdagvWq56mWda7TnCoT9KV92a9+pnXvVomjH5o9ljeaxg\nypl6vHZYxqD+M6a/Wn/1WflUF/Uoj+mHypv2zXLV55U19WrajKlDfVcdpNn2Jwq7BhN/xZFciqE3\nbdt//xr/HJY8zsNxYgZnfPGuf2ieMsvMtG3/khtHxIW4ERM7/7vrFTEx5wI7/vev8c/2MedtphnM\nNnMIUf7Y8e8//gOrV68WbNxBwFiBMnE0NydmI5hy5NdGYawDyNSj/KYOlVN+lqm8lqlPjL0LAHlI\nV93MM1AHAzf1qpN51aV6TLuqh3xarvwqS7rKkMZA/eaFDWkqp34oTfOMlYdlGkjTMpPXtKk8pgz9\nUrrG9IkTPIPpH8u1fixTfsb8eYPqJl19Y9qU0zKNTX9JY1B+UwfpzCs/05rXMvWJsek3yxlIV90u\nxbY/MbTtb8f//j3+OdajjH+ZuzgTsR/b8V8yP+p8R1w06Lyoc6DGdvzb8b9/j3+3B+t6z1h/3A8w\nMG/Hf/nGf/hMvYLH2BsUVJNHJw7ymhsylSUv6bohNPmVx4+mZX6xl7+0PHWQh8H03SGE/vjp8OM3\n9ai8V5Z01pkDyeRn2uQ109F0eXli5Vnmh7PirzaixapbYy8f6Qwmhiavbf8SxGz7u1jY8R85Zszx\nYqa153hp5cmT147/kpsGiiljYsNgzl0OIfTHD2c/flOPyntlSbfj30XHjv/Ifmf2FTMdrS95eWLl\nWWbHvx3/7Af8JUyYMMHpV+akxwIzaJlJKy2tg5oxA3Vq2k+fd2OoPKac16aWMebP3Ex7eVWfxuTX\ngeDl9ebVjpfOvJZp7McTi4/+aN2VjzHpZvDTTxrrQHkGr4wpz7RXh2LBMk1rTJoGP5qWRYsp460X\naQx++pTXy+P12bSnZYz5s+0f2WdMrJhWvJRutoOmNVYexn40s9wvTRltU5abtv30KS/LGJTHlHMK\njD9axpg/2/62/dkP/IL2J43JZ+f/krugiovGJoZ+NLPcL00ZHdMsJ96kMfjpU14vjynnCBt/tIwx\nf3b82/HPfuAXtM9pTL4DdfwH0tPT/VHwQ8bSLAIWAYuARcAiYBGwCFgELAIWgf0Ogcg3lPY796xD\nFgGLgEXAImARsAhYBCwCFgGLQGkI2E19aQjZcouARcAiYBGwCFgELAIWAYvAfo6A3dTv5w1k3bMI\nWAQsAhYBi4BFwCJgEbAIlIaA3dSXhpAttwhYBCwCFgGLgEXAImARsAjs5wgcQJv6PEz5+iP8MGdT\nGPIda2bif08+gNvvuB+fTl4bptvEn42A2zYz1mfvhuHyyJaHdzdcsSJ/CgJrpo/Ex+MWx7RVFp6Y\nCkKF1PP+19OQVxZmy3NAIhAs2IQv3huBDTn+34ww15HPpq9DfsYivPXsg6F1ZVW5MPH2t2BBOsYN\nfQG33347XnjvV9sPy4XmnmVmu374bvR+EMtaeWTLwxvLpi3bdwiUpQ3LwrM3avCX2tRnzh+KtPo9\nMS+z5L+lhkEJFmLSKw/j2Z9WuKRgOl49/XwMXlMbPbo2wpbNmWHWiiS2zX8HDU59FZky/2+jP80H\nYpHhT9byEUhreQ2WRlkgKmI7mqzpUzSefUqXtpn40IOYti6n/G6UIhvRJzy8EWXlsGziGcxZjBta\nNUFaWlr41+z4S/CfYb8i238PUA5Lf0HWgj/w97bH48f1+XvN+bXT38Dfb//WGWPRjJSFJ5qsSaee\nWx+ehvyDsS1NIA7idDB3Hf5119XYUuh2gilvnI2WF77njm/POpKzeSXeuu18vDivCnoc0QL5BZ6O\nE9yJf3dphdenp/si6u1v84b+HwbcPR6H9TgSSfnZkH+wW/FgjlHx5/0bO+Pouz6PuGCY8e51OPSC\nwX/qHDbhuX646t05Fa/fXtKw84/JuOWeZ8P9oDxmYsp6+kQEr6eszDbNNhahGe/eGl6fdK26+cm3\nsWTL3puny+zrPmA01/C9YT6iDaMYKAtPFNEKkffZpn7usNtw+JXvRUw0pdUkudGx+OaTV9C0ks/3\nWAMJqFo9ATWTE1w1BVvwY3oW7rv97xhwyY24vl/b0tSXqXzed5+hZ78jkKouFEZeLBTmZAB5G5Ab\nWiDKpLSCTLv4VEF9pnju8k/dC5cKXqQE6sYhOSHUNqaBMqRjyXr7hMPr/hNdeMvKYMphicAzWIAt\n+YV4bPiPWLx4Pn6b9gvevK4DHr/pLJx49+d/6qJYVv/LzpeH967siJvKsdBmrfgVHyeciMPqJ5bd\nTDk5E5NSkdQgFaFm9JVWniQdh75cpRMrV22ApHpJMW2VrsVy/NkI7M76Ec3HuORKqFGlR7j40D6P\n4917eiKZfcuzjlzatz7Gj0/HQw/chgEDr8HAXs3Cck4ikIx+b32Avi2rRdJDucj+VogF06agzyNP\n4qoBA3HT1X1QuYL9mWa8YzRrZyHS/9gaeeEqm8mdkUuXr797jFi8Dl8Nno2ze7XcYypNRXuiPwQS\nk4CEmkhIKH8jxJT19IkwLyvgKTPrFCvtbWNAbpg1uBkT5y3CvNm/4Ycv3kTmWw+gx5GDMC/D5yZo\nLOX7Wdnu7EEi1vC9UJ+INoyiP8yzG/0pisoykXfZ1OdtmIWn/t4/fNV31zD3ypr0Jy/v7dIb98M7\nYxeFDcz77FFc8+RwjP/kGae86QnX4vslW53ynWum4eHLQnJyt/OLBduRMf8TnHDTe1g/4jY0FNoD\ntCGTzAd334h3x/yAB3q3DN8NDxuRREGm3CV56StsKnCpO1f/ihtPbO7YvOr+f+GX3zJQiUUF6/D4\nRf0wNbcQ13VviL5ia4/cVQ1uwrdvzcUFJ8a6QJCJQYKzfZW7PJ8+d/MuWLJ8wXf/Q496dZyyx96b\niiISJbhYvo+PXroKaYIzn0osGfs2TmtUz+HlhVBEXbw+RbGZv3lWRDs89u748AVV1PbLX47bT7kN\nyByNa/sYOAa34+tX7g7X6x/PfYEtoTtWfu3NeiXKPx4p2rYEQ+48xZG74M63wo+7s5b/gIH978PX\n374Xrufjw0owiSXr7RO0pSGijP3rriswbMKPeLZ/W8eHU274H9Z4L1a8eIqyzMJi1KjTBLVr10eL\nQ9qh78B7Me3DW7H07WswZulOx9zvP30Q9r3Nufdi8uod6ob07e347s2Hw3h1vdFtw7nD7oOOLzKz\nHU6/6yOnfYnJRX3vw/cTPsMFzRo4su9P/gOrJw9x9UjfGGYcKSPud57UYpd6qZ7xE7/GoEMaOuWP\nD5vh9LeZwx7BbSPWYtjtJyKt9T+cJ07R2k8rM+/74eh8xcmoHfpHMtHqRv5YmMSaT9QW46j+BKog\ntfIWjPWZc2L1dcj4GPrklQ4Obc++Fm98/D2qpJZYjObXTGmrgU+NDo3TPIx46ipc9KDe/SzEhFeu\ncecxVSX96GAM+/P6YbZHeP6VJ7/PvP0VphZXDRdvmPsdPp30B4LGOnLnlSfjuOPPQo8GR2NsVn70\ndSWYhxlfvo8Fm0JPJWP0t7nD7sINw1ZhzAM3OE+gRy4x5oywN+VPeMdoUmisRrtIjjbGYs0pnK8/\n+3KwM44+nJ0efZyG3M9dOQ3vBgbi6BaVHYq/zTz88OY9jk7ebT7lhv/g923uhjTWPOa7nxArUeef\nKGuk41hCKpZN+WaXudLZn5S2fkSV9fSJECZO5Okvuv5//rq7vnIvNXqBu5cyxbxtTP+SmjRGk/p1\n0KBxC3Q57jy8NWUEuhWMxbNDp7miMdZtMvz+03BcfHzjMP7cq2UtGYHuh92L33k0QULW8lE4s8+9\nWBlaN3XvMPJDd33j2jdn/Xp8+9zVjp7W5z2KhRmhDZvg/smTsq/hU2854RCuV2ht/mjib7vuD/z2\nIMXR91WOkz5r+O7MS1zbou1zHDvGn6h7tGh9QmRXTy7ZMxCPPRUiNvXBnGW4rVc/PD+2Mb74aRqm\njvsWZx9WG0r/KNBfrgTnY/SrJ+GOC47Fa5M3On7kZ2Xg8xduwPkPbcOn33yMy+LH4sE3JzgL4K/v\n3oShOf0xVeQmfPkJDqmWiBqHHIvnBjVBpS63YMT3Y3Fln1aOnrzNP+H2iy4ELn0eX/7z1F3uWhTs\nWIEvJk1z74LL46e7TroIvx3xmOj+DQOaZ+Hr7XngTfxgoDrOvvFBtE6Iw/XPD8NzN57o3nWpIGq5\na6bj9cKz0aOV/10Yr/ptC0bjuqeH4s2xMzHz5zEY0Lm+w7J51jvodckDuHPkZMwY+xZG3XUGPpKJ\nkaEgb5tgeSuenNEBX372DJomr8Z/rn8YLZ/8HIvmTcHg67oj3riR4PUpms2d8tg4+eg7MHX2PHz5\n8jV48f9ekIHqTphR2y+xHv726FWyI2+Hm5/8Gs9eSxwL8f1TfTHouTX4cNxMzPn5U2x/9Uaccf8X\nUdub9UppkIi7zzsV4+pdia+H/wtjh9yNUaHJqjBnE0ZPeAODrv0EVw4diXefluMtN52Gd0P9K5Zs\nRJ+gISN4y/K2/Iab+p+Hbf1eEB/+i7gRj+DCp78PbdRcQS+eJeoKS5KSanHcueiWkoCV67eB7dn9\n3H/gmGc/x3xpo3sP+Q5n9Lo+dCyrECOfGohL7n0Fjwz5DrN++wUvXnaE04bZmQuwcmtowhOd+Zm/\nY+ZcdwInJmPkaMjFF/0bA977HC/9vTduPaMrOl80Bu9/8w2eOusP3P7ICOeICsfnXSeeh83nvS72\nf8HJG18M10v1nN9vEI7576d45xHB9q6HnbZv2esCXNGpGppf+E+M+eQ6NJTB4zdewxWXSXn0a3Nx\n5ckdQqTodYuFSWnzSdieJKL5E0isjPQJz+JvPnNOrL7+/fOX4+a34/HFz7PwxR29sXSae1FGm7H8\nSmtYC6Pf+hRr5OI1mLMSXwwehTFDR2E1F7f8VXjnhZHo1Knkri370cEWFL/9df3Q9siY/aEz/w58\n81vMmvgSiia+5RTpc8S8rXMw/OuFyEa18DpyyVUP4uWXHsf/vnzFGfe3vfxR1HVl3ZQx2JztjutY\n/a1Zz4G4sFZlHHP1dRgz+r84qqFxdanOljfeZYyWrsBvjJU2p3C+vvamEXj1w8/Ro1HlqONUrS/4\n6RO0HdAX9UIXGH42IccncwKH4msZmzN/+kjm56fx2ZRVjopY85jffiLW/BNtjXQMyQ2sy/rvOley\nrNT1I4as2SccO8Yfs0zX/4cnNcSI0V/guqY/YWC/eyKP85axjeNrt8f5feti4oTpsk7EXrddvG5A\nXJ+nMXEW7/QPdfZqhQU78fv2+XID0N3UF+ZsxKSF85EVOong+nsDrn0nBd+O/gS9532IEw8/HA8u\nP0LyQ3HMrNfx9ndLpba0fzquH9YEP82bh+H3V8HAcx515lNCQWxv7HfKrvsDnz1I9kL/fZVC6l3D\nd29eio2X2nJi2YtG3aPF6BPZ2/Nx6XvfOXuGp06fF6GyIhmdxxwd2xb/jOFbs/H25KdwXKsqQjsE\nfFiWIZuW4ZnN8OPL16NNqlwHnHUz/n32EPzrDRkAR18mHHJXou41mDHnaTRLDKD2ZX3w1rANzh3H\nYKAOts5ejDXyCOj4Xic5doDKOLJjdxQtaISjjuiMZFLlai0vqwgXv/A9nrj8iBCfNyq5C75tya8Y\nntMZPz58KVqKTy2vfQyPj/ka06TvBRKqoGOvbmgim67Duh2Lju1Yl8iQvWUtVm7ajsREPUZQIHI1\n0aJFg6iP4n//eQRannMuGksdyxKCBe55tjWrtuDUfl3R1BErxK+fvYKUrnfi8EZVBIk2ODGtCr6e\nuhKXdEqTu0PyMmmjOzF+yD/cu6FypZpdVISF85Yh55xu6H60+ut64PXJ3yZQs/05uL+9XDTk5qJm\nr1Plgme+UYUo7Ycq6HBka3nsMB0duh2BtrLpC2bPw79fXYmbXxuOUzs1FR1N8a+h96LdRZ/i94fO\nkQsqn/YOte2Zj47Auzf1dNr6saOexU8zVuKKI9JcP+TCYdRMubNQR/rXca3w4GejMWr6Slx59OFO\nv4guW9InjAqFkpFluesLcNfQ6bj3lOZO+ZNPjUefZ8Zj/YN9w23qxXNXnSWUVLloXLt2E6aM+S+S\nuv0Tdw881unLgx7/AB9/1BuTlmSgdev1ePeNGTjzsW9x81lHOcJNWoR0BEruDoa1BlyfNf/RpO/R\nR+5uZTVYgVsGyyNsubo/tn4c5i45BljhHhvZtmSyM27f7NkWCfII+fATuuCFkcsinuj8b9wSXCD9\nK2fJSuCfKxz11Rq3R9valZFxdDd07SSdQ4Jv+zklMi3L07qXcnpjemv3orY4c1GUuhViymfRMakX\nL/NMzPkkZDCGP844iTLnROvrfD9i8MvTccvrk3Bc+yai/UL8S/pA349ce878F8WvS587Aa2z/oVZ\nq19BrZzJzg0E4HPMW/MKGgUln3wZ/tnOxYXa2I86DDzNVXyQ/N3/1w82RCGmffOSM16vlfHItef+\n1z7FL4ffLyVGkHGYkFA1Yh3p1F7WkfwUcNwf0vkY33XF0CAXf7H7W7UmHdG1SzXkNO8k46+jKRpK\nF2LdihXYLo7pQh0sKEB8rSZoWd//AsA7RqkoPxhEyq5LoAz2fOeGht+Yz5hd+pzy0c/DnbmJNn73\nm/dZwCB3PL9/YRIuG/KimycpCn+/q6+RUtncZ8bh1B618MtSuXEYmq8p7DePBSo19OwnCvHNi9Hn\nn3Pi/dZlaneDnw2WxFo/dCaPJhtSXWrEeS35iAcwccitzhHfI5/8N17ofCmmLHkGh8r8zeDXxr6K\n5UhyUuV42VolSV9cFGPd7odFsifhvuPF/7vU3XeEFqlt213N2v+AyDVV9yuzv79X5PIxr2cNTK7y\nLH5++SK5KZuHuUfWxA9Z2bJvWITBb6zCxY/2QW3ZP6Ueew5aPzgIk35/DAPaJcRY44/YZQ+SMSt2\n+3nX8N2Zl/7WsWsMvM6Be3s2hHqwyHePFnpW59tnKdnmlCtl9yf9KjcLbdsfHlJW8Uh2UCXBOQOU\negoOa+w+ItOS8NkgJcgU0+X4Y5C+Lsu9yymbtqTmh6JO6OxQQTBLdtbuhqPP35/BFY2/wnm9OqBJ\nb3k0s8H9AorDI/rMF4PydxThmCMPDVspSyLc2eRK1AzBwgLn2ESwINckh9OLRj6LXr16oXv37qFf\nL5zz2EjkuRekYb5wQur403sT8LfzOodJpSVqdjoXQ+47F49e0QdNaqfh3Z/+kNlsJ9YtykbujOdw\nzOGHoe3hPfH6xkw01r0csWxURzb7oQuHpEPwyNB/YemQ29ClZX1c+9zIkhcIfXzytSmO8kjCg+e2\nQv1GjXDOJQ9hCYxFgTajtJ/A6AZ9RyBQCfWS49HMuKtUKbW2zDTuAc1o7c22PeXEDmHIArw4NINc\nUFVLUYJMRtXiUTXJbd1SZVWslLhAFrf69WuGuZKqyCSZOR/bckON7oNnmNmTCOblYrUc7+rUrjaW\nTt2BHicf4mwQyCZj3Fn4edESSKiEyvJopX3biGnAoy2UlSMlEUHGYpP6lRyS0w6CkVz/OUHHDzOB\n0Li7pncXtGlzGC595Hs0aFm15OJU9HRsXcuRy9P2ZE7GDBf84vwSYrT2I/vSaSPR9LTT0EQu7hii\n1k1wjImJnl11tPCPZz4J04Go/sTos7H6Otuifp2Svh+BYwy/gjVa48LOtTBxxhLMGf8ZLnn5K/zv\nimaYIDcsZk4Yjg6XnRm+C8kxzrniYAt/ifVDjjssnZUp47VteLzGaifvOuLNx5JlWaz+puNP7uT4\nqxFfRz12HnqG16ju6CFr1pAJa/z5heodo2RMrhyH9dPWID90t1WF0xq6c4TfGCvLnKJzE/X56VA7\nRVvm49kdR+P49u4cFJWfxx1evkWOZ9RDu9MvwmPjN6FOsrsGOLqizWNSqOPY2U+UMv9EWyNLt1HK\n+hHDP0d3Wf6I78H4kveJUuodgt5VdXPgKvBrY1/VwVxs3ZiH1Lq1ZCseY92W/dofC3eiwRHGvsNX\nIUrWFC3nPKz7FVlPeGO2y1Ht3VMWofXFWcFk31Bb1vNhd5yF9rJGdTnuMiyRY63a9WOt8d49SMz2\nC8295j5t9+alGHhp3TWOtUeL0SdW/OQev2nUqBnufXyMaqtwHLGzcu7yyuOClZ43pvXuL8IH/gux\ncO5UVKlW+gtmcTUPx3PjVmDBpM/Qe8V7uOXtyTGdzi+I3JxHY97VJ9m4ysaxrKHr5f9Benp6xG/e\nkKt3OfKj+oq3LcQHi1rhxMPqKMmNCzOww7huSDBvpMsxoLPuHIw1S6fj+b8fhduveAJLcyujQfNK\nqNn7n1hn2H8u6tMJoHn3S7Fl4yqMHvIAPnv6Mnw1J92x7euTn83sHLx/998wsuGDWLZlC36a8A66\nxWWV6YUgB2c5F6ZtHyzMwca8IuzYWVLpwtATCbZcrPaO2bZiI9F5M82FNShHg/RKl5SYsq5Imf4m\nJZYsEsGdW4Fax6BxVXeT6otnSGvA85Lv5E/fwJJAG7RqlIZDu1XD7Klrwu8oxCW7neDoDo1l3c6R\nq/ggFi3fsot/iXLhtjVXa5mHVdJPzFwsEFUAAEAASURBVPPdzoWSXkztIl1CcNpInnR8t3RzuD/P\n+O9lJX2ZF1xl0EONUdtPJstfPhiNi87tFp7Yo9ZNLk5iYhLqL9qneGcu2nwS1Z+S6ntSudH7uqwg\nbItglDlm1znF8EvG1XEDT8DgW+/HnY9Pwmm9jkS340/D+3c+g8cfnYxrTi+5YNV+5HHsgM86+P0F\n1o/kqvFYMn95eLzyAn1bcbS7ORVotlL6W6maZRxdNWRueEzrevXERe38RX3GKETHYV06OOetK+l7\nMCK9fd1StDviMGeO8Btj5Z1T/HSok3/IZ2Pr9z4LLUI3A0j341/385sYJE8RR85ejZU//4wXejfA\nVrNZyjqPlTL/wG+N1HerSrERa/0o63ytuESLuQboEdvC9DXOOxzhZzV+bRxFUe6Kic6F0YVySiCp\nKMa6LU+M23ZtifUzMyOOoobVGut/RvpmcUUcjBHMm0TKxrViRXY+bn5nekR/vqBTdWWJusY7fdHw\nIVb76dxr7tN2Z16KK2WfE3Y6lIi2R4vWJ3ji4YaL78BRL01w8Hj7P/29Knc7H7Gpr9GmB/pVT8Zt\nD/4P89dnIGPDUsxYuB7Vm3VGt+BUPP3WGOyQBXHtrG/w7/dX49K/HV+ycfB1oRBzxo3DojUZSGvR\nDu3k7qGGAjmbmr96DdZuy/HvSMKYu/pHXNDqLPi9QFQprbGc+pmI18WnjZtX4sMHz8fjv21xztSr\njT0Zr5kxCpuOHoBWxh3mak3bo1v873j5nRGyOStAQc46fPifZ1Dj2AFoIXw75Tv5E6YvQ1yNxjiq\nW1fHnQS5K9nzwuuQMfYevPzZDOyU4zDEee4KGSw+IZjzB74bPUn0J6Fdl67OewLK5ueTv80i5wo6\nsVIS8rPS8cNbr2Pq9l8xJ/Qys+rzix2cZaGeNnsVCmXXHle1hZyFa4BnHxuMJfKZ0JyMZXjlsadQ\n85iz0axqcdT29tOt21mnTGy8PXSC079W/Pw+Hpq2Gf2PPdRPzKFFyEbliixIlnP9T//rTfnMl2y0\n5cnFkKe/RZfLjkaN0GLnhyc18HH7xlXLsWHDGqxZvRDDnr0K/e79DFf880U5LlQZHU+4ANt+uA3f\nTCdGcpd26KsYm9cSXVvWQVxqWwy8rBG+evAf8r8SliFL8J/x80/OS8IFcuds1uBvZKytwVfPXo6r\nXl3hPCYv+6WpWz9n3FZejpufGIJVMp5ysjZiwcKSTUskCpE5Xgiv2LTewZ2b62jjtTjrd7w1sRZO\n6dowrCB63eJjYlL2+SS6P2EndklE7+uBSk1wTNtqeOKB1zBv9XrM+e4/6HPHKHlJ0VVSml+te/Rx\n5pwldW5EV3m01rhzT+cl8qlVLkLP9iVHb7Qf7eLaAU7Y39YPX7hlw9et78lY/+0b+FrG47olE3BT\nt3OdJ5cll/u+klGJ87/6F044/5nwy4PKWFp/U749FfuNUepucEhn5E+9B+/Jxy04t6Qvn4D/vf4H\nDmvKPus/xso3p/jroG05LY1fPv4aFwzobjwZ8effsVlusnDzJneYV07/Aq/9uBHJeWWb6SP3Ewkx\n5x//NdL1Ntbf0taPWLJlLpP+mTFxBL6fJWtJwXaMfPt556s2J3d055dobcyLN+6nlq9Z76xTU797\nC42OutQ5ynN132alrNuJ6HhiX3lz8wk8PHg80rOysGrBDCzfEnqCJGvzgsWrsXTSB+hy7mNlrorJ\nyLXiuiub4OWb78fYBZucIyerFsyR9SrKUyoR1pb37kFitZ/OveY+bXfmpaqpsfY5EdtmOdoUfY9m\nYuBNc1/Bp3WZmxfh00/GeYt3Ox8xjwUqtcF/Rr+Ha0/+G447/HFH6VnPfI8h1xyBId++jitO/xta\nPCw7OwmXPToMd5/ZykmzQ5l3GANJVVFZ7uJzQM/+7Hbc+tFql6/GefjyjSOddOczb0TvJ/qj+6Ev\ny4u5SzCoU4rzhRSX0f2bu2Mtxm79FWfnGA0fukpMaXIyvnvlFpx608V472Hg2Osewg3HLUWGnpEP\nJDqbMfPK2tRdvrR8A/+Lz3H+BR8bE5NscFM74/n3HkWvC67Gt8+ENEodR/54vsNXkL0M/fteFzZ1\n/5AJaM67FUdei3FDsnGSHMt5OlR68Qvj8UoLeQrgwVIubfCRfI3oku3uv8c55oZXcUZHPsb09yno\nZ7NyVZx58y1y/OZGtBsC9L3+Idx0em38/YxB6LhwxC42S9pPXnBtfBRevOIo/ENe0nxUni7MGX41\nLnnmM2y8qR96tH3J8T7t+Fvw9etXyoGenKjtzS/YeEPtJPeOttKHvnkhXrvD3dLe8PIonNderuLl\nzkSpssadg114jbLgzmLEJ/2GHm3cvt2w3+MYc+OJIfP+eEL6ER8bPnHpyXgixFmlQ3+8PnIqzu/O\nN07krYLet+Dj57fggr5dcC0Jctf8lS+Hu+8HIA7nPCRfbMq+Ated0Y2lgPSRX+f1Qmu5+Gv9wDUy\n1t5Eq0FP4N/3BPGfVVXBzzQ6E5rhuyNn5CvX4vsMbuC4ffGHofjHyQPR5Z27HSKfBM0ZfojLYMg5\nBM1LXzvttqvw+CWXo8X/jsFPC4ZGbb+N837Ayg6Xo3UNc0JLiFq3tjEx6VzG+ST6/OEdJyV9tkrM\nvj7olf9iosxvx3eWvivtcPd1J+LNpS5McTVj+1W1eVdcXqcK0q8/2T1q06gTrquXivmXygWtnBN1\nQ0k/ChEOmmh/Wz+iAd/h/LvwyE99w+Px4f89j24PjJEZNRTMOdhnHXEWY+WVOE9ubMz9LTP88mB4\nDpI7wrH6G1XwqcGeCv5jVOank66VY6CLcYV83OLekLGjr/gPbj1TbpoEs33HfKBStbLPKXJMKNo6\nH8z+HcNGb8Sj/yyZrxCFv3WNWrgwsR/O6NwKlTteijtvOhOPPXw2Puy1BGdwp6LzlgJm5HfZT8SY\nf7KW+K/L26jX0OmYMfKx14/YsuE+4SiN5I0sk8MqcrNykByldEKlYzBs/O3ho33R2hj87t/6l2Ve\ne9mVkzXoH89/hNsu7xP6/HaV6Ou2TF2pPW7AN69k48ybzse7oU7y2s/LMaD1Cbj3hDrg0U7IUZKn\nn7wB9z2zzLXBvxFjJQG1m4XP0JbwOKkEnP3Qt9gWvAkX9Cp50kQbTeVT5JEYuKK6P/DuQSY+Xl32\nVdeH9Yf3VVH2RLs1LwkmUfc5UhbZV6Ls0RaIi0b/cWFwn3IEKrXAJdcehyuvOwH/lYIb77ktXJ+K\nJgLySM98wBXSVyh3FHPleEYKUuRl05KQJ3S+UJqCKhH0Eg6/FF/OzJPbvJWqGud8HUZX3650Py3+\ntAJ5yYAnQWrUKHkK4M+5+1S+8HT6ocfh3t9W4/gGkefbqDUod2c3bpEjDnIXvmb92hEb/2BhrvhX\niMSUqvKd9kgfWLY9y8XFWxbJKeNcrp6LRH/Vqu6gieVTNJtBYlWYLDoSHZ+zJV3Wdszctg1xUgeT\n3+uT+hy9vZUjMuY/8Wp5xjeYsvBDNCvajnx5Qc20E8m9mzm5OPjPqV1R998zcHFrefycFYzoM7Hw\nLKtF9sU82RkkSj/nC3jeQLyKExKkbiUTH/uO1xevXNnzctW/LUvaieOzxEZp8q7fJX1r1/YrxOc3\ndcOEYz/ESxeXTMimXr+6sTw2JmWbT3b1x7Tsn47V191xl4tKNWr4thNvRuzOPEdP9kQ/8q/RX4m6\n79cPjqt0eWrlDYkp1VFd5j8GzmnF8lEFzXt591S+9P62JyyVYYxu24LtobUozbNeRh9jZZ9T/HRs\nmvwS2l1fhJUzbyv53y6h6vrxc+xtk7u3qeIfL3c4n1UOpUtHadf9RLT5J9oaGdVGKetHVLlyFsx4\n51IMGNUXcz+6DEXbtyGpqsxR4X1D6W1cFnPR1m3KBmWvtlP2apH7FbcPRPpSFkv+PK59uQzZZT/o\nz69Ucw/i136lz727Ny/Fwkt9Y1xWvkgZ7qvMNjZLdy8d7i6R4lzg/TbJ3BD6bVcipb25RNlgRN6T\nVY7d06fSjNn5apR9/2KKljmdt2UDulz9ErrW33VDTyX82k79+p6XHEPaeQHkC6UjlyIbyxBjKREH\ngBli+RTNZkCwUi30uUqU1jftaDrVx1GvT8obvb2VIzIOFsiL1fKIj/+wKzG1RpS+EimzO7nc9YXY\nmp0r7ZW2C+6x8CyrLfZF/37uavDDi+3gA21ZTXr4EmQxLGOHMiS9fu/SfnJnraiRPC06wX0yYYiG\nk351Y6FXd1jASZRt/O/iT6QS31ysvs7xUSPmpFE2v/wM74l+5Kf3r0Xb9+vHtnmfoE3vO3aBzX2C\n5b47tTtjZReFZSCU3t/KoKQ0lrKM0Rq1eT/XN0QfY2WfU/x0bN5cjPsfP22XDT2d8OOXZxcyNkv2\nGNzclz3sOm6jzT/R1shYtmKtH7HkylOWn7US2xanO8ekdumfZWjjstiKNldTNiB7tV0RL3sfqKj9\nWPImHn7tV/rcu3vzUiy8TH/LyhcpU/712pT3S0e5U+/HamkWgb2DQLGcAV+2Ph9NWzWJcud0T9h1\nPw+XUKc56obu1O0JrVaHRcAiYBGwCBzoCPw560fmlpXYmFUFLZrXCX+Q4EBH1tZvzyJgN/V7Fk+r\nzSJgEbAIWAQsAhYBi4BFwCLwpyNgvvX2pxu3Bi0CFgGLgEXAImARsAhYBCwCFoGKI2A39RXH0Gqw\nCFgELAIWAYuARcAiYBGwCOxTBOymfp/Cb41bBCwCFgGLgEXAImARsAhYBCqOgN3UVxxDq8EiYBGw\nCFgELAIWAYuARcAisE8RsJv6fQq/NW4RsAhYBCwCFgGLgEXAImARqDgCdlNfcQytBouARcAiYBGw\nCFgELAIWAYvAPkXAbur3KfzWuEXAImARsAhYBCwCFgGLgEWg4gjYTX3FMbQaLAIWAYuARcAiYBGw\nCFgELAL7FAG7qd+n8FvjFgGLgEXAImARsAhYBCwCFoGKI2A39RXH0GqwCFgELAIWAYuARcAiYBGw\nCOxTBOymfp/Cb41bBCwCFgGLgEXAImARsAhYBCqOgN3UVxxDq8EiYBGwCFgELAIWAYuARcAisE8R\nsJv6fQq/NW4RsAhYBCwCFgGLgEXAImARqDgCdlNfcQytBouARcAiYBGwCFgELAIWAYvAPkXAbur3\nKfzWuEXAImARsAhYBCwCFgGLgEWg4gjYTX3FMbQaLAIWAYuARcAiYBGwCFgELAL7FAG7qd+n8Fvj\nFgGLgEXAImARsAhYBCwCFoGKI2A39RXH0GqwCFgELAIWAYuARcAiYBGwCOxTBOymfp/Cb41bBCwC\nFgGLgEXAImARsAhYBCqOgN3UVxxDq8EiYBGwCFgELAIWAYuARcAisE8RsJv6fQq/NW4RsAhYBCwC\nFgGLgEXAImARqDgCdlNfcQytBouARcAiYBGwCFgELAIWAYvAPkXAbur3KfzWuEXAImARsAhYBCwC\nFgGLgEWg4gjYTX3FMbQaLAIWAYuARcAiYBGwCFgELAL7FAG7qd+n8FvjFgGLgEXAImARsAhYBCwC\nFoGKI2A39RXH0GqwCFgELAIWAYuARcAiYBGwCOxTBOymfp/Cb41bBCwCFgGLgEXAImARsAhYBCqO\nQEBUBCuuxmqwCFgELAIWAUXgkUce0eQBHx9MdT3gG9NW0CJgEdjnCKxZswbVqlVDXFwcAoEA4uPj\nnZhp0hiYZggGgyguLnZ+OTk5cDb1JNpgEbAIWAQsAhVHgJPtwTSnHmz1rXgPsRosAhYBi4A/ApxP\nK7KpL9Pxmx0ZGcjMzPX34ACjFmSux7zFa1F0gNXLVsciYBGwCOwrBOwasq+Qt3YtAhaBgwmBmJv6\n4h1L8Nh5DVG9Vi15FFAJ7W54D3l7CZ2l4/6HF79espe0G2oLVuOFB1/E8hz/pxM75r+FDr1fxE7/\nYkORTVoELAIWAYtALATsGhILHVtmEbAIWATKhkBmZiaWL1+O6dOnO79ly5Zhx44duwjH2NTn4a2r\n+uCZtddgYXo2tm+chzsPq4a8vbTZ3Tr/U3y0OGMXB/c4IZiBwS+8hdwo9ah1xE1YOfFeVHOPK+1x\n81ahRcAiYBE4OBCwa8jB0c62lhYBi8DeRIAb+hUrVmDjxo3Iz893fkyT5t3YR93U560dh2s/XYWv\nPv8/tK1VCdXqHoarbjzH3ewWbMDrt58WPrj/4tfznfoEc37HHaeci/vvu9wtSxuI8cu2h+qah7Fv\n3B2WqdLtbudueTB7Af5+RE0cfcs4TL7/apx0Ymd0v2Jw+E45y2845W944pk7XNmkDvhm0U7MHnYv\n7nh3pqs7mIW3bhiALxduC9v6+d2Hw7aa9n8K6wqC+O3dexBI7oSF2XPxtzNOQvsqHfHx3JCM6Bhy\nx2noe/4gPPv+j2H7VLhqygfoWTnR0Uddy3a4VwSZi0agX59rcM+1fZ2yQy97Gn9kRrlaCHlmI4uA\nRcAicDAgYNeQkla2a0gJFjZlEbAIlA+BzZs3Y+fOnbsIkcYyM0Td1O9M3wBUPh4NUhNMfif9/T8v\nxK0Te2Hl9nysmz4ct551OEYsFYPBbCyY9C0Wpw1Cbn4G3rtgCu75aK4jE8xehJtveh4jV2TJS2S5\nmPn6Ragid8MDlVvj2V9WYOTjx+Hkh5/HV9/+jFH/vsQpcw0XYMWkj/HhH+2waut2LJ/+GprKbfSd\nm6di/ubssG+bZvyM9TsKnfziT+/Bcbf/jp+XbkFOdgaGXtIGhVLU6cJHsWXFGLSr3AHPD/kUk9f8\niDPa1XB1BKriokc+xsu39MB/314ePlNfvHUSTu11OS76Zj7yszfjkbqD0ffW4U55Qf5WfPPDYDS9\n9DXkb5+PY0Y9iREL0sM+2YRFwCJgEThYEbBriNvydg05WEeArbdFoOII8MXZDHmvNVrYtk1vZrsc\nUTf1u27lQyrljvb0bxbjnkcuRbNqiWjQ9Ww816M+Zi51N7OZgTa488rjkZxYAyddPAhzRk4N3fVO\nxGFVk/HEg4/jvU/HIdC4Heql8IxLAqpWqoHa1WsiPrm6pFNRs0alCP+p86N/XokmNauhRYdj0bFh\nZbkaSHVklTEpLoAAnRb/vh38CS58+i70bJmGFNHd87z+aFopgMSUFNSqWwc1U9JQs1ZNVKtZE1WM\nilZKTUWjOu4mPz6kOGPFHCysewcuPLEVEivVxoBbHsLyUb9iUzHvyOcDTR/CwF6HILFae1xyXVNM\nnL1aXbKxRcAiYBE4aBEwptZIDOwaYteQyB5hcxYBi0AUBPglNR650cC8+XW1vLzIN12jbuoDiclA\nQTpCN79VXzhOSUosSVePR0ZWjpMPJqShcmg2r1SjLvI2usdRApXb4+O1y/D0JUdh868vonXdyu7d\n/ZCWgtztsqn3P8hOnX4hzC/n5Jcs34mkkHjxjmI/docWlFv2GYVBJCb42yrwk4yvJJceBn9xDgpD\nn8dJblQdSSGZmvVaY9uOkqcHtMWzUHxKYINFwCJgETiYELBriNHadg0xwLBJi4BFYG8hEHVTn9r2\ndDzVdTOufOADbJXz6MHcLZg0Ybp8/SYFbY+thjffGwkeLc9aORn/HbsePQ9vHNPHYMEWLF4Vj+NP\n7Y87nn8N19ZLxbp090KAgjUatcbUkb9gU0GBbIJL3wXXbnYIxn34AzLEh63zJ+ONjZmufTlG0/va\n3hj+2DAs2soteiGWz5yKjaE3Y+NSquGw+KmYNGcNuOk2P13JdGGBfLqzOI/34J3NeI0m7eRQ/WMY\nM3eLUPLwy9dDUOuIo1E3Ub5FLer1okUKxRIvYEruT/329uXOPxAYPJuyNlgELAIWgYMHAbuG2DXk\n4OnttqYWgf0DgaibegRq4O5vx+H0JXcgLSkOcZXqYMB/Z8rGNQFnP/wlzpp/D6rLkZfUFifguOd/\nwHltq/jWKKm+3PFnKNiE245q4r68Gt8CY099Gv27ltyBb3vyNbig8CnUS0pC/X6vOxcMrqD7t2Sr\n7OZbdr8AZy55ArXEh/b/+BKnpibJkR+Xq/Plr+CDy+ejXVqS2EtEy1PfwHb3gQGQ1AK3vHAzru7R\nFHGJiXh3hrvh3jpnCBLk7FK9I28FVv6fo7f5xYORW+c4/PbJw7iwUx3RlYLT/9lIjvdcDtZKVCO5\nXskdfN7NT3WOFKnnLiapSV7vtdzGFgGLgEXgAEXAriGwa8gB2rdttSwC+ykC3JHK8Rzd8fp7ySMk\niYmVkJISuTnlPxQpTqiKGqklR3H8NSi1EDmZOXK/O1FkUpS423GwMBfbMgvkbHwq9Ay8qSxf/Kat\nymLLr9zkLS0dzM3CthzakrP/pTGzXM6NvnpBe9yx+nqsm3Q/apbs/csibXksAhaBvygCB9t/WC1L\nfe0aIkuCXUP+oiPaum0R+PMQ8PuPslOnTnVviMuNZ5YzaMz9e/fu3VFcXIycnBzjrEgMn1PlBVK/\nwA1u+UIC+DJq5Guw5dNgcgcSUlCzZvSLgySxpefdTbndSQdSqsoLtuWQLMzAluCReOPVa+2Gvhyw\nWVaLgEXgwEPAriGyCNs15MDr2LZGFoH9DIEy3anfz3y27lgELAIWgf0WgbLcud5vnd8Nxw62+u4G\nRFbEImARsAiUCQHOp2vWrHHex4yLi3PuyJfnTn30M/VlMm+ZLAIWAYuARcAiYBGwCFgELAIWgX2N\nwH61qecZeZ69NL9IUxGAcjIzRJ98zcYGi4BFwCJgETjgEbBryAHfxLaCFgGLQAwE9o9NvbxU+skT\nF8rXaCo5jxwS6l2N5Tny8q7Qnz+mAV6bHvlJyNlD/+E8knhl3Gq3anwpdUBTXPXuTCcfzFmBZy9r\ngsrVaom+Smja/ymsk89yxgrBwizM/G4wTquWjMYDBof+YVYsCVt2MCAQzJ6NY9NOxOwY//ugNBwy\nF37i9NeBT40Ps0574xLbz8Jo2IRFoIII2DWkggBa8b2FgF1D9hayVq8fAvvFpn7We3fggscW4LsF\nG5CfvRlfPdENBaFNeL7zn1sjXc8P/aOru+5/H5tDX+7JyyzChh38Ln0eht/RB3ePOQdzNu5E/vZV\n+L9DdmIzLxJihIn/7oeup12Dtlccj9ysyP/QFUPMFlkESkWgoCDL4Rn2yC2YtCn0j9GCO7Fl7Y49\n9lSqVCcsg0XgAEbAriEHcOPaqsl+yK4hthuUDYF9v6kvXo137huOez79Eqe0q4fESrXR75pr0aZa\nLNd2OrXLnfJ/+GDChnBNK8trv8U75uGVd/7Ah+OeQQf5r7WJ1ZrgumefRKeY+oA2/V/DmuxiPHX9\nQKQvsUd2wqDaxB5DoB0W4KE3fwjrCwaSnM+j7lw5ynlCxBdkAkkd8OxnsxyehV896tzhJ/2KW29F\nz8qJaHL+C/IP2twL1Dlf/Ttc3vPvg7G2lAvXsGGbsAgcSAjYNeRAak1blxgI2DUkBji2yEEg1s75\nT4EomLsVi+XOe5vmJf+IqlTDcpez0flv4tcv7sHtg17DDvkyZ1Lo253bVv6GXwP/z955wDV1vX38\nF0iAMMISUFFRce/V1tbWbV21tu5q/VutWnettmr1dVVra1u1jrYO1LpaV60bW5WKAxUVVMSBiKgM\nkb0TErjvuTeDAAkCoow85/NJcnLP/p6TPM8957nndEBLd/XGmXK5HPzreXb6Veo2hLtUhIwMmqV/\nLn+KUHwCTh9hk98+nFo8E1eZKY+YnXyscxa1sMQ/DCq26pQasgqzBrXGodB0JD4KQKt5J/DAbxV+\n/zMNvz8MRBe/o3jMlPeYS6vR8qNDOBeeDi4nEWOwDB+uPKPLkjxEwFQIkAwxlZ428XaSDDHxAVC0\n5pe5Ug92OBTvOFXRKqyN9SyaQ7v3p2O8YhV2XQqDlZsEGWwCk+MtcJgTiUXgbdk+dLWHVCrFtmuP\n8NsntXUzm8KsKD8z6jwcwXr20vwpseSIgJYAp1LBL+EMNMOKjanbGOxkXWAc1Rj8S+HPYcij4Nqi\nH/4aJ8fC332RbZt7ArNEao37R1ahR9eu+Hj6OqHo+JRM4bN61eqoXq0GLOq1Qh23RmjV2kG4/uDK\nZSDDFyvnfYYPBkzBgYsxuOJ1scBJzNp20CcRqLwESIZU3r6t+C0jGVLx+7AitSDvEbFlVHNbsTlS\n0gsxeREVrKaIU0ApqoqZGyej3eSlGOSYDOt2gEPNeoKyE5uUgybVW8I7OR4rOtRHFmww4seL6L8s\nv229BM56pjnGdHoV25mHHdZVKqfTlhFmKrYEBMxkzfAwNBzVNGNEZN0Av9wKxep8eYkktrBRH/SW\nLyT3q1IlxvtzV2BgnWmoP0oKO1kLFijHtvGdsb7+EuzfMxfO3GNMuZBroqNSKGFVswG6mT1mM/kq\nZOmGbzpazzuCLbM7QClXsZvYtbAUszyfU4fc2pCPCFQeAiRDKk9fVraWkAypbD1avttT5jP1Iusm\nmPz1G/hi0P8h6FkGo6VA8PnzOvtgCzMRkhOfgd+eMjFR/crSY9rgvUkY8/Q4tvokCifVmru8gXW9\n3DFh6S4kMNtjTp6IJ+GZyGIrATKXaqhenc185nm5wFLITyVsp/ksKRlQpSA2MQVpco0GxXZWWDes\nHmRVe+GW3qy+XjXIW0kJKKKC4OPtg+AofmzyTgzXPONHPZ6qucjUwYW8cyoOYvc++PsrJVZ7XQE7\nYBLZbGkp9loG+nXsjDouTki8F4AdcepnRnRZGbAdq1a/KQI3HUSE0gYuLi6wVsXiQVSKLgl5iICp\nECAZYio9XTHbSTKkYvZbRa11mSv1PLjOX/6NnWOj0cLNhpk1WKFZ/1+hVWuk7hLM6d5Q2J7SyckJ\n/OvkUxGb5dRMSZrVxOdbvhb4y+zYPDuzVZ64xwcD7n8FZwszmFnXwp9NP0PX+oUrXTkpwejt5oR6\nnWYDj79BHWd7TN2ufmCRz9xCxFBJ7CBhZj3kTIdAelwQPp06BtefapX64rddImG3jWzsqJ0Y7036\nBR2kYljaWMJcZIfBv36Jxb09BJOe9gsOqsMkYkgsbSFW33HCTJtck0udXgvhPQ9o7mwppLNxbYid\nAc+KXzlKUWkIxEdFFW4CVmlaWrAhJEMKMqEr5YMAyZDy0Q+mUgteQ+WYKxftzeQPnpJIILWyEnYF\nedFK8QdZ8Tb7dnZWL5QVb0fdp2prWC84gb++7PJCeVFiImCIACdPQxpbWbKzy6e9G4qsd41Pl8Qe\nnLVm6SwLWqnpxSTvqyLAP6/zKv9TlfJUxDy8hGHtZ+LnJ9fRTs+c8FW0+VW3t7A2kQwpjA6FVWYC\nJEMqR+/y/6cRERHCmU1mZmbCpJ2/v7/wqX0WlG8p7+cdL2vat2+PnJwcZiKeyWwJypGTFlOheV7V\ni6sgGcsvKzEO9m9OwJwxnYxFoetE4IUIiJgtTknuPfl0ji92z/pC9abEZU/g9rFfMO2bxWzXr+6C\nCWLZ16jsakAypOzYU8llS4BkSNnyLy+lC0r9woULy0t9ym09GrZ3wN+rF+PvcltDqhgRIALlhcCr\n/k/t3G8Mwn48hrXLFsHN8tWbCL7q9paXfi5OPUiGFIcWxSUCRKAkBASlPikpqSRpKU0JCKj4pyON\nODEzpSBHBIhAxSfwqv9TOWUiVDnsYf/kJFhavHql/lW3t+KPkJK3gGRIydlRSiJQ2Qnw//7cgwcP\nKns787VPgeRkOSRWNrAuBUNkTpXBtuTkILW3gUW+kvJ/zXSomv+S7rs06anOT57KSUCengwF29rS\nno2Vl+1SY8IQB1e2v73hG8kMFh6hcEKDWuq97192fUwlf09PT7zq/1Qu8y6GvPUNvjm3E41tX+3+\nB2XR3rIfS2UvQ1RsEiiDbWdr5eCgkzskQ8p+ZLzsGpAMedmEyzZ//v/0RWzqX+2/vwFWQX/NhWeL\ncbgRnyOEBh1YAr5Rx+7lbs8XsPtreDbsjQuR6s0sk279KcTh4+V5sXxCtdtQGiiLv5T84AzGNG+J\nNm3aoHmThvjuSIgQM/nun2g8aDPYM4c6x8lD8WXbpmg76jfEax4mTr67H55tPsdDTTnhF3ehXsPm\nLL8WaMzqs+PiY116Y57U6JvY+X8j0MzZBt53cttpLD5dLzsCvLI0uPVw3ElTj8+S10SFC9vnoGmL\nNsJY+ejbv5GmN9aM56uA745fcP4R/9B38dytXRMwYWuQ0UR3Dk/GV0dCjYY/L6D02DyvJAonAsYJ\nmJ4MUSHgj3lo5e6Gtzzd0abOYFx6WPLduYyTpZDSIFB6/5MkQ0qjPyp7HmWu1POH7yDdB4euPGFr\nBik4+MM+gbmSneQpOC4B5/aeZHvHh+Dfyw+FS/b1e8LHxwcXznrjExcbzNxwkPnP4j/v71DHyvjS\nM6+kzx04EYpP1iDw9m1cPL4Nnha5m4BnxamL1L7zJ8FlZucg6fxPOHgpVnuZVfkZ5GzPcUXEKXT7\neAEmrfobd0LvwWf394h+XLgpU05KAIa37IC9sY54i21rmKVU5uZLvkpLIPnuQfxv8T6sPX4Vty78\nCdXO2Vj5T1iR2hu8aQsep5kXKa5+pLaf7sSOia31L+XxW9l5wNHS2HFreaLSlwpA4EUm6KOjoxET\nE/NKd+0pPaSmJUO4jDtYMXMN5h8Mxq24KHw7PAjfrDjIDlgkV5kJkAypzL1bem0rc6WeY9v42TZs\niNM+1xATEYDfY9U71GtVXUVkANaEd8C6FVOw8+fTwuymyNIJHh4eqOrugeo1rOBQjfe7o5Z7lUK3\nwnx0+SBOWA7Dqhk9ILO0hGvDtzGkZ2OjNEVMj8rMZtsM1jfHih//QBKbWTWH+qZBzD6DffbCvtMy\nTH2/BdvHXgyP1wZj1lD+lFDjTiT1xErfezi84We83dienRKaN256+CmM7fceVmhWEPKG0reKSuBR\n4EnYd1yE7g0dIa36Ov7v6y7wC4wUmnPnyA9YduC2umlcBvYtnIJ/H6Qi+d5x9GzQDCsik/D9rLH4\nqG/j3HjskDY/dhOpXalq+uFyPNasHvE3r/M/6Idpsxewm9G8K0ehZ7eo07CVr/fnnYSt1l6M3VB7\nr5uty++nA9eQe7tbfOoZEb5sRayRrqyN/6jbF3FxKwbO2qtbpchJu4sv3/oMl5+qVZK7pzX1Y6te\nQxbsRYx25Y3nsmwKvt+wVpfvqhPqVbbi167ypRBJG2HrtT9KbHoTFhaG7du3Y+3atfjnn38E8yFl\nBZlwMDUZwqmUSGE/zjbtPNi+dvaoV78ZHl+Kg1KzmkwypPL9vvkWkQwhGVKUkV3mSr0qKx3vDp2O\nETmHMGbCj5i+fCV62Wk1DeDe+WNwfbsHunbrjnpPVyE4Rm8+gstGFv9Hxmlm9Z/T4oRHIbBvUhd2\nGsX8OdGF4FRVDhYu24OPorbg4I0UmGs3AeXScd3nJt7q3EiwZ+RUCigUCnZybeF1EUnsUb9xdVZn\nBTJY/fM7ZVos/rt9B0FPySwnP5uK/D0jLRUtOrCbP00jssHh0bUQQbnNTLiBkPjc5fO4W5cRm6qE\nzLMbDgScxng3O0yftxRb917ClJ71hRy4zIdYvGAztvjeYgrYbRz99j1YaxapRFa1MWfXTgxrlgS/\nJ5k6bIqnvug5+lusOHQJdy6vEVa5tIGXvCbg/642gF9wKO4HnMDTb/+H3ddf4DArSXVMP3gGIex5\nnaDT/4flk/rhJDvZuXrzdjA78n+4+Ehdr/Dz+/G3xeto6maBuMDf0XfqSew5y9oUGojB3Dp8tvmS\ntoqQ37+GTV5RmHHiEq6yVbqOtQo/UE6XkDxFJsD/h928eRMHDhzA6tWrsW/fPty4cQNpaeX3IX5T\nkyFmdk0waWotfNh8NLasWYShM72xfMvHsNHsW00ypMjDvUJFJBlCMqQoA1arohYl7kuLo7B0R49e\nNbH8eBZWdqiPu9qS2OyhzzqmiMyeCEvbKujtagdvZqbzRj9PbYwCn8l3D6NN3y8KXB/IbJg/loiQ\nUQLZZC5riLE/DEXXpfvQeUkVXd6cnp110P45+HDeYWE29vhsGTr0naGLp/XwdVg8wfiDsnw8+0b9\n4efXFRJbenhRy60sP7lsJQJSLkN7q8bPgk9p3w8nUvVuLlkF3Xovwum1IyE1Yv2VmfIM5i65LclS\npEHKbl4FoxoRe2hWlGsGY8GEM1v4YS9L2NhUQZXqFrCyrwIrGxl0W9KzCPWsxVi7ci0S3n0DrV97\nA1V0WxmKWTp7OMrsob8mnxkXDtSci55NXdjKkgsGTH8LP/K/BzYLfvtCGJL8OSz/+ioziJPiAWvf\n/QuPMaKVa26li+ETW1ni0eGtWL7glu5AraT0TJjVbo5p4zzw7Z9X0WNOS+z7Zj+mrzgOW8YtJOgG\noPDHlp/mwYs93KKKiEdQSiDSJr0J/lHfrNRszN/0NZq588q8A9q6F6NCFSTqhQsX2O/f75XXtkaN\nGgXK5A81CQ8PF158YP369dGzZ09IpdICccv6ginJkEWjGuBuQDLafdAONTysBTPO69dD0LtFe6Eb\nSIaU9WjMWz7JEJIheUfEy/1WLpT6lDQV6gydAe+jOajvmCSYvPDNzo65Be9nqQid3hs7pqtBuP3j\nh9nveRpVnmT1uhsUihIrezw97QxlVBwzXECxDmlRKFSo9s4YDPjyXaw/8i4gZioGU8TqvinDvsh4\noWIthq1CQKvX0WZCBpthNV4HdSvU7xYitlDCa296TiS2hoMDU/XMLfWukresCJjZNoCvz1m4agyW\n+Vnwxf+cwYJ8FRKJbYyOST6qk4sn7t96wkxaWgqKvMypap4bTHPtFD6SEfY4E630bg741Sh7QfvP\nLVRkVQ/rLvniin8ggs5uRbfJY7D+9C30qF10hStbs1zP56pgCvOX67/FyJb2bHceNsQXLRR2h8ot\nsTg+Bf6eNxw7a8/Er2smwpGLxqIr53QZvD5kNu732Y5zHbtjo7I3zrWrpglLR+PJm/D9Z22hZLt6\niMSL2Cm5VmwGkgWzBTmBg1h7e6XLrlJ5OnTogKtXr2LNmjWvtF3t2rUD/9J3KrbqGBkZKSj1jx49\nEk4r5E82/Oqrr+Do6Kgftcz9piRDku8dw+Z7Q3H+wGQ4sAmAdxpJ8Frf9fhk8Buox3qCZEiZD8c8\nFSAZkgdHEb+QDCkiqALRytz8RlcjEdtar24VZknD9lpmJi+8e+B/DKFVv8C10AeCjefN0+sQc/IP\n3NHslKNLq+fh/9Dc3NwKvJzsrdCo6yDUi/0Vvx25KdgLZ8aH4dKNJ7mplSlITk9n210mC6+UDF79\n5x1TJETVMOGn8djHHsrVujZ9J+C+1zgcC1Y/RJv4jH3mKJDDFDxjdeDTKtlSdkZaAtLZsb7Jcc+Y\nXw7t3ir87jpNmjTB9N/ZrCW5MiegiLmHi76XEBKjNWMRo4qB8eXqbHjbSG0Dqjd+E5FHd+E6Mx/L\nSXuIXctPYtj/3hBuBBzda8Hv0AXhmY3kkEDs1jPFAXuwo2pdKc74hzClVgWtdRenTEBYlBle79gT\nn85dgmHO1niWpK2jWvFVKThkK9RPp/CGXlIHNrX9ZBmusZsGcLHwO3FdbVMvsoBnWzvsPnodKmsn\nODszxT4uEs/YzfZznSoJKUnJSNP8ZpKT05HNzMrib2ai++tvoKazA5Ie3sLfSexhRo2zdH8L3/W8\ni0/+NxcDZ36M6mwFjXcutRvgzp8n8VRpzergDKkqHo9iir/rj6aYCvvx+eefC/93/LaYr+o1bdo0\ngVc6+/+7zTYR8Pb2xpYtW3D69GlUrVoVc+fOBb+KsGzZsnKn0Os62kRkiFjqDMSsx91w/rehwt2r\nbGXHth5sNMt4JEN0I6JceEiGPKcbSIY8B1DxgvNOExcvbanE5h881T2sx3IUicVwtTSHhbkSl//2\nwcBJXmw2Ql2UjUc7jHeOxrnbEWjTsZZwkTdVKKozc2iDP478igkfDEKDL9T27B//eATtW/I5MPOH\np+vQoeU6XXZuPT5HPfPc/Gu+MwgTWmzF+kfWwgS7faNBOLYxDn3fbw+1SASm//y3YEqgy8SA5+au\nyRg1d786ZHArrJT1weHbe9FUL66dbZl3jV5tTNcrTwzBnMWz8X3bLmjmVvRZ8PzEXF77CBumB7K9\nxBsLQXVHfId97zUQ/LVa9kHXByPQtt4KODPTnk7WEliw34HaWeKtETPxx0fD0XhxNj5cdAA/jWQD\nNjsB3/Z/D74ZaqW95oeL8UVT9ezpzd0LmCnYHk360/BcCQz89jB+GNYZfy4dgo+6NtOEseu9+fEt\nRo8Zu/Bo3kC0bfSVLuy3f6+jtrPO4Ed3Xd/jav4QwzvpzfDadMU//hvRZ+k4dBv9Dvj5Zuc3uqGN\nBftNa9skssY7A4YAh49jWHc1Dz7Pmh2nYsuUhejdtpGuiLE/e6MJu9nnHf9bl+Rb2dJFJM8LEahb\nty74WfgdO3bA1dUVXbt2xbx588CvHFhZFT4GXqjgUkhsajLEtkFv/DRnAMZqV7gkTbBs32xh1l4f\nJ8kQfRpl5ycZUvj/B8mQ0h2bvEQ3ycOn0tNVEDObZcvSOHxKkY4MNqkptrRh5gKFd9DzDp8K2D4e\ng79Pxd9+u9DCofwspBTeKgotKgFjB4fwD1qnsDFpyw6lymdpU0jWKsjT2cPZTCmX2RTdXIuvQxas\nWZpcO35tIXI2U8vnZ8PyK3o9tKnzfnKa34WNjU3eAPaNH+dTrnTDmbVDdQ8PayPx6VLYxL4VS/e8\n35M2TXn65HcketWHT5VG+/kHYs3MzNCsWTOIijFZUlHb+2LMFChrGcIfPpXFyx1bW91viD98imTI\ni/VseU9NMkTdQ5VVhvD/py9y+JSggv7888/lfRxXmvopmeJvzEmYMpMQZYm+71WDz+9r4GMsIl0n\nAhWUAKeMx79euxHCTOx6feSJXyvpf09F/k/lTW6K6ypye4vb1rKOTzKkrHuAyi9LAqYiQ0rKWFDq\nizMrU9KCKJ2aAD8TZszx/eDsXg/MYpIcEaiUBEQW9ugwYiQ6WtnCmpnZVVZnav+pptbeshy3JEPK\nkj6VXdYETEWGlJSzYH7Db11GjggQASJABF6cAK/gmtJ/qqm198VHCOVABIgAETBMgP8/fRHzG+PT\nxobLo6tEgAgQASJABIgAESACRIAIlDMCpNSXsw6h6hABIkAEiAARIAJEgAgQgeISIKW+uMQoPhEg\nAkSACBABIkAEiAARKGcESKkvZx1C1SECRIAIEAEiQASIABEgAsUlQEp9cYlRfCJABIgAESACRIAI\nEAEiUM4IkFJfzjqEqkMEiAARIAJEgAgQASJABIpLgJT64hKj+ESACBABIkAEiAARIAJEoJwRIKW+\nnHUIVYcIEAEiQASIABEgAkSACBSXACn1xSVG8YkAESACRIAIEAEiQASIQDkjQEp9OesQqg4RIAJE\ngAgQASJABIgAESguAVLqi0uM4hMBIkAEiAARIAJEgAgQgXJGgJT6ctYhVB0iQASIABEgAkSACBAB\nIlBcAqTUF5cYxScCRIAIEAEiQASIABEgAuWMQJGU+pTERKSmystZ1V9OdZSp0bh1LxLZLyd7ypUI\nEAEiYHIESIaYXJdTg4kAESgDAoUq9TkpIfhmQHXYOzlBJpOi8aTtULykSob6/IbVR0JeUu562Sqf\nYOX81QjL5PQu5npTgjejebfVSDccnBuRfESACBABIlAoAZIhheKhQCJABIhAqRIoRKlXYPOnPfB9\n5Djcic9AcswtfNlUBsVLUnYTgvdj973EUm2cwcy4RHit3Ay5kXY4tZ2CcL85kIkMpqaLRIAIEAEi\nUCQCJEOKhIkiEQEiQARKiYBRpV4R6YPx+x/j8IF5aOQkhcy1KT6d/IFa2VU+xYYZvSESiYTX6iPB\nQnW4zPuY2fNDzP16lDrMeTj+e5CsqaoCpzfO0qWxeX2WMFvOZdzGxLaOeGOaDy7NHYuuXVqh/Wgv\n3Uw5Hz6p50gs/X6mOq1Fcxy9m44bf87BzG2B6ry5NGyeNBgH7yTpyjq3baGurFoDlyFKyeHqttkQ\nWbbEnYwgjOzbFU1sWmBvkCYNy2PrzN54d9An+HGHr658PsPHl3fibWuJkB+f14MU9R1B6t1D6Ndj\nHGaPf1cIq/e/7/Ao1cjdgqZm9EEEiAARMAUCJENye5lkSC4L8hEBIvDyCBhV6tPjnwLWnVDNTlyg\n9H+XD8V0v3cQnpyFqGt7MP39ZjgUmg5wGbh98TjuOX8CeVYitg+5jNm7g4T0XMZdTJ2yAscepoHj\n5AjcMAw2bDZcZN0AP55/iGNLOqL7whU4fPwcvFeNEMLUBSvx8OJe7HrUGI8TkhF2bT1qsWn09Fh/\nBMdm6Or2LOAcolNUwvd7+2ej44z7OBcah8yMRPwxoiFULKjl0MWIe3gSja2bY8XW/bgU4Yu+jR3U\neYhsMWzRXqyd9iZ+2RKms6nPSbiIXu+MwrCjwcjKiMUiVy+8O32PEK7MSsDRU16o9fF6ZCUH4y3v\nb3HodryuTuQhAkSACJgqAZIh6p4nGWKqvwBqNxF49QSMKvUFVXlN5diM9rWj9zB70cfwkElQrU1/\n/PRmVQSGqpXZVFFDfDmmEywlDuj60Se4ecxfM+stQVNbSyydvwTb9/tAVKMx3Kx4GxcxbKUOqGLv\nCHNLe+a3g6ODNA8JPs/dy8egpqMMdZp3QIvq1uxuwE5Iq41oYcZWDfhKs/od99qHod99hbc9nWHF\n8n57wEDUkoogsbKCk6sLHK2c4ejkCJmjI2z0Giq1s4O7i1rJN9dknPjwJu64zsTQLvUhkVbB4GkL\nEOZ9Ac9y+Bn5LKDWAgx/py4ksiYY8Vkt+N14oq0SfRIBIkAETJaA3l9rXgYkQ0iG5B0R9I0IEIFS\nImBUqRdJLAFlPDST3wWKs7KQ6K5Z2ZsjMS1T+M6JnWGt+TeXOrhCEaM2RxFZN8HeyAf4bsRriL2w\nGg1crdWz+5pclPJkptQbNmTn8zTkdPGZnXxIWDosNMlzUnIMRReucWzKPlHFQSI2XJbSUEpzKbv1\n0IufkwmVZnscS3d7WGjSOLo1QFJK7uoBX1ZqaqqwSmAoW7pGBIgAEaisBEiG6PUsyRA9GOQlAkTg\nZREwqtTbNeqDZW1iMeb/diKB2aNz8jhcPHON7X5jhUYdZNi0/Rh40/K08Ev45XQ03m5Wo9A6cso4\n3Htsjk69BmLmivUY72aHqHj1jQCf0MG9AfyPncczpZIpwWozmsIyrOJRFz67TiGR1SEh+BI2xqSq\nozMzmm7ju2HPN3/ibgKvoqsQFuiPGM2TsWZWMjQ198fFmxHglW79rSt5v0rJtu7MUfBz8IIy7lCz\nMTOq/wYng+LYFQXOH9kKp7ZvwFUiAsey1960sEBWEn8Dkzs/dXXLKLZrkAxeN/i05IgAESACpkOA\nZAjJENMZ7dRSIlA+CBhV6iFywKzjPugTMhPOFmYwk7pg8C+BTHEVo//Cg3g/eDbsmcmLXZ3O6Lji\nFAY0sjHYIouqbMafd8pn+OK1muqHV83r4HSv7zCwTe4MfKPu4zBEtQxuFhao2m+DcMOgTqh+z1WV\n1d892w/BeyFL4cTq0OTzg+hlZ8FMftSxWo1ah52jgtHY2YKVJ4Fnr41IVi8YABZ1MG3lVIx9sxbM\nJBJsC1Ar3Ak3t0LMHvx1azcdCJ8n5Fv7Iy/IXTri6r6FGNrSheVlhT7L3Zl5zyjwrWJZw9Itdwaf\nn823E0yKtDVXM7GzyF97bTh9EgEiQARenEBCVBiCgu7iaarBtcYXL6AkOZAMAcmQkgwcSkMEiEBJ\nCfAaKcdcoel5ExKJRAorq7zKKX+gSI7YFg52uaY4hWbEbgkyUzPZfLeEpbEqPGoRQjmVHElMiMkc\n7aC1gddPlsXqzZdlzcoyFK4f93l+Tp6GpEy+LGb7/7zIfDizG/11SBPMfDIBURfnwjFX9y9KaopD\nBIhABSXA7wr2vP/U0muaCr5rJ6LznPuYPq4Wfl69A9uvxWJkmyqlV8RzcipKe0mGMJFAMuQ5I4mC\niQAR4P9PIyIiBCsPMzMzYSLc399fPSGu2XGSp8TH4x0va9q3b4+cnBxkZmbq2YoIwYbf7NgDpIYc\nr+AWz4nBP4ya9zHY4uWgH1sktoKjo/GbAwtWltbeXT9dSfwiK1v2gG0xUqoSEce1w8Zfx5NCXwxs\nFJUIEIGiE8hJuYHO07xwJTkb7WRmmNrVGT3WncLILcOKnskriEkyhAlhkiGvYKRREUTAtAnknXo3\nbRal23pJTSzYf6B086TciAARIAJ6BMxkzRAZ+QxuTKEHl4QTO/5C/TfKl0KvV13yFocAyZDi0KK4\nRIAIMAKCUh8WFlZpYGQ6VDXaFmkS23ufHBEgAkTgJRN41f+pAd5HsGDoRFxqOQ0H3q2CV13+qy7v\nZXYfyZCXSZfyJgJE4GUSMP6g7Mss1WDeCiQnJyND8fydbwwmp4tEgAgQARMkEHr6R7ze51O8vuIA\n/LdNhIetqT7AQzLEBIc/NZkIEAE9AuVCqY8PPo7BjZujTZs2aN6kIYYt+0fYUpLLvIvJrRrD09NT\neL02cjGuRWq2rtRrhL6XywjC+Br28L6TIlzmvw+v2xMhqcb3rtdPT34ioE+AH4ODWw/HnbSSj5/0\n0OPC+J3+60Vd1jd3f4G3pu5BZuHPqOvik4cIGCLAyUOxbPpm/PTXeYzoVBeZJjoxUpoyBFw6/pjo\niWbONrmvGiRDDI0/uvZ8AiRDns+IYpQegbJX6pUP8d3/vkLtOVsQePs2LvvuRe+aZsjWKDvPsutg\n0zFfXD7rjSkeJzFi+sHnKkLp2TnIYvvdkyMC5YGASqU+kOzI6m8QEKe5OeAykBidluechPJQV6pD\nxSKgeBqOSEU2vhz4Nho2bIKWbGJk1p7gYjciOjoaMTExr3DXnmJX0XiClyBDFM9UaDx5G04G38Hx\nq0E4fm4TatmVvbg0DoFCKjMBkiGVuXdLt21l/i/FZWcjISsbg/u+BZmlJarUaItRI3tAql1BFjug\nrqc7qrDDqbr1GQolO2RK/8Co0sVBuRGBl0egHheKn3df0BXAiSyE7VEzInwxpnkj9YpUw97Y+M9t\nIU7o6TW6VapZS5ay1awGeGvyFsSxw+B4d/f0Fl34kAV7dQesCYH0ZhIErGp3xz8h9/HgwQPda93/\nWha77bxN/Pbt27F27Vr8888/Ql7KCjIx8rJkiGe9+qhWtRZq1anLXrXYsYvkiEDZEiAZUrb8K0Lp\nZb77jcjSCa+3scdHHfpi8syReK3N62jXtp5OqbdTBeD9D0agKQLhfzcLn208CZM1Ga0II4rqaJiA\n/XtYtq0vhgxahqBPjsFcpHdYm6Q6ph88g02eVaGIuIDmnfqhzulbcI68xWYLf8evXR6gy/h7OH32\nKNb1W4xoxSfArW3oO/Uk9py9hXbVldi34D18trkmDk5+03D5dJUIFIGAQqHAzZs3hRe/D7KHhwca\nNGgg3Dza2toWIYdXH+VlyBALW3Mc/eIthHg1YyeM30NI3AgcD1yHhq++eVQiEVATIBlCI6EIBMpc\nqYfIiSkjJ/GW31n8d/YMPhk6HxatZuL8/olwYg1IRV38snolGttl4caJXzF+7g6MODkcyzq+jxOp\nWXma6NZ7EY5u7Akb8zJfgMhTL/pScQlw2UoEpFxmx6apHW/DPKV9P4Nj7/Takbqb0QItlj+Dc8Mu\n+HXYd/j5L39M1zv0QGxliUeHt2L5glvQ7uedlJ4J/rxlNxdX9kqDpLY5arrURZOm9kLWj4NuAAp/\nbPlpHryYYb4qIh5BKYFIm/Qm3fQWgF9xLly4cAF+fn6vvMI1atQoUCZ/qEl4eLjw4gPr16+Pnj17\nQiotrZNGChRZsgulLEOO7ZiIrLRswfxmzaQO4NiKRTY7xNCNXz5WlKyKlMp0CZAMMd2+L4uWl71S\nz1otEsvQouN7wmvq9FEY+tpABDwaje5uLJCZ31Sr4YYqViJ0GzkWbX6ahhSzuVj8zxksyEdMJLZh\nS6TsvH62AABAAElEQVSZ4G3qRWJ107Sf+lFVinT2IK4lrC3LRfP1q0b+ckbAzLYBfH3OwtVWfaMo\nsqptdOzpTMaMtEGVI0b3if+HSZ0Wo/ZAK1jbNmYxFfh73nDsrD0Tv66ZCEcuGouunNPlkM12g7Ks\nXgcdzKLZcybZyNI9WJvOlI5N+P6ztlDKVWy8L4IlO4zNRmu2psuBPBWJQIcOHXD16lWsWbPmlVa7\nXbt24F/6TqVSsT3wIwWl/tGjR8JphfzJhl999RU79K+4Bw/q51z6/tKVIeofkdr8pprBypIMMYiF\nLhogQDLEABS69NIIlLlWy8mf4PDxe3i929uoZm+F2PAwBDAbe3tbS3WjVUmIj0tDDccc3Dt3DAHZ\n9mxzfTGquPEaf0GXKeZQQyrBg7vhyGnSEo8vnsZNNqEvFrM/amaMzz+JPv71D3Cx4Ve4su9TmtUs\niJCu6BFQxNzDRd/7aNyzD5q58TOUxseeXjKDXo5N95tX7YT147/DhF9D4NZ7ABuSKsTfzET3IW+g\nprMDIq6cxN9Jcryhn4N2mUDvmkvtBriz9iSejnkHDZwlyIwPw8N4GZrU1fxu9OKSt2IR+Pzzz8G/\nXqXTrhCkp6eDV+D515MnT9j/phj8jcaIESPQtWtXuBn5332Vdc1fVqnLEE0BkbHRSM30BKfZZtnK\n1l44DZ1kSP4eoO+FESAZUhgdCittAmWu1IvMgaDtX2HGV+otKPkGTlr1N9pWYTOjmYCr+UMM79RK\n3W6brli17QfUL8yo3qI+Zuz5BWP7vo3N49Q7jcz64yrq6i2dSs1FcKxmKzykWNpAKb/KRUCeGII5\ni2fj+7ZdNEp98dsnFluwewGtPbIYXUd8gzZen+CZlH9Q1gZ9lo5Dt9HvgJ+bdX6jG9pYmMOCKVNi\nCxvdGDXTM8Hna1Cz41RsmbIQvds20lVo7M/eTKmvovtOHiJQVAJ169YFPwu/Y8cOuLq6Cgr8vHnz\nBIXeyqp8PyJa6jKEQbN0FSNw2UC8uSyX4Lf/RWFYLfV3kiG5XMhXOAGSIYXzodDSJcCvM3L8zgll\n7ZTsAS2FXA4zG3tYv8Cthu40QE6O9GQVJLY2TEFSL6fyJ8om392PNn1nY/Hui/j4NdeybjaVTwQE\nAhwzCctgM/I2Nvm09+fw4dOlyAErlo6syZ4D6xUF8+dqlIf/1OI298aNGzAzM0OzZs3APyRbVFde\n2lvqMsQAAJIhBqDQpXJBgGRIueiGF64E/38aEREBmUwm/B/z/8X8hAv/qX3xhWj/o/lnn9q3b4+c\nnBzBRPIF1OcXrnueDCSWluBfpeZEzL7YoWBuqYmp6DjiO3zQjhT6gnToSlkREFnawKYEw59PZ1+C\ndGXVTiq3/BJo2bL4W2GWp9aUugwx0jiSIUbA0OUyJUAypEzxl5vCy41S/6qI1HhzNLbSrn+vCjeV\nQwSIABGoVARIhlSq7qTGEIFKRUBQ6nl7SpNwTibSTpPoTGokESi/BEzmP1XTBSbTXpIh5fdHRzUj\nAkQA6n36TAxEZmoiklLpZFoT6/Zy0Vx+7CUyE7BX4ZKj2KE5UbkPoOcvM52FB4cl5L9M34kAEXgO\nAZIhzwFEwS+NAMmQl4a2UmRc5kr91d/HQ+TQD/7P1DvVXN32ufAAwN6gJB1gv43jILJojpOP1Cd/\nxF/boHtgQPvggPDJ8rmdodvIW5de51E+xYYZvWEtc4IjewhBzPI8FpouBF/ZyOqh9yDCnI1nnnvO\nyJWNI+DcZxPSNUX6r/0AvX66rCuOPBWfAJdxAx2cu+BGinp8lrxFKpxaO1YYe05OMnSauR0phQzV\n3HIU8F63DP+GJudeKqIv4LcBGLDqqtHY13cNxug/bxsNf15A6bF5XkkUTgSMEyAZYpwNhZQ9gdL7\nnyQZUva9Wf5rUOZKPZABJB/FrnMP2T48Sdj59TaBmkKp2Zybi8e/mw8Byls4eOa+EObUdCBCQ0MR\n8TAIn1ezx7cH/RERHo4HNzajobXxXRvCz27EhG2OuPgwDhkpsTi3bQI4lVLIk1M8Q7MZfyHq2TME\nnvLC8s+64I+buTcWBruSS0d6Uu6sqwpF0tIMZkUXKzeBhJs70GPaZuy5EYu0CF9k//Yp5v91r0iN\nDly5CmEpbO/XYroOM07h5FzjD5BY23vCyVJSzFwpOhEobwRIhpS3HqH6lD4BkiGlz7Qy5ljmSj3H\njsi0b9YcR49eQFS4H1ZHq2ck1ao2IH90HotDu2Pvjvn4ddFhYXZTZFUF/LY/7rXro2ZtKZxq1oe7\nhwfqerjq9vU21FmRAf+h2ejhaF/bGVK7Knj7o8l4r5F6ixxeIa9VpzaqubigVde+ws1CaqaBU3/y\nZcyJ2B7kRtztvxahiX1nHLzznJsDI+npcuUh8ODiITj3Wof+LarAxr0jVi7vi9OXw4UG3vhzDmZu\nC1Q3lkvD5kmDhTGTELQPTSysMY/dhM4e/R46tZTmxmPrSKc3ztKtLtm8PgthmeqbSi7jNia+1gZD\nRk/ETp+wPBDvnFilTsNWqdp8dhB27KRmwbEb6n1Lx+jym7vNjz+rrcQuPdwbvWWWurJ+/Ou6kFe4\nz89oP9pLt0qRk3ID/6vZH76R7IQ45m4e1tSPrZq9PdELkZo2gXHZOnMwZn2/RJfv/L9uCWnozbQJ\nkAwx7f43ldaTDCEZUpSxXuZKvVKRhv7jFmNCzi70/uBrLN6yE4Mc+ZM71S7o372o3r0f3uv3PhpH\nzkdglFr4C6GcElk5TJHhj+osgqvXcShureiHt0bOgdd+7zz2xhJLNxyf2lY4dEVkVg2ruZEY1Ma5\nCLkaj5IUFYg7Kb6ITila/YznRCEVnUB6SjLadWsH7e6T/E1k6IVgQblNj/VHcCybbdS4ZwHnhDHj\n2LgfLseFYnYNRyxauREnzkdh/oBmQiwu4y6mTlmBYw/TwLEzGQI3DIONRj8XWTfADz6nMb5dIk6z\ncK1TRLLDqXrPwPZr0VA83S3cuGrDzvz0ISadb4aIjByo4oMR8eW72Hj5qTa4+J8WtbDEPwwqtodu\nasgqzBrUGoeYqVutdu9AvGci/nugNnu7/+9W7LDoiNbVLRBzaTVafnQI58LTweUkYgyW4cOVZ3Rl\nZ9y+iB9XPcLSoGjEhQehV131DbkuAnlMkgDJEJPsdpNrNMkQkiFFGfRlrtTzlVRY1Ub/AXVxM9QR\nH/ZokltvNnt45Nt/MOCD5pDK6mBQNUfsP/swN9yAL+HmLt1so76N/OiN/nB7YwLiHvqzWUw7nP71\nIzR0t8cqnydCLlrzm127dyLk6lEMUmzGb4dDoLXx18+L9+8IYLPvosIPCnrtk82IjIzEyJYvdnNg\noJl06RUR4FQq+CWcgXbliJ8FH+xkXWCM1Rj8i+7ZCkNVS09+CnPLXNOwLHkKbNkG84JRjciOJcnd\nXdbCjB0ywb6KxFaws3OBS01LSB1d2eqSIxzstOYyEjS1tcTS+Uuwfb8PRDUaw007687ysmNxq9g7\n5qlK+lNmvlb3JwxoXRUWTk0xalEXpMr5m+I0BJ4OQdy5w5gzbgAGT/sOV5MzsfVUaJ70xfkikVrj\n/pFV6NG1Kz6evk5IGp+SCTNZW8yfUR/zNpwXzO22frEdizcNhoyheXCFPY+S4YuV8z7DBwOm4MDF\nGFzxuqib1ZcnZ2P14R/R1sMJzh7N0KF1jeJUieJWYgIkQypx51bwppEMKVkHkgwpGbdcTaJk6Usl\nVVJKFhqMW4qggGw0dYpDmkq98K+Kuob90Ym4M7w51g1XF+V+4BS+H9ZQNyuZvwKOTfoLinT+6xZS\ntYLjXPs1jJzGv+Zh6pquGLnzAiZ1HQZ+5tS9mjuquVYH2Ovrb97FlLBYLJgwH5E9ZufPDjZO9gi5\nop5t1AZKLdk9kvpZXuGSxM4BThJ2qq1O2dLGpM+KQsBM1gwPQ8NRTaa+/+VnwX+5FYrV+Rogktga\nHZN8VBe3hrgbGMZMWl4XFHkHF3ek6j0pq1P4uUSEhKXjjVz9X1iNcsr3SxVZN8HeyAc46+uHq/+s\nRoPBfXDwPlv1qlf4jaZ+tflZdK2TJ2Vj2V8bMfkNRyjYwpJ47RpIpPzNRkmcAtvGd8b6+kuwf89c\nOHOPMeXCKV1GncZ+h+BW6/BPzydYnjUAj9+pqQlLR+t5R7Bldgco5Sp2U7OWnZIrhR3PglWVX5Wz\nEb+IUZCuCuSpZARIhlSyDq1EzSEZUpLOJBlSEmp8mnIxUy9UXuSMZg1dhQdXU1XqnUbu+e7FHfcl\nSGDCnD8KN/X+PkQeWo+bscZ3IhGJbVG9evUCryrMpCf0vz04fvmhoLSA7YRzIyAMsuqOgkmEGCIk\nyJORJpcjIfI6ti87A0crC0iY7b2h/OyZom7jXBVZodfxJFEJLvMJDm2+kGc29srGUZBKpdh0LU5o\nIr1VPAKKqCD4ePsgOEprHiNm93wFx1c1F1mhjavVqgvC9qzHJWY7npMSgt/mHMb4KZ2FG4EqHnXh\ns+sUEpnimhB8CRtjch++hkgC98bW8PYNhoKZmbGFA8Fxyjjce2yOTr0GYuaK9RjvZoeo+ExNHdSR\nlIocZGep1xh4Vdja2QMI+xIX2E0DuKc4feCy2qaenb7cqIMMXnsuQWVbBS4uTLGPCUd0qnZ9QpOt\ngQ+RKh6JCYlISeS36lRv15nNzOJir2WgX8fOqOPihMR7AdgRl3sDbOXRDV4f3EKvHuPwyZLJqClR\n38FUq98UgZsOIkJpw+rgAmtVLB4UsiWngerQJVMmQDLElHu/3LadZEjhXUMypHA+JQll+nLZuctr\n+nOD1l7WVSAnPZhjNvXczhsR3Lpe7twnGwJ0YVxONMfsi7mF3qHqazmp3E9vVuV+uxqbG6cQ3+1D\ni/ipSd3L+rWvuJvPFEIK/w3jdNf5OEPnenHMvriQ3FhQThy3/oteunQ1B3zLhSbnptHmufNmYuH5\nUGi5JRB/Y4vQv5uvFW2MGW+InDu4fKhurDSasIljN6uCU8X4CWOeH3duXYZzvewsOP0xE3lpB9dB\nKhbSjtT8VvjfCR9PO549R63jYthUNu+0404bxn+qf0dKznf9WF0a9XX1by8n4zH3w8gaecL+vl34\nuM1Jv66rt64s+/e44PQcLsT7e11eVTv3E+qv36YnpxdzkDTj/GKyhTqr3+Sc9+pPden4PGf+EaQO\n0vzWN18rvE56mZWZl6+3Kbmybi/JEFMabRWvrSRDjPcZyZCCbPj/04iICC4lJYVLS0vj0tPTuf/+\n+487c+YM5+vry509e1Z4nTt3juNf/PesrCxOLpdzbGKNExa2WbYsH1NxKmSmZoKt7sPRsaTmBXlZ\nZbGDrBSQMDtmq9wAZqe8qndDzE2ajKiLc+GoZ06RG4l8pkaAPzhErhIXGHucSs4ORFNCxsZk0Tev\nVI9lfuw56I+950Dl66CArZ59fm6CTL2xXPR65KbX93HyNKQpOfa7KPg781vbH0PO9sODfWN1Dw9r\n0/LpktiuN9YsnWU+syNtnPL8yT9zY0r/qabWXjBjTZIh5fkXWLnrRjJE3b+VVYbw/6dMqYeMnaVk\nZmYmPL/n7++f5zk+ngAfj3e8rGnfvj1ycnKQmZnJbE7Us0pCIL2VIgGm1P934Aikrfqgvad9KWZM\nWRGBikuAf9B4lMfrgjnOnpuJGNK88u1gY2pKrqm195X9+kiGvDLUVFDFIVDZZQgp9RVnLFJNiQAR\nYIpKeFgMLJ2qo5re1rWVCYypKbmm1t7KNFapLUSgwhGo5DLkRZX6Cri4XeGGIFWYCBABLQGRLWp7\n2mq/0ScRIAJEgAgQgaITIBlSKKvys/tNodWkQCJABIgAESACRIAIEAEiQASMESCl3hgZuk4EiAAR\nIAJEgAgQASJABCoIAVLqK0hHUTWJABEgAkSACBABIkAEiIAxAqTUGyND14kAESACRIAIEAEiQASI\nQAUhQEp9BekoqiYRIAJEgAgQASJABIgAETBGgJR6Y2ToOhEgAkSACBABIkAEiAARqCAESKmvIB1F\n1SQCRIAIEAEiQASIABEgAsYIkFJvjAxdJwJEgAgQASJABIgAESACFYQAKfUVpKOomkSACBABIkAE\niAARIAJEwBgBUuqNkaHrRIAIEAEiQASIABEgAkSgghAgpb6CdBRVkwgQASJABIgAESACRIAIGCNA\nSr0xMnSdCBABIkAEiAARIAJEgAhUEAKk1FeQjqJqEgEiQASIABEgAkSACBABYwSKpNSnJCYiNVVu\nLI9KdV2ZGo1b9yKRXalaRY0hAkSACJQdAZIhZceeSiYCRMB0CBSq1OekhOCbAdVh7+QEmUyKxpO2\nQ/GS2IT6/IbVR0JeUu562SqfYOX81QjL5PQu5npTgjejebfVSDccnBuRfESACBABIlAoAZIhheKh\nQCJABIhAqRIoRKlXYPOnPfB95Djcic9AcswtfNlUBsVLUnYTgvdj973EUm2cwcy4RHit3Ay5kXY4\ntZ2CcL85kIkMpqaLRIAIEAEiUCQCJEOKhIkiEQEiQARKiYBRpV4R6YPx+x/j8IF5aOQkhcy1KT6d\n/IFa2VU+xYYZvSESiYTX6iPBQnW4zPuY2fNDzP16lDrMeTj+e5CsqaoCpzfO0qWxeX2WMFvOZdzG\nxLaOeGOaDy7NHYuuXVqh/Wgv3Uw5Hz6p50gs/X6mOq1Fcxy9m44bf87BzG2B6ry5NGyeNBgH7yTp\nyjq3baGurFoDlyFKyeHqttkQWbbEnYwgjOzbFU1sWmBvkCYNy2PrzN54d9An+HGHr658PsPHl3fi\nbWuJkB+f14MU9R1B6t1D6NdjHGaPf1cIq/e/7/Ao1cjdgqZm9EEEiAARMAUCJENye5lkSC4L8hEB\nIvDyCBhV6tPjnwLWnVDNTlyg9H+XD8V0v3cQnpyFqGt7MP39ZjgUmg5wGbh98TjuOX8CeVYitg+5\njNm7g4T0XMZdTJ2yAscepoHj5AjcMAw2bDZcZN0AP55/iGNLOqL7whU4fPwcvFeNEMLUBSvx8OJe\n7HrUGI8TkhF2bT1qsWn09Fh/BMdm6Or2LOAcolNUwvd7+2ej44z7OBcah8yMRPwxoiFULKjl0MWI\ne3gSja2bY8XW/bgU4Yu+jR3UeYhsMWzRXqyd9iZ+2RKms6nPSbiIXu+MwrCjwcjKiMUiVy+8O32P\nEK7MSsDRU16o9fF6ZCUH4y3vb3HodryuTuQhAkSACJgqAZIh6p4nGWKqvwBqNxF49QSMKvUFVXlN\n5diM9rWj9zB70cfwkElQrU1//PRmVQSGqpXZVFFDfDmmEywlDuj60Se4ecxfM+stQVNbSyydvwTb\n9/tAVKMx3Kx4GxcxbKUOqGLvCHNLe+a3g6ODNA8JPs/dy8egpqMMdZp3QIvq1uxuwE5Iq41oYcZW\nDfhKs/od99qHod99hbc9nWHF8n57wEDUkoogsbKCk6sLHK2c4ejkCJmjI2z0Giq1s4O7i1rJN9dk\nnPjwJu64zsTQLvUhkVbB4GkLEOZ9Ac9y+Bn5LKDWAgx/py4ksiYY8Vkt+N14oq0SfRIBIkAETJaA\n3l9rXgYkQ0iG5B0R9I0IEIFSImBUqRdJLAFlPDST3wWKs7KQ6K5Z2ZsjMS1T+M6JnWGt+TeXOrhC\nEaM2RxFZN8HeyAf4bsRriL2wGg1crdWz+5pclPJkptQbNmTn8zTkdPGZnXxIWDosNMlzUnIMRReu\ncWzKPlHFQSI2XJbSUEpzKbv10IufkwmVZnscS3d7WGjSOLo1QFJK7uoBX1ZqaqqwSmAoW7pGBIgA\nEaisBEiG6PUsyRA9GOQlAkTgZREwqtTbNeqDZW1iMeb/diKB2aNz8jhcPHON7X5jhUYdZNi0/Rh4\n0/K08Ev45XQ03m5Wo9A6cso43Htsjk69BmLmivUY72aHqHj1jQCf0MG9AfyPncczpZIpwWozmsIy\nrOJRFz67TiGR1SEh+BI2xqSqozMzmm7ju2HPN3/ibgKvoqsQFuiPGM2TsWZWMjQ198fFmxHglW79\nrSt5v0rJtu7MUfBz8IIy7lCzMTOq/wYng+LYFQXOH9kKp7ZvwFUiAsey1960sEBWEn8Dkzs/dXXL\nKLZrkAxeN/i05IgAESACpkOAZAjJENMZ7dRSIlA+CBhV6iFywKzjPugTMhPOFmYwk7pg8C+BTHEV\no//Cg3g/eDbsmcmLXZ3O6LjiFAY0sjHYIouqbMafd8pn+OK1muqHV83r4HSv7zCwTe4MfKPu4zBE\ntQxuFhao2m+DcMOgTqh+z1WV1d892w/BeyFL4cTq0OTzg+hlZ8FMftSxWo1ah52jgtHY2YKVJ4Fn\nr41IVi8YABZ1MG3lVIx9sxbMJBJsC1Ar3Ak3t0LMHvx1azcdCJ8n5Fv7Iy/IXTri6r6FGNrSheVl\nhT7L3Zl5zyjwrWJZw9Itdwafn823E0yKtDVXM7GzyF97bTh9EgEiQAQqKQGSISAZUknHNjWLCJRT\nArxGyjFXaPV4ExKJRAorq7zKKX+gSI7YFg52uaY4hWbEbgkyUzPZfLeEpbEqPGoRQjmVHEmpSmYb\nbwetDbx+sixWb74sa1aWoXD9uM/zc/I0JGXyZTHb/+dF5sOZ3eivQ5pg5pMJiLo4F465un9RUlMc\nIkAEKigBflew5/2nVtCmGax2UdpLMoSJBJIhBscPXSQCRCCXAP9/GhERIVh5mJmZCRPh/v7+6glx\nzY6TfGw+Hu94WdO+fXvk5OQgMzNTz1ZECDb8ZsceIDXkeAW3eE4M/mHUvI/BFi8H/dgisRUcHY3f\nHFiwsrT27vrpSuIXWdmyB2yLkVKViDiuHTb+Op4U+mJgo6hEgAhUPgIkQ5gQJhlS+QY2tYgIlDMC\nRZqpL2d1puoQASJABMotgaLMXJfbypegYqbW3hIgoiREgAgQgSIReNGZeuM29UUqniIRASJABIgA\nESACRIAIEAEiUNYEKrxSn5IYK9jVFwSpQEJsItKfv5FOwaR0hQgQASJABEyCAMkQk+hmaiQRMAkC\n5UKpv7JxfJ6HAPjlh/XX2K407GHTFW9VU/vzd4fyCZYPdIe9kyscZRb4vz+v62IoIs9iMDtcytnV\nCbbs9Ni/he0ogfzlzF53UnMwli6pQU9y5HWsnTFYqOOuoCSDcehi5STAZdxAB+cuuFHI2QfPa3nq\nnX3C2Bm+7D9d1CsbR6DGYK8ijT9dIvIQASJgkED+/3aSIQYx0cUyIEAypAygm3CR5UKp5xTP0GzG\nn3gUEY7Q0FDhNbipervLLOHk1oI9dGXrHMw53xtB8Qo8PL0K3w5vjVORbHd5fteZTz9CQP/1SGaH\nRB3/tjYGvLsY0SwfvpzWc/9CVEwk/I//gh+mvosfjj4omLnelZyUa3izTlusjXEQts1UKGnqXw8P\neYtAQKlME2L9uWgaLj7THIzGpSMuMiXPOQlFyIqiEAEiYIAAyRADUOhSpSFAMqTSdOVLb0i5UOr5\nQ5tq1WmAWu4e8PT0FF7OefZ7z8eBKe7nD5zB0CWT0czJArW7jMVPb1bFn6dCkJP6AH+dfYZvZrwP\nGdtXvtfkpeiQvB7nQzKEw6GqVauNaq7V8VrvSdjQuwYu33uaL/O8X0VST+wJeIyQXb+hb3NnZBW+\n+2fexPSNCOgRaIzbWLDplO4KJ7IQtkdND/dGb5mlerXKojl+/Eu96nTn8GLdCtbo6dPxtrUENQet\nZAe0qQfhzcOrdOFvT/RCZCYNTh1c8pgUAZIhJtXdJttYkiEm2/VFbni5UOollm44PrUtWrZsiZbN\nmXLjNhYhhSooKsiTstG5bU1dQ81kZniaksGO8MtAgqQDmnnIhDBOM7GemsHv3ylCdHQ4omNjcfvS\nHmw/8xQ929TS5WHII5I4oHkzd36TYaRma2ZZDUWka0SgMAJOH2GT3z6cWjwTV5kpj5idfKxzFrWw\nxD8MKrbfbGrIKswa1BqHQtOR+CgAreadwAO/Vfj9zzT8/jAQXfyO4jH7bcRcWo2WHx3CufB0cDmJ\nGINl+HDlGV2W5CECpkSAZIgp9baJtpVkiIl2fPGaXS6Ueq1ZzImT3jh8NAThV5bBU1r4aU2Z0SpY\niLSHYamVfGuWJCczA3eYIi8Ra9OrkKBSK+MiS1cELhuIYT26o+mbw/Cw33ZM61oTXMZtZoNvrZv1\n5O0x+VeNwb+QzXPxxlOli82pVPBLOAOlpmUlHivyKLi26Ie/xsmx8HdfZNvmnsAskVrj/pFV6NG1\nKz6evk4oKT4lU/isXrU6qlerAYt6rVDHrRFatXYQrj+4chnI8MXKeZ/hgwFTcOBiDK54XSxwErOm\n2vRBBCo1AZIhlbp7K3TjSIZU6O6rcJXXasVlWnF+6dTV0V0wizFYEZ3yrg0Vw95dghthMUAbpuSI\npOykV3VTzB2roAN3Afejs9DE0xJmVlJ4CCfhiqFUxKDP2ms4NqUNeJMH2zp9cGBRbwxu3AC/3ArF\nam32mk+RxBY22nsDds3CjH0pUBdAKedPrpXCNt+Ju/myo68VkICZrBkehoajGlsJ4p3IumhjxVBT\nlSox3p+7AgPrTEP9UVLYyVqwaHJsG98Z6+svwf49c+HMPcaUC7kmOiqFElY1G6Cb2WM2k6/SM/9K\nR+t5R7Bldgc2/lRsWK6FpZjlqTdeDdWBrhGBykiAZEhl7NXK0SaSIZWjHytKK8rFTH1hsHhFOjnx\nGTJTE5GYqH4pmOlCm74NsfGnvwT74sQ73phyIhIf92rK9Psa6Opij98OsNlQlvHNw9txQjIQXZrb\nC8Vky9Vzrja1e+O/Hzpj4oxdbHZTDNfqbEY036uai9qEJys1FampCcz8JhuJz54xv1z3gCP/ZPv7\nrlVQpesamiUtrCMraJgiKgg+3j4IjmKmXYIrfKwU1kxOxUHs3gd/f6XEaq8rYAdMIptTIvZaBvp1\n7Iw6Lk5IvBeAHXHpebPhB3I+V61+UwRuOogIpQ1cXFxgrYrFg6iUfLHoKxEgAiRDaAyUJQGSIWVJ\n3/TKLhdKPW/rbsxJ2Yz8nO4NYS1zgpOT+rWfbSvZecZWzJGtgZuFGZyafIgZv19G/3rMpEHkjFm+\nuyFa0o/ZLYvQcvBy7D65EnUkIsGmXr+cjp8uQyPf6Thyq/BtKq/+/hlk9h5Y7B+Lub0bQlZzMO5l\n5D6UaCs2RxV3mfDQo37+5K/4BNLjgvDp1DG4/lSr1Be/TRKJJbMHs9MkFOO9Sb+gg1QMSxtLmIvs\nMPjXL7G4t4dg8tV+wUF1mEQMiaUtxCwp78y0ydVfUafXQnjPA5o7qx+wtXFtiJ0BzzSh9EEETIsA\nyRDT6u+K1FqSIRWptyp+XXltmmOugrZEhZTEVPBmMna2kjxt4FRydihVJizsHGHzEo2MEm5uhXPL\nMVh3NhqT36mapw70hQgUlQAnT0Ma29XGzi6f9v6cDPh0SezBWWuWzvIljvPnVIOC9Qjwz+NU3P9U\nvYYU0Vux20sypIjdTNHKOQGSIeW8g4pYPf7/NCIiAjKZDGZmZsJkn7+/v/DJh/Ev3mk/eVnTvn17\n5OTkIDOT3xCmQjsxs6V3NNgCkdgKjo5WBsNK82JKXDJ6TdyEkW+TQl+aXE0tLxGzxbErwXDl072C\nYW5q3UHtNRkCJENMpqsreUNJhlTyDi5i8yr4TH0RW0nRiAARIAKviAA/g0Iz9a8INhVDBIgAEahE\nBHj58SIz9eXCpr4S9Qc1hQgQASJABIgAESACRIAIvHICpNQXETlvrxYbm6jb9UY/mXpnnlT9S+Qn\nAgYJvMqxkhx1DyGF7IiTzsKDwxIM1pMuEgEiULoESIaULk9TzY1kiKn2fNHaXeZK/dXfx0Pk0A/+\nz9QHRF3d9rnwAMBetsON1vltHAeRRXOcfKQQLsVf25DnoQF+uUJ4sXxu6+1Ko02v/eS3n8x/yJTV\nWyuFrSgTbm4A70838Mzwo3O/wUxqB1dXJ4irTcWtBO3JsiqcWjtWszOPDJ1mbhfyyl+OW/dp8Lkb\nr62G0U9OlYbAE17oLbNkB195GayL0cQU8FII8H3ZwbkLbrBTYF/MGR4rz89TAe91y/BvaPLzo+aL\nEfDbAAxYdTXf1dyv13cNxug/b+deKKav9NgUs2CKTgT0CJAMyYVBMiSXRXnxld7/JMmQ8tKn5bke\nZa7Us2MxgeSj2HXuIduHJwk7v94m8FIo2bGwvOPi8e/mQ+yEp1s4eOa+cMmp6UCEhoYi4mEQPq9m\nj28P+iMiPBwPbmxGQ/5Y2UJcdHY9HL4RhvDwUCGP27s/gUyTRBFTUKPnf5AT+k5nW2YGQJn1GIua\n78NHy44LJSTc3IEe0zZjz41YpEWwffF/+xTz/7onhPHlnLj9hNUxEF9W/xvdeq5BYsHs89TUb1U/\ntOk9Do1Gd4I8TX0DkycCfamwBAobK89rVODKVQhLMX9etALhHWacwsm5bxa4rr1gbe8JJ8u8u0Zp\nw+iTCFQcAiRDtH1FMkRLovJ9kgypfH36MlpU5ko9l8XBvllzHD16AVHhflgdrZ6RVB8Rxc7bfHQe\ni0O7Y++O+fh10WFhJlxkVQWenp5wr10fNWtL4VSzPtw9PFDXw/W5e8VzYmfUa1QbHh6eQh51azkV\nyjUx9BJOmL2Lz4a0glhSEzN+WoxbW/9AGNtG8MHFQ3DutQ79W1SBjXtHrFzeF6cvhwv58eXU9HBn\ndWyF6Qt+AKIP4FFi4bO9DQeuR0RGDpZNGI74EHmBet3+axGa2HfGwTu5qxgFItGFckmgsLFy4885\nmLktUF1vLg2bJw0W+jghaB+aWFhj3sM4zB79Hjq1lObGY2cYn944S7diZfP6LGFM8plwGbcx8bU2\nGDJ6Inb6hOXhcefEKnUatvLV5rODbMcdzR0tu6Het3SMLr+52/wMmprlyayQL/yJzfyKk7CCxsr6\n8a/rQuxwn5/RfrSX7qC2nJQb+F/N/vCNzBLCbx7W1I+tvr090QuR7HcmOMZl68zBmPX9El2+8/+6\npQ6jd5MmQDIkt/tJhuSyqGw+kiEkQ4oypstcqVcq0tB/3GJMyNmF3h98jcVbdmKQo1RX96B/96J6\n9354r9/7aBw5H4FRauEvRGCncWblMKHPaWb1damMe2RKPzSxbYGWLVsKCodOmTKSRJkhh2WTLnDX\nKD9Z/N2GPAqpbE/x9JRktOvWDprzgcAfVR56IVh946GKx5NHkXgWeQ+7tuwAqg2Au2PhqwhV6jaE\nu1SEjAzDs/RJUYG4k+KL6JSit9dIs+jyKyZQ2FhJj/VHcCybbdS4ZwHnhD52bNwPl+NCMbuGIxat\n3IgT56Mwf0AzIRaXcRdTp6zAsYdpbKcVOQI3DIONZniJrBvgB5/TGN8uEadZuNYpIr3RpPcMbL8W\nDcXT3cIqlzbszE8fYtL5ZsJNpSo+GBFfvouNl59qg4v/aVELS/zDoGJ76KaGrMKsQa1xKDQdtdq9\nA/GeifjvgfrU3Pv/bsUOi45oXd0CMZdWo+VHh3AuPB1cTiLGYBk+XHlGV3bG7Yv4cdUjLA2KRlx4\nEHrVddCFkcd0CZAMye17kiG5LCqbj2QIyZCijOkyV+r5SiqsaqP/gLq4GeqID3s0ya03mz088u0/\nGPBBc0hldTComiP2n32YG27Al3Bzl262UWdrz2b9Rm/0F2KnihrixI0j8PY+zExwwvG1RkkykJVw\nKTM9GZzIQhesUqpn0PkN/tOTn8LcMldRz5KnwNaePyUUsOPuYeiQPuhcpwlGf+eNQ75z4cLqoX1m\nQL9uvH9HQO7su8iIRcRrn2xGZGQkRrZ01tWHPC+XAKdSwS/hDLQrR/wseP7nMvj+qzH4l0KfgTA6\nVvjqs1NloXdkBH+svYgNMP6sBTs7F7jUtITU0RVSdpCag512cEjQ1NYSS+cvwfb9PhDVaAw37aw7\ny8uOxa1in/cMh/SnzHyt7k8Y0LoqLJyaYtSiLkiV8zfF7FmO0yGIO3cYc8YNwOBp3+Fqcia2ngot\nMVyJ1Br3j6xCj65d8fH0dUI+8SmZMJO1xfwZ9TFvw3lWbhK2frEdizcNFkzgHly5zKzxfLFy3mf4\nYMAUHLgYgyteF3Wz+vLkbKw+/CPaejjB2aMZOrSuUeL6UcLKRYBkCMmQ8jqiSYaUrGdIhpSMW7k4\nfCopJQsNxi1FUEA2mjrFIU2VLbRGFXUN+6MTcWd4c6wbrm6g+4FT+H5YQ92sZP5mOzbpLyi++a9b\nSHkFJwRqsxgPVH+O7b02vczFDVmhV5Cg4mAjEcHa3kUbBBe3hrgbGMbMFF4XzH4cXNyRmqI2F0iR\nvAW/yz5oYp2Fg/NaYtJXO9Bz31i0HDAfkT1m6/LQemyc7LVeaNU23QWNR2LnACeJChKd8pY/Bn0v\nbQJmsmZ4GBqOajL1/S8/C/7LrVCszlcQf6qxdqY8X5DwtbCxwkfQ3RxyiQgJS8cbufeKwmqUU75f\nqsi6CfZGPsBZXz9c/Wc1Ggzug4P32apXPRtDxRu8xs+ia508KRvL/tqIyW84QsEWgsRr10DCHg4v\nmVNg2/jOWF9/CfbvmQtn7jGmXDily6rT2O8Q3God/un5BMuzBuDxOzU1YeloPe8ItszuAKVcxW5q\n1rJTcqWw41mwqvKrcjZi9X+DLjPyEAFGgGQIQDKkfP4USIaUpF9IhpSEGp+mXMzUC5UXOaNZQ1dm\nSaNEqkpte37Pdy/uuC9BAhPm/GEuqff3IfLQetyMNW6bLhLbonr16gVeVfRMepRMQTfoVClITE1F\nYmKi8EpKlcOhRgs0TtyKQ+cihBnNQ5sWonrf0ajHlLxarbogbM96XGL2wDkpIfhtzmGMn9IZWrVK\nXY4l3p+5FbJDn2FXQBwkdlUK1I2vr72gqKuQysp/lsSeK2B1iU1MQRo/k6pxVzaOglQqxaZrcdpL\n9PmSCSiiguDj7YPgKK15jBiuBsZXNRdZoTUxOlaYwlrFoy58dp0SHqROCL6EjTF626OyZRv3xtbw\n9g2GgpmZsYUDwXHKONx7bI5OvQZi5or1GO9mh6j4TE0d1JGUihxkC/ZiEOzjrZ09gLAvcYHdNIB7\nitMHLqtt6kVWaNRBBq89l6CyrQIXF6bYx4QjOlW7PmG8aSJmZpaYkIgUzW8mMTEV2cwsLvZaBvp1\n7Iw6Lk5IvBeAHXFqcxs+JyuPbvD64BZ69RiHT5ZMRk12s8y7avWbInDTQUQobVgdXGCtisWDQrbk\nFBLRGxHQEiAZwkiQDNEOh/LySTKk8J4gGVI4n5KEMn257NzlNf25QWsv6yqQkx7MMZt6bueNCG5d\nL3fukw0BujAuJ5pj9sXcQu9Q9bWcVO6nN6tyv12NzY1TiC8n/Tr3llNn7npydoFY8Te28Npznpf7\noE1cWg7H3fZemXvd9VMuKF6hSS/nDi4fqgtrNGETx25AOEPl/PdDP449VCvkV6BwzYXs5OtcB6lY\nlx9fH/32+28YJ4TtvJloLAu6XsoEtONi87WijTHjxRseK3x8VYyfMOb5/nbrMpzrZWfB6fdx5KUd\nunExUvNb4X8nfDztmPUctY6LYVPZvNOOE21Y7jhScr7rx+rSqK+rf3s5GY+5H0bWyBP29+3Cxxk/\nzvnfqn45sH+PC07P4UK8v9ddr9q5n1B//TY9Ob2Yg6QZ5xej/1uUc96rP9Wl4/Od+UeQ0CZO81vf\nfK3wOqkjl+07X29TcmXdXpIhuaONZEgui/LiIxlivCdIhhRkw/+fshNluZSUFC4tLY1LT0/n/vvv\nP+7MmTOcr68vd/bsWeF17tw5jn/x37Oysji5XM6xCWlOWNhm2bJ8yBVGQClPRRqbCJU52hXYYYc/\nDEKuEsORhb00x+yeV/VuiLn/z951wEV1NPH/AUe/o4MI9t5jjS323hI1amyxRY0lmqhRozFqjC2x\nfEaT2HvsGnvvXVRQEQvSbCiC9HJwJ/ftvisccEcT9ZDZ3+/u3nu7Ozv7f+/ezs7OzkSPQuiVKchm\nz+07Y4MIvx0Chp4VpUKGaKYZ1/d8GW5RgaS4JOYHR8xs7S0NF8uQw3lIhq2OfX5agSS2UsTpSRi9\n3DvRTKPDj3iwnXi2oVwiyfy/uLz0c/Q83xmBzCRNs9FcU5vXi2Zeb6xZPYsMZkeaMsb8y/dYFKZ3\namHrb16fPRpD8ooc1dNFgMYQFRof6xjC36dMqIdUKoWJiYmwR9TLyyvdXlGOAC/HEx9r6tevj9TU\nVCQlJYGEegGWAvDFhPozew7A6pMOqF8mzf6+AHBOLBICWgT4RuMBJeoJ5jjb70ShZ7WPz4NNYRNy\nC1t/tQ9zQTugMaSg3THiVw8CH/sYQkK9nptOlwgBQsBIEWCCRUhQGCwci8JdZ5+LkXKbJ7YKm5Bb\n2Pqbp4eCKhEChED+IPCRjyFvK9QXwMXt/HkuiAohQAh8AAREtihZxvYDNExNEgKEACFACBR4BGgM\nyfIWGo/3myzZpExCgBAgBAgBQoAQIAQIAUKAEDCEAAn1hpCh64QAIUAIEAKEACFACBAChEABQYCE\n+gJyo4hNQoAQIAQIAUKAECAECAFCwBACJNQbQoauEwKEACFACBAChAAhQAgQAgUEARLqC8iNIjYJ\nAUKAECAECAFCgBAgBAgBQwiQUG8IGbpOCBAChAAhQAgQAoQAIUAIFBAESKgvIDeK2CQECAFCgBAg\nBAgBQoAQIAQMIUBCvSFk6DohQAgQAoQAIUAIEAKEACFQQBAgob6A3ChikxAgBAgBQoAQIAQIAUKA\nEDCEAAn1hpCh64QAIUAIEAKEACFACBAChEABQYCE+gJyo4hNQoAQIAQIAUKAECAECAFCwBACJNQb\nQoauEwKEACFACBAChAAhQAgQAgUEARLqC8iNIjYJAUKAECAECAFCgBAgBAgBQwjkSKiPjYpCXJzM\nEI2P6ro87gXuPnyONx9Vr6gzhAAhQAh8OARoDPlw2FPLhAAhUHgQyFKoT431x6/disLO0RFSqRUq\njdyI5HeETcDpf7DkgP87oq5DVv4Ui6YtQVCSUudi2mGs3xpUa7kECfqz0wrSESFACBAChECWCNAY\nkiU8lEkIEAKEQL4ikIVQn4w1Q1pj3vOhuP86ETFhdzGhihTJ70jYjfTbhW0Po/K1c3qJKaOwetEa\nyAz0w7H2aIRcngypSG9tukgIEAKEACGQIwRoDMkRTFSIECAECIF8QsCgUJ/8/DSG7XqC/XumoqKj\nFaSuVTBk1BcqYVf+EivGtYdIJBI+Sw74Cewokx5hfNuumPLTAFWeUx+cCYxRs5qMUysnauvY1Jso\naMuVifcworYDPh1zGlenfIMWzT9B/UGrtZpynj+ybX/8Nm+8qq55NRx8kIDbWydj/AYfFW1lPNaM\n7IG996O1bV3YMF3bVvHucxAqV+LGhkkQWdTA/URf9O/YApVtqmOHr7oOo7FufHu0+XIg/th0Tts+\nJ/jk2mY0thYL9DitwFjVjCDuwT50bj0Uk4a1EfLKfj0Xj+MMzBbUnNEPIUAIEAKFAQEaQ9LuMo0h\naVjQESFACLw7BAwK9QmvXwLWTeEuMcvU+vH5vfD95c8QEpOC0Jvb8X2XqtgXkAAoE3HvymE8dBoI\nWUoUNva8hknbfIX6ysQH+G70QhwKjodSKYPPiq9gw7ThIuvy+ONiMA7NaoJW0xdi/+ELOLK4r5Cn\naliO4Cs78O/jSngSGYOgm8tRnKnRE8K94BeeqOXtlfcFvIhVCOcPd01Ck3GPcCEgAkmJUdjStwIU\nLKtGr5mICD6BStbVsHDdLlx9dg4dK9mraIhs8dWMHVg6pgH+WhuktalPjbyCdp8NwFcH/ZCSGI4Z\nrqvR5vvtQr48JRIHT65G8X7LkRLjh4ZHZmPfvddanuiAECAECIHCigCNIao7T2NIYf0HUL8JgfeP\ngEGhPrMor2aOabRvHnyISTP6oYRUDPdan2NBgyLwCVAJs3GiCpgwuCksxPZo0Xsg7hzyUmu9xahi\na4Hfps3Cxl2nIfKsBDdLbuNiBlsrezjbOcDUwo4dS+Bgb5UOCU5z2/zBKOYgRalqjVC9qDWbDUiE\nupqC5iZs1YAzzfg7vHones39EY3LOMGS0W7crTuKW4kgtrSEo6sLHCyd4ODoAKmDA2x0OmolkcDD\nRSXkm6oJRwXfwX3X8ejVvBzEVs7oMeYXBB25hFepXCOfAhT/BX0+Kw2xtDL6Di+Oy7efaliiX0KA\nECAECi0COq/W9BjQGEJjSPongs4IAUIgnxAwKNSLxBaA/DXUyu9MzVmai7XXLO1MERWfJJwrzZxg\nrX6bW9m7IjlMZY4isq6MHc8DMbdvXYRfWoLyrtYq7b6ailwWw4R6/YbsnKa+pC3P7OT9gxJgrq6e\nGpuqr7hwTclU9lEKJcRm+tuS66tpasWmHjrlU5OgULvHsfCwg7m6joNbeUTHpq0e8Lbi4uKEVQJ9\nZOkaIUAIEAIfKwI0hujcWRpDdMCgQ0KAEHhXCBgU6iUVO2BOrXAM/nkzIpk9ulIWgStnbzLvN5ao\n2EiKVRsPgZuWx4dcxV+nXqBxVc8seVTKI/DwiSmatuuO8QuXY5ibBKGvVRMBXtHeozy8Dl3EK7mc\nCcEqM5qsCDqXKI3T/55EFOMh0u8qVobFqYozM5qWw1pi+69b8SCSi+gKBPl4IUy9M9bEUooqpl64\ncucZuNCt67qSHyvkzHVnajLXwQvCuH2xSsyo/lec8I1gV5Jx8cA6ONb+FK5iEZSMvGbSwjJZS3wC\nk6afurF2APMaJMXq27wuJUKAECAECg8CNIbQGFJ4nnbqKSFgHAgYFOohssfEw6fRwX88nMxNYGLl\ngh5/+TDB1QyfT9+LLn6TYMdMXiSlmqHJwpPoVtFGb4/MizCNP0/yV/ihbjHV5lXTUjjVbi6610rT\nwFdsNRQ9FXPgZm6OIp1XCBMGVUXVd5qorDovU78nOvn/BkfGQ+Wxe9FOYs5MflSlPhmwDJsH+KGS\nkzlrT4wy7VYiRrVgAJiXwphF3+GbBsVhIhZjg7dK4I68sw5mbOOvW53vgZCpAt2SvVdD5tIEN3ZO\nR68aLoyWJTrM92DmPQPAe8VIw8ItTYPPtfkSwaRIw7kKE4l5Ru41+fRLCBAChMBHigCNIaAx5CN9\ntqlbhICRIsAlUiVLWbLHTUjEYitYWqYXTnlAkVQzW9hL0kxxsiTEpgRJcUlM3y1mdSyzLpqDXKVC\nhug4ObONl0BjA69bLYXxzduyZm3py9ctm92xUhaP6CTeFrP9z64wz2d2o3/3rIzxT79F6JUpcEiT\n/XNSm8oQAoRAAUWAewXL7p1aQLuml+2c9JfGEDYk0Bii9/mhi4QAIZCGAH+fPnv2TLDyMDExERTh\nXl5eKoW42uMkL83L8cTHmvr16yM1NRVJSUk6tiJCtv4vCdtAqi9xATd3yQx8M2r6bbC5o6BbWmRm\nCQcHw5MDc9aWxt5dt15ejkWWtmyDbS5qKqIQoayDlX8PI4E+F7BRUUKAEPj4EKAxhA3CNIZ8fA82\n9YgQMDIEcqSpNzKeiR1CgBAgBIwWgZxoro2W+TwwVtj6mweIqAohQAgQAjlC4G019YZt6nPUPBUi\nBAgBQoAQIAQIAUKAECAECIEPjUCBF+pjo8IFu/rMQCYjMjwKCdk70slcVc8Vbg8ZFcVs9POJnp4m\n6BIhQAgQAoTAe0aAxpD3DDg1RwgQAu8MAaMQ6q+vHJZuEwBfflh+k3mlYZtNFzZ0Vx1nhED+FPO7\ne8DO0RUOUnP8vPWWtkTy8/PowYJLObk6wpZFj/1PcEcJZGxn0rIT6sBY2qp6D65umc68/0jg6CiF\nJXNlOW33Q6GcMvE2Gjk1x20DfvFfe68T+jX7QKCWLq/Tw9Fa21+3VmNwMSRGm2/oQB73AgdWTBTq\njVjlY6gYXc9nBLK7xzlpLu7+TuG+9ZlzRlv8+sq+8OyxOkfPn7YSHRAChIBeBDK+22kMyQwTjSGZ\nMXkfV2gMeR8oUxsaBIxCqFcmv0LVcVvx+FkIAgIChE+PKip3lylC5FYNu2m/19dNxuSL7eH7OhnB\npxZjdp+aOPmceZfnXmeG9Ib358sRw4JEHZ5dEt3azMQLRoe3U3PKboSGPYfX4b/w+3dt8PvBNIE7\njXraUXzALjTo+yvWnw9kO4tj8fDKNriLcqauv3l4vUBo7Z5LzAtPWnrxpiz23w7CyxBfTC27Hy37\nbspauGN9+qNGdXSZ8gxDujgjIllviKy0BujIqBCQy+MFfrbOGIMrr9SB0ZQJiHgemy5OglExTcwQ\nAgUIARpDaAwpQI9rrlmlMSTXkBXaCkYh1POgTcVLlUdxjxIoU6aM8HFK5+89w/1hQu7FPWfRa9Yo\nVHU0R8nm32BBgyLYetIfqXGB2H3+FX4d1wVS5le+3ajf0ChmOS76JwrBodzdS8LdtSjqth+JFe09\nce3hywzE05+mJrKgVkVGo0PjUsylpwTl6/fCyG5V0hfSdyYPxuYlN/HPnvWw2LMWdyLTotzyCLkV\nK5aEW4mq6NJjMFJCsxHuWD96778A2estGNWxMeLUgbT0NUvXjBeBSriHX1ad1DKoFJkL7lETQo6g\nvdRCtXpjXg1/7FatOt3fP1O7ojPo++/R2FqMYl8uYgHaVC5o7+xfrM1vPGI1nidl7ZpW2zAdEAIf\nGQI0htAY8pE90nq7Q2OIXljoog4CRiHUiy3ccPi72qhRowZqVGPCjds38M9SQFFAFv0GzWoX03bF\nRGqCl7GJLIRfIiLFjVC1hFTIU6qV6nGJ3H+nCC9ehOBFeDjuXd2OjWdfom2t4loa+g5sPSsKk4Iy\ntfti4YoduPLgub5ima7FBZzDJpOv0LFjF/Rz8sMhr2faMlL5ZdSp2xxNa1ihVKvpmLSkO5uAaLP1\nHJihVNWKQsCrpOS0yYGegnTJWBFw7I1Vl3fi5MzxuMHMtcxY5GNtMi+OWV5BUDB/s3H+izHxy5rY\nF5CAqMfe+GTqUQReXoz1W+OxPtgHzS8fxBP23wi7ugQ1eu/DhZAEKFOjMBhz0HXRWS1JOiAEChMC\nNIbQGPLRP+80hnz0tzg/OmgUQr3GLOboiSPYf9AfIdfnoIxVllIukl4oYC7SBMNSCfnWrEpqUiLu\nM0FebKapr0CkQiUIiyxc4TOnO75q3QpVGnyF4M4bMaZFMSgT76Wzc+f2mPzj2eMvJDk0wOnn/tg6\noSEeX1yFhpU80XX28WzNJm4e3IDSHZqgqLkDGo6oik07LmtNcOJEFbBj22bsPOKHfUuGYP7wZXgS\n42eQhwRSwObHs54nGkqFApcjz0Jj8JTVs5LlfZKFwrV6Z+weKsP09efwxjYtArPYyhqPDixG6xYt\n0O/7ZQKfr2OThN+iRYqiqLsnzMt+glJuFfFJTXvheuD1a0DiOSyaOhxfdBuNPVfCcH31lUyRmPPU\naapECBQwBGgMoTHEWB9ZGkOM9c58nHxppOIP2ju+dOrq4CGYxehlRCu8a3LNYOchxu2gMKAWE3JE\nVizSq6orpg7OaKS8hEcvUlC5jAVMLK1QQoiEawZ5chg6LL2JQ6NrgZs82JbqgD0z2qNHpfL4624A\nlmjIq39FYlvY8LmBQyl07DNa+Mz4/k84ddiBJxNbo2SG8tpT5Usc23kXQdcHwGz9ANVlR3cExPZE\nZcYmN78pVsIDrmwW0mX0ODSa9hWiRIuy5kFNnK826EtyGY+eawXbDFF/9ZWlazlHwERaFcEBIXBn\nK0E8iayzeVayIC1XmLF9EQvRvdQYlBtgBYm0Oistw4ZhzbC83Czs2j4FTsonGH0pzURHwfZPWBYr\nj5YmT5gmX4EU7QQvATWnHsDaSY0glykgMlsKCzNGU//jkQVXlEUIFHwEaAyhMcRYn2IaQ4z1znyc\nfBmFpj4raM1NRIiJeoWkuCjmUlL1SWamC7U6VsDKBbsF++Ko+0cw+uhz9GtXhcn3nmjhYsds2Zk2\nlBG+s38jjoq7o3k1O6GZNzKVztWmZHuc+b0ZRoz7l2k3zeBalGlEhRXFwwAAQABJREFUM3zcXaSI\nD2FmNAduIIYJTmBi80Pfu4ClB2zV0yGR4jWiIqMQq+aNu72MCbyAebeKwCssWQjhm5roj/4m+3Hi\n9iuBB17n1atYoU/X9uzAJYUjMw0yNcgDr6RUxCOOYRAdE4VX0dyNJxfiVYnvru/i6gznFn+SplaN\nSX79JIf64vSR0/ALZaZdQjL8rGTXplKhhJlHB/z3oxxLVl8HCzCJN0o5wm8monOTZijl4oioh97Y\nFJGQnhR/kDMk93JV4LNqL57JbeDi4gJrRTgC2d4MSoQAIZAeARpDNKaoNIakfzLezxmNIe8HZ2pF\nhYBRCPWGtM+cRSumkZ/cqgKspY7MpaTqs8s3Gs3GrcNk6Z9wMzeBY+WuGLf+Gj4vy0waRE6YeG4b\nRLM6M7tlEWr0mI9tJxahFHNFmbGdJkPmoOK573HgbrTh50GRgBW9GsDeSsxMcizRcJQ/dv03Ai6M\nNk/upgFoXsqZudZU81eqDw4f3g1H5qqysou5UEZkVQ69hhfDmn03dOrYC32q/81N/Ht0LaqoNcFC\nAT1fkbf/hZRh0HbaefjM7szceErBcdAkWzNTOHtIhY2Xmmv0+/YIJET4Ysh3g3HrpUaozz1NsdiC\n2YNJ1BXN0GnkX2hkZQYLGwuYiiTo8fcEzGxfQjD5qv/LXlWe2AxiC1uYsao8mWiqq05Rqt10HJkK\nVHNSbbC1ca2Azd6qSaO6CP0QAoUGgYzvdt2O0xiiQoPGEN2n4v0d0xjy/rCmlpgIzEBQslRAsVAw\nDXkcuJmMxFacrg9KhYxps5NgLnGAjVqrnq5ALk9kzLwliZk5Sx0kRic4R95ZB6cag7Hs/AuM+qxI\nLntGxY0BAR7cLJ55tZFIMkjv2TDH60WzjbPWrJ5FPjzn2TRH2TlAgO/HKbjv1Bx0MEORgt1fGkP4\n7aQxJMNDXQBPaQwpgDdND8v8ffrs2TOmxJXCxMREUPZ5eXkJvzyPf3jS/PKxpn79+khNTWUyKncI\nU6CTGROyHfT2QGRmCQcHS715ebnI3Vla5h+5vLBgsE5sRAzajViF/o1JoDcIkpFniJgtjiQPzxev\nl4+PuZGjROwRAvmNAI0hHFEaQ/L7uXr/9GgMef+YG2OLBVxTb4yQEk+EACFQmBHgGhTS1BfmJ4D6\nTggQAoRA3hDg48fbaOqNwqY+b12nWoQAIUAIEAKEACFACBAChAAhwBEwKqGe28HHMa8uepx9CN5l\n4uJkme5aEisfryfCKnfxyL3l6KOViQhdIATeEwIqL04sSvF7SDGhD+GfhUecBJbvFxT5HjihJgiB\n94MAjSHvB2dq5cMhQGPIh8O+ILRsHEK9Mh47f+sFEzHzN882B5ixiLJB6oiyqbH++LVbUcG7jFRq\nhUojN6pcOSqjsW5cI+ZBRgqJlQmWHgtS4c1orRlYCuZWUsFbjpl9ZxzwjSgI94J4NEIEuLvQRk7N\ncZtFgX27pMDJpd+ovThJ0XT8xhy6H03GkWVzcDwgJtfNe//TDd0Wqzwu6at8698eGLT1nr6sHF3L\nP2xy1BwVIgQMI0BjiGFsKOeDIpB/70kaQz7ojSwgjRuFUH9r43j0/PUejt57iZTEcOz/rR7kzBMI\n9wu/ZkhrzHs+FPdfJyIm7C4mVJEimWX5H5iPwWsdmS/4BPis64sx3ZjbwUgmeInEqNZ7OfyehSE2\nJhTbR0Wjx/CNyDLaZwG5WcRmwUUg8s4mtB6zBttvhyP+GYuh8M8QTNv9MEcd8lm0GEGxpjkqq1uo\n0biTODGlge6ldMfWdmXgaJHea1S6AnRCCBQQBGgMKSA3itjMMwI0huQZukJV8cML9alPsf6n7Zi0\nay/aVnKD2MoZnYcOQwXmtz35+WkM2/UE+/dMRUVHpsV3rYIho76AVJSMc5u2oMNvM1HX1RQ3z14C\nEs/BO4QH37FAvbZtUdnDlUXsdEe7bj2Q/EKmNcNRJj3ChK510HHCNhL0C9Wj/mE7G3hlH5zaLcPn\n1Z1h49EEi+Z3xKlrIQJTt7dOxvgNPioG+UrTyB7Yez8akb47UdncGlODIzBpUCc0rWGVVo5NeE+t\nnKh1c2VTb6J2dUuZeA8j6tZCz0EjsPm0egVL3f37Rxer6phXQ63he5nHHZV7LLCVr52/DdbSm7Lh\nsvY/o66aqx8esbm9VOVDX8Ta+mP3LaF+yOn/of6g1dpVitTY2/i62Oc49zxFyL+zX80f2yzUeMRq\nPFev2IHhsm58D0ycN0tLd9puFgiOEiFAYwg9A4UAARpDaAzJyWP+wYV6pSwSD+OTUKGkUyZ+E16/\nBKybwl2SwfMmi8IZy4SATys7I/joTEx51hnf1rKHt2+wmgYXeObgh++/hl2dsfjxjy5sIqDKUspj\ncfXYbRz+7/lbCS2ZmKULhEAWCCTExqBOyzpsyqlKPKx9wCU/QbhNCPeCX3hacKtX3hfwIlYBh0qd\ncS0iAJM8HTBj0UocvRiKad2qCgSUiQ/w3eiFOBQczzytyOCz4ivYqJ9xkXV5/H76FIbVicIplq9J\nyc+PoHL7cdh48wWSX27DWHdVlGWef3ZBV4y8WBXPElOheO2HZxPaYOU19v/LazIvjlleQVAwH7px\n/osx8cua2BeQgOJ1PoPZ9hE4E6iKmvvo+DpsMm+CmkXNEXZ1CWr03ocLIQlQpkZhMOag66KzWg4S\n713BH4sf4zffF4gI8UW70vbaPDoovAjQGFJ4731h6jmNITSG5OR5/+BCPQu1KfCpVGRmN4Mon66A\nCY/AyrSB/XsdxKHtM1CrtBTBsXJ1GVOUqtMEbdu2F4T9G7f8tVp5E2kN7Al4jNCrQ7WCfjrCdEII\n6CCgVChwOfIsNE8W14L3cLTWarS5+yn+8ezxl/YZ06muPUyIeQlTC7XUza6myGJha8ciyvISLKos\ndEJG8LD2Ivbw81gLEokLXIpZwMrBFVYskJq9RGMuI0YVWwv8Nm0WNu46DZFnJbhptO6MloSVdbZL\nH8Mh4eUjoPQCdKtZBOaOVTBgRnPE8U3mTAvuc8ofERf2Y/LQbugxZi5uxCRh3ckAzl2ektjKGo8O\nLEbrFi3Q7/tlAo3XsUkwkdbGtHHlMHXFRdYu2xfzw0bMXNVD+C8GXr8mrLgtmjocX3QbjT1XwnB9\n9RWtVl8W8wZL9v+B2iUc4VSiKhrV9MwTb1TpY0OAxpCP7Y5+TP2hMSRvd5PGkLzhlpXcnDeKeahl\na2aK2ITMnm1EYqbXlL8GU1pmShYSU4wb8i3mHH2MOk42OPE0GW3rlVaXM0PpWo3Bz9rUc4Wp+/cI\nmPgFavCJABN4HBwdmZbeKLqeqV90wbgQMJFWRXBACNyFZ4cJ2kwL/tfdACzJwCaPaqzRlGfIEk5d\n3CrggU8Qe+7qCYK8vYsH4mL5vhFV0gr8yij4ByXg0zT5HympSjhmeFxF1pWx43kgzp+7jBvHlqB8\njw7Y+ygen5e10ZDM9pdr0TVJFv0Gc3avxKhPHZDM/m9mS/9kpnC5i26rocX3wmwY1gzLy83Cru1T\n4KR8gtGXTmqzm34zF36fLMOxtk8xP6UbnnxWTJ2XgJpTD2DtpEaQyxRsUrOURcm1goRjwVjlONiY\nkT8rLZB0oEWAxhAtFHRgZAjQGJKXG0JjSF5Q43W4lPtBExdORv30KX748mf4vuImCMnwu3hRsKWV\nVOyAObXCMfjnzYhkG2eVsghcOXsTySJbNOraHnAdgl5NiuHVzS2Yci0MNTylbBLwEhcu3kGMTAYF\nc5F5/fQJZsJTEmIzlZTEd6J3cbWDfYs/tRrADwoANW7UCCSH+uL0kdPwC9WYx5jBtWhRFM3wcXdh\nz14WqfgnzRG0fTmuMrMx7tHpn8n7MWx0M2Ei4FyiNE7/exJRTHCN9LuKlWE6Li/Zxm+PStY4cs6P\nbRBXsGda1YhSHoGHT0zRtF13jF+4HMPcJAh9naTmQFVInpyKNymqNQYuCls7lQCCJuASmzRA+RKn\n9lxT2dSLLFGxkRSrt1+FwtYZLi5MsA8LwYs4Vd0sugWR4jWiIqMEl7PchWxUFHNJy8zjwm8monOT\nZijl4oioh97YFKEyt+G0LEu0xOov7qJd66EYOGsUiolV/033clXgs2ovnsltGA8usFaEIzALl5xZ\n8UV5hQcBGkMKz70uiD2lMSTru0ZjSNb45CWXBT/8wCk1Srl5SgeuNlR9HHsrHyamCkwx+17luJbO\n2jyPL1cp43lW6gvl/74upr0+a9ddoXxqgp+yv7ON9jrEVZXrzwdqO5iacEv5pYOVUktHm0MHhEBm\nBF7fXis8S2tuhmfOzNUVmXLv/F7a57Lit6uUkapHXKkIuyw8k/z5d2veR9lOYq7cfCdKS/351U3K\nRlZmQt3+S68J1/lzzstp/jNlBixThjFVNk9eK4Zqr2vyB67wZjly5bnl36TLG7hCTS/xifL3/p7p\n8v67l8aDQDjDl+a/pGlD+LXrpPRLSFX6H5mnpVWkWWeBf90+PT01U8n/m5fD3uhQlSmPLBmircfp\njd/iq8pPjVMuaFBEueZm1jzpEPtgh5zvwpSMor80hhSmR65A9ZXGEMO3i8aQzNjw9ymLKKuMjY1V\nxsfHKxMSEpRnzpxRnj17Vnnu3Dnl+fPnhc+FCxeU/MPPU1JSlDKZTMkUa0phYZuRZXQ+fOKBpN6I\nxbCytFTZGuuwxINSiZkfe0vL9HYIcXFRzCbCFhJbja2xqhLrIHOLKYe5RKLdnMhzXt9cAec632LZ\n+RcY9VkRnRbokBB49wjwwCEyBTMBc0hv2sKD5kQzzbiUXc+580oFkuKS2NqWmNnaW+aYec5DMmx1\n7PPTqvL/IKcnYfRyzkdafd0jpSwe8WyFTcL+gxnT5aWfo+f5zgjc+U26/ycvx+tFM6831vy/m/7v\nnpGMUZ7zPRbG8k59HwAZU39pDHkfd5za+JAI0BiiQv9jHUP4+5QJ9ULMJhMTE2HPnpeXV7p9fBwB\nXo4nPtbUr18fqampSEpKglEJ9QKH7/grOvAyjtySo0u3plnaQL9jNog8IVAoEeAbjQeUqCeY42y/\nE4We1T4+DzbGJOS+j4essPWXxpD38VRRG4SAfgQ+9jGEhHr9952uEgKEgDEiwDzthASFwcKxKNwd\nrIyRw7fmqbAJuYWtv2/9gBABQoAQyDsCH/kY8rZCfQFc3M77s0A1CQFC4AMjwEzlSpax/cBMUPOE\nACFACBACBRIBGkOyvG0f3PtNltxRJiFACBAChAAhQAgQAoQAIUAIZIsACfXZQkQFCAFCgBAgBAgB\nQoAQIAQIAeNGgIR6474/xB0hQAgQAoQAIUAIEAKEACGQLQIk1GcLERUgBAgBQoAQIAQIAUKAECAE\njBsBEuqN+/4Qd4QAIUAIEAKEACFACBAChEC2CJBQny1EVIAQIAQIAUKAECAECAFCgBAwbgRIqDfu\n+0PcEQKEACFACBAChAAhQAgQAtkiQEJ9thBRAUKAECAECAFCgBAgBAgBQsC4ESCh3rjvD3FHCBAC\nhAAhQAgQAoQAIUAIZIsACfXZQkQFCAFCgBAgBAgBQoAQIAQIAeNGgIR6474/xB0hQAgQAoQAIUAI\nEAKEACGQLQJmvERQUFC2BakAIUAIEAKEQM4QKGzv1MLW35w9BVSKECAECIH3i4Ag1L/fJqk1QoAQ\nIAQIgY8dgST7Ih97F6l/hAAhQAgYFQLZCvXK5ARExitg72QHU6NiXcWMUpGI2AQlLG1sYJFtb95f\nByIf34P/qwSYia1RoWplSMxE76RxeXwo/J+komJlz0z3JyXmCW7dC4PITAz38lXgaSfOBx6SERMj\ng9jSBtZvCfj7wigfOk0kCAFC4C0QSIiOZu8hS1jbWr4FlYJRVR7/EiEvUlGmXFGQfWvBuGfEJSHw\nsSAgiMGlS5fW25/HF/5BySYjVXlFRsPXbwmqOmb3mkrGkWULYdpuFNqUtdNLN3cXDdO7s38xanw+\nTkvuv3tR+KKSvfY8twfxIScxb1cypk3oCIvcVs5QPtlvH7Ytn44Dl0rgVsRtlJZmjdvrmyvgXOfb\nDFTYqV0n+IXuR2Vr/ZOCyJt7UPG7FMQETYE0Q5H4gAdYsGsV1uw9hb+vhqNJaefM9HNx5ZX3DnRr\n3BeXkhRCrSbjd+P4gm5qrAzfJ0NN5BYjQ3ToOiFgbAiULFkSb968QUpKCmQyGeLj44VzY+PzXfOT\nGvcIy0e2wt+HI4Smyg5ZhR2/94H5O2g45NxKXE5ujj5tyr0D6mkklfJn2PDHPrT+YSQ8rDK8dFmx\n+Hvr0HVIAq7dmQUbUeb8NEp0RAgQAoRA/iJgUNJUJt7Gtx2/x7j13pCnPMGMajvRe87hHLXus2gx\ngmLzT6+vj17c/S2CQP/bPh/IUuLgfWQjTFWyZo541FdIGXsPs/95oC8r19cqdf4B+09dRUNJzgRp\nxyrdERAQgGfBvhjrbofZe73wLCQEgbfXoIIBgZ4zpYQE5kWlsNAzdtiW7YDV/x3FggZFmJYs111I\nXyHlESa0HYwy8w8hOikJYcGX0L2kCRTKtGL67lNabuaj3GKUmQJdIQSMEwETExOIxWLYsBVEJycn\nFC9eHEWKFIGFxduqC/T3N/xxEAIDnyHxLd+B+qnn8apShp2j22JN2FAcDIzA1QfX0b+8FHKlzksj\nj6T1VYt5sAvHH8Xoy8rXayJlFHb/tQHJBqja1xyJ40fGk0BvAB+6TAgQAu8OAYNCfVTAVRw1aYPh\nPT9hJiTFMG7BTNxdtwVBSUrc3joZ4zf4qLhSxmPNyB7Yez8akb47UdncGlODIzBpUCc0rWGlLRf3\nYB+a1u6Cvp/XgohpLxqPWI0o/m5n9TeN6oEdvtECPWXiPYzsMFloxzA9BU6unoEKI3dhapdPYCG2\nRc12/dG5mkpLnxx6AyNqOwjtiJz64NiD1wJtzkPn1kMxaVgbIa/s13PxOI4xIfShPaQ1xrJdwxPQ\nvkULSGp/A7/Y1DSe2vbHb/PGq2iaV8PBBwksT4EL6yeprrE+9f/9P8TqjFdKmVyon/krGTt+7oWa\nbSbBn+HJk8jSGWXKlIFHyXIoVtIKjsXKwaNECZQu4SqY1dzfP1/bDu/TAV+V5kskNkfK9RUYrMX1\nb7ySp2MCKak652pmIu4fRg9Ha4GmbZ0xuPY8UZ3D4EhiAnzXOug4YRuYZZOQlAo5wpPlGNKrFews\nLeFasiHGjP6CDVwwfN+VLzGzbR1s8lbxygnd2DAWXWcfVxFl34Yw4qsw/DnRPCvP1ThpK9IBIVCA\nEODPsbW1NTw8PODq6gou9OdLUsZi3+weaDH6T2xZOwXVqvfGzbCUfCH9tkSSX5zDrINh+GfjRJS0\nt4KtS2V0/6aTIOwq5S+xfWoXVHWyET5bjt0XmuPvnvndv8KSX4eq8soOxPXgWBUrbJJwZf0UbZ26\nrX8Gfy/wMWNmczf0nXIJN2aNwOAu9dF39HrI1B3g+b92H4yVSyar6hapiwuPEnF/189YuO22mnYC\ndk3oizP+aW1d3zJL21abgQsQzt6rvlumoqp7fQTL/DC5V3t09qiH4/c1dRKw++cuGDpoGNbvuKht\nnzfw/PoW9HWXCPQ4rWfxqhdr3MMDGNVtNBaN6yTkdRq5EKHqPDX79EMIEAKEQI4RMDiyyBNlsKjc\nHB6WKhVwCpdPZaGIYy+2hHAv+IWnCYGvvC/gRawCDpU641pEACZ5OmDGopU4ejEU07pVFZiRp0Ti\nvPcBNBi7C/LEJ+gUNA0jVqkmBs9uXkBkikbFJMedS4eFdgzSYy/3oCtxqFapWOaOKl9jdoN2ePXV\ndsSnJOHKUhe0azoJTxnfnIeDJ1ejeL/lSInxQ8Mjs7HvHhP4RbbowwTyRyfnAyVnY+PefXhycjEq\nak1m5Ai+sgP/Pq6EJ5ExCLq5HMWZrcvzC3+hyahruBAcjYSwW7BeNADTdj/MzFPGK0o5Ak+ew62z\nh5GkK4DzcixPEMKVGjxUlW2KNcfD5zFQMi2X/78V0KXVZKFPQq78rg6us/D1ksuqSga+UyOvoEmN\nzmi6665A7+w4Eeo3/p9qksXqKOWxuHrsNg7/9xxv1DREVm5o2sARTT1rYNrvy3H84j2twG/wPomK\noHUnD0yed0il1ZIH488Ja9CmVS0DnKkuh11dghq99+FCSAKUqVEYjDnouuhslnUokxAoKAjY2trC\n09MTVlZWb81yanwglh2sirNsEjxt9kb8r1MobjyJf2u6+UEgKSoMsGoMJ9vMe3ku/a8f5t9oghOP\no3H61AbM6VMHZ4PZmMLe7YHXjuCJU394v3yO3z6/giV7/QR2uMA/Z+JSrLgVjrsRr7Fj4Zfg1i8i\n6/L48fBDLJtcH40nzsOyHSfx9+xeSLPef4Nn13bjyLOKOBX4EkdPL0ERiQiJr70Q9DpJ29WIW2cR\nEadSxATtn4ZBvwRi042nuPn8OeZ2LwsFexlW6jYNF9g4VsqyCib9tRXb/I7js3ISFQ2RDTpO3oKf\nhtbFli3BeKNekXgTeZWteg9Hlx0+uPXsMYY5rcSwn3aDq4zeKKJw7tw6ePZYhlsh11Hl6Gycexip\n5YkOCAFCgBDIDQIGhfqkBCZAitIsHxVyld5DsOIQ8ZdYmj2HuQnTqLJTvhFKInGBSzELWDm4wkri\nAHuJ5oXOtEfFf0Hf5qVhZlUMnQd0wd71Z5hmO7MWWWnmJPQhK3omWoE7fXdT40Kw60UUxvRtCRux\nJep/ORyN4jbg4Sv+slbx0Oez0hBLK6Pv8OK4fPupQMCKbeByc2F7AEws4CCRwMFBkm7jaZyoArbN\nH4xiDlKUqtYI1Yta47HPPlQdMQGNS9rB2rUGvv21JY6e8dcKwuk50zljk4hRB3zwPOS0zsRBJ1/P\nobVUjl1/fIcWLT/Hj/+cB5LDECtor1mfPH5Er+alBFy7Du2FY/9cTbdiIJDTsb+JCr6D+/JU7P3z\nF3zxxRdYvP0CUyVtRWCcamXCRFoDewIeI/Tq0DQ7fZETJh28D6/9U2H64graflYFzg3mIJzdv6zu\n06e9xiN050B4R6bi9c1d2GQxEl/WU91fPd0ULgVevwYknsOiqcPxBdNi7bkShuurr2TukyECdJ0Q\nMHIEzMzM4O7uDmdnZ2E1Kq/smkhq4uiV6ZBEPsDODYvw/e5nqFrUNq/k8rWeQQNMZQLuMs388Elf\nwZ0J/K41OmFcLUc8DFYJs/HsXTuwb2OYi+1Rv/sA3Dt+Q631NkVpKzP8M2ce9h88D9OiFeAoKJ3M\nYG1lDwepPUwt2bvY0hZ2duknTJzm/F++hpu9BJ6VG6JcEZ7PxjGd96K5yAQmfFhj/J3buAOdfvkB\nNUs5wsLSHrU7fwF31pYZW6W0d3GBxMIBEns72Njbw0rHCYIlm7C5OqlWjE3Z6gxPcU98Eew2Fm0b\nl2HvaGe0G/oznpy6gkg+9inZ+7vYT2hfvwTMJJXRabAHbvs9E+rRFyFACBACuUUgTTLPUFPq4oaU\ngOuIZEbTNmK2dGznkq6EqcaIm9kX+gcl4FPV+0sowzXNjvooM4FZ34te+YqpQNQv15SoUFyWpRf0\nM9ETiWErMcPjGG4Ckzk5mpnAXOdFK2HnyUkqDYyFh512k5aDW3lEx6atOMjlyTAvot/mVTPRyNia\nmaVm0qLKUSQlMKMcaPspUrzWa+fKJzx8RqW/tQytMHv2EXVbo8bKk9jyS1Uonx7AvgarhHaEkqZW\nbIqlugHmttYZKqtOYxO4RkpnEzGbYK1ey+w+33DLUDP8ZWnGJmSaOZ4ZpI6OwnVVbdW3iA2yddt9\nJXx+mTkGTYrUx+XAsfi8rI1QINN9YldNXRti64gyWL75COp7/4XRfxyDi3qw09DOjFECak49gLWT\nGkEuU7BHYynzbGQFplxTJwWS4pJgwjSdFkw4okQIFFQEpFIpzM3N8fLlS6SmqibVue0Lf6fKZUmI\neBaFsqYmuM+00Y08iueWTL6XF5kxpZAikr3/+Ptc++fVtmMhTvvvmktN8TpRrTUXO8BCPVBYSl2R\nol4VFllXxv8e3MfNy1fhe3oZOgzsimU3wtGslOqdJ0+Ohamh/UeMpr5kaq7mi41jj4OSUEtzqja9\n1FeHmyLGsiHLTGeM0S2nWd3UvcZmG9oxQbieKoOCDRQcAXO2h0qsfidKXcojjr3bNEnJCiWxjdYW\nbKJimgaXJpt+CQFCgBBIh4BGikt3kZ/Ye1ZHpah12HfhGdMmxGPfquko2nEQyjINuXOJ0jj970nB\nXCPS7ypWhsWl1WcCt0claxw554dkZkLCX1yqxF7wIVNxlNuCK6Nx9fhxVO9YD1ITK5RuZ4e9p1Sm\nOL7njgJiSdo6gF56Fugyfhyu/9wC271fCuRfPriEm48TYWLrijr2Nvj3yA3hesDF48LegMolrLll\nC1Nwp00YFGybaboVB7uiSPE7hntsEOEv0+ySe/lmuPXPBtxlWmjIn2Lfmkto1rSqVlAXWZVAC/tQ\n/Hf6HsNBlqbBZ3gu+6IMJE7tcDuLwUPTfqosFn7xyfisQR0UcbDGoytndTBiuD75FSfUuB5Zsxl1\nB9fS0bDbokH3Sli79Rxi2GpLMuuWbZEyQh2vZ4lwYVone9s3CLz/TDtJ4Juku7rawb7Fn1rtuDIp\nGP9u2IenUaoBJ+zRA8ELjoNUrRHTe594D8zQ8btfsXFsJ4w80BAjPi+v6Zbwqw8j93JV4LNqL57J\nbQT+rBXhCAxV262yWpF3NsGaCUN9ltxMR4tOCIGCiIAl0/4WLVoUpqb6VB5Z9yjppTf2HPSG2KMW\nRkydhX8W9sQ531dZV3pPubbl22N0VWaCOWcbYplgr5RFwOeiD1svtUDp+nbYuf0oM+Fj5pxPr2P7\nhdf4pIJHlpwp5REIeWaCOi2/wKBZf6I7s9MPj0wTgKXu5eFz/DKi5HJm1pL9+9uxeGlc3HkGcYyH\n6PvXsDtaTYuZ0dQf1AoH/9iJkGiuDFLg6Z0biFQrm0wsJSgDL9zxCxXGCd2pGD9WMOUQUlOEDcFv\nGBuSohWBp3Nx5X4UG/tkuHlsI+xr1IEjU5ZxTwMp4bpjEiOgs3rgu/kb1Cvhhr1+r7PEhjIJAUKA\nEOAIGBTqTRwbYPf+BfiuZXGITCTo/29THFveWxBYy9TviU7+v8GRmd1UHrsX7STmbLOqRo1ggVbf\n/orQSc1gaSLG4OVe6ZDuVcOF0XPAd/e/xrZxjVieGT7rPQHHJrYQlqF/PsxeXqZsWVSb9NNzqz8W\nN3ZOx1e13YV67pUaIzCWLWWaFMP0U+txemgD4Xq5lj9g5YG/UYq9QJncCQs3tSpGaFkEiXrPAG/O\ntkxzLB+sQD03G5g4d80kcGt6qGGtVNsx2DQwGtWcTCEyL47NlaZjbp8qmmz2crbH15vn42CfGswT\nhhU26GwYtSzCmLEsmjZ5SasFbs6km0ykVTHnlx5o5mnB+iTG5PPhGTACNLj++Pgrhmsz3eqo22c2\n6u38BvbmVujH7oeFRys8OvU3q6PCztzaBf3WX9fxZMNWQsxM4eyRtrLCx5kbywajuHpzbdE6/TD1\nXy80ctU8QvrvE2dEUrGF4NGn7g8DM7vm1INRqXbTcWQqGK68vyLYuFbAZu/MgoqUPXeUCIGPAQGu\nreebaLnHnNwkkSwMP075B0HC5spkBPpfg6lF7mjkpr1clRXZYejOE2jg/yMautmimkcJ/LjuNlLZ\ny6TVpF1o7DcZnzrb4tOa7VBv9iG0LKfSuGdsQ+yqto6Xv8Lc5uVUm1ddquBGuzloVZ2vKKpS6WZD\n0CZ5Lj4rYo+mfdcKEwZNHv/VmMNorhWr0x2fPZiNBoyHrlMOoiEz7TFX41+59/8wp6cvOpWxZ+3Z\noX3PddDuXzUvhX5zR+LntuVRzc0OB+6oBO5ov42ozjb+Nms1EXg8XaDbdvh6yF0/w/a1P2HcZ8VQ\n1dkJo5Z6YvmSvqoVY6btN3dJe9/zMcZas3ogMKpSmlibG8k91YBHv4QAIWCUCPC3Cdt7maYpyMil\nXBaHeKbAkGawMVcyzXM021SU8XrG+ppz7oe96Bg5Ii+OxpvoONhkoMfbSZCLmQ2++gWuqZjNr1IW\nj3i22dTcSpIh+FQyoqISYc7MXGwySuPZ0MxtdlJcHJiViGCHn9u6uSnP21FAzMxk9GGk6q/UwSH9\nMm+WDSQjlmPEsLNk5jc5SXK2FJzEXFqa5gLX1NibgqnOWO9o9KioMtXJSVv83kazfQPWbI+Dbpyr\nG+uHoe4of3g9PY262cZNyElLVIYQyD8E+EQ0q3dqVi1x3/ahoaGQM21zjhL3fjNnCMat9VYVd+yJ\n3Qdn4hO33E14X7x4IXjk4Z55OP+5SdxrV2BgYKYquhFlE5mfflO258oiw3uGB6V6Y2YDqZ7NtJkI\nChcUkMXLmLbflNVJbzevv3zWV/k4FsuCK0rsbfVquOSMbzlTvViyPVca9UXWFA3npvKxig0UtswO\nP0e0mG3/vwOrYeHLkTh3dDwzP8zdfTHMCeUQAoSAsSLAPYI9e/YM3DSTe0nj72MvLy/hlx9r3s+a\nXz7W1K9fXzDf5LJZtpKcmC01OuiRIfnmSAd9GQaQEiEOKc/iBBMUPhHImHg79nrayVgu47mI2Rrq\nlXHZmoKDQ44s1jOSzPW5FRM63354yb5Z3o7hlJf+WrBJWe4wEjNTAf7JaeIuLOsO/BOlB25Ahwo5\nF+g5fX5v9T1i4eFv8P3/fieBPqc3gcoVGAS4CQ7fQMsFe0UOTEggkuLzqTvRcvRrZlpnlufI30FB\nQbh8+bLgR79ChQooW7as4Fs/tysHhoC2ZhtI9SW+0TR3iQvYtjqebXJXO2NpPo7ZZcGCmLWVXzpy\nE/Y+k+b81clMe6IQI/oUs/4YTAJ9xhtH54QAIaAXgWw19Xpr5eEit6cMDktFCbXf9TyQoCoFEIHE\n8Cd4EWcKz9IegulWAewCsUwI5AoBrkHJq6Ze0xDX1HPBnmvu30e6dOmSINTrtsX7UYLFyihfvrwQ\nQ4O74tSXcqKp11ePrhEChAAhQAikRyBfNPVcS/O+0uOg9D6UdZdo3zUPVtEvDTbxPvkwyMTHmGHK\nIuoyTVhAZJqXoYLQzayelYLAP/H4YREIDg4WNr5yW3m+EZYLxNyNZXbp4MGDOHToUHbF8j2f+83P\nmPjEJCQkRPjwvHLlyqFt27b54l8/Y1t0TggQAoQAIfD2CGQ/yrx9G0SBECAEtAgkIyZGxkyYbGCt\nu1FAm697oMATv1sIS2R7Rthm5qpVSuZiv4Qunfw4zg3f+dFewabBBWJuPsM/iYmJiIyMFIRhB7bn\nhQv5hlKnTp1w8+ZNzJgxw1CRd3K9Tp064B/dxHl/zgIvccH+8ePHwl4abtv5448/MtNG/S4idet/\niGNZfDQL6mQJa2YD/y6TUhHPbPFZbC1mi5+73Qv6ueJ8pzBrWD75y5G9vX4ydJUQIAQKOQIf/P2h\nTPRFn9Jt4a8OfMTPh3na4ci9UCxv5aHydKAOJa4JKT52zlzh+o6rKs17tN9W4XyuOuT37RXdMepv\nlUvLQn5/qftviYAy6QF61OyD+/G6juvyRjQm8CwGV6uBWrVqoVrlCph7wD8bQm/gd/YAfv+6L7qN\nOgUh1lg2Nd5F9mu/w+hRqZqW76/mHONh3IwoJePcpr9w8bGOa10j4k7DCt/ExE1qwsLCsjSrmT59\numC+wycG/BMbGytsROWbUd/VZ8yYMQKbCQkJuHfvHo4cOYK1a9fi1KlTKFKkCKZMmQJuojNnzhyj\nFOiVSSFY/W1p1CnhwVxAOqHNwAUI14nW7b1+BKoWqYtrT9VPLtuEuoXFz9CMKVU922LX6QDNrRJ+\no29tFPLXHA9Odz3k3Erm9cYNjcq4oRYbm7ZfCBHyfbeMTKOnHrN23lR5xklHQOdEKX+J7VO7CHw3\nZK4rqzMeL/LIuixlN45l6hOrc4f3U2e8XLLxQg7+qwq88DuF2f08UbXsQARq3fwIbNDXWyKQUcbJ\nC7n4h7uF+zp58Xlt9TvrB6LVkPXqwGzay3RQyBH44EJ9RvyVzIQ04U0qUhQW6LHuAo7cCsCOzT8B\nRX/AvluPcOyGL8a2LiZUW7/lmvDr+98c4VeWwlzQsKT6Fg7pixAwCgSUsgBM6T4CyWzTsA8Tmq4c\n3oAy5tnZS1ug/aiZ2HhgrtCH3Hsxz4euy4Mx9+sfUXLyWoHva+d2oH0xE7wx7DArHxrNPQm/VWvx\nJP6DIJRrZrngzL0bcA1+TpKEbZC3z/WG0pxQTitTujSL9M3MgzZt2oQHDx6gQYMGWL58OXx8fLB6\n9Wr07t0bbkyQNcrEfL8fntYO/zvfFf89ZL7wQx5gcPF4RGmCGCojcGnTfhZL5B5OX04T3GUBKRj9\n7xVceHAXf04rhRk9auCSRuhnHb17YqPQ3d37r2gFY9njA+jU7QeMWHUB3hExOMTcJb8MUQnuyhR2\nP9k4tUc9Th1mY1WbKtIsIXt+eS1mbXfE1lvPcONxCNb/NUQbIyXLccxAn5TJr1Bp9FaceRiCnXv+\nwqof2uHovZgseYi+tQKtm3SBrHg34E0C+28b2Z87S+4LR6ZCoQq0eXD+eNyJUCuYWLybyFDmfITu\nV+F4CHLYS6MR6jXR+UyYSYINi4rIk1Ox0ihWzJ19ijAH867wKFYUHqVKw9GaPdTiyhCdPI6AV/44\nv1GlsX9jXOrDHN4CKlYYEHh8bS+OWnyFxeNaQ2phAdcKjdGzbSWh60rmf3vr7EHCZkS+6XD9qfQa\n/GRZ5gc7IeAwRkz6T6u9v3/gdyxkmv+Ex+eYVl21sXHAuF/xXedqKFNrLG6GpbC4N8GYPWAEFvwx\nQdUWu341G+22km3UjEx5gx4dGwp8O3vWxoD+rWGl9q734NRaLd89f9mBMLUg9eDoEnQd/gO+6VRF\nyJ+z+6Y6+FoyTiwbo63TaOT/EBiTtgrC+zV85K9YMmuAqsynM/GE0Qw4tVxbh/fn9EMWyIelmIeH\n0bZ8VSx8Ho15E79B746VMGfPvexxVSZi55zRmLdiKVs9qSjQXnw0Pe4CkXf0xTfA8iiy4eHhOYok\ny81dbGxy5z0qN6xzjzstWrTA3r17hQ2zs2fPRsuWLbM0FcoN/XdZNjXuHrb8+xwL9v6Kcs5WLHZh\nMXz16wyUV0fIlj25ghWPW2PhP5Pw7/zDWv/1KcpUuJYoAweXUmgxdLzgpz70lWq1R5kSggP/eGP6\nphUwObABAdGqZ9Tv6HrYt1qGod1qwZz52y/RcADG9q+t6h4TssTFiqOkepwqzsYquwwRxzPi8PL2\nGVTs+xWqFWNmWbYuqNP9W3xWLuuJAKdhqE98IuDOeHBxdkGlJu3Q28kaCUlZTg9gU7ILDt4Ox6zf\nRqC6KDYji3RuRAiUSn2Avzee0XKkFLFYMmxDe8KTY4KFg7BKw1Z71h+8I5R5dGS2duXm56kT0ddd\ngtaDlrIAbaqJ28OjS7X5AyauR7hmIqxtgQ4KGgJGIdTbplxF3zafolsT9mnRAJczvIQy6TNZxD73\n9l9j7BgFpgz5GjEDFuD7Hm5gcfwoEQJGiUDkY3/YVS4NCTL7mr64Yix+9a6L87cf4PL+pZg1rD1O\nhKRFyuSBvzImuSwGx69Fai8nRd7G5ZexkMeFwttxBC5c3IHEI5vRbfERLGjpA98XzABYyYITeZ9B\nkH133H/gg4WdbmPuwYdaGvoORBaOqFfLDr0bdcSilVtw4UaAdiIR4bOeRQs+ge3n7yIwwAc9lMsw\nfM1VgUxKdAjuXHiJESuu4ta5rfD5uTf+e6ASGDzrD8bVO37MlOQeZpQ5iOGLTmijLSsUiTh5bAMS\nKo+Bzx1vHPyrg+A1ydq9AU5evi2Yn5z6XxkM7fc7QtnAJC3TEnu8T2GYmwTfT/0N63Zcxei25QQe\nssNV9ugmVq0OxbijV3Hj/BE0KZ69MKUPo7e5FsdiT3Af8dl5ueGeaHj0Z77x9l2lGjVqoFq1alo/\nyO+qnfymG/vEG7dNG6JcUVXwqmQWS4N/NFNF/zO74dasI5q264RSz2biYZgqBoC5yARRTwIRyTx0\n3dizDZcV5VGhhMptcELQeRwy740mrTqho+0dXPAOZf+fBNw5fgMNWlcX7Oi5j3veTorG9ajIBfJr\nP6DpZ/WEsYyb+xy/n7WQXKJBTzxY1h39RvyCPfuP48nLnJmQGeqTmCm/Tk9qhEGft2eBrspgq9nX\n6QJ06cNebF8MJT1ZxHUebIWS8SLg0AOzjm3Gxd8n4z4zVzYVpXmjEpl7Yszp+7jzOgHXvOZjwYAG\nOMvMuPh/o+qE/Th8ZD727k7AvNtXUevKIbxkwnv49b/Q/ZuD2HwrHHcjQtH5zRyM+/uC8fafOMsR\nAkYh1MeLKmD+ip34Z8te/LliK0qpNfUGe8Ci8IW/skXt9p1w77Ivmn/RFJI0GchgNcogBHKLgPKN\nHN6x17QmXdyMZtQnldK0xkyzzrXrDUdv0gq7+towYxGNE5lcnSkxjfHdMwH4duwX8GABeNyqtMSU\nmk6490SlidaUN3fWHOn/5S94CYs2zCcA4qLOcHFzhaukDkozV6Llq6s1iaxqHEpjaI9PWeRMKep3\n6g7/M7ez5BsiRyaon8B/q0bB9JU3BvZqi1pf/o3XbMn3ie9tINkLaxdMxbcjpuOYz2v4bvcRIm9y\nU4RK34xBbQ8JJJ418GVLVxzxCmYcmMJC+Qp/T/sB/YePxc6bYYh88gop2hV/JnB5jMcP3WpDamOH\nSnXqwo1FfbayUeDoqhno22845rFIxkiOQAKbxYvMLJgG2xnORZmXGTtnWLI6UhvmWTwHuKbEvcG0\nVT+hqoc9HDzKo3ZltiL4AVJycnKO/NLzQCTcBIb/UtJBQKF6eETM+orbL39X1o09d06qSK/KGJz5\n/SjadKgCS0lxtHK2wYnLj4XKJu5mWDxgCL7pWh0Dh89D79U7UN1ZNWm6e3wTirdqBBdze9QcXhX7\n/rvKglCxPQ6xmqkC4Lv5W6GdFix6rUygyAYhZn6zgY1jy/7dicNXdqNBKQl8t4zXakN17d0P3YmB\nS92huOBzHj0+scHl1f3RoUoRbL7wTKdzeg6z6JPG/Ob3NWtx8NQutExYi53HAqDZd6bbPj+evvGm\nngboUn4ioFTIcSfmolZxoUy8h7ElHDI9E60Hr8zaPl72Ak5VO2Bhvzj8s+0ilDaqSSznVWxhjZBj\nSzGETeZ+mrpSYD8mTiUUubgWYe+NohCXrgEPFp29YjXVJvcn3uw9mnQR638bjTFf/4BT11/DZ7OX\ndiUrPzEgWu8PAT06wPfXuLYlsQM8SxWHG1vTVzpGwd08+0FLEcai0hbvj4MXfVG8ojO25GIjoyI5\ngdlIWuTA+4iWQzoopAiY2JbHudPn4WqreiZFliUx89hZ/JIBDxGLiqkxScmQJZyaWThBHhohrCbp\nC1RmIU77K5pLTBGTqBITNLRSXsRmqpsm6CvwNOAhTMuqSsvDmamNyBW1q9kLkY7lyVqJGTCzhyao\np5XUGSkR2dt1i8ykqN6kk/D57vsB6FW3O7wfD4ITElBp1CrMG14bcqblE5nNYJF/LWGjXowwtUgL\n22Nuxezwk+WQhZxA635/4q/tf+OHcq4IPDobfbZmMC8ysdB0W92hYPz8eT9UnvcvFn9XAXhxEicu\nbGMTLd4vVWMpbJJhp8ekPitchTpmxqGd5H7puacZbgaTlTaeB4PiUV+56Q4lFQKSouzBZ8JJdIwS\noiLVsPJpKNa2qQgu6yteeuNkRAKCh9bFpqGq8u4Hz2Bs1z6Qhabg1zNn0a2SDbiZQtfvZqJ/y3Uo\nbhmGy3v98OT2UFTfqq7k4IEnCd1RqokdDj8NFwhVH7geF+s0RuOB6v8QM7+xr6wyv9FdT6nY5Sec\nbjEh0+2ysletDDkUr43P2X/o8+GT0HtFG0xjq009P/syU3nNBYN96lZOUD64MgHOxdld+Ayd2hIL\nHr/GiHadcdovQENC+yu2zCLylraUKoqvCfPaZM72XVDKHQImkspsL+B9uKjNwUTW5TH92j1MzUBG\nZJZ9UDU5CzDXctwCjK81HkV7M4WG5BM2k5Vhz/ctsa/8b/hjzUTYKZ9i1qXjWur8vWvhWQ71RM+Z\n/b1Cuz8EiEe18bvx65j6UMjk7P29SHh/W7NVQUoFF4Hspef31DeFWtvCduoIG2Vz1CxTS5asVJq5\nABMJWhRNHf7aiWXmCXFJzO0YC0POP4lqWzHuzWRYndqo3XeDoFHU1KFfQkAfAslhD3Hl3FX4h2mW\ngszgzLSlXGOq+3F1SlsK1UenYosvUTb8b/xz4I6gsUl6HYSrt58ymdQcZWpLsHXPGeF5THx+G5sv\nRaBOuTStscSzqlDXKzAKcqbV5cnK3gUp907CPzIVqfHBOHsoXIhqzN7Z2pSm/dZeyvWBUvYU+/ac\nxAvmhpOn8JAgeDMbeztbC7iULI/7W0/gpdwaTk5OsFK8xmM22eZJZG6Nu+t3I4h50kiNf4JLp1+j\nWZ3izFwhGnBsiro1SkJinoBbp8/CSqIrAgnV032lJscjIFGBOp9UhaudBUJ8mIkPGwDNNKZMTEVb\npLQVznr5M40/dyMpMJAtrukaMYITboLDveOkpGSY5GTgzdra2ig90GRg872dmrrUw+RmLvh10TbE\nsnFEKYvEi8fcLAYIurgLwZ7TcSUiHneZacJVr414cXgVHkWoJrrKFNVzXa7dcAw1P4ql/3ojPugS\n1t7zwHa2b4PX8X12Cx1T9+Pa3TDU7DZRMJc5didM6F/0S/abmqLarMhWy6IfvsJrZlKVNu7IIbZ1\nhmsR90wfCVuBCjm/ExduhjBeGd/ME87DW4GQFnUQzHsMjWOG+uTPNlBq6iQys6DoF3ewb8E5theG\nr+DZZmqf8+Rgr1IxyOLjER0RjbjkKMRFx7BVRRUuvJPRfluYdx43/LTy1nu7px9TQ8kv/XD15DkE\nvtQoUMzgqOd5cHFWmX5l1XfuSMSsaDssHpWIzRt92Aoml5gUiLyRhKYNmsDD2QExj3xwKEY1Tmhp\nZbJhBlzLVIbvxgN4pbCBI9uDYcn2dj1myiNKBRsBoxHqdWHkG2XNmUZKN5m7pJ89il0tdbNhbmuq\n1byLmF2hz+wuaODphoZlPITP/J2qjSO8kpWpCA7uth/Q53c61unEiBGQRflj8syJuB+hEerzxqyJ\nfS1sYZ4yvCd9ifLMXKdqvdY4EsgFYDO0GsO8Tzyahxply6Bak96o+/MmtC2TtrTKVwumz+yHEW3r\noGLd0YJ7TQuPGpjULATd6pVDuXq/QF7RDNbmTMw1E0Pskl5IFpmLDIa6z1g2Y++4SYPvxh/RuJZq\nw2vDz8dh5OL/UNvZBMWafIe1o5VoX1u10ZT3aZ9fmp0/InegdY2yKFejHV70WYxen7hCWrIxRpTb\njXply6JsxQa4LuYmM+lbzcgT7/+EMe3RpxE3e6qA368x0ySzNHzYLno07DseYXP7oFLZCpi8lZkF\n5QBXc6aREuvbsJCenfd6lpqaKtjYc819Vol7w+HCPSWGgMgGfdafQNNHE9HQzRbVPCvieLVvUa+0\nCby2HUL3H1oz0zTV+GFbuhEG2j/GlTtP2EZXneFP5Iw+G6bhyOx5OHtiH+ybjkQZtSmOyKoc2g0q\nij1HbsG+ytfYvXkmxjcvLZhPdOo1B2N+bsFWp0TCRBZP56J1ySLacWf65rRxR9+9kif4Y0SbKqjF\n+S5SBosDemPW0M+EonrHMabFN9Snq3ceQ1OnHjM/aly1gbDfbFq/WvqaTrvG9gpsHVAFn9Vsh2CZ\nHwZ84okuY7dlMgWxlaQfk9MI0FFWCCRF+mH65G/h/yrvY4iZGXunM5NJVTJD82+WoQazaDC3Nhds\n69svGY+lPSoIz2S/eYdUeUyGEltIwKvyZJpB71Ss5VT8/cMbfFHGXqhXt2JNHPWNUBWm7wKLAH/T\nKbnv4w+V3mckVx4lNObBLtTqOAkzt11Bv7qu2m6/Tz60jdKB0SLw7iLKJiMhQcHcB1rAIkPwqfiY\nGKQyYVWwCc8RMgrExyRAzOzIM5DKUe3cFOIrBHxToAlryzrDCrySmbPFMsWeJfPOouHDe+MwrBWN\nxbL+ZVmwLWYaY5d+Es7dOopYX60t0k/Ws+JJxuq8YcK6jU0G85ysKrG83OOaDcFssvkei7d9p3L3\nkkWLFs0yCi2fAHDXmDxI1IdMhvr7Id6piUzjzCd07zr4VKosXjBtM2MzUnO2x+vtksq8JZndRjsW\nzMrYEve/33tiIHbcPYLK9joTIWNjtJDzo3kmrVkAs9wkXi+Ovb+tbPPjWc5Ny1RWHwJ8rwt/r0ul\nUmH/FHeSwIP+8V/Nh9fjxzzxWCb169cXvKjxWCgZhmehzEf9FRcVhyZ95+KLOmkC/UfdYeqckSHA\nN3bqF0pt7exyySuLQJnrOrlsQl1czNxw8o++JLKwAbOKSZeUyU/xNIVrpiyYQJ8uSzjJi3tGPmnI\nS3pfGOWFN0N1uKDOveJwwd7UVM9mAVZRs3GWm+zwFzslMGE+dwJNXjEzsbRF/q2TmDF3ltnbU+eV\n17etF/n6DQbMnUMC/dsC+Y7r5/WZ5PUy6FzeMadE/l0iUOiEes8Gg7CuwbuElGgTAoRA5W5r8A80\ny8WER14Q4CY4fEMsF+w1WpmMdCzYRIvvZ4iIoGXzjNjQef4g0PS7FWiaP6SICiFACLxjBAShnkcT\nLBTJsZD0s1DczHfcSXpW3g7gwvJOMYBSyZIlBd/zfNOrjJktxTOzkOx80esjxd1d8gBV3OONocSX\naTVtGCpD1wkBQoAQIAQ+fgTIQO7jv8fUwwKPgALPWCj7l3FZb57MTTdjo5iXC25IWcBSTOhD+Ica\nv4cGbhrD3U9yMyOuSS9evDiKFCnC9lFksFPKAf58QhDF7ldWydnZWWgvqzKFIY8HhOJ29Wne5NN6\nncC9oOl4dUnL0X/Eael6TtNfiq4SAu8XAVl8NGKi+d6Rd5/iXvpnGRAtkeUHhGT9bnr3XFILuggY\nh1DP/PvOrV9Euwlg9AYfHR6TcWTZHBwPiNG5ZvhQmXgbjZya47Y6SMibyBvo4WiNDt+Ngcj9OzxV\nh0cWKLB2F7fzwD9XQ7CwoTuW31QvYbPrf7X3xKCVunwYbpNyPl4EMj5Pee3p9ZV94dRhFQvsoaLg\ntfQLtFtwLWfk2PO4rHUTrLrF3EHqJvlTLJq2BEFJObenTo31x6/disLO0ZFtxLFCpZEbC1QkZu9/\nurEouTd0USgQx9x8hnur8fDwELTuuQ0gxYV6LtwbShr7ekNmOobqfTTXmQeXo3/0RzU3J9Rj7her\nVxyF5+r/RWrcI/zdvwQ+ZZ7Q6pVwwhcTtwi+upWKeNw7tR7DPO3Qasj6dN5eXt3aii5FXQQvNvU8\nbLHpdMBHAxV15P0iwAOi9SndFv4sCuzbJQUur/iWuRf1QKMybhjyy5acBYpifuzPr5yPq8G5V4b4\nru6Occu9DbJ9b0dPzPjvgcH87DLyD5vsWio8+cYh1DP/voN3XENIsDcm13VGWAaNpM+ixQiK1b9Z\nzNCt4p7qUmPvYVCFZngwaDN2z+iNSuzPFakrACmi8OBWHHiAmpTU9IIRD0zzigVtoEQI5AsCTOhI\niE4LAa8KnJRDyiJ7/HjtFkay/0a6pIzC6kVroA7BkC5L/0ky1gxpjXnPh+L+60TEhN3FhCpS6Mam\n0l/PeK42GscCT00p2JtibNmmSE9PT1hZqXyE5xRdbobDzXEMJR60imvsC2O6t/VHTFj4AKuuBOHW\ns8dYOqU2FNw3NxNodo5uizVhQ3EwMAJXH1xH//JSyNn7/ebfXdGz5yiU7f8ZZPE6sQHYf/XgjxNR\n/Je98GZ+6net/QHzh/2GUF2FUGEEmfr8QRHg8QKGTdmERReewuvuUchWDcffh3I22fRb8j88j8ud\nDMU7W3f0CSz/vp7BfltJyzInCeQ5dNAAAEAASURBVOTq1CBAHyDDOIR61nG34iVQomRleDqlLU9H\n+u5EZRbEZmpwBCYN6oSmNawwXqPFZ4E6Voxrr9XuLznglwafqQQmccGYUqUxrvf4G1cXdIOllR2q\nmHohIkmGgNNrMGfVZRZxMA5+SSVRu6xqQ5+JJqqnSMx8GDPNmtZTWTJ2/NwLNdtMgr/upCCtRToi\nBLJFQClK7z9eU+H2rhn4cvhkDG7pKDzPw/44pNXoR93fiaY1m2PI6N9wJSRtterGhknMJ3UN3GcT\n1f4dW6CyTXXs8M2gydc0oP5Nfn4aw3Y9wf49U1HR0QpS1yoYMuoLSPlzbuj/xFYJNk/oiVE//YDG\n1iyIDftfLD3qL1D8j/0npm69q20l7Npy1B+0WsW7Mho7fxus/X9O2XBZCLrFC/Mw6SPb9sdv88ar\n8s3/3955gEV1dGH4W/rSOwii2FAURRHs3VhiiYoaeyxJ7DVq9I8aNYkajSVGjT1Ro4k1xtgTNfaO\n2EBFmorY6B12Yf+Zu+yyCwssYqGceZ6FW6a+t505c+ZMXRy6n8zOpOPkhi+VaUwafakcheBpxvh4\n4ePhY7D9VKiyTL7x+Mp2Zd0q9V6IkAR5B70grmoZvIcd7rKSrx7LhXBttevcw82LFy8KtM03MzMD\n/5WrkBWB/fP2YNTW3Wjq5gA9sS3afjIClU1FSH92Bt8eeoG1276EK1toydSuNnp/1k3wK1+1+xr8\n9zQJE4b1Q1yIuilaeqQUrVp5C4tAVa5Vk/lFDUCScgHDh1gypDnGz92rpt0vV8ypse+cwOOrf8Py\ngxVoU9saxhVa4st5HXHl+iOhHvf2zsaynXx9DhZYp3TvtEH4LyiBLRy2D90d7LDmeQKWjvfF0JZW\nKvHScGnLV4KPeu5G0afDbOXoFn/fzm/XFFMnTMah82HyfLP/Bp9YJU/j6IN+U4+y9VGyBSVZPI4t\nHaXMb9XOKxrN4NQyK2An+fFxYRSN182DlbXlkHzNh4gzqzFo/BblKEVW4h3MqP0xbjyXd8wfHMuu\nH0s39MsteKXQejEu+2YPwoqVi5T5/nwosIAalM5TJUaoF/DJJGxFyByNuZV7d1yJCsaMilaYt3wD\njp2PxBxfDyHqP4v7YfLFlgiPz0Ck3y5M/sgDB4K5YACYpx1nC3lUx+IMX/y7eoiwbL1IXAleTEPz\n5PlTHJszB7Pm/4XQiKeINm4Ea7EI4op6GOXdEp6enuzXCOOPPRVW6BQyZPUKYSvC3Tx9BKmkrRGQ\n0J83RyAj5iH27QrAZ9siEBO4GxtnzcS97KFayxrdcfDkZtS6thcRzL+9Inj2m4+osH/hblwXy37d\ni8sRZ9DV3VJxWuP/5OjnzOdfa1Qwy+v0qqDn6dXdC9jt74JdTLt/a88kTByzF1xubtTRAwunb8Mr\n4ZlNx76lC1GtdUPheTu9tBfGnvdAREoWpNEBiJjWERuusPKFIEHYpd3Y8cgdj2PiEeq3DpVYz0KW\nch8Txi/D4bAk5qIxDf7r+wt58SR8afUlp06y1aBjcZKdV4SsmEvo3HIo+h8KQEbKK8yz34SOk3cJ\nHYiCuCrSv+//fJIrF+61Ncfhri5fvnxZoAtLbsPPtfblJcjSYvEoJQOVXazzNDk19gVzwN0CNqZ5\ntYnWVdxgx1Z1TWeKHrXAFrP6YOl4fNvWCT+vW4FJ7cej95J1cDOTfy5lkkTcOnGbreIcKV9JVi0x\n7RCBt0MgJTEenq29hI4mL4F/DUKv3BOE25ToqwiNzlncKurmaUQxiweLml2xK+Q2htmZYPyCNVh/\nNAyfd6stVFCW+hALv1yF9Tdf4W5UNHYv6wMmCgmBv2+n/30UvvVe4drjFPlB9jc98jh69puJxUyx\n4n9vKwbY5Dh2vbyqDxZc9RA6yreCryHiqw/xp5/ina/MQusNkUFFTDx1D7fZaNmVq4uxdGhTnA5L\ngVODZsC+CbgWLm9v+KltOGzcAjUd9PHq2hrWaT+E7UKbItE9cyG++PmcsszUexeweW0EJl8Kx7mb\nV9G0koXyXFnZKFlCfS6qIj0jpnWyg52LIcRW9mw5eStY8lXtmPbQ79ADzJg3GJXN9VHBqweWNnWE\nf3C0Moduk2aij+R3zNl0TX6MmfjU+8AbDy6exA0myHd3j8TZi1cRVqU2rPVFyIzMxNd7fsPRo3/j\n6JEdghmQ8hFhaccd9MfT8FOoZV6ikSnbTxtvhoCMCVEXY05DYYjFNRh8jgbXrqr+KvZdo9SuayyZ\nCQr5Bb54U/0JU9DM2RhWtdphhsNTPHgkt3/kz4A5u/f5M6Aa9I2MYG1vBysjG1hZW7E4VjDJK6ur\nJsl/UYpCnqcsNj9l+qwBcBbro04rXyD2Ep4z7Ydzk/7ok7Ia/z7IQFb0FYw7YIHxH3kKz6f/ySBE\nnfsbMz/3Rd+Ji3A9PhW/nsgZKk4U1cTOxSPgYmWOKnWbo54T/ziw/E0N8d2cb7Ft7ymIKrrDgQld\n8qDH3gVWsLWwUmtTbNht3LOfin5ta0CfaWj7TvwaoUcv4CUzpyuIq1om73nHiF3LgvzR564eX2Ck\noImzCvt6bTsKufMvfftyswJZTp9X2QStDA5yLx7FNHqP7l6Hcf0xcHVyRZ22Frh+xQ9x2QonHfN6\nWOUfhP+ODRc0/srCaIMIaCAgk0pwO/682kjlpMpWSo22oIlmWuUOIzYUOPKTGv8MugqtOCtHkp4A\nY3NDtqIsf0ey0TmV1bH5ask67HvAvx/GpvawZt8PIws7th6CJcyVHVxdVBXrYe3C7/H3obPQdaoJ\na5X3rTGLa2WurihKfcne4VUWob2nA/StaqPnV62RksE0POyZuXcmCLEXD2HZpAGYOnMpApMk+Ous\nupZfA558D+kbGiP8+Cp82uND/G/WBiFefGIqdMy9MHqcK1az0V+w0YE/Z2zFpBW+wrP4+MZVIPU8\ntnw3HhM/mYKT16Lhv/2qUqufkZCJWTvYmgsuVrByqYMG9ZzzLb+0nihEDHjHzco2e9E1UNeqcHt3\naw01NVKJZ2Shi8dJcjE8Qb8ZNi1ZiMqf1oRJvcZo5/0KQ7xs4VDdCd+z4XvfJccx1/UIvD+eDd8f\nzoOLW7yMCi6u7OPKbmIm5HAzoBwRhD0yTGgyYB8NddHqHfOh4t45AR1zD4QFh6NCdmeOazDW3A3G\nylw1EembKrXKuU7Jd9lLTzWIDVnnMNs8mtvXO1gohH5DQYBPzGA3WyGBdzhipTLo5xZK8kkn0md3\nryQaCflknd/zxJ8NKxO5/beOqQWa6SbJR6zENZhZTmN8ue8iarrthFPPafCyZu1i7/i0uEws3LcB\n4xpbga+UqbfqJyZ055iFyPRs8tRSZFwbu5+G4OyZi7h+fCXc+nbBXw+T0KO6gk2eJPIDumLWYVEI\n/+xQVqpgT/26XPMp5a0e5pp1PomWLzjF/dMXFuKYJxfuSSe/Rby45x07OzvBXKewvMrCebGuDpJT\n+PtfXfMm0mMjFtIYpLDnhIk4GpuaW/DPSnyAlT+cwJrAffCxZfdz51q4WrkRrk0ejA41eOdTD+aW\nVkxI0/BR0lgCHSzPBHTMauP49Xuwyx7p4d+QuVcCMSsXFJFewQuQWdvXRPCtMGbS0hBctWhuWxHJ\nOdO0cgR+NtfqUWgqvFRu9wxZFvtOqBfI37c/3r8Hv4uXcefUanQZ1gurr79Cmyr8HtcuZPLHKjuk\nx0vxxbbV6OdlKX/nL14OvuLyawU2Uvvn5PY44PYdftj8JSxkT/DthX+UWfkMWYj7bdbjYpsn2IK+\nONFEIZwnoe7UffhmYhNI0ySsU7OcrXLOOja848PqyjlY6OXzAVTmXro3+L3xXkPi/SNYu+8SuGWB\nJCGE2YjFoY13lZw6MUHf2d0YR88EsAl9UrYkOjslMkKt5ubYuO2wYAaQFH4Za04+QwuPisp0GUyT\naFx3GP5b0h2fdJiIAKZtrOrVUDjv490AtRs0EradnFU+AiqqHm4GlKK4YZmQv7J/dYhtOiu96igL\noo0yTSA98g5OHT2FgEjFEKQe7NliQFyzqvqrYFfwQksmNo7ICL6JJ7ESyFKf4MDmC9A1VHnrqlBU\nnbTNBXcu/fNjGRK+zX/yoGNkLswTuXQ7AjwenxdYUDCr1QULvV5hxOztiGFmZLK0KFw67cdyL/x5\nYgVozLpJ38m4Nrsd6yBvwOypXeWd3uznc9Ouy5Ca2jLhkgn2L8LxLNcE+NwZyiRRePBYF60798bU\nZesw0sEMkcohZXn5kvQsZGbIhV7eXksXd2ZU/w3+vcM9V6Xj/MFfYd2wMezZ6FvuoMo197mSsM/t\n7Pk9xQVybQKfOFtQB4AL/JaW6po2bfItbXG4cDJgqjcWDvsWD6OYYM8EgoeXLwi2tKZuH2K8BzPb\nXLiTdWbl97z/eX/B+w1/lrj7y5h4NldFmoAYNpE9hX03uHazgoEObvuFCCheBt7ErYwsOFgZCfvc\nY8fY6g5o2mutUgNY2phRfd8dgfTnAbjMzHdDnud8Q6wdK8A+18/ONkfpoal2TnXb4vH+jbjDbMe5\nR6ddcw6i/2ct2NsbsK5UFef3/IdEJrfE3buCfXFKOwN2VhcOrDN67uI9JtSy70T2q5y/b8MjdODd\nvieGf/sTerM5J69iFOmy37dMC5+Z7TCE++4xsqoEhP0PN5kZDGTPcfngVblNvcgQVZtYYO+f15DJ\n3vnWtuyd//IRopI0fzfU2idh7pXj4pkjiTjBhSx318mMNhFzPRWtm7aCM8sr/qE/DsfnOAkwqtQO\nX3f2x8jezDRu1kg4Zr/v7avVxp1tB/FSasLqwEYmJC/x6Jl81FutzDK8896Fen0jA+wY0gqm7KIY\nWNTBxa6L4VtXRdBmYsIHo79B5Iw2MNLRx4h1bHiFaUh6zP0LHwXMgIWOCGZV2qDVshPwrZW3V9hm\n2gbMrX4CvWfuhq6ZIxvh90DTmtYwcqqPzmYGaJLdETBg+agGPlHWXmVWNx/Ogr6Z1lpR1bxou/QS\nSI66g08njMBN5Qv59dpSu/cCrBv0FO42BtAxroRfKk7GT0N9hMzUtMzsCL8XDfhQKutMrh1QFSId\nW3x15QUmNa3ATH70sUMxIdagCiYun4DPmlaCDhMEt97IdsmaXxWZF50vj5xCl6CpsGFCi47YDn3X\n+LPXZ8HPk5FlLl0mm4iuUPoYVW6NFb2ZlsR5Orp5KbTveuj53UmMzpwllMPrXMHdCwFROS9lXkVF\nHsrqshfwFB8XuVmTbhWc7LwIvbPzvLZhrHC8xfSDODGrpbD9GXM5q2vfCtf3zEU/Tzt2zAhdFjvj\nyKahQuciX67KAkvehq6urmBjzwX8wkJWVpagief/eZBJ4hD66KVaMis2wlhULztqGZSSnSYT9mLh\noAj0qmkLD1sb9Bq8EYJPA5EFPt/zL5oGTUczB1PUda6M6b/eEibwZSXew+c1KqDrR18DTxahYzVH\nLN5zm83fqI2pG+dgxcD6golEu/afYdiKY6jFtfbZgY8MWDuZZZs+KI7SfyKQl0BqTADmzhyNoJcK\ngTlvHG2O2DX9DCu/dMCgOlao51oft32XYmwvptRgwcW7N1reX4Cmtqbo9dUhNGNmNQYK5QB7LzYb\nwWSoOR3gZWuBuVv85MWx9+0iZrYomP/Y1cH1zgvxQT35vJTbWyYIx4fNO47z330gbM//7RaMKn+I\nX5Z9gs+87dhzVg0/nYlmQj3PTg8dZh2Hr3S28Jx52FigbdNmCImRK2DkBWr+a6fzEEPrVxRczjZj\nbmebNxiO8DQTfLhyKlb1rSmUPfj7w/Bk36ycNpmgZf8RTCZjE98/rKvM2KX9LPw8JRM9q1kK6Xxq\nNcAxQeEjj8LlOD0VMyVlwjK0wSVZ5lRBoZJ+fy1LTUwUrBEsi+i5gS+ik8WGrQRb+7dU/ayEW2jl\n6A3T+f/g2PS2b6kUyrY8EMgQ7nN9Zh8u1/q9rzYnsnro64thZKQuPL7p50n+XMvbm6trkE/TpUhl\ndpPpzL7esgiMZGlJiEuVCHMLtCsnn+LfwGE+16K471SugY+MZBMxMwsbf2GmgeydyUdDdk11R/8/\nhyM+9Cu5R6PstvA8nj59ykY5tdCavUb7q1WrhpAQuVZbNXmqJVOivOOQxheeYh0iPk8hRwSXV4Jr\n5XWZFt4w1z2fXxX54lOpaYyZngmMlbbGQNzNjWjRfjK+PhyCj5u8+zbmV186Xj4I8MWn0qV6sLA0\nVWuwsFga04ybseO57321iGo7UubONY2NXOkyW3u5iaXa6Xx2eB0ymOFyjn1+TkT+DPL8TFl+2tcj\nJ73qVhZ7r/NH0Ji5Ac4d/Nb3xoyr3XFk8zDl5GFFHJ6Or60oNjWBgZbmqYq07/s/72RFRESwdWTM\nBQcK/Hty9epVubKLbfN9HhT/+bemSZMm4ModPt9K/Yv+HlsjZh8m7W+pnIryCYJvP5hj4trf0di3\nzdsvikoo0wQM2H1eEvyS5Of28E0/T0V/rvXYhPiivwtERqZs0nDZuXW4CQ73isMFe4UmPr/W8Q5a\nxKkf0X95MGw6W7DPqXrg2n8HBwchr+J2NtRzLnl7Rho+/opaahIMFOc0/ZdPMsx7RsfCA0u2HEc7\nEujzwqEjb50An+yq6VXH71eLIlvbsQ4we2Y05VdQQ/KrA0/zOvnlV5YOe6/ntvDnzipmerQQzHGW\nn/9V4/eUp7MoaqPyq0QpO17cjlQpa+7rVVfHvAo+HtoXlc3UTXReLzdKRQSIABEonACfPOvoWLgm\nOD3iBLymJLIJb+uQxOxONen2+aRaPnGWQvEJmFdpii7d5bbMxc+NciACRKAoBETiyph48jpOs8Xk\nOroXPJetKPmWlbgk1JeVK0ntIAJEoMwR4GYkBQrjkif4xncK1u+cAMvUWDYhOSuPpl4Bha9ky23s\n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\nV8nXjMXbFp+UBjGbmZx3FdmiZyrPTyowUWelOS95O6HCUHO83Ed5uiw9PcZSnU9+5b8rnrnrSftE\ngAgQASJABDQR2L59Oz799NNCbOo1pdR0TMrkkTTo6RmxCYmqgkpuOSVv2tf5PuYvF+XNn44QAU0E\nuE09d6e6efNmDB48WFMUrY6p3u1aJRCxh4TJ7RqCITuuKgobwtIyZ58L96rBjAnOqkFsqr6vfk49\nreq5N7nN22ZpqS4YFyd/eX7a58A7RK8T8kuXX/n5xX+dsikNESACRIAIEIE3QYALNm9mwiBXAmr6\nnuaWU/LW+nW+j/nLRXnzpyNEQBMBxb2v6VxRjhXJ/KYoGVNcIkAEiAARIAJEgAhoQ0AsFgsTCXlc\nLuBQIALlhYDifucTaflzUJxQZE19cQqjtESACBABIkAEiAARyE3A0dERYWFhaNCggbDSJj//Jlz8\n5S6H9olASSKgEOh1dXWF+58/B8UJJNQXhx6lJQJEgAgQASJABIpNoFKlSrh//76Qj6urKzOFzd8k\nt9iFUQZEoAQR4KvNhoeHIzIyErVq1SpWzUioLxY+SkwEiAARIAJEgAgUl0CFChWEFTafMLeTXLhP\nTZW7wSZtfXHJUvq3TUChbX/dcrjJjYODA9zc3MCfg+KEInu/KU5hlJYIEAEiQASIABEgApoISNni\nNYrf21ygR1PZdIwIvC8COjo6zFOTnvJXnHqQpr449CgtESACRIAIEAEi8EYIKASbN5IZZUIEyiEB\n8n5TDi86NZkIEAEiQASIABEgAkSgbBEgob5sXU9qDREgAkSACBABIkAEiEA5JEBCfTm86NRkIkAE\niAARIAJEgAgQgbJFgIT6snU9qTVEgAgQASJABIgAESAC5ZAACfXl8KJTk4kAESACRIAIEAEiQATK\nFgES6svW9aTWEAEiQASIABEgAkSACJRDAiTUl8OLTk0mAkSACBABIkAEiAARKFsESKgvW9eTWkME\niAARIAJEgAgQASJQDgmQUF8OLzo1mQgQASJABIgAESACRKBsESChvmxdT2oNESACRIAIEAEiQASI\nQDkkQEJ9Obzo1GQiQASIABEgAkSACBCBskWAhPqydT2pNUSACBABIkAEiAARIALlkAAJ9eXwolOT\niQARIAJEgAgQASJABMoWAS7UB5WtJlFriAARIAJEgAgQASJABIhAuSIQpCMSifaVqyZTY4kAESAC\nRIAIEAEiQASIQBkiwOV5LtTvYb+zZahd1BQiQASIABEgAkSACBABIlAuCHA5XiqV7hbx1r58+bK+\njo5Of7bZk52oWS4IUCOJABEgAkSACBABIkAEiEApJSCTyR4w+X0/k913W1lZ+f8fJo8c+SeCKwMA\nAAAASUVORK5CYII=\n" - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are 4 differences between the files. Let us see what idfdiff.py does with the two files. We will use the --html option to print out the diff in html format." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# python idfdiff.py idd file1 file2\n", - "python idfdiff.py --html ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf " - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfaceis herenot here
MATERIALF08 Metal surface hahanot hereis here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
\n" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "reprinting the output again for clarity:\n", + "Do a diff between two idf files. Prints the diff in csv or html file format.\n", + "You can redirect the output to a file and open the file using as a spreadsheet\n", + "or by using a browser\n", "\n", - "

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfacenot hereis here
MATERIALF08 Metal surface hahais herenot here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It does look like html :-). We need to redirect this output to a file and then open the file in a browser to see what it looks like. Displayed below is the html file" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below\n", - "from IPython.display import HTML\n", - "h = HTML(open(doc_images.idfdiff_path, 'r').read())\n", - "h" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "html": [ - "

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
\n" - ], - "metadata": {}, - "output_type": "pyout", - "prompt_number": 8, - "text": [ - "" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Pretty straight forward. Scroll up and look at the origin text files, and see how idfdiff.py understands the difference" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let us try the same thin in csv format" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# python idfdiff.py idd file1 file2\n", - "python idfdiff.py --csv ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "file1 = ../resources/idffiles/V_7_2/constr.idf\n", - "file2 = ../resources/idffiles/V_7_2/constr_diff.idf\n", - "\n", - "Object Key, Object Name, Field Name, file1, file2\n", - "CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8\n", - "CONSTRUCTION,GARAGE-SLAB-1,,is here,not here\n", - "CONSTRUCTION,SB-E,,is here,not here\n", - "CONSTRUCTION,SB-U,,not here,is here\n", - "OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV\n" - ] - } - ], - "prompt_number": 32 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see the same output, but now in csv format. You can redirect it to a \".csv\" file and open it up as a spreadsheet" + "positional arguments:\n", + " file1 location of first with idf files = ./somewhere/f1.idf\n", + " file2 location of second with idf files = ./somewhere/f2.idf\n", + "\n", + "optional arguments:\n", + " -h, --help show this help message and exit\n", + " --idd IDD location of idd file = ./somewhere/eplusv8-0-1.idd\n", + " --csv\n", + " --html\n" ] - }, + } + ], + "source": [ + "%%bash\n", + "# ignore the line above. It simply lets me run a command line from ipython notebook\n", + "python idfdiff.py -h" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let us try this with two \"idf\" files that are slightly different. If we open them in a file comparing software, it would look like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 2, + "data": { + "image/png": "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\n" + }, "metadata": {}, - "source": [ - "loopdiagram.py" - ] - }, + "output_type": "display_data" + } + ], + "source": [ + "from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below\n", + "for_images = doc_images\n", + "for_images.display_png(for_images.filemerge) # display the image below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are 4 differences between the files. Let us see what idfdiff.py does with the two files. We will use the --html option to print out the diff in html format." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Diagrams of HVAC loops" + "name": "stdout", + "output_type": "stream", + "text": [ + "../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf\n", + "

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfaceis herenot here
MATERIALF08 Metal surface hahanot hereis here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
\n" ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This script will draw all the loops in an idf file. It is a bit of a hack. So it will work on most files, but sometimes it will not :-(. But it is pretty useful when it works. \n", + "name": "stderr", + "output_type": "stream", + "text": [ + "idfdiff.py:193: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system (\"lxml\"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.\n", "\n", - "If it does not work, send us the idf file and we'll try to fix the code\n", + "The code that caused this warning is on line 193 of the file idfdiff.py. To get rid of this warning, pass the additional argument 'features=\"lxml\"' to the BeautifulSoup constructor.\n", "\n", - "Make sure [grapphviz](http://www.research.att.com/sw/tools/graphviz/) is installed for this script to work\n", - "\n", - "Again, we'll have to run the script from the terminal. Let us look at the help for this script" + " soup = BeautifulSoup()\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# ignore the line above. It simply lets me run a command line from ipython notebook\n", - "python loopdiagram.py --help" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "usage: loopdiagram.py [-h] idd file\n", - "\n", - "draw all the loops in the idf file\n", - "There are two output files saved in the same location as the idf file:\n", - "- idf_file_location/idf_filename.dot\n", - "- idf_file_location/idf_filename.png\n", - "\n", - "positional arguments:\n", - " idd location of idd file = ./somewhere/eplusv8-0-1.idd\n", - " file location of idf file = ./somewhere/f1.idf\n", - "\n", - "optional arguments:\n", - " -h, --help show this help message and exit\n" - ] - } - ], - "prompt_number": 33 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Pretty straightforward. Simply open png file and you will see the loop diagram. (ignore the dot file for now. it will be documented later)\n", + } + ], + "source": [ + "%%bash\n", + "# python idfdiff.py idd file1 file2\n", + "python idfdiff.py --html --idd ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf " + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "reprinting the output again for clarity:\n", + "\n", + "

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfacenot hereis here
MATERIALF08 Metal surface hahais herenot here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It does look like html :-). We need to redirect this output to a file and then open the file in a browser to see what it looks like. Displayed below is the html file" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

file1 = ../resources/idffiles/V_7_2/constr.idf

file2 = ../resources/idffiles/V_7_2/constr_diff.idf

Object Key Object Name Field Name file1 file2
CONSTRUCTIONCLNG-1Outside LayerMAT-CLNG-1MAT-CLNG-8
CONSTRUCTIONGARAGE-SLAB-1is herenot here
CONSTRUCTIONSB-Eis herenot here
CONSTRUCTIONSB-Unot hereis here
OUTPUTCONTROL:TABLE:STYLE Column SeparatorHTMLCSV
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below\n", + "from IPython.display import HTML\n", + "h = HTML(open(doc_images.idfdiff_path, 'r').read())\n", + "h" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pretty straight forward. Scroll up and look at the origin text files, and see how idfdiff.py understands the difference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let us try the same thin in csv format" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf\n", + "file1 = ../resources/idffiles/V_7_2/constr.idf\n", + "file2 = ../resources/idffiles/V_7_2/constr_diff.idf\n", "\n", - "So let us try this out with and simple example file. We have a very simple plant loop in \"../resources/idffiles/V_7_2/plantloop.idf\"" + "Object Key, Object Name, Field Name, file1, file2\n", + "CONSTRUCTION,CLNG-1,Outside Layer,MAT-CLNG-1,MAT-CLNG-8\n", + "CONSTRUCTION,GARAGE-SLAB-1,,not here,is here\n", + "CONSTRUCTION,SB-E,,not here,is here\n", + "CONSTRUCTION,SB-U,,is here,not here\n", + "OUTPUTCONTROL:TABLE:STYLE, ,Column Separator,HTML,CSV\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%bash\n", - "# ignore the line above. It simply lets me run a command line from ipython notebook\n", - "python loopdiagram.py ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/plantloop.idf" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "constructing the loops\n", - "cleaning edges\n", - "making the diagram\n", - "saved file: ../resources/idffiles/V_7_2/plantloop.dot\n", - "saved file: ../resources/idffiles/V_7_2/plantloop.png\n" - ] - } - ], - "prompt_number": 34 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The script prints out it's progress. On larger files, this might take a few seconds. If we open this file, it will look like the diagram below\n", + } + ], + "source": [ + "%%bash\n", + "# python idfdiff.py idd file1 file2\n", + "python idfdiff.py --csv --idd ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see the same output, but now in csv format. You can redirect it to a \".csv\" file and open it up as a spreadsheet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## loopdiagram.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Diagrams of HVAC loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This script will draw all the loops in an idf file. It is a bit of a hack. So it will work on most files, but sometimes it will not :-(. But it is pretty useful when it works. \n", + "\n", + "If it does not work, send us the idf file and we'll try to fix the code\n", + "\n", + "Make sure [grapphviz](http://www.research.att.com/sw/tools/graphviz/) is installed for this script to work\n", + "\n", + "Again, we'll have to run the script from the terminal. Let us look at the help for this script" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Couldn't import dot_parser, loading of dot files will not be possible.\n", + "usage: loopdiagram.py [-h] idd file\n", "\n", - "*Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity*" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below\n", - "for_images = doc_images\n", - "for_images.display_png(for_images.plantloop) # display the image below" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAP7CAYAAABY8t0eAABAAElEQVR4AezdB5wURdrH8YdoDohK\nMqGYUDFnFMR0ZlFQTKgoKirm7KkX9NQze+YcwJxQMYsBUIyIqJgQTBhAFLME+61/3dtzM8PMTs9u\nT2/vzK8+H9yZnu4K31635umurmoWuGQkBBBAAAEEEEAAAQQQQAABBBCILNA88p7siAACCCCAAAII\nIIAAAggggAACXoBgml8EBBBAAAEEEEAAAQQQQAABBMoUIJguE4zdEUAAAQQQQAABBBBAAAEEECCY\n5ncAAQQQQAABBBBAAAEEEEAAgTIFCKbLBGN3BBBAAAEEEEAAAQQQQAABBAim+R1AAAEEEEAAAQQQ\nQAABBBBAoEwBgukywdgdAQQQQAABBBBAAAEEEEAAAYJpfgcQQAABBBBAAAEEEEAAAQQQKFOAYLpM\nMHZHAAEEEEAAAQQQQAABBBBAgGCa3wEEEEAAAQQQQAABBBBAAAEEyhQgmC4TjN0RQAABBBBAAAEE\nEEAAAQQQIJjmdwABBBBAAAEEEEAAAQQQQACBMgUIpssEY3cEEEAAAQQQQAABBBBAAAEECKb5HUAA\nAQQQQAABBBBAAAEEEECgTAGC6TLB2B0BBBBAAAEEEEAAAQQQQAABgml+BxBAAAEEEEAAAQQQQAAB\nBBAoU4BgukwwdkcAAQQQQAABBBBAAAEEEECAYJrfAQQQQAABBBBAAAEEEEAAAQTKFCCYLhOM3RFA\nAAEEEEAAAQQQQAABBBAgmOZ3AAEEEEAAAQQQQAABBBBAAIEyBQimywRjdwQQQAABBBBAAAEEEEAA\nAQQIpvkdQAABBBBAAAEEEEAAAQQQQKBMAYLpMsHYHQEEEEAAAQQQQAABBBBAAAGCaX4HEEAAAQQQ\nQAABBBBAAAEEEChToGWZ+7M7Ak1GYNasWfbiiy/ao48+altvvbVtv/32qar7zJkz7fbbb7fx48fb\n0ksvbd27d7c2bdrYd999ZxtvvHHidY3T6/vvv7cnnnhirjaojWprqRRnXUqVxecIIIAAAo0nkMa/\n98X6sEUWWcTatWtnK664oi288MKNhxZzyRMmTLDhw4fbmmuu6b8v5WdfzIM+PV+K97UowJ3pWjzr\nNdJmBan33HOPXXrppTZlypRUtfrXX3+1DTbYwO69917baaedrG3btnbqqafayiuvbC+//HKj1DVO\nL10U6NWrl1133XW299572z/+8Q/bdNNNbamllorUtjjrEqlAdkIAAQQQaBSBNP69X3TRRa1r1652\nxhln+D7sjjvuMAX9Y8eOtcsuu8yWWWYZ22677WzMmDGNYhZnoRMnTrRrr73WTjzxRPviiy8KZk2f\nXpCFjQh4AYJpfhGqVmCdddaxI444IpXtU2esLxA33HCDbbnllnbAAQfYiBEjbODAgY0W+Mftpav3\nO++8s/ffZptt/JePZs2aRTofDanL1KlTC94Vj1QwOyGAAAIIJCrQkL/3laqo+irdpe3Zs6cvYr/9\n9rP+/fvb6aefbrfddpu99957tsACC/iLxg8++GClqpFIviussIIdeuihvqyWLYsPWKVPT+R0UEgT\nFCCYboInjSpHFwg7hqhBXPScG7bnW2+9ZX/++af9+OOPORmdd955fph3zsYE38TtpSFxSuHPcppS\nn7rMmTPH30WYPHlyOUWxLwIIIIBAIwrU5+99EtUtNpS7Y8eONnToUD+arE+fPnbnnXcmUZ2KldG8\n+X/DgfBnsYLCvjz8WWy/Qtvrc47p0wtJsi1tAsUvQaWtptSnZgRmz55tzz77rL/qq+eShg0bZp98\n8on17t3bNtxww1gcfvrpJ3vsscdMzwnpGV7dOS30LO+bb75pI0eONA3L1tVz7ZcdmGtI1MMPP2yD\nBg2yF154wZ588knr1KmTHXTQQTbffPMVravy0RD0/fff33RVOxz+vNhii9lxxx3nj3vkkUdMw68W\nXHBBO/jgg0111hVxDTXr0KGD7bnnnn6/qF71qaue31Y9lNTubt262dprr22//PKLPfTQQ74uW2yx\nhS277LJ+nyj/UX2fe+45U6etZ8OV/wcffGD9+vWzlVZaqWQWGrKv57HVHg0d1519pT/++MP22Wcf\ne+aZZ2zJJZf09dWdcVmREEAAAQTiFahPn1JuDeLoq6P2keXWbZ555vGPMumRrZtuusn22muvTBbF\n+qlwB333+Prrr61Hjx72+OOP+z6wb9++/nuILrSPHj3aP/K1+eab20YbbRQe5n9++OGHfnj522+/\n7ftAfTcK0+eff24PPPCADR482N891/cnDUlX35gfKGtOmeeff97UDn2/Ucr+fhPmWepnQ/t05a9+\n+5VXXvHzxui7jR59o08vJc/nqREISAikSMB1BMFuu+0WuP9BAhcIBTvssENw+OGHBy4gCtxVzeC+\n++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\ndA2cZJpYfQJt27a1YcOGVV/DaBECCCCAAAJVLED/XcUnl6bVpADBdE2edhrd1AWmT59uM2fObOrN\noP4IIIAAAgjUlAD9d02dbhpbAwIE0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAII\nIIAAAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUg\nQDBdAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAAC\nCCCAAAIIIIAAAgggEK8AwXS8nuSGAAIIIIAAAggggAACCCBQAwIE0zVwkmkiAggggAACCCCAAAII\nIIBAvAIE0/F6khsCCCCAAAIIIIAAAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJ\nbggggAACCCCAAAIIIIAAAjUgQDBdAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAAC\nCCCAAAII1IAAwXQNnGSaiAACCCCAAAIIIIAAAgggEK8AwXS8nuSGAAIIIIAAAggggAACCCBQAwIE\n0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAIIIIAAAggggEANCBBM18BJpokIIIAA\nAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUgQDBdAyeZJiKAAAIIIIAAAggggAAC\nCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAACCCCAAAIIIIAAAgggEK8AwXS8nuSG\nAAIIIIAAAggggAACCCBQAwIE0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAIIIIAA\nAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUgQDBd\nAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAACCCCA\nAAIIIIAAAgggEK9Ay3izIzcEEIhb4NVXX7URI0bMle1DDz1kEydOzGzv2LGj9e/fP/OeFwgggAAC\nCCDQeAL0341nT8kIJCXQLHApqcIoBwEEyhcYPHiwXXHFFda6devMwfrftlmzZpn3s2fPtjZt2ti0\n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\nVJ/ACiusYIceeqhvWMuWLf1P+vDqO8+0CIFKCxBMV1qY/GtOoEWLFtasWbM6233eeefZ2muv7f+F\nO+67776mIWY33nhjuCnWnwsssIDNN998seZJZggggAACCDRVgebN//s1OPypdtCHN9WzSb0RaBwB\ngunGcafUJi6g55tvvvlm01BtDQv75JNPCrbopZdesrPOOsvuv//+zOfTpk3zw7nXWGONzDa9mHfe\neU1Xyu+5556c7aXeaHianoUOgsCef/55O/XUU+2KK66w3377LedQ1VlDvcM0e/Zse/LJJ23UqFH2\nzTff2HXXXWennHKK6Q52fpoyZYo/9h//+Ic9++yz+R/zHgEEEEAAgSYh8OKLL5r6MvXfn332ma9z\nsQvg9OFN4pRSSQQaVeC/41oatQoUjkDTEvjhhx9s++2394Gr7vTut99+vgHLL798piF//PGH7bTT\nTj7AVaCtjlt3nm+//XYfeP/555/WoUOHzP7hiyWXXNLUeSswLta5h/vq59ChQ23w4MH2+++/2/jx\n423mzJn29ddfm+58qywFyrrirtdHHXWUzT///P45bQXgRx99tD3wwAO2884725w5c2zZZZe1Bx98\n0C666CK76667bPfdd/dFaWi4ngEfNGiQLbTQQrbrrrta//797corr8yuCq8RQAABBBBItcDpp5/u\nJ/u89NJLTRe21S8r5fe39OGpPo1UDoF0Cbgv7SQEal5gqaWWCtzzy5Ec/vOf/wQ9evTI7OuC5eCO\nO+7IvN9hhx2C1q1bB++//77f5gLnYJdddgnc//nBY489Fjz88MP+tQuwM8eEL1yQ7j+bOnVquKnk\nT/dlIHBfBIJ33nkns+8ZZ5zh87nmmmsy23bbbbegXbt2mfcff/yx36dv376ZbS4QD5ZYYolAHrNm\nzQp++umnwF0kCNzw88w+Bx10kD/u5ZdfzmwLX8hQx2anzz//vOj+2fvxGgEEEEAAgagCLiAOOnbs\nGHV33/+6IdzBjBkzMsfceuutvn+iD8+QeFPZZid38T3YZJNNsjfxGgEE/l+AYd7purZBbZqAwCqr\nrGIvvPCCv6Ltgl7r3LmzuUA1p+arrbaarbzyyn6brnjrrq7S8OHDbcEFF8xs9y+y/qM7xPPMM4+1\nadMma2vdL/UstCZPUZlh0nBtbdNwtjAp3+yk45TWWmutzGYXbNvAgQP9JGhatkt3pDVc/KSTTrIj\n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\nAAIIxCNAMB2PI7kggAACCCCAAAIIIIAAAgjUkADBdA2dbJqKAAIIIIAAAggggAACCCAQjwDBdDyO\n5IIAAggggAACCCCAAAIIIFBDAgTTNXSyaSoCCCCAAAIIIIAAAggggEA8AgTT8TiSCwIIIIAAAggg\ngAACCCCAQA0JEEzX0MmmqQgggAACCCCAAAIIIIAAAvEIEEzH40guCCCAAAIIIIAAAggggAACNSRA\nMF1DJ5umIoAAAggggAACCCCAAAIIxCNAMB2PI7kggAACCCCAAAIIIIAAAgjUkADBdA2dbJqKAAII\nIIAAAggggAACCCAQjwDBdDyO5JJygZ9//tmGDRtmf//73yPVdNKkSXb11VfbLbfcYt9++22kY+q7\n08UXX2xXXXVVfQ9P9XGfffaZdzz44INTXU8qhwACCCCQHgH12Y888oidfPLJvlL04Y1zbujDG8ed\nUpuWAMF00zpf1LaeAvfdd58poLvzzjtL5nD++efbgAEDbMstt7QuXbpYz549beTIkSWPq+8ON910\nk9122231PTy1x+nLz+jRo+3ss8+2J554IrX1pGIIIIAAAukSUJ9x1FFH2V133eUrRh+e/PmhD0/e\nnBKbpgDBdNM8b9S6TIEDDjjA1ltvvZJHqQM/7bTTTHeLV1ppJevevbsdd9xx1rt3b/viiy9KHl+f\nHV555RV77rnn6nNo6o7Jviiw4IIL2l577WUbbrhhveqZnVe9MuAgBBBAAIEmKdCnTx/bYIMNrGXL\nlr7+9OHJnMbsfpc+PBlzSmn6AgTTTf8c0oKIAi1atLBmzZrVufd5551na6+9tv8X7rjvvvuartDe\neOON4aZYfy6wwAI233zzxZpnY2SmCwK6EJGf9GWolHv+McXyyt+P9wgggAAC1SnQvHlz078w0YeH\nEpX5WazfpQ+vjDe5Vo/Afy/5VU97aEmNCwRBYC+88IK99dZbpo53lVVWsa233noulZdeesmefPJJ\n69atm+2+++7+82nTpvnh3P3798/Zf95557UVVljB7rnnHjvrrLNyPqvrje5kP/zwwzZo0CBfJ5XX\nqVMnO+igg3KCZz2T/eijj/qh5cpv9uzZ9uyzz5qC7BVXXNE/6/3JJ5/4u+P5d3mnTJnih1CrrE03\n3dQPTa+rTsU+e/PNN33bf/31V1tnnXVsm222yQTAem5t4sSJpqvUGir/008/+WHps2bNsg4dOtie\n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\nQLUIEExXy5mknHIO7wAAQABJREFUHQgggAACCCCAAAIIIIAAAokJEEwnRk1BCCCAAAIIIIAAAggg\ngAAC1SJAMF0tZ5J2IIAAAggggAACCCCAAAIIJCZAMJ0YNQUhgAACCCCAAAIIIIAAAghUiwDBdLWc\nSdqBAAIIIIAAAggggAACCCCQmADBdGLUFIRAfAJt27a1YcOGxZchOSGAAAIIIIBAxQXovytOTAEI\nJCpAMJ0oN4UhEI/A9OnTbebMmfFkRi4IIIAAAgggkIgA/XcizBSCQGICBNOJUVMQAggggAACCCCA\nAAIIIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAw\nXS1nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggg\ngAACCCCAAAIIIJCYAMF0YtQUhAACCCCAAAIIIIAAAgggUC0CBNPVciZpBwIIIIAAAggggAACCCCA\nQGICBNOJUVMQAggggAACCCCAAAIIIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEI\nIIAAAggggAACCCCAAALVIkAwXS1nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggg\ngAACCFSLAMF0tZxJ2oEAAggggAACCCCAAAIIIJCYAMF0YtQUhAACCCCAAAIIIIAAAgggUC0CBNPV\nciZpBwIIIIAAAggggAACCCCAQGICBNOJUVMQAggggAACCCCAAAIIIIBAtQgQTFfLmaQdCCCAAAII\nIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAwXS1nknYggAACCCCAAAIIIIAAAggk\nJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggggAACCCCAAAIIIJCYAMF0YtQUhAAC\nCCCAAAIIIIAAAgggUC0CBNPVciZpBwIIIIAAAggggAACCCCAQGICBNOJUVMQAggggAACCCCAAAII\nIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAwXS1n\nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggggAAC\n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\nH2/33HOPXXrppTZlypQG5VVLB6fdra763XTTTXbbbbfV0umirQgggECTFlAwOnr0aDv77LPtiSee\naHJtUZ2POuoou+uuu5pc3cMKT5w40a699lo78cQTEw9ei/Xpb775pt18882mz0kIVJMAwXQ1nc0q\nb8s666xjRxxxRJW3Mv7mpd2trvq98sor9txzz+WgTJ06teAXNILuHCbeIIAAAo0isOCCC9pee+1l\nG264YaOU39BC+/TpYxtssIG1bNmyoVk12vErrLCCHXroob78pNtRrE+Xq/rv7bbbLselUJ9eaFvO\nQbxBIEUCBNMpOhlUpbRA2Ck0a9as9M7skRFIu1ux+i2wwAI233zzZdoxZ84c23vvvW3y5MmZbXqh\ngPu0007L2cYbBBBAAIHGE9Df9abaVzdv3tz0rymnsP7hzyTbUqxPX3zxxXOqUahPL7Qt5yDeIJAy\ngaZ72S1lkFSnuMDs2bP9s84KjFZccUUbNmyY6dmZ3r17x3bl+qeffvLPUesZoaWXXtq22WYb/zO/\nVhpmNHLkSPv1119NV0+1X3Znr2d5Hn74YRs0aJC98MIL9uSTT1qnTp3soIMOygnq8vMt9P7bb7+1\n4cOHm37qKrHKW3755f2zWBqCpav3ep5MddddVT1n1KFDB9tzzz19dlHqUl9bPXv++eef+3LmmWce\n22233Uw/X331VXvvvfesTZs2tssuuxRqVsFtxdqqnaO0o2CmbqPyffTRR/1zVn/88Yfts88+9swz\nz9iSSy7pz9vOO+9s77//vq+rzqOGtXXs2NF22mknn6UeB9CQPdVh0003tS233DKnqJdeeslmzpxp\nq666qt16663Ws2dPf0ciZyfeIIAAAjUgUN/+pFyaUv2w8ivVpzekXylU3+nTp9t9993nL9Sut956\nFgRBzncDHVOqP9H3j6+//tp69Ohhjz/+uH3wwQfWt29f/13kzz//9EPfX375Zdt8881to402yqnG\nhx9+aGPGjLG3337b91X6fhQmnRddMFZQvPHGG/vvEMq7X79+ttJKK4W7+Z8vvviiPf/8874/13cO\npezvOH5DhP8U69Mb8jsiA32v0nef9ddf3wr16dtuu62dcMIJc/Xz+m6kpP5fI9b0HUXfldq2bZtp\nzffff2933nmnHX744d5flscff3yTHmGQaRwv0i3g/mCQEChLwE0KFSy11FKRjnEBW+ACtcD9XxC4\n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\n/f77774P1xwh2267rfXt29cWXHDBVDrWt1LNmze3rbfe2hZeeOH6ZsFxCOQIEEzncPCmlgXefvtt\nO/LII2306NF20EEH2b/+9S9bfPHFU0miAO+ee+7xHV3aKqgvbtdff72dfvrp1qpVK/v3v/9t++67\nL3dH0naiqA8CCCBQBQLfffed/fWvf7XrrrvONthgA7v88stTd6E5mznN/bfqqT78pptu8n34nDlz\n7J///KcdcsghppEOJAQQmFuAZ6bnNmFLjQn88MMPNnjwYFtnnXX83ehXXnnFd8ppDaTTfnp01ffQ\nQw+1Dz/80HbddVc74IADbLPNNrO33nor7VWnfggggAACTURAgd4VV1xhK664og0bNszflX7ppZdS\nHUg3BVr14QcffLDvw9V/H3300bb22mvbc8891xSqTx0RSFyAYDpxcgpMi4CGqd9444220kor+bu8\nuqr98ssv23rrrZeWKjbpeiy22GJ29dVX22uvvWayXnfdde2II44wzYxNQgABBBBAoL4CI0aMsLXW\nWsuOP/54GzhwoH3wwQfWv39/RkDVF7TAcYsssohdeOGF9s4779gyyyxjvXr1st13390mTZpUYG82\nIVC7AgTTtXvua7rlCvA22mgjfwdVz1WpI9ZzTEyqFv+vhe746zl0DRu7//77/cULXbiolef44hcl\nRwQQQKA2BfRctObi2HLLLW255Zbzgd75559vCy20UG2CJNBq3XB49NFH7bHHHrP33nvPunbt6ofV\n//LLLwmUThEIpF+AYDr954gaxigwdepUfxV7ww03tPnmm8/Gjh3rl0hYdNFFYyyFrPIFdJFi//33\n98PGdPdAd6j1bNuYMWPyd+U9AggggAACOQK//vqrnXnmmX5CUN0pVWD3yCOP+CHeOTvypmIC2223\nnWluGc0no+H1CrKHDBniR55VrFAyRqAJCBBMN4GTRBUbLqBnq7RW8Morr2yPP/64DR061J5//nlb\nY401Gp45OUQW0OyZF198sX9+Wq832WQTPyJAy7eQEEAAAQQQyBe4++67bZVVVvEXvs8++2wbP368\nKbAjJS+gSUWPPfZY++ijj2zHHXf0F8nVj7/66qvJV4YSEUiJAMF0Sk4E1aicwMiRI/3zuscdd5y/\nK/3++++ndsmMyimkK+fVVlvN9MzbXXfd5Zdu0RVuzcA6e/bsdFWU2iCAAAIINIrAuHHjrEePHr6/\n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\nVnqzzTaTddddt7qZ4dNzTYD9d66rv6YKz/48xupQHUzNuW+++cZaffXVLVVM/sXAQB2bVHN1XOsZ\nUib81uDBgyl/McgffsdqNtP68ssva73aayZ/lL94237KX3Ki/eKLL1rLLrss28qY2krne49a751c\nxWU0ZcpjvG0n5THaD4XymA95rLkzTb799lvZdtttpWXLljJ27Fj1O649BxPHP/74o+Y3HhszZow8\n8cQT8sMPP9QexBrOEWbesEP7I488IjfccEOdHdxrIevTp0/X8odNyGrZffzxx3LhhRfqI+V+++03\nwZnsdN4Eal3+5syZo2f57HWo3qWp7l3KX7L8X3rpJW2hsMsuu9T8khO0ma1bt04WSAyp4/3i6quv\nltdff10mT54cQ4r5SSIt8piW/huSQ3kM//tJgzymqT+vZXmsKWXaqUg///zzNanEhP9ZVTbmCSec\nIE899ZTsv//+Mn78+Mo+PMVPcyoy48aNk169eqW4NNXNuhqRldGjRwtetB999NHqZiYlT6f8xVdR\nlL/4WLqlZL8oYrfse+65R7ApHV00Avj9o89+//339ckhP/30U7QEcxSb8hh/ZVMewzOlPIZnVy5m\nLctjzayZpiJdTnyC+0ORvuqqq+Tuu+/WRycFTyGfMajIxFfvUGSwphZrFSGLdP4EKH/+jExDUP5M\nSYULxxfFcNy8Ytkvio8//rhgIHellVbyCs57DgKURweMmC4pj+FBUh7DsysXs9blsSaUaVuRbtGi\nhXBGupwomfk7FekBAwaYRWIovamSbdrNGeloAuFUZO666y7OWBngpCJtAMkwCOXPEFTIYHxRDAnO\nI1rpi+J2223nEZq3nAQoj04a8VxTHsNzpDyGZ1cuZhrksepm3lg70rVrV72mUm2UJUcccUQ5nvT3\nITBjxgzBiyRmpG1FWm2d4BOLt0EAvB5++GF91NmNN94o+KMLTmD+/PlaBjEjTUXanB/lz5yVV0jK\nnxed6Pfeeecd2XHHHaV9+/Z6AHLgwIHRE2UK8vvvv8urr76qZ6SpSJsLBOXRnFWQkJTHILSWhKU8\nLmER51Ua5LHqM9Nqh1+ZNm2abLnlltK4ceM4+ecuLayz6t+/f0GRzh2ACAX+v//7P+nSpYssv/zy\nEVJhVLUTvyy11FJUpAOKAuUvILAywSl/ZcDE5P3KK6/o33e3bt30uc0xJZv7ZF577TU9kUBFOpgo\nUB6D8TINTXk0JVUcjvJYzCOub2mQx6rPTNuwb7nlFq4RsmGE/MSABGYMnK7Wd3t25rWa11AADz74\nYDnuuOOqmY3UP/uKK66Qyy+/nKbdAWuS8hcQWJnglL8yYGL0btWqldx///0xpsikOnToICuvvDJB\nhCBAeQwBzScK5dEHkMdtyqMHnJC30iCPVZ+ZDsmW0UiABEiABEiABEiABEiABEiABEigagSoTFcN\nPR9MAiRAAiRAAiRAAiRAAiRAAiSQVgJUptNac8w3CZAACZAACZAACZAACZAACZBA1QhQma4aej6Y\nBEiABEiABEiABEiABEiABEggrQSoTKe15phvEiABEiABEiABEiABEiABEiCBqhGgMl019HwwCZAA\nCZAACZAACZAACZAACZBAWglQmU5rzTHfJEACJEACJEACJEACJEACJEACVSNAZbpq6PlgEiABEiAB\nEiABEiABEiABEiCBtBKgMp3WmmO+SYAESIAESIAESIAESIAESIAEqkaAynTV0PPBJEACJEACJEAC\nJEACJEACJEACaSVAZTqtNcd8kwAJkAAJkAAJkAAJkAAJkAAJVI0AlemqoeeDSYAESIAESIAESIAE\nSIAESIAE0kogU8r0J598IqNHj5YJEyb41seMGTPksssuk2OOOUaeffZZWbRokW+csAG+/vprOfjg\ng+WHH34ImwTjpYTAX3/9JY8++qice+65Rjl+9dVX5ZxzzpFRo0bJm2++aRQnbKDLL79crr/++rDR\nGS8FBILKn10kyOzcuXPtr4l8Uv4SwZq6RD/77DO59NJL5bnnntN5p8ymrgozleGo8sg+PFPiUPXC\nRJXHF198UU488USt30yZMiXR8rBPX4I3M8r0l19+KRdeeKGcfPLJ8v333y8pocvV9OnTpWvXrvLB\nBx/Ixx9/LH369JHu3bu7hIzH691335U77rhDPvroo3gSZCo1S+CBBx6QQw89VP7zn//45hEDObvs\nsouWjTPPPFO22GILueSSS3zjhQ1w++23y5gxY8JGZ7wUEAgifyjOE088odvCPfbYQ+bMmZNoCSl/\nieJNReKTJk2Sm266SU466aTC4DJlNhVVl8lMRpVH9uGZFIuqFSqqPF588cV6gnDmzJl6wHKVVVbR\nfXxSBWKfvoRsZpTpNddcU0aOHLmkZB5XY8eO1bOAUCxeeOEFPTOIWUGTGW2PZMve2meffeTXX3/V\nSnvZQLyRCQIHHnigVk78CvPQQw9J/fr15bfffpNvvvlGnn/+eWnVqpWcccYZAkuGJNwbb7whL730\nUhJJM80aIWAqf8jud999J+uvv76g7ayEo/xVgnJtP2P11VeXww8/XGeyYcOG+pMyW9t1luXcRZFH\n9uFZlozqlC2KPOK9sWPHjnrSDgOWX331lSyzzDJy5ZVXJlYY9ulL0GZGmUaRGjRooEtWr169JSUs\nuZo/f77stNNO0rp168KdIUOG6Otll1224Bf3xXLLLRd3kkyvRglADr1kENl+7bXX9MihHXb77beX\n/fbbTxYuXChvvfVWIiVr1qyZNGnSJJG0mWjtELBlyi9HGLXGHzrgSjjKXyUo1/4zMIgIZ3/imjIL\nCnTVIGDLof2JPJjII/vwatRW9p9py6H9aSqPCxYs0O+QNqHmzZvLnnvuKUnqNezTbdoifw8NL/me\niqtffvlFmy7gEyM5m2yyiXTq1Kko7zDlvv/+++XPP/+U/v37F14YGzVqJKuttlpR2A8//FD69u2r\nZ2mKbvh8geKDmW0IVOfOnfVaWYwOQYC7detWiL148WL53//+JxDuzTbbTPtj/fRjjz0mRxxxhL73\nzDPPSIcOHeSQQw6po/Bg1hIjQJi5hMLVpk2bQtq8qA4BExlEzrCeCnW7wQYbyN57713ILJYjoMN2\nOsjgDTfcoOvZ6e93bSpLyPO4ceP0+n2kaSq/CPvjjz/K008/rU0zt9pqK4HyT1c9AlHlL86cU/7i\npJnNtF5++WUZP368NG7cWPfXKGW5AcdybWacZCizcdJMX1pxyCP78PTVe63mOA55XGuttYqKB70D\nZuNY/hrUsX0MSkyFt6rs1OiehWyodc5GOfn999+tTTfd1FJrAiylDFgDBw60lNKs46oZPZ3WAQcc\nYG200UaWWo9qKUXXUkqopcy466SvhM3673//a62zzjrGz7cTQX732msv/bzddtvN2nXXXa0jjzzS\nat++vaXM1yy1DkwHVZuiWcrMW4dTipL2u/vuu3We1CyhNXz4cEttTqbzCg6bb765pWbPdbh58+ZZ\nav2tpdbfWu+//75OR81wW0jTzak1t9Zxxx1XdEttEGCttNJKRX78UpcAGIGVifOSQcSHLKgBG0sp\nx/q6S5cuuv4HDx7smfyNN96o5eKPP/7wDOe8aSJL+J3ccccdljL5sVZYYQUd3VR+EVhtaGEddthh\n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\nIIHwBKhMh2fHmCRAAiRAAiRAAiRAAiRAAiRAAjklQGU6pxXPYpMACZAACZAACZAACZAACZAACYQn\nQGU6PDvGJAESIAESIAESIAESIAESIAESyCkBKtM5rXgWmwRIgARIgARIgARIgARIgARIIDwBKtPh\n2TEmCZAACZAACZAACZAACZAACZBATglQmc5pxbPYJEACJEACJEACJEACJEACJEAC4Qkkpkz/9ddf\n8uijj8q5555rlLsXX3xRTjzxRLnssstkypQpRnHCBrr88svl+uuvDxu9puN99913csMNN8ihhx5a\n0/msdOaCyuOrr74q55xzjowaNUrefPPNRLNLeUwUb00mHlQe7UKgTZ07d679NZFPymMiWGsyUcjh\n448/Lqecckohf5988omMHj1aJkyYUPDzu/j5559l/PjxfsEi3f/666/l4IMPlh9++CFSOrUYecGC\nBfLCCy/IcccdJ08++WQtZrHieSqVzaBtJvvweKqM75R1OX722Wdy6aWXynPPPadvBpHNGTNmaD3n\nmGOOkWeffVYWLVpU9wEx+bDNjAmkSTJWQu6OO+6wlltuOWuttdbyfcJFF11krbfeetawYcOsdu3a\nWfXr17fGjRvnGy9sgHXXXdfq1q1b2Og1G2/mzJnWvffea6244opWhw4dajaf1chYEHk8+uijrRYt\nWlirrLKKpX5DVr169ayLL744sWxTHhNDW7MJB5FHFALt4aabbqrlcfr06YmWi/KYKN6aSvz++++3\nOnbsqNs6ZOyLL76w9t9/fy1n//nPf3zz+ssvv1gnnHCC1aRJEwvtZpIOeUV7rJTNJB9TlbTfeecd\n/f6D8t1yyy1VyUOtPbRUNoO0mezD46lNvlPW5Thx4kRLKcK6Lbr99tt1AFPZ/O2336zVV1/dOuCA\nA6xevXppXWfzzTev+5CYfNhmxgTSIBkxCBM6yM477+yrTE+aNMm67777Cs/AjxeKTO/evQt+cV+o\nUSRr9uzZcSdblfTuvPPOOs/dc889QynTbmnVSTzFHiby+OCDD1rHHnustXDhQmvx4sXW888/b7Vu\n3dpq2LChBVlNwlEe3alSHv/m8u2331r4GzhwYEWUacpjvuRx3333tTp16lQo9Ouvv26sTCurHeuD\nDz7Q4ZNWppHBX3/9tZDPNF9gEOKpp54qKoLNMagyneV2slQ22YcXiUwiX9zkie+Uxag//fRT3eaN\nGTOmcMNENpXVqAWF2nbnnXeeTueVV16xvWL/zEqbCTClshm2zXRrf6OCT8zMG7PiDRo0EDWrh8uy\nDuZN++23X+F+8+bNRf1wZdllly34xX3RrFkzUSPpcSdb8fReeuklOf300+s8Vyl+vtxLI5VLqzRc\nmr+byONrr72mzXfssNtvv72WT6Vcy1tvvZVI8SmPdbFSHpcwURYSgj81g7jEM8ErymNduFmWR2UJ\nJvizHdo+OL++G2E222wzWXvttXFZEaes3SrynCQfArPOQYMGyTfffFP0GPTbcCbc7YhZlkuU0U02\n/fiwD7elI/hnOXniO2UxS7u9tD9x135nLA655Nv8+fNlp512EjU5U/AcMmSIvk5S38lCmwlIbrIZ\nps0s1/4WKiXkxd+td8jIiKa0efnf//4n77//vhYmdKw77LBDnRSxfuWZZ56RDTbYQPbee+/CfWUG\nXrjGhZoNFDUDKBdeeGGRv8kXrKV67LHH5IgjjtB5wvOUubMccsghRcqzGpUQZTap118hXShKWK+E\nl8jOnTvrtd5YawClXpmDFz36xx9/lKefflqv29pqq60EylYY9+6778r//d//iZohl0022UR23HHH\nQieKNWxggIEFrH1Ws/WiRsAEAw/t27fXyh0Ea/fdd9dxbrrpJlGm3dKvXz/PrKhZVnnjjTekVatW\nOo02bdro8GHS8nxQFW9GlceTTz5Zy7GzCH379tXr0MEtiKM8Uh6jymMQefMLS3mkPEJG1DIBeeCB\nB7Qy17VrV92Hl1NQEFaZCsqff/4p/fv3T2RAx7T/xbsB3jXQL0KJhzOVaYQt1//hnqlDX4w1zVgz\nufLKK+t+G59wJv32vHnzRJnR67wsv/zyuv/ebbfddL9eLg/l3jmy1G/bZQ8im+XeKdmH853Slqc4\nP19++WW9L0Tjxo31OzvSLtduuslmo0aNZLXVVivK0ocffih4v1x//fWL/E2+mLR9bm2maXuLPCTd\nZv7000/y0EMPad0GeqNaYqaVZjXjrBHstddeeiIhTFvnlvcw7a9JXegwUae21cxoYY2PmrmznPb/\nu+66q6WEx1LCYuG6S5cu2qRh8ODBro9VwmGpEVtLNYau97087777bkspO3rt1vDhwy21UYm1yy67\n6OchT2pUSJvuYm3DMsssY62wwgo6ue+//95SFabDqU5N5/PII4+0lNKqTXvVS0fhsWqTNOuwww6z\n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\nrNSSIn3zzTdagd5yyy2lUaNGgsHxSy65pCQUv2aFAJXprNSkKkfr1q3lmmuukQ8//FDat28v2223\nney1114yadKkDJWSRSGBbBKYM2eOnHfeefL/7N0JvFXT///xT5PMldBkKjJLwhfVT4giQiollEKE\nfIXMw5ev8RuZMg+RCpkqU0mZypAxmYlMGSpk1rT/672+333+59577r3n3DPtc85rPR655+yz99pr\nPfd11/nsvYYtttjCXnjhBXvggQfsxRdf9DfGirPG1AoBBNRuX3vttfbee+/5nmX77befde3a1fc2\nQwcBBApLYMmSJXbmmWfalltuaW+99ZZNnDjRP9hq165dYVWE0qYkQDCdEldh7LzVVlvZk08+aU89\n9ZR99NFHtvXWW9vw4cNN/5OTEEAgWgJBENj48eN9EH3VVVfZeeedZx9++KHvZRKtklIaBBDIloCG\naGlM5fPPP2+LFy+2HXbYwQYPHmwaV01CAIFoCyxfvtxuuukm05ANDbXUU+h3333XDjrooGgXnNJl\nRIBgOiOM0cxk3333tTlz5tjIkSNt9OjR/q73LbfcwrisaF4uSlWCAhpPpW5gRx55pHXp0sU++eQT\nO+uss6x+/folqEGVEUBg991390M71Gbrhri+nF966aWmniskBBCInsDjjz9u2223nQ0bNsz69+/v\nh26cfPLJVq9evegVlhJlRYBgOius0cm0bt26duKJJ/r/uQ8//HDT/+Bt27a1Z555JjqFpCQIlJjA\nV199Zfr/UROTrLbaavbGG2/YHXfcYU2aNCkxCaqLAALlBTRXgm6wffzxx77LqOZM2Hzzze3ee+81\n9WQhIYBA/gX0sErzHnTv3t223XZb++CDD+zqq6+2hg0b5r9wlCCnAgTTOeXO38n0P/c111zju520\nbNnS9tlnHzvwwAN9Y52/UnFmBEpL4Pfff7cLLrjAd+l+9dVX7eGHH7Znn33W3+AqLQlqiwAC1Qno\nRpuGfajHisZSDxw40HbeeWc/p0J1x/I5AghkR2DBggV29NFHm8ZBaznamTNn2oMPPmitWrXKzgnJ\nNfICBNORv0SZLaDubmvN2mnTpplmG9TdNHVN+emnnzJ7InJDAIGYgJ4mjRkzxj9duv766/1EY++/\n/7716NEjtg8vEEAAgUQCTZs2tdtuu81PaKRllTp16uT/dijIJiGAQG4E/vjjD7vooot8Oz59+nQb\nO3asaahWhw4dclMAzhJZAYLpyF6a7BZMXVM006Bm/x43bpwfTz1q1CjTJAokBBDInIDuWmuZq0GD\nBvnuYPoCfPrpp/vlMjJ3FnJCAIFiF9C4zKlTp/qx1Po7ss0229gpp5xiWmqJhAAC2RFYuXKl3X33\n3f57suYgCicJ1ZJ2GpJBQoBguoR/B+rUqWPHHXec70KmL/qnnXaatWnThnUuS/h3gqpnTkA9P/r0\n6WP/93//58dQ6eaVJgBcb731MncSckIAgZITCCcX1c3w++67z09SpmFcS5cuLTkLKoxANgVmzJjh\nl6c85phj/NBI3cTSJKGrrrpqNk9L3gUmQDBdYBcsG8Vt0KCBn8Zf3U61Np7GZumfJlMgIYBAagIa\nQ3XOOeeYlqh7++23Y8Mq9FSJhAACCGRCILwZ/umnn9rxxx/v/+ZoGcxHHnkkE9mTBwIlLaBlZTWv\nUOfOna1Zs2b2zjvv2M0332zrr79+SbtQ+cQCBNOJXUpy66abbuobYk2I9N133/mn1EOHDvVrXpYk\nCJVGIAUBdQXT+pKal0BPoC+//HI/4Z9m+iQhgAAC2RBYa6217LLLLjN9+d9ll12sV69evjfMa6+9\nlo3TkScCRS2waNEi0/dezSf0xRdf2NNPP21PPvmk6UYVCYHKBAimK5Mp4e177LGHX6pHAcFDDz3k\nx4lce+21tmzZshJWoeoIVC7w3HPP+a5gekKkL7PqCqaxjKwzWbkZnyCAQOYENtpoIz//iVYJUFJg\nfcQRR9iXX36ZuZOQEwJFKvD333/biBEj/JAJfe/VU2gNzdLKNyQEqhMgmK5OqEQ/r127tp/6X+tc\nKkA4++yz/Z06LU5PQgCB/wrMmzfPDjnkENtzzz1NM+6qK5jGMWrGXRICCCCQawEtnfXiiy/6pXo0\n0/AWW2zhu4Br+AkJAQQqCkyYMMEPy7rwwgvt5JNP9jfDNUZa34NJCCQjwG9KMkolvE/YhUzjp7ff\nfns/G7Hu1L377rslrELVS13gl19+sTPOOMN3/frwww/97LpPPfWUb5BL3Yb6I4BA/gV69uxpmgdF\nXcDVy2yzzTazW2+91VasWJH/wlECBCIgoJtN7du3t759+/qhEXp4dPHFF9uaa64ZgdJRhEISIJgu\npKuVx7Jusskmprt3uuP9888/W9u2bW3IkCG2cOHCPJaKUyOQWwF9EdUXUn0xveuuu+zqq6/2T6M1\nuy4JAQQQiJLAKqusYsOGDTNNUqZlfDQWVDfFp0yZEqViUhYEciqglTYUQO+2225Wv359e/311+2e\ne+6xDTbYIKfl4GTFI0AwXTzXMic16dixo82ePdtPtDR58mQ/nvqqq65iSY6c6HOSfAo888wztsMO\nO/gvpIcffrjvCnbSSSdZ3bp181kszo0AAghUKbDOOuuY5j157733fJut1Tq6du1qc+fOrfI4PkSg\nmASWLFliZ555pl+1RuOhJ06caJpwt127dsVUTeqSBwGC6TygF/optUj9gAEDTF1iNL7kggsu8N1d\nH3300UKvGuVHoIKAfs+1RIaGN2y88cZ+iIPWdG3UqFGFfdmAAAIIRFWgdevWpnb6+eef96t06Obg\n4MGD7fvvv49qkSkXAmkLLF++3G666Sbfo0wrbvznP//x7fhBBx2Udt5kgIAECKb5PaixwBprrOHH\nl4RLcoQTMWltXRIChS6g4Qynnnqqn3jv888/t2nTptljjz3ml74q9LpRfgQQKF2B3Xff3bR01ujR\no/18Dxq2cumll9qff/5ZuijUvCgFNGnudttt54c79O/f3w950EMgVtooysudt0oRTOeNvnhOvOGG\nG/olOV5++WXfGO+4446mmRC5210817iUaqK72DfeeKO/iz127Fi7/vrrTTeI9t5771JioK4IIFDE\nAuphduSRR/oeZur6esUVV/gbhffee68FQVDENadqpSAwZ84c32Z3797d3xDXJLqa46Rhw4alUH3q\nmGMBgukcgxfz6XbddVdTQK3GWAvdq0uZGmit30dCoBAENDGPJujRE+mBAwf6cdFaGq5OnTqFUHzK\niAACCKQksNpqq9l5553n/9ZpLLX+7ml5rRdeeCGlfNgZgSgILFiwwAYNGuTHQWs5uJkzZ/pl4lq1\nahWF4lGGIhUgmC7SC5uvaulud79+/Uxdv08//XS75JJL/GQPDz74YL6KxHkRqFZAd627detm+jKp\ndVm1pMyIESOsQYMG1R7LDggggEChCzRt2tRuu+0208RMjRs3tk6dOlmPHj18kF3odaP8xS/wxx9/\n2EUXXeR7V8yYMcPUq0xLX3Xo0KH4K08N8y5AMJ33S1CcBdDdbk1MpqBa47P69Onj1/F74403irPC\n1KogBX788Uc/O3ebNm3s22+/9TN7PvLII7bpppsWZH0oNAIIIJCOgMaXTp061Y+l/uSTT2ybbbax\n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\nX3+dgxpyCgTyI0AwnR93zpoBgblz59qECRPs2muvtQULFmQgx9LIIupud911l40ZM6Y0Lga1RAAB\nBIpcQEHcrFmz7JJLLrEpU6YUXG1V5pNPPtnuv//+git7fIHzUY8333zTRo8ebfreQUKgWAUIpov1\nypZAvdq1a2cnnnhiCdQ0s1WMuturr75qzz77bGYrTW4IIIAAAnkRWHPNNe2www6zXXbZJS/nT/ek\nvXr1sn/84x9Wt27ddLPK6/H5qIfOuXDhQttvv/3yWndOjkA2BQr7L0M2Zci7IATCxq1WrVoFUd6o\nFDLKbmussUZUmCgHAggggECGBNTuFGpbXbt2bdO/Qk/5qMe6665b6GyUH4EqBQimq+Thw2wILF++\n3I91VtDUunVrmzRpkmlcTY8ePTJ651rdi1588UX7448/TE9ju3TpUqEhr24fjfOZPHmyDRkyxJ5/\n/nmbOnWqtWjRwo4++mhbbbXVUuL54Ycf7IknnjD93HTTTX2ZWrVq5cdizZs3z3T3XuPJfv31V9/N\nWWObmzVrZn369PHnScYtmX0SFVpjz7/66iv/Uf369e2QQw4x/Zw9e7a9//771qhRIzvooIMSHZpw\n259//umv64EHHujrqzHtzZs3t+7du1udOnXs+++/965q2Hv37m1rr712LB/5PP74436c1YoVK+yB\nBx6wpUuX+s833HBD22qrreyZZ56xlStXWtu2bf2/8GB191dXNl23Dh06WOfOncOP7KeffrL77rvP\nTjjhBHvqqafsnXfesdNOO63gnzbEKsgLBBBAIMMCmWwDKytade2wjlO7qHbkgw8+MLUDas/1M0w1\nbfvC48v//PHHH+2hhx6y+fPn20477WRBEFT4/qBj1BapN5XaSLXVjRs3jmWlsn733XfWqVMn3+Z8\n9NFHvr1TudV+qev7yy+/bLvvvrvtuuuuseP04uOPP7ZXXnnFt1Nqy/T9KEyqq3pvqf3cbbfd/HcI\n5d23b1/bfPPNw938z2TrUeagBG9qWhfVU9+d9P1m55139t2933jjDX8GfRfQddT113eCevXq2aGH\nHup/hkWoypc2PVTiZ94F3B8IEgJpCbg/+IH7RQ7cBCPV5uMCtsAFan5/F2gF+++/f+CCm8AFjYG7\nax24xqvaPOJ3eO+993xed9xxR/zmwE1KFrg/yoELUgP3hzpo06ZNsMceewSLFi2K7VfdPmPHjg1c\n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\ncilAgffee89GjBhhs2bNSqn0ixcvtssvvzylY1LZ+bPPPrNBgwbZ119/ncphGdu3puf/8ssv7eab\nb7ZjjjkmY2UhIwQQQAABBCTwwQcf2FVXXWXTpk3zIL/99ptNmjTJLrroopSAaMMTcy1btsymT59u\nw4YNsyeffDLxTmxFAIEKAgTTFUjYUAoCH3/8sQ+IzzjjDPvqq69SqrKCxeuuuy6lY1LZ+c0337TR\no0fb3LlzUzksY/vW5Pz6UqObEpdccolNmTIlY2UhIwQQQAABBObNm2e33nqrDR8+PHaj+aGHHvI3\nb++7776UgGjDE3PpO8eECRPs2muvtQULFiTeia0IIFBBgGC6AgkbSkFg8803t6FDh6Zc1dtvv930\nRDubqVevXrZw4ULbb7/9snmaSvOuyfnXXHNNO+yww2yXXXapNN+qPhgzZkxVH/MZAggggEAJC2y6\n6aZ23HHHeYG6dev6n0cddZTttNNOKanQhlfO1a5dOzvxxBMr36GKT2jDq8Dho6IXIJgu+ktMBSsT\nqFOnjv+oVq1ale1SZrueZr/11lt2wAEHlNmejTfrrrtuNrJNOs+anl9fcpL1DAvz7LPP2jnnnBO+\n5ScCCCCAAAIVBGrX/u9X1vCndlA7nmybQxtegbTChvBGRbKmyoA2vAIjG0pM4L+390qs0lS3tAR+\n+OEHe+KJJ0w/dXdbd19btWpVBuHHH3+0Bx980H755Rfr3bu3bbLJJmU+11ii8847z+6880678MIL\ny3yW7Jvly5f78UhrrLGGtW7d2o/10vjkHj16lHmiu3LlSnv++edNT3t33nlnn73GT0+ePNmGDBni\nP5s6daq1aNHCjj76aFtttdXKFOGZZ56xV1991Ro1amR9+vSxxo0bl/m8ujeJzq+yq8HUl5jddtvN\nHnvsMfvoo4+sb9++pqf81SV1GVP3b9WjQ4cO1rlzZ3+I8jzooIP8lyF14WvevLl17969uuz4HAEE\nEECgBAReeOEFe+6556x+/fq+7VaVKwv0XnrpJVPb2KZNG+vZs2cZnUy04cowmba4sjZU45Gra/91\nDtpwKZAQKBwBnkwXzrWipDUQ+Pnnn61bt24+QD799NPtkUceMY0Jjk8KtBXcKVjVRCYKtl977bX4\nXeziiy+2U045xdZaa60y25N9owZYge2+++7rJz1TEDxnzhxT16iOHTvaww8/7LN6//33/X577bWX\n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\nDuXRq6yK4zre1K3N/vSNYyg7lk6ft61mP3UsAmMR6M4sNNYd1I4IFBDAXaopxNny1ycYRrZHY18R\nN2aHEl9h8A6V4SYoEQy1EskVjs26ekKRoXphSFMuN6Sb9Ur6UVKm2S7HJB0hTm0lhjT1MXpj+w2O\n+4RnjOeMjKbN8rG9SPN82zGcu1zTGezIkG6jpnMiIAIiUEagTVc/++yzg5UJrcq3l2xW4Pc5to1q\nXsuPF6Gr8/ZX8n0lCcKG7sMEchjSlIXPPAZw3j6xzLGQ0KVn8/LN79ybLb9KZWgcM5ZOpz/ztFXa\nf5UTgXkJyJiel5jKj0aAlVtmTIkham5PxU0wWs0lt/d+y/ghpZ9IxCr1dmiBF0v6UVKmrYs//PCD\n75fJigAxx19++WVbMZ0TAREQARGYGIEhXT2kp8GVG1iLwrdS/beo/qhdERCBaRCQMT2N93zFPeWn\nn35aWUyxuxuRJOOpp566ZNba4m8r/i6nkJSERFYICTdwcSJx2EpniFf6LCX9KCnTdX9cytieBKOa\n/TPXmhu7RAREQAREYNoESnT19u3bLzuk1ei/y955dUAEROCqJqCY6av69V29nSdmhjicEOKjcNG9\n0oRMmTHbHX1jNRy3p2VKST9KyvT1GS8BXMuaMct9dXRNBERABETg30tAuvrf+271ZCIgAuMQkDE9\nDke1IgIiIAIiIAIiIAIiIAIiIAIiMCEC2md6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BU\nKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIg\nAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIg\nAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIg\nAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIg\nAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIg\nAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIg\nAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOgf8CeclNuczvB9AAAAAASUVORK5CYII=\n" - } - ], - "prompt_number": 35 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That diagram is not a real system. Does this script really work ?\n", + "Draw all the loops in the IDF file.\n", "\n", - "Try it yourself. Draw the daigram for \"../resources/idffiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlow.idf\"" - ] - }, - { - "cell_type": "heading", - "level": 3, - "metadata": {}, - "source": [ - "Names in loopdiagrams" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- [Designbuilder](http://www.designbuilder.co.uk) is an energyplus editor autogenerates object names like \"MyHouse:SAPZone1\"\n", - "- Note the \":\" in the name.\n", - "- Unfortunatley \":\" is a reserved character when making a loop diagrams. (eppy uses pydot and grapphviz which has this constraint)\n", - "- to work around this, loopdiagram will replace all \":\" with a \"__\"\n", - "- So the names in the diagram will not match the names in your file, but you can make out what is going on" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "eppyreadtest_folder.py" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Not yet documented" + "There are two output files saved in the same location as the idf file:\n", + "- idf_file_location/idf_filename.dot\n", + "- idf_file_location/idf_filename.png\n", + "\n", + "positional arguments:\n", + " idd location of idd file = ./somewhere/eplusv8-0-1.idd\n", + " file location of idf file = ./somewhere/f1.idf\n", + "\n", + "optional arguments:\n", + " -h, --help show this help message and exit\n" ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "eppyreadtest_file.py" + } + ], + "source": [ + "%%bash\n", + "# ignore the line above. It simply lets me run a command line from ipython notebook\n", + "python loopdiagram.py --help" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pretty straightforward. Simply open png file and you will see the loop diagram. (ignore the dot file for now. it will be documented later)\n", + "\n", + "So let us try this out with and simple example file. We have a very simple plant loop in \"../resources/idffiles/V_7_2/plantloop.idf\"" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Couldn't import dot_parser, loading of dot files will not be possible.\n", + "constructing the loops\n", + "cleaning edges\n", + "making the diagram\n", + "saved file: ../resources/idffiles/V_7_2/plantloop.dot\n", + "saved file: ../resources/idffiles/V_7_2/plantloop.png\n" ] - }, + } + ], + "source": [ + "%%bash\n", + "# ignore the line above. It simply lets me run a command line from ipython notebook\n", + "python loopdiagram.py ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/plantloop.idf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The script prints out it's progress. On larger files, this might take a few seconds. If we open this file, it will look like the diagram below\n", + "\n", + "*Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity*" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAP7CAYAAABY8t0eAABAAElEQVR4AezdB5wURdrH8YdoDohKMqGYUDFnFMR0ZlFQTKgoKirm7KkX9NQze+YcwJxQMYsBUIyIqJgQTBhAFLME+61/3dtzM8PMTs9uT2/vzK8+H9yZnu4K31635umurmoWuGQkBBBAAAEEEEAAAQQQQAABBBCILNA88p7siAACCCCAAAIIIIAAAggggAACXoBgml8EBBBAAAEEEEAAAQQQQAABBMoUIJguE4zdEUAAAQQQQAABBBBAAAEEECCY5ncAAQQQQAABBBBAAAEEEEAAgTIFCKbLBGN3BBBAAAEEEEAAAQQQQAABBAim+R1AAAEEEEAAAQQQQAABBBBAoEwBgukywdgdAQQQQAABBBBAAAEEEEAAAYJpfgcQQAABBBBAAAEEEEAAAQQQKFOAYLpMMHZHAAEEEEAAAQQQQAABBBBAgGCa3wEEEEAAAQQQQAABBBBAAAEEyhQgmC4TjN0RQAABBBBAAAEEEEAAAQQQIJjmdwABBBBAAAEEEEAAAQQQQACBMgUIpssEY3cEEEAAAQQQQAABBBBAAAEECKb5HUAAAQQQQAABBBBAAAEEEECgTAGC6TLB2B0BBBBAAAEEEEAAAQQQQAABgml+BxBAAAEEEEAAAQQQQAABBBAoU4BgukwwdkcAAQQQQAABBBBAAAEEEECAYJrfAQQQQAABBBBAAAEEEEAAAQTKFCCYLhOM3RFAAAEEEEAAAQQQQAABBBAgmOZ3AAEEEEAAAQQQQAABBBBAAIEyBQimywRjdwQQQAABBBBAAAEEEEAAAQQIpvkdQAABBBBAAAEEEEAAAQQQQKBMAYLpMsHYHQEEEEAAAQQQQAABBBBAAAGCaX4HEEAAAQQQQAABBBBAAAEEEChToGWZ+7M7Ak1GYNasWfbiiy/ao48+altvvbVtv/32qar7zJkz7fbbb7fx48fb0ksvbd27d7c2bdrYd999ZxtvvHHidY3T6/vvv7cnnnhirjaojWprqRRnXUqVxecIIIAAAo0nkMa/98X6sEUWWcTatWtnK664oi288MKNhxZzyRMmTLDhw4fbmmuu6b8v5WdfzIM+PV+K97UowJ3pWjzrNdJmBan33HOPXXrppTZlypRUtfrXX3+1DTbYwO69917baaedrG3btnbqqafayiuvbC+//HKj1DVOL10U6NWrl1133XW299572z/+8Q/bdNNNbamllorUtjjrEqlAdkIAAQQQaBSBNP69X3TRRa1r1652xhln+D7sjjvuMAX9Y8eOtcsuu8yWWWYZ22677WzMmDGNYhZnoRMnTrRrr73WTjzxRPviiy8KZk2fXpCFjQh4AYJpfhGqVmCdddaxI444IpXtU2esLxA33HCDbbnllnbAAQfYiBEjbODAgY0W+Mftpav3O++8s/ffZptt/JePZs2aRTofDanL1KlTC94Vj1QwOyGAAAIIJCrQkL/3laqo+irdpe3Zs6cvYr/99rP+/fvb6aefbrfddpu99957tsACC/iLxg8++GClqpFIviussIIdeuihvqyWLYsPWKVPT+R0UEgTFCCYboInjSpHFwg7hqhBXPScG7bnW2+9ZX/++af9+OOPORmdd955fph3zsYE38TtpSFxSuHPcppSn7rMmTPH30WYPHlyOUWxLwIIIIBAIwrU5+99EtUtNpS7Y8eONnToUD+arE+fPnbnnXcmUZ2KldG8+X/DgfBnsYLCvjz8WWy/Qtvrc47p0wtJsi1tAsUvQaWtptSnZgRmz55tzz77rL/qq+eShg0bZp988on17t3bNtxww1gcfvrpJ3vsscdMzwnpGV7dOS30LO+bb75pI0eONA3L1tVz7ZcdmGtI1MMPP2yDBg2yF154wZ588knr1KmTHXTQQTbffPMVravy0RD0/fff33RVOxz+vNhii9lxxx3nj3vkkUdMw68WXHBBO/jgg0111hVxDTXr0KGD7bnnnn6/qF71qaue31Y9lNTubt262dprr22//PKLPfTQQ74uW2yxhS277LJ+nyj/UX2fe+45U6etZ8OV/wcffGD9+vWzlVZaqWQWGrKv57HVHg0d1519pT/++MP22Wcfe+aZZ2zJJZf09dWdcVmREEAAAQTiFahPn1JuDeLoq6P2keXWbZ555vGPMumRrZtuusn22muvTBbF+qlwB333+Prrr61Hjx72+OOP+z6wb9++/nuILrSPHj3aP/K1+eab20YbbRQe5n9++OGHfnj522+/7ftAfTcK0+eff24PPPCADR482N891/cnDUlX35gfKGtOmeeff97UDn2/Ucr+fhPmWepnQ/t05a9++5VXXvHzxui7jR59o08vJc/nqREISAikSMB1BMFuu+0W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EEzH60luCCCAAAIIIIAAAggggAACNSBAMF0DJ5kmIoAAAggggAACCCCAAAIIxCtAMB2vJ7khgAACCCCAAAIIIIAAAgjUgADBdA2cZJpYfQJt27a1YcOGVV/DaBECCCCAAAJVLED/XcUnl6bVpADBdE2edhrd1AWmT59uM2fObOrNoP4IIIAAAgjUlAD9d02dbhpbAwIE0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAIIIIAAAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUgQDBdAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAACCCCAAAIIIIAAAgggEK8AwXS8nuSGAAIIIIAAAggggAACCCBQAwIE0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAIIIIAAAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUgQDBdAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAACCCCAAAIIIIAAAgggEK8AwXS8nuSGAAIIIIAAAggggAACCCBQAwIE0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAIIIIAAAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUgQDBdAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAACCCCAAAIIIIAAAgggEK8AwXS8nuSGAAIIIIAAAggggAACCCBQAwIE0zVwkmkiAggggAACCCCAAAIIIIBAvAIE0/F6khsCCCCAAAIIIIAAAggggEANCBBM18BJpokIIIAAAggggAACCCCAAALxChBMx+tJbggggAACCCCAAAIIIIAAAjUgQDBdAyeZJiKAAAIIIIAAAggggAACCMQrQDAdrye5IYAAAggggAACCCCAAAII1IAAwXQNnGSaiAACCCCAAAIIIIAAAgggEK9Ay3izIzcEEIhb4NVXX7URI0bMle1DDz1kEydOzGzv2LGj9e/fP/OeFwgggAACCCDQeAL0341nT8kIJCXQLHApqcIoBwEEyhcYPHiwXXHFFda6devMwfrftlmzZpn3s2fPtjZt2ti0adMy23iBAAIIIIAAAo0nQP/dePaUjEBSAgzzTkqachCop0CfPn38kTNnzrTw36xZszKvta1FixbWr1+/epbAYQgggAACCCAQtwD9d9yi5IdA+gS4M52+c0KNEMgR0F3odu3a2dSpU3O2578ZNWqUbbrppvmbeY8AAggggAACjSBA/90I6BSJQMIC3JlOGJziEChXQMO59Sx0q1atih7aoUMH22STTYp+zgcIIIAAAgggkKwA/Xey3pSGQGMIEEw3hjplIlCmwN57720a2l0oKcjef//9c56hLrQf2xBAAAEEEEAgWQH672S9KQ2BpAUY5p20OOUhUE+Bzp072+TJkwsePW7cOOvWrVvBz9iIAAIIIIAAAo0nQP/dePaUjEClBbgzXWlh8kcgJoEDDjjAWracezW7Ll26EEjHZEw2CCCAAAIIxC1A/x23KPkhkB4Bgun0nAtqgkCdAnvttZdpCazspOBanTQJAQQQQAABBNIpQP+dzvNCrRCIQ4Bh3nEokgcCCQloKPf48eNzSps4caItv/zyOdt4gwACCCCAAALpEaD/Ts+5oCYIxCnAnek4NckLgQoLZA8V0yyh66yzDoF0hc3JHgEEEEAAgYYK0H83VJDjEUinAMF0Os8LtUKgoMCee+5pc+bM8Z81b97cz+JdcEc2IoAAAggggEBqBOi/U3MqqAgCsQowzDtWTjJDoPIC3bt3t9GjR/ulsKZMmWLt27evfKGUgAACCCCAAAINEqD/bhAfByOQSgHuTKfytFApBIoL9O/f33/Yo0cPAuniTHyCAAIIIIBAqgTov1N1OqgMArEIcGc6FkYyqTYBDaXW801DhgyptqY1Sns06/h7771nK664YqOUT6EIIIAAAtUv8Nxzz9muu+5qP/74Y/U3NuEW7rTTTvbwww8nXCrFIZB+gbkXrU1/nakhAhUVUCC933772UMPPWRXX321tW3btqLl1Sfz6dOnW5s2bfxQ7/ocn9Qx77zzjp177rk2a9Ys++677wimk4KnHAQQQKDGBBRI77jjjrb99tvbHnvskdrWN5X+W4B//vmnXX755TZmzBibNGlSak2pGAKNKUAw3Zj6lJ06gexA+tFHH7VevXqlro5NpUIjRoywCy64wH+xGTZsWFOpNvVEAAEEEGhiAmEgrbunQ4cOtRYtWjSxFqSvuvo+tM8++9hbb71lvXv3tq+++ip9laRGCKRAgGemU3ASqEI6BAik4zsPCqR1h0DD7S677LL4MiYnBBBAAAEEsgQIpLMwYnoZBtKPPPKI6cbCUkstFVPOZINA9QkQTFffOaVF9RAgkK4HWpFDsgPp22+/nTsERZzYjAACCCDQMAEC6Yb5FTo6P5DeYostCu3GNgQQ+H8Bhnnzq4CAE+jXr589+OCDpmUrrrnmGv8PmPIFZs6caQqmdUeaQLp8P45AAAEEEIgm8MYbb9g222xjHTp0MAWAe+21V7QD2atOge+//95eeuklf0eaQLpOKj5EwAtwZ5pfBAScwMiRI23VVVe1JZdcEo8GCEyePNlatWpFIN0AQw5FAAEEECgtMGrUKN/fbLjhhqmfjLN0a9Kzx8svv2yDBg0yAun0nBNqkm4B7kyn+/xQu4QEFAAOGDDAjj322IRKrM5iLrnkErv44osZ2l2dp5dWIYAAAqkS0KoW9957b6rq1NQr06lTJ1t66aWbejOoPwKJCXBnOjFqCkIAAQQQQAABBBBAAAEEEKgWAYLpajmTtAMBBBBAAAEEEEAAAQQQQCAxAYLpxKgpCAEEEEAAAQQQQAABBBBAoFoECKar5UzSDgQQQAABBBBAAAEEEEAAgcQECKYTo6YgBBBAAAEEEEAAAQQQQACBahEgmK6WM0k7EEAAAQQQQAABBBBAAAEEEhMgmE6MmoIQQAABBBBAAAEEEEAAAQSqRYBgulrOJO1AAAEEEEAAAQQQQAABBBBITIBgOjFqCkIAAQQQQAABBBBAAAEEEKgWAYLpajmTtAMBBBBAAAEEEEAAAQQQQCAxAYLpxKgpCAEEEEAAAQQQQAABBBBAoFoECKar5UzSDgQQQAABBBBAAAEEEEAAgcQECKYTo6agWhD4+eefbdiwYfb3v/89UnMnTZpkV199td1yyy327bffRjqmvjtdfPHFdtVVV9X3cI5DAAEEEECgqgQmTJhgF154oT399NO+XfThVXV6aQwCiQgQTCfCTCG1InDffffZwQcfbHfeeWfJJp9//vk2YMAA23LLLa1Lly7Ws2dPGzlyZMnj6rvDTTfdZLfddlt9D+c4BBBAAAEEqkZg4sSJdu2119qJJ55oX3zxhW8XfXjVnF4agkBiAgTTiVFTUC0IHHDAAbbeeuuVbOoTTzxhp512mulu8UorrWTdu3e34447znr37p3p1EtmUuYOr7zyij333HNlHsXuCCCAAAIIVJ/ACiusYIceeqhvWMuWLf1P+vDqO8+0CIFKCxBMV1qY/GtOoEWLFtasWbM6233eeefZ2muv7f+FO+67776mIWY33nhjuCnWnwsssIDNN998seZJZggggAACCDRVgebN//s1OPypdtCHN9WzSb0RaBwBgunGcafUJi6g55tvvvlm01BtDQv75JNPCrbopZdesrPOOsvuv//+zOfTpk3zw7nXWGONzDa9mHfeeU1Xyu+5556c7aXeaHianoUOgsCef/55O/XUU+2KK66w3377LedQ1VlDvcM0e/Zse/LJJ23UqFH2zTff2HXXXWennHKK6Q52fpoyZYo/9h//+Ic9++yz+R/zHgEEEEAAgSYh8OKLL5r6MvXfn332ma9zsQvg9OFN4pRSSQQaVeC/41oatQoUjkDTEvjhhx9s++2394Gr7vTut99+vgHLL798piF//PGH7bTTTj7AVaCtjlt3nm+//XYfeP/555/WoUOHzP7hiyWXXNLUeSswLta5h/vq59ChQ23w4MH2+++/2/jx423mzJn29ddfm+58qywFyrrirtdHHXWUzT///P45bQXgRx99tD3wwAO2884725w5c2zZZZe1Bx980C666CK76667bPfdd/dFaWi4ngEfNGiQLbTQQrbrrrta//797corr8yuCq8RQAABBBBItcDpp5/uJ/u89NJLTRe21S8r5fe39OGpPo1UDoF0Cbgv7SQEal5gqaWWCtzzy5Ec/vOf/wQ9evTI7OuC5eCOO+7IvN9hhx2C1q1bB++//77f5gLnYJdddgnc//nBY489Fjz88MP+tQuwM8eEL1yQ7j+bOnVquKnkT/dlIHBfBIJ33nkns+8ZZ5zh87nmmmsy23bbbbegXbt2mfcff/yx36dv376ZbS4QD5ZYYolAHrNmzQp++umnwF0kCNzw88w+Bx10kD/u5ZdfzmwLX8hQx2anzz//vOj+2fvxGgEEEEAAgagCLiAOOnbsGHV33/+6IdzBjBkzMsfceuutvn+iD8+QeFPZZid38T3YZJNNsjfxGgEE/l+AYd7purZB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BBBAAIEaEmCYdw2dbJqKAAIIIIAAAggggAACCCAQjwDBdDyO5IIAAggggAACCCCAAAIIIFBDAgTTNXSyaSoCCCCAAAIIIIAAAggggEA8AgTT8TiSCwIIIIAAAggggAACCCCAQA0JEEzX0MmmqQgggAACCCCAAAIIIIAAAvEIEEzH40guCCCAAAIIIIAAAggggAACNSRAMF1DJ5umIoAAAggggAACCCCAAAIIxCNAMB2PI7kggAACCCCAAAIIIIAAAgjUkADBdA2dbJqKAAIIIIAAAggggAACCCAQjwDBdDyO5IIAAggggAACCCCAAAIIIFBDAgTTNXSyaSoCCCCAAAIIIIAAAggggEA8AgTT8TiSCwIIIIAAAggggAACCCCAQA0JEEzX0MmmqQgggAACCCCAAAIIIIAAAvEIEEzH40guCCCAAAIIIIAAAggggAACNSRAMF1DJ5umIoAAAggggAACCCCAAAIIxCNAMB2PI7kggAACCCCAAAIIIIAAAgjUkADBdA2dbJqKAAIIIIAAAggggAACCCAQjwDBdDyO5JJygZ9//tmGDRtmf//73yPVdNKkSXb11VfbLbfcYt9++22kY+q708UXX2xXXXVVfQ9P9XGfffaZdzz44INTXU8qhwACCCCQHgH12Y888oidfPLJvlL04Y1zbujDG8edUpuWAMF00zpf1LaeAvfdd58poLvzzjtL5nD++efbgAEDbMstt7QuXbpYz549beTIkSWPq+8ON910k9122231PTy1x+nLz+jRo+3ss8+2J554IrX1pGIIIIAAAukSUJ9x1FFH2V133eUrRh+e/PmhD0/enBKbpgDBdNM8b9S6TIEDDjjA1ltvvZJHqQM/7bTTTHeLV1ppJevevbsdd9xx1rt3b/viiy9KHl+fHV555RV77rnn6nNo6o7Jviiw4IIL2l577WUbbrhhveqZnVe9MuAgBBBAAIEmKdCnTx/bYIMNrGXLlr7+9OHJnMbsfpc+PBlzSmn6AgTTTf8c0oKIAi1atLBmzZrVufd5551na6+9tv8X7rjvvvuartDeeOON4aZYfy6wwAI233zzxZpnY2SmCwK6EJGf9GWolHv+McXyyt+P9wgggAAC1SnQvHlz078w0YeHEpX5WazfpQ+vjDe5Vo/Afy/5VU97aEmNCwRBYC+88IK99dZbpo53lVVWsa233noulZdeesmefPJJ69atm+2+++7+82nTpvnh3P3798/Zf95557UVVljB7rnnHjvrrLNyPqvrje5kP/zwwzZo0CBfJ5XXqVMnO+igg3KCZz2T/eijj/qh5cpv9uzZ9uyzz5qC7BVXXNE/6/3JJ5/4u+P5d3mnTJnih1CrrE033dQPTa+rTsU+e/PNN33bf/31V1tnnXVsm222yQTAem5t4sSJpqvUGir/008/+WHps2bNsg4dOtiee+7p76zvsssu/phrr73WOnbsaDvttFOx4vz2Z555xnRXvk2bNj6Ptm3b+u3q0MvNq86C+BABBBBAIPUC06dPNw3nnjx5sh9Jpv682IVY+vDc00kfnuvBOwQSFXB/rEgIVI2AuzMaXH/99b49r732WuCGiWXatsMOOwSdO3cOdtxxx0CvV1111cD9zxa4O89+HxfY+fennnpq5pjwhXtuOmjdunXw559/hpvq/DlkyJDABYmBu+McHHbYYYF7BjvYfvvtff6q08yZMwMXNAc333xzsNBCCwXt2rXz+X3++efBbrvt5vfbeeedfT0PP/zwwAWtgbs6HLgvGplyR4wYEQwcODBwnWjgAv3ABbuB9i03HXvsscEee+wRuIDZ5+UuMARqr7u4kMlqtdVWC5ZaaqnM+x9//DFYeOGFg4033thvGzt2bOCC+WCJJZYIXDAc6H2Y+vbtm3PsH3/8EbigPHDPrwfuokfghvMFiy++ePDuu++WzCvMk58IIIAAAtUj8P777wfrr79+4ILkwF2oDdxF2WCeeeYJ3ONWmUbSh2cocl7Qh+dw8AaBxAUs8RIpEIEKCSjQVVCmYC5MbvKr8KUPTBUQq9NW0v7uDqgPXB977LHA3UX2r//xj39kjglfhIHw1KlTw00lfypId1fVg3feeSez7xlnnOHLuOaaazLbFDyHwbQ2fvzxx34fBaFh+vrrr32gqoBWXzTc3eFg+eWXD9zw83CXwN3x9se9/PLLmW2lXtx6660+KP7hhx8yu37wwQc+n/Aigz5QwJsdTGubu4OdCab1ftdddw2WXnppvcxJ+cH0hRdeGLg7/Jl9dAFBFzW23XbbzLZieWV24AUCCCCAQNUIuFFXwYknnphpj/pn9XH5wTR9eIbIv6APz/XgHQKNIfC/h1ESvR9OYQjEL6DhYCuvvLIfMqxlsJROOOGEnILcHVa/jzZqfw3BVho+fLgfxqzXhYaVzZkzx9xVcj8kWftESRqmrWeNVGaYTjnlFL/txRdfDDf5fDNv3Asdp7TWWmv5n/qPC7bN3YX2k6BNcst2aVby3377zU466SQ74ogj/D8XcPvh6C4YzxxX6sWll17qh8IvssgimV018Zq7g2/u7rq5O9CZ7VFeFLLLP06Tu7k715l6n3vuuf6caIhfdoqSV/b+vEYAAQQQaHoCbpSVf+Rniy22yFRef//dneq5+mP68AyRf0EfnuvBOwQaQ4BnphtDnTIrJnDFFVeYuxNq7s6mf3546NChPhAtVuBGG23kJzjRs8furqrf7Zdffplrdz0nrCBTz2E3JM0///zm7vCau8NddjYqX0nHuiHR/nnlK6+8sux8wgPc1TubMGGCbbLJJuGmzM/NNtvMFLS7u/h+RtXMByVelAqA3R1wk7WevS71THWpvEpUhY8RQAABBJqAwLhx43wtV1999ZzaRukD6MPpw3N+aXiDQCMIcGe6EdApsnICupuriTjcs8P2/PPP+8m08u94Zpfunvv1d6TdcDIfTOuusBt2nL2Lf63Jybp27TrX9nI3uOeFTXeQVV656dNPP/WH6FgF9W44tmkSsPomfVHR5F/u2XLTnffspInPlPR5OanUl59wZtbx48eXzLZUXiUzYAcEEEAAgdQLhCOgNCFlfirVD9CH04fn/87wHoGkBQimkxanvIoJKFC9/fbbzU3oZbpjq6HbX331lT3wwANFy9RwY3Xk2223nR9urZm2x4wZY+55rcwx+vyjjz4yN0lXZlt9X7jnme333383Nwla2VloKNy6665r7du3tzXXXNN0B909e52Tj+78XnXVVTnb6nqj2cF1110O2UkXJJZccslM0K/h6qp3XUlfevKD8vz99cVHQ8ivvvpqP0w9+3MNK//ss8/8pih5ZR/LawQQQACBpimwxhpr+Iqrjys30YfTh5f7O8P+CMQtQDAdtyj5NZqAhi0ruNRPJS3v5CYk8//CSmm96OxA+d577/XPWG+55ZZ+l+OOO86+//57u//++8ND7O677/bDxt1EYZltUV9omSsNpQ6T8u3Ro0dOMK2LADNmzPBLYoX76Wf23dsvv/zS30E+//zz/S5ajkrD0vVM+AUXXODL0NJdhxxyiO23337Z2dT5Wutq61lwXYQIk3wU9OuzcFi7LHV33s0+7oN4/fzuu+9MS3bJS0nLZOmuu7ZpKa1wuLzaptfheXGTzPhnv3v16uVHD+jLkJuQzBsss8wydeblP+Q/CCCAAAJVI+BWrvBzd6gfCucT0eNAWuZSyz6+/fbbmf6RPjz3tNOH53rwDoFGEXBfcEkIVIWAm5DLLyHVr1+/wAXJgQsygzPPPDPTtqeeeipYe+21g6222ir429/+Fhx66KHBX//6Vz87dmYn90Kzb7uANzj55JMDN1lWcMwxxwTuDnf2LpFeK38XjAZHHnmkn6VU9XLPCQfuTrc/3q3pHFx++eWBW1/Zz2btJhMLvvnmG1+W+2Pg66AZurVUl7sjHbhAPKfc9957z890qn31zz1v5pe2ytkpwpuRI0cGyy23nG+nm7gtcOtsB+7Ofs6Rmj3cPZvmy9GSYu5uv1/CSzNwh0uRaRZ1Ld+16KKL+nbpfFxyySV+eTDVT+dC7dMsrWqT9tV2/XQTswXurnamzPy8Mh/wAgEEEECg6gTcHB1+aSz1CZrFe++99/b9Zffu3QM3kilQf0IfXvi004cXdmErAkkJNFNB7o8XCYGqENCdYN1Z1R3S8C5nfsM0C7busoYTjuV/Hr7XPprlulWrVuGmsn669aXtpptuMremtH8OW3lpmHOppLrrLu8555xjLpA3F4CaC3bnmtU0zEfPUmtYdLH2hvvV9VN/Bj788EM/5FtD7nS3ulDS5GduLWn/kYZ9zzvvvDm76S60novWUPtSSedBd7E17FsTs+WncvLKP5b3CCCAAAJNT0B9jPoDzV+iu9ALLrjgXI2gD5+LxI/8og+f24UtCCQhwGzeSShTRmICerZXqa7Acr755isZSCsPDRHPT3oOW//qSp06dbLTTz89Z5dSgXvOzllv9KVCwWZdadlll53rY03AVippSHi4/JaCcS0rViqFgbT2yw+ktS17iS29ryvpPGQvG5a/bzl55R/LewQQQACBpieQ3ccUCqTVoob04To+av+ofcNEHx5K/O8nffj/LHhV2wIE07V9/ml9mQIKbLPXwix0eBgEumHc/jmvYlfXCx2rbTpOSZOJ1TeVqqPyzf7SUt9yOA4BBBBAAIGmJBC1f6QPb0pnlboi0HgCBNONZ0/JTVBAy2NFWSJL61u757v80Cv37LUNHDgwcxe4rmZPnjzZT8alfTRZmXs+2fbZZx9r3bp1XYfN9ZnW2iYhgAACCCCAQK5AlP6RPjzXjHcIIFBcgGemi9vwCQL1FtDzvtnTEegZZA2JKpX0fHV4ZzrcV3e6NQybhAACCCCAAAKVF6APr7wxJSBQLQIE09VyJmkHAggggAACCCCAAAIIIIBAYgKsM50YNQUhgAACCCCAAAIIIIAAAghUiwDBdLWcSdqBAAIIIIAAAggggAACCCCQmADBdGLUFIQAAggggAACCCCAAAIIIFAtAgTT1XImaQcCCCCAAAIIIIAAAggggEBiAgTTiVFTEAIIIIAAAggggAACCCCAQLUIEExXy5mknHIO7wAAQABJREFUHQgggAACCCCAAAIIIIAAAokJEEwnRk1BCCCAAAIIIIAAAggggAAC1SJAMF0tZ5J2IIAAAggggAACCCCAAAIIJCZAMJ0YNQUhgAACCCCAAAIIIIAAAghUiwDBdLWcSdqBAAIIIIAAAggggAACCCCQmADBdGLUFIRAfAJt27a1YcOGxZchOSGAAAIIIIBAxQXovytOTAEIJCpAMJ0oN4UhEI/A9OnTbebMmfFkRi4IIIAAAgggkIgA/XcizBSCQGICBNOJUVMQAggggAACCCCAAAIIIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAwXS1nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggggAACCCCAAAIIIJCYAMF0YtQUhAACCCCAAAIIIIAAAgggUC0CBNPVciZpBwIIIIAAAggggAACCCCAQGICBNOJUVMQAggggAACCCCAAAIIIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAwXS1nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggggAACCCCAAAIIIJCYAMF0YtQUhAACCCCAAAIIIIAAAgggUC0CBNPVciZpBwIIIIAAAggggAACCCCAQGICBNOJUVMQAggggAACCCCAAAIIIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAwXS1nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggggAACCCCAAAIIIJCYAMF0YtQUhAACCCCAAAIIIIAAAgggUC0CBNPVciZpBwIIIIAAAggggAACCCCAQGICBNOJUVMQAggggAACCCCAAAIIIIBAtQgQTFfLmaQdCCCAAAIIIIAAAggggAACiQkQTCdGTUEIIIAAAggggAACCCCAAALVIkAwXS1nknYggAACCCCAAAIIIIAAAggkJkAwnRg1BSGAAAIIIIAAAggggAACCFSLAMF0tZxJ2oEAAggggAACCCCAAAIIIJCYAMF0YtQUhAACCCCAAAIIIIAAAgggUC0CLaulIbQDgWoVePXVV23EiBFzNe+hhx6yiRMnZrZ37NjR+vfvn3nPCwQQQAABBBBoPAH678azp2QEkhJoFriUVGGUgwAC5QsMHjzYrrjiCmvdunXmYP1v26xZs8z72bNnW5s2bWzatGmZbbxAAAEEEEAAgcYToP9uPHtKRiApAYZ5JyVNOQjUU6BPnz7+yJkzZ1r4b9asWZnX2taiRQvr169fPUvgMAQQQAABBBCIW4D+O25R8kMgfQLcmU7fOaFGCOQI6C50u3btbOrUqTnb89+MGjXKNt100/zNvEcAAQQQQACBRhCg/24EdIpEIGEB7kwnDE5xCJQroOHceha6VatWRQ/t0KGDbbLJJkU/5wMEEEAAAQQQSFaA/jtZb0pDoDEECKYbQ50yEShTYO+99zYN7S6UFGTvv//+Oc9QF9qPbQgggAACCCCQrAD9d7LelIZA0gIM805anPIQqKdA586dbfLkyQWPHjdunHXr1q3gZ2xEAAEEEEAAgcYToP9uPHtKRqDSAtyZrrQw+SMQk8ABBxxgLVvOvZpdly5dCKRjMiYbBBBAAAEE4hag/45blPwQSI8AwXR6zgU1QaBOgb322su0BFZ2UnCtTpqEAAIIIIAAAukUoP9O53mhVgjEIcAw7zgUyQOBhAQ0lHv8+PE5pU2cONGWX375nG28QQABBBBAAIH0CNB/p+dcUBME4hTgznScmuSFQIUFsoeKaZbQddZZh0C6wuZkjwACCCCAQEMF6L8bKsjxCKRTgGA6neeFWiFQUGDPPfe0OXPm+M+aN2/uZ/EuuCMbEUAAAQQQQCA1AvTfqTkVVASBWAUY5h0rJ5khUHmB7t272+jRo/1SWFOmTLH27dtXvlBKQAABBBBAAIEGCdB/N4iPgxFIpQB3plN5WqgUAsUF+vfv7z/s0aMHgXRxJj5BAAEEEEAgVQL036k6HVQGgVgEuDMdCyOZjBgxwnbddVf76aefwECgJgS23357Gz58eE20lUYigEB1CLz44ou2884724wZM6qjQbQCgZgEevfubQ888EBMuZFNLQnMvWhtLbWetsYioEB6p512sh122MH69u0bS55kUrfA9OnTrU2bNn6od9178mmcAn/++addfvnlNmbMGPv000/jzJq8EEAAgYoKKJDWRcBtttnGtFQTqXEE6L8bx71QqZqD5rLLLrPXXnvNJk2aVGgXtiFQUoBguiQRO9QlEAbSu+yyi91+++3WokWLunbnMwSarIA63f3228/eeust0xVsPa9OQgABBJqCQBhIb7fddnbnnXday5Z8/WsK5406Vk5g9uzZ/qKSlhvVaI3vvvuucoWRc1UL8Mx0VZ/eyjaOQLqyvuSeHoEwkB42bJg98sgjtswyy6SnctQEAQQQqEOAQLoOHD6qSYEwkH788cftscces06dOtWkA42OR4BgOh7HmsuFQLrmTnnNNjg/kO7Vq1fNWtBwBBBoWgIE0k3rfFHbygvkB9Kbb7555QulhKoWYJxPVZ/eyjROz5Zsu+221qFDB5s1axbPXlWGmVxTIvD999/bSy+95O9IE0in5KRQDQQQKCkwduxY22qrraxdu3YWBIHtvffeJY9hBwSqXUB9+ssvv+zvSBNIV/vZTqZ93JlOxrmqShk1apS1bt3aNtxwQybAqqozS2MKCWiyscMOO8wIpAvpsA0BBNIqMHr0aD+Pifrq5s35upfW80S9khXQxfEjjjjCCKSTda/m0rgzXc1nt4JtW2yxxezee++tYAlkjUA6BJZeemlbaqml0lEZaoEAAgiUIbDwwgvbfffdV8YR7IpAdQu0b9/e1K+TEIhLgEuVcUmSDwIIIIAAAggggAACCCCAQM0IEEzXzKmmoQgggAACCCCAAAIIIIAAAnEJEEzHJUk+CCCAAAIIIIAAAggggAACNSNAMF0zp5qGIoAAAggggAACCCCAAAIIxCVAMB2XJPkggAACCCCAAAIIIIAAAgjUjADBdM2cahqKAAIIIIAAAggggAACCCAQlwDBdFyS5IMAAggggAACCCCAAAIIIFAzAgTTNXOqaSgCCCCAAAIIIIAAAggggEBcAgTTcUmSDwIIIIAAAggggAACCCCAQM0IEEzXzKmmoQgggAACCCCAAAIIIIAAAnEJEEzHJUk+CCCAAAIIIIAAAggggAACNSNAMF0zp5qGIoAAAggggAACCCCAAAIIxCVAMB2XJPlUXGDWrFn27LPP2rHHHmuPPfZYxcurlgLS7lZX/S6++GK76qqrquVU0A4EEECgJgQ+++wzu/rqq+3ggw9ucu39+eef7ZFHHrGTTz65ydU9u8ITJkywCy+80J5++unszRV/XaxP/+STT2zAgAH2xRdfVLwOFIBAkgIE00lqU1aDBMaPH2/33HOPXXrppTZlypQG5VVLB6fdra763XTTTXbbbbfV0umirQgggECTFlAwOnr0aDv77LPtiSeeaHJtUZ2POuoou+uuu5pc3cMKT5w40a699lo78cQTEw9ei/Xpb775pt18882mz0kIVJMAwXQ1nc0qb8s666xjRxxxRJW3Mv7mpd2trvq98sor9txzz+WgTJ06teAXNILuHCbeIIAAAo0isOCCC9pee+1lG264YaOU39BC+/TpYxtssIG1bNmyoVk12vErrLCCHXroob78pNtRrE+Xq/rv7bbbLselUJ9eaFvOQbxBIEUCBNMpOhlUpbRA2Ck0a9as9M7skRFIu1ux+i2wwAI233zzZdoxZ84c23vvvW3y5MmZbXqhgPu0007L2cYbBBBAAIHGE9Df9abaVzdv3tz0rymnsP7hzyTbUqxPX3zxxXOqUahPL7Qt5yDeIJAygaZ72S1lkFSnuMDs2bP9s84KjFZccUUbNmyY6dmZ3r17x3bl+qeffvLPUesZoaWXXtq22WYb/zO/VhpmNHLkSPv1119NV0+1X3Znr2d5Hn74YRs0aJC98MIL9uSTT1qnTp3soIMOygnq8vMt9P7bb7+14cOHm37qKrHKW3755f2zWBqCpav3ep5MddddVT1n1KFDB9tzzz19dlHqUl9bPXv++eef+3LmmWce22233Uw/X331VXvvvfesTZs2tssuuxRqVsFtxdqqnaO0o2CmbqPyffTRR/1zVn/88Yfts88+9swzz9iSSy7pz9vOO+9s77//vq+rzqOGtXXs2NF22mknn6UeB9CQPdVh0003tS233DKnqJdeeslmzpxpq666qt16663Ws2dPf0ciZyfeIIAA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veSSS9rTTz/tL5JXWxtpTzICBNPJOFMKAgg0YYHp06cTSDfh80fVEUAAAQQQCAWmTZvm+3QC6VCEnw0RIJhuiB7HIoBA1QvMnj3brrzySu5IV/2ZpoEIIIAAAtUuoD79sssuMwLpaj/TybWvZXJFUVK1CLRo0cK++OILa9asWbU0iXYgUKdA586dGdpdpxAfIoBA2gTUV3/77bf01Wk7MdSn0QW6dOnC0O5GPwvVU4FmgUvV0xxakoTAjBkz/B+hav3VGTVqlN1+++02c+ZMO+mkk2zVVVdNgrWsMgYMGGCDBg2y9ddfv6zjKr3zH3/8YWeddZZpxuvtt9/e+vTpY/PPP3+li61o/rpotNVWW/k70xUtiMwRQACBGAV+/PFH31f/+eefMeaa3qzU79x88802YcIE6927t+21116prGxa+29h/f77774P1xwh2267rfXt29cWXHDBVDrWt1LNmze3rbfe2hZeeOH6ZsFxCOQIEEzncPCmlgXefvttO/LII2306NF20EEH2b/+9S9bfPHFU0miAO+ee+7xHV3aKqgvbtdff72dfvrp1qpVK/v3v/9t++67L3dH0naiqA8CCCBQBQLfffed/fWvf7XrrrvONthgA7v88stTd6E5mznN/bfqqT78pptu8n34nDlz7J///KcdcsghppEOJAQQmFuAZ6bnNmFLjQn88MMPNnjwYFtnnXX83ehXXnnFd8ppDaTTfnp01ffQQw+1Dz/80HbddVc74IADbLPNNrO33nor7VWnfggggAACTURAgd4VV1xhK664og0bNszflX7ppZdSHUg3BVr14QcffLDvw9V/H3300bb22mvbc8891xSqTx0RSFyAYDpxcgpMi4CGqd9444220kor+bu8uqr98ssv23rrrZeWKjbpeiy22GJ29dVX22uvvWayXnfdde2II44wzYxNQgABBBBAoL4CI0aMsLXWWsuOP/54GzhwoH3wwQfWv39/RkDVF7TAcYsssohdeOGF9s4779gyyyxjvXr1st13390mTZpUYG82IVC7AgTTtXvua7rlCvA22mgjfwdVz1WpI9ZzTEyqFv+vhe746zl0DRu7//77/cULXbiolef44hclRwQQQKA2BfRctObi2HLLLW255Zbzgd75559vCy20UG2CJNBq3XB49NFH7bHHHrP33nvPunbt6ofV//LLLwmUThEIpF+AYDr954gaxigwdepUfxV7ww03tPnmm8/Gjh3rl0hYdNFFYyyFrPIFdJFi//3398PGdPdAd6j1bNuYMWPyd+U9AggggAACOQK//vqrnXnmmX5CUN0pVWD3yCOP+CHeOTvypmIC2223nWluGc0no+H1CrKHDBniR55VrFAyRqAJCBBMN4GTRBUbLqBnq7RW8Morr2yPP/64DR061J5//nlbY401Gp45OUQW0OyZF198sX9+Wq832WQTPyJAy7eQEEAAAQQQyBe4++67bZVVVvEXvs8++2wbP368KbAjJS+gSUWPPfZY++ijj2zHHXf0F8nVj7/66qvJV4YSEUiJAMF0Sk4E1aicwMiRI/3zuscdd5y/K/3++++ndsmMyimkK+fVVlvN9MzbXXfd5Zdu0RVuzcA6e/bsdFWU2iCAAAIINIrAuHHjrEePHr6/1vKEmtRSz0groCM1rsASSyxh1157rb3xxhvWunVr/9icJiv76quvGrdilI5AIwgQTDcCOkUmI6A/6lqSafPNN7f27dv7q9l6tqra1kxMRrMypeyxxx6mixuHH364nXjiiX7G0BdeeKEyhZErAggggEDqBbTU1aBBg3JW2NCcG+3atUt93WutgpoETn22Rg9otJ8ujJ933nn2xx9/1BoF7a1hAYLpGj751dr0WbNm+RkoNaRba0Y/+OCD9sQTT/g/8tXa5qbcrgUWWMA/g/Xuu+/6GUN79uzp70R8+eWXTblZ1B0BBBBAoAwBlroqAytlu/bt29cmTJhgJ510kl+XWqPPHnrooZTVkuogUBkBgunKuJJrIwk8/fTT1q1bNzvjjDNMw7o186TWOialX6BLly42fPhwe/jhh/3zV3pGTiMJZs6cmf7KU0MEEEAAgXoLsNRVvelSc6AmddV3L62OoglGe/fubVtvvbXpQjkJgWoWIJiu5rNbQ2379NNP/fqH22yzjZ9kTEH03/72Nz9jdw0xVEVTd9ppJ9/56gr33//+dz9J3JNPPlkVbaMRCCCAAAL/E2Cpq/9ZVMurpZZayu644w6/JOb3339va665pg0ePNimT59eLU2kHQjkCBBM53DwpqkJ/P77735I0aqrrurXm9Rwbg0t6ty5c1NrCvXNEph33nn9FW4NG1t99dXtL3/5i7/KrS9eJAQQQACBpi2gpa7OOusslrpq2qexztpvuummfpTZddddZ/fee69fxkyrqmg4PwmBahIgmK6ms1ljbdEak3ou59///rfvlLVcxrbbbltjCtXd3GWXXdbuv/9+e+qpp/xEZbpoohEHv/32W3U3nNYhgAACVSoQLnV16aWXGktdVelJ/v9mNW/e3C9/qZnYDzroIP/4nSYte/bZZ6u74bSupgQIpmvqdFdHYz/++GPbYYcdbOedd/bP5Wg26JNPPtkvz1AdLaQV+QJ67urtt9/2oxC0TnXXrl2Z3CQfifcIIIBAigVY6irFJ6fCVVt44YX9jY933nnHjxzUUmd6pvqTTz6pcMlkj0DlBQimK29MCTEJ/PLLL3baaaf5u9GfffaZX4bhzjvvtE6dOsVUAtmkWUBri55wwgl+chMNH1NHrOHfuuJNQgABBBBIpwBLXaXzvDRGrVZccUU/yageydNEZbowfuqpp9rPP//cGNWhTARiESCYjoWRTCotcM8995hmd77qqqv81c2xY8dajx49Kl0s+adQoEOHDjZkyBB78cUX7euvv/YTlJ1yyil0xik8V1QJAQRqV4Clrmr33JdquR7J02gzrdhxzTXX+KVLb7vtNguCoNShfI5A6gQIplN3SqhQtoCWVOjVq5f169fPL7Ggu5BHH320tWzZMns3XtegwGabbWZvvPGGXXTRRaYJTnSxRSMVSAgggAACjSvAUleN698UStf3OH2f++ijj2yXXXbxz1ZvtNFG9sorrzSF6lNHBDICBNMZCl6kSeDHH3/MTFSh1y+99JLddNNNtuSSS6apmtSlkQVatGhhRx55pB8utt1229k+++xjPXv2NE1GR0IAAQQQSFYgf6krXRDX3ceFFloo2YpQWpMRWHzxxe3qq6+2N9980+aff37beOONrX///jZlypQm0wYqWtsCBNO1ff5T13oN8bn11lszQ360jMKrr75qulpJQqCYwBJLLGHXX3+9v6Ktmb7XXnttf8V7xowZxQ5hOwIIIIBATALFlrrq0qVLTCWQTbULdOvWzZ577jm/jNbIkSP998B//etf9scff1R702lfExcgmG7iJ7Caqq+rkppYasCAAbbbbrv5iaUOOeQQ09IKJASiCKy//vo2ZswYu/baa/2Q75VWWsluvvlmnsOKgsc+CCCAQD0EWOqqHmgcUlRg9913twkTJviJyRRMa0nMBx54oOj+fIBAYwsQpTT2GaB8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DciyUIuGZcCmJJiRnjt3bh1FGklAmYajIq0x1Nw/bDBWqkhjZuLAAw+subwyQ6LPol5rrbVErbGq8wJs88FZl9w91KbBTxIggVICM2fO1BuF4lgrt5d47EqMvptnRpeSq63v7L9rqz6C5GbdddcVbMKL9y+33yDSUubfgvOr6fJJgDPTOal37Pas1mnqH3upQlaKYOzYsdK/f/9Sb36vAQIw5f7oo4+KcjJp0iTp1KlTkR+/VJ8ATMRg2ud1ZBZehJs0aaJ3BV9nnXWqn2nmgARIoGYI4MUdSvJLL71UZyC1NJOPP/64NvMu9ef32iHA/rt26iJITv766y/dl0+bNq1sNAxotWjRQt59913p2LFj2XC8kU0CnJnOZr3WKdXhhx8ur7/+um+HjJf7o48+WmbPnl0nDXpUnwBmoTEbDYe6wvEMVKSrXy9uOTj99NN9f0dYXz1v3jxtMeLVUbulTz8SIIFsE0BfrDYW8+238SKvTt8oWk+dbTLpLB3773TW26hRo0SdwOGZeexBBCuSHXbYQbAcgy5fBKhM56C+L730UrnjjjvKmqc4EWD9lTrGR+6++26nN69rhMB+++1XqEe8QA0dOrRGcsZsOAlgScXNN9+sl1Ng0MPLYfYJa6r79evHl2EvULxHAjkicNVVV4k6daNoo9Byxceg3Lfffis4556udgmw/67duimXM/Tll112mdHvEFaf2CR2jz32EFiD0uWHAM28M17XMP3afffdXddIqyOVtGKGETV1bp6os/VEHesjXbt21Y3Bsssum3E66SweNombMGGCnpn+8ccfpV27duksSMZzjbXQr776ql5a8eabbxZGttX5la5KMwayBg0apHcCzzgaFo8ESMCDwLhx42S33XZz7bfRTmCAzl6utfLKK8vmm2+u+23MfLI/8ABbA7fYf9dAJQTIAga71TFZ2rIT/fjXX3+tf5elv0NnkriHNdaYxKLLBwEq0xmu5w8//FC6deumNxxzKs54mYfivOWWW+oOeNNNNxWs10QDQFf7BDDjCbP9bbfdVq+lq/0cM4cg8MMPP+hj595++22tYOOoG9sczKlgX3TRRfpYLVIjARLIH4H3339f983YKBRLejDrjBd6KNA4uWGLLbbQy3uwxGejjTbSGx3mj1J6S8z+O711h5zPmTNH8G6N3+l7770nULCx2/f8+fP1bxTv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NQjceCwARAYNTQAbjMEKwumwxACdNB0JJEkAptylA4mQPWzyhE86EqhFAuuvv76suOKKRVnD3idY47/OOusU+fMLCSRJgP13knSZdhAC7M+D0DILS2XajJMO1bVrV8FmO06HjvmAAw5wevGaBBIhsOaaawpeDp0OyjV38XYS4XUSBDADjaPXnIozZM8+aiOJZzJNEoiDQKmpNzcei4Mq0whKgP13UGIMnxQB9ufxk6UyHYApdmXErt72DA1eLDHC06pVqwCpMCgJhCfgNBWDPGItVqdOncInyJgkYEgAa0ydlhE4y3ennXYyjM1gJFAdAqUWZc2aNeO56NWpitw/lf137kWgZgCwP4+3KqhMB+TpXIOFF0tuPBYQIINHIoBd4xctWqTTgFUEdvGmI4FKENh6661l1VVX1Y/C8padd95ZmjRpUolH8xkkEJpAz549pWnTpjo+BsIPPvhgbjwWmiYjRiHA/jsKPcaNkwD78zhpilCZDsizd+/e0qhRIx0LGz/16NEjYAoMTgLhCXTo0KGw2d3ixYu1ZUT41BiTBIIRwMYlsMiB7PFYoWDsGLo6BNBf9+nTRx/fhj1Phg0bVp2M8Km5J8D+O/ciUFMA2J/HVx1UpgOyxEwMFGq4ESNGBIzN4CQQncCQIUN0IphxadeuXfQEmQIJGBKAJQQsI2AV0bdvX8NYDEYC1SWAjfKwVnqzzTaTddddt7qZ4dNzTYD9d66rv6YKz/48xupQHUzNuW+++cZaffXVLVVM/sXAQB2bVHN1XOsZUib81uDBgyl/McgffsdqNtP68ssva73aayZ/lL94237KX3Ki/eKLL1rLLrss28qY2krne49a751cxWU0ZcpjvG0n5THaD4XymA95rLkzTb799lvZdtttpWXLljJ27Fj1O649BxPHP/74o+Y3HhszZow88cQT8sMPP9QexBrOEWbesEP7I488IjfccEOdHdxrIevTp0/X8odNyGrZffzxx3LhhRfqI+V+++03wZnsdN4Eal3+5syZo2f57HWo3qWp7l3KX7L8X3rpJW2hsMsuu9T8khO0ma1bt04WSAyp4/3i6quvltdff10mT54cQ4r5SSIt8piW/huSQ3kM//tJgzymqT+vZXmsKWXaqUg///zzNanEhP9ZVTbmCSecIE899ZTsv//+Mn78+Mo+PMVPcyoy48aNk169eqW4NNXNuhqRldGjRwtetB999NHqZiYlT6f8xVdRlL/4WLqlZL8oYrfse+65R7ApHV00Avj9o89+//339ckhP/30U7QEcxSb8hh/ZVMewzOlPIZnVy5mLctjzayZpiJdTnyC+0ORvuqqq+Tuu+/WRycFTyGfMajIxFfvUGSwphZrFSGLdP4EKH/+jExDUP5MSYULxxfFcNy8Ytkvio8//rhgIHellVbyCs57DgKURweMmC4pj+FBUh7DsysXs9blsSaUaVuRbtGihXBGupwomfk7FekBAwaYRWIovamSbdrNGeloAuFUZO666y7OWBngpCJtAMkwCOXPEFTIYHxRDAnOI1rpi+J2223nEZq3nAQoj04a8VxTHsNzpDyGZ1cuZhrksepm3lg70rVrV72mUm2UJUcccUQ5nvT3ITBjxgzBiyRmpG1FWm2d4BOLt0EAvB5++GF91NmNN94o+KMLTmD+/PlaBjEjTUXanB/lz5yVV0jKnxed6Pfeeecd2XHHHaV9+/Z6AHLgwIHRE2UK8vvvv8urr76qZ6SpSJsLBOXRnFWQkJTHILSWhKU8LmER51Ua5LHqM9Nqh1+ZNm2abLnlltK4ceM4+ecuLayz6t+/f0GRzh2ACAX+v//7P+nSpYssv/zyEVJhVLUTvyy11FJUpAOKAuUvILAywSl/ZcDE5P3KK6/o33e3bt30uc0xJZv7ZF577TU9kUBFOpgoUB6D8TINTXk0JVUcjvJYzCOub2mQx6rPTNuwb7nlFq4RsmGE/MSABGYMnK7Wd3t25rWa11AADz74YDnuuOOqmY3UP/uKK66Qyy+/nKbdAWuS8hcQWJnglL8yYGL0btWqldx///0xpsikOnToICuvvDJBhCBAeQwBzScK5dEHkMdtyqMHnJC30iCPVZ+ZDsmW0UiABEiABEiABEiABEiABEiABEigagSoTFcNPR9MAiRAAiRAAiRAAiRAAiRAAiSQVgJUptNac8w3CZAACZAACZAACZAACZAACZBA1QhQma4aej6YBEiABEiABEiABEiABEiABEggrQSoTKe15phvEiABEiABEiABEiABEiABEiCBqhGgMl019HwwCZAACZAACZAACZAACZAACZBAWglQmU5rzTHfJEACJEACJEACJEACJEACJEACVSNAZbpq6PlgEiABEiABEiABEiABEiABEiCBtBKgMp3WmmO+SYAESIAESIAESIAESIAESIAEqkaAynTV0PPBJEACJEACJEACJEACJEACJEACaSVAZTqtNcd8kwAJkAAJkAAJkAAJkAAJkAAJVI0AlemqoeeDSYAESIAESIAESIAESIAESIAE0kogU8r0J598IqNHj5YJEyb41seMGTPksssuk2OOOUaeffZZWbRokW+csAG+/vprOfjgg+WHH34ImwTjpYTAX3/9JY8++qice+65Rjl+9dVX5ZxzzpFRo0bJm2++aRQnbKDLL79crr/++rDRGS8FBILKn10kyOzcuXPtr4l8Uv4SwZq6RD/77DO59NJL5bnnntN5p8ymrgozleGo8sg+PFPiUPXCRJXHF198UU488USt30yZMiXR8rBPX4I3M8r0l19+KRdeeKGcfPLJ8v333y8pocvV9OnTpWvXrvLBBx/Ixx9/LH369JHu3bu7hIzH691335U77rhDPvroo3gSZCo1S+CBBx6QQw89VP7zn//45hEDObvssouWjTPPPFO22GILueSSS3zjhQ1w++23y5gxY8JGZ7wUEAgifyjOE088odvCPfbYQ+bMmZNoCSl/ieJNReKTJk2Sm266SU466aTC4DJlNhVVl8lMRpVH9uGZFIuqFSqqPF588cV6gnDmzJl6wHKVVVbRfXxSBWKfvoRsZpTpNddcU0aOHLmkZB5XY8eO1bOAUCxeeOEFPTOIWUGTGW2PZMve2meffeTXX3/VSnvZQLyRCQIHHnigVk78CvPQQw9J/fr15bfffpNvvvlGnn/+eWnVqpWcccYZAkuGJNwbb7whL730UhJJM80aIWAqf8jud999J+uvv76g7ayEo/xVgnJtP2P11VeXww8/XGeyYcOG+pMyW9t1luXcRZFH9uFZlozqlC2KPOK9sWPHjnrSDgOWX331lSyzzDJy5ZVXJlYY9ulL0GZGmUaRGjRooEtWr169JSUsuZo/f77stNNO0rp168KdIUOG6Otll1224Bf3xXLLLRd3kkyvRglADr1kENl+7bXX9MihHXb77beX/fbbTxYuXChvvfVWIiVr1qyZNGnSJJG0mWjtELBlyi9HGLXGHzrgSjjKXyUo1/4zMIgIZ3/imjILCnTVIGDLof2JPJjII/vwatRW9p9py6H9aSqPCxYs0O+QNqHmzZvLnnvuKUnqNezTbdoifw8NL/meiqtffvlFmy7gEyM5m2yyiXTq1Kko7zDlvv/+++XPP/+U/v37F14YGzVqJKuttlpR2A8//FD69u2rZ2mKbvh8geKDmW0IVOfOnfVaWYwOQYC7detWiL148WL53//+JxDuzTbbTPtj/fRjjz0mRxxxhL73zDPPSIcOHeSQQw6po/Bg1hIjQJi5hMLVpk2bQtq8qA4BExlEzrCeCnW7wQYbyN57713ILJYjoMN2OsjgDTfcoOvZ6e93bSpLyPO4ceP0+n2kaSq/CPvjjz/K008/rU0zt9pqK4HyT1c9AlHlL86cU/7ipJnNtF5++WUZP368NG7cWPfXKGW5AcdybWacZCizcdJMX1pxyCP78PTVe63mOA55XGuttYqKB70DZuNY/hrUsX0MSkyFt6rs1OiehWyodc5GOfn999+tTTfd1FJrAiylDFgDBw60lNKs46oZPZ3WAQccYG200UaWWo9qKUXXUkqopcy466SvhM3673//a62zzjrGz7cTQX732msv/bzddtvN2nXXXa0jjzzSat++vaXM1yy1DkwHVZuiWcrMW4dTipL2u/vuu3We1CyhNXz4cEttTqbzCg6bb765pWbPdbh58+ZZav2tpdbfWu+//75OR81wW0jTzak1t9Zxxx1XdEttEGCttNJKRX78UpcAGIGVifOSQcSHLKgBG0spx/q6S5cuuv4HDx7smfyNN96o5eKPP/7wDOe8aSJL+J3ccccdljL5sVZYYQUd3VR+EVhtaGEddthhllr7b6klEpYaFNKy7syHfe0mb3gWZBu/dTp3AtWUv9NOO03XjxqAdM+chy/lzwNOBm8pk0FrxRVXDFSy008/XfdjaqMxSy1psXr06KHl7d577y2kE7TNzJLMAgKYgq3TqfW4ltrLxenF6xICtSKPdray0IejLJRHu0aDfdaKPCpl2Bo0aJClBnyCFUCFrrU+HQVIgzymTpm+5pprrJ49e4Kvdmom2LI7ZVuZHjp06D93Lev111+3llpqKa2kFjzVBTp2KAhNmzbVHXvLli1dFW5nnNLriRMn6rhq5rtw6+eff7batm2rFVhldqH91cy3Dmcr0/CEYqVG5i21AVoh7llnnaXDoUGGUzueWmeffba+xj9bKVFm6gU/5wWVaSeNYNdBlBkvGcRT8WKoLCCszz//XGcCgza77767rtsnn3yybMa22267Oi9UZQM7bpjI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HjJhwgQ9C/jjjz9Ku3btknkQUyUBHwLYiGzixInSqFEjbRbWpEkTnxi8TQKVIdC3b1954okn9MO++uorvVFjZZ7Mp5BAeQLsv8uz4Z3qEVhvvfXkk08+0YOQ06dPFyxnpTMnwJlpA1YQKmxqAsejNQyAMUiiBIYMGaLT79mzJxXpREkzcT8CI0aM0EF69+4tVKT9aPF+JQn0799fP26LLbagIl1J8HyWJwH23554eLNKBGzdBroOFenglUBl2pAZNjTBy+KgQYMMYzAYCSRDACY42CDioIMOSuYBTJUEDAngxRDtoq24GEZjMBJInAB2lofFxJFHHpn4s/gAEjAlwP7blBTDVZIAdBv05dB16IIToJm3ITOsI5g6daq0b9/eMAaDkUByBGDeDVnkhk/JMWbKZgR++uknvbM31vDTkUAtEWA7WUu1wbzYBCiXNgl+1hIB9uXha4PKdHh2jEkCJEACJEACJEACJEACJEACJJBTApxKyGnFs9gkQAIkQAIkQAIkQAIkQAIkQALhCVCZDs+OMUmABEiABEiABEiABEiABEiABHJKgMp0TiuexSYBEiABEiABEiABEiABEiABEghPgMp0eHaMSQIkQAIkQAIkQAIkQAIkQAIkkFMCVKZzWvEsNgmQAAmQAAmQAAmQAAmQAAmQQHgCVKbDs2NMEiABEiABEiABEiABEiABEiCBnBKgMp3TimexSYAESIAESIAESIAESIAESIAEwhOgMh2eHWOSAAmQAAmQAAmQAAmQAAmQAAnklACV6ZxWPItNAiRAAiRAAiRAAiRAAiRAAiQQngCV6fDsGJMESIAESIAESIAESIAESIAESCCnBKhM57TiWWwSIAESIAESIAESIAESIAESIIHwBKhMh2fHmCRAAiRAAiRAAiRAAiRAAiRAAjklQGU6pxXPYpMACZAACZAACZAACZAACZAACYQnQGU6PDvGJAESIAESIAESIAESIAESIAESyCkBKtM5rXgWmwRIgARIgARIgARIgARIgARIIDwBKtPh2TEmCZAACZAACZAACZAACZAACZBATglQmc5pxbPYJEACJEACJEACJEACJEACJEAC4Qkkpkz/9ddf8uijj8q5555rlLsXX3xRTjzxRLnssstkypQpRnHCBrr88svl+uuvDxu9puN99913csMNN8ihhx5a0/msdOaCyuOrr74q55xzjowaNUrefPPNRLNLeUwUb00mHlQe7UKgTZ07d679NZFPymMiWGsyUcjh448/Lqecckohf5988omMHj1aJkyYUPDzu/j5559l/PjxfsEi3f/666/l4IMPlh9++CFSOrUYecGCBfLCCy/IcccdJ08++WQtZrHieSqVzaBtJvvweKqM75R1OX722Wdy6aWXynPPPadvBpHNGTNmaD3nmGOOkWeffVYWLVpU9wEx+bDNjAmkSTJWQu6OO+6wlltuOWuttdbyfcJFF11krbfeetawYcOsdu3aWfXr17fGjRvnGy9sgHXXXdfq1q1b2Og1G2/mzJnWvffea6244opWhw4dajaf1chYEHk8+uijrRYtWlirrLKKpX5DVr169ayLL744sWxTHhNDW7MJB5FHFALt4aabbqrlcfr06YmWi/KYKN6aSvz++++3OnbsqNs6ZOyLL76w9t9/fy1n//nPf3zz+ssvv1gnnHCC1aRJEwvtZpIOeUV7rJTNJB9TlbTfeecd/f6D8t1yyy1VyUOtPbRUNoO0mezD46lNvlPW5Thx4kRLKcK6Lbr99tt1AFPZ/O2336zVV1/dOuCAA6xevXppXWfzzTev+5CYfNhmxgTSIBkxCBM6yM477+yrTE+aNMm67777Cs/AjxeKTO/evQt+cV+oUSRr9uzZcSdblfTuvPPOOs/dc889QynTbmnVSTzFHiby+OCDD1rHHnustXDhQmvx4sXW888/b7Vu3dpq2LChBVlNwlEe3alSHv/m8u2331r4GzhwYEWUacpjvuRx3333tTp16lQo9Ouvv26sTCurHeuDDz7Q4ZNWppHBX3/9tZDPNF9gEOKpp54qKoLNMagyneV2slQ22YcXiUwiX9zkie+Uxag//fRT3eaNGTOmcMNENpXVqAWF2nbnnXeeTueVV16xvWL/zEqbCTClshm2zXRrf6OCT8zMG7PiDRo0EDWrh8uyDuZN++23X+F+8+bNRf1wZdllly34xX3RrFkzUSPpcSdb8fReeuklOf300+s8Vyl+vtxLI5VLqzRcmr+byONrr72mzXfssNtvv72WT6Vcy1tvvZVI8SmPdbFSHpcwURYSgj81g7jEM8ErymNduFmWR2UJJvizHdo+OL++G2E222wzWXvttXFZEaes3SrynCQfArPOQYMGyTfffFP0GPTbcCbc7YhZlkuU0U02/fiwD7elI/hnOXniO2UxS7u9tD9x135nLA655Nv8+fNlp512EjU5U/AcMmSIvk5S38lCmwlIbrIZps0s1/4WKiXkxd+td8jIiKa0efnf//4n77//vhYmdKw77LBDnRSxfuWZZ56RDTbYQPbee+/CfWUGXrjGhZoNFDUDKBdeeGGRv8kXrKV67LHH5IgjjtB5wvOUubMccsghRcqzGpUQZTap118hXShKWK+El8jOnTvrtd5YawClXpmDFz36xx9/lKefflqv29pqq60EylYY9+6778r//d//iZohl0022UR23HHHQieKNWxggIEFrH1Ws/WiRsAEAw/t27fXyh0Ea/fdd9dxbrrpJlGm3dKvXz/PrKhZVnnjjTekVatWOo02bdro8GHS8nxQFW9GlceTTz5Zy7GzCH379tXr0MEtiKM8Uh6jymMQefMLS3mkPEJG1DIBeeCBB7Qy17VrV92Hl1NQEFaZCsqff/4p/fv3T2RAx7T/xbsB3jXQL0KJhzOVaYQt1//hnqlDX4w1zVgzufLKK+t+G59wJv32vHnzRJnR67wsv/zyuv/ebbfddL9eLg/l3jmy1G/bZQ8im+XeKdmH853Slqc4P19++WW9L0Tjxo31OzvSLtduuslmo0aNZLXVVivK0ocffih4v1x//fWL/E2+mLR9bm2maXuLPCTdZv7000/y0EMPad0GeqNaYqaVZjXjrBHstddeeiIhTFvnlvcw7a9JXegwUae21cxoYY2PmrmznPb/u+66q6WEx1LCYuG6S5cu2qRh8ODBro9VwmGpEVtLNYau97087777bkspO3rt1vDhwy21UYm1yy676OchT2pUSJvuYm3DMsssY62wwgo6ue+//95SFabDqU5N5/PII4+0lNKqTXvVS0fhsWqTNOuwww6zlCJsjR071lKduoWwQZ3aZMSC+RLMhpGWGmCwtt12W2vatGmFpLBucaWVVip8Vy8zlhq9srbcckvt995771lKmbfatm1rKUGz8N126qWnKK4SIEsp5RbWwKlBD2ufffbR69nVRjO+adlppuUzTnm0y3zjjTdq2frjjz9sL99PyiPlEUISpzyedtppup0Ks2aa8kh5hDx+/vnnllJELfWyZ6nBWUsNxFrq5dBac801cVs79OPq5UCv69too410P6oGmnUbCLPuUof+BeHDmHmb9r/oq9Bv4TkwlYQzkWmE8+v/EMbEoe9UL70WlgLBTFBtQKTfAZymh379ttp8SL8voRwnnXSS7rt///13/XiUEf633nprITte7xxe7wCFBFJ0YSKbQd8p7eKzD7csP9n0kqc8v1NChtCP4x0aS6CURYnVo0cP/VvFHkW2CyKbWEL43//+11pnnXUstIFBnUnb59Zmmra3lWwzoUuVtntq42rtpyZENZpysunWZnrl3av9DVoHpeEjrZmGQGCTMShztjv//PPtS62YqtEY3YHDE+HVbKqGVLqJiNoVT6+vBlT8YROUoA5Kuhopsj7++ONC1LPOOkunh8bUdlCebWUafthQAM9Eg2E7tTupVlSh0OKlA2u5sa4MPybbqRlvHU+ZFdlevp/oeKEUo1Jth01f8HznIANeHJzKNMKqGeyCMo3ve+yxh6VGxXFZ5EobPnT6Z599diEMflB4njI5KfiVS6sQIAUXccqjs7jbbbeddeWVVzq9jK4pj39jojy+VJCXsO0jEoiiTCM+5REULN3OO9vWvLSPKDs23oQSZzu0mejX3JTpoUOH2sEsrKNeaqmligbL7ZtRlGmkYdL/IpyaxdH9lq1Mw89Epk3qF2l5OZRRWd1Z//rXv4qCYfAf7zh4qYMz6behlKP/ve2224rSKn0xNHnnyEK/bUMwkU0oLKbvlHa6+GQfbiab5eQpr304ZAe6ijLhtpyTKXiPx2+4VJk2kU3oEJiUa9q0qU6jZcuWltsgJZ7t5UzaPrc206S9rWSbCX0NLJ2DiMrCWPvZyjQ4uMlmaZuJcH55L9f+Im4Ut2ShlCpNUAcTB5hpY80zjmyBw/FWTodpe9uUG+Fhgg33xBNPOIOJ2nBM1MikTJ48WdRouNxzzz11whRFcPkCM23Y0OOZtjv11FO1H0w0bAczDadDPDg813ZK2RYl8NqMDHlSs7oyZ84cgQnRiBEj9B+OA1E784kSTjua76dSyvQaM7XJWiGsepHR5h9qtEmb0xVuGFyUMzNxRsVRN2pkp5BvmNCjTmBS5XQmaTnD19p1nPJolw1yDdN6HGMQ1FEe3YlRHpdwMW0fl8QIf0V5dGeXF3nE8ZNY5qMUiwIItJkwmXZr+2FiZzssd1K7yetjApUFle0dy6dJ/4sHlfbb8DORadP6RXrlHJZ24f1kiy22KAqCNZBYC6kU4yJ/ky9uzJ3xTN85/NJxplmr10FkM2ibyT78z0DVbiJPpr8pk7QCZa4KgfG+jLbPua5ZWbvqnJSWz0Q20WbdfPPNevnmFVdcoT+VhWvgkpm0feXaTDzMS98xrV+vTFejzUR+TPNeWndeZTG5F3nN9LXXXqvXUqlRA71+GEowFNFyDp0RFu1jHZCb66g22UEaEEo1Gi5qJNItmLGfGv0RNQshakc74zh2QCi5cIirRkC0UnXdddfZtwN/qlEPvdaqe/fudeJuvfXWeiABHbb9Q60TyMXDTyBwph1YY+2135pqv7RcHl9zXnHK41dffSXq6ANRZiixlZPySHmM0j7GJoj/JER5zI882uvQ1DGURWJk2u6j30KfjP6kEpvaOPtf7GVi6pwyHaT/80pf7d6rb2O9ttOh34bDGuqgzo+76TuHXzpB81WN8FFk0+udkn34ZD0IxHfK8FIN2VQWJ0UJmP7mvGQTepA6OUawvhrrhpX1i+uAYdGDfb442z6foHVu2+0t9osy1RnqJOLwqEabGaS9N61DR5E8LyPNTCNljG5gMy2MrIwfP14vzC+d8XTmAKM76JCUaZnTu+harSPQG2qpM6eL/MN8gYBiBtnreeXSVcfR6FuIi536lDm2XihfLryfPyoPm1hhV+jSg9rtl4Wgm1z5CYS92+BHH33klz3X2QnfSDUWIC55xI/ynHPO0Ru/uY3uhS025fHvJofy6C5BJu2je8xwvpTH/MgjNhGDw+x0qfPrRxAem1wiXOkmOqVpxfXd2f8GSdMp00H6P69n2DvwYqdop1t11VVFmb/rft3pb3Ltx9z0ncMvHZO8VDtMFNks12ayD/97AIrvlOGlG5t1YZNgtzYTqfr99srJpjNHsMpFHcXxnuls+5zPMLkubW9N3tG80q1GmxmkvferO6+yud2LpEyj4u666y5RG3oJZmxhum3vzub2MPjB3BgNZ58+fcoF0TPBaAixw3VUh85v7ty5ese8oGnB9AjmHVDqN9xwQ5k1a5aotddFySCf119/fZGf1xeYy2FHUHBwOgxIYHdPW+mHuTry7eUgDKVKeWl4/Jjx8qPWmWkzded9mJV/99132sskLWfcWryOSx7ReMKc/6qrrhKnOT5k+8svv4xUdMoj5RGj0OWcSftYLm4Yf8pjfuTR3jEW/VoYh520cYIF+vtKOGf/G+R5Tpk27f/80ke/DedcLobvar2fHmBXG4Piq15SZtJvI6xf323yzpGFfhssosimW5vJPlz0JBffKSFd4R3ew9XGydoyderUqYETcpPN0kRggeJnNVoap9x3Z9tXLkw5f7u9xcSeic5QLh3bP0ibiTgm7aZfm2nS3ttKtF9adjlMPyMp0zBbhnKJTzgovzD/cpqAqcX2+rgrO0M4ZgNrrO0jpWBXj2Of0PjZDuuPLr74Yn1Mle1n+omRJKfJldp5U3r27FmkTEPpUpsJ6COxnOk6R2KmTJmiZ5CRDzjkGUdgYE346NGj9TNg/jts2DA54IADnMl4Xl900UV6BAqDELZTm8AIfgS4h9FoOLDE2jS1+7hW4vGpDnsXmGCo3T91GKzlxaw7/HCUFpR9OJQN13a9qA1n9NrvXr16aesB/MDVhmQ6HM6vhSuXlr6Zkn9xyCOOH4NJD2T4vvvuE5iN4++8887T9Rx0VobySHm0f4dh2kfnT8/+3ft1Os44pdeUx/zKI45gwtGV6HtspRDmfFCSccwKjmmBfNgO/YjtsNQJJt5oC0tdHHKJNL36X9xHvw1XumbbT6ZN+j+dsMc/KLZqQzbNzR6ARvBXXnlFv6fgPQDOtN9GWPT5aBvAHc7mjXcmOJN3jiz02yhrENn0e6dkH/73EbN8p4RkRXennHKKTmTkyJG6DcL7utqJW/vh94/3ctt5ySb2XBo1apQegLPDIy7ex7F2Oozza/vKtZl4lld7W8k2E+blHdXyXrxvY3YcS12hJ8KBDXjDubV1pW0mwvnlHenAlba/2jPKP9WYh3ZKOPQRUgMGDLBU4S2lZBbtdvnss89aG2+8saXMGCxlMmsdfvjh1plnnql3x7Yfqhbi6+Ml1IiCpTokC1uiq87dvh3oE+lj172jjjpK71iKfKkRHwvHSsEphd26+uqrLXW+st4pDkdwqdEmS8046u9K6bawQzd2zVUz0voIDGcG1BoAveup4q3Dq7Vn+mgrZxiTa3W+tKWEx1LrJSy1OYalDm631Mx+UVTs5KnWW+jn4EgxNZulj/DCDty33HKLDotd1NXImYXdAFEu1If6UerjwZBH7DyK8mHHVpQJYeGPT7Uxm6VGZgrPLE2rcCNFF3HII2TGrt/Sz6BHtlEeKY+q4baitI/4+eFkAfyu1SyDlk20F2hbgzrKY77lEfKiNtPUR2OhbVNWUPooSvSROOoFu2SjDVWDNfpoSbW5pu6jcCyMUuz0sYqlMoedbnEP6UE+0TehPw3iTPpf7CaOnbLxHPS748aN04/wk2kEMun/TPILNmrzUX3E0L///W+9+yx2l1bKdSG6Sb+NwGoyQZcFu0yrF0hLmZHq0zVQPrwz2aed+L1zZKHftuGZyKbJOyX7cL5T2jIV1yd0G7Ue2Vp66aWtrl276h2joUegPcDxtnB+sqkUbf3bVjOjug3GSUPK+lGfFBQmn35tX7k206S9rWSbibJjJ2/oMThueODAgVoHxIkb0JFw2hFcaVtXrs00yXtp+6sfEPFfpKOx8GwcG6VGP3SHUC4vUGKdHU5pOCh1eGEEhCgOwoXjO+DwPDVqYZScLVxq1MhSM7qWmun1zAvOmUMHGMWhrGoExsKZnnh5KedwnqXt0JmXOmVmXhgsKL1X+h31gG3oUUY3FyQtt/i14BeHPMZVDsqjN0nK4998/NpHb4rmdymP3qzyII82AfQreLmDgwJYzuEYxXL9Rbk4Qf2D9r/O9IPItF/9OtP1ukY/OWHCBM/zYf36bfT/yhrA6zFF97zeObLQbzsLayKbbDOdxP6+5jtlXSZx+uDd0j4TWu3gr/Uet/T9ZBPnysfRpgZp+5z5DNLeVrLNhH5jT3yCr3Oyz85/kLbOK+9B21/7+V6fkXfzxpoCONtcWH8p+dekSRNtIl3iXfiKRePldrjFOuzSY7QKEf+56NChg5xxxhlF3jDJDuOwG56fKS82HSl1JlvbwxTM3o4edvv2kWGlaTm/t23btvBVjYoVru0L55pe26/cJ+oBu6SXc0HSKpdGtf3jkEevMlAeKY9e8lF6j/L4NxG2j6WSUd3vzn6ldIdqZ85wEkZYZ1rnzo1GTfrfcvnx6/Pd+r8w7Tn6SbcTOZz5cvJ167fR/+O9xdS5vXPYcbPQb9tlwaeTXTnZ9HundKbndm0qm864fvLlDOu8NpFpt/o1zSPfKZ20k7tGX263h9h0sJzzk001A1suqtZ1aknfcWszkfmgsmnSZqKdtNvKcnyDtHXl8o78B21/EcfPRVam/R4Q9T4UW+e5mG7p2YDVSIRe84V1C+UaYbf4iAenRj3cbhv5+eURiTg7CaNEGajmCFAea65Kcp0hymOuq7+mC2/aJ0bpf8P2+Ta4IL8fOw4/008giGxiXSrfKdNf52koQZD2KGzbF6W9tRma/n7s8Ln49Jq2TtM9tTO1pWa39TokNWpiqYXrRtnHOp3BgwfreFhDps4VLmu+YZQgA5GAIkB5pBjUEgHKYy3VBvNiE4jS/4aVafvZ/CQBLwJh5SuKTHvlh/dIwCZA2bRJ1M5nPWQlC6MG2NXNWRSc2YZpfj+nbPOLdhJHeMx0wwyAjgTCEqA8hiXHeEkQoDwmQZVpRiUQpf8NK9NR88z4+SAQVr6iyHQ+yLKUUQlQNqMSjD9+ZpTp+NEwRRIgARIgARIgARIgARIgARIgARJwJxDpnGn3JOlLAiRAAiRAAiRAAiRAAiRAAiRAAtkmQGU62/XL0pEACZAACZAACZAACZAACZAACSRAgMp0AlCZJAmQAAmQAAmQAAmQAAmQAAmQQLYJUJnOdv2ydCRAAiRAAiRAAiRAAiRAAiRAAgkQoDKdAFQmSQIkQAIkQAIkQAIkQAIkQAIkkG0CVKazXb8sHQmQAAmQAAmQAAmQAAmQAAmQQAIEqEwnAJVJkgAJkAAJkAAJkAAJkAAJkAAJZJsAlels1y9LRwIkQAIkQAIkQAIkQAIkQAIkkAABKtMJQGWSJEACJEACJEACJEACJEACJEAC2SZAZToj9fvrr7/KWWedJTNnzsxIiVgMEiABEBg7dqw89thjhEECJJAxAlOnTmW/nbE6ZXFIwI0A+vGHH37Y7Rb9MkCAynQGKhFF+Oijj+S6666Tzp07y2233SaLFy/OSMlYDDcCbdq0kUcffdTtFv0yQuDtt9+WHj16yIABA+TVV1/NSKlYDBIgAZuA3W+vscYactNNN8miRYvsW/zMMAH23xmu3JKivf7669K9e3fdj7/22msld/k1KwSoTGekJnv16iUTJ06U/v37y/Dhw2XTTTeV8ePHZ6R0LEYpgenTp8v8+fNLvfk9AwSmTJkiQ4cOlc0331zq1asnb731llx00UUZKBmLQAIk4CTQu3dv3W8PHDhQRo4cKRtuuKE8/fTTziC8ziAB9t8ZrNSSIn3zzTdagd5yyy2lUaNGgsHxSy65pCQUv2aFAJXprNSkKkfr1q3lmmuukQ8//FDat28v2223ney1114yadKkDJWSRSGBbBKYM2eOnHfeefL/7N0JvFXT///xT5PMldBkKjJLwhfVT4giQiollEKEfIXMw5ev8RuZMg+RCpkqU0mZypAxmYlMGSpk1rT/672+333+59577r3n3DPtc85rPR655+yz99prPfd11/nsvYYtttjCXnjhBXvggQfsxRdf9DfGirPG1AoBBNRuX3vttfbee+/5nmX77befde3a1fc2QwcBBApLYMmSJXbmmWfalltuaW+99ZZNnDjRP9hq165dYVWE0qYkQDCdEldh7LzVVlvZk08+aU899ZR99NFHtvXWW9vw4cNN/5OTEEAgWgJBENj48eN9EH3VVVfZeeedZx9++KHvZRKtklIaBBDIloCGaGlM5fPPP2+LFy+2HXbYwQYPHmwaV01CAIFoCyxfvtxuuukm05ANDbXUU+h3333XDjrooGgXnNJlRIBgOiOM0cxk3333tTlz5tjIkSNt9OjR/q73LbfcwrisaF4uSlWCAhpPpW5gRx55pHXp0sU++eQTO+uss6x+/folqEGVEUBg991390M71Gbrhri+nF966aWmniskBBCInsDjjz9u2223nQ0bNsz69+/vh26cfPLJVq9evegVlhJlRYBgOius0cm0bt26duKJJ/r/uQ8//HDT/+Bt27a1Z555JjqFpCQIlJjAV199Zfr/UROTrLbaavbGG2/YHXfcYU2aNCkxCaqLAALlBTRXgm6wffzxx77LqOZM2Hzzze3ee+819WQhIYBA/gX0sErzHnTv3t223XZb++CDD+zqq6+2hg0b5r9wlCCnAgTTOeXO38n0P/c111zju520bNnS9tlnHzvwwAN9Y52/UnFmBEpL4Pfff7cLLrjAd+l+9dVX7eGHH7Znn33W3+AqLQlqiwAC1QnoRpuGfajHisZSDxw40HbeeWc/p0J1x/I5AghkR2DBggV29NFHm8ZBaznamTNn2oMPPmitWrXKzgnJNfICBNORv0SZLaDubmvN2mnTpplmG9TdNHVN+emnnzJ7InJDAIGYgJ4mjRkzxj9duv766/1EY++//7716NEjtg8vEEAAgUQCTZs2tdtuu81PaKRllTp16uT/dijIJiGAQG4E/vjjD7vooot8Oz59+nQbO3asaahWhw4dclMAzhJZAYLpyF6a7BZMXVM006Bm/x43bpwfTz1q1CjTJAokBBDInIDuWmuZq0GDBvnuYPoCfPrpp/vlMjJ3FnJCAIFiF9C4zKlTp/qx1Po7ss0229gpp5xiWmqJhAAC2RFYuXKl3X333f57suYgCicJ1ZJ2GpJBQoBguoR/B+rUqWPHHXec70KmL/qnnXaatWnThnUuS/h3gqpnTkA9P/r06WP/93//58dQ6eaVJgBcb731MncSckIAgZITCCcX1c3w++67z09SpmFcS5cuLTkLKoxANgVmzJjhl6c85phj/NBI3cTSJKGrrrpqNk9L3gUmQDBdYBcsG8Vt0KCBn8Zf3U61Np7GZumfJlMgIYBAagIaQ3XOOeeYlqh7++23Y8Mq9FSJhAACCGRCILwZ/umnn9rxxx/v/+ZoGcxHHnkkE9mTBwIlLaBlZTWvUOfOna1Zs2b2zjvv2M0332zrr79+SbtQ+cQCBNOJXUpy66abbuobYk2I9N133/mn1EOHDvVrXpYkCJVGIAUBdQXT+pKal0BPoC+//HI/4Z9m+iQhgAAC2RBYa6217LLLLjN9+d9ll12sV69evjfMa6+9lo3TkScCRS2waNEi0/dezSf0xRdf2NNPP21PPvmk6UYVCYHKBAimK5Mp4e177LGHX6pHAcFDDz3kx4lce+21tmzZshJWoeoIVC7w3HPP+a5gekKkL7PqCqaxjKwzWbkZnyCAQOYENtpoIz//iVYJUFJgfcQRR9iXX36ZuZOQEwJFKvD333/biBEj/JAJfe/VU2gNzdLKNyQEqhMgmK5OqEQ/r127tp/6X+tcKkA4++yz/Z06LU5PQgCB/wrMmzfPDjnkENtzzz1NM+6qK5jGMWrGXRICCCCQawEtnfXiiy/6pXo00/AWW2zhu4Br+AkJAQQqCkyYMMEPy7rwwgvt5JNP9jfDNUZa34NJCCQjwG9KMkolvE/YhUzjp7fffns/G7Hu1L377rslrELVS13gl19+sTPOOMN3/frwww/97LpPPfWUb5BL3Yb6I4BA/gV69uxpmgdFXcDVy2yzzTazW2+91VasWJH/wlECBCIgoJtN7du3t759+/qhEXp4dPHFF9uaa64ZgdJRhEISIJgupKuVx7Jusskmprt3uuP9888/W9u2bW3IkCG2cOHCPJaKUyOQWwF9EdUXUn0xveuuu+zqq6/2T6M1uy4JAQQQiJLAKqusYsOGDTNNUqZlfDQWVDfFp0yZEqViUhYEciqglTYUQO+2225Wv359e/311+2ee+6xDTbYIKfl4GTFI0AwXTzXMic16dixo82ePdtPtDR58mQ/nvqqq65iSY6c6HOSfAo888wztsMOO/gvpIcffrjvCnbSSSdZ3bp181kszo0AAghUKbDOOuuY5j157733fJut1Tq6du1qc+fOrfI4PkSgmASWLFliZ555pl+1RuOhJ06caJpwt127dsVUTeqSBwGC6TygF/optUj9gAEDTF1iNL7kggsu8N1dH3300UKvGuVHoIKAfs+1RIaGN2y88cZ+iIPWdG3UqFGFfdmAAAIIRFWgdevWpnb6+eef96t06Obg4MGD7fvvv49qkSkXAmkLLF++3G666Sbfo0wrbvznP//x7fhBBx2Udt5kgIAECKb5PaixwBprrOHHl4RLcoQTMWltXRIChS6g4Qynnnqqn3jv888/t2nTptljjz3ml74q9LpRfgQQKF2B3Xff3bR01ujRo/18Dxq2cumll9qff/5ZuijUvCgFNGnudttt54c79O/f3w950EMgVtooysudt0oRTOeNvnhOvOGGG/olOV5++WXfGO+4446mmRC5210817iUaqK72DfeeKO/iz127Fi7/vrrTTeI9t5771JioK4IIFDEAuphduSRR/oeZur6esUVV/gbhffee68FQVDENadqpSAwZ84c32Z3797d3xDXJLqa46Rhw4alUH3qmGMBgukcgxfz6XbddVdTQK3GWAvdq0uZGmit30dCoBAENDGPJujRE+mBAwf6cdFaGq5OnTqFUHzKiAACCKQksNpqq9l5553n/9ZpLLX+7ml5rRdeeCGlfNgZgSgILFiwwAYNGuTHQWs5uJkzZ/pl4lq1ahWF4lGGIhUgmC7SC5uvaulud79+/Uxdv08//XS75JJL/GQPDz74YL6KxHkRqFZAd627detm+jKpdVm1pMyIESOsQYMG1R7LDggggEChCzRt2tRuu+0208RMjRs3tk6dOlmPHj18kF3odaP8xS/wxx9/2EUXXeR7V8yYMcPUq0xLX3Xo0KH4K08N8y5AMJ33S1CcBdDdbk1MpqBa47P69Onj1/F74403irPC1KogBX788Uc/O3ebNm3s22+/9TN7PvLII7bpppsWZH0oNAIIIJCOgMaXTp061Y+l/uSTT2ybbbaxU045xfS3koRA1ARWrlxpd999t+8JOXLkSN/L4sMPP/RLwenhDgmBXAgQTOdCuYTP0aJFC79+36uvvurHYan72FFHHWXqikNCIF8Cy5Yts+uuu86Pi1aviVtuucV0o2ePPfbIV5E4LwIIIBAZgX333dc07vSGG26w++67z/+t1CoGS5cujUwZKUhpC2hZq3COHq24oZs/Z511lq266qqlDUPtcy5AMJ1z8tI8oYJojV25//777bnnnvNdcdQFnNlDS/P3IZ+1Dmf31KQ7xx13nG+Ajz76aKtdmz+H+bwunBsBBKIloLki9Dfy008/Nc0dcc455/hlMNV7h4RAvgTU41HB81577WXNmze3d955x26++WZbf/3181UkzlviAnx7LPFfgFxX/9BDDzV1wVGjfOWVV/rx1LrrTUIg2wLvvvuudenSxTS7p7p16/fw8ssvt7XWWivbpyZ/BBBAoGAF9Dfysssu88O2NNFor169/LAtLa9FQiBXAosWLfLDsrbddlv74osv/ES3TzzxhL/Bk6sycB4EEgkQTCdSYVtWBdQFR8G0uuRouaEjjjjC2rdvb+oKTkIg0wILFy60IUOGWNu2bf24vxdffNEmTJhgm2yySaZPRX4IIIBA0QpstNFGfmKnsK3eZZddfPv95ZdfFm2dqVj+BbQijCYE1XroDz30kH8KrYny9tlnn/wXjhIg4AQIpvk1yJuAZg+988477fXXX7dVVlnFdtttN98wf/3113krEycuHgGN7dO6klqibfLkyf53TU9SOnbsWDyVpCYIIIBAjgU0bEs3JTXfhGZM1goIukGupYhICGRSQDe+t9pqK7vwwgvt5JNP9g9hjjnmGIZlZRKZvNIWIJhOm5AM0hXYYYcd/Dhq3XHUOtVqmPWHU0sdkBCoicDEiRP9LLTnn3++7xb28ccf24ABA4zZPWuiyTEIIIBARYGePXv6ZQTVBVyTOOrJ4a233morVqyouDNbEEhBQDdp1GOxb9++fkiB2vCLL77Y1lxzzRRyYVcEciNAMJ0bZ86ShMAhhxziG2YF0tdee62fpOzee+/1s4AncTi7IOBnn9WkJFofVU9PNC763//+t62xxhroIIAAAghkWEC9yoYNG+YnKTvssMP8zcvtt9/epkyZkuEzkV0pCMyfP98H0OqpqN8t9Vy85557bIMNNiiF6lPHAhUgmC7QC1esxa5fv76dccYZvivP/vvvbwMHDjSNy3rppZeKtcrUKwMC33//vR177LHWrl0736NBvy/jx483jfEjIYAAAghkV2CdddbxN8Hfe+89P7Rmv/32s65du9rcuXOze2JyLwqBJUuWmFbY2HLLLU3jodW77Dm38ova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QEHcrFmz7JJLLrEpU6YUXG1V5pNPPtnuv//+git7fIHzUY8333zTRo8ebfreQUKgWAUIpov1ypZAvdq1a2cnnnhiCdQ0s1WMuturr75qzz77bGYrTW4IIIAAAnkRWHPNNe2www6zXXbZJS/nT/ekvXr1sn/84x9Wt27ddLPK6/H5qIfOuXDhQttvv/3yWndOjkA2BQr7L0M2Zci7IATCxq1WrVoFUd6oFDLKbmussUZUmCgHAggggECGBNTuFGpbXbt2bdO/Qk/5qMe6665b6GyUH4EqBQimq+Thw2wILF++3I91VtDUunVrmzRpkmlcTY8ePTJ651rdi1588UX7448/TE9ju3TpUqEhr24fjfOZPHmyDRkyxJ5//nmbOnWqtWjRwo4++mhbbbXVUuL54Ycf7IknnjD93HTTTX2ZWrVq5cdizZs3z3T3XuPJfv31V9/NWWObmzVrZn369PHnScYtmX0SFVpjz7/66iv/Uf369e2QQw4x/Zw9e7a9//771qhRIzvooIMSHZpw259//umv64EHHujrqzHtzZs3t+7du1udOnXs+++/965q2Hv37m1rr712LB/5PP74436c1YoVK+yBBx6wpUuX+s833HBD22qrreyZZ56xlStXWtu2bf2/8GB191dXNl23Dh06WOfOncOP7KeffrL77rvPTjjhBHvqqafsnXfesdNOO63gnzbEKsgLBBBAIMMCmWwDKytade2wjlO7qHbkgw8+MLUDas/1M0w1bfvC48v//PHHH+2hhx6y+fPn20477WRBEFT4/qBj1BapN5XaSLXVjRs3jmWlsn733XfWqVMn3+Z89NFHvr1TudV+qev7yy+/bLvvvrvtuuuuseP04uOPP7ZXXnnFt1Nqy/T9KEyqq3pvqf3cbbfd/HcI5d23b1/bfPPNw938z2TrUeagBG9qWhfVU9+d9P1m55139t2933jjDX8GfRfQddT113eCevXq2aGHHup/hkWoypc2PVTiZ94F3B8IEgJpCbg/+IH7RQ7cBCPV5uMCtsAFan5/F2gF+++/f+CCm8AFjYG7ax24xqvaPOJ3eO+993xed9xxR/zmwE1KFrg/yoELUgP3hzpo06ZNsMceewSLFi2K7VfdPmPHjg1cAxm4oDk4/vjjAzeJRtCtWzd/PtflK3ABXiyv6l64P/rBjjvuGLgvBIFrCAPX5S14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xdZaa60y25N9owZYge2+++7rJz1TEDxnzhxT16iOHTvaww8/7LN6//33/X577bWXvfHGG37buHHj/JcDlf+EE06we++919555x3fTX2PPfYwfUlQWrp0qR177LG2aNEi//RcgeqWW25pyjPZlOj8P/30kx155JHWpUsXP5Zb53j55ZftpptuMp1fNyKqSirHv/71L9thhx1sq622soMPPjjWlUwBv7746IvSFltsYRtuuGFVWfEZAggggECJCJx77rm+vTvttNP8jVu1w0rlg+m///7b34S97LLL/E1xDVVSmxWf0m3DlVcybXGiNjTZ9p82PP6K8RqBAhIISAgUscANN9wQdOrUKVZD9yQ4GD9+vH/vAubA/a8aDBgwIPb5K6+8EtSrVy/4xz/+Edvm7ooHLhiMvXczXQZNmjSJvU/2xaeffurP5558xw757rvvgvXWWy/YYIMNAhcU++0uUPb7uZmxY/sdccQRgfsCEbz77ruxbeeff77f75ZbbvHb3CyngXtqHvvcTazmP+/atWtsWzIvEp3/zz//9HntueeesXK6mw9+m3tKHctWdVNdwvTrr78GrhdA4CYoCzcF7kaCP84F5H6bC64DF0THPucFAggggEBpC7jZpAPXhTtYsmRJDOKee+7xbUfYhuuD/fffP1hllVWCDz/80O/nngoHrreT3095KGWqDVdeybTFidrQZNr/KLThbk4Yb3fHHXeougFtuGfgPwhUKUA37wK68UFRUxfQk1l1mXYNoF1zzTXWsmVL35U4PqdDDjkk9lYTaO24447mgmr/hFfjh0aNGmWpzhYayzDuhbp3KbVt2za21QXl/mmy7qh//vnnvvu3ntKWTzpWZdlmm21iH5111ll+RnJ1g9PELCNHjvSTscRPIKKnvdU9OY5l+L8Xic6/6qqr+qcB6iYfjqnaeuut/RFaEquyJDcXiJtmTQ+Tu4Hgu9u7Lxe26667+s3lnzSE+/ITAQQQQKD0BLT8pNritddeO1Z5d5Pbvy7fXqhdVFunpM80HEpLZqnXmYYlZaoNV/7JtMWJ2tBk2n/acAmTECg8AYLpwrtmlDgFAXWXVvfoq6++2nfj1pJWAwcOrDKH9u3b+2Ba43wVgGvcsrqAh+mTTz6xv/76y3cZb9iwoekc6aRwzLFm8NZY6mTT6quvbu4psJ/5W93ZVV4t+ZGrMcfhBG7udl2lRdbM582aNbMbb7yx0n30QfkvR1XuzIcIIIAAAkUtoGFQ6q4dn5JtJ3STVvN7qE3UmsnZbsPj2+L48ibzOmz/NX8KbXgyYuyDQPQECKajd00oUQYF1KCOGDHCj/c96aSTbNCgQX4isjPPPLPSs2gSLDXaeoqtAHfatGll9nXdzuyPP/6wk08+2T8pTjeY/uKLL3z+5SdFK3PSBG80TkxPeV03bv/FQbtonchcBdMJilRhkwJuTVSmcd2u+3yFz8MNyX5JCvfnJwIIIIBAcQpowku1sZpIM1Gqrr3Q02xN4Kk21XX/znobHt8WJypvVdvKt/+04VVp8RkC0RSoHc1iUSoEMiOg2bc1s+Y+++zjl7XSRGNuHHWVmatbuGac1mRjjz/+uJ+9UxOIhP/UhcyNc/bvNXNoumnGjBm+O1vTpk1TykqTgOkJuZbq0pcHBf9unLXvVh2f0dixY62qrtjx+2b69fbbb2+///67uXHdZbLWk3RNYKakL0YrVqwo8zlvEEAAAQRKU0BDiTRZpXo2ff/99ykjaAlLrcyx33775aQNj2+LUy1s2P6rVxpteKp67I9ANAQIpqNxHShFlgTUJTt8sqyuWJpJuvwaynrSHCY9idZ4aY2xylbSnecwffPNN37m8CuvvDLcZLrLraRZueOT7tZ/8MEHsU2aAdxNrhZb93r48OE+wNeTci0loi8UWsZL9dtoo41ix1X3ItH53QRipu7cmm00TGH5NCY6TDqXguew67dmMNcM3epqrx4CKv+ECRNs8ODBsdlW1Q1cT9jVzW3evHn++DA/fiKAAAIIlJ5A2Hts6NChvk3UTfEHHnjAQ8ycOdMWL14cQ1H7pM/DpGUu1faESzCG2zP1s7q2OFEbGp67qvY/Km24yipTJdpwz8B/EKhaoMrpyfgQgQIXuOCCCwI3CVmgWb01A6jrmh24pbF8rdxT3cB1+w7cpFqBW/YqOOeccwLXcARvv/12lbV2DV6NZvP+9ttv/SyZml1cM1qfffbZgZtgJXBBcex8mk3cjRPz+2277baBezLuP3MTjPmZTV1X9UDnd+s7B647d+DuvseO1SymytPd1ffH66ebpCxwT31j+1T3ItH5NRO33NxfksA9PQ80e7e7CRC49bH9Nvf0OZg1a1bgxpcHbs1rv03u7omCP51bKiRw48L8duWheoXXQDu4pbN8md348+D666+vroh8jgACCCBQAgLuBmzgboIHbgLMYKeddgo023Xjxo0DN8lmrA15+umnA7fsYrD33nv7VTfUVp533nmxVScSMdW0DVde1bXFidpQHZdM+5/PNvz1118PXLf6QKt/qJ2WaTgbOm24riAJgcoFaumjqsNtPkWgcAV0B1ldxn744Qe/lnGDBg0SVkZduNdZZx3T0+tsJT191VPYSy+91K9Zre5rm2yySVKTbx1//PF21113+SfDbskrUz3iZzmNL7OeFOspr7qMZbM+8edM5rXGhqlLd6Kn5HqirfHtNV3HO5nzsw8CCCCAQGEJqA1X26nJNjX3hr6yuqWwKlRC7Z56S6knVDZTKm1xfDlSaf9pw+PleI1A9AWYgCz614gSpiGgQFpp/fXXrzIXNdQ1TVp+Q/+qSi1atDD3NDq2i4JcBbs1SdV9WXBPh8ssoRWe44QTTghfVvpT3a/jl+6qdMcafLDxxhtXelRlNzkqPYAPEEAAAQSKXkBteNg+VzWJpdq96trGyrCSbcPPPffcMlnU9HzVtf+04WWYeYNA5AUIpiN/iShg1AUUFO+5555VFlPBomYnVdLkW6kmHas79BrHpFlKa5KqK6Py1MRqJAQQQAABBEpFINk2XB41bYvTaf/D60AbHkrwE4FoCRBMR+t6UJoCFNh6661N/6pK8+fPt/PPP9/voonDNFPp4YcfnrC7Wvl8xo0bZ25cmO/epklZjj322Bo9Pe7du3f5rHmPAAIIIIBASQsk04YLqKZtsdp/TQaqlGr77w/6339ow+M1eI1AdAQYMx2da0FJilhAs2CHd6bDauppdXXrZWpfjSeOn9qgfv36pm5gJAQQQAABBBDIjUBN2+J02v/c1IyzIIBAOgIE0+nocSwCCCCAAAIIIIAAAggggEBJCrDOdElediqNAAIIIIAAAggggAACCCCQjgDBdDp6HIsAAggggAACCCCAAAIIIFCSAgTTJXnZqTQCCCCAAAIIIIAAAggggEA6AgTT6ehxLAIIIIAAAggggAACCCCAQEkKEEyX5GWn0ggggAACCCCAAAIIIIAAAukIEEyno8exCCCAAAIIIIAAAggggAACJSlAMF2Sl51KI4AAAggggAACCCCAAAIIpCNAMJ2OHscigAACCCCAAAIIIIAAAgiUpADBdElediqNAAIIIIAAAggg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CCCAAAIIIIAAAgiUkADBdAldbKqKAAIIIIAAAggggAACCCCQGQGC6cw4kgsCCCCAAAIIIIAAAggggEAJCRBMl9DFpqoIIIAAAggggAACCCCAAAKZESCYzowjuSCAAAIIIIAAAggggAACCJSQANgljtQAABXASURBVMF0CV1sqooAAggggAACCCCAAAIIIJAZAYLpzDiSCwIIIIAAAggggAACCCCAQAkJEEyX0MWmqggggAACCCCAAAIIIIAAApkRIJjOjCO5IIAAAggggAACCCCAAAIIlJAAwXQJXWyqigACCCCAAAIIIIAAAgggkBmBupnJhlwQyJ/Al19+aU888YS98cYbdscdd+SvIJWc+e2337ZJkybZb7/9ZjvuuKN17tzZpk6dakcccUQlR2R387Jly+yFF16wxx9/3PbZZx/r1q1bxk745ptv2muvvWYffPCBNWvWzNq0aWN77bWX1a9fPyPnyGbZM1JAMkEAAQQQSCgQxbb6p59+silTplQob4MGDaxJkybWunVrW3vttSt8Xqgb1Dbr+9L222/v2//q6vHzzz/bs88+a3PnzrVffvnFtt12W2vfvr1tvvnm1R2a9OdR/L1IuvDsiIAT4Mk0vwYFLaAAddasWXbJJZckbBDzXbkxY8bY7rvvbuuss44deOCBNnv2bNt6663thBNOyFvR1ChOmDDBrr32WluwYEFGyrFw4ULr16+f9e3b1xo3bmzDhg2z3XbbzVT/tm3b+muUiRNlo+yZKBd5IIAAAghULhDVtrphw4a+TT7//PN9GzZ+/HjTTdu33nrLrrvuOttoo41sv/32s1deeaXyyhXIJ/PmzbNbb73Vhg8fbl9//XW1pX7ooYe8zYsvvmj77ruvDRkyxFauXOm/05x++un2xx9/VJtHdTtE9feiunLzOQJlBAISAkUg0KNHj6BFixaRqslff/0VrLXWWsGxxx5bplzvv/9+4O56B7/++muZ7bl8M2fOnMD9IQhuv/32tE/7559/BltuuWWwzTbbBD/++GOF/FyjG9SuXTuYOXNmhc+S2XDPPfeU2a2mZf/hhx+Cp556qkxevEEAAQQQyJ1AFNtq1f7oo4/2beIDDzxQBuObb74JevbsGay22mrBI488UuazQnyj7x9q+92N7iqLP3r0aL/fbbfdVmG/L774InAPCIKuXbtW+CyZDeXbdB1T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qzmGK9HpzbaiH/oUgWUT+A83tH98EhFYOgEz2CrbWsldhElQRebLPOvkWB1ixhNXJ1YoSW7WJn1lWBllBnTfvn3uAo3LFKuq4Trc1h7niFfCpZznMoXhq6/EadOPrrok9IjEaMxS567gJf0oKdPV3/w8M8zMspuxm58u+s5sPLP0uL/zrH3CM8KIGXA+mRGPeKmox7vhHGWGBM6sYuOOx+p/LvzUMbNPjLdEBERABESgjMAydDW/z2ZI+o4XZL9uS9RFbxehq8sodJfCuwqdPqTvulu49AqryOizyFAOH3QkoVjzCivsjA0Y/9AGbc3TDuXRq6yK4zre1K3N/vSNYyg7lk6ft61mP3UsAmMR6M4sNNYd1I4IFBDAXaopxNny1ycYRrZHY18RN2aHEl9h8A6V4SYoEQy1EskVjs26ekKRoXphSFMuN6Sb9Ur6UVKm2S7HJB0hTm0lhjT1MXpj+w2O+4RnjOeMjKbN8rG9SPN82zGcu1zTGezIkG6jpnMiIAIiUEagTVc/++yzg5UJrcq3l2xW4Pc5to1qXsuPF6Gr8/ZX8n0lCcKG7sMEchjSlIXPPAZw3j6xzLGQ0KVn8/LN79ybLb9KZWgcM5ZOpz/ztFXaf5UTgXkJyJiel5jKj0aAlVtmTIkham5PxU0wWs0lt/d+y/ghpZ9IxCr1dmiBF0v6UVKmrYs//PCD75fJigAxx19++WVbMZ0TAREQARGYGIEhXT2kp8GVG1iLwrdS/beo/qhdERCBaRCQMT2N93zFPeWnn35aWUyxuxuRJOOpp566ZNba4m8r/i6nkJSERFYICTdwcSJx2EpniFf6LCX9KCnTdX9cytieBKOa/TPXmhu7RAREQAREYNoESnT19u3bLzuk1ei/y955dUAEROCqJqCY6av69V29nSdmhjicEOKjcNG90oRMmTHbHX1jNRy3p2VKST9KyvT1GS8BXMuaMct9dXRNBERABETg30tAuvrf+271ZCIgAuMQkDE9Dke1IgIiIAIiIAIiIAIiIAIiIAIiMCEC2md6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOARnT43BUKyIgAiIgAiIgAiIgAiIgAiIgAhMiIGN6Qi9bjyoCIiACIiACIiACIiACIiACIjAOgf8CeclNuczvB9AAAAAASUVORK5CYII=\n" + }, "metadata": {}, - "source": [ - "Not yet documented" - ] + "output_type": "display_data" } ], - "metadata": {} + "source": [ + "from eppy.useful_scripts import doc_images #no need to know this code, it just shows the image below\n", + "for_images = doc_images\n", + "for_images.display_png(for_images.plantloop) # display the image below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That diagram is not a real system. Does this script really work ?\n", + "\n", + "Try it yourself. Draw the daigram for \"../resources/idffiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlow.idf\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Names in loopdiagrams" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- [Designbuilder](http://www.designbuilder.co.uk) is an energyplus editor autogenerates object names like \"MyHouse:SAPZone1\"\n", + "- Note the \":\" in the name.\n", + "- Unfortunatley \":\" is a reserved character when making a loop diagrams. (eppy uses pydot and grapphviz which has this constraint)\n", + "- to work around this, loopdiagram will replace all \":\" with a \"__\"\n", + "- So the names in the diagram will not match the names in your file, but you can make out what is going on" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## eppyreadtest_folder.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not yet documented" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## eppyreadtest_file.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not yet documented" + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/docs/useful_scripts.py b/docs/useful_scripts.py deleted file mode 100644 index 578d1a69..00000000 --- a/docs/useful_scripts.py +++ /dev/null @@ -1,256 +0,0 @@ -from subprocess import call -import os - -# -*- coding: utf-8 -*- -# 3.0 - -# - -# Useful Scripts - -# - -# Location of the scripts - -# - -# Here are some scripts that you may find useful. They are in the folder "./eppy/useful_scripts" - -# - -# And now for some housekeeping before we start off - -# - -import os - -os.chdir("../eppy/useful_scripts") -# changes directory, so we are where the scripts are located - -# - -# you would normaly install eppy by doing -# python setup.py install -# or -# pip install eppy -# or -# easy_install eppy - -# if you have not done so, the following three lines are needed -import sys - -# pathnameto_eppy = 'c:/eppy' -pathnameto_eppy = "../../" -sys.path.append(pathnameto_eppy) - -# - -# If you look in the folder "./eppy/useful_scripts", you fill find the following scripts -# -# The scripts are: -# -# - eppy_version.py -# - idfdiff.py -# - loopdiagram.py -# - eppyreadtest_folder.py -# - eppyreadtest_file.py -# - -# - -# eppy_version.py - -# - -# Many scripts will print out some help information, if you use the --help option. Let us try that - -# - -# %%bash -# ignore the line above. It simply lets me run a command line from ipython notebook -os.system("python eppy_version.py --help") - -# - -# That was useful ! -# -# Now let us try running the program - -# - -# %%bash -# ignore the line above. It simply lets me run a command line from ipython notebook -os.system("python eppy_version.py") - -# - -# Redirecting output to a file - -# - -# Most scripts will print the output to a terminal. Sometimes we want to send the output to a file, so that we can save it for posterity. We can do that py using ">" with the filename after that. For eppy_version.py, it will look like this: - -# - -# python eppy_version.py > save_output.txt - -# - -# Some of the following scripts will generate csv or html outputs. We can direct the output to a file with .html extension and open it in a browser - -# - -# Compare two idf files - idfdiff.py - -# - -# This script will compare two idf files. The results will be displayed printed in "csv" format or in "html" format. - -# - -# You would run the script from the command line. This would be the terminal on Mac or unix, and the dos prompt on windows. Let us look at the help for this script, by typing: - -# - -# %%bash -# ignore the line above. It simply lets me run a command line from ipython notebook -os.system("python idfdiff.py -h") - -# - -# Now let us try this with two "idf" files that are slightly different. If we open them in a file comparing software, it would look like this: - -# - -from eppy.useful_scripts import ( - doc_images, -) # no need to know this code, it just shows the image below - -for_images = doc_images -for_images.display_png(for_images.filemerge) # display the image below - -# - -# There are 4 differences between the files. Let us see what idfdiff.py does with the two files. We will use the --html option to print out the diff in html format. - -# - -# %%bash -# python idfdiff.py idd file1 file2 -os.system( - "python idfdiff.py --html ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constructions.idf ../resources/idffiles/V_7_2/constructions_diff.idf" -) - -# - -# reprinting the output again for clarity: -# -#

file1 = ../resources/idffiles/V_7_2/constructions.idf

file2 = ../resources/idffiles/V_7_2/constructions_diff.idf

Object Key Object Name Field Name file1 file2
MATERIALF08 Metal surfacenot hereis here
MATERIALF08 Metal surface hahais herenot here
MATERIALG05 25mm woodConductivity0.150.155
CONSTRUCTIONExterior DoorOutside LayerF08 Metal surfaceF08 Metal surface haha
- -# - -# It does look like html :-). We need to redirect this output to a file and then open the file in a browser to see what it looks like. Displayed below is the html file - -# - -from eppy.useful_scripts import ( - doc_images, -) # no need to know this code, it just shows the image below -from IPython.display import HTML - -h = HTML(open(doc_images.idfdiff_path, "r").read()) -h - -# - -# Pretty straight forward. Scroll up and look at the origin text files, and see how idfdiff.py understands the difference - -# - -# Now let us try the same thin in csv format - -# - -# %%bash -# python idfdiff.py idd file1 file2 -os.system( - "python idfdiff.py --csv ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/constr.idf ../resources/idffiles/V_7_2/constr_diff.idf" -) - -# - -# We see the same output, but now in csv format. You can redirect it to a ".csv" file and open it up as a spreadsheet - -# - -# loopdiagram.py - -# - -# This script will draw all the loops in an idf file. It is a bit of a hack. So it will work on most files, but sometimes it will not :-(. But it is pretty useful when it works. -# -# If it does not work, send us the idf file and we'll try to fix the code -# -# Make sure [grapphviz](http://www.research.att.com/sw/tools/graphviz/) is installed for this script to work -# -# Again, we'll have to run the script from the terminal. Let us look at the help for this script - -# - -# %%bash -# ignore the line above. It simply lets me run a command line from ipython notebook -os.system("python loopdiagram.py --help") - -# - -# Pretty straightforward. Simply open png file and you will see the loop diagram. (ignore the dot file for now. it will be documented later) -# -# So let us try this out with and simple example file. We have a very simple plant loop in "../resources/idffiles/V_7_2/plantloop.idf" - -# - -# %%bash -# ignore the line above. It simply lets me run a command line from ipython notebook -os.system( - "python loopdiagram.py ../resources/iddfiles/Energy+V7_2_0.idd ../resources/idffiles/V_7_2/plantloop.idf" -) - -# - -# The script prints out it's progress. On larger files, this might take a few seconds. If we open this file, it will look like the diagram below -# -# *Note: the supply and demnd sides are not connected in the diagram, but shown seperately for clarity* - -# - -from eppy.useful_scripts import ( - doc_images, -) # no need to know this code, it just shows the image below - -for_images = doc_images -for_images.display_png(for_images.plantloop) # display the image below - -# - -# That diagram is not a real system. Does this script really work ? -# -# Try it yourself. Draw the daigram for "../resources/idffiles/V_7_2/5ZoneCAVtoVAVWarmestTempFlow.idf" - -# - -# eppyreadtest_folder.py - -# - -# Not yet documented - -# - -# eppyreadtest_file.py - -# - -# Not yet documented - - -os.chdir("../../docs") diff --git a/eppy/EPlusInterfaceFunctions/eplusdata.py b/eppy/EPlusInterfaceFunctions/eplusdata.py index da049e53..a3724761 100755 --- a/eppy/EPlusInterfaceFunctions/eplusdata.py +++ b/eppy/EPlusInterfaceFunctions/eplusdata.py @@ -15,8 +15,7 @@ from __future__ import unicode_literals import copy -from six import StringIO -from six import string_types as str +from io import StringIO import eppy.EPlusInterfaceFunctions.mylib2 as mylib2 @@ -228,7 +227,7 @@ def add2node(self, othereplus, node): def addinnode(self, otherplus, node, objectname): """add an item to the node. - example: add a new zone to the element 'ZONE' """ + example: add a new zone to the element 'ZONE'""" # do a test for unique object here newelement = otherplus.dt[node.upper()] diff --git a/eppy/EPlusInterfaceFunctions/parse_idd.py b/eppy/EPlusInterfaceFunctions/parse_idd.py index 4004f8ac..62a8072d 100755 --- a/eppy/EPlusInterfaceFunctions/parse_idd.py +++ b/eppy/EPlusInterfaceFunctions/parse_idd.py @@ -13,7 +13,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO from io import FileIO from decorator import decorator @@ -80,7 +80,7 @@ def removeblanklines(astr): def _readfname(fname): - """copied from extractidddata below. + """copied from extractidddata below. It deals with all the types of fnames""" try: if isinstance(fname, (file, StringIO)): @@ -151,7 +151,7 @@ def extractidddata(fname, debug=False): - this code is from 2004. it works. - I am trying not to change it (until I rewrite the whole thing) + I am trying not to change it (until I rewrite the whole thing) to add functionality to it, I am using decorators So if Does not integrate group data into the results (@embedgroupdata does it) diff --git a/eppy/EPlusInterfaceFunctions/structures.py b/eppy/EPlusInterfaceFunctions/structures.py index 881f1f62..9cdbc3ce 100644 --- a/eppy/EPlusInterfaceFunctions/structures.py +++ b/eppy/EPlusInterfaceFunctions/structures.py @@ -1,11 +1,10 @@ """Implements a case-insensitive dict, based on https://stackoverflow.com/a/32888599/1706564""" -from six import string_types class CaseInsensitiveDict(dict): @classmethod def _k(cls, key): - return key.upper() if isinstance(key, string_types) else key + return key.upper() if isinstance(key, str) else key def __init__(self, *args, **kwargs): super(CaseInsensitiveDict, self).__init__(*args, **kwargs) diff --git a/eppy/__init__.py b/eppy/__init__.py index 4655493f..4725b4c4 100644 --- a/eppy/__init__.py +++ b/eppy/__init__.py @@ -15,22 +15,22 @@ __author__ = """Santosh Philip""" __email__ = "santosh@noemail.com" -__version__ = "0.5.51" +__version__ = "0.5.52" -from six import StringIO +from io import StringIO import eppy def newidf(version=None): """open a new idf file - - easy way to open a new idf file for particular version. Works only id Energyplus of that version is installed. - + + easy way to open a new idf file for particular version. Works only id Energyplus of that version is installed. + Parameters ---------- version: string - version of the new file you want to create. Will work only if this version of Energyplus has been installed. + version of the new file you want to create. Will work only if this version of Energyplus has been installed. Returns ------- @@ -49,7 +49,7 @@ def newidf(version=None): def openidf(fname, idd=None, epw=None): """automatically set idd and open idf file. Uses version from idf to set correct idd It will work under the following circumstances: - + - the IDF file should have the VERSION object. - Needs the version of EnergyPlus installed that matches the IDF version. - Energyplus should be installed in the default location. diff --git a/eppy/bunch_subclass.py b/eppy/bunch_subclass.py index 970a393d..8f54ff6e 100644 --- a/eppy/bunch_subclass.py +++ b/eppy/bunch_subclass.py @@ -1,5 +1,6 @@ -# Copyright (c) 2012 Santosh Philip +# Copyright (c) 2012, 2020 Santosh Philip # Copyright (c) 2016 Jamie Bull +# Copyright (c) 2020 Cheng Cui # ======================================================================= # Distributed under the MIT License. # (See accompanying file LICENSE or copy at @@ -17,7 +18,7 @@ from munch import Munch as Bunch -from eppy.bunchhelpers import matchfieldnames +from eppy.bunchhelpers import matchfieldnames, scientificnotation import eppy.function_helpers as fh @@ -100,6 +101,7 @@ def addfunctions(abunch): "height": fh.height, # not working correctly "width": fh.width, # not working correctly "azimuth": fh.azimuth, + "true_azimuth": fh.true_azimuth, "tilt": fh.tilt, "coords": fh.getcoords, # needed for debugging } @@ -197,24 +199,20 @@ def __init__(self, obj, objls, objidd, *args, **kwargs): @property def fieldnames(self): - """Friendly name for objls. - """ + """Friendly name for objls.""" return self.objls @property def fieldvalues(self): - """Friendly name for obj. - """ + """Friendly name for obj.""" return self.obj def checkrange(self, fieldname): - """Check if the value for a field is within the allowed range. - """ + """Check if the value for a field is within the allowed range.""" return checkrange(self, fieldname) def getrange(self, fieldname): - """Get the allowed range of values for a field. - """ + """Get the allowed range of values for a field.""" return getrange(self, fieldname) def getfieldidd(self, fieldname): @@ -384,6 +382,9 @@ def __repr__(self): comments = [comm.replace("_", " ") for comm in self.objls] lines[0] = "%s," % (lines[0],) # comma after first line for i, line in enumerate(lines[1:-1]): + line = scientificnotation( + line, width=18 + ) # E+ cannot read wide numbers, convert to 1e+3 lines[i + 1] = " %s," % (line,) # indent and comma lines[-1] = " %s;" % (lines[-1],) # ';' after last line lines = lines[:1] + [line.ljust(26) for line in lines[1:]] # ljsut the lines diff --git a/eppy/bunchhelpers.py b/eppy/bunchhelpers.py index f1d12be5..efc6b22b 100644 --- a/eppy/bunchhelpers.py +++ b/eppy/bunchhelpers.py @@ -29,16 +29,16 @@ def makefieldname(namefromidd): def matchfieldnames(field_a, field_b): """Check match between two strings, ignoring case and spaces/underscores. - + Parameters ---------- a : str b : str - + Returns ------- bool - + """ normalised_a = field_a.replace(" ", "_").lower() normalised_b = field_b.replace(" ", "_").lower() @@ -84,3 +84,16 @@ def cleaniddfield(acomm): def cleancommdct(commdct): """make all keys in commdct lower case""" return [[cleaniddfield(fcomm) for fcomm in comm] for comm in commdct] + + +def scientificnotation(val, width=19): + """return val in scientific notation if it is wider than 'width' chars + otherwise return val with no change""" + vtxt = "%s" % (val) + if len(vtxt) > width: + try: + stxt = "%e" % (val,) + return stxt + except TypeError as e: + return val + return val diff --git a/eppy/easyopen.py b/eppy/easyopen.py index 53aea609..5e57e61d 100644 --- a/eppy/easyopen.py +++ b/eppy/easyopen.py @@ -20,7 +20,7 @@ import os import io from io import IOBase -from six import StringIO +from io import StringIO import eppy import eppy.modeleditor import eppy.EPlusInterfaceFunctions.parse_idd @@ -61,7 +61,7 @@ def getiddfile(versionid): def getoldiddfile(versionid): """find the IDD file of the E+ installation - E+ version 7 and earlier have the idd in /EnergyPlus-7-2-0/bin/Energy+.idd """ + E+ version 7 and earlier have the idd in /EnergyPlus-7-2-0/bin/Energy+.idd""" vlist = versionid.split(".") if len(vlist) == 1: vlist = vlist + ["0", "0"] @@ -77,7 +77,7 @@ def getoldiddfile(versionid): def easyopen(fname, idd=None, epw=None): """automatically set idd and open idf file. Uses version from idf to set correct idd It will work under the following circumstances: - + - the IDF file should have the VERSION object. - Needs the version of EnergyPlus installed that matches the IDF version. - Energyplus should be installed in the default location. diff --git a/eppy/eppy.py b/eppy/eppy.py new file mode 100644 index 00000000..dd0b80ed --- /dev/null +++ b/eppy/eppy.py @@ -0,0 +1 @@ +"""Main module.""" diff --git a/eppy/function_helpers.py b/eppy/function_helpers.py index c455986e..a9f1e02a 100644 --- a/eppy/function_helpers.py +++ b/eppy/function_helpers.py @@ -1,4 +1,5 @@ # Copyright (c) 2012 Santosh Philip +# Copyright (c) 2020 Cheng Cui # ======================================================================= # Distributed under the MIT License. # (See accompanying file LICENSE or copy at @@ -11,8 +12,8 @@ from __future__ import print_function from __future__ import unicode_literals -from six.moves import zip_longest import itertools +from itertools import zip_longest from eppy.constructions import thermal_properties from eppy.geometry import surface as g_surface import eppy.fanpower @@ -57,6 +58,25 @@ def azimuth(ddtt): return g_surface.azimuth(coords) +def true_azimuth(ddtt): + """true azimuth of the surface""" + idf = ddtt.theidf + coord_system = idf.idfobjects["GlobalGeometryRules"][0].Coordinate_System + if coord_system.lower() == "relative": + zone_name = ddtt.Zone_Name + bldg_north = idf.idfobjects["Building"][0].North_Axis + zone_rel_north = idf.getobject("Zone", zone_name).Direction_of_Relative_North + surf_azimuth = azimuth(ddtt) + return g_surface.true_azimuth(bldg_north, zone_rel_north, surf_azimuth) + elif coord_system.lower() in ("world", "absolute"): + # NOTE: "absolute" is not supported in v9.3.0 + return azimuth(ddtt) + else: + raise ValueError( + "'{:s}' is no valid value for 'Coordinate System'".format(coord_system) + ) + + def tilt(ddtt): """tilt of the surface""" coords = getcoords(ddtt) diff --git a/eppy/geometry/mcve.py b/eppy/geometry/mcve.py index ac66df35..110f41d3 100644 --- a/eppy/geometry/mcve.py +++ b/eppy/geometry/mcve.py @@ -1,6 +1,6 @@ from eppy.iddcurrent import iddcurrent from eppy.modeleditor import IDF -from six import StringIO +from io import StringIO iddsnippet = iddcurrent.iddtxt diff --git a/eppy/geometry/surface.py b/eppy/geometry/surface.py index 69211f6b..f31fe03b 100644 --- a/eppy/geometry/surface.py +++ b/eppy/geometry/surface.py @@ -1,4 +1,5 @@ # Copyright (c) 2012 Tuan Tran +# Copyright (c) 2020 Cheng Cui # This file is part of eppy. # ======================================================================= @@ -131,11 +132,17 @@ def azimuth(poly): return angle2vecs(vec_azi, vec_n) +def true_azimuth(bldg_north, zone_rel_north, surf_azimuth): + """True azimuth of a building surface""" + bldg_north = 0 if bldg_north == "" else bldg_north + zone_rel_north = 0 if zone_rel_north == "" else zone_rel_north + return (bldg_north + zone_rel_north + surf_azimuth) % 360 + + def tilt(poly): """Tilt of a polygon poly""" num = len(poly) - 1 vec = unit_normal(poly[0], poly[1], poly[num]) vec_alt = np.array([vec[0], vec[1], vec[2]]) vec_z = np.array([0, 0, 1]) - # return (90 - angle2vecs(vec_alt, vec_z)) # update by Santosh return angle2vecs(vec_alt, vec_z) diff --git a/eppy/hvacbuilder.py b/eppy/hvacbuilder.py index 626aa6f2..71baae55 100644 --- a/eppy/hvacbuilder.py +++ b/eppy/hvacbuilder.py @@ -16,7 +16,6 @@ import eppy.bunch_subclass as bunch_subclass from eppy.modeleditor import IDF import eppy.modeleditor as modeleditor -from six.moves import xrange class WhichLoopError(Exception): @@ -238,7 +237,7 @@ def connectcomponents(idf, components, fluid=None): def initinletoutlet(idf, idfobject, thisnode, force=False): """initialze values for all the inlet outlet nodes for the object. - if force == False, it willl init only if field = '' """ + if force == False, it willl init only if field = ''""" def blankfield(fieldvalue): """test for blank field""" @@ -1198,7 +1197,7 @@ def replacebranch( def main(): """the main routine""" - from six import StringIO + from io import StringIO import eppy.iddv7 as iddv7 IDF.setiddname(StringIO(iddv7.iddtxt)) diff --git a/eppy/idf_helpers.py b/eppy/idf_helpers.py index 724a65fb..793be626 100644 --- a/eppy/idf_helpers.py +++ b/eppy/idf_helpers.py @@ -14,8 +14,7 @@ from __future__ import unicode_literals import itertools -from six import iteritems -from six import StringIO +from io import StringIO from past.builtins import basestring # pip install future from eppy.modeleditor import IDF @@ -24,7 +23,7 @@ def idfobjectkeys(idf): """returns the object keys in the order they were in the IDD file - it is an ordered list of idf.idfobjects.keys() + it is an ordered list of idf.idfobjects.keys() keys of a dict are unordered, so idf.idfobjects.keys() will not work for this purpose""" return idf.model.dtls @@ -98,7 +97,7 @@ def getobjectswithnode(idf, nodekeys, nodename): def name2idfobject(idf, groupnamess=None, objkeys=None, **kwargs): """return the object, if the Name or some other field is known. - send filed in **kwargs as Name='a name', Roughness='smooth' + send field in ``**kwargs`` as Name='a name', Roughness='smooth' Returns the first find (field search is unordered) objkeys -> if objkeys=['ZONE', 'Material'], search only those groupnames -> not yet coded""" diff --git a/eppy/loops.py b/eppy/loops.py index 8e1e18f5..d6d185e0 100644 --- a/eppy/loops.py +++ b/eppy/loops.py @@ -141,7 +141,7 @@ def repeatingfields(theidd, commdct, objkey, flds): """return a list of repeating fields fld is in format 'Component %s Name' so flds = [fld % (i, ) for i in range(n)] - does not work for 'fields as indicated' """ + does not work for 'fields as indicated'""" # TODO : make it work for 'fields as indicated' if type(flds) != list: flds = [flds] # for backward compatability diff --git a/eppy/modeleditor.py b/eppy/modeleditor.py index fa0a5c71..ed19b86e 100644 --- a/eppy/modeleditor.py +++ b/eppy/modeleditor.py @@ -18,8 +18,7 @@ import platform import warnings -from six import StringIO -from six import iteritems +from io import StringIO import eppy.EPlusInterfaceFunctions.iddgroups as iddgroups import eppy.function_helpers @@ -79,8 +78,7 @@ def almostequal(first, second, places=7, printit=True): def poptrailing(lst): - """Remove trailing blank items from lst. - """ + """Remove trailing blank items from lst.""" while lst and lst[-1] == "": lst.pop() return lst @@ -198,7 +196,7 @@ def addobject1(bunchdt, data, commdct, key, **kwargs): data.dt[key].append(obj) bunchdt[key].append(abunch) # adict = getnamedargs(*args, **kwargs) - for kkey, value in iteritems(kwargs): + for kkey, value in kwargs.items(): abunch[kkey] = value return abunch @@ -232,7 +230,7 @@ def __objecthasfields(bunchdt, data, commdct, idfobject, places=7, **kwargs): def getobjects(bunchdt, data, commdct, key, places=7, **kwargs): - """get all the objects of key that matches the fields in **kwargs""" + """get all the objects of key that matches the fields in ``**kwargs``""" idfobjects = bunchdt[key] allobjs = [] for obj in idfobjects: @@ -504,8 +502,8 @@ class IDF(object): """ The IDF class holds all the information about an EnergyPlus IDF. - Class attributes - --------------- + Attributes + ---------- iddname : str Name of the IDD currently being used by eppy. As a class attribute, this is set for all IDFs which are currently being processed and cannot be @@ -515,8 +513,8 @@ class IDF(object): block : list Field names in the IDD. - Instance attributes - ------------------- + + idfname : str Path to the IDF file. idfobjects : list @@ -733,7 +731,7 @@ def newidfobject(self, key, aname="", defaultvalues=True, **kwargs): This parameter is not used. It is left there for backward compatibility. defaultvalues: boolean - default is True. If True default values WILL be set. + default is True. If True default values WILL be set. If False, default values WILL NOT be set **kwargs Keyword arguments in the format `field=value` used to set the value @@ -862,8 +860,7 @@ def removeextensibles(self, key, name): """Methods to do with outputting an IDF.""" def printidf(self): - """Print the IDF. - """ + """Print the IDF.""" print(self.idfstr()) def idfstr(self): @@ -953,7 +950,7 @@ def save(self, filename=None, lineendings="default", encoding="latin-1"): filename.write(s.decode(encoding)) def saveas(self, filename, lineendings="default", encoding="latin-1"): - """ Save the IDF as a text file with the filename passed. + """Save the IDF as a text file with the filename passed. Parameters ---------- @@ -995,13 +992,12 @@ def savecopy(self, filename, lineendings="default", encoding="latin-1"): @wrapped_help_text(run) def run(self, **kwargs): - """ - Run an IDF file with a given EnergyPlus weather file. This is a + """Run an IDF file with a given EnergyPlus weather file. This is a wrapper for the EnergyPlus command line interface. Parameters ---------- - **kwargs + kwargs : See eppy.runner.functions.run() """ @@ -1018,11 +1014,11 @@ def run(self, **kwargs): def getiddgroupdict(self): """Return a idd group dictionary sample: {'Plant-Condenser Loops': ['PlantLoop', 'CondenserLoop'], - 'Compliance Objects': ['Compliance:Building'], 'Controllers': - ['Controller:WaterCoil', - 'Controller:OutdoorAir', - 'Controller:MechanicalVentilation', - 'AirLoopHVAC:ControllerList'], + 'Compliance Objects': ['Compliance:Building'], 'Controllers': + ['Controller:WaterCoil', + 'Controller:OutdoorAir', + 'Controller:MechanicalVentilation', + 'AirLoopHVAC:ControllerList'], ...} Returns diff --git a/eppy/notes.txt b/eppy/notes.txt index 6e3504be..296ddad2 100644 --- a/eppy/notes.txt +++ b/eppy/notes.txt @@ -1,3 +1,13 @@ +2020-08-30 +---------- + +for only python3 version + +python3 -m venv ~/venvs/eppy3_1 # first time +source ~/venvs/eppy3_1/bin/activate # all other times + +removed six + 2018-03-21 ---------- On windows pip is giving a windowserror diff --git a/eppy/pytest_helpers.py b/eppy/pytest_helpers.py index 6618bb5a..6dfd695c 100755 --- a/eppy/pytest_helpers.py +++ b/eppy/pytest_helpers.py @@ -1,5 +1,5 @@ -# Copyright (c) 2012 Santosh Philip -# Copyright (c) 2016 Jamie Bull +# Copyright (c) 2011 Santosh Philip +# Copyright (c) 2015 Jamie Bull """helpers for pytest""" @@ -14,7 +14,7 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) PATH_TO_EPPY = os.path.join(THIS_DIR) -INTEGRATION_TESTS = os.path.join(PATH_TO_EPPY, "tests", "integration") +INTEGRATION_TESTS = os.path.join(PATH_TO_EPPY, os.pardir, "tests", "integration") INTEGRATION_FILES = os.path.join(INTEGRATION_TESTS, "data2test") RESOURCES_DIR = os.path.join(PATH_TO_EPPY, "resources") @@ -26,11 +26,11 @@ def do_integration_tests(): """ Check whether the 'EPPY_INTEGRATION' environment variable has been set to do integration tests. - + Returns ------- bool - + """ return os.getenv("EPPY_INTEGRATION", False) diff --git a/eppy/resources/idffiles/V_7_2/plantloop.dot b/eppy/resources/idffiles/V_7_2/plantloop.dot index 06340e8f..ec668f8b 100644 --- a/eppy/resources/idffiles/V_7_2/plantloop.dot +++ b/eppy/resources/idffiles/V_7_2/plantloop.dot @@ -1,38 +1,38 @@ digraph G { -sb1_pipe [shape=box3d, label=sb1_pipe]; -sb3_pipe_outlet [shape=plaintext, label=sb3_pipe_outlet]; -sb0_pipe [shape=box3d, label=sb0_pipe]; -"p_loop Demand Outlet" [shape=plaintext, label="p_loop Demand Outlet"]; -db1_pipe_inlet [shape=plaintext, label=db1_pipe_inlet]; -p_loop_supply_splitter [shape=box3d, label=p_loop_supply_splitter]; -db2_pipe [shape=box3d, label=db2_pipe]; -db0_pipe [shape=box3d, label=db0_pipe]; -sb0_pipe_outlet [shape=plaintext, label=sb0_pipe_outlet]; -db1_pipe [shape=box3d, label=db1_pipe]; db0_pipe_outlet [shape=plaintext, label=db0_pipe_outlet]; -"p_loop Supply Inlet" [shape=plaintext, label="p_loop Supply Inlet"]; -sb3_pipe_inlet [shape=plaintext, label=sb3_pipe_inlet]; +db1_pipe_inlet [shape=plaintext, label=db1_pipe_inlet]; db1_pipe_outlet [shape=plaintext, label=db1_pipe_outlet]; -p_loop_supply_mixer [shape=box3d, label=p_loop_supply_mixer]; -db2_pipe_outlet [shape=plaintext, label=db2_pipe_outlet]; -p_loop_demand_mixer [shape=box3d, label=p_loop_demand_mixer]; -"p_loop Demand Inlet" [shape=plaintext, label="p_loop Demand Inlet"]; -sb1_pipe_outlet [shape=plaintext, label=sb1_pipe_outlet]; -p_loop_demand_splitter [shape=box3d, label=p_loop_demand_splitter]; -sb3_pipe [shape=box3d, label=sb3_pipe]; db2_pipe_inlet [shape=plaintext, label=db2_pipe_inlet]; -db4_pipe [shape=box3d, label=db4_pipe]; -sb2_pipe [shape=box3d, label=sb2_pipe]; -sb4_pipe [shape=box3d, label=sb4_pipe]; +db2_pipe_outlet [shape=plaintext, label=db2_pipe_outlet]; db3_pipe_inlet [shape=plaintext, label=db3_pipe_inlet]; +db3_pipe_outlet [shape=plaintext, label=db3_pipe_outlet]; +db4_pipe_inlet [shape=plaintext, label=db4_pipe_inlet]; +"p_loop Demand Inlet" [shape=plaintext, label="p_loop Demand Inlet"]; +"p_loop Demand Outlet" [shape=plaintext, label="p_loop Demand Outlet"]; +"p_loop Supply Inlet" [shape=plaintext, label="p_loop Supply Inlet"]; "p_loop Supply Outlet" [shape=plaintext, label="p_loop Supply Outlet"]; +sb0_pipe_outlet [shape=plaintext, label=sb0_pipe_outlet]; +sb1_pipe_inlet [shape=plaintext, label=sb1_pipe_inlet]; +sb1_pipe_outlet [shape=plaintext, label=sb1_pipe_outlet]; sb2_pipe_inlet [shape=plaintext, label=sb2_pipe_inlet]; -sb4_pipe_inlet [shape=plaintext, label=sb4_pipe_inlet]; sb2_pipe_outlet [shape=plaintext, label=sb2_pipe_outlet]; -db4_pipe_inlet [shape=plaintext, label=db4_pipe_inlet]; +sb3_pipe_inlet [shape=plaintext, label=sb3_pipe_inlet]; +sb3_pipe_outlet [shape=plaintext, label=sb3_pipe_outlet]; +sb4_pipe_inlet [shape=plaintext, label=sb4_pipe_inlet]; +db0_pipe [shape=box3d, label=db0_pipe]; +db1_pipe [shape=box3d, label=db1_pipe]; +db2_pipe [shape=box3d, label=db2_pipe]; db3_pipe [shape=box3d, label=db3_pipe]; -sb1_pipe_inlet [shape=plaintext, label=sb1_pipe_inlet]; -db3_pipe_outlet [shape=plaintext, label=db3_pipe_outlet]; +db4_pipe [shape=box3d, label=db4_pipe]; +p_loop_supply_splitter [shape=box3d, label=p_loop_supply_splitter]; +p_loop_demand_splitter [shape=box3d, label=p_loop_demand_splitter]; +p_loop_supply_mixer [shape=box3d, label=p_loop_supply_mixer]; +p_loop_demand_mixer [shape=box3d, label=p_loop_demand_mixer]; +sb0_pipe [shape=box3d, label=sb0_pipe]; +sb1_pipe [shape=box3d, label=sb1_pipe]; +sb2_pipe [shape=box3d, label=sb2_pipe]; +sb3_pipe [shape=box3d, label=sb3_pipe]; +sb4_pipe [shape=box3d, label=sb4_pipe]; "p_loop Supply Inlet" -> sb0_pipe; sb0_pipe -> sb0_pipe_outlet; sb1_pipe_inlet -> sb1_pipe; diff --git a/eppy/resources/idffiles/V_7_2/plantloop.png b/eppy/resources/idffiles/V_7_2/plantloop.png index 71250e45..2c811a7b 100644 Binary files a/eppy/resources/idffiles/V_7_2/plantloop.png and b/eppy/resources/idffiles/V_7_2/plantloop.png differ diff --git a/eppy/resources/idffiles/V_7_2/smallfile.idf b/eppy/resources/idffiles/V_7_2/smallfile.idf index 6787d8c2..39ef67c7 100644 --- a/eppy/resources/idffiles/V_7_2/smallfile.idf +++ b/eppy/resources/idffiles/V_7_2/smallfile.idf @@ -1,17 +1,18 @@ +!- Darwin Line endings -VERSION, +VERSION, 7.3; !- Version Identifier -SIMULATIONCONTROL, +SIMULATIONCONTROL, Yes, !- Do Zone Sizing Calculation Yes, !- Do System Sizing Calculation Yes, !- Do Plant Sizing Calculation No, !- Run Simulation for Sizing Periods Yes; !- Run Simulation for Weather File Run Periods -BUILDING, +BUILDING, Empire State Building, !- Name - 30.0, !- North Axis + 30, !- North Axis City, !- Terrain 0.04, !- Loads Convergence Tolerance Value 0.4, !- Temperature Convergence Tolerance Value @@ -19,9 +20,9 @@ BUILDING, 25, !- Maximum Number of Warmup Days 6; !- Minimum Number of Warmup Days -SITE:LOCATION, +SITE:LOCATION, CHICAGO_IL_USA TMY2-94846, !- Name 41.78, !- Latitude -87.75, !- Longitude - -6.0, !- Time Zone - 190.0; !- Elevation + -6, !- Time Zone + 190; !- Elevation \ No newline at end of file diff --git a/eppy/results/readhtml.py b/eppy/results/readhtml.py index 5d196451..440722c7 100644 --- a/eppy/results/readhtml.py +++ b/eppy/results/readhtml.py @@ -13,7 +13,6 @@ import string import collections -import six from bs4 import BeautifulSoup, NavigableString, Tag @@ -27,7 +26,7 @@ def tdbr2EOL(td): """convert the
in block into line ending (EOL = \n)""" for br in td.find_all("br"): br.replace_with("\n") - txt = six.text_type(td) # make it back into test + txt = str(td) # make it back into test # would be unicode(id) in python2 soup = BeautifulSoup(txt, "lxml") # read it as a BeautifulSoup ntxt = soup.find("td") # BeautifulSoup has lot of other html junk. @@ -130,8 +129,9 @@ def lines_table(html_doc, tofloat=True): """return a list of [(lines, table), .....] lines = all the significant lines before the table. - These are lines between this table and - the previous table or 'hr' tag + These are lines between this table and + the previous table or 'hr' tag + table = rows -> [[cell1, cell2, ..], [cell1, cell2, ..], ..] The lines act as a description for what is in the table diff --git a/eppy/runner/run_functions.py b/eppy/runner/run_functions.py index fd2fbf43..cc0b2f39 100644 --- a/eppy/runner/run_functions.py +++ b/eppy/runner/run_functions.py @@ -21,6 +21,8 @@ import sys import tempfile +from io import StringIO + try: import multiprocessing as mp except ImportError: @@ -122,8 +124,7 @@ def paths_from_version(version): def wrapped_help_text(wrapped_func): - """Decorator to pass through the documentation from a wrapped function. - """ + """Decorator to pass through the documentation from a wrapped function.""" def decorator(wrapper_func): """The decorator. @@ -347,6 +348,9 @@ def run( cmd.extend([args[arg]]) cmd.extend([idf_path]) + # send stdout to tmp filehandle to avoid issue #245 + tmp_err = StringIO() + sys.stderr = tmp_err try: if verbose == "v": print("\r\n" + " ".join(cmd) + "\r\n") @@ -354,23 +358,23 @@ def run( elif verbose == "q": check_call(cmd, stdout=open(os.devnull, "w")) except CalledProcessError: - message = parse_error(output_dir) + message = parse_error(tmp_err, output_dir) raise EnergyPlusRunError(message) finally: + sys.stderr = sys.__stderr__ os.chdir(cwd) return "OK" -def parse_error(output_dir): +def parse_error(tmp_err, output_dir): """Add contents of stderr and eplusout.err and put it in the exception message. + :param tmp_err: file-like :param output_dir: str :return: str """ - sys.stderr.seek(0) - std_err = sys.stderr.read().decode("utf-8") - err_file = os.path.join(output_dir, "*out.err") - err_file = next(iter(glob.glob(err_file)), None) + std_err = tmp_err.getvalue() + err_file = os.path.join(output_dir, "eplusout.err") if os.path.isfile(err_file): with open(err_file, "r") as f: ep_err = f.read() diff --git a/eppy/simplesurface.py b/eppy/simplesurface.py index 05b9fb4b..03603854 100644 --- a/eppy/simplesurface.py +++ b/eppy/simplesurface.py @@ -93,7 +93,7 @@ def fsdorigin(fsdobject, setto000=False): def wallexterior(idf, bsdobject, deletebsd=True, setto000=False): - """return an wall:exterior object if the (buildingsurface:detailed) is + """return an wall:exterior object if the (buildingsurface:detailed) is an exterior wall""" # ('WALL:EXTERIOR', Wall, Outdoors) # test if it is an exterior wall @@ -120,7 +120,7 @@ def wallexterior(idf, bsdobject, deletebsd=True, setto000=False): def walladiabatic(idf, bsdobject, deletebsd=True, setto000=False): - """return a wall:adiabatic if bsdobject (buildingsurface:detailed) is an + """return a wall:adiabatic if bsdobject (buildingsurface:detailed) is an adibatic wall""" # ('WALL:ADIABATIC',Wall, Adiabatic) # test if it is an adiabatic wall @@ -147,7 +147,7 @@ def walladiabatic(idf, bsdobject, deletebsd=True, setto000=False): def wallunderground(idf, bsdobject, deletebsd=True, setto000=False): - """return a wall:underground if bsdobject (buildingsurface:detailed) is an + """return a wall:underground if bsdobject (buildingsurface:detailed) is an underground wall""" # ('WALL:UNDERGROUND', Wall, s.startswith('Ground')) # test if it is an underground wall @@ -174,7 +174,7 @@ def wallunderground(idf, bsdobject, deletebsd=True, setto000=False): def wallinterzone(idf, bsdobject, deletebsd=True, setto000=False): - """return an wall:interzone object if the bsd (buildingsurface:detailed) + """return an wall:interzone object if the bsd (buildingsurface:detailed) is an interaone wall""" # ('WALL:INTERZONE', Wall, Surface OR Zone OR OtherSideCoefficients) # test if it is an exterior wall @@ -205,7 +205,7 @@ def wallinterzone(idf, bsdobject, deletebsd=True, setto000=False): def roof(idf, bsdobject, deletebsd=True, setto000=False): - """return an roof object if the bsd (buildingsurface:detailed) is + """return an roof object if the bsd (buildingsurface:detailed) is a roof""" # ('ROOF', Roof, None or Outdoor) # test if it is aroof @@ -233,7 +233,7 @@ def roof(idf, bsdobject, deletebsd=True, setto000=False): def ceilingadiabatic(idf, bsdobject, deletebsd=True, setto000=False): - """return a ceiling:adiabatic if bsdobject (buildingsurface:detailed) is an + """return a ceiling:adiabatic if bsdobject (buildingsurface:detailed) is an adiabatic ceiling""" # ('CEILING:ADIABATIC', Ceiling, Adiabatic) # test if it is an adiabatic ceiling @@ -261,7 +261,7 @@ def ceilingadiabatic(idf, bsdobject, deletebsd=True, setto000=False): # ('CEILING:INTERZONE', Ceiling, Surface OR Zone) def ceilinginterzone(idf, bsdobject, deletebsd=True, setto000=False): - """return an ceiling:interzone object if the bsd (buildingsurface:detailed) + """return an ceiling:interzone object if the bsd (buildingsurface:detailed) is an interzone ceiling""" # ('WALL:INTERZONE', Wall, Surface OR Zone OR OtherSideCoefficients) # test if it is an exterior wall @@ -292,7 +292,7 @@ def ceilinginterzone(idf, bsdobject, deletebsd=True, setto000=False): def floorgroundcontact(idf, bsdobject, deletebsd=True, setto000=False): - """return a wall:adiabatic if bsdobject (buildingsurface:detailed) is an + """return a wall:adiabatic if bsdobject (buildingsurface:detailed) is an adibatic wall""" # ('FLOOR:GROUNDCONTACT', Floor, s.startswith('Ground')) # test if it is an underground wall @@ -319,7 +319,7 @@ def floorgroundcontact(idf, bsdobject, deletebsd=True, setto000=False): def flooradiabatic(idf, bsdobject, deletebsd=True, setto000=False): - """return a floor:adiabatic if bsdobject (buildingsurface:detailed) is an + """return a floor:adiabatic if bsdobject (buildingsurface:detailed) is an adibatic floor""" # ('FLOOR:ADIABATIC', Floor, Adiabatic) # test if it is an adiabatic wall @@ -346,7 +346,7 @@ def flooradiabatic(idf, bsdobject, deletebsd=True, setto000=False): def floorinterzone(idf, bsdobject, deletebsd=True, setto000=False): - """return an floor:interzone object if the bsd (buildingsurface:detailed) + """return an floor:interzone object if the bsd (buildingsurface:detailed) is an interaone floor""" # ('FLOOR:INTERZONE', Floor, Surface OR Zone OR OtherSideCoefficients) # test if it is an exterior wall @@ -377,7 +377,7 @@ def floorinterzone(idf, bsdobject, deletebsd=True, setto000=False): def window(idf, fsdobject, deletebsd=True, setto000=False): - """return an window object if the fsd (fenestrationsurface:detailed) is + """return an window object if the fsd (fenestrationsurface:detailed) is a window""" # ('WINDOW', Window, None) if fsdobject.Surface_Type.upper() == "WINDOW": # Surface_Type == w @@ -400,7 +400,7 @@ def window(idf, fsdobject, deletebsd=True, setto000=False): def door(idf, fsdobject, deletebsd=True, setto000=False): - """return an door object if the fsd (fenestrationsurface:detailed) is + """return an door object if the fsd (fenestrationsurface:detailed) is a door""" # ('DOOR', Door, None) # test if it is aroof @@ -422,7 +422,7 @@ def door(idf, fsdobject, deletebsd=True, setto000=False): def glazeddoor(idf, fsdobject, deletebsd=True, setto000=False): - """return an glazeddoor object if the fsd (fenestrationsurface:detailed) is + """return an glazeddoor object if the fsd (fenestrationsurface:detailed) is a glassdoor""" # ('WINDOW', glassdoor, None) # test if it is glassdoor @@ -467,7 +467,7 @@ def simplesurface(idf, bsd, deletebsd=True, setto000=False): def simplefenestration(idf, fsd, deletebsd=True, setto000=False): - """convert a bsd (fenestrationsurface:detailed) into a simple + """convert a bsd (fenestrationsurface:detailed) into a simple fenestrations""" funcs = (window, door, glazeddoor) for func in funcs: diff --git a/eppy/useful_scripts/idfdiff.py b/eppy/useful_scripts/idfdiff.py index 5e5b7c19..ca6c6c9f 100644 --- a/eppy/useful_scripts/idfdiff.py +++ b/eppy/useful_scripts/idfdiff.py @@ -75,8 +75,16 @@ def getkey(self, item): return self.dtlsorder[item[0]] # item[0] is the object key -def makecsvdiffs(thediffs, dtls, n1, n2): +def makecsvdiffs(thediffs, idf1, idf2): """return the csv to be displayed""" + dtls = idf1.model.dtls # undocumented variable + return makecsvdiffs_raw(thediffs, dtls, idf1.idfname, idf2.idfname) + + +def makecsvdiffs_raw(thediffs, dtls, n1, n2): + """return the csv to be displayed - the args here are tricky + This function is called by makecsvdiffs. + Best not to call directly""" def ishere(val): if val == None: @@ -145,6 +153,15 @@ def idfdiffs(idf1, idf2): return thediffs +def makecsv(csvdiffs): + """retun the csv of the diffs""" + lines = [] + for row in csvdiffs: + line = ",".join([str(cell) for cell in row]) + lines.append(line) + return "\n".join(lines) + + def printcsv(csvdiffs): """print the csv""" for row in csvdiffs: @@ -171,8 +188,8 @@ def row2table(soup, table, row): td.append(attr) -def printhtml(csvdiffs): - """print the html""" +def makehtmlsoup(csvdiffs): + """make the html soup""" soup = BeautifulSoup() html = Tag(soup, name="html") para1 = Tag(soup, name="p") @@ -191,9 +208,23 @@ def printhtml(csvdiffs): row = [str(cell) for cell in row] row2table(soup, table, row) # print soup.prettify() + return soup + + +def printhtml(csvdiffs): + """print the html""" + soup = makehtmlsoup(csvdiffs) print(soup) +def htmlinnotebook(soup): + """display the html in jupyter notebook""" + from IPython.core.display import display, HTML + + soupstr = str(soup) + display(HTML(soupstr)) + + if __name__ == "__main__": # do the argparse stuff parser = argparse.ArgumentParser(usage=None, description=__doc__) @@ -232,9 +263,8 @@ def printhtml(csvdiffs): raise IDDMismatchError(astr) # TODO What id they have different idd files ? - dtls = idf1.model.dtls # undocumented variable thediffs = idfdiffs(idf1, idf2) - csvdiffs = makecsvdiffs(thediffs, dtls, idf1.idfname, idf2.idfname) + csvdiffs = makecsvdiffs(thediffs, idf1, idf2) if nspace.csv: printcsv(csvdiffs) elif nspace.html: diff --git a/eppy/useful_scripts/loopdiagram.py b/eppy/useful_scripts/loopdiagram.py index 87877bac..51b5138d 100644 --- a/eppy/useful_scripts/loopdiagram.py +++ b/eppy/useful_scripts/loopdiagram.py @@ -29,11 +29,8 @@ import eppy.EPlusInterfaceFunctions from eppy.EPlusInterfaceFunctions import readidf -try: - import pydot -except ImportError: - import pydot3k as pydot -from six import string_types +# import pydot3k as pydot +import pydot import eppy.loops as loops @@ -160,16 +157,16 @@ def makediagram(edges): def transpose2d(mtx): """Transpose a 2d matrix - [ - [1,2,3], - [4,5,6] - ] - becomes - [ - [1,4], - [2,5], - [3,6] - ] + [ + [1,2,3], + [4,5,6] + ] + becomes + [ + [1,4], + [2,5], + [3,6] + ] """ return zip(*mtx) @@ -512,7 +509,7 @@ def replace_colon(s, replacewith="__"): def clean_edges(arg): - if isinstance(arg, string_types): + if isinstance(arg, str): return replace_colon(arg) try: return tuple(clean_edges(x) for x in arg) diff --git a/eplus_enhancements.txt b/hold/eplus_enhancements.txt similarity index 100% rename from eplus_enhancements.txt rename to hold/eplus_enhancements.txt diff --git a/flake8.sh b/hold/flake8.sh similarity index 100% rename from flake8.sh rename to hold/flake8.sh diff --git a/git_notes.txt b/hold/git_notes.txt similarity index 100% rename from git_notes.txt rename to hold/git_notes.txt diff --git a/release_notes.txt b/hold/release_notes.txt similarity index 100% rename from release_notes.txt rename to hold/release_notes.txt diff --git a/thinkpot.txt b/hold/thinkpot.txt similarity index 100% rename from thinkpot.txt rename to hold/thinkpot.txt diff --git a/todo_pytests.txt b/hold/todo_pytests.txt similarity index 100% rename from todo_pytests.txt rename to hold/todo_pytests.txt diff --git a/integration.sh b/integration.sh deleted file mode 100644 index fa49715f..00000000 --- a/integration.sh +++ /dev/null @@ -1,2 +0,0 @@ -py.test ./eppy/tests/EPlusInterfaceFunctions_tests/integration.py -py.test ./eppy/tests/integration/integration.py diff --git a/newfunctions.txt b/newfunctions.txt deleted file mode 100644 index d49d34a1..00000000 --- a/newfunctions.txt +++ /dev/null @@ -1,9 +0,0 @@ -This file has a list of new functions that have not yet been documented -2013-12-21 ----------- -old but not documented -IDF.outtype -2013-11-24 ----------- -- IDF.initread(), IDF.initnew(), IDF.intreadtxt -- surface.height surface.width \ No newline at end of file diff --git a/no_comm.txt b/no_comm.txt deleted file mode 100644 index b8276c97..00000000 --- a/no_comm.txt +++ /dev/null @@ -1,465 +0,0 @@ -0 True 1ZoneEvapCooler.idf -1 True 1ZoneParameterAspect.idf -2 True 1ZoneUncontrolled.idf -3 True 1ZoneUncontrolled_DD2009.idf -4 True 1ZoneUncontrolled_DDChanges.idf -5 True 1ZoneUncontrolled_FCfactor_Slab_UGWall.idf -6 True 1ZoneUncontrolled_win_1.idf -7 True 1ZoneUncontrolled_win_2.idf -8 True 1ZoneUncontrolledCondFDWithVariableKat24C.idf -9 True 1ZoneUncontrolledFourAlgorithms.idf -10 True 1ZoneUncontrolledResLayers.idf -11 True 1ZoneWith14ControlledHeat-CoolPanels.idf -this node -END LEAD INPUT-is not present in base dictionary -this node -END SIMULATION DATA-is not present in base dictionary -90- : Floor:Adiabatic, -90- : End Lead Input; -12 False 4ZoneWithShading_Simple_1.idf -this node -END LEAD INPUT-is not present in base dictionary -this node -END SIMULATION DATA-is not present in base dictionary -99- : Floor:GroundContact, -99- : End Lead Input; -13 False 4ZoneWithShading_Simple_2.idf -14 True 5Zone_Transformer.idf -15 True 5ZoneAirCooled.idf -16 True 5ZoneAirCooled_UniformLoading.idf -17 True 5ZoneAirCooled_VRPSizing.idf -18 True 5ZoneAirCooled_VRPSizing_MaxZd.idf -19 True 5ZoneAirCooledConvCoef.idf -20 True 5ZoneAirCooledConvCoefPIU.idf -21 True 5ZoneAirCooledDemandLimiting.idf -22 True 5ZoneAirCooledWithSlab.idf -23 True 5ZoneAutoDXVAV.idf -24 True 5ZoneBoilerOutsideAirReset.idf -25 True 5ZoneBranchSupplyPumps.idf -26 True 5ZoneCAV_MaxTemp.idf -27 True 5ZoneCAVtoVAVWarmestTempFlow.idf -28 True 5ZoneCoolBeam.idf -29 True 5ZoneCostEst.idf -30 True 5ZoneDDCycOnAny.idf -31 True 5ZoneDDCycOnOne.idf -32 True 5ZoneDesignInputCoolingCoil.idf -33 True 5ZoneDetailedIceStorage.idf -34 True 5ZoneDetailedIceStorage2.idf -35 True 5ZoneEconomicsTariffAndLifeCycleCosts.idf -36 True 5ZoneElectricBaseboard.idf -37 True 5ZoneEndUses.idf -38 True 5ZoneEngChill.idf -39 True 5ZoneFPIU.idf -40 True 5ZoneGeometryTransform.idf -41 True 5ZoneIceStorage.idf -42 True 5ZoneNightVent1.idf -43 True 5ZoneNightVent2.idf -44 True 5ZoneNightVent3.idf -45 True 5ZoneReturnFan.idf -46 True 5ZoneSteamBaseboard.idf -47 True 5ZoneSupRetPlenRAB.idf -48 True 5ZoneSupRetPlenVSATU.idf -49 True 5ZoneTDV.idf -50 True 5ZoneVAV-ChilledWaterStorage-Mixed.idf -51 True 5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MaxZd.idf -52 True 5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MultiPath.idf -53 True 5ZoneVAV-ChilledWaterStorage-Stratified.idf -54 True 5ZoneVAV-Pri-SecLoop.idf -55 True 5ZoneWarmest.idf -56 True 5ZoneWarmestVFD.idf -57 True 5ZoneWarmestVFD_FCMAuto.idf -58 True 5ZoneWaterCooled_Baseboard.idf -59 True 5ZoneWaterCooled_HighRHControl.idf -60 True 5ZoneWaterCooled_MultizoneAverageRHControl.idf -61 True 5ZoneWaterCooled_MultizoneMinMaxRHControl.idf -62 True 5ZoneWaterLoopHeatPump.idf -63 True 5zoneWaterSystems.idf -64 True 5ZoneWLHPPlantLoopTower.idf -65 True AbsorptionChiller.idf -66 True ActiveTrombeWall.idf -67 True AirCooledElectricChiller.idf -68 True AirEconomizerFaults_RefBldgLargeOfficeNew2004_Chicago.idf -69 True AirEconomizerWithMaxMinOAFractions.idf -70 True AirflowNetwork3zVent.idf -71 True AirflowNetwork3zVentAutoWPC.idf -72 True AirflowNetwork_Multizone_HorizontalOpening.idf -73 True AirflowNetwork_MultiZone_House.idf -74 True AirflowNetwork_MultiZone_House_OvercoolDehumid.idf -75 True AirflowNetwork_MULTIZONE_House_TwoSpeed.idf -76 True AirflowNetwork_MultiZone_SmallOffice.idf -77 True AirflowNetwork_MultiZone_SmallOffice_CoilHXAssistedDX.idf -78 True AirflowNetwork_MultiZone_SmallOffice_GenericContam.idf -79 True AirflowNetwork_MultiZone_SmallOffice_HeatRecoveryHXSL.idf -80 True AirflowNetwork_MultiZone_SmallOffice_VAV.idf -81 True AirflowNetwork_Simple_House.idf -82 True AirflowNetwork_Simple_SmallOffice.idf -83 True AirflowWindowsAndBetweenGlassBlinds.idf -84 True AirflowWindowsAndBetweenGlassShades.idf -85 True BaseBoardElectric.idf -86 True CentralChillerHeaterSystem_Cooling_Heating.idf -87 True CentralChillerHeaterSystem_Simultaneous_Cooling_Heating.idf -88 True ChangeoverBypassVAV.idf -89 True ChangeoverBypassVAV_MaxTemp.idf -90 True CmplxGlz_Daylighting_SouthVB45deg.idf -91 True CmplxGlz_MeasuredDeflectionAndShading.idf -92 True CmplxGlz_SchedSurfGains.idf -93 True CmplxGlz_SingleZone_Deflection.idf -94 True CmplxGlz_SingleZone_DoubleClearAir.idf -95 True CmplxGlz_SingleZone_Vacuum.idf -96 True CmplxGlz_SmOff_IntExtShading.idf -97 True CoilWaterDesuperheating.idf -98 True CommonPipe_Pri-Sec.idf -99 True CompSetPtControl.idf -100 True CondFD1ZonePurchAirAutoSizeWithPCM.idf -101 True Convection.idf -102 True ConvectionAdaptiveSmallOffice.idf -103 True CoolingTower.idf -104 True CoolingTower_FluidBypass.idf -105 True CoolingTower_MerkelVariableSpeed.idf -106 True CoolingTower_SingleSpeed_MultiCell.idf -107 True CoolingTower_TwoSpeed.idf -108 True CoolingTower_TwoSpeed_CondEntTempReset.idf -109 True CoolingTower_TwoSpeed_MultiCell.idf -110 True CoolingTower_VariableSpeed.idf -111 True CoolingTower_VariableSpeed_CondEntTempReset.idf -112 True CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf -113 True CoolingTower_VariableSpeed_MultiCell.idf -114 True CoolingTowerDryBulbRangeOp.idf -115 True CoolingTowerNomCap.idf -116 True CoolingTowerRHRangeOp.idf -117 True CoolingTowerWetBulbRangeOp.idf -118 True CoolingTowerWithDBDeltaTempOp.idf -119 True CoolingTowerWithWBDeltaTempOp.idf -120 True CooltowerSimpleTest.idf -121 True CooltowerSimpleTestwithVentilation.idf -122 True CrossVent_1Zone_AirflowNetwork.idf -123 True CrossVent_1Zone_AirflowNetwork_with2CrossflowJets.idf -124 True CustomSolarVisibleSpectrum_RefBldgSmallOfficeNew2004_Chicago.idf -125 True CVRhMinHum.idf -126 True DaylightingDeviceShelf.idf -127 True DaylightingDeviceTubular.idf -128 True DDAutoSize.idf -129 True DElight-Detailed-Comparison.idf -130 True DElightCFSLightShelf.idf -131 True DElightCFSWindow.idf -132 True DesiccantCVRh.idf -133 True DesiccantCVRhZoneRHCtrl.idf -134 True DesiccantDehumidifierWithCompanionCoil.idf -135 True DirectIndirectEvapCoolers.idf -136 True DirectIndirectEvapCoolersVSAS.idf -137 True DisplacementVent_1ZoneOffice.idf -138 True DisplacementVent_Nat_AirflowNetwork.idf -139 True DisplacementVent_Nat_AirflowNetwork_AdaptiveComfort.idf -140 True DisplacementVent_VAV.idf -141 True DOASDualDuctSchool.idf -142 True DOASDXCOIL_wADPBFMethod.idf -143 True DOAToFanCoilInlet.idf -144 True DOAToFanCoilSupply.idf -145 True DualDuctConstVolDamper.idf -146 True DualDuctConstVolGasHC.idf -147 True DualDuctVarVolDamper.idf -148 True DualDuctWaterCoils.idf -149 True DXCoilSystemAuto.idf -150 True DynamicClothing.idf -151 True EarthTubeSimpleTest.idf -152 True EcoroofOrlando.idf -153 True ElectricChiller.idf -154 True ElectricEIRChiller.idf -155 True EMPD5ZoneWaterCooled_HighRHControl.idf -156 True EMSAirflowNetworkOpeningControlByHumidity.idf -157 True EMSConstantVolumePurchasedAir.idf -158 True EMSCurveOverride_PackagedTerminalHeatPump.idf -159 True EMSCustomOutputVariable.idf -160 True EMSCustomSchedule.idf -161 True EMSDemandManager_LargeOffice.idf -162 True EMSDiscreteAirSystemSizes.idf -163 True EMSPlantLoopOverrideControl.idf -164 True EMSPlantOperation_largeOff.idf -165 True EMSReplaceTraditionalManagers_LargeOffice.idf -166 True EMSTestMathAndKill.idf -167 True EMSThermochromicWindow.idf -2271- : EnergyManagementSystem:OutputVariable, -2271- : HW_MdotRequest, -168 False EMSUserDefined5ZoneAirCooled.idf -930- : EnergyManagementSystem:OutputVariable, -930- : ZoneCoolTstat; -169 False EMSUserDefinedWindACAuto.idf -170 True EMSWindowShadeControl.idf -171 True EngineChiller.idf -172 True EquivalentLayerWindow.idf -173 True EvaporativeFluidCooler.idf -174 True EvaporativeFluidCooler_TwoSpeed.idf -175 True ExhFiredAbsorptionChiller.idf -176 True ExteriorLightsAndEq.idf -177 True FanCoil_HybridVent_VentSch.idf -178 True FanCoilAutoSize.idf -179 True Flr_Rf_8Sides.idf -180 True FluidCooler.idf -181 True FluidCoolerTwoSpeed.idf -182 True FreeCoolingChiller.idf -183 True Furnace.idf -184 True FurnacePLRHeatingCoil.idf -185 True FurnaceWithDXSystem.idf -186 True FurnaceWithDXSystem_CoolingHXAssisted.idf -187 True FurnaceWithDXSystemComfortControl.idf -188 True FurnaceWithDXSystemRHcontrol.idf -189 True FurnaceWithDXSystemRHcontrol_cyclingfan.idf -190 True gasAbsorptionChillerHeater.idf -191 True GasTurbChiller.idf -192 True Generators.idf -193 True Generators_Transformer.idf -194 True GeneratorswithPV.idf -195 True GeneratorwithWindTurbine.idf -196 True GeometryTest.idf -197 True GroundTempOSCCompactSched.idf -198 True GSHP-GLHE.idf -199 True GSHPSimple-GLHE.idf -200 True HAMT_DailyProfileReport.idf -201 True HAMT_HourlyProfileReport.idf -202 True HeaderedPumpsConSpeed.idf -203 True HeaderedPumpsVarSpeed.idf -204 True HeatPump.idf -205 True HeatPumpAirToAirWithRHcontrol.idf -206 True HeatPumpAuto.idf -207 True HeatPumpCycFanWithEcono.idf -208 True HeatPumpIAQP_DCV.idf -209 True HeatPumpIAQP_GenericContamControl.idf -210 True HeatPumpProportionalControl_DCV.idf -211 True HeatPumpSimpleDCV.idf -212 True HeatPumpVRP_DCV.idf -213 True HeatPumpVSAS.idf -214 True HeatPumpWaterHeater.idf -215 True HeatPumpWaterToAir.idf -216 True HeatPumpWaterToAirEquationFit.idf -217 True HeatPumpWaterToAirWithAntifreezeAndLatentModel.idf -218 True HeatPumpWaterToAirWithAntifreezeAndLatentModel2.idf -219 True HeatPumpWaterToAirWithRHControl.idf -220 True HeatPumpwithBiquadraticCurves.idf -221 True HeatRecoveryElectricChiller.idf -222 True HeatRecoveryPlantLoop.idf -223 True HeatRecoverywithStorageTank.idf -224 True HospitalBaseline.idf -42988- : EnergyManagementSystem:OutputVariable, -42988- : Flr_1_Off_3_RE, -225 False HospitalBaselineReheatReportEMS.idf -226 True HospitalLowEnergy.idf -227 True HP_wICSSolarCollector.idf -228 True HPAirToAir_wSolarCollectorHWCoil.idf -229 True HVACStandAloneERV_Economizer.idf -230 True HVACTemplate-5ZoneBaseboardHeat.idf -231 True HVACTemplate-5ZoneConstantVolumeChillerBoiler.idf -232 True HVACTemplate-5ZoneDualDuct.idf -233 True HVACTemplate-5ZoneFanCoil-DOAS.idf -234 True HVACTemplate-5ZoneFanCoil.idf -235 True HVACTemplate-5ZoneFurnaceDX.idf -236 True HVACTemplate-5ZonePackagedVAV.idf -237 True HVACTemplate-5ZonePTAC-DOAS.idf -238 True HVACTemplate-5ZonePTAC.idf -239 True HVACTemplate-5ZonePTHP.idf -240 True HVACTemplate-5ZonePurchAir.idf -241 True HVACTemplate-5ZoneUnitaryHeatPump.idf -242 True HVACTemplate-5ZoneUnitarySystem.idf -243 True HVACTemplate-5ZoneVAVFanPowered.idf -244 True HVACTemplate-5ZoneVAVWaterCooled-ObjectReference.idf -245 True HVACTemplate-5ZoneVAVWaterCooled.idf -246 True HVACTemplate-5ZoneVRF.idf -247 True HVACTemplate-5ZoneWaterToAirHeatPumpTowerBoiler.idf -248 True HybridVentilationControl.idf -249 True HybridVentilationControlGlobalSimple.idf -250 True IceStorage-Parallel.idf -251 True IceStorage-Series-ChillerDownstream.idf -252 True IceStorage-Series-ChillerUpstream.idf -253 True IndEvapCoolerRTUoffice.idf -254 True IndirectAbsorptionChiller.idf -255 True LBuilding-G000.idf -256 True LBuilding-G090.idf -257 True LBuilding-G180.idf -258 True LBuilding-G270.idf -259 True LBuildingAppGRotPar.idf -260 True LgOffVAV.idf -261 True LgOffVAVusingBasement.idf -262 True LookupTables.idf -263 True MicroCogeneration.idf -264 True Minimal.idf -265 True MovableExtInsulationSimple.idf -266 True MovableIntInsulationSimple.idf -267 True MultiSpeedACFurnace.idf -268 True MultispeedHeatPump.idf -269 True MultiSpeedHP_StagedThermostat.idf -270 True MultiStory.idf -271 True Mundt_System_Always_On.idf -272 True Mundt_System_On_During_the_Day.idf -273 True OptimalStart_RefBldgLargeOfficeNew2004_Chicago.idf -274 True OutdoorAirUnit.idf -275 True OutdoorAirUnitwithAirloopHVAC.idf -276 True PackagedTerminalAirConditioner.idf -277 True PackagedTerminalAirConditionerVSAS.idf -278 True PackagedTerminalHeatPump.idf -279 True PackagedTerminalHeatPumpVSAS.idf -280 True ParametricInsulation-5ZoneAirCooled.idf -281 True PassiveTrombeWall.idf -282 True PipeHeatTransfer_Outair.idf -283 True PipeHeatTransfer_Schedule.idf -284 True PipeHeatTransfer_Underground.idf -285 True PipeHeatTransfer_Zone.idf -286 True PipingSystem_Underground_FHX.idf -287 True PipingSystem_Underground_TwoPipe.idf -288 True PIUAuto.idf -289 True PlantApplicationsGuide_Example1.idf -290 True PlantApplicationsGuide_Example2.idf -291 True PlantApplicationsGuide_Example3.idf -292 True PlantComponentTemperatureSource.idf -293 True PlantHorizontalGroundHX.idf -294 True PlantLoadProfile.idf -295 True PlantLoopChainCooling.idf -296 True PlantLoopChainDeadband.idf -297 True PlantLoopChainDualDeadband.idf -298 True PlantLoopChainHeating.idf -299 True PlantPressure_PumpCurve.idf -300 True PlantPressure_VFD_Scheduled.idf -301 True PlantPressureDrop.idf -302 True PlateHeatExchanger.idf -303 True Plenum.idf -304 True PlenumwithRetAirHeatGain.idf -305 True PondGroundHeatExchanger.idf -306 True PurchAirTables.idf -307 True PurchAirTables_SQL.idf -308 True PurchAirWindowBlind.idf -309 True PurchAirWindowBlind_BlockBeamSolar.idf -310 True PurchAirWithDaylighting.idf -311 True PurchAirWithDaylightingAngleFac.idf -312 True PurchAirWithDoubleFacadeDaylighting.idf -313 True QTFtest.idf -314 True RadHiTempElecTermReheat.idf -315 True RadHiTempGasCtrlOpt.idf -316 True RadHiTempGasTermReheat.idf -317 True RadLoHydrHeatCoolAuto.idf -318 True RadLoHydrHeatCoolAutoCondFD.idf -319 True RadLoTempCFloHeatCool.idf -320 True RadLoTempCFloHeatCoolCondFD.idf -321 True RadLoTempCFloTermReheat.idf -322 True RadLoTempElecTermReheat.idf -323 True RadLoTempElecTermReheatCondFD.idf -324 True RadLoTempHydrCoolTower.idf -325 True RadLoTempHydrCoolTowerCondFD.idf -326 True RadLoTempHydrCtrlOpt.idf -327 True RadLoTempHydrCtrlOpt2.idf -328 True RadLoTempHydrHeatCool.idf -329 True RadLoTempHydrHeatCool2D.idf -330 True RadLoTempHydrHeatCoolDry.idf -331 True RadLoTempHydrHeatCoolDryCondFD.idf -332 True RadLoTempHydrInterMulti.idf -333 True RadLoTempHydrMulti10.idf -334 True RadLoTempHydrTermReheat.idf -335 True RefBldgFullServiceRestaurantNew2004_Chicago.idf -336 True RefBldgHospitalNew2004_Chicago.idf -337 True RefBldgLargeHotelNew2004_Chicago.idf -338 True RefBldgLargeOfficeNew2004_Chicago.idf -339 True RefBldgMediumOfficeNew2004_Chicago.idf -340 True RefBldgMidriseApartmentNew2004_Chicago.idf -341 True RefBldgOutPatientNew2004_Chicago.idf -342 True RefBldgPrimarySchoolNew2004_Chicago.idf -343 True RefBldgQuickServiceRestaurantNew2004_Chicago.idf -344 True RefBldgSecondarySchoolNew2004_Chicago.idf -345 True RefBldgSmallHotelNew2004_Chicago.idf -346 True RefBldgSmallOfficeNew2004_Chicago.idf -347 True RefBldgStand-aloneRetailNew2004_Chicago.idf -348 True RefBldgStripMallNew2004_Chicago.idf -349 True RefBldgSuperMarketNew2004_Chicago.idf -350 True RefBldgWarehouseNew2004_Chicago.idf -351 True ReflectiveAdjacentBuilding.idf -352 True RefrigeratedWarehouse.idf -353 True ReliefIndEvapCoolerRTUoffice.idf -354 True ReportDaylightFactors.idf -5469- : CoolCharge-Charge-EIR-fT, -5469- : CoolCharge-Charge-Cap-fT, -355 False RetailPackagedTESCoil.idf -356 True SeriesActiveBranch.idf -357 True ShopWithPVandBattery.idf -358 True ShopWithPVandStorage.idf -359 True ShopWithSimplePVT.idf -360 True SingleFamilyHouse_TwoSpeed_ZoneAirBalance.idf -361 True SmOffPSZ-MultiModeDX.idf -362 True SmOffPSZ.idf -363 True SmOffPSZ_OnOffStagedControl.idf -364 True SolarCollectorFlatPlateWater.idf -365 True SolarShadingTest.idf -366 True SolarShadingTest_SQL.idf -367 True StackedZonesWithInterzoneIRTLayers.idf -368 True SteamSystemAutoSize.idf -369 True StormWindow.idf -370 True StripMallZoneEvapCooler.idf -371 True Supermarket.idf -372 True Supermarket_CascadeCond.idf -373 True SuperMarket_DesuperHeatingCoil.idf -374 True Supermarket_Detailed.idf -375 True SuperMarket_DetailedEvapCondenser.idf -376 True SuperMarket_DetailedWaterCondenser.idf -377 True SuperMarket_EvapCondenser.idf -378 True Supermarket_SharedAirCondenser.idf -379 True SuperMarket_SharedEvapCondenser.idf -380 True SuperMarket_WaterCondenser.idf -381 True SuperMarketDetailed_DesuperHeatingCoil.idf -382 True SupermarketSecondary.idf -383 True SupermarketSubCoolersVariableSuction.idf -384 True SupermarketTranscriticalCO2.idf -385 True SupermarketTwoStageFlashIntercooler.idf -386 True SupermarketTwoStageShellCoilIntercooler.idf -387 True SupplyPlenumVAV.idf -388 True SurfaceGroundHeatExchanger.idf -389 True SurfaceTest.idf -390 True TermReheat.idf -391 True TermReheatPri-SecLoop.idf -392 True TermReheatScheduledPump.idf -393 True TermReheatSurfTC.idf -394 True TermReheatZoneExh.idf -395 True TermRhDualSetpointWithDB.idf -396 True TermRHDXSystem.idf -397 True TermRHGasElecCoils.idf -398 True TermRhGenericOAHeatRecMinExh.idf -399 True TermRhGenericOAHeatRecPreheat.idf -400 True TermRhSingleHeatCoolNoDB.idf -401 True ThermalChimneyTest.idf -402 True ThermochromicWindow.idf -403 True TransparentInsulationSimple.idf -404 True TranspiredCollectors.idf -405 True TRHConstFlowChillerOneBranch.idf -406 True TRHEvapCoolerOAStaged.idf -407 True TRHEvapCoolerOAStagedWetCoil.idf -408 True TwoWayCommonPipe_Pri-Sec.idf -409 True UnitarySystem_5ZoneWaterLoopHeatPump.idf -410 True UnitarySystem_DXCoilSystemAuto.idf -411 True UnitarySystem_FurnaceWithDXSystemRHcontrol.idf -412 True UnitarySystem_HeatPumpAuto.idf -413 True UnitarySystem_VSHeatPumpWaterToAirEquationFit.idf -414 True UnitHeater.idf -415 True UnitHeaterAuto.idf -416 True UnitHeaterGasElec.idf -417 True UnitVent5Zone.idf -418 True UnitVent5ZoneAuto.idf -419 True UnitVent5ZoneFixedOANoCoilOpt.idf -420 True UserDefinedRoomAirPatterns.idf -421 True UserInputViewFactorFile-LshapedZone.idf -422 True VariableRefrigerantFlow_5Zone.idf -423 True VAVSingleDuctConstFlowBoiler.idf -424 True VAVSingleDuctReheat.idf -425 True VAVSingleDuctReheat_DualMax.idf -426 True VAVSingleDuctReheat_MaxSAT_ReverseActing.idf -427 True VAVSingleDuctReheatBaseboard.idf -428 True VAVSingleDuctReheatNoReheat.idf -429 True VAVSingleDuctVarFlowBoiler.idf -430 True VentilatedSlab.idf -431 True VentilatedSlab_SeriesSlabs.idf -432 True VentilationSimpleTest.idf -433 True VSDXCoilSystemAuto.idf -434 True VSHeatPumpWaterToAirEquationFit.idf -435 True VSHeatPumpWaterToAirWithRHControl.idf -436 True WaterHeaterDHWPlantLoop.idf -437 True WaterHeaterHeatPumpStratifiedTank.idf -438 True WaterHeaterStandAlone.idf -439 True WaterSideEconomizer_Integrated.idf -440 True WaterSideEconomizer_NonIntegrated.idf -441 True WeatherTimeBins.idf -442 True WindACAuto.idf -443 True WindACRHControl.idf -444 True WindowTests.idf -445 True WindowTestsSimple.idf -446 True ZoneSysAvailManager.idf -447 True ZoneVSWSHP_wDOAS.idf -448 True ZoneWSHP_wDOAS.idf diff --git a/openfile.py b/openfile.py deleted file mode 100644 index 07ab0119..00000000 --- a/openfile.py +++ /dev/null @@ -1,23 +0,0 @@ -"""run this in ipython and explore. -Looks like idd is being read wrong.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import sys - -# pathnameto_eppy = 'c:/eppy' -pathnameto_eppy = "../" -sys.path.append(pathnameto_eppy) - -from eppy import modeleditor -from eppy.modeleditor import IDF - -iddfile = "../eppy/resources/iddfiles/Energy+V7_2_0.idd" -fname1 = "../eppy/resources/idffiles/V_7_2/smallfile.idf" - -IDF.setiddname(iddfile) -idf1 = IDF(fname1) -# idf1.model.dtls -print((idf1.model.dtls[:10])) diff --git a/pytesting.txt b/pytesting.txt deleted file mode 100644 index c09ad335..00000000 --- a/pytesting.txt +++ /dev/null @@ -1,3 +0,0 @@ -To trigger integration tests on local machine do the following: -(for unix platforms) -- export EPPY_INTEGRATION=True \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 8b010b27..e6bb9e0d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ -munch>=2.0.2 -beautifulsoup4>=4.4.1 -pydot>1.0; python_version <= '2.7' -pydot3k; python_version >= '3.0' -pyparsing==1.5.7; python_version <= '2.7' -pytest>=3.2.1 -tinynumpy>=1.2.1 -six>=1.10.0 -decorator>=4.0.10 -lxml>=3.8.0 +munch +soupsieve +beautifulsoup4 +pydot +pyparsing +pytest +tinynumpy +six +decorator +lxml future diff --git a/requirements_dev.txt b/requirements_dev.txt index 2053fb23..18431927 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,12 +1,15 @@ pip -bumpversion==0.5.3 -wheel==0.30.0 -watchdog==0.8.3 -flake8==3.5.0 -tox==2.9.1 -coverage==4.5.1 -Sphinx==1.7.1 -twine==1.10.0 +bumpversion +wheel +watchdog +flake8 +tox +coverage +Sphinx +twine + +pytest +pytest-runner +black +nbsphinx -pytest==3.4.2 -pytest-runner==2.11.1 diff --git a/setup.cfg b/setup.cfg index 74eb6c28..5f50481c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.48 +current_version = 0.5.52 commit = True tag = True @@ -15,16 +15,12 @@ replace = __version__ = '{new_version}' universal = 1 [flake8] -exclude = docs, eppy/iddv*.py +exclude = docs [aliases] +# Define setup.py command aliases here test = pytest [tool:pytest] collect_ignore = ['setup.py'] -[coverage:report] -omit = - eppy/iddv*.py - venv/* - diff --git a/setup.py b/setup.py index 74a23fbe..5f19493a 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ def read(*filenames, **kwargs): return sep.join(buf) -long_description = read("README.txt") +long_description = read("README.rst") class PyTest(TestCommand): @@ -36,7 +36,7 @@ def run_tests(self): setup( name="eppy", - version="0.5.51", + version="0.5.52", url="https://github.com/santoshphilip/eppy", license="MIT License", author="Santosh Philip", @@ -59,7 +59,7 @@ def run_tests(self): test_suite="eppy.test.test_eppy", # TODO make test_eppy install_requires=[ "munch>=2.0.2", - "beautifulsoup4>=4.2.1", + "beautifulsoup4<=4.8.0", "tinynumpy>=1.2.1", "six>=1.10.0", "decorator>=4.0.10", @@ -67,7 +67,6 @@ def run_tests(self): "future", ], classifiers=[ - "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Development Status :: 4 - Beta", "Natural Language :: English", @@ -78,8 +77,7 @@ def run_tests(self): "Topic :: Scientific/Engineering", ], extras_require={ - ':python_version<="2.7.2"': ["pydot>1.0", "pyparsing>=2.1.4"], - ':python_version>="3.0"': ["pydot3k"], + ':python_version>="3.0"': ["pydot3k", "pyparsing>=2.4.7"], "testing": ["pytest"], }, ) diff --git a/eppy/tests/__init__.py b/tests/EPlusInterfaceFunctions_tests/__init__.py similarity index 100% rename from eppy/tests/__init__.py rename to tests/EPlusInterfaceFunctions_tests/__init__.py diff --git a/eppy/tests/EPlusInterfaceFunctions_tests/integration.py b/tests/EPlusInterfaceFunctions_tests/integration.py similarity index 100% rename from eppy/tests/EPlusInterfaceFunctions_tests/integration.py rename to tests/EPlusInterfaceFunctions_tests/integration.py diff --git a/eppy/tests/EPlusInterfaceFunctions_tests/integration/iddgroups.idd b/tests/EPlusInterfaceFunctions_tests/integration/iddgroups.idd similarity index 100% rename from eppy/tests/EPlusInterfaceFunctions_tests/integration/iddgroups.idd rename to tests/EPlusInterfaceFunctions_tests/integration/iddgroups.idd diff --git a/eppy/tests/EPlusInterfaceFunctions_tests/test_iddgroups.py b/tests/EPlusInterfaceFunctions_tests/test_iddgroups.py similarity index 99% rename from eppy/tests/EPlusInterfaceFunctions_tests/test_iddgroups.py rename to tests/EPlusInterfaceFunctions_tests/test_iddgroups.py index d4bc0e93..0f5dd82e 100644 --- a/eppy/tests/EPlusInterfaceFunctions_tests/test_iddgroups.py +++ b/tests/EPlusInterfaceFunctions_tests/test_iddgroups.py @@ -10,7 +10,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO import eppy.EPlusInterfaceFunctions.iddgroups as iddgroups iddtxt = """! W/m2, W or deg C diff --git a/eppy/tests/EPlusInterfaceFunctions_tests/test_iddindex.py b/tests/EPlusInterfaceFunctions_tests/test_iddindex.py similarity index 100% rename from eppy/tests/EPlusInterfaceFunctions_tests/test_iddindex.py rename to tests/EPlusInterfaceFunctions_tests/test_iddindex.py diff --git a/eppy/tests/EPlusInterfaceFunctions_tests/test_parse_idd.py b/tests/EPlusInterfaceFunctions_tests/test_parse_idd.py similarity index 100% rename from eppy/tests/EPlusInterfaceFunctions_tests/test_parse_idd.py rename to tests/EPlusInterfaceFunctions_tests/test_parse_idd.py diff --git a/eppy/tests/geometry_tests/__init__.py b/tests/__init__.py similarity index 100% rename from eppy/tests/geometry_tests/__init__.py rename to tests/__init__.py diff --git a/eppy/tests/conftest.py b/tests/conftest.py similarity index 81% rename from eppy/tests/conftest.py rename to tests/conftest.py index 4e911c1b..c120ad8d 100644 --- a/eppy/tests/conftest.py +++ b/tests/conftest.py @@ -1,16 +1,17 @@ import os import pytest -from six import StringIO +from io import StringIO +from importlib import reload from eppy.modeleditor import IDF from eppy.iddcurrent import iddcurrent from eppy import modeleditor -from eppy.tests.test_runner import versiontuple +from .test_runner import versiontuple THIS_DIR = os.path.dirname(os.path.abspath(__file__)) -RESOURCES_DIR = os.path.join(THIS_DIR, os.pardir, "resources") +RESOURCES_DIR = os.path.join(THIS_DIR, os.pardir, "eppy", "resources") IDD_FILES = os.path.join(RESOURCES_DIR, "iddfiles") IDF_FILES = os.path.join(RESOURCES_DIR, "idffiles") @@ -24,20 +25,19 @@ TEST_OLD_IDD = "Energy+V7_2_0.idd" -@pytest.fixture(scope="module") +@pytest.fixture() def test_idf(): idd_file = os.path.join(IDD_FILES, TEST_IDD) idf_file = os.path.join(IDF_FILES, TEST_IDF) - modeleditor.IDF.iddname = idd_file + reload(modeleditor) + modeleditor.IDF.setiddname(idd_file, testing=True) idf = modeleditor.IDF(idf_file, TEST_EPW) try: ep_version = idf.idd_version assert ep_version == versiontuple(VERSION) except AttributeError: raise - yield idf - - del idf + return idf @pytest.fixture() @@ -49,6 +49,4 @@ def base_idf(): idftxt = "" idfhandle = StringIO(idftxt) idf = IDF(idfhandle) - yield idf - - del idf + return idf diff --git a/eppy/tests/integration/__init__.py b/tests/geometry_tests/__init__.py similarity index 100% rename from eppy/tests/integration/__init__.py rename to tests/geometry_tests/__init__.py diff --git a/eppy/tests/geometry_tests/test_area_zone.py b/tests/geometry_tests/test_area_zone.py similarity index 100% rename from eppy/tests/geometry_tests/test_area_zone.py rename to tests/geometry_tests/test_area_zone.py diff --git a/eppy/tests/geometry_tests/test_surface.py b/tests/geometry_tests/test_surface.py similarity index 75% rename from eppy/tests/geometry_tests/test_surface.py rename to tests/geometry_tests/test_surface.py index c57fec7b..b9784bc6 100644 --- a/eppy/tests/geometry_tests/test_surface.py +++ b/tests/geometry_tests/test_surface.py @@ -1,4 +1,5 @@ # Copyright (c) 2012 Tuan Tran +# Copyright (c) 2020 Cheng Cui # ======================================================================= # Distributed under the MIT License. # (See accompanying file LICENSE or copy at @@ -21,7 +22,7 @@ def test_area(): """test the area of a polygon poly""" data = ( ([(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0)], 1), - # polygon, answer, + # polygon, expected, ([(0, 0, 0), (1, 0, 0), (1, 0, 1), (0, 0, 1)], 1), ([(0, 0, 0), (0, 1, 0), (0, 1, 1), (0, 0, 1)], 1), ([(0, 0, 0), (0, 1, 0), (0, 2, 0), (0, 3, 0)], 0), @@ -35,16 +36,16 @@ def test_area(): 25, ), ) - for poly, answer in data: + for poly, expected in data: result = surface.area(poly) - assert almostequal(answer, result, places=4) == True + assert almostequal(expected, result, places=4) == True def test_height(): """test the height of a polygon poly""" data = ( ([(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0)], 1), - # polygon, answer, + # polygon, expected, ([(0, 0, 0), (8, 0, 0), (11, 0, 4), (3, 0, 4)], 5), ([(0, 0, 0), (10, 0, 0), (10, 9, 0), (0, 9, 0)], 9), ( @@ -58,16 +59,16 @@ def test_height(): ), ([(0.0, 0.0, 3.0), (0.0, 0.0, 2.4), (30.5, 0.0, 2.4), (30.5, 0.0, 3.0)], 0.6), ) - for poly, answer in data: + for poly, expected in data: result = surface.height(poly) - assert almostequal(answer, result, places=5) == True + assert almostequal(expected, result, places=5) == True def test_width(): """test the width of a polygon poly """ data = ( ([(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0)], 1), - # polygon, answer, + # polygon, expected, ([(0, 0, 0), (8, 0, 0), (11, 0, 4), (3, 0, 4)], 8), ([(0, 0, 0), (10, 0, 0), (10, 9, 0), (0, 9, 0)], 10), ( @@ -80,16 +81,16 @@ def test_width(): 8, ), ) - for poly, answer in data: + for poly, expected in data: result = surface.width(poly) - assert almostequal(answer, result, places=4) == True + assert almostequal(expected, result, places=4) == True def test_azimuth(): """test the azimuth of a polygon poly""" data = ( ([(0, 0, 0), (1, 0, 0), (1, 1, 1), (0, 1, 1)], 180), - # polygon, answer, + # polygon, expected, ([(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0)], 0), ( [ @@ -101,16 +102,35 @@ def test_azimuth(): 360 - 23.546134, ), ) - for poly, answer in data: + for poly, expected in data: result = surface.azimuth(poly) - assert almostequal(answer, result, places=3) == True + assert almostequal(expected, result, places=3) == True + + +def test_true_azimuth(): + """test the true azimuth of a polygon poly""" + data = ( + (45, 30, 0, 75), + # bldg_north, zone_rel_north, surf_azimuth, expected, + ("", 0, 180, 180), + (20, "", 20, 40), + (240, 90, 180, 150), + ) + for ( + bldg_north, + zone_rel_north, + surf_azimuth, + expected, + ) in data: + result = surface.true_azimuth(bldg_north, zone_rel_north, surf_azimuth) + assert almostequal(expected, result, places=3) == True def test_tilt(): """test the tilt of a polygon poly""" data = ( ([(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0)], 0), - # polygon, answer, + # polygon, expected, ([(0, 0, 0), (5, 0, 0), (5, 0, 8), (0, 0, 8)], 90), ([(0, 0, 0), (1, 0, 0), (1, 1, 1), (0, 1, 1)], 45), ( @@ -123,6 +143,6 @@ def test_tilt(): 90 - 72.693912, ), ) - for poly, answer in data: + for poly, expected in data: result = surface.tilt(poly) - assert almostequal(answer, result, places=3) == True + assert almostequal(expected, result, places=3) == True diff --git a/eppy/tests/geometry_tests/test_volume_zone.py b/tests/geometry_tests/test_volume_zone.py similarity index 100% rename from eppy/tests/geometry_tests/test_volume_zone.py rename to tests/geometry_tests/test_volume_zone.py diff --git a/eppy/tests/test_function_helpers.py b/tests/integration/__init__.py similarity index 100% rename from eppy/tests/test_function_helpers.py rename to tests/integration/__init__.py diff --git a/eppy/tests/integration/data2test/a.txt b/tests/integration/data2test/a.txt similarity index 100% rename from eppy/tests/integration/data2test/a.txt rename to tests/integration/data2test/a.txt diff --git a/eppy/tests/integration/data2test/origfile.idf b/tests/integration/data2test/origfile.idf similarity index 100% rename from eppy/tests/integration/data2test/origfile.idf rename to tests/integration/data2test/origfile.idf diff --git a/eppy/tests/integration/test_integration.py b/tests/integration/test_integration.py similarity index 96% rename from eppy/tests/integration/test_integration.py rename to tests/integration/test_integration.py index 2fb24dc1..a8f2c373 100644 --- a/eppy/tests/integration/test_integration.py +++ b/tests/integration/test_integration.py @@ -44,8 +44,7 @@ def setversion(idf, newversion): ) class TestModeleditorIntegration: def setup(self): - """Set the IDD and file paths, and make a copy of the original file. - """ + """Set the IDD and file paths, and make a copy of the original file.""" iddfile = os.path.join(IDD_FILES, "Energy+V7_2_0.idd") IDF.setiddname(iddfile, testing=True) @@ -60,8 +59,7 @@ def setup(self): shutil.copy(self.origfile, self.startfile) def teardown(self): - """Clear up temp files so we don't accidentally check against them. - """ + """Clear up temp files so we don't accidentally check against them.""" tempfiles = [self.startfile, self.saveasfile, self.copyfile] for f in tempfiles: try: @@ -71,9 +69,9 @@ def teardown(self): def test_version_number(self): """Test opening an IDF file and checking version number. - + Fails if the version number is not the expected starting version number. - + """ idf = IDF(self.startfile) @@ -84,9 +82,9 @@ def test_version_number(self): def test_save(self): """Test save with a changed version number. - + Fails if the version number has not been changed. - + """ idf = IDF(self.startfile) setversion(idf, "7.4") @@ -101,10 +99,10 @@ def test_save(self): def test_save_as(self): """Test saveas with a changed filename. - - IDF.saveas(fname) changes the filename. The next save should save with + + IDF.saveas(fname) changes the filename. The next save should save with new name. - + Fails if the filename isn't changed on the file with the new name. """ idf = IDF(self.startfile) @@ -123,7 +121,7 @@ def test_save_copy(self): IDF.savecopy(fname) doesn't change the filename. The next save should save with the original name. - + Fails if on a following save, the copy is changed. """ @@ -145,8 +143,7 @@ def test_save_copy(self): assert result == expected def test_lineendings(self): - """Test lineendings are set correctly on each platform. - """ + """Test lineendings are set correctly on each platform.""" idf = IDF(self.startfile) idf.save(lineendings="windows") with open(self.startfile, "rb") as sf: @@ -164,9 +161,9 @@ def test_lineendings(self): def test_save_with_lineendings_and_encodings(self): """ - Test the IDF.save() function with combinations of encodings and line + Test the IDF.save() function with combinations of encodings and line endings. - + """ idf = IDF(self.startfile) lineendings = ("windows", "unix", "default") diff --git a/eppy/tests/sample_html.py b/tests/sample_html.py similarity index 100% rename from eppy/tests/sample_html.py rename to tests/sample_html.py diff --git a/eppy/tests/sketch.py b/tests/sketch.py similarity index 95% rename from eppy/tests/sketch.py rename to tests/sketch.py index 6fc93dee..6e19ce42 100644 --- a/eppy/tests/sketch.py +++ b/tests/sketch.py @@ -4,7 +4,7 @@ from eppy.iddcurrent import iddcurrent from eppy.modeleditor import IDF from eppy.pytest_helpers import IDD_FILES -from six import StringIO +from io import StringIO import eppy.snippet as snippet diff --git a/eppy/tests/test_IDF.py b/tests/test_IDF.py similarity index 98% rename from eppy/tests/test_IDF.py rename to tests/test_IDF.py index 233a1f6b..5926f2aa 100644 --- a/eppy/tests/test_IDF.py +++ b/tests/test_IDF.py @@ -11,7 +11,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO from eppy.iddcurrent import iddcurrent from eppy.modeleditor import IDF diff --git a/eppy/tests/test_bunch_subclass.py b/tests/test_bunch_subclass.py similarity index 52% rename from eppy/tests/test_bunch_subclass.py rename to tests/test_bunch_subclass.py index 6affbe6c..e36cb3cb 100644 --- a/eppy/tests/test_bunch_subclass.py +++ b/tests/test_bunch_subclass.py @@ -1,4 +1,4 @@ -# Copyright (c) 2012 Santosh Philip +# Copyright (c) 2012, 2020 Santosh Philip # ======================================================================= # Distributed under the MIT License. # (See accompanying file LICENSE or copy at @@ -12,390 +12,393 @@ from __future__ import unicode_literals import pytest -from six import StringIO +from io import StringIO from eppy.EPlusInterfaceFunctions import readidf import eppy.bunch_subclass as bunch_subclass import eppy.bunchhelpers as bunchhelpers from eppy.iddcurrent import iddcurrent import eppy.idfreader as idfreader -from eppy.bunch_subclass import EpBunch - - -@pytest.fixture() -def iddtxt(): - # This test is ugly because I have to send file names and not able to send file - # handles - yield iddcurrent.iddtxt - - -@pytest.fixture(scope="class") -def idftxt(): - # This test is ugly because I have to send file names and not able to send file - # handles - idftxt = """Version, - 6.0; - - Building, - Empire State Building, !- Name - , !- North Axis {deg} - Suburbs, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value { - deltaC} - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - - BuildingSurface:Detailed, - Zn001:Wall001, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - West Zone, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 0,0,0, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - FenestrationSurface:Detailed, - Zn001:Wall001:Win001, !- Name - Window, !- Surface Type - WIN-CON-LIGHT, !- Construction Name - Zn001:Wall001, !- Building Surface Name - , !- Outside Boundary Condition Object - 0.5000000, !- View Factor to Ground - , !- Shading Control Name - , !- Frame and Divider Name - 1.0, !- Multiplier - 4, !- Number of Vertices - 0.548000,0,2.5000, !- X,Y,Z ==> Vertex 1 {m} - 0.548000,0,0.5000, !- X,Y,Z ==> Vertex 2 {m} - 5.548000,0,0.5000, !- X,Y,Z ==> Vertex 3 {m} - 5.548000,0,2.5000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn001:Wall002, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - West Zone, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 0,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 0,0,0, !- X,Y,Z ==> Vertex 3 {m} - 0,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn001:Wall003, !- Name - Wall, !- Surface Type - PARTITION06, !- Construction Name - West Zone, !- Zone Name - Surface, !- Outside Boundary Condition - Zn003:Wall004, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 0,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 0,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn001:Wall004, !- Name - Wall, !- Surface Type - PARTITION06, !- Construction Name - West Zone, !- Zone Name - Surface, !- Outside Boundary Condition - Zn002:Wall004, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,0,0, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn001:Flr001, !- Name - Floor, !- Surface Type - FLOOR SLAB 8 IN, !- Construction Name - West Zone, !- Zone Name - Surface, !- Outside Boundary Condition - Zn001:Flr001, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 1.000000, !- View Factor to Ground - 4, !- Number of Vertices - 0,0,0, !- X,Y,Z ==> Vertex 1 {m} - 0,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,0,0; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn001:Roof001, !- Name - Roof, !- Surface Type - ROOF34, !- Construction Name - West Zone, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0, !- View Factor to Ground - 4, !- Number of Vertices - 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 0,0,3.048000, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Wall001, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - EAST ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 12.19200,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 12.19200,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 9.144000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Wall002, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - EAST ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,0,0, !- X,Y,Z ==> Vertex 2 {m} - 12.19200,0,0, !- X,Y,Z ==> Vertex 3 {m} - 12.19200,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Wall003, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - EAST ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 12.19200,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 12.19200,0,0, !- X,Y,Z ==> Vertex 2 {m} - 12.19200,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 12.19200,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Wall004, !- Name - Wall, !- Surface Type - PARTITION06, !- Construction Name - EAST ZONE, !- Zone Name - Surface, !- Outside Boundary Condition - Zn001:Wall004, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Wall005, !- Name - Wall, !- Surface Type - PARTITION06, !- Construction Name - EAST ZONE, !- Zone Name - Surface, !- Outside Boundary Condition - Zn003:Wall005, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 9.144000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Flr001, !- Name - Floor, !- Surface Type - FLOOR SLAB 8 IN, !- Construction Name - EAST ZONE, !- Zone Name - Surface, !- Outside Boundary Condition - Zn002:Flr001, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 1.000000, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,0,0, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 12.19200,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 12.19200,0,0; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn002:Roof001, !- Name - Roof, !- Surface Type - ROOF34, !- Construction Name - EAST ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 2 {m} - 12.19200,0,3.048000, !- X,Y,Z ==> Vertex 3 {m} - 12.19200,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Wall001, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - NORTH ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 0,12.19200,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 0,12.19200,0, !- X,Y,Z ==> Vertex 2 {m} - 0,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 0,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Wall002, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - NORTH ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 9.144000,12.19200,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 9.144000,12.19200,0, !- X,Y,Z ==> Vertex 2 {m} - 0,12.19200,0, !- X,Y,Z ==> Vertex 3 {m} - 0,12.19200,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Wall003, !- Name - Wall, !- Surface Type - EXTWALL80, !- Construction Name - NORTH ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 9.144000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 9.144000,12.19200,0, !- X,Y,Z ==> Vertex 3 {m} - 9.144000,12.19200,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Wall004, !- Name - Wall, !- Surface Type - PARTITION06, !- Construction Name - NORTH ZONE, !- Zone Name - Surface, !- Outside Boundary Condition - Zn001:Wall003, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 0,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Wall005, !- Name - Wall, !- Surface Type - PARTITION06, !- Construction Name - NORTH ZONE, !- Zone Name - Surface, !- Outside Boundary Condition - Zn002:Wall005, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 0.5000000, !- View Factor to Ground - 4, !- Number of Vertices - 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} - 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} - 9.144000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Flr001, !- Name - Floor, !- Surface Type - FLOOR SLAB 8 IN, !- Construction Name - NORTH ZONE, !- Zone Name - Surface, !- Outside Boundary Condition - Zn003:Flr001, !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - 1.000000, !- View Factor to Ground - 4, !- Number of Vertices - 0,6.096000,0, !- X,Y,Z ==> Vertex 1 {m} - 0,12.19200,0, !- X,Y,Z ==> Vertex 2 {m} - 9.144000,12.19200,0, !- X,Y,Z ==> Vertex 3 {m} - 9.144000,6.096000,0; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Zn003:Roof001, !- Name - Roof, !- Surface Type - ROOF34, !- Construction Name - NORTH ZONE, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - 0, !- View Factor to Ground - 4, !- Number of Vertices - 0,12.19200,3.048000, !- X,Y,Z ==> Vertex 1 {m} - 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 2 {m} - 9.144000,6.096000,3.048000, !- X,Y,Z ==> Vertex 3 {m} - 9.144000,12.19200,3.048000; !- X,Y,Z ==> Vertex 4 {m} - - Construction, - Dbl Clr 3mm/13mm Air, !- Name - CLEAR 3MM, !- Outside Layer - AIR 13MM, !- Layer 2 - CLEAR 3MM; !- Layer 3 - """ +from eppy.modeleditor import IDF +from eppy.pytest_helpers import almostequal + + +# This test is ugly because I have to send file names and not able to send file handles +EpBunch = bunch_subclass.EpBunch + +iddtxt = iddcurrent.iddtxt + +# idd is read only once in this test +# if it has already been read from some other test, it will continue with +# the old reading +iddfhandle = StringIO(iddcurrent.iddtxt) +if IDF.getiddname() == None: + IDF.setiddname(iddfhandle) + +# This test is ugly because I have to send file names and not able to send file handles +idftxt = """Version,6.0; + + Building, + building, !- Name + 45; !- North Axis {deg} + + Zone, + West Zone, !- Name + 30, !- Direction of Relative North {deg} + 0, 0, 0; !- X,Y,Z {m} + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + Relative; !- Coordinate System + + BuildingSurface:Detailed, + Zn001:Wall001, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + West Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall001:Win001, !- Name + Window, !- Surface Type + WIN-CON-LIGHT, !- Construction Name + Zn001:Wall001, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0, !- Multiplier + 4, !- Number of Vertices + 0.548000,0,2.5000, !- X,Y,Z ==> Vertex 1 {m} + 0.548000,0,0.5000, !- X,Y,Z ==> Vertex 2 {m} + 5.548000,0,0.5000, !- X,Y,Z ==> Vertex 3 {m} + 5.548000,0,2.5000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall002, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + West Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall003, !- Name + Wall, !- Surface Type + PARTITION06, !- Construction Name + West Zone, !- Zone Name + Surface, !- Outside Boundary Condition + Zn003:Wall004, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall004, !- Name + Wall, !- Surface Type + PARTITION06, !- Construction Name + West Zone, !- Zone Name + Surface, !- Outside Boundary Condition + Zn002:Wall004, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,0,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Flr001, !- Name + Floor, !- Surface Type + FLOOR SLAB 8 IN, !- Construction Name + West Zone, !- Zone Name + Surface, !- Outside Boundary Condition + Zn001:Flr001, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,0,0, !- X,Y,Z ==> Vertex 1 {m} + 0,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Roof001, !- Name + Roof, !- Surface Type + ROOF34, !- Construction Name + West Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0, !- View Factor to Ground + 4, !- Number of Vertices + 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,0,3.048000, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall001, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + EAST ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 12.19200,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 12.19200,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 9.144000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall002, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + EAST ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,0,0, !- X,Y,Z ==> Vertex 2 {m} + 12.19200,0,0, !- X,Y,Z ==> Vertex 3 {m} + 12.19200,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall003, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + EAST ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 12.19200,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 12.19200,0,0, !- X,Y,Z ==> Vertex 2 {m} + 12.19200,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 12.19200,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall004, !- Name + Wall, !- Surface Type + PARTITION06, !- Construction Name + EAST ZONE, !- Zone Name + Surface, !- Outside Boundary Condition + Zn001:Wall004, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall005, !- Name + Wall, !- Surface Type + PARTITION06, !- Construction Name + EAST ZONE, !- Zone Name + Surface, !- Outside Boundary Condition + Zn003:Wall005, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 9.144000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Flr001, !- Name + Floor, !- Surface Type + FLOOR SLAB 8 IN, !- Construction Name + EAST ZONE, !- Zone Name + Surface, !- Outside Boundary Condition + Zn002:Flr001, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,0,0, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 12.19200,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 12.19200,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Roof001, !- Name + Roof, !- Surface Type + ROOF34, !- Construction Name + EAST ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,0,3.048000, !- X,Y,Z ==> Vertex 2 {m} + 12.19200,0,3.048000, !- X,Y,Z ==> Vertex 3 {m} + 12.19200,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall001, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + NORTH ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,12.19200,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,12.19200,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall002, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + NORTH ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 9.144000,12.19200,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 9.144000,12.19200,0, !- X,Y,Z ==> Vertex 2 {m} + 0,12.19200,0, !- X,Y,Z ==> Vertex 3 {m} + 0,12.19200,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall003, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + NORTH ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 9.144000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 9.144000,12.19200,0, !- X,Y,Z ==> Vertex 3 {m} + 9.144000,12.19200,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall004, !- Name + Wall, !- Surface Type + PARTITION06, !- Construction Name + NORTH ZONE, !- Zone Name + Surface, !- Outside Boundary Condition + Zn001:Wall003, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall005, !- Name + Wall, !- Surface Type + PARTITION06, !- Construction Name + NORTH ZONE, !- Zone Name + Surface, !- Outside Boundary Condition + Zn002:Wall005, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 6.096000,6.096000,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 6.096000,6.096000,0, !- X,Y,Z ==> Vertex 2 {m} + 9.144000,6.096000,0, !- X,Y,Z ==> Vertex 3 {m} + 9.144000,6.096000,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Flr001, !- Name + Floor, !- Surface Type + FLOOR SLAB 8 IN, !- Construction Name + NORTH ZONE, !- Zone Name + Surface, !- Outside Boundary Condition + Zn003:Flr001, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,6.096000,0, !- X,Y,Z ==> Vertex 1 {m} + 0,12.19200,0, !- X,Y,Z ==> Vertex 2 {m} + 9.144000,12.19200,0, !- X,Y,Z ==> Vertex 3 {m} + 9.144000,6.096000,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Roof001, !- Name + Roof, !- Surface Type + ROOF34, !- Construction Name + NORTH ZONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0, !- View Factor to Ground + 4, !- Number of Vertices + 0,12.19200,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,6.096000,3.048000, !- X,Y,Z ==> Vertex 2 {m} + 9.144000,6.096000,3.048000, !- X,Y,Z ==> Vertex 3 {m} + 9.144000,12.19200,3.048000; !- X,Y,Z ==> Vertex 4 {m} + + Construction, + Dbl Clr 3mm/13mm Air, !- Name + CLEAR 3MM, !- Outside Layer + AIR 13MM, !- Layer 2 + CLEAR 3MM; !- Layer 3 - yield idftxt +""" -def test_EpBunch(iddtxt, idftxt): - """py.test for EpBunch - """ +def test_EpBunch(): + """py.test for EpBunch""" iddfile = StringIO(iddtxt) fname = StringIO(idftxt) @@ -602,39 +605,6 @@ def test_EpBunch(iddtxt, idftxt): assert bconstr["Layer_10"] == "" -def test_EpBunch1(iddtxt): - """py.test for EpBunch1 - """ - iddfile = StringIO(iddtxt) - idffile = StringIO(bldfidf) - block, data, commdct, idd_index = readidf.readdatacommdct1(idffile, iddfile=iddfile) - key = "BUILDING" - objs = data.dt[key] - obj = objs[0] - obj_i = data.dtls.index(key) - bunchobj = idfreader.makeabunch(commdct, obj, obj_i) - - # assertions - assert bunchobj.Name == "Empire State Building" - bunchobj.Name = "Kutub Minar" - assert bunchobj.Name == "Kutub Minar" - prnt = bunchobj.__repr__() - result = """ -BUILDING, - Kutub Minar, !- Name - 30.0, !- North Axis - City, !- Terrain - 0.04, !- Loads Convergence Tolerance Value - 0.4, !- Temperature Convergence Tolerance Value - FullExterior, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days -""" - assert prnt == result - # print bunchobj.objidd - # assert 1 == 0 - - def test_extendlist(): """py.test for extendlist""" data = ( @@ -649,26 +619,12 @@ def test_extendlist(): class TestEpBunch(object): - """py.test for EpBunch.getrange, EpBunch.checkrange, EpBunch.fieldnames, - EpBunch.fieldvalues, EpBunch.getidd. """ + py.test for EpBunch.getrange, EpBunch.checkrange, EpBunch.fieldnames, + EpBunch.fieldvalues, EpBunch.getidd. - @pytest.fixture() - def IDF(self): - from eppy.modeleditor import IDF - - # idd is read only once in this test - # if it has already been read from some other test, it will continue with - # the old reading - iddfhandle = StringIO(iddcurrent.iddtxt) - if IDF.getiddname() is None: - IDF.setiddname(iddfhandle) - - yield IDF - - del IDF + """ - @pytest.fixture() def initdata(self): obj, objls, objidd = ( [ @@ -731,29 +687,31 @@ def initdata(self): }, ], ) - yield obj, objls, objidd + return obj, objls, objidd - def test_fieldnames(self, initdata): - """Test that the contents of idfobject.fieldnames are the same as those + def test_fieldnames(self): + """ + Test that the contents of idfobject.fieldnames are the same as those of objls. + """ - obj, objls, objidd = initdata + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) for fn_item, objls_item in zip(idfobject.fieldnames, idfobject.objls): assert fn_item == objls_item - def test_fieldvalues(self, initdata): - """Test that the contents of idfobject.fieldvalues are the same as those + def test_fieldvalues(self): + """ + Test that the contents of idfobject.fieldvalues are the same as those of obj. + """ - obj, objls, objidd = initdata + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) for fv_item, objls_item in zip(idfobject.fieldvalues, idfobject.obj): assert fv_item == objls_item - def test_getrange(self, initdata): - """ - """ + def test_getrange(self): data = ( ( "Loads_Convergence_Tolerance_Value", @@ -776,15 +734,13 @@ def test_getrange(self, initdata): }, ), # fieldname, theranges ) - obj, objls, objidd = initdata + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) for fieldname, theranges in data: result = idfobject.getrange(fieldname) assert result == theranges - def test_checkrange(self, initdata): - """ - """ + def test_checkrange(self): data = ( ("Minimum_Number_of_Warmup_Days", 4, False, None), # fieldname, fieldvalue, isexception, theexception @@ -820,7 +776,7 @@ def test_checkrange(self, initdata): ("key", "BUILDING", False, None), # fieldname, fieldvalue, isexception, theexception ) - obj, objls, objidd = initdata + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) for fieldname, fieldvalue, isexception, theexception in data: idfobject[fieldname] = fieldvalue @@ -831,20 +787,18 @@ def test_checkrange(self, initdata): with pytest.raises(theexception): result = idfobject.checkrange(fieldname) - def test_getfieldidd(self, initdata): - """py.test for getfieldidd - """ - obj, objls, objidd = initdata + def test_getfieldidd(self): + """py.test for getfieldidd""" + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) result = idfobject.getfieldidd("North_Axis") assert result == {"type": ["real"]} result = idfobject.getfieldidd("No_such_field") assert result == {} - def test_getfieldidd_item(self, initdata): - """py.test for test_getfieldidd_item - """ - obj, objls, objidd = initdata + def test_getfieldidd_item(self): + """py.test for test_getfieldidd_item""" + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) result = idfobject.getfieldidd_item("North_Axis", "type") assert result == ["real"] @@ -853,65 +807,18 @@ def test_getfieldidd_item(self, initdata): result = idfobject.getfieldidd_item("no_such_field", "type") assert result == [] - def test_get_retaincase(self, initdata): - """py.test for get_retaincase - """ - obj, objls, objidd = initdata + def test_get_retaincase(self): + """py.test for get_retaincase""" + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) result = idfobject.get_retaincase("Name") assert result == True result = idfobject.get_retaincase("Terrain") assert result == False - def test_get_default(self, test_idf): - """py.test for __getattr__ when a value is not defined in the idf file. - We create a new MATERIAL object that does not define the - Solar_Absorptance, Thermal_Absorptance and Visible_Absorptance fields - and assert that their default value is returned - """ - test_idf.newidfobject( - "MATERIAL", - Name="F08 Metal surface", - Roughness="Smooth", - Thickness=0.0008, - Conductivity=45.28, - Density=7824.0, - Specific_Heat=500.0, - ) - - idfobject = test_idf.getobject("MATERIAL", "F08 Metal surface") - - assert idfobject.Solar_Absorptance == 0.7 - assert idfobject.Thermal_Absorptance == 0.9 - assert idfobject.Visible_Absorptance == 0.7 - - def test_get_default_choice(self, test_idf): - """py.test for __getattr__ when a value is not defined in the idf file. - We create a new MATERIAL object that does not define the - Solar_Absorptance, Thermal_Absorptance and Visible_Absorptance fields - and assert that their default value is returned - """ - surf_1 = test_idf.newidfobject( - "BuildingSurface:Detailed", Name="surface 1", defaultvalues=False - ) - - # even though default values is set to false, Sun_Exposure and - # Number_of_Vertices should assert to True since they have default values in - # the idd - assert surf_1.Sun_Exposure == "SunExposed" - assert surf_1.Number_of_Vertices == "autocalculate" - - surf_2 = test_idf.newidfobject( - "BuildingSurface:Detailed", Name="surface 2", defaultvalues=True - ) - - assert surf_2.Sun_Exposure == "SunExposed" - assert surf_2.Number_of_Vertices == "autocalculate" - - def test_isequal(self, initdata): - """py.test for isequal - """ - obj, objls, objidd = initdata + def test_isequal(self): + """py.test for isequal""" + obj, objls, objidd = self.initdata() idfobject = EpBunch(obj, objls, objidd) # test Terrain -> Alphanumeric, no retaincase result = idfobject.isequal("Terrain", "City") @@ -943,9 +850,8 @@ def test_isequal(self, initdata): result = idfobject.isequal("Maximum_Number_of_Warmup_Days", 25.00001) assert result == False - def test_getreferingobjs(self, IDF): - """py.test for getreferingobjs - """ + def test_getreferingobjs(self): + """py.test for getreferingobjs""" thedata = ( ( """ Zone, @@ -1081,7 +987,7 @@ def test_getreferingobjs(self, IDF): surfnamelst.sort() assert rnames == windownamelist - def test_get_referenced_object(self, IDF): + def test_get_referenced_object(self): """py.test for get_referenced_object""" idf = IDF() idf.initnew("test.idf") @@ -1116,10 +1022,6 @@ def test_get_referenced_object(self, IDF): assert material == expected -# test_EpBunch1() -# import idfreader - - bldfidf = """ Version, 6.0; @@ -1150,3 +1052,59 @@ def test_get_referenced_object(self, IDF): 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m} 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} """ +# test_EpBunch1() +# import idfreader + + +def test_EpBunch1(): + """py.test for EpBunch1""" + iddfile = StringIO(iddtxt) + idffile = StringIO(bldfidf) + block, data, commdct, idd_index = readidf.readdatacommdct1(idffile, iddfile=iddfile) + key = "BUILDING" + objs = data.dt[key] + obj = objs[0] + obj_i = data.dtls.index(key) + bunchobj = idfreader.makeabunch(commdct, obj, obj_i) + + # assertions + assert bunchobj.Name == "Empire State Building" + bunchobj.Name = "Kutub Minar" + assert bunchobj.Name == "Kutub Minar" + prnt = bunchobj.__repr__() + result = """ +BUILDING, + Kutub Minar, !- Name + 30.0, !- North Axis + City, !- Terrain + 0.04, !- Loads Convergence Tolerance Value + 0.4, !- Temperature Convergence Tolerance Value + FullExterior, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days +""" + assert prnt == result + # print bunchobj.objidd + # assert 1 == 0 + + +def test_scientificnotation(): + """py.test to check if __repr__ for epbunch is printing scientific notation""" + idftxt = """ScheduleTypeLimits, + AnyValue, !- Name + -1e+019, !- Lower Limit Value + 1e+019, !- Upper Limit Value + Continuous; !- Numeric Type +""" + expected = """ +ScheduleTypeLimits, + AnyValue, !- Name + -1.000000e+19, !- Lower Limit Value + 1.000000e+19, !- Upper Limit Value + Continuous; !- Numeric Type +""" + idffile = StringIO(idftxt) + idf = IDF(idffile) + sch = idf.idfobjects["ScheduleTypeLimits"][0] + result = sch.__repr__() + assert result == expected diff --git a/tests/test_bunch_subclass_functions.py b/tests/test_bunch_subclass_functions.py new file mode 100644 index 00000000..ffa1daa0 --- /dev/null +++ b/tests/test_bunch_subclass_functions.py @@ -0,0 +1,70 @@ +# Copyright (c) 2020 Cheng Cui +# ======================================================================= +# Distributed under the MIT License. +# (See accompanying file LICENSE or copy at +# http://opensource.org/licenses/MIT) +# ======================================================================= + +"""py.test for bunch_subclass_functions""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from io import StringIO + +from eppy.iddcurrent import iddcurrent +from eppy.modeleditor import IDF +from eppy.pytest_helpers import almostequal + + +iddtxt = iddcurrent.iddtxt +iddfhandle = StringIO(iddcurrent.iddtxt) +if IDF.getiddname() == None: + IDF.setiddname(iddfhandle) + +idftxt = """Version,8.0; + + Building, + building, !- Name + 45; !- North Axis {deg} + + Zone, + West Zone, !- Name + 30, !- Direction of Relative North {deg} + 0, 0, 0; !- X,Y,Z {m} + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + Relative; !- Coordinate System + + BuildingSurface:Detailed, + Zn001:Wall001, !- Name + Wall, !- Surface Type + EXTWALL80, !- Construction Name + West Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m} + 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m} + +""" + + +def test_surface_function(): + fhandle = StringIO(idftxt) + idf = IDF(fhandle) + surface = idf.idfobjects["BuildingSurface:Detailed"][0] + + # test the azimuth + assert almostequal(surface.azimuth, 180, places=3) == True + + # test the true azimuth + assert almostequal(surface.true_azimuth, 255, places=3) == True diff --git a/eppy/tests/test_bunchhelpers.py b/tests/test_bunchhelpers.py similarity index 81% rename from eppy/tests/test_bunchhelpers.py rename to tests/test_bunchhelpers.py index ffe0b414..9b6e15e9 100644 --- a/eppy/tests/test_bunchhelpers.py +++ b/tests/test_bunchhelpers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2012 Santosh Philip +# Copyright (c) 2012, 2020 Santosh Philip # ======================================================================= # Distributed under the MIT License. # (See accompanying file LICENSE or copy at @@ -60,3 +60,15 @@ def test_replaceint(): for fname, newname in data: result = bunchhelpers.replaceint(fname) assert result == newname + + +def test_scientificnotation(): + """py.test for scientificnotation""" + data = ( + (100000, 3, "1.000000e+05"), # val, width, expected + (10, 3, 10), # val, width, expected + ("gumby", 3, "gumby"), # val, width, expected + ) + for val, width, expected in data: + result = bunchhelpers.scientificnotation(val, width) + assert result == expected diff --git a/eppy/tests/test_case_insensitive.py b/tests/test_case_insensitive.py similarity index 100% rename from eppy/tests/test_case_insensitive.py rename to tests/test_case_insensitive.py diff --git a/eppy/tests/test_easyopen.py b/tests/test_easyopen.py similarity index 98% rename from eppy/tests/test_easyopen.py rename to tests/test_easyopen.py index 5737cd1a..45996ed2 100644 --- a/eppy/tests/test_easyopen.py +++ b/tests/test_easyopen.py @@ -23,7 +23,7 @@ from six import StringIO -from six.moves import reload_module as reload +from importlib import reload def test_cleanupversion(): diff --git a/eppy/tests/test_eppy.py b/tests/test_eppy.py similarity index 100% rename from eppy/tests/test_eppy.py rename to tests/test_eppy.py diff --git a/eppy/tests/test_examples.py b/tests/test_examples.py similarity index 99% rename from eppy/tests/test_examples.py rename to tests/test_examples.py index a1688cf9..97576ea8 100644 --- a/eppy/tests/test_examples.py +++ b/tests/test_examples.py @@ -28,7 +28,7 @@ idfsnippet = snippet.idfsnippet -from six import StringIO +from io import StringIO idffhandle = StringIO(idfsnippet) iddfhandle = StringIO(iddsnippet) diff --git a/eppy/tests/test_fanpower.py b/tests/test_fanpower.py similarity index 99% rename from eppy/tests/test_fanpower.py rename to tests/test_fanpower.py index 76bfba3d..f30c3768 100644 --- a/eppy/tests/test_fanpower.py +++ b/tests/test_fanpower.py @@ -11,7 +11,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO import eppy.fanpower as fanpower from eppy.iddcurrent import iddcurrent diff --git a/tests/test_function_helpers.py b/tests/test_function_helpers.py new file mode 100644 index 00000000..2123c668 --- /dev/null +++ b/tests/test_function_helpers.py @@ -0,0 +1,136 @@ +# Copyright (c) 2020 Cheng Cui +# ======================================================================= +# Distributed under the MIT License. +# (See accompanying file LICENSE or copy at +# http://opensource.org/licenses/MIT) +# ======================================================================= + +"""py.test for function_helpers""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from io import StringIO +import pytest + +import eppy.function_helpers as fh +from eppy.iddcurrent import iddcurrent +from eppy.modeleditor import IDF +from eppy.pytest_helpers import almostequal + +iddtxt = iddcurrent.iddtxt +iddfhandle = StringIO(iddcurrent.iddtxt) +if IDF.getiddname() == None: + IDF.setiddname(iddfhandle) + +idftxt = """Version,8.0; + + Building, + Simple One Zone, !- Name + ; !- North Axis {deg} + + Zone, + ZONE ONE, !- Name + , !- Direction of Relative North {deg} + 0, 0, 0; !- X,Y,Z {m} + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + + BuildingSurface:Detailed, + Zn001:Wall001, !- Name + Wall, !- Surface Type + R13WALL, !- Construction Name + ZONE ONE, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0, 0, 4.572000, !- X,Y,Z 1 {m} + 0, 0, 0, !- X,Y,Z 2 {m} + 15.24000, 0, 0, !- X,Y,Z 3 {m} + 15.24000, 0, 4.572000; !- X,Y,Z 4 {m} + +""" + + +# original test_true_azimuth() - done using a loop +# def test_true_azimuth(): +# """py.test for true_azimuth""" +# data = ( +# ("Relative", 45, 30, 180 + 75), +# # coord_system, bldg_north, zone_rel_north, expected, +# ("Relative", "", 0, 180 + 0), +# ("World", 45, "", 180), +# ("Relative", 240, 90, 180 + 330 - 360), +# ) +# +# fhandle = StringIO(idftxt) +# idf = IDF(fhandle) +# geom_rules = idf.idfobjects["GlobalGeometryRules"][0] +# building = idf.idfobjects["Building"][0] +# zone = idf.idfobjects["Zone"][0] +# surface = idf.idfobjects["BuildingSurface:Detailed"][0] +# +# for coord_system, bldg_north, zone_rel_north, expected in data: +# geom_rules.Coordinate_System = coord_system +# building.North_Axis = bldg_north +# zone.Direction_of_Relative_North = zone_rel_north +# result = fh.true_azimuth(surface) +# assert almostequal(expected, result, places=3) == True + +# test_true_azimuth() - done using @pytest.mark.parametrize +# see https://docs.pytest.org/en/stable/parametrize.html +@pytest.mark.parametrize( + "coord_system, bldg_north, zone_rel_north, expected", + [ + ("Relative", 45, 30, 180 + 75), + # coord_system, bldg_north, zone_rel_north, expected, + ("Relative", "", 0, 180 + 0), + ("World", 45, "", 180), + ("Relative", 240, 90, 180 + 330 - 360), + ], +) +def test_true_azimuth(coord_system, bldg_north, zone_rel_north, expected): + """py.test for true_azimuth""" + fhandle = StringIO(idftxt) + idf = IDF(fhandle) + geom_rules = idf.idfobjects["GlobalGeometryRules"][0] + building = idf.idfobjects["Building"][0] + zone = idf.idfobjects["Zone"][0] + surface = idf.idfobjects["BuildingSurface:Detailed"][0] + + geom_rules.Coordinate_System = coord_system + building.North_Axis = bldg_north + zone.Direction_of_Relative_North = zone_rel_north + result = fh.true_azimuth(surface) + assert almostequal(expected, result, places=3) == True + + +def test_true_azimuth_exception(): + """py.test for true_azimuth exception""" + coord_system, bldg_north, zone_rel_north = ( + "Global", + 0, + 0, + ) + + fhandle = StringIO(idftxt) + idf = IDF(fhandle) + geom_rules = idf.idfobjects["GlobalGeometryRules"][0] + building = idf.idfobjects["Building"][0] + zone = idf.idfobjects["Zone"][0] + surface = idf.idfobjects["BuildingSurface:Detailed"][0] + + geom_rules.Coordinate_System = coord_system + building.North_Axis = bldg_north + zone.Direction_of_Relative_North = zone_rel_north + + with pytest.raises(ValueError): + result = fh.true_azimuth(surface) diff --git a/eppy/tests/test_hvacbuilder.py b/tests/test_hvacbuilder.py similarity index 99% rename from eppy/tests/test_hvacbuilder.py rename to tests/test_hvacbuilder.py index 75515289..1faf00dd 100644 --- a/eppy/tests/test_hvacbuilder.py +++ b/tests/test_hvacbuilder.py @@ -11,7 +11,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO import eppy.hvacbuilder as hvacbuilder from eppy.iddcurrent import iddcurrent diff --git a/eppy/tests/test_idd_helpers.py b/tests/test_idd_helpers.py similarity index 100% rename from eppy/tests/test_idd_helpers.py rename to tests/test_idd_helpers.py diff --git a/eppy/tests/test_iddgaps.py b/tests/test_iddgaps.py similarity index 100% rename from eppy/tests/test_iddgaps.py rename to tests/test_iddgaps.py diff --git a/eppy/tests/test_idf_helpers.py b/tests/test_idf_helpers.py similarity index 99% rename from eppy/tests/test_idf_helpers.py rename to tests/test_idf_helpers.py index c97d35aa..3a2c5842 100644 --- a/eppy/tests/test_idf_helpers.py +++ b/tests/test_idf_helpers.py @@ -10,8 +10,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import iteritems -from six import StringIO +from io import StringIO from eppy.iddcurrent import iddcurrent from eppy.modeleditor import IDF diff --git a/eppy/tests/test_idfreader.py b/tests/test_idfreader.py similarity index 99% rename from eppy/tests/test_idfreader.py rename to tests/test_idfreader.py index 9b511eda..0fc3fd70 100644 --- a/eppy/tests/test_idfreader.py +++ b/tests/test_idfreader.py @@ -11,7 +11,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO import eppy.idfreader as idfreader from eppy.EPlusInterfaceFunctions import readidf diff --git a/eppy/tests/test_json_functions.py b/tests/test_json_functions.py similarity index 99% rename from eppy/tests/test_json_functions.py rename to tests/test_json_functions.py index c64e23b5..a51e46e2 100644 --- a/eppy/tests/test_json_functions.py +++ b/tests/test_json_functions.py @@ -12,7 +12,7 @@ from eppy import modeleditor from eppy.modeleditor import IDF -from six import StringIO +from io import StringIO from eppy.iddcurrent import iddcurrent diff --git a/eppy/tests/test_loopdiagram.py b/tests/test_loopdiagram.py similarity index 97% rename from eppy/tests/test_loopdiagram.py rename to tests/test_loopdiagram.py index 11a26bdb..d59647e8 100644 --- a/eppy/tests/test_loopdiagram.py +++ b/tests/test_loopdiagram.py @@ -26,7 +26,7 @@ THIS_DIR = os.path.dirname(os.path.abspath(__file__)) -RESOURCES_DIR = os.path.join(THIS_DIR, os.pardir, "resources") +RESOURCES_DIR = os.path.join(THIS_DIR, os.pardir, "eppy", "resources") IDD_FILES = os.path.join(RESOURCES_DIR, "iddfiles") IDF_FILES = os.path.join(RESOURCES_DIR, "idffiles") diff --git a/eppy/tests/test_modeleditor.py b/tests/test_modeleditor.py similarity index 98% rename from eppy/tests/test_modeleditor.py rename to tests/test_modeleditor.py index 1c0b79ac..33ad885a 100644 --- a/eppy/tests/test_modeleditor.py +++ b/tests/test_modeleditor.py @@ -396,8 +396,7 @@ def test_save_with_lineendings_and_encodings(): def test_saveas(): - """Test the IDF.saveas() function. - """ + """Test the IDF.saveas() function.""" file_text = "Material,TestMaterial, !- Name" idf = IDF(StringIO(file_text)) idf.idfname = "test.idf" @@ -420,8 +419,7 @@ def test_saveas(): def test_savecopy(): - """Test the IDF.savecopy() function. - """ + """Test the IDF.savecopy() function.""" file_text = "Material,TestMaterial, !- Name" idf = IDF(StringIO(file_text)) idf.idfname = "test.idf" @@ -444,8 +442,7 @@ def test_savecopy(): def test_initread(): - """Test for IDF.initread() with filename in unicode and as python str. - """ + """Test for IDF.initread() with filename in unicode and as python str.""" # setup idf = IDF() idf.initreadtxt(idfsnippet) @@ -479,8 +476,7 @@ def test_initread(): def test_initreadtxt(): - """Test for IDF.initreadtxt(). - """ + """Test for IDF.initreadtxt().""" idftxt = """ Material, G01a 19mm gypsum board, !- Name @@ -502,8 +498,7 @@ def test_initreadtxt(): def test_idfstr(): - """Test all outputtype options in IDF.idfstr(). - """ + """Test all outputtype options in IDF.idfstr().""" idf = IDF() idf.initreadtxt(idfsnippet) assert idf.outputtype == "standard" # start with the default diff --git a/eppy/tests/test_modeleditor1.py b/tests/test_modeleditor1.py similarity index 99% rename from eppy/tests/test_modeleditor1.py rename to tests/test_modeleditor1.py index 46d16884..0236b2d1 100644 --- a/eppy/tests/test_modeleditor1.py +++ b/tests/test_modeleditor1.py @@ -10,7 +10,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO import pytest from eppy import modeleditor import eppy.idfreader as idfreader diff --git a/tests/test_parse_error.py b/tests/test_parse_error.py new file mode 100644 index 00000000..f26fb9dc --- /dev/null +++ b/tests/test_parse_error.py @@ -0,0 +1,37 @@ +import os +import shutil +import sys +from importlib import reload + +from six import StringIO + +from eppy import modeleditor +from eppy.runner.run_functions import parse_error, EnergyPlusRunError + + +def test_capture_stderr(): + tmp_out = StringIO() + sys.stderr = tmp_out + sys.stderr.write("I am in stderr") + msg = parse_error(tmp_out, "C:/notafile") + assert "" in msg + assert "I am in stderr" in msg + sys.stderr = sys.__stderr__ + + +def test_capture_real_error(test_idf): + test_idf.newidfobject( + "HVACTemplate:Thermostat", + Name="thermostat VRF", + Heating_Setpoint_Schedule_Name=15, + Constant_Cooling_Setpoint=25, + ) + rundir = "test_capture_real_error" + os.mkdir(rundir) + try: + test_idf.run(output_directory=rundir) + except EnergyPlusRunError as e: + assert "invalid Heating Setpoint Temperature Schedule" in str(e) + finally: + shutil.rmtree(rundir) + reload(modeleditor) diff --git a/eppy/tests/test_readhtml.py b/tests/test_readhtml.py similarity index 98% rename from eppy/tests/test_readhtml.py rename to tests/test_readhtml.py index 84c05b89..5e75fc3e 100644 --- a/eppy/tests/test_readhtml.py +++ b/tests/test_readhtml.py @@ -14,7 +14,7 @@ import collections from bs4 import BeautifulSoup import eppy.results.readhtml as readhtml -from eppy.tests.sample_html import sample_html as SAMPLE_HTML +from .sample_html import sample_html as SAMPLE_HTML def test_table2matrix(): diff --git a/eppy/tests/test_reproduce_bugs.py b/tests/test_reproduce_bugs.py similarity index 100% rename from eppy/tests/test_reproduce_bugs.py rename to tests/test_reproduce_bugs.py diff --git a/eppy/tests/test_runner.py b/tests/test_runner.py similarity index 95% rename from eppy/tests/test_runner.py rename to tests/test_runner.py index 89b5d6d9..f4bd5823 100644 --- a/eppy/tests/test_runner.py +++ b/tests/test_runner.py @@ -23,7 +23,7 @@ import shutil import pytest -from six.moves import reload_module as reload +from importlib import reload from eppy import modeleditor from eppy.pytest_helpers import do_integration_tests @@ -40,7 +40,7 @@ def versiontuple(vers): THIS_DIR = os.path.dirname(os.path.abspath(__file__)) -RESOURCES_DIR = os.path.join(THIS_DIR, os.pardir, "resources") +RESOURCES_DIR = os.path.join(THIS_DIR, os.pardir, "eppy", "resources") IDD_FILES = os.path.join(RESOURCES_DIR, "iddfiles") IDF_FILES = os.path.join(RESOURCES_DIR, "idffiles") @@ -57,8 +57,7 @@ def versiontuple(vers): def has_severe_errors(results="run_outputs"): - """Check for severe errors in the eplusout.end file. - """ + """Check for severe errors in the eplusout.end file.""" end_filename = glob("{}/*.end".format(results))[0] with open(os.path.join(end_filename), "r") as end_file: end_txt = end_file.read() @@ -67,8 +66,7 @@ def has_severe_errors(results="run_outputs"): def test_version_reader(): - """Test that get the expected idd_version when reading an IDF/IDD. - """ + """Test that get the expected idd_version when reading an IDF/IDD.""" # We need to reload modeleditor since the IDF class may have had an IDD # which causes problems. # https://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module @@ -81,6 +79,7 @@ def test_version_reader(): assert ep_version == versiontuple(VERSION) ep_version = modeleditor.IDF.idd_version assert ep_version == versiontuple(VERSION) + # reload(modeleditor) @pytest.mark.skipif( @@ -95,41 +94,34 @@ class TestEnvironment(object): """ def test_thisdir_exists(self): - """Make sure we are starting from the correct path. - """ + """Make sure we are starting from the correct path.""" assert os.path.isdir(THIS_DIR) def test_iddfiles_exists(self): - """Test the IDD files are where we expect them. - """ + """Test the IDD files are where we expect them.""" assert os.path.isdir(IDD_FILES) def test_idffiles_exists(self): - """Test the test IDF files are where we expect them. - """ + """Test the test IDF files are where we expect them.""" assert os.path.isdir(IDF_FILES) def test_epw_exists(self): - """Test the test EPW file is where we expect it to be. - """ + """Test the test EPW file is where we expect it to be.""" f = os.path.join(eplus_weather, TEST_EPW) assert os.path.isfile(f) def test_idf_exists(self): - """Test the test IDF file is where we expect it to be. - """ + """Test the test IDF file is where we expect it to be.""" f = os.path.join(IDF_FILES, TEST_IDF) assert os.path.isfile(f) def test_idd_exists(self): - """Test the test IDD file is where we expect it to be. - """ + """Test the test IDD file is where we expect it to be.""" f = os.path.join(IDD_FILES, TEST_IDD) assert os.path.isfile(f) def test_old_idd_exists(self): - """Test the test old IDD file is where we expect it to be. - """ + """Test the test old IDD file is where we expect it to be.""" f = os.path.join(IDD_FILES, TEST_OLD_IDD) assert os.path.isfile(f) @@ -139,22 +131,21 @@ def test_old_idd_exists(self): ) class TestRunFunction(object): - """Tests for simple running of EnergyPlus from Eppy. - """ + """Tests for simple running of EnergyPlus from Eppy.""" def setup(self): - """Tidy up just in case anything is left from previous test runs. - """ + """Tidy up just in case anything is left from previous test runs.""" + # reload(modeleditor) os.chdir(THIS_DIR) shutil.rmtree("test_results", ignore_errors=True) shutil.rmtree("run_outputs", ignore_errors=True) def teardown(self): - """Tidy up after tests. - """ + """Tidy up after tests.""" os.chdir(THIS_DIR) shutil.rmtree("test_results", ignore_errors=True) shutil.rmtree("run_outputs", ignore_errors=True) + # reload(modeleditor) def test_run_abs_paths(self): """ @@ -201,12 +192,11 @@ def test_run_missing_file_raises_error(self, capfd): ) class TestIDFRunner(object): - """Tests for running EnergyPlus from an IDF object. - """ + """Tests for running EnergyPlus from an IDF object.""" def setup(self): - """Tidy up anything left from previous runs. Get an IDF object to run. - """ + """Tidy up anything left from previous runs. Get an IDF object to run.""" + # reload(modeleditor) shutil.rmtree(os.path.join(THIS_DIR, "run_outputs"), ignore_errors=True) self.expected_files = [ @@ -253,12 +243,12 @@ def setup(self): ] def teardown(self): - """Destroy temp dir, reset working directory, destroy outputs. - """ + """Destroy temp dir, reset working directory, destroy outputs.""" os.chdir(THIS_DIR) shutil.rmtree("run_outputs", ignore_errors=True) shutil.rmtree("other_run_outputs", ignore_errors=True) shutil.rmtree("test_results", ignore_errors=True) + # reload(modeleditor) for f in {"eplusout.end", "eplusout.err", "in.idf"}: try: os.remove(os.path.join(THIS_DIR, f)) @@ -266,8 +256,7 @@ def teardown(self): pass def num_rows_in_csv(self, results="./run_outputs"): - """Check readvars outputs the expected number of rows. - """ + """Check readvars outputs the expected number of rows.""" with open(os.path.join(results, "eplusout.csv"), "r") as csv_file: return len(csv_file.readlines()) @@ -528,12 +517,11 @@ def test_exception_message(self, test_idf): ) class TestMultiprocessing(object): - """Tests for running multiple EnergyPlus jobs simultaneously. - """ + """Tests for running multiple EnergyPlus jobs simultaneously.""" def setup(self): - """Clear out any results from previous tests. - """ + """Clear out any results from previous tests.""" + # reload(modeleditor) os.chdir(THIS_DIR) shutil.rmtree("multirun_outputs", ignore_errors=True) self.expected_files = [ @@ -552,12 +540,12 @@ def setup(self): ] def teardown(self): - """Remove the multiprocessing results folders. - """ + """Remove the multiprocessing results folders.""" for results_dir in glob("results_*"): shutil.rmtree(results_dir) shutil.rmtree("test_results", ignore_errors=True) shutil.rmtree("run_outputs", ignore_errors=True) + # reload(modeleditor) def test_sequential_run(self): """ diff --git a/eppy/tests/test_simpleread.py b/tests/test_simpleread.py similarity index 99% rename from eppy/tests/test_simpleread.py rename to tests/test_simpleread.py index 3e6f60f6..dc5c668b 100644 --- a/eppy/tests/test_simpleread.py +++ b/tests/test_simpleread.py @@ -9,7 +9,7 @@ from __future__ import print_function from __future__ import unicode_literals -from six import StringIO +from io import StringIO import eppy.simpleread as simpleread diff --git a/eppy/tests/test_thermal_properties.py b/tests/test_thermal_properties.py similarity index 99% rename from eppy/tests/test_thermal_properties.py rename to tests/test_thermal_properties.py index 0123408c..746c9a74 100644 --- a/eppy/tests/test_thermal_properties.py +++ b/tests/test_thermal_properties.py @@ -13,7 +13,7 @@ import warnings -from six import StringIO +from io import StringIO from eppy.constructions.thermal_properties import INSIDE_FILM_R from eppy.constructions.thermal_properties import OUTSIDE_FILM_R diff --git a/eppy/tests/test_walk_hvac.py b/tests/test_walk_hvac.py similarity index 100% rename from eppy/tests/test_walk_hvac.py rename to tests/test_walk_hvac.py diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..cd43f305 --- /dev/null +++ b/tox.ini @@ -0,0 +1,27 @@ +[tox] +envlist = py35, py36, py37, py38, flake8 + +[travis] +python = + 3.8: py38 + 3.7: py37 + 3.6: py36 + 3.5: py35 + +[testenv:flake8] +basepython = python +deps = flake8 +commands = flake8 eppy tests + +[testenv] +setenv = + PYTHONPATH = {toxinidir} +deps = + -r{toxinidir}/requirements_dev.txt +; If you want to make tox run the tests with the same versions, create a +; requirements.txt with the pinned versions and uncomment the following line: +; -r{toxinidir}/requirements.txt +commands = + pip install -U pip + pytest --basetemp={envtmpdir} +