pax_global_header00006660000000000000000000000064136731450350014521gustar00rootroot0000000000000052 comment=04217327ff8226835a575f37ee8e6a89cc55151f pyutilib-6.0.0/000077500000000000000000000000001367314503500133655ustar00rootroot00000000000000pyutilib-6.0.0/.appveyor.yml000066400000000000000000000044751367314503500160450ustar00rootroot00000000000000environment: matrix: # For Python versions available on Appveyor, see # http://www.appveyor.com/docs/installed-software#python # The list here is complete (excluding Python 2.6, which # isn't covered by this document) at the time of writing. - PYTHON: "C:\\Miniconda-x64" #PYTHON: "C:\\Python27" #- PYTHON: "C:\\Miniconda34-x64" # #PYTHON: "C:\\Python34" - PYTHON: "C:\\Miniconda35-x64" #PYTHON: "C:\\Python35" - PYTHON: "C:\\Miniconda36-x64" #PYTHON: "C:\\Python36" - PYTHON: "C:\\Miniconda37-x64" #PYTHON: "C:\\Python37" #- PYTHON: "C:\\Python27-x64" #- PYTHON: "C:\\Python33-x64" # DISTUTILS_USE_SDK: "1" #- PYTHON: "C:\\Python34-x64" # DISTUTILS_USE_SDK: "1" #- PYTHON: "C:\\Python35-x64" #- PYTHON: "C:\\Python36-x64" install: # We need wheel installed to build wheels - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PYTHON%\\Library\\bin;%PATH%" - python --version - conda install -q -y --channel conda-forge setuptools - python -m pip install coverage - python -m pip install nose - python -m pip install xlrd #- python -m pip install openpyxl - "dir %PYTHON%\\Scripts" build: off test_script: # Put your test command here. # If you don't need to build C extensions on 64-bit Python 3.3 or 3.4, # you can remove "build.cmd" from the front of the command, as it's # only needed to support those cases. # Note that you must use the environment variable %PYTHON% to refer to # the interpreter you're using - Appveyor does not do anything special # to put the Python evrsion you want to use on PATH. - "%PYTHON%\\python.exe setup.py develop" - "%PYTHON%\\Scripts\\test.pyutilib.exe --cat=nightly --cov -v" #after_test: # This step builds your wheels. # Again, you only need build.cmd if you're building C extensions for # 64-bit Python 3.3/3.4. And you need to use %PYTHON% to get the correct # interpreter #- "build.cmd %PYTHON%\\python.exe setup.py bdist_wheel" #artifacts: # bdist_wheel puts your built wheel in the dist directory #- path: dist\* on_success: # You can use this step to upload your artifacts to a public website. # See Appveyor's documentation for more details. Or you can simply # access your wheels from the Appveyor "artifacts" tab for your build. - pip install codecov - codecov pyutilib-6.0.0/.coveragerc000066400000000000000000000001531367314503500155050ustar00rootroot00000000000000[report] omit = */python?.?/* */site-packages/nose/* *__init__* */setup.py */tests/* pyutilib-6.0.0/.github/000077500000000000000000000000001367314503500147255ustar00rootroot00000000000000pyutilib-6.0.0/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000010701367314503500205240ustar00rootroot00000000000000## Fixes: # ## Summary/Motivation: ## Changes proposed in this PR: - - ### Legal Acknowledgement By contributing to this software project, I agree to the following terms and conditions for my contribution: 1. I agree my contributions are submitted under the BSD license. 2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer. pyutilib-6.0.0/.github/workflows/000077500000000000000000000000001367314503500167625ustar00rootroot00000000000000pyutilib-6.0.0/.github/workflows/release_wheel_creation.yml000066400000000000000000000016121367314503500241750ustar00rootroot00000000000000name: PyUtilib Release Distribution Creation on: push: tags: - '*' jobs: wheelcreation: name: pyutilib/wheel_creation runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] include: - os: ubuntu-latest TARGET: linux python-version: [3.7] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install twine wheel setuptools - name: Build Python wheels run: | python setup.py sdist --format=gztar bdist_wheel - name: Upload artifact uses: actions/upload-artifact@v1 with: name: pyutilib-wheels path: dist pyutilib-6.0.0/.gitignore000066400000000000000000000013411367314503500153540ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml TEST-*.xml *,cover .hypothesis/ # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ pyutilib-6.0.0/.travis.yml000066400000000000000000000017551367314503500155060ustar00rootroot00000000000000language: python matrix: include: - python: '2.7' env: PYRO="Pyro" YAML="pyyaml" #- python: '2.7' # env: PYRO="Pyro" JYTHON="org.python:jython-installer:2.7.0" - python: '3.4' env: PYRO="Pyro4" YAML="pyyaml<=5.2" - python: '3.5' env: PYRO="Pyro4" YAML="pyyaml" - python: '3.6' env: PYRO="Pyro4" YAML="pyyaml" - python: '3.7' env: PYRO="Pyro4" YAML="pyyaml" - python: '3.8' env: PYRO="Pyro4" YAML="pyyaml" - python: '3.6' env: PYRO="Pyro4" YAML="" - python: pypy env: PYRO="Pyro" YAML="pyyaml" - python: pypy3 env: PYRO="Pyro4" YAML="pyyaml" install: - if [ -n "${JYTHON}" ]; then source install_jython.sh; fi - if [ -n "${YAML}" ]; then pip install "${YAML}"; fi - pip install xlrd - pip install $PYRO - pip install coverage - python setup.py develop script: #- cd .. #- cp pyutilib/.coveragerc . - test.pyutilib --cat=all --cov after_success: - pip install codecov - codecov - pip install python-coveralls - coveralls - cd $TRAVIS_BUILD_DIR pyutilib-6.0.0/AUTHORS.txt000066400000000000000000000003641367314503500152560ustar00rootroot00000000000000 The GitHub contributors page provides a list of developers who have contributed to this repository. The following were the main developers who contributed to the original subversion repository: . William Hart . John Siirola . Gabe Hackabiel pyutilib-6.0.0/CHANGELOG.txt000066400000000000000000000643521367314503500154270ustar00rootroot00000000000000==================== PyUtilib CHANGELOG ==================== ------------------------------------------------------------------------------- Version 6.0.0 19 Jun 2020 ------------------------------------------------------------------------------- * Major API changes - Remove pyutilib.enum package (#101) * Other changes - Updates to pyutilib.misc.config including documentation (#88) - Updates to the README (#91, #92) - Remove references to Python 2.6 (and older) (#94) - Add hierarchical timer class (#96) - Add an ImmutableConfigValue class (#95) - Add unittest.mock backport (#98) - Automate wheel creation (#99) - Improve formatting in the log formatter (#102) - Add support for expanding user and environment variables in import_file (#103) ------------------------------------------------------------------------------- Version 5.8.0 18 Mar 2020 ------------------------------------------------------------------------------- - Remove use of namespace packages (#85) - Rework optional dependency imports (#84, #87) - Fix column width in pyutilib.misc config tests (#69) - Add a compatibility shim for assertRaisesRegex and assertRegex (#79, #83) - Force PyYAML<=5.2 for Python 3.4 tests (#78) - Clean up setup.py and setup.cfg (#75) - Fix for running tests on Windows with Python 3.8 (#77) - Improve output from ConfigBlock display() (#76) ------------------------------------------------------------------------------- Version 5.7.3 13 Dec 2019 ------------------------------------------------------------------------------- - Improvements to import_file() and run_file() (#70) ------------------------------------------------------------------------------- Version 5.7.2 7 Nov 2019 ------------------------------------------------------------------------------- - Add ability to start/stop a TicTocTimer (#63) - Add support for Python 3.8 (#66) - Uncategorized tests no longer default to expensive (#46) - Update minor mistakes in listings (#35) ------------------------------------------------------------------------------- Version 5.7.1 21 Jun 2019 ------------------------------------------------------------------------------- - StreamIndenter fix for blank lines (#58) - Fix in Excel interface to avoid closing previously open Excel windows (#59) - Removed README.txt, standardizing on README.md ------------------------------------------------------------------------------- Version 5.7.0 1 May 2019 ------------------------------------------------------------------------------- - Disable nose's use of docstrings for test descriptions (#54) - Resolve testing issues with new version of PyYAML (#53, #55) - Resolve testing issues with subprocess (#53) - Remove testing and support for Python 2.6 (#52) - Fix component loader (#51) ------------------------------------------------------------------------------- Version 5.6.5 18 Jan 2019 ------------------------------------------------------------------------------- - Fix condition where subprocess exits before I/O threads were created (#49) ------------------------------------------------------------------------------- Version 5.6.4 19 Dec 2018 ------------------------------------------------------------------------------- - Fix IOptionDataProvider methods missing 'self' argument (#34) - Updates to ConfigBlock - Add missing API, add ConfigDict alias, fix default value handling (#40) - Add option to preserve implicit values (#45) - Allow overriding attributes when copying (#44) - Update project administration files (#41) - Update MutableMapping import to avoid deprecation warning (#43) - Fix and simplify file comparison operators (#47) ------------------------------------------------------------------------------- Version 5.6.3 9 Apr 2018 ------------------------------------------------------------------------------- - Resolved enum test failure on Python 3.x - Created a global default for disabling the default signal handling (#32) - Updated the isclose() method to match PEP-485 - Fix for setting a ConfigBlock with keys that contains spaces/underscores. ------------------------------------------------------------------------------- Version 5.6.2 28 Feb 2018 ------------------------------------------------------------------------------- - Resolving appveyor test failures. ------------------------------------------------------------------------------- Version 5.6.1 23 Feb 2018 ------------------------------------------------------------------------------- - Minor cleanup of ConfigBlock class. - Add redirected_stdout context manager and tests (#29) - Added documentation for visitor classes - Adding line wrapping to the LogHandler ------------------------------------------------------------------------------- Version 5.6 21 Oct 2017 ------------------------------------------------------------------------------- - Changed the default logic for ExcelSpreadsheet to use xldrd when available - Changed logic for ExcelSpreadsheet to test for Excel with win32com - Updates to pyutilib.th and pyutilib.dev to make testing scripts more robust - Added a visitor pattern in pyutilib.misc - Reordering some of the I/O management and guarding I/O (Pyomo #156) - Introduced contiguous task processing in pyutilib.worker ------------------------------------------------------------------------------- Version 5.5.1 18 Jun 2017 ------------------------------------------------------------------------------- - Fix for making private copies of os.environ - Defer imports of pyutilib.misc in pyutilib.th to improve coverage ------------------------------------------------------------------------------- Version 5.5 13 May 2017 ------------------------------------------------------------------------------- - Close a pyro worker if an exception occurs - Allow an existing nameserver proxy to be passed into shutdown_pyro_components - When starting a nameserver, the default host is not localhost - The default behavior for the dispatch_srvr daemon binds to hostname - Support for non-string keys in ConfigBlocks - Changes to make ConfigBlock add more like dict ------------------------------------------------------------------------------- Version 5.4.1 30 Oct 2016 ------------------------------------------------------------------------------- - Updates to work with OpenPyxl 2.4 - Catching exception when configuration options are not populated ------------------------------------------------------------------------------- Version 5.4 ------------------------------------------------------------------------------- - Using ordered dictionary repns for XMLs to ensure consistent output - Reformatted PyUtilib code with yapf. - Fix to ensure compatibility with Pyro 4.46 - Modified the test.pyutilib script to return an exit code from the console - Changes to eliminate import cycles - Removed internal use of 'import *' ------------------------------------------------------------------------------- Version 5.3.5 ------------------------------------------------------------------------------- - Setting up auto-deployment to PyPI ------------------------------------------------------------------------------- Version 5.3.4 ------------------------------------------------------------------------------- - Updates to setup automated testing infrastructure. ------------------------------------------------------------------------------- Version 5.3.3 ------------------------------------------------------------------------------- - Documentation update. ------------------------------------------------------------------------------- Version 5.3.2 ------------------------------------------------------------------------------- - Documentation updates. ------------------------------------------------------------------------------- Version 5.3.1 ------------------------------------------------------------------------------- - Documentation updates. ------------------------------------------------------------------------------- Version 5.3 ------------------------------------------------------------------------------- - pyutilib.enum - Allow initialization with custom EnumValue implementations - pyutilib.pyro - Allow a TaskWorker to change the queue that task results are returned to - Make the default behavior for single-queue TaskWorker be to request tasks without a timeout. - pyutilib.dev - Updating testing semantics. Using only a single test category, and the smoke category is the default. - Changes to make uncategorized tests run when 'smoke', 'nightly' or 'expensive' tests are run. - Switching `lbin`, `lpython`, and `runtests` to use `execvp()` instead of subprocess for launching commands that are never intended to return. - pyutilib.worker - Resolving semantic differences between NoTask and EmptyTask. ------------------------------------------------------------------------------- Version 5.2.3601 ------------------------------------------------------------------------------- - Fixed line count when processing multiple files. ------------------------------------------------------------------------------- Version 5.2.3599 ------------------------------------------------------------------------------- - Py3k fixes - pyutilib.subprocess fix for python 3.5 - pyutilib.pyro - Added options that allow setting up the nameserver and dispatch server in user specified ports - Fix for Pyro3 so that workers do not ignore shutdown requests from the dispatcher - Being more careful about clearing queues: Do this in a thread safe way to avoid leaving threads waiting on a deleted queue object. - Do not mark clear queue methods as oneway (Pyro4 only) to avoid race conditions with adding tasks after clear queue calls - More robust error handling when connecting to the nameserver - Changing default behavior of TaskWorker to collect a single task at a time, which is more appropriate worker groups of workers that all collect from the same queue. - Allow derived worker types to set the _bulk_task_collection flag, which activates bulk task collection from their queue type - allow Client to be initialized with a previously obtained dispatcher proxy - Exposing functionality for limiting the number of workers that can be registered with the dispatcher through an additional command-line option (--worker-limit) - Adding methods that allow registration of workers with the dispatcher object. This facilitates client-side operations for acquiring a minimum number of workers over multiple dispatchers. - Added functionality that allows splitting workers across multiple dispatch servers ------------------------------------------------------------------------------- Version 5.1.3556 ------------------------------------------------------------------------------- - Misc update to PauseGC API. ------------------------------------------------------------------------------- Version 5.1.3554 ------------------------------------------------------------------------------- - Catch errors when GC disabling isn't allowed. - Fixing an error message in ConfigBlock ------------------------------------------------------------------------------- Version 5.1.3548 ------------------------------------------------------------------------------- - Adding multiple task submission capability to dispatcher. - Improved clarity of Pyro diagnostic messages - Fixing the PyPI downloader so that it can handle non-numeric versions. - Adding support for xlrd and openpyxl interfaces. - Changing the semantics of Config* objects to return the values of ConfigValue objects. - Updates to Container - Changing Container output to look like YAML. - When loading dictionaries, recursively create Container objects for sub-dictionaries. - Added a randomization component to the sleep timeout in the worker wait-for-work loop to avoid dispatcher contention. - Updates to the ConfigBlock - Support for multiple argument definitions for a single ConfigValue - Support for declaring groups by passing argparse parser or group objects - Improved checking for implicit Block attributes - Support for a default domain for implicit block attributes ------------------------------------------------------------------------------- Version 5.0.3478 ------------------------------------------------------------------------------- - Changing naming of nose plugins. - Adding the --with-testdata option when runing performance tests. - Pyro3/Pyro4 compatibility fixes ------------------------------------------------------------------------------- Version 5.0.3467 ------------------------------------------------------------------------------- - Integrating many PyUtilib sub-packages into a single source tree - Integrating the Coopr plugin framework in pyutilib.component.core - pyutilib.th - Adding a forcedskip option, which can be used to add tests that are skipped due to external factors. - Extending baseline tests to allow comparison with YAML, XML and JSON files. - pyutilib.pyro - Changes to support clearing the dispatcher queue - Adding default value for TaskWorker type - Allowing more control of blocking behavior when calling dispatcher - Modifying dispatcher to look for the presence of an environment variable called "MAX_PYRO_CONNECTIONS", to over-ride the default number of allowed connections. - Adding randomization of the sleep interval in a pyro client, following failure to initially connect to a name server. Randomization will better distribute the number of concurrent re-connection attempts. - pyutilib.misc - Allowing None tolerance when comparing YAML files. - Disallowing whitespace between a +/- and the number. Strings cannot be converted to floats with whitespace - Adding support for gzip and bz2 compressed files, which act as single file archives - Adding support to open readonly file objects (using the open() method) rather than only supporting file extractions to disk - Adding an option to clear sys.modules of the module being imported. Sometimes, we really want to re-import a module with the same 'name' that was located in a different location. - pyutilib.dev - Adding a '-f' [find only] option to lbin so that lbin can be used to locate but not run local executables. ------------------------------------------------------------------------------- Version 4.7.3340 ------------------------------------------------------------------------------- - pyutilib.th 5.4.2 ------------------------------------------------------------------------------- Version 4.7.3336 ------------------------------------------------------------------------------- - pyutilib.subprocess 3.6.2 ------------------------------------------------------------------------------- Version 4.7.3332 ------------------------------------------------------------------------------- - pyutilib.component.config 3.8 pyutilib.misc 5.9.1 ------------------------------------------------------------------------------- Version 4.7.3326 ------------------------------------------------------------------------------- - pyutilib.component.core 4.6.4 pyutilib.misc 5.9 ------------------------------------------------------------------------------- Version 4.7.3311 ------------------------------------------------------------------------------- - pyutilib.component.core 4.6.3 ------------------------------------------------------------------------------- Version 4.7.3305 ------------------------------------------------------------------------------- - pyutilib.component.core 4.6.2 ------------------------------------------------------------------------------- Version 4.7.3301 ------------------------------------------------------------------------------- - pyutilib.component.core 4.6.1 ------------------------------------------------------------------------------- Version 4.7.3281 ------------------------------------------------------------------------------- - pyutilib.component.config 3.7 pyutilib.dev 2.5 pyutilib.misc 5.8, pyutilib.pyro 3.6.1 pyutilib.subprocess 3.6.1 pyutilib.svn 1.5.1 pyutilib.virtualenv 4.3.4 pyutilib.workflow 3.5.1 ------------------------------------------------------------------------------- Version 4.6.3215 ------------------------------------------------------------------------------- - pyutilib.component.config 3.6.1 pyutilib.dev 2.4 pyutilib.misc 5.6 pyutilib.pyro 3.6 pyutilib.subprocess 3.6 pyutilib.svn 1.5 pyutilib.virtualenv 4.2 pyutilib.workflow 3.5 ------------------------------------------------------------------------------- Version 4.5.3053 ------------------------------------------------------------------------------- - pyutilib.autodist 1.0 pyutilib.autotest 2.0.1 pyutilib.svn 1.4.1 pyutilib.virtualenv 4.0 ------------------------------------------------------------------------------- Version 4.4.3026 ------------------------------------------------------------------------------- - pyutilib.virtualenv 3.3 ------------------------------------------------------------------------------- Version 4.3.3009 ------------------------------------------------------------------------------- - pyutilib.dev 2.3 ------------------------------------------------------------------------------- Version 4.3.2997 ------------------------------------------------------------------------------- - pyutilib.dev 2.2.1 pyutilib.enum 1.2 pyutilib.misc 5.5.1 pyutilib.subprocess 3.5.4 pyutilib.svn 1.4 pyutilib.th 5.4.1 ------------------------------------------------------------------------------- Version 4.2.2964 ------------------------------------------------------------------------------- - pyutilib.component.config 3.6 pyutilib.component.core 4.6 pyutilib.component.loader 3.4.1 pyutilib.dev 2.2 pyutilib.excel 3.1.2 pyutilib.math 3.3.1 pyutilib.misc 5.5 pyutilib.ply 3.0.8 pyutilib.pyro 3.5.3 pyutilib.subprocess 3.5.3 pyutilib.th 5.4 pyutilib.virtualenv 3.2 pyutilib.workflow 3.4 ------------------------------------------------------------------------------- Version 4.1.2918 ------------------------------------------------------------------------------- - pyutilib.workflow 3.3.3 pyutilib.virtualenv 3.1.1 ------------------------------------------------------------------------------- Version 4.1.2908 ------------------------------------------------------------------------------- - pyutilib.workflow 3.3.2 ------------------------------------------------------------------------------- Version 4.1.2897 ------------------------------------------------------------------------------- - pyutilib.component.config 3.5.1 pyutilib.component.core 4.5.6 pyutilib.workflow 3.3.1 ------------------------------------------------------------------------------- Version 4.1.2882 ------------------------------------------------------------------------------- - pyutilib.component.config 3.5 pyutilib.component.core 4.5.5 pyutilib.dev 2.1 pyutilib.virtualenv 3.1 pyutilib.workflow 3.3 ------------------------------------------------------------------------------- Version 4.0.2848 ------------------------------------------------------------------------------- - pyutilib.pyro 3.5.2 ------------------------------------------------------------------------------- Version 4.0.2832 ------------------------------------------------------------------------------- - pyutilib.excel 3.1.1 pyutilib.ply 3.0.7 pyutilib.pyro 3.5.1 pyutilib.svn 1.3.1 ------------------------------------------------------------------------------- Version 4.0.2819 ------------------------------------------------------------------------------- - pyutilib.component.core 4.5.2 pyutilib.subprocess 3.5.2 ------------------------------------------------------------------------------- Version 4.0.2807 ------------------------------------------------------------------------------- - pyutilib.component.core 4.5.1 pyutilib.misc 5.3.1 pyutilib.subprocess 3.5.1 ------------------------------------------------------------------------------- Version 4.0.2801 ------------------------------------------------------------------------------- - pyutilib.autotest 2.0 pyutilib.component.app 3.2 pyutilib.component.config 3.4 pyutilib.component.core 4.5 pyutilib.component.executables 3.5 pyutilib.component.loader 3.4 pyutilib.dev 2.0 pyutilib.enum 1.1 pyutilib.excel 3.1 pyutilib.math 3.3 pyutilib.misc 5.3 pyutilib.R 3.1 pyutilib.services 3.4 pyutilib.subprocess 3.5 pyutilib.svn 1.3 pyutilib.th 5.3 pyutilib.virtualenv 3.0 pyutilib.workflow 3.2 ------------------------------------------------------------------------------- Version 3.11.2730 ------------------------------------------------------------------------------- - pyutilib.common 3.0.7 pyutilib.workflow 3.1.1 ------------------------------------------------------------------------------- Version 3.10.2718 ------------------------------------------------------------------------------- - pyutilib.common 3.0.6 pyutilib.math 3.2 pyutilib.misc 5.2 pyutilib.virtualenv 2.9 ------------------------------------------------------------------------------- Version 3.9.2706 ------------------------------------------------------------------------------- - pyutilib.autotest 1.6 pyutilib.component.core 4.4.1 pyutilib.dev 1.17 pyutilib.misc 5.1 pyutilib.subprocess 3.4 pyutilib.svn 1.2 pyutilib.virtualenv 2.8 pyutilib.workflow 3.1 ------------------------------------------------------------------------------- Version 3.8.2669 ------------------------------------------------------------------------------- - pyutilib.misc 5.0.1 ------------------------------------------------------------------------------- Version 3.8.2652 ------------------------------------------------------------------------------- - pyutilib.misc 5.0.1 pyutilib.pyro 3.5 pyutilib.svn 1.1 pyutilib.virtualenv 2.7 ------------------------------------------------------------------------------- Version 3.7.2615 ------------------------------------------------------------------------------- - pyutilib.autotest 1.5 pyutilib.component.app 3.1.7 pyutilib.component.config 3.3.3 pyutilib.component.core 4.4 pyutilib.dev 1.16 pyutilib.excel 3.0.7 pyutilib.math 3.1 pyutilib.misc 5.0 pyutilib.pyro 3.4 pyutilib.subprocess 3.3 pyutilib.svn 1.0.2 pyutilib.th 5.2 pyutilib.virtualenv 2.6 pyutilib.workflow 3.0 ------------------------------------------------------------------------------- Version 3.6.2498 ------------------------------------------------------------------------------- - pyutilib.autotest 1.4.6 pyutilib.common 3.0.5 pyutilib.component.app 3.1.6 pyutilib.component.config 3.3.2 pyutilib.component.core 4.3.1 pyutilib.component.executables 3.4.1 pyutilib.component.loader 3.3.1 pyutilib.dev 1.15.2 pyutilib.enum 1.0.7 pyutilib.excel 3.0.6 pyutilib.math 3.0.6 pyutilib.misc 4.6 pyutilib.ply 3.0.6 pyutilib.pyro 3.3 pyutilib.R 3.0.5 pyutilib.services 3.3.1 pyutilib.subprocess 3.2.3 pyutilib.svn 1.0.1 pyutilib.th 5.0 pyutilib.virtualenv 2.5 pyutilib.workflow 2.2.4 ------------------------------------------------------------------------------- Version 3.5.2320 ------------------------------------------------------------------------------- - pyutilib.dev 1.15 pyutilib.misc 4.5.3 pyutilib.virtualenv 2.4.1 ------------------------------------------------------------------------------- Version 3.5.2313 ------------------------------------------------------------------------------- - pyutilib.misc 4.5.2 pyutilib.ply 3.0.5 pyutilib.virtualenv 2.4 ------------------------------------------------------------------------------- Version 3.4.2289 ------------------------------------------------------------------------------- - pyutilib.autotest 1.4.4 pyutilib.component.app 3.1.5 pyutilib.component.config 3.3.1 pyutilib.component.core 4.3 pyutilib.component.loader 3.3 pyutilib.dev 1.14 pyutilib.enum 1.0.6 pyutilib.excel 3.0.5 pyutilib.math 3.0.5 pyutilib.misc 4.5.1 pyutilib.pyro 3.2.1 pyutilib.th 4.6 pyutilib.virtualenv 2.3 pyutilib.workflow 2.2.2 ------------------------------------------------------------------------------- Version 3.3.2092 ------------------------------------------------------------------------------- - pyutilib.component.core 4.1.1 pyutilib.workflow 2.2.1 ------------------------------------------------------------------------------- Version 3.3.2082 ------------------------------------------------------------------------------- - pyutilib.autotest 1.4.1 pyutilib.component.executables 3.4 pyutilib.misc 4.2 pyutilib.services 3.3 pyutilib.subprocess 3.2.2 pyutilib.th 4.4 pyutilib.workflow 2.2 ------------------------------------------------------------------------------- Version 3.2.2053 ------------------------------------------------------------------------------- - pyutilib.dev 1.11.1 pyutilib.misc 4.1.2 ------------------------------------------------------------------------------- Version 3.2.2044 ------------------------------------------------------------------------------- - Minor updates pyutilib.dev 1.11 pyutilib.th 4.3.1 pyutilib.workflow 2.1 - Revision updates pyutilib.component.app 3.1.3 pyutilib.component.config 3.2.3 pyutilib.component.loader 3.2.3 pyutilib.misc 4.1.1 pyutilib.virtualenv 1.5.1 ------------------------------------------------------------------------------- Version 3.1.2014 ------------------------------------------------------------------------------- - Various updates. Including the new pyutilib.workflow package. ------------------------------------------------------------------------------- Version 3.0.1745 ------------------------------------------------------------------------------- - Release of pyutilib.component.doc 1.0 . This doesn't change any functionality in PyUtilib, so this is being left in the 3.0 release. ------------------------------------------------------------------------------- Version 3.0.1734 ------------------------------------------------------------------------------- - Updates to resolve build issues for MS Windows. - Updates to get testing working with PyPI distributions of PyUtilib packages. ------------------------------------------------------------------------------- Version 3.0.1651 ------------------------------------------------------------------------------- - Initial setup of PyUtilib global package. pyutilib-6.0.0/CONTRIBUTING.md000066400000000000000000000020561367314503500156210ustar00rootroot00000000000000Contributing to PyUtilib ===================== Pull Requests ------------- PyUtilib manages source code contributions via pull requests. For a pull request to be accepted, it must satisfy all code integration and coverage tests, and then pass review by two core developers. For core developers, authorship of a pull request counts as a review. Submitted code that addresses an issue should include a test exercising the relevant case. New functionality should include tests to establish validity of its results and/or effects. Legal Disclaimer ---------------- By contributing to this software project, you are agreeing to the following terms and conditions for your contributions: 1. You agree your contributions are submitted under the BSD license. 2. You represent you are authorized to make the contributions and grant the license. If your employer has rights to intellectual property that includes your contributions, you represent that you have received permission to make contributions and grant the required license on behalf of that employer. pyutilib-6.0.0/LICENSE.txt000066400000000000000000000031321367314503500152070ustar00rootroot00000000000000Copyright 2008 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Sandia National Laboratories nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. pyutilib-6.0.0/README.md000066400000000000000000000052361367314503500146520ustar00rootroot00000000000000[![Travis Build Status](https://travis-ci.org/PyUtilib/pyutilib.png?branch=master)](https://travis-ci.org/PyUtilib/pyutilib) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/c8dh5o1blp0sycr6/branch/master?svg=true)](https://ci.appveyor.com/project/WilliamHart/pyutilib/branch/master) [![codecov.io](https://codecov.io/github/PyUtilib/pyutilib/coverage.svg?branch=master)](https://codecov.io/github/PyUtilib/pyutilib?branch=master) [![Depsy Software Impact](http://depsy.org/api/package/pypi/PyUtilib/badge.svg)](http://depsy.org/package/python/PyUtilib) [![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) ## PyUtilib Overview The PyUtilib project supports a collection of Python utilities, including a well-developed component architecture and extensions to the PyUnit testing framework. PyUtilib has been developed to support several Python-centric projects, especially [Pyomo](http://pyomo.org). PyUtilib is available under the BSD License. ### Installation #### PyPI [![PyPI version](https://img.shields.io/pypi/v/pyutilib.svg?maxAge=3600)](https://pypi.org/project/PyUtilib/) [![PyPI downloads](https://img.shields.io/pypi/dm/pyutilib.svg?maxAge=21600)](https://pypistats.org/packages/pyutilib) pip install pyutilib #### Anaconda [![Anaconda version](https://anaconda.org/conda-forge/pyutilib/badges/version.svg)](https://anaconda.org/conda-forge/pyutilib) [![Anaconda downloads](https://anaconda.org/conda-forge/pyutilib/badges/downloads.svg)](https://anaconda.org/conda-forge/pyutilib) conda install -c https://conda.anaconda.org/conda-forge pyutilib ### Getting Help * [PyUtilib Forum](https://groups.google.com/forum/?hl=en#!forum/pyutilib-forum) * [Add a Ticket](https://github.com/PyUtilib/pyutilib/issues/new) * [Find a Ticket](https://github.com/PyUtilib/pyutilib/issues) and **Vote On It**! ### Developers PyUtilib development moved to this repository in October, 2015 from Sandia National Laboratories. Developer discussions are hosted by [google groups](https://groups.google.com/forum/#!forum/pyutilib-developers). By contributing to this software project, you are agreeing to the following terms and conditions for your contributions: 1. You agree your contributions are submitted under the BSD license. 2. You represent you are authorized to make the contributions and grant the license. If your employer has rights to intellectual property that includes your contributions, you represent that you have received permission to make contributions and grant the required license on behalf of that employer. pyutilib-6.0.0/RELEASE.txt000066400000000000000000000011561367314503500152110ustar00rootroot00000000000000We are pleased to announce the release of PyUtilib 6.0.0. The PyUtilib project supports the development of an ensemble of Python packages that include a wide variety of utilities, including a well-developed component architecture. The following are highlights of the 6.0 release series: - Removed the pyutilib.enum package - Expanded timer support - Automated release management Additional changes are listed in CHANGELOG.txt PyUtilib can be installed from PyPI using pip or conda-forge using conda. Enjoy! - PyUtilib Developer Team - pyutilib-developers@googlecode.com - https://github.com/PyUtilib/pyutilib.git pyutilib-6.0.0/doc/000077500000000000000000000000001367314503500141325ustar00rootroot00000000000000pyutilib-6.0.0/doc/plugin/000077500000000000000000000000001367314503500154305ustar00rootroot00000000000000pyutilib-6.0.0/doc/plugin/DOEbwlogo.eps000077500000000000000000002431361367314503500177760ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 8.0 %%AI8_CreatorVersion: 8.0.1 %%For: (Shannon Whitehead) (Sandia National Laboratories) %%Title: (DOEbwlogo.eps) %%CreationDate: (4/18/00) (1:43 PM) %%BoundingBox: 164 250 449 535 %%HiResBoundingBox: 164.6206 250.4463 448.3794 534.5537 %%DocumentProcessColors: Black %%DocumentFonts: Times-Bold %%DocumentNeededFonts: Times-Bold %%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 %%+ procset Adobe_typography_AI5 1.0 1 %%+ procset Adobe_ColorImage_AI6 1.3 0 %%+ procset Adobe_Illustrator_AI5 1.3 0 %%+ procset Adobe_cshow 2.0 8 %%+ procset Adobe_shading_AI8 1.0 0 %AI5_FileFormat 4.0 %AI3_ColorUsage: Black&White %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) %%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4 %%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 30 31 582 761 %AI3_DocumentPreview: PC_ColorTIFF %AI5_ArtSize: 612 792 %AI5_RulerUnits: 0 %AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI8_OpenToView: -270 804 1 1146 827 18 0 1 3 40 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:30 31 %%AI3_PaperRect:-30 761 582 -31 %%AI3_Margin:30 -31 -30 31 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_level2_AI5 1.2 0 %%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) %%Version: 1.2 0 %%CreationDate: (04/10/93) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_level2_AI5 26 dict dup begin put /packedarray where not { userdict begin /packedarray { array astore readonly } bind def /setpacking /pop load def /currentpacking false def end 0 } if pop userdict /defaultpacking currentpacking put true setpacking /initialize { Adobe_level2_AI5 begin } bind def /terminate { currentdict Adobe_level2_AI5 eq { end } if } bind def mark /setcustomcolor where not { /findcmykcustomcolor { (AI8_CMYK_CustomColor) 6 packedarray } bind def /findrgbcustomcolor { (AI8_RGB_CustomColor) 5 packedarray } bind def /setcustomcolor { exch aload pop dup (AI8_CMYK_CustomColor) eq { pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } { dup (AI8_RGB_CustomColor) eq { pop pop 3 { 1 exch sub 3 index mul 1 exch sub 3 1 roll } repeat 4 -1 roll pop setrgbcolor } { pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } ifelse } ifelse } def } if /setAIseparationgray { false setoverprint 0 setgray /setseparationgray where{ pop setseparationgray }{ /setcolorspace where{ pop [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace 1 exch sub setcolor }{ setgray }ifelse }ifelse } def /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put userdict /level2? systemdict /languagelevel known dup { pop systemdict /languagelevel get 2 ge } if put /level2ScreenFreq { begin 60 HalftoneType 1 eq { pop Frequency } if HalftoneType 2 eq { pop GrayFrequency } if HalftoneType 5 eq { pop Default level2ScreenFreq } if end } bind def userdict /currentScreenFreq level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put level2? not { /setcmykcolor where not { /setcmykcolor { exch .11 mul add exch .59 mul add exch .3 mul add 1 exch sub setgray } def } if /currentcmykcolor where not { /currentcmykcolor { 0 0 0 1 currentgray sub } def } if /setoverprint where not { /setoverprint /pop load def } if /selectfont where not { /selectfont { exch findfont exch dup type /arraytype eq { makefont } { scalefont } ifelse setfont } bind def } if /cshow where not { /cshow { [ 0 0 5 -1 roll aload pop ] cvx bind forall } bind def } if } if cleartomark /anyColor? { add add add 0 ne } bind def /testColor { gsave setcmykcolor currentcmykcolor grestore } bind def /testCMYKColorThrough { testColor anyColor? } bind def userdict /composite? 1 0 0 0 testCMYKColorThrough 0 1 0 0 testCMYKColorThrough 0 0 1 0 testCMYKColorThrough 0 0 0 1 testCMYKColorThrough and and and put composite? not { userdict begin gsave /cyan? 1 0 0 0 testCMYKColorThrough def /magenta? 0 1 0 0 testCMYKColorThrough def /yellow? 0 0 1 0 testCMYKColorThrough def /black? 0 0 0 1 testCMYKColorThrough def grestore /isCMYKSep? cyan? magenta? yellow? black? or or or def /customColor? isCMYKSep? not def end } if end defaultpacking setpacking %%EndResource %%BeginResource: procset Adobe_typography_AI5 1.0 1 %%Title: (Typography Operators) %%Version: 1.0 1 %%CreationDate:(6/10/1996) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_typography_AI5 68 dict dup begin put /initialize { begin begin Adobe_typography_AI5 begin Adobe_typography_AI5 { dup xcheck { bind } if pop pop } forall end end end Adobe_typography_AI5 begin } def /terminate { currentdict Adobe_typography_AI5 eq { end } if } def /modifyEncoding { /_tempEncode exch ddef /_pntr 0 ddef { counttomark -1 roll dup type dup /marktype eq { pop pop exit } { /nametype eq { _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll put } { /_pntr exch ddef } ifelse } ifelse } loop _tempEncode } def /havefont { systemdict /languagelevel known { /Font resourcestatus dup { exch pop exch pop } if } { systemdict /FontDirectory get 1 index known { pop true } { systemdict /fileposition known { dup length 6 add exch Ss 6 250 getinterval cvs pop Ss exch 0 exch getinterval status { pop pop pop pop true } { false } ifelse } { pop false } ifelse } ifelse } ifelse } def /TE { StandardEncoding 256 array copy modifyEncoding /_nativeEncoding exch def } def /subststring { exch 2 index exch search { exch pop exch dup () eq { pop exch concatstring } { 3 -1 roll exch concatstring concatstring } ifelse exch pop true } { pop pop false } ifelse } def /concatstring { 1 index length 1 index length 1 index add string dup 0 5 index putinterval dup 2 index 4 index putinterval 4 1 roll pop pop pop } def % /TZ { dup type /arraytype eq { /_wv exch def } { /_wv 0 def } ifelse /_useNativeEncoding exch def 2 index havefont { 3 index 255 string cvs dup (_Symbol_) eq { pop 2 index findfont } { 1 index 0 eq { dup length 1 sub 1 exch getinterval cvn findfont } { pop 2 index findfont } ifelse } ifelse } { dup 1 eq { 2 index 64 string cvs dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring { exch pop dup havefont { findfont false } { pop true } ifelse } { pop dup (-90ms-RKSJ-) (-Ext-RKSJ-) subststring { exch pop dup havefont { findfont false } { pop true } ifelse } { pop pop true } ifelse } ifelse { 1 index 1 eq { /Ryumin-Light-Ext-RKSJ-V havefont {/Ryumin-Light-Ext-RKSJ-V} {/Courier} ifelse } { /Ryumin-Light-83pv-RKSJ-H havefont {/Ryumin-Light-83pv-RKSJ-H} {/Courier} ifelse } ifelse findfont [1 0 0.5 1 0 0] makefont } if } { /Courier findfont } ifelse } ifelse _wv type /arraytype eq { _wv makeblendedfont } if dup length 10 add dict begin mark exch { 1 index /FID ne { def } if cleartomark mark } forall pop /FontScript exch def /FontDirection exch def /FontRequest exch def /FontName exch def counttomark 0 eq { 1 _useNativeEncoding eq { /Encoding _nativeEncoding def } if cleartomark } { /Encoding load 256 array copy modifyEncoding /Encoding exch def } ifelse FontName currentdict end definefont pop } def /tr { _ax _ay 3 2 roll } def /trj { _cx _cy _sp _ax _ay 6 5 roll } def /a0 { /Tx { dup currentpoint 3 2 roll tr _psf newpath moveto tr _ctm _pss } ddef /Tj { dup currentpoint 3 2 roll trj _pjsf newpath moveto trj _ctm _pjss } ddef } def /a1 { W B } def /e0 { /Tx { tr _psf } ddef /Tj { trj _pjsf } ddef } def /e1 { W F } def /i0 { /Tx { tr sp } ddef /Tj { trj jsp } ddef } def /i1 { W N } def /o0 { /Tx { tr sw rmoveto } ddef /Tj { trj swj rmoveto } ddef } def /r0 { /Tx { tr _ctm _pss } ddef /Tj { trj _ctm _pjss } ddef } def /r1 { W S } def /To { pop _ctm currentmatrix pop } def /TO { iTe _ctm setmatrix newpath } def /Tp { pop _tm astore pop _ctm setmatrix _tDict begin /W { } def /h { } def } def /TP { end iTm 0 0 moveto } def /Tr { _render 3 le { currentpoint newpath moveto } if dup 8 eq { pop 0 } { dup 9 eq { pop 1 } if } ifelse dup /_render exch ddef _renderStart exch get load exec } def /iTm { _ctm setmatrix _tm concat _shift aload pop _lineorientation 1 eq { exch } if translate _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale } def /Tm { _tm astore pop iTm 0 0 moveto } def /Td { _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto } def /iTe { _render -1 eq { } { _renderEnd _render get dup null ne { load exec } { pop } ifelse } ifelse /_render -1 ddef } def /Ta { pop } def /Tf { 1 index type /nametype eq { dup 0.75 mul 1 index 0.25 mul neg } if /_fontDescent exch ddef /_fontAscent exch ddef /_fontSize exch ddef /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef /_fontHeight _fontSize ddef findfont _fontSize scalefont setfont } def /Tl { pop neg 0 exch _leading astore pop } def /Tt { pop } def /TW { 3 npop } def /Tw { /_cx exch ddef } def /TC { 3 npop } def /Tc { /_ax exch ddef } def /Ts { 0 exch _shift astore pop currentpoint iTm moveto } def /Ti { 3 npop } def /Tz { count 1 eq { 100 } if 100 div exch 100 div exch _scale astore pop iTm } def /TA { pop } def /Tq { pop } def /Tg { pop } def /TG { pop } def /Tv { /_lineorientation exch ddef } def /TV { /_charorientation exch ddef } def /Ty { dup /_yokoorientation exch ddef 1 sub neg Tv } def /TY { pop } def /T~ { Tx } def /Th { pop pop pop pop pop } def /TX { pop } def /Tk { _fontSize mul 1000 div _lineorientation 0 eq { neg 0 } { 0 exch } ifelse rmoveto pop } def /TK { 2 npop } def /T* { _leading aload pop _lineorientation 0 ne { exch } if Td } def /T*- { _leading aload pop _lineorientation 0 ne { exch } if exch neg exch neg Td } def /T- { _ax neg 0 rmoveto _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse } def /T+ { } def /TR { _ctm currentmatrix pop _tm astore pop iTm 0 0 moveto } def /TS { currentfont 3 1 roll /_Symbol_ findfont _fontSize scalefont setfont 0 eq { Tx } { Tj } ifelse setfont } def /Xb { pop pop } def /Tb /Xb load def /Xe { pop pop pop pop } def /Te /Xe load def /XB { } def /TB /XB load def currentdict readonly pop end setpacking % /X^ { currentfont 5 1 roll dup havefont { findfont _fontSize scalefont setfont } { pop exch } ifelse 2 index 0 eq { Tx } { Tj } ifelse pop pop setfont } def /T^ /X^ load def %%EndResource %%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 userdict /Adobe_ColorImage_AI6 known not { userdict /Adobe_ColorImage_AI6 53 dict put } if userdict /Adobe_ColorImage_AI6 get begin /initialize { Adobe_ColorImage_AI6 begin Adobe_ColorImage_AI6 { dup type /arraytype eq { dup xcheck { bind } if } if pop pop } forall } def /terminate { end } def currentdict /Adobe_ColorImage_AI6_Vars known not { /Adobe_ColorImage_AI6_Vars 41 dict def } if Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /_newproc null def /_proc1 null def /_proc2 null def /sourcearray 4 array def /_ptispace null def /_ptiname null def /_pti0 0 def /_pti1 0 def /_ptiproc null def /_ptiscale 0 def /_pticomps 0 def /_ptibuf 0 string def /_gtigray 0 def /_cticmyk null def /_rtirgb null def /XIEnable true def /XIType 0 def /XIEncoding 0 def /XICompression 0 def /XIChannelCount 0 def /XIBitsPerPixel 0 def /XIImageHeight 0 def /XIImageWidth 0 def /XIImageMatrix null def /XIRowBytes 0 def /XIFile null def /XIBuffer1 null def /XIBuffer2 null def /XIBuffer3 null def /XIDataProc null def /XIColorSpace /DeviceGray def /XIColorValues 0 def /XIPlateList false def end /ci6colorimage /colorimage where {/colorimage get}{null} ifelse def /ci6image systemdict /image get def /ci6curtransfer systemdict /currenttransfer get def /ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def /ci6foureq { 4 index ne { pop pop pop false }{ 4 index ne { pop pop false }{ 4 index ne { pop false }{ 4 index eq } ifelse } ifelse } ifelse } def /ci6testplate { Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /setcmykcolor where { pop gsave 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub grestore 1 0 0 0 ci6foureq { /plateindex 0 def }{ 0 1 0 0 ci6foureq { /plateindex 1 def }{ 0 0 1 0 ci6foureq { /plateindex 2 def }{ 0 0 0 1 ci6foureq { /plateindex 3 def }{ 0 0 0 0 ci6foureq { /plateindex 5 def } if } ifelse } ifelse } ifelse } ifelse pop pop pop pop } if plateindex end } def /ci6concatprocs { /packedarray where { pop dup type /packedarraytype eq 2 index type /packedarraytype eq or }{ false } ifelse { /_proc2 exch cvlit def /_proc1 exch cvlit def _proc1 aload pop _proc2 aload pop _proc1 length _proc2 length add packedarray cvx }{ /_proc2 exch cvlit def /_proc1 exch cvlit def /_newproc _proc1 length _proc2 length add array def _newproc 0 _proc1 putinterval _newproc _proc1 length _proc2 putinterval _newproc cvx } ifelse } def /ci6istint { type /arraytype eq } def /ci6isspot { dup type /arraytype eq { dup length 1 sub get /Separation eq }{ pop false } ifelse } def /ci6spotname { dup ci6isspot {dup length 2 sub get}{pop ()} ifelse } def /ci6altspace { aload pop pop pop ci6colormake } def /ci6numcomps { dup /DeviceGray eq { pop 1 }{ dup /DeviceRGB eq { pop 3 }{ /DeviceCMYK eq { 4 }{ 1 } ifelse } ifelse } ifelse } def /ci6marksplate { dup /DeviceGray eq { pop plateindex 3 eq }{ dup /DeviceRGB eq { pop plateindex 5 ne }{ dup /DeviceCMYK eq { pop plateindex 5 ne }{ dup ci6isspot { /findcmykcustomcolor where { pop dup length 2 sub get 0.1 0.1 0.1 0.1 5 -1 roll findcmykcustomcolor 1 setcustomcolor systemdict /currentgray get exec 1 ne }{ pop plateindex 5 ne } ifelse }{ pop plateindex 5 ne } ifelse } ifelse } ifelse } ifelse } def /ci6colormake { dup ci6numcomps exch 1 index 2 add 1 roll dup 1 eq {pop}{array astore} ifelse exch } def /ci6colorexpand { dup ci6spotname exch dup ci6istint { ci6altspace exch 4 1 roll }{ 1 3 1 roll } ifelse } def /ci6colortint { dup /DeviceGray eq { 3 1 roll 1 exch sub mul 1 exch sub exch }{ dup /DeviceRGB eq { 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch }{ dup /DeviceCMYK eq { 3 1 roll {1 index mul exch} forall pop 4 array astore exch }{ 3 1 roll mul exch } ifelse } ifelse } ifelse } def /ci6colortocmyk { dup /DeviceGray eq { pop 1 exch sub 0 0 0 4 -1 roll 4 array astore }{ dup /DeviceRGB eq { pop aload pop _rgbtocmyk 4 array astore }{ dup /DeviceCMYK eq { pop }{ ci6altspace ci6colortint ci6colortocmyk } ifelse } ifelse } ifelse } def /ci6makeimagedict { 7 dict begin /ImageType 1 def /Decode exch def /DataSource exch def /ImageMatrix exch def /BitsPerComponent exch def /Height exch def /Width exch def currentdict end } def /ci6stringinvert { 0 1 2 index length 1 sub { dup 2 index exch get 255 exch sub 2 index 3 1 roll put } for } def /ci6stringknockout { 0 1 2 index length 1 sub { 255 2 index 3 1 roll put } for } def /ci6stringapply { 0 1 4 index length 1 sub { dup 4 index exch get 3 index 3 1 roll 3 index exec } for pop exch pop } def /ci6walkrgbstring { 0 3 index dup length 1 sub 0 3 3 -1 roll { 3 getinterval {} forall 5 index exec 3 index } for 5 {pop} repeat } def /ci6walkcmykstring { 0 3 index dup length 1 sub 0 4 3 -1 roll { 4 getinterval {} forall 6 index exec 3 index } for 5 { pop } repeat } def /ci6putrgbtograystr { .11 mul exch .59 mul add exch .3 mul add cvi 3 copy put pop 1 add } def /ci6putcmyktograystr { exch .11 mul add exch .59 mul add exch .3 mul add dup 255 gt { pop 255 } if 255 exch sub cvi 3 copy put pop 1 add } def /ci6rgbtograyproc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec XIBuffer3 dup 3 1 roll /ci6putrgbtograystr load exch ci6walkrgbstring end } def /ci6cmyktograyproc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec XIBuffer3 dup 3 1 roll /ci6putcmyktograystr load exch ci6walkcmykstring end } def /ci6separatecmykproc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec XIBuffer3 0 2 index plateindex 4 2 index length 1 sub { get 255 exch sub 3 copy put pop 1 add 2 index } for pop pop exch pop end } def /ci6compositeimage { dup 1 eq { pop pop image }{ /ci6colorimage load null ne { ci6colorimage }{ 3 1 roll pop sourcearray 0 3 -1 roll put 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load image } ifelse } ifelse } def /ci6knockoutimage { gsave 0 ci6curtransfer exec 1 ci6curtransfer exec eq { 0 ci6curtransfer exec 0.5 lt }{ 0 ci6curtransfer exec 1 ci6curtransfer exec gt } ifelse {{pop 0}}{{pop 1}} ifelse systemdict /settransfer get exec ci6compositeimage grestore } def /ci6drawimage { ci6testplate -1 eq { pop ci6compositeimage }{ dup type /arraytype eq { dup length plateindex gt {plateindex get}{pop false} ifelse }{ { true }{ dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse } ifelse } ifelse { dup 1 eq { pop pop ci6image }{ dup 3 eq { ci6compositeimage }{ pop pop sourcearray 0 3 -1 roll put /ci6separatecmykproc load ci6image } ifelse } ifelse }{ ci6curoverprint { 7 {pop} repeat }{ ci6knockoutimage } ifelse } ifelse } ifelse } def /ci6proctintimage { /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store /_pticomps _ptispace ci6numcomps store /_ptiscale _pti1 _pti0 sub store level2? { _ptiname length 0 gt version cvr 2012 ge and { [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace [_pti0 _pti1] ci6makeimagedict ci6image }{ [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace [0 255] ci6makeimagedict ci6image } ifelse }{ _pticomps 1 eq { { dup { 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put } ci6stringapply } ci6concatprocs ci6image }{ { dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse _ptibuf { exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc _pticomps 2 add -2 roll _pticomps 1 sub -1 0 { 1 index add 2 index exch 5 -1 roll 255 mul cvi put } for pop pop } ci6stringapply } ci6concatprocs false _pticomps /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse } ifelse } ifelse } def /ci6graytintimage { /_gtigray 5 -1 roll store {1 _gtigray sub mul 1 exch sub} 4 1 roll /DeviceGray ci6proctintimage } def /ci6cmyktintimage { /_cticmyk 5 -1 roll store {_cticmyk {1 index mul exch} forall pop} 4 1 roll /DeviceCMYK ci6proctintimage } def /ci6rgbtintimage { /_rtirgb 5 -1 roll store {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll /DeviceRGB ci6proctintimage } def /ci6tintimage { ci6testplate -1 eq { ci6colorexpand 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll dup /DeviceGray eq { pop ci6graytintimage }{ dup /DeviceRGB eq { pop ci6rgbtintimage }{ pop ci6cmyktintimage } ifelse } ifelse }{ dup ci6marksplate { plateindex 5 lt { ci6colortocmyk plateindex get dup 0 eq ci6curoverprint and { 7 {pop} repeat }{ 1 exch sub exch {1 0}{0 1} ifelse () ci6graytintimage } ifelse }{ pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage } ifelse }{ ci6curoverprint { 8 {pop} repeat }{ pop pop pop {pop 1} 0 1 () /DeviceGray ci6proctintimage } ifelse } ifelse } ifelse } def /XINullImage { } def /XIImageMask { XIImageWidth XIImageHeight false [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load imagemask } def /XIImageTint { XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load XIType 3 eq XIColorValues XIColorSpace ci6tintimage } def /XIImage { XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load false XIChannelCount XIPlateList ci6drawimage } def /XG { pop pop } def /XF { 13 {pop} repeat } def /Xh { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def /XIImageHeight exch def /XIImageWidth exch def /XIImageMatrix exch def 0 0 moveto XIImageMatrix concat XIImageWidth XIImageHeight scale /_lp /null ddef _fc /_lp /imagemask ddef end } def /XH { Adobe_ColorImage_AI6_Vars begin grestore end } def /XIEnable { Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put } def /XC { Adobe_ColorImage_AI6_Vars begin ci6colormake /XIColorSpace exch def /XIColorValues exch def end } def /XIPlates { Adobe_ColorImage_AI6_Vars begin /XIPlateList exch def end } def /XI { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def cvi dup 256 idiv /XICompression exch store 256 mod /XIEncoding exch store pop pop /XIChannelCount exch def /XIBitsPerPixel exch def /XIImageHeight exch def /XIImageWidth exch def pop pop pop pop /XIImageMatrix exch def XIBitsPerPixel 1 eq { XIImageWidth 8 div ceiling cvi }{ XIImageWidth XIChannelCount mul } ifelse /XIRowBytes exch def XIEnable { /XIBuffer3 XIImageWidth string def XICompression 0 eq { /XIBuffer1 XIRowBytes string def XIEncoding 0 eq { {currentfile XIBuffer1 readhexstring pop} }{ {currentfile XIBuffer1 readstring pop} } ifelse }{ /XIBuffer1 256 string def /XIBuffer2 XIRowBytes string def {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} /ASCII85Decode filter /DCTDecode filter /XIFile exch def {XIFile XIBuffer2 readstring pop} } ifelse /XIDataProc exch def XIType 1 ne { 0 setgray } if XIType 1 eq { XIImageMask }{ XIType 2 eq XIType 3 eq or { XIImageTint }{ XIImage } ifelse } ifelse }{ XINullImage } ifelse /XIPlateList false def grestore end } def end %%EndProcSet %%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 %%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) %%Version: 1.3 0 %%CreationDate: (3/7/1994) () %%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin put /_?cmyk false def /_eo false def /_lp /none def /_pf { } def /_ps { } def /_psf { } def /_pss { } def /_pjsf { } def /_pjss { } def /_pola 0 def /_doClip 0 def /cf currentflat def /_lineorientation 0 def /_charorientation 0 def /_yokoorientation 0 def /_tm matrix def /_renderStart [ /e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 ] def /_renderEnd [ null null null null /i1 /i1 /i1 /i1 ] def /_render -1 def /_shift [0 0] def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [ 0 0 ] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fontSize 0 def /_fontAscent 0 def /_fontDescent 0 def /_fontHeight 0 def /_fontRotateAdjust 0 def /Ss 256 string def Ss 0 (fonts/) putinterval /_cnt 0 def /_scale [1 1] def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /_tDict 2 dict def /_hfname 100 string def /_hffound false def /Tx { } def /Tj { } def /CRender { } def /_AI3_savepage { } def /_gf null def /_cf 4 array def /_rgbf 3 array def /_if null def /_of false def /_fc { } def /_gs null def /_cs 4 array def /_rgbs 3 array def /_is null def /_os false def /_sc { } def /_pd 1 dict def /_ed 15 dict def /_pm matrix def /_fm null def /_fd null def /_fdd null def /_sm null def /_sd null def /_sdd null def /_i null def /_lobyte 0 def /_hibyte 0 def /_cproc null def /_cscript 0 def /_hvax 0 def /_hvay 0 def /_hvwb 0 def /_hvcx 0 def /_hvcy 0 def /_bitfont null def /_bitlobyte 0 def /_bithibyte 0 def /_bitkey null def /_bitdata null def /_bitindex 0 def /discardSave null def /buffer 256 string def /beginString null def /endString null def /endStringLength null def /layerCnt 1 def /layerCount 1 def /perCent (%) 0 get def /perCentSeen? false def /newBuff null def /newBuffButFirst null def /newBuffLast null def /clipForward? false def end userdict /Adobe_Illustrator_AI5 known not { userdict /Adobe_Illustrator_AI5 100 dict put } if userdict /Adobe_Illustrator_AI5 get begin /initialize { Adobe_Illustrator_AI5 dup begin Adobe_Illustrator_AI5_vars begin /_aicmykps where {pop /_?cmyk _aicmykps def}if discardDict { bind pop pop } forall dup /nc get begin { dup xcheck 1 index type /operatortype ne and { bind } if pop pop } forall end newpath } def /terminate { end end } def /_ null def /ddef { Adobe_Illustrator_AI5_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /hswj { dup stringwidth 3 2 roll { _hvwb eq { exch _hvcx add exch _hvcy add } if exch _hvax add exch _hvay add } cforall } def /vswj { 0 0 3 -1 roll { dup 255 le _charorientation 1 eq and { dup cstring stringwidth 5 2 roll _hvwb eq { exch _hvcy sub exch _hvcx sub } if exch _hvay sub exch _hvax sub 4 -1 roll sub exch 3 -1 roll sub exch } { _hvwb eq { exch _hvcy sub exch _hvcx sub } if exch _hvay sub exch _hvax sub _fontHeight sub } ifelse } cforall } def /swj { 6 1 roll /_hvay exch ddef /_hvax exch ddef /_hvwb exch ddef /_hvcy exch ddef /_hvcx exch ddef _lineorientation 0 eq { hswj } { vswj } ifelse } def /sw { 0 0 0 6 3 roll swj } def /vjss { 4 1 roll { dup cstring dup length 1 eq _charorientation 1 eq and { -90 rotate currentpoint _fontRotateAdjust add moveto gsave false charpath currentpoint 5 index setmatrix stroke grestore _fontRotateAdjust sub moveto _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto 90 rotate } { currentpoint _fontHeight sub 5 index sub 3 index _sp eq { 9 index sub } if currentpoint exch 4 index stringwidth pop 2 div sub exch _fontAscent sub moveto gsave 2 index false charpath 6 index setmatrix stroke grestore moveto pop pop } ifelse } cforall 6 npop } def /hjss { 4 1 roll { dup cstring gsave false charpath currentpoint 5 index setmatrix stroke grestore moveto _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto } cforall 6 npop } def /jss { _lineorientation 0 eq { hjss } { vjss } ifelse } def /ss { 0 0 0 7 3 roll jss } def /vjsp { 4 1 roll { dup cstring dup length 1 eq _charorientation 1 eq and { -90 rotate currentpoint _fontRotateAdjust add moveto false charpath currentpoint _fontRotateAdjust sub moveto _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto 90 rotate } { currentpoint _fontHeight sub 5 index sub 3 index _sp eq { 9 index sub } if currentpoint exch 4 index stringwidth pop 2 div sub exch _fontAscent sub moveto 2 index false charpath moveto pop pop } ifelse } cforall 6 npop } def /hjsp { 4 1 roll { dup cstring false charpath _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto } cforall 6 npop } def /jsp { matrix currentmatrix _lineorientation 0 eq {hjsp} {vjsp} ifelse } def /sp { matrix currentmatrix 0 0 0 7 3 roll _lineorientation 0 eq {hjsp} {vjsp} ifelse } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf { } def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /XR { 0 ne /_eo exch ddef } def /H { } def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq { _eo {eoclip} {clip} ifelse /_doClip 0 ddef } if newpath } { /CRender { N } ddef } ifelse } def /n { N } def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf } ifelse } { /CRender { F } ddef } ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps } ifelse } { /CRender { S } ddef } ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { S } ifelse } { /CRender { B } ddef } ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type /stringtype eq { pop } if } if newpath } def /u { } def /U { } def /q { _pola 0 eq { gsave } if } def /Q { _pola 0 eq { grestore } if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq { CRender } if } def /D { pop } def /*w { } def /*W { } def /` { /_i save ddef clipForward? { nulldevice } if 6 1 roll 4 npop concat pop userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash /setstrokeadjust where {pop false setstrokeadjust} if newpath 0 setgray false setoverprint } def /~ { end _i restore } def /_rgbtocmyk { 3 { 1 exch sub 3 1 roll } repeat 3 copy 1 4 1 roll 3 { 3 index 2 copy gt { exch } if pop 4 1 roll } repeat pop pop pop 4 1 roll 3 { 3 index sub 3 1 roll } repeat 4 -1 roll } def /setrgbfill { _rgbf astore pop /_fc { _lp /fill ne { _of setoverprint _rgbf aload pop setrgbcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /setrgbstroke { _rgbs astore pop /_sc { _lp /stroke ne { _os setoverprint _rgbs aload pop setrgbcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /Xa { _?cmyk { 3 npop k }{ setrgbfill 4 npop } ifelse } def /XA { _?cmyk { 3 npop K }{ setrgbstroke 4 npop } ifelse } def /Xs { /_gf exch ddef 5 npop /_fc { _lp /fill ne { _of setoverprint _gf setAIseparationgray /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /XS { /_gs exch ddef 5 npop /_sc { _lp /stroke ne { _os setoverprint _gs setAIseparationgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /Xx { exch /_gf exch ddef 0 eq { findcmykcustomcolor }{ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse { 4 1 roll 3 npop findcmykcustomcolor }{ 8 -4 roll 4 npop findrgbcustomcolor } ifelse } ifelse /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /XX { exch /_gs exch ddef 0 eq { findcmykcustomcolor }{ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse { 4 1 roll 3 npop findcmykcustomcolor }{ 8 -4 roll 4 npop findrgbcustomcolor } ifelse } ifelse /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /XK { 3 -1 roll pop 0 eq { 1 exch sub 3 {dup 3 1 roll mul 5 1 roll} repeat mul 4 1 roll K } { 1 exch sub 4 1 roll 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat 4 -1 roll pop XA } ifelse } def /Xk { 3 -1 roll pop 0 eq { 1 exch sub 3 {dup 3 1 roll mul 5 1 roll} repeat mul 4 1 roll k } { 1 exch sub 4 1 roll 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat 4 -1 roll pop Xa } ifelse } def /A { pop } def /annotatepage { userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse } def /XT { pop pop } def /Xt { pop } def /discard { save /discardSave exch store discardDict begin /endString exch store gt38? { 2 add } if load stopped pop end discardSave restore } bind def userdict /discardDict 7 dict dup begin put /pre38Initialize { /endStringLength endString length store /newBuff buffer 0 endStringLength getinterval store /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store /newBuffLast newBuff endStringLength 1 sub 1 getinterval store } def /shiftBuffer { newBuff 0 newBuffButFirst putinterval newBuffLast 0 currentfile read not { stop } if put } def 0 { pre38Initialize mark currentfile newBuff readstring exch pop { { newBuff endString eq { cleartomark stop } if shiftBuffer } loop } { stop } ifelse } def 1 { pre38Initialize /beginString exch store mark currentfile newBuff readstring exch pop { { newBuff beginString eq { /layerCount dup load 1 add store } { newBuff endString eq { /layerCount dup load 1 sub store layerCount 0 eq { cleartomark stop } if } if } ifelse shiftBuffer } loop } if } def 2 { mark { currentfile buffer {readline} stopped { % assume error was due to overfilling the buffer }{ not { stop } if endString eq { cleartomark stop } if }ifelse } loop } def 3 { /beginString exch store /layerCnt 1 store mark { currentfile buffer {readline} stopped { % assume error was due to overfilling the buffer }{ not { stop } if dup beginString eq { pop /layerCnt dup load 1 add store } { endString eq { layerCnt 1 eq { cleartomark stop } { /layerCnt dup load 1 sub store } ifelse } if } ifelse }ifelse } loop } def end userdict /clipRenderOff 15 dict dup begin put { /n /N /s /S /f /F /b /B } { { _doClip 1 eq { /_doClip 0 ddef _eo {eoclip} {clip} ifelse } if newpath } def } forall /Tr /pop load def /Bb {} def /BB /pop load def /Bg {12 npop} def /Bm {6 npop} def /Bc /Bm load def /Bh {4 npop} def end /Lb { 6 npop 7 2 roll 5 npop 0 eq { 0 eq { (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard } { /clipForward? true def /Tx /pop load def /Tj /pop load def currentdict end clipRenderOff begin begin } ifelse } { 0 eq { save /discardSave exch store } if } ifelse } bind def /LB { discardSave dup null ne { restore } { pop clipForward? { currentdict end end begin /clipForward? false ddef } if } ifelse } bind def /Pb { pop pop 0 (%AI5_EndPalette) discard } bind def /Np { 0 (%AI5_End_NonPrinting--) discard } bind def /Ln /pop load def /Ap /pop load def /Ar { 72 exch div 0 dtransform dup mul exch dup mul add sqrt dup 1 lt { pop 1 } if setflat } def /Mb { q } def /Md { } def /MB { Q } def /nc 4 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setrgbcolor { 3 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end /XP { 4 npop } bind def /XD { pop } bind def end setpacking %%EndResource %%BeginResource: procset Adobe_cshow 2.0 8 %%Title: (Writing System Operators) %%Version: 2.0 8 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cshow 14 dict dup begin put /initialize { Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if pop pop } forall end Adobe_cshow begin } def /terminate { currentdict Adobe_cshow eq { end } if } def /cforall { /_lobyte 0 ddef /_hibyte 0 ddef /_cproc exch ddef /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef { /_lobyte exch ddef _hibyte 0 eq _cscript 1 eq _lobyte 129 ge _lobyte 159 le and _lobyte 224 ge _lobyte 252 le and or and _cscript 2 eq _lobyte 161 ge _lobyte 254 le and and _cscript 3 eq _lobyte 161 ge _lobyte 254 le and and _cscript 25 eq _lobyte 161 ge _lobyte 254 le and and _cscript -1 eq or or or or and { /_hibyte _lobyte ddef } { _hibyte 256 mul _lobyte add _cproc /_hibyte 0 ddef } ifelse } forall } def /cstring { dup 256 lt { (s) dup 0 4 3 roll put } { dup 256 idiv exch 256 mod (hl) dup dup 0 6 5 roll put 1 4 3 roll put } ifelse } def /clength { 0 exch { 256 lt { 1 } { 2 } ifelse add } cforall } def /hawidthshow { { dup cstring show _hvax _hvay rmoveto _hvwb eq { _hvcx _hvcy rmoveto } if } cforall } def /vawidthshow { { dup 255 le _charorientation 1 eq and { -90 rotate 0 _fontRotateAdjust rmoveto cstring _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow 0 _fontRotateAdjust neg rmoveto 90 rotate } { currentpoint _fontHeight sub exch _hvay sub exch _hvax sub 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if 3 2 roll cstring dup stringwidth pop 2 div neg _fontAscent neg rmoveto show moveto } ifelse } cforall } def /hvawidthshow { 6 1 roll /_hvay exch ddef /_hvax exch ddef /_hvwb exch ddef /_hvcy exch ddef /_hvcx exch ddef _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse } def /hvwidthshow { 0 0 3 -1 roll hvawidthshow } def /hvashow { 0 0 0 6 -3 roll hvawidthshow } def /hvshow { 0 0 0 0 0 6 -1 roll hvawidthshow } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_shading_AI8 1.0 0 %%Title: (Adobe Illustrator 8 Shading Procset) %%Version: 1.0 0 %%CreationDate: (12/17/97) () %%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) userdict /defaultpacking currentpacking put true setpacking userdict /Adobe_shading_AI8 10 dict dup begin put /initialize { Adobe_shading_AI8 begin Adobe_shading_AI8 bdprocs Mesh /initialize get exec } def /terminate { currentdict Adobe_shading_AI8 eq { end } if } def /bdprocs { { dup xcheck 1 index type /arraytype eq and { bind } if pop pop } forall } def /X! {pop} def /X# {pop pop} def /Mesh 40 dict def Mesh begin /initialize { Mesh bdprocs Mesh begin /emulate? /AI8MeshEmulation where { pop AI8MeshEmulation }{ systemdict /shfill known not } ifelse def end } def /bd { shadingdict begin } def /paint { emulate? { end }{ /_lp /none ddef _fc /_lp /none ddef /AIColorSpace AIColorSpace tocolorspace store /ColorSpace AIColorSpace topsspace store version_ge_3010.106 not systemdict /setsmoothness known and { 0.0001 setsmoothness } if composite? { /DataSource getdatasrc def Matrix concat currentdict end shfill }{ AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { end }{ /ColorSpace /DeviceGray store /Decode [0 1 0 1 0 1] store /DataSource getplatesrc def Matrix concat currentdict end shfill } ifelse } ifelse } ifelse } def /shadingdict 12 dict def shadingdict begin /ShadingType 6 def /BitsPerCoordinate 16 def /BitsPerComponent 8 def /BitsPerFlag 8 def end /datafile null def /databuf 256 string def /dataptr 0 def /srcspace null def /srcchannels 0 def /dstchannels 0 def /dstplate 0 def /srctodstcolor null def /getplatesrc { /srcspace AIColorSpace store /srcchannels AIColorSpace getnchannels store /dstchannels 1 store /dstplate getplateindex store /srctodstcolor srcspace makesmarks { dstplate 4 eq { {1 exch sub} }{ {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} } ifelse }{ {srcchannels {pop} repeat 1} } ifelse store /datafile getdatasrc store /rdpatch168 load DataLength () /SubFileDecode filter } def /getdatasrc { /rdcmntline load /ASCII85Decode filter } def /rdpatch168 { /dataptr 0 store 49 rdcount 4 { dup {pop srcchannels getint8} if dup {pop srctodstcolor dstchannels putint8 true} if } repeat {databuf 0 dataptr getinterval}{()} ifelse } def /rdpatch3216 { /dataptr 0 store 97 rdcount 4 { dup {pop srcchannels getint16} if dup {pop srctodstcolor dstchannels putint16 true} if } repeat {databuf 0 dataptr getinterval}{()} ifelse } def /rdcount { dup 0 gt { datafile databuf dataptr 4 -1 roll getinterval readstring exch length dataptr add /dataptr exch store }{ true } ifelse } def /getint8 { mark true 3 -1 roll { dup {pop datafile read} if dup {pop 255 div true} if } repeat { counttomark 1 add -1 roll pop true }{ cleartomark false } ifelse } def /putint8 { dup dataptr add /dataptr exch store dataptr exch { 1 sub exch 255 mul cvi databuf 2 index 3 -1 roll put } repeat pop } def /getint16 { mark true 3 -1 roll { dup {pop datafile read} if dup {pop 256 mul datafile read} if dup {pop add 65535 div true} if } repeat { counttomark 1 add -1 roll pop true }{ cleartomark false } ifelse } def /putint16 { dup 2 mul dataptr add /dataptr exch store dataptr exch { 2 sub exch 65535 mul cvi dup 256 idiv databuf 3 index 3 -1 roll put 256 mod databuf 2 index 1 add 3 -1 roll put } repeat pop } def /srcbuf 256 string def /rdcmntline { currentfile srcbuf readline pop (%) anchorsearch {pop} if } def /getplateindex { 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall } def /aicsarray 4 array def /aicsaltvals 4 array def /aicsaltcolr aicsaltvals def /tocolorspace { dup type /arraytype eq { mark exch aload pop aicsarray 0 3 -1 roll put aicsarray 1 3 -1 roll put dup aicsarray 2 3 -1 roll put gettintxform aicsarray 3 3 -1 roll put counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store aicsaltcolr astore pop pop aicsarray } if } def /subtintxform {aicsaltcolr {1 index mul exch} forall pop} def /addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def /gettintxform { /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load } def /getnchannels { dup type /arraytype eq {0 get} if colorspacedict exch get begin Channels end } def /makesmarks { composite? { pop true }{ dup dup type /arraytype eq {0 get} if colorspacedict exch get begin MarksPlate end } ifelse } def /markingplate { composite? { pop true }{ dup type /arraytype eq { dup length getplateindex gt {getplateindex get}{pop false} ifelse } if } ifelse } def /tocmyk { dup dup type /arraytype eq {0 get} if colorspacedict exch get begin ToCMYK end } def /topsspace { dup dup type /arraytype eq {0 get} if colorspacedict exch get begin ToPSSpace end } def /colorspacedict 5 dict dup begin /DeviceGray 4 dict dup begin /Channels 1 def /MarksPlate {pop black?} def /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def /ToPSSpace {} def end def /DeviceRGB 4 dict dup begin /Channels 3 def /MarksPlate {pop isCMYKSep?} def /ToCMYK {pop _rgbtocmyk} def /ToPSSpace {} def end def /DeviceCMYK 4 dict dup begin /Channels 4 def /MarksPlate {pop isCMYKSep?} def /ToCMYK {pop} def /ToPSSpace {} def end def /Separation 4 dict dup begin /Channels 1 def /MarksPlate { /findcmykcustomcolor where { pop dup 1 exch ToCMYK 5 -1 roll 1 get findcmykcustomcolor 1 setcustomcolor systemdict /currentgray get exec 1 ne }{ pop false } ifelse } def /ToCMYK { dup 2 get mark exch 4 2 roll 3 get exec counttomark -1 roll tocmyk 5 -1 roll pop } def /ToPSSpace {} def end def /Process 4 dict dup begin /Channels 1 def /MarksPlate { isCMYKSep? { 1 exch ToCMYK 4 array astore getplateindex get 0 ne }{ pop false } ifelse } def /ToCMYK { dup 2 get mark exch 4 2 roll 3 get exec counttomark -1 roll tocmyk 5 -1 roll pop } def /ToPSSpace { 4 array copy dup 0 /Separation put } def end def end def /isoverprint { /currentoverprint where {pop currentoverprint}{_of} ifelse } def /version_ge_3010.106 { version {cvr} stopped { pop false }{ 3010.106 ge } ifelse } def end end defaultpacking setpacking %%EndResource %%EndProlog %%BeginSetup %%IncludeFont: Times-Bold userdict /_useSmoothShade false put userdict /_aicmykps false put userdict /_forceToCMYK false put Adobe_level2_AI5 /initialize get exec Adobe_cshow /initialize get exec Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec Adobe_ColorImage_AI6 /initialize get exec Adobe_shading_AI8 /initialize get exec Adobe_Illustrator_AI5 /initialize get exec [ 39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis /Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde /oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex /udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash /.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef /.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash /questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef /guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide /.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright /fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla /hungarumlaut/ogonek/caron TE %AI55J_Tsume: None %AI3_BeginEncoding: _Times-Bold Times-Bold [/_Times-Bold/Times-Bold 0 0 1 TZ %AI3_EndEncoding AdobeType [161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal 181/mu/partialdiff/summation/product/pi/integral 189/Omega 195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple /_Symbol_/Symbol 0 0 0 TZ %AI5_Begin_NonPrinting Np %AI3_BeginPattern: (Yellow Stripe) (Yellow Stripe) 8.4499 4.6 80.4499 76.6 [ %AI3_Tile (0 O 0 R 0 0.4 1 0 k 0 0.4 1 0 K ) @ ( %AI6_BeginPatternLayer 800 Ar 0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D 0 XR 8.1999 8.1999 m 80.6999 8.1999 L S 8.1999 22.6 m 80.6999 22.6 L S 8.1999 37.0001 m 80.6999 37.0001 L S 8.1999 51.3999 m 80.6999 51.3999 L S 8.1999 65.8 m 80.6999 65.8 L S 8.1999 15.3999 m 80.6999 15.3999 L S 8.1999 29.8 m 80.6999 29.8 L S 8.1999 44.1999 m 80.6999 44.1999 L S 8.1999 58.6 m 80.6999 58.6 L S 8.1999 73.0001 m 80.6999 73.0001 L S %AI6_EndPatternLayer ) & ] E %AI3_EndPattern %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np 3 Bn %AI5_BeginGradient: (Black & White) (Black & White) 0 2 Bd [ < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBBBAB9B8B7B6B5B4B3B2B1 B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A99989796959493929191908F8E8D8C8B8A 898887868584838281807F7E7D7C7B7A79787776767574737271706F6E6D6C6B6A69686766656463 626161605F5E5D5C5B5A59585756555453525151504F4E4D4C4B4A49484746454443434241403F3E 3D3C3B3A39383737363534333231302F2E2D2C2C2B2A29282726252423232221201F1E1D1C1B1B1A 19181716151414131211100F0E0E0D0C0B0A09090807060505040302010100 > 0 %_Br [ 0 0 50 90 %_BS %_0 0 50 90 Bs 1 0 48 0 %_BS %_1 0 48 0 Bs BD %AI5_EndGradient %AI5_BeginGradient: (Red & Yellow) (Red & Yellow) 0 2 Bd [ 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < FFFFFEFEFDFDFDFCFCFBFBFBFAFAF9F9F9F8F8F7F7F7F6F6F5F5F5F4F4F3F3F3F2F2F1F1F1F0F0EF EFEFEEEEEDEDEDECECEBEBEBEAEAE9E9E9E8E8E7E7E7E6E6E5E5E5E4E4E3E3E3E2E2E1E1E1E0E0DF DFDFDEDEDDDDDDDCDCDBDBDBDADAD9D9D9D8D8D7D7D7D6D6D5D5D5D4D4D3D3D3D2D2D1D1D1D0D0CF CFCFCECECDCDCDCCCCCBCBCBCACAC9C9C9C8C8C7C7C7C6C6C5C5C5C4C4C3C3C3C2C2C1C1C1C0C0BF BFBFBEBEBDBDBDBCBCBBBBBBBABAB9B9B9B8B8B7B7B7B6B6B5B5B5B4B4B3B3B3B2B2B1B1B1B0B0AF AFAFAEAEADADADACACABABABAAAAA9A9A9A8A8A7A7A7A6A6A5A5A5A4A4A3A3A3A2A2A1A1A1A0A09F 9F9F9E9E9D9D9D9C9C9B9B9B9A9A9999 > 0 1 %_Br [ 0 1 0.6 0 1 50 100 %_BS %_0 1 0.6 0 1 50 100 Bs 0 0 1 0 1 50 0 %_BS %_0 0 1 0 1 50 0 Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow & Blue Radial) (Yellow & Blue Radial) 1 2 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A8A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666564646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_BS %_0 0.08 0.67 0 1 50 14 Bs 1 1 0 0 1 50 100 %_BS %_1 1 0 0 1 50 100 Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb 1 1 1 1 ([Registration]) 0 Xs ([Registration]) Pc 1 g (K=0) Pc 0 g (K=100) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.75 g (K=25) Pc 0.5 g (K=50) Pc 0.25 g (K=75) Pc 0 g (K=100) Pc Bb 2 (Black & White) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB (Black & White) Pc 0.25 0 0 0 k (C=25 M=0 Y=0 K=0) Pc 0.5 0 0 0 k (C=50 M=0 Y=0 K=0) Pc 0.75 0 0 0 k (C=75 M=0 Y=0 K=0) Pc 1 0 0 0 k (C=100 M=0 Y=0 K=0) Pc 0.25 0.25 0 0 k (C=25 M=25 Y=0 K=0) Pc 0.5 0.5 0 0 k (C=50 M=50 Y=0 K=0) Pc 0.75 0.75 0 0 k (C=75 M=75 Y=0 K=0) Pc 1 1 0 0 k (C=100 M=100 Y=0 K=0) Pc Bb 2 (Red & Yellow) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB (Red & Yellow) Pc 0 0.25 0 0 k (C=0 M=25 Y=0 K=0) Pc 0 0.5 0 0 k (C=0 M=50 Y=0 K=0) Pc 0 0.75 0 0 k (C=0 M=75 Y=0 K=0) Pc 0 1 0 0 k (C=0 M=100 Y=0 K=0) Pc 0 0.25 0.25 0 k (C=0 M=25 Y=25 K=0) Pc 0 0.5 0.5 0 k (C=0 M=50 Y=50 K=0) Pc 0 0.75 0.75 0 k (C=0 M=75 Y=75 K=0) Pc 0 1 1 0 k (C=0 M=100 Y=100 K=0) Pc Bb 0 0 0 0 Bh 2 (Yellow & Blue Radial) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB (Yellow & Blue Radial) Pc 0 0 0.25 0 k (C=0 M=0 Y=25 K=0) Pc 0 0 0.5 0 k (C=0 M=0 Y=50 K=0) Pc 0 0 0.75 0 k (C=0 M=0 Y=75 K=0) Pc 0 0 1 0 k (C=0 M=0 Y=100 K=0) Pc 0.25 0 0.25 0 k (C=25 M=0 Y=25 K=0) Pc 0.5 0 0.5 0 k (C=50 M=0 Y=50 K=0) Pc 0.75 0 0.75 0 k (C=75 M=0 Y=75 K=0) Pc 1 0 1 0 k (C=100 M=0 Y=100 K=0) Pc (Yellow Stripe) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p (Yellow Stripe) Pc 0.25 0.125 0 0 k (C=25 M=13 Y=0 K=0) Pc 0.5 0.25 0 0 k (C=50 M=25 Y=0 K=0) Pc 0.75 0.375 0 0 k (C=75 M=38 Y=0 K=0) Pc 1 0.5 0 0 k (C=100 M=50 Y=0 K=0) Pc 0.125 0.25 0 0 k (C=13 M=25 Y=0 K=0) Pc 0.25 0.5 0 0 k (C=25 M=50 Y=0 K=0) Pc 0.375 0.75 0 0 k (C=38 M=75 Y=0 K=0) Pc 0.5 1 0 0 k (C=50 M=100 Y=0 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0 0.25 0.125 0 k (C=0 M=25 Y=13 K=0) Pc 0 0.5 0.25 0 k (C=0 M=50 Y=25 K=0) Pc 0 0.75 0.375 0 k (C=0 M=75 Y=38 K=0) Pc 0 1 0.5 0 k (C=0 M=100 Y=50 K=0) Pc 0 0.125 0.25 0 k (C=0 M=13 Y=25 K=0) Pc 0 0.25 0.5 0 k (C=0 M=25 Y=50 K=0) Pc 0 0.375 0.75 0 k (C=0 M=38 Y=75 K=0) Pc 0 0.5 1 0 k (C=0 M=50 Y=100 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.125 0 0.25 0 k (C=13 M=0 Y=25 K=0) Pc 0.25 0 0.5 0 k (C=25 M=0 Y=50 K=0) Pc 0.375 0 0.75 0 k (C=38 M=0 Y=75 K=0) Pc 0.5 0 1 0 k (C=50 M=0 Y=100 K=0) Pc 0.25 0 0.125 0 k (C=25 M=0 Y=13 K=0) Pc 0.5 0 0.25 0 k (C=50 M=0 Y=25 K=0) Pc 0.75 0 0.375 0 k (C=75 M=0 Y=38 K=0) Pc 1 0 0.5 0 k (C=100 M=0 Y=50 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.25 0.125 0.125 0 k (C=25 M=13 Y=13 K=0) Pc 0.5 0.25 0.25 0 k (C=50 M=25 Y=25 K=0) Pc 0.75 0.375 0.375 0 k (C=75 M=38 Y=38 K=0) Pc 1 0.5 0.5 0 k (C=100 M=50 Y=50 K=0) Pc 0.25 0.25 0.125 0 k (C=25 M=25 Y=13 K=0) Pc 0.5 0.5 0.25 0 k (C=50 M=50 Y=25 K=0) Pc 0.75 0.75 0.375 0 k (C=75 M=75 Y=38 K=0) Pc 1 1 0.5 0 k (C=100 M=100 Y=50 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.125 0.25 0.125 0 k (C=13 M=25 Y=13 K=0) Pc 0.25 0.5 0.25 0 k (C=25 M=50 Y=25 K=0) Pc 0.375 0.75 0.375 0 k (C=38 M=75 Y=38 K=0) Pc 0.5 1 0.5 0 k (C=50 M=100 Y=50 K=0) Pc 0.125 0.25 0.25 0 k (C=13 M=25 Y=25 K=0) Pc 0.25 0.5 0.5 0 k (C=25 M=50 Y=50 K=0) Pc 0.375 0.75 0.75 0 k (C=38 M=75 Y=75 K=0) Pc 0.5 1 1 0 k (C=50 M=100 Y=100 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.125 0.125 0.25 0 k (C=13 M=13 Y=25 K=0) Pc 0.25 0.25 0.5 0 k (C=25 M=25 Y=50 K=0) Pc 0.375 0.375 0.75 0 k (C=38 M=38 Y=75 K=0) Pc 0.5 0.5 1 0 k (C=50 M=50 Y=100 K=0) Pc 0.25 0.125 0.25 0 k (C=25 M=13 Y=25 K=0) Pc 0.5 0.25 0.5 0 k (C=50 M=25 Y=50 K=0) Pc 0.75 0.375 0.75 0 k (C=75 M=38 Y=75 K=0) Pc 1 0.5 1 0 k (C=100 M=50 Y=100 K=0) Pc PB %AI5_EndPalette %AI5_Begin_NonPrinting Np %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np %AI8_PluginGroupInfo (Adobe Path Blends) (Adobe Blends Plugin) (Live Blends) %AI8_PluginGroupInfo (Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool) %AI8_PluginGroupInfo (Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool) %AI8_PluginGroupInfo (Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool) %AI8_PluginGroupInfo (Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool) %AI5_End_NonPrinting-- %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 1 0 79 128 255 0 100 Lb (Layer 1) Ln 0 A u u u 0 R 0 G 800 Ar 0 J 0 j 2.7812 w 4 M []0 d %AI3_Note: 0 D 0 XR 300.0903 265.7822 m 369.6396 262.1079 429.002 315.5156 432.6763 385.0654 c 436.3501 454.6152 382.9453 513.9775 313.3955 517.6514 c 243.8428 521.3252 184.481 467.9204 180.8066 398.3682 c 177.1328 328.8184 230.5405 269.4561 300.0903 265.7822 c s 306.7427 391.7183 m S U u 306.7427 294.4868 m 360.4395 294.4868 403.9712 338.0186 403.9712 391.7183 c 403.9712 445.415 360.4395 488.9463 306.7427 488.9463 c 253.043 488.9463 209.5117 445.415 209.5117 391.7183 c 209.5117 338.0186 253.043 294.4868 306.7427 294.4868 c s 306.7427 391.7183 m S U U u 1.0569 w 320.4209 474.373 m 319.542 464.3242 322.501 461.0342 v 325.4604 457.7441 325.0933 450.8022 y 325.9888 441.3545 327.7051 440.915 v S 290.9287 469.6646 m 290.4336 466.9053 l 282.9077 476.0054 293.4316 477.541 v 303.959 479.0732 301.3447 475.73 y 307.1738 474.0278 306.5146 468.146 v 300.0649 471.272 l 290.0527 472.8433 290.9287 469.6646 v 306.9878 475.3716 300.8662 456.7817 v 295.6816 441.04 290.292 441.1514 y 297.0254 440.1001 300.7715 445.123 v 300.1514 439.9331 299.7676 439.2573 v 299.3838 438.5815 305.6499 438.5981 307.48 446.8584 c 310.7114 442.1611 310.5474 439.0376 v 310.3809 435.9116 315.7012 444.3359 315.1533 447.1475 c 314.605 449.9624 319.5728 438.5591 317.1445 438.687 c 314.7139 438.8179 324.1226 439.0156 323.1382 446.7275 c 322.4595 440.498 330.4277 439.7275 v 325.8247 444.8447 325.0044 455.6802 v 324.1836 466.5161 318.6689 480.7334 316.1265 478.7783 c 299.1167 486.2905 298.9692 476.8984 v S 293.0288 469.9009 m 300.4854 472.6401 305.2881 464.7275 v S 297.8901 469.645 m 312.041 469.7925 293.3179 442.3833 v S 320.3486 472.9849 m 323.7251 457.8359 325.0601 456.7207 v S 319.0664 468.5269 m 324.8037 458.4756 325.0044 455.6802 v 325.2046 452.8853 321.3301 458.6592 y 323.9058 454.6934 326.4282 449.687 v S 305.0488 453.6001 m 303.1299 450.2207 l 303.2412 452.3042 l S 313.0342 453.1802 m 312.8506 449.7065 l 312.2109 450.7856 l S 300.0649 477.8857 m 307.1016 479.2539 311.9077 477.9551 v 316.7109 476.6592 306.2979 477.2095 y 306.1699 474.7788 l 304.4316 474.8706 l 301.3447 475.73 l 300.0649 477.8857 l s 313.6206 464.2881 m 314.2437 462.8643 l S 312.3413 459.8301 m 312.9614 458.4063 l S 302.1318 477.4297 m 304.4316 474.8706 l 305.3105 478.3057 l S U 2.7812 w 259.4092 426.5947 m 355.8311 426.375 l 354.6689 364.8154 l 349.7461 324.3433 308.5396 302.1519 v 267.7949 321.7095 259.5264 369.4937 v 259.4092 426.5947 l s 0 O 0 g 350.5889 425.9546 m 305.7026 380.2847 l 310.1416 378.6577 l 295.1367 358.2129 l 299.6313 357.626 l 283.6196 331.3184 l 315.604 363.397 l 308.3506 364.479 l 330.8281 388.0078 l 328.1245 389.543 l 355.2832 415.959 l 355.0469 424.6753 l 350.5889 425.9546 l f 281.353 416.9048 m 281.4531 418.8154 283.9204 419.3799 v 284.3403 420.751 l 285.4277 418.2563 283.4448 416.9688 v 281.4614 415.6812 282.8325 415.2612 y 286.2593 417.5166 287.4551 417.105 v 286.8237 415.0498 285.7197 413.8901 v 284.6128 412.73 286.6709 415.4058 288.3589 414.4463 c 290.0498 413.4868 290.1865 416.0898 290.8262 415.0137 c 290.8623 412.3994 288.0947 412.7192 v 287.0073 411.9067 l 288.8428 410.4189 290.9453 410.6553 v 293.0454 410.8916 288.4033 408.7002 y 288.3032 406.7896 291.0542 406.1221 v 293.8047 405.4546 286.1841 406.2056 285.8643 406.7451 c 285.5444 407.2847 288.4951 403.8218 287.8999 402.459 c 287.7832 403.5107 286.2119 403.4189 v 284.6406 403.3296 283.8618 405.1094 y 286.0645 400.6431 284.9854 400.0034 v 283.9092 399.3638 285.561 401.0186 283.478 401.127 c 282.7852 401.1631 282.4375 404.4893 y 280.958 402.8262 280.6104 399.5391 v 280.2627 396.2485 279.6147 403.769 y 276.3525 401.3301 276.5889 399.2275 v 276.8281 397.1274 275.2236 400.3564 276.856 404.2612 c 277.8516 406.6475 273.5938 401.8223 y 275.5767 406.4194 l 270.1143 405.1401 l 270.3477 407.3154 274.8203 408.5474 v 275.8799 408.8394 270.6899 409.4624 y 273.0205 410.7305 l 271.7578 413.2334 268.9546 412.8608 v 266.1484 412.4854 271.1738 415.3555 272.1807 414.6045 c 273.1846 413.8564 273.6689 413.1333 274.7119 413.0776 c 275.752 413.0249 272.6563 417.0161 y 274.6279 417.2051 276.5391 414.7246 v 277.5151 413.4531 276.5029 420.6426 y 277.9102 417.6113 l 278.7861 417.7363 l 279.8652 421.6831 l 281.353 416.9048 l f u 0 R 0 G 0.3476 w 311.3486 413.0415 m 316.9805 413.2417 321.5918 412.085 321.6499 410.458 c 321.7085 408.8281 317.1919 407.3457 311.5596 407.1455 c 305.9307 406.9424 301.3169 408.0996 301.2583 409.729 c 301.1997 411.3564 305.7192 412.8384 311.3486 413.0415 c s 311.4541 410.0938 m S U u 314.4053 410.0938 m 314.4023 404.459 313.0811 399.8921 311.4541 399.8921 c 309.8242 399.8921 308.5034 404.459 308.5059 410.0938 c 308.5059 415.7285 309.8271 420.2949 311.457 420.2949 c 313.0869 420.2949 314.4053 415.7285 314.4053 410.0938 c s 311.4541 410.0938 m S U u 313.71 408.1943 m 310.0801 403.8833 306.1284 401.2412 304.8823 402.2925 c 303.6362 403.3408 305.5693 407.6851 309.1987 411.9932 c 312.8311 416.3042 316.7832 418.9434 318.0288 417.895 c 319.2749 416.8462 317.3418 412.502 313.71 408.1943 c s 311.4541 410.0938 m S U u 309.3096 408.0688 m 305.4414 412.1655 303.269 416.396 304.4541 417.5137 c 305.6387 418.6318 309.7324 416.2148 313.6011 412.1182 c 317.4673 408.0186 319.6421 403.7915 318.4575 402.6733 c 317.2725 401.5552 313.1758 403.9722 309.3096 408.0688 c s 311.4541 410.0938 m S U u 0 O 0 g 311.3901 408.8672 m 312.0688 408.8311 312.6475 409.3511 312.6807 410.0298 c 312.7168 410.7056 312.1968 411.2837 311.521 411.3203 c 310.8423 411.3564 310.2637 410.8359 310.2275 410.1577 c 310.1914 409.479 310.7114 408.9004 311.3901 408.8672 c b 311.4541 410.0938 m B U u 1.0569 w 278.5327 432.7217 m 275.5767 438.3813 277.7207 437.1157 v 279.6621 435.9673 283.4751 430.7188 284.8545 430.4717 c 286.2339 430.2241 281.4697 430.6523 280.5547 429.8291 c 279.6426 429.0059 276.6499 430.0352 y 274.5225 432.585 l 278.1494 428.7388 273.1792 430.2183 v 266.7935 432.9053 268.9209 436.9712 v 275.5791 441.0566 278.5327 432.7217 v s 291.8384 432.5405 m 286.5596 437.7388 289.6855 437.875 v 295.9658 438.1533 296.3496 431.2642 295.209 430.4463 c 294.7588 430.124 294.3247 430.146 292.8452 430.1377 c 291.6157 430.1294 288.6816 430.4438 y 288.0171 432.6548 l 290.4087 428.5244 285.439 430.0073 v 276.4751 436.9155 280.6997 437.48 v 286.187 440.8457 291.8384 432.5405 v s 304.4263 433.5278 m 300.2373 438.2759 303.6113 437.9224 v 306.0864 437.6636 310.1138 432.5684 309.2764 431.4448 c 308.9009 430.9414 308.7231 430.8638 306.79 430.5327 c 305.5801 430.3242 303.2188 430.4604 y 300.4126 433.3916 l 306.3115 427.2427 297.3311 431.0303 v 294.5083 433.6172 294.1826 437.377 v 300.9048 439.3716 304.4263 433.5278 v s 317.8091 433.1694 m 314.0547 437.8945 317.3394 437.4609 v 319.8062 437.1328 325.7915 431.6089 324.8931 430.5327 c 324.6147 430.1992 320.1787 430.085 318.9497 430.0625 c 317.7314 430.0405 316.7998 430.5244 y 313.9961 433.4585 l 318.8828 428.7607 312.5083 430.0571 v 307.3633 433.1138 307.2905 436.6846 v 314.3301 439.7939 317.8091 433.1694 v s 332.1494 432.7603 m 327.1484 438.5957 331.3369 437.1548 v 333.6899 436.3452 338.4126 432.4185 338.585 431.0278 c 338.7656 429.54 335.6343 431.1836 334.1294 430.7412 c 332.9502 430.3936 329.8462 430.3574 y 328.1387 432.624 l 331.2646 429.2393 326.2949 430.7188 v 317.4893 437.0156 320.7881 436.8433 v 328.3442 439.8389 332.1494 432.7603 v s 343.9888 434.4849 m 338.3901 438.8706 343.0767 438.623 v 345.5601 438.4927 348.6777 433.7979 348.4053 432.4238 c 348.2856 431.8203 348.0938 431.4839 347.1816 430.6606 c 346.2666 429.8403 342.9932 430.4463 y 338.5903 434.4238 l 345.374 428.8643 339.4331 430.6357 v 331.3457 437.3301 333.0112 437.5884 v 339.4302 440.4702 343.9888 434.4849 v s U u 0.3476 w 307.252 416.1929 m 307.6577 416.1704 308.0054 416.4819 308.0249 416.8882 c 308.0474 417.2939 307.7358 417.6421 307.3296 417.6641 c 306.9238 417.686 306.5757 417.3721 306.5537 416.9658 c 306.5313 416.5596 306.8457 416.2124 307.252 416.1929 c s 307.2905 416.9268 m S U u 311.2065 400.1313 m 309.8716 401.1157 308.9595 405.3628 308.9341 410.2549 c 308.9063 415.5366 309.9717 419.7583 311.457 420.2866 c S U u 318.1152 402.5952 m 316.4688 402.4009 312.895 404.8677 309.5269 408.4136 c 305.8892 412.2437 303.7725 416.0479 304.4902 417.4526 c S U u 321.439 410.1992 m 320.5015 408.8311 316.2905 407.7686 311.4043 407.5684 c 306.1255 407.3511 301.8701 408.2637 301.2861 409.729 c S U u 318.1958 417.5195 m 318.5713 415.9038 316.5132 412.082 313.3647 408.3384 c 309.9609 404.2974 306.4146 401.772 304.9404 402.3311 c S U u 0.1725 w 287.3882 356.5332 m 289.3545 357.4731 l 289.3989 351.7271 l 273.4019 352.0498 l 273.502 353.9604 l 277.4956 353.749 l 277.2397 352.1943 l S 276.2163 359.2114 m 285.4082 358.5522 l S 274.8813 353.7129 m 278.7695 384.4927 l 282.4155 384.2979 l 285.9365 352.083 l S 276.5835 372.7695 m 284.7432 372.3384 l 285.0547 374.9336 l 283.3364 375.373 l 283.4473 374.1494 l 276.4941 374.3413 l 276.5835 372.7695 l s 276.3276 364.6011 m 284.4961 364.3452 l S 276.9673 370.1387 m 283.9116 369.7715 l S 278.853 386.0527 m 283.3945 386.3364 l 283.6226 384.0615 l 278.7695 384.4927 l 278.853 386.0527 l s 279.3838 386.2002 m 279.4287 387.0679 l 280.3965 388.9316 l 281.584 388.3472 l 281.6479 386.2529 l S 280.1182 357.2646 m 281.167 357.3838 l 280.8833 352.0024 l 279.832 351.8857 l 280.1182 357.2646 l s 278.6885 382.9297 m 282.6714 382.5454 l S 279.832 351.8857 m 280.3965 388.9316 l S 285.6084 355.7568 m 279.9902 361.4502 l 275.1841 356.1323 l 289.0879 355.7461 l 283.0415 356.5889 l 283.1416 351.8828 l S 276.4834 367.5522 m 284.2959 367.1406 l 279.9902 361.4502 l 276.4834 367.5522 l s 276.4834 367.5522 m 280.0459 372.4136 l 284.2959 367.1406 l S 283.1997 376.0767 m 280.0459 372.4136 l 277.8267 376.5327 l 283.1997 376.0767 l 280.1406 380.7632 l 277.8267 376.5327 l S 280.1406 380.7632 m 278.6885 382.9297 l 280.252 386.1528 l 282.1792 383.0938 l 280.1406 380.7632 l s 280.3325 384.4092 m 278.5771 380.8462 l 282.9272 380.791 l S 280.4243 382.8379 m 278.2939 378.7715 l 282.8242 378.8799 l 280.4131 376.0488 l 277.2788 372.7334 l 279.9653 367.5439 l 283.5278 372.4023 l 280.4131 376.0488 l S 280.1406 380.7632 m S 284.8521 361.1943 m 279.9653 367.5439 l 276.0078 361.834 l 284.8521 361.1943 l 279.8872 356.2329 l 276.0078 361.834 l S 280.4131 376.0488 m 278.2939 378.7715 l S 276.458 373.646 m 284.6157 373.2173 l 285.2554 375.4453 l 284.2959 373.7544 l 284.0952 376.5522 l 284.2959 373.7544 l S u 278.8335 385.7051 m 283.6865 385.2769 l S U 278.7969 385.0127 m 279.3286 385.1572 283.8228 384.5732 y S U 327.8994 352.3057 m 328.4194 352.2778 341.4829 352.4585 y S 338.8716 352.4224 m 336.3794 367.8721 l 332.377 367.9082 l 330.6948 352.5059 l S 0 O 0 g 331.7349 352.4502 m 333.2559 368.0361 l B 337.6367 352.1387 m 335.356 368.2725 l B 334.8608 352.2861 m 334.3159 368.3281 l B 332.085 365.6611 m 336.9634 365.75 l B 331.9932 363.9253 m 336.8716 364.0146 l B 330.8394 355.2813 m 338.8438 355.2065 l B 332.1406 366.7012 m 336.3237 366.8291 l B 347.5625 375.2866 m 348.0381 371.0845 l 338.1343 374.7417 l B u u 336.8022 375.3091 m 342.5928 375.5732 l 342.6509 374.7334 l 336.8022 375.3091 l b U u 335.2061 377.0083 m 335.3447 382.8042 l 336.1846 382.8018 l 335.2061 377.0083 l b U u 333.209 375.4204 m 327.4155 375.5259 l 327.4126 376.3687 l 333.209 375.4204 l b U u 334.7104 373.4985 m 333.9985 367.7466 l 333.1616 367.8306 l 334.7104 373.4985 l b U u 335.459 373.4902 m 337.4224 368.0361 l 336.6353 367.7329 l 335.459 373.4902 l b U u 336.0176 373.749 m 340.4814 370.0498 l 339.959 369.3906 l 336.0176 373.749 l b U u 336.5991 374.3662 m 342.0669 372.439 l 341.8027 371.6377 l 336.5991 374.3662 l b U u 336.4932 376.1797 m 341.5273 379.0469 l 341.9614 378.3267 l 336.4932 376.1797 l b U u 335.8232 376.7915 m 338.8853 381.7114 l 339.6084 381.2832 l 335.8232 376.7915 l b U u 333.9487 373.7739 m 330.2773 369.2876 l 329.6157 369.8047 l 333.9487 373.7739 l b U u 333.3145 374.4609 m 328.0469 372.041 l 327.6768 372.7974 l 333.3145 374.4609 l b U u 333.5063 376.2881 m 328.3501 378.9355 l 328.7202 379.6924 l 333.5063 376.2881 l b U u 334.1738 376.73 m 331.5347 381.8921 l 332.2773 382.2925 l 334.1738 376.73 l b U 338.7822 378.6743 m 337.2363 377.4507 l B 340.4063 376.4995 m 338.2041 376.0073 l B 340.1816 373.8989 m 338.0371 374.4497 l B 339.8169 371.9189 m 337.7061 373.1592 l B 337.9897 370.272 m 336.6187 372.3467 l B 335.1836 369.8994 m 335.1309 372.166 l B 332.8779 370.7173 m 333.5757 372.4219 l B 329.8604 374.5332 m 331.6987 374.7832 l B 329.4849 377.3364 m 331.9517 376.249 l B 331.0977 379.8618 m 332.9751 377.5005 l B 334.1709 380.396 m 334.4185 378.4683 l B U u 337.375 366.9487 m 337.4111 367.6411 L 331.8574 367.936 L 331.8208 367.2407 L 337.375 366.9487 L b 334.6162 367.4409 m B U 347.354 374.6025 m 338.0371 374.4497 l 345.8745 376.2461 l 348.3135 379.6001 l 347.354 374.6025 l b 0.6953 w 300.2793 392.9277 m S u 0.172 w 298.6587 327.334 m 303.7954 327.1196 l S 317.8267 340.8311 m 314.8008 351.2607 311.7085 340.9009 v 310.0869 335.4746 311.6914 328.2852 y S 313.0625 327.9878 m 312.7847 330.207 313.0708 328.1572 312.7261 331.2861 c S 312.5479 333.2749 m 312.3535 335.3525 312.5093 337.5132 312.9404 339.5908 c S 313.3408 341.2959 m 313.6357 342.3608 314.0806 343.4736 314.7676 343.9463 c S 315.627 342.7505 m 315.7437 342.8169 314.8677 342.8589 314.2334 341.0508 c S 313.8105 339.4878 m 313.6997 338.6089 313.7021 337.9556 313.7134 338.1919 c 313.6104 336.2393 313.5493 334.6572 313.7329 333.2134 c S 313.9497 331.3916 m 314.0972 328.8662 314.5171 327.7124 y S 316.2861 327.4204 m 315.4463 330.8022 315.2988 336.0728 y 315.4712 343.5874 317.6851 341.0649 y 318.0327 340.6641 318.3218 339.4766 v S 311.853 341.5156 m 307.7813 341.5601 l 307.7202 340.375 l 311.5884 340.2559 l S 307.3779 327.4951 m 308.1733 336.1089 l S 319.5542 341.6602 m 320.1411 341.6489 l 320.4717 340.5361 l 319.1895 340.6201 l 319.5542 341.6602 l s 320.4717 340.5361 m 321.1812 340.3003 321.1338 339.4126 v 318.5361 339.5352 l 318.4194 340.5308 319.1895 340.6201 v S 321.1338 339.4126 m 321.8149 338.8789 321.6313 337.8579 v 317.8296 338.1724 l 317.7241 339.3877 318.5361 339.5352 v S 310.7124 335.9751 m 309.9004 327.0225 l 311.3242 328.3047 l 310.3008 334.6377 310.7124 335.9751 v s u 300.1885 330.2319 m 299.2344 330.4072 298.7173 332.2427 299.0981 334.3262 c 299.4653 336.3311 300.2661 337.6855 301.415 337.7661 c S 303.5342 331.8008 m 303.0225 330.5771 302.2856 329.9399 301.5928 330.0459 c 300.8447 330.1597 300.1719 332.0508 300.5527 334.1338 c 300.9336 336.2173 301.7485 337.8721 302.9697 337.5913 c 303.395 337.4937 303.8291 336.8765 304.1045 335.6499 c S U 302.2827 333.8169 m S 297.1401 335.9365 m 296.5898 335.9502 296.1191 335.0879 296.0889 334.0059 c 296.0557 332.9268 296.4785 332.0371 297.0288 332.0229 c S 297.0845 335.939 m 299.5293 335.8169 l S 296.9731 332.0259 m 299.126 331.8926 l S 301.3594 337.769 m 302.8223 337.6079 l S 300.1885 330.2319 m 301.6709 330.0317 l S 302.6416 335.7417 m 302.1021 335.8447 301.498 335.0659 301.3008 334.0005 c 301.1006 332.938 301.5513 331.9785 302.0938 331.8755 c S 302.6416 335.7417 m 302.7944 335.7334 l S 302.7944 335.7334 m 302.7944 335.7334 l S 302.7944 335.7334 m 304.1045 335.6499 l S 304.1045 335.6499 m 304.5825 335.6191 l S 302.0938 331.8755 m 304.3242 331.7866 l S 317.0229 342.9951 m 316.2891 345.3228 315.0371 346.0986 v S 313.7637 346.6328 m 313.5913 346.6689 313.5352 346.6855 313.3438 346.6968 c S 313.0181 346.7109 m 312.6899 346.7163 312.334 346.6831 311.9531 346.6021 c 305.103 345.437 304.6914 337.6494 v 304.2798 329.8652 304.1016 329.7065 y 298.6587 327.334 l 298.2998 322.7144 l 323.0107 321.4072 l 326.7798 328.5078 l 326.835 330.5962 l S 307.7505 341.4766 m 311.7612 341.3511 l S 312.8789 346.4688 m 313.5352 348.6602 314.1499 346.4297 v 314.2197 346.1714 313.8052 346.3628 y 313.6802 347.1611 313.5327 347.0835 v 313.3882 347.0054 313.21 346.3101 y 312.832 346.1016 312.8789 346.4688 v s 314.1055 346.6577 m 314.6479 347.8369 315.043 346.2129 v 315.1011 345.9736 314.8647 346.1631 314.7871 346.2324 c S 314.7871 346.2324 m 314.7729 346.2461 314.7622 346.2544 y 314.5869 346.6885 l S 314.6201 346.772 m 314.4033 346.4355 l S 314.7622 346.2544 m 314.4033 346.4355 l 314.3726 346.3882 l 314.1499 346.4297 l S 314.3447 344.75 m 314.9736 345.2173 315.3433 344.9502 v 316.9258 343.8208 317.3179 341.624 y 316.5254 341.6069 l 315.9077 344.8501 314.3447 344.75 v s 316.5254 341.6069 m 315.8604 341.8687 l S 314.7676 343.9463 m 316.1748 342.3135 315.8604 341.8687 y 315.1875 341.4238 314.9316 340.3335 v S 314.7676 343.9463 m 314.6284 344.0659 314.4702 344.1855 314.292 344.2993 c 314.3447 344.75 l S 314.8647 340.4336 m 314.4478 340.8867 313.8833 341.3848 313.4575 341.3457 c 312.6675 341.2705 312.27 340.8423 y 311.9111 339.4185 l 312.7734 340.1943 313.2212 340.0859 v 313.666 339.9775 314.6895 339.499 315.2461 338.8174 c 315.438 339.7412 l 315.1987 340.0718 314.8647 340.4336 v S 315.2461 338.8174 m 314.6816 338.8481 l 313.2212 340.1138 313.3071 339.6963 313.1128 339.6382 c 312.7954 339.5405 312.4146 339.2793 y 311.9111 339.4185 l S 315.3071 333.5249 m 315.4238 332.0205 l 313.5186 330.7798 311.7305 331.6782 v 311.4663 333.1357 l 313.9609 332.1538 315.3071 333.5249 v s 315.3071 333.5249 m 314.709 333.4722 l 313.6968 332.8105 312.0391 333.2749 v 311.4663 333.1357 l S 314.6816 338.8481 m 314.3115 336.1255 314.709 333.4722 v S 323.748 329.7344 m 323.0332 329.8652 322.6436 331.2417 322.9302 332.8047 c 323.2056 334.3091 323.8066 335.3247 324.6689 335.3857 c S 326.187 330.688 m 325.8062 329.7705 325.3223 329.5146 324.8022 329.5952 c 324.2402 329.6816 323.7368 331.0996 324.0205 332.6602 c 324.3071 334.2231 324.9189 335.4634 325.834 335.2549 c 326.1538 335.1797 326.479 334.7183 326.6851 333.7974 c S 324.6689 335.3857 m 325.6948 335.269 l S 323.7871 329.6563 m 324.8022 329.5952 l S 327.9614 332.1509 m S u 327.6333 333.7168 m 328.0923 333.6641 328.3818 332.9189 328.2788 332.0566 c 328.1758 331.1943 327.7197 330.541 327.2607 330.5938 c 326.8018 330.6494 326.5098 331.3916 326.6128 332.2539 c 326.7158 333.1191 327.1719 333.7725 327.6333 333.7168 c S 327.5723 333.7197 m 326.251 333.8418 l 325.7896 333.8975 325.3335 333.2412 325.2305 332.3794 c 325.1274 331.5171 325.417 330.7744 325.8784 330.7188 c 327.2607 330.5938 l S U 326.1177 332.3149 m S 323.5059 334.5347 m 321.9263 334.5898 321.8428 334.6235 v 321.7207 334.6709 320.8809 334.5151 320.6665 332.7324 c 320.4912 331.2554 321.4175 330.5464 321.334 330.5576 c 323.064 330.4575 l S 322.7803 330.4155 m 322.4634 329.2446 321.9878 327.9043 321.1338 328.1543 c 320.0742 328.4658 319.4287 330.7046 319.5928 333.272 c 319.7124 335.1353 320.647 337.5244 321.9233 337.2212 c 322.6216 337.0542 322.9805 335.8364 323.1416 334.6123 c S 321.4868 332.7461 m S u 323.0947 335.2939 m 322.438 338.481 321.0195 337.7773 v 320.5552 337.5493 319.4707 336.8706 318.9644 332.627 c 318.8447 329.2393 320.0464 327.9292 v 321.4092 326.4443 321.9292 328.2632 322.0156 328.2769 c 322.2739 328.3213 322.7803 330.4155 y S U 314.7871 331.7144 m 314.8594 329.3643 315.3628 327.6123 v S 320.978 327.3564 m 317.8296 327.7568 l 317.5459 327.7065 317.1841 327.8345 316.7285 328.3296 c 315.5269 329.6396 315.6494 333.0273 y 316.1553 337.2715 317.4209 337.9526 317.8853 338.1836 c 321.5034 337.8804 l S 318.0688 339.2485 m 317.6157 341.0981 316.937 340.8369 v 315.7993 340.7119 315.8188 335.7471 v 315.8105 333.981 l S 317.2983 337.7495 m 320.5024 337.3965 l 320.2021 337.0293 l 316.9507 337.3716 l 317.2983 337.7495 l s 316.2192 335.8252 m 319.4814 335.4551 l 319.3369 334.8403 l 316.0747 335.2104 l 316.2192 335.8252 l s 315.6855 333.2217 m 319.0088 332.9355 l 318.9644 332.0869 l 315.6465 332.4624 l 315.6855 333.2217 l s 315.855 330.5269 m 319.1509 330.2686 l 319.2593 329.6396 l 316.0386 329.7261 l 315.855 330.5269 l s 319.6763 328.4575 m 316.4893 328.6274 l 317.1064 327.9985 l 320.2046 327.7515 l 319.6763 328.4575 l s 322.7466 334.604 m 322.4492 336.4868 321.8848 336.5146 v 321.2925 336.5483 320.1963 336.1255 320.1016 332.7627 c 319.999 328.9751 321.4619 329.0415 y 321.9736 329.0723 322.271 330.4155 v S 311.3242 328.3047 m 316.4277 327.4702 l 317.1064 327.9985 l S 307.5449 329.5786 m 307.4282 335.9224 l 306.3486 327.2671 l 307.4727 328.1685 l S 305.064 336.1587 m 303.8486 327.0586 303.7954 327.1196 v S 306.3486 327.2671 m 306.0039 327.1895 305.9624 326.3828 v 305.9175 325.5347 305.8594 322.314 y S 309.9004 327.0225 m 309.5581 326.9727 309.5249 326.3633 v 309.4917 325.7432 309.3579 322.1304 y S 323.0107 321.4072 m 322.8164 326.2827 322.9834 326.2188 v 309.8252 326.686 l S 322.9834 326.2188 m 325.0244 329.5615 l S U u 2 To 0.9363 0 0 0.9363 -4014 4716 1 Tp 0 Tv 0.9363 w 203.3188 391.8047 m 203.3188 448.7534 249.4868 494.9214 306.4355 494.9214 c 363.3843 494.9214 409.5518 448.7534 409.5518 391.8047 c 409.5518 334.856 363.3843 288.6885 306.4355 288.6885 c 249.4868 288.6885 203.3188 334.856 203.3188 391.8047 c n TP 0.2295 0.9077 -0.9077 0.2295 204.3882 408.9634 Tm 0 Tr 0 O 0 g 1 w %_ 0 50 XQ /_Times-Bold 25 23.3749 -5.4501 Tf 0 Ts 100 100 Tz -20 Tt %_0 0 100 100 Xu %AI55J_GlyphSubst: GlyphSubstNone 0 TA %_ 0 XL 0 TY 0 TV 36 0 Xb XB 0 0 5 TC 100 100 200 TW 25 TG 0 0 0 Ti 1 Ta 0 1 2 2 99 Th 0 Tq 240 Tg 25 0 Tl -0.5 Tc 0 Tw (D) Tx 0.3609 0.8639 -0.8639 0.3609 208.2388 424.3232 Tm (E) Tx 0.4743 0.8073 -0.8073 0.4743 213.8438 437.8008 Tm (P) Tx 0.5829 0.7327 -0.7327 0.5829 220.4336 449.3364 Tm (A) Tx 0.6872 0.6359 -0.6359 0.6872 230.2192 461.769 Tm (R) Tx 0.7726 0.5288 -0.5288 0.7726 241.8223 472.5483 Tm (T) Tx 0.8516 0.3891 -0.3891 0.8516 253.5806 481.0522 Tm (M) Tx 0.9057 0.2376 -0.2376 0.9057 272.647 489.5723 Tm (E) Tx 0.9307 0.1018 -0.1018 0.9307 286.6929 493.3848 Tm (N) Tx 0.9357 -0.0341 0.0341 0.9357 302.4551 495.1357 Tm (T) Tx 0.9095 -0.2225 0.2225 0.9095 322.1772 494.1357 Tm (O) Tx 0.8667 -0.3542 0.3542 0.8667 338.8022 490.002 Tm (F) Tx 0.7863 -0.5083 0.5083 0.7863 355.7842 482.7041 Tm (E) Tx 0.7036 -0.6177 0.6177 0.7036 368.083 474.8999 Tm (N) Tx 0.6062 -0.7136 0.7136 0.6062 380.0059 464.4746 Tm (E) Tx 0.4954 -0.7945 0.7945 0.4954 389.5293 453.4565 Tm (R) Tx 0.3628 -0.8631 0.8631 0.3628 398.0088 440.126 Tm (G) Tx 0.2205 -0.91 0.91 0.2205 404.6646 424.3887 Tm (Y) Tx ( DEPARTMENT OF ENERGY \r) TX TO 0 To 0.9271 0 0 0.9271 196.1235 390.4141 0 Tp 0 Tv TP -4.5499 0 Td 0 Tr /_Times-Bold 26 24.3099 -5.6681 Tf 26 0 Tl -0.52 Tc (\245) Tx (\r) Tx TO 0 To 0.9271 0 0 0.9271 417.2295 390.4141 0 Tp 0 Tv TP -4.5499 0 Td 0 Tr (\245) Tx (\r) Tx TO 2 To 1.0795 0 0 1.0811 -4014 4716 0.0002 Tp 0 Tv 1.0898 w 306.5 273.437 m 372.1592 273.437 425.3887 326.7441 425.3887 392.5 c 425.3887 458.2559 372.1592 511.563 306.5 511.563 c 240.8403 511.563 187.6113 458.2559 187.6113 392.5 c 187.6113 326.7441 240.8403 273.437 306.5 273.437 c n TP 0.1371 -1.0723 1.0708 0.1373 187.5273 385.4619 Tm 0 Tr 0 O 0 g 1 w /_Times-Bold 21.266 19.8837 -4.636 Tf 21.266 0 Tl -0.4253 Tc (U) Tx 0.296 -1.0397 1.0381 0.2965 189.8828 367.7671 Tm (N) Tx 0.4133 -0.9987 0.9973 0.4139 194.9116 351.083 Tm (I) Tx 0.5193 -0.9478 0.9464 0.5201 198.5166 342.0317 Tm (T) Tx 0.6444 -0.8674 0.8661 0.6453 206.4839 327.6519 Tm (E) Tx 0.7612 -0.7666 0.7654 0.7623 216.356 314.4292 Tm (D) Tx 0.8851 -0.6189 0.618 0.8864 233.2866 298.4683 Tm (S) Tx 0.9559 -0.5024 0.5016 0.9573 244.5513 290.5688 Tm (T) Tx 1.0182 -0.3591 0.3585 1.0197 259.1855 282.9219 Tm (A) Tx 1.0593 -0.208 0.2077 1.0609 275.98 277.1401 Tm (T) Tx 1.0778 -0.0604 0.0603 1.0794 292.1094 274.0537 Tm (E) Tx 1.077 0.073 -0.0729 1.0786 308.2808 273.2808 Tm (S) Tx 1.0447 0.2721 -0.2717 1.0463 327.8657 275.0117 Tm (O) Tx 0.9946 0.4203 -0.4197 0.996 346.2251 280.0249 Tm (F) Tx 0.8998 0.5972 -0.5964 0.9012 365.1851 288.5981 Tm (A) Tx 0.7841 0.7431 -0.742 0.7853 380.3311 298.5474 Tm (M) Tx 0.6506 0.8627 -0.8614 0.6515 396.8179 314.6948 Tm (E) Tx 0.5206 0.9471 -0.9457 0.5213 406.7275 327.8994 Tm (R) Tx 0.4098 1.0002 -0.9987 0.4104 414.8389 343.1924 Tm (I) Tx 0.2922 1.0407 -1.0392 0.2926 418.7197 352.2153 Tm (C) Tx 0.1332 1.0728 -1.0713 0.1334 423.4531 369.4292 Tm (A) Tx (UNITED STATES OF AMERICA\r) TX TO U U LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI5 /terminate get exec Adobe_shading_AI8 /terminate get exec Adobe_ColorImage_AI6 /terminate get exec Adobe_typography_AI5 /terminate get exec Adobe_cshow /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF pyutilib-6.0.0/doc/plugin/DOEbwlogo.pdf000077500000000000000000000322421367314503500177520ustar00rootroot00000000000000%PDF-1.3 %Çì¢ 8 0 obj <> stream xœÝ\ÉŽMVÞ×SÜe÷·c– 4¤¦¡mXY2 ªZ4H?úˆ÷äN^Wf•°…Üä…+ãfœˆ8óùÇ[ºç[â¿øÿóËÓŸ~õûqû×ÿ|*ó¾r¹ý×S»ýö)ßþí)בîû–;~(åöòTR÷vË%ßÓÜ·2zº§r½ßsx^ã>Ç-WŒ~û ¥Þû­¤6ðÆ­äµï ÿºïsÞrÛõ¾9qŽ{Ϙ0÷º·²neæz/š‰MaâÜ÷rËcÝÓÀmÕûXx?×|¯x®uÏ«ÝÆè÷–ú-ïvï#ß.Gøüô‡§O¹á¨­ÞZp€yyÊ{4ì(ucù¶ð´Æã9·<1Àƒ#»7ž,”Êrƒ^áxþü´vz=Ј²<óÏŽ‘càØâõ q²„Soäh÷Ä•Vï³òˆ[*1R@ľú=µ˜TÛí§§“op~î»WͨàÇAŒ ²—öÿ†’e”ûÖc&sß5‘¯21çœÝó½TÍzÚ÷Êsãx¤öÚåÞ§ÞÀÚ`ô¼@¾%–„èøqóàü@v\÷.iX#“Q!´ˆF ™„²/Bl£ Òê "vÓÁ‚ÜÝ£ÔÁçL¼ä=3gfOÃtÇ.g€µH%n¢SÚ@¦=1»Ð圓tbí"s¹ì{Þ‹gœGÀ®M°74:ÈàÂÌ1ã2n]Fu[dñsP‰ 5ÜÄcvoZ ÒS*6Käw ¬€¼eLšq1ò2Z*éŒÇ¶Š{ü,yÀ ÍE›X}!A"ò]‘2m`?2UnÚ¶„¨V0ç5ÉÐyú/QPð<)¢X¤ ­êvU/ÜAÖÆÍiä2OëØ¹Dh"(¸¹äBM>(G›{!Ò–±zÌqŪ´H!s”1Ò*Tjðè÷3) L n~Ómoq‹Ð(?Øj¾x|25QáÎ(»" áÀXýYs¶怬œÕÀl¦sbÁgŽ A`‡§=Ô°°¼ÚyDÊ%Q=QI±ê ÿ÷n¾¢:$E!à àB‡nàœIýÆÙÚJ îœ>ÓI¥=¿ÙÇs/ ‰š É7¤+ÐÒÈÇÀø8 )Á V#cSþE·t}åл-^z³©Uσ\Ìz¸ 4]‰ÚmB~¶8lCäjæ¤TýN’©Œõ©ßŽ€³&Uô„¶i”ºÖ  n”´ž7‘›`e~R-áÿ e“°›†ëº‘@Ô­Õì"GÔª@ØÒfôm£î'w.!Ú®B{$²ŠÉÎæ¡œ”"6¢–Û"jñ 9ȆrzßS€qòþ‚(²y…ì&-5Z–‚ª»Óà7Ô‰.ó§‘$u=!,ÆèåXÏO_°!°Uô°‰}y3‚çæçe¬SÑ¡‚âfƒÔPMFáÏpù,¤h«'äK©©¼ÏOZfPðäX©r‰^8þóÓu$CIZÌ>}ŸÛÕ †&I®hŠé«ÐѤŸúq¾”áOÜã  AäP¡Ní@,žéû>h`'@&ž5 ³|ØI¤Ú.ëÁXéý%7 f6߀{±»ÌÞìy’±ÙüÿùÍH¦,Ñ­¼íVsؼµM„G–¼…‚ý’M;ö´½~Ô™ô%M`3I%Á׽˿°%‚÷nd½‘¿Ða¢„”,%!ÍËç.kݧ¤Bëñh.ÜN¥I/2¿|âHíµË± å6Ôvà'ƒîÁ5?Xe…—C^FBŠN~…<¯*%–ÌE›±0 E ],Ô!D*Ù‘™¾Š½ -Üôý‰N‡Ù»!:GŠÉ6¸ÓA‚4VdÖÔ†ÿ^Î$;qÉ™áŽ\(Ÿ¼XT GìªX ´©}f ؇´I¬ð{—+"á PA ±;*¨@j=,!êpÀƒ)ºüYJ#èm¿íí«DÓ,eÆ+Žìà[ô";vóý¡ HZ2Ñ©¡¤¥0UŒˆËQ‹\§Ô¶E™&I}rMZ{Ò%My춪7lÕÆhR¥Ôû0ú«[܉“´m8c>b—>¥ÔA ÷ :H¸ádËç @Oy™Ä8Ljl«Å"bcU¹B$zUä у†¸iÞ$ ¯Ü(ÌA–ª¤ç&5$Tˆ¾ÄГá€tÑÇÔÚ (ÄjmÊ/Ó¶[‘E§‡flÒ:u(È-5”Â¥’ÏOb'¿cåãñè€ïb+rÕ<¢¡åD›Ö©ŒŠã«,/›a #Á (™¯ŒRF6*Dݦm/Ÿ¶‘hÇæ’6™È¯/1R,r’ÀDŠ`¶Õ^£‰jgî²[ý?Þh¦ÅŸÇc Î8FàTHÎæŸ:Mk|}þl¯q½zã±ï€p9Ç‘Aj²Ð‡k0!Ë:“Ê‘îžfgù©p¬–âÂNÇP­‚›]Õê7¨Ñ¶iK7ˆ*M͈gÐ%ÍÆÏ+§SÎS Š" °áгuÚ)#½ÄZK|ÔE‰ó)Ž£õêÁÄýÈkjÚá`)w¥X‡’7r•  7Àö’*È ~£GËu¡H)[taS@Ìf`HÛ˜^•¼Õ™h*V¬ûàþN_=ÃQ{Þº`fÅ#©%­ùúÇÙÀªÛb2¦½âd¬nÛ²–íÛ•@ý ” Pó%e¢2=>E=«YÒ¤™¿rü½ŒóCzhTš}gE«Fˆ ³Õí$—GßeJN'øLçïÿߡΩ,Rú~ß•†|X¼µœ¹€~ÒþôôüO6Ìô0˜Ó _É?`°‘¬»‰gxwÚo‚dVØ"ÓåôÒ ³”Ö‰\‚b7¡@’L·1Dj·­éòŸ½ç½àðSSNà[v•<»½f^¶’èW±ÛN;ª“ ¥гog˜(ìüdä1d¤næÚÒOçœVaMo¤t+…·fw^u3ðŠü©JäfD~"tÍ l…¿È¯1PÐHþjRWÏÔ=e9 ÃçêƒtÄ 9×Î f³ç›Ä—« ‡:Ê%&a°k†%uëIù±ËȔ۾ÙaÍa½c¦a“5äML*8:ˆ ®AYGœüj$3ÿSÅÅ ð-ßëìpËM·0>„ÀR:·{æÊ-ÜòÖ”0ÂA¶ ]:ÙgXçý¥u;MÐJÎïRMç ‘|æ--©Ê€6•Ûœ0ødåJ‡K2%¬d#€Ó¯Xuˆ•3‚€ÀN§#Ï#XÄŒ»¶S¤LÎ̤Ø~ŠÌeD®Ž”»Ë­mSÎŽqïKrG¡§ŒlS±‹ïˆ¦êk1âÊÁ‚4­ šf°ŠÜ*:­~ac¦ñ‘”ÍíÊ.&qS:ˆI¶ŽÖ"wЛ­?å[¹ÖèK)²·—‘Üp¬Q}l²C«J$®!y$QOŠªSœÆÊ kݱ¬f¨”ТÇLß[Ib9ªÕì Ôuy½c/£t_° „‡yÅÙºõCN¦"F¦ôÃÜÒ'tt¥=³£Í2M}ÛD.z)Ýܹåö[àøÜæ2" CØK;ò#¯Fä´Ë«g˽(vÙB©s‘óˆÜŠ%®‰43õDÄPLÎL;qã{…Ëòw¡ævÝcµ©Tf«¶ÓÙÌ8ÐØ Hä¯l‹¨SLÈôi*{MHæ>å3-¦ó¤‹­&wSú@é~&5‹í‘ùá¬Ôe*™‘çv°»4òÏO"ZlÚø<d毦fZ¡ÌÞlI’pGÀÔ#]˜Ì@L&q¸‘vIˆT¥• Œt€[qu—%1[³mC ;©e1Þɾ¼E–OCæ†.Ww•4Ñ“T€#4<)«ÔüÉvLœ “ph–Æ8•Æc1 Þ¶GŠ’8EQ›ù™98¥HTßx±DC“X’+ñƒÐlPY[dæb¨p%5¥Ò¬O\›*Ü4SÃ[T.CëuºRfØï’¦SwE¸Ô<[ðbVVÚÜE•O½³ÈÊjæãpEI}å9›³+çµ"¹ÏLÍqn#Êjl ¢XßnýاÝÿ’dI^œH¤ f³±ßóËÇuøÅ;å.ê¨GFgK³/‰òü.îÎpŽFÁ>¢@C%Ò2V˜¤!Då¡¢Afk@-NuOagzdHÚèhöƒCÑ3ø«D¥fXÇMSK ¶=/•#5ÅX<å(*]áÛ¦7Î}…ÆÉrv½Ò5>ð{öòÎaŒÐ#ã}RE ›òEÌõ9Üæ)‚Ò“ÅÉÕ!Q@é% Ø2¯lo´úƒ3›Löb¾(æ &¿L¹ëêç9»BÊTyäß"åøülÎÛÑK0çû“˜Ñ-ª>HS<Ÿ§Aèñ3¤õÝ)ß¼õr%Ù³Ø]} Ù\“ÙA——m»½»˜OÆ/fîdÁi޹«#¥èâ(Ó3÷qøaߢ:7¨y¶Å*™›—³zŒCìm_UÜÜ–ù@5s75ZhÇ^Dl°öy/9}Ns¦îHE9e½kÐõ4+ĆbåØÑuÖÇ7;xïøÁY4ÙþMæQ‡Âçή"åbíÙ›¥íÁk¬¿ôØ¥«QäŠ^Þ}'´ÛÑJµÁmo§2æœÇ[ÓrËÚ—¹ zKŠªg'˜ùT³ÇÏŠ4X‰£A+*3Ôh®r%X$:¼s¶P@:³fÍfç‡cNè°MŒôÎs“Œåx2»Ö®úéÐiSé¶2î= kùåÉ•¬¸¿|ÏKÜh¡²o9,ÅŒÜV^Ñ0ôå»Þ"¬¤¢‡p`­8åd½%«eXß~K±œcS%´²qµ]Т6~ó%áÊËÅAL12Ó,¨o¿õѵl%°ÀAË ²ÊÙ<’Äû­#ZÍJÌ„%'7(7”k‹#~ó-–ük×±K—üò¤8Š z#+¢ ,ך­-èúš÷Ѹ¡·FÆj’‰)uä¸%ŠóÖp½ºì2ËÜðc 9\ÍQêÒPÁ¥Œë©–“OS\\«†ðüf–wõc 9+±2¤F+ÎJØÕ,jèˆ×C}V»z—Iæ„ÇxJ*°í`/+†­è<³rz^V™Š©Êy8O Iþp‚r.liTè®R‘_UÐ=¤Í;˜à4)èöàxG%É9,?j¨%WÖG†iºYÅN³Ïvž þ#ÅžztcTFå’•d?¿(òäL š¥BúžŽG.³bS?RìÊ©5•Ôt,­öŽiP/ÙMåøï<)öôà7Ùb—¡Ìhè_ÉjžQ»žÝ¾yuçÑó›YÁO?Rè­ i:å‘1y"[¿ÕÑFqéö‡²›YžßÌ MðC Å®Ü Áæ›ÐÉ$6§8n°þsÚ+Ý!Ö§Y±«)vår6ûˆÝëÇ|%_cxåã4õD&pí9çÄž~œÐ™nÛ Må&2ÝRÅ똸L„êZ÷óuRèÌÇ;jj¾V Ÿ¹`² Eö§¹™íËw½õÑ*ÉgŽ,oQâH}ê3}ãAq®¶Ø;Ö[I~#©Û8ßz‰u¨3.ïÈiÍêm©Ù‚_¾ë-y¸Šz"Ìpº‡k¡%² _¾ç%éG딩ØzVbSå´‡nýö[òþ–âæ²Œ·s°ÅÑAxß|‹°ØuCü8¦u­¨§UÒ—ïyIܤT¦ò?/ö‹{±4&í;Þ’ßä 7½½¸25ïátÿï¯r—]VÝ-¸6SVs"éËw½%NPw®àÚÃ=`Þ^i&k(X½ñ—޽Sâ œ` ?l·ôV§TY*Nå=¡QýD˜# |AÕ±¶Õ¦Ç3Œðÿÿpÿéaf‡kScø$§4w´»©™ ;d¡;ËÃZtu·³Ùž1bvÇlsŸïÛ¤´}yCíK ¬8Ýé5è;ÍÅ^Îâx›-Nˆnè5¬ñjŽdßAšîÄšœÄHŸinü OšÅþ5"ÏÍÊe[·ÅÌŒ Ëó^±4{{T;÷µŸ¬®ö%ÝûS\†`Æôe›óîâ6(^\ê`Kj Û•9s•LtfW^›:ê ðĈ'ÏîŒóóˆ+7Bìê±Ê|Vƒ ;ä!íê™øº¼ŒíµR6o[щÙn—ZüG´Já°ìŒq­‘;Ç|æƒèy±mxa¡Ï8Üò«‰/PÿX’5PÖÝv¦o¢ýWN ±IÐs²³±™zÝù&RJr#]V‰oé^Vq“4Øb±,]±À“Xì8œêÄ*óü£ùÆyDÍcÄË‹êÝå-±"ôLU¾TÆR~{g_÷S…nŠZ,v&ß`+ÀýÿÍ•À­:VhD–á€ržhw—Ã[#Ƴ û–†®Ú0ØîŠtª’#Í`¶¼N.eî¬<;\·ŽQR œÀ„X^&¾¼Q¯$†“$õN…ÿDt€ºhB†¼:ývQ×ZÞ†)æ>m.je'°ÜÈT‡¾JË+a5—”¦džz¬8]ØeŸB! r³LvÞ‡oÔ u˲!jҥȔR>eò¦‡ÃŒËˆ.ŠaßdñªÛ›gQìd²û¦n©öF˜gäÙI©ksMVœìV"çóG} íªf"¨3øWlG &TÙ\¸ÔI'q*ägûÒ8oQpèéä\Ee—2ö—˜¹&”eIâݺ­Œ2,êîpo;/ô5êEºMÓ‰sìxë J>Ó¨DÌ}0žd½›uÞZÔ/σU¡¦ªw”Ï¥ä¸JzQEaT«q Œ%ku‚^ ?%1ãúÛu§fšº1?¥ÆèÕ“lþlÙ\—ÕaE˜3¯ÛõèÆñNà˜v„ÙË^û±7øºÒõ€Àp1(¼³¢k«WèÆìøÞFsß¿S0÷ûÒ^ —ÍÀm± ­ýçg/#R^tn(ðú 7vùÎØ [‚q@^ ëḞFw Ú{¶A¬Ûu‡ ¼ÝïC`i£ÅÓÄ]W 3ÅEüºQñOïìæã„¿%¸˜Èâ5Nóùie+Á-×’f«†bÚ Ú†­ÓIiŠÛ›os±d©TUPeŽžvòmŒ¥#Óì«qÒw³ù¼z4·È³4RÇY×܇dC·BhNyýg¸ñ:ùÚÍ×ìX›4J9ºö`¨ÙL¼w\ß*$í&˜ó¢nË´íà·j‹tÏÅêÔÑÑù›æ­Îþ–ék†“.0?§¢ž?Å»ê¿aU.§ÕÑÔc@¸‡ƒËÍâøÜ|·ŠºœÏI>6TÏcIh*vÎ+ f‡RÏê§ljqQháÖR¶;O:Ρ0†Bi:š_•’áÐc¸àJÂ4µT³½ñ‘]Љ)³¼d]GÜX“þ£ÚÂݰ¢FÚó!Œ#HC¼“·qD€Xf©e»>ì¼×ÀžÁ‘ùhºŸ vä>Øâ!=6|I—-ÒYý™xƃ”ðÔepÂdoôŸ„éæe†}ö=¦ &GÖÖõVuy3^-v{ØpZÁΤêˆäŒÜ³/ÙŠ÷ ßCi:“jÇQ‹ªò©¢Š®QÛeä3uËS*Švû‘½íÌ·i(ÛIg-SrüŒ…næM}Y†)ºÔ¾f”‘s£zgv‡#ŒŒ•KP!‘”¡;˜õµ8݈蜊¨ÞŽ Ä E‹¯{oFkRõ{»×”ñNy±úXŠ«ªŽêv;"/—#·Ó!0ÛAâeD'¥ÑZ.öö© ~Œg\äóÍ*î«1‘ƃ1èc@¬¦i~T¥I;Ä—aü=ßÐÁÔaGÜ•]Lfu­±TÓŒM}ɇIÑQKÜ2zžþx‹§S%û®ý+‚ýüÊe\•¿p)jÐôpá”g5‚l}yqk)²+9òbö†)¾îþO^¤×þŽèò.ânÖkë¾ç©O\±Ë,–U¦Nª[_èÊ=2¦Sk–¼3!Çòu}JéÌ2âžjWi¹×Ÿ½×©*q±Ž/ª0)HI.OÈœG”FÌCiÄ-ò2¤Žv`–Ê. ëÄÛ~¢T9[#²%bá®|„«j>&“´è[ÝéXÖ5ì&ð{fÖâê צbbï~Æì Αû+Å;àçt1çÒ'"k¨2‹¬–z¢¿K¾În|¹À9 ç04+«%~%m;ÛáÃÁÒ¼fÇ=[8Ùž_Ÿyç}‰®¼„Îz×£˜5îçå­_±¥¹#ö^·,v‰4éνëûmÔ1T]/¾/°(9¾È5fYö‰­¯”èæhâåç€¾Ô ³|Á?” ÙvÄ'ͨ¯yäaGB‚¬Ò/Gš¾91ÔãÿÕMNý°5<”{{¹aç$¥ 5KïŠõ© (ê¬y”ê;J2YÖ,=g>Å9ëé.§7ˆPÀß­š`4WdÈ5I´bÂòÒ]c®×w"g® Töã)ÛŠ°s×iL6gl»º7Ï$ïû ûå͈î!¦¦YKâ³>áÅö,ßìâ,Üì¶«ºBv*ªv¹ ô*s¬Drgo礪+3.‘tÁU·¡$ ªyRèk\Îæ ¶Q¦£Îqα¼¼Ñíªm6$”poÁ|?A×ý¹òx|Þéò’œ¼$ân~BÄèþã-뫈ÇŸ_nöééW¿ç7€?~sðÓ—'NëÔìPvz¹}xüõøM}ƒºê¿;}zyúÅ_üòÓ¿¿†Ö ­BáLNÝ¥Lh’¿¿5ϺÄÐ~s†¶ EJ©QJ_~xüõø Zž?oŸÁ’¥,`w6 lð#T7~V£Ðj}xüuü¤»ÏÌÞè;uC ~}9å6¬YÁ©<å˜|õáøãñËà÷¬6¿L˜eŽ ë÷gX=`aES±—•µ±øëñÛÔ—õ?x1KÐ>½{È6K{R üîŇÇ_ßxgqñ[e”uèxûíý´1©I™¯³‹5â¯ÇoY7wù¹¸­á;Ä$ÃÚÆ6¹Ì™UÐâ¯Ço¼ó3ø}F~¦jƒÐþö]ÖØ{W³ü˜‚ŒM¸_ÿŠ_yÅ‚{ccDŠ~zÜd%@¬shK?â·¬ŽœT÷H ìw"䀾2ò+Ôm"%ÄodþŰ)ƒo¼ýåZ –LÚ&|/f…Àò8ÌJÒÔˆ­†=5ðû†ø[ÝúŠjVž›+c(ü–¨³‡TMxPâÈííË´Iü ™° Ù~`»:”Ѫhàœ2ä`–(`\K ¤ÊÒÔ-Å»>Ñ™¨Ì_„ö(IœXJ«‘.-‚Ÿ&½&.‹­½ÛÕ®XŽƒVøØu ãƒ\®Ù®ÀœÀtæÛŸñÛ;Š \¡sáÆŠUGe‰UÊ·tù–Ð߉í-n–Á¥´ýó °rƒÊJ†lU”¬B¡+«ß¨Jç‡õCj¤¯ýͧÛß?ñßÿyE.endstream endobj 9 0 obj 9024 endobj 7 0 obj <> /Contents 8 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 6 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 5 0 obj <>stream xœkhÙDÀ€ endstream endobj 4 0 obj <>stream xœc`Ù endstream endobj 14 0 obj <>stream xœ”{PSWÇo€Ü{-H+™ °ÚpÇQ•b;V+®JA¤Z@)è‚À\àBHâM" &”‡x,AÞ”^cÁÅÐÕ–n»uT¶ÝúÀj÷1jGº;uÇ]ÝöwÓ“ÙØÕÙ?vf“™ÌÍýýÎïs¾çü~_@) UNFù,.Ø,”ó–W’M½ÿu¬‚øk³? s2ªá„ÿ='…dNáPôGÏLDŠXU{ÇíV6Tþ˜ìà'§ìž°QP@-‡«VÈvÙ¤†òr¦f×þý•¤¢»ÑÖʪîôì(káçây+Öà°¥ãéœõEÙ7Ú£»PNdê¶ü5ïl•.ñó°k°ò:kÄè$Ý"µîA­¨ý@͇•Ã5#äfb߃°Ûy·ÓÞÂÑ·Vž³IèbäÕ g~;vÁ^ô ÍPIÑóöL/N{a ñBò3K’Üîe~ÏõJÌë-î6ô+eàÅúñ¼^Ìž¤ Oé{DÀyÊ“t//5‰‘3J%åwj´Õáš6ï'“ØlïBã¬LºküHÏd#1°'"s³îˆ“´ºß½.y’â/°nzåkjt¹«gÂotf‘¹[ë©@É~£Ã1Ù©8xaþe˜§ :×ÒßÝÕÑÖÓtñ]’:EF³¦£Št&±Ø#Û®\,™pÜB“èzÿÈðØ™c_¡?±¡ðDÎ'ŠSdQ½&-=qÕÕŒ¯ï^¹zç댫k¢B+<²Ö9zðà‚CB€™MQÿ2·qß endstream endobj 15 0 obj 2099 endobj 11 0 obj <> endobj 10 0 obj <> endobj 2 0 obj <>endobj xref 0 16 0000000000 65535 f 0000009339 00000 n 0000012832 00000 n 0000009280 00000 n 0000009693 00000 n 0000009545 00000 n 0000009387 00000 n 0000009129 00000 n 0000000015 00000 n 0000009109 00000 n 0000012580 00000 n 0000012046 00000 n 0000009483 00000 n 0000009513 00000 n 0000009840 00000 n 0000012025 00000 n trailer << /Size 16 /Root 1 0 R /Info 2 0 R >> startxref 13075 %%EOF pyutilib-6.0.0/doc/plugin/Makefile000066400000000000000000000003671367314503500170760ustar00rootroot00000000000000# # Create The Following Documents: # # . An Overview of the PyUtilib Component Architecture # pca.tex # all: pca pca: pdflatex pca bibtex pca pdflatex pca pdflatex pca sand: pdflatex SAND bibtex SAND pdflatex SAND pdflatex SAND pyutilib-6.0.0/doc/plugin/SAND.tex000066400000000000000000000144511367314503500167040ustar00rootroot00000000000000% % $Id: SANDExampleReportNotstrict.tex,v 1.25 2008/05/22 21:01:20 rolf Exp $ % % This is an example LaTeX file which uses the SANDreport class file. % It shows how a SAND report should be formatted, what sections and % elements it should contain, and how to use the SANDreport class. % It uses the LaTeX report class, but not the strict option. % % Get the latest version of the class file and more at % http://www.cs.sandia.gov/~rolf/SANDreport % % This file and the SANDreport.cls file are based on information % contained in "Guide to Preparing {SAND} Reports", Sand98-0730, edited % by Tamara K. Locke, and the newer "Guide to Preparing SAND Reports and % Other Communication Products", SAND2002-2068P. % Please send corrections and suggestions for improvements to % Rolf Riesen, Org. 9223, MS 1110, rolf@cs.sandia.gov % \documentclass[pdf,ps2pdf,12pt,report,OUO]{SANDreport} \usepackage{pslatex} \usepackage{mathptmx} % Use the Postscript Times font \usepackage[FIGBOTCAP,normal,bf,tight]{subfigure} \usepackage[dvips,light,first,bottomafter]{draftcopy} \draftcopyName{Sample, contains no OUO}{70} \usepackage{listings} \usepackage{url} % If you want to relax some of the SAND98-0730 requirements, use the "relax" % option. It adds spaces and boldface in the table of contents, and does not % force the page layout sizes. % e.g. \documentclass[relax,12pt]{SANDreport} % % You can also use the "strict" option, which applies even more of the % SAND98-0730 guidelines. It gets rid of section numbers which are often % useful; e.g. \documentclass[strict]{SANDreport} % ---------------------------------------------------------------------------- % % % Set the title, author, and date % \title{On the Use of Dry Erase Markers at National Laboratories (Report style, not strict)} \author{John E. Smith \\ Special Projects Department \\ Sandia National Laboratories\\ P.O. Box 5800\\ Albuquerque, NM 87185-9999 \\ root@sandia.gov \\ \\ \and Jane S. Miller \\ Whatsamatter University \\ Northside, New York, NY\\ jsm@whatsamatteru.edu } % There is a "Printed" date on the title page of a SAND report, so % the generic \date should generally be empty. \date{} % ---------------------------------------------------------------------------- % % Set some things we need for SAND reports. These are mandatory % \SANDnum{SAND2002-xxxx} \SANDprintDate{June 2002} \SANDauthor{Jonh E. Smith, Jane S. Miller} % ---------------------------------------------------------------------------- % % Include the markings required for your SAND report. The default is "Unlimited % Release". You may have to edit the file included here, or create your own % (see the examples provided). % % \include{MarkUR} % Not needed for unlimted release reports % ---------------------------------------------------------------------------- % % The following definition does not have a default value and will not % print anything, if not defined % \SANDsupersed{SAND1901-0001}{January 1901} %\input{MarkOUO} \include{macros} % ---------------------------------------------------------------------------- % % % Start the document % \begin{document} \maketitle % ------------------------------------------------------------------------ % % An Abstract is required for SAND reports % \begin{abstract} TODO %\input{CommonAbstract} \end{abstract} % ------------------------------------------------------------------------ % % An Acknowledgement section is optional but important, if someone made % contributions or helped beyond the normal part of a work assignment. % Use \section* since we don't want it in the table of context % \clearpage \chapter*{Acknowledgment} \section*{Acknowledgements} We thank Jean-Paul Watson for feedback on the design of the PyUtilib Component Architecture. Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy's National Nuclear Security Administration under Contract DE-AC04-94-AL85000. % ------------------------------------------------------------------------ % % The table of contents and list of figures and tables % Comment out \listoffigures and \listoftables if there are no % figures or tables. Make sure this starts on an odd numbered page % \cleardoublepage % TOC needs to start on an odd page \tableofcontents \listoffigures \listoftables % ---------------------------------------------------------------------- % % An optional preface or Foreword %\clearpage %\chapter*{Preface} %\addcontentsline{toc}{chapter}{Preface} %\input{CommonPreface} % ---------------------------------------------------------------------- % % An optional executive summary %\clearpage %\chapter*{Summary} %\addcontentsline{toc}{chapter}{Summary} %\input{CommonSummary} % ---------------------------------------------------------------------- % % An optional glossary. We don't want it to be numbered %\clearpage %\chapter*{Nomenclature} %\addcontentsline{toc}{chapter}{Nomenclature} %\begin{description} %\item[dry spell] % using a dry erase marker to spell words %\item[dry wall] % the writing on the wall %\item[dry humor] % when people just do not understand %\item[DRY] % Don't Repeat Yourself %\end{description} % ---------------------------------------------------------------------- % % This is where the body of the report begins; usually with an Introduction % \SANDmain % Start the main part of the report \lstset{language=Python} \definecolor{light-gray}{gray}{0.9} \lstset{backgroundcolor=\color{light-gray}} \lstset{aboveskip=1em,belowskip=1em,showspaces=false,showstringspaces=false} \include{pca-intro} \include{pca-core} \include{pca-extensions} \include{pca-deploy} \nocite{*} % ---------------------------------------------------------------------- % % References % \clearpage % If hyperref is included, then \phantomsection is already defined. % If not, we need to define it. \providecommand*{\phantomsection}{} \phantomsection \addcontentsline{toc}{chapter}{References} \bibliographystyle{siam} \bibliography{coopr} % \printindex %\include{SANDdistribution} % TODO \end{document} pyutilib-6.0.0/doc/plugin/SANDreport.cls000077500000000000000000002051301367314503500201200ustar00rootroot00000000000000% ---------------------------------------------------------------------------- % % $Id: SANDreport.cls,v 1.83 2009/04/30 23:15:05 rolf Exp $ % % We start out with the standard LaTeX document class "article" or "report" and % modify it so it conforms to the Sandia Technical report style. % The modifications are based on "Guide to Preparing SAND Reports", % SAND98-0730, edited by Tamara K. Locke, and the newer "Guide to % Preparing SAND Reports and Other Communication Products", SAND2002-2068P. % % Get the latest version and more at % http://www.cs.sandia.gov/~rolf/SANDreport % % Rolf Riesen, April 30, 2009. % % % 06/14/2002 v1.01 % Make distribution list wider. Spaces between area codes and phone numbers % % 06/17/2002 v1.02 % Use \raggedright for main title % % 06/19/2002 v1.03 % Set tocdepth to 2 to only list sections and subsections in TOC % % 08/07/2002 v1.04 % Added a Makefile based on one Mike Heroux provided % Allow for distribution lists that span more than one page and % typeset the distribution in two columns % % 11/25/2002 v1.05 % Some changes from Daniel Segalman to conform to the new guide % (SAND2002-2068P): % - Adjust top margin of the title page to conform to the MS Word % template (this may or may not be correct depending on your % latex/dvips initial setup. Use texconfig to setup paper and % dvips). % - Added the word "Printed" before the date on front page % - Classification category is no longer needed on page 3; get % rid of \SANDdistcategory % - Added "National Nuclear Security Administration" on title page % - Changed NTIS URL on page 2 % % If "strict" is not used, we'll number sections to two decimal % places (1.2.3) % % 02/13/2003 v1.06 % New DOEbwlogo.eps from Tim Draelos. This one is smaller and has some % incompatible junk removed. % % 10/16/2003 v1.7 % Using \ifthenelse in the addcontentsline command interfered with % the subfigure class. James Gruetzner and Todd Pitts provided a fix. % % Philippe Pebay reports that the color package needs to be imported % before the graphicx package. This class file uses the graphicx package, % so Philippe could not use the color package because graphicx was already % loaded when his \usepackage command got executed. % % 11/19/2003 v1.8 % Make it work using the report class. Put "report" as an option into % \documentclass[report]{SANDreport} to activate it. There were some other % fixes and clean-up s as well. Mainly in the table of contents. % - Changed NTIS URL on page 2 % - Added fleqn to \LoadClass % - Can't get the report title to repeat on the first chapter page. % Left it off for now. % - The table of contents formatting for report class is more or less like % report.cls. For article, we try to make it look like the guideline. % % 01/19/2004 v1.9 % - The distribution list at the end of a SAND report was modifying the % description environment which interfered with its regular use. Created % a separate environment to fix that. % - If in "report", list chapters and sections in TOC % - With the jpg option, load the jpg versions of the DOE and Sandia % logos. This makes it possible to use pdftex which doesn't % understand Postscript. % % 02/25/2004 v1.10 % - It is now SANDIA REPORT, no longer SAND REPORT. Central Technical Files % now wants three copies. See the distribution examples. (Info from % Philippe Pebay) % - Added new commands for markings used in OUO, export controlled, and % other reports not labeled "Unlimited Release". Thanks to Mark % Ackermann for providing an OUO example. % - In report style, the page numbers restarted after the title page. Fixed! % - Big clean-up. % % 05/14/2004 v1.11 % - Had to comment out a line in fancyhdr.sty for pdflatex to work. % Don't know why. % % 05/21/2004 v1.12 % - Added the options [FIGBOTCAP,normal,bf,tight] to the subfigure % package in the example files from a suggestion by Philippe P. Pebay. % - Added the CA and NM options to insert the respective standard distributions. % % 08/07/2004 v1.13 % - Use pdf versions of logos. Makes the "jpg" option obsolete. Suggestion % and logos by Richard Lehoucq. % - Making SANDreport.cls compatible with the hyperref package % - Added SANDmath.tex from Philippe Pebay % % 08/18/2004 v1.14 % - \begin{SANDdistribution} now takes an optional argument (CA or NM). The % respective \documentclass options are no longer valid. Several new % commands are available within the SANDdistribution environment to % automate distributions for special cases such as CRADA, LDRD, % Classified, Patent, etc. % - The distribution list is now better formatted. % - Fixed a bug with \SANDreleaseType discovered by Mark Ackermann % - Added the command \SANDmarkTop % % 05/20/2005 v1.15 % - A small change in the distribution list (D. Chavez in the LDRD office % moved) Thanks to Brandon Rohrer. % % 12/05/2005 v1.16 % - New org numbers reflect new corporate structure 9616->4536, etc. Thanks % to Philip Sackinger for doing this. % - Philip also found out what the newest distribution rules for NM are. % - In the example files, deleted a misleading comment about secnumdepth in % the appendix. Thanks to John Mitchell for spotting this. % - New SANDmath.tex from Philippe Pebay: (ver. 1.2) % + add support for discrete intervals % + fix some comments % + replace incorrect \RequirePackage's by \usepackage' % - Also from Philippe Pebay: CA distribution list changes. % - Abstract will start on title page, even with report style. Thanks to % Daniel Dolan for noticing it and making suggestions to fix it. % - Put the title just above the first chapter in the report style % % 12/09/2005 v1.17 % - Fixed a bug introduced in the last version: The \cleardoublepage is % only supposed to happen for chapters in the main body of a report, % and it needs to happen before the page number is entered into the TOC. % - Fixed several new and old bugs that dealt with markings % - Fixed text on usage page about marking commands. % % 12/09/2005 v1.18 % - Make it work with hyperref again.... % % 12/19/2005 v1.19 % - There were still problems with the hyperref package. Fixed it so that % the page markings on the back cover are now correct. % % 12/21/2005 v1.20 % - Updated the distribution list according to version 2.0 of the Guide % % 03/22/2006 v1.21 % - Introduced \SANDrePrintDate and \begin{SANDreDistribution} % - Put a page number (2) on the back cover % - No institution in \SANDauthor{} in example files % - Move the SNL logo on the cover towards the bottom of the page % - Add a back cover with the SNL logo at the bottom of the back % - Use \cleardouble page and add comment to example files to make % sure TOC always starts on an odd page. % - Don't put title on first page of body text (above introduction) % anymore. (Changed from Ver 1.0, Sep. 2002 to Ver 2.0, Dec. 2005 of the guide.) % - For article, start every section on a new page (report already does this) % - Fixed URLs for DOE report ordering % - \SANDmarkCover now takes only one argument! This makes it easier to draw a % box around the statement and configure it as needed. See MarkOUO.tex for % an example. Thanks to John Foster for the example. % - Print small class file version number at bottom of inside back cover % - Change by Daniel Dolan to make it work and look consistent with the mathptmx % package. This leaves the Helvetica fonts on the cover alone, but lets him % have the body of the report in Times. % - From Debbie Johnson (Creative Arts): % - In example files, use First Name, Middle Initial, Last Name on cover and title page % - In example files, on cover, put author names on one line % - Mail Stop for Central Technical Files is MS9018. (This was an error in the example % file, not the class itself.) % - Back cover was shifted right too far. % - Move chapter headings up a bit. % - Use the geometry package to get the margins right % % 06/10/2006 v1.22 % - Remove "Unclassified" from "Unclassified Unlimited Release" (Thanks Brett Bader and Mike Heroux) % - Confirmed that M2497 is correct mail stop for classified reports to Central Technical % Files. (Thanks Debbie Johnson) % - Make the distribution list single column. This makes it easier to print labels. % - D. Chavez, LDRD Office mail-stop changed from 0188 to 0123. (Thanks Brett Bader) % - In examples, added \phantomsection and moved \addcontentsline{toc}{section}{References} % just before the \bibliography{...} command. This helps putting the right page number % into the TOC and also with hyperlinking. (Thanks Tammy Kolda) % - Clarified usage of \SANDnum{} on Web page. (Thanks Tammy Kolda) % - More usage and LaTeX tips on Web page. (Thanks Tammy Kolda) % - Newer distributions have a fancyhdr.sty that works. Removed it. % % 06/26/2006 v1.23 % - Tammy Kolda found a bug when using amsmath. Seems to have been a problem with % white space in the redefinition of \section. LaTeX would stop when building the TOC. % % 08/17/2006 v1.24 % - Changed tar file extension from .tgz to .tar.gz Some winzip versions under % Windows don't seem to like the former. (Rich Lehoucq) % - Org. Number for Central Technical Files changed from 8945-1 to 8944 (Tammy and Debbie) % % 09/19/2006 v1.25 % - David Wilson discovered that markings in report style also activated chapter % name headings, which are unwanted and sometimes overlap with the markings. % % 10/03/2006 v1.26 % - Some Web page error fixes from Daniel Dunlavy % - Mike Eldred suggested to keep internal distributions on a single line % % 10/03/2006 v1.27 % - Forgot to extend the width of external distributions % % 12/13/2007 v1.28 % - No change: Org. Number for Central Technical Files is 8944 (confirmed by Beth Watkins) % - Mark the OUO examples as sample to avoid misunderstandings (Roger Suppona) % - Paragraph indent is set to 0 for cover pages, but never restored (Daniel Dolan) % - Use "Lorem ipsum" instead of "bla bla bla" in the examples (Stephanie Phillips) % (There is a LaTeX package, lipsum.sty, that does it, but it is not always installed. % Therefore, I included the text verbaitm, instead of generating it.) % - If the report is an OUO document, some text on the back cover needs to disappear. % Thanks to Marcia Cooper for discovering it, and providing the necessary LaTeX code. % - A lot of changes from Michael Kaneshige to better match the formatting of the official % SAND report template: % 1. Removed the odd-even margin asymmetry - made the textwidth 6.5 in and % both margins 1 in. This is consistent with the official cover % templates, although it's not the standard LaTeX way of formatting double % sided documents. If the document gets bound, the LaTeX way is better, % but a lot of documents exist only electronically now. % % 2. Added more space to \topmiddlewidth and subtracted it from % \topleftwidth and \toprightwidth so that "official Use Only / Export % Controlled Information" would not get broken across lines on the title % page. % % 3. Reduced the \vspace between the title and authors from 0.75in to % 0.375in. This is specific to my document, but with everything we were % required to add, and a moderate length title, LaTeX was generating a % blank first page because the cover page was overfilled. % % 4. On the back cover, I centered the text block and reduced the minipage % width to make it look more like the official covers. % % 5. The word "NOTICE" on the back cover was significantly larger than the % other text, which was not consistent with the official covers. I % removed the \fontsize command that was causing this, and it looks more % consistent with the official covers. % % 6. On the title page, the top block (SAND#, OUO/ECI, Printed...) was not % centered because there were topleft and topmiddle boxes, but no topright % box. I think this was inherited from the report.cls and article.cls % classes, but to fix the asymmetry, I inserted a topright box the same as % the topleft box. It would seem to work just as well to remove both % topleft and topright boxes, since they contain nothing, but to be % conservative, I didn't remove anything. % % 7. Most of MarkOUO.tex has to be edited by the user, but the "Official % Use Only" (SANDmarkTopBottom) should be fairly generic. To make it look % more like the official covers, I made it bold, 12 pt, all caps. In % addition, I reformatted the OUO box from tabular with multicolumn % columns, hlines and vertical bars, to a minipage inside a framebox. I % think this is smoother. % % - The Technical Library has a new org number again: 4536 --> 9536 (Ann Smaple via Bill Hart) % Also changed NM tech library org to 8944, but I am mostly guessing here... % Added (1 electronic and 1 hardcopy) for housekeeping copies and reduce spacing % between distribution entries. (Ann Smaple via Bill Hart) % - Central Technical Files doesn't seem to want unclassified reports anymore. (Several) % % 03/01/2008 v1.29 % - Added Rich Field's SAND Memo class. % % 04/23/2008 v1.30 % - Change the library distribution yet again (per Monica Price) % % 05/22/2008 v1.31 % - A template to typeset OUO memos (Rich Field) % - Per management request, remove all references in the examples to Harry Potter and magic % % 04/30/2009 v1.32 % - When strict is used, section refernces do not work, since sections are % not numbered. Not sure how to deal with this. For now just print a % warning during compile and update the strict examples not to use \ref. % (Problem reported by Eric Chu) % - In article style, the list of figures and tables are now placed directly % after the table of contents without starting a new page first. They do % start on a new page in report style, since that is meant for longer % documents. (Suggested by Tammy Kolda) % - Tammy reports that R&A sometimes asks for no paragraph indentation in the % abstract. In strict mode, this is now the case. % - R&A also suggests that all paragraphs are indented the same. Until now the % first paragraph after a section heading was not indented. The strict % option now indents the first paragraph as well. (Suggested by Tammy Kolda) % - Some people don't like their blank pages to be blank. Added the "blank" % option which adds "Page intentionally blank" to blank pages % - Shared text bewteen examples is now in seperate files and \input into the % examples % ****************************************************************************** % Package definitions % % The version and date of this file \newcommand\SANDreportVersionOnly{ v1.32 } % leave the spaces before and after version \newcommand\SANDreportVersionDate{2008/04/30} % Date has to be in this format! \typeout{Using Sandia Technical Report class: \SANDreportVersionDate, \SANDreportVersionOnly Rolf Riesen} \newcommand\SANDreportVersion{\SANDreportVersionDate \SANDreportVersionOnly} % We need LaTeX 2e or better \NeedsTeXFormat{LaTeX2e} % We need ifthenelse. \newboolean are false by default \RequirePackage{ifthen} \RequirePackage{color} \RequirePackage{graphicx} % Variables \newboolean{blankSAND} % Mark blank pages \newboolean{relaxedSAND} \newboolean{strictSAND} \newboolean{reportSAND} \newboolean{SANDmainProvided} \newboolean{SANDnumProvided} \newboolean{SANDprintDateProvided} \newboolean{SANDrePrintDateProvided} \newboolean{SANDauthorProvided} \newboolean{SANDsupersedProvided} \newboolean{SANDdistributionProvided} \newboolean{inAppendix} \newboolean{SANDmarkingsRequired} \newboolean{MarkCover} \newboolean{MarkBack} \newboolean{MarkTitle} \newboolean{MarkBody} \newboolean{MarkBottom} \newboolean{distCA} \newboolean{distNM} % Added 1/11/07 M. Cooper to remove additional text unnecessary for OUO documents on pg 2. \newboolean{SANDnoticeOUO} % Counters \newcounter{SANDprintingCnt} \setcounter{SANDprintingCnt}{1} \newcounter{SANDreDistCnt} \setcounter{SANDreDistCnt}{1} % We need calc to divide by 3 in setlength and other calculations \RequirePackage{calc} % We need the fancy headers for the report markings \RequirePackage{fancyhdr} % Specify what this file provides \ProvidesPackage{SANDreport}[\SANDreportVersion] \ProvidesFile{SANDreport.cls}[\SANDreportVersion] % We understand five options: "relax", "strict", "report", "blank", and "OUO" % Using "relax" makes the document look more LaTeXy % If no option are given, then we follow the format of SAND2002-2068P % Using "strict" tries to follow the guideline even more closely % Specifying "report" uses the report class instead of the article class % Specifying "blank" marks blank pages with some silly text % Specifying "OUO" removes some unnecessary text on page 2 for OUO documents % \DeclareOption{blank}{ \typeout{Option "blank": Mark blank pages} \setboolean{blankSAND}{true} } \DeclareOption{relax}{ \typeout{Option "relax": Relaxing some of the SAND98-0730 requirements} \setboolean{relaxedSAND}{true} } \DeclareOption{strict}{ \typeout{Option "strict": Follow the SAND98-0730 requirements more strictly} \typeout{===============================================================================} \typeout{strict: Note that section references wont work since sections are not numbered!} \typeout{===============================================================================} \setboolean{strictSAND}{true} } \ifthenelse{\boolean{relaxedSAND} \and \boolean{strictSAND}} { \ClassWarning{SANDreport.cls}{Both, "strict" and "relax" options given} }{ } \DeclareOption{report}{ \typeout{Option "report": Using the report class as a base.} \setboolean{reportSAND}{true} } \DeclareOption{CA}{ \ClassError{SANDreport.cls}{"CA" option is obsolete}{Use \@backslashchar begin{SANDdistribution}[CA] instead.} } \DeclareOption{NM}{ \ClassError{SANDreport.cls}{"NM" option is obsolete}{Use \@backslashchar begin{SANDdistribution}[NM] instead.} } % Added 1/11/07 M. Cooper to remove additional text unnecessary for OUO documents on pg 2. \DeclareOption{OUO}{ \typeout{Option "OUO": Formatting page 2 for OUO reports} \setboolean{SANDnoticeOUO}{true} } % We're based on the standard article or report class and assume certain % options. Set those, and pass all others to the article class \ProcessOptions % We need to do it here so we get "reportSAND", and then again \ifthenelse{\boolean{reportSAND}} { \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} \ProcessOptions % Repeat it here, otherwise LaTeX gets confused \LoadClass[letterpaper,twoside,final,fleqn]{report} }{ \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions % Repeat it here, otherwise LaTeX gets confused \LoadClass[letterpaper,twoside,final,fleqn]{article} } % % Setup for letter paper (This IS a SAND report!) % \RequirePackage{geometry} % \geometry{pdftex, showframe, inner=1.5in, textwidth=6in, textheight=9in} % Changed textwidth to 6.5in and inner to 1in to more closely match official SAND cover templates - MJK, 1/12/07 \geometry{pdftex, inner=1in, textwidth=6.5in, textheight=9in} % In strict mode, we want all paragraphs indented, even the very first one after % a section heading. The following code does that. % \ifthenelse{\boolean{strictSAND}} { \RequirePackage{indentfirst} }{ } % ****************************************************************************** % Check some of the user directives and setup a few things % \AtBeginDocument{ % Do some usage checking \ifthenelse{\boolean{SANDnumProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDnum not provided}{Insert \@backslashchar SANDnum in the preamble of your document} } \ifthenelse{\boolean{SANDauthorProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDauthor not provided}{Insert \@backslashchar SANDauthor in the preamble of your document} } \ifthenelse{\boolean{SANDprintDateProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDprintDate not provided}{Insert \@backslashchar SANDprintDate in the preamble of your document} } % Save the title, it will be cleared by \maketitle, but we need it later \newsavebox{\SANDtitletempbox} \sbox{\SANDtitletempbox}{\parbox{\textwidth - 1.5in}{ \centering \LARGE \bf \@title \par} } % % Some measurements to format the title page properly % \newlength{\textwidththird} \newlength{\topheight} \newlength{\topleftwidth} \newlength{\topmiddlewidth} \newlength{\toprightwidth} \setlength{\textwidththird}{(\textwidth / 3) - (\fboxsep * 2)} \setlength{\topleftwidth}{\the\textwidththird} \setlength{\topmiddlewidth}{\the\textwidththird} \setlength{\toprightwidth}{\the\textwidththird} % Changed following to -6, +10, and -6 from -3, +4, -3, to get "Official Use Only - Export Controlled Information % to fit on one line on title page - MJK, 1/12/07 \addtolength{\topleftwidth}{-6em} \addtolength{\topmiddlewidth}{+10em} \addtolength{\toprightwidth}{-6em} \ifthenelse{\boolean{SANDsupersedProvided}} { \setlength{\topheight}{1.5in} }{ \setlength{\topheight}{1.0in} } % % We want a blank line between paragraphs % \setlength\parskip{2ex} % We don't want a head rule \renewcommand{\headrulewidth}{0pt} % Some people don't like their blank pages to be blank... % Turn this on using the blank option. \ifthenelse{\boolean{blankSAND}} { \makeatletter % Code I found, but can't remember where \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else % \cleardoublepage from latex.ltx \hbox{} % \cleardoublepage from latex.ltx \vspace*{\fill} % Code I found, but can't remember where \begin{center} % Code I found, but can't remember where This page intentionally left blank.\\ {\CoverFont{m}{6}{6pt}(Well, it's not blank anymore...)} \end{center} % Code I found, but can't remember where \vspace{\fill} % Code I found, but can't remember where \thispagestyle{empty} % Code I found, but can't remember where \newpage % \cleardoublepage from latex.ltx \if@twocolumn\hbox{}\newpage\fi\fi\fi} % \cleardoublepage from latex.ltx \makeatother % Code I found, but can't remember where }{ } } % End of AtBeginDocument{} % ****************************************************************************** % Cover pages % % ------------------------------------------------------------------------ % % Font selections for the cover page \Coverfont{series}{size}{skip} % \newcommand{\CoverFont}[3]{ \fontencoding{OT1} \fontfamily{phv} \fontseries{#1} \fontshape{n} \fontsize{#2}{#3} \selectfont } \newcommand{\doCover}{ % % Print the cover pages % \SANDmarks{cover} \newlength{\coverindent} \setlength{\coverindent}{1em} \newlength{\parindentsave} \setlength{\parindentsave}{\parindent} \setlength{\parindent}{0em} % % Front Cover % %\hspace*{-0.375in} \begin{minipage}[t]{6.0in} \CoverFont{b}{18}{20pt} SANDIA REPORT \vspace{0.125in}\\ \CoverFont{m}{12}{14pt} \SANDnumVar\\ \SANDreleaseTypeVar\\ \ifthenelse{\boolean{SANDrePrintDateProvided}} { Printed \SANDrePrintDateVar }{ Printed \SANDprintDateVar } \ifthenelse{\boolean{SANDsupersedProvided}} { \vspace{0.125in}\\ \SANDsupersedVar }{ \\ } \vspace{0.25in} \CoverFont{b}{24}{28pt} \parbox[t]{\textwidth}{ \raggedright \@title } % Changed this space from 0.75in to 0.375in to match official SAND covers, and provide more space to prevent % overfilling the page - MJK, 1/12/07 \vspace{0.375in} \CoverFont{m}{12}{14pt} \SANDauthorVar \vspace{0.25in} \CoverFont{m}{8}{10pt} \selectfont Prepared by\\ Sandia National Laboratories\\ Albuquerque, New Mexico 87185 and Livermore, California 94550\\ \\ Sandia is a multiprogram laboratory operated by Sandia Corporation,\\ a Lockheed Martin Company, for the United States Department of Energy's\\ National Nuclear Security Administration under Contract DE-AC04-94-AL85000.\\ \\ \MarkCoverVar \end{minipage} \vspace*{\fill} % Move the logo to the bottom of the cover page %\hspace*{-0.5in} \begin{minipage}[b]{6.0in} \includegraphics{snllineblk} \end{minipage} % % Back cover % \newpage % Added centering and reduced minipage width to match official SAND covers better - MJK, 1/12/07 \begin{center} \begin{minipage}[t]{5.5in} \fontencoding{OT1} \fontfamily{pnc} \fontseries{m} \fontshape{n} \fontsize{9}{11pt} \selectfont Issued by Sandia National Laboratories, operated for the United States Department of Energy by Sandia Corporation. \vspace{\baselineskip} % Removed \fontsize{11}{13} to make NOTICE simply bold, to match official SAND covers better, MJK - 1/12/07 {\fontseries{b}\selectfont NOTICE:} This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government, nor any agency thereof, nor any of their employees, nor any of their contractors, subcontractors, or their employees, make any warranty, express or implied, or assume any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represent that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government, any agency thereof, or any of their contractors or subcontractors. The views and opinions expressed herein do not necessarily state or reflect those of the United States Government, any agency thereof, or any of their contractors. \vspace{\baselineskip} % Added 1/11/07 M. Cooper to remove additional text unnecessary for OUO documents on pg 2. \ifthenelse{\boolean{SANDnoticeOUO}}{}{ Printed in the United States of America. This report has been reproduced directly from the best available copy. \vspace{\baselineskip} Available to DOE and DOE contractors from\\ \begin{tabular}{ll} \hspace*{\coverindent} & U.S. Department of Energy \\ & Office of Scientific and Technical Information \\ & P.O. Box 62 \\ & Oak Ridge, TN 37831 \\ & \\ \end{tabular} \\ \begin{tabular}{lll} \hspace*{\coverindent} & Telephone: & (865) 576-8401\\ & Facsimile: & (865) 576-5728\\ & E-Mail: & reports@adonis.osti.gov\\ & Online ordering: & http://www.osti.gov/bridge\\ \end{tabular} \vspace{\baselineskip} \vspace{0.25in} Available to the public from\\ \begin{tabular}{ll} \hspace*{\coverindent} & U.S. Department of Commerce \\ & National Technical Information Service \\ & 5285 Port Royal Rd \\ & Springfield, VA 22161 \\ & \\ \end{tabular} \\ \begin{tabular}{lll} \hspace*{\coverindent} & Telephone: & (800) 553-6847 \\ & Facsimile: & (703) 605-6900 \\ & E-Mail: & orders@ntis.fedworld.gov \\ %& Online ordering: & http://www.ntis.gov/ordering.htm \\ & Online ordering: & http://www.ntis.gov/help/ordermethods.asp?loc=7-4-0\#online \\ \end{tabular} }% end of text for non-OUO reports \vspace{\baselineskip} \vspace{0.125in} \includegraphics[width=0.75in]{DOEbwlogo} \end{minipage} \end{center} % Restore the original paragraph indent \setlength{\parindent}{\parindentsave} \SANDmarks{back} } % ****************************************************************************** % The user commands % % ------------------------------------------------------------------------ % % Here we define the mandatory declarations % \newcommand{\SANDnum}[1]{ \newcommand{\SANDnumVar}{#1} \setboolean{SANDnumProvided}{true} } \newcommand{\SANDauthor}[1]{ \newcommand{\SANDauthorVar}{#1} \setboolean{SANDauthorProvided}{true} } \newcommand{\SANDprintDate}[1]{ \newcommand{\SANDprintDateVar}{#1} \setboolean{SANDprintDateProvided}{true} } % This one is optional \newsavebox{\SANDrePrintDistBox} \newsavebox{\SANDrePrintDistBoxSecond} \newsavebox{\SANDrePrintDistBoxThird} \newsavebox{\SANDrePrintDistBoxFourth} \newsavebox{\SANDrePrintDistBoxFifth} \newcommand{\SANDrePrintDateVar}{} \newcommand{\SANDrePrintDate}[1]{ \renewcommand{\SANDrePrintDateVar}{#1} \setboolean{SANDrePrintDateProvided}{true} \stepcounter{SANDprintingCnt} \ifthenelse{\value{SANDprintingCnt} = 2} { \sbox{\SANDrePrintDistBoxSecond}{Second Printing, (#1):} }{ \ifthenelse{\value{SANDprintingCnt} = 3} { \sbox{\SANDrePrintDistBoxThird}{Third Printing, (#1):} }{ \ifthenelse{\value{SANDprintingCnt} = 4} { \sbox{\SANDrePrintDistBoxFourth}{Fourth Printing, (#1):} }{ \ifthenelse{\value{SANDprintingCnt} = 5} { \sbox{\SANDrePrintDistBoxFifth}{Fifth Printing, (#1):} }{ \ClassError{SANDreport.cls}{\@backslashchar SANDreDistribution used more than four times!}{Do you really have more than five printings? If so, you need to amend SANDreport.cls} } } } } } % Used to need the title at the top of the first section/chapter, but that is % not required anymore. Make sure we start on an odd page. \newcommand{\SANDmain}{ \cleardoublepage \setboolean{SANDmainProvided}{true} } \ifthenelse{\boolean{reportSAND}} { % % new 1 % Once we have left the preamble and are in the body of the text, % we want each chapter to begin on an odd numbered page % % new 2 % After we're done with the title page, we switch to markings for body pages. % \renewcommand\chapter{% % \chapter from report.cls %\if@openright\cleardoublepage\else\clearpage\fi % deleted \ifSANDmainProvided\cleardoublepage\else\clearpage\fi % new 1 \SANDmarks{body} % new 2 % \thispagestyle{plain}% % deleted \global\@topnum\z@ % \chapter from report.cls \@afterindentfalse % \chapter from report.cls \secdef\@chapter\@schapter % \chapter from report.cls } % \chapter from report.cls % % We redefine \@makechapterhead and \@schapter so we can move % the chapter title a little bit higher up. % % % This is for chapters in the body \def\@makechapterhead#1{% % \@makechapterhead from report.cls \vspace*{-10\p@}% % Changed {\parindent \z@ \raggedright \normalfont % \@makechapterhead from report.cls \ifnum \c@secnumdepth >\m@ne % \@makechapterhead from report.cls \huge\bfseries \@chapapp\space \thechapter % \@makechapterhead from report.cls \par\nobreak % \@makechapterhead from report.cls \vskip 20\p@ % \@makechapterhead from report.cls \fi % \@makechapterhead from report.cls \interlinepenalty\@M % \@makechapterhead from report.cls \Huge \bfseries #1\par\nobreak % \@makechapterhead from report.cls \vskip 40\p@ % \@makechapterhead from report.cls }} % \@makechapterhead from report.cls % % This is for chapters in the preamble \def\@schapter#1{\if@twocolumn % \@schapter from report.cls \@topnewpage[\@makeschapterhead{#1}]% % \@schapter from report.cls \else % \@schapter from report.cls \@makeschapterhead{#1}% % \@schapter from report.cls \@afterheading % \@schapter from report.cls \fi} % \@schapter from report.cls \def\@makeschapterhead#1{% % \@schapter from report.cls \vspace*{-10\p@}% % Changed {\parindent \z@ \raggedright % \@schapter from report.cls \normalfont % \@schapter from report.cls \interlinepenalty\@M % \@schapter from report.cls \Huge \bfseries #1\par\nobreak % \@schapter from report.cls \vskip 40\p@ % \@schapter from report.cls }} }{ % new 3 % We want each section starting on a new page The report class already does this % % new 4 % Center the section headings % \renewcommand\section{\clearpage% % new 3 \@startsection {section}{1}{\z@}% % \section from article.cls {-3.5ex \@plus -1ex \@minus -.2ex}% % \section from article.cls {2.3ex \@plus.2ex}% % \section from article.cls %{\normalfont\Large\bfseries}% % deleted {\normalfont\Large\bfseries\centering}% % new 4 } % \section from article.cls % This is basicaly the same as above, but without the clearpage. We want that % for \listof... in article.cls to conserve some paper. \newcommand\SANDTOCsection{% % new 3 \@startsection {section}{1}{\z@}% % \section from article.cls {-3.5ex \@plus -1ex \@minus -.2ex}% % \section from article.cls {2.3ex \@plus.2ex}% % \section from article.cls %{\normalfont\Large\bfseries}% % deleted {\normalfont\Large\bfseries\centering}% % new 4 } % \section from article.cls % Redefine \listoffigures and \listoftables to use \SANDTOCsection instead of \section % \renewcommand\listoffigures{% % \listoffigures from article.cls \SANDTOCsection*{\listfigurename}% % Change \section to \SANDTOCsection \@mkboth{\MakeUppercase\listfigurename}% % \listoffigures from article.cls {\MakeUppercase\listfigurename}% % \listoffigures from article.cls \@starttoc{lof}% % \listoffigures from article.cls } % \listoffigures from article.cls % \renewcommand\listoftables{% % \listoftables from article.cls \SANDTOCsection*{\listtablename}% % Change \section to \SANDTOCsection \@mkboth{\MakeUppercase\listtablename}% % \listoftables from article.cls {\MakeUppercase\listtablename}% % \listoftables from article.cls \@starttoc{lot}% % \listoftables from article.cls } % \listoftables from article.cls } % ------------------------------------------------------------------------ % % Distribution page at the end % We have to create our own description environment, so we don't % disturb the original one. \newlength{\SANDdistwidth} % Max width of distribution lines \setlength{\SANDdistwidth}{0.8\textwidth} \newlength{\SANDMSdistwidth} % Width of field for MS number \setlength{\SANDMSdistwidth}{9ex} \newcommand{\SANDdescriptionlabel}[1]{ \makebox[3em][r]{#1} } \newenvironment{SANDdescription}{ \list{} {\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\SANDdescriptionlabel} }{ \endlist } \newenvironment{SANDdistribution}[1][nothing]{ \setboolean{SANDdistributionProvided}{true} \newboolean{distCRADA} \newboolean{distPatent} \newboolean{distLDRD} \newboolean{distClassified} \newcommand{\SANDdistCRADA}{ \setboolean{distCRADA}{true} } \newcommand{\SANDdistPatent}{ \setboolean{distPatent}{true} } \newcommand{\SANDdistLDRD}{ \setboolean{distLDRD}{true} } \newcommand{\SANDdistClassified}{ \setboolean{distClassified}{true} \SANDdistInternalM{2}{M2497}{Central Technical Files}{8944} } % Option NM given \ifthenelse{\equal{#1}{NM}} { \typeout{Option "NM": Using the SNL NM default distribution list.} \setboolean{distNM}{true} }{ } % Option CA given \ifthenelse{\equal{#1}{CA}} { \typeout{Option "CA": Using the SNL CA default distribution list.} \setboolean{distCA}{true} }{ } \clearpage {\Large DISTRIBUTION:} \normalsize \raggedbottom \begin{SANDdescription} }{ \ifthenelse{\boolean{distCA}} { % Insert the standard CA distribution \ifthenelse{\boolean{distClassified}} { \SANDdistInternal{2}{9018}{Central Technical Files}{8944 (1 electronic and 1 hardcopy)} }{} \SANDdistInternal{1}{0899}{Technical Library}{8944 (electronic)} % If this report has a Patent Caution or Patent Interest \ifthenelse{\boolean{distPatent}} { \SANDdistInternal{1}{0161}{Legal Intellectual Property}{11500} }{} % If this report is for CRADA work \ifthenelse{\boolean{distCRADA}} { \SANDdistInternal{1}{0115}{OFA/NFE Agreements}{10112} }{} % If this report is for LDRD work \ifthenelse{\boolean{distLDRD}} { \SANDdistInternal{1}{0123}{D. Chavez, LDRD Office}{1011} }{} }{} \ifthenelse{\boolean{distNM}} { % Insert the standard NM distribution \ifthenelse{\boolean{distClassified}} { \SANDdistInternalM{2}{2497}{Central Technical Files}{8944 (1 electronic and 1 hardcopy)} }{} \SANDdistInternal{1}{0899}{Technical Library}{9536 (electronic)} % If this report has a Patent Caution or Patent Interest \ifthenelse{\boolean{distPatent}} { \SANDdistInternal{1}{0161}{Legal Intellectual Property}{11500} }{} % If this report is for CRADA work \ifthenelse{\boolean{distCRADA}} { \SANDdistInternal{1}{0115}{OFA/NFE Agreements}{10112} }{} % If this report is for LDRD work \ifthenelse{\boolean{distLDRD}} { \SANDdistInternal{1}{0123}{D. Chavez, LDRD Office}{1011} }{} }{} \end{SANDdescription} } % % The distribution list for a reprint % No housekeeping copies are needed. \newenvironment{SANDreDistribution}{ \ifthenelse{\boolean{SANDrePrintDateProvided}} { \setboolean{SANDdistributionProvided}{true} \stepcounter{SANDreDistCnt} \ifthenelse{\value{SANDreDistCnt} = 2} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxSecond}} }{ \ifthenelse{\value{SANDreDistCnt} = 3} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxThird}} }{ \ifthenelse{\value{SANDreDistCnt} = 4} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxFourth}} }{ \ifthenelse{\value{SANDreDistCnt} = 5} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxFifth}} }{ \ClassError{SANDreport.cls}{\@backslashchar SANDreDistribution used more than four times!}{Do you really have more than five printings? If so, you need to amend SANDreport.cls} } } } } \usebox{\SANDrePrintDistBox} \normalsize \raggedbottom \begin{SANDdescription} }{ } }{ \ifthenelse{\boolean{SANDrePrintDateProvided}} { \end{SANDdescription} }{ } } \newcommand{\SANDdistInternal}[4]{ \ifthenelse{\boolean{SANDdistributionProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDdistribution not (yet) provided}{\@backslashchar SANDdistribution must be used before any \@backslashchar SANDdistInternal} } \item[#1] \parbox[t]{\SANDdistwidth}{\makebox[\SANDMSdistwidth][l]{MS \hfill #2}% \hspace{2em} \raggedright #3, #4} \vspace{-1.5ex} } % Use a mail channel \newcommand{\SANDdistInternalM}[4]{ \ifthenelse{\boolean{SANDdistributionProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDdistribution not (yet) provided}{\@backslashchar SANDdistribution must be used before any \@backslashchar SANDdistInternal} } \item[#1] \parbox[t]{\SANDdistwidth}{\makebox[\SANDMSdistwidth][l]{#2}\hspace{2em} \raggedright #3, #4} \vspace{-1.5ex} } \newcommand{\SANDdistExternal}[2]{ \ifthenelse{\boolean{SANDdistributionProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDdistribution not (yet) provided}{\@backslashchar SANDdistribution must be used before any \@backslashchar SANDdistExternal} } \item[#1] \parbox[t]{\SANDdistwidth}{#2} \vspace{-1.5ex} } % ------------------------------------------------------------------------ % % And now some optional declarations % \newcommand{\SANDsupersed}[2]{ \newsavebox{\SANDsupersedtempbox} \newcommand{\SANDsupersedVar}{ Supersedes #1 \\ Dated #2 } \sbox{\SANDsupersedtempbox}{ \begin{tabular}{c} Supersedes #1 \\ dated #2 \end{tabular} } \setboolean{SANDsupersedProvided}{true} } % Distribution category is no longer needed \newcommand{\SANDdistcategory}[1]{ \ClassWarning{SANDreport.cls}{Distribution category is no longer needed!} } % ****************************************************************************** % The commands to specify the report markings. % % Printed on the cover and title page below the SANDIA REPORT number \newcommand{\SANDreleaseTypeVar}{Unlimited Release} % default % Printed on the cover page \newcommand{\MarkCoverVar}{Approved for public release; further dissemination unlimited.} % default % Printed on the title page \newsavebox{\MarkTitletempbox} \sbox{\MarkTitletempbox}{} % default % ---------------------------- % Printed on top of cover page \newcommand{\MarkTopCoverVar}{} % default % Printed on bottom of cover page \newcommand{\MarkBotCoverVar}{} % default % Printed on top of back cover page \newcommand{\MarkTopBackVar}{} % default % Printed on bottom of back cover page \newcommand{\MarkBotBackVar}{} % default % Printed on top of title page \newcommand{\MarkTopTitleVar}{} % default % Printed on bottom of title page \newcommand{\MarkBotTitleVar}{} % default % Printed on bottom of all body pages \newcommand{\MarkBotBodyVar}{} % default % Printed on top of all body pages \newcommand{\MarkTopBodyVar}{} % default % % The user marking commands % \newcommand{\SANDreleaseType}[1]{ \renewcommand{\SANDreleaseTypeVar}{#1} } \newcommand{\SANDmarkBottomCover}[1]{ \renewcommand{\MarkBotCoverVar}{#1} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} } \newcommand{\SANDmarkTopBottom}[1]{ \renewcommand{\MarkBotBodyVar}{#1} \renewcommand{\MarkTopBodyVar}{#1} \renewcommand{\MarkBotBackVar}{#1} \renewcommand{\MarkTopBackVar}{#1} \renewcommand{\MarkBotTitleVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \renewcommand{\MarkTopCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkBody}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } \newcommand{\SANDmarkTop}[1]{ \renewcommand{\MarkTopBodyVar}{#1} \renewcommand{\MarkTopBackVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkTopCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkBody}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} } \newcommand{\SANDmarkBottom}[1]{ \renewcommand{\MarkBotBodyVar}{#1} \renewcommand{\MarkBotBackVar}{#1} \renewcommand{\MarkBotTitleVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkBody}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } \newcommand{\SANDmarkTopBottomCoverBackTitle}[1]{ \renewcommand{\MarkTopCoverVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \renewcommand{\MarkTopBackVar}{#1} \renewcommand{\MarkBotBackVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkBotTitleVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } \newcommand{\SANDmarkTopBottomCoverTitle}[1]{ \renewcommand{\MarkBotTitleVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \renewcommand{\MarkTopCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } % % Internal command used to activate markings depending on what part of % the document we are currently processing; e.g. \SANDmarks{body} % \newcommand{\SANDmarks}[1]{ \ifthenelse{\boolean{SANDmarkingsRequired}} { \fancyfoot{} % Clear all foot markings \fancyhead{} % Clear all head markings % Fancyhdr needs a little room \setlength{\headheight}{\baselineskip} \pagestyle{fancy} \thispagestyle{fancy} \ifthenelse{\equal{#1}{cover}} { % We're on the cover page \ifthenelse{\boolean{MarkCover}} { \chead{\MarkTopCoverVar} \cfoot{\MarkBotCoverVar} }{ \chead{} \cfoot{} } }{ } \ifthenelse{\equal{#1}{back}} { % We're on the back cover page \ifthenelse{\boolean{MarkBack}} { \chead{\MarkTopBackVar} \cfoot{\MarkBotBackVar} }{ \chead{} \cfoot{} } % We do want a page number on the back cover \ifthenelse{\boolean{MarkBottom}} { \fancyfoot[LE,RO]{\thepage} }{% else \fancyfoot[CE,CO]{\thepage} } }{ } \ifthenelse{\equal{#1}{title}} { % We're on the title page \ifthenelse{\boolean{MarkTitle}} { \chead{\MarkTopTitleVar} \cfoot{\MarkBotTitleVar} }{% else \chead{} \cfoot{} } \ifthenelse{\boolean{MarkBottom}} { \fancyfoot[LE,RO]{\thepage} }{% else \fancyfoot[CE,CO]{\thepage} } }{ } \ifthenelse{\equal{#1}{body}} { \ifthenelse{\boolean{MarkBody}} { \chead{\MarkTopBodyVar} \cfoot{\MarkBotBodyVar} }{% else \chead{} \cfoot{} } % We're on a body page. If we're not going to mark the bottom, % or body pages at all, then we might as well put the page number % at the center \ifthenelse{\boolean{MarkBottom} \and \boolean{MarkBody}} { \fancyfoot[LE,RO]{\thepage} }{% else \fancyfoot[CE,CO]{\thepage} } }{ } }{ % % If not SANDmarkingsRequired % \pagestyle{plain}% The default when we have no markings \ifthenelse{\equal{#1}{cover}} { % We're on the cover page % No page number on cover \thispagestyle{empty} }{ } \ifthenelse{\equal{#1}{back}} { % We're on the back cover page % We do want a page number on the back cover \thispagestyle{plain} }{ } } } % end of \SANDmarks{} \newcommand{\SANDmarkCoverTitle}[2]{ \ClassError{SANDreport.cls}{\@backslashchar SANDmarkCoverTitle doesn't work yet; sorry.}{Don't know where to put the text on the title page.} \sbox{\MarkTitletempbox}{{\bf #1\\}{#2}} \renewcommand{\MarkCoverVar}{{{\CoverFont{b}{12}{12pt}#1}\\ {\CoverFont{m}{8}{10pt}}{#2}}} } \newcommand{\SANDmarkCover}[1]{ \renewcommand{\MarkCoverVar}{{\CoverFont{m}{8}{10pt}}{#1}} } % ****************************************************************************** % Table of Contents % The names we use to label the table of contents, and lists of figures, % and tables. % \ifthenelse{\boolean{reportSAND}} { \renewcommand\bibname{References} \setcounter{tocdepth}{3} }{ \renewcommand{\contentsname}{\raggedright \normalfont\Large\bfseries Contents} \renewcommand{\listfigurename}{\raggedright \bf Figures} \renewcommand\listtablename{\raggedright \bf Tables} \renewcommand\refname{\raggedright \bf \centering References} \setcounter{tocdepth}{2} } % % Don't enter figures, tables, and subsections of an appendix in % the main table of contents, if "strict" is used. % Code from James Gruetzner and Todd Pitts. Avoids the ifthen package in % \addcontentsline which interferes with the subfigure package. \renewcommand{\addcontentsline}[3]{ \ifinAppendix% % We are in the Appendix \ifthenelse{\equal{#1}{toc}} { % And we are attempting to add something to the TOC \ifreportSAND \ifthenelse{\equal{#2}{chapter}} { % It is a chapter, so we're OK \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} }{% else % It's a section; we'll accept that too \ifthenelse{\equal{#2}{section}} { % It is a section, so we're OK \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} }{% else % It is not a section; skip it \relax } } \else \ifthenelse{\equal{#2}{section}} { % It is a section, so we're OK \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} }{% else % It is not a section; skip it \relax } \fi }{ % We're not in TOC. Probably a figure or table; skip it \relax } \else% \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} \fi } % ------------------------------------------------------------------------ % % Modify the look of the table of contents if we are using the article style % ------------------------------------------------------------------------ % % We want the dots closer together, and the same as in \dotfill % \renewcommand{\@dotsep}{2.27} \ifthenelse{\boolean{reportSAND}} { }{ % For article.sty % We don't want blank lines between entries and no boldface. % This is the l@section definition from article.sty. We get rid of % \addvspace{1.0em... and \bfseries (if relax is not set in the main doc) \renewcommand*\l@section[2]{ \setlength\parskip{0ex} \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \ifthenelse{\boolean{relaxedSAND}} { \addvspace{1.0em \@plus\p@} }{ } \setlength\@tempdima{1.5em} \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \ifthenelse{\boolean{relaxedSAND}} { \bfseries }{ } \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\dotfill \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \endgroup \fi} \renewcommand*\l@figure{\setlength\parskip{0ex} \@dottedtocline{1}{1.5em}{2.3em} } \let\l@table\l@figure } % ------------------------------------------------------------------------ % % If there is an appendix, set it apart in the table of contents % \renewcommand\appendix{ \setboolean{inAppendix}{true} \par \setcounter{section}{0} \setcounter{subsection}{0} \setcounter{subsubsection}{0} \setcounter{figure}{0} \setcounter{table}{0} \ifthenelse{\boolean{reportSAND}} { \setcounter{chapter}{0} \gdef\@chapapp{\appendixname} \gdef\thechapter{\@Alph\c@chapter} % Insert the Appendix name in the TOC \addtocontents{toc}{\protect\subsection*{\appendixname}} }{ \renewcommand{\thefigure}{\thesection.\arabic{figure}} \renewcommand{\thetable}{\thesection.\arabic{table}} \gdef\thesection{\@Alph\c@section} % Insert the Appendix name in the TOC \addtocontents{toc}{\protect\subsection*{\appendixname}} } \ifthenelse{\boolean{strictSAND}} { \setcounter{secnumdepth}{2} }{ \setcounter{secnumdepth}{3} } } % ****************************************************************************** % Sections & Chapters % We want unnumbered section/chapter headings % \ifthenelse{\boolean{reportSAND}} { \ifthenelse{\boolean{strictSAND}} { % The samples in SAND98-0730 don't number sections. \setcounter{secnumdepth}{0} }{ % The report SAND98-0730 itself does, though ;-) \setcounter{secnumdepth}{2} } }{% else \ifthenelse{\boolean{strictSAND}} { % The samples in SAND98-0730 don't number sections. \setcounter{secnumdepth}{0} }{ % The report SAND98-0730 itself does, though ;-) \setcounter{secnumdepth}{2} } } % ****************************************************************************** % Captions % We want the label bold face, and the whole captionwidth about 4", % and the text small % \newlength{\SANDcaptionwidth} \setlength{\SANDcaptionwidth}{4in} \newsavebox{\SANDtempbox} \renewcommand{\@makecaption}[2]{ \par\vspace{\abovecaptionskip} \sbox{\SANDtempbox}{{\bf #1. }\ #2} \ifthenelse{\lengthtest{\wd\SANDtempbox < \SANDcaptionwidth}} { \begin{center} {\bf #1. }\small #2 \end{center} }{ \begin{center} \parbox[t]{\SANDcaptionwidth}{{\bf #1. }\small #2} \end{center} } } % ****************************************************************************** % We have to import a lot of code from report.cls and article.cls so we can % change a few things. We do report.cls first. % \ifthenelse{\boolean{reportSAND}} { % We need to redo \maketitle for the report class. % Omit the date and add the SAND number and so on. % We also need to redo the titlepage environment to not % issue a newpage command, so the abstract can go there % if it is short enough. (SAND reports are supposed to have % an abstract!) % % Renew the report.cls \maketitle macro % \if@titlepage % \maketitle from report.cls \renewcommand\maketitle{% % \maketitle from report.cls \doCover{} \begin{titlepage}% % \maketitle from report.cls \SANDmarks{title} { \begin{center} % use framebox instead of makebox for debugging \makebox[\topleftwidth][t]{ \begin{minipage}[c][\topheight][t]{\topleftwidth} % There is nothing at top left \end{minipage} } \makebox[\topmiddlewidth][c]{ \begin{minipage}[c][\topheight][t]{\topmiddlewidth} \begin{center} \SANDnumVar\\ \SANDreleaseTypeVar\\ Printed \SANDprintDateVar\\ \ifthenelse{\boolean{SANDrePrintDateProvided}} { Reprinted \SANDrePrintDateVar\\ }{ } \ifthenelse{\boolean{SANDsupersedProvided}} { \bigskip \usebox{\SANDsupersedtempbox}\\ }{ } \end{center} \end{minipage} } % Added topright box to balance topleft, and center topmiddle - MJK, 1/12/07 \makebox[\toprightwidth][c]{ \begin{minipage}[c][\topheight][t]{\toprightwidth} % There is nothing at top right \end{minipage} } \end{center} } \let\footnotesize\small % \maketitle from report.cls \let\footnoterule\relax % \maketitle from report.cls \let \footnote \thanks % \maketitle from report.cls % \null\vfil % deleted % \vskip 60\p@ % deleted \begin{center}% % \maketitle from report.cls {\LARGE \@title \par}% % \maketitle from report.cls \vskip 3em% % \maketitle from report.cls {\large % \maketitle from report.cls \lineskip .75em% % \maketitle from report.cls \begin{tabular}[t]{c}% % \maketitle from report.cls \@author % \maketitle from report.cls \end{tabular}\par}% % \maketitle from report.cls \vskip 1.5em% % \maketitle from report.cls % {\large \@date \par}% % deleted \end{center}\par % \maketitle from report.cls \@thanks % \maketitle from report.cls \vfil\null % \maketitle from report.cls \end{titlepage}% % \maketitle from report.cls \setcounter{footnote}{0}% % \maketitle from report.cls \global\let\thanks\relax % \maketitle from report.cls \global\let\maketitle\relax % \maketitle from report.cls \global\let\@thanks\@empty % \maketitle from report.cls \global\let\@author\@empty % \maketitle from report.cls \global\let\@date\@empty % \maketitle from report.cls \global\let\@title\@empty % \maketitle from report.cls \global\let\title\relax % \maketitle from report.cls \global\let\author\relax % \maketitle from report.cls \global\let\date\relax % \maketitle from report.cls \global\let\and\relax % \maketitle from report.cls } \else % {---------------------- I doubt we ever get here ------------------------} \ClassError{SANDreport.cls}{\@backslashchar maketitle definition outside a title page.}{The SANDreport class cannot handle this case.} \fi % % \titlepage in the report class resets the page % number, which is not correct for SANDIA Reports. % It also sets the page style to empty. \if@compatibility % titlepage from report.cls \renewenvironment{titlepage} % titlepage from report.cls {% % titlepage from report.cls \if@twocolumn % titlepage from report.cls \@restonecoltrue\onecolumn % titlepage from report.cls \else % titlepage from report.cls \@restonecolfalse\newpage % titlepage from report.cls \fi % titlepage from report.cls %\thispagestyle{empty}% % deleted %\setcounter{page}\z@ % deleted }% % titlepage from report.cls %{\if@restonecol\twocolumn \else \newpage \fi % deleted, we want abstract on this page {\if@restonecol\twocolumn \fi % new version } % titlepage from report.cls \else % titlepage from report.cls \renewenvironment{titlepage} % titlepage from report.cls {% % titlepage from report.cls \if@twocolumn % titlepage from report.cls \@restonecoltrue\onecolumn % titlepage from report.cls \else % titlepage from report.cls \@restonecolfalse\newpage % titlepage from report.cls \fi % titlepage from report.cls %\thispagestyle{empty}% % deleted %\setcounter{page}\@ne % deleted }% % titlepage from report.cls %{\if@restonecol\twocolumn \else \newpage \fi % deleted, we want abstract on this page {\if@restonecol\twocolumn \fi % new version \if@twoside\else % titlepage from report.cls %\setcounter{page}\@ne % deleted \fi % titlepage from report.cls } % titlepage from report.cls \fi % titlepage from report.cls \if@titlepage % abstract from report.cls \renewenvironment{abstract}{% % abstract from report.cls % \titlepage % deleted \null\vfil % abstract from report.cls \@beginparpenalty\@lowpenalty % abstract from report.cls \begin{center}% % abstract from report.cls \bfseries \abstractname % abstract from report.cls \@endparpenalty\@M % abstract from report.cls \end{center}% % abstract from report.cls \ifthenelse{\boolean{strictSAND}} { % New \setlength{\parskip}{0.75ex} % New Don't indent the following paragraph(s) \setlength{\parindent}{0pt} % New Don't indent the following paragraph(s) \noindent\hspace{-0.50em} % New Don't indent the first paragraph }{}}% % New % {\par\vfil\null\endtitlepage} % deleted {\par\vfil\null} % new version \else % abstract from report.cls % {---------------------- We should never get here ------------------------} \ClassError{SANDreport.cls}{Abstract definition outside a title page.}{The SANDreport class cannot handle this case.} \fi % abstract from report.cls }{ % % Now for the changes to article.cls functions % % % In \@maketitle, we omit the \@date and insert the SAND number and so on % \renewcommand{\@maketitle}{ \doCover{} \newpage % \@maketitle from article.cls { % new \begin{center} % new % use framebox instead of makebox for debugging % new \makebox[\topleftwidth][t]{ % new \begin{minipage}[c][\topheight][t]{\topleftwidth} % new % There is nothing at top left % new \end{minipage} % new } % new \makebox[\topmiddlewidth][c]{ % new \begin{minipage}[c][\topheight][t]{\topmiddlewidth} % new \begin{center} % new \SANDnumVar\\ % new \SANDreleaseTypeVar\\ % new Printed \SANDprintDateVar\\ % new \ifthenelse{\boolean{SANDrePrintDateProvided}} { % new Reprinted \SANDrePrintDateVar\\ % new }{ % new } % new \ifthenelse{\boolean{SANDsupersedProvided}} { % new \bigskip % new \usebox{\SANDsupersedtempbox}\\ % new }{ % new } % new \end{center} % new \end{minipage} % new } % new % Add topright box to balance topleft to center topmiddle - MJK, 1/12/07 \makebox[\toprightwidth][c]{ % new \begin{minipage}[c][\topheight][t]{\toprightwidth} % new % There is nothing at top right % new \end{minipage} % new } % new \end{center} % new } % new \begin{center} % \@maketitle from article.cls \let \footnote \thanks % \@maketitle from article.cls {\LARGE \bf \@title\par} % \@maketitle from article.cls \vskip 1.5em % \@maketitle from article.cls {\large % \@maketitle from article.cls \lineskip .5em% % \@maketitle from article.cls \begin{tabular}[t]{c} % \@maketitle from article.cls \@author % \@maketitle from article.cls \end{tabular}\par % \@maketitle from article.cls } % \@maketitle from article.cls \end{center} % \@maketitle from article.cls \par % \@maketitle from article.cls \vskip 1.5em % \@maketitle from article.cls } % % For fancy headers, we have to redefine \maketitle. All we are doing, % is to activate the headers again, and then redefine \newpage so it % happens for every body page. % \renewcommand{\maketitle}{\par \begingroup % \maketitle from article.cls \renewcommand\thefootnote{\@fnsymbol\c@footnote}% % \maketitle from article.cls \def\@makefnmark{ % \maketitle from article.cls \rlap{\@textsuperscript{\normalfont\@thefnmark}}}% % \maketitle from article.cls \long\def\@makefntext##1{\parindent 1em\noindent % \maketitle from article.cls \hb@xt@1.8em{% % \maketitle from article.cls \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% % \maketitle from article.cls \if@twocolumn % \maketitle from article.cls \ifnum \col@number=\@ne % \maketitle from article.cls \@maketitle % \maketitle from article.cls \else % \maketitle from article.cls \twocolumn[\@maketitle]% % \maketitle from article.cls \fi % \maketitle from article.cls \else % \maketitle from article.cls \newpage % \maketitle from article.cls % Prevents figures from going at top of page. % \maketitle from article.cls \global\@topnum\z@ % \maketitle from article.cls \@maketitle % \maketitle from article.cls \fi % \maketitle from article.cls \SANDmarks{title} % new \@thanks % \maketitle from article.cls \endgroup % \maketitle from article.cls \setcounter{footnote}{0}% % \maketitle from article.cls \global\let\thanks\relax % \maketitle from article.cls \global\let\maketitle\relax % \maketitle from article.cls \global\let\@maketitle\relax % \maketitle from article.cls \global\let\@thanks\@empty % \maketitle from article.cls \global\let\@author\@empty % \maketitle from article.cls \global\let\@date\@empty % \maketitle from article.cls \global\let\@title\@empty % \maketitle from article.cls \global\let\title\relax % \maketitle from article.cls \global\let\author\relax % \maketitle from article.cls \global\let\date\relax % \maketitle from article.cls \global\let\and\relax % \maketitle from article.cls % % Now we renew \newpage so that from here on the markings % of the body are used. % \renewcommand{\newpage}{% % \newpage from latex.ltx \if@noskipsec % \newpage from latex.ltx \ifx \@nodocument\relax % \newpage from latex.ltx \leavevmode % \newpage from latex.ltx \global \@noskipsecfalse % \newpage from latex.ltx \fi % \newpage from latex.ltx \fi % \newpage from latex.ltx \if@inlabel % \newpage from latex.ltx \leavevmode % \newpage from latex.ltx \global \@inlabelfalse % \newpage from latex.ltx \fi % \newpage from latex.ltx \if@nobreak \@nobreakfalse \everypar{}\fi % \newpage from latex.ltx \par % \newpage from latex.ltx \vfil % \newpage from latex.ltx \penalty -\@M % \newpage from latex.ltx \SANDmarks{body} % new } % \newpage from latex.ltx } % \maketitle from article.sty \if@titlepage % \abstract from article.cls \renewenvironment{abstract}{% % \abstract from article.cls \titlepage % \abstract from article.cls \null\vfil % \abstract from article.cls \@beginparpenalty\@lowpenalty % \abstract from article.cls \begin{center}% % \abstract from article.cls \bfseries \abstractname % \abstract from article.cls \@endparpenalty\@M % \abstract from article.cls \end{center}}% % \abstract from article.cls % In strict mode we don't want paragraph % New % indentation in the abstract % New \ifthenelse{\boolean{strictSAND}} { % New \setlength{\parskip}{0.75ex} % New Don't indent the following paragraph(s) \setlength{\parindent}{0pt} % New Don't indent the following paragraph(s) \noindent\hspace{-0.7em} % New Don't indent the first paragraph }{} % New {\par\vfil\null\endtitlepage} % \abstract from article.cls \else % \abstract from article.cls \renewenvironment{abstract}{% % \abstract from article.cls \if@twocolumn % \abstract from article.cls \section*{\abstractname}% % \abstract from article.cls \else % \abstract from article.cls \small % \abstract from article.cls \begin{center}% % \abstract from article.cls {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% ...from article.cls \end{center}% % \abstract from article.cls \quotation % \abstract from article.cls \fi % \abstract from article.cls % In strict mode we don't want paragraph % New % indentation in the abstract % New \ifthenelse{\boolean{strictSAND}} { % New \setlength{\parskip}{0.75ex} % New Don't indent the following paragraph(s) \setlength{\parindent}{0pt} % New Don't indent the following paragraph(s) \noindent\hspace{-0.7em} % New Don't indent the first paragraph }{} % New } % \abstract from article.cls {\if@twocolumn\else\endquotation\fi} % \abstract from article.cls \fi } % ****************************************************************************** % Do some checking at the end of the document % \AtEndDocument{ % Do some more usage checking \ifthenelse{\boolean{SANDmainProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDmain not provided}{Add \@backslashchar SANDmain before your introduction (first) section of your document} } % % Put the Sandia Logo on the back page % \cleardoublepage % We're on the inside end page now \mbox{} % Some invisible text \vfill \hfill {\CoverFont{m}{6}{6pt} \SANDreportVersionOnly} \setboolean{SANDmarkingsRequired}{false} \thispagestyle{empty} \pagestyle{empty} \newpage % Now we're on the outside of the end page \vspace*{\fill} % Move the logo to the bottom of the page \thispagestyle{empty} \begin{center} \includegraphics{snllineblk} \end{center} } % End of AtEndDocument{} pyutilib-6.0.0/doc/plugin/coopr.bib000066400000000000000000000271001367314503500172300ustar00rootroot00000000000000 @book{HeiCou01, editor="G. Heineman and W. Councill", title="Component-Based Software Engineering, Putting the Pieces Together", publisher="Addison-Wesley", year=2001 } @article{OS, author="Robert Fourer and Jun Ma and Kipp Martin", title="Optimization Services: A framework for distributed optimization", journal="Mathematical Programming", note="(submitted)", year=2008 } @techreport{DAKOTA, author = "Michael Scott Eldred and Shane L. Brown and Danny M. Dunlavy and David M. Gay and Laura P. Swiler and Anthony Andrew Giunta and William E. Hart and Jean-Paul Watson and John P. Eddy and Josh D. Griffin and Patty D. Hough and Tammy G. Kolda and Monica L. Martinez-Canales and Pamela J. Williams", title="{DAKOTA}, a multilevel parallel object-oriented framework for design optimization, parameter estimation, uncertainty quantification, and sensitivity analysis: Version 4.0 users manual", institution="Sandia National Laboratories", year=2006, number="SAND2006-6337", funding={LDRD,LMSV} } @inbook{Hul02, author="Hultberg, Tim", title="Formulation of Linear Optimization Problems in C++", editor="Nielsen, Soeren S.", booktitle="Programming Languages and Systems in Computational Economics and Finance", publisher="Kluwer Academic Press", year=2002 } @misc{PythonVSJava, key="PythonVSJava", title="Python \& Java: A side-by-side comparison", howpublished="\url{http://www.ferg.org/projects/python_java_side-by-side.html}", year=2008 } @misc{flopcpp, key="FLOPC++", title="{FLOPC++} Home Page", howpublished="\url{https://projects.coin-or.org/FlopC++}", year=2008 } @misc{Psyco, key="Psyco", title="Psyco", howpublished="\url{http://psyco.sourceforge.net/}", year=2008 } @book{Kal04, author="Kallrath, Josef", title="Modeling Languages in Mathematical Optimization", publisher="Kluwer Academic Publishers", year=2004 } @book{Aks98, author="Aksen, Deniz", title="Teach yourself {GAMS}", publisher="Bogzici University Press", address="Istanbul, Turkey", year=1998 } @misc{GAMS, key="GAMS", title="{GAMS} Home Page", howpublished="\url{http://www.gams.com}", year=2008 } @misc{OPL, key="OPL", title="{OPL} Home Page", howpublished="\url{http://www.ilog.com/products/oplstudio}", year=2008 } @misc{LINDO, key="LINDO", title="{LINDO} Home Page", howpublished="\url{http://www.lindo.com}", year=2008 } @misc{cplex, key="cplex", title="{ILOG CPLEX 10.1 Solver Engine}", howpublished="\url{www.ilog.com/products/cplex}", year=2009 } @misc{AMPL, key="AMPL", title="{AMPL} Home Page", howpublished="\url{http://www.ampl.com/}", year=2008 } @book{FouGay03, author="Fourer, R. and Gay, D. M. and Kernighan, B. W.", title="{AMPL}: A Modeling Language for Mathematical Programming, 2nd Ed.", address="Pacific Grove, CA", publisher="Brooks/Cole--Thomson Learning", year=2003 } @misc{OptimJ, key="OptimJ", title="Ateji Home Page", howpublished="\url{http://www.ateji.com}", year=2008 } @misc{AIMMS, key="AIMMS", title="{AIMMS} Home Page", howpublished="\url{http://www.aimms.com}", year=2008 } @misc{CVXOPT, key="CVXOPT", title="{CVXOPT} Home Page", howpublished="\url{http://abel.ee.ucla.edu/cvxopt}", year=2008 } @misc{NLPy, key="NLPy", title="{NLPy} Home Page", howpublished="\url{http://nlpy.sourceforge.net/}", year=2008 } @misc{GLPK, key="GLPK", title={GLPK: GNU Linear Programming Toolkit}, howpublished="\url{http://www.gnu.org/software/glpk/}", year=2009 } @misc{Pyipopt, key="Pyipopt", title="{Pyipopt} Home Page", howpublished="\url{http://code.google.com/p/pyipopt/}", year=2008 } @misc{PuLP, key="PuLP", title="{PuLP}: A Python Linear Programming Modeler", howpublished="\url{http://130.216.209.237/engsci392/pulp/FrontPage}", year=2008 } @misc{Pyomo, key="Pyomo", title="{Pyomo}: Python Optimization Modeling Objects", howpublished="\url{https://software.sandia.gov/trac/pyomo}", year=2010 } @misc{OpenOpt, key="OpenOpt", title="{OpenOpt} Home Page", howpublished="\url{http://scipy.org/scipy/scikits/wiki/OpenOpt}", year=2008 } @Misc{SciPy, author = {Eric Jones and Travis Oliphant and Pearu Peterson and others}, title = {{SciPy}: Open source scientific tools for {Python}}, year = {2001--}, url = "http://www.scipy.org/" } @manual{SAGE, Key = {Sage}, Author = {William Stein}, Organization = {The Sage~Group}, Title = {{Sage}: {O}pen {S}ource {M}athematical {S}oftware ({V}ersion 2.10.2)}, note= {{\tt http://www.sagemath.org}}, Year = 2008} @inproceedings{BeaLom97, author="D.M. Beazley and P.S. Lomdahl", title="Building Flexible Large-Scale Scientific Computing Applications with Scripting Languages", booktitle="Proc. 8th SIAM Conference on Parallel Processing for Scientific Computing", year=1997 } @article{PaiMer04, author="Painter, Jay and Merritt, Ethan A.", title="{mmLib} {Python} toolkit for manipulating annotated structural models of biological macromolecules", journal="J. Applied Crystallography", year=2004, volume=37, pages="174-178" } @article{Oli07, author="Travis E. Oliphant", title="Python for Scientific Computing", journal="Computing in Science and Engineering", year=2007, pages="10-20", month="May/June" } @misc{TOMLAB, key="TOMLAB", title="{TOMLAB} Optimization Environment", howpublished="\url{http://www.tomopt.com/tomlab}", year=2008 } @misc{ACRO, key="ACRO", title="{ACRO} Optimization Framework", howpublished="\url{http://software.sandia.gov/acro}", year=2009 } @misc{PyUtilib, key="PyUtilib", title="{PyUtilib}: A Python Utility Library", howpublished="\url{http://software.sandia.gov/pyutilib}", year=2009 } @misc{APLEpy, key="APLEpy", title="{APLEpy}: An Open Source Algebraic Programming Language extension for Python", howpublished="\url{http://aplepy.sourceforge.net/}", year=2005 } @article{KurGra07, title="A Common Medium for Programming Operations-Research Models", author="Suleyman Karabuk and F. Hank Grant", journal="IEEE Software", year=2007, pages="39-47" } @article{Marsten, author= "Roy E. Marsten", title = "The Design of the XMP Programming Library", journal = "ACM Transactions on Mathematical Software", volume = 7, number = 4, year = 1981, pages = "481-497" } @article{Geoffrion, author = "Arthur M. Geoffrion", title = "An Introduction to Structured Modeling", journal = "Management Science", volume = 33, number = 5, year = 1987, pages = "547-588" } @inproceedings{Har09a, author = {{Hart}, W.~E.}, title = "{Python Optimization Modeling Objects (Pyomo)}", booktitle = {Operations Research and Cyber-Infrastructure}, year = 2009, editor = {{Chinneck}, J.~W. and {Kristjansson}, B. and {Saltzman}, M.~J. }, pages = {3-+}, doi = {10.1007/978-0-387-88843-9_1}, adsurl = {http://adsabs.harvard.edu/abs/2009orci.book....3H}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @misc{Forrester, title="Open Source Softwares Expanding Role in the Enterprise", year=2007, author="Forrester Consulting", howpublished="\url{http://www.unisys.com/eprise/main/admin/corporate/doc/Forrester_research-open_source_buying_behaviors.pdf}", } @article{tratt__dyamically_typed_languages, author = "Laurence Tratt", title = "Dynamically Typed Languages", journal = "Advances in Computers", editor = "Marvin V. Zelkowitz", volume = "77", year = "2009", month = Jul, pages = {149-184} } @article{621567, author = {Prechelt, Lutz}, title = {An Empirical Comparison of Seven Programming Languages}, journal = {Computer}, volume = {33}, number = {10}, year = {2000}, issn = {0018-9162}, pages = {23--29}, doi = {http://dx.doi.org/10.1109/2.876288}, publisher = {IEEE Computer Society Press}, address = {Los Alamitos, CA, USA}, } @article{DDJ, author="Gigi Sayfan", title="Building Your Own Plugin Framework", journal="Dr. Dobbs Journal", month="Nov", year=2007, howpublished="\url{http://www.ddj.com}" } @book{Szy98, author="C. Szyperski", title="Component Software: Beyond Object-Oriented Programming", publisher="ACM Press", location="New York", year=1998 } @article{NEOS, author="Elizabeth D. Dolan and Robert Fourer and Jean-Pierre Goux and Todd S. Munson and Jason Sarich", title="Kestrel: An Interface from Optimization Modeling Systems to the {NEOS} Server", journal="{INFORMS} Journal on Computing", volume=20, number=4, year=2008, pages="525-538" } %\bibitem{ampl} http://www.ampl.com. @book{spbook, author="Birge, J.R. and Louveaux, F.", title="Introduction to Stochastic Programming", publisher="Springer", year=1997 } @article{sizes, author="S. Jorjani and C.H. Scott and D.L. Woodruff", title="Selection of an Optimal Subset of Sizes", journal="International journal of production research", volume=37, pages="3697-3710", year=1999 } @article{lokwood, author="A. L{\o}kketangen and D.L. Woodruff", title="Progressive Hedging and Tabu Search Applied to Mixed-Integer (0,1) Multistage Stochastic Programming", journal="Journal of Heuristics", volume=2, pages="111-128", year=1996 } @article{RockafellarWets, author="R.T. Rockafellar and R. J-B. Wets", title="Scenarios and policy aggregation in optimization under uncertainty", journal="Mathematics of Operations Research", year=1991, pages="119--147" } @techreport{phinnovate, author="J-P Watson and D.L. Woodruff", title="Progressive Hedging Innovations for a Class of Stochastic Mixed-Integer Resource Allocation Problems", institution="Sandia National Laboratories", year=2007 } @article{tabuhash, author="D.L. Woodruff and E. Zemel", title="Hashing Vectors for Tabu Search", journal="Annals of Operations Research", volume=41, year=1993, pages="123-137" } @misc{Trac, key="Trac", title="Trac", howpublished="\url{http://trac.edgewall.org/}", year=2009 } @misc{Zope, key="Zope", title="Zope", howpublished="\url{http://www.zope.org/}", year=2009 } @misc{Envisage, key="Envisage", title="{EnvisageCore}", howpublished="\url{https://svn.enthought.com/enthought/wiki/EnvisageThree/core.html}", year=2009 } @misc{yapsy, key="yapsy", title="yapsy", howpublished="\url{http://yapsy.sourceforge.net/}", year=2009 } @misc{SprinklesPy, key="SprinklesPy", title="{SprinklesPy}", howpublished="\url{http://termie.pbworks.com/SprinklesPy}", year=2009 } @misc{TCA, key="TCA", title="Trac Component Architecture", howpublished="\url{http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture}", year=2009 } @techreport{Mez94, author="Meza, J. C.", title="{OPT++}: An object-oriented class library for nonlinear optimization", institution="Sandia National Laboratories", number="SAND94-8225", year=1994 } @techreport{CORBA_CMS, author={Object Management Group}, title="{CORBA} Component Model Specification, Version 4.0", institution="Object Management Group, Inc.", year=2006, howpublished="\url{http://www.omg.org}" } @inproceedings{Mar05, author={Rapha\"{e}l Marvie}, title="Picolo: A simple python framework for introducing component principles", booktitle="Euro Python Conference 2005", month="June", year=2005 } @article{cca, author="Benjamin A. Allan and {et al.}", title="A component architecture for high-performance scientific computing", journal="Intl J. of High Performance Computing Applications", volume=20, number=2, year=2006, pages="163-202" } pyutilib-6.0.0/doc/plugin/fancyhdr.sty000077500000000000000000000375051367314503500200040ustar00rootroot00000000000000% fancyhdr.sty version 2.1 % Fancy headers and footers for LaTeX. % Piet van Oostrum, % Dept of Computer and Information Sciences, University of Utrecht, % Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands % Telephone: +31 30 2532180. Email: piet@cs.uu.nl % ======================================================================== % LICENCE: % This file may be distributed under the terms of the LaTeX Project Public % License, as described in lppl.txt in the base LaTeX distribution. % Either version 1 or, at your option, any later version. % ======================================================================== % MODIFICATION HISTORY: % Sep 16, 1994 % version 1.4: Correction for use with \reversemargin % Sep 29, 1994: % version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands % Oct 4, 1994: % version 1.6: Reset single spacing in headers/footers for use with % setspace.sty or doublespace.sty % Oct 4, 1994: % version 1.7: changed \let\@mkboth\markboth to % \def\@mkboth{\protect\markboth} to make it more robust % Dec 5, 1994: % version 1.8: corrections for amsbook/amsart: define \@chapapp and (more % importantly) use the \chapter/sectionmark definitions from ps@headings if % they exist (which should be true for all standard classes). % May 31, 1995: % version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage... % construction in the doc did not work properly with the fancyplain style. % June 1, 1995: % version 1.91: The definition of \@mkboth wasn't restored on subsequent % \pagestyle{fancy}'s. % June 1, 1995: % version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain} % \pagestyle{fancy} would erroneously select the plain version. % June 1, 1995: % version 1.93: \fancypagestyle command added. % Dec 11, 1995: % version 1.94: suggested by Conrad Hughes % CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule % position (old hardcoded value of .3\normalbaselineskip is far too high % when used with very small footer fonts). % Jan 31, 1996: % version 1.95: call \@normalsize in the reset code if that is defined, % otherwise \normalsize. % this is to solve a problem with ucthesis.cls, as this doesn't % define \@currsize. Unfortunately for latex209 calling \normalsize doesn't % work as this is optimized to do very little, so there \@normalsize should % be called. Hopefully this code works for all versions of LaTeX known to % mankind. % April 25, 1996: % version 1.96: initialize \headwidth to a magic (negative) value to catch % most common cases that people change it before calling \pagestyle{fancy}. % Note it can't be initialized when reading in this file, because % \textwidth could be changed afterwards. This is quite probable. % We also switch to \MakeUppercase rather than \uppercase and introduce a % \nouppercase command for use in headers. and footers. % May 3, 1996: % version 1.97: Two changes: % 1. Undo the change in version 1.8 (using the pagestyle{headings} defaults % for the chapter and section marks. The current version of amsbook and % amsart classes don't seem to need them anymore. Moreover the standard % latex classes don't use \markboth if twoside isn't selected, and this is % confusing as \leftmark doesn't work as expected. % 2. include a call to \ps@empty in ps@@fancy. This is to solve a problem % in the amsbook and amsart classes, that make global changes to \topskip, % which are reset in \ps@empty. Hopefully this doesn't break other things. % May 7, 1996: % version 1.98: % Added % after the line \def\nouppercase % May 7, 1996: % version 1.99: This is the alpha version of fancyhdr 2.0 % Introduced the new commands \fancyhead, \fancyfoot, and \fancyhf. % Changed \headrulewidth, \footrulewidth, \footruleskip to % macros rather than length parameters, In this way they can be % conditionalized and they don't consume length registers. There is no need % to have them as length registers unless you want to do calculations with % them, which is unlikely. Note that this may make some uses of them % incompatible (i.e. if you have a file that uses \setlength or \xxxx=) % May 10, 1996: % version 1.99a: % Added a few more % signs % May 10, 1996: % version 1.99b: % Changed the syntax of \f@nfor to be resistent to catcode changes of := % Removed the [1] from the defs of \lhead etc. because the parameter is % consumed by the \@[xy]lhead etc. macros. % June 24, 1997: % version 1.99c: % corrected \nouppercase to also include the protected form of \MakeUppercase % \global added to manipulation of \headwidth. % \iffootnote command added. % Some comments added about \@fancyhead and \@fancyfoot. % Aug 24, 1998 % version 1.99d % Changed the default \ps@empty to \ps@@empty in order to allow % \fancypagestyle{empty} redefinition. % Oct 11, 2000 % version 2.0 % Added LPPL license clause. % % A check for \headheight is added. An errormessage is given (once) if the % header is too large. Empty headers don't generate the error even if % \headheight is very small or even 0pt. % Warning added for the use of 'E' option when twoside option is not used. % In this case the 'E' fields will never be used. % % Dec 9, 2002 % version 2.1 % The defaults for \footrulewidth, \plainheadrulewidth and % \plainfootrulewidth are changed from \z@skip to 0pt. In this way when % someone inadvertantly uses \setlength to change any of these, the value % of \z@skip will not be changed, rather an errormessage will be given. \def\ifancy@mpty#1{\def\temp@a{#1}\ifx\temp@a\@empty} \def\fancy@gdef#1#2{\ifancy@mpty{#2}\gdef#1{\leavevmode}\else\gdef#1{#2\strut}\fi} \def\fancy@ldef#1#2{\ifancy@mpty{#2}\def#1{\leavevmode}\else\def#1{#2\strut}\fi} \let\fancy@def\fancy@gdef \def\@fancyerrmsg#1{% \ifx\PackageError\undefined \errmessage{#1}\else \PackageError{Fancyhdr}{#1}{}\fi} \def\@fancywarning#1{% \ifx\PackageWarning\undefined \errmessage{#1}\else \PackageWarning{Fancyhdr}{#1}{}\fi} % Usage: \@forc \var{charstring}{command to be executed for each char} % This is similar to LaTeX's \@tfor, but expands the charstring. \def\@forc#1#2#3{\expandafter\f@rc\expandafter#1\expandafter{#2}{#3}} \def\f@rc#1#2#3{\def\temp@ty{#2}\ifx\@empty\temp@ty\else \f@@rc#1#2\f@@rc{#3}\fi} \def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f@rc#1{#3}{#4}} % Usage: \f@nfor\name:=list\do{body} % Like LaTeX's \@for but an empty list is treated as a list with an empty % element \newcommand{\f@nfor}[3]{\edef\@fortmp{#2}% \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}} % Usage: \def@ult \cs{defaults}{argument} % sets \cs to the characters from defaults appearing in argument % or defaults if it would be empty. All characters are lowercased. \newcommand\def@ult[3]{% \edef\temp@a{\lowercase{\edef\noexpand\temp@a{#3}}}\temp@a \def#1{}% \@forc\tmpf@ra{#2}% {\expandafter\if@in\tmpf@ra\temp@a{\edef#1{#1\tmpf@ra}}{}}% \ifx\@empty#1\def#1{#2}\fi} % % \if@in % \newcommand{\if@in}[4]{% \edef\temp@a{#2}\def\temp@b##1#1##2\temp@b{\def\temp@b{##1}}% \expandafter\temp@b#2#1\temp@b\ifx\temp@a\temp@b #4\else #3\fi} \newcommand{\fancyhead}{\@ifnextchar[{\f@ncyhf h}{\f@ncyhf h[]}} \newcommand{\fancyfoot}{\@ifnextchar[{\f@ncyhf f}{\f@ncyhf f[]}} \newcommand{\fancyhf}{\@ifnextchar[{\f@ncyhf {}}{\f@ncyhf {}[]}} % The header and footer fields are stored in command sequences with % names of the form: \f@ncy with for [eo], form [lcr] % and from [hf]. \def\f@ncyhf#1[#2]#3{% \def\temp@c{}% \@forc\tmpf@ra{#2}% {\expandafter\if@in\tmpf@ra{eolcrhf,EOLCRHF}% {}{\edef\temp@c{\temp@c\tmpf@ra}}}% \ifx\@empty\temp@c\else \@fancyerrmsg{Illegal char `\temp@c' in fancyhdr argument: [#2]}% \fi \f@nfor\temp@c{#2}% {\def@ult\f@@@eo{eo}\temp@c \if@twoside\else \if\f@@@eo e\@fancywarning {fancyhdr's E option without twoside option is useless}\fi\fi \def@ult\f@@@lcr{lcr}\temp@c \def@ult\f@@@hf{hf}{#1\temp@c}% \@forc\f@@eo\f@@@eo {\@forc\f@@lcr\f@@@lcr {\@forc\f@@hf\f@@@hf {\expandafter\fancy@def\csname f@ncy\f@@eo\f@@lcr\f@@hf\endcsname {#3}}}}}} % Fancyheadings version 1 commands. These are more or less deprecated, % but they continue to work. \newcommand{\lhead}{\@ifnextchar[{\@xlhead}{\@ylhead}} \def\@xlhead[#1]#2{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#2}} \def\@ylhead#1{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#1}} \newcommand{\chead}{\@ifnextchar[{\@xchead}{\@ychead}} \def\@xchead[#1]#2{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#2}} \def\@ychead#1{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#1}} \newcommand{\rhead}{\@ifnextchar[{\@xrhead}{\@yrhead}} \def\@xrhead[#1]#2{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#2}} \def\@yrhead#1{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#1}} \newcommand{\lfoot}{\@ifnextchar[{\@xlfoot}{\@ylfoot}} \def\@xlfoot[#1]#2{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#2}} \def\@ylfoot#1{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#1}} \newcommand{\cfoot}{\@ifnextchar[{\@xcfoot}{\@ycfoot}} \def\@xcfoot[#1]#2{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#2}} \def\@ycfoot#1{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#1}} \newcommand{\rfoot}{\@ifnextchar[{\@xrfoot}{\@yrfoot}} \def\@xrfoot[#1]#2{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#2}} \def\@yrfoot#1{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#1}} \newdimen\headwidth \newcommand{\headrulewidth}{0.4pt} \newcommand{\footrulewidth}{0pt} \newcommand{\footruleskip}{.3\normalbaselineskip} % Fancyplain stuff shouldn't be used anymore (rather % \fancypagestyle{plain} should be used), but it must be present for % compatibility reasons. \newcommand{\plainheadrulewidth}{0pt} \newcommand{\plainfootrulewidth}{0pt} \newif\if@fancyplain \@fancyplainfalse \def\fancyplain#1#2{\if@fancyplain#1\else#2\fi} \headwidth=-123456789sp %magic constant % Command to reset various things in the headers: % a.o. single spacing (taken from setspace.sty) % and the catcode of ^^M (so that epsf files in the header work if a % verbatim crosses a page boundary) % It also defines a \nouppercase command that disables \uppercase and % \Makeuppercase. It can only be used in the headers and footers. \def\fancy@reset{\restorecr \def\baselinestretch{1}% \def\nouppercase##1{{\let\uppercase\relax\let\MakeUppercase\relax \expandafter\let\csname MakeUppercase \endcsname\relax##1}}% \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e \ifx\@normalsize\undefined \normalsize % for ucthesis.cls \else \@normalsize \fi \else% NFSS (2.09) present \@newbaseline% \fi} % Initialization of the head and foot text. % The default values still contain \fancyplain for compatibility. \fancyhf{} % clear all % lefthead empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages % evenhead empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages \if@twoside \fancyhead[el,or]{\fancyplain{}{\sl\rightmark}} \fancyhead[er,ol]{\fancyplain{}{\sl\leftmark}} \else \fancyhead[l]{\fancyplain{}{\sl\rightmark}} \fancyhead[r]{\fancyplain{}{\sl\leftmark}} \fi \fancyfoot[c]{\rm\thepage} % page number % Use box 0 as a temp box and dimen 0 as temp dimen. % This can be done, because this code will always % be used inside another box, and therefore the changes are local. \def\@fancyvbox#1#2{\setbox0\vbox{#2}\ifdim\ht0>#1\@fancywarning {\string#1 is too small (\the\headheight): ^^J Make it at least \the\ht0.^^J We now make it that large for the rest of the document.^^J This may cause the page layout to be inconsistent, however\@gobble}% \dimen0=#1\global\setlength{#1}{\ht0}\ht0=\dimen0\fi \box0} % Put together a header or footer given the left, center and % right text, fillers at left and right and a rule. % The \lap commands put the text into an hbox of zero size, % so overlapping text does not generate an errormessage. % These macros have 5 parameters: % 1. \@lodd or \@rodd % This determines at which side the header will stick % out. % 2. \f@ncyolh, \f@ncyelh, \f@ncyolf or \f@ncyelf. This is the left component. % 3. \f@ncyoch, \f@ncyech, \f@ncyocf or \f@ncyecf. This is the middle comp. % 4. \f@ncyorh, \f@ncyerh, \f@ncyorf or \f@ncyerf. This is the right component. % 5. \@lodd or \@rodd % This determines at which side the header will stick % out. This is the reverse of parameter nr. 1. One of them is always % \relax and the other one is \hss (after expansion). \def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset \@fancyvbox\headheight{\hbox {\rlap{\parbox[b]{\headwidth}{\raggedright#2}}\hfill \parbox[b]{\headwidth}{\centering#3}\hfill \llap{\parbox[b]{\headwidth}{\raggedleft#4}}}\headrule}}#5} \def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset \@fancyvbox\footskip{\footrule \hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2}}\hfill \parbox[t]{\headwidth}{\centering#3}\hfill \llap{\parbox[t]{\headwidth}{\raggedleft#4}}}}}#5} \def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi \hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}} \def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi \vskip-\footruleskip\vskip-\footrulewidth \hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}} \def\ps@fancy{% \@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook % % Define \MakeUppercase for old LaTeXen. % Note: we used \def rather than \let, so that \let\uppercase\relax (from % the version 1 documentation) will still work. % \@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}% \@ifundefined{chapter}{\def\sectionmark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\z@ \thesection\hskip 1em\relax \fi ##1}}{}}% \def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesubsection\hskip 1em\relax \fi ##1}}}% {\def\chaptermark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright{\MakeUppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}}% %\csname ps@headings\endcsname % use \ps@headings defaults if they exist \ps@@fancy \gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}% % Initialize \headwidth if the user didn't % \ifdim\headwidth<0sp % % This catches the case that \headwidth hasn't been initialized and the % case that the user added something to \headwidth in the expectation that % it was initialized to \textwidth. We compensate this now. This loses if % the user intended to multiply it by a factor. But that case is more % likely done by saying something like \headwidth=1.2\textwidth. % The doc says you have to change \headwidth after the first call to % \pagestyle{fancy}. This code is just to catch the most common cases were % that requirement is violated. % \global\advance\headwidth123456789sp\global\advance\headwidth\textwidth \fi} \def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy} \def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy} \let\ps@@empty\ps@empty \def\ps@@fancy{% \ps@@empty % This is for amsbook/amsart, which do strange things with \topskip %\def\@mkboth{\protect\markboth}% pdflatex doesn't like this at all! \def\@oddhead{\@fancyhead\@lodd\f@ncyolh\f@ncyoch\f@ncyorh\@rodd}% \def\@oddfoot{\@fancyfoot\@lodd\f@ncyolf\f@ncyocf\f@ncyorf\@rodd}% \def\@evenhead{\@fancyhead\@rodd\f@ncyelh\f@ncyech\f@ncyerh\@lodd}% \def\@evenfoot{\@fancyfoot\@rodd\f@ncyelf\f@ncyecf\f@ncyerf\@lodd}% } \def\@lodd{\if@reversemargin\hss\else\relax\fi} \def\@rodd{\if@reversemargin\relax\else\hss\fi} \newif\iffootnote \let\latex@makecol\@makecol \def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi \let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol} \def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi} \def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi} \def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi} \newcommand{\fancypagestyle}[2]{% \@namedef{ps@#1}{\let\fancy@def\fancy@ldef#2\relax\ps@fancy}} pyutilib-6.0.0/doc/plugin/figures/000077500000000000000000000000001367314503500170745ustar00rootroot00000000000000pyutilib-6.0.0/doc/plugin/figures/definitions.pdf000066400000000000000000001046451367314503500221140ustar00rootroot00000000000000%PDF-1.3 %Çì¢ 5 0 obj <> stream xœí]]¯&¹Q„MØ76„p.ω4¿íºEBHÜm4ÀÕÀf@Ëÿ—(»ªlWõYvæ,;Ik£L?~]åÇn»ì~ìîóíƒ;üƒëÿñ¿ïžoûÛúð»ÿº}{ƒ‡üðŒÿ_bs÷[m~¿ÌøïûÛ?ýæá÷·áàá»ßÝüÃÜà¨PZ{ˆ-棠ƒtDh)I–cÂ¨Äæ’f%éܽÜo«Zœà ¿L$a:]Ÿ©âßܾîwr&·^ßç™bJ#_eTð”À&ã^Ï[ýÛX÷üÛ›§kþçÝóÃß½ÅN¾=¼ý3ú‡7ø?ü·Ø|ƒÅáÃÃÛçÛ??þÉÓxWj}üÓ~é°nåñgOoÜáRñ>çÇ?{rGm¥ÔüøÅÊòó§ËQ‚ÿ×·ÿxûû·Xͯ?‚œ÷'v)©³KÞµLvîH>¢ç«o­ÓÃ6© ’ÃÙ´ˆìÜÑ ¤ºç]‰?jG ~ñä‘y-ŽÞ'ð_>Eb¯ò‹ÌÂz/qoÿMeWC/ãçP"ÒñÝ_¡¦j5¦æ{SaV—d,sÄ2Ýj,½ðr8_ªg3WKCî(|{ü—ß#¥p ·Ù°}ñ?¼ÒÓòÂ8ÖRïøßýûí›ß¬;%ùÞ`÷s!¦-p̤°jÁEòJÿ[øÀbLøð5ïáá>®ðÁ +|p‚Dv·`ÒáC8­ø±ˆ‹ËY9)t&ìaÄçAy‹#›oN™Õ]ô£$3AâÆ4‘„åuÚpÉ6”$?²n±;Ð(vÅŽsŠXI8ùøà‘pÀtc|þbtò’}+‘Sò}XÅ#¦’Fwv-çsïÐ}TBmáñ—O¾`3ãàù Ì=¸Š=þ»ž!§€cù˧Œã1ù¶…—ï &ñ{ƒIGîõ^Ñ/¤&£·Êà­2xC§Íƒ×ç„C’o „ÀÅ6¢^Á1uðì£I˜R`@˜äA p\S¡-‘Aˆì m¡1ñ:`L Pó%i¾Â·(IbKS¨©‹ 8”¶ö}*6x*¶b‡nCÈ É :ªúJÈ\u¾+=¡éj¾æ¸g„@-á¹¼Ÿ…Û{xk óÜJ!ž’€Q{J`»H»Œ!»=³²Ž5Ê׆‡29%‰ò’r=t&`°ÖÄO d¢¼ä¨˜dPÅZ ‡âMMJ5ÄÏ þT“¦&5â§2Q^jULZTÅX«áв© xCü”@&Ê DSCüœmM²ó;œ×öbOÐ'c º&ÙgMüœ@&Ê‹¯º&9DMüœàë©&!+&Ñ«b ÙpˆÑÔ$‚!~Nˆ§š$oj’L y!ÁŸj’LÜÀå£XÎñ 24Ï^2¼±(Fˆ³Tþ]MvYyÞr•JãX_FÀÄ:`d˜e.ðÌ!‡->"%s‹ôK¿™ÕSb(&‡FF¸âYopÌ>ð¼ùw?²G¦„ý„f›ä$'R^Lç©%û“5¹Œ<³Êj–‘ËL`dà8ð§@µ`ŽX=¦ìy ©TÕ¤SÕjÜ­ Ïî˜yhx›†—IhuÖ„º@kŽsxYÜTð~ËÃ^ *·÷-A¼X·¸®ÊUÚŒ¼xçëxrв cÌ&Ë`úð.öÖØ\À†ï {Y3F…ûúÔ×ñô&|Ýð}añ ù7°Ñ~–5ðò xzU-ô’SÂXÁm²ëˆV%ˆF£Eòò¨OäßRã²%U{ä—ÜÜÈê(·3î÷>@&ûFö]ŽHTÚx@Œž¬]áßé†áLAö1RÂ<ÿÚê_Ûî+ÕøÂúÃpáF9–Ûȳ÷øUN É>Tjô|Î#ɇJmä¤uëð†#‘Ú$F*­xzÒ2—#ŒßqÁ¸4#*#^ua ݰäXµ°´ÏXõ¡5×¹ ¿Ù˯UÊmÌL¼‡Á«£ |[¼â$ç+èiíç"k‹y½-Ö€Ûd (÷ƒrŸ0€ô3Êïacî³fj1å^Ö>îÌ]ÕL-öQ3wycžS‹9÷´ÆŽ´1OàÓ3®Šyj°1O-*¦g Šyj~g^³fnqóšy;óR5S‹)÷².ygžA3µ˜r/ë\wæÙk¦'\5ó;ó5ÓÍ<ùyÌš©ÅÉkæ1îÌCÕL-ŽQ3ygt48㬙‡}|ÏgMŽ:ýQ”ËQ©?'êNSrà0´(\ÖÂmûôùÓK¨ ä½äm£d+f¥.ÞéZùêØëz8Ãõ1Ãô˜6žãƒøÚ+>¦S\ï9s“Ù§ž)Š¢eø0íÖ Žì+3[÷h³Y÷`³Y/8²¯ÌlÝŠ*‚*{AÖÈLÙPTÙÞ…±˜!ã‰Fæ••mûfRŸi!:[Œ»r7î’Ëá%Lùw-då¡Ê®Lùw5h¥è2-¦ü»‡â5‡Üt™S~òiØØƒ÷c¾+AÖËü{Þ­_¯¾÷º¾W“dî-Óf*hä9Å’Ôu±äÕ;[ "KÉ)–¡íeöýÛe)ˆ,%§Xƶ—‰óêf)ˆ,%§X&ØËÌy/SYJN±Ì°—Yò^f)‰®ñŠÆpê!Ú^C«°ðý%¼s—…xs<6÷'ÿݛŔ÷P!+5j>' Ùx( 9”¨Ë§Ù‡-EösdVRÖ®«ˆ~ç”×ïÃö'úÿ÷}X¬ÆØÖìÿòn&† ®?ä0BtcPâÆÔã¿^ÙE1Û¶Ùd³o$tI”~oeZÔ¿»™„ûLXJîLhùA|ó]j] w&a“x¾7 Á§c\œ_{Qóš™j|<‰ îÕd¯Üs ;GÙŽï½=?ún­Ód׎ôµ#}íH_;Ò׎ôµ#}íH_;Ò׎ôµ#}íH_;Ò²ŸpíH_;Ò׎ôµ#}íHoÖ׎ôµ#ýév¤¿~Í‹¸N$4¸ùjÝ_vÉ¸àšŸ_:s­4— ©ÃC†Ç¿êy{kõñ‹'¼içô.÷%²‹E«ÃÛ‹8¡¿·Öw&BoŽñæÜ/Ÿðæ—æÃPš1xàŒÌJ³ÇÒdÞÃ@..ÍVpù÷—ïèõ›näX|-È5×þZcÞÞ½y­LíSÝTÔ¾57Vú¢¹Òf©±|-š³Æ÷¹q—,î*0y}˜Êœr³ÆhÙâ`¥6æ6ƒQ›Á¨Í`ÔfØÔæ¦ÔæfÔævR›—xÜŒx\x\xÜNâqUâqUâqUâq5âq1âq1â±`±—üËmZ.9jöÙ TÉ¿y;{œª7ëT™äT¨±`ŒíIAˆ·pK\ÚpGGÙq¥›ÙsÞ³X¬R¬£äÕ³ãVSàp˜‡/G[1†Wê ¬#ŽKÆ`K¬çb hÚai1;zÑš‚: ÃÓ;ò¤gnß–&ŒL#M,\V 3¡ñ´4aSüÈ]¤ýµÒ”ƒ±¥#M¨¤#K F4Â>)Á…}rnsÚ£ÒÜ>ñ3â6BD(ÿæ‡_Y %h²ùw÷ͼx’ö²4Ú¦_Î i³%•—òî×"÷Î|¬ö m—rk´dÞ™›U^Á¢éR~–¼;sǽdRsÙr¿ŽºLQu'®;Gƒ¼e,j®`Ñn)¿FKƹë^2©¶”w¿ùvæËš±hµ”[£%ÛÎÜQ3–­5І1«µÕY’¾öI[b<5YÊ­Ñ’ggîªO-–òk´dÙ™;ï%“ Ky÷k‘cg¾¨‹öÊ–EËXT؉÷Qn‘·Œ“·›T0"ÊÔ^G¼aá¯IIò¶%ºŽDXš+–LBK®ˆË†âÚ#ô@yÆX?ÊÍš$ˆ½ÝIkÕõ{¿ò²Îʱjʬ=z‹~9æ°äÏ>¯ˆ¾Š±ÙÓº…—нIÚRWåà“ˆ«8S±&sRq»ç\EU–a‰ªˆÃQ§¸ ªÈX$ÚŠ˜Úç§ø1‡æÁMJõ©jáPVk"Ú¥æ”p˜ª%‡xÈQK‚§í±¯0²–‹QP‹VPgþ塵µµœÔjÔjÔjÔzP«P›P›PëI@mF@mF@mJ@mJ@mJ@mJ@mF@m'µ)µµŒ€ F@# ‚PA ¨ TP’©AF@# 6# 6% 6# 6# 6# ‚PÁ¨ TP*(Œ€:±´PÁ¨pP§÷ÏA ¨`TS¶XO”€*Ö/”€ J@#  ^*(”€ F@ë% ‚PA ¨`Tñ5ó) ‚PÁ¨â-+æK@% ŠµÅU1_*(Œ€*ó% ‚PÁ¨bí5ó) ‚PÁ¨â-jæS@% ‚PÅ[Ö̧€ J@k‹«f>TP*U0hæS@% ‚PÅÚkæS@% ‚PÅ[Ô̧€ J@k‹³föñ½žÑÀ¨ T0*Œ€ J2µH ¨ T0ꬕ¡Ž½NJ@# ‚PA ¨M ¨Í¨Í¨Í¨Í¨M ¨M ¨M ¨M ¨Í¨Í¨Í¨`T0j3j3ªQ‘xWê·S[®²:C¸JkàݽXLù?þÌî¸'í˯¯=œ{½gr½ãt½ãô9õ½ë§ë§Ïá§ÆlÞl`3·!Ân3÷Ö¬Q_ ÄqíúÚ`!¾S„“›QjÔÓâYê,gô‡ÉQLtWlÕ{ÇBT&ã ½aFB.õ™"]rINžeµQÆqrþ~½öÙ¿fßìz~áí¯Öìw9%å3샿Ëéû–_ú?þ,çW/|–³/éÇ*y\ðÒ8ÄÕõkßaÃþ3:Z ƒÁýe¥±äóô~J±ãóÏ’ÐmzöÒO ²Ûw7Ih²J<>«-ÎÚøæ¶”ÕøÝ¡– c…kÍ ‡þôÀ~øš¿ÍMˆ)Ü2AñÁô¥†}ÐJRçO µìuºÏ©Óä)á–zL\ÜÞeg'™¹¸ùø¡n€Ï}}q0uׯúñ•äbô2Šjõ»ãødv.n>ÑÑ8¼pÚCiSü±mã㯞|8j¬Ý}TCñókÜlÖj„Ç_Ôšð9ð×OX£ÂÿN¯~„ÆÚ¨åöÕÐ_É3V²Ué°˜Ðû˜$ ì7¯òÁrM:,'̉sâ1C°3D£ RYŒÐ6¦ ÷ºä¼pˆÈVüеLÖ …;C!H>&}*Bàè°œ³ÃÆ´×é. «N“'•Y‰ƒÛ[ (vÜÀ ;,&wÁ¨ë?=ß³$àÇNûië3ƒšW^ø{µ÷}uö}ìË•}ª}¦x|tãsê#Võ±õñ‰ö=dZEúÞ©KÂ8/®D‡¸³UÔ¶ƒ_ûGÜûf-¯f"Ý.[;ñSðl'‹lê¼®™úJ# ÿÛÿ|P¡e¸à¾Õ´ß8‹…à:O±“΄Aϰ/}µ¾Â>UÊ ÛZž3,†ÓWësT»§¯Ö—TêKŸ­ÿq‘é:Œw\‡ñ®Ãx×a¼ë0Þuï:Œ§­®ÃxÇë0Þuï:ŒwÆ»ã]‡ñ®Ãx×a¼ë0Þuï:ŒwüÔã©ÃuÏçÃw%uÁâÏã0އ^nGcZŸê•éiô«'œSHùÇl!]g¸®3\×®û讵A¶½Ðúþp?²c÷‡%O ˆÓšºÅ˜@F?hª tB6þÓ!ò„hìöR9ŒÞÝ¢+¾#G7ŽB?|͇š[&Œ;öÀÌÙ?£¾/&šþ å}ÞuÙ?þì ×<¸¸)»û/æÏ/ýqòWLmׯ?Àø‘mU²F«­Šj«bÚª˜¶*¦­Ši«òIÚª˜¶*ª­Ši«úж ;Ÿ@­3˜® ³’öú”¤½žmJ®/à-¿àÞòˆÝ‘YJl¥·;§ÛêþB[±õl«PÜÖVòëŒtÕ™¶‘.öƒ°ãìM˜ï±p _××a½?¼Ãz×ù´Ïä|š>nöüÒy´j=›¶ùYÇ·ÎÇµê ©£[Ê‹œ¹:Ÿ±ªéóVÛ¡éÃz^²=/éž—tÏK¶ç%Óó’êyIõ¼dz^1=¯¨žW¶žWTÏ+ºç•½çÝóʹçÛóŠíyÅô¼bz^2=/©ž—tÏK§ž÷1ÇôòOý4ã(´/ŒÍ·ô¼OGÄʯè}ò“|_ý'ù~ÌT|=@þä Õáóù1¥jÐñÃãGš~/õ}˜©/Q›<ÒÕð}\")t"c\`¥VØÙòî±è3(&%èqûWºqn‚H?KÑãÞ„‘’®ÜÃ>¢B–0‚Í} #¥z6s•Ut| òÍD‘­ÅÞ§7ãœãâõGÕP_}OC½6Ü^–óh²i-ÂòúàBýWD£­â8c…hp%„ÜÛŽïïž­öi±¾€gnFÞè2E'Mf)½»M|%då'ŸZŒìW‹õçÁÕb-èkíÔbÿ ˜ë™Ùendstream endobj 6 0 obj 5519 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 14 0 obj <> endobj 15 0 obj <> endobj 16 0 obj <>stream xœíœ \\Õ¹ÀϹwfŸY€f†a†e`fØ!¸a K˜IH +.1!«Qlk˜¨u_ªq·6j†ITb¢FM]ªQkS[·6ÚXJk]€÷ûÍ—ZŸï½þ~ϹóÝÿ=ßÙ¿ïlw JÑA“æ¦V_?5F¸Í]²²»ÃÕKávñ’5«íî} àù5B¤Ç–÷®Xyó»w"{EÌŠ3Ö/Çô®Y„Xæô,ë^úfÇŽ·i¼”= ÐìS•¢; ᔞ•«×…ë;ƒ¹äŒUKº1\z!QûWv¯ë5îYBôQ ´ŸÙ½rY¸=Çàfë]Õ¿ìöÞ¾e½†Çþy¤O#Ä” eÞHÈøåäøç<¸~I¶“ûȃäQò[ò{ò1U’.r>y„ü•¼K>"_PBåÔDh:ùÁ>ã?•®$~‘ !ŸO¿kâØP;Es9„,÷qÍDôÄèɺñËÇGÆŸ“©ˆ^Ì«çžíQ::ñ9WÎÂ,Ì]ÀžÅGå7ŽïßvBszI ëÈz²l$›È9ä\òSòsrÙL.[œ Ï‘-d+¹˜\B.%¿ —‘ËÉäJr¹š\C®%בëÁŽ7ɶp ß×Ub,‹¹…ÜAî"wo%·‘ÛÉäWþ5Xÿnr/èPƒá{@s¹´w€–¥bºpÉ0 ‘dø ÑÐÙGî'wƒ7÷½ä!ò0øqxö1QÇ4‘ð7§Äûãd?ù y‚„õäcr ÂÿÍQ}U{²æS¸þI>#Ÿƒ¿$cSBc'ÅŒ‘qð1¡”r”'ãÇŸŽkE‘P)•ÁšETIÕTCµTGõ 91F5cøJŒúkâ¢&šÆP#¬—Kã©ÖÍDšDmÔA“§ÄÅMÆØ!ÆIS¨+gsÆMæµA Ë”´éÔO×ÂÝC½ÔÏÙ4æÓBZ š,ç@xÄùEV5‹v.˜?¯£=ÐÖ:§¥¹iv㬆úºÚ™5ÕU•3„ò²é¥%ÓŠ‹ ò}Þ¬Ì4·+Å™l‹5ô:J©ˆ’ˤž£$³ÚYÓeº»‚·³¶6‹…ݠ螢è ÚAUsbš ½KLf?1¥)—Ÿ”RÀ”ÂdJª·—’Ò¬L{µÓpiÕÓ†9¥aÕyWu÷Ò`sK{u•Õáèu¤R,+(« ÊŲ짲6“‹ìÙû†¶ŒèÉâ.z©si÷‚ö ß ™†øê¡¡ ‚O0ÝYLßp8º¼,˜é¬ªzœPXÃœÉ hPêÒ;íCŸh¼sôý5ÝaÌ¥ÿ„°GÖÅI3A|ä™@Û …Ð?‡ƒµå¢,†@p°¥Ãv²Ø"‚ÏÓäºX̾HŒ)Àb#1“Ù»œæªê®ðwMOlpp±=+¬/~]ð…x{ww-^ÒÃØ½lÈYU…vkk Uð t‡ûZ=ì÷Aúî.èÄ©Ì -íAŸ³7htV`PØ™Nmm³„³•AÒµ$œ+è«®bí²WuUaYYΖöÝ$wâÐpžÝº3—ä‘ÖŽ ¹œâ®j_º*ßC¼‹8‚xñ6âoˆ·‡CI À_1ô&âPb4àP(1ð—P¢ðgÄëˆ×¯b’W0ô2âOˆ?"^Büqñ{Ä‹ˆß!^@Ä#XæÃˆ‡P¹±ñ b7bñâ~Ä}ˆ]ˆˆb8”"v„r÷"îAÜØŽøu(!pâW˜ïNĈ۷!nEÜ‚ÙoF܄؆¸qâ—Xôõˆë0ûµˆkW#®B\‰ù®@\ޏ ñ Ä¥ˆKcÑ[1ûÄEˆ!Ä…ˆÍ˜áÄÏç#~†ø)â'!kà<Ä â\Ä9ˆMˆ³ëëkkˆÕˆ~Dâ,D/bU(>p&b%â ÄéˆÓ§"z+ËËKK‹݈.Ä"ÄBD'bb>b¢#WhGœ‚˜‹ Ú­ˆ9ˆD3¢ 1ш˜…h@Ô#굈™ˆD5¢ Q‰¨@Ì@ˆrDb:¢Q‚˜†(ÅŠ…ˆD>"‘‹ÈAd#ü‹ÈBd"<ˆ D:" ‘Šp#\!K á YØHNY¦¨´#lˆ$D""aEÄ#â± ÂŒ0a F¬!•ÑBÐ!´ BP!”–…£R†"$Á!(‚ˆ ˆqÄâKĈϟ!þ‰øT¬–þCìý•Ç#>B|ˆ8ŠøñwÄ(â}Ä{ˆwGï ÞÆúþ2;o!‡Ì0²è_o†ÌE€7‡BæJÀ_Bæ*ÀŸ¯#^ ™«¯†Ì5€W/#þ„Eÿñö,ì â÷ˆ±°ßa¾Ï#žC@<‹xóý‹~ñ6þIÄXßoBæ À~Ìð8Vô¶úQ,lâÄȇ{{bÑ»±è,ú,ú~Ä}ˆ]XÑND1ŒÕ;÷bÑ÷ îFlGüqWÈ .ýUÈ4p'⎩p{È4p[ÈÔ¸5dš¸%d7c’›0É6Lr#&¹ã~‰)¯ÇÐu˜òZÄ5˜ájÄU!S3àJÌ~ârÄeؤ_`ÊK1å%ˆ‹C¦ÀVL¹qb(dl\2v6‡Œ „Œ€Ÿ‡Œõ€óCÆù€ŸaÜO1åO0ÉyÂàQ]µím­íz¶í1GAö<¢šk ƒAv€Ü rÈÝ ÛA~ rȯ@î¹ävÛ@n¹äf›@¶Ü¨ì±]r-È5 Wƒ\r%È —ƒ\ò K=¶K@.Ù ²d„žŠa³ïœP4I«ý!I}ˆ³½ˆUˆ3+g NGœ†(E”„ô Óň"D!¢‘ÈCä"rB:6,³~D4€Ð#t-BŒP5B…P"ˆ(„<¤až• óyä=wAŽ€÷þòg×A^yä—Á ù#Èà ìÙò È `ù_*™¥ÑÒB6Â×£qÖ!Ö"Ö •ˆ ´Ã „€(G”!¦c—M#"±«mEÏÎÁÚ[͈&ÄlD#b¢Q¨CÔ"f"jÕˆ*D2 ´#lˆ$D""aEÄ#â±Ø Â,\ùä ÏA>'þäS€|r äcðÜG ‚¼ ò7·@ƒüäM7Àƒ@žyä· Oƒ<ò$È ¿Ùò8ÈÈàÕûAîÙ²äzÑÃ›ÐÆg#N ¼€Ä ´ÇrÄ2ÄRÄÄbD7¢ ±±щX€˜˜‡è@´#NAÌEm‹6ÎBd"<ˆ D:" ‘Šp#\蔄!EH<‚CPœnD¸82òXô%?€ù=È‹ ¿yäyçÀ»AÎç]¶Ÿñ^ÛO©×ö“ÚÁÀyÛçÖn œ³}S@µ©dSÃ&^µÉ ظiû¦W7ÉήÝظ}C@²Á¸S®¯]X·}m@µ–ª×ÔÚàmKV\1pòÛv ìàG&ö ÑE%5ƒ—pFˆçÈÕ1µc@¥­Y]ÛèßÞôåõq%‡ûè }”³÷Q¡¯¹ƒT;ûRÒjXê‰>s| é³÷ùûø³jWz·¯ œY»2ðüJz:tå4èÒ©Þží+˽K˶/ ,ñ.t{»‹¼…Û; ¼óó·Ï txÛ§@ú¹Þ¶@`{[ ÕÛ˜³½%Ðä˜ úFoC`Öö†@½·6P·½6Ð\KgzkÕ|Ø(I‚ooÒ`ÒÑ$‰ª+±7‘ëM<”x4‘ïM8šÀk¥ºøsã/‰çupãðg‹»$n[ÜŽ8©N|àսуÑ\¯aÐÀù ‚áÃ!ƒ„n2pºKtÛt;t|“n‘îÝ„N²CGwhÑ>¯ºø&í"í*-¯Ó2 ¯´ÞìƦñiøRŸ¦\Ó¤á/ÑPAãÍ©4)©5åê&õ"5¿MMµ;½æå„’”ñbBÁM((á©RBõ> ¬¼‹šl5ü^Ê~í‘J/nkõxFäs‚ŠæùAº9èjew¡e^P¶9Hóæ·SzqÇ0å*Û‚Föc°>ëV’XÑLlmñ7Ý”XÑÑdÏ‚ >O°gI:< ûúûW{ú=pYØšÕðAáXÍbV÷Hâù†O?JÿÀ¢È …ýý¬Ô 1a5üÿýÐÿëü¿ýÄ.ZHØ”"ãýü«R-ቜ“F2›´í%z±iô™]UUQYò‡!È;}†DÁ¼Aˆ‘p«µÜ™/Û·êÊå[¸6R>öçן€Ûèbßê{}ô¥Qý؆bßèÁÑl?58 ¢µœ\.“9“½\~ª» 77§ŒËÏs;“µœ¨Ë+(,ãss’8ÞÑ”q,LùW¿lâ«ÇR¸õŽ’Öl)õ¸,¶˜¨(Þ–¤qåÚu ΂´x©$JÆK£ä©ÎÀÚúäç”±© ‰©±J`bpì1©öó¤Ú/N‘T}±—{§¸½,E¶^£â¤Š¨Ò’L)Ù Ó4:TkµÄ'È£ ZeFm÷صñ.‹RiqÅ'¸XY®±X‘š&Þ“¨¥N°ÛEl± ´‡ˆçaîI¢%±´›8ˆ{â]*åf›~L«vôòý±Låg§A1—Ä–Ç7ŽyŽ–³kíÏö[÷~ß²ý.£Í›]P–“™Â–d66“8frfQ‰š—)ÍåóªÎéªæö_?¿`i Êª”ñ¥V¡óÖ-«i\Èô²±±fyO£TGIöÇ9ã¢-)óœ[Ýr;%÷΋Nt[£Ü Iñj§ÇY>pGOßgä;ÒìQ±öK~ÝÄ»’ë¥)¤œ¼ŠVÚ™ ‹e?e’TÝîZ’Gb'ÞÙ©£±#@È£;ÕŒ4uWrr±¯lõÁXU†­¡„’ (n5І0²£”àCCŒzD3`ŽÂ(í9 °éîÿ¹jÀêô+F.(48“Ýâðu€µM£V2e@KÀ( B3­ëüö…ל1­ä´+çeÎu}m”‚õé}ú¸¥iF׊Só¯ÿä×󺂟]Û6´¢Êª–T'fÄ)S2Rf¬½sÙª»ú¦43« ÁmQ©Ì6ãØXRV|‚QÙq×Ç×m^hq¸rÁ ['>§WJÄD2Ð » ᮸OPêçHЧrêƒn™vF8”p“ÐD¯Ô$夺s“4[Ž;5'I“¢Ô+e2¸Ižˆ ëJI'ƒXãpŠlw91DîQAA .Ñ®.8™î”ÉÔΑ°Ù Ø%˜ZÔb+˜­E+SßÁQýh´ðþ/cÄ9NÃñÞ0—H¤y^¦fóAÂWýä¡Á3ÂSg§Ñloëêµm™ã£þšÆôÞ5å‚þü•¿ê/_2Ùã->ŸÜR¶èÜÅUíªñºäé°tùÄ~‹ÔEêÈžˆ¥gpWß—’“’£¶²ÿ@ÔÞ=4‹%ͺßP—¹4Ò‡R8µ êViz«Y쥙ûéä°‹..õŠ‹}>=˜ƒ%šFÅEÃû{|´'¬ 0ø-ììì\Ô)®žÎ³F;Ï‚i1Ø8§&èþ[#Nq¶»ÝùùáM™ù77?=ÖHĹ/G_›ÙÒÆ¯1z2²Ò …[çÎ\{Šúú]kO1¤Îð—/™•«WT2eBÍÂU%§^Ù•ùi×ô¹q3Ëó;¼6­^.×kg–T¸êΨÝßRQžaLHNÐÆ»-¶”DgRLzàç ^‰NÉu ylÿ¨x—wð/‘|rÃä.›ú0·ZÜeáý‡¤„y û"¦^ò ­%Ù`I•Š6fgŠÃ=“ý–!(#›¥gr»ÝŸÞnÿ{%°ïFfˆ 'ˆlê¦ ]‘Êc§ÕŸâ]±íŒÂÊu·-Nk¬Ì7+¤¼QopçÕæ,î‰ÏmÌÍk(rkj¹$ïŒÕYñzaÓ®Õ?|° &Y댛æ³]}Yí™õ.›Û¦´f°U·æÀý0<$JûmLŒ#“ý÷ Ožd„ë”>3&“³f>.aÃÍ!‘è%ܬfI—„»I”pI‚o÷JFÁi|‡Ýõ±ÿ Z½–3ðZE,웊XH øLHˆÃs†Øhx´užµ°Ó3º°lœózx ÿ»u‹ë˜Ìé˜bÓ‰^âL©âáSÎߟž2ö†µ¤sFÅÒ:¿N¡Žâ9I”fÚ¼Õkw®+)[s×i½Û–ûñóùgúâ8ú¹7³¸sFrŒ%Fíˆ3ÛÌ:m¬ÅPºáÁMk9¿¦bঅöÓÖ§LoõÁŽ›øœ»FºŽ”’þ°WÌz›Á¢þ œ3wÌŒw?íÙîüµöYúZ¶•‰“8§†ëþܱý¹ûÅÃŒò;f:ùlbB+ȦsJnälÂ]#‰RÊ䆸d‹55^}+,èRc̭ꄜ””ìDUoLŒT«R×¶¤Ö¤iÉG‰Î¹çöˆ§ÛÞ°ÏÝ:i‚šÄë”6¥OÉkx%Û8Á{°¡´ JÁSïÖ™ìu&ÑgpÀ[½ˆíÈûÃÞVþëô'm_ç^ñ÷·vKe”1.)Ú”‘N>ɹβ¢¢M’=V%•p|CŠ7^ɶ‹”Ò̱ƒ_u煮n/W(Õ¦ ñ7„#ÜGÐû:räø;•wòªJH&j‰—zÂ4T¾m(Ø .´r¼ø"¤+¥ð.tT°Š/C‡Ù‹P½YÏNÚÄLõóG“nû„߆:ÅסEýh'|OxÕìÿõ}70î£âž‹[sæ×úÍjI”Z¡ò‚äüT£kzcKãtWΠÚ2š„̘( ÏËÕQ wqƒ?9Ç®w—5µ4•¹iÒ¬Õ³Su–XSVf¢Ó$KŠ×ƧÅ'yì ə¼ráôYêh“Ng²Y¬ÉF¹)Ö¤wmöG¦Ð^²L¼Ï],&ÓÈåè¥ MI:qf±SeÑdEÎ*YpVÙé¬MÔDvà¶Ôf³ÿò(ÈÃÆ v@œ–¹c9ûs ‘_q²¾O!¸RI¾þ¸sâ¡È9*r«¢¾Â„†3k“O1²ayš*W°Ç”â‰èqo‰ÑgËT2é†L_ lî¦usèÓxÞym©í'ñD4ÞYW'WÈ妰Öz8«?Ë?«øéá­JÝñ_emÜ"A“U—ª’ÆÕ¥Ä†ßHw ÚF\€#¯ìåâ’%ž^´ß%ùÔõ:ò¾79 ‘_­" þYe\ºÍ‘ óœ›bçaJG»`ùî.T‰3<áø&ÅÖäž —s“Šñ¨qçZ"è·v¯ÐïL¿Ïé¶îg÷ &‡]æpŽp‚Z vGZC_§ /Gå4Îû:ô%º8^ÿz<úýÀI‰ÂóFNµ<ë]*=¾2[b,…1áß–wR^*?&5¤VäWº Òñc29U%d»ÒsÕ’gd²§xM‚ÏíòÅ+ùmR­Á¬ýòeƒI-‘ªMz>Õh×Ê 3©Â ;+.Ž»DmPH%JþãäÿõE³¿óuìÄ‹Ëü¯»¦^ü²¯â’´|Ëõö7_Ò_½dÓØK^ù×5ßázeêÕ}ÂuðÛ.E+^J÷×\}ŸKUüµ×]?^?^?^?^?^ßï"ì7ü‹+#áEÖaÿ¯ šSè*zm¦t ñÑëhÝBÓ(Gõd!ÝGØo{ÑôRº‰HH-ä°¿Æ"ä¨qbî”Ý!,ûw-Güƒ/ mâûÃ0 !mm5Õþšœ~ÿj¿_ü{1z)û× ßñubð(9:q⟗!$ÚãBŸÿþ")%M?´HãHÝ· —L¶þ'‹¤â›…Š”ÿ(?ÊŒ|Lf~/é µßG$rRÿ]„ÛLâþ“…†Xÿ]¡Ÿ’Ó 9ç›DÒð-ÒöÿžÂý‰œ3UølR÷]„{‚Xþ·ú¸þ» ÿ41‡÷ÿoþPüw„ÃÁ.Ò•~BâpsÝóÞÙÏ2>ZñŽòKÝx¿â]ùV!îáðù/ßïÔé endstream endobj 17 0 obj 8512 endobj 18 0 obj <>stream xœí|x”UÚö9óNË”d&“I›$3aR©´`L†4I€@’Ъ”š€ÅE]±¡®âZpÂdhA]E×Õµ—µíZwÝuQ\ËÚH¾û¼ÏV¹¾ÿ¿¾ÿÛoÿyç~ïû<§¼ç<§Ì3 qƘ•u3…M™<-wS_Õ_à6½uYK{(ÝŒ[GëêUžÝÛ|ý6c:Ó‚ö…˾úªÖ}„±°ø…K×- ò#단\4¿¥íO•»ßg¬iŒù‹`°î2!O‹tÊ¢e«ÖRùštâû¥+Z[(]z+cÆ'–µ¬mÊ+Ê…ѳ¼eÙüP^ÅÍݾ¢s¥›&ˆüöŽùíƒýõ0Ê#bfÌpcÛØÉ¯)l ëÄx»Ù%l+ÛÆeo±yì"¨íl»‡ý’Øcìiöû/| ¬Ó-cåÓ3cƒß¸è×…ŸdÙ†”CëùÁ2hüä4Û'ÛmýúHfRëZ5¯Àú9?>ø­¦D¤óEZs)t„Zã3Ãm»vžæƒ:ÖÄf²Yl6kf-[ÄÃ3ç±¥l[®¦–#o!î š‹R­(%ô¥V°v ƒ­b]l5®vèÎPJä­TÓ]l ®µl[ÏÎgØÆÐ}jÙ€œõjz-°‰]€™¹mV•d²\Ä.f[0k—²ËØågL]~Bõ°+Ø•˜ç«ØÕ?©·ž’º×ÏØµX×±ëÙ ì&¬‹[Ø­§YoTí7³ÛØíX3"ïzXnW•È}˜=Éö±]l7Û¯ú²^#H¿,P}ØlÀ/:©Çä¿5'¼µ ccë t-ì›Oª±:äGQò"”¤VhD+OóÄ5éFD©ëÕñÿ`=Ù+g²JÜz’gnQSBný)}û9vภ¯ õ hR·«údûm'ÊîPÓw²»ØÝ˜‹ª’L–{ w²{±·ïc½ì~\?è“ñ.ö€:sÖÇ‚lÛ‹™Üϰ~Õ~¦¼³ï Ùƒ',Ùƒì!¬GØ!œ4ã’–_ÁöhÈú„j£ôãì×H‹R”z’=…êö,{޽È~ƒÔ êý·H½Ä^a¿cop+ÔËìCÜÌ7¾mîœÙ³f656øë§M­›2yRmMõĪ ã++ÊËJÇùJŠÏ-:glaÁ˜üѹ9ÙYCÓRS¼CܱQv[„Õl 3ô:­¢á,«Â[Ùì ¤5´iÞ ²EÚÛCËI†æ€¦ÊSË<Íj1Ï©%}(¹à´’>*é;Q’ÛéRƓڲÁp¢OôœŸì•ÊðTÌ/?©ƒ§4ª u0ÔÚ÷S#|z0jÅtNYJ*v.l4£šÄ,ÆzlЧÁ;ßÛèÅòMic¾Vç·zš·º®©AíÐ*©?%Eù” °ddË„¦ k°2Ó%§UMWÓ'’NË®’Ùž£·zZhÜjy°ƒ0h}ZUË‘£°5+qºy+[¼›§²§¥°{^OŸÏ×Ó^Ѽh¬hÃ[ÕÖãÖPäRû:µa£k½xT$«æÕõ¥ÙY8{Jû¼ü²º>¿lZSÃAbÜËê‚®)k.mìKA^ÃAwÕªVa Hˆ–¦"aTË»úëVsµªAM·ös¦ÚŒÒÆYk¿†l6iÓÀ¦%›Oµ‰&)v\Œã¶ÂÓ&¦gC㢞æF±¹X4¦oàÞbÐx‹û¸Fo ˜¼óKfo©°—{ ÙõÂnÀÂàÑÎgRO³çTsqZŠŠhÒÓ?8Xßü¼ëhc2–Ú, ©!–‰³_—:åÆ 4Ã<>ÐÝÚ"úÁü ¢®!µªµËV6ˆ"U0´j%*Õ:b9¢R+æ¨ÖïF"ÐÝhÌmXܨ.g[€MðŽÅ´S›º4ñ ÜÆžHïuob+˜R/†¾±i dq!‰‡5’“ ô¼Õ‹¬Öf¼­e­Ó°Ôé,5¹È2G¢6m¾ “+”Éİ”T³ÕËAƒx mÎ[R—jhl¤Î«©KCðl[ÀŒ¥äÊPxYU¢/x_ЮТ‰fêúÙTïZœ,¢ÓjKd¬©U-8ü©¾o¬lg„9ÔÆd5ˆ‘[àw%µ¾p§w]òI¯ì,¯øp “¹ba³ÆžÓ ™™ÙYÆÓ­VÕÜÓc´þxò—Ñz‚…ÑSO Äw`=`ü Ó¤ï‡\¶_XN~)‹¶Qž¢ûÁÆr¾zc1;<¦xú5ï ‹å!.’b³JÑ-ÅRl’b£¤8_ŠõR¬“b­k¤X-E—«¤è”b¥íR¬b¹ˤX*ÅyR,‘b±‹¤X(Å)æKÑ&E«ó¤h‘¢YйRÌ‘b¶³¤˜)E“R4H1CŠéRø¥¨—bšS¥¨“bŠ“¥˜$E­5RTK1QŠ*)&H1^ŠJ)*¤(—¢LŠR)ÆIá“¢DŠb)Ε¢HŠs¤+E¡RŒ‘"_ŠÑRŒ’b¤#¤.Ež¹RäH‘-E–™R “"CŠ¡R¤K‘&Eª)Rx¥"E²)ÜR$I‘(E‚.)⥈“"VŠ)¢¥pJ%…CŠH)ìRؤˆ"\ «)ÌR˜¤“Â(…A ½:)´R(Rh¤àR°àƒR Hq\Šï¥øNŠo¥øFН¥ø‡_Iñ¥_Hñ¹—â3)ŽIñ©ŸHqTŠ¿Iñ±Iñ¡G¤ø@Š¿Jñ)Þ—âÏRüIŠ÷¤8,Å¥xWŠw¤x[Š·¤øƒ¿—âM)Þâu)^“âU)~'Å+R¼,ÅKR¼(Å R)~)ŽRì”â)î–â.)î”âRÜ!Å)n—â6)~.Å­RÜ"ÅÍRl—â&)n”â)®—â:)¶Iq­?“â)®–â*)¶Jq¥WHÑ#ÅåR\&Å¥R\"Å)dØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃ;¤ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—a—a—a—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ/Û#¢æ`R±1s0É ÚL© ƒIcAÝ”º€hS0ÉÚH© Dç­'ZLZL,­!ZMÔEy«(ÕIÔAÆ•ÁÄRP;Ñ ¢åTdÑR¢ó‚  %D‹‰-$ZL(ͧTQ+Ñ<¢¢f¢¹Ds¨ÞlJÍ"šIÔDÔHÔ@4ƒh:‘Ÿ¨žhÑT¢:¢)D“‰&ÕÕUM ºª@UD‚®‰ ñD•AW5¨"誕••RÞ8ªç#*¡zÅDçQÉsˆÆRõB¢¢1DùD£©±QD#©•DÉò¨±\¢ª—M”E”I4Œ(ƒh(Q:5F”Jm¦y‰†PÓÉDªç&J"J$J rÅã'âˆbƒñ“A1DÑdtE‘ÑAId§<QɬDÊ3™ˆÂ(ÏHd Ò㦀tÁ¸:–H!£†Rœˆ©Ä‰Ô"ü8¥¾'úŽè[Êû†R_ýƒè+¢/ƒ±õ /‚±Ó@ŸSêïDŸ£¼O)õ ÑQ¢¿QÞÇD‘ñC¢#Dý•Šü…RïSêÏ”úÑ{D‡)ïDï’ñ¢·‰Þ"úù=¥Þ$z#3ôz0f:è5¢WÉø;¢Wˆ^&z‰Š¼HôŸ'zŽèY¢g¨ÈÓD¿%ãSDOý†è ¢_SÉÇ)õÑ!¢G)ï¢_‘ña¢‡ˆ$:HÔO%Pj?Ñ>¢½D{‚Ñ% `0z&¨(@´›hÑD÷õÝŒÆyÍI­ÜK´“òî!º›è.¢;‰~AtÑ¢Û©±Û¨•ŸÝJy·ÝL´è&ªp#¥n ºžè:ÊÛF­\Kô3Ê»†èj¢«ˆ¶]I%¯ TÑåD—]JtIÐÙÚtÎ]LtQй´™è Óê:qó ‚Î|Ð&¢T}Õ;Ÿh}ÐÙZGÕ×­!ZMÔE´Š¨“šî ê+‰ÚƒÎVÐ jl9•\F´”è<¢%D‹©Þ"¢…Ô³T}>Q•l%šGÔBÔL4—h z6õlÑLt5ÝHj šAÝNòS+õDÓˆ¦Õ£| )Á(ñ„ÉÁ(±¼'£.Õ£²A5T¤šhb0 q¯¢Ô¢ñd¬ FmU£.•£.•£ºA¥ÁÈJÐ8"Q Qq0Ÿïü\Jí sˆÆíbiíãAc‚öP~ÐÞMy£ˆFíY TrxÐ.–´‹½™K”CÕ³é YD™ÔØ0¢ jl(Q:QQjÐ.¼”Bä¥6‡P›ÉÔ˜‡Zq%Q½D¢"Q ì6¯sï2¯w?`Þà¾ß¼ÑÝkÞä¾ø%p/°¸¸Ûœí¾ |'ð Ô¹¼Ã|žûvèÛ Ü } ÚºmmG[7Áv#pp=p° ¸õ~†ö®1Mr_mšì¾Ê´Ð½Õt·ûJÓN÷%Õ}±Rྈ¸7û»ýövû/ðoôoêÝè7oäæ®ÕÏߨ»ñ­¾Z½iƒ½ÿüÞõþuþ5þµ½kü«{»üÚ®¨®U]Ê]¼·‹—wñ¼.®a]¶.O—bYåïðwövøYÇ”ŽîŽ@‡öœ@Çá ëà¦þÁC{:\I•`߆«­r¥…¿½w…ù‚eþ%èÖâ‚…þE½ ý Úüó{Ûü­óü-Íþ¹³ýszgûg4ùgö6ù ü3P~zA½ßß[ïŸVPçŸÚ[çŸ\0É? öÚ‚jMoµbÁUïÿø‚J†Ìl žÅ&:0)=a.^šçò¹»Ž¹´Ìpr)‘ñîxMFD/›ÇWÄ]wuœûb¬Æ›‘UóbÌc>Ñ:|19•,Úí‰Vœblѵõ•*—”­Žµ6Ú›VáäN·SSávrf?l?fWœÚ^´i""xDÄ`„Æâáîp¸ †+¾ðác*#¬n«FÜ­J´Ï ‹h1Ý2¥¾2Âì6kü%æÉfÏ\RVé3gçU2…{8gÜRŒ(»—;Ý•ÊÃ\üGÇ8¿¦¯~Zffu¿‘M­§Ì ðË©ÓÄÝW×Ð_`þ¦™ }œ_ÕØÇ5eõ(ñË^5½eëV–XZHœÖTvìH,m¬t íó©zPh†"™s:»:33WÍÁmNçªLõï©LaïÎUH‹«KM³Ì3¾¨hn'^«B¶Ug®ô?ýÅÿÕø÷õ1ñoÆ j.fmš‹€ÍÀ…@7p° ØlÎÖ뀵À`5Ь:•@;°X,–çK€ÅÀ"`!°˜´­À< hæs€ÙÀ,`&Ð4 À `:àêiÀT ˜L&µ@ P Lª€ Àx ¨Ê2 ø€ 8(ÎÆ…@0ÈF£€‘À`8ä9@6dÀ `(¤©@ à†É€pI@"¸€x ˆb€hÀ D °6 ¬€0& 0@èí¸AÜ@p€±6Žßßßß_ÿ¾¾¾>þ|>>Ž>>>Žþ¼üøðpø#ð.ðð6ððà÷À›ÀÀëÀkÀ«Àï€W€——€€çç€gg€§ßOO¿ž~ <<~< <<úÀ~`°Ø> ìv÷½À}À/{À=ÀÝÀ]ÀÀ/€;€ÀíÀmÀÏ[[€›íÀMÀÀ ÀõÀuÀ6àZàgÀ5ÀÕÀUÀVàJà  ¸¸ ¸¸ØÂÚÆusìŽýϱÿ9ö?ÇþçØÿûŸcÿsìŽýϱÿ9ö?ÇþçØÿûŸcÿsìŽýÏ;œgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpìŽýϱÿ9ö>ÇÞçØû{Ÿcïsì}Ž½Ï±÷9ö>ÇÞÿWŸÃÿæ¯ÆuþÍ_±s爓 t*¯è™ ¬Õ²IlæÃÌŠ5ÍÆò}ûœååÆlÃ#X¯æÁŠ7"$-óEh5Öññ%Þ£õ[{¾¸ï-1lÅY^rüÝã/ä÷hdaîQžûÎ{ï¾gûì{aîÈ÷^}ox·'ÛUD…k †(½wHŽftzZþÈ‘#Š5£G¥y‡„kTÛ¨ü1ÅÊÈI%JZŠ5"Í•W¾oR&×k6yK¦Ô%ÅGDYõ:MBldvQªmÚÌÔ¢œDƒbÐ+:£aè˜Ò!ÕK+†üÁ`OtF'F‘‰ÑÎD»áø[ºðoÿ® ÿ®L»ô»ëý9³JR”›LFV¯ïOŠvNrÕô‡MkvØìÑFC¤Ý2´|ÖñKœ ¢§“Ú:^‹0ý~Æ” ð`[ÝŸÞ?xdׂ퉱Uå¯öXT>²Ç,Xc÷……9< cñøÚï³v§ñCiü¥4ž–¦?$°Ö¥ƒúôõ¬äh‰ðèì•pjndaan®í=uG ÏK.J’6Ú>*d2|äT öÓ¤²Ak²o‹ÉȈÑ,0Z:nz4ZôÚ0èIn´š´ã#]‘FwºvsºÛ銊tÙKÂl ŽÈx›a`¸ÑîbX÷~«<…q'° ¶¶/E¹>4r}häúÐÈõ¡‘ëÅÈc쉱(›h‹7‹•×$z—(~IÂì©ýÜ´G¯·xû¹y³Îâg%%¡õª:êÆ.’×k—‹$ä­aTŽ0‹U¥<å[óÀÚmaŽä¸¸ä(ã°xîV»xYMƾsfÌκý–I +S”m-·./È1Z :ÁbÔÞ7tˆ!¦dÖº“—Œ ?þÍÐñ­bij*Û•gX&Åvù†åæ—ä¯ÈWŒÒáÁHŽä,†š‹±dÙ¬âaã5Yýü›}å™wej2á”}(™9JÛ?xX¸ü‰pš6«|d¯¨¤íט|ÉÉYOuk¯ÑjiùKZ®Õ&ä¾61ö£æðöpMxØG µØq¯Î>yu¨®ñNælUÀœ™9W¤ sˆ5šf3[xMz¬¸·O啎P¡9DOm!ŽPù#Ñs:èKJІLJa2¡ŠI,w“hÔ¤®yÖü)>;¯Rüχ5ûO‡äCˆòG0׫'¦ôs½Ï:nbqevAUvM\ê’~â4 ¹%³ðÕLUà#&3d«ÔMœä/œCôû !:óóÇЇS÷ Ç:ŒQYå9…Fø9&ÙaˆÎ*Ë)\U.ݯLˆ‰N´j®®*h,ϳe×UO™±ºÊ}b>4ÞÂ9å) þãWü´E¹ØhS”0³qr|Ãˇ9Î]py Í ²38‚]ç‹ ·’Q|ØÌÒ1š¥Óg³æJ2ÛPÖ,¦Ë,Ž_³˜=³˜83ò0ŸX‘I6á}SöÄaq)UÒõ‘…ÂíÒͶS¼}&_ŸêZ§²ƒ|iŒÍ©Ê+ÞðÏN¼±¶éüšä\Q{&GÁAÍâliÂéü.<ä`éì^_BIÉ3ì<ÍÊÓ,<ÍÈÓ |˜Â34<)ôQ•rXRè,N ÅI!‡%‰#8)×ÄMQâÓ*J¸+JœöQ‘(%|õ ¾â²ÁC"Xm;¦)Nü<>b">¹4}ºZF+uvÈe¹t&‹½,_ü´ðFýàÂ9ì ÕÊ»c;èXq÷òüÂÎû;Ácv¹Š—L®Z\žì*Y2yÂ’rÿËòƒ—T—nÚÛžÞPµy^ᨹ›k'nn)5g3|³}à:å5øf;—uïá’œo ­Sh•˜äéc Þ$–KŒ3S 8S 83VdgŠag Ï„1§)t²V—×ÏuûÓ&ºªl“ !CŸÙ1…§~d(T?‹hÌé?²FhßI/ìÑѪ^Ùz휡åã|)'-–(§+ÒQS[—=¯gÆÐ]ΑÓ}žb_ezùú²âÆ1ñüÃÕ_4Þ6d”w Xž…Ú±f«gݰâ gÍÅ»»*.l+rd” ¸yZCQÛqZÖ Õ¼oU±|–Üê’êÉÕTï®Ö ¹l\ÈeãBëgœøé±#”¶…Ø,˜¿ís§ŒHaq‰ýæ[Í%¶ŸKì]—XO®ùWbùLH0‹v‹ø‘qÚ+±ì¶h,9ïŒ1}lŸbo¶·Û•1ö1ö袷ƹt££q"µ‹p¶í¨M]n™¡C1Sø” y^+WEÝ9úPZï MHhê5/Œœ³yRÞŒŠ¼h“Vo6˜3K¦ +áJ÷Mñ×ùÒ3¦ž?5eÂØ §AQƒI6$¿*w˜/Ã9Ô7Õ?Í—ÎÃ+–NL‹ˆ‰‹Jq;;º<®Ho~jÚ¨¡î!™ÅÓ‹F·TeY"6KD´Íg3DÇE;¼y 飇z† +ªs‘<ø©f™ö6–ÍÚ›ÁìÞìϳCs‘š‹ìОέÞl±z-1Öì£Þ ‰Ö£1†÷smŸ¶äóbWŽ ‘Ï?A1´––¢ú¡wŒ<9)`Ò‹83ZPšeF›'#'¦²Í—¸)"R„Òå‡ðFK˜62âƒ1ãcR¢Œº0vfâ[x˜>µºs’&ܓ∷^7XDØm°Ç;R<¦ÙsÃLaºðX1î œ÷ÕÊÃ,—]è³{†ó\#•#–Í99<ƒß9*–Çô~­EÒÍà }ÃD@!ê1^àåùfnöˆsß#N{óð¼Œ*¯ÙžXe?q¶–Ø#9E‹ ç‘ú·Ôè(½-¦+J¸¥åáø–ú¬t8Ä®ŽÖ¸Rft¤»“¼N³öÍ7´fç„ÄT;ã±ÿ0rGº'ÑeÒ>ÿ’Ödw»S#5aßd…;,:D˜>ࢳ8Âù¾3ÜaÕ*z“a O)ZsTÄÀá›-;ùçº+˜— ñ9áEl%Eý"¡8Ýæ-¬$¬.z®ÇÜEÆ {4„ELlèÛ%ÿtîì¹3u<<1.2ÞaQò§$¸ §Žäø¶“`Óèæ==ÐøúMÏZìfFoÔ-xùÍwV®|û÷¯,ÄwEôÏFxsÇÿÝÅÿ%× g¯ÿ9—fÌ¿ô ü'®Ï¸”WµóO¹>ÿñK×sò¥Ÿò#×sÿo.CÓÙëìuöúo»î<{ýû_L|‡¦¿&ŽbŠÊLÏRÔ¿:¶òÙ¼‹_ÎWð$¾šß̯Q6±þ$ßÈf0-bs†»VÔ>fÄ‹;ÒZÜ~º&SËDâ¹&þ°ÙÊX}}eE^EYaiÁª¼<õïù5â·ÿÉ—ñÔä1vlðC该µáÿ½Pްûÿ·@;ä,Îâ,~ ÊwlöÿVð×Ù–ÿ"lÿ1èÛØví¨3 €5ýá m)ɬî?Í.–üïe Ë8‹³8‹³8‹³øÿ šelKè»íO¿ÄwD|ãì ì~pnDÑ—,޾T>ôñ†ç?Vz$ìûáaûÅÿÙÌÂÔï®xý}¤å] endstream endobj 19 0 obj 8643 endobj 20 0 obj <>stream xœíš|ŹÀgwïn¯÷"ÝIWtºS9ɪV±UÖjV±,ÉÒÙ:WÉ’lٸʖ).0˜f @è5DNgŠŒ)„bÄ1y ’`ô¾Ùï$[z˜’_Þ{yy¾½oÿ3ß|3;óÍ7³»'†¢!; Gš3²‰ø)ù-œæw¬mßÍçÂiWÇ–Íîû®}q?¤_'Dª]±aåÚ›?,»Ò¢0­\sæ ´wWbIíîjï|»úÞ÷iPƒ2¯ºj㥄è¨Qb÷ÚÍg }i&èZ³¾£óÓáºò¡µíglÐâ$P–H]×¾¶+ÚŸA8¹6¬ß´ós?¢åzº6t}6¶:¸¾~„þBF÷’?d5ÙãÝIÎ'{È^òy,'çBêr¹ƒÜEÂäqò,y•ü?£gJ×5÷ ‘!cÇÆ†Gï”jOÐì…œIâ>®Ó}ù#ù€ 0yÌlòùœ¼Þ_^§>ß žWÁyå„ÇOߎ{vxl²¶DËП»D?—–»a6vP§Oœ§ñ¶¨õx['ú‹Ž‰Žè¸G¸wBs|Ü“k¡Ý‰>›ìÁkEÍäÒ©ž=1}óIKn%·ƒÜg:Ss㩟Á §òsÒOçÇS¿ ÷{a/ ûÈýäò œÈß¹ãåQ3nóÍú‡È1 #Åù’ ‰ºÇ µ?ZúX´ä!1ýyv¡çÉ äy bçQž'/B|¼L^]ëuòF4‚ŽˆäeäWäe‰ŸüVªe¤ÜAò;—œùWÙk`&ˆPµlé’Å‹†Zƒ-ÍóšæÖÏ©«­©ž]UYQ^6K(-).š9£° ?ozÆ´ô´d¿/Ñ›àŠ1ô:J©ó2©„c’Vé­js‡ýma‰ß[]NóÞvP´Ÿ h »AU5Ù&ìnÍÜ“-°\1ÅR@KaÂ’Ñ»‹HQzš»Òëªðº™…M­ÞSá ¹ÃÃbº^LKübFj¸+cº+Üa¦Í]®ÚÒÝWÙVí ¨”åÞò.ezPª ©‚T8Ù»a€I.aÄ›\9c€%r ½l˜óU¶w†›Z++OHÔ‘r±­°¬<Ì‹m¹WÑ>“ Ýiû.Ô“åmu§·³}qk˜k‡J}\e_ßî°!NñV„SÎúC ¹+œæ­¨ ¼ÐXݼ‰ 0a©Oïu÷}A óÞá&kÚ£™Oÿ¡I:Ä 7Aùxš@ß ‡0>‡öåÂA,‡LxgS+æÝd¹#B„Œ@(̶ђƒã%– -Ù9^2Q½Íë¡SUÙýnéŽ ï\îNOï‹_|¡ÜæümË;º)Û»ú¼è·–Ö°P ¡=:ÖÊÌ °ooƒA¬¢nhj gx7„ÍÞ24…›ÎÁªæV±J´ZØ\&mÑZáŒÊ Ú/we_[v¶åmjÝOrÆÞÈu;öå\¢ý[ËaRü•}­+®6G'Äç w«ÃBྷµ+DgÉ«§¼—óˆWkÁئXÓ‘ó>¹»•up!:[ pWÁÉ[Vz˜.1Kg´¬ÈÝÊ8ȸ\%jAS“Ú ç+¯¦E­Z^íð„<øù–.9¢}’úÂòÚÒƒb¢Ox“v ­i‡RÜ•]'tpR£Òh£­}s?Yê‹è…¡†œNgõx烕 :šUtcÜaÒènõvyC^ˆ!¡±•ŽúZœßºfo]ÓÂVq¶£QÒ2)‡å˜ gØrˆÁª€c|ZÅül1?‘­žR\3^ìî“{ëšûhãÞhƒÄ +-ó×´_X`Ì…¥Y»›·ªÝëÖ»«úÚÇv. •mÝ3hÞšÎ>osk‘Cìë¼Ö펳襌¤Ž©k)KOƒ½§lÀË\Ð4 04/lݯ‡ÇÜ ZZ#,Ö·•…¡¬u¿övQËR-UÒŒ›fhKó #íûBvŠ¥Q!æ;"êäã:†t ²¨ÓëXÐIP'ˆ:úIŠéÃv[éî¤Ó³-ÔÝ×¢‹‹Xa*áË„o ³Þ’†•©ÃJoWYXå-£úRª/E½Œêy ÆÊ€sèžÔ׿…} ª•8 EŽ6ékiõr ‡<j‹A¶†Øû¥¾Z°›M¥ Ô³Ã;;Úi?H°•Öå}5!ÛñÁ¤&¬€ÑÀ¢J¬CÃ*uÀÜÀŠõwB&¼3èE[W…ÄpÖ‡IµwL;¶)õÓ e„úŒÞlqmÂRPúvS( o¤¹5ÈÂÅBè$^ =ïðBQG›¼-!Í긗*¨é‚-QâïEéˆ:,ΧÒ(ÊiÐ |iZ5.I©…°óbnwÔ®­« Gþ\­Þ¢Úøî†®RÓÇi3Mƒdž÷ ØYh§Å–x(k|5í°ùc}h¼ã•åtPEÛB-OG®¿s¾–Á±;½gzNø¤§yéÍ&qÀ«¦@B}SáEô4ùT­FT÷õÉ5ß\ý%×L”B^•F 3¤œûuÖÈïÈ sí‰/KÜÇÔFÒNžëxXz’AÚà÷ƒ±1˜f@Á ²gEœ%®AöLħ p:bKÄ9Ћ،&›"Ι€žˆ³°±±>â,¬C¬Å k§EâgV#VEâËÝ‘ørÀJÄ D¢Ñ–c…vD–-C,ÄU– #!"BˆVÄÄ|DÑ‚˜‡hB4"s#q€zÌÍAÔ!j5ˆjÄlD¢QqÔÊ#ŽZ@bBˆ8ꥈ’ˆc Q„˜‰˜hFb›ˆ|l,1‘‹mæ ²±^"‘˜†HÇÆÒ°zë¥bY "‘„–~„+$"¼X/-=7Â…p"â#ö¹€8„#boرˆ,³!¬¨´ Ì–Tê1§ChQ©A¨*„¡ˆÄ6䑨&!¤ šp˜c ‚ˆ`Æ£ˆ±ó5æ¾BC|‰ø;âoˆ¿Fbš_ >Ä´þ‚ø ñgħhò âcT#>Bü ñ!š|€ø#â},{ñ.âˆwÐämÄïQùâMĈ£Û|Àëˆ×"¶€ß!þ•¿E¼ŠÊ#ˆß #~&¯`îeÌý ñ*_DB¼€xñZ>‹ø%*ŸA6vâGhy.¶² «ŸƒØ‰8±±± ±qVÄ{2s&^á lútļB/öe3b^¯«oDl@¬G¬C¬E¬Aœ†CY×[…èŽXò++"æ]€®ˆ™ÆngÄ|6 #b¦õ–£²=bm¨\†Ê¥óÀ’ˆù\Àâˆù<À¢ˆ nÂÌÂˆÉ !Z#&%`b~Ä·y&1ÁýiA4#æELp›gš"&¸±3ˆ†ˆ‘öznÄX¨GÌAe¢•5ˆjÄìˆî›LšT¢²Q1Ì”E tQΊZBÄ”F %ˆâˆFkb&b¢0b "†4@~ÄPÈCLè…rñB9ˆìˆz0 ‘1PGf ¦a_ÒiØ¥v)‘‚]JF$a'ü"áÅ héÁ.¹±.¼ž–qV·#b1hiCX±ƒ„ûi ¬§GèZ„MÔ˜SEôKʈ~)@Ñ/È›0Ƚ ÷€üän~ŸƒÜ¥Úáú™ê,ת3]woWmsݦÚîºô·€Ü rÈ 7€\rÈOA®U¥»®¹Zy§ë'ÊÛ]W¯¹d/ÈåÊn×eÊ]®K•?u]¢¼Þu±òF×Ð_rçsýˆ+p˸vwÏéß<;¸=¸£{PµQmwl¯Û¾u{ÿö×¶ õ2å¶àYÁ­ýgÏ ž<£ÿôà–þÞ ¤×Ü»¹—û¼—éïe*z™Ì^†%½ú^w/§Þì nêï ’žÆž=áÉÌpÏ[=,éa”ƒc÷õ8œU@a[F_µ1¸>¸¡}pÝŠµÁÕЭU+ƒÝý+ƒ+ :ƒ]ýÁŽ‚åÁö‚¶à²‚%Á¥ýK‚‹ õ/ † Zƒ À~~AK0Øßl.h Îëo 6Ì Î}}A]pN]°¶ :XÓ_œ]P¬„!“8}œ;ŽÓÓ̃žÀ[sY¦Cp¼åøÔ!!Ž°ã ƒ3êì.;›¢‹eÊb™õ±gÇ^Ëéb^Ša…˜”´*í%Û›¶Ol“`K™VE¬z«ÛÊYèØ¬õ-U"K+YÓűÖ[½þ*…ÑY\¶Òeaˆá-çÎò˜þ%=«Ó1:ݘŽt`®Óº´,=i9A›•_¥Ó¸4,=i8«  m1IÝØR¥S¹Tl°TÕ bUiy• JϬ"ãfÂèœlïc,®*îa†¾IJ Ã\:ÐÒÔ òcóêŠÆEaæ‚°¯™ž…¦…aÙð¾pQëÃ\`Øò–°™þÐ$æÏÛ³‡Ä—Õ…ã›[#ÜM7Å—…êÂ;iZÄôM0 –nêÝl^ §¥›6Ä/ä˜^š P%ýnÚ yzôŠyøÖš–m‚Ïæ¨nó·Wú?ûaþ·;ð/þ‰Y¶”þD"%dt÷;©–p„'3Å¿,7ÜŸnM·Ê‹f)™aRCx¦“°ÄÍ\Däÿ‚QÂúòe\“CcØÐÄ4Uðl )=úÆÑ%o=<Äd>2¬92l,,ÌÈÈÊd ƒ(f-Ëó2™7a›ŸŸ——““]ÂNÏÆz´ þé¹%l~ —“ídES´µ`LµÜï¾^Ä5ŒÈØ­®ÊusY—CkVK·Ôe“7L3é<Ó““… ¯”±R¹Lž2£"¡bé ûèý¯â•n«Õ®•Jxµ\áŽ5Åj%£URí±Ï¤Ú¯Ê%k¾º‚ËÊ]9/OzµRÎJd²‡6ßÌ*OlÀmÒ™ôj­Ôd5Êx“Qå/®¹Pn³Ûx¥’W땊˜«\¡”©õ#„{nì˜$Ij& ÄOyˆÝÎî ­º[…1zSïSk5«_¥ô*½ 1‰‰JÆšèõû†d¹x¥†±J’‰š±rjµ1~ž1( &bJKK…dÙÒ%[¡ÑV˜c¯Î6ä0CÙ…±999úí»‡† LŽ^8Ï?ÞlVfÈg¥Ó2Mâ<œ–ƒ òçå38?6ÞËx$‰gJN°º r&säÝ»¤›ÏáLÔÊTì-¼ÞžïI‰U²—0£·0‹­­„ãÕ fæè/•9'Õ:¬’ˆJ+ç8¹Nµgd+l!Dâ€Xt’É#NöÞ~’ÆæïS*-d-ô®,ŸÕ"õ[]vKf¦ÁGŸ¿ìMYðP¶O0´ÐÁ@J!3 !‡ ™Œ§³s 3†³àž¥úUÁb@:9‹Y+ñzüù&ˆH8‚§áëåh$s¹þhJâð/ÈO­É+ öìY2z—Ç£xÏv0ÖŽóCiZ³êŠh~²aÅ,WÒ–­GþyÞÆ9ÉcñÚÅU6yjéüÜé§µ7—$x|’]I.°t±'×g]’Û´|äíæE£õ+诟’±aԒ¡Éžz˜ØRJòØBAc/…ƒø yÉ®š ]æ‰ðpªM#¼žg՟Ƨe©é³zE3¸ yŸàš?á]Á46ôÃúaƒ1Pn¢:š7ÞÿÏj],¡áFw‹Ù)_Óðã`И‹î2º!@^Â]ÃJy%URqK~ñâWRiS˼ҤªsØP¼ªe†“ñ*BŸ9{yYÕººdISscIRIÏ-™ ª²rÉÝr‹-Ö¤¶ÇÛ}¥´²¼Ììºv!xåúY—Ç+³Úc-·ÏT¾0'½E¼Ü9ÈÜ{Ÿ?É?S>ÈÜó ÑùçÏd‚ÍD3“âý2ÎS“ú¥½6ïï‚¶ž›#.HÑG¥°™ŒáÃॣÃ9†=õ\ë÷¨HWïøFK—®¸‚­¶èVÊó~?8ZŽ›Ï¥ISÍv=4«©XÒ3³qU‰Í’Q·ú¢Pèìl“ÄŸlvè%̯3ÖVä-(ÏrÁÃS^ }[­1Ö •ð*ÅÏÝs„Ô‚Å›‹ .¾â¢õåÕ¥‹ôZN®æ?ª¬Ìi9­g]š·²Ð[¼æòV¹sÀkó¹gÉt²{ŠÏâ∺'>9÷oÉ.)#Uþ5£Öý×d«e•\¬ù˜à«Ç89,nZÃ¥€¯† 3¨ƒâ~hÕèúŽøÄJ]Þ‚”áI"FÜ|^kRkYu3„ŽšL§fahÖ’Y©z¹B¢ÐÄ5,κùFKöÜž«Ú“kgMç¹¹F¿ÇŸèœ\³n¥åjwŠ[§U{¼ÎØÄxÓm·_¶·ï4AcõØ4–êÁ+×C,M#ESýò@jv¾LBƒ¬VPx j'g6{3Y`!^Ù£ùù©NƒAýrj­úMÁYÂBË0À6Î9L·3[!D‘MŒ"Ó÷¨5î¯L6É',bLÑMÆË‹»àõ‡¯XÍK;Ö +ê2 …D®‘«‹[:³C°÷ÅæÍ?ýºå-½u w5ÖÎê¬Ï7¬Xµ'èeß…ûyª§ÄѹÚd5iÔʸx»Bm3©“›·µÌºòòóW”¤–5å甦Ïé*°§f¬xt/—%=žX.žCF§Áu€yV¤yWðÖU 53…«µF˜)!©êwæÎv½3Ó•h¬®Î{GHløìö#C¥à­!lPÔ …â…+ÏôÝU§ìc<“ÀA¼…&ùý'îgù¦ñðʉ>ùجV.‹ådr¥Œ·Äùmâ4§Êð¬J#‘)TZþ¹~ÃŒ–u•é…¼DÂIÀŠç5:‹>µ8¯¾m§R=jrG¬¾(¸¾Üš™â’ÉdÒ|‰Áb3ÃSÜžßR¸PgPÅØ,zå×w·lmJÒʤj¥ÄD 8Žƒ™\¶Æ(·ÅXªíó¶6&Ij™ÔñY:vŒùDšAL$…¬žìóûR\f'Ü—— *¥Ëé4»R$‰±ºAföR!±&6º;½Q›=ÝÕŽÀ}8‡>c8ü[êO ¶ñ'Ãh΄Yžù@jˆKuÆû¬Tft@ÊgbGÿÆ*Íž˜X—AÊîc IFò8T©´ùãâ|± E¬ï«,¹J.‘À‰û<BJÍÓý F*}Vâ"rçäq …ééÓ mÖÏÜ„Ed‘Š(aGW$¨šk É_ 5µÓ<6%±¦«Í­(Ôæ”Ôä̉›#ÅQ•Ò½™î?C¥ „×lB†œlˆ²!ÀÓ9âc<µýжèn?î–¼¼éÑÕÈ}‹*ê<>s‹YÆKW2J‹'Ü%c×Kù¬âìÓÚj ,*õ2f=/Í.ÊYÊqßÏ(Lñf‹C'at•‹×ÍÏ·sæªÅk ÊÄÈùØq?³iñ¹vaNñi{ç®;®tΈ-®™¬ä΃áè-äx 2¼sJSýe­¹ÞŠÄè,qa˜¥dë”YògÙí¿DËcætZŸåK!¯Ö v]–_îÔ¸ç(¢nD/Ò5O§¦`b¬ß]K\î²àj.,ç7² ‹#¼™[<}ý²º“z³béÆbêCöŒzäÅã.sͰ×}«ËRÊ[ÑKìgॲfŠ—”ÉC¼1ŽÄÇÁsZŒ Òkq†äø$™-¡Æ†ðNÆ]±¢cöÃ;Ä·›OÝOwVè¬9\n²9Í ¡ù³ “WnÔ[imS’Áë´ÉdÜu›Óí0òJ~f÷ÅÍ£ëÿëðoK™S˜ å2“cŸ°OI~A*Iߤä¥òerÅ,Ŭ|E ™oË·‘̲êüYEò´wO^µîï‚gâÖH_²Âò=DŸa…Ô'⋾uÁMâ{Ô÷—;ùuâÞÀNÜÄ» û+Sª´Š÷º$²@¦#9Þ*—+`×çåîÔ [Á¼+•r]ÛUj™Ú¤Ù`Tfq=K™À{:%·Wa±Z ÊQ¥%ד¡P*T:ËÃóZ•,&§>Oïvk™c“Öç¶6‰D¡æXÁÛ`½ÝÊ=L²ÈüÉ~ÜO<ÌîˆÑš|€uBÜÌW‚J°¦×$h5šh`P—ëŠï_Š©ÅÑ¥¤å¢.Hâüþè£>k3YÀQ/p·Ê$¾%w7òÆX·Õå·(˜óFntÙínƒŒY#¹¼¥.‰SY¼ö§çnWZTkß<ú›•šg%r­’ ª ¼†¾yòň]- ÝÚ¢Ðð'UÀ8-£WˆãÌ$ÝSž,¼fSÊVcL`FöÅÄÐ2¯ LÓj¼rs|¹NÛ0þJ0<“€P£Ýñ‘3ã¯Ù¦IƒÏ‰ŽÝÊÝ*‘zæv_Ø6:"3Ú}±¯‘U}~%Ëò0Ç—gzْΖÙ.VeIt¤;¹ÛT6墧^ýðœÑå0•RµYËrëÕf^¥SÀøµÊ‘„÷í¤.5ß¼€i!ûyôMn #‡à wX›ã»}?pJlæ;ëfe2P!ä‹þ< >ÑyLR™ §1ß]Àâ$6ÃÈÔ:ÅÈ"µN­W2Ú'Gß×›5R©Ê¨eš¤pì€óö‡ZÕ ™Åf5©Ì©ÉcÔp/^!—Êôj•Çã”?ÆI$ ¼}ɾºÄDýâ¿<'õrrÇT¿T‚_Ô/•0 aÍ|ÐhL"IDc§ÿfT ™v€É$‰ÄŤ »©”“ç4…AÆÂX§ÛûÈáèËì~…ô7ÑQ÷‹Íþ€6&;,ºá1%ÒÉ?JòÇŸLà“÷€ïæq2…F¯™®1*¥œ:ÆÂÔÏÝX?Í.×ù*r »[ UJxŒå*^5kñ†¢¶5ñjoi×%ÇØdƒv•Ìj‹1ªe*Réö'™ÄŠÓW.¨ži‹ÉÏt'¤Àò–›¬V³‰W%&ÄæÍk ¤Ì_¶zë%-GbñÊ~†SuÒãè¿êÁÞxêøgÜŒo9ž:ù!Yü_©åìèûa‡l‰ìÓïðO~È-ÿÄãÇ' þÔqê8uü ÿ÷”Wþ8ý™ŸeÌ„)I#ôéÑÀ,a¶0×2Næ"&™a=7ÌÍô2Ï¥ÌA"á>&"!e`+¡ÿ;Oȧ†±183ôLÿ§ïnˆ¶ô÷D–Ðà×ÒÒRU™YYUQ˜¹93Sü¿~æRú—éïù‘OÎ~J>›¤Àñ‰vŠÜ<öü–…¤å”ü0án€™?%§ä_D$ñ¤é®…Ìù‡äRÿ}„Ý8Vòï&ÌRúß)²R sóß"ì£ÿ ÜC6þ+ wÙvR¹‚XNÉ)9%§ä”œ’7a׎½~Jþï ¼§/£ÕŠþVqòƒÿË>¾÷¡eº¢/H,þ(pàOÛ^ |¼ìª¯³F7)ào ,Qˆ¿=Àç? øAL endstream endobj 21 0 obj 8089 endobj 22 0 obj <>stream xœ]‘1nÃ0 EwB70éØR\Ò%C‹íd™ > endobj 24 0 obj <> endobj 25 0 obj <>stream xœ]Mn! F÷œ‚Œç)ò&ÙdѪR{LÄ" "“Eoß1nºèâ!=ÙFú¾î|½\sÚt÷QWÿI›Ž)‡JõY=é…n)«~Ð!ùí×ÚëﮨîüæÊ×w!½/PT½lø5У8OÕ婞bDE9üõ£\,ñµÚ£æˆ»(€ ¬# `uBŒgQ3³À«EìÄz@ìÈzD†«C¦öÕ‚Ø6õ(€‰¬˜¡…|¥á¼\·ôîî¤ý³VÊ[ë²uÇ­¥Lu—µð•ÞQ?Ã:t› endstream endobj 26 0 obj 224 endobj 11 0 obj <> endobj 27 0 obj <> endobj 28 0 obj <>stream xœ]‘±n! †wž‚78s¹ƒFм¤K†V•ÚàÀD7„Cä2ôí‹qӡÇôÉÃÏp¾¼^òºëá£ná“vÖ+Ý·G ¤º®Y™QÇ5ì¿Ö×póE ç7_¾¾ éÖ@Ié[¤{ñªÏWR'<¥„ŠrüW2Nv,éÙjP{Ħ# `‰õ€¸‰uBìÌ:£ndµ(€µ¬°†õ°Ö# pèUŒý `#k@\¯F`îG àúÜ„L|²iY0m_Ò´·šþÞiì=“à¬8bNøÝßH‡G­”÷þ=wN|Íô÷Ue+¼K7ÔÛ endstream endobj 29 0 obj 250 endobj 13 0 obj <> endobj 30 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 12 0 obj <> endobj 2 0 obj <>endobj xref 0 31 0000000000 65535 f 0000005834 00000 n 0000034384 00000 n 0000005775 00000 n 0000005624 00000 n 0000000015 00000 n 0000005604 00000 n 0000005882 00000 n 0000033762 00000 n 0000031925 00000 n 0000033967 00000 n 0000032659 00000 n 0000034175 00000 n 0000033363 00000 n 0000005923 00000 n 0000005953 00000 n 0000006005 00000 n 0000014602 00000 n 0000014623 00000 n 0000023351 00000 n 0000023372 00000 n 0000031546 00000 n 0000031567 00000 n 0000031905 00000 n 0000032171 00000 n 0000032344 00000 n 0000032639 00000 n 0000032879 00000 n 0000033022 00000 n 0000033343 00000 n 0000033599 00000 n trailer << /Size 31 /Root 1 0 R /Info 2 0 R /ID [($IÚ6nCçßÝ‹*e#)($IÚ6nCçßÝ‹*e#)] >> startxref 34495 %%EOF pyutilib-6.0.0/doc/plugin/figures/pca-figures.ppt000066400000000000000000004000001367314503500220200ustar00rootroot00000000000000ÐÏࡱá>þÿ þÿÿÿyÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýþÿÿÿ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxzýÿÿÿ{|}~€Root Entryÿÿÿÿÿÿÿÿd›Oφꪹ)è`‚ßÍÊŠ€PowerPoint Document(ÿÿÿÿ ­ SummaryInformation(ÿÿÿÿÿÿÿÿ‹ÄâDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿôþÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯ðR5ñA©´Y9cjZû6Ü* xTª}¥cÂÚÄòO¤/Ïjä§ôÎʺơu&~¿Ô0û½[S™£5^C%ÿ½Õ=ºY ß$$ƒðß„ï:Uˆ Æ1ð«I~j“„)‹Wö&>±c"ÍRW+p'ì¯ÒÑBÿCé_Ä ‰,>/ÿ àÒÛé?ÿÿPK!$[»Õùdrs/downrev.xmlDÁJ1E÷Bÿ!¼‚;›´¦M‹ˆEq!Në¼NÞL†N^†$¶Ó¿7¸Ðåå^Î嬷£ëÅ™Bìñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!zŒª"fdrs/shapexml.xml¬UmOÛ0þ>iÿÁò× Ú”¶@E@€T6©B…pušÕ9{¶Óµýõ;Ûé |˜&˜%gßÙ÷Üs/¹ºY׊­¤u•Æœg§]Î$ ]Tøšó—çñÉgΠ4Êœo¤ã7×_¿\™‘3Œ£™œ/¼7£Nlj…¬Áj#‘t¥¶5xZÚ׎±ÒIôàÉQ­:½nwØ©¡B~MWájf¦6Hâq5µ¬*r>à ¡&—c­½´lª@È…VÉ}ÞiÓ9 0-–®Eÿ‚¨°ð›Â|†¡~°Ot"œ2$`Á©Y0¿1„«ô–¸ÙæüW–r‚½ÎùY{4ÙÓ‡à\ FëÒÖŸEz}#]–,xÌz}⓳M·gzºŒäÚ3A½‹ËÁ0²8²Þ ‚LH‚¥±Î?HýiT,\”s+…§ÄÂVç•‘×Ä„ùõ.6ÁrN_Ê|ª¨çJ™ü/´Ýr¦~ ËùeÖïSè>.úƒó-ì±fþFãÕ½V9'#@A÷ä\Pž#Êù™ß(ùY!\µRUõJ}\„ÝB–O´Š*  {N«ªWJÅEh0y¯,[¡ôë,Úø }Ú9té\b#bîB¾|²—0Á;» ýÉJþ6‚ÆkÊ6lÕtdøJÝ=mPƒD“™‘F#¦¢e,#Âö”[ÜÉrgë]bwϬíméÿb×jç åáyëhÞ̶{qLaì4c£‰‡yjœ]¦RFÛù!±˜‚…P*˦®jý³J´RÌ9—xò2K“)›'®ã»É9’“0Ômµ¤)†z%Ζ҆_@œ$h¶†FÄ“†¹ª¶ò{\ÎÁIU…_‘zjµ.£ìj¯$ÐU©~vP‡NQ¤£z¤"ÿ/uM¯,iôì¨k&ØRÛï­ %Îð’þ(9ÿVã‰òíÄ„w I!Ü;…pm—’;ÈÐû0×HtæúÿÿPK!ñ”%ÏÓùdrs/downrev.xmlDKK1…÷‚ÿ!\ÁMZ| cÓ"bÑ¥ÓJ×·“;œÜ IÚNÿ½º<œÃwø–ëÉêD1õ-Ìgq\Ï­…¯Ý殕2²Ã!0Y¸P‚õêúj‰¥ g®è´Í­§-t9¥Ö©îÈcš…‘Xº&DYblµ‹x¸ô˜Gí±gyèp¤×ŽêïíÑ[˜šjD“ê{³kŸ>‹Í[±˜7…µ·7ÓË3¨LSþïIVÇ¿òõá,<€jÞ/‡Ø» S¦hAÜÄT,A¯~ÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!zŒª"f*drs/shapexml.xmlPK-!ñ”%ÏÓùzdrs/downrev.xmlPKõzð¤°ÐŠðà  " ð@Ÿ¡ ‰‰‰þª ð  ð “ ðlï€`LÕ‡¿¿ÿ?€Ã6¿Slide Number Placeholder 5"ñï©ÃéPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹è* é(€à0Ø òd/È 0ÒÕ˜·DCalibrih6ZY¤""€£"€£"0‘"$"6ZY$"Õ"·DArialih6ZY¤""€£"€£"0‘"$"6ZY$"Õ¤ €aÿÿ¥ .©  @£nÿý?" dÿd@ÿÿïÿÿÿÿ  @@``€€ ØðÐðx4!      ƒ ð0ƒ†Á¿ÀÅÁÿ@ñ÷ðó€Ðdº“°öÊš;­”ÇÊš;<ý4ddddÌ"h6ZYl¦"Ü"”£"ZYúgþý4XdXd°\§jA¡Âi¡Âi”£"Úûÿÿšÿÿÿ"pûppû@ ÿ ˆiŠ)º___PPT12‹ %Š0º___PPT10‹ ÀÀ?Ù Ú OÙ Ú ðó(ÂPK!V®Ã÷©[Content_Types].xml ¢( |ÍNÃ0„ïH¼ƒå+Š8 „šôÀÏ(°8›ÄªÿäÝVÍÛã¤EB¨p²Ö»3óiVëƒwb™l ¼VµLìlù±y®î¤ †Ð‹9!Éu{y±ÚL Iu FŽÌé^k2#z †²écöÀẽN`¶0 ¾©ë[mb` \ñì!ÛÕ#ö°s,žåûH’Ñ‘ÇÃ9«‘’³¸ê}è~¥T§U”Ë 6ÑUÁúl¼ù;à¤{-ÕdÛ¡xƒÌ/à †føtøÎ“CRÿ›œ¡Œ}o vÑì|i@¥ŒTÞØ;õÃú›\/E·_ÿÿPK!íä K»& _rels/.rels ¢( „Í Â0„ï‚ïönS=ˆHÓ^DðªõÖtûƒi’UìÛ›c ‚ÇÙa¾Ù)ªÏhÄ›BœU°ÍrdµkÛ)¸×çÍDd´ gIÁDªr½*®dS(öƒ"QlTÐ3û£”Q÷4bÌœ'›œÖ…9ÉÐIú‰É]žïe˜3 \0Å¥Q.ÍD=ùÔüŸíÚvÐtrú5’å’ñaèÆ“I+D¡#V0;fé[e!ëÊ/ÿÿPK!Øý¬¶tableStyles.xml ÌI‚0@Ὁwhþ}-CQ$ +wê*”!é@h£ãÝeùò’/Í?J¢—Xìd4ÿàº5ݤ{ƒc@ÖqÝqi´`° y¶ß¥ÿý?" dÿd@ÿÿïÿÿÿÿ,£|ÿý?" dÿdØ@ÿÿïÿÿÿÿ € Ô €" Ð@€ ð`€»€ £nÿý?" dÿd@ÿÿïÿÿÿÿ   @@``€€@£nÿý?" dÿd@ÿÿïÿÿÿÿ  @@``€€P£R    @ ` €`£ p£>€£>#[PK!(×bÈù»[Content_Types].xml”»nÃ0 E÷ýAkÉéP…í }l} ém Õ ¢$_ÚÉtÐI $ÞsÈvs^ì±K±“kÕHÑ$ëâØÉïíÛêQ ª-ø±“G$¹éooÚí1# îŽÔÉ©Öü¤5™ J#¿ ©¨\–Qg0?0¢¾ošmR¬ëªÎ²o?Y 8‹â Jý€Àm iò|ùTÙï²X+N—âù3›tröÎ@å9ô>Ú?«4 ΠMf˜¬rAâsù¼ºÝÍѺo_p€¯âõÀª§íôô?êyjÅ Š&—é áúXg3½¬¾ÿÿÿPK!Žê*ú¾8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆÐƒÑX’ml“¢oŽÃ0ofêö5OâI‘­w ª¢AN{cÝ àv=mö 8¡38yG ÞÄÐ6ëU}¡ Sñh‹Lq¬`L)¤d=ÒŒ\ø@.;½3¦,ã ê;$·e¹“ñ›Í‚):£ v¦q}‡ÜüŸíûÞj:zý˜É¥’'k茜(f,Æ’ùÛXˆªÈûA6µ\üm>ÿÿPK!‹l ^,!!drs/slideMasters/slideMaster1.xmlì™án›0€ÿOÚ; ÿR@PHµvʯjŠÖöp«1Èvºf¿ö{ƒ½ÆþíQö$;§¡M˜*­‘’,ÿÀ†óù>ßqw Ï jÝ.ò’ÅÈ9ë"‹°¤Ls6Ñí͸"KHÌRLKFb´$Þ¾V‘|¸–KJ„"˜ˆpŒ2)«È¶E’‘‹³²" æf%/°„[>·SŽ¿€è‚Ún·Û· œ3dÞç/y¿œÍò„|(“EA˜¬…pB±õE–Wb%­z‰´ŠbôÛOT©íå’½ÃÑGôž:Õ„[˜ÎÁN‰äÈJÉìO¯¿Æhàx^,Ç%‘² ¾büì‰,¥3·0•a6L,‘j^ÉUrAfæj’Hëk9öhh7g§‹ÀFqkm,^/}G¸âV­E–4OÇ9¥ZªâA.)¯ËÑͧ´¢–\Vd† ý®øÜ¡R=‰#‚ŸM\O$âÙD"ŒìZC½c;¸~jÕ*š–érÃÄæW1êyî@Ù4g) ŠQg5P ;·?˜Ößd0.™llú=Ï1(Så2ÉÆ¸ÈéR鎬$Ã\P\ËÀÑtq #z8F¿¿ý¨í×àØSì¬]pdmY§…#ëü•£vW¹CÍ*V~“•ú8Vß7X¹á°R€”ó‚ûõÖ¬Ç멃½v,× ûjà8`m:–«cóž;–"d`y XF‡…Ç(x\°¶x–>›{K2°ü5,·ëú¨%¬_?7£à!°R€ «~ƒ•ïx:è%«mé…Jgö>½P„ ¬ k8úƒ{‚õÏ9ý+悊®aÕiú•_‚g)BÖ + ûÇœ_lI–"¤«åF}\E¥Ì¬–¡rœÔHM I¡³#Â:·×¦j]?²ê^ÔåÚNrýF%[ë=ÏáT7Ç8D£’õü@ûÃë×B‡fŸíÕãªÓu²OKÁÖ œÓ‡v€¶INè†:—; –ÊDwcN!>Y-Õ@àÕ­ÒÓ jÉÀá ¦û'µd½}?8iÝ~Ì4›É¥úMcþíþÿÿPK-!(×bÈù»[Content_Types].xmlPK-!Žê*ú¾8 *_rels/.relsPK-!‹l ^,!!drs/slideMasters/slideMaster1.xmlPKÉ| ‡"ð"ððñð( ð ððú ð “ ð^ï€Àc߇¿¿ÿ?€Ã(¿Title Placeholder 1ð­ `}ðà " ðTŸ¨ Click to edit Master title style¢!ª !ð< ð ƒ ðVï€ gß¿¿ÿ?€Ã&¿Text Placeholder 2ðð `ðà " 𞟨RClick to edit Master text styles Second level Third level Fourth level Fifth level¢!    ª Sðç ð “ ð\܇¿¿ÿ?€Ã&¿Date Placeholder 3"ñç©ÃáPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!wK¿ |” drs/shapexml.xmlìVQo9~¯tÿÁòë‰ÂK“U– ’Òž„*TÒ0x½a¯mÙ†BN÷ßo<^BÒ‡Ó©©t/•¢Å»3ö|ó}3ãܼ?¶Š¤óÑ%ÏÞ8“Z˜ªÑ%ÿz¿è]qæè ”Ѳä'éùûéoonlá-ÃÍÚ¶äÛlÑï{±•-ø·ÆJ¶Ú¸¾º‡¾uÒK ` Võ‡ƒÁ¤ßB£ùÒ‡µ]¹¸Ÿ+ÇšªäcÎ4´ò‚d+Bnª¤c#Þï\Ó.@(K#v¾ÃÿOåà&ù Óæ£Ãl² O`θ4ŠAí–…“ETU@b1¨š#àcɇݶä‹û/iyJŠcíÚ×¢œÞ@aêšaÄqþ‰äìTòÉ(Ç¿A„…<&"¢l4šD£Iž s˜€DOë|ø(Í«A±xPÉ…K"‹—Di"Âá87Õ)znð%O¥ôãÒa cü­qœ©?´/ùu6cê^ˆ)ÎÜsËæ…%¨[£JŽ;@ <§ä"¸D§òaNJ¾dLWT†ÅÀ@=`Ã)"«’õüË)‹zF?oTS-¥è%ö•¼UŽ1†cF>¡Ñ!}y—p_⛚0:ûÏÎA-R$2t@ÒºK0Æ:wõKA‡`:-¸%ñ‰‹/´ÀôÛè GA⺣!²{ج‘Ò ep!yKXê¹ÛŶdµÑaF[` *óDwfܲý€M½ÚkÇ'’”^[A$Z±_ÒõDØs¹¬Ï¾Á'nŸxµâbÕá_ü:ëf*Ü©%7ûõãÓri<½|ÆÁJ.6©iÎ:uý'µªh.þu7œ ³Åݼw•_å½ñUžõ®G“aï:û0›®g£Åmþ7Ö=©mÇç}ÓJª‡ºìömÓš?›$ 2Vr©{_×ižQ²MÒ‰žû’k„ï×ìpôi³¦g;éâ­A3HNÎÎÑ Ú©ãüWÍ£üD) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!nW>…¢ drs/shapexml.xmlìV]oÓ<¾Gâ?X¾E¥ÍÚt[´uƒR5UtüÇqÖPÇÎk;}Û!þ;ítݸ@ˆ!qƒT%Ç9Ç>Ïy·{ñf×H²ÆÖZå4y=¢D(®ËZÝåôóíõàŒë˜*™ÔJät/,}3{ùâ¢ÍlK°YÙ¬ÍéÚ¹6-_‹†Ù׺ ºJ›†9,Íݰ5 嘃£FOF£é°aµ¢3¥¶«vi¼Äo¶KCê2§SJkàr%ëR›®)„!KɸXkYBNé°ßw3@Zh¾±=.ö+¸JÃþG°O ¥ßD•xÃê€OžwÚ®‰Û·@ge h é>§ÿuÌ8a(ðïr:éwÇ-8æ¥ ѲlW™æ¹`g,ÓUEàqš¦cKÉò8Åoä1°Lìá08IÆã©7à°OÓä$p8ŒH¼ek¬{/ô³QPNàfÛ.¬ól]j#mæv—ºÜ{Ëo”@,­ßO!jþ×ÚÜS"?*›Óód2Aè.,&éé 汦x¢qòJ˜ˆ)ŽsrʉtJëVn/ÅsAúpåV&¨ÂäвJQ}Â'_R‰Ï§·³mp]K¾ÏÄ•4dË€Ñí’`ãjåâ—Ót„}‘ïДÞ8°ÿèä"z ŠH”û½¯C—ÿv*Â!§afø„ð)pÞµ*1"×= ÈnY±!o>W.Z ¶P—fãÛ“TZ¹yØÂ:§‘iÌÕ«±eÍÔš{Ù)Žã#IR­ZHlù’÷|% ë°Ç—¢:Ø:¹}àµåGí¼r?±ëµE‡,ÜîBKÝêþA¼F‹ Ú`âX›æ§¾übY%Ë0'¿NÞž¦óóÓóÁ|r9LÞ%£ÁÙÛt:M®¦ãwgóótú uß+ S…å0ÈʦkêF©cBÀWN…|^ʼnÊ1KáÙåT ¿L½ÁTz$J6Âø;$L Î0?{Ö‡Êß²¾²`VÈÚß)H”ÒK£udÛ¸+)ŽŠ•/•Ǫ´/þÈ@üò¨’Ѥ#0)« #ë@{·P}Z:ï½—C‘>+\F9}Õ¨tý¤e?(‹ nPpÛ÷'²àôCà_‹üÑq3â/t&žèO³På’æçë¿ÒÒB¡ôÉ)jñ<þ€hÛÙwÿÿPK!± «Ôùdrs/downrev.xmlDÍNÃ0„ïH¼ƒµHÜ¨Ý •(t[!D"-°7?¯#Û´éÛcq€ãhFßè[m&7¨#‡Ø{A˜Ï (–ÚÛ^Z„ýö¦‰¥Á #œ9Âf}y±¢Òú“T|Ü¥VeˆÄ’º”ÆRëXwì(ÎüÈ’»ÆG)ÇÐjè”ánÐ c–ÚQ/ù¡£‘;®¿vßajª‘L¬o;½{/¶OÅbÞˆ×WÓÃ=¨ÄSúòs8¼ý•¿¨W‹°Õ¼œ¡·ÅÄ!»eÓl zýÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!nW>…¢ *drs/shapexml.xmlPK-!± «ÔùÝdrs/downrev.xmlPKõÞð¤ `Šðà " ðVŸ *¡ ‰‰‰þت ðn ð c ð$ƒ¿ÿ ?"ñ*©Ã$PK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!kK´£¾drs/shapexml.xmlŒMn1 F÷H½Cä}I¦ „F“aĪöž‰ #'JÞžð#$vìlÒ{þºÍì8SÊS` ÍR ƒ™ØjøýÙ}®Aä‚lÐ& ÿ”aÓ,ºØ8m '6¢B8·Qá”ØJ™ÇyÌˉk¶Éc©k²2&ÊÄKz'¿”ZICEÚoÚ‹ÉÌõ¥šzÃöÆ¢­K ¾c1 ÿj…8£Ó0Ødßɇì>=›ôÿÿPK!KsALÖÿdrs/downrev.xmlLAKÃ@…ï‚ÿaÁ›Ý(X$ͦEŠ Çivº‰fgCv›Æþz§^êå1ÃÞ|¯XN¾S# ± làz–"®ƒmÙx¯¯î@Å„l± L~(²ƒØÍ3¿\`õ?ê/ç[ج¶Géâ\Ä!ý-ÛRk.“sþÔ»..—·´aæ¿­?ÿÿPK!¥Ö§çÀ6 _rels/.rels„ÏjÃ0 ‡ï…½ƒÑ}QÒÃ%v/¥C/£}á(h"ÛëÛOÇ »„¤ï÷©=þ®‹ùá”ç šªÃâC?Ëháv=¿‚É…¤§%[xp†£{Ûµ_¼PÑ£<Í1¥H¶0•ˆÙO¼R®BdÑÉÒJEÛ4b$§‘q_טžà6LÓõR×7`®¨Éÿ³Ã0ÌžOÁ¯,åEn7”Liäb¡¨/ãS½¨eªÔе¸ùÖýÿÿPK!ky–ƒŠtheme/theme/themeManager.xml ÌM à @á}¡wÙ7c»(Eb²Ë®»öCœAÇ ÒŸÛ×åãƒ7ÎßÕ›K Y,œ ŠeÍ.ˆ·ð|,§¨ÚHÅ,láÇæéxÉ´ßIÈsQ}#Õ…­µÝ Öµ+Õ!ï,Ý^¹$j=‹GWèÓ÷)âEë+& 8ýÿÿPK!ùÏ 9ƒ\theme/theme/theme1.xmlìYOoÛ6¿Øw toc'vuŠØ±›­MÄn‡i‰–XS¢@ÒI}Úã€úa—»í0l+лtŸ&[‡­úöHJ²ËHÒ۰ŇD"|ÿßã#uýÆ£˜¡C"$åIÛ«_­yˆ$>h¶½{Ãþ• I…“3ž¶7#Ò»±õþ{×ñ¦ŠHL¬Oä&n{‘RéæÊŠôaË«<% ̹ˆ±‚W®ݘ­¬Öjë+1¦‰‡Ù»ã1õ j’ÞVN¼Çà5QRøL 4iâ¬0Ø`R×9“]&Ð!fmøühH)1,L´½šùy+[×Wðf¶ˆ©%kKëúæ—­Ë“UÃS„£‚i½ßh]Û)èS‹¸^¯×íÕ z€}4µ²”i6úõNN³²‹´»µf­áâKô×dnu:f+“Å5 ûØXÀoÔÖÛ«Þ€,¾¹€ot¶»Ýuo@¿¾€ï_k­7\¼EŒ&“´vh¿ŸQ/ cÎv+áߨeð9 ¢¡ˆ.Íb̵,Öbü‹>4aE¤f)c¢¸‹ ªàM‚K3vÈ— Cš’¾ ©j{¦2bNïÍËïß¼|ŽÞ¼|vüøÅñ㟎Ÿ<9~ü£¥å,ÜÅIX^øúÛÏþüúcôÇóo^?ý¢/Ëø_øä—Ÿ?¯BÍ%zõå³ß^<{õÕ§¿÷´¾-ð¨ Ò˜Ht‡¡ƒnÆ0®äd$ηbaZ^±„'Xs© ßS‘ƒ¾3à Wà:ĵà}¤ xsúÐx‰©Ê\îhv+Šàç¬ÃE¥ni^%3§IXÍ\L˸Œ«xwqâø·7M¡tÒ*’݈8bî3œ(’„(¤çø„ {= Ô±ëõ—|¬ÐŠ:˜VšdHGN4ÍíÒü2«üíØfï>êpV¥õ9t‘˜U?$Ì1ãM½Ü£¡#Ò<@ôÌTh_BµvŠpL“ËŠ|押-heJ잨ÃËp'«o—‹€þû‹ïž&ûâ}qº¬½—µ×ûÏ×Þeù|ÖŠ;/²PuŸcdÓ.ÇK»å1el fŒÜ–¦a–°a}ÔëÌI‘§§4‚ǬÀ;¸P`³ ®>¢*D8…f»îi"¡ÌH‡¥\Â!Ï WÒÖxhØ•="6õáÁÖ‰ÕìðšÎÏ³í„æ š3ZÓÎÊlíZFÔ~fu-Ô™¹Õh¦Ô9Ü •Á‡‹ªÁ`aMèDô/`åu8«kÖpHÁŒÚîvÎÝb¼p‘.’Hæ#­÷¢êÆIy¬˜[ˆ éß)V+qki²ïÀí,N*³k,a—{ï]¼”GðÜK:oO¤#KÊÉÉtÔöZÍÕ¦‡|œ¶½1œoá1NÁëR7˜…pIä+aÃþÔd6Y>÷f+WÌM‚:\YX»/(ìÔTHµƒedCÃLe!ÀÍÉʿڳ^”6ÒßBе †L °£ëZ2_•]Ѷ³¯Y)åSEÄ ŽÐˆMÅ÷ëP}*ášÂTýwjÚÚfÊ-ÎYÒ•o² ÎŽc–F8+·:EóL¶p“Ç… æ­$èV)»Qîüª˜”¿ UÊaü?SEï'pe°høp¥+0ÒùÚö¸P‡*”FÔï hLí€h{Y˜† ‚‹eó_Cýßæœ¥aÒN~ꀆHPØT$Ù‡²d¢ïbõlï²$YFÈDTI\™Z±Gä°¡®ëzo÷P¡nªIV îdü¹ïYBÝä”óÍ©!ÅÞksàïî|l2ƒRn6 MnÿBÄŠ]Õ®7Ëó½·¬ˆž˜·Y<+€Yi+heiÿ–"œs«µkAãÕf.xqQc,¢.~þû>³_)ô†:äP[|tÐÄ l ª¯ØÆéiGÐ8ÙALš”5mÖ:i«å›õwºßÆÖ’Åßç4vÑœ¹ìœ\¼HcgvlmÇ–š<{2EahœdŒcÌç­ò(>zŽÞ»þ)SÒ|_ZÏÉH~ËÑ,Ýú ÿÿPK! ÑŸ¶'theme/theme/_rels/themeManager.xml.rels„M Â0„÷‚wooÓº‘&݈ЭÔ„ä5 6?$Qìí ®,.‡a¾™i»—Éc2Þ1hª:é•qšÁm¸ìŽ@RN‰Ù;d°`‚Žo7íg‘K(M&$R(.1˜r'J“œÐŠTù€®8£Vä"£¦AÈ»ÐH÷u} ñ›|Å$½b{Õ–Pšÿ³ý8‰g/]þQAsÙ…(¢ÆÌà#›ªLÊ[ººÄßÿÿPK-!‚мú[Content_Types].xmlPK-!¥Ö§çÀ6 +_rels/.relsPK-!ky–ƒŠtheme/theme/themeManager.xmlPK-!ùÏ 9ƒ\Ñtheme/theme/theme1.xmlPK-! ÑŸ¶'ˆ theme/theme/_rels/themeManager.xml.relsPK]ƒ : °àPK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!ðÛ­¶!drs/slideLayouts/slideLayout1.xml´UMo1½Wê°|O6@È ˆZÚô’THï®×d­xmË6[ø÷Ûk"•–V½ì‡=ófæ½{r»­j˜±\É)î_ö0b’ª’Ë—)~^Ý]Œ1²ŽÈ’%Ùï˜Å·³&º°¢¼';µq0¤-ÈWÎé"Ë,­XMì¥ÒLÂÞZ™š8ø5/YiÈ/À®E–÷z£¬&\âÖßtñWë5§ì‹¢›šIA ÄAþ¶âÚ&4ÝMf&x¦ävªbÜŠ;Á>ÉrµÅ(Ø›vúxÐ¥(‘$5,üSN‰@ÁchŶ.˜Y½2ŒyÙ|3z©&x?6 ƒxéÑZœµ­Yø•`Ù‘ûKB"ÅvmêÙ„ÀÚN1ˆ¸óOp"$h\¤o«´z:aK«¯'¬³2Øýu¬è}9y*爔þ¾¼èCã^ÑW‹¤‚‚=±NúØ$T_¼£+5q^Œ”á \”¨õЦ¦ämÕ)ÿ=A£Q~3èEšòëÁèj|ÈUÞ^‡}ÏØp<ìóa’ H„Ö…Û~VåÎ3ýÞ ¨oš)fÄa…uK·,謑J‚ âÉ‹ç% Zíæ‚ÄV;7› N_‘Sˆ•Ü¡b3(Pc ÇAo´L– bÈ÷#dÏ*) 2äò %xfÿ¬ãÕ{}7-¡¬R¢„Tr_! Bì¯$õÄ) c=›ú¡»²ƒá5,¡ÿO ;êõoÆ~ÿ ý†D#ö þ£Ðžî ³=:Š…G Ø:£·–Œ*8¦k˜è¤>~UqÓý*ŽJg¾îÔÆ¸ªsòƒsáùú$:œ§gX˜´xÀ§¿3ÂÈó@ôS*†Û{–4Üí1øfâ1Ò};û ÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!ðÛ­¶!drs/slideLayouts/slideLayout1.xmlPKÉ œPK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK! @ÒiÖ!drs/slideLayouts/slideLayout1.xml¬UMo!½Wê@Ü“ÍGUU+Û‘ê6½äêާ,ö¢°€€líßì&JêJ¶Ú ËÂÌcÞ›˜\m;Íz郲fÊÏOÏ8“FØF™Í”?¬®O>q"™†´5rÊw2ð«ÙûwWÝÜÐÎ>E jšò6FWWU­ì(œZ' öÖÖwñë7Uãé°;]]œ}¬:R†þþ»^+!¿XñÔI ˆ—š"â­raDs‡ 9/`²÷ëâÎ-„‰«-gÙÎ÷X9ç3PKÝ0CV*jÉ ûc%H³•ÜÆlÜÊK™LÿÍ»¥[øì}×/!•$XÀf©È¾bʼÎcðG®Ë÷òr.f38?Ø*e¢P¾-‘‰¥½“‚>˜d¯ïdÁŸ#[E"-lô™+t䇼…f„nÝR¨tÁ4#¥ÚÈ 6Ãɰ½±Ù¹âñã š 7i°Œ‹¼’)”è“‹,M€O¢20Fº€Ë aN#Â8éO&#´&;:<& ‘åh" fZ”˜J¿Æ‘ü[™y|™ ‡ˆ°uÃѤÝ^YwV¬¼«$’"­P"o6¶Ê ëCáéFKïQ¬dúÁ¥|¡RÔ¯e½yD‘vÄloæ³EìVö‰­Ê© }ÁëÜ< xƒžóűx”‹ÞjàHÀð’Á$¡<>NAÊ´= ¡ÀQ pŠq ¡Àñ% ž¤!¡ÀI p2t‘;ÁdB €Ó ¡¹²wT;>$”xÙ&'…PÞ/|xøäüêxb¼áû¾ÌF úŠ­—(± ë´õÒ‚=¨[ýìzmV){ã*3Cž!gÑôUXÆI9Ê,î%‹âH'jóÈ<µ¬9 LÍÜF[ØŽ9Ы%q+²·²Tò&ã q“¡${\k×ÌYÐâªZèªÊܸÝI©èWU÷…”Þ ?c*Y¤4éMRwz_Ûo&ˆ@[Jd™à¶qÌæAo&ŒmZÎÿ­T¤¥jƒ[{³ ˜_àæÍ7¡>\}ZF˜ý=tEM­Ý}tÂÏv_êBˆ%B3™…Fìú:.§5âÑ÷-á:ÜS;xzû™?䈙óüO÷ȤӃèç¸urt4téåŠçÉ7¢%ai®ÉgZi¦ˆd Ë »¶ï°”L¤TQcT›Ù¤‚Æx3âë|ÆmíŸçAìªàÓ„e’§0"x]ä)ê×Éðä‡Ñ,2 5b8—ýÈ÷} êìGó(ôQ µûµ ¬ÛuºH¸ì[iµSÕ¤¼—éÐT_MÙà6hêµ]ó6Ö€ Ï`'m¬;9ƒ5Õv²Á€.aØé%¬;»„u`ç—°ìÍ%l 8§!ì$`8‰å•š2=ÕJªêhªÖ.î•¶p¯ñš%R¤„³=ãè­¶® ßd¹ÎnqûGù¤0ý†?1…y }¾;ËŽ1÷[»ÙÄu³Iu»•Ù€`ì»Qõ¢af&Z8FAFùÎà Î&Ò5ÓrìÍÚV¼i¾féWÓÍŸ„‘_ëüyäwÆÛdz㧯np¤ êÎ1r‘â´cniÛ§{ m6[=Íïô)3 J4í­¡r3z_§ŸözdÃwãOÌ[É ¾NoìõцÏgþt(áÍ/z­ã›sÓêØáëõã†/æ0ï%|½žíøf;¶®·¯××>C68!{½ßñM£ÙËòñÿ˜P¶;M؆պûDÀŠù¢°_\}¦å—½• >¡pš[Ù¥Mfžú 1Tî#lù/ÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!Úß×UîË !drs/slideLayouts/slideLayout1.xmlPKÉBpuPK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!ÿîôaBp!drs/slideLayouts/slideLayout1.xmlŒRËNÃ0¼#ñ–ïÔ-„¢&•x^€Vjù€Åqš¿´vCò÷lÜê¡k=žïx½\uF³VahœÍùb6çLYéÊÆîsþ¾{ººå,D°%hgUÎ{øª¸¼Xú,èòzwˆŒ"ÈZ3ç•¥³Ê¡H[Ü‹ዼ×óù0ÐX>êñ½«ªFª'FÙx4A¥!Rÿ¡n|˜Üü9nU ›¤þÛRì=¥ýÐ`?9K4l Xð‚’Ë­.™CÀ]b `ð;Tj¨lûŒ~ë7˜¸oíYSÚQÃÅx0ÒÒÖ ñO¾Ÿœ ë*4Å2zÖåœ&Õ+‰ S]dòÊ_TÖë\Y?ž`‹éêàçRª§XT±Sç_Á¯[ÊÍ9*¼O§É3È_Êà1ý”âÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!ÿîôaBp!drs/slideLayouts/slideLayout1.xmlPKÉ–`PK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!¸RØÜÂ!drs/slideLayouts/slideLayout1.xmlŒSËnÛ0¼è?¼'²s( ÂR€8m/IlÔÎl©µ%„" r£Jß%%%mšC.|,g‡;ÃåæzèŒè1ÄÖÙR®/WR Õ®ní¹”Çï_¥ˆ¶ã,–rÄ(¯«ÏŸ6^ESßÁèžI0‡ JÙyUQ7ØA¼t-Ÿ\è€xÎEà7sw¦¸Z­¾´VÎùá#ùîtj5Þ:ýÜ¡¥‰$ âúcÓú¸°ù°ù€‘irö¿%ÑèY-µdpgÍ(E††žƒkY±z}0µ°Ðqà˜P"ÃÒIôÇ€˜V¶ÿüÁïCNxè÷A´u"˜e1̰¼µ ãEñ&ý¼0N¡«6 Ø 1”’ŸlL#'„ž‚ú5ª›Ý;XÝ|{],p/—&U“¢ÿå\-r&Ö/ª&(pêÓOQXÇ:“üIž~貤9ÑûFüeüŒ›³ >²§Ù,n\=&á¿xÎAP&ÒFƒÙ.“óÀöH}öâñÀ}ÝÑÖ pßÏæQµ5­~äÖ-‰{ˆ„Aä.à_À”v‡øqfJ´õü|Üô⛹è¥B^& ó4õ/Så0áü®ÏuòÏá[·9äù¯Ìn½BÇò÷ª?ÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!¸RØÜÂ!drs/slideLayouts/slideLayout1.xmlPKÉ0P¤PK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!ða%q@!drs/slideLayouts/slideLayout1.xmlìXÛ’Ú8}ߪý•ß0˜Ë¸Rµìf_&3S ùa‹±7¶ä•ûõÛݲÀ\œòT%UË ùè¸/ê£F÷¶yÆ6B—©’Ïßõ˜‘ŠSù2ñ>/>¾{¬4\ƽç!Dƒm'$m‡Ÿ°ˆ‡bkXd'£Ãl”<]ÀFÉÐ÷°`ÿRÈwa=:w§çÜY¤&Ìß{e¡–>¨èKɤ?Ñ}ë^ô¸qdè3Ò «BTÎ>¤x8| 1¥`™ío*Þ¡ãKø¦If¥™›])€ñ&ó)<ŒÅê/ÚÚ4x[‡ƒ“<Sà’•q¬!ß}žCäf– uR…ÚLgY}aF1§†}⥚ŠB‰Ü»TV”BÆÏ\s0∣ÁCx3¸èü¡ xsØûû°cΟ3‰De1XÐûÀxz°]a/¹„5$£u²%ƒÁ œö¥?è|¿&vgÐ ºþÄ÷è°7’ÍKDîÛ-á"â2̸Œj±´”õìUÉf9×T©Œ¡Àqˆo_®AÅÈ»XùïÄëhéÒ¹YÛ4ìÁî©W­X»ç¬H…v€™ýëmXýñ9+RU¬ÁÕïü!‚[Ñò8ÈUÑj´ãÞ˜l¸–¹*Úá¶×ƒ ß`-rU´£í(èÓ>¼ÖZäªhÇZälŸ² ±E®Šö®F;Œ¾)eÈEZR¯ R4| 캽tÑÛ¯W8¸òHá®Q±À©ØLIµz$d¤pÔºƒâG Vw³U%cVbðX¥0á ~ž`Bše¬ç‚ñhðëß |(D´Ñ1’¡z¢ÎNªƒ:YʆNLêJ†%´Ç:`DÔ°¤${¬ÖÕ}‹»ruÀºbnÄ:`]…6b°®ì±XWKX¬-× P|I$÷¾ýDÍ|¸¢¥ó÷ mÉ\DJÆ,‘](ÐSzª‹7Ð/’T·g¯NþÖŠóQ­µIZØŠlOŸ®.²Coò]»³ÓµÅiwF_/j¶?¶Ý Ü?k®¡í¬4Ž¢M­rkƒnÌ…N¬©WóG |·^mâÝz5è—o½ÚÄëÿ{µ¡Ó´K½µF×ËÚ¹”‘N^-eMýÚAÊnýÆü¸ÿ¹õk w:_ýÇsÚPÝú5¼B³ÿOcó#û5ºU²w³0Ä \º~Íô'^1‡™Ò¦›<˜B>@±EìF–<’â@¿¾G²E!&]²Y>:º÷܇äÁå¢à¤bJçR ƒöi+ L$2ÍÅã0¸Ÿ]ô¢ )åR°a°d:¸}ý2(cÍÓkº”φ€C蘃̘2Cd¬ úT–LàÝ\ª‚<ªÇ0UôÜ;­V/,h.‚f½Úg½œÏó„}—ÉsÁ„©IãÔÀ~å¥ölå>l¥b4nõ[“̲„·æEÞ=üˆÃ© 3í`ד)O‰ &f/’Œ¥0 q¯t9SŒY¨~ªrZN”[q[MÉSËЬ ÂæEs0 Â垉Ƌ¹*FC ²ØÒþbÙ¤žL^g“ìn 6É~lA‡~X°Ú±.kÞ»ÓñîÌrÃi¯¼ª¡K¯eò¤‰ðÓº_»—ÜVžÌúléËŒ4²[ªW¿tzx¼†¦N,³ø&Ó¥uüÿn’Æ\›©YræÙ49~ ?§6«™8¹Ÿ"« 3æŒ"ëñÌhÌóä‰IXšrCµaŠç—¶”¨cœ†’‰tBýµÁlý£1v†ÑÞB k ?²ë…l²‰L8MX&y #:Ÿ“UÿA5P>Hƒ´µrmdYtvŽzu©ÖîµZvìôõ µº}ÌĦ]tÖ9»èu]=“ ³×dkÔìÞ¼âmW64NÙÜÊkíïôëM¡íÃÎl´Žõ`»[°­u¬½Ç¶ßØàÀžíÂz°½]Xö|Ö€íïÂz°»°5ÀjÝ”“ Œ«&¬$`X•Í'«Ëf+.ý¦ºê ÚÜÒ%î=e‰)á¬b|zWeÐϲ\íÏî âö+ù¬L¶·ñQ]‘{‡ã*ŸoeÇ)ò_ûZô¯¾æ4Áyꃋ¾æâçŽ ÛiÜ`ýÌØÖ×zQÿØØp"[|ll«‹Ð±±56÷W_è1´×~wgçꆖw•ëµøÐÁ5qì¦J|ÚØë ¯Ëá?•FÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!äuœq !drs/slideLayouts/slideLayout1.xmlPKÉk0ªPK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!æ%•Xwb !drs/slideLayouts/slideLayout1.xmlÌ—[OÛ0Çß'í;Xy‡&é%%¢EÛ7­ðŒãÒljlÓµûôû;i ©â¡â%Mìãs~çf»§g«J±¥4¶¬õ$JŽãˆI-ê¢Ô“èþîâh1ë¸.¸ªµœDki£³é×/§MnUqÉ×õ³cСmÎ'ѹ&ïõ¬XÈŠÛ㺑sóÚTÜáÓ<ö Ãÿ@w¥ziz/uÔ®7û¬¯çóRÈïµx®¤vA‰‘Š;ðÛEÙØN[³¶ÆH 5~õK$·nà­•â—äEļ Yb(‰¦ð]ÌTÁ4¯00“‚Œ3”ÆÏÚæÎHIrzùÓ4³æÖøE×Ë[ÃÊ‚”´‹£^;ÑŠùO 1¼ô^-ì4ñ|57Õô”çˆ[M"$mMO,â¹\9& ؎ŠÅͲbñã é^g£Èw<úß´sç®tJ²dãUåXzY‹'Ët ?Éýàž¸^vÊÈgRß,X½#U­\˜ôñèä­iº‰D–¦ý¤ïÃ1Ä£“øUP²,Kdš¤?Jãlètš`$¨nr·úVk é~‘9®Å¢F•:ZÁseÝÌ­òŒ÷¥J@ĸzD)TÏ 9ÿ!ûwÁ$l>øÄ Žp¥Z³íJ¤û¥F›ç P¢8õ£ÔG÷3ôcåΕä0Ôzç¦çªOÌÕL¥cWÜ:i˜!ºŒ¤Ýy^¥ÔÅ-7œðv5SVxˈBç½eæýô#Þ¡î¨önrQ+4KÉItK—çUE?BÛ ¦»ÂùPA¤'ñ(Cqøäu]ò² †qœŒ³63¡Éö)ˆ‡ ó­‚¨¸¹ô Zê; ½RNž¯±z’2Á–¦m­Êâ¢TŠdýn*Ï•aK®P}+Ú‚ÎR»0’ÛW’·ö©Üу¹`ÉOlªÎ—nJ¥Hà ÷¸Éø€¸ÄHnƒ¼¿Å=IÐæû⎈KŒ-î`‹›ô³„(ö /yæ àÕ@-ïp‡wœŽ)ÉŸ— [ÞÑ–7MÇïgä%È–7ÛáÍýýÛíõ@-ïxËK°û÷Û!y ²å=Ùá ³ÏÙovâ[„?ó‰›Üæp÷n}ü@¿Øw€÷ÎyÜ…Û+^éšëpe®xs³ô,¸ÙãvóC îòtk€èV„ttÿ ¦ÿÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!æ%•Xwb !drs/slideLayouts/slideLayout1.xmlPKÉË ‚PK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!‹;VÄOŸ!drs/slideLayouts/slideLayout1.xml¬•ËnÛ0E÷ú÷‰l§( Áv€ºM7yµórl±¡H‚¤Uëï;¤$I]ÀFºÑƒš¹œ{8¤¦×ûZ³}PÖÌøørÄa¥2Û\ß\|á,D0´58ã-~=ÿøaêÊ å-´vi˜PÂŒW1º²(‚¨°†piú¶±¾†H¯~[H¿I»ÖÅd4ú\Ô  ïóý)ùv³Q¿Y±«ÑÄNÄ£†Hõ‡J¹0¨¹SÔœÇ@29ûuI±uäÖ>ýâ,ù†^Ç|N¾ÅJKf ¦µŠÑa k")å€àÖ1…šæ‡w+·ô9ï¾Yz¦dÒéóyÑèÃò«¡0z(Þ¤o%(÷_ϧP ¶ŸqZ³6]) JÜG&ºAñ2*ª‡#±¢ú~$º&  “Òr»ÎÑßv&ƒÇøàª J½µâ90cÉg²ßÙ÷Í –<'yW±Ž|Ldû¸îcæ1ÄbšaÅýW+Ûdü‰îyJâ*¶3*J§ á×ÍÅãŠ»Ž @ßËó…Vâ™EËPªÈî Dô,CÛ€$§D'Òâô’hä<ü|£œüAI3SÑC…ôØ!ü7È«dßMl©A`eµ¤"&ïê$5Å@þ?¥`ºÑtï$œÚ6¯w3Jº Sfg,ê …¥=ª±A}‚|&}†üºRþtõ«´Žg¨ßØÕÉÅ:W^mŽªÓIrvoçïÎ>zLçd>Þ´¿÷Ðä¡ßí¨Erô#H;…B_B’Æðc™ÿÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!‹;VÄOŸ!drs/slideLayouts/slideLayout1.xmlPKÉ£UPK!MŽóüý»[Content_Types].xml|ËNÄ0 E÷HüC”-jÒaj; +,†°·ÈKq:šþ=ig ¬,?®Ïµ›íÁY¶ÇD&ø–oDÍz´ñCËßwOÕ-g”Ák°ÁcËg$¾í./šÝ‘XQ{jù˜s¼“’ÔˆH„ˆ¾túä’¦AFP0 ¼®ë©‚Ïès•—¼k°‡Éföx(壓„–8»?.¬–CŒÖ(ÈÅ©Ü{ý‹R¢(×M¤«bƒË³„¥ó7à¤{-¯IF#{ƒ”_ÀR'’dKñæ0åÉFü¿öŒïÐ÷F¡jrå'"&¤×œß@_·ÈõõÝ'ÿÿPK!pð8ܾ8 _rels/.rels„Á Â0Dï‚ÿönÓz‘¦½ˆ xý€%Ù¶Á6 Ù(öïÍÑ‚àqæÍLݾ§Q¼(²õNAU” Èio¬ëÜo§Í'tGïHÁL m³^ÕW1å6°ÈÇ †”ÂAJÖMÈ…ä²Óù8aÊ2ö2 ~`Or[–;¿Ð,˜âlij©@Üæ›ÿ³}×YMG¯Ÿ¹ô£Bòh ]pöÏ”±{J Läoc!ª"ïÙÔrñ·ùÿÿPK!dæð" !drs/slideLayouts/slideLayout1.xmlÌVËnÛ0¼è?º'zX²Áv€¦M/y!N>€‘h[E$­Úß]’²4rÈA›¢vG³3\’³Ë]ËIÏ”n:1âó( LT]݈õ+¢ 5å`ó`Ïtp¹øþm&KÍëºï¶††Ð%cd†ºÚ°–êóN2ïVj©GµkEÿvËÃ$ЦaKø|õ™ünµj*ö³«¶-Æ(Æ©þzÓH= ÉÏ IÅ4ÀØì·”Ì^Bµ¦1œĆ©&â`•WK^A[˜x²äMÍì+-Ÿc$úßJ.僲wýƒ"M>3ý f„Á |—¾h¹[©v1£%AvóüÚã/$Ñ’í ©Üduœ­6÷ÄV›_D‡Ã€Áá£`µtý[N2”ㄈU¹P ©7]õª‰è N,ß•WÝõÖŒðrCœê•Q͇º÷V’!E[Y®1¦EVDN‘$žDi’½Õ%Ïó$ÅT'Nó(r§U;hYšÝ®Þ£ª/ðo]¡%×fiöœYµAZsøo9ÅŽaâìy Óš+Î(t”wÆ,®xS½ÓV7†ÜRm˜"Æ®3 aÀyÉDý@}|‡ŒâѾ r aèüù¿K“Á¥åöÅ}3ù £ôöÅ+–Ýàíç ‹'y<õŽMŠb {Â[Ǧ`—µÔ:–g F;\#ØâÝúôøÐ1´‰÷<†…CZªnlç4¢†î·CÊ×à¬<èbØÞÁng]®Ù LÀIÝA—_7œÛÜâØW¤§6Šî à`#Œ›É³è@Õî‡lÝ;Á/|z~ˆÃäH5ÍrT†Œ/’ô|'G¾qjÛl||‘¤ç›ù–áø#KO8;!\$…m‹ñF–žðôH8I èÜQ.adé ç'„ót2ÒžC–žpq$ŒlGÚtÈÒ¾8!<Ír»÷o #K»Uç=²ÿ‚ãÎ˯<ñíÙç®›0ÄK©½QruKå}o%‡[8Ü3àä) ÷n<:!ô‚Ã=~ñÿÿPK-!MŽóüý»[Content_Types].xmlPK-!pð8ܾ8 ._rels/.relsPK-!dæð" !drs/slideLayouts/slideLayout1.xmlPKÉv ºOffice Themeî.€ï€ Žð†Ððð¦~ð( ð ððÆ ð ã ðl€`£Û˜²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 3#"ñ¿ÿ@©Ã³PK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!žVN/ drs/shapexml.xml¬VßOÛ0~Ÿ´ÿÁòëÄúc°ADЉmBU ÏÓÅqÚ ÇŽl·kùë÷ÙN€UhšÖæ!=Û—»ï¾;ßõübÓ(¶–ÖÕFç|ôqșԔµ^äüáþæè”3çI—¤Œ–9ßJÇ/&ïß·™k>Ö.ks¾ô¾Í'–²!÷Ñ´Rã¬2¶!¥] Z+Ôž<5j0?ª5ŸÀ”^ÏÛ© ’¸[O-«Ëœs¦©Ë™°P’}âƒN'¨GYCÂൠmQ¶©lÓA¤XZú…¸wÐQfªŠm@ÎÉøx~¶9‡g§á™2¹ñLà¼ßd£ñÙIÐØ’ ÚZç¿J³7* åÜ‚ðG­oO®zaÛU—7µR‡`!æV^+ËÖ¤r^,F]pÏ^‚K¥â«£EõâØoÞp Ž•Že’êô[%¢™Dþb¥þw "C†#Ù;D¨ëQ:ZR)?'C<=C}±” €¬Bf†­Ð{J zl©4:Áµ¬*ÔÎÁœÿFLrþì1Fnôáœ7µ6ö- Yé"OþR¤Âh3¿¹2å6À)ð‹®³o¨ïÚ¡o|£Kø¸€`{¡èëÕµÁÂ!i±46羯=V]cQÎÏØ}´ž}­D#`©!{±C˜EA­S0µ.qR\jq¢8+euOÅü)çg£ãØ>}T‘t«¯ì#Z%gòs?¡•7œ)Œ ݃¥%Ú?ót¥̧JWzÞŠ€Éµb*|ª÷Q¸tý­{­q•n\Ðõ.éöjØ{9½¬|oó ½î´X¡ Þo"­Åjþô,Þ ŒçÅæeTñT¤îLؘ¥y…„„GYz×ÇUS7æg(EÄ9—úèaŽù öFaܰ"²•TV9×pƳ­1'µ™G‰³GiÃ0ÇŒåLÆs§ØŠh×¥!U?ÉoqY“ªÃêÚL­1U”ËÚzŒ2ìºÆ_+I0šnzèµ”ifKºaiçQ°Ó'ßìÛ}'ê ZÝêŽÀU°Ýɱ˜ß¶²"œ}¤|¸Ûøžv$¥áv„ëºMÌû ûÜFòñFJðnc·è›þ`¸vòÿÿPK!tûß$Õùdrs/downrev.xmlDËNÃ0D÷Hüƒu‘ØQ‡ A•Ö­ª”× Ô´›î.ñMl5¶#Û4ñßc±€åhFgtV›ÉôìB>hgÜÏ `d'µí/w `!¢•Ø;Kج¯¯VXJ7Ú=]êØ± ±¡D*Æ¡ä<4Š †™Èæ®uÞ`ÌÑw\z3Üô|^Ü ¶ùAá@•¢æ\ÕSìµß¾ŽŸ*w¦«Ú…IBÜÞLÛ%°HSüŸRz®õ_ù‹z—€µoéËk¹ÇÉ ÈnÙ4[_ÿÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!žVN/ *drs/shapexml.xmlPK-!tûß$Õù¦drs/downrev.xmlPKõ¨ðp`Р ðcŸ¨ General Class¡ª ¦ ðÔÐðð[  ð ã ðl€ÀÛ˜²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 4#"ñÿ@©ÃPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!5É©drs/shapexml.xmlìXMoÛ8½è x-RÛi’:B•¢ n 0âô\Œ(ÊVC‘I{íüú}$%»kEvííA}GšÑ|ó=ÃïޯŖҺÚèœ^9“Z˜²Ö³œ¹»>sæ<é’”Ñ2çkéøû‹—/Þµ™k^Ö.ks>÷¾Í'æ²!÷Ú´RCWÛÇ­ Z+Ôž<5jp<ž ª5¿€+½œ¶$ñy9±¬.s~Ê™¦!o¥@3%Ù t6Á<ÊæßûpÑe«Ê6]Šô”KK¢îì(3UÅV9?¿=Ñ u·!ÊäÊ3Õñxt~Tº³ñi0 Y¥‚ekÿ(ÍÞù°à(ç=Aç(£åó)T"ÄWhá g ¡;5º4ð’' -à>mºÒÓV„œ\+&§}…Cןºï-.Ó‰ ¶Þ%ÛÞ Ï¶Ú•ï}övo6aÙé‹pðn[,¦ñ…ln>ƒ+£‰§"á3eèÇmâ*Œ$eé‚ÎÞ/šº1ßêÔTÔœs©¾LÁ½èß(²Nû•L9רÙÖ÷àHm¦Qâì^Ú@äàW°š;ÃVDç80 ©úAþo rRÕØa®ÍÄSE¹¬­<ǤÅ^bR®ñWJœ§3P—2mˤ³–žüvóQï1©oÔâFw\߃ùu++È÷U£”§ïÓŽBRR·£®Ã›&à/Ø×ð Tùãg"u9!K˜×/=šç5’mÓã Ú0Ùÿ»„·¿Ñë?@/ ÌÏG¯çuD6¨A+^ØtýSNIS¾ÿLNyîSa»SÙbÛS å÷iÙ›ã·Mï ô¿ý!ºöâ/ÿÿPK!QÐ$Õùdrs/downrev.xmlDÍNÃ0„ïH¼ƒµHܨPBݪ ¿§¢–>À6ÞÄVc;²—&áé±8Àq4£oô-V£ëĉb²Á+¸ž È×A[ß*ؾ\ÍA$F¯± žL”`µ@èÿHèÿ ª ¦ ðÔÐððÿ ð ã ðl€€ÊÛ˜²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 5#"ñ×ÿ@©ÃËPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!(|µhX drs/shapexml.xmlìV]oÓ0}Gâ?X~E£íØÆˆÈ›4@šPµŽgtã8m˜cG¶[ÚýzŽí¸@5!D‹x¡Ùu|s﹟g¯ß¬;ÅVÒºÖè’Ož9“Z˜ºÕ󒺻>:çÌyÒ5)£eÉ7Òñ7OŸ¼î ×3|¬]Ñ—|á}_ŒFN,dGî¹é¥Æ]clGG;õV:©=y8êÔèx<>uÔj~Sz5ë§6HâãjjY[—üŒ3M\ÞJs%Ù) :A=ÊêF?ÚpÑëÆvDúˆµ¥¯ˆ{¦iغäHÍ&<Ꭰ¹öLàåññøÕùWwgç§Ax’÷ Ù[çßI³7 •Ü"È´ºq>¹Ê.ÂkgT[_·J"òXOy¥,[‘*y5Ÿ Ám½—JÄW£ôݱ_?â9V:–>é7J&D·5‹ÝùÇ¥G†Çdï$‚„@/OÒÕ‚j™òs:Æ/g(G›Ai ÈTæ`ØÙS‘±¥ÖüײiÐ;s>þUb’ó­Ç¹Ñ‡sÞµÚØÇ(Teˆ<ùK ’£/üúÒÔ›§Â_lš}{D}Юä'§/±|<@°Y¨²`½º2!\’ cKî³xåqöŠr~Àî 9ÀêÙ×J4‚,udo"v·QP«L«kLBŠKÍA!гZ6wTÍJþjrr–#¢*’nô¥½ÑpÖ >oã'´ô†3jÐÃ5>Y`åcO—ZÀ|êt¥g½˜\/¦Â§~Ÿ„¡ËS÷£Æeš¸ ë]ÒÍjx÷ýömã³Í¬÷bkšÃ}µÄ¼[ÇÄVËÙÃV¼F ÛÃG°dTñT¥ýLòq›X % 4GEz ³÷Ë®íÌ—6%1—\ê£O3°.ò7‰ÔRÅ|%•eÉ5\R¶í=ØQ›Y”8»—6P8˜lD åA±Ñ8¦#Õ>È÷ñX‘“ª ”um¦Ö˜&Êuk}ä9æ:¥$Áhšõ°m©Ð&°Kš±ôæ'2ØÙ”nr‚–7zHà2ØäØÌozÙÎg>R>L7¾§ IéB¸ á†}`Sæýû<üK£ôx¢xöÁò¿˜áíÿ©ù SƒÎÆÔ`×üŸš½§&ÍgöÈØàßï̬]ñ ÿÿPK!Lœ´Óùdrs/downrev.xmlDÍNÃ0„ïH¼ƒµHܨ‡R…ºU~O@ °Ä›Øj¼ŽlÓÄoÅŽ£}£o½Ý N¢õ¬àzQ n½¶Ü+øüx¼Zˆ Yãà™dŠ°ÝœŸ­±Ö~â=©±F&¥±–2¶†Æ…‰K×ùà0•z©NîySUKéÐry08Rc¨=¾‚æ6 6잦·W“÷®oº•ËJ]^Ì»;‰æô?~xÏ즿òõ¢,AtÏù+X½Ç˜(((nÅ´X‚ÜüÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!(|µhX *drs/shapexml.xmlPK-!Lœ´ÓùÀdrs/downrev.xmlPKõÀðp° ð„Ÿ¨Interface interface1¡. @èÿ Hèÿ  ª ¦ ðÔÐðð  ð ã ðl€ßܘ²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 6#"ñöÿ@©ÃêPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!oÞÙÁ…Þ drs/shapexml.xmlÜWßoÓ0~Gâ°üŠFÛ­t‘¡mÒiBÕº=£‹ã´aŽÙni÷×óÙNºQM± ÁöÐsßwßýjßX7Š­¤uµÑ9½r&µ0e­ç9¿¹¾8xË™ó¤KRFËœo¤ãN^¾xßf®exY»¬ÍùÂû6 œXȆÜkÓJ ]elCG;´V:©=y8jÔàp8œ ª5?ÁUz5k§6HâËjjY]æü˜3M \^Is%Ù„:›`e sƒ‡w¸xeëÊ6Dúˆ¥¥ïˆ{e¦ªØ:çïÞ 'Cð³Éùádr<„ ϔɵgúÃãñÂâLÀâh8~›  H°l­ó¥y2(.ʹ1 2Z]:X¸w;£êò¢Vj$ÄÔÊseÙŠT΋ù(D[/Á¥Ò{ñÕQ„šºwì×8 ¥c¤Ü£8ýFÉ„èJ"}±Pÿ¸ P!Á‘ì"H”õ(©TÊÄÏ”G¬ÀPAäKi È*dfoØ:½§¢Ç–Õù ®eU¡vöæ|ø+b’ó­Ç¹ÑûsÞÔÚØÇ(d¥‹<ùK’ £ÍüúÌ”›§À §Öˆú¬]ÎÇoŽ1|<@°½Pô‚õêÜ … $-ÆæÜ÷â¹Ç©›+ÊùYûT`àsá©·ÄKÀRCö2b‡pµJÁÔºD'¤¸ÔÛDxËY)«k*fw˜Ÿ£ñ8ŒGÄ$]ê3{‹­ÃY… Æ—hé g {Bwj¼²ÀüÇdž.µ€ƒTëJÏZP¹VL…O? m×÷ÝC‹³ÔsÁÖ»dÛ›áÙ½ö´òýØuÚb‰9x½ŽÄËÙÝV¼@ÛÃ,Ìhâ©Hó™2°q•R6eéÌÞ.›º1ßêD*"ιÔ73,`°7 ë„Q™L–9×pö³­o±(µ™E‰³[iÃ6OÛˆ°Ÿ;ÃVÄ÷Ñ0 ©úN~ŠÇ‚œTuØîð ÍÔSE¹¬­Ç.ÃSiQ—È“kü¹’„ËSχ©K™6aˤ^KO~Z Ûù—xt‚÷3©'jy©;"—áîNŽeÁü¦• à}Õèå»5L; II!ÜŽB¸n.Ø”¾vQ[ U€Ïÿ'AÏ51{É ÷o6Ë3ÍEß#_ÛÉŠÔå”,a²ýÓCìyååžô8ªÚøí¦ÿRƒßC®=ùÿÿPK!=-ðÕùdrs/downrev.xmlDÍNÃ0„ïH¼ƒµHܨ´ ÝVU?'ª`‰7±•ضi’·Çâ@£}£o½l/N¢ñávQ€`W{e\‹ðùñ|³9E½wŒ0s„íæòbM¥ò£;ðé˜Z‘!.–„ SJ)c­ÙR\ø]î,¥C+U 1Ãm/ïŠâAZ2.?h¸Ò\wÇ‹P-SoÂîeÜ¿ë¹{²mÕ¬ìŒx}5íA$žÒyüÝí§ûâ¿üC½)„%ˆæuþ F(&Ù-›fK›_ÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!oÞÙÁ…Þ *drs/shapexml.xmlPK-!=-ðÕùÝdrs/downrev.xmlPKõßðp0 P ð‚Ÿ¨ExtensionPoint(interface1)¡& ª ¦ ðÔÐðð  ð ã ðl€àAݘ²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 7#"ñïÿ@©ÃãPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!¬¼nõ~Þ drs/shapexml.xmlÜW]OÛ0}Ÿ´ÿ`ùubm¡," @b›„PEÙótã8m†cG¶ÛµüúÛIaš¦QM<”›ÜkŸs¿ÛãÓU£ØRZWóÑÛ!gR SÖz–ó/·—{Gœ9Oº$e´ÌùZ:~zòúÕq›¹–á°vY›ó¹÷m681— ¹·¦•ºÊ؆<ílÐZé¤öäÔ¨Áþpø~ÐP­ù ®ÒËi;±A×ˉeu™skjy#Ì”d‡|ÐÙó(k˜C<¾ÃÅ»([U¶é(ÒïP,-}‡ß[ì(3UÅV9ÿðaø~ˆø¬s~0 !™2¹òL@¿8>€[œ‰E0$"Á²µÎ”æÙ¤X¸(çAø(£å•ó ª‡¯QuyY+µ‹ ÄÔÊ eÙ’T΋٨snƒ •Þ VO>@°½Pô‚õê … $-æÆæÜ÷â…ÇS7W”óÓ@ö¹ÄŒžçÞ/A”²W‘;„›(¨er¦Ö%:!ù¥fØ&Â[ÎJYÝR1½ÇüÇa<Âÿh$éJŸÛ;lÎ*dè,¢…7œ)ì Ý©qdŽùÉÿŸ½ÔÄì$(Ü¿Ù,/4}|el++R—²„ÉöO±—•—‡ ÇQÕÆo7ý—üríÉÿÿPK!ë1TRÕùdrs/downrev.xmlDANÃ0E÷H½ƒ5•ØQP…N«*¨…n@m9ÀOb«±Ù¦InÅ–£?zÿ¿Õf´¸rˆÆ;„ûE‚]í•q-Âçyw·9EwŒ0q„Ízv³¢RùÁùzJ­ÈKBÐ)õ¥”±Öl).|Ï.g–R>C+U !Ãm'ŠâQZ2.7hê¹Ò\_Nß¡zJ Ûýðñ®§Ë‹m«fi'ÄÛù¸}‘xLÿÏÅ!ìö‡¿ðõ¦òðæuú F)&Ù-›fKëÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!¬¼nõ~Þ *drs/shapexml.xmlPK-!ë1TRÕùÖdrs/downrev.xmlPKõØð€p0 @ ð‚Ÿ¨ExtensionPoint(interface2)¡& ª ¦ ðÔÐððQ " ð ó ð‚€ÀœÝ˜²‚ƒ„¿¿ÀË8cÎÿ€Ã(¿Rounded Rectangle 8#"ñÿ@©Ã PK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!*¬§drs/shapexml.xmlìWÛnÛ8}_ ÿ@ðu‘ú‚8I…*E“"Ý‚À°Óç`DQ¶ŠHÊkçë{HJIkdEc´@±~p†âhæÌíŒóöݶQl#­«Îùäõ˜3©…)k½Êù§Û«£3Μ']’2Zæ|'wþê·mæZ†—µËÚœ¯½o³ÑȉµlȽ6­Ô¸«ŒmÈãhW£ÖJ'µ'GMÇã“QCµæç0¥7Ëvnƒ$n6sËê2ço8ÓÔÀåÂtº”%[H +%Ùõºáµ(k¼aôµ-mR¶­lÓC¥ïZZúñÌTÛæ|6ž‘¨@¾Ÿ@„gÊäÖ3ûÉél2…“³YРРÙZç?JóbP,ʹ ÙA.)£ÍµóÉßà'ÂG/Á¥Òñ5Q„{rì·Ï:q ·NèÜÎ…CPéØ%©7ÐÄ~§d»(olèî4.`ë°—#í?IWk*e7ã3$o.6‹ÒU(ÚÁ°õO Ä€-uMï/¸–U…¶:˜óñ%&9ô#7úpΛZû…ªô‘'©ARc´™ß^˜ràø rzi¨¿µËùñìt ŽðñÁB1Ö«KƒéÂ%i±66ç~/=N=ï(ç—ìK! ¦—Z‰F¥†ìuÄaµIÁÔ`s Ú q©¶Žâ¬”Õ-Ë0êäø8'¢*’®õ…½­rV¡>ïã+ÔyÙÂ6Ñý5^Yc;€·ç0Ÿ:]ée+&׊¹ð©ß'a膩ûZã"M\Ðõ.éjxötû¾òƒÍgôúÛ¢AÞncZ‹nùð(^!ŒÇà ÖjTñT$⦠ÙX¤u†‚„½HYúB^ﻦnÌç:¥ç\ê£OK¬idoS³•Tºœk¸[ÜÖ÷X§Ú,£ÄÙ½´açccW¶x¯ØŠhãÒªä_ñX“ª¿ ®ÍÜSE¹¬­Ç¦ÃS×øK% FÓ¤®¥L›°vÒ„¥'ßl‰=žüJO¼0$¨»Ö}»`»—c;0¿keE8ÿlô‘òa¶Ád´w!)]·w!\Ï6eÞŸ³»ø eÇ7Šï6Øýó"¼ýbûÃN ú–ù™#-x>Óɹ»ëg‡}3<G]ÎÉXî{ í—”ç÷*ËSÒþ¿KÃψ®=ÿÿÿPK!Ya$¬Öùdrs/downrev.xmlDAKÃ@…ï‚ÿaÁ›Ý((&vZD)Š—ÚÔêuÌN“ÐìnØ´©¿Þ¥=>Þã{|Óùh;µç[ï®'(v•7­«>Ö‹«{PQÈê¼c„#G˜ÏÎϦTp+Þ—R«q± „F¤/´ŽUÖâÄ÷ìR·õÁ’¤jmÜvú&Ëî´¥Ö¥‡†z~j¸Ú•ƒEnÃû²üÙl;úÔϽòî‹//ÆÇP£ü³|¹~“¿ò„z59¨íËñ;´fEQ8 $·dš,AÏ~ÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!*¬§*drs/shapexml.xmlPK-!Ya$¬Öùÿdrs/downrev.xmlPKõðpð @  ð~Ÿ¨Service myServiceA¡*  ª ¦ ðÔÐððL " ð ó ð‚€`ŸÝ˜²‚ƒ„¿¿ÀË8cÎÿ€Ã(¿Rounded Rectangle 9#"ñÿ@©ÃPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!›±Ìg¤drs/shapexml.xmlìWÛnÛ8}_ ÿ@ðu‘ú‚8I…*E“"Ý‚À°Óç`DQ¶ŠHÊkçë{HJIkdEc´@±~p†âhæÌíŒóöݶQl#­«Îùäõ˜3©…)k½Êù§Û«£3Μ']’2Zæ|'wþê·mæZ†—µËÚœ¯½o³ÑȉµlȽ6­Ô¸«ŒmÈãhW£ÖJ'µ'GMÇã“QCµæç0¥7Ëvnƒ$n6sËêXESŸ ÓéR–l!¬”doø¨WïEYã=£¯¹h”²me›+}ÖÒÒ?HÀLÊLU±mÎgÓÙéÙðv@y:›ž@†kÊäÖ3…á!Ð89›å€-! š­uþ£4/FÅ‚¡œÛ¡d“2Ú\;Ÿü ~ÂcgT]^ÕJ"±ÒòRY¶!•ób5é#|ô\*}_ðEh±'Ç~û¬ã÷rë„Îí\8ô•Žm’šmìwJ&° ‰úÆ–þá6A뢦±{9"!0“tµ¦R&p³1>Cò†àb³( @Y…¢ [`ð”@ ØR×ôþ‚kYUh«ƒ9ÿWb’óG1r£缩µ±ÏP¨Jyò—$5F›ùí…)wN¿ §—öˆú[»œÏN§ ì ƒ`½º4˜.\’kcsîñÒãÔóŽr~À¾rjz©•hYjÈ^GìQP›L :× ­—Zaï(ÎJYÝR±|Èù›Éñq`WDU$]ë {Zå¬B}ÞÇW¨ó†3…}¢ûk¼²ÆzqÏ;-`>uºÒËVL®sáS¿OÂÐ S÷µÆEš¸ ë]ÒÔðìéö}å›Ïèõ·E‚¼ÝÆ´ÝòáQ¼B‡,Ö¨â©HÄM²±Hû  ›‘²ô…¼ÞwMݘÏuJ)"ιÔGŸ–XÔÈÞ$n¦"f+©t9×pö¸­ï±OµYF‰³{iÃÖÇ2æLöx¯ØŠhãÒªä_ñX“ª¿ ®ÍÜSE¹¬­Ç¦ÃS×øK% FÓ¤®¥L›°vÒ„¥'ßl‰=žüJO¼0$¨»Ö}»`»—c;0¿keE8ÿlô‘òa¶Ád´w!)]·w!\Ï6eÞŸ³»ø eÇ7Šï6Øýó"¼ýbûÃN ú–ù™#-x>Óɹ»ëg‡}3<G]ÎÉXî{ í—”ç÷*ËSÒþÂÿKÃψ®=ÿÿÿPK!©Ÿ%JÔúdrs/downrev.xmlDMOÃ0 @ïHü‡ÈHÜX ¨”eMp+Œ]Mã~hS%éÖñë±8ÀÑ~Ö³Þ|9¹^(ÄγëYЏò¶ãÆÀÇûê*²ÅÞ38Q„åâülŽ…õGÞСL Ç ´) …Ö±jÉaœùXXíƒÃ$ch´ x¹ëõM–Ýi‡ˇzj©Ú—£30Þ†·uù½Ý®öø©Ÿ;Þ÷;2æòbz|•hJÿÇn½Ëóúþª^­´HJýrú Ý`L ÈFR^üÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!›±Ìg¤*drs/shapexml.xmlPK-!©Ÿ%JÔúüdrs/downrev.xmlPKõýðPð @ ð~Ÿ¨Service myServiceB¡*  ª ¦ ðÔÐððë ð  Ó ðtZ¿¿ÀËjJÎÑÔÕÿ€Ã&¿Elbow Connector 11#"ñGÿ@©Ã;PK!!ô|²ê[Content_Types].xml”‘ÁNÃ0DïHüƒå+J8 „âô@à•°ìMb‘¬-¯ íß³iÚ ¢HíÝ™7š­7»i3$òµ¼.+)mp{-ß·OÅ” :3-÷@rÓ\^ÔÛ}¬FÒrÈ9Þ+Ev€ÉP" Oº&“ù™zý0=¨›ªºU6`ÌE^Îp–ý][¦áRÿ¶¥‰iÛqÞ |.ìßÀg^D«®ãçø?ábrnèíàCOÆý©ì¯Ôe^N?§Îÿ Þn~ÿÿPK! „ìÄÛdrs/downrev.xmlDOMkÂ@½ þ‡e„Þ̦Ф®!´XZz(jŇì4 ÍÎÆì&¦þzWz›ÇûœU:šF Ô¹Ú²‚Ç(A\X]s©à{¿™/A8¬±±L þÈAºžNV˜h{æ- ;_ŠÂ.A•÷m"¥+*2è"ÛîÇv}€])u‡çn¹ˆã'i°æÐPaK/¿»Þ(8fûÓë[~¹ŸúØë|øÈû/¥fcö ÂÓèÿÅw÷»ópû% ×WÿÿPK-!!ô|²ê[Content_Types].xmlPK-!–3XÔ— 2_rels/.relsPK-!ÓF’šÚF/drs/connectorxml.xmlPK-! „ìÄÛ;drs/downrev.xmlPKù,ð°@Hðê ð  Ó ðtZ¿¿ÀËjJÎÑÔÕÿ€Ã&¿Elbow Connector 13#"ñFÿ@©Ã:PK!!ô|²ê[Content_Types].xml”‘ÁNÃ0DïHüƒå+J8 „âô@à•°ìMb‘¬-¯ íß³iÚ ¢HíÝ™7š­7»i3$òµ¼.+)mp{-ß·OÅ” :3-÷@rÓ\^ÔÛ}¬FÒrÈ9Þ+Ev€ÉP" Oº&“ù™zý0=¨›ªºU6`ÌE^³NyEA€z•y~›õ¢#¾ÁV4lGúiw.NšïÃαNBÎ’3=°úÅÙÖ©&ÇŠÏæÚóJQ)’˜ÍªÄÿ¨’NaõBPB£k>²IÕ™ïàý…t?YÕØºþj΄š¯–y|Ð%Q™¶ePt»º+ËôС¢\¬1†ØkPP,óõÖ°«Å[Ä‚,銕ÖùðU™ë5Æjþ‚`ÏÙ”“V1|ó!A_a¬¯Oçƒëžã~ÞèN>uZO“xúÔV;6]ó0³í‹ª(ç‹ð‡T$1JÝ ¢Ó$Y8Y8”ÐáÀpzÏ™V¸$Kš¦ìSܸ á¤U²÷C!£éV\sþbˆÉߥ%Ñ4hõ«-M El‹¼xnì¿À3/¢UÛâF¾'üLœœz;xß‘qkûŸ“Ô&^J?¥Ž€·›ßÿÿPK!ì(¹ÃÛdrs/downrev.xmlDOKkÂ@¾ü˽Õ"E¢«ˆb±ôP|aŽCvL‚ÙÙ4»‰©¿¾[¼ÍÇ÷œÙ¢3¥h©v…eÃA‚8µºàLÁñ°y›€pYci™ü’ƒÅ¼÷2ÃXÛï¨ÝûL„v1*Ƚ¯b)]š“A7°qà.¶6è¬3©k¼…pSÊQ½Kƒ‡†+Zå”^÷Qp^~ÖÉý~:}és£“ö3i¾•zíwË)OŠî­óÇðÿK8@ÎÿÿÿPK-!!ô|²ê[Content_Types].xmlPK-!–3XÔ— 2_rels/.relsPK-!”ØëÅÚI/drs/connectorxml.xmlPK-!ì(¹ÃÛ;drs/downrev.xmlPKù+ð°@(ðt  ð  ã ðn€ ‹Þ˜²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 23#"ñþ ÿ@©Ãò PK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!4"Šdrs/shapexml.xmlìVÛnÛ8}/°ÿ@ðu‘úÒ$M„*E »‚ˆÓç`DQ¶6)´×Î×÷”œÆЦñvÛ ~Gâpæp.gøîýªQl)­«Îùèõ3©…)k=Ëùç«ó½#Μ']’2Zæ|-òÇ«wmæZ†ÍÚemÎçÞ·Ù`àÄ\6ä^›Vj¬UÆ6äñjgƒÖJ'µ'GŒ‡ÃÃACµæ'0¥—Óvbƒ$>-'–ÕeÎÇûœijàóR ˜)ÉÆoø Ó ¢¬±Âàk+.Z£lUÙ¦Iß²´ô/N¾…2SUl•óƒñÁÛ£!B´¼£Ññ>d¸¦L®<Pè?2Ñðð0hp JPm­óIódX,ʹElBÊhyá|rÕ»ŸQuy^+µ‹0ÄôÊ3eÙ’T΋٨;ÜÆKp©ôN|õÀã)B]Ý9ö«#ÆJÇ:HÙGúµ’ Ñ¥Dc±þp (C†c°·AB ´GiiN¥Lñ9â×G¨?A,¥( «™aëôžˆ[*Î_p-« µ³3çÃo&9ßxŒ'7zwΛZû…¬t'OþR¤Âh3¿:5å:À)ðâyj¨Úå|ÿàí,áã Û E/X¯Î Z‹¤ÅÜØœû^<óxëˆE9? `Ÿ 1õ<ÕJ4‚(5d/"v—QPËt˜Z—è„t.5ÃDQœ•²º¢bz›óãÑ~ L†ÓGIúÔÞ€*9«Ÿq -¼áLaRèn[æ`æÉB ˜O•®ô´“kÅDøTï£Ðt}×}­qš:.èz—t{5|»[ýPùÞf¯÷fcšÝz±^­b`‹Åôv#žã ›—OšQÅS‘ø™2Äã2,¤$L=ÊÒ‘½Y4ucþ©SPqæœK½÷yŠ!Œøâð)b¼’Ê"ç.ÂŒ¶õ f¥6Ó(qv#m˜è´œ ÂŒî[£aRõ­ü;¾䤪ćº6kLå²¶à _¥E]"S®ñgJŒ§ž¬K™6aʤ^K_î …-Æ|Á{N굸Ð] Áv'ÇÂ`~ÝÊŠðþÙè=åC—c?m-HJ Âm-×ñ‚Mð'ìºû%!Ìlž19R—²„ÄýÒ9z^¹¹ zLDRü˜ðö…Æþ©ü|{^-²¡¯ž½®¯Ùu=v¸¤¬€èæpyîYa÷³‚±òÂf÷®]¿ÿ¥ì…Ívw{a3þ ^‘7YÙb3\¼}=þ»å ÿÿÌSAnÛ0ü Ák‘Jjƒ¢"q€ £âô+вYSK‚\¥¶_ß%%;_Pä¡fvIά*Y¬ ¨£³¦6Ö® Öàm"1õ´Á×㌒`ÁÈ  “×(ÝÈO#ÞYJݸn 3¡â ¡â²¿Æ¾…/mÈÇñ©ÇÑb¬¡‘{"_ET{=Büì¼FæF ^†]Ñøkp7ÚâKY~+F0(s“6ˆ¦‘¥Là%ûfó¿Á^#ev‡T¤èõð ÝöÜÈÕý}É…f½† ®Ã¡‘•ƒCzÌE0‘“";²Ð\²ÜñÚ oPåÃXÜz•N½j‰7à¶U™~‹k=\´gíEÆõïìã@·º¯×†¬\ønz²aI¯›¶ç+|æ‹\¿ê"Aw™öƒƒá·<(>%Ä_ó‡i4£ûcfcùÖÔx÷{+Ed«ïÉ¿nv;?§F"oÂ4sàÑA·ÍHŠƒœAÅ J¡À_…^åJLy[sÖ?󲃨­AîÀrtmpnȸ7NÅ‘ž¬nZ.¤Ã£Kƒ<ßÇböîãøç)ÓlÖì9ÿߤð5×®?q6ž§jõÿÿPK!¬om…Øúdrs/downrev.xmlDÁnÂ0Dï•úÖVâRTH1Ñözá¶7±ElG¶K’¿¯ÕC{ÍèÞrÝ›†ÝÈí¬€É8F¶tRÛZÀçy÷4"Z‰³$` ëÕýÝsé:{¤Û)Ö,AlÈQ€Š±Í9¥"ƒaìZ²©«œ7Sô5—»7 ŸfÙ 7¨mzPØR¡¨¼ž¾€bí7oÝa¯†ëÖÔE57ƒ£‡~ó ,RÿÇ“Åå¼û+QRÀôXõ>|y-"yI.©&Mà«ÿÿPK-!Zãfþâ[Content_Types].xmlPK-!1Ý_aÒ /_rels/.relsPK-!4"Š*drs/shapexml.xmlPK-!¬om…Øúâdrs/downrev.xmlPKõçððð à  ðП¨>SingletonPlugin implements(interface1) implements(interface2) ¡P@èÿ/Hèÿ  ª ?¦ ðÔÐððó" ð € ³ ðh¿¿ÀËjJÑÔÕÿ€Ã&¿Elbow Connector 25#"ñ[ÿ@©ÃOPK!!ô|²ê[Content_Types].xml”‘ÁNÃ0DïHüƒå+J8 „âô@à•°ìMb‘¬-¯ íß³iÚ ¢HíÝ™7š­7»i3$òµ¼.+)mp{-ß·OÅ” :3-÷@rÓ\^ÔÛ}¬FÒrÈ9Þ+Ev€ÉP" Oº&“ù™zý0=¨›ªºU6`ÌE^~¸3•3Œ£«LÍÞ›*Ë\s=¸+mÒžÔ¶OK»ÏŒN O@½Ê–y~“õÐ!ßP+¶#~7;Í×agY×Ö|yÃBO°êIÙV#ŠÆkË–%ϦÚù$TÎÓb"o!ÕZ8’ÒW|"ò-§ÇXó"À@%°½TçõÔy:gQí¬ bgÓ÷W#qq4PÒög듪3¿ÈkšÁШæO”–Ùð"’…á‹ójßN¹€ö÷‚3Ù+²{ň÷Ìkª&†ÏÌÂQu~@Ž4u^æ‘“Óªk;¥Bó˜±U–™šû1¹LWyèÔ¶ÌŸ EÛyÊ8£¶jÏ™té%Ä Ð)I ;çOJ$ß9ïß9QÖ&áê¾P‡¦¡ù?ÓWHhV’ЋOüð„ …”t÷ß|FŒÊ5^¼ïPÛý%12á%÷“ëô·pfóÿÿPK! Ëã©ÃÛdrs/downrev.xmlDÍj1…÷ß!ÜB7E3£­Èh n¬hÅõer ÜŒIÔéÛ7B¡ËÃùù8³Egq#jÇ òA‚¸tºæJÁñë£?"²ÆÆ1)ø¡‹yïi†…vwÞÓí+‘F8¨ÀÄØR†ÒÅ0p-qòÎÎ[ŒIúJj÷4n9̲±´Xs"lim¨ü>\­‚ÕkÞ:ovoï§p¹æÛÑç~•àêå¹[NADêâø¯½Ñ †cx|I?@ÎÿÿPK-!!ô|²ê[Content_Types].xmlPK-!–3XÔ— 2_rels/.relsPK-!zdöï³/drs/connectorxml.xmlPK-! Ëã©ÃÛ‚ƒ„…†‡ˆ‰þÿÿÿþŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüþÿÿÿþÿÿÿþÿÿÿÿÿÿÿPdrs/downrev.xmlPKù@ðH0 ð ððñ" ð € ³ ðh¿¿ÀËjJÑÔÕÿ€Ã&¿Elbow Connector 27#"ñYÿ@©ÃMPK!!ô|²ê[Content_Types].xml”‘ÁNÃ0DïHüƒå+J8 „âô@à•°ìMb‘¬-¯ íß³iÚ ¢HíÝ™7š­7»i3$òµ¼.+)mp{-ß·OÅ” :3-÷@rÓ\^ÔÛ}¬FÒrÈ9Þ+Ev€ÉP" Oº&“ù™zý0=¨›ªºU6`ÌE^Ž›‡P)#[ì“J°˜ßÞ̰²áÊ{ºr£$„S…\Î}¥uªyLãÐ ÷¢Ç,06ÚF¼J¸ïô¤(žµÇ–¥ÁaOkGõ÷áì ¬îË>D·{š~¦Ó¹|{|߯¤ÜŒî†å+¨LCþÿ¹·ÖÀDÆÊùzþ ÿÿPK-!!ô|²ê[Content_Types].xmlPK-!–3XÔ— 2_rels/.relsPK-!!\’ï³/drs/connectorxml.xmlPK-!Ò@ÁÛPdrs/downrev.xmlPKù>ð(0 ð ððñ" ð ³ ðh¿¿ÀËjJÑÔÕÿ€Ã&¿Elbow Connector 30#"ñYÿ@©ÃMPK!!ô|²ê[Content_Types].xml”‘ÁNÃ0DïHüƒå+J8 „âô@à•°ìMb‘¬-¯ íß³iÚ ¢HíÝ™7š­7»i3$òµ¼.+)mp{-ß·OÅ” :3-÷@rÓ\^ÔÛ}¬FÒrÈ9Þ+Ev€ÉP" Oº&“ù™zý0=¨›ªºU6`ÌE^~Zq" mQ¶ü(¿_üpçšàÆÐ¸–ïctMQ„n/ „+ë$Ò7e½H[¿+œ—Ab„H@F‹²ü\葯©›¸­O›îÛ°õ¬-¯+Î Á>è'{`‹(»h=«K^̵§“ЄH›™¼‡”ðp ¥¯øLÈ7œ#1H0ÐH—꼸ž[W©u1É=IH“ØúüþÕLÂ4hFå͹“ «KònêzU’çÇ–/VÕí5­³à1²Ž ªå‚ÞQAG˺ž ŠÌ$ur>Ä/Ҟ͊¥F-¢Œœl®)ÐÀð5Ĵ؉9 ~S2”Ñdòš-‰âDœxÍÕ´zf–Žêócq iÜ–Ërâ¬îÅc¯uj>¥^n´gD¦åqÌÖÒ‡¿«"ôú‹GGQ‚Ž{Ψ­Þq¦%]?Z$ïÝ)Ùuºiñ¨e–ñ]’qÓ­;'àÉÙ¬#]ØêÐu4ÿgú -Á*z1ày€oÏx Z*E7þ‚Ÿ'å/nz´þ_cIŒÊxÙýì:ý"‚[ÿÿÿPK!ÿ¯ôÄÛdrs/downrev.xmlDOkÂ@Äï…~‡åz«Kê*Vðð0 ð @ðç" ð à ðn¿GW¿ÀËjJÑÔÕÿ€Ã&¿Elbow Connector 34#"ñIÿ@©Ã=PK!!ô|²ê[Content_Types].xml”‘ÁNÃ0DïHüƒå+J8 „âô@à•°ìMb‘¬-¯ íß³iÚ ¢HíÝ™7š­7»i3$òµ¼.+)mp{-ß·OÅ” :3-÷@rÓ\^ÔÛ}¬FÒrÈ9Þ+Ev€ÉP" Oº&“ù™zý0=¨›ªºU6`ÌE^³Nx i•Ýäù·LƒD¾¡§°ßølw.š§~ç˜lk^.9CÐ$û ^Ì‘m ¢h‚q¬\ðlÊoBå&(ø¨ÖÁ‘*=ã•©jÙDe²‘iÖ‰¸;—¾Ÿû±¨†ÎéK)6k¨L×±Èp[–«œŒ9QL}[PLêP‰!°†Šå }£„&f¬ŠG¼D3­óá»0S±øPÍ_ÈÈÙ‹’„ ú>Ä`ßN–Aû§à¬ÓŠœèA±ò¶X¤vÎÙDøF¯ªË½;R7îòe>2y£dû(•Š£)¶Ê1‚©yŠ©GgY¤zÀ–…“¥©óA€ ÎèYµçL Ú RsŽ£‘\§u'%R?7®Æ%SMuÄ­zG‡¦¡þ¿á+$µ(ÛQ¡&<5ð_“^”]Gkù™â³âX¹Á×û[Ûß'¦KzÉýä:ýEx»yÿÿPK!%28$ÂÛdrs/downrev.xmlD_kÂ0Åß~‡p…½Œ™®c2:£ˆSîI+ìõ¶¹6Åæ¦$Q»oo„ÁçÏ3[ ¶ò¡u¬àe’ ®n¹Qp(7Ïï BDÖØ9&¿`1=̰ÐîÊ;ºìc#Ò‡˜ûBÊP²&®'NÞÑy‹1IßHíñšÆm'ó,›J‹-'‚ÁžV†êÓþlïÏ|±ú1~]=åÛ¬*Ëð­ÔãxX~€ˆ4Äÿð_ûK+x}ƒû—ôäüÿÿPK-!!ô|²ê[Content_Types].xmlPK-!–3XÔ— 2_rels/.relsPK-!N åÞN/drs/connectorxml.xmlPK-!%28$ÂÛ?drs/downrev.xmlPKù.ðà0 ð Ðð  ð ã ðn€€jߘ²‚ƒ„¿¿ÀË8cÿ€Ã¿Rectangle 39#"ñáÿ@©ÃÕPK!Zãfþâ[Content_Types].xml”‘MOÄ †ï&þ2WÓR=cJ÷`õ¨F×0iK¶Â`Ýý÷Òý¸×Ä#̼ÏûêÕvÅL‘­w ®Ë 9íu½‚õSq‚:ƒ£w¤`G «æò¢^ï±ÈiÇ †”½”¬šKÈåIçã„)c/ê ö$oªêVjï¹T¤…MÝR‡ŸcÛ|}0‰42ˆ‡ÃâÒ¥C­Æ”MåìÌ–âØPæä~‡ø*k€üµa™œ/8æ^òÓDkH¼bLÏ8e i"Kã¿\¤¹ü²XN\ø®³šÊ6r›co4Ÿ¬ÎÑyÀ@ý_üû’;Áåþ‡šoÿÿPK!1Ý_aÒ _rels/.rels¤ÁjÃ0 †ïƒ½ƒÑ½qÚC£No…^K» [ILcËX&mß¾¦0XFo;êú>ñïö·0©™²xŽÖM Š¢eçã`àë|X}€’‚ÑáÄ‘ ÜI`ß½¿íN4a©G2ú$ªR¢KIŸZ‹) 4œ(ÖMÏ9`©ctB{Áô¦m·:ÿf@·`ª£3nê|OÕü‡¼Í,Ü—ÆrÐÜ÷Þ¾¢jÇ×x¢¹R0T ¸,Ï0ÓÜÔç@¿ö®ÿé•}WþBüL«õǬ5vÿÿPK!j[‘Òp_ drs/shapexml.xmlìVKoÛ8¾Øÿ@ðºHmçÑ:B•¢ m 0âô\Œ(ÊÖ†"’víüú~$E·k‹¢öb/õAr†3ß¼óîý¦Sl-­k.ùäõ˜3©…©[½(ùçÇÛ“)gΓ®I-K¾•Ž¿¿úãÕ»¾p=Ãc튾äKïûb4rb);r¯M/5x±yíbÔ[é¤öäa¨S£ÓñøÍ¨£Vó+¨Òëy?³÷ë™em]òs@ÑÔÁæƒ@°P’]òÑ DZãˆÑZ\ÔFŦ±Ý’~dmé+<ßÃG…i¶)9mK>=›}B…Üx&À9=_NqÉÞL/@%A²·Îÿ%ÍÁpXPTr‹˜ tTÐúÎùd*›×Ψ¶¾m•:†û1­òFY¶&Uòj1œÛY &•>Š­ þ·À$ã;‹Ñs£g¼kµ±/PÈÊày²— $F_øÍµ©·N…¿8‡Öˆú¤FÖÅÛSÌ l&ªLX¯n ZLÒbilÉ}&o­º¶3·)¨ð¹äRŸ|žcù"~“¸Zª¯$²*¹†‰°›mû„©ÍQ>t7ÞÓCRb·Çn˜6EÞ_±/Ã/li¤_¤ß>hþ?zFxû»kþƒ®A £k0k~wÍÁ]“›æ {¡mð?xÞ¬ ]õ ÿÿPK!ƒ³EÕúdrs/downrev.xmlDÁNÃ0DïHüƒµHܨBP¥ÝVUÐЂz^âMl5¶ƒmšäï±8ÀqvVoô–ëÑvâÄ!ï®gvµWƵïWs1‘SÔyÇGX¯ÎÏ–T*?¸Ÿö©âbI:¥¾”2Öš-Å™ïÙå®ñÁRÊ1´R2Üvò¦(î¤%ãò‚¦ž+ÍõqÿmªûÔ™°y^_ôt|°mÕÌí„xy1n éÿù`¾¶oÕ_ù‹Ú*„Û¬Ò> stream xÚµVKsÛ6¾ëWàHÍ„@|L.u§LºcurHr€(HB ‘ IYÖ¿ï.²e[>öÀ°À¾¾o± `+&ØïñÆøq6yÿY,¼(2ÍfK&sÍsU³B×¼Ì 6[°ïÉlm§©YrsøgtÞÍiuÙm¶Ó4+’®µíÆ‘ä}ƒ«µm3îz;ý9û~J0ÎU^dèG ^Šœ¥ ÜÕ’Ü|sÞ;³# }Åq,“?L?F9«y]`P§\”9Ó<1ÊB¨s®ò‚‹š¥''¿të–¼Ü:×wÞœqP*®õ©ùÃ9Û©Ô’‹ òPà$£“×f ȃ¬ÞÑ$²B¯Xxÿ9Ë ^ R+¹ë©.¹š‹ù0ö¦ß2 O ¤²€K–¯YVEp§•J€Æ<Ï’…šYÌ*©d\ǽ'ŠQ)®"ÅRŒ§Åå ÅAúChqsyƒ|GúûµkPmM˵èdô 6ƒ|ØÍSL C窀º^SèÃhÈ·3Þ#¬µHz{ﻠŲëi²ÀÉI¡Â*çâ¨å­,”V!u,knÕÒ¼[F —4qCÛaëú©DÄd=Ï1®Ã“sÌA<~†Àwi%Í9@An^ øiâvAû.žvÛ¨ßCT]ÜOµ†£‡—Ö ¸ïÝÝ4]«¤íÚtpíÊÛ±kÏÅû:ÂÉ”  É›MHØšÆ` ŠQÕeÒ⬓€°,Î&ûŽ+Ûu퀼¨G^Š#x°ñ;`é4^MáäMpdaɉ…Æ›'!Xë—iӑ̸6” ¨,{Èf°wÈëI›®·4×fŒ²£—Ç;ƒ (%ê1¸§TV½ö£¬£UõÑŸÜl·Þ5& ®’pM„LBpÖ{Z¥†b½wvŒEˆB„ÇÀÒd5†R7àœÐ-‘u7ÕÀà*Ô ´î½×´œmºÖG³»p×¢Ù-¼c›“º“7ÑæÇ¥QMWB„ý2¹ðóݱ-–¼V FÉëcåÿÚÙ><¬TòõÇ<©JYéq‚A-® ð Ê{»†€~|ÕÝÇ×íà´,¹†g¤‚?‚goà lá <nYŸ‚[½n-“«‡­'ÙÔnÝKçƒ:ÉB#µÔbÚÎw+:˜}.Ø èÂæº°8¢ ûÿ'ºÿ.ü±xÿ&‚Óð7!þt˜–±¤åË‹ô¨ù‚ª endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 612 792] /Parent 11 0 R >> endobj 1 0 obj << /Font << /F16 4 0 R /F17 5 0 R /F14 6 0 R /F22 7 0 R /F21 8 0 R /F13 9 0 R /F20 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 14 0 obj << /Length 830 /Filter /FlateDecode >> stream xÚå˜MSÛ0†ïü åƒ]I–,ëHI`è´S‰ö ‘hƱÛaÈ¿ïʲ†ú‘ áÙ­,=»zµì=ì]œà¦ý<8ùtN™GDH gÞàÁÔ8 1ãÞ`äÝ¡³<ó#‚*íšÒÿ9øâlH(9§Ö{Cš4&Ä$ŽÑ¥³(r?€v4Væ ",)C‘§1$vkHá`¢a˜àèj~[™ÔÜ»·³|úOå™] E•ë?-†öCSéa5+À–É0bn©D,/vʹôÂBÆâæ³!¬˜`LÐÕÙ©ýBŒzú&,3vÉ¥Ð$A¡pŒÿyäü_SÿaÔºñî’pêX.zÁiàĆ"ï(Ö ÅèZ§ªF71µËªr¶ª} ?!¨PC÷æ| ãjßÚñ®ÿf^Vz ”Ù÷¦ ⫽ÁÊ®»Ø¡Mì4‘sc¦©v›î?û)÷žúÑ‚&^é] =ŠË 9pçОùT•¥.­j¡äµG:êŽô¥ ']<¨a=øHe#÷Ð]+,Á¨+Ÿ&(7ÎÆÆRæm°ÉÉj/^§ÔïU:›¬æض+®£˜"BvPªý:’žL‘gSP½,Æ4°öž5Iº™$oI²†äEšß«tû]ÑS•´œ¼#(o=övMekšÚ‰^Ø0ÞÎú]e®¾ä…¯¹éÂN‹Îl«0°Nn¯õØ@bS˜lÜ^Dz8«Ô}j¯(Éå‘Û‰ï€Ôª'dˆé6Ê UÌÝ-}nR—à£ÖÐÝ ã­âÉ:ñüþØ”1+¹v¶ÆÏ Uue 7U¹‡Œ{ï|6¥ïðØ-/±6•GBbÇYt’eéôô0U­`‰ELQ½£tîÍ€’€¢ÐÒ) ]ð3‡“dÕ+AµªKñ4IîäÅ^·À„ Œ~‹)+O&kêi]<™ºr“D¾W,ïÄÂ,ßT¦Æzäˆ,6Ï=â°YçlúƒÉ1ª/´j¢‹µ ÞŠôÑäMÉïUeweAÏ”ÃYÙüB…ÉÈÚd«eHˆø†rrxhþº]¶éN~KûÇ endstream endobj 13 0 obj << /Type /Page /Contents 14 0 R /Resources 12 0 R /MediaBox [0 0 612 792] /Parent 11 0 R >> endobj 12 0 obj << /Font << /F24 15 0 R /F17 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 18 0 obj << /Length 2645 /Filter /FlateDecode >> stream xÚµYYoÛH~ϯÐ#Xž"9û”I0‹Ýµ±q°ÀxüСZ'¼ÒM:öþú­«)J¦ƒÁ,æE쮾ª«¾ºZÁê° Vßò}w÷æ§Q² 3? Ódu·_eÑ* r?HÒÕÝnuï…ëMF©÷K»ŽCo0ÝzßÝXU×®îþþÓ‡0[…¡_¤i„«M´õ£\Ö_wM¿ÞD™×µº]Ãw€^{ï”Õ;l&Þ§n?àÈwüQFó„÷í¡jµ6U{ài¿ipýîÓ{ø†<å¨,}¡tÙ5š pOéöLŽ2Rkµþ§]Uß›N•xôQ[^4tx1¼I˜øI²å›ìô#ÎÒu×Óê8 =8±¯õwôÓ [[}©5ö#ÏÂá ²ó«áDûlÝXžuŸ<øëM’^Ž'T¸k#òR(iË{£¿B¯Ÿ™f4´øõl¢"‹¶Ôý`™°7]ƒ­ˆä–{Ýpäný4õ~‡ùºxrg*9Ô³@^£š†ESP177°èVT4ÕÎrã]6;S¹þåvþÙ5@ŸÛºúJ àº)BˆRQ5Ónnn¹ñý¨Ì+ke-j4Nf©‚Åú¹éL¬lÃdåV„J:Né¸Ù¨VdH[ nÎN j³ˆ•Ù%“¨˜$ bµW@‚6kk–C,“&æ“X˜GjÏêæ?â§békPܽÑv²5¦ ϸÉ~lK‘Ýã•èÚìUIçg‰œ §*@dɦ'sÓÓÔO‹ö¤½¬60Ä;-xЏðƒ q³Áò¬ðîð^ÏK½o‘£Æk&T¨y0`êŒíN ÔÏ„D$‰LÕÊ.1…[¿§#5òöm¬U­[f”d²I`M†ö´G3Mæ×ZºUøÉ¶pGü ôž¤à~ê"‹1Ðì‘’ Ü„î•!#ç>3§ ; pXšÞg:T´",9Fôã'U:ÓÇ=`÷Êðm…ãs¼ð@°¨h& ¢ Í*ßzª®;roÒßw†P´—<ç¦úIœ"ŒØÎ©;m«CË+XVH¥t£XïJÖ»Aí²ìøP<);çYèaÙý ãHr&†­á¤%ïb’Aî}Xç‘7˜Á{¡ýæ(@”.¶ú`ôÁé½ ‰%'±`ŸÄ‚ ýÔ×U ¬/ø9v2ÍÉp'EG'(L¬«R¢RUÓ±D—w†¹t ùÞB p” I'DZ9¨“s…ÑWz©²™/œ‹°„ùôÍq‚SW •uóˆ%$ KLu÷·Ãñ&T¬ËŽ{¿A¤.FÊáOƒ³GðB!pâÔ8îÄA#t>·ª“‡Næ¡É©¶Õ†£¤NizaŒ®ØÚÞ SV8/@â}ÄÃ[ïnC€S¥[ºgòU½}v#ѯŒúS¥Å×ZÛ[7§xxݤ%æ9$S"=30bWi*‘ƒL#®>U£Ø[q†®šÇSÙÇòÓ}ÊõiDsC»(ïÎ9S8®ÙºprIàA’}Іi/ !¡×…a~²B .EXo²,;ùv ÎÖÅŸAå1Çܨ¯S¨ È€)² ·åXL¿x¤#ÒOæÆ ñõVõLù}´2&¸Ë–l†O6žxR€ ]ñ¿„à%æÜ­û?íFøÿ ö_]»ùfTë£~ ×c 6=ƒ ¼X’‡qî§§}‰y±sO£@Œ_¹§$‘—(eü<G 'øØÿþf*ÛvGŽqꌟ; Rz¨Â®=Ý »‹Å çàÒE.5ß“Ûc[}¥]µvPpC~Û¢«OׂÐgŒ-#B€tÁ’.2L 4“Àžã !çx㳘:oXŸÿq`åXà×,aHýàagúÛ<ž( Cï3qŠ/8;²â•š1㨌_ò@ܜՠ¹¼µÇçh÷®Æ$’ .ëj¤©ÒtÖ2 …Ù3U68Ìt£`¹K™ |›ª®åѾàWš\5„Ÿ-$‰wGz– Ç`Œîò§>ó5Rwœ?ý ¸0Ž=7>¯ˆ^ù£©Úª©þ«/ =UÉ ôQ+‰nÄÀ_Ýþ¬þA1Œœÿ§™¤]½ço½÷?.Ç· öãb;wM°êÈ“ñ”KYÇ®pO¼ºƒcÄmaöæ˜×ü@°ðË•<å õ¨øÝ3ŽÙ‚aüô–D‰—®TæÎŸ/ä!a9{ˆÜDˆoe ò‡O”2ïügšðŽt TeïEµžâþ2§Å{¸¿Ôþàk,§I3¼‰C^»‡A`¸á¹rç¹²³Ìâa«(t”ù~^d|j|6çýÝ›ÿKÀ®E endstream endobj 17 0 obj << /Type /Page /Contents 18 0 R /Resources 16 0 R /MediaBox [0 0 612 792] /Parent 11 0 R >> endobj 16 0 obj << /Font << /F24 15 0 R /F17 5 0 R /F34 19 0 R /F14 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 23 0 obj << /Length 2684 /Filter /FlateDecode >> stream xÚYIsã6¾÷¯ðmèªC—£Ó“žå’TÅSS•N`’0M‘’²Ûùõó6p‘é©\Dàa{ë÷ äîx—ÜýíC"ß?üðYwJÅ•1éÝãᮬbcª»")ãD›»ÇúîKôp¿Ë’*úvŸ–‘{åÎñêkß±SF—Þ·{i=ÝïÒ"r'ßÖLèîUtí¹]»ç{mºËÙµ¸å(“üOŽwýå“ì&Xî:ÚdaËÃ?_¿÷#îÿ*K€…¯ÿ¼Û©‚äÚ)k³\¿'ʸïþÉ7aM™Fñý®HòègäW«":v¶á²ß±Ão}ëÏþ'Ô“4ž®} ‚Ñ”Kc÷®fz×ò×^K;úN&-4Šëå C'<°B»ñD²$k)l-†P¥èNÝ!¥ã¯åÏ¥‡¾ÑÑÜ~”24ÎÖ·ÈÇh=˜«ö„­vOvp2mÁþºÒYýÜÊ©{ ¹ÿ^]»¨lƒãñdáðÔdÌ/6ˆ_l¸ïlÃæ•û5Û Üm;Y‰‚ýÙײÃÐ¥eëç{c@0R=RööbÉÊÞ ”—QãÙy‚HîúƒÝ öБm|Í–ZŠ!aAšKóäÍê\ö‚ëð´" ã@ïx‘%öéßXÐøS#ka;úžØõB<9^ðúBlûã‰ÎäÁ}wf×éZ×Nt8£ßcïäG0÷µ'%y¸2yÓ›0¨Ò<úœ‘„]ôDüþÔ²Ö{t1­ß ¬G2k¦£Þ¡WÕ®ç.†xš¡:0–r¶´áuØ÷þ22-ŒÕ­[óÑqÇCc8àÐ5 9 ù+Î@Öàœ‰‰~å.¥¼já<Ãûð!“¦Àìuìz ¦ià£g·¬¯asœØñf×A$7Œ°—aߨa`_Ô™8g^¡“ñš¯4`y v©“¥0J*¼õU‘…À5Ï ± Д1‹Óq\ó‡·}šböxý×+Ÿ¸ç¾®¦uK¾õ"ð–°ÿck¸^ÄUû@ÔÛ{Àc½ßâþ­èHp ã•Ôf‚k@D¹õÈîf&ß`ò¹=àà²ü­ HeS}kB. ùÇ [PAê/Ÿ}ÏMpÔ{•,ôdßÚßÒtOìãÓ&Ü`câ°•y‡k[ÛVmƒ Šdßbª#\®oööýQÎ.7ÑZ0à—Wd¢;wܺÃÈ\ÁÁR9ÁJ0?|N5‚DªŒÆvϪ¸Ê4ï©Tj2²Â,½ zŸÈò™bËÃwdú ô&dã“Ö¥ œ”æqZš(iˆþù ði;qÖà vòìß“€Úá£xøm÷Í•ÐJ3ZuÜ:S‹êÊ…ê´µØç#–v D×vPq°¯û6l¤Ãå7Ò©“ƒ‡½— xˆŠPs9™TRíì61i*LUˆû– ¬ï¥E1jÇ+4¨ž…ïCj¦Œ§¾»Bj§ŽåõÃTÌ”Áë½%0ñÅC^må,ñ·¿ ™¹‰Œ¥(—×+MŽQx ƒ1&16bJé<ÎM;ðÊ5H¢c%x«!>'¼Å2‘Ä-d"Åò¬9Ã"ñ ‹Qlœ…°Šœdnáh%«àˆË)«H•âÃ4»œLq×:æ|Êп‡Å|Ælܯ• Ô P™„°ë{ÆŽ:Ît “é8Ï•€c¬êMôW‡ÎŠÎ÷êÁº¼˜Pð…1:3\` èïp*kÚ’:$,Ì\`|9¯ßLǸì‹AàȲ2EôNË¤Š àı€TÙª"ã{}Æk’y3 E…pÝà(4Xw6ž'˜dÏíÌ% ¡h?˾MsÆžAŒ-?û#ål+:±‚«1‡—^š +ó83Å$ H¶ÊL\©4Ì Xþ[±”Æi^mÝ¢°‚Â{¯;/L‘´ W„Ð i†$"Þ0Üxê¨Ò¯¥V#qs¹ÐR©ØÉý滜Ç{ÒØ_\ ©”ÌÁè0W,p³bbfVÄ[0•(YÆ êu@[‰½ìôz&ïßSÚ-ó©*Î’Ù*-_ìîMmB¢®â$™‘­F1À<à]Ú Åò‡rÿë|¿Ê¦9Ì™tE¤+ì;(0ÙŠîõðí!ž†/X¸Ê2Ìå=â]¨ð5àvØ•&.s½®5‚ éTÖH¯v0ÔÛ©f$&Öi@Ä…@õá{ë¥@«í(ëïΜ7éÈÅmšŸ4Zj=¸‰|ÿFûû!¸ùAðž rf Ï£³„@Á!ÄÁìhÃl–gQêB_{&ú{7UÂø˜fí?Ni@ªç.j·0èE®…Òdï¶KpƆôö©It5‡ïÍÍJ^5Êåä,’z‰œúA «±°œÌú-¼DñØ•}å+Ëw™”Êœ3ôÎ…hyMn»Q±Îêµ!hЊ†n$$«C¯s,„–èÿ'ò7?ƒD<þàúgÿ~ØÃ%&/³v—)Cb‰vFËÏ`Ðãr-åŠn®¿±b­Lƒ ¸Z(!¸¹åE›R¯Uðo¬Bèr­ ¡¦Ð²åÏįÒ¿@^Ȩ´<õ½ÅR í % &zÞÖ¦ŽS=Íó9aœö¦þ¬Œ.Ué·œš™S½âÔ„GI(“ªXsë›zKêÍ ïdJ¨ó€ ¤ètüà[,$*¾âš>”²À*š*&Ê tÄ„ÂâÂy×â'dÖßÞØJi•E.gHO{ €|%|Ay°rH+ªþèQµÊXçØ˜ÊìœéE²ù ¤C÷è5¯Ò³©Š¢W% ²|x7\ÿ:ë<ÍÐkgxÆK‰”ÍØ9 'Õî`3 îY³X0íÆ¦8{±:ï) ö •l»8rƒëÅ œ‹sÞùAjy%šÑ<“©¦¤œKÉó}x†º1Ùzbêê$ßE²]! !çoáUš—q:Ãúòq³‚ ;fƒ*ÂÍ›WYÄEY†¥âÎÈžéŠ5®_€˜Åy¶† å¥*1Äö§Ý*•/ï‚?í;Ù Âo:  •U ?âb¡*¢EØô“#ÿÃå«¢ ÈøîÀ­Þ ¡ªUýÁ³©RM8™$›Ï½oîO‰Šá®ûç+ðu¸,Àɳ¦¿9êU«,}ム8™^MúéñÃÿ7ßÏ£ endstream endobj 22 0 obj << /Type /Page /Contents 23 0 R /Resources 21 0 R /MediaBox [0 0 612 792] /Parent 11 0 R >> endobj 21 0 obj << /Font << /F17 5 0 R /F24 15 0 R /F35 24 0 R /F34 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 27 0 obj << /Length 1643 /Filter /FlateDecode >> stream xÚ…ËŽÛ6ð¾_¡[e`íH4eY¹mÒn±=¥­oi´DÛDôp(*›m¾ó eiW@`À"g†ÃyÏ0‰ÎQý~—üä›Â¥Q*vQ.’¨lî¾r ÂxÈ&ÛI‘Ó~²$Tààïžš4úµ»û“~¹FþkÁ‡ÃÝ»Ç4ÒtSd™ˆ'¸:ÊÄnSHªèsüh΃իµLŠ8}¿Zï’$~hyoVi\×Cï¬r¦óÀîÄßK·yüŒ›}\ÖªïuϘgã.ÆS»‹çýéã“Z]+ç®ó<[PmçàÒ‹¶e¿ŸZ¼Åi{R¥^}9ü¡ÉäFÊË?Þ,vÛX¡&¸0m¥¯°ÜǺ­€¡f6ˆ”1àkÕ3Õ“Ÿžz¸[¦2þTgÔÁ³kJÕzNÄÆßé.Ê…•~ñr4×Z7áö©ø‹œ¶YJz¿ô Yîq•YÅ ýÃé¶'g uÌãÎðþØ(R°Tf©fõ·ÁÅØžYéÒü“¤²\j”i³ä‡»‡"{ÓžkíPDQìXt„·]»žáòøJî™­ Ð#K›¡×!ÙÆÇÁù´ýn@ š§ÎþôŽ™ÙHbV½Ö¦4®FÁÝe¼[ˆû¡tº"}Ç'‹ 6šTïìW¥AªÁu ÄYYúÖ… ýC—7@Üb§ÀïÕ·‡­Üc‚Ú ÜC˜¬3(Xu=%]®A\ÓyJR]$Š R•ªÆê„PÖR[>b6½®¿ãi>—RfZRA£iöì±õ!;C†3-ÃUé‚$ËÂcv@€Øî+]oïàã€EF@H4PÆTla‘ÍÊ—X¨dUpÅþ¬¶»ZCcÀ>œr#ç¯þ€[ÞxïC¾ÑhènXÌ÷¾˜o·\g!tçéÁ°J³ÉëÎwNËÜJ5`'ÅF¢0Uߪ 4¨n‡9áxÿµå1‹5ƒSaìZPˆ¼$ršÜx3¦/nn öuì¬2„ˆ1-¡æ½U°g"Ò)nˆàQ½ž±¬Šcd«5ù}a⦖ªò޽ ‹J;eêž7”{ð½LIÿó8Ëßg¨Úz‚Ù…É*`&}E¯0c3ª8”ꪎ†Ú5ä™Iì£[Ì{É·J8Ú) ÑáÒ„øÖÙ|Ó9ñ÷V÷B‰ë¦k< -âìG,÷lêÒ˜ÓLÓ¿€‹î\ï…œ>p”I7iî=!6°J–BÎü…c::ób®8ÙøvÏÀâ°*dlUÉ»$0„, _Çð¿é~¾}þÛ\¹ËCÅ•’Ǭÿ"Ø̹e==àËo @Òh¨­Wh+†Ã< ½°H2F6¬Ù$žö ŠÊ8P°L’j¸ûœ¦_ @ò}AB.¸›%)ËŽR›é=$R/,€«ð\a^qØ{'ïcÇ(e}=sºtü<É8›  ·Ã–›Ò@ÔéþJ$’AVg|î,¾A¼ðdV~ߥ°&ÀËëÕ(ý–`:Ó0žç5XàYPË%×éy^§Z*Ñ· ”aùœ”rÄ€t EãÕ´,ŠäR4êõ¾Ë=¢Ñù}€¯¡®÷ ñùYå¡c&ÞõèÂò!ûÐCЯ®'åA·w!¶QªÜç 7jô°µºi\-Ù>´7xƒxÅ'³çûùÃC@®&¹ŒÖ…ØÂgM6£ùíp÷?RŒR endstream endobj 26 0 obj << /Type /Page /Contents 27 0 R /Resources 25 0 R /MediaBox [0 0 612 792] /Parent 11 0 R >> endobj 20 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/definitions.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 28 0 R /BBox [0 0 308 638] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 29 0 R >>/Font << /R9 30 0 R/R11 31 0 R/R13 32 0 R>> >> /Length 5519 /Filter /FlateDecode >> stream xœí]]¯&¹Q„MØ76„p.ω4¿íºEBHÜm4ÀÕÀf@Ëÿ—(»ªlWõYvæ,;Ik£L?~]åÇn»ì~ìîóíƒ;üƒëÿñ¿ïžoûÛúð»ÿº}{ƒ‡üðŒÿ_bs÷[m~¿ÌøïûÛ?ýæá÷·áàá»ßÝüÃÜà¨PZ{ˆ-棠ƒtDh)I–cÂ¨Äæ’f%éܽÜo«Zœà ¿L$a:]Ÿ©âßܾîwr&·^ßç™bJ#_eTð”À&ã^Ï[ýÛX÷üÛ›§kþçÝóÃß½ÅN¾=¼ý3ú‡7ø?ü·Ø|ƒÅáÃÃÛçÛ??þÉÓxWj}üÓ~é°nåñgOoÜáRñ>çÇ?{rGm¥ÔüøÅÊòó§ËQ‚ÿ×·ÿxûû·Xͯ?‚œ÷'v)©³KÞµLvîH>¢ç«o­ÓÃ6© ’ÃÙ´ˆìÜÑ ¤ºç]‰?jG ~ñä‘y-ŽÞ'ð_>Eb¯ò‹ÌÂz/qoÿMeWC/ãçP"ÒñÝ_¡¦j5¦æ{SaV—d,sÄ2Ýj,½ðr8_ªg3WKCî(|{ü—ß#¥p ·Ù°}ñ?¼ÒÓòÂ8ÖRïøßýûí›ß¬;%ùÞ`÷s!¦-p̤°jÁEòJÿ[øÀbLøð5ïáá>®ðÁ +|p‚Dv·`ÒáC8­ø±ˆ‹ËY9)t&ìaÄçAy‹#›oN™Õ]ô£$3AâÆ4‘„åuÚpÉ6”$?²n±;Ð(vÅŽsŠXI8ùøà‘pÀtc|þbtò’}+‘Sò}XÅ#¦’Fwv-çsïÐ}TBmáñ—O¾`3ãàù Ì=¸Š=þ»ž!§€cù˧Œã1ù¶…—ï &ñ{ƒIGîõ^Ñ/¤&£·Êà­2xC§Íƒ×ç„C’o „ÀÅ6¢^Á1uðì£I˜R`@˜äA p\S¡-‘Aˆì m¡1ñ:`L Pó%i¾Â·(IbKS¨©‹ 8”¶ö}*6x*¶b‡nCÈ É :ªúJÈ\u¾+=¡éj¾æ¸g„@-á¹¼Ÿ…Û{xk óÜJ!ž’€Q{J`»H»Œ!»=³²Ž5Ê׆‡29%‰ò’r=t&`°ÖÄO d¢¼ä¨˜dPÅZ ‡âMMJ5ÄÏ þT“¦&5â§2Q^jULZTÅX«áв© xCü”@&Ê DSCüœmM²ó;œ×öbOÐ'c º&ÙgMüœ@&Ê‹¯º&9DMüœàë©&!+&Ñ«b ÙpˆÑÔ$‚!~Nˆ§š$oj’L y!ÁŸj’LÜÀå£XÎñ 24Ï^2¼±(Fˆ³Tþ]MvYyÞr•JãX_FÀÄ:`d˜e.ðÌ!‡->"%s‹ôK¿™ÕSb(&‡FF¸âYopÌ>ð¼ùw?²G¦„ý„f›ä$'R^Lç©%û“5¹Œ<³Êj–‘ËL`dà8ð§@µ`ŽX=¦ìy ©TÕ¤SÕjÜ­ Ïî˜yhx›†—IhuÖ„º@kŽsxYÜTð~ËÃ^ *·÷-A¼X·¸®ÊUÚŒ¼xçëxrв cÌ&Ë`úð.öÖØ\À†ï {Y3F…ûúÔ×ñô&|Ýð}añ ù7°Ñ~–5ðò xzU-ô’SÂXÁm²ëˆV%ˆF£Eòò¨OäßRã²%U{ä—ÜÜÈê(·3î÷>@&ûFö]ŽHTÚx@Œž¬]áßé†áLAö1RÂ<ÿÚê_Ûî+ÕøÂúÃpáF9–Ûȳ÷øUN É>Tjô|Î#ɇJmä¤uëð†#‘Ú$F*­xzÒ2—#ŒßqÁ¸4#*#^ua ݰäXµ°´ÏXõ¡5×¹ ¿Ù˯UÊmÌL¼‡Á«£ |[¼â$ç+èiíç"k‹y½-Ö€Ûd (÷ƒrŸ0€ô3Êïacî³fj1å^Ö>îÌ]ÕL-öQ3wycžS‹9÷´ÆŽ´1OàÓ3®Šyj°1O-*¦g Šyj~g^³fnqóšy;óR5S‹)÷².ygžA3µ˜r/ë\wæÙk¦'\5ó;ó5ÓÍ<ùyÌš©ÅÉkæ1îÌCÕL-ŽQ3ygt48㬙‡}|ÏgMŽ:ýQ”ËQ©?'êNSrà0´(\ÖÂmûôùÓK¨ ä½äm£d+f¥.ÞéZùêØëz8Ãõ1Ãô˜6žãƒøÚ+>¦S\ï9s“Ù§ž)Š¢eø0íÖ Žì+3[÷h³Y÷`³Y/8²¯ÌlÝŠ*‚*{AÖÈLÙPTÙÞ…±˜!ã‰Fæ••mûfRŸi!:[Œ»r7î’Ëá%Lùw-då¡Ê®Lùw5h¥è2-¦ü»‡â5‡Üt™S~òiØØƒ÷c¾+AÖËü{Þ­_¯¾÷º¾W“dî-Óf*hä9Å’Ôu±äÕ;[ "KÉ)–¡íeöýÛe)ˆ,%§Xƶ—‰óêf)ˆ,%§X&ØËÌy/SYJN±Ì°—Yò^f)‰®ñŠÆpê!Ú^C«°ðý%¼s—…xs<6÷'ÿݛŔ÷P!+5j>' Ùx( 9”¨Ë§Ù‡-EösdVRÖ®«ˆ~ç”×ïÃö'úÿ÷}X¬ÆØÖìÿòn&† ®?ä0BtcPâÆÔã¿^ÙE1Û¶Ùd³o$tI”~oeZÔ¿»™„ûLXJîLhùA|ó]j] w&a“x¾7 Á§c\œ_{Qóš™j|<‰ îÕd¯Üs ;GÙŽï½=?ún­Ód׎ôµ#}íH_;Ò׎ôµ#}íH_;Ò׎ôµ#}íH_;Ò²ŸpíH_;Ò׎ôµ#}íHoÖ׎ôµ#ýév¤¿~Í‹¸N$4¸ùjÝ_vÉ¸àšŸ_:s­4— ©ÃC†Ç¿êy{kõñ‹'¼içô.÷%²‹E«ÃÛ‹8¡¿·Öw&BoŽñæÜ/Ÿðæ—æÃPš1xàŒÌJ³ÇÒdÞÃ@..ÍVpù÷—ïèõ›näX|-È5×þZcÞÞ½y­LíSÝTÔ¾57Vú¢¹Òf©±|-š³Æ÷¹q—,î*0y}˜Êœr³ÆhÙâ`¥6æ6ƒQ›Á¨Í`ÔfØÔæ¦ÔæfÔævR›—xÜŒx\x\xÜNâqUâqUâqUâq5âq1âq1â±`±—üËmZ.9jöÙ TÉ¿y;{œª7ëT™äT¨±`ŒíIAˆ·pK\ÚpGGÙq¥›ÙsÞ³X¬R¬£äÕ³ãVSàp˜‡/G[1†Wê ¬#ŽKÆ`K¬çb hÚai1;zÑš‚: ÃÓ;ò¤gnß–&ŒL#M,\V 3¡ñ´4aSüÈ]¤ýµÒ”ƒ±¥#M¨¤#K F4Â>)Á…}rnsÚ£ÒÜ>ñ3â6BD(ÿæ‡_Y %h²ùw÷ͼx’ö²4Ú¦_Î i³%•—òî×"÷Î|¬ö m—rk´dÞ™›U^Á¢éR~–¼;sǽdRsÙr¿ŽºLQu'®;Gƒ¼e,j®`Ñn)¿FKƹë^2©¶”w¿ùvæËš±hµ”[£%ÛÎÜQ3–­5І1«µÕY’¾öI[b<5YÊ­Ñ’ggîªO-–òk´dÙ™;ï%“ Ky÷k‘cg¾¨‹öÊ–EËXT؉÷Qn‘·Œ“·›T0"ÊÔ^G¼aá¯IIò¶%ºŽDXš+–LBK®ˆË†âÚ#ô@yÆX?ÊÍš$ˆ½ÝIkÕõ{¿ò²Îʱjʬ=z‹~9æ°äÏ>¯ˆ¾Š±ÙÓº…—нIÚRWåà“ˆ«8S±&sRq»ç\EU–a‰ªˆÃQ§¸ ªÈX$ÚŠ˜Úç§ø1‡æÁMJõ©jáPVk"Ú¥æ”p˜ª%‡xÈQK‚§í±¯0²–‹QP‹VPgþ塵µµœÔjÔjÔjÔzP«P›P›PëI@mF@mF@mJ@mJ@mJ@mJ@mF@m'µ)µµŒ€ F@# ‚PA ¨ TP’©AF@# 6# 6% 6# 6# 6# ‚PÁ¨ TP*(Œ€:±´PÁ¨pP§÷ÏA ¨`TS¶XO”€*Ö/”€ J@#  ^*(”€ F@ë% ‚PA ¨`Tñ5ó) ‚PÁ¨â-+æK@% ŠµÅU1_*(Œ€*ó% ‚PÁ¨bí5ó) ‚PÁ¨â-jæS@% ‚PÅ[Ö̧€ J@k‹«f>TP*U0hæS@% ‚PÅÚkæS@% ‚PÅ[Ô̧€ J@k‹³föñ½žÑÀ¨ T0*Œ€ J2µH ¨ T0ꬕ¡Ž½NJ@# ‚PA ¨M ¨Í¨Í¨Í¨Í¨M ¨M ¨M ¨M ¨Í¨Í¨Í¨`T0j3j3ªQ‘xWê·S[®²:C¸JkàݽXLù?þÌî¸'í˯¯=œ{½gr½ãt½ãô9õ½ë§ë§Ïá§ÆlÞl`3·!Ân3÷Ö¬Q_ ÄqíúÚ`!¾S„“›QjÔÓâYê,gô‡ÉQLtWlÕ{ÇBT&ã ½aFB.õ™"]rINžeµQÆqrþ~½öÙ¿fßìz~áí¯Öìw9%å3샿Ëéû–_ú?þ,çW/|–³/éÇ*y\ðÒ8ÄÕõkßaÃþ3:Z ƒÁýe¥±äóô~J±ãóÏ’ÐmzöÒO ²Ûw7Ih²J<>«-ÎÚøæ¶”ÕøÝ¡– c…kÍ ‡þôÀ~øš¿ÍMˆ)Ü2AñÁô¥†}ÐJRçO µìuºÏ©Óä)á–zL\ÜÞeg'™¹¸ùø¡n€Ï}}q0uׯúñ•äbô2Šjõ»ãødv.n>ÑÑ8¼pÚCiSü±mã㯞|8j¬Ý}TCñókÜlÖj„Ç_Ôšð9ð×OX£ÂÿN¯~„ÆÚ¨åöÕÐ_É3V²Ué°˜Ðû˜$ ì7¯òÁrM:,'̉sâ1C°3D£ RYŒÐ6¦ ÷ºä¼pˆÈVüеLÖ …;C!H>&}*Bàè°œ³ÃÆ´×é. «N“'•Y‰ƒÛ[ (vÜÀ ;,&wÁ¨ë?=ß³$àÇNûië3ƒšW^ø{µ÷}uö}ìË•}ª}¦x|tãsê#Võ±õñ‰ö=dZEúÞ©KÂ8/®D‡¸³UÔ¶ƒ_ûGÜûf-¯f"Ý.[;ñSðl'‹lê¼®™úJ# ÿÛÿ|P¡e¸à¾Õ´ß8‹…à:O±“΄Aϰ/}µ¾Â>UÊ ÛZž3,†ÓWësT»§¯Ö—TêKŸ­ÿq‘é:Œw\‡ñ®Ãx×a¼ë0Þuï:Œ§­®ÃxÇë0Þuï:ŒwÆ»ã]‡ñ®Ãx×a¼ë0Þuï:ŒwüÔã©ÃuÏçÃw%uÁâÏã0އ^nGcZŸê•éiô«'œSHùÇl!]g¸®3\×®û讵A¶½Ðúþp?²c÷‡%O ˆÓšºÅ˜@F?hª tB6þÓ!ò„hìöR9ŒÞÝ¢+¾#G7ŽB?|͇š[&Œ;öÀÌÙ?£¾/&šþ å}ÞuÙ?þì ×<¸¸)»û/æÏ/ýqòWLmׯ?Àø‘mU²F«­Šj«bÚª˜¶*¦­Ši«òIÚª˜¶*ª­Ši«úж ;Ÿ@­3˜® ³’öú”¤½žmJ®/à-¿àÞòˆÝ‘YJl¥·;§ÛêþB[±õl«PÜÖVòëŒtÕ™¶‘.öƒ°ãìM˜ï±p _××a½?¼Ãz×ù´Ïä|š>nöüÒy´j=›¶ùYÇ·ÎÇµê ©£[Ê‹œ¹:Ÿ±ªéóVÛ¡éÃz^²=/éž—tÏK¶ç%Óó’êyIõ¼dz^1=¯¨žW¶žWTÏ+ºç•½çÝóʹçÛóŠíyÅô¼bz^2=/©ž—tÏK§ž÷1ÇôòOý4ã(´/ŒÍ·ô¼OGÄʯè}ò“|_ý'ù~ÌT|=@þä Õáóù1¥jÐñÃãGš~/õ}˜©/Q›<ÒÕð}\")t"c\`¥VØÙòî±è3(&%èqûWºqn‚H?KÑãÞ„‘’®ÜÃ>¢B–0‚Í} #¥z6s•Ut| òÍD‘­ÅÞ§7ãœãâõGÕP_}OC½6Ü^–óh²i-ÂòúàBýWD£­â8c…hp%„ÜÛŽïïž­öi±¾€gnFÞè2E'Mf)½»M|%då'ŸZŒìW‹õçÁÕb-èkíÔbÿ ˜ë™Ù endstream endobj 28 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20100326111254) /ModDate (D:20100326111254) >> endobj 29 0 obj << /Type /ExtGState /OPM 1 >> endobj 30 0 obj << /BaseFont /BZYVEW+TTFE0F2A00t00 /FontDescriptor 33 0 R /ToUnicode 34 0 R /Type /Font /FirstChar 1 /LastChar 20 /Widths [ 532 246 537 474 246 537 267 347 503 355 316 494 418 473 473 637 226 529 399 538] /Encoding 35 0 R /Subtype /TrueType >> endobj 31 0 obj << /BaseFont /PMFCNH+TTFE0EC9B8t00 /FontDescriptor 36 0 R /ToUnicode 37 0 R /Type /Font /FirstChar 1 /LastChar 13 /Widths [ 229 799 525 229 498 525 335 391 303 488 433 527 517] /Encoding 38 0 R /Subtype /TrueType >> endobj 32 0 obj << /BaseFont /ZRYTDF+TTFE0EFD90t00 /FontDescriptor 39 0 R /ToUnicode 40 0 R /Type /Font /FirstChar 1 /LastChar 17 /Widths [ 229 514 335 478 343 305 514 416 507 303 791 447 452 446 579 507 544] /Encoding 41 0 R /Subtype /TrueType >> endobj 33 0 obj << /Type /FontDescriptor /FontName /BZYVEW+TTFE0F2A00t00 /FontBBox [ 0 -178 575 683] /Flags 4 /Ascent 683 /CapHeight 683 /Descent -178 /ItalicAngle 0 /StemV 86 /MissingWidth 506 /FontFile2 42 0 R >> endobj 34 0 obj << /Filter /FlateDecode /Length 43 0 R >> stream xœ]‘1nÃ0 EwB70éØR\Ò%C‹íd™ > endobj 36 0 obj << /Type /FontDescriptor /FontName /PMFCNH+TTFE0EC9B8t00 /FontBBox [ 16 -177 726 692] /Flags 4 /Ascent 692 /CapHeight 692 /Descent -177 /ItalicAngle 0 /StemV 108 /MissingWidth 506 /FontFile2 44 0 R >> endobj 37 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream xœ]Mn! F÷œ‚Œç)ò&ÙdѪR{LÄ" "“Eoß1nºèâ!=ÙFú¾î|½\sÚt÷QWÿI›Ž)‡JõY=é…n)«~Ð!ùí×ÚëﮨîüæÊ×w!½/PT½lø5У8OÕ婞bDE9üõ£\,ñµÚ£æˆ»(€ ¬# `uBŒgQ3³À«EìÄz@ìÈzD†«C¦öÕ‚Ø6õ(€‰¬˜¡…|¥á¼\·ôîî¤ý³VÊ[ë²uÇ­¥Lu—µð•ÞQ?Ã:t› endstream endobj 38 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 1/g349/g373/g393/g367/g286/g374/g410/g400/g894/g28/g454/g381/g87] >> endobj 39 0 obj << /Type /FontDescriptor /FontName /ZRYTDF+TTFE0EFD90t00 /FontBBox [ -95 -178 737 692] /Flags 4 /Ascent 692 /CapHeight 692 /Descent -178 /ItalicAngle 0 /StemV 110 /MissingWidth 506 /FontFile2 46 0 R >> endobj 40 0 obj << /Filter /FlateDecode /Length 47 0 R >> stream xœ]‘±n! †wž‚78s¹ƒFм¤K†V•ÚàÀD7„Cä2ôí‹qӡÇôÉÃÏp¾¼^òºëá£ná“vÖ+Ý·G ¤º®Y™QÇ5ì¿Ö×póE ç7_¾¾ éÖ@Ié[¤{ñªÏWR'<¥„ŠrüW2Nv,éÙjP{Ħ# `‰õ€¸‰uBìÌ:£ndµ(€µ¬°†õ°Ö# pèUŒý `#k@\¯F`îG àúÜ„L|²iY0m_Ò´·šþÞiì=“à¬8bNøÝßH‡G­”÷þ=wN|Íô÷Ue+¼K7ÔÛ endstream endobj 41 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 1/g349/g374/g410/g286/g396/g296/g258/g272/g1005/g895/g373/g455/g94/g448/g4/g1006/g17] >> endobj 42 0 obj << /Length1 19912 /Filter /FlateDecode /Length 48 0 R >> stream xœíœ \\Õ¹ÀϹwfŸY€f†a†e`fØ!¸a K˜IH +.1!«Qlk˜¨u_ªq·6j†ITb¢FM]ªQkS[·6ÚXJk]€÷ûÍ—ZŸï½þ~ϹóÝÿ=ßÙ¿ïlw JÑA“æ¦V_?5F¸Í]²²»ÃÕKávñ’5«íî} àù5B¤Ç–÷®Xyó»w"{EÌŠ3Ö/Çô®Y„Xæô,ë^úfÇŽ·i¼”= ÐìS•¢; ᔞ•«×…ë;ƒ¹äŒUKº1\z!QûWv¯ë5îYBôQ ´ŸÙ½rY¸=Çàfë]Õ¿ìöÞ¾e½†Çþy¤O#Ä” eÞHÈøåäøç<¸~I¶“ûȃäQò[ò{ò1U’.r>y„ü•¼K>"_PBåÔDh:ùÁ>ã?•®$~‘ !ŸO¿kâØP;Es9„,÷qÍDôÄèɺñËÇGÆŸ“©ˆ^Ì«çžíQ::ñ9WÎÂ,Ì]ÀžÅGå7ŽïßvBszI ëÈz²l$›È9ä\òSòsrÙL.[œ Ï‘-d+¹˜\B.%¿ —‘ËÉäJr¹š\C®%בëÁŽ7ɶp ß×Ub,‹¹…ÜAî"wo%·‘ÛÉäWþ5Xÿnr/èPƒá{@s¹´w€–¥bºpÉ0 ‘dø ÑÐÙGî'wƒ7÷½ä!ò0øqxö1QÇ4‘ð7§Äûãd?ù y‚„õäcr ÂÿÍQ}U{²æS¸þI>#Ÿƒ¿$cSBc'ÅŒ‘qð1¡”r”'ãÇŸŽkE‘P)•ÁšETIÕTCµTGõ 91F5cøJŒúkâ¢&šÆP#¬—Kã©ÖÍDšDmÔA“§ÄÅMÆØ!ÆIS¨+gsÆMæµA Ë”´éÔO×ÂÝC½ÔÏÙ4æÓBZ š,ç@xÄùEV5‹v.˜?¯£=ÐÖ:§¥¹iv㬆úºÚ™5ÕU•3„ò²é¥%ÓŠ‹ ò}Þ¬Ì4·+Å™l‹5ô:J©ˆ’ˤž£$³ÚYÓeº»‚·³¶6‹…ݠ螢è ÚAUsbš ½KLf?1¥)—Ÿ”RÀ”ÂdJª·—’Ò¬L{µÓpiÕÓ†9¥aÕyWu÷Ò`sK{u•Õáèu¤R,+(« ÊŲ짲6“‹ìÙû†¶ŒèÉâ.z©si÷‚ö ß ™†øê¡¡ ‚O0ÝYLßp8º¼,˜é¬ªzœPXÃœÉ hPêÒ;íCŸh¼sôý5ÝaÌ¥ÿ„°GÖÅI3A|ä™@Û …Ð?‡ƒµå¢,†@p°¥Ãv²Ø"‚ÏÓäºX̾HŒ)Àb#1“Ù»œæªê®ðwMOlpp±=+¬/~]ð…x{ww-^ÒÃØ½lÈYU…vkk Uð t‡ûZ=ì÷Aúî.èÄ©Ì -íAŸ³7htV`PØ™Nmm³„³•AÒµ$œ+è«®bí²WuUaYYΖöÝ$wâÐpžÝº3—ä‘ÖŽ ¹œâ®j_º*ßC¼‹8‚xñ6âoˆ·‡CI À_1ô&âPb4àP(1ð—P¢ðgÄëˆ×¯b’W0ô2âOˆ?"^Büqñ{Ä‹ˆß!^@Ä#XæÃˆ‡P¹±ñ b7bñâ~Ä}ˆ]ˆˆb8”"v„r÷"îAÜØŽøu(!pâW˜ïNĈ۷!nEÜ‚ÙoF܄؆¸qâ—Xôõˆë0ûµˆkW#®B\‰ù®@\ޏ ñ Ä¥ˆKcÑ[1ûÄEˆ!Ä…ˆÍ˜áÄÏç#~†ø)â'!kà<Ä â\Ä9ˆMˆ³ëëkkˆÕˆ~Dâ,D/bU(>p&b%â ÄéˆÓ§"z+ËËKK‹݈.Ä"ÄBD'bb>b¢#WhGœ‚˜‹ Ú­ˆ9ˆD3¢ 1ш˜…h@Ô#굈™ˆD5¢ Q‰¨@Ì@ˆrDb:¢Q‚˜†(ÅŠ…ˆD>"‘‹ÈAd#ü‹ÈBd"<ˆ D:" ‘Šp#\!K á YØHNY¦¨´#lˆ$D""aEÄ#â± ÂŒ0a F¬!•ÑBÐ!´ BP!”–…£R†"$Á!(‚ˆ ˆqÄâKĈϟ!þ‰øT¬–þCìý•Ç#>B|ˆ8ŠøñwÄ(â}Ä{ˆwGï ÞÆúþ2;o!‡Ì0²è_o†ÌE€7‡BæJÀ_Bæ*ÀŸ¯#^ ™«¯†Ì5€W/#þ„Eÿñö,ì â÷ˆ±°ßa¾Ï#žC@<‹xóý‹~ñ6þIÄXßoBæ À~Ìð8Vô¶úQ,lâÄȇ{{bÑ»±è,ú,ú~Ä}ˆ]XÑND1ŒÕ;÷bÑ÷ îFlGüqWÈ .ýUÈ4p'⎩p{È4p[ÈÔ¸5dš¸%d7c’›0É6Lr#&¹ã~‰)¯ÇÐu˜òZÄ5˜ájÄU!S3àJÌ~ârÄeؤ_`ÊK1å%ˆ‹C¦ÀVL¹qb(dl\2v6‡Œ „Œ€Ÿ‡Œõ€óCÆù€ŸaÜO1åO0ÉyÂàQ]µím­íz¶í1GAö<¢šk ƒAv€Ü rÈÝ ÛA~ rȯ@î¹ävÛ@n¹äf›@¶Ü¨ì±]r-È5 Wƒ\r%È —ƒ\ò K=¶K@.Ù ²d„žŠa³ïœP4I«ý!I}ˆ³½ˆUˆ3+g NGœ†(E”„ô Óň"D!¢‘ÈCä"rB:6,³~D4€Ð#t-BŒP5B…P"ˆ(„<¤až• óyä=wAŽ€÷þòg×A^yä—Á ù#Èà ìÙò È `ù_*™¥ÑÒB6Â×£qÖ!Ö"Ö •ˆ ´Ã „€(G”!¦c—M#"±«mEÏÎÁÚ[͈&ÄlD#b¢Q¨CÔ"f"jÕˆ*D2 ´#lˆ$D""aEÄ#â±Ø Â,\ùä ÏA>'þäS€|r äcðÜG ‚¼ ò7·@ƒüäM7Àƒ@žyä· Oƒ<ò$È ¿Ùò8ÈÈàÕûAîÙ²äzÑÃ›ÐÆg#N ¼€Ä ´ÇrÄ2ÄRÄÄbD7¢ ±±щX€˜˜‡è@´#NAÌEm‹6ÎBd"<ˆ D:" ‘Šp#\蔄!EH<‚CPœnD¸82òXô%?€ù=È‹ ¿yäyçÀ»AÎç]¶Ÿñ^ÛO©×ö“ÚÁÀyÛçÖn œ³}S@µ©dSÃ&^µÉ ظiû¦W7ÉήÝظ}C@²Á¸S®¯]X·}m@µ–ª×ÔÚàmKV\1pòÛv ìàG&ö ÑE%5ƒ—pFˆçÈÕ1µc@¥­Y]ÛèßÞôåõq%‡ûè }”³÷Q¡¯¹ƒT;ûRÒjXê‰>s| é³÷ùûø³jWz·¯ œY»2ðüJz:tå4èÒ©Þží+˽K˶/ ,ñ.t{»‹¼…Û; ¼óó·Ï txÛ§@ú¹Þ¶@`{[ ÕÛ˜³½%Ðä˜ úFoC`Öö†@½·6P·½6Ð\KgzkÕ|Ø(I‚ooÒ`ÒÑ$‰ª+±7‘ëM<”x4‘ïM8šÀk¥ºøsã/‰çupãðg‹»$n[ÜŽ8©N|àսуÑ\¯aÐÀù ‚áÃ!ƒ„n2pºKtÛt;t|“n‘îÝ„N²CGwhÑ>¯ºø&í"í*-¯Ó2 ¯´ÞìƦñiøRŸ¦\Ó¤á/ÑPAãÍ©4)©5åê&õ"5¿MMµ;½æå„’”ñbBÁM((á©RBõ> ¬¼‹šl5ü^Ê~í‘J/nkõxFäs‚ŠæùAº9èjew¡e^P¶9Hóæ·SzqÇ0å*Û‚Föc°>ëV’XÑLlmñ7Ý”XÑÑdÏ‚ >O°gI:< ûúûW{ú=pYØšÕðAáXÍbV÷Hâù†O?JÿÀ¢È …ýý¬Ô 1a5üÿýÐÿëü¿ýÄ.ZHØ”"ãýü«R-ቜ“F2›´í%z±iô™]UUQYò‡!È;}†DÁ¼Aˆ‘p«µÜ™/Û·êÊå[¸6R>öçן€Ûèbßê{}ô¥Qý؆bßèÁÑl?58 ¢µœ\.“9“½\~ª» 77§ŒËÏs;“µœ¨Ë+(,ãss’8ÞÑ”q,LùW¿lâ«ÇR¸õŽ’Öl)õ¸,¶˜¨(Þ–¤qåÚu ΂´x©$JÆK£ä©ÎÀÚúäç”±© ‰©±J`bpì1©öó¤Ú/N‘T}±—{§¸½,E¶^£â¤Š¨Ò’L)Ù Ó4:TkµÄ'È£ ZeFm÷صñ.‹RiqÅ'¸XY®±X‘š&Þ“¨¥N°ÛEl± ´‡ˆçaîI¢%±´›8ˆ{â]*åf›~L«vôòý±Låg§A1—Ä–Ç7ŽyŽ–³kíÏö[÷~ß²ý.£Í›]P–“™Â–d66“8frfQ‰š—)ÍåóªÎéªæö_?¿`i Êª”ñ¥V¡óÖ-«i\Èô²±±fyO£TGIöÇ9ã¢-)óœ[Ýr;%÷΋Nt[£Ü Iñj§ÇY>pGOßgä;ÒìQ±öK~ÝÄ»’ë¥)¤œ¼ŠVÚ™ ‹e?e’TÝîZ’Gb'ÞÙ©£±#@È£;ÕŒ4uWrr±¯lõÁXU†­¡„’ (n5І0²£”àCCŒzD3`ŽÂ(í9 °éîÿ¹jÀêô+F.(48“Ýâðu€µM£V2e@KÀ( B3­ëüö…ל1­ä´+çeÎu}m”‚õé}ú¸¥iF׊Só¯ÿä×󺂟]Û6´¢Êª–T'fÄ)S2Rf¬½sÙª»ú¦43« ÁmQ©Ì6ãØXRV|‚QÙq×Ç×m^hq¸rÁ ['>§WJÄD2Ð » ᮸OPêçHЧrêƒn™vF8”p“ÐD¯Ô$夺s“4[Ž;5'I“¢Ô+e2¸Ižˆ ëJI'ƒXãpŠlw91DîQAA .Ñ®.8™î”ÉÔΑ°Ù Ø%˜ZÔb+˜­E+SßÁQýh´ðþ/cÄ9NÃñÞ0—H¤y^¦fóAÂWýä¡Á3ÂSg§Ñloëêµm™ã£þšÆôÞ5å‚þü•¿ê/_2Ùã->ŸÜR¶èÜÅUíªñºäé°tùÄ~‹ÔEêÈžˆ¥gpWß—’“’£¶²ÿ@ÔÞ=4‹%ͺßP—¹4Ò‡R8µ êViz«Y쥙ûéä°‹..õŠ‹}>=˜ƒ%šFÅEÃû{|´'¬ 0ø-ììì\Ô)®žÎ³F;Ï‚i1Ø8§&èþ[#Nq¶»ÝùùáM™ù77?=ÖHĹ/G_›ÙÒÆ¯1z2²Ò …[çÎ\{Šúú]kO1¤Îð—/™•«WT2eBÍÂU%§^Ù•ùi×ô¹q3Ëó;¼6­^.×kg–T¸êΨÝßRQžaLHNÐÆ»-¶”DgRLzàç ^‰NÉu ylÿ¨x—wð/‘|rÃä.›ú0·ZÜeáý‡¤„y û"¦^ò ­%Ù`I•Š6fgŠÃ=“ý–!(#›¥gr»ÝŸÞnÿ{%°ïFfˆ 'ˆlê¦ ]‘Êc§ÕŸâ]±íŒÂÊu·-Nk¬Ì7+¤¼QopçÕæ,î‰ÏmÌÍk(rkj¹$ïŒÕYñzaÓ®Õ?|° &Y댛æ³]}Yí™õ.›Û¦´f°U·æÀý0<$JûmLŒ#“ý÷ Ožd„ë”>3&“³f>.aÃÍ!‘è%ܬfI—„»I”pI‚o÷JFÁi|‡Ýõ±ÿ Z½–3ðZE,웊XH øLHˆÃs†Øhx´užµ°Ó3º°lœózx ÿ»u‹ë˜Ìé˜bÓ‰^âL©âáSÎߟž2ö†µ¤sFÅÒ:¿N¡Žâ9I”fÚ¼Õkw®+)[s×i½Û–ûñóùgúâ8ú¹7³¸sFrŒ%Fíˆ3ÛÌ:m¬ÅPºáÁMk9¿¦bঅöÓÖ§LoõÁŽ›øœ»FºŽ”’þ°WÌz›Á¢þ œ3wÌŒw?íÙîüµöYúZ¶•‰“8§†ëþܱý¹ûÅÃŒò;f:ùlbB+ȦsJnälÂ]#‰RÊ䆸d‹55^}+,èRc̭ꄜ””ìDUoLŒT«R×¶¤Ö¤iÉG‰Î¹çöˆ§ÛÞ°ÏÝ:i‚šÄë”6¥OÉkx%Û8Á{°¡´ JÁSïÖ™ìu&ÑgpÀ[½ˆíÈûÃÞVþëô'm_ç^ñ÷·vKe”1.)Ú”‘N>ɹβ¢¢M’=V%•p|CŠ7^ɶ‹”Ò̱ƒ_u煮n/W(Õ¦ ñ7„#ÜGÐû:räø;•wòªJH&j‰—zÂ4T¾m(Ø .´r¼ø"¤+¥ð.tT°Š/C‡Ù‹P½YÏNÚÄLõóG“nû„߆:ÅסEýh'|OxÕìÿõ}70î£âž‹[sæ×úÍjI”Z¡ò‚äüT£kzcKãtWΠÚ2š„̘( ÏËÕQ wqƒ?9Ç®w—5µ4•¹iÒ¬Õ³Su–XSVf¢Ó$KŠ×ƧÅ'yì ə¼ráôYêh“Ng²Y¬ÉF¹)Ö¤wmöG¦Ð^²L¼Ï],&ÓÈåè¥ MI:qf±SeÑdEÎ*YpVÙé¬MÔDvà¶Ôf³ÿò(ÈÃÆ v@œ–¹c9ûs ‘_q²¾O!¸RI¾þ¸sâ¡È9*r«¢¾Â„†3k“O1²ayš*W°Ç”â‰èqo‰ÑgËT2é†L_ lî¦usèÓxÞym©í'ñD4ÞYW'WÈ妰Öz8«?Ë?«øéá­JÝñ_emÜ"A“U—ª’ÆÕ¥Ä†ßHw ÚF\€#¯ìåâ’%ž^´ß%ùÔõ:ò¾79 ‘_­" þYe\ºÍ‘ óœ›bçaJG»`ùî.T‰3<áø&ÅÖäž —s“Šñ¨qçZ"è·v¯ÐïL¿Ïé¶îg÷ &‡]æpŽp‚Z vGZC_§ /Gå4Îû:ô%º8^ÿz<úýÀI‰ÂóFNµ<ë]*=¾2[b,…1áß–wR^*?&5¤VäWº Òñc29U%d»ÒsÕ’gd²§xM‚ÏíòÅ+ùmR­Á¬ýòeƒI-‘ªMz>Õh×Ê 3©Â ;+.Ž»DmPH%JþãäÿõE³¿óuìÄ‹Ëü¯»¦^ü²¯â’´|Ëõö7_Ò_½dÓØK^ù×5ßázeêÕ}ÂuðÛ.E+^J÷×\}ŸKUüµ×]?^?^?^?^?^ßï"ì7ü‹+#áEÖaÿ¯ šSè*zm¦t ñÑëhÝBÓ(Gõd!ÝGØo{ÑôRº‰HH-ä°¿Æ"ä¨qbî”Ý!,ûw-Güƒ/ mâûÃ0 !mm5Õþšœ~ÿj¿_ü{1z)û× ßñubð(9:q⟗!$ÚãBŸÿþ")%M?´HãHÝ· —L¶þ'‹¤â›…Š”ÿ(?ÊŒ|Lf~/é µßG$rRÿ]„ÛLâþ“…†Xÿ]¡Ÿ’Ó 9ç›DÒð-ÒöÿžÂý‰œ3UølR÷]„{‚Xþ·ú¸þ» ÿ41‡÷ÿoþPüw„ÃÁ.Ò•~BâpsÝóÞÙÏ2>ZñŽòKÝx¿â]ùV!îáðù/ßïÔé endstream endobj 43 0 obj 267 endobj 44 0 obj << /Length1 23200 /Filter /FlateDecode /Length 49 0 R >> stream xœí|x”UÚö9óNË”d&“I›$3aR©´`L†4I€@’Ъ”š€ÅE]±¡®âZpÂdhA]E×Õµ—µíZwÝuQ\ËÚH¾û¼ÏV¹¾ÿ¿¾ÿÛoÿyç~ïû<§¼ç<§Ì3 qƘ•u3…M™<-wS_Õ_à6½uYK{(ÝŒ[GëêUžÝÛ|ý6c:Ó‚ö…˾úªÖ}„±°ø…K×- ò#단\4¿¥íO•»ßg¬iŒù‹`°î2!O‹tÊ¢e«ÖRùštâû¥+Z[(]z+cÆ'–µ¬mÊ+Ê…ѳ¼eÙüP^ÅÍݾ¢s¥›&ˆüöŽùíƒýõ0Ê#bfÌpcÛØÉ¯)l ëÄx»Ù%l+ÛÆeo±yì"¨íl»‡ý’Øcìiöû/| ¬Ó-cåÓ3cƒß¸è×…ŸdÙ†”CëùÁ2hüä4Û'ÛmýúHfRëZ5¯Àú9?>ø­¦D¤óEZs)t„Zã3Ãm»vžæƒ:ÖÄf²Yl6kf-[ÄÃ3ç±¥l[®¦–#o!î š‹R­(%ô¥V°v ƒ­b]l5®vèÎPJä­TÓ]l ®µl[ÏÎgØÆÐ}jÙ€œõjz-°‰]€™¹mV•d²\Ä.f[0k—²ËØågL]~Bõ°+Ø•˜ç«ØÕ?©·ž’º×ÏØµX×±ëÙ ì&¬‹[Ø­§YoTí7³ÛØíX3"ïzXnW•È}˜=Éö±]l7Û¯ú²^#H¿,P}ØlÀ/:©Çä¿5'¼µ ccë t-ì›Oª±:äGQò"”¤VhD+OóÄ5éFD©ëÕñÿ`=Ù+g²JÜz’gnQSBný)}û9vภ¯ õ hR·«údûm'ÊîPÓw²»ØÝ˜‹ª’L–{ w²{±·ïc½ì~\?è“ñ.ö€:sÖÇ‚lÛ‹™Üϰ~Õ~¦¼³ï Ùƒ',Ùƒì!¬GØ!œ4ã’–_ÁöhÈú„j£ôãì×H‹R”z’=…êö,{޽È~ƒÔ êý·H½Ä^a¿cop+ÔËìCÜÌ7¾mîœÙ³f656øë§M­›2yRmMõĪ ã++ÊËJÇùJŠÏ-:glaÁ˜üѹ9ÙYCÓRS¼CܱQv[„Õl 3ô:­¢á,«Â[Ùì ¤5´iÞ ²EÚÛCËI†æ€¦ÊSË<Íj1Ï©%}(¹à´’>*é;Q’ÛéRƓڲÁp¢OôœŸì•ÊðTÌ/?©ƒ§4ª u0ÔÚ÷S#|z0jÅtNYJ*v.l4£šÄ,ÆzlЧÁ;ßÛèÅòMic¾Vç·zš·º®©AíÐ*©?%Eù” °ddË„¦ k°2Ó%§UMWÓ'’NË®’Ùž£·zZhÜjy°ƒ0h}ZUË‘£°5+qºy+[¼›§²§¥°{^OŸÏ×Ó^Ѽh¬hÃ[ÕÖãÖPäRû:µa£k½xT$«æÕõ¥ÙY8{Jû¼ü²º>¿lZSÃAbÜËê‚®)k.mìKA^ÃAwÕªVa Hˆ–¦"aTË»úëVsµªAM·ös¦ÚŒÒÆYk¿†l6iÓÀ¦%›Oµ‰&)v\Œã¶ÂÓ&¦gC㢞æF±¹X4¦oàÞbÐx‹û¸Fo ˜¼óKfo©°—{ ÙõÂnÀÂàÑÎgRO³çTsqZŠŠhÒÓ?8Xßü¼ëhc2–Ú, ©!–‰³_—:åÆ 4Ã<>ÐÝÚ"úÁü ¢®!µªµËV6ˆ"U0´j%*Õ:b9¢R+æ¨ÖïF"ÐÝhÌmXܨ.g[€MðŽÅ´S›º4ñ ÜÆžHïuob+˜R/†¾±i dq!‰‡5’“ ô¼Õ‹¬Öf¼­e­Ó°Ôé,5¹È2G¢6m¾ “+”Éİ”T³ÕËAƒx mÎ[R—jhl¤Î«©KCðl[ÀŒ¥äÊPxYU¢/x_ЮТ‰fêúÙTïZœ,¢ÓjKd¬©U-8ü©¾o¬lg„9ÔÆd5ˆ‘[àw%µ¾p§w]òI¯ì,¯øp “¹ba³ÆžÓ ™™ÙYÆÓ­VÕÜÓc´þxò—Ñz‚…ÑSO Äw`=`ü Ó¤ï‡\¶_XN~)‹¶Qž¢ûÁÆr¾zc1;<¦xú5ï ‹å!.’b³JÑ-ÅRl’b£¤8_ŠõR¬“b­k¤X-E—«¤è”b¥íR¬b¹ˤX*ÅyR,‘b±‹¤X(Å)æKÑ&E«ó¤h‘¢YйRÌ‘b¶³¤˜)E“R4H1CŠéRø¥¨—bšS¥¨“bŠ“¥˜$E­5RTK1QŠ*)&H1^ŠJ)*¤(—¢LŠR)ÆIá“¢DŠb)Ε¢HŠs¤+E¡RŒ‘"_ŠÑRŒ’b¤#¤.Ež¹RäH‘-E–™R “"CŠ¡R¤K‘&Eª)Rx¥"E²)ÜR$I‘(E‚.)⥈“"VŠ)¢¥pJ%…CŠH)ìRؤˆ"\ «)ÌR˜¤“Â(…A ½:)´R(Rh¤àR°àƒR Hq\Šï¥øNŠo¥øFН¥ø‡_Iñ¥_Hñ¹—â3)ŽIñ©ŸHqTŠ¿Iñ±Iñ¡G¤ø@Š¿Jñ)Þ—âÏRüIŠ÷¤8,Å¥xWŠw¤x[Š·¤øƒ¿—âM)Þâu)^“âU)~'Å+R¼,ÅKR¼(Å R)~)ŽRì”â)î–â.)î”âRÜ!Å)n—â6)~.Å­RÜ"ÅÍRl—â&)n”â)®—â:)¶Iq­?“â)®–â*)¶Jq¥WHÑ#ÅåR\&Å¥R\"Å)dØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃeØÃ;¤ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—ñ—a—a—a—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ—Ñ/Û#¢æ`R±1s0É ÚL© ƒIcAÝ”º€hS0ÉÚH© Dç­'ZLZL,­!ZMÔEy«(ÕIÔAÆ•ÁÄRP;Ñ ¢åTdÑR¢ó‚  %D‹‰-$ZL(ͧTQ+Ñ<¢¢f¢¹Ds¨ÞlJÍ"šIÔDÔHÔ@4ƒh:‘Ÿ¨žhÑT¢:¢)D“‰&ÕÕUM ºª@UD‚®‰ ñD•AW5¨"誕••RÞ8ªç#*¡zÅDçQÉsˆÆRõB¢¢1DùD£©±QD#©•DÉò¨±\¢ª—M”E”I4Œ(ƒh(Q:5F”Jm¦y‰†PÓÉDªç&J"J$J rÅã'âˆbƒñ“A1DÑdtE‘ÑAId§<QɬDÊ3™ˆÂ(ÏHd Ò㦀tÁ¸:–H!£†Rœˆ©Ä‰Ô"ü8¥¾'úŽè[Êû†R_ýƒè+¢/ƒ±õ /‚±Ó@ŸSêïDŸ£¼O)õ ÑQ¢¿QÞÇD‘ñC¢#Dý•Šü…RïSêÏ”úÑ{D‡)ïDï’ñ¢·‰Þ"úù=¥Þ$z#3ôz0f:è5¢WÉø;¢Wˆ^&z‰Š¼HôŸ'zŽèY¢g¨ÈÓD¿%ãSDOý†è ¢_SÉÇ)õÑ!¢G)ï¢_‘ña¢‡ˆ$:HÔO%Pj?Ñ>¢½D{‚Ñ% `0z&¨(@´›hÑD÷õÝŒÆyÍI­ÜK´“òî!º›è.¢;‰~AtÑ¢Û©±Û¨•ŸÝJy·ÝL´è&ªp#¥n ºžè:ÊÛF­\Kô3Ê»†èj¢«ˆ¶]I%¯ TÑåD—]JtIÐÙÚtÎ]LtQй´™è Óê:qó ‚Î|Ð&¢T}Õ;Ÿh}ÐÙZGÕ×­!ZMÔE´Š¨“šî ê+‰ÚƒÎVÐ jl9•\F´”è<¢%D‹©Þ"¢…Ô³T}>Q•l%šGÔBÔL4—h z6õlÑLt5ÝHj šAÝNòS+õDÓˆ¦Õ£| )Á(ñ„ÉÁ(±¼'£.Õ£²A5T¤šhb0 q¯¢Ô¢ñd¬ FmU£.•£.•£ºA¥ÁÈJÐ8"Q Qq0Ÿïü\Jí sˆÆíbiíãAc‚öP~ÐÞMy£ˆFíY TrxÐ.–´‹½™K”CÕ³é YD™ÔØ0¢ jl(Q:QQjÐ.¼”Bä¥6‡P›ÉÔ˜‡Zq%Q½D¢"Q ì6¯sï2¯w?`Þà¾ß¼ÑÝkÞä¾ø%p/°¸¸Ûœí¾ |'ð Ô¹¼Ã|žûvèÛ Ü } ÚºmmG[7Áv#pp=p° ¸õ~†ö®1Mr_mšì¾Ê´Ð½Õt·ûJÓN÷%Õ}±Rྈ¸7û»ýövû/ðoôoêÝè7oäæ®ÕÏߨ»ñ­¾Z½iƒ½ÿüÞõþuþ5þµ½kü«{»üÚ®¨®U]Ê]¼·‹—wñ¼.®a]¶.O—bYåïðwövøYÇ”ŽîŽ@‡öœ@Çá ëà¦þÁC{:\I•`߆«­r¥…¿½w…ù‚eþ%èÖâ‚…þE½ ý Úüó{Ûü­óü-Íþ¹³ýszgûg4ùgö6ù ü3P~zA½ßß[ïŸVPçŸÚ[çŸ\0É? öÚ‚jMoµbÁUïÿø‚J†Ìl žÅ&:0)=a.^šçò¹»Ž¹´Ìpr)‘ñîxMFD/›ÇWÄ]wuœûb¬Æ›‘UóbÌc>Ñ:|19•,Úí‰Vœblѵõ•*—”­Žµ6Ú›VáäN·SSávrf?l?fWœÚ^´i""xDÄ`„Æâáîp¸ †+¾ðác*#¬n«FÜ­J´Ï ‹h1Ý2¥¾2Âì6kü%æÉfÏ\RVé3gçU2…{8gÜRŒ(»—;Ý•ÊÃ\üGÇ8¿¦¯~Zffu¿‘M­§Ì ðË©ÓÄÝW×Ð_`þ¦™ }œ_ÕØÇ5eõ(ñË^5½eëV–XZHœÖTvìH,m¬t íó©zPh†"™s:»:33WÍÁmNçªLõï©LaïÎUH‹«KM³Ì3¾¨hn'^«B¶Ug®ô?ýÅÿÕø÷õ1ñoÆ j.fmš‹€ÍÀ…@7p° ØlÎÖ뀵À`5Ь:•@;°X,–çK€ÅÀ"`!°˜´­À< hæs€ÙÀ,`&Ð4 À `:àêiÀT ˜L&µ@ P Lª€ Àx ¨Ê2 ø€ 8(ÎÆ…@0ÈF£€‘À`8ä9@6dÀ `(¤©@ à†É€pI@"¸€x ˆb€hÀ D °6 ¬€0& 0@èí¸AÜ@p€±6Žßßßß_ÿ¾¾¾>þ|>>Ž>>>Žþ¼üøðpø#ð.ðð6ððà÷À›ÀÀëÀkÀ«Àï€W€——€€çç€gg€§ßOO¿ž~ <<~< <<úÀ~`°Ø> ìv÷½À}À/{À=ÀÝÀ]ÀÀ/€;€ÀíÀmÀÏ[[€›íÀMÀÀ ÀõÀuÀ6àZàgÀ5ÀÕÀUÀVàJà  ¸¸ ¸¸ØÂÚÆusìŽýϱÿ9ö?ÇþçØÿûŸcÿsìŽýϱÿ9ö?ÇþçØÿûŸcÿsìŽýÏ;œgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpœgÇÀqpìŽýϱÿ9ö>ÇÞçØû{Ÿcïsì}Ž½Ï±÷9ö>ÇÞÿWŸÃÿæ¯ÆuþÍ_±s爓 t*¯è™ ¬Õ²IlæÃÌŠ5ÍÆò}ûœååÆlÃ#X¯æÁŠ7"$-óEh5Öññ%Þ£õ[{¾¸ï-1lÅY^rüÝã/ä÷hdaîQžûÎ{ï¾gûì{aîÈ÷^}ox·'ÛUD…k †(½wHŽftzZþÈ‘#Š5£G¥y‡„kTÛ¨ü1ÅÊÈI%JZŠ5"Í•W¾oR&×k6yK¦Ô%ÅGDYõ:MBldvQªmÚÌÔ¢œDƒbÐ+:£aè˜Ò!ÕK+†üÁ`OtF'F‘‰ÑÎD»áø[ºðoÿ® ÿ®L»ô»ëý9³JR”›LFV¯ïOŠvNrÕô‡MkvØìÑFC¤Ý2´|ÖñKœ ¢§“Ú:^‹0ý~Æ” ð`[ÝŸÞ?xdׂ퉱Uå¯öXT>²Ç,Xc÷……9< cñøÚï³v§ñCiü¥4ž–¦?$°Ö¥ƒúôõ¬äh‰ðèì•pjndaan®í=uG ÏK.J’6Ú>*d2|äT öÓ¤²Ak²o‹ÉȈÑ,0Z:nz4ZôÚ0èIn´š´ã#]‘FwºvsºÛ銊tÙKÂl ŽÈx›a`¸ÑîbX÷~«<…q'° ¶¶/E¹>4r}häúÐÈõ¡‘ëÅÈc쉱(›h‹7‹•×$z—(~IÂì©ýÜ´G¯·xû¹y³Îâg%%¡õª:êÆ.’×k—‹$ä­aTŽ0‹U¥<å[óÀÚmaŽä¸¸ä(ã°xîV»xYMƾsfÌκý–I +S”m-·./È1Z :ÁbÔÞ7tˆ!¦dÖº“—Œ ?þÍÐñ­bij*Û•gX&Åvù†åæ—ä¯ÈWŒÒáÁHŽä,†š‹±dÙ¬âaã5Yýü›}å™wej2á”}(™9JÛ?xX¸ü‰pš6«|d¯¨¤íט|ÉÉYOuk¯ÑjiùKZ®Õ&ä¾61ö£æðöpMxØG µØq¯Î>yu¨®ñNælUÀœ™9W¤ sˆ5šf3[xMz¬¸·O啎P¡9DOm!ŽPù#Ñs:èKJІLJa2¡ŠI,w“hÔ¤®yÖü)>;¯Rüχ5ûO‡äCˆòG0׫'¦ôs½Ï:nbqevAUvM\ê’~â4 ¹%³ðÕLUà#&3d«ÔMœä/œCôû !:óóÇЇS÷ Ç:ŒQYå9…Fø9&ÙaˆÎ*Ë)\U.ݯLˆ‰N´j®®*h,ϳe×UO™±ºÊ}b>4ÞÂ9å) þãWü´E¹ØhS”0³qr|Ãˇ9Î]py Í ²38‚]ç‹ ·’Q|ØÌÒ1š¥Óg³æJ2ÛPÖ,¦Ë,Ž_³˜=³˜83ò0ŸX‘I6á}SöÄaq)UÒõ‘…ÂíÒͶS¼}&_ŸêZ§²ƒ|iŒÍ©Ê+ÞðÏN¼±¶éüšä\Q{&GÁAÍâliÂéü.<ä`éì^_BIÉ3ì<ÍÊÓ,<ÍÈÓ |˜Â34<)ôQ•rXRè,N ÅI!‡%‰#8)×ÄMQâÓ*J¸+JœöQ‘(%|õ ¾â²ÁC"Xm;¦)Nü<>b">¹4}ºZF+uvÈe¹t&‹½,_ü´ðFýàÂ9ì ÕÊ»c;èXq÷òüÂÎû;Ácv¹Š—L®Z\žì*Y2yÂ’rÿËòƒ—T—nÚÛžÞPµy^ᨹ›k'nn)5g3|³}à:å5øf;—uïá’œo ­Sh•˜äéc Þ$–KŒ3S 8S 83VdgŠag Ï„1§)t²V—×ÏuûÓ&ºªl“ !CŸÙ1…§~d(T?‹hÌé?²FhßI/ìÑѪ^Ùz휡åã|)'-–(§+ÒQS[—=¯gÆÐ]ΑÓ}žb_ezùú²âÆ1ñüÃÕ_4Þ6d”w Xž…Ú±f«gݰâ gÍÅ»»*.l+rd” ¸yZCQÛqZÖ Õ¼oU±|–Üê’êÉÕTï®Ö ¹l\ÈeãBëgœøé±#”¶…Ø,˜¿ís§ŒHaq‰ýæ[Í%¶ŸKì]—XO®ùWbùLH0‹v‹ø‘qÚ+±ì¶h,9ïŒ1}lŸbo¶·Û•1ö1ö袷ƹt££q"µ‹p¶í¨M]n™¡C1Sø” y^+WEÝ9úPZï MHhê5/Œœ³yRÞŒŠ¼h“Vo6˜3K¦ +áJ÷Mñ×ùÒ3¦ž?5eÂØ §AQƒI6$¿*w˜/Ã9Ô7Õ?Í—ÎÃ+–NL‹ˆ‰‹Jq;;º<®Ho~jÚ¨¡î!™ÅÓ‹F·TeY"6KD´Íg3DÇE;¼y 飇z† +ªs‘<ø©f™ö6–ÍÚ›ÁìÞìϳCs‘š‹ìОέÞl±z-1Öì£Þ ‰Ö£1†÷smŸ¶äóbWŽ ‘Ï?A1´––¢ú¡wŒ<9)`Ò‹83ZPšeF›'#'¦²Í—¸)"R„Òå‡ðFK˜62âƒ1ãcR¢Œº0vfâ[x˜>µºs’&ܓ∷^7XDØm°Ç;R<¦ÙsÃLaºðX1î œ÷ÕÊÃ,—]è³{†ó\#•#–Í99<ƒß9*–Çô~­EÒÍà }ÃD@!ê1^àåùfnöˆsß#N{óð¼Œ*¯ÙžXe?q¶–Ø#9E‹ ç‘ú·Ôè(½-¦+J¸¥åáø–ú¬t8Ä®ŽÖ¸Rft¤»“¼N³öÍ7´fç„ÄT;ã±ÿ0rGº'ÑeÒ>ÿ’Ödw»S#5aßd…;,:D˜>ࢳ8Âù¾3ÜaÕ*z“a O)ZsTÄÀá›-;ùçº+˜— ñ9áEl%Eý"¡8Ýæ-¬$¬.z®ÇÜEÆ {4„ELlèÛ%ÿtîì¹3u<<1.2ÞaQò§$¸ §Žäø¶“`Óèæ==ÐøúMÏZìfFoÔ-xùÍwV®|û÷¯,ÄwEôÏFxsÇÿÝÅÿ%× g¯ÿ9—fÌ¿ô ü'®Ï¸”WµóO¹>ÿñK×sò¥Ÿò#×sÿo.CÓÙëìuöúo»î<{ýû_L|‡¦¿&ŽbŠÊLÏRÔ¿:¶òÙ¼‹_ÎWð$¾šß̯Q6±þ$ßÈf0-bs†»VÔ>fÄ‹;ÒZÜ~º&SËDâ¹&þ°ÙÊX}}eE^EYaiÁª¼<õïù5â·ÿÉ—ñÔä1vlðC该µáÿ½Pްûÿ·@;ä,Îâ,~ ÊwlöÿVð×Ù–ÿ"lÿ1èÛØví¨3 €5ýá m)ɬî?Í.–üïe Ë8‹³8‹³8‹³øÿ šelKè»íO¿ÄwD|ãì ì~pnDÑ—,޾T>ôñ†ç?Vz$ìûáaûÅÿÙÌÂÔï®xý}¤å] endstream endobj 45 0 obj 224 endobj 46 0 obj << /Length1 20292 /Filter /FlateDecode /Length 50 0 R >> stream xœíš|ŹÀgwïn¯÷"ÝIWtºS9ɪV±UÖjV±,ÉÒÙ:WÉ’lٸʖ).0˜f @è5DNgŠŒ)„bÄ1y ’`ô¾Ùï$[z˜’_Þ{yy¾½oÿ3ß|3;óÍ7³»'†¢!; Gš3²‰ø)ù-œæw¬mßÍçÂiWÇ–Íîû®}q?¤_'Dª]±aåÚ›?,»Ò¢0­\sæ ´wWbIíîjï|»úÞ÷iPƒ2¯ºj㥄è¨Qb÷ÚÍg }i&èZ³¾£óÓáºò¡µíglÐâ$P–H]×¾¶+ÚŸA8¹6¬ß´ós?¢åzº6t}6¶:¸¾~„þBF÷’?d5ÙãÝIÎ'{È^òy,'çBêr¹ƒÜEÂäqò,y•ü?£gJ×5÷ ‘!cÇÆ†Gï”jOÐì…œIâ>®Ó}ù#ù€ 0yÌlòùœ¼Þ_^§>ß žWÁyå„ÇOߎ{vxl²¶DËП»D?—–»a6vP§Oœ§ñ¶¨õx['ú‹Ž‰Žè¸G¸wBs|Ü“k¡Ý‰>›ìÁkEÍäÒ©ž=1}óIKn%·ƒÜg:Ss㩟Á §òsÒOçÇS¿ ÷{a/ ûÈýäò œÈß¹ãåQ3nóÍú‡È1 #Åù’ ‰ºÇ µ?ZúX´ä!1ýyv¡çÉ äy bçQž'/B|¼L^]ëuòF4‚ŽˆäeäWäe‰ŸüVªe¤ÜAò;—œùWÙk`&ˆPµlé’Å‹†Zƒ-ÍóšæÖÏ©«­©ž]UYQ^6K(-).š9£° ?ozÆ´ô´d¿/Ñ›àŠ1ô:J©ó2©„c’Vé­js‡ýma‰ß[]NóÞvP´Ÿ h »AU5Ù&ìnÍÜ“-°\1ÅR@KaÂ’Ñ»‹HQzš»Òëªðº™…M­ÞSá ¹ÃÃbº^LKübFj¸+cº+Üa¦Í]®ÚÒÝWÙVí ¨”åÞò.ezPª ©‚T8Ù»a€I.aÄ›\9c€%r ½l˜óU¶w†›Z++OHÔ‘r±­°¬<Ì‹m¹WÑ>“ Ýiû.Ô“åmu§·³}qk˜k‡J}\e_ßî°!NñV„SÎúC ¹+œæ­¨ ¼ÐXݼ‰ 0a©Oïu÷}A óÞá&kÚ£™Oÿ¡I:Ä 7Aùxš@ß ‡0>‡öåÂA,‡LxgS+æÝd¹#B„Œ@(̶ђƒã%– -Ù9^2Q½Íë¡SUÙýnéŽ ï\îNOï‹_|¡ÜæümË;º)Û»ú¼è·–Ö°P ¡=:ÖÊÌ °ooƒA¬¢nhj gx7„ÍÞ24…›ÎÁªæV±J´ZØ\&mÑZáŒÊ Ú/we_[v¶åmjÝOrÆÞÈu;öå\¢ý[ËaRü•}­+®6G'Äç w«ÃBྷµ+DgÉ«§¼—óˆWkÁئXÓ‘ó>¹»•up!:[ pWÁÉ[Vz˜.1Kg´¬ÈÝÊ8ȸ\%jAS“Ú ç+¯¦E­Z^íð„<øù–.9¢}’úÂòÚÒƒb¢Ox“v ­i‡RÜ•]'tpR£Òh£­}s?Yê‹è…¡†œNgõx烕 :šUtcÜaÒènõvyC^ˆ!¡±•ŽúZœßºfo]ÓÂVq¶£QÒ2)‡å˜ gØrˆÁª€c|ZÅül1?‘­žR\3^ìî“{ëšûhãÞhƒÄ +-ó×´_X`Ì…¥Y»›·ªÝëÖ»«úÚÇv. •mÝ3hÞšÎ>osk‘Cìë¼Ö펳襌¤Ž©k)KOƒ½§lÀË\Ð4 04/lݯ‡ÇÜ ZZ#,Ö·•…¡¬u¿övQËR-UÒŒ›fhKó #íûBvŠ¥Q!æ;"êäã:†t ²¨ÓëXÐIP'ˆ:úIŠéÃv[éî¤Ó³-ÔÝ×¢‹‹Xa*áË„o ³Þ’†•©ÃJoWYXå-£úRª/E½Œêy ÆÊ€sèžÔ׿…} ª•8 EŽ6ékiõr ‡<j‹A¶†Øû¥¾Z°›M¥ Ô³Ã;;Úi?H°•Öå}5!ÛñÁ¤&¬€ÑÀ¢J¬CÃ*uÀÜÀŠõwB&¼3èE[W…ÄpÖ‡IµwL;¶)õÓ e„úŒÞlqmÂRPúvS( o¤¹5ÈÂÅBè$^ =ïðBQG›¼-!Í긗*¨é‚-QâïEéˆ:,ΧÒ(ÊiÐ |iZ5.I©…°óbnwÔ®­« Gþ\­Þ¢Úøî†®RÓÇi3Mƒdž÷ ØYh§Å–x(k|5í°ùc}h¼ã•åtPEÛB-OG®¿s¾–Á±;½gzNø¤§yéÍ&qÀ«¦@B}SáEô4ùT­FT÷õÉ5ß\ý%×L”B^•F 3¤œûuÖÈïÈ sí‰/KÜÇÔFÒNžëxXz’AÚà÷ƒ±1˜f@Á ²gEœ%®AöLħ p:bKÄ9Ћ،&›"Ι€žˆ³°±±>â,¬C¬Å k§EâgV#VEâËÝ‘ørÀJÄ D¢Ñ–c…vD–-C,ÄU– #!"BˆVÄÄ|DÑ‚˜‡hB4"s#q€zÌÍAÔ!j5ˆjÄlD¢QqÔÊ#ŽZ@bBˆ8ꥈ’ˆc Q„˜‰˜hFb›ˆ|l,1‘‹mæ ²±^"‘˜†HÇÆÒ°zë¥bY "‘„–~„+$"¼X/-=7Â…p"â#ö¹€8„#boرˆ,³!¬¨´ Ì–Tê1§ChQ©A¨*„¡ˆÄ6䑨&!¤ šp˜c ‚ˆ`Æ£ˆ±ó5æ¾BC|‰ø;âoˆ¿Fbš_ >Ä´þ‚ø ñgħhò âcT#>Bü ñ!š|€ø#â},{ñ.âˆwÐämÄïQùâMĈ£Û|Àëˆ×"¶€ß!þ•¿E¼ŠÊ#ˆß #~&¯`îeÌý ñ*_DB¼€xñZ>‹ø%*ŸA6vâGhy.¶² «ŸƒØ‰8±±± ±qVÄ{2s&^á lútļB/öe3b^¯«oDl@¬G¬C¬E¬Aœ†CY×[…èŽXò++"æ]€®ˆ™ÆngÄ|6 #b¦õ–£²=bm¨\†Ê¥óÀ’ˆù\Àâˆù<À¢ˆ nÂÌÂˆÉ !Z#&%`b~Ä·y&1ÁýiA4#æELp›gš"&¸±3ˆ†ˆ‘öznÄX¨GÌAe¢•5ˆjÄìˆî›LšT¢²Q1Ì”E tQΊZBÄ”F %ˆâˆFkb&b¢0b "†4@~ÄPÈCLè…rñB9ˆìˆz0 ‘1PGf ¦a_ÒiØ¥v)‘‚]JF$a'ü"áÅ héÁ.¹±.¼ž–qV·#b1hiCX±ƒ„ûi ¬§GèZ„MÔ˜SEôKʈ~)@Ñ/È›0Ƚ ÷€üän~ŸƒÜ¥Úáú™ê,ת3]woWmsݦÚîºô·€Ü rÈ 7€\rÈOA®U¥»®¹Zy§ë'ÊÛ]W¯¹d/ÈåÊn×eÊ]®K•?u]¢¼Þu±òF×Ð_rçsýˆ+p˸vwÏéß<;¸=¸£{PµQmwl¯Û¾u{ÿö×¶ õ2å¶àYÁ­ýgÏ ž<£ÿôà–þÞ ¤×Ü»¹—û¼—éïe*z™Ì^†%½ú^w/§Þì nêï ’žÆž=áÉÌpÏ[=,éa”ƒc÷õ8œU@a[F_µ1¸>¸¡}pÝŠµÁÕЭU+ƒÝý+ƒ+ :ƒ]ýÁŽ‚åÁö‚¶à²‚%Á¥ýK‚‹ õ/ † Zƒ À~~AK0Øßl.h Îëo 6Ì Î}}A]pN]°¶ :XÓ_œ]P¬„!“8}œ;ŽÓÓ̃žÀ[sY¦Cp¼åøÔ!!Ž°ã ƒ3êì.;›¢‹eÊb™õ±gÇ^Ëéb^Ša…˜”´*í%Û›¶Ol“`K™VE¬z«ÛÊYèØ¬õ-U"K+YÓűÖ[½þ*…ÑY\¶Òeaˆá-çÎò˜þ%=«Ó1:ݘŽt`®Óº´,=i9A›•_¥Ó¸4,=i8«  m1IÝØR¥S¹Tl°TÕ bUiy• JϬ"ãfÂèœlïc,®*îa†¾IJ Ã\:ÐÒÔ òcóêŠÆEaæ‚°¯™ž…¦…aÙð¾pQëÃ\`Øò–°™þÐ$æÏÛ³‡Ä—Õ…ã›[#ÜM7Å—…êÂ;iZÄôM0 –nêÝl^ §¥›6Ä/ä˜^š P%ýnÚ yzôŠyøÖš–m‚Ïæ¨nó·Wú?ûaþ·;ð/þ‰Y¶”þD"%dt÷;©–p„'3Å¿,7ÜŸnM·Ê‹f)™aRCx¦“°ÄÍ\Däÿ‚QÂúòe\“CcØÐÄ4Uðl )=úÆÑ%o=<Äd>2¬92l,,ÌÈÈÊd ƒ(f-Ëó2™7a›ŸŸ——““]ÂNÏÆz´ þé¹%l~ —“ídES´µ`LµÜï¾^Ä5ŒÈØ­®ÊusY—CkVK·Ôe“7L3é<Ó““… ¯”±R¹Lž2£"¡bé ûèý¯â•n«Õ®•Jxµ\áŽ5Åj%£URí±Ï¤Ú¯Ê%k¾º‚ËÊ]9/OzµRÎJd²‡6ßÌ*OlÀmÒ™ôj­Ôd5Êx“Qå/®¹Pn³Ûx¥’W땊˜«\¡”©õ#„{nì˜$Ij& ÄOyˆÝÎî ­º[…1zSïSk5«_¥ô*½ 1‰‰JÆšèõû†d¹x¥†±J’‰š±rjµ1~ž1( &bJKK…dÙÒ%[¡ÑV˜c¯Î6ä0CÙ…±999úí»‡† LŽ^8Ï?ÞlVfÈg¥Ó2Mâ<œ–ƒ òçå38?6ÞËx$‰gJN°º r&säÝ»¤›ÏáLÔÊTì-¼ÞžïI‰U²—0£·0‹­­„ãÕ fæè/•9'Õ:¬’ˆJ+ç8¹Nµgd+l!Dâ€Xt’É#NöÞ~’ÆæïS*-d-ô®,ŸÕ"õ[]vKf¦ÁGŸ¿ìMYðP¶O0´ÐÁ@J!3 !‡ ™Œ§³s 3†³àž¥úUÁb@:9‹Y+ñzüù&ˆH8‚§áëåh$s¹þhJâð/ÈO­É+ öìY2z—Ç£xÏv0ÖŽóCiZ³êŠh~²aÅ,WÒ–­GþyÞÆ9ÉcñÚÅU6yjéüÜé§µ7—$x|’]I.°t±'×g]’Û´|äíæE£õ+诟’±aԒ¡Éžz˜ØRJòØBAc/…ƒø yÉ®š ]æ‰ðpªM#¼žg՟Ƨe©é³zE3¸ yŸàš?á]Á46ôÃúaƒ1Pn¢:š7ÞÿÏj],¡áFw‹Ù)_Óðã`И‹î2º!@^Â]ÃJy%URqK~ñâWRiS˼ҤªsØP¼ªe†“ñ*BŸ9{yYÕººdISscIRIÏ-™ ª²rÉÝr‹-Ö¤¶ÇÛ}¥´²¼Ììºv!xåúY—Ç+³Úc-·ÏT¾0'½E¼Ü9ÈÜ{Ÿ?É?S>ÈÜó ÑùçÏd‚ÍD3“âý2ÎS“ú¥½6ïï‚¶ž›#.HÑG¥°™ŒáÃॣÃ9†=õ\ë÷¨HWïøFK—®¸‚­¶èVÊó~?8ZŽ›Ï¥ISÍv=4«©XÒ3³qU‰Í’Q·ú¢Pèìl“ÄŸlvè%̯3ÖVä-(ÏrÁÃS^ }[­1Ö •ð*ÅÏÝs„Ô‚Å›‹ .¾â¢õåÕ¥‹ôZN®æ?ª¬Ìi9­g]š·²Ð[¼æòV¹sÀkó¹gÉt²{ŠÏâ∺'>9÷oÉ.)#Uþ5£Öý×d«e•\¬ù˜à«Ç89,nZÃ¥€¯† 3¨ƒâ~hÕèúŽøÄJ]Þ‚”áI"FÜ|^kRkYu3„ŽšL§fahÖ’Y©z¹B¢ÐÄ5,κùFKöÜž«Ú“kgMç¹¹F¿ÇŸèœ\³n¥åjwŠ[§U{¼ÎØÄxÓm·_¶·ï4AcõØ4–êÁ+×C,M#ESýò@jv¾LBƒ¬VPx j'g6{3Y`!^Ù£ùù©NƒAýrj­úMÁYÂBË0À6Î9L·3[!D‘MŒ"Ó÷¨5î¯L6É',bLÑMÆË‹»àõ‡¯XÍK;Ö +ê2 …D®‘«‹[:³C°÷ÅæÍ?ýºå-½u w5ÖÎê¬Ï7¬Xµ'èeß…ûyª§ÄѹÚd5iÔʸx»Bm3©“›·µÌºòòóW”¤–5å甦Ïé*°§f¬xt/—%=žX.žCF§Áu€yV¤yWðÖU 53…«µF˜)!©êwæÎv½3Ó•h¬®Î{GHløìö#C¥à­!lPÔ …â…+ÏôÝU§ìc<“ÀA¼…&ùý'îgù¦ñðʉ>ùجV.‹ådr¥Œ·Äùmâ4§Êð¬J#‘)TZþ¹~ÃŒ–u•é…¼DÂIÀŠç5:‹>µ8¯¾m§R=jrG¬¾(¸¾Üš™â’ÉdÒ|‰Áb3ÃSÜžßR¸PgPÅØ,zå×w·lmJÒʤj¥ÄD 8Žƒ™\¶Æ(·ÅXªíó¶6&Ij™ÔñY:vŒùDšAL$…¬žìóûR\f'Ü—— *¥Ëé4»R$‰±ºAföR!±&6º;½Q›=ÝÕŽÀ}8‡>c8ü[êO ¶ñ'Ãh΄Yžù@jˆKuÆû¬Tft@ÊgbGÿÆ*Íž˜X—AÊîc IFò8T©´ùãâ|± E¬ï«,¹J.‘À‰û<BJÍÓý F*}Vâ"rçäq …ééÓ mÖÏÜ„Ed‘Š(aGW$¨šk É_ 5µÓ<6%±¦«Í­(Ôæ”Ôä̉›#ÅQ•Ò½™î?C¥ „×lB†œlˆ²!ÀÓ9âc<µýжèn?î–¼¼éÑÕÈ}‹*ê<>s‹YÆKW2J‹'Ü%c×Kù¬âìÓÚj ,*õ2f=/Í.ÊYÊqßÏ(Lñf‹C'at•‹×ÍÏ·sæªÅk ÊÄÈùØq?³iñ¹vaNñi{ç®;®tΈ-®™¬ä΃áè-äx 2¼sJSýe­¹ÞŠÄè,qa˜¥dë”YògÙí¿DËcætZŸåK!¯Ö v]–_îÔ¸ç(¢nD/Ò5O§¦`b¬ß]K\î²àj.,ç7² ‹#¼™[<}ý²º“z³béÆbêCöŒzäÅã.sͰ×}«ËRÊ[ÑKìgॲfŠ—”ÉC¼1ŽÄÇÁsZŒ Òkq†äø$™-¡Æ†ðNÆ]±¢cöÃ;Ä·›OÝOwVè¬9\n²9Í ¡ù³ “WnÔ[imS’Áë´ÉdÜu›Óí0òJ~f÷ÅÍ£ëÿëðoK™S˜ å2“cŸ°OI~A*Iߤä¥òerÅ,Ŭ|E ™oË·‘̲êüYEò´wO^µîï‚gâÖH_²Âò=DŸa…Ô'⋾uÁMâ{Ô÷—;ùuâÞÀNÜÄ» û+Sª´Š÷º$²@¦#9Þ*—+`×çåîÔ [Á¼+•r]ÛUj™Ú¤Ù`Tfq=K™À{:%·Wa±Z ÊQ¥%ד¡P*T:ËÃóZ•,&§>Oïvk™c“Öç¶6‰D¡æXÁÛ`½ÝÊ=L²ÈüÉ~ÜO<ÌîˆÑš|€uBÜÌW‚J°¦×$h5šh`P—ëŠï_Š©ÅÑ¥¤å¢.Hâüþè£>k3YÀQ/p·Ê$¾%w7òÆX·Õå·(˜óFntÙínƒŒY#¹¼¥.‰SY¼ö§çnWZTkß<ú›•šg%r­’ ª ¼†¾yòň]- ÝÚ¢Ðð'UÀ8-£WˆãÌ$ÝSž,¼fSÊVcL`FöÅÄÐ2¯ LÓj¼rs|¹NÛ0þJ0<“€P£Ýñ‘3ã¯Ù¦IƒÏ‰ŽÝÊÝ*‘zæv_Ø6:"3Ú}±¯‘U}~%Ëò0Ç—gzْΖÙ.VeIt¤;¹ÛT6墧^ýðœÑå0•RµYËrëÕf^¥SÀøµÊ‘„÷í¤.5ß¼€i!ûyôMn #‡à wX›ã»}?pJlæ;ëfe2P!ä‹þ< >ÑyLR™ §1ß]Àâ$6ÃÈÔ:ÅÈ"µN­W2Ú'Gß×›5R©Ê¨eš¤pì€óö‡ZÕ ™Åf5©Ì©ÉcÔp/^!—Êôj•Çã”?ÆI$ ¼}ɾºÄDýâ¿<'õrrÇT¿T‚_Ô/•0 aÍ|ÐhL"IDc§ÿfT ™v€É$‰ÄŤ »©”“ç4…AÆÂX§ÛûÈáèËì~…ô7ÑQ÷‹Íþ€6&;,ºá1%ÒÉ?JòÇŸLà“÷€ïæq2…F¯™®1*¥œ:ÆÂÔÏÝX?Í.×ù*r »[ UJxŒå*^5kñ†¢¶5ñjoi×%ÇØdƒv•Ìj‹1ªe*Réö'™ÄŠÓW.¨ži‹ÉÏt'¤Àò–›¬V³‰W%&ÄæÍk ¤Ì_¶zë%-GbñÊ~†SuÒãè¿êÁÞxêøgÜŒo9ž:ù!Yü_©åìèûa‡l‰ìÓïðO~È-ÿÄãÇ' þÔqê8uü ÿ÷”Wþ8ý™ŸeÌ„)I#ôéÑÀ,a¶0×2Næ"&™a=7ÌÍô2Ï¥ÌA"á>&"!e`+¡ÿ;Oȧ†±183ôLÿ§ïnˆ¶ô÷D–Ðà×ÒÒRU™YYUQ˜¹93Sü¿~æRú—éïù‘OÎ~J>›¤Àñ‰vŠÜ<öü–…¤å”ü0án€™?%§ä_D$ñ¤é®…Ìù‡äRÿ}„Ý8Vòï&ÌRúß)²R sóß"ì£ÿ ÜC6þ+ wÙvR¹‚XNÉ)9%§ä”œ’7a׎½~Jþï ¼§/£ÕŠþVqòƒÿË>¾÷¡eº¢/H,þ(pàOÛ^ |¼ìª¯³F7)ào ,Qˆ¿=Àç? øAL endstream endobj 47 0 obj 250 endobj 48 0 obj 8512 endobj 49 0 obj 8643 endobj 50 0 obj 8089 endobj 25 0 obj << /Font << /F17 5 0 R /F24 15 0 R >> /XObject << /Im1 20 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj << /Length 3089 /Filter /FlateDecode >> stream xÚ­Ë’Û6òî¯PÕ–S•Aâª=8޽•”“õVfkN´Ä™áZ¢&$e{þ~»Ñ EÎP‰ÔE @`£ßˆâ‹»_üó?ÿz%ò…XçXšÚ…ž9.ËÍ«òÅ ¾üeÁ™ônñ5lÝ,R©™VÆëÅï¯þ=†„k&´9†¶+¦ áøñæÕ÷ï„]Á¼Öéâæv!¼b)W€Ì3åüâfµø˜Ü\¹4©²åÕµLmòfÕ5Mò[¶É¯þ¼ùåÕÛ›A’Kæ¹¹ AqN úðøŸ¦XŸˆŠŽ {€ •Jf­œ@И”Ðfæ©ÊxxBˆË¨Ê4J“d~.¯@ M^ÝfË#ª¹­jÎ! UÅùŒHÑjæÌ… Þ8΄öõö[“—u±-? 3ÛxrIsDœ— ¤çJ:¹žMɈ\`*½XfV+bæÍvópu|”9™É‘^€ˆN¢}"~/Ê»uÞ€D×»;çaQžKÁˆ$•aÞª ‰R &¹;$Ê_³2»Ë«#½1HûÄ$ß:¾Õ¶Üä/ÚéÙÄŒK×Z}N(áȦ #“ÆdwÂÖ÷ï¤îoº•—€hÀqËmC³¤4•ZŸîê|…#Õ–V6A‹4~€C®DR”õw°à|òi×Ðî]¹.>£´ãÎ}‚ÆYsßâïŽtÉ pI§å6¼¸À»E^GaRËéÂÜŠtabýŒ-§ÅüÛúXÍú‘æËmY7ÕnÙä+F‚H*O*Á×lÐÄ‘²ôêZˆT'¯áy«Á%7ëœÆo¿ea2"O@“¦LKhÞw» Ÿâ"I ±Êš ˜ÜVÛ Ž8lŒOêeU<4–ia{Û¢Š;zÌ–³^¡ó§ÒŽÁ03«–8»/š|Ùƒ°úQð?ÙÕµ’ ´¨[=´lÀÅz½-dM¿%b Êã¦MV€lJšÔMþPÕ\çM1Q$w4ß=D¢h ‰ßåÁ³Û‚6èš[PxŸÄ•`Ã=¯•çÉOù\¨2˜u<#+éŒâYåÐ=‹š—ŒkßÐ8j0w@\u˜ó6yÒQñœzôˆ¨y*ñÁÃöÏ¢ƒ­mzê°{>²Ê¢#ŽÈ0ªÚ¸žªaôP· 0¤ñ*¼N$r$’ + DèÂÒÏ7Yýù_Ÿê¼úBÙãY€ô©»íß¡›º`pX½#Zb Á%ð…‘C­cÚuG–=-?=Nkà¿Û 6¯ O^¯›ûíî(šktßÝÓîZ¥<©ò¿vE…–Ž«+ÒeN³Mø'«šV@Kfe7ÇŒFtƒ”’¨Ò:oÑÀùÀØ"‚6A ¢“c^îÚìv„Ûm *þº UJ˜®ò/!请dÊyUcLp6ù/Æ›œvUa¿ŒDÅål4« É “Fa£%¼/êÑd¦%“i—ÿ¢¥Ú º欺=†H-– úɶ̪GZ AéÃ'`·H>Ó „Rã˜LY­PœYn§>È45Qp@'=N…÷²R4ã{ÚJ qPEÃMEk¸0‹Zçqõ¡ŠÁ³¦y°É06‰£ïm¨ÃÕù'‘sXÉg£zNU§«!kQ/§òÖikŽ€:}]@BÓq…K"08è{Lj¨8L*ð(PL{å¬K P÷ÉG›xó!zÏI Õ¾‹ixëZ'X ›|ŽõKHMt))ÝMøÄºÑ$†«ðÙÖ¶ª÷¼Jã®cûƒsBÑxè‰vm 4iͲë=ŽÙv}6ª#v=dmª]ÏPg‹Ðt\‡ƒ´6ÊôYÊß㘭ü³QQþµ©ÊŸ# NaÐt\!¨I7jº°#àQǘö7h®¹LÞ„ûYŒ3J5†@E`G`Ù}gu¨a­Æ[iXTï4=® Þðž šÕ4ƒÇ4ox¬–xË…àÂåΖp'4Ê€Z+¤>¡¸´Fò c¾GZ@°ÃÚ@  ‡Æà§Ky8ðEì_gU2Ð;ï~NʄǕ LÑ *„½m•f©˜m÷8f;ÜÙ¨Ž8ܵ©7G@“\@BÓqQ!'™À*B9æö% 7jŸŸÿl&RÏ$ ÃG½?Z̬øa*¤bÂË>k:·P¾ÌyòðA¾Ì©vªiö™À{Åà;ü¥Jy(>4Gçà8/;4©ž™‰ö8f;ÆÙ¨Ž8Ƶ©Ž1G@1_@BÓqq i˜kï Îv iWê"®Ñ§ãsHÍñ׉”¼B9Ì(*dÌd÷2Ìß1·ñäWØ.wÐkBŠ±Æ…tftÈxn ï€tLÃý¦€HÁ»~Ã_’¼÷‰YPiÊ‚ ñZØ ½ƒ Iúà³7CƒÜ¨p:$¯MÃNˆ—é2.둈‹'zwŠ/ ÌL{{³½ûlTG¼{ÈÚTïž# Î#/ ¡é¸Žxwª˜kßà;Û»S͸»LâëÓqï6Éx °Ã;tløÓ–JHÐS]Œ³;ÁÒǶ<ù üS¢ûÁç.|~ Ÿ@®Áàñ¼çV3ÅU¯éç#–9Ùý:Nî-VÊ>ã]\áս΄,¯(Éõ``¨l¦Eií‰!Þ4 |SÆ\èâslêŧp ú‘YŸ/£xùâs:ÿž+‹§×Õã/L O[ý—RÓ^©‡[ñ»¼Ìñî<þÄ‹7Uíû(Ï.æM²Ý5»æüsèÛ×ÈæNÙDÃßOšuc~Š g­áœ-‹ƒ—KêónÌ{8æ&ýóQNúOX›˜ôg ¨Ó×$4×XÒÌ‚ýÙáºýÁµïãé´µ0$‰0iÊa,©F¶§ÕÈ/•žúwüÕp–îq̶³Q±Â!kS­pŽ€:˹€„¦ã+ù,Óø*ªcí¯6'µL²×2¹ã-“¡–‰™©9ßL¡›|ÞýGÇl3=Õ3²6ÕLç¨3­ Hh:®#Áß–ò§KhÆ[3h9ì å0§ ¾_¥çµè=³ ðlTG pÈÚTœ# Îh. ¡é¸Æã¤Õ(nÅlüŸÌx š†T޶ Ð_K}¡ôùâàÒw¯¡»¡9…N}=r°Â÷'õûÖtзÊ}ßúR›* ›²æBmjÙÔn›;3«M=ÅËÝÆt2:>W‡þZ;ú%^ôµñÿ=fÐd‚šÿC&­ endstream endobj 52 0 obj << /Type /Page /Contents 53 0 R /Resources 51 0 R /MediaBox [0 0 612 792] /Parent 11 0 R >> endobj 51 0 obj << /Font << /F17 5 0 R /F35 24 0 R /F24 15 0 R /F22 7 0 R /F21 8 0 R /F14 6 0 R /F38 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 57 0 obj << /Length 3771 /Filter /FlateDecode >> stream xÚå]Ýoä¶¿¿bÑ>dȱüþ(Ї4HŠzEü–æÁñ­m|öÕö%—þõÎH”hKÚGhŠÃi–\é·äp~äpHÊrw³“»¿¼’+¥©@þ >Iø§v)ˆâÎ+‚õ»«÷¯r¾U^hëvF˜v‡Ýõ«¿¿éÓ#°(dc°ï»wðÝ7;)LŠ»_ñÎ÷ðŸ owßòDq‚HÆ.!Ðóò‚’Jhïΰ2 ;…á”Á8N1œ2"i³^M…~çµ!©¾‰´H1í”ɹ¹zÙ2Æ|i:L*Î|#¯†zYªÒVuÕºv9·n¥µ8 *íµ†Ú±þ|ñê_›¸K"yíw× ")B{a€ïvßïÿúUiÿÅë7Þ¦ýãë7JËý‘Ä{HÜ’8¼~Š$÷Ÿðz‰×÷xý€×[¼æ[Ù?ÁƒÖìÊBç›s 2£Tù!—r\ïà»Ï7x=`*H“¿Q#šÁÛ” X`Hý ¿çBþY •9’€ï40ÞïE¾S)¨©qù§|Šûûœgö?’x$q ñ@â—g™?\|SZü«‹ fEãyÌ0ØÌZ µÀ¬ºj­Ìâ(¨°a µcÍ3KYa²gV¦Tæñ‰'$®I\’¸*·D‹ÔHzÿ® ¯:›i4’@w›Ô³âH©{JÝQ*?Õ< ­Ã€Lê^|$… ðÀ¯ÐQÈü´U¹lð9“(ºS¼Œ‰tàÄÚ|K4¹2ÝUSG‘?k€¨§8æ@BXap9¶jžcϪÖÈ1–‚z^l¡¡v,ä˜ÖÇ”0H&µ°¾¾€:H#´ùà Ø<§FÏx è-é<˜9»ÿ- ƒ&©'Gʼ¥lŒryøÐÚdjx ®0vy“KÎ^˜OŸŸè±ü4P%K[dˆ‡®ÌU]­º/rÎBþ5¸Â¯iŸàó^ŸèqeGÃÓ2ØþùHiNs*zh)Þ¸5Â`sj5ԧꪵrŠ£ Âƒ 4ÔŽ5;pÁŠ˜ê€ÁnüÕP _W­µñ9 * ¶†Ú±f¢p. Óç‹“ ï;0a“TÀ”§ÙyúY<‘¤®<Cž fFòy”¥ß³ôC–ÜKEê¿#7'ôª?õ+Öá‹×zÿþÿ’¦ƒ‘؃7óý#‡#x'¹ à}$qCâHâŽ:Ta®Ø'{Zo„TŽG¶ƒM¶ÕP d««ÖJ6Ž‚ A6ÐP;Ö<Ù¼àÀ 3E³PqªÉsq ÌJýR2ƒ|W\]qÍrÅ’é5¶)¯EZ°äª^­†ÌPN±=¾vš¡¦|pð½M†²ÂÛnÌÈ=¼ÂàKÙêmrêqÊ!w‡Þ9…9Åý\ñÑ„O&Šè„ýßðóø™òx}Àœ_ê- øºNf»z#Ù‰'½”z Ô5¥.I\•[Œ±HAFˆû?ž&IBIf>`°i°juÕZ‰ÀQP1ß 4ÔŽ5ï;ë ¸£y`7ýZ¤…–¯êÕÚð å”¶âk§j¢ÔNDÇM® §> FË€#qЧ¼ìð´F¦¾ÇË]‘RÔOJê'tw¹“©:ŒÐVãO¥åø$)VV…@…  S«K}I¿üŽÊñŽR‡’©•/½)9ìžÂàž"$  ÿ´àüè«…+ÎÄçy"€>…r”éÍ(âè4uÈŠ¦Šb4°2ïIÀ¯ðLVuÏÊ •˜0Ø] µ@Òºj­,å(¨pk µcM8Ü6‰ så¢Q‘Íÿ.Ç䇫Jzÿ%¹Ö—äoßRêvä„äwçv+t»qi˪)·;ôùGJåv#±(G‰ÑB d.¦+…=iå2w<#/l_‹´`âU½Z-œ¡œb”|í4CÍz6–"¯ÙGÜv_5ßðÏªÖØò,õíµ…†Ú±fƒ 6Yƒ*Á§RžIÁðøS^o poZ1O]¬ÎÒòÿ nII\Q­»ó©úîžô‘V£“ ö¡ ûЄ{B€r¢ íóÑ£åHÝ’¸$ñ@ß(•÷D¬›E$߯Õ"µ·}æÝh©Ÿ–x u_¾‹´ £t·†Úm…Hôœ<#ºgCà ð9`° ¹juÕZ ÉQP!ÑjÇš'd„ê(?D÷Œšˆ5‡nãI¢'ä\›D&šhãI¤'u&4âb$¿Ìá¥hÿŠ"£VdéŠö¯(Ú¿¢ÈqW¶ÏÌnˆB¿¥[àÏ‹ÿÙñdé>` =ŸAI\W©‰ìÀÈå ¤È.ê’€M¿Ž:¦—ÓIŠy˜Íæ˜7`°)¶jbuÕZ)ÆQP¡ÅjÇš§X€Ù°Æ<ïÌìö=r®)GÒ¬RÑvÚÿR¯EÏÙbvÒtV1G‡ƒmº«¡L·®Z«érTÌm µcÍGÍ­KBJ×5AõA¤‹Üg“‰J2Q‰&šÅ·$ŽÕwy#Šêâã/÷›8#œ,1yàFÀÁ Fªâõ€9Wøùiªp^Dç‡ 'çg¬5Âzfg>`°±juÕZÁQP±â 4ÔŽ5Ô^8[?ˆžèyò‰õº/ïÈýñä‘ïo|Ÿù˜$~ÿ§¼ßÊì¿¢fvþ•îc­JÝQê‘RGJÝWß½¥Ô=¥ŽÕwH¡ÐE¥9{íŠòÃhí Ý»qN·v¥NóÅ( *s0Ø|Y µÀ—ºj­|á(¨ØøjÇšö¨$œ3¼Æ0Ø¿j¡ñ몵6>GA¥Á6ÐP;Öì’“ÕF(;³âôléÈ)¬ÁGŒIç/!Àeï~uÄDgï³ûã« dÿœ“<)”¾O=MÔ$z¡á!NM’ç$mR“ ¥RUŒ¤q%Ñ•:v‚)³ fK$ƒpP*Ë 6ËWC-°¼®Z+Ë9 *ÌÜ@CíXóëUîSÑM®W%ƒñ݈ñ]Œ å“y.ÐEs”%ïÆá\Rß’8Rf!ÂC´öJ›É³¸m?£Ð m1Ï©$®ªïºçà“ÒËø®~ßM–ˆN± ©ûÔ‰.uIâ¶Êü7=p Tö¦4Ŧ´ÍÝ“¥çè[??Wx:FGûL›§hh’ÞòÛ—†ë¡æiø¬j4d)¨§ÎjÇšèâó&9c+‰þ$×lÇîðX¡Nt‚ÄЩª~yA#)¥‚ Ê˃Á «Ë¼ù:GJ÷7§-3á#o€a°-s5Ô‚eÖUkµLŽ‚Š5m ¡v¬Ù9€ àÛf·4`°5ÔBã×Ukm|Ž‚Jƒm ¡v¬Ù9€ N•ÎÜv6JP//‘âb ]óA·-¶wYÚÞ¥ÿwÛ»ŒÇ)0{ÃMˆÕP „¨«ÖJŽ‚Šo ¡v¬ywÙx˜Õy;é.‡|ðçMÂsÓù’׊ò^-G祕%sv#ŸÙ®¬ÄÖÎâK ,®)ÙŸº¯ö”«Íä¿ ‡­Ÿ­+™©Ußølw¼êÇ«¾àöµs縯6ˆ}‹›«¡hQW­•SÞ@CíX î+HÐËVþ«†™ç÷¹C¦3ptÚÍà8@‚Ýÿ½Wqx¿´ÛWUÃ>1œ4s£<30Øf¾jÁÌ몵š9GAÅ47ÐP;Ö„;ä¤QèÄÙ2}R’vÚ€x˜Þˆ¯À‹–9˹»8uîŽ6áЮÊœ\95:ŽŽêÇÎj_„Á>Ê€“Œ œå0 `gøMà‚ãÆc΀ÁfÎj¨æÔUkeGAÅÚ7ÐP;ÖÔQ ­PAØ”š‰ðFLj–tu ¥[]•SZ469¿í—£¥§ñÚ9!­©«qö–¼Å¢ý´J7~é3§3Ú…óVv ¶s$0Ø|\ µÀǺj­|ä(¨ph µcÍGu$ h’ÙìÆ_ µÐøuÕZŸ£ Ò`h¨kvO£‘F¸øò…|ß÷“'‚·4üH©›Ñ˾ð-Ï_ïU¿DÃö]T†¹«ú­îí¸Ý¾Ó´wYSg¦éq­ú·^Rê‰Ä±º3IÓI㊤=Ï’ê@ûÑb÷æ%ú½ý”úy´·?L» Ý6MM5Öš†& óïSý,Œ\0vðúÙ—jë¡æ©ö¬jTc)¨§ÇjÇš¥šNJx3¼¡Ï%SmƒG; qnñèˆÞI3 ^Hæ+VGl3[ µ`fuÕZÍŒ£ bh¨k~«¯Iøþ«-[}SoõUò…{=lW”t¬£Û®HQJ%«½xËèD· ûïð}¨4ˆP‡â†Ä-‰‰'÷Õo«;?RÀèæ9¦ž~M,_{˜¡3ßž:Â`“f5Ôiꪵ’†£ bèh¨kz7°ÄÖ"ô‹îÇòRa5z©°ê^<ü~ôù¯O˜ÓVÖïÑ=ÿý2§grÚik˜]ÿ€Á¶âÕP V\W­ÕŠ9 *–·†Ú±fgrÚJ¡™/Òa°5ÔBã×Ukm|Ž‚Jƒm ¡v¬ÙõymˆJÿ7^ £­r9xîkaªRÿß¼Fë,™½ô€Á&êj¨¢ÖUk%*GA…\h¨k‚¨6Q¡õMÞÊK¡#ºÈí*¢OåôQ· ´,[ö>£™^ä—/àŽ4a—™ TÑ`†¸¥à³lž)ÑEWº RÂÐ; —­UyasX0ØÖºjÁZ몵Z+GAÅÂ6ÐP;Ö‚µ*Èë_ʲV“íp0ÇèÒT¬§–ê—z`½¸TOˆøŠ‰Ûü] XãßÒÐNJÎß:âäßbc°´•º˜û“Nh€ªçž&!ïÕ‚¬y¶[iÿúxóñ!¿(Sû½†.ΗÖ&Ÿ8¾ÿpÛ}uøt9$î¯é†·_~AW÷ï?àìïïw¯ó~þGŠªÍ•œ,p}RØå8òP˜P=†÷ž¹ú endstream endobj 56 0 obj << /Type /Page /Contents 57 0 R /Resources 55 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 55 0 obj << /Font << /F38 54 0 R /F22 7 0 R /F21 8 0 R /F14 6 0 R /F17 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj << /Length 2457 /Filter /FlateDecode >> stream xÚ­Z_sÛ8ϧÐÜ“pš¥BÁŠšðöi7Ô›ú“¨ÚÇmÛ¸f~ð#K]Ž]—2YV°€²Z(^äy\>¸Ÿ±g›ž£•i õýÐ,R®»/+wÐq>v®EnÒqÒwŸ`pRUx\S…¸Ö\ã?SåÊ`À#fÈo7» ›Ån4 îJHc)téÜ(Ñuˆ3wã¦ÜÌEœ]ý’W±T©HEky÷mp`ms‹X´5Ar › @Ÿ±@MÒ°V(îz?E( -Ñ•—Œ$vë‘l„þ Ö‚)®k¯Ö5K/¹uYDZ…6?4–n¨«Læô/€§¬PE>ï–Ôx¬,{“§-'“d9@Ùr2Єâ;`ÈlÚF-¨ñ+*‚+Š–<›Ùqïç”I9F<š#¬ê]…“ì‰Ûv-ébÅ=J"+*ßàüˆë«®æÅajéš„“ë½5Y¼ŒÙ¦±Ú+›’¯ÆRÝ„Î~=É\íã:I™H³bŒoÒTØt $…äPréôUÒ&ƒÂ»É¾“A§²Ð“­bâ~ꗱʲiŸŒm"Tˆ?4“@ìYüe`U!þ #o78AçÇj‰î>0ׄ,º&3uM(¢æåH·ÛM]•¨^Úóº;¾ P2Oç:ÚV0ÎplQÆŠ$5‡‹Ê2ZT6FRXã•M")düDáãtqÙaDEM¼®ñ# ÊÀ³ƒ[t_+øqpðåD•¤ÑvÇî‡g<['m¾ÔN*HTË;ü”~žëe/ãôlX&Mç´Š_-êù¬‚ªæKcµ|ïÚ‚²®(¨ë t¹,JØ¨È [¨Â׉œFJ+QH“*hŽQ¸ ì…¤¹0vøAC™'òD„+bÑw"çˆtDDªÐDÁ™ÿg’'P*””^Pî0rޏޏ{"%UV¡Išf(ãmbò`Ç=ïˆ\ƒ)^·!‚ˆ«÷Ãk%Ù³u]º®'ðõè\,Êo8ÿ'[AZaRô<‰(rŽÿµXÙþ¿²!¦9šŸVi\£m2FCÆhÈ £!c4dŒ†ŒÑ7± m)¸¨ïˆ|"RÙ)‰ôÀMà`R/šq– )¯tì{Wò«E±äùÒ.5åk øº\ÖéSîP²¸N÷AÄÕª­¤3šŸ­ëRÅ_NÐÕõè\,ŠŽs9;ÎỲ ªz¼Õ€·)4Æï¹Öñ¿ÏõÎ_¦ãoH¤÷\Òß°²!®'®&®}»%®%®ž}èí„l¸9L8ûŸ˜¥;H{, (è?íù8ÊWVh­~Ðc/ìÒKH°ç%¼xéxYÄË—ŽË§,õµX$Ç^rn*R æê,YíÿÚÁg§Õ˜¬LÕ©Ü‹ND&CòáÃïOgó/º¹ÍS ½fÚ´¥Å;÷÷®öT~ð–èøF¸Ÿ’oüööÕPú>|QÓ{6¾œù4@’ñû&|Ç·Q~¦€ F< ®ZÊ+ø´uN“K%´˜à¨ÕR~ßù'”Ï”1|燯~j¾YKY‘†úa¨,)åɃŒÓP½ÆÔ@èPúëÿ1ó$ȯ™žÐÓAæïEEi8ž唌¿.|"g³"6¼!S?4° ˜òÊ'ºÒøíjUã ËÍæ /ø:b5âÈ=ؼ gËPFÓ„r€â±·_p&ÆÚï5ºejáªnäÙ³Š²[̪ê\9¸Õ/øúWœL5æŸÊï6w-Ò¢x–n,xp¸ÑaVë‰êÆÔ£æÔc1M=ú+•ÿæm``·:<(ìÅŽ¢Š ªnVî[º†.ÐèÜÏé&²FJK-òð\À®·þÑk¦¬,9¡, TR®ß‘Í4>1+y¨½¡ÁH¼>L¶<ÐB9ðçaݵ;°Ã‡5ñ`~Ô*¤ÕèNÇôL·Ó»²ã÷:ÂÊ(ÐàÁ=îùÌ7ÑiâTç£>táó„åÀ¢çNô Ÿ1‹È¯ÈXõUëžh‡u~ÁÝÿýŸ ‘ÆŒ¥29{9¨>ÈXbUE®kÅ-ŸþØ+€‡ ±òÏ"ˆæ"qQ˜¯ìé9c–žô)íýo Žî‰¯­“hl» Ï’©<ºaÍSŸç9£¥…”þqÉŒO1fÖâ’#XÍ endstream endobj 60 0 obj << /Type /Page /Contents 61 0 R /Resources 59 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 59 0 obj << /Font << /F24 15 0 R /F17 5 0 R /F35 24 0 R /F22 7 0 R /F21 8 0 R /F38 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 64 0 obj << /Length 3146 /Filter /FlateDecode >> stream xÚå\Kã6¾Ï¯0°‡U3\ñM.°‡}e‘œ²Hß²9¨mu··Ü‘ì™é¿U,=Ý–m‰>$Ó%êS±ø«T¤œ®žVéê?Ò‰’CÉ¡üŽRøÇWÞ2gÝÊ¦Ž¥J¯Ö/ð¼â† ¨J&]UùêñÃß´õ€X;ûñ§tµkß­R&½[} -_à?AoW?ò{q8gBÊstú§p«Ñ×@¨Ô3u Có”Y©cÄÐ\2/ä|]œ"Ç„5+ã K};B‚yçW Ÿ×zj€Þ L1-KIÂLñl¤÷2µ5îW3&×v¬©å´Cuí,†úÇý‡¿|#ÄÊ3o„YÝ?‚z¨‡”g†ÿ~³ú1y¼ûÄÓ4ÙQQÝýtÿÜÆ· Åt*>´¯¡¡öI…Áö¡ö™jÕÖmŠ ,K¥i± ½ãIyâ™Ü2ëuÛflòz÷I›ü›w:ÿ÷ý Z;ŸTq¼î1¢‰=ê ³Ç][Jíu„¼†–c»G”ኹÔp®Ìfë')x€dΠ׸ÐmQQQPQR±‡–Æ$ÿKu 'TŠGü 7É CCv¯8[èÁ+㯀¸è#Äè)4SÇL`oI ¥¬X2`±éÛG$Iš¼ÝÁ<´;PåKQ?ÓÑ~Gå/åîN¸äKsö9§ƒï:¼àßàŽMòŠ.ìØ:¯>ë¼nïËöt”Ýñ¤j@ªü©¨÷y•oÚ§ï›§g%•ù×}^ÖÅ®©¾†GíŠðôýGbyÛ`+ôØË”jüÁšp l·xdÛ˜¤Þgå&«64aø tÅñXtnb›7ÓúX£B0©]ÛèñP®÷ )MéS‘åI3JÑðoeF=ØR3r­£Ìè2Äe3Z.FgFsu1\jÔ.Q^x€ë…çCM{ᣮ-ôÂQ jÇëZŽu:ÆL‘Π*À#;‡9Èï Ñ^ŽËðæ7 ®¦0ü= jÅÒ.lü­}Tˆ•«œ¯öŠq£WÒØÂYœP1³Æg1zæÌÔÅÎ×y¦µ_ið‚ÿ‡üó]pœº&¯“ø&ô¢Þ$/ùþyœÝ¦¦‹äÊàRãn©roŠa!Ôy²¡sÁs#Æ®uµ`•?¶Û7B«óm¾ÞÓ¥§†+Õî…ÎÓõÀ£‡‚†®ŒüìØ/CØ©¤NîŸóS¾U{Æ;§Ùa×§¬ÑLõ^x òàU¾?TeM~=£sß¿A£ò¤O—–{Õ½úåûIŸnÛF;P¶VÉϤ«=P ÝQg³‚$0ƒÈ¢QèüH@ ÉœR7²él©M |ÃJ3]qÙ¦—‹ÑÙô\]LG@çâòLŒèH`6Ô™H`ܵ¥‘@Œ‚ºñº†–c… \ºQ$⬥9ÌHm²éOs7ÊBdîf€Ë•ùPÓ\9êÚB®D)¨ß[hh9Ö4WRÉt›ºùø'“û»Ož'ðŽëÆŽ>8oÇF\ˆ¸’ "MðØ©± ãK,0ûc)‹µìý50¢,(%ˆx®A îó)Ýçé±àá¡ðÒ„@BñÐ |‚áv"]¬­GMjtôiò{’&?c&JBHŠšŠ=Êbƒ€BaÏ1ۄѱ rˆ¢Òä%üÍ/›”³ÌÛ¸éw€mR³¡Î˜Ô¸kKM*FAÜ@C˱&MJyx3f`RÉ>PÉJ…Y*`ÑsàUŽ!†5`xH2k ‘QƒÑ8O7DTc)Çjƒ ˜[®íºkNJ$® Œ6!‹j.‡s9¦o9½7“DÂ.’5,‘¾©Çˆ6¤ÙPg iܵ¥†£ Žü7ÐÐr¬iC²ž~ucKMäœÛcDSe6ÔªŒ»¶”*1 ê†÷ZŽ5½ÀªŒeÚý>Xq Œ&H.]ò•Š=ÍÉ’ŠšŠ‚ŠÝàZ˜«%¸Š&]ñL3Ó:sÅ ®Ò‚q.ã̧Lj6ŸÙPgÌgܵ¥æ£ Žò7ÐÐr¬é\¥5³¿Ñõ[¥³ÂÜ&Ý4[˜nB/¢ž®€¸˜nŠ£#Ð\]\·~«8¨ÚKb¦W~ò2L\LZîþBúÌx~J­Š‰å|Š<ÆùW¥™òj܉°.û^r›2'¸Õ0÷.”{¬wîS`Ú#¹G¹h„×j‡éàÏÅéÂãBw¸Ðä‰)Õ_ÞÁ‹FN‰cjU?ïªýsV60»ŠöÏEƒSg/Í@·+̘_ÖàëM^è‹rŽó]Núq·Ý ¿å*šÌyþë¡ø|§u’mÑæ'®¥µíž‡ø™d¶p&‘Ž_Ú‚si&¹ââL!F;“ÌÖÅdâZÍù3Å^È1e *j*ïðÞÿ@µ-9¸ûW9¼ÝiM7ÐN M6´ F i-jëQ ¯Á¢.ïR°TEzƒ#šÅ³¡Î°xܵ¥,ŽQPǼhh9Ö4‹áÃHuu䀯†>îû F4WfCáʸkK¹£ n|o ¡åXÓÉU!$3ÖÿÑ·H€¡4Ø{1t¹ÿ’#Ìõ4ÙžWC,Ö}%ò·;)0ƒ)ôsø!üÅ„‚ÔmJغ+RÂ"u ¤³Ó#ÚNgC±Óq×–ÚiŒ‚:Ûº†–cM§„´³BýFSÂ"UÌÞè{¾ki" ¼òQ‰¤Ë—IËÅè 4O×mÅ€÷6Æy³žö-&j¦u(ÇkþaÁ?̨x-|äÈ¿Þñäu[¬‹}ø(.Õ‡Wœ’af­šÆy™=l Ì‘>Ñ]YÙ|çÇ!… Õ-­èúð wÐÇ|p¢( ç% "4ÏÉ^ñ¹æ›Íéñ®Ýá wQ«áwüJú$Ãï ñt Ó§XyhÀñx“?f‡-~háµ÷_]šõKá×ÿ/ ˆ¸¡TM–˜.âOTowNàûª2.y8ì»Ç5yâcÁ›‡wßã½5ßVÍ.ˆr×\k²Â›¶vüÛù~ø‰!µ³]?fóË£_(³`AC^2V§òìa÷Ž„· ïÿùw:XÃÈP8ζõŽŽNØÀ ÊŒ«ñ®šŽ» ÄÍ"˜ÞÆw$Ù(Oä'SåVÃüÞ¹åͯ0<Ã-ðÄg’ Âý!U`wíª÷²PÄþûQ¨áÒ‡ë—>°3'3ú0­»> rŸÆl´Ñ0gû}UrÜ “Šä’€Â„ªé0Œ{8‡ãŽMg6TC[Í/X„X+‡²øõÐ"ƒü {r°?_³—×mþ#‹«%¿‚´+à")Jüu‰5)ý˜¤ô †¾XEÙÊO5˜ð6ßw$ÚžŠæ¸ãîºÊ³}¾ùØQµìh^}xJMº¿è¿F¼54¨[Fgõñö £¯VáEˆƒGQ+ˆ™sÍ7ð~ÔœÙÿKJe” endstream endobj 63 0 obj << /Type /Page /Contents 64 0 R /Resources 62 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 62 0 obj << /Font << /F22 7 0 R /F21 8 0 R /F17 5 0 R /F35 24 0 R /F38 54 0 R /F34 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 67 0 obj << /Length 3844 /Filter /FlateDecode >> stream xÚÝ]Ýã¶¿¿Âh_¼@–å÷G>¤EZ$@Ò+roI\¯oWÀ®}µ½—ÜŸ!Ǣĵ%[¡Áa5¢Lý¤þ†¤8#_<.øâ_ïø€ ÈÿÁ‡bóÎ/÷Œk³X¿¼‹Çµ°LBQ1åÝb¿Y||÷Ÿ3¶Üçú`?ýÂðÛw ÎTð‹_SÍøCèçÅ€|~;B0©ÔžÏχS­¹BóÀô% #8sÊPnÃÅ‚TÓmq¡‰<“Î.l°Œ‡¶…$ >,àþ‚1C tÖ0Ä𽜠ñf›x2Òù=µ Uêuj“[k[Šbœ¶©f°N5Ôß?¼ûË?•_¬´‹Á<œ HYhý‹Ÿ–¾ûåÃwYƒo>\ ‰×L(McI‡A¦Éd¨ž”ªÕ…b Ü¼3X¨k˜+Þ1'EË•{-Âòë»{«Ãòpw/$_6(^P|BñŒbswïO•OUX¾béEƒb 5½X¡¤Õò Å* z.\¼l?¥ísÚnzÇã~ƒýcÚÂ]z‰ÀR'`ñ¾ø[( ¿üŧƒ[G{£péö ´ÎU¼³Iƒ§<ÝàéO7x:ˆŠu[åª:É„#öÖÙ'Cøa©Z­R ”}g Õc û¡3ÌÙÛûlË™”Ä>»Ã se2ÔWJÕj¹B1Pnß,T•¸"eÁÉ´ŠXŠyqê´×ØY=}ÖK‡H$=eÀÌñîÒÙÐ7»Fã–ïÓþsÚMûi¿Iû±Ç³rù37üî^ « ޽>O'ÄÒ#–,Á9Ò›xŽ€Î/ÿzÙ¤%ö‚™Ù“¡F˜]ªVËlŠ2g°P=2»OJ!`FG¬Ì›S7'iâDš¤iìoòñ4#Û´Lû‘úÁ¶<•& ø0WùŧƒipöÀ¢Ø£øˆb…b«DÌÄè«TV–)Aì¤; 2•'CP¹T­–ÊeúÍ`¡z¬áGo©™2Ä~¬Ã 7þd¨‘Æ/U«m|ŠrƒÍ`¡z¬ #tÂÒ€åXÐû±‡»{—z-;•Øk½<31ça (=ãË>h¤ XÚàÄ`*Ä…žØp¦½(5€žX¨‡snÛÒñ‚*N3 &¤¨âà^¸žEoçoÇÅó@;ý`Ò4JÐé+§¦ÍXÌʸ¢yz‡AöôÉP#ž^ªVëéeïœÁBõXÈ^ËáÙÏ ÃB@n 2 ¦Ï,Òɤ .|¨´¤×*œ]þíN…åŸ"÷à(ür¿oãÞê.Õ„ À* •®òž(µö4>vd>N†ác©Z-)ÊšÁBõXƒÓã=ÓÖõ0¨?j¸ñߨVÙø$µ 6‡…걑LŒû[׌³Ì(Z?Ñà Se2ÔUJÕj©B1PnÞ,T5LBš¼îo`ÒóõݽWi¥^.wi{LGžÒþ&máÙØsUð×ccjjlÀÇä,±WÄüœ±wClÀXÍŒ'vëÙW'Cøj©Z­¯R ”ýk Õc ûª…G!nî×dðôDãJ‡AæÊd¨®”ªÕr…b Ü¾3X¨k86`ŒeRèêØ€rº°©k„í¿Óº4ëbGjS¿fS·Û÷iûœ¶¯©ÎcÚoÒ6ö‡N¿àmq¸ÃÈŽ §¥†‰‘£9³NÒxßay?j„÷¥jµ¼§(su Õc GŒÆ¥§?DäÀHÏœp4*wd*O†¡r©Z-•)Êô›ÁBõXÃðÂ2g‰ýX‡AnüÉP#_ªVÛøå›ÁBõXÑ#áD&Eâ9f|ýèZä`2Äpä Ð`j䀢Ê)r0‡*§ÈA¡Êü‘Ã5óœØÍwdOŸ 5âé¥jµžN1PöÎ,T590ÜÉz®Ðàé°‘)›'­à˜´öÛ§´Ý¤í>m·i»JÛ—ö×q=¾ ƒdÞÐÆ§•µÓ¡†YûFµJÖ’ Ô2m Õc NN´çÌZ—Õà 7þd¨‘Æ/U«m|ŠrƒÍ`¡z¬Á…(í5ŒðêÖ…(m= ZиÒa¹2j„+¥jµ\¡(·ï ªÇ抓 Šr€Á¨õø$¬âÈ$d‚b逥#Š=|ÅÒº÷›ÂhÃé<׋¼çéô´„žÄÅg ŠuQåp·ÆBKXo; 2o'Cð¶T­–·e®Í`¡z¬aÞZxzp·÷qðüıë0È\™ 5•RµZ®P ”Ûw Õc]˜Âs ÞÑÜžYá»)¼QØÍ(ì‰$öDØuXUà9ÑZ ø{c]ÊÄwiînoÈÄþô<*4¿mMžò"Ä^­Ã 3u2ÔSKÕj™J1Pf× ªÇaª²ÌZUÉTùÿeªiIŸÄÔƒÌÔÉP#L-U«e*Å@™]3X¨k„©R3Ç]%SUÇTç"˜þ,‚éÎ"˜þmSòŽÇâFCë Kìq; 2'Cð¸T­–ÇeîÍ`¡z¬Á…#öaµé'# ·|©WeÃSŒÓ¶Õ Ö©†~zá‚»õéAyä14–tdšL†áI©Z-Q(ÊÍ;ƒ…ê±¹¢¼g^˳O/X“”ÁlIœEX£8¢h°Ê.Wñ³´,>¯ 0¹CœNU\Ê‚ŒbbÕûÍ´¿ÅìI«5‚§A—L†L‰ãyAc¸BcŽ…*2+ÝÔ¯.\ʬ4ø- "¡Q¿=–>£hðຨ'h–_ÅtU‘â)³ÕèåÃu¯tŠÑR-3Ù#'øc_©Zo¬7Lö²ej‘†ýÐYæ½ëV*%Î4ÆÄ®?‚Hî˜Û¢ˆ^bìyޱ *M?Cš~†Þ3}!ņÞ3$ÿåý„è˜%}@qD±B±Å*k,mrM¯Ú ;áÝò×”Ðô”¶MÚ®Û#ñÆ"G?â˜Ù­1/P£÷k‹>fÑÇ úvAÚ¶UDK7nÕ:苲m=S@aÇK(ë® ž[¹d×½Ô ¦4qìì0Èž:jÄWKÕj½•b ìe3X¨kØg­fAÉ›çY:ÀehTÉd¦LE!J¡W-OÆÉMK·N5Ô¥\høÝ†…2 Mû!´³\ª7ëRÃ( ÚÜ瘌K†‹ KÚ¤œ/eã‹t7%NIWÞ=–>£hP¬ñ· –1Y¤lÛ™ÂÞõL$¥ÓŠØ™vd™ 5â#¥jµNB1P¦ö ªÇº@Åõ3—Ñâlè›8ËߢÀÙÀ‰¶ÀiÀ”8(5XÚ¿½ÇÒKMñÛ1¾àrεíç\‹p!çZòáœk.å\ÛÛVëC?¿Öà »Àd¨(U«uŠ2mg°P=Ö…¡0œŽ­o¿¿¶O!ŒMÚÆº´$ŒÙ&沞àAA¹vðÈ>$\ûÁ,aL÷~¿Šï÷Ç)sÊ烽âý~¨{•²øÉ[%%ãAÎóÞXåx#‚ ‚òÞ ®~—p³&ÚâíG“ÑDëc2RÄÉ… ñœS¸ø[èÍà:ËÃîeƒ{«OŸž›õêØì¶‡¯ðÐñi³?ýÚNµPì¶›ûãî–×»ý~sÎI¿=l¶ëÓÿM‡6Ç; ãî&]úìÍþsÓVÛ®^6í¶ùêÍ>²t‚Ç4¦uûe®íḂ+ØÝ= B']à)ø ïÒÁíl㵎›ßî “ÿ ®°Ö¡yùô¼ÙŸ _°âê7¬ƒµCùzØàp3èxÐÄ=³BK3ß:^«QªWš_[pVÓV|ÙŸvÉ089úêõ%·“ÆÂ°)æq»X¥ÛIËaø·»âªÛn£u»É¶Œ¾Hgó´Ð[ƒ:˜O‡ÌߨV9˜“ ”Ûk Õc ¿+µ›Èêw`T½w`cVü?¢hPlQ<¢x΋i±tD±+j¾ïÕÄÇîô³‹4K˜.ÄK*œ5+«¿Ÿ ð£ 8Wøý…sï®æ{\¥<Õ|-Nï0ùÅwÃã¢T@bÖ[ƒì^“¡FÜ«T­Ö½(Ê.1ƒ…걆_µ•Ê2#ÜãU[)9 ޶òÑà Sy2Ô•KÕj©L1P¦ß ªÇž&€I8íM¦‚ÜôS‘FZ¾Ð«¶á ÆÉmE·N5Ôð;¶RHf۳߱çxn)ïØN†~ǶÐ`ê;¶UNïØÎ¡ÊéÛB•ùß±ð”Ä-­ïaP|:Ô°—¿Q­ÒÍIjs Õc ¿c+9gÖÈÙÞ±ñÓbâ Å{L‘‰çñ+fßJŠØsWR® lwé×m®™ò\`ûÒÖé WÙì ´ywAæòT¤*zÕ2™`œL>ºuª¡§)Â)&ˆi‚= r»O†iøRµÚ–§(·× ªÇº”¿KÐÃYæôµðœÄðœø£†ç„ÂÐ< E ó"ÐûûJÕr¿Þ0™­dËÔ"°Þj˜wÛ7¬—ÒÅ¡:E/b ì”ý€4ƒÒg,5XZç*`ìˆÃ›òg#yèäþl$½‘ÜŸä¡?’ûx)}o¢ošKüDªiÅEƒb‹"ºœµ·¿k‚Aa@Š™B=°Ê˜„0€4Žp-&qÄÕ˜á62£§Úâ¶P Pp‡§Hà‡È–f6=A] m9f‚¼ÚŠOKa¹_5‡Ús±ÿ½p!x“2_èýóëc³ýf¿ßí/]ÌI–/Õ|DÔ6J »)||ÙµGŽO«-îa¬v¢.w0Ô¬Oå_›ãS{I<6ŸS¤òN`´}q/£½D…Œ!Ë€ôjùÃî+Ç8£vKМƒ´O¿Äåê÷dª„½Ò`Z-÷›ãë>^úp¹Yâg{²¹~ˆZ]°“ôÌvµ’¥àZÛÊ.ôÓõW¼ð)T›â³1Í}óØŽ`Ú,'3¡5<" sÄ)†TcGé“õÖÍÏ\èÈh°~¸s!Ó³á20߆¦/*Aó;»™„E endstream endobj 66 0 obj << /Type /Page /Contents 67 0 R /Resources 65 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 65 0 obj << /Font << /F38 54 0 R /F22 7 0 R /F21 8 0 R /F17 5 0 R /F35 24 0 R >> /ProcSet [ /PDF /Text ] >> endobj 70 0 obj << /Length 3430 /Filter /FlateDecode >> stream xÚÕ[KoãȾϯöD#ëÞ~’Í9l‚l0&˜` ä°»ŽDYÄÒ¤—¤ÖãŸz4IQ¦dKô%«lVwU}U]MWËÕýJ®þùA†òow~øI%+¥Dêœ^ÝmW>Î¥«Dz!­[ÝmV?Gÿ®»üæV§>êvY‡µ4Ê*î)ªD]~Ÿ7ܱΪªƒ¾B‘DáÝ}›o¸»«¹§ÍË|Ýq=ãGmÞüQ¬ÃÛ¦~O+~œëòª-ê0ù#ѯÃÄÍ­Õqô…I´7¿Þýku«âçVYamÌüd L``(-ÔÀ»M~_´]Þà ñP¤2«øyQmnÌž}-sîÉš&»Ñ>z¾ñ*úžG·5?ëvEË=õcG‹%š-?ÝmV–5¾ü„ëÎ7—úÃOÚ®`•ÆÆ¤¹º5V8làšÐ7·Ji}.÷÷EÕò;SåÁ;Z 'üÎç¿ÿSJSx…̽L¢vú•0Oá'oùY½åÁyÑíP³X‡OjÜá¤Z¦Â(“ó¤4×Üê¬.Õý¸º™#>îÇ|)ªû2ïêê4ÑÔA5í_VZàF_ö ÀÐË\g3óÞ—BcŠ“3¬(¡üÀJ•n\BÈÆr¾q Ãoe±.º¤üÌ]ëºj»f¿îrÄÂ'vÑ×}ÇOkèC±?m ­g¦¼ 30t±r~òd«è/laõ^Ûâ᱄9¬2ãê@üÜ“qÑ ”»æÅ©’ô xPÂÛañøSÿ†Æ‘‡vTaVšŒM*L† [ ¼ËªuˆSz(n™i­%MÇ\ÏVf 0í5ªÀ} mr`³ ",ùRê”R-Œ·—@9µØWä¡‚zënÇ â‘ZcñÀ’Ák1ïèÕc?ÕøTœä­¶ƒÿb‡€uýÜl•÷~‰Î9Vr8Ú¸Ñá`ƒV½,¶Ÿ dB›|â/Rt±M˜„Gô»K³ÍУSß¾%`õ„G3zô4¨Óü!¯ºYŸƒË5ª»ÝW$@Àƒv&zÚk\ÁŽåhRùÒrЯ[ܸüuðÕònW“ð6Üq**ÀÎëcb‘ªa­€ñÄ$aw¶¤72ƒq-¬®¯³P܃=Úø°Í*¡µ×ÍH6¼ »ª3B¦‚8Tº`àOh\û½z9cqi-­ßè±Ak3Ƹ.èÍÁo’sƒ97()0Á΃°©L–ÇÀžóƒjüh°}\º_dNqÕ±q¬ûXà!CÂà“³"ô Êó>pØÖÍÃM±NèÑÃc¶î‚U]ˆömx3[7u;„#“> 1Ê!“0þˆÉ£ >înG[‡¶ÍöeÇ Þúó15îñN³ pн V8†€ …/.(Û÷!ä`4hMÝ&I ¼Ab‚QY('8á.ò¦ßóŽÕëa6t;ƒ“¸7¼±‰ æ¶–¶.÷  •U³Ö*{?úiÀvÑÍnpèÐûq¿Q¬÷ü„ò®DµuT0Õ|hp¤ŒÏIØÐ³É¶ Ï3~ˆÖ}£X¼8‘Æî"-Ÿ¤ÇÖIël‡w¢è:pV@[&ë%hÀsˆ~Q®Æ9†D_*(”ÿ¸ûðûôPš°¡ùį¬Ó‚;^?|À~‹ÞÀi`{LVM¾Ú~øÏ :}û€H’äØÏ¿ÊÕžÉ “úÕ|€?&]®¾å™åü9üº|A@I%tìÞ@ÁBLlçH8%EbÜ‚E8eDªÍå‚èE;©Nâ•ÅÀÜ$½~´H}`|J=/Õ2Ò8½š@“—sZÓz¹ªASSÖ‚ZÞÊÛ ¬%ôõºžôµ^Á!'Ö1»1ÀAZV(8zòù ϘITr‘aáéd­àLµ: bœðc õj}â♋ÐY!‘÷2lå\4\l¹È¸XC4œv‘NB-ÖDÈÅDÈÑέœ[ ·¶\dܹ†àö„t$>b6ﱂEh/œ×Ë,b¤±Ø".&uÆ"¦¬]kK4 ø$t=­‹Ð€fØ ~BIÒ°' !”LˆU ðò çeTÐoE=ÝŒ}8Kar°Ʋ‘ü±%eôÂ)µä†^‰¹ ¨°—Æz¡ëi,êŤÎuÊÚµ@]" \ï ¡ëiÍÕ¦TtSRhe\ņ 8ÂRÎÂܶ‹‡/ ßÚ¬ŒînnS ']ü-èPêã*‰©•°—Ç)iÁÞI4À9áÙ&ä†-»ahí¹Ur ^÷Þáj•ñä·¡ÀLJ®ÝÐy'!ƒIøíèwG¿5ýÂŒ`2ß½n!ÒŠ8YèÊG‹-äbRg,dÊÚµ²D@ªßAB×Ó:ÙšT‹D-s4–*ÿrR§•ÄÚ•Ê_$ ^aï!¡ëiÜÇM #ÍÜ>þÒ#j˜KzˆŸÏø›ý*g†84¥½;&χEÉ~ˆö ~JJÒ$ú#Õr&oØÉÄjTG‹¡z1©3P²v-T—h€×;HèzZó;yìPûø?>ÌßÜ:úäh/t´…ò!ÿß3ƒ^«Dl†ÿÀ}í9úÓŽ#ý:îb/¼Œ—án¤±w“:ƒ»)k×ân‰€¬¼ƒ„®§uzt±ðn¡Ói,VþŤÎ(ÊÚµÊ_" Aaï ¡ëiþòcb ¥¿úËŽ‡E}×ãpPŸ©^Ž+Žî©^PcüX÷Û©28\IOK>,@ëž[·0Ûû‹ÆÆZáÓ…nm¤±Ù“:ƒì)k×"{‰€4¾ƒ„®§ÅÈV“È/q£ö½°>dÎðYN“)}»zIõü ŸëývÔ¾Ðô8Mèó£RôqSQ‡Rºï¬¸è¸ÈùYí-w®‡!°åc¸˜jK0-›†¡“5´r.î Cðhl£¿Þ…Çõ!&Ø÷%3yÕ> hÜ.ôü#Åöq1©3ö1eíZûX" Óï ¡ëiÞöµv:Ç‘Æbå_LêŒò§¬]«ü%öºžÖéc±¶Â%úÿåX „3ü"¤$õRJgp:áëZ˜.΀¬åÒ¹šÔ™ó°Ò"VÉ»Ÿ‡ÍÀqv€‘NÄÖ¼O²Â±+“‚·zI¶ÂH¼š®°`#:.”…|=YܘNà Òb>bž†I”€µ´‚é˜x¾Ãü¤ù<#’1‰ùÓóé$ëŒWrb: ¢†„¥Ÿž?V}2ÎÌ”I*L¢§™¡cž·ÓK×ùÙ)oM¬é¿>sYA'²—´³§Ó—8'lf&ç…{×ìgY‚](–Cr¥~Å'³»´ì7éÆ+ã#Ý'³ŸB¾ÚÌ<©^JylŠjV0ÆB 6ä-¤M.Wïv(¤}ûý܌ҫ·ðrk•‰?ÊIße!ƒ+ÓsË|H?<„ fõ÷‰ˆ!£_Ÿ”±Âìc¿‘‰H´;HNBs€Ÿã\ÙKÖþ~‡ÿ—ý= ¨…ô7ÌFÄœg@eÁ“~Ä}^åMVbr66÷m¾Ý—éBú!ôþøù#W¶ý뜑 ¦ß/‘ ÊHkÃêËÃLœY/ñhÇ6ÆýLB¢›a PXËØ"eHÄ'C&öð̘˜³[ÜwyÅ#FB䶸¯åsÑ«©”Â2"NÉâyY‡4׆Grâ/‰p>Á•9¨CzgSïù’ DwÅ–ËþúŽжÃáÏã%3æVÙCèªÃ«?è3‘±ëÈb "d–‰pʨ@œi¿Þ7”K~Ü/n"ùƦÙ×K–ÁÓËóë}ÇýQ|æÀ³píº¿o€€­CÙ+(±Úb°úžüºÞ—aÆÒJêp{£ä±ƒÚ½Pp‚`AxÎJMÁyñýô|ô endstream endobj 69 0 obj << /Type /Page /Contents 70 0 R /Resources 68 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 68 0 obj << /Font << /F17 5 0 R /F24 15 0 R /F35 24 0 R /F22 7 0 R /F21 8 0 R >> /ProcSet [ /PDF /Text ] >> endobj 73 0 obj << /Length 3235 /Filter /FlateDecode >> stream xÚÕ\Ks㸾ϯP%‡¥«VXâ îm³™™JN“š©Êaw´LÛ¬•(‡¢Ç™üút£ÁlQ¶U55 €ûñu ä«»U¾úø.埾¼ûá·+ÎY¡µX}¹]Y±²¹c¹Ò«/7«_²nµVJfUsxl+<Yw_vTÛÝW¡ùŸô¨÷ >\­…Íöus%\Ö¨²lCç;m«M·ýF§‡ª{|¸â»Z[§³/€ùÛ—¿þðAê©`RX渹½\妫¿–]èë Óy1ôlnŽá ŸV}§›êàZå†)ÇWk®˜R†®ÙUÝýÞ+zJí²¶:æ‚]á*)µÍÊ›êƒâøš¶Úí± õ£FoOlÌ¢Á]ÍàµïQ@$ߦz@aó"pÓ‹}ÛUA¥àÝ+­³²ó$ÅZ2&\3j½Å ²ÙÓùvßÜZmÍ]Á¤´±ñÊÃX°©>è\¥²§º»§#º ÐüÓÏ?QÍà;8¾)»µP.{º¯·Õ’èÇì¤5+Œ|‹¡,ãV÷ƒj¢*HäUÅÊ®ÞyÚê®>ÀÍ{=®;R]æ’qé‚ê!9Stywç; “yŽ!š}*†0`$£P+¸^*ãeJÅ„²„&™¼Zs.tö¾¹’|d4w‡cJ0‡›à‰™Ì‘.S|Ú>ÞÕÍû¦GïŽsHZìÞlÁÉ ’@%PZ5•?•YSî æËMšýàh³§P,놺nö»ŠØŽêƒK¥¨®›u Ì2&¸èï n€¤ ù é$‚Ø…‚ª‡–M}ãû¿¨~Wm°þ¾lêÃŽZn÷-µíÛ;¨þWÝÜQCÞEÒC¿‰ôpæuÅ4ÇÒLxH c×ÂÈlW6MÕ‚ Š«ì§‡‡m½ñáyÀf¸% ø~½Í鬩ž¨½)AÑÑüXEæÇ^‘ù±B n©Ê —ÖÃe­ëc [ßÈ Èíkr&õ°xC ‡zÓÂ%”àhb#|XmBÐx“A¹[êñé[âÝû<§Ûúº-Û"r Ô,b91³h1y*ˆÉ­üðlKµô|ˆžj¡'-,çe„¶k¬øFÇ Ðëhœ9Ã\þ,Ð>z‘ŽF¯ƒ¸t"Š1|nq1<·8jÂ@:IÐ7Ò{ÐPù‰ÛpzèJOîß©–ô×/ôÇÑ æ_ÓGô Y`Óþjú«»ûþ.¼Ž²‚îs>Ôoa¤C椖#ögñBfýû}…Þ7C J›¯PÜS“Æ £Àx->²oP »Ð4‘€s ‹IFße𼚦e@E,>T­AÓWXÖûr÷°­~ĶaèÙ—Jåû/ïþ'9ü㫆zÖ­”)XîŠÕf÷ë7ð°Ð+xN8»j«Õí»¿½ÀéÏ'`0šµv öËoùêÚ@R&a óä{îà?AoWŸù¥8V0H'èúüÏ9F¿BåSÇ04Ï™•:E Í%+„<ß½u#« kVJÃ8CªÞE‚K1>ç¡—ž1æ¥ ˜$μ“φz)Õà«Xµà—·ê6x+Å@ƒ¿.`¡åX~–C¿†žÂÐð(‡Ô 4ù}tæ@¥aHêÒ¨2b$Sål¨T‰U[J• î½€…–cÍSE9fî¹²69Ïþ £}˜hU8èϳ m鬤¢ºXz@¥<]ó4h‚‰mCEGEEEKÅ-%›¡‹3Î_ι“Ê_.Tv…ö]4IgXÙ¾ ž5TÀåNà¨h]h¬ƒ¿_á¯Á»Àqëÿî} µîüßjRÓ½?R2^IŠŸ#9~Ά:?±jKã'Å@ç/`¡åXóñ#alÍßœjÚ51ÕŽÉT9êUbÕ–R%Å@ƒ{/`¡åXž*BDT (XŠ9r-&1n)­ZJ«.;ÐY˜• >ž‰q÷Ì™œ’,§$+(ÉrJ²œ’¬ $Ë)Éò¾ ‡)²¶Ù¯¹Îq¢-Ïž!^$\†/´—Mž~…DÎÈgÕ\1 ‡‘šã“AaºRi–na¶ýœt‡llN<„Ìy!­a6/„ž æµ§'Á­¯ ^yi™v‰Ï‡#9æÏ†:ó±jKc>Å@Cœ^ÀB˱æ'xB3#þˆ‘ìü³¡N8?Vm©óS 48ìZŽ5?8Œ@å› ±‰‰bÄHæÊÙP'¸«¶”+)ü{ -Çšç ‡ vÿ7ß- n™Ô™£“ºÜ1î n™Ò6iRÇñ7)El®ùIÍrAªç“ºµ-dâ,÷Õpî[nÒÂyÄH糡N„s¬ÚÒpN1Ђ°Ðr¬ùpÎ5“ù›S¿p³†'qe‚‘Ê•ó¡æ¹òLµ…\I2PïßKXh9ÖìQXË\ž–(&ÉÎ?ê„ócÕ–:?Å@ƒÃ.`¡åXóÑ…ãp¡üøˆ.þ‹Ñ,ÌéÄ8b$ÇÀÙP'b Vmi ¤hàí,´kþ#º0`i—DZ2W$¦Ð#™>gC O¬ÚRú¤hpù,´kþù© ›JÌ#F²óφ:áüXµ¥ÎO1Ðà° Xh9Öì@[(Í´°oh @€Œ“Ä•#™+gCàJ¬ÚR®¤hðï,´kž+R2=®#X+#³¸4 ¦úÆJÿM%§Á*~Ç/âùäs¶Ãåè/~Æí¬Ç£&pMÅÝäÌ¿šÁ³’Š-~wÑk…ñ5ýšÛL^CЯ¹Môëï×_CTKû…Ñ‘Ì÷s‘NÐ=Òk)ÛŒ34Ý:‹¡æ©.83üíi17àŸÄ´8b$Óäl¨<‰U[J” î½€…–cÍ—`cÄä»´*p€OÙÒ98~ù±7×,/¤—Ê~ÃòêÇÞÜyD úlíßk[ÿEZaÊËUþÚ]ZŸ)ÀnƹË,€-\.ŠðüIY.úˆW—‹&ˆ1’úL[äoÚg†[ÅxŸ ŽwG Ç<Ÿ®ÇÏ+mØ¥£|ìö»²«7åÖï°‚ß\¦[WàFa›h‹†I}‡w¡uýTáK¿Ô¢+™gêöŠû7=.É÷ûô›$àV)´üþتçgëµUÞïN ò°Ä«†ý8ð¤ÆeÒòüïñ«‘ê»êg]TéW}zcêGw —6Týt_op”uTzºXèjìt “°öü7ï‘"û\mö ®BWª ï^f"¸ eúXN½îãËpcícA5}ÍNWÒÞ ÏWÐûM†=§n†}ü¶aφ°¯‡ké¡õ™ÛkáÕ™g€–ýÚv$†.pˆn²áßëasØw¡‚*ª÷@õ‡úÎ彩uÒo~ iéÿ±íŒfRðx{>³÷ .Ïû=ÂÍ¡+É›~£š s¿§üDÛ-H°hû|»2RjÂ{Xºpp»ßnýž#OƒÝí<o £#Ç8$³5Ì-œ _¹ˆ:Aâÿ7S| b endstream endobj 72 0 obj << /Type /Page /Contents 73 0 R /Resources 71 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 71 0 obj << /Font << /F17 5 0 R /F35 24 0 R /F24 15 0 R /F38 54 0 R /F22 7 0 R /F21 8 0 R >> /ProcSet [ /PDF /Text ] >> endobj 76 0 obj << /Length 2631 /Filter /FlateDecode >> stream xÚÕ\Msã6½Ï¯P%NUŒÅ÷GŽ[»I%‡­ÝŠoÙ´2m«J–½–f&ù÷Û@S$a›”€foM àûõë&¤ÉWw+¾úþ?Ó h´ÿ…oþ‰UpÌ;¿rB2 íæáCÜ®…eR›•bÊ»Õs»ºýð¯W §þÌ3îÜìç_øêöý¸âL¿ú’F>À„Þ­~ä7NÇ0kíÏ_!.˜´æÍœçFp攡œ†Š©Ê¹xÃEžIgWŽsf±s‘dÁ‡•,3å¡×ž0¦Ï¦ÃÄÓ™vr1Ôë³ê}•›ÖùåRÛzoQêýµCõX½þð—ï”_¬´«ë[ ˆ3Á5bu}³ú¹ùúã/×?ö&üýúµT¬÷ÌXO’ʃ*•r¨i©¼0­R*$‚Nî]‚¡z¬I©Ø ™€aV®,Íß>^ šÁ› övØ[cóÜñF7?@O›fݱ×bï{·Ø[coƒ½{"¢˜f‹Ð€â<6éçàó!}ÂhšCúþ4Ú»IÛa¯32‘ˆÃçgø”€~6œeVÐråƒÅP3›V‚zÑ.ÀP=ÖtxhB¸8YZͬ!&˃¬•b¨­ä¦Õj…BPïߪÇJZ‘"Ó ÌË4ˆÅ‚ ´F±ü3æ«.1úæöî°Ùb³Ç}ßF†æ›ÿà¾u¶²›„äÇ ŒY.˜ˆ Ÿ°'èæ> 4¦ŒÄ“ÎMÃ¹ÍØ‰Îà“fJ¡™“67³M?¿O?UrÞü›çkló4RcòM);q)§Ç_á08à‚4l$s\ÒBkÀ ‡V1ÔLhå¦Õ†… >`¨k²^±lNHÎ0ÈÎ/†šq~nZ­ó)õ[€¡z,L8òe^UK3¥º„'‡ÂaFt˜}L±wˆYäEÖR–InàÇÒÑq.jÒ 06q.Š³ÂØ{Ææ7®±·Á¦"bæu]†“V"žC<‹x;ijˆgÏ!^¢”ÁÌw%œk¾=Ÿ¥‡LNL€9Š¡fb 7­6(õº]€¡z¬7b@æ<§$S®›ˆÂ•ß„¨(“æéó¬|„e^Sè€A–O1ÔŒ|rÓjåC!¨wù ÕcM_?¹fÞsÇ€Av~1ÔŒósÓjO!¨wØ ÕcM×°¦þÖ_ZÚÖKZ¢aPµR5­•¦Uj…DÐÉ¿K0T5©,Ø?uÁOþ® ~ò|x΂´0ÈP 5¹iµ@!¨í ÕcM€×̘˓¥ Œ KÓÊ€AÖJ1ÔŒVrÓjµB!¨÷ï ÕcM/ø'™åê].øÅsóó«/—.øefÖ-øÉò?cã–˜† rhCÍ„VnZmhQêÃa†ê±& £ œ˜W ²ó‹¡fœŸ›Vë| A½Ã`¨kzÁÏhÏlPï`ÁOþ‰ ~F)ç@‹ƒÅP31›V‚zÝ.ÀP=Öô‚Ÿ;åêüŒLb 0Èò)†š‘OnZ­|(õ._€¡z¬éë'P"5Í÷=Ùõ¥H3žÏìªu<œÞWtvª¡f “~éþ‚D‡˜–¼‹ã½‡ï¯Kn‡Ëx4”KK*E¸Od¶é‡÷é$b)"éÑü²CÇ$$[JœŒ0¨R5)/L« A'/ÁP=ÖdŽÔÞ0E{®o€ »¾iÆó™]µŽ'ÓûŠÎN5ÔäŸöI„»tO;Å”#fˆƒ,“b¨ä¦Õ …BPïުǚÖгqánˆx8DàeXàeXâe«S‘ž.ñRþ^7>Ôy­[Á4í&ñAVz)ÒŒÐ3»juN §—&j¨i‘[˜¥q{qBÔ@Ÿ%&ă,“b¨ä¦Õ …BPïުǚ.0´©¼ïòŽG<7i–¸á‘YYwÃC•ßðÐÊ1¨i‘5`#«j&²rÓj#‹BP 0T5]ŒHÃŒ¡­ØŒ0ÈÎ/†šq~nZ­ó)õ[€¡z¬éZ&´¨¼áaˆ9™ãÁܦœ ½;ìm±·Ç^|–Y¨Ó­ ø6>Ôg‡úÑ¡ÒÛ¢»è2˜Õ ²°‹¡f„›V+l A½`¨k:«SV³Ú€Av~1ÔŒósÓjO!¨wØ Õc½1Y”œqæ†IÕe5È !U°A¤i‰&¤­ÝöTÙ†T´Â÷cúÓ^°§$eÜ[÷s»›µ2»Ÿ+²û¹òõpœŸ)˜õ´Ì5Â Š·jZ¼/L«/‰ “à–`¨kZ¼*@5áÌ{¯,¯sà#ZæaÅ[ 5#ÞÜ´ZñRê·CõX3âõ‚)¹œv5>Ô­° W>iWá*(4ϸñ{kìm²!x5lü&N5–Íé™p(˜÷©`þœ¾kÜ‘Êfs¡Ò-ÌíoîGd¥CÍ(=7­Vé‚zu.ÀP=ÖäSÅ<ñEF# ²ó‹¡fœŸ›Vë| A½Ã`¨kz5RÇ´xgO;Ä“²ó‹B—>í0¶ò°¾Mδ²Ë¼—mVù^¶ˆ`•¡¼—툳ïe#œÆ éB.¦^©—” NA.£\|ò·ÌðN ßmï>=ÇJ¥mÔ·ñÂjšv»O‡ãóú¸}ÜÇ= Ô[qÿøz_°ó´ût·Ýã÷›v³[ã7ñzq[j¦¥XìõçŠ ©=Èžvw{„AÖs1ÔŒžsÓjõL!¨×à ÕcÍèÙÀ8'§ô,ß›žÏÿ-³T¦&49÷d5—"͈9³«VËrzùÑÙ©†š²æŒ‹ÉĬÿsü=âs˜# ²”‹¡f´œ›V+f A½`¨kFÏh·“‰Y­}¥Œû…ÞI>«-%AzG*%ÎCœ/%êOcðr!—Ô¼r%¤#Þ½òíú>–¥àíÝú N Ô»-–»P‰¦Š6n8ìxÓÞ®?íŽß@Ïûæ°Ýoºk<àÐ>Þž¶Ž^ï¾Äv?~ë¶áϵϩ$Žc»_ì ‹Þ¡Ž+ä I°ðJ@èîñÊ/÷m*±]h¶ÇˆíùP’ÃF(ȇn·«ôö†Å?ûÓÍ?Àñ~}ļ ž±'•a^…Sfn÷Ÿ»tŸ“œž8ѧQûõC{xZoÚ··¶¿>í¶›íq÷[7j£Ž÷à„mz4eu%­†Ô£r»Û_×O»6_HQ-@ W>0)ºè*Áü?D+¡ endstream endobj 75 0 obj << /Type /Page /Contents 76 0 R /Resources 74 0 R /MediaBox [0 0 612 792] /Parent 77 0 R >> endobj 74 0 obj << /Font << /F38 54 0 R /F21 8 0 R /F22 7 0 R /F17 5 0 R /F35 24 0 R >> /ProcSet [ /PDF /Text ] >> endobj 80 0 obj << /Length 2142 /Filter /FlateDecode >> stream xÚ­XK“ã6¾÷¯ÐQ]ÕVøÔc÷´›MRIm%³•ÞS’Û¦mÕÈ’Vî8¿>AÊ’FÝ•éÙ‹M‚ Eâ>€dÑ)bÑwwÌÿÿóñî«o…ЏJ¤JEôxŒ2e,O˜ÒÑã!ú%–‰ºßq.tü]Õ<™ê~'3Ý\Zhñ¸©m}ÿÉÿesÿÛã_}˳ˆó¤ÐÚ­Ê¢ O3Z4,%rïÝR"£¥à@¹Š¸”Ó(kúÿðõ?¼ §ÿ‹©ÍÉæZ*Ζv õ|Bg‰.R؉ÛÁ‡j<•5í£ßÚq.™ó ¾¯Lß'÷;%xüxßwÒp Ú»)k·\´“Š%E–E;0®R)­'’"ŸïµŠMWÚ']IØé¿ÌPî±Å;œgCO£ÃÙ Ô2%¥±G¸ÁÆí÷¶ïitpÛE)Zôo¸¹  ì–å´Ûƒ=š±Ü”oïþw‡ö`‡)2ÑLD©Ê!d´¿Üýò‹0øCÄYäÑ‹S½D*a‹ªèç»ÿÜîöMΙºµ ¹/“S=¯6»DH¤ ϳ€¡"åÂf(HãÎcWûQtׇs*äyÏe×Ôï…8RÄ/gÀúgR ¼û¡÷ƒ3=^îy|†©ÓGœ(‘(/}À¹1âQz„ªÆì!y™(‘jOñ™VJWVJó••Òlf%%+Ac?¹ºnŠL”Í£‹±òHÿuC«šî4^fY6ÐSÔÛ}ù+ã ϿӺˆ‚Ow/eoœe²ÂÛÏ3Réýÿ¶a`ÅèY-KÒ |ßaïvìÏÁÀX¢Eé´H4W_ L%:•n-ÉõæϸíÆ4OT.þ?[ÐÖÈ6·ðYžf{€DlEb¢‡²LCùŒpØêJÊÎÆ®eH·¶/Ô_c˜»LQ`r†zÎVú;ŠÆœ%J®¢qæœÄ½.Ú?z­ä^>Cµƒ½³íÇyhlû »æ²˜œùoåñÇÏñDÏ̽ížKàø7§`J¬B2ä2ô!yÝ"ÉçO'ÝJ̨0}Ûõ0í¢¶Ÿ¦V6Á¶M`àW¦YÓݦ;ŒO²uÖ¬Íå@ödê³'l–̲ޚà«ü±ß—õ©²øÚ§Ñ'4”O:ROr–~YôÁ·ÁEq©”¥Ÿ 6_]ˆØ…œ £„4nÇsJ{àu‚?÷ð»háü0ÏÁ[H"ü˜16Ó¬H¸N—,¾͈Ûäó@›< ‹IùUÈ‚¤KÈ—{|‡`¦þÿŠ  0Ófó/ä¤+ÝZŠÞ‰ÿ¿q£tø\®Tœ·ÊcÎ`ójbïï©>Æel÷JyœgSñelÝ—Î{à›ž6JB§¿áÚ[ÍÏHüA]%ü¯eš%™a΃mÛ•þþñ–q  “Z¯KÅ5J·]Cn þqpF¡!åNI‚~¼`ácº+õ]å.uB£³§²lgý²%9¸íŽ x "±u&ö;¡L#»úl56+–Dè|‡ßî+kº7-$e’ɵ…´\YöÒ¥õ£ƒ+zýÀ&3ÃÀ”ç¨K'…ÆÁb8Öa-C.ÝK-fõùö≯°•-™%À[€-‡S¶bMMÂ'rNú ˆ7m?é ÷¸µÓØï¥ t {­­ûešãN¼Ûë8”Uù”`E ÕÙ­Hâ ê-=¥épRï NÆ„XºÁ ;-düc38t¸ê4\ü@vhˆ}·n¼¹…Ÿf½l+ëkí]º»þ/úŒxÔÛÎ@$ïmø¤ñêC7[<[eóÆöÅ|t¥_ ªº•QYï‡Ë»Ò4Ùšþ:¿ô⦚Xïâ}v¬ó•žl>\Á¡ë„ÀÐòæZ-BGI!ýM4¼~Э-Óñ7ëú×:ÒDä~ö÷ø(¡át8”äJØs¥ªö—l8ßð­×;È€/(hº¨Áý{ˆÆ³í«ÑÑ•ë]ÚʆœêØ1­ºÝÐß'¯(7ßÀìÓmM÷.zŽ€ûÜØz•ÎK`à|u%Ax¨ÈããXc‰›3U鿟cNÞA….¨ioæ¦ì~$¹¿Eçp,7B[¸cg—Õnë æ©r¾<¬xý¯ U’¶¡þGÓœ(bøfk€ üL_Ëk¢†ùÝ€‘ĘdÙD¢9ólúò°œŸÆcÌ"›à©€Ä€˜]ilr™¬À/¢äpOª1YQÃG˪‘Úç 8»¼öBç M ŒYGeÅ6ÞnªÃ[îùÉ}š‹ÁTPîMåîq ¥À-|ifæ¸â•Ëÿ·m롇8§Ðè¤zlªªAK½`1CŒAõ„_õ |N¦=A@dì»’xßNϽg˜é9ææi3v¸=Œ2|ÒKÒ”{^H¸g†×ÞB©xêÿÂs¨dµ6{NfÇSSc:…€¬HG4@N‰R[â I‰íH¾äD%>3-¸­Nî¡“O °7­y*§@Ýtý.û†+4º‘\¨¼xÁ¼\„.•OPMœñ5‰ÚäÞ8ºx€ñÙøåC©†f¢Ü.}‡Ê2ÊPç).ÑtDZ¢É¥Ÿ´ ß¼1k¿u¶ªœò”JãGä)Èzh¤" ¿Ê—jQw+O½(FÈÈkUæ_pU:•BêºÝ©ìµRCÂæoÔÕ«uû.L^œðÆzYÆr 8¡THO*<ÁƒhV¼aw†(výÅ)áÆ*'¨1ö~m‰Ø &C^Kùx· ã¢b†:Ž&ÞæOÀ~ýòõ;"O8–J0é¯@ˆs%¸éý …U~A endstream endobj 79 0 obj << /Type /Page /Contents 80 0 R /Resources 78 0 R /MediaBox [0 0 612 792] /Parent 77 0 R >> endobj 78 0 obj << /Font << /F24 15 0 R /F17 5 0 R /F35 24 0 R >> /ProcSet [ /PDF /Text ] >> endobj 83 0 obj << /Length 3522 /Filter /FlateDecode >> stream xÚÍ[Ksã6¾Ï¯Pe¡«f¸x’ÄVí!©š$›ÃÖlâ=%9Ðm±BI^ŠòØÿ~û¾lJ²R. lü4º¯P,bñãq$•JHÿWþäÂ¥q–f‹Td±0v±Ü|À|#“X¨c¥‹ºXÜøÏV€HšÁ~ûC,Vpïç…ˆµË_©äþºZü Èo«#e¬´>…ÀÏ‹7RÀ£‰}„.6SVŠ8Õ6¤VêØ)}¹.&º(‹Uš,—ĵ=¤b—¹ÔÏY{¬ƒÞtLq¼.’+s´‹/Fz[§¶£Æíò}òÞ†µ=¢œ¶«® ÙPßß~øûJ-\ì•,nïI=V+€rqÝ»Zü•7ŸTmè÷~“hG×5ý67Üþ 0rcT þ$øñýÍ'©dôÂÉ‹wúø|;ar™‰¥6a6×cÝÅP'¬nÜ´¹f¢ ÎX® ¡ùX',/KãŒi¾åY'[ÓƒÒR¨÷Ø\ªb™Žs=F°Í] uÂæÆM›ks! êìä šÅ6'_Ùœ3ˆeã4ñ£]qó)É¢-ý>Ý|²©‹þ ‚Ô½5!ê(†$X\J*É&í¥š¥]WDØoH}sceôåª}¿"º¥ëŸn¬€{PDFœ7ÛDÄJ•=F°Ù^ uÂlÇM›k¶! êLí š5e¶*6&,gÒ•_ØÖ*¶µKst­þ8(éÓEw|/ÝÛ³‰ƒ¥ke(31ô˜ÎÉŠltd›ŠªM5±§ZÊÝ!Ž6TA@`7nèž_\pmj–žX*YZŽŠ¿ºèwaddghUN¿ ý®oÐÉ•xíüJ9j½±ôÚÌà³Q±Tr Ê ÿ%Ò‰‘D/øNgFá32Œà«ãÏ!Jb“8Óéu"¦ØÌˆ)±i,t1½âlÄPÎ//ÕÅë —¬W¶#”BóMÍ(gà d¹ÿ»ÒBGͺÜ㕊Šç|óXQ>³.¸Àa_Ôßî™Ý@óR§±s®å7_¾»ý‰‹ß¬`zP¶-Ulo€-=•õn»Áë ßÃÕ ÷­¸BÍŽsVÅïBšmásÛŠUåÞ?º»‘ѽ/[ÖŲÙÕe±oÛ—Ã]_0¯ ¬á\1¡‘ŒF/?Ù^bíÖT x÷»š/¾¼4ëj  Ó¾Õ¡¢wÀÝ|ëËû˜Þ ÓØZ7Æ¿]Sj„^"iõSíò‰aLjˆ`б`ë2‘§+!Î9Ç^u›"BVƒ[;õS¹,öShaèìê×䢊°éFXP,_ñgÇ;èŸÚ_>6ån›W,åõÃaýߴ¯ó†¯–;¾Qï|éõŽýÝÍ#é|·í¸AwI¢¼š-×;¦ Kª,V0à¥ÑDÓú‡xA˜®}Û|SLè?“ dÐYÁ¤´aúÏ Ã3MXVzÛ¨‹)ÍKKomÃz r —ù–/îH=¾ÝìA*Kȃ0§÷ ”rNêâáPå5 Åóc]ì÷åÎr× >Y5E½oo´.~B»G&N…É-R•è0©ô cçLÕÀ9A ~Ë‘Jœ±,äÞ2 xú®ªØ:ÊíƒÍ%‹¾zØÎxè±óÅØŠŠeyÿÒU i_Ú;(|<04yÝðËÀÉ¿–ÍÚÛ‘°`¢‹ö6/“c¡ˆ¥3}‡ É–ú²»c –S3°U0ÌÀÈ~•x6s¶¦À  ø<ÂÙùw~%Úé÷bE]°´àÀ‰LƒB¢FhHt9ÔñèUÓf†DA êúë šu<$²ÒÅJè¿jH„Õ3B]#&µ44&"E@ “Óï†~'¦dô%±Ù5š¡…ˆM¦ÆÍ¨ý‹-cÚEßÜ`]¬Æ¥ã,b?º›! TæuÑN…BO¬ ³‡7ù2ß@{mò¾hËJ”Õ]i¬ïÁæŽõ€`N#œìÏCœíçW£wù uñŽh+sDÿ ÐFÕòÒï‘s€¯ŠûüP5gAÿu] MBon•bn€¾NÜ€3I½¼º½*÷ù]Å4W#K¢8 nÜç˲*›¼i™†ÁÅ&ßæEÇ$™Í ã_áÆTjT1ˆÕAФ¼*žYÈ«r™#ß÷Å{O˜°äyáᦜÙ3EÅ®¿/°zZ´\Ös<`oèØÖqJi`œvú/K)Ìb©¯B)G- £”ÊJª»±¤$ƒ«Vàþí«Ä5Ry– «TÙ«>[qJ®Àž¥œ¥;–*N \öÀÝ>­£ø¸–SŠ (ÅG-úÀˆÿ.iÀGœ½‡€ÍÜÁl$PøÑý<Äùá}~5z¿P“R™튽N\œ*Ŧcb…>ªlôKñPöë_6úü\, ÒÉ\±‰e’ž[‡Nºs2/‡èã]Œ4—]›¸è^2¹T™¡&ºeÔÇœVðþ$Vò6 ê–!÷,6Óõ"…êÒ>?CK·yõùôëÑ”m·TúXÊíGæ¶À‹)豯¯ë’×yë Y³2íîæÐÚ©î>`nÏ…ñž_%…üÇzÇû+_°ÜÞïê'¼X6gj·;ø' ß.¾ë• 4;ٮȢ_§Ö$=9_ËŠ‚£üf ^ úˆdZͦ+Ú£À ÜÏá«od,»Eeª-Ä%ƪ¾|CŠéI% ›¢Yû=ç”Û†ÅÔ *D9¼/€t•®-4¸«0f•~K¥ØRTÃãe\Pˆc‡XP¾á"ís÷»ÃvõÑ3åv[Æ¿0«lÖ|c›Á­^s—sf•Âd‘$×V`3‡U…›Ö„ «ï€8;¬T£V/ÖÅQÚ¬pÃO±æ"”4_Œtœ3Û5“2‡(§ëªpí̆šæË¸Õ­puiÏ"­cŠ(ˆE‚ôÄRÉÒ²+’¤’ŽZ©,úŒÓn=cB[o(,Õ,mYÊYªX?W°´déÀR3zª{ƒRª]õdž–E¥ÆeQ‰l7ÅåIàIô-2wM§Ä,µ“˜©ããÙÃ[Êš?ƒ¤Çö‹¡N¸È¸is}$DAe_ACó±&Ü$Õqj `ÁÌaT¢€UíèwyטVÑwyh¿ÝÀ¤ä¤H®½‡ëåN‘DG5>9ö󞋤{<$5gæ,5,•,m9>iɧ£h©“=’ò-(8Ùt÷4¸ì·Ü3A˜w5£bæh-B°›]tÂɆšëbóÓ9E°fæ"gž3#kÜåCèôqÓæv{ˆ‚ºîº‚†æc 0µœA@´’|X“GíškžÊé,*\;³¡x÷*Ù¦ˆ%„‰ еŸUý çPý³¬æ¹ç;G=äÔt½¥k°âÔ¤Ñ-¢-.¡J[ª®%:£3:žÈ¼!I'*¥SrZ:–’+%i­9St@Z æé‚¼td58í_"‰œzŒ`»ê„‹›6×ÇBÔyÆ44ëèü/•„®ŒÐοêxç¿jÚÌÎRPÛa×ÐÐ|¬ãó¿Dµ·_sÍšÿ3C{zŠ#Hš‰ãÉ ÄoIFoÃŽ ص’©ŠE¦Æä7çm(Yó—$r ‰§ž¿`»ÃÅP'ÜaÜ´¹î¢ Î„¯ ¡ùXG)‡Ì’X¶ßN]H9`†¦¯¤TëFh†–¿käð3·,= CL"ÈR%Lþ9Kø••“¼ËÄ’{NJN¶£{H0RŽÿ•‘y”dŠw™y»=Ëøpy|<á%ííáJ­‰iÓJKNœÙ°”srÇ™K¸%\åü*ŸLm®9_ì|Cp¾qÓæ:_ˆ‚:‡¹‚†æcw¾ÔÄÒù¾ Û¤…1\Óû7òYú¨üN ÎÏMÀª‘a³;Hfû’Lž8!/T<‹±SK;àéÞ²”Ô-XÎÉ'£ø7Ð×`â$Íæ}/œa°ºÎ6Ülæ6"èL†lýâì6\@5:#¼TïûQj˜ \ÖJ ½Šš7ôGEyo6ª‹ýžsJŸîËÍcUâþ> endobj 81 0 obj << /Font << /F22 7 0 R /F21 8 0 R /F17 5 0 R /F35 24 0 R /F34 19 0 R /F14 6 0 R /F24 15 0 R /F38 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 86 0 obj << /Length 3189 /Filter /FlateDecode >> stream xÚÝZKoäÆ¾ï¯˜›)`Õîw“ rXÙ8’l9Ø>P3”D/‡“œÕÊ¿>U]Í—†Ôc(À@°X5ûUÝUõuuuÕðÍí†oþöŽ/”JåoðÅáŸØ$ŽÅ.Þ83®Íf»‡íZX&¡ª˜ŠÝ¦Î67ïþ}B¤«ˆçÆÄ~ú…ovÐ÷ã†3•Ä›{?rÿ‰t±ùP>ÝŽL*õšÏO(S­y ͦçhÁ™SfÍ6ŒP,‘êõ²˜QQ̤³›XÆ“NC’%q²ý%Æ,)èD1‰å½’´™E¿šÒéž:EMù :y)c¦Ö§SÕHçlRß]½ûö£”›„%VÚÍÕQH%Ì‚ú¯v›Ÿ¢üâRºhïÿà¯*ÿ]û¿íÅ/W?1"£<†åü|˜#ŒŽ°PÑ‘j-95£šŽ®/.•0ƒBš¨Fk¢ ‹bí Õrªm©–Q­Áõ"ÿëÕ ªcÍ„Òë`=ÐXëW“zØSÖÎEöõx| OkÙ¤9É„[iÓ«•ÿjRO(ÊÚ¹Ê_# ^ao ¡ói‘eË&™KPû†9kÿ(Ëó,M—4APŸˆn©ðó$‘~/ÃÚ¶‰A“Æ2!µg+±OÞø¤G¾(!iAý"™J(¬üu´IL /¯a)×T42ÃëÂF?sÑg} *Ž~‡nÅ=³J ”6¾O(,ž°àä«Yƒ:åÛ¸Ž#bgºŽH!IÄ×ñ$žuWl£?k¯•ÅcoßKtVG"²8 v¦êê.Ç“0¹9–Û6¯.DTRC“¥õöÜŠ», iï2üàѱÉêoò6€×}öÁYÕùŸ>\ý@æ۰‘t£²—ù’×U¹Çïì÷TÕÃÊs«qËL¬;:¿ç‡ÙÅpK½ ”}ͶÇ6½./x ªzŽºsàü‰3˜;·€vLÁmV%ŽÙ\jc˜Õzs)4Ó:âÿæå®BnïƒÚ§$ã¼Ì–„&³`žÃvëì6oÚ¬Îv3&Í)@¹ØXµÔÉÓ`¶‰˜š´é²Ä vÈÓâ@ë±2fäj5ȵW\hಭ&ýGºÝfMó¸ñº©Šcj‡´½#ÝH›0өƽݠ<5ZO,Frºmî -âèïa<-~œŸ.lÂÃ…eYµôqSË]è+'óÕ§J¸uuüì©Ò̾þûž|¿mGoí±.g—º$3gì{ÿ¬ÊìùA0V‹èCÑTïQF2ÊAF*±À?–EÎ4yûCšçmþ3:Û ´}HÛǯ Xë˜ñ•”ŠTG_ÕMè(ŠnøïbaÂî ë†…7•ÞÀ¥­g›ƒ˜`¸u4:àöà†\]$€ƒ=Þ¢2ªê˜­Á¥™Fá;G¦EỔh‚¡Ým5x%øBôϹ‡c›ù5ÛVû¨¨l᫼Éoç1ßݞτs‹&^Çpÿ×Ùâ]×’RØü’o»Fo˜ñcŸ–ém^ÞR­õ¬Ã|`øöò±IMå‹ö²½ŒÁÙX`ÕÄ ¤v{”o@|ÿÀõ²zŽ?¼ÿEo®+ð~ÀKü5Û´UgX¦T Äh«%]?aXà+2º¿«šŒÚ÷Y{Goí] ä .~\p©‡8K€?¨Õ#ûfK+më,E³¤H-‚o,²Ôïåx žGòôƒ‚ìþ µ„EàÜŠ.Q¼=³2ÏÊmöžvDçÇLe ]ÙÎÜŸI\÷¦®öÔ³p‡ð)W={”ÌáÇLÇftï]&\ŸGh¹òn‡ä6´™è»‚6à8y…ÄÑŽz©wvBŠA—¾{Þ_‰sæ‚ZN.BÅÑ›Ó †X'fÕE¨„d–DZ2 —Oð=ë^$L ;2ëøb¹Gþsòˆ[Gä´Ã~§A&¤¸¶‚ŒáñÁÅTî÷y{GNЧâNL4u6G¨Ù¯ad¹£±‡:ÃA¡™tó ¡]^2«úáO^K±ë¹7Ü,QoóhùÁ先׼@^@âÙÈŠmt/׊b1У9œkgVzF4Öz^Oj9Ðóˆµ3=«Ô«ë $t>­å¶æšôœþ?CØ Œ'—«°=X íWSZFö”¯3½F8ß@:g“Z4i ޳ܮ3i#«õþjRO(~ÊÚ¹š_# ^_o ¡ói-Ç®UÌ™5â] çûŒõó È¨H©ð›À·ÉihG[à\xFb#VE« \ê‘LÚÉvö´Õn¨È©(ú‘ž\ŸÆ¯Íóåhª£©cá6ŽþI1k-üRŠ”¡”ENÕÐ7Ö1N@OúýóÞ¸Ö¥©F4VõW“zâ¨OY;÷¨¯P<ß@BçÓ:…µâðŠ@åÇð¢ O"<ªÎú#îÇŽ0éÎP&cG˜´“6Á“*c2 Rû Žô5¥¦(|ä?Å1‹eÿðƒWR"q•DFõŒ›„î¾êCCÃð |‹‘9|( …îüÅcâ ŠUØ+`—¿b+Áu°¨¨À³Gæ5 !eáM-ß(!4"væs )$rUBè$ž}Ž­ØÆ€êWÊâe !¥*Øíï²q´ËnÒcÑú rÒ…Ž¡½©HëB¤!ôËü·cè ØB™î}ý@Yž¢F´cîcÄ8g!Ô¤dö§ É`‘²ÍÓâôNÓVÁ¤! Ø«¢4Ú:¦µcá`„f6¶¥@AýG¡Â B¸™FW|ÊÄÑ6- í›ÕE» ¹6è§èb ÷@m>¨ eäN…Ø…4à>÷ñïž^ ž†Õr fZ%Ê^J[ªt[ÍKPx—¡óQ3h“½|šSió="ÂPVÅœF4±+¢|¿‡´²v<˜Q‰oï»¬ÉÆS=ΨaŸânh`‰ÙÌ–¾{¶±P…Ò{²ÏÞÐCðò ˆ=ŽuÂb>ÞíC_!?ºÏºd^X*Ÿ/‚¤1ÖRè+K›Ü Ú0¬–ØœJf—Øa~€‡ 6ç-µë€:ÄÔH¿ |ŸÅñ>q‰í7!‚>ÃÍ\úSsEuŽá}Š‚ÃFó]è¢8§H}ÎRõù³7FÙÔ‰¡r©B$æeÓfi¨ÔYñ@_˜rÒ\(é‚ÑvY‘ùà>Íöþg}ðuS££štaWË—,¢ã8:& f~"œ/L‚Ÿo¼ù\c …ÈiOKt®P±žµ‡&aÖêƒ`0àˆ¼ˆEt¬‘AÕûªÎ¼Œ=ÊÍ|’%B1n}E¬ämñÐMØiQ% ð±ðÄQñœ¨aÇd¡ðo)~ ol;6tй^L¥+p¿†¼lº›Ë¡Ã"4(BÁ+i]æ@*Íb¥<)÷‚đ𴛻–PØÜ§Éëìº3YÀf2GŒçABC2›+jìŽmy;›+¿Ñ0 ïJ™Ú.eªCÊô_<𸈠©0üø¾*QS·Ç: ™^hü¸·.wêžÎjƹ;3wê˜Õv!wEüÎ'1LÆ=ß{N;áÎ0k&œ®zX®ó|¦“œ…ŠJ¿ÿlâšÄÑmQ]§Á÷ØžhuäÌ`†>˜}LT?b·Ë,bÎX¸p›hôŠ´é>ƒe¯wyI~)¶Þã]O?ü8A¹‡óKPœMÁI°$ÅÑíåS§L¿Ÿ†²Hþ—zX¯:œÓžú_¢hŠ1ܦsVUö/¼Îäš~e˜†g‚@‹ãÖýj-œÚÓ‚·¥Ö—ÅÄ™tzÞàÈ„G÷CÆRÂÐý£¡jç×Å’–ÀŸ¢5T§;1 šÕ$ì3æåøVþj˜*4ä 5ðj´˜ó¢T<Î*{Ò]h§Ã ÷uîÁ‡ß½Ö±âÏ ”§ÇÀW ﮨ~zI– ¿ J4ÎM9ÿ”ÖÍü¯$.»ñÓþÔ õ?Dë_Ž)c¸Æ`¼eâ8 AØÉ @áÿÞ@ã endstream endobj 85 0 obj << /Type /Page /Contents 86 0 R /Resources 84 0 R /MediaBox [0 0 612 792] /Parent 77 0 R >> endobj 84 0 obj << /Font << /F22 7 0 R /F21 8 0 R /F17 5 0 R /F35 24 0 R /F24 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 89 0 obj << /Length 2907 /Filter /FlateDecode >> stream xÚ­[ÝÛ¸߿¸>Tb†ß”èC$Š^“öÈCš­­] õZ[KÞôî¯ï ‡ú²e{-‹EŠúif83$gL>{šñÙ_ïx(ÿr÷þ“p3!XbŒœÝ?Îâ„“Ì×fv¿š}‹î×y9_hG/ér.]ôŸ¹1Qú”Qcº) º[eËMºËBçjÍ¿ßÿíý'eº_V3Ÿ÷п¤[ÀY}ÙìŸò-õ> Ç0žÈº{º] AJÅg0Í·O›¬*¶§Á…æL·áE ¾,³òv-´LÅv¶šim©Ëuî%°È`‡2P:z¡oøÆ‡´Ìè.R¥Z§ÝåÛåf¿ }Š—*/¶}t´Lk´ù¾:ïËlzTfÛôaSCí¨\å¥oD6xŸþ2Û½æK$II p #¼u§+Q̈¸Їbû˜?íw)’<8ZŠÅÎÕÝÃÇõ”ºÛs!œc*1³ˆY¸ i@)ó…ÒàÇþÍ…n>·PÎDŸò ?ðeàSJ&làóÏÐ]‹èËãå<Å”]èPæeUÒ“â‘ZSªnàIÿA™-ý°1¸‹£i­‡ôF 7Yº¢ÇØõ7jM‡„®…dV56ò-à}â{Qwî ó>–íÞÁ7çf¡b幉5‘7^¶TÖçh®iŽjˆ-)õlð=dvÜ1›šÎmú Â4BGÂÂD¯éfŸ íb¦¹®ß˶(j—g(NËa”ç±ðÚŒßÎþ—>¿l²À ê©o~,6›_ü:ì-V‚³Hâ¤/Šã‘ÅoFî;#h~€¡µòÐx)¨¡qªýÈ«5½ðXìwÔF–L÷¯sböËŸ‘¶ÆãÖ¥€R@ùñþî¿Páð'f‰ë‰gÆqÛx¶|¾Ãv-,“àŠx#7Ûe³Ç»áÔõ8p0ÅØ·ï|¶‚gàÀòâÙßóþ z3ûÈÑŒ{ÞçG‚ &­y „æ ÓCFpæ”™B†0?Hu½,jéö¤*a¦1&f‰PõI¯v¤à§FèxdZŒÓÔL"çô _ uLU3V}Ö¸¼•·f´¦¨¯Hh<–_©x–°ÄJë— œ3˜ •L' ¹—?Oÿ0FFŸýõ¸ •ÑGý‡o¹÷ž`ØòƒZi ¸ijÕbLV««¡Î¨UŸµ±j5E@*Ü@Bã±¼ZIÑS+ Ž4”3£u˜óÚIvú¦D³V…e[b¢¿þúà¯i§=,”zÓ’Þ¬§¿_VI pxa’J¶“Uòj¨3*Ùgm¬JNP£F7Ðx¬!•ÌYÄŠa…\¨–±Â/î —U¶e\Oôf-ÆdÕ¹êŒêôY«:SÔ ÷ $4kXutŒ£oa_Üø&£T­:ïq‡—D°+±1îláúŠM±’ØÑB»hOÅ ÅE…Ò0X0IáZŒÉ w5Ô…ë³6VᦨQ’Hh<Öðô ›IØw2 ÛÚô¢Å ꛕ ¸ª…T6zG:&{5uQ«`©Ç„šæÆ:Sµêz¨ÓZuÀÚH­š$ Zn!¡ñX§eP8€ ‹²…³ñŠ5º6«7¬¤tì`÷0Í;u0&ëÑÕPgô¨ÏÚX=š" fìo ¡ñXÃz$á“6¸§ßAg¸ÆÂ ã½”‘†FEj¥xdÎèÅet¬˜KômÂD°‘a"DHÎ#\ ½âb˜hí°_) ~9­âäLð(‚ Ä¥“&o tÜf ðAH¥„'Åó‹OÛ,¥NMî;…$4ŸˆåËD0Ûî ë/ žõôKsÇ4(±6°ç%iÑH’&‘lÁ„èó¤aa ‹&×ðœUëÂ3½ÂЯÑÝÜ r™—õU1gÖõ55sâÝb¶D5ÕéŸ>uF3n›´ÑËoû*ßä ¥‚®ØªX¦`‡¥tŸÇ¬Oï׿}ðsí¸@Ågrð39~½KåUžÎ1·ð{MeAå§ÿ*Å®¡W7éœÆ`ü ÐM1mF) Š Ã‹;ŠRw‚èÜ^‡Øw?ˆî›DÉ7ù<êÜt—ìêжÂÒºÛø¬ØXŸއƒóžâ³.C\öYãɨ}ÖÕ²8ÚV˜DbÒ2¥ƒ1u™r=ÔéeÊk#—)“ÔŒ× $4‹–)ò`™¢bL’v%í¿¡HiÃTRm(¶nÑŠÆ-~™/é#‘wò‰ð1KåþºõׯM‹À9 î×þúÙ__üµòOé­¢ó.’8p{†ã‚\á=¹œ‚P{¢ZNµ-º`ƒï`–ÙÅÑÏ—íÊ”)ï4ÞZŒÉöp5Ô{è³6Ö¦¨ÑáHh<Ö€=HÃb˜¯œcF‡íÌÒNàüíxôx¼lF0§•Çé³»’ÑÀ¤b¸èøzˆ}&©”ísV ÁÐ ¸­kÕ+1ÌËBOb›±In ÌmI€jX!³W\°8.‚2XÃ,¾S×:HŒó‰_‹1ÙЯ†:cè}ÖÆú5Æy ÇP.̺!o†™8n ãÎËNšfA(vu—cÛAÅ·Ê#ºØMS|Ë”°}â úò 9áÚ·‘ÁD„±ÑO8ûù_3a5&Á‹Fâázâì×bL6Š«¡ÎEŸµ±F1E@"ß@Bã±N… ¾’·4 @Œ•¼‰Qt‰iN⦮?QÓÛLB.&ç‰c²I\ uÆ$ú¬5‰)jÔøuÚ$´`¤~C“DüÍì-L¢KÜØyB'2¾Î(¤eBMœ'ZŒÉFq5Ô£è³6Ö(¦¨QäHh<Öi£ sò¦ó &RÜÄ(ºÄ5 £:9a46‚n`YBÜ‚N<'ÄsâÑ¡1§ZAÅS>˜ñÒFÄ®—OT>J¬>ØÆã QU)au£ wÀFFU!9p)ªúˆ‹QÕ d´6r¥,Þ– ÂDŒ³º>\“QPj•=¦ûME•£_­ccs®+øûx¼ICCýós¼ÏËÁF(Ú„Ç·§MñnÊÁsÆ0e›“¨ç èæ>WÑ>0Qø®õ ¨§]ª1ÿA‰îÀã¨~¢¦¤ÄV¶Ì‘ßesÔCEìópßž¨€Åž3c1NcšCÒA×;(ëã€îÇœlÀ{«¬\îòpÎfEÏSJÖx0âuNp°/%shÝ(ƒ ;> endobj 87 0 obj << /Font << /F17 5 0 R /F35 24 0 R /F24 15 0 R /F38 54 0 R /F21 8 0 R /F22 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 92 0 obj << /Length 3271 /Filter /FlateDecode >> stream xÚí\K“ã¶¾ï¯P%SUŒ÷ÃU9$NÖU®TvS;7ÛŽÄ™a¬ÇDâxwòëÓ@ƒ©%¥!ÁÊ)‚@¿Ð ¶D ºøñ½(ÿr÷î»÷\.#N)¾¸{X¾0Ô*Õân³ø9;½ìvù±üO±üõî§fàwï™iÒ–8náQó©³\gÕS¼9Ö ¬!ÁÉr%…ËîžbëÇWXÃ>ÙßîÞýûƒÅÑ[îsj¡µ#Â-Ö»w?ÿJxöÓ‚B‹]|=w A´ó£¶‹OïþÙFð„|,BPŽ.ƒ„0D0œ ƒ®.ëþÊKäÓÅÜ­!\»”¹;Oì´¹wEFOuݹ_HŽ­%ÇfùötÀ»– ÙF†Œ—¡ +ppQVt¤‰çøSŠßPCË,ó(2(ÝØ$?aåãû޽©K%ƒ²Cfgˆ5@#Ð: JDòí’iÂAv6,ŽÅâèr‰S×[``ûŒiƒ QœFèKžÕÓŒXË®óÌÿšëŒ2õ0qDöa(F‰*eŠ 0¥b<-jêv¨Ê^hà‰¦f'κ(£Cúš3gŒáÙDLœÎ0“GC}=«†WÝ¥E¾¼um ·RÔðk MÇBŸ‚/ìe\‡MH$¤WP†8X°6;.W.;ø»îrœµÆä Ñl‡Ï°Ç(™½úBd/X«°(±qÛªIo·ÀVg°Ñp.À"­4÷ï‚ë®Â6-ûp-B;ÞW8 F ªýh&µï̤ò=|ñ€E‰Ïã :+W’0Õ8e°¤»p…·ó÷Çp­âF/[Ü ÓŒÿ…RÌb¿Œ:F%1–§éØ#YÇFC]ѱîÒ¦êX ½˜BÓ± ¬rœXžf`[©Ì5Ìü‹¥Md~j†ÍA¡éXh`YÇÀrb,M$“µ ¬Ó­SÉR`²VZ™ìOÞì™ìhD“ÄÀí±ö€µkX¼`ãk9U§ç…k†KQÿJêïØM¦,*Í„µ0’¥x4Ô)î.mª§¨‘¼(4kØ„ùž%š°3F2óGC]a~wiS™ŸB †a3Ph:†Ö¶cÂ(av¡ 'Š ´`\®”pÙß—+i½Ak®ÇÐÂI´p-œ@ ‡> X¼à³#Ör,*l,/Q¬¢þ ŒšÐ“šÐ3Ôn.¥ýŠÒd÷Œ‘,»£¡®ÈnwiSe7…@¼Í@¡éXW¶_M‰‚8gÄö+@¬|€bd^˜Ê(Ô@9sqÿœfß@ƒôè>tú`Bœã ¨A´Àà%oÛ“¥"”ê4Ñ>c$‹öh¨+¢Ý]ÚTÑN!P#Ž3Ph:Öðž,!Icþ#™ù£¡®0¿»´©ÌO!Pð(4kxOšhaÏ{² ±‚VÙ\u85Qá|Eû³^«Y°6.$Ö+DÒ÷f\ùî¾ÑÛ¬Ó6?ˆXÜc‘c±Å.þtXs?ή}B#W`ÍaÕ2€²esÙg˜x0«p…Á&Z\0©,r,6Xuí¦]äŒP—hÏɪ1êŠjt—6U5RÔˆó šŽÕw¤ ê-ŠK¢­hŽ÷˜ñRÿõQ&³D°æ(3lâSÄP†cPžç=Öòγ û Æ}}Ĩ,‘µN-Ëöý3PÆÔýÞî|[@.˜LÜÎÉ0êŠt—6URÔHí šŽÕ£\ç¹ÏÀùå¦9£·Ô‡Y6ìp¿תït_¥e-€íÃew 4lÎ[`+ê žõÅáÕÏP€G=Î_†Æ³ÀA5~½"Ô˜«#µ#ÖÚyR‡Z`S‡¤¡„Z“’:ôˆ›©C Óhdo,-z3T»‰lÄPXâhüЉ)„R ¦2è­¥ƒQàöR1%Iˆ÷̈ž$BsâŤ½†Ç¢*«b×3wG!ncIswþMœûEb«·®;÷n¡ÿ¢rÂ2æ ÂA¡¥ªYUìcßÃ’yÕLJõÀâK¾{ÞÆ®!W0€D 1—ž=Žçg!+‘ ê'ÚIJüæq{¸Ï·'0 RÒ:‘øÃ “}ªó¥d°–p_Yö§òTp”Ï}õe|¸)ðüøŠÍ˜ôêïvùó û„´ç¥ËCuŸïп׿Ëß—þljû‚“§Ý¼ÛSu,÷'˜§¶:ûÇ¡‚åKÆêW1:˜¬Ì9˜-FX?öåãË1ËìÉ)¶ŒOs’°Þæ§Âç/ÕaÃÖùvûŠM>GóT¿¼ŒwÈWî—˜!ÚL/ܬÇc±Š)ÆÔ„Lê‡NÏAŽû ¬ø–3~™ôŒ0éó#܇y\e-€.GœœQÙ‡çÁ mòƒ/v6R=,‚ Z²†æ›€^ôX V6du"a²iæGÇxÀâ<®©Ü·èÅ k¤âXäU-½ù¾oI vAÕ4}x#ðá>œÌþ ´ðR‘ÊSKã)óóœŸ|Œ½÷ÞÏÛ—Çu\×LÎ0EcÂWåûM~ôò¢YvzEο`MŒfµ™Ò`u^öu³?ó>Åç‡àeœûuùðZ,ð&R;Ü{kà`höù©Ä¼é.`4£>'1BoŠ_(“ûˆ†lh¬F\M^Ù¸©¢¬—ûZƒb&¦__ê0-lòŸŒÍ}ê»eóxT-°‰‡m|‘ê 7=ª„iÔÕhZ žF@L@€ÁI‘\ #5’5É],mb$—D †_3Ph:Vß— ØB„ÇòI;âü9€ááÃïn,|póµSÿÙ-8Õµí¾ó¦Ö§5ÃŒ„oÃý6\_Âõ1\ËpÝc†I \€ï ¿Šà&ùâ‹-‡NÏž/á3ä=j1ÓaÅŒ}Ãg ®A‹LÚa] #Y=FC]QîÒ¦ªG ‘žBÓ±†m£bà˜%ÚÆ3F2óGC]a~wiS™ŸB †a3Ph:VÏ)ó_s%`ùˆ9žrùO;Òàái<»BK)ÑRJL„]¾vÜÉÁ<"ÄÎ×f‡$¤Ã“Óà;¨îÜøâg,*,J,â3Ÿ­x7ƒÌgG|ñíì)`щ’ |¦S²ØTŸøu„›>ÝmˆÛ>Ýôi4²;–o;%ãÌœÇ=€J¢´=ÿžbü)æ0?­ —‰á'„ÖâÃÎä|ŒÑû;jG(k~þô[ˆö_ÃE!cá¼I»ø›UíZ¿T…J6Ù6¹út¡‰È©±ï°)!žűÀŸÁœ–¬‹ÑŸk¢?Û °à¡JŒÄVÖôïÄcWøù³ÊÞ/-Ë6<‰Ç^ßb-;mŠãøØ‹M”4óèi l¢ž2ã‚¢$èé nêiÂ4j=M‹Aÿ‚iÐ;—æ\¶0Rý‹ñPÃþÅÅÒ&úIjø5…¦c Ç^L[AÈÿc¯¡ØËÿ͆iîw #Y=FC]QîÒ¦ªG ‘žBÓ±†m£¤à…'ÚÆ3F2óGC]a~wiS™ŸB †a3Ph:Öpìå?OpmgŒ½<¢Ôf†Ø«3·Yb/Áyþžõ{âM>¦5@±Æ"n=>9×~ fŽÕq¿µi×]Þ¾5ç7?ï†4ÿ߸˜×ñ$G89“ƒz›ê ‚t"ÉA½ qÛA>FÇÒ‚^ûc°‹ÿòil°Ï˜í&Àçÿ­ endstream endobj 91 0 obj << /Type /Page /Contents 92 0 R /Resources 90 0 R /MediaBox [0 0 612 792] /Parent 77 0 R >> endobj 90 0 obj << /Font << /F24 15 0 R /F17 5 0 R /F35 24 0 R /F22 7 0 R /F21 8 0 R /F14 6 0 R /F38 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 95 0 obj << /Length 3177 /Filter /FlateDecode >> stream xÚ­ZM“㶽ϯPåªÊCA‚Iå°þØÄ¾Ø.ÏÍñ+Q3t(qBJÞüú¼îAJCvF{AlÝׯ›J÷‹dñÏ›Ä_¿¹»ùú½ÊJÅ…µzq·Yäz‘'.NR»¸[/~‹~Ø-oµK£ýCÝK«úTn›ê+Üý•t·ûºõƒ‡¡ëjÕ,UTvÕZ:>ÖûiíÊmµüýîǯß;_Û4N ¬Žgÿ$CŽ—XÄ6͆uXŸ_ÇÏß¾“FWÝ×ý¾{Z:ùÅ~8ìýýõ¡ô+-÷û®Æc^ÓâVgiœ˜lq«°LÆS[²Ñ±Nõ° §¹%£™85 !-кS¥½^©õØîë]¼¼Í Ý=ÌN¥tç.­«Myhös3¦y\aQÿYê<ªž>Ò¥…Eº5Íi à߉JwU?,¦’Æ ˜oþ\Z(¨9øgíF®¥ßþ+¯8­b•ècÅ•;2aYþÌ®R«,XtÝ®æ6ÁE#x¤ö¸b{«š6C{¡Þ’.pÁ–®ÛjG»ßûw`îݽ Ù?”¾w]õ+¸ˆëÇ5sC¦üûòÖ$v8è®wÖè¶W„g¬ x‘ÂA:RÆ¡§Ã`t} õÝ:ÁIÅ‹|Xq¼“†_ ZCtÃtÈ*ic÷Ò’AšÂVs°ºFÃi,Sa<²û…ñªT!–á¾Á3à 㜞i1µ²'Át€°Å1¢¿¯weÓ Ä)5ÉÙð„—\:Æ›~6p›Ø¤æ%ôN“b&ˆS¯4OåN’'¯]ÂI¬ó§sÏY# *B¼Ÿ»Þ³É HpøÝ)ý«>í}”ß‹e·:îf6«Ü«ïÇfy«”¶~þèÝ-âEâRÍê-!6bä㎽ÅL¸Ý„ŒöѾ¥«îg#¯q^ƒE¼êfV€ Q¨À!¡éÔjZG_M'ïýì]UÎ, äÑ2yôÃJÖÓÁ2&ªþd·ðï0[ñaÖÆÊÐI˜é‰ìgpp QKÀWÀ'ê¯åWÀƒI u2ÕÇH~:H‘… üvI– ]¾wM8Ë7mÛœW_†È´÷Õìù‰³‘Ýý°ÛŸ—e]œ™0ÔƒÛ³ÕÁ]t Èï›¶|A"<aL'ºeô~ 85€ç¾Cð(=V´Œ'í©ñé¾ôW1–0ó¶©ÊùAšé ï¾ê†W(w © bÚJ<{¨V<_|„‘vÄ:Xo(Â5£›@ÍR‹°[w8Îm÷$ϸ2BýµpvD=ƒ1f˜š_S»pСÒ,_ü`Quqí`*ÞÜÔ«ÐÎе© Imºàš”A¼.×ëz`g¡”b&lÁ˜z*¿×ô­´N³z8[âIRd ÁûGåÍA5È~öRá…W%L-±1SrwkÀÁíi¶#i§œ–ë6·¹ºXœÌÇ» Ôþ#y6f³-\ ÎøÒúü—‘œátI>àÆW?M)_ïå±ôAÚ¥¼•†/ÚF>_ùÜÌ¡‘U)ø‡²;óQ(ÿ33f-(@ÈZŒÿ·ÑREò‡#(\ ©ãô duuZǦ”z>Í@ƒBrVÎ×+b—¨KµvЩ$¨ûÃgÈ‘¯ÚEøÏÍZnEÅôïÅ ªŠóŸMªaú ïçRupŤꀛ®ÚT]µ[ ÂËy$98¡>qªxVY'*»  °¼"Vé± ±³º±66Y>ù´”e.úµÞRݼ);úø¨øã£6C­1IeÓé´Ô’rq„ ¦*ÚË÷¼P‰nåêX;;ï§züÂþ"kðÕTÀ_#µ~’þiMN¾V$SoMàÙIy~Rç…ÿVþ”ÖOûªtÌmôÕùVû×§í Àf´ý2c"ìC¥6æ^1>CÄňqÅ2†ˆñj]œe¶Ê$ô§‘kˆí(âZ^ûjIçiíñ¾ÞÈj¯QN0ÕõÚy³¨J‹|ݦ´3ˆ´Ù„Ò:¡´Å%J«ûTm˜}ZÇׂiê‹’øtáô‚ƒQØ[áTB½,á"\qÞ¾Œà¯ÕÅ)ˆ¿@$)¢ÐŸD‡üGGavþ?Þáê endstream endobj 94 0 obj << /Type /Page /Contents 95 0 R /Resources 93 0 R /MediaBox [0 0 612 792] /Parent 96 0 R >> endobj 93 0 obj << /Font << /F17 5 0 R /F35 24 0 R /F24 15 0 R /F22 7 0 R /F21 8 0 R >> /ProcSet [ /PDF /Text ] >> endobj 99 0 obj << /Length 2821 /Filter /FlateDecode >> stream xÚ½[ßÛ¸~Ï_!Ü“ dyâOIúp-’ ´—"[ô!—Åæz…“¥=IÎ&ÿ}g8”,Ù²w-Å"K‘"?r†ÃÑÌ·Llƒ(øð&òåßîßüü^¨€s–j-‚û‡ A%,R:¸ßŸCÅàguǹÐᚼܮîd¬ÃßžÚ¼*ªä%•Ÿlý-_ÛfõåþןßóxˆwB0nb‚ýG C„ s„q¸®ÊßV" m™[Wó}ªš:áô…m«’ÚŸŠý6wk€J[QŸ]+fµ¥zÕ/:e¾|ÊêÖ¿~ðÃ-=¬‹¬i:¨ß#®Êþ‚2õzëJ%‡òÝý›?¡ÁÒ˜%q²$áÁz÷Û7L€R%“IÔ6xxó>ƒ­ˆã!Øç/Q°w¿“i<»ž;øGÐEð O—c$‹Lz ÆG'<âLý¥LMah±Xê%ËÐ\²TÈëuÑiw¤U›À¨M·E‚¥IêmöÜîÌãüj<&-çü&_ uºª~¯Æ¢ù}y­lýn-QP¿_7ÐÐ|,rq"HYj` x" ¦$Úg€Kþh.. *2,’°¡š÷g‚@¤f`@ þý"™pOµ-Õrª•Tã«;Áeø{¤#x’&üí’»^P”Tl©@<)BKµ–ŠjÔóã 'w3†0e”â”09“\Ù´ëòç¤Kc¾ì\0Ÿ‹«¡.œ‹±hsÏÅõ¶| ÍÇ:ï…b_è‹7ÿj¨ ›?mîæ/QP¿a7ÐÐ|,rŠCƹb&Q€3 òkp*vŠ5u×}ÊÈ—p & K@Ä/¬ŽT_œ‰˜ÒãµU4ñ-9þx>¡…w¶\›ð§Õ]bÂïî÷OؤÉ-ž÷‡>v3"¹Q(w›ÊBráÅPîeˆ—C¹ùË8Xˆ¦˜q¢ ŒNRæóŒûGÌ0„Áï'„ô?À^„³ha„ þñæ YaœO »ììmýÐÆ–õy¹ö£!e¨}k7GFo(Oñ¯Ê¦ÍüÞÏèÒ ìJ醋/@¥1dš2²t!†ËuøTf¥0¢V]G¶ºSa¼_%0[ýƒ;¥ì˜ àT0¥ u,«òn˜PÅQ—P½…Z‚ò¹ä ÚT'c_T‡ ÏØ·Úªvš¤Q(6É:Ê9¥H˜HÌ‹Ðd;;%¨ä,q׋;¿Š¬Íh†Œ²H8ÙY^d_ K3€ŽF p£”aVø ú­j¨Ý‰(…O ¡Ôƒ Ö*¼_Š<)ÁR÷MY£ÓèSXÄê³PèAù,Ž;í*Nö¥ŸØIy|vÞ/ù­O§}ZÛìÙ(}rlBûÝ®÷­²7nÀ3ð^»H'n]Ä1|lÒ@+ô—O¿IùØ­ç xî ¤‘£m²sp7¼·óçì³%ï±SÔŠA¤BÓÖûu[Õ×çï|“4æ6N6Óék!™Öj‰ÓÄ‹NÁ2:§µ.Άª:J˜âËò”ÆÒPõz¨ó¡ê‘h3CÕE ê÷ëšu>ר/ÿ¯ù»åïð4šŒ†&ƒ¡Î._‘€«Ô@À«öc©a_uÞ°D›iØ‹Ôã-44ë¬WS‰b ·¾CX¼ñW]Øö¡Ps7}¾búmZ¬™¹H~Lh–$ºNâ>ㆠ¢j¦rjÎb%Ýð)¯Ï©‡1|Z“ë!¦ÒrtÄf,8=áyO¬µ¢$OA8·D””³D§7¢¬ÔCõ¢x/oR÷!1Ò!P ³‡Ô Ò•Ä!DÞIÊ]‘º.P¬‘t¯"]U,˜V þcñÑ¿êÂá‹6÷ø/QPlo ¡ùX†§#ˆ§Ê0.oB»á¡0Ò!JÉ— €àf¼¸ðn`îÔÀ<5:"QS5u Ð˜S­¢@ ÿ g.:=kB¾’ÉS&e\߈É€ÍLêAêxIR÷ ˆ“ºËèϵºx“§$8G‘’éý«j1Ï0áÏZò°ž¤ŠÛÈvO…ïE…œÊsÓ ˜&=bÍÒ(“lb’|0,}ÂÐt¼¢µlò¦ÍËí>o³º‡uUâU‚í¾gÊ ÑñKNÛxšJÁ ¤6#Žç˜%šV¡A·ºïSÀVGRŒÉ3Ç©ð«£÷ðY‡gùÖùúìNy*hlìºÇðW@ ÕS1zBdx‹-…E ì/EûX9¾æ‘†ø½„~yCúÐ W"yK-¤¶îóÚnÞÙÓ>®x$÷ÄWõÐÚ²»ÍÑäu}¾ž-ê裧:QÖ°.ÊÕѽÉ7ƒë0Ú_‡ùgVf[»¹úîË=êH©$üø÷_è¡Ù?‘Þ«ºm° œÛ÷'¼Ç’¯‘ÒÆÎ-v×oE+Â×`’ðÒ[%6ìé²öi» O60¡&d^=ËØ1¥v3>–UQmÁP”¨ÎuÅÜ6D`*T é7Ÿ¼‘ÀŽÇ °ûéS(„d1ïÍ׫õcOz«3Ñ`Ê}÷¬ÜL‚‚_âúóSÇ«žG–p†# 8šÞi6¼¾\û¥JVNÍŽä½LºÙmÙ1Ñ'nE@<¯)mÄ%‡Oîj4ÔUáðühñ]G›×]Ϻ¶þWå†öÚîÊ­¸öÞ†ÃìòøxáQø¶Ò*Ä£ÒÚ l]Îê¿xŽ|–`Ps´7>U¶qvÏuµ£§w>ÐünP ؾï®r&´Ù£µ;[%î?Ž&ïŠZôüϚ0Ö}ÈöEëÌ“3î÷ÞüÒÑÕ’ñ+î͹ó-äF2qìÔá/¶ïyOôµÿC ´îçAð@{’ÞÖv® ¿Ã;o×ÓÙ‚U!nDgÀfF>¾¼Š/¢³_ñbä³`]äsµ.Î?ÂDP.JK󿫑Χc¹ffK”ÓoÕrí̆šH¯"G$K´ >cH˜¸[aÊt Oö¾Qc>H û. ûò"Ë T9Ý2–a€±ØÊ®†º`fcÑæÚÙõÖq ÍÇš65_z¡¡_wƒSxÚ *ðO°m©–SQRÁ!÷– “om’ð g”ð{ï~Û—ÍNâŸx—Y]±Øè®Eº`s#¹æšÜåôV²\;³¡.Ø›„6_kor½ùð‚ø4–7Šv`s£ ad,E;/C¼íÌ_ÆÁ8®ÔÅëx)5¼³%‘íÒ8XǾzÙÓS‘¯»8_lvy™7-ÄÞîròá4r“xEÆ]ñ!úÇS‚Sç¶í¨G[B²ß­ºGr>>žµ$Ç7s> endobj 97 0 obj << /Font << /F24 15 0 R /F17 5 0 R /F22 7 0 R /F21 8 0 R /F35 24 0 R /F34 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 2149 /Filter /FlateDecode >> stream xÚXI³Û¸¾ûWèªÆâ7Oœd*•¸’—ÊÁãDáIS¤†ýüòëӸ豜±/"ÐØzﯕlΛdóçW‰|ÿøðêÇwi¶Q*>äyºyxÜ”é¦Lª8ÉòÍÃió!ºm÷*z¼mì1®»ëm»Bך<Ú_•·~þñ*çw©bçYOÑUëàô¡ˆÌoZg»–§7]oÓ2ú´ÍóHŸ OïmѲµÎVŽù‹ö<ºêÎÉΦ;ï›Í.¼¿SYœÁ—¸€ãgؘQ÷ˆß2zÿö tí'³,K½$;VåïT‹¾ÝV5’'q‘—K¤ûýK¤ûlTÁVEŽ)šw;{½5†ÇðRckíI›H¨íäVÖµ¬áSErvpæ$ªÆªÒ¨Ñ"…k ŽÚ‘ ‹=+Hš?¬€T_¿ƒÍp;ošxŒ·»<Û_X®ÉUÌ?o}‡w}¶'#7ÜäÞ3å±ëI„Dx‘KŒ¦^:ôá! >öÝ•=@eRóZ<¤=ñ |•(ËwÀ÷¦ ºÓgëQ‚çm¥¢™_•qªò,øÕ!>ì3f;ßî”Jóè'ëêÁQˆ¬¸J‹8­DVpß ¬yÕ¨ÛèWd ç§Þ~ÆÇÌÃÙ“vÞÐt·+š­Š‡×•|]z8̳N5>oANÝ[ #ú%:²_ñF`«Å-ì¼dybúG]‡[%Lð … ŽädèöI €p NLó XÉw 0º:qØÊ€rÜiÍ5Gÿàf>d®#ŸSr*îô‰â¤N±.$,Pib h¶­›cÜ‹L¾ü÷eàÊ xãc½?\$EðcðpF.9°t`¯òþÐ2ª¸Ú«ŸzëÍ<Ò¦çEc”äõî†Ü-TSb¾86æúUžwò>3]}Ó((/‘þÊE0žI0ª½¾Ç¼q ‚M"»‘1Tä'ë/sÉG0ý7ˆù}¶1_L=øŠ÷wßÊÁ÷)º7úô Î1©†¦½qCüYRw!RMáäµWÁô§E¾ÔÙ?¥&¨4ºP]¤Á‰—4χö¤¯èlzÝ0ª5ÔÞJϪPSajÏB¤ Ç§¦$ˆdIFµ†zͬç•y9t ^Zó´–^ï’1fGVÏÈÆ<9Ü'ðß|¢Œßb¤„Y ÏËGZKP'(=ß Â7Lè@9¿¢šjJ»9Üe¥üpÍôb¢*º0…˜¢ L!e&TÅ´B:þ’òp¡n0ÆÜ˜Ñ<É™;°h.š¨Ð¶IK·µ¡Ä«¢wXÝIg ÝK8SbUKÑ?Þ?üð?yp§a•¯”KÜ0³×ý3o™CcXC Å#âܸ5ÃsÉ€Ÿ“…Ó{Ó剄>/º?᜷µã…_’<1ñ$-Á«ægA2«€ÙİQÄY¦X“™¢rM—wmÝL$HœH @t]3a8bW…°-D+³m5ùʾDJ6ä!}ÜÀ! d)¡…;Zù¢ƒÝz¼† ¢ÅR(âÔRE•ížk+®vRN¿x4p% iå êvM” `ÀE!‹˜Ú-Ü*ù1ªñ0TÕCqÁZR¤äÄI³nYvÊàÉK4 ÕȯÄõKx–%å:z€d5‚,{jfp+FXb( /—8sÇó²,û0#Ç¥Iuÿ(ƒV 8g·¼’—eEGð¤E¿+ʈ«€…CÃRA¾cHŒƒýóD ÇÅÐ’«;þÞÁbx‰íR±]€±¾â(ú¬©áY#ä!É!  kþ¿ÍöIô—ïfK¼–’1‹4<ŵ“›(ßÀåmç™Ò›ß+o²Épy+‰¶jÌ>D¤xs®FòRU!yažIr;ç¡ôc>ÙÓϼ‡ÛUr ÞþÌÓ‰KÜEJ‡ï¬}”…‹ –i­0r5þÒ‘€'·Ú£¼íZŠÇ7ÐÜ¥”ìÓdY¹±Ÿ 0@ãIg*t¤VÈvŒMpÿØ¡íÛ¦WalG ³¶52•èÆ“ŽOþ6hÈÑz·&‰—±ÁªÄæ°Å]y@:Ç Ž:Ð!â2¹/Ä´ÑA)è€ÔÉP …Ý4ìžNf=L½|OÏ­Fé;ƒ+샺œïÂVéá\×ô˜XΖã!€@êñÍ£eèˆÉãd¸g4Ø3žFãîfM2[P®¦0 $ç×Lë |Ü>ìÖZ¿†xÃÍîiÐC)t ôúâ4Ra´™P £X@ÑÔl­¬ØQÊ—À {Jö‰rô‰²bŸ „,WR*â¨]"_»õ‘›/¡)™ý nL ¶›ÌÎ’¤ÒblÄm¸£•qèâtpaïËV÷ÞŸþÿÿ'ojüÿíSÛm÷iô„<-¹·‚w¿ãß”ÿ`8£0i®ý„Ã*úÙèv÷žæÐð*íÔÞ»°…q3Œ9Ã?zD [¸,gÕ„·3þÛb±øþùßôÏ"ÏÞ¾(²LÓ³ØUWó¦öFÇá¿2‹xŸÍ´,Í» Wø!ÿ½‚ëtöÑßôQöiß*âO€k9—Eÿ4Îè>x¤ˆKÃÆ»Jþ—áÞéÀÅÏ`éj¤}úÜb5ÿNP€³pŸ¥îØ‚ —b¸<ôÕÒ^Í{)€ªз»vLÌÖ¼‰Ý¤i«¬_Lã¼Ú³©ZlúÓëÿ·fS¹ endstream endobj 101 0 obj << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [0 0 612 792] /Parent 96 0 R >> endobj 100 0 obj << /Font << /F24 15 0 R /F17 5 0 R /F14 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 105 0 obj << /Length 1727 /Filter /FlateDecode >> stream xÚX[sÓ:~çWäí8Qtµ-ÞB)p †™<¸ŽšÛc;Í„óçÏ®¤¤Iê–æ¤ŠRJPÍø —–ΔD0A«ÐD áµ~67¦1enZ<¼cÁ1I•ŒxLxXðý8úDèýOXJ8Õ°åN¿Â JMð)t4) ˆ¾!3œÌtAPËm`’“8‰·_ø3B2¹=1uT'm÷(MÙy1`‚|a;ãÝÊ ŒßõD€ÅÂÎ#÷­i@¸ÌÊ|wŒGmnA¡ý·æ´S”ÄúˆkÁ‚pqÞçšâ„Ò=ÏF\êèo2ð‡ ½'þ‰tÃç;°Ë¯.‡.ï‚qÆ Ïv×¹×I]6wÜjƒzNýÖwª(‡ÛáÉÂV]‡ËX,þ唓 £„"€à#Mø=:ȇép^ÞÚ6›¨>š=A‰5¡@ºðE „PûGDLß)]t]ݾÛÛ’*‹j5_t}Œ ³È ÆkûËŽ·L1ãUD¥ü¸N4†,ºeÑ‹›""N÷pÃ\„`ê{D%Iˆ˜§$Ð'€DÄ2ºÏ·Í‹Ïªî³+‰‰†ªýX¦$„ ¶=qöéó+È!Ò¾l›Ë 3SøS­Ï—8ý°Ü•rHâ[Ó@„еÊ}" í3•Ç‚H!öcÈâ¨39²zÎ25¦&/|Áÿ@BûQ*úi ú9à„L@G|ÜEV¾wµ¡yÛ@ÀL—¹Ó »HÿcÄBô9.OAì-¯½3¶4K¬vøæª.¾†í³jUæ¶èåÓœ¤|¿0(pÜÌZÒ‹)v!wt<ÛGqô*k\x;öãê¦[gÛŠ‡’órvúBuã…-œ°D†örÕùÒ"à´ë”¸¸´žNEëeÓa¢"G¹ƒM]§ûfx&³™m«rôu˜2PW˜m›)Æî¦R¢Tr„˜:±ÏH·TàÔ0Lutkûë%i,ÿ\œï(}i}NÕKhJc_JF­]Ö…ñëzåªôë‡J¶4ëªù…"å»îÙ²s»>Wy@Aö¦-ê(s ×´}žˆ„¥õ+lÁ$N²É–>ò竦òIs¹5¤gUƈ>*@õ~Uš]–©G³l[ãS0s}1áÑYx^˜ßY/jÀc‘<ŠZ|Po/§ÏŸ#`T`\Eà*ðªëŸa^U 6ÿmVáf^dmë—…½ö8⤊‡!iTVe2 çA§´îìÒþÞÍ~÷€‚чÆú`@H ¹05ÜÈ» ;F‰ÄÖì°SÛû9‚q5ùøZËQʹ ¥ær(¨37—ÃëÝÌŠÇ? úÖ´S¦µ|’É)3Áå¦ZºâŽ\Ð ‚u׌<ýñÌ•^¢s!`byt”HHr79î& _% i¡lی̫Û1Nݲ03pHÍêcžôâHÉþr…Ñã`Ê”èø¸ù¤§óKgƒ®äP_rè^™¡Ñ ÷»Ùgk_‰ŽS’$êѦà?Ûàñ«7+ü…ÆõBÅ`¦bO™©ë‰G”Ó§Dé ëã/¨Ž—½n+M’4=ÙëÎ4KkH}¼u¨»Ü~ø.Îsþ¿á‡2ÑL±ƒÑLJÃ4Þ©w}Ù#žÃ”ÆUïàçäþNêå äÏìRXòãAR3››uV¤jæ8¥ãÿã)ì¼6·ÛtÌY¬Ó gñ¤qf¢‰ýæqM˜fOˆ1SP0Ô½³ÿãÞ¢®ÈÓÙu/T½®‚‰~JA:«£4büW7YÝö³~ë?×c:8}¤­VMn oÎ )M·-º÷\M@Ÿâ* È0„£*NqõŸª~þ€¨fìdD×ë5ù]Õæa0A1úÏB߈56#˜Úeœøãœ:Ÿ>û@§ì» endstream endobj 104 0 obj << /Type /Page /Contents 105 0 R /Resources 103 0 R /MediaBox [0 0 612 792] /Parent 96 0 R >> endobj 103 0 obj << /Font << /F17 5 0 R /F24 15 0 R /F39 106 0 R /F34 19 0 R /F35 24 0 R >> /ProcSet [ /PDF /Text ] >> endobj 107 0 obj [319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 319.4 319.4 844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 741.7 712.5 851.4 813.9 405.5 566.7 843 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 786.1 813.9 813.9 1105.5 813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 580 591.1 624.4 557.8 535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 557.8 635.6 602.2 457.8 591.1 613.3 613.3 835.6 613.3 613.3 502.2] endobj 108 0 obj [514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6 408.9] endobj 109 0 obj [514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6] endobj 110 0 obj [550 575 862.5 875 300 325 500 500 500 500 500 814.8 450 525 700 700 500 863.4 963.4 750 250 300 500 800 755.2 800 750 300 400 400 500 750 300 350 300 500 500 500 500 500 500 500 500 500 500 500 300 300 300 750 500 500 750 726.9 688.4 700 738.4 663.4 638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475 400] endobj 111 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.8 312.5 937.5 625 562.5 625 593.8 459.5 443.8 437.5 625 593.8 812.5 593.8 593.8 500] endobj 112 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 113 0 obj [585.3 892.9 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 585.3 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9 892.9 1138.9 1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 1138.9 1138.9 892.9 329.4 1138.9 769.8 769.8 1015.9 1015.9 0 0 646.8 646.8 769.8 585.3 831.4 831.4 892.9 892.9 708.3 917.6 753.4 620.2 889.5 616.1 818.4 688.5 978.7 646.5 782.2 871.7 791.7 1342.7 935.6 905.8 809.2 935.9 981 702.2 647.8 717.8 719.9 1135.1 818.9 764.4 823.1 769.8 769.8 769.8 769.8 769.8 708.3 708.3 523.8 523.8 523.8 523.8 585.3 585.3 462.3 462.3 339.3 585.3 585.3 708.3 585.3 339.3 938.5 859.1 954.4 493.6 769.8 769.8 892.9 892.9 523.8 523.8] endobj 114 0 obj [500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 115 0 obj [869.4 818.1 830.6 881.9 755.5 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9] endobj 116 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4] endobj 117 0 obj [571.2 544 544 816 816 272 299.2 489.6 489.6 489.6 489.6 489.6 734 435.2 489.6 707.2 761.6 489.6 883.8 992.6 761.6 272 272 489.6 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6] endobj 118 0 obj [693.3 654.3 667.6 706.6 628.2 602.1 726.3 693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7 667.6 484.7 484.7] endobj 119 0 obj << /Length1 1636 /Length2 11007 /Length3 0 /Length 12058 /Filter /FlateDecode >> stream xÚ´Pœ[-Œ»K€`»»»Kp·wwîîwww—àw  Xð<®ÌÌùÿª÷ª«¾>kûÞgíCA¢¤Ê bjo ’´·sa`adæˆ)ˆj±0˜™Ù™™Y((Ô,]l@ÿ’#Ph€œœ-ííxÿa!溼ËÄ.ï† övYW €…“—…‹—™ÀÊÌÌó/C{'^€8ÐÍÒ Àµ·9#PˆÙ;x:Yš[¸¼çù×@mB`ááá¢ÿÓ b r²4Ú€. Û÷Œ&@€ª½‰%ÈÅó¿BPó[¸¸8ð21¹»»3míÌièî–.3ÈÉ d ø£e€"ÐôwkŒ5 K翪öf.î@'à]`ci²s~wqµ39Þ³TeäŸ@vËÿe@ø{8F–‡ûÛû@–v:MLìm€vž–væ3Kà“¤<£‹‡ =hgú‡!ÐÆÙþÝè´´¿üY: )¢ ¾wøwÎ&N–.ΌΖ6ôÈôG˜÷1KØ™ŠÙÛÚ‚ì\œþ¨OÜÒ dò>wO¦¿/×ÚÎÞÝÎû_ÈÌÒÎÔì6L]˜Ôí,]A2âÛ¼‹þ#3¹8˜™™¹8¹ GÈÃÄ‚éjž ?•,ˆß{ðõv°w˜½·òµ4½ÿ!x;Ý@'W¯÷?ÿXX¦–&.c¹¥Â¢¿‹Afá÷ûw²ôè2¿ÓÀüÇïß'ýw†™ÚÛÙxþÇüÏ+f’RQQW¥û»å+EEí=Þ œVf ';€ëýàûßq”€–×ñ_;3{Ï_å¾Ïé_%»ýÍê¿„ðß±íß™ Pÿ‡èzÌÌ&ï–ÿgºÿéòÿÇò?¢ü_‰þ¿IºÚØü©§þËàÿ£ÚZÚxþmñÎ\W—÷-P°ß»ÿ5Õýµº¢ö6¦ÿ«“q¾ï‚ˆ¹Í¿Çhé,ié2U²t1±ø‹.ÉÕÿX4K;’½³åO €…™ùtïÛebýþ|8¿sòOè}yþ;¥„‰½é[Æú~Ã@'' 'Âû%¿#€7Ëû:š‚<þd1€‰ÑÎÞåÝðÞœ/ÀÌÞ áåä0‰ü!úñp˜€ÿAÜ&ãÿ “ɿѵ2™þ²˜@ÿ€¬&³@6“ù?à{RË@N“Õ?à{Z›À÷¼¶ÿïÔf²û|Ïkÿøž×áÀäôøž×ùð=¯Ë?à{ó®Âÿ𰉫“Óû;óç¼ÿ_øÏG ò™ ¬.Ù›ð[5w=Ô‰à»3N ,Pj¦Ó0x¯:u»>¡À¦ÐÔ~ ÜvºI@ÛØ— ¾^#~õ>ko‚ ëHRî|öy1LP™;ìDX™ý02St&Ò8LOÀ &|äóêè£ñÙ²¼W–"ÏÑ•E©óÁ}HÊ£q¸b}2téPù¨–Sñ¥bž!F=Zïsé7Š|ãìE\RB8ZŒ+Ôow÷ ¹3¿‰eè|ÏcØŠ½uvXc½6«ÔXûðÈñtp !ï0&ç(½ESeq–½ËJ¢·–s¸"âÆÖ‚‡å4ðHý”p‚˲ä{1ÉûrÝM²œl4Lf”TÄpÞ!eRfI5dãe†Ù–þ¯d„ª‰Zà¦tÝýD}çê½´>‰q¸¼,1ß§m‰î0÷z²ý8_a˜*sRòÐ)f`[dkŠŸ>ÌO©æûJ¨Œ;Ç4yëÿÎg,ùÅ`iæSâb«·Å;„èÁ£4ýl¬Ôtœtù㵸7Þb\·¹ë;hͰ‡'|Ö…õ-©…ëg0½ +Ž(ÊÊlî1ÙômæE,[guÍYå'S­s‚¹a!”…×ìžBëÊçì?@*QÒ1ˆú ‘Œþ†³SB_>p_äðÚŸð¶ªt-OÒѵÍ0`6/lù/±§Á5Ûܲ%.~8t‘ç÷£$ÖÌ ©r—ò˜c(Áõ;Zì*dNç}è³r«™£ ¹Ôw®wT!}­ !{‰]ô¶¦<¾BëÈù+I_%8Ifñÿ’-hxÎäÃß™cTô;+ÐX¨s„“—¥3œƒ³ZhÚCpyÓv“[- îé¹ÂeÈ_);Æòk$ʈ,…|<}ävÁnQQžJŠ·òH‘it? »YGŽ»´1JøxUöêXfñå(Ö#}’#fâ~Â#½‚›C+—YãêY$­Ì)ÌÆq9Owç£; ·á@ìE””DÕLJù6e„ÍÍ«ßñùÚF½ò#l[°LÁ­®{%ÄǽIxJïF¥xså¹=[uHÎ¦Ò É’4ªm´ÎGÇÈó³ŸÕLy¾‰wŠ¢ÐCÖtc' 䩿 ,/f¨°zÇ)°Ì'ð\?ˆ€*3èÔ™/ò8Vèd_IlÝ·X;É:í¾:í’ûDýžSÃø!›œ¤?ë]©Ujôû‰}˜Q*ų¥ê`ÝGéUôÔ|£ÉýÆØºO².ñ³bU©™_¬©Y¼ )çy%á€9ÄQœ÷ã:íãÖÅ4¼9DLzUå֒΂ç*Jª2»j<=£}å¨à Þc”½ÍöN<;fcžP[ý®«ŸôgLkeÅzÚäœué>«KD’´E+ä:§Fži`Ù•¯Ý«ÀÕ»£Ý~ðb£*-¡œMá, ¾bMÛ€‰ì¥€¦£N¹Í´0jÀß~cjƒH±¦ÆOŒ³NGs¨Eq1º78| ÃÝ[¬×“þìwªix_þ5±é îÓ„¢Õ‹d AÖmÙÕ7}”ÇqÉýhvÇ{?3£fÚy: ]!8þR™aÐ!ð;Ued†eWz;zª‹Îö3”ž¡¿GŠBiic mO-j/áùÚ)]ôtŠxlt#}§ü™]rÂùDOwïWðû³ÜñlRæ_d•Û®ºÂk¾»Ç«¤KAã¦2 ´ðô«Þ#ý£a7Æ~v8ìrøËDk‰~m›‚Ú_Ó0F,â÷ÆÑ;±øXÿâr¹ýÍâÈVvµ2¤žXZaøHâ->”]ùáƒwÖ‚Ç–Ù]«çh`X˜uÑgÆí®Bø%¡sõ‰cúŒKvçl¯¾”—CdÿNd)¢¤‚~›ò‘Ë™"/U1éVSÈzù˜2N¨ìÔI—á>b=ˆ ýY­¼1óoÝÖ‰úÚ4KPN«wÐÜT—‚Û;\Ò¹yFàC±°]þTC-4èN{-ó±¹RãKµÅ:~YbßÓ¢Ô¡%¢Ä:wÙr¡}—,@v©C¥{˜ U$ŸÅ^t=&§Ê L·„i#:º·‡œKøÂ­ø3pÐ÷þ¡]P°W”[ʦœ4ËIÅì9·ý£77–ìNNÀ ·½ŽÏ¥÷‚árÅQ³Ç“,@;8Ý…·Ò…S†:°ä£«’¹[/ÈñY&3¸"Û©õÉÍ¢ÆÂ“dßZã«êX W˜ ⃚ÅP-ékÓþlüó¯àXê$MSgu™Ký§… 4ŸèÌSÙ=í ”J)ÏÔVvSj´mŸ}‚6oÒ6z‘}ë±n „ŒðË+‘K™§;€Æÿ=í¡­Ç5èWÁµ€ÞÈDÉã[Þ hKŽ1wÀlûœòR†By]wSt5ÆJé†%‚CìNzͨÓe9RžßÁ&ËM&âÀr\&,?Ÿ¿)}­Ágñ¡Y6½RŸÃt™ÏUu— wWó-‘ %b8LxK=`ÐÜø%[q¾€@¸³Îã8Û¨VWT2¬g‹^žâ›­:Á—®cÌ&QP@-y±½Ç.›ínàFƒ¼G·@·?ú5$ÝLý-*¦!Oƪý&ñ)¸1!Ƽ3ŒØÒXùÞ§¡ê~ømz'o ? ¡Ó‘ÀzÐ/œ×—ÛWvP 纆ž§%§£†Ò"Ý•ÃÆ­PsßÐ?B$>ÕdsbSä˜@’ú5Ç#¦E~ýt ‚˜H£®ª²d^Ï€ÂG’ˆ®ÈΖ¤¸'§!žMîñôÉÍA~ðbWʼn~{*#‰F]ôø¯V¤At«cUrÖ1ÈÊ8_&d‚*¬¾¾H„þ4V£¹@­EÍ# mlv?Ùt{nÜõ!Çad?M¢^pZG°|Ÿqk2ÞÓs‚áA©ÜÑát£«˜€©•;èL™¦+#\熈ÃJ%xôŒbô›_É¥ ìU/Kñ]Õ“9üîDœ=ñ4#kŽ”Ý·Ë{´..„û±|Kuý½Ÿ1õœ#FKɈiý©»Ì–Ǩ†{5.johMCœR>pÒÇpñq¼*/Ñ xº£z˜ÆÇ¥N1i͹/$*jtáb]ä /1pˆÚ .­‚<2E*™qúC ­.ÌgÃsæÒÕïPÝ¢Òº×]v¡(ûCN³c:›ûgY²ÿf,ø3ú¢ö‹ÁJÃÅUjßtB_ÄÅ$Æ›MËJl`Ñ|0¾¸{P©AåG¿É/:ìU€‹‹æKE´)A¾-”q„R¿ð/&LyÒÇ3•tD±“¢¶'- \³HrT3Y/_CiK$Ú;ñõ†/vÎ0¡Çvpžê–!É£-] Ù·õã·ª!]oÀ•çKF$7 t¡ý\á¾j‰$ÏÉ5=Œ¢$c&ž³HvqÕmZPžš|–P%!ÀþªG¼ïŒé.ñû桪võœ³£Rs91S™ùG#?…‡ ågüR„¥Ûj´ ?Q‹=ɦ‚mRV½v}úÿ…za'uŠäwÚáHm®—Õ˜µ£"ÄzU!Š6KŸ¯Q.>`ºp¿>ó?âs)<~™çÂqŸµkþ8‹Ö2WáÎʾ…¶ÒgÊd|!î§KSûkÎ^šÏvüº)E Æä 4@šB¸ÊWÝå’t„ žÆ ëp|ŠtŠõ8à뮉Îæ _ãn•µÌ"Í—& {ÿ»WÒ/?zý¯Ë»õ`ÉGbø<û«á ´òœƒc)yTÏ µ5®k~‰õ˽·>ÇM?±¦‚G[m¼ï }FSŠ'¤#fÁß%|Û˜½q­­ä? ¦!ò鵿0J>o$gæR€'K ât`YõÐS‚]|P§œV­ª`F=ÍÀ®LW­ž2ïÑÛoxŽÌ8Ûœƒ¢³àf Ã"/mJøÍî M7<9~›Ÿ~i*6¹”ÏwF$5ÔSWP42¬C&Ò”ˆ›_Þx9r”hD…èU‘¯€| [&÷Y׬ΈZ¸eRRl„1˜Ma£e–»;ø|2ôº1ÒJã»Y#{¢`N:OÎñÄýӰǼRÌ™U¬™‹^.;u1Gnºsz†&ï(%œ} é eƒ… |À¾£2µ½[†XË$[é׊_D+  ðxx`P<ÌþŠ=ÎI¸LcEø©d ˆ "Ø{¾ÆäUÎSò`n§EÜÁ}­¤(èåçwß+°Jž†\³®Rò!°¾ÿàÏ^(ùvêìK«õ:¸"WbUšqcâ ïï—ÁÍß'¼ߟÎÖRhÕ~ÈšH‘ÎÃ¥8}Eîåo0Ð !h+?(¯¸ÏóË3⬱/ô \¦™!V¡gšZ[âéÊ®5cW¹g­¸ŒÓjoŸD†s'#B5Tñ‡әt¥qÜÝñ\Žaî‹R¯x+YO9ä;sŠù=+o6¶óœŽ¬z2¡þ;iÑ`S½çE¤áÂ@6š!„#71Å{fÍ^xƒµ¡ —ê»ÊÇÆŸº~:ÑÌšPU7€˜ŽŠ³w¸EkúmFÊ!,_pôÓØë\Ÿà¾Gs‰VãS‘BµËڽꕹ!œ¡~ssHdÍ)ƒÔ„ÖâƒWã1”O"\¾™a¢“¾„TÂú6ÐqýK¬y|©-ü¢~³‚]áï487ê:ñ¦¦Û5yãJtÿ“¨eÓ½ËU•j¾u©,!! ì †êî›§ÁñzõïVóB[¿L£ÖèãÝÙpŸ(èYïY“4e•‡"$G;Sê-Ôõ/ž×­÷öâSFj²bqP7Òa^*ÀÛÑB¥—†×Âåd´åÓˆ ‘/bÂoÑI Óüºq1Ì3Be¯ Q>µÓÛ8ºrÝëóá™Ò˜ßXØAs8É@è^Ò Gƒz㥫ºžíÕ1xÚý¼·s§_ç«?}jxy[Ñ4 ãE?õ«{¡ŒoH_¥jÅ¥Qjs’³»Èw5£Õʃ7#tÉ\(ÊàŠ-}ql2Êe ÓT# ˆ%z"ؤÀqQåØš%!R6ÙO° ï–ó†Y¾Í‡”£º6 Ûöo‚gÀs3 „Yø¢¢ÏçØ¾:Ôùßpð•0ÙúÀÍ"àŒ*nmÝŸ=!Wªvzõ“|å™áíwe—Œ2nW/wðØ65ÄDE?—Ëö˜bq6,¯Â£ÖcØ×9èÑa\Ø@úµ¹‡ÿùô1;ºÉµ¥…û•mÇ!õ…]Ü‘>i¤‡òaU—Mév×fÈe‰ s¦¢¿M ‰ïûEâs ªv²¾¸x½+ó&l!Òb‘ò‹®€WÀÛD±R>­œ˜ºc¢uXrÐ>Ù –Ðwëö:DdøŸ?ž¥TˆêF5e‰IU´¹®J5ß:7æÁN—FêÎ".3ö™é„§Õ6ÕF…nq¢‹Ö/>;e+=<ýÚ¹ñÆ\š |;„8.ëð~“ëÒ8¿*šòg“ÅÖÎW*|£æžE&Ê0–èU>“Æ8„Asa0ãüþñ|)Pkr‹­OXhÐá+¶¯ÿzsP@Ì:Cj.V¶o¾/)Ë=÷:ø:9Îê}Û[¢k‚†Î= o®5Ñ–‚Q°ëÝ[},³‚!Y0?QÆ,•ý¥/|÷øSa½""o›ñbGpP³$ÛFNIŽ!5w/¯‘‡§†9~nÂ3 Ôf¤¹ä·–ïY?¥•u«±fˉ~’4Ølf!’‚Q³ÛþDAÅæ[¿9T†Z— Ñ<æƒ:¹¦c"Ê1«ÎñáçO½%¤µ ±Ý‡ýzLž‰5è­6,¿”]M«G„Æ‚Ì0eëWÅ }þ‚7ªæðl¢×JEa¾Q°X}NÜm6ËEÒñ?àED9ß´ùÆ”¢ó#uh’“uýÎBöà…ò 8U.K‚Ó~;AÅhºÜ­x•AåS÷÷ ÉÒd°=Oa/ |ÂPûü´<õcÓšg8mQ'¡6Uuîv¦N°ü¦P}¿=”Ò|ô"1Åc‡ôÌy£èà šßÜ:/­eyž¡·ITAÃ&þú¥¿x51ÞRÇÏJå¿ cFÎŽ~°*1ØÏ§‰ŒjÎ?ú¡§bPA/Ôpé1Çf ß°QºÔgô° õj÷] g&Ù,¿ñƒ uëÞ«VQ´‡à®ÀŒ#¹Â˜ºÆ½ÙèÏ­Î>Ï "XµT)Áf¯KÉÞAç1ØT\쵌0ž,°²¶3ųU&ÎԆÓá$u‹H À0ÁÌWö »# èAƒø‘Uˆ˜ Ý-h$»QüUô\®†9˜i†EѲ¾:O±Í)&t£w4ZÔ/?ãD ³úí,x‰ªìµñ,NÓ¾9aÕ2ø®œb—ýø`ÙNð©à6§vóWÆjƵöN„®øº´.s™<ô'žEŠ„YØÊƒÄh´~Ö]Ç'4X¿OŽÒÞ̀«§‘#Qì\Np írìä‚Yaè•“_aÎt8OˆS¨­‘ôÛR«x—ŸI;ä6©·áÐ_Q?§_ê+ ^«nÂ*»5£ &5Q‹zÈãDö¦Ë±ê‹ÎUÉû!l½˜¢ÝZÄSú“¥>ÜÂoß+2ŸîRôÅ’L¯Š’¥’¦ä§ª5@†ð–|°ákºßc]zQÐD’¬å€| ¨`JƒÙÕ'|¶T Í_V²H·…ÀÂêÊ ‚–[ºEåêj)EÌL<°9;!ˆ9`Œ—BÍ `NiøNetyM+òálK©ÈÕ*ߤŸ»˜B£o»ò©Ýcrd­ß8¹|ýågÈ(ŠíT¬¶»Íä³Ç£É†­Ïõô| žM(n­¨Ì>¨ÚJˆ†Ýí0°Š1È„¶ê I}S«ËÛƒ!qŒou›ë«Ÿ6ZÆ…LÕR3L—š€ jq¼ž]sVSÄlÛ™û‘¤Ÿzµ²^õ°W‹Üò±¡ûX¸Ò FéB”ãl“ädBú–•Fl=|ðKG^¡·çPz÷5 ¡Ø»1ž{|ìÅžOÎóÛÀ¾¡}%*^ek%KàA§ñ7°°“X/åƒi?(ÀÛ¨´JLj6dÿÛPâ!§*±âÌ"C-îðùÚrGÙôÔ@;00[×onmÔ—7ç— x=-|èLò!ÛÜ8AÐ,î7ÌòD@l&‰bÄùº»¤² ]îð?·6Zû‰‘ÔËVO|SÄfëê VIàz ìÑæIé“ðùoæÌ™&8ê†PÀ{ŽŽSšˆeËý©ªY ä“ùñRwa~ýégoAp¹ÌçÆîÖµøèÞ,êʳyæÌÃ&«®7š6ß®±Pá÷ t²§ZT~Côí7âÕÍ*BЏ}ÑU,}*oÍý‰*âíJ1ûÖ'VbWˆ3§Â˜„XåÿB7©CÚ/NóôzJQd*ÎþxĉVvoQÓ}ÞÏøŠ*Þ#Já£LУäÏ`‘«8UhÄyÓ¯–aõ㎊ ¾G[cX­‚N–féºXU«K±ðÈŸy©ßûÌ-ߌjOc° WwP¶Êœô2Ø÷Ü8¥Ø 绚L„KVqOɶGªñàWÃÃP,§~>`ö›0£{ÈÈKÆÇ¤†7•yÛT›UE¾¾Võ@=^\¼¯T¬’p\?FËó¬Õ`(k+d9±‹/7è\î§Žk C:s=>¨/kºxº?'Û#gÊ¡jw†}¤T†î]]Zîe4íK¬{¼‹r㈺¥?Òɪ‹:æSNFÖ®ÔÐqÍ[Ë]Û½ÁgrãW¿£®á~â‘«p‚QÍœM¥4õD“Š¡‰%Œ ñ®?ER%iúgº|°Êßï{€‰`ëØO&¬í¹¥d7Q+*·û-ážØc­äQ©Õ]~ës—gÒ%Mç"öö+Q޼ÎäZ†”…ž7t…ϾÑy[ÜmûMÿ+ƒ’¹O ?Bí£’&?àçoÒNöëév]ê -¤öí6)pÇ8„ã{Íe‹L½n¼ûs$ÊDy¾”ʤQl‚àÕPé®û`*·îïPÚéU:–ƒIù¤ ó ÉçóB•—l+$äöH$Rõò`æ[ñÍ &[1³e?}5øæ/¨è`Â÷D+È(aI0Ö3ñ7b¦Ðˆ´6I³-gâ°¾M4\8á!t[w…ç§ülóL8 ^áGŠÈ”ù6‹ÛÿZtÜ‚hLçÿ“î&ÙDÄÀfLL‰c,ñ6êÎ#楢´;Wµ¯Xyb?]µîgga!,mˆsƒ+Í‘Yì¡8•A ®þ¶nÚALO ÊÙŽÀÂjf«¾"ü…I$þê„ÒÑOºNsÙyÍsùr[îåQM ›q?À;Ä…c}tý}q‹n p †¯wZç²^¼hNqãŽ÷–ˆ¬1ƒƒ?lì¦Ã²ÞM/A6Bš@§èÏú]ÝæÑ †k[%ñèœÉ?[ñŠèUÆê$`¡Ðy‰Æ-2Ρó˜•E3¶'‡¶¡™Csþ%Vhè!MÂ:_•Ù¡"ª¡™þ#=š9ô½9QCíàW~·–_–&ûΧVê6œWÒ°´¬­Œž1ªI÷Œ¿Þ|“ÒIâ+?}óuZ±u„-3 «jæt^£ÕæÊR¿DµžÏ?tº¸î®Ü¦¤rÆÕ[°’˜Ýéð=TgaßgùqÌ-æ2T.ˆj“ÇôÓy‰ÖŽä—fµ+µçRG»¦˜M´Õ‘ÃCÞ¢ùü]dûDs…_Ån0g²µ': o®ÞLè~ùA-çKÈŸ˜ï-M„©u¬™›¬(ɱÉ.œé€áb¿-!<j7Ê@„MŠö@öç«6ÝH –ùŸ–›š~¡›G¾Í’v™ŸÒ¿¢Ù†ú²R†»I~ô‚á{çmËs7œUßaÆ/åVðNæ‘Laz­^•éä‘7Ô¿ÉõdL±Nßœ~Ч¬*îéA5±U˜ ª)äïì—Ç+ Œ?uÞe½ã²fAUPŽH±mŒUÌðgqÝ‘øåÕƒPm•§Ý£a ÛPHR‰48“ÎàÇg‹¾V€­^IÈ/ÚžŠ´›Ï†³ó Qîo½”˜Ø4Ѐ”O/q¨xõàï: bJ†ºwcÖhÙoöWË.¼¢ŽÍ¼Ï ƒWÊ ÈÞ?ËQo^FiñboÄš,díjÞ-ƒù°\Õ0-ëwùéÎëQÀD®v#Zdtéàz#ϯQ®} Ã×O5Í šÓúýÁõñ"ºN>~Á’ Ã2 R¸Ç‘…4˜¸…Œõâß^ÁóCF²Yl¿«+÷ á.<{«Õrª‚Š[OÆ>ËøçÜ]æ¬ßyïþã7oT:–äN:ë7æßÄ¢²nó_®µ.ü¡Ž„ß(L*5y\±ZÊàu‘º“ ØRœmœì¶—Ð,J¬ª+eÝbIPHÄ{³+C*œxnÀ™DÙ wqîa™›ign."Óüœ°Ã7‹ãj"¸ÊƒUȶ©Þ‚—á2¿ö8&óW^[!XO„îw+ cŽ\­n©‡´¸ Y';Î >w#³ïúúÅKHxm‡ÄתH|Ó9%N=çªäK‹dÔ÷ƒáB\/&$»XLÿ›Xs¶aÖð™žè^€bîFÂÌ`b!}ïéT6N¿%Ó¨~V‡YvV‚ˆ³§Á.ƨ$8GfÑ…#_Qsƒ =Dवß =³“æÇxŠkY)ì#I*päŸò?á’Bpû‚€¾Ž^†…‘mëVwœV…e~UøÚ¦*¿;˜Ä þæ$m”[!Qú5[û!e„x~ÊH)“;ÒÚH~f³6…µJRzà‚Õ•ÀÅðA|47Iîs¿ï¥ä×¼4žôš)šj. á0bjM°jL³QzÇy7wO9ù™) êr šøÏ7u¦BÛ!2iº0£mc,Æ5.„Ñ^ʆma’_×uv«p(”›Ä3z‰}kCø»åèëìVˆZQöá2]%Þ}¨{ ¸+QRxtº#¿&Ü:ãL—F '°¡$B6OòD¶Ó‘Ï©–&€‚µ É×l(uý qÃÊ“#=…:‚ÆïOµ9j”5דNrg @IÏ)o8‡S¹ÆþUCãÇÂÍR¶ûšoK´Å59¸ßÍžëJŒúçw#ƒ8WòÉ„‚›È¤ãæq1žŒVœµà(Ñ{º¾â3õ Ùzn}ÒVf²Å’u‘Ç@8'#+ßúa‹»DS+Fk&Œ8’G!9`cwR–ðkس^G§f òqAq ò7¯Ç¬wûdokÉ×”Ì\¶ëVâ$a"9üG­57¥{´Ü1º_~¿&ƒ»ë±K%õ`DPÑ[_KøÜF¢cz­.Vê~eÃ!s„E@‡nYóDHˆý–ç_0¢Ûp° {¡‘–û¢û*>k¼Ý06K\LkÛ…xôÜ$jXéL#È—ë>- V¤EwÇ.æÉô_I endstream endobj 120 0 obj << /Type /FontDescriptor /FontName /GRRUTB+CMBX10 /Flags 4 /FontBBox [-56 -250 1164 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet (/A/a/b/c/d/e/f/g/i/j/l/m/n/o/p/r/s/t/u) /FontFile 119 0 R >> endobj 121 0 obj << /Length1 2076 /Length2 14382 /Length3 0 /Length 15628 /Filter /FlateDecode >> stream xÚ÷P\ÝÖ†‹ânÁÆÝÝÝÝ]hÜÝÝ Aƒ»w î.!h°Á-@8|²w²ÿ{«Î)ª Ÿ9dŽwÎ1Öj(IUÔEÍMARŽnŒ¬L,|qE1V6 ; %¥†µ›è?ë”Z WkG¾?<Ä]@@··5  Û›£¢£@ÎÝÀÊ`åâcåæca°±°ðþÇÑÑ… ô°6(2ä@®”âŽNÞ.Ö–Vnoûüç#€ÆŒÀÊËËÍðw8@Ôäbmt(ݬ@öo;šíêŽfÖ 7ïÿIA#`åææÄÇÌìééÉ´wert±¢exZ»YÔ@® 9à/É% =è_iL” +k× êŽnž@àmÁÎÚ äàúâî`r¼íP—U(;þqVøÇðïáX™Xÿ›îßè¿Y;ü 43s´w:x[;X,¬í@e)&7/7ÐÁü/G «ã[<Ðhm4}sø»t @JT|Sø¯>W3k'7W&Wk»¿42ÿ•æí˜%ÌÅííAn®Õ'aí2{;woæ/×ÖÁÑÓÁ÷?daí`nñ— sw'fMkgw¬Ä¿>oK¿×,AnNn.^Èò2³bþk o'ÐßFÖ¿–ß4øû:9:,Þd€ü­-@o|] €›‹;Èß÷OÃÿ++ÀÜÚÌ ` ²´v@øýmdñ¿Ý¿‹µ@Ÿå­ýX,ýü÷“á[‡™;:ØyÿvÿûŠ™•deÔµ´éÿ•ü_£˜˜£À—‘“ÀÈÆÉ `eeçps²üÿ7 Ðúß:X~ÇÊ:X8xÿ)÷íœþS²Ç¿=@óï€Ðþ7—’ã[ç‚4¿Ý€…“Åìíëÿçvÿ;äÿ_—ÿ•åÿµÑÿoERîvvÛiþqøÿ±í­í¼ÿõxë\w··)Pt|›‡ÿëª úgtÅíÌÿ¯MÖ ø6 ¢–vÿ=FkW)k/¹Šµ›™Õ?íòϺæ_ƒfgíRqtµþëÑ`deaù?¶·é2³}{|¸¾õäß&ÐÛðüï–’fŽæM'èâôF`yk%6NN€/ëÛ8šƒ¼þîb3“ƒ£Û[àMœ?ÀÂÑá¯åâ0‹þµôq˜Å€Yâ7ñ˜%ÿKÜ,f©ßÄ `–þMìfÙßÄ`VøMo;(þ¦·œÊÿ%ž·œ*¿‰ À¬ö›Þrªÿ&³ÆozÓ ù_â}Ûø›Þ4˜þ¦·ýÌþKoYÞSö¿½ÿºfó?ðMè¿øvÀÌÿ\þo‡·"-~ã_dýÛŸý/ôø#Á_vGw—?âß\,ÿÀ·Š¬þÀ7aÖà›2Û?ðMšÝø¦Íþ7²¾)qøß”8þVþæûöZúÃüV™Óoó›P§·Ùtüã(XßJû£pÖ·Ò\ÿÀ·ˆßÇò6æÌnV. ?”¿UãæéøGÀ›÷?ðM‹ÇøVŸçÇúíõ¾¥÷þßj÷ùÿg2ÌÜ]\ÞÞ?»ÞÆæ?ü÷Ëò™!¬-;šñ‡Ù| ëz¨%ðdÜŸ\ Ü×Πeô]sévÿ‰›F[—²år'š66€¶±'Is+²Nòâ{ÒÞÙ‘¢Úùä÷lœ¬6·ß‰°:‹=< <=\"È[ôÉ9*_±£t9œßòÒD¹ˆØR "£åV¡nT 3Giïš@åÄÌÎî±q°x%êÞ\D¢™ê.¥ØØ±z^.z~#wÙü «q‚«jÏá ¶OlÍbŽK¨ð°­Û™ [dæà{;â°[a˜ž£È£ô®U¼Âá!Þ€yê¦÷¯"É«l¦núý¾@/ä³î‡Kÿ™i¸ú7ºgB³`„cäÀqV+Ò<~“³Ú£Ãµè¯¶Bàñsò6“ [r½>(¯ƒJOÌB…×E ¶Wœ5öÝÃVÍ+õAs Y6|rýPòO1älê…õú©'C¹b¦è“Պà!ŽaŸ¸ëÊÀâôèBjü¶HË›²{"¾é¦¹Šù(Äcó:1ó÷~s²•³?ÂeŒ<£Qk«f@ä笹UìÚ)E}ÑL“³×½rLØ\+µ‹DxŠc§dÍBa.¸4xÕJ!#XÓ‘vCɳ…Zõlúï¬ Çšé34yÖ½^î!<7Q$}œÝ5ØÑVb/¡Ñš78W:8 Ìïhc‡½(*|egŒæÚ_¡¡Òz_‰Ø“àm¡î]¾³ÜkºýnjЄ×È)aøNew4©^ÉÝe™VAÐݪ"a)d~Tbz­ £_e1̷֨µº¯oácù´&ÝÔböêÀ»=™OœPŸ}U>ˆ¥1ØN”å)¦Ô9,3¯ŽJì"Ü•ø4Y!èz1\«Yœò_³Áè}žßIw°€ÓöºèV§Äð­ÔaŽ™‚c‹!WpËj-¿@/ïçk¿¶g«"7çð~†ÖÓË&²÷3Ãq ‹lH  ‘5°P‹pÈLý¾†t—Çb€÷b¡€”íµº •Ö¬üù5nýëÔYBvM*8$?xÍ8õúIð‡~‹†Pägæ3í¡#/xå<à¡ã?Õ†i PËÃ:¦1 ¡>¯Í÷f=S8]`¤Î’m\ó6Æ©¹õ®ü+r6’ éO|@á¸Z°ú™ãðø0öÍŒ=t[{}Û¥˜k©ZzŒuéýµ™‹ÚëòéNÍuH? ÛZ 4ÜïK.–•OY±’«Iƒ €ÙTÜÅ¡‡ÐqÇó½C° ‚ô•ZR8fìCìõx#<¶CˆV§ÆÐg0vX‡¢pI[À¬ýæÖ;¥¾äÅ^¾‹‚2ýLŠ©æàŸKRÌ„î ÿøÕiú X^v-_@Ošj¼Ýò‰tmsË.27)? ¸·3ýÎAÕ%ò¼\SZ è 4 üǽ ³ËìÒzN¨‘ -G½Å2½²“Žq”[€3]?QMBÀ*_|Ó3£›äò‰CE#ÕÓÊ´7Pæ‘ÝZÒ?,¤YµÄþÔç>M ë‚háR_2ŸÃ#ü³“³öã1 #|gp9ÐXú 9ÅÞ*¥dqEÝÕt¨ïœÝZÇ”»,ÎâN¨YxOtÚMU¹ÿ…AtÞ“‘Œž£‘b³Dh¾½8C¼$"O§ Ñ%]çe<Æ(×:‚hJ4]Yt­gžxQa™žô)6ñ³—ÒYEá¦Ó^¢+din»´BКr‰•ÐuÞ‚cüÍÂI~y.~غÿ…½=Â4 ¡Þîø€-F²}0/ŒÀDb¾_¿ûpdÅåé+Šj& ¸YëáŸ=‰ª&^²7Oãç*ºòáÔB~˜þ¦†•4¸&¾,EÝá±xh/€<>Ðø]„!ÑÇfë R¬G¹)ëœqç‰ {9€|#À¢;?Ê›NýÅÿ.ÚZZ‹ËØ Ž³Caÿ)ÂCÍGO•ÀHaéE黚sÖé:î1wå®iAÓÀ©€ÏÆ_åà_ÄCd…8/K 5|\ËšÎüÝLÒWƒ*{ȸ?Ê÷, Bþ¸?ì¼úñ•Ç[ë{u•Tì—ïaBK<À$AHÈ^°v&O‘†‡YtŸÙ``ü”•>ÿÕu0W§s{Aí5:¥d@¹%hÒ¬¶Ší49”2øÙ[Â@±é:¯Ìê…j|×R®‹Åt™Ñ³'gdùÞš–~¸îL-Ö!¶ü7õ#¦‡öÌE|'ª"n ò°9ů_ÓܘµÑƒW½gz{?ã–Á]Ws´©ÊûÒ® N…kKt™ u:⃾¯ëe;­¥á[‡1‚PETÞ+¼š&úUß‘;A“qõÊÇ£(¨èLlù˜¢”æéE˜Íßû¿ŸÑRâ(¬Ê[(³¡~­ ÞÝÐ(-6i&Õ16^»]óâ®Ü‘ÔªÚ½ã4lí°…:¨·?Éœ- mòÎ…0¦Ò>ö>¹7 ô¹ÓcÚ5™ß~ãh>nó©0SpLÁ~ЃÑ烮ö˜Æ?ˆÖŽVzˆUÄ¢ë@®W‚¶>ÿ¡`qm!µÈ\&ŒX6™êˆ6=i œ"Íß@ÞûîfxëbГ ]½™ªÆœéÂQ|rt‚­ø³<{ ,{EÊ3pôÄI`xؤק2Eì4 ž°²ÒRêR'<ª’ CVH¡f„$B˜1ÃzW»qÏ.í_¢ŽwHµ^èÐG>j$‘8Ÿ¿LϘÝ´´!õÐ㩨¬‘T'á*—1¡JÐÑô³?Ôþ)¸[c³§õ†­V /¹VÉuk>áé 5°‡R,tÝ*îê á ÃεPÞA$þµã±ü‡u2™Ü™:”EÔ|@[Û´Z¹æ7µ\MËy'ÑHöÜU«Šìפ{&»|ÕEp›1)J›¼r•&Ö>¦lcµ ÚA›Šôöò­aíÃ# dÌìEŸëøŸîÒ¹ ™¹ûk'Õ(ƒb¶Ò åÄZEÀ_¹DYެú0Õ¤xëó4–‘|“h ©2.(¶Â“ù&n¬zñï_o_múaËóV N)“¤ p´Â^×£¤wG=ZC`„MÔù¶Oøä@NjÓ-c¨»¼ÙU`qù_tïõF?´ÔÜŒlB$œÀa.l÷ì,‡ò|§øÙKN‚›D_²%B$º´Ø´+HOŒË›@¬E¯iBRñ$læ-»¡Pê [(|)"³ÑîÔq…|QtÁ_ý.Y×tš»¤ðLvDzJgKŸM ®)<3Ä ÌŽÞ·çÅ~ÉENÐû $½ŽŒÚ#ÅxzAKs/Á‰5-lcNÙ’îmÜ ȨÜT˜˜îì-QܹöÐN '1—âßó&d;bˆi¢}?Yã®eÊç¬ØÃkÙS“d6–ðÉpµH1ö¨ˆ¼Þ±Z”T;gئ ¦GœÆ1ôX»"â뺾ÊèŸ×f}“Bv¨{ˆÌY·xÎ{“¿˜g½B LœG QºŽod@‚£ iÎ×øö¯€lÅÂs¾áùû{ÒyËáD>ñ ØUÿrð­õHwÌkÅXtÞȽë*Øè9)™”0iÿ‘À(üãÖŸñúFÚ_‚è‡t¿ãˆ´ÒbëN}î™öR÷Á;Lê{FئÓ`1f{ÊgYºÍ&1ñ!oá,eã1pè.ŽèÏ|»i ¦’‡ùZ†a¬-óZ¦ ¡d‘òŽR,æ¦I@üŽS¼×ɼM i£ÉjÛ÷4¾‡ƒS|p™Í¿6 Ar­«¦øifÁKÂX yÏ“Vc÷®ôèÓ…1?‡›]³?«ÂÉ="bº•{[ƒ7\ÎMºüj§lº’bÇ{¶D+É+ÙŒ¥*Tô_ýR>Êž'a;jeoçân.´uÉoÝ.J`Üó# ÁQÊx.ÓÌöV){1öÄÁ¤ð§Ç Ö-[VÚ—Ì÷ß(ÈϹç|Ã=WîÖ¶HyÜjžj!öÙý@ ô‚Ö·lZD; ·á (AG\ÄÚ {ÿÞÈÖNüÓ¹7jÇ%á/ÚYJ‡í%©ef0LE´LïšÀ1ÌÅÀk=çukÙÂð`ŠÒ<ñ l:¯ÐÊ!çÊÃtÚëÞ7ºr°ºçÒxLZÉÑù’7—tÛg¡RäØzÔ«¸@oDÍòƒË˜ù‹¶¯ÕêÔØùsô\Ö÷I›ÃFuÿù_gr‘>ˆs®1K-ßbv–mpàË7|²|E ÀÔæ­(hcù|”Ôå¾zÚ}üœ:òž¨¬Ù1Û+Šèƒ¦g¶ËŸ À„ô ¿g<ÈGìQ‚ÎÑÆÂÐ6ëtIœÅ8ƉÐb07 à/­v#ÔPë£ÄTäé—8 l›UÈsÕõ–h"ç@|•ðVØð·R8” ™çQOMÉK"¥S;¥ì#ˆï6ŒÅßဳ.›£ $£žà¤ÊEwî¬ô“RL}^ åõž%ØÕ(¾¦•ÕTWÒªrÏáõÏíEíi¶£u܇$p麳g€µRþütÕË‹·E·±ú+ٚГ¥É¾—ô!ÂËè‰Xñó¨¹Î¤fÌÛ„vI°†œ³ðð6z§ñQžj× ŒµcyXð{)Æ$|öÅÌg=È__w•(±7UaŒ<§q¿†ÆúfSIÖÄñÚ P£ .³ÅÊZeýJÒò–Ö³ë,ä+¬m½J‰?|úí›Ûˆ ì?×ìÏlÔŠK[÷\:eN\ÓףןõÊö«+™  õâ ¶`YÑNý²-ôe°*í6"Ø¿ëoEú £ 1`ÊÎCu_Ê:ÓŽÌç" ®{¹ã3ÎêWûŽÚñ%xÀ¤—ôÑæ1P,šÊ¼E‚¸uôó‘ÐbÁaÍѵ©¹:åDËŸ¤oå˜Ï)ĉH›výó‘÷‚ åE[õøîòñzú‘““ý1'k¥T 6ùbÕã°SZU¬Ôa±§Ö=Ú_²4‹¬Áyªp×Ï›¸ îS/d'»ªSBÝQÃé²Ôú·®v[ÈÎù˜ O¦3à¨jž"Öš5àSÁ”x¥éÓÝÀæŸ+4M¯½ã ¯.¼•Vm3£D»EÝó”ˆò^»îÞ@%òKU3žY‡GŠt}ãÒšŽ_žÑšúýŠæ‡g'ª=™¿6-š¢ag›=ù¾~%Ÿ@¡2õ6©Ên+h´•â„üdóa´‚À­\¬cj„Š24­õpáïÞጾiØíðIL"è8Vþ–ÓÜnÖ5{žçLC¯LĆX~–¹rC{’mˆù튜Ë™ŽJ«`jœ¥h¤o‡Õ4õ>|ø »Š¦è³?óÁØ1ÏG»=f2±èZhDšÔu·ƒ´«!#-QûÊ#à>eí¹a];#£¡Rø(æòyK²6¯“å ¡½B>ÕKuÓXÉ\Ðw“"£ö5®Í p¸.ãÓú ÈÕ6ô FpêMÉÊŠãÇ"ô¹d£%Ptæ»DåÐÙ5`݈å!„ܬ구«¾ÝÍm”·lH‰Ïó̦×ç5•je=ì=%I]÷GKLÑg˜¸m·†„K‡ÈPDºBçd‚íÕ¥°]üa9 ¢u¸,—æÝ°!_»‚q->¥¡< 2ã‰RjÍÿÈ×]/–¿œ7^iñé+SA4Øè2½—î÷‡êpiç—í80Š a³€°’2¡Íª#äkîÊ —’ôè.°g*Â>Iˆ 1ŽãÂÉncâ±î¢´ß/uZˆÒ@—çËÌ i é±k´Ù“½€ÓÆðs›Ú8­@éºW¸PhQ–&Unß>w·jÌ2ãHÄôß`ô4õ á†yPCÔHÛ¾«Jú”ÑbQ mµv¹å÷|nöÓ» ˜ùZ·qq~‚)¾ýÄ!ª µl Ö]KŠyÜ!Ô@Û•K†”¤ìNáË4‰£Ì_€²”ü°\×áw%é¼eà¬ö) ã'âžÂÆñ\¯€5™¸Ô&qÉÞ‘…BÌꨫƯ«}Cý’q÷×ËQ¬Þ•–8ÒÉÚ£泚ó¬!–´Ž‰6–Fuoü»³ôþɽrR0ͰŸ³¸rc…M à[:=?l»õÈq%%hÒTGªZc&Ï£z^ì…Q–Ù¦SåÙ«õ>ð¢¹r¥©70²ÞCyBs“ó™÷Ð]È‘˜òˆ¤L‰Í- »Öfd3KuþJXÁ/ÂÆñS8wG©B46ÐQMUR@æçú:zFÛª³D¥HØ“Ô'´¸¤‰ŸòùÍß–Jlzq@¾]êræ°=]èqâR9|©t g"-ùçóL4¨’ ]‘÷‚w Xß;!o°Ä‰2|-Y…ɦ1ÛšŒWÞQÔØrÔÚH•ð(ö˜¬Úº¢*X|IÑ6ÒîêA°pmr&G+—^ Ï k@×L"Œ9°lKÇje6f ¡>Â$Ê ßoH{6s–p‡­Ô²`’^N1Þ÷EýêiäÈÂI‡Äòzäå¬Ê^ YÉÉvÆ9·,ͼ¤•ÍqhËÀ^v› 7|‘éádËv%Ýç틬,¼Hºx¤ýhhò²´Gjú±9lÄ+1‰!ÂkëÓäð¬˜eMg ©µ¡dŸ‚ £Î Âq2ßÚŒR1*RÚõe/C[jkƒ_´ò§` £`i‘PÛï5°²…2ùÙ_ȳ,eýBVZlÓO»!†–Lý9O2uë‡>ŒÞÃV‰9Ÿœ[Pñ¹ìƒ£–mt_+µÉÉà”ìƒ2xRƒu bp&G;î×ÚÈ TPvnai€º MN—M±ŠÍÚ#Å%0UeHrV¹¿­{{Áðùãò†ì,ƒ6:±&=…ñbèr3EµÎ†f3îò’›Æ5£Bäå`ïí-·‰¬9 Á‹È}›«Â ab$¼øý4©wZX%Oø‚vÛŽÃÛÅ¢ö‡Gîõ%R•›LfmjqŸ}™‰w8ÒÇ©Ž7+¨*ŽG¹¬r¢Â4ðÝ´_if_$S~ãËGжgÂÔ©Y–²˜L˜´oL¤´~9Lò—ô¦ì™;­¯ˆ÷ÁÊg¸#ÐÚëFï9LôÔLçõ#,s£°~Øã\éòéðÅ´’© êS! .µþ`i|ß~ÙÐÅ,+ò´öÞ,–ß¾ùâ—1µ­ $LoÉ|¹a¬ß$E£}K=ÓÁ­J³›T5¥e%$I¸F bò~šã‘õ Ex35Á‘AÛÅsÊõ¾s„Œ6#š@Úv¦ £ßžVs‚!ckßë`‡¾·yz9§^ «$ÚÀ{5"~‰”»YjñY+†,ÿJÃoFTæ<”ÌÐzûµø‰á‡û 8#ƒF¬”áCJ÷穹K>” ³Á„*ÆT<„?Q:“gŒû¶C ÈØ6Gâ/ÓLÖ¶TV¿ªÿ.ÔR¸Ö£©r ÿs•ÀèØW{³W•ÿø£|Ðf´:V;(×¥uDCŒ“žãì¸Éþ"eddšUkËfÓ¶ RNŸC †Õý|쑯ð½A›&JxÙíÙ´Í&Ü®ÍÓqzJ8æb¦³½îŒ’í‰âŠ™ßLί±µôi³Dÿ:MƒfG˜´9.wý|<¿ÈRMC)ñ¢A"%òWáz?›ùSqY2žL#˜1á‘ÅËDÈôžÔ b+VáF=Ó_ôÎnȯü/(âIJíi„÷ç%á þ”¨|M˜è|tJ*™¬0.£5dÛëL†¶99Ä<3ÓÙéñÈS¶T¼EAõä\I8;•ú©}Èw·6ö7øÃéÏïL!¿Ñ¥l»ÓI#u»ùx–ÁfDªô‘òCó6w±Â9ع„G¥—òDѳ-¡„öèö¡ôüBŤ£¢MpÂèepx¦Ÿ“¾îc[}Á¼î·ŒóÕÊf¬«ÁüÇlLö¡£5¾9hŸG6º%%WJòš˜dvøƒÇ&b0]¥Óí-DèH¨Az¤d]¥ðéæeôYpù®¬Þ•7ƒÔkI‹zǹ£“ÖDŸn[oá«æ¸¥M°dÀtÎ×L]¾z›ˆ9?‰Å8줮ÒËÙAŸÎž¹ÈÞÙqö"ªô›‡º€Ÿ(¨×N»PD,ô“%Ì»p˜É°Ÿ&Ë[jï‘ý}G™\ï&ýJã4ªíläm`Ü]vcà=;øQ@V%ˆË` z¤0ñãSÃøÊõ³ÅÛüVƒ÷¿0="óën éTˆ8ú¿:ÔH@óÖLY@“7iÅ8}:@ \ççŠc¹)«K`Qm¶¦å»nôêëk)ªñT [+ã{á1ZW‹c5E§T¶ÏoàaÛ_üð©힎BƒF ÞƒLì‘§»ž˜ý³òˆâbwœ“°Úr ôî‡Y…­3ž–Íúfú–^Þ}ÒõwÄ]¾Ö:¹8ÌÕô), $”¹¶ïغlÆ>Ê -îRĤÏ0MÒ­òÓt¤yÄyTD~nù””R¨yȰ~Pf—‰çTOâž½ÈÖV£‰K—wHÖèN%Ä&.œ¤5&FUÃËo3ô¿\¤2‰\Ÿû•󹹚óDV"ŽìR­H&tNÖ¬ü–Gω‘xðAáÞç<¥rêpÆ"hå“‹’Õ^wH Ä©õanÌö¸DóÈü@Á8• B!Øi8¡hæ¥:¢ƒ3_wó—L´{“º6}—àL«.¾Š•äã\¼쾯ÇÝVGë7 å¤wн}݆Èwæe8þbNV5‚ñC6!ãa‡ìã†ïçã 8ä÷`дl:Ì•ÛrBe¾ #„甫H1¸òíÅš)2F>úï’Ÿ¹µ;–¦M_ÃGCªž1JAùÁè x_¸¡‘QÐ:á!‡ÄZ{+÷ˆÄfž”ÎNÕ£ ‚dz™™íSJ¦ÆÁ…L§ c¢XÄêù-ªË âòïÖì'Ò2˜Ùv$óq=Hðìœ\âm§©ÎªTUsU7ÓL1[I•É¢òåk,Å?ÈÖ”æã'݇¾°×›£q›œ)ÙåºÒUJ4ù¨×i¸’ª7ÄoÝL†ÜamDÎ^äbž.>ûL1a0“D‰³Ï5Cúúó]*[j”éZ!j¹ñÐx·Ÿ5S­Tf¢eüÕE“Rt5€°ÿ#¬¥•iå…@ëkÁP•v’£ ‡øíãÁè“nf¾rgÊÉ@fUÌÓr 6MYD¦ú•/ÿëCñ@0ŸT<—wHgì}³Åê•£ççxpæëÆØÐéYÁx|†Jœ« ²€H¯6S˜Ã¡{õ5O@JD1sVu%šK9Ž’w×*éÛ†tL|é {#2ûÂZ<Å)Åø0Ùdí.t“õâ1×ÔeÞL<2 aZªÀ\óˆ5Ñ—2x<¹_ø>Შ±äß~””4yŸ¦ÌÕZi YA´æöHôâ²~g; /&÷ˆ† *; 3ÙxîŸ~¼ye ‚žkÑûHmóz•Úb¾øÜ¯3p, kuY«ðdUwÑÍf*S‘h˜Íã$BË`,{œ¿âþ¾’sž»¯ÀϪ‘Ë\åËq¹ÚFÿN©Ñ€Ž7]¾ºevÎeƒÑF]ÎSa§ö¢÷˜é%’eø004H4*cì8þº¢¶Þ¶iðäJäcó (J1ˆìzúÕ¯ëÚ¹ý.9’¹²“¯©W´µ±u·Lí‚vø~?†%}¨AŒÎ¼8TÀ©y+Œ|‘qIzÕó…|žÁ7,cÛ,¬ïaÏ—_“÷`ì¼”“çÕ þY¼¸7ŸºCÎäÛ>Jš-;ÐßÌéÿd8‘®™É„3#*üqzgP˜NÀïœ'S–=ÝÓ˜¯8Ü{$94RÖD‡ìI+"1&¶À„Ä>&c˜øÃšìë$ÌÈÜ÷²NeMxý‹4ÐúMî±Ãuú°b´zÓõ»1¤H©w:¼£:P~¡fhÕïc¤­3ïßO•9¶Ê®3ѧ;»ì\ZŽP$Ù‘~HyO‡{‰¢Ù1%ˆèÁ!Œ×3åƒÈyüÏb\^šSgÿhêx°eŸ›S«Ü«£gÌBǺo¸¹òB“Šðç ¿gwôšœMê€#º3^¬h$gž%IŸ.ÍBlDrªfÐ]³›;ù)ÎÍû‰ø™V¨PwkN«×âkj±¿›ö—7š-ä[• ð50Ót0>JU×ö³¨‚Hǧý1œ™zQ_#\Ós´Vò¦ÔcHãÒ>®>±N®UÈ>5ƒÜ\‡hís¨ (I$ „¨:„ø Lò +W3º[Tâ{Î=aª|ù}#ZÊá_IMRÇ>ù¿ÊARuO•SEÉj}µW*(¤äÝL:0¾.éJŸ½øJ›úZ±T(“‚„CL:Bú5Nav½Üxý„ˆ'ï4ÆZðfE`v7Œ‘ Šä6[_½ “¾×™dór:ÆW¾|xXŒí}†àÐ;9¾¤‘=÷Rmç-²Œ/$:þn*cŽÕËXíe7lT˜ö-3`lËâ$ê~ºâÛ ù\˜Óð­Ô©OéL_cöŸ>ùªdâ*ÆyñcÕ*NÊy<ˆ74|={–Îju²öÎ𠫪ïÃÞW)Va":„iÓ$c9ŒXW `æûÃŒŸ«ŽøBÃ?LÒˆ`>>ÑTV¸fèuùö÷áNxœS:­_c_p×\„]ÛsB [ ‡©ŸcÏî!R¹Ðej,aëu'û­<Õ².ø5™tßIÑk@üÅuÔ± -õ—ÞÐ&™Ã/Ò–òƒÖ˜G´£Ø%ÖšÜ"&ÝKjâ>wÙÓSŸE¦þðX×Õ?ð&¶õj”ÚëðÌødu™:à©oÌN|tQU~\å::­ðaªÌoÞäòñ0 £ßON d\ C9Ç›2M6~þˆØ¿=Ôk¢:Åɶ?É {N¢»àÙv÷9%ó½Æ'Æfp,^~ý—9È‚°ÆÕ¬×ÚÊÁÆ’IÂyº}%Ï뢎æ á_r¬ÁŽk˜âæx'ÐÞzíœÈ¶í±~E äéÌQxñòGô~½®˜úæŽùquüžVűÅá©ÿâTû^Å+Z„÷Päª]¼­P)·ÒYÅ[òr N´Ú}q¬éO0Ú]a¤ødšâåWFRliÛ¦XzØå]näè“»T9‡ƒ(HùÐIÝóuËéFKý›J{Êà&@rÊvëøM±»¡y[œÏªèˆ@IòSò&¬ &?qœEj[è_/ò‘OSÄwh䬹Kçö¾bSf Mƒ¨N=â9ûméºóȬ¯¡¼ú4ä܆†˜ˆÔß:`µ$Ln ø6ìµEÉIË"EVby GЉúxoÓ/ Tâ™x¤À5§…1èô ºòF°2¶öºZ‡>žuþÌZ$UDm{:LÓJ têL^Ùï”·C”uºe¥Sè,ê4›ùÒãÇžmÍm‚ǾöÞßS§&`à’Ý÷çç 8ß! G31”Õgb@´ýn„õËUq uŠÞ/°ïÇ9ÌŒ‡}‘3’Ðgoÿú<ž ®?‡ù›hï&© k©#Á¯æ©R\ èÒ&eâ¦x†CÄF°õᨰì–ÝÜijòóˆÌ+”:ú¥L»]JDquþ„°¾LÛB×ý9QÐmaˆ£NÍDä|BÜ8iér.Ò~AL¤2 Ao4/diµ•Ÿ²íá–îL H)à—g(­d^Ïâ“qáé%T¾wuöî×3Õøl4Ú‚8nø¥æÉ÷êhŸ‚˜-± 8®10ØÎqµXî$ΦÜü²jº`köÏ>×ZÕOuvylOñ-¨êˆ¨ƒ Oþ0Ï(€¦ª¨¸oý¸uÝ©EŠg7v¼)»7rsé¿ "Ò¥ƒøŽÏŽT×||‚¬êWµ=Øé±E ~f›Ž[:¬)¿wânOº³kÊ^9ÝZt)n´äHO†Õ7‡€oøâ./±.+|²{‰¶P‰B‡(Ñ„ df¹óiŒàžGQÏ/kÚsHýU©z%Ë“a ½¯_ÎgÃo»Jûk@ù3'#¥RHQ\t_ “ö“£‘¥Þn‘wÜðƌ٨èn>9¾iÝ´õBAß•ù½27WÀ]™.¤uê=6Ëñ1–gü.Cl 4z˜æ¸9Lh4”çÊÖ y|Ä(XþbOúåç»ä©_¦ØFŒbˆ’Ej§Õ‘ï–~Í? ÷[ÊÁá뤩LUz¹äy]Œ§Š×¯òn‰¶a<ðfµÕQaTCò&¤ÏQÓÁ˾è0mÌ&îà‹f†@ª¢Enè®S~ÕêÀÊ V¡¯šÙ¤ªÒÜÌK•P±Cø6ù¤{iÄs ©ø½‘£,(êVÎîŽM¢²U/ÒY«½¢á®ó“½2)žT´èwü>]ã/Kd•“×°31ð%þ¸DàèâÆÏJÚêBqd&­Bí}X:ª*®Šƒùô(ºÛZ·?Ýnþ Y>§ªO"¶]ëë"µÌÖ1Á!U¿ ß8`;Ð2<l*óEshÁ›*"<épÛˆ/ 6EJŽ¡&'1ð¬±rpá­í#œ ýä&Õõ³ø.rhK'+^ŽJ“Ôv¸­bfÚÆ^UÞƒO 9EÝ®çò/»må:uXe§»•ikHc0¥ñЦv PN×fW¹UìîÐHð4È}Œmc䳋ñQYÓ¼‰}%{ÒqÙÆÜhæóÒF±¦çà­Ûžmâ»%†I“`½f‡ŠmŽcúÞBQçIAº¢k³±à’¦›9qÓÅm¼j×ì›YŠ?YûÇŠ\´¹bй&õa…NžYY™S¬ù¬oè2î~Ø<’¸!ß—¯_¡ÚV0¦¨æ¢MYÔä;cY5K.¶’©¥<‹„ô‡«·Q¨ÝÒ*AP™:ËByÏ6Ø€Žc•É4¹NÃA¥Iüë{ïçjuK©·ï¯xÍòöГ\™™ÍÖ´¶‡¨$yV<~²ä®‚ïÚmçÎ.µ{¡øØÎÖ+g.} °rRh $++àNù‹–y÷Î4-¥Ü>z–Ž“5Ú±*‡^Ž nœ~—ÄB»½²t»– ×ìWØRß 0e*G?”«8‹‡N)Èx% ˜Qb!*$b¦—\4Èês/òøÐÛ‹¸©< PK®m)¡!Óµéz”Uk75Äh½thOÉ–;»ËÔ,éÝÓžl«¢ …÷\ÈÚQT,ƒQ®{b­\?_ýjù˜i/21yàêB\©‚fzUÞå ל‰ç`-ÙžS¼S$œÆk® j<§wuý}?qóØoÏïçÞ¡LµU€¸mÉn†¿œëÜÈuU×ÕŒ²Ð@}£MÁ?’‘³õÜɨ_\ ðÙT´—ˆzWU.%þíôQA·Žßw“OÇÓô»NìqÄ`?YÖ¼$ãéÌéFº¡\ãÓ5gœû#¨õx–d_Òmo°;V‘ % ©‹)©4tWù`ɾüÙ¿”Ã.¶5ÌbpÀÒb!¢t´„¶Ó&< É„½ŒŒHáÅiÝÐZÎXS{räK1â DÙT´8…“eÚñßú€x†.¦ìksìb‚PÁôDbÁ í®.^†•îÛtïÕŸcÕ‡‡ñˆÌ“8BëRj£%_—³ãNÔ¤öÂ*°Ï±–Í–œÝ Y'ïSy_y^ÓGÄŠívBÌÉÓæ›ôÖØæh#·d—Ro˜$aTÛÚ¯:ÚU²~°tíhnŠP’[5Ûý$ž>æF .ØX0Uf_°˜á‚€1dïÈ¡²Xµ'Z†×&{ bA4ÌÄ;†Ni^Â+gÙÄòêÙä†BÐy|üeÉ·ÝbaÚbUé06«Ú.¡º.eXÛ°•n¶Èˆç]j¢ Äw€3@Ûp蔹Uý¾2àq‰dõÎåã kI·xæÍj÷CGðæ¼YË5h”‚7Ñ5Љ:¯ÚuùH£¶R!ä!}#­[™]ßòÎ?_l ­¨s™÷&) G{ä´£"Ã@‹³µ€®£»ÁÉÊáˆ^AEom$p¯·ÍÚñ7éRÕ…Íö<\pwú©è¥ÈHÿ Þ\B›Y1.œïRç7½=)÷9“Ï7AíRšýð ²Bù{­j>ÃÌ´0P_;yÓbø"…ä<õòñæ¶·غƒáØÍÏUi•þ±;«z•² v+"ñòæ‡1ÎëXänçɨ <}6l› †1ä–7+hA\äjrãî¯=ØÇ~ûOëŒwºÿ3Mé endstream endobj 122 0 obj << /Type /FontDescriptor /FontName /NIHSVW+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/A/C/D/E/F/G/I/L/M/O/P/R/S/T/U/a/b/c/comma/d/e/eight/f/fi/five/four/g/h/i/k/l/m/n/o/one/p/period/r/s/t/three/two/u/v/w/x/y/z) /FontFile 121 0 R >> endobj 123 0 obj << /Length1 1763 /Length2 10811 /Length3 0 /Length 11926 /Filter /FlateDecode >> stream xÚ·TœÙ-Œ»;iîîNp  Ý@cM i4'Hpww ž@ hp'Hp'@îä‘™¹3sïÿ¯õÞb­æÛU»êTÚõA3Ñ?×ã’A­ÀJPg7¯8@ASAOÀË+ÀÍËËÅĤ9‚ÿv`1‚]Ý PgñQ\Á@Ø£íöÈÔ„:ÔÜ|>aq>q^^?/¯ØˆPWqÀ3 hrÔ Î`7,&¨‹—+ÄÖöxЬÖl>11Î?ÂrN`Wˆ5Р „ÙO´:ô Ö0Ìë¿R°JÚÁ`.â<<Ü@'7n¨«­4'À³è‚ÝÀ®p0ð»i€Ð üŸÞ¸±˜úv·?=zP˜Ð x48B¬ÁÎn1îÎ °+àñx€žª@Ûìü'YãO'à¯Ûðqóýî¯è߉ έ­¡N.@g/ˆ³-Àâh+ipÃCˆ3Èæw# wgÈ+w°ê³¿H&¬l¶`@ˆWTD—~{ZÛñü>BßËü‡“ï·ù±‹×>.P€Íc#à×ðã/,7  €¹ºƒ_ûüÛñß‹‚XÃV`[ˆ3Ö?ÙÍ`›?ñ£\!žSÞGòxÿüýdþ(2ÔÙÑëúSæÑ664Ð1àøOÏ{å塞>A¿/€WD òøðú¿ó<Bþªã_¡ªÎ6PÀï\¿ë}¼¨ÿÔ ÿK¬- à¿“iAÕ °þ#v3^!^ëǾÿgÉÿòÿ§ôßYþïbÿß’”Üÿ °þÅøÿ€NG¯¿(òu‡=®‚&ôq!œÿ—jþs5Á ˆ»ÓÿzUaÀÇ•s¶uüû.!nJO0è9fm÷§fþ´üÞ7Gˆ3ø9Ô òûàâãåýßã’Y;<¾FÜ…ù§ èö¸q°?¦øƒwê¿KPt¶†‚~/¿0èê ôÂzœü#zÂã–‚ÀžHÀÃí …=†Û} °ºbýž²°€Gî·éO$ à‘ÿ‰xþF"|å?€Gå$àQû=ÆiþƒÄõú7}ŒÓý=2þFbøzŒ³þý¾+пàc5àÁÇ6 ÿ‚¢ÇÁÇTNÿÀG•ó8ÿ >¦‚þ >Vèò7|¼—GéBÿuöã~ñ¸þ >R`ÿ‚]¸ÿ >–ÿò?f÷þþ×­Ý]]çüÇò=Îø?ø*ì ¶Æšÿ µ–¶¯ n»ª•{âÁµ5*‰z”zeÌÏ5ZøÖ«8i±¯—•¹ ^®4ßçôÒ¾CKþÕUöòì©Ïf=]ƒ—àÒ®-Uì×_ˆÓ >—Ô _ñ[òŒ’åiÅK\{žÓD|Æ”Ùöê1áû²ÔuÏ%x0“”*‰¨…´iµ®-ÍÔ £3^5„ø„í²[ô»&°ŸfeGºG–«h¥øôtÏ­“ ÿO¯/,¥úf¯Ô¾Ö¬äqAf.þKCÑ‚ q`[âKÞöHYlc–µ$+iŽ¡÷¢P[°ÌàMš¤ž>èhäêéì»@ŒÊñ2‡º‹¨ì®µÏwÁÖ$5/‚ˆÔ*§%£Ü"ºOO$^€‚}´gx.އÐ#œá‘% ¹ÔT;BE‹˜{'¢€˜Jov„f&›‚ô ªwÜÏ\‘H¢ö/kbÅú”Œ1žh´.uí1ñ¥«ù"v~ñcˆc+ûÈ,F¯‚Á9±››fœE50®”ê]§S¡øF¦hËð8sßB&IÀçªYrÐîÛOz!²{Â4î3YŽ/ÖOÔR©gû~tíѯn¬¬,Ÿ¨¤Ž$y„Cîº?·ÿ° Æã¼ÒV´F’Ù•Å,®úoÕ²?4àM}dµ¬¹MÏö¦\tñÒLÜÏJê«`ý¹Hð󇯶˽†­ððkë¥EèÛÔµ’PçgühÛeàˆ \øS‘P“¸3û­zÑëóHeÑc¿‡ åã–Ö®‚ÒöÛ|šª×õx¬M`Q‹|9™ üK+N^LûsÁÏ%ÓG IÛs¡Ë ^\aLsÆFZuüè:ßt¼´ƒ­4á‘Ö¦ 4OX~ÕÎÓP ‰Ì’6ÌÐ QüAÙ±ÈÂÔÙ~E@ùýÖh˜7ƒ~ƒ¹ ÌØ‚c«ÛaS=> .¥c—£0Ü-ç[ü’Ñ—ä±%ÕÍãXR#ãºvKÚ²Ù%tq`À@ÔÒá‘©=#KA«Õ›ÍЉ;‹‡é’ç­Wˆ<–ý¾»Äg´—Õð”;„_‚-`AjCZZ»@5¥gr€ Qž‹‡&å¬X÷š™·ß!¡Šcò_RÜñIèéÄw¶cP{’R—~[¤aÞ´‡îk]R‘¬K©eá<¯Ææâ?¶- Ú¡\r›ܾóŽùŽÎrt9‘ï§)X3WxÞ·£¯¡_¢&…XíE­bÚÐñQÓÞ~ÄJ#â2Àõ3hE&Œ.™À€)¬—’©àÖ2.RbƒW©à”u½”.0?W6…©l~Qfáú®Ébã6ö°ÁôŽ‹Ãrþ«jⵎkàKˆ–§—=#’w& ™áôÅ6K>IPûEñ®s6g˜£Ÿç¥qòóèI¼°ÿ”†=}ÄPhÞåxfhkjñ–BÂ:)(@°ðIª³Iêºâ‘ •ŠÏ8ë•„Œæ2U#Å¿mÕDpÆ/ gPK$#䢪=Ÿ¾ÿ{1ÙàOea××V†£-Ì7ëù½® æÕ_ß¡jÎ^X†=±èN’Ä@š,2^;<I£Eû¬[ÑñšGm\0Ïe%¬_3YÉ¥&·ÖEôã|^†,Ö@#¨o¦$ñÝÎWÅjnÐ4¡-Kþ]PJ–›OºldÿšBMS²­-È„}‹chµ¶šÍ¸äqÝ–\Œ>þ5H—|ë\¡¡)Ù•ÜÀ®Â@òŒb­Ë”¼±’ýeG•Wv™ ×)‚]´2¨cÈÂæŽçø€&ÉÖ;Fu…µpjϧê×Î3uŒz4IQŠq?/Ô‡q, $¡ “ë(]X3(D(¿héÇc2ÆåÎÑR¬¿”§„žgf-…‰½¢ tM 8S¼¸‰’åÄSÛµvÔÁÉ«\2.O²þè¦PTQ¥Ø†*ŽÄ‘SÁ>ÖEow g´È¡Và¢PN{…¸ÑH*{ˆ:”?àaøÆ£Œ³nE´ÅMü [º…–%PŒë>vm4ò~Adv4»p-ñM¸E¯‹ì1øåöè²ó,(;xYýmÄFäé{M­TÉ݇'ÜaÏÁ5zc:f4Î?üìk‚ÖŠ­¼XàãWÐæ ”ø´³ó¹"nOnaÎ&)ÍB–Ì*øµ~¿ÉW–’û±»0­0éN³ÝÚs,‹Á‰á/Žkezlæ$ÒÄy´å2­“œ8<ƒ»o%#æÜM§qx .”"+ŠñçŒÕrú—]‡8ºî.07|Z!2-ãTY|W¸3Gïá|9‡ÿ&”áå‡È{'jOe~h–8}DžÍ¹šM ¼-p#­Èú–!¤ÐÒ¬ë¨9´^•3B xVoîtÖ ¦°«ÛWk£ãMþ Ã®^§É¾½UqP¶²4BÇðe þ9%šUÃÞÀ¨)΃s(¹mxsË‹Šge€«ï1ï±½žøÑ@F´ézJ•Ñ—qV U^-Á“øV ¢ýÕh˜ïÌ» ݦF¢Ilãö?tk"*æÞC·¾®umŠ®È›?{ÿ°Éo…ü¦bªìfïZ®m㎱­RôSý‚§Õ:7·†ã3-aê„Ö﬙±©Ùw½H%ÈôÃd´ÓÄaåe¨sºól‚Qb„—Qôló©xsµ•üUŠnЄ0å†CÒ×ë¼1áiF ä‘þÇ«•%-2¯.Ø'`~ÛIp´}‹Â;ƒoÕ»ïÒ™^W©“NQQQá5æÐ/X†á·[<¦ÉÔà;ˆˆ?' Ж~fä`ëîµh3Êñ&žHh5¼ãõ& X¡K5ÐÐ}‘«ç)+˜>Ѝó´­ßÍçÓåê7Ê¤Ú Î¹wÒH] )u ›6ŽGV¸eG™Ðƒ§Á}»›~ *ˆ·ózûU[`šE6±^ ¯ÉϺjø¸ ,ÆElä=ôú†39/VIœÏåŸTpdÆ9&«r½£ÅÌikU/Þ­…)ÇyVK,¯ãÙO\rËÉü/ÝÁPþb ‡pè”ý6j2ã)†û{tŒƒí=²šf—ÔQ÷°6-yîêÏ¢o¥´ž•çŠÙf@Ñ ’f«lCœ€½ÐNB´ê'4$Ø ÎTÑ;5¶DàÆžúJ‡ûIǰ.Xs ÷v{½2ì¾GH0£Ây§°HöÖ’Öâ´Yê¡myÚFòÍRÃõeXäl¬+O@XüJÙÁ†UÃÛºáE™¾û·%hÆ“ÎûŸb8±dô³74ãu=>%Rã¹µ£æ€íf[j[¤?3¨^g|SÙäNËÏ[Û|©zŤòÞVo #pæuïå¹~Ï*<“„È TRŽª}S¸b×øèü36&ÇO8$—›q…t/T—8¶+~µû>ñøL¶//à†›…îóéŒ=ÏdUÈݹ"Bd@ßÑ*uî=홚m(ŸÐpªµ,`nÏÛcd„™í”leÜ¿.¼kjØÅGÚz¹Ý ~0@“°Ò¯ª‹ÄѺڎšOŽ ;ã,óIÖôEðG?µ¦:W:>.ã¯òÝéLAŠ'¤Ñkbz³¢;½~ÞÃ: cgˆÏs›…¨t:Ô‚Q¿Âr‚Æ[˲‡'7¼»\þÅà‹Ö£qˆF„‹œ›¼³*BTñ‚©i;¼©[W?>fÏðЀ!&F‚éRæU$ù“ó©-¬=TRPâVÃڪ̥õNóæ+U’èmy­!EÇ$…(ÉdaDçfgÞ›PÂl}µÂÎÞžR%Î×þ•[úr¯Æ{æ‡îåNfPk–ëu6‘„•…­Íå‰ç.cÓ¼‹»å›²­Äj鄎“\/Íêò¤yn?j”<¿ÍÀ¨»–¿gjšÔ«1x°ËòÝ{É:¹ RËçGþF#{ ýx­5m*¬Ì#ñ™ycv†ÈPEpßv.bɺKšÕ}^—œC”V¾)žÞî{^%DÐDMœyËÉsáØ6æ@IÓ7ÙÐ/ð~ø]C¡Dü‡ªr4vm<7éÑ€»n ¬¿' B•$”ÝM Šw†(¿ó°e®È­Q^<ÌǪXà/Ü-oI½—òÿß77äè!vm7÷qG+b#6=+ë’Ä> 6ŸTFj⣆ '^ðKᛯWŒÚ-ù‹˜í/©jö]>¦xˆêõÃät-p OËø±Lt^Þ”Ô«U7.Œ•Ë6ˆ"Ê3f„X¾—óí—Ô5OfF(í˜;ždø¸®ôÖŒßÖÒO2Û\nú ¿øNÏk“Í‹Òf´úË„NüÓt–Ã%)×è¦v¹GAJàŽqí¾í!¦7¡j^kOèÉm‘•œÔ[Ùö¶ÍÙv¿ ïØí¾ ‘IDÔ‰­ÁâKd)>‹ÏŸ†NF^˜…¢6åPnR"홋.„å“|šJ:)Ï­­q•.-,âbÓÉÿTBÂ,ü»Ôz AÆ8R£Q U±óGI’×þHØ'ÜK„,Ï’uÈ^òÂ/_nµ²ñÎ%Ô©’®8®/¼@\ëŽÊ‘gX'ùè¹;ÓAô¤)Üj€ê…Îè{„±%“h³·iƒU!ZJ·yéÉÏû÷}ÜÃÚCZ}lãð=p²¸H –¡67.þ[ÒHž óYhùIŒöS†ôÁ)tLhÕt£!”œ–ËR ß^MàÜgQö‘ì`%¸î㣑¾|⸒›mö.¢ øÀÊÐ`)zfl‡‹¼s5ê­°Ö0äS×v…Û6šýxûb7¢œÍW2j,¹“§[õ¡ÖGxœêP.eÚaßÉ~rlVAGWœÞä'f~!@ Ú÷O¦ÑxâóêvÙ¥eçŒ``øöäí ö©§å-âÔ>júR*³:§†öqð¥"½û0¡wh>¯ˆInöY¯ºnÙEcs®“÷SPñ!1Æ’Çô©Ü>ç »IãٚѦڞ&Ñ>ò6W{Í™ pÒÅz}‰ãfÁL÷¤@$Ë—BŽ#[[bȈ©#ükÙò„ÄÍ Ÿc¹·›ä¥ W™Í÷ûh~ŸÙwýHÆИ‡ãkc™ÏÐÏU¡mÊ(ýçh§Òù'BH~AB—U Þ ×l—Ó¯J£žW …wj7kì:J`J!…8§z¨N‚R.3oK×+à –0d»»^.Nè\ÔÛk*ç˜%úÚ’™•˜?=iÖé³}’ fÞ„zf~@1y¡œu,\ܨ½qÃ-•s¾·É4Q}´2™‹(<"4›©êòeÈùŽ…Qœp™Ãʉ®´³­ëÓTøÁ÷°2üq?lqšâ侦ÙÐÓS?Gä7J°pÉÖÞ|²ÕËÞéÔË×½,ª IìvÁW}ù‰ÖlÇefì_:Ó”Óîxe-èb&üÌbë»øÆ$x¿Jذ‚Øs“03\³*áKñå‚­“»£NA¸züÅ EΉí-\é¥1¼²Œò.ÌŸFCi9%T‹É_ß'­”Zç}$ìä³ AŸðlrªA­.n‰a­q(ˆ`Ž›qý®âïÂÅÐW>MÒI‰dÅï4G¥”š° ót0̆C7¬¤6—fŒâ̾_L0n1†½¡ŸÉƒHxyMä¢O¸•äÄj8¦MHŠ”2 ÒÍ7¶0Ì ¹2©‹óý° g,ÖEi·SÈëî.I‚0>MŽ •}aPß2x¶Ø_rõä`º åÝ3xµ0ª‘!VsyW fc<»õœØkê:Dì†Ú/ê|s¨Ü¤ô/Ï¡—q}­âa¸NF²— ã©H¬±3Gðs|µl¶~ÍOÕ1Eìn˜<>Ù‹v}6ñ•Œv@wüµ‹Ñ{)ã¹#ƒiK£/’ïM±9¹é£Ñ „XOE ¢ª¨)Á¹/Œºi’Y ŒêëÒ&Iâ}ªó›1œº6ýMv˜¬B8ðªØ¡‘ æÖs¡ÓrZ«qÄ–S؉èÝã9wUIy}Ú·}|ìÉËi1o­(ÇßrÍ;ÞÈ 2‘!%¦È_†Ùú.JòP¿)7Pæz°œ›©ø±„.¹ïb+ˆÔŒ'H¥Ø I. Ž×ôŠ'Æx*:WŒÒ(¹ÿf¶ªa–ÿüùäÍÏv bB®‹Ò²´L¹ðY>¦—d€¯”!ÖŠe½¹n}’à26ãIk÷vñzÿhçËq÷gl%ò8Â-˜ºªú,Ù,æ­þ¹¨–11_ÞÇê©…Ü2¨ïÜ3›/ÚxÎÞóSô"î!i QßÅýoc£­+¢a+¨ñ¤#­úRþÙÜøW!ÙÓ]kC½†¿Y‚Õ¡i—RQ³½#Ot„¦ôsâ§<ºsT¡ñ»‡©w¦ƒæÃN½ßS2 €ñª¤Ú£­Lwú-ᣗ; M!NCÐc·y©3b» 7ð¸‚1\³À]oÝÆX,ÚØåsÇ‹¦ \Š )þ1éüR׫u€RN)ÌÌ{\;"#Önéë‚EÿóÜv“,ýɱ2í G‚°¹¼°^›é´˜Øem‰O•¦cØô^§Ctd¼þЕɏBoÐQW&^cá¢H2ß:„ {ÊM¼ô ×ÿPIÀ ñ~«Ù€‡0¬Œ¤§Ùرþ*-ëÜIF®#½«dÓ‹MI@SŸ.èA¨ æW%i45Õ‹›Qh—ª‰Pˆ™M\N|ù&£%Ì;JÙ‡Rƒ< 1]÷…ÿ¯»·mëy;ˆÒeoË ¾¦Gc ÝÙ¢8=§éð‹›mIFŸá¦y»ó䋜uà¯~FÀ땳#ÇdÛü­ç&!0PyÀdžþ”yB ŸÜ¯ \¼Ù'm¸ÐÚSìc¬%‰¼$wQ]E9úgÿø³ªc®T‘hßñõ4?cCÉâQ0E’>ík®Ü‰1§š=ó;›%)x‹i ÁìÆz<›§”Äq÷Ç.?ÎÛÐí:‚ð±nié'´Ÿ’ç ú¦†¦|Gyv sq ;ˆ¾—ùá¥ëA05‘™‚»¼ÈãŠBÎP(u4j£÷\xýdÏÞ„,éµÎÆÞ6o]oY ÐO}]Ùê)ŠI'!Ï:ÅOMWiÉXØVá›ö~³ÑØzŽ^â™uù¼íVY|Ño¯ƒwb͇a1(+ŽÐã®þ+›éLŸÖv¹ŒJÊ+Šúî‰H%pœDëÀÆiıã–·‚¶]rÜ™n ¥Íý œ­À8ßVÏÆ,¡^p/ ›ÿÚp¦Î¯‰m+}ð+lôƒDC ¦î‚!(ĵì;X?á3š&l0‚ßúòAïU€sö@Hœ1ESŸÕNk8ÉËX’`ÇëãÚ~‹Àaì½÷q­Gu\h£¦ )Ö|12–•ýN¡ÛÁSÇ™‰—tï÷Gej×?}w‹F8º“|µýéÊVS÷ØÆe²­„ú3‚Ã^¿»`ßD­!‘î^Pýv´9M«UÒúênª ¬\HcJ?´¨œl]9œjµ}ÆÊ¨08ÞÃ2ôzPcµg3Ñdal{m9j4ûÙÂ=,’¦l1kÌb;ºxû‚ Ó _zŒŽ=é܉Ÿ<´*êœ2¨ú0ÓAcJ—Ÿ¯WêÂÜ›—ÇÏ©òlU’ç­àVÓÉðʾ,+˜€&¾66ÍÑÔ鯒¾£gafÛêGqÕ!ÐF^ á¾?&—½£¹2µ,Ýx[éíhï”f‡ã€«dmßæCÏ äÝíš’^…0“¶o·ÀÄ:Ò²TKg¨Û/Ð¥ú£±Œ#:¨ }¼¥¾Mõá…½-4òƒ1ŸˆÜC!j£Íðã÷lM"ßZ‚o·ŽÁÞž$Ë2óP➺®Œv§ê—T”IEod#x—ÒÈÙT'‰²ŒNOî˜ÀH2!ÖK?c=¤QU£4¤rªl•ž‚xÑ5Ø¿ ½u DÍ èmHþÅû^\?:“ãï8…qàH=“ÍÿP›ƒ*Úèý9+ÕˆàÇgë0û`ýë&Ó>í\ZTï*V¶wæ~3 ý¢g¸¸hô=¤áÈFòJ˯‡ê6\ñš0ýEâ¤Cý©ixg¦cþ*2ý†lç¼<ªÜºb0ÿ}Sž$~©5=^²¡r¤Ú79ãÙtò\¨Mî Åþeè(SSE÷Bb3Go‰¾¯&Áê‹Ó7û×mhC­>(ú©N£°Þ¿ò)ìm´¯I½” ¼7äô4—Óýt‚ ÚÚé¡…yHøSk`õ:¢‰Æ;q`‡=³|¿Dn—éÒíÄ–üÚ>{Õ :(m¢fuÝWF³ÿ‰/ï‡DâèÍÊRœûS)ƒ7ñ¥ÆFlÝ›C€îÈêÓ'ƒº'ô7–=a 5ÍkÎ$Ïš’€Øå"âÉá±²b£«SHÐé!+Rhúfk9døF¯,w¡0a t9†Æud&/ѶØ$)ʪµ-t¤É¾U#T›ïµù‚5Ѐ ÚÇ¿ù•[kmi킥ͅQÞyŒq?îõëëj„Ý’ö§¹#)uèm@ÊòŸˆ¬ŽK±ßC”ïUEOBÖKÚ¿Í.è!Ù 9‰—T~NOñýógcæA²§qï[ò¥Šáµ±2Âî©ì4VRh"?U\´…iÂåº6ÒB¾‘ m` s ªàÅsùç#š:_õt2‹¿ä5B/Æ8` ?1æ¡»J ‰tÐìŒ÷?ø)¬S*¦.%ð ãMeØwNÛP‡(3€;gæ–'ò‹õdê ÷E<ÖáÈaYuÍÑ5yîóµèW³PhZH÷7QSÆÝ+Z­Æÿ½Æ;žh£ŽÈ õÞz£·wXÁÒçq1iÈäG2õXüUB?ú^†ú»@ê8Æðû6!ÞnÂO¬tÔ_€¼<`å‹ñ…RÒkkVw¾©áÞº»ì+ª‘¹fìã®5,̲ÐF$Yjwß{D^wvŽûi-ª!¢}ø!j¯[¼Ru³íÊ|"";´šË,)‚¢Z­?°&’§ÃŒÙuñ‰Ñ4imèݰ? ì“Dït(he”<*ÆûŠŒÝ7›ë™ÞëtÈXDž –§šÑ¶Qb¿ËctìÖ’S' ¾CLdAshŒ?z‚5¹vPð…Q¡ üÂr|_Î×çx5µG™mæ¶´?C¡2¸¨ö|aEËfw| e+¼d”2úÀ”ûëåY›H"{Š“ ÄžeÁÍ= ÁC/}8"ÐçÓKoDhg¬Õ¸÷>zv‡½j•[Ýl&ç¿Ò0Í…DïÁj¯b¬ñäFóâû¨n8U‹{=óÝÍ÷iôZ}À= 3ušÅiÍ- †Ú߇èTC Cë¾Mz¯›î [ì}W±xø˜¼^ý‰ÜÀ今ÄâÃô¤»€‹ó‡ž«PoaùÝiD[äã;Õ¸÷tÛìWÄzqmI¦÷XGÝ›åÌw šO´Öù9 $¥FŸݨÓÛ(5T^µ â©Þ(RÉʧmZ„6†ª+ž¯ '·æ8aGÏäqY8Ü+dL­¬×Š,)rE$ͤ‹#™ßuvŸ«‰^°ÅŽ[ñ|#íª·`õ†¾FTc¾ÂÛ“\ž-UÁ!cn‘ Sb6æw¿dtåw˜¼½µ†ï©€§]m$ѸP~HÌ"¦œMþ\xŠ©âa[¯û쇤,_â¾6m׺¢’åÈèÞ°D8Vû­o'À£ï–=Ëv]Ö‰s«¹ù)½ £®!žû—¸øz½§¦rI=ŽÈ:}qzl5QB´vp[ñôÞ®mné{¢)_{‡êæœó±e#ø« +M%"g{Á¬®×e T2]c _´Gó–±qóÐÓy“$ÊtêÃ.Ÿ¨mÓG©ØŸ,-1fš„%ÍùëÍùäÔlbŸ^9%¸RsE›ï)·,0]ú©*–6–"öS’³yn8)ôhHN§¢:d—l;–Ñ\íÕ¹À…énð:FFC(r3–Ò[ê¢R;úK]RxêiÖBŒÛ@ç©íç©h è×2„oñÖ÷ލcfÞK»<4tç†-Ûß×dîSj¤)Ý4a²),}ƒ¾¥›ë¦sù2CÈñö â$­Df²äöBA ëXZÙÙoÑ7Ž…d±0vuðÈ>ùôÖÃîyæ!o‘ŸYYÑÑpé¯}½Š^£¼ï?h™^]' \¿/D5˜ñÐYL«qé"½ Ns5ñlý%5€D÷F¬SäˆÂ[vê÷u“õc &×|â`%K‚Á˜¡¬i‘(-3Ä&3èþuÑC ‚„›çiXô¨]ù¯ÊӤē6²Ïɦq-j.JËVíò2¼–iûæÔÕMK¶{)Hw;fâä]ü¿v´hSg”a7<¥V꫿в¦Â‰â–R#r1’ÓûKôœdÒðY6—D¥ë₤ø¢hÄ¿‹!k…5i¨c±·|œ‰M §?Lðñì o¢9~ŒáV¿˜ñoZià¡þœÝíli–­¨¸šÐG‹ô7¯Ž.^Zóm;6Rˆl”'ÌàÆ=·NGðjùÞ©y)zcª¡aíofïÖ) u–ò…öë}²Z¯öÛìd&Î]Ã!T‰Ý»¯_ ÜjXxÄÊ =Í©@àD:É$É]9Iív*ŸâÏÙ€rðòïW,{ôíM…šÃXû†:´ýŠT[Þ,.} ³ÎÙÎ Šcõ¼Üˆ7µ ›¢öUö¦#pÉû©yÙ;“\c›¼) ò[ÉnŠÕ®7DRK©øœ¦ù­}aÉ(ÓòB™»“¸ðð-ÇÃj º{©ÝêBýv·%—íÛprEu ð¤EI0wn˜'óÏUÖ';o¶Öµ„›n”RßiviËÙZt) y1°”;>·Ó*¾Uî?‰¦ËX@kÐu‰vÞÓ:Þê w0=ýfŒJDƒ¤z„†æ$†_]Ô·“ÙÚ "ÏîúØn}ÎÒ·ªýMŸhg®Æa©[I‘â$K–Wpî ÒÈÊ20¦<“Þ™oÚÄxž’¿µª šÐ/Þ·ª¨?þSˆ sÀ͘y xN%:+×:€@þ}#ò„¡ª¢!¦ºnÒ.~¹e^jBÈ> endobj 125 0 obj << /Length1 2417 /Length2 19501 /Length3 0 /Length 20908 /Filter /FlateDecode >> stream xÚŒ·PͶ-Šk<ÈÂÝÝÝÝÝY¸³pww ÁÝ-h°àÁÝ‚‚Ûå—³“}Þ«º·¨‚oLS»» #RT¡2µ7ŠÛÛè˜è¹"rÊLŒFFzFFf22UK ð_1™:ÐÉÙÒÞŽû' èM&jz³“³·H»Ø˜XLìÜLÜŒŒfFF®ÿ1´w∹ZšäèÒöv@g2{'Ks Ð[˜ÿùPšP˜¸¸8hÿvÙ,MŒìrF  í[D#€Š½‰%äñ_”¼ 7ƒ››½‘­3½½“9?-ÀÍdP:\¦€¿ ÈÙÿ©Œ  jaéü\ÅÞ äfä¼ l,M€vÎo.v¦@'À[p€Š”,@Áh÷±ì?´€{`¢gúÝ¿ÞYÚýíldbboë`dçaig0³´ÄeéAî Z€‘é_†F6ÎöoþF®F–6FÆognR½øoyÎ&N– gzgK›¿Jdø‹æ­Ëbv¦"ö¶¶@;3Â_ù‰Z:MÞÚîÁðÏd­íìÝì¼þf–v¦faêâÀ fgéè”ý×äM„ð[fØ9¸X@GÐÝÄ‚á/zUàßJ¦¿Äoøx9Ø;ÌÞŠúXšßþ x9¹ ' ×ŸŠÿFLLSKÀhni‡ð›ýM 4û¿ ßÉÒ Ãø¶{LÆ¿~þó¥÷¶^¦öv6¿Íÿž/ƒ¼ˆ¨¤´<Í?ÿG',lïð¢ceÐ1³1˜þZ2Ž·Ÿÿ¦Q4²ü7?|¥ìÌì\ÿdûÖ¦ÿÉØõß ü÷pPþ›KÞþmkÊßK®ËÈÆhòö‹éÿyÕÿvùÿÛð¿XþoKþ¿w±±ù[Mù·þÿ£6²µ´ñø×àmi]@o@ÎþíØýoS à?‡Vhjébû¿µR £·ƒ dgnóŸ6Z:‹[ºM-A&ÿlË?rµ¿N™¥PÑÞÙò¯k@÷6šÿ¥{;Z&ÖoW‡óÛJþ­¾œÿ)fgboú×cfc99y ¼ ù ±¼˜Þ΢)Ðýï%0ÐÛÙƒÞ\oåùÌìþš(;€Aè/Ñ?ˆÀ üqD~#NƒèoÄ`ûâ`0ˆÿFL‰ßˆÀ ù±¤~£·x²¿Ñ[<¹ßè-žüoôOá?ˆó-žâoôÆ©ò±T£·úÔ~£·ÿA\oÈè7z‹gü½Õ`ìddb |{Ì@¿å,ÿ‘ÿ³ÙÿQ¼%hòÄöFfboó6Õÿ‘°²þ%±µýð¯q3˜þßB3¼µø_ØÿÒ;º¼‘ß.o½5ûíò–›™¥ë©í]œþpx31ÿ¾%eñ;Å·^Yx8Xíþ°x“Yþß²²ú¾uÐúøVõŸÙ½µÄö7|»”þ`~»ìÇ~³}{$ÿP¿åîð[ýæëðöPÙý×0X™þ•þ÷(Xß’tx»Zì7—õ­nç?øß$Žÿ,opt±Mmþ›Œ…ë_Í‹™˜Þ<þh,Ó[Ÿ~³³½99m-ÿ{Øþ²ºþÑ^Ö·þ9Û9[üAô–üï0o&È øÇLß:r³ÿÃáÃåø6×?à[&n¿!ó›·ûðÞãøÖsÏßɽ1yþ õ_—މ‹Ó[ÓA? o7Òÿà¿y Ðh‚°4ooÂlõ%¸ý®Vè£ÝÞß ÙžÆ'*:¯%§—dتšÌÀ §¡”áÔÕ1ÊkÁeÂg¯_`ÃZ“”Ú½Ÿ ”§öÚ'1¾þªïLJǣSÜ÷~vôV°†ü þMš,×Ñ…Y1ÿÃ[Ÿ„{}ùÊXèüžÒ~ » âSù4]ŒZ´n@É,YžqÖ61 ˆŽíÂeöúf-çû+¡t ‚ÏI K‘—ö&sìýœçZ¥*³s)Ž66>ä5ÚØ¹—ðaª4Ö‚WiÑêÀ¢ûWÞ"Â$Ú´U:TúCæŒKå(»æÞ:×±¥N¦ÝÜ@0ÅÇ»IueÍèNÄ 5mQ@u,Ö@üÃN3áµöõn3«4¼e®éúWÀ,’–Åÿ–n¯ÇǵᑺÛÐ´Ö»áæ‘n~‰ç&XïÂôøÑèÔ©—M•n k_ €‡-:Ò&œhaÇÿóÕetä‹Yd˺š›PÃ2^]Æìpãdh J˜¶ƒ…âDPXF‘¹.[Dƒþ:Ÿ”mµí™%ø@×ÂWí¬ûeýš7¤‚O·K œtCT \í~rÿ‰=%gÚ]"OÉn°âãçHœ]˲ùäl¢…)Yf0¬:ìÏïíùQE›…h™¾‚Ûá£@ú—úSùƒ"‹XQ0wÝ{Š÷›/“BÈÒ(5ôÐK}_D¤'À¤Aå`ä½^0ñìu$ꓽ“]?ææ%ç>&]E1” ‹/˜»‹³%ǹýT 'õ®y °Wâ8˜HCDœ2ômâÍ"`b,ó†Kåm;²=oh¾_Ì\¶¸XÏ Þ¨:ò‡kl¬­ÍÆ1¸âHý‰h0– ­“ÒyÅé®ÈËÊ4‡Åú~' ¶Œ‚ÄÞþµÅÇIÆ…éˆåñ³š´ågÌIPÕ—©Ÿl‚ù_2Ý ÇsÝÖÖ}VVW" ƒ[©ÖüÚóúš'Œ}“(\Æ üŠK9é{¹-ÆÊ±8W/ö ìäyÝ»^„SŽãðgb¾[Èä,Õi-úUìãaªnZ,‰/£pma‰ì|JäHŠÐ^fÆõ´jv)ERR›Ç£‡Êº$¬M.ì³ÀñᨻA\8™±rf2ódãϰ[é1œtZ{_¹Jæ>lÏu—ÄôܰYvêÏmÔÅHý=HS¯\ß&J7ú d’1M¨°G¿ßné^˜ç€ªÈÊvb¿÷ýz´ƒQýáÖ‘´ßNšk*¯+Ò’Q8±¬p3ÿ]°HƒÙðÓ‘HÖtºzç£ýß]&u†è!a>Áº_§DŒ‰ÝZyöž÷¤§÷“·ƒþd}Uߦ†1ַܶ˜õìË{7ÕÏR£(.‡y¶gâ0XÜLÈp‹©¦peCì·]Ëë|q¤Ò`lY;6•K7ò2º3µ5Ùžw¥\ÇØ|C‰»”cÏíROò ó^» häOL²®&s¶ЖÅ]äCÄr'Ƕ}‚Ís¡UØ…U¶«ÆdŒKŸ © ?ÿ€íËKÚHb0»îͲé ScÎã&P¢R–eØç-Çñ}wŸ*宯„±Ð‹ŸŒ·½¢Á‡ù™4÷/x H»r‡¯ìþ¹uú·F lB8A¦y Y`â? “›X<HÒwLPää&%úµŸ×t m+_[=¿G‹ûÁÀ£Ù”ßW÷HóW¡Õ…ã4„ñ|Ô©â¡VU†V,qhóÎÖKΕÑ0[0‹:ÚÄc!Ë;³è;d¡¦üÝï Š± t&4ÕÃßc ^ýRÊ­ARU|½v ʽGŽÐ&:¼,ã9ùY$=´$¹`þŒŽ6¤±ñÂ…»*ÝÎÇša±³àJn(¹Nyâ¨cÔæŒ£hW0P—ïÆ ÕÄÉÑ ;ø‡òx­•ÁT)±`ª«ó,æµ‡Ï #¡U+Ð+doZÒ¶srVÌô††˜çðéòm ‹o>Ȉߩæ?~JèTˆµ¡´1¯îÎZ6ž®ŠY#j9,ŸKÕÝz¾7bUbªóTpm;ªµ”Œõ­OóMc3ì=ºá`«  ¹çñd³=qôbß_”;!F嗹ʋvFÉIpp‘JÉZ¾' -šܲ³a÷“†Wh¼ä•ßû¡8^¨+$„=âšä·>m“O~Ðx§µ·Ð@±4¦±<¹DÞ•Ï xÁÁøÌ` o¹4íoœÛ#‚À9Øç)$Y4—ÃŽàA©“ëþu{ Ä$äRUžõÎAè;½kÊ"³±[2 TVx&ÄŶÀû²†ØOœNDà»[ÁCÃá [èæŽƒ¦µ- ¿Æ&V=¾z˜„†—c°ú5U¢ñvëâÈŸ’@èMó‡©3&ÃUNú+š³%â‡+~ž Z?Ïá†)2û¶š\wÈ!ÆOÎïç‡pÐ4˜ÄÝ¿ŸÍ¦mÌ_lbÝÕ=®—ßOeë‘xúb§•8¸^v#eá‡&¤ß,ö—Ò; sEbصh‰T‰0=ôÊMInK9Á&­åÃf£djÁsgx ºŽg“lÄ(a£å¯"‹Áy6·ŠL_*{OÁ«PŸ6¨Û#yŠóRvú?(‡tî*æâm”ˆC3 Q?Ê·Øìî#ÃPJš/²WìèÛžzäGZßA<ÅÂÒ~«ÈµÀu¢ãÌNa¸SE€tâ´¬qÏ-Ÿ\t2äüB˜WË?¹z‰¾˜‘ êšC‘Œ¦øÒÈ®­$8"µ´ "+Ø}MÍìÒ)¥âè#ï|ʵ˜°ËzW‡s¤E1»bÔÓ¤Úû“BÓÉov#ÁÎÀ.RZ6Ž2UáËAîèäg„ªFy|/ñÆ• }ë ãõ»c_ÌSCÙš=¸£Bµ<ð¯ý^Oáh®Û粫­ûù¬I¿˜>‘ú}p²z=sNA︺´ÓÞ€¤Noã+»q¾¾°Ï@7ôJð˜G„#!ŒòÂ2£×ðÓn:9'ØgIJCÜ4v1wVüdJJ7¥{S31›A.Ëëð ­ÅæÃ;ﯾ œ‡ôÃ}©M4fƒž¥®A„[_„=«GÂrB1 ¸Î¶ÃÁ@_µ_/„õj‚qâÌÚ"¤®„a›»-Á"ÀÝqì‰Ãk z¨èùþ ÉH¯º·±ž?ªL‚'LÍr%b¼?lŽO|·¶ñpV&¶a¤hv§èÎê/’‹á} «ñÔÀ³"A0Žªõ˜EøÛÒÕÓþÝ–¤.ñL…ÌSêDú© ›üW¹?3‡t›ðóU£3äYd“9å¯2w %Zd¿Nõ6çx’„sK7¡2)—;:yøƒ­G5•e#N¤ëð‘UÏFi”lŸ²°>¾²°‘Í·îõ¹ ZYÜ_ØäJj 6öÏVÐÏ#a?ĶU¡4~ô+}d°* Ùì_Ê#òY7L>û!J®ç?T¾;¯¤ù•Fr£äe $UXÕï74G¿¤…÷SpÑ£Â)Õà׉Ýj@R§ÂÓHHšNÉ.5*MÚ`Sß dÅ=±Ñ7s Ž'Æ vò´TF8lý‚Ø×Ô½JX“ЂÀŸ|hóMÉ!!·"ßo†ª+´)ë¾±è’!†V‡âþ×kî]”t•à1º{E}%£ÄÏD+ÆŠ’#DlÙ`²µ*Å׋lTžlÞxÇv‹». Y¦$Í>Û8n‚cÂBŸãtQ€ÀnÔ¤'“ˆ M^"S¯/pB…y‘¥B:Uny$8ņòçL#)A+pXiÁÖAžM†\ãéMÕ»²¸n)™Zµ©ýu¦†Õ%FÍç[ßAï¯Rt5ÀÑhªVÊÉ1Ø=Ñ,¸ܬÖ^éLŽ Ù¡I‘XMË ÁcŸðÒ˜”ÞG¦[ÉÕLë{ ä1¥PY‹r-º½@_§#6€œ¢–DÙÜ$T žTÙ–fTˆ ›âÚÆ%.Â]f?bVoP󰨤UX>êŽ3†F ûj*Â>}ÿòä|MMÞwë´êe›>òÔÞƒåϵ—Àx*³©]qÏ ÃæÁfü)0AIòTÞWèöÄ3( «燀,ñ@<Ýõºr–þ+£*!"öîŸ34èÙ&DîЩÆßå^æ#¶Ì|X6R3~ŒîK”¥¾¯: 0“sž‚%ÔÔP{öyºilnÑêkŒÑGôŸ] ³$’ìf©D ¾ÝsêÊüØ|Üh76Þ¥AVˆêö"IºÌ²¿*õ?O~¢ÈRb2æq'i‰%d¹"Tã.·2~ºBÖ’N€eàÉSx=ËÄwR_èÁq׫ý ÓÎOµ}žÓݨço“uÉf߉ªs7)΃J+O^JñÁ²,R·N^©[êRrvü×$a—€*÷©à¢ø9Öü+"¬Šf÷co%U›Å¦ÆDqû›•ÏÙ¶—ô±œÇÍ_¨ 2÷ñá$ÌëÔ›6/&=Igê®ÖcTá]bšœ,cû?Ý£xÃŒ‚:­˜¦2„œ^"1ª»¦ª_pƤ]{he½Áá/B¾§¨¯ÇÇg"|zÊP nÐY]çUëÖäÆƒ \^0¡¹!Û¬ƒ?•o[Vaã ½ ê®)Ï&îïˬ7?T=j_ÛÕ7.Ó臃Y¡üBM ˆvƒ©¼;¤ÂˆŒNÚ ÑG—'rªêÕò,â- %ÇrJã2•ùhÈàƒ@gg÷Ôµ¹D{ŽÌ”aÅ¥¡ÃYXÓ(RÙSŒ¯*— êÃì[}ÀªŸœ;g^œ”TäèÆª!8ÕÚÕ¦û">Œ&&—° ÷yH8b;‡ Lï'3¯Ò×ýmß}H ý-‚£±“Z¿‚A’åA/Ób·©`|0ËËcB{8.§¤q5/;ÏQv½+>EƒSÌ€ˆFU@»’ªƒR‘¼²NIä­‚}᳆{9½éÀV® ÑÁBÚ¡>n5Ö bõªH3hul>¤z_…¦EcÀX·^Ø:<ŽÄVc…A[±ÞoCƒÖ˜¯÷Ñß2ƒXUÅ¢Ææ|SÜ«ÍúàSfÛÔëöÏàÚµÎq´f¼s÷å•_ §Û¾W€†­¢$$ì?Z²ªÝ1ÀÇI½Jº2Üt¢83¨­WöâèÇ 6¯w¶½<‰øWþxv(WšmKƒš“MòYåç¿ú°l÷¤6SƒÚ$]l×{Í«w«X9î$™»4„¿hì[¡cïÎ+Å‘ü M‘êIFÞdúRšÀ ”êcîßæá£ÆI[ÄÛJ¡áUؘ¡R+LAvYp1OÎ_F&zûo¹1ò&úežI@C¬–F¦ Õç@k =Ý=BðîdÔê¶róš§T‰\ž‘„æg:¾ªõŒºbnA‰cÀÚöô#ÎÌmg 6>Ñ&‹]ÓJ£ºˆ£~³%9[R_ònhFøP9§n¶;Üû_ÉäÑTŒ0“ÔççR#^…fÈ—DŠsoҫ˃Ÿ IBØE¶pìÿ˜¾ú)øÛê§eØ›=€¡_YŠz ®!箲uO7§€®ÇÒé$¤ä$3ÀÞ8Æ‘€(ìùþñ¼†.÷™ pù uðÌ|mœ´œØ'ƒ“û;…³$’T¸²ÏËÀ°ÍE|:óìŽpú7´’jŒØÙz_¨#ÙvKUänq›é*;â3mÍÁz¶¢¯¢¦­›FäVº¥¥”vbD|Ã50i нK›j¬Tx‘?9=¾&BÔ]ϼ›› T„Êñ3%4r]\¾ÅýܾÀ.9¬ÊžÕ=äw×WÖ|¹¯IÚpH,þh»Ðj%ik˶:õèŒðbÖÎ4>¬Ýµè¼ì¥àcD„èæç ]G‘4cîà]ÞÞÑs€g{k¦È'Ø<™:D¾#H…{o%ZZ ”x¿¤2<B÷5å¤%8ßдB3•ËËh]„Ö—G®é‰k>+ß#ûÞ+.óÅÌHpé8r Š•Ã NNì«L +‰ós îræ›ùædB\:+TÃaÓK²w³.&Õ‘¶‘9œ¦Inâ µ}û`E0‹OÞà‰ŽH·/„Š¥öã¨ÝöõÚB5¢ˆÄ_ZvÃ!vœòž½Ö4<)¸Ÿ» °o=™f‚¥µ0øƒ4Åк¶Æc¼h¨p6 =­¾%¤2um šÓšŠ¹ØÉ‹ŒD³žÊ­[m½- ë*y¥7L5~/êTôM±ª–Ðà눅ùþt¨hdÊóµe‰çœt%±UxÜsûœB¿UóÒ·Õt~ÞŒBÛ*A%͆,ôÊžUÃŽ î"z& Ùq¯#.u\K2¤„îÍ-–]Q‰) «úŠlú}hΊBé ©y|‡§üPC_ã-†œ£g §ïîa8|‹kȇ·±“PNE'á‡åP]Vßqú²!ãÔWBÅÙ»ák!”{s¢W)¾ÏvT ¾u“ò­kBÍÔˆ—¦=N´°•ãFéÄÊÎZò{oáQvPáÔgH¿ÇôæcŒì°× šø¤–BQÆqpŸtñ<Âß”÷z:þa½>N8.üŸû» ÃýAÎZ¯KŠ´b’uyy-D‰-ÔsRËy,¦Q±9îØ©éÌ«Ÿ96_2V |ê?Q—lq…Ž[(”¡Æ”ŒÄ6 ´¾3ì„r2Œ9£%œŸŽ†¶Úß;<=o|XøT‰¬f©ˆz¶8î~«²ÿP¨ŽV®¾o¦lÈô½çI$”ì¦BþèœÈ®3Å_ê;bzes‡)÷†ur”Þ… -ªÅš c”ƒ¿{tLòQöú§u÷-)ïE{”ç@ÝCÚ Ëæ.…õ/åL5âäõ¹¯_BjzK83/«œsŒãÛ9|B¹#J³CºåÑáÍØ—)*¬òlÌû½Óúo Z+f=õOÈs˜¥µœ0…ð$÷·¸iQX󈧶v|€uY'ðÓ\£ó…+gK%3·«ûÒ±š«C]³òFï'¶ÏÅÆ_Èš¬ÇžÜÕÄ?>¢bŸÞÈ>ê1Þf¹;œöÂpš3²4$èGyw¥dk”‡ÛQö}%5.dB*Jß:-ÉWU_0Ìütl(Ðòþ„“ÔÕH"pLÕ¸…?=æg`÷X}?—xÚG~¢?ëtdîZl·m+¶BWØ2ŒDˆ Ðü–’ëB))šß:§\ÊÄzÐYtÄm3‹Quƒ^Y=C²øšRÁìk.•r®·»-Ð ýÕÖ8*™%â鉊°Æ *‹þœˆ’õïE:€Š( õ nÀð„°M™pöâc\ýÝŒ¨µð†Œ\îW^ P'F#ÌmÏñGìO½Ø­À¯H^»Áß ¡v¿ö'wÕ¿£ D þ|23HiÅ£7ðð¸–Q•À[Ô~H½n{“3Ÿ åA¶óBã·OÊñ6·<ÿv:Çf©ÿ)YF)¬ÖçÆ"–Óùq°jÅêÀL÷TÝS[q’)åoõW©¤¡èf~E»ŠpMjq1] 2£Þ½øëÎJ]j2]_Ê»äHÙ2ÄfV>­ ç@MJ"—®ÈÂãîKp¡_n6<ßx“¯fYÍŒx‡©J|K¿ã?·- /¹T–XG%ϬkÃ~Æâ xϺjçY᯸Œ‹$äÆð³Âf—ëp¯aPOe2:bS Í|–îE«¥òÛJ;¯ZÁìõï'Fyœÿ8÷1Ä0× õÕ¢sYš@Û=úã}ÝX|uß6''wê§Í¸&æÓJ©>.Oq¬%¾ ¾ ¿,aE‹&Eó}²HÀÒ=– W–`xô dDJÒ1¥®yW]9ùïêŒòªÀë/‘®WsiáJÝÊžd—¬ ]ºŽ¹¯Ú"B73À>f,ÁfúÈ¢ã)ÚÔ¢sŸËV``˜G6UâG‘8DýÄ_¼º4Ikd^¿Á¦õ[r¦”%-,Äšfo!šÂ<Ĭ{_Q¢ž©ã…ºÉ~4bHÕ_xšûìÉSwJÝk-¶Ðfž<©ÏyˆÐY=-É×8Dòª‘_Wš²rOoÓ=Ý ËU>ÖÜ^ÈîYÝ-’¦…¥nû0ºî·9HËò>öˆxkdxÎûÌ6&?9 Õ¸ÕŸ·AÔ*›W2ZëèΦ¿š'ÃLiêLÀÏúp|çÀ%Œá¹Ú#s¾‚iX<çNZœHæîaŽŒu/}âbr=ÊÖ°1Ö žëÐ+¶4òþû§šÙÊ }[MÑl«jÅwÂîâènmŸÆc¹â(­Ú'¡z‘÷b×OУÈÜ¿uà[×ô ÿX±U°þ)þ,šz »UbyßA®í .ƧºÒ ôåÚŸ£‘úý%$*!=rDûZ”V—.ÅÊÏ›×´‘ÒDrêØEÄ$¶ê­©‹¸;CšÙÜ”ü±œóÔ‰.*nSâPF¢©˜‚mýOgü Pª3„rÊám°Û"l÷åµù©>IíCUª8uÓY™œ»œæûX®AUáá·7‹†ÈZ¶lÄZ…äPN>þÃŽp{®+ô§ ¨Ú‡jTT”äúbç%Üm)dâ‚ ŽwJ¯6|…Ò:Lu¬ØÁK®¶>U“m"Ç奦˜ÓÎk¡*~}xÉ«KZçÚ »;u`öXö7®¥eÙüªâHmxp^¼XšŸ³¯¦xO!'(ª»;¦#¯”nFDcN©M¤¥Gš½êO)à‚\uNQÅNÓ§ÑhÔù~M¢ó傈­Ä¾3‹ MÏKHÁ°S)Ì)ÒØ^¥=]ý`I¥ ={®:VãoÏIhvž@ÖڡΠŒ#Ö¨¢’ýÅ “ç“ëågÛýÜP<Å,jµ×ReòwÝ÷Ê/ئ²zö¡#àù´Š+]ç¨À¶I†ˆGâ(xõ£GóÀÌ«‰M_à=×ãQ;%{„í—ÁÍìŒ2¨¢ÀgZ ÚæëÐaÌ~: Œ'Ì¥C¢šš,1ƒ ÄXåãã‘s‰Ró>†P½`‰`´Õ²æQ)æFØXIBZ´þJJŠ |>°÷p^){ õBQkL4hT"§&b$£k—V$ý&Ú¯ßÒ`ù":c,ÑþÈÙuôp•%+æ>Ëx÷"žâ2xï ƒ€7éF…÷ ;=ÊH—¯¼˜ýaÊõÚ] ¦j—TVÏsÈàÅH[?BýÉŠºˆ¹E}† Æ7¡Ó"M‹ÄlÏùçBèüÂX§'N>Öò^ÜÎýSQ4|®,ɧ¡ ½%{r­âyûÀ1)ÂAL ¢±ò5UÄÕ¢ªÓíc. L±Ê\ ±ô(#湯þÚTåÊvÒÞël_k~6¿QÐ*uŸ&~ÓLõ0Y‰,jÝÙ&b\úe„Þ«›B»ú³Î P8µéážxÝGÍ$¿¾C ¿~“rž¨3ü”É¥ýuQJûp°œq®ûdë ÐÉ_Rßu·$u†…Åm©à9_´×ìÝî‰Å? —`dz0µÖPñ¾)”Œé –Ãgˆ©c•‹£nú¶LÍëp³°?´lœ>†¥:ùÓI97ò^V5<¬D™ve3{Rq±ÚÈœSKTszVüZÂ*­Lã¤ß^(½€¾ü6Èz?›š©bËyÅ%¡Œ.ßì³æqLÚöŒ…ßúDƒØ©ô®Æû‹OúÓƒŒC[Ì»]Wž¯ŠÞ°åüÕ°Áiô‹´ìjÎÑO- F¦ÇO–ä™ÙFWÁm3uΕE°Ý££^ 2ÞâœuÉ_;2Y‹ã—/ ´Ë² ä‡x·[T®¶”ëÜâéÔÎ#Öb„tbD˜£µM¥ˆ4Ÿ’¨ùú|XQ†áäÌðvÄQëM‹x¿¼Ç”1OŒšb$ÊwZy]YjeQ¢ã˜ yò&O_9j¤+põÎKnS]€µþœ½Ù‰7±EÿZòƒzW }ù>ü!p õUPY•ýqå4€ÇY@ôER¯) 4AaÆ®sÃäOÒÖfÅÛbßDí/í²DÁaí"§®UY?ÞÈs’4«¬,&ï;È@ãU¿Ž{Þ¾oanP‹ÂLËFïcÓà×we/N*nHî›cF´LW8¯æà‰½Ø}9jÌQDâE~|q¼ Ç­ý0ÁbÅ$›Ù:Ó"†ãóíB 1¡å8pÙHâTuÆòûgÿ:{µ–Vþ5ýü9oSKœÂûÊK‚+µ›cèÆ¿nÒtîxÍ4t£Ü÷º)/]îzÀ1%•kL¾W¦PWuP ê7…ôª¾Qmo”ÃS®J·Ÿ_Pó¿v¼‚îÐ0wþš08Ñ›SšŸ·#B.ñ³¼n“ÑL†[,=±˜F5ˆ{2ëÞ%¯: È> £áWPsÆU†¨®"úÀ@YD Xç£ËªgŸ=íƒ!úKL]Zpô9•l…ÅIæ•L€Ø öeËaH·"„ÍÁf•^oìþ¶X˜Ä)Ýüé”OÔÛ>¬_ —.Ð¥ÑÇ‚çÜ,S ÿšñ½äÌ«a×t—ÀÆ¥† ""ö€ û6µr4‡…¬@²3€QÞ ª(/:Œý—ç÷ñï–5¸®Ä7võŒÓ?®Úw4*®dµé±î–c'¾ígêZ5aé}o@«ëVµøÊ}¤žo ã¥9#Ñ7Ó„0ùy^ÌW^·Ê4g2·+çÈ÷µJÀ.™'„õù4¥2´„¯_P·«Ä¥¼–æî]J5$|næ¶g1¾‚ŠÄ7– ßCk—`EüÒmW\Âp$ãÅEýkÄCÛð׫Ÿz|˜¶õj×Á¼C°x.”Q&…ØM¡OOßЃíšèç%—+K‚ŒCæý '¾Æ0+þNÄU6¾ú!µÛàÄjÏì †´<óì`º‰‚œhÍÞwXûó»Ñ*µ|†d¹›²j¤Dà?¿ƒuáØýò8¾Êß äž‡ÈEÕL“:_2rÖÓ~ ”LJ€$¸agó>ƒ:˜íÙúZ,~¿jƒŽŽ·óiJXâ2ž©¹q jÜ:Vt¶%ÆoWŠËïÊzñtØ$pÿxð«Œåqåúý$¨N\ k÷5@,¥8»d£FBìú/¨oš]t9h4tw,ÖCŰVˆsÊÛ5›rjOr€pàå×ÖV~f…UGGE³¢èÚñÍ]êUmBè€AŠf±Ð¨ Ä!ºÁIµ£oSUü‰¡·»Öγ’A5Žæ­ì ¸Á½Ø ºþ O?뀓s¯˜e öÍ¢rØrÈbÁ0žE¯AKqƒU?sFðíŸz±¾ QÙÐK¯æûôî’Är¸P*÷Å=²,œuÌ%Æ:ßèuæ«h ”)²O‚nÄéÜà¦LùfÕ,e•Ôw‚‚dkG57à„=Gs.Š¥¸6h¨»Ì1r¦¨E^[U­Fø}…ìÆÚRøyT(ƒö^` rI'5ÀûÜïL ±O_@ŸÖâqÔß~@Ûj ÞEdEE*~¸ÿ´˜fWºœÛlöÊyf#ÞST%UT`‘K3Þu>±²M|êÄ1oYùZx€ž+pMöô(–PDòîNï,:˜ë¹Ÿ+¸¡êRßïîorûÓå&ÈЈ j^½®›©±î6bMõרRl +~&V³Ç—aa]9è¦õ³%¡$CÏg¶‘ü‹\!Y]Š=f8ƒ Èñrp8‹rg·š#—Ó—j‡€+IûÜgh½rî5!9¸6øŽˎƵDÏFùƒ‡.k÷o#ÄØ†§+Cøöšv—Â/Ïæe ¯¶LEó(£ëÛ¥Œî©u°>‘•¡aÎ(ö"WÂý/¨ò“î“?hê2f¦'}@ N´IU‡[ Í×úȾ.!•ìœSï k÷ªÀ© `oº{‹Ø|ý —öƒ îw?ä[½(áðÚ„ZÇÛÔ †• $.ƒÑ_„Í)b–JêíœËër7'­kΚHUHcÙsºrѳ[%š‡˜dJšCJ ó¡QäNÃåÕôŽ#Š—j ~jZ´jã‰k^ÚÍòÞÌ<žóÍ™]d¯‚ Âp7Æ¿uôæd"H…S>¥šF†lì6gÜ”lv”œQÂà$|a“X­Â+=ýáw7¯zŠ×ü8+@ ·¬Ãd¶F]÷9Θ6î£ *P<¶¯)„ú8ŸC†2‰-¥¶PÃIC!ºöJ‚ú …ÑWçb@>#/CƒÔ{©ˆãe"é/ÈÁª”©°Y¡J¶ûÈ‚sìÉ=ê®3·ƒwDåê†Y?0P$l¥ü*©'#·88 Ý×ùÎTUñCäÀ°¬'ü4úá^ðy†˜\äkiíU½iW’¿]½f¢«ö…§¾¤?¹H#òðëÂÆ”A‘ý&p¢´¡Z×cJ‡lOswÀµNÆVÚÒ9¬ v{mZŠÐÖ <´¸~G{[óƒ(¹zÕàŽ¶@šRƒ^ÅTMùË'¿w&6°ô¿0ЧÀ.¥}SLÂãЛk¦â£ÝÒf‹-mF?ÂÞé*±Ì´ÃB&´ìÔláF ޲Å7W$‰×â”uÍa²ÎlŸM‡ªeWKSÀö‘§%³gœ§Æñ‚ž£Gwcà çÍ'À\ iJU´7Í„MÉå¦á XÒxâ˜z((Žƒ'6BµD_8Ïpæ}gó»›ýÈÀ&åüšBV‹œLtYÛ‘X[hæ)ÂGO²n.ˆãÊ{7d†l~ßiçCÖýB¾¾LrÐÅܰ’s$DrÝȸLˆÜ¬ñœùKºø…‘°"‰Í¢îs´7²¿¹xtàØ÷’x8…²wö®Ï —Ÿ¸ã§ò“™ÿ’]x®¢äGÎÍä6‰†&ö¯˜]'PÚªÄ[±[CàC¾cuoW—Öhÿöôœ[ºVm?rÒ‡/<Ãå*yÎ9âbˆ=‹g$ýÆ:âÅ–H'ïÆœ):¾JÆÃñé[,ÿdÐuy’` þr»1_7J¸™Z¿ÄÖd7 ñüQ>,þ‹ÙycM *S™Cj±ãä\€«Ÿ¨=JW¾·™QŽä\I”!ªz>«Ë¸kÔÁEŒã(ÇEIV¿ ÕÚl¤ÿzˆáÒbÉç’÷ÇÃ5ƒh3ñý,OB_P5b>"l&|ÌcÀãé÷[SwLHNûU‡"§G:ŒIñ+;ˆ¢¹ ˜ˆDmì’ÆÊÁBD“.ì3"ž}pšg8‚SnÇ&ͱÜ7ãÃP{G‡.©‚5öÝlê¹§kU®E¹kž…|‘T§›^¦y|Ý5C™SN!oñVU·ÌÄúóá;À§à‰«a»ƒ¿ì`kʨ텩([³-Œ h °F]o©Âçz¬áÀ,¤2›¸ïlL 5ûm&Ü b¼‹tó'Ø?VPõZ½WéIçw–„¡¿´m]~”鎰ø0‚,Ö ¾Ì³I[-5ág=´×sˆHæ¯2I@"2"í!Ç¡¹¾¡yÍ$Ëþm lì±4¼²×LclËšÈ[Gyóùp* }×áY)k)gï‰G˜¿3™o+‰P,÷ƒxÐ Çø'cBEëµ`¯Jä^ñSüÅGæZ(SU$úæNhÁËyø‰Õ´ÖÏÑ;ÈÔL<’À­ì4Kµ³KŸòˇ±o7;Ô˜‹§Iíð}{`Øcñéè%«²Æù˾9í·ùr[›,[¼ ×l_GU?â”ß4V­ƒH¶{òüJ$™#P­êã/aä †ÃMXŠEëàYÄžuß-kEíÁÒ¡BzÜv¨ûÑ7ÎÜõ'‡ÔªÄÍÁ˜¶«”sx8p™hxŒ¦qwq޾ˆeÌ¥Ûµƒ>Q¦mš˜\æ~öE"ñ°®KH`ö„^Uâ|^—®M?1lòIPy¤Ö}¸»Z³qî×&H¯‚–ê£'EõÌsI×íu Cïu,ðLd„kè”%¹»6Y Tk€ø•ý3Í–‰2‹ø ¯d¥ïqgå˜7¢lZ¨çwVSÝ&²yÌaYµŸ+á´`MßcÞNÖrœð„’ûŸìÛ팘¤Â üÆüå{Gv‹Íöà””T"NÏß:ÖdÀÚuC› &>‰~G£6r6ïU¼ŒŽ€¹Ë!þôM¸Pÿh›R¦Q䓼M ¬âýì¸+a`¹Ä¤•ÖW=’¶ÆŽ<™Ñ$£óJ†Ñ)æëæ&v¤ÐbùwÕŠH%I£ìük!ä<ùýζN|RQöh­rµ…Cð±w Y¤­Ê2ž‰Îbb_=ÖTöWƒNÑÜܽIŒU˜Ï&^颬j$ûŠØ`6RÕ5,º ÚÇNÞu$Ki¨Èº1ž4â­¡\|¼‰šKH#B69Ñ¥e%¿˜©mó\«  ¢µ‚&{˜hê d(ÀÇmFµ~`–’ìØS'”#½ÏÇK¯õr8n¨%µ˜‡‰¬™¯í²sË\ÃYY{y»Û•P€sŠDûêR¿bŽs+¬­¢ïë랇ä[`NRkï q ü®DâQíVàÌÅ= ²á.Fô›õáî×Äíœ|0¬ø ”=zû™#uàiCžØepÿ0½áza­û¡iÍBÒ%rÓ<È2Eñ4'Lë´ùM5æ'G*»*Ñ·»òo¤Å×G‡gÉ×ww¡lâ÷ÂÃFQ¬²ú!þ3U™ýË ÿ,ѦYbl,¯ýáë/¨tïf1qÝ1L$@W¨MÓyI$jW(öwŒ›— bTþÉáýÏ—ÄÆ5\MAHd”èÁSEÍ·‚?ËãjÜH[¦:m´¡b^£ÚkTX?úšÿËÁÖŠå%Hª™G.òùH“"(ÒÏôi·£‰¬SdžæBCaÁ’©Ý8y=R'#NÏDQ3íq µÂñàDÒ¤üÊ£¢8È9‡¹n×È÷S3zÐÀq˜õçts©;~üª6^.ë ³Ð­ûƒÈr¥I^*º.ý±cÔXa̰-ŠY‹ì”L+Èbs¡8EæÇ…¥^S°Wè´Sç’£[—À%µï_¥¼ÂI¡tÂûᢊÃß"ÝœÉd_¾^B!J‡“7qvš5Á1aÔ=¶ÁY +óM>Á±¥ùW‰^¤‡ÃÊÎØÆ lÿ #C‹`ëÙ œ¾ 0‡¦ÍqR-ywÓ§3%„®pU†ç]GüPÁBÈzh»ž¼§õ¼tª>ÎdŠÐöÒ_l:W§ÏŒc‹¾gËËnÖcÕïã°wþ˜`@Ô/ØpXL]ó2žÒ´ûéõ“вwE1×;$*²†)~ÎRß.݆oÍÊH¥Päù0æ3ž©¾‰D{̆²Ð™´}~ØV’ð6¸TaJÉ‚®x «ev<#>úG«vËVkÄ$½?5˜ªÅ6¤+a¼ZX%Ìš:á_Kö¾OœØ*ó¿ê•Ö'£­”d=(OOÎh¨üÌ4…P%ÅË£I¶k—'YôZÛ¨¦ñ¿c~_j¥1] tN×åOæw)ðÉö°0Ê7äšÊÿKMp!™Å@ÔR«TÎÈl Õ9ôÍÛMA±µüÀæ|ªSè@’V¯‘¨qÛ&?Äì®úÁFmƒª›ƒÛŽC)Àz9eÏ6 ý¹C0Ѹ:ÆïJ?b’a³{¾°ä ™Û4¸•dgŽ÷—Å£0Ú=oó(/­åüRL–îì}±²<¶º³Î¦ƒpID½µ`wX)HB~ÊAµ)Ú åÊ÷=q W`~ÈÄûs~ø£`¦1›™Ž¸å‰HoÆçÁ´_¯1FãxÔ,‹ ˆuöÉ lÇjÙ÷zeª‡eäµ¼4Q”ò¿zÐØVJ‹]Ð,‘èE I ЏîP‘È‹1ýY¼–šˆò†V$pÜ´VÞL¯éëÉ%oôOß¡D(€4KfS~ì# ½{Z:^sœHó Š®%5Î(¹‘û)hõ#ìÅ(ñ!ï…Ó^m1d€—):µ5ŒÝ¯áßÒ»p±×O9í:9ê6öf’¥Ê‚™‹ú¬æ1¢†ëEù˜ÆÔSÙ.( ŠP­Šóf×~#‘Xƒ éN†¥ÆÚÃÓ‡¸Yhié"‘­âòÒLÉWÜM6ÝD)ú(úÝø“mvÖÔ•V쯗¢ÏHOõÐ8a$J59°w^'Õ(}¯ Ä9S@•Çí­?¨©ª|]aÃRÓ|†9ë`ýUÕèÝTL5¾‚ŸÆë£Ìœ ~¡.ɆÛÈé‹'ÎH²åͰt¥¬:-Å©’i1²UÑ–åÓ^¹ªñIÙõÇ8ÃâʦõêE| ìÖ­”±~ÕJb _÷¢|Ú½ºîðêÉË;´:Cº¶èC ¾Þk ê‚]ïë]8úë>±CÊû™2šîh³§l1³¢‹*زø®FùlmAáj_5ª2ËÍe;mÛÐÈ«?Ô´7ç™l•&VË–†@!êëÿâ³Y-¯·ÿÒý2Ù“!gØG6ŸèYãü²`{K¦¦þúYÿŠ;ø3Xb #Ë¢÷G/£gýÒíPОïd3„«9R¥j7Ísg3šÞa´TÕ·BAk,š•ô_Ž×ýÙÞNºmY +õNl(+*6³´’qm F'ÊÀÙÛž¹,ç+îëÆ"fÇÓŧP¶…ç%ÔH:Ýdæ+òhõÛ©ö³ü3Ðݪe`¼ó">Ô÷–M­¥8|ÿ'üï•mqêß4âA’Ñq+¹pµ¡t¢×è kP‹ölu•%! éLÅkÃRªág ¦¢)Æ"tØo”ÃX™H1j%²7S·Öœü—òHeUÞ½SŒý·=RŽÓ7µ_D>Á†W9à@ùWq湸j“»p§¬›)žŸÓÏ&{_tå­qy4ý³;18 zæÒÖÍäDº‹&¸¥ ¶êaÌ—Huœ"IÉ¢¾廨¡ûÖ#ûK!‚c-V%=‹PÜ™ÀÊ+^¬ØÍe3A/›Ãà[˜¶Eí]÷H™ë ÛóE>6È”f:&?ÇãQÆÅnè5š×­´«óšà»¨q¨G`ôž††¡Ì> -ª1îÝMKü0 ‰`‰AzTÌK¯AýËrðJé¨lhìÈœùÓ4Û¾Ç~¾ðëz5£#(|5ÿ™’6é·kį§¼´c¦ö‰´^GTÒ¸ g%,ý(H[¾Èç£ü¢®?(ÁŸÚ½¾V¸Ã.M'4¤×n³"Ý!˜%•3ÌÌ?³æž6žÑSgà¢YêÍo\åLD‡c:zfPéABl+œs‚×|[΢°8تüo‡ärò'õåbl…Ô´«}Î'=͆*³áKÌãIh} )œ«S9¡<Æ ¹Z ï{p*ã‘äg,Ɖß6?IªÃTÏyŸ-0]Z«qkh QAO+¼Þ5¯Ÿ+\]™{„V!J†¥¡7ÍÍi:. õÁÔ/õýž"Ë/õe^ø§[©G_ Œ$ó×ÁÑuN Yë$Vgn“îD>ZœÇÅ]­‰œ°ªH6]ܶò?R±ÚoÄzµ9yA‘‚™³AÒ1»ÑÚ•%,¢%…°±+ºd`h$ñïWƒ.åaˆöG«ø÷AsØÊc±ºj]7Ãå#ýX(>­÷í•h2N¬cÕºMnc-³M²…‘Ž£Ô± ¦†Pú³4Æa—ìa2­hÿ‚z Ò½ûY(æý+º.¾^ \ UáÓÑ,Nñ«µ©/F¿o"ô´ˆÂÊýÌ1ÂÚN!¥4ò](Úëq€õS…åc‘IªÎN¥`¢'¢Ã ÉÔã›ú!È2¨èêí·[n@®†?©—éŠ×@[dNxƒ™ÃòÄ¡¡ÉZªðxÊšNê‹_<¶v¾¼‡f¤þý“-¥¦>LÔ²ßVí =;<´œû{©+#s«ÎÔù¹‰¾ÛΓªžŒ€ÿ<Õ›Ý>ˆ$t‡5O­) ˆ¡¬ì¡®^ÖXÆ®$€j”¿* «d²T('SÒýÊèÝpønS› çÄ›MZüÉÂ!ž¡“:|ºR÷Æù|°KeãP#Çõ‡<ʱsâ¿AêwéðQ«ýŽÜÝD•kýad ¢™öš÷ëÅûP."MøfŒ€Q´û•—°¡K£”i•¯T™aDõñ*Ò!¸YQžíé­Ž»ð"EÏylBC:¤i™)P•L'ÐËh,9çÖŒ€È ø>p/e’¹¶Étbüžní¹¡pƒoHíB™ÎÞò:»)`ƒžÇO×K4c®åt‡Q`ÉF\œðì{c¶>bê'»'ÈùÙ1å_= +º€H ˙ý+FyžÉÓaæSS­Ó­Smöì·«|iÌ÷‚x+VkH±Ûéö¤°ÔsÍ6P83ÈbÌ–o²âåû`M+êœDÜä1ʱúq;Q~´¥?± ‘ºnqs*ÞCæsoœ–Ò^9|KÅüõçŽþ™—@ÌèÉ(›õFFvQᢠ¾#¼ý‚]à'Rì~™Í¶Ö"îS ïý0îâ„Rmõ(ÊGÚwhÅ4ûÞB§§ða@ÐáûæíߣµŠ4‘V¤úÆÃŠ—h3s¤YxuƒÏ”*ØðùVqZ$é+MvsUb ž¡fA© ë‘]KÄejE j¹ç[ÃÃ0^Z|™Oa_¸Òtnfn@øPÀ'eÈýSÿN½‰ ëf¾×o¢ÒØ¿›JáJ t[jJ uj´YU˽ +–F†`d^ØŸ&¾rÜé±Ùo­Ø$øÑëS ’7¹bs,nÅÑ„*_Ís.(Ã:˜:øqÅch™ù:¦CRÈ|>¬G(êp…viáó%e8 ®Í¼I<à ýˆs¶ô\ëë–T6xÊS¥5.Ä07™ïQU^†ðé‡DD2ôåÌEÿD åÇâ÷…}¯%HÁlVá™ Ä%´{ A î?QU,8Ù®?Š²Ø¨,5Bë0ôèØÏ“ý FÙù$׿J¡‰òµ–¡]ÆìÀ/F¡>€þTTgˆ¼Ë`N—Ç€+žvöSdºtS„‡ÙO‚ôƒÿÊ òóc,$án¢è8†#¯„:ç½[ùa /ÿcƒ,šë…4xèªzŸ[qR7=>„Ãë·ûböç9~¶ìkª… «ë’¼,zþqö=¢ür²:¿`à~ùùÈ6/•¾y"úØñÍW8³Ü\%{¾`Õì՘ƙhfÈøk<´s5ùÆ >uOî–÷f0”­­Kë« jkúú/[j§ ðøL>&’WO‚¸„ÙÁ-¼ô±[Ôg݉¤šdåûËÌ,+o–ô!f…c`¶RÁI3> ‡ cèšúb¦õ¸j^ž½ýò òÔMš Ïf0æû–)QÅG€=ÁtZ2¥m„ÒÒg`û:ãfz°ª?Ä íRæ-&üSéÒG[TŠ{7ß§B‹P^»Ìª¾ ¿x ïhÖÔ]‰àL¾¡Âƒx5ÖÃ8mÊ4ÁSê{&-&½záVJ UžÃ|º÷VH+é±Ú£e>±sp]Ÿ„+©à1™bÿó(™:Õ\õ’ÙjzšÆHn Ø8‰¿iO½GJÍ ©Ó£ñËÑ §Mxd¤íEóoð$|#ÎJÌŠ €×zÍù°ÕvÒtŒ•eA?Ë4‘ (“×{Ô…‰ñº`ùæ.3O|#ç?.øú®)aùó©jOê‡wLÛÞ%h£=fIÔ‰~æ?!;U.…ˆÁ¯_DÝR8¦(7!^mu%y ²ÔÖÃ!ñü‡1v–¤ èw jÚkÈ5  Éß^k£œgd›¼ v³6‡†V\}±àÈk0z-ôÃCÏB;óà |Fú ªÊÔ²Úd¿”3B¾­¢0ÁÄÒ•´Ò°ÖV*èG Èâæ·q¤@7sÛRPN•eÎor¾hn\—àÃÛoÝÑ5É©kñ·UaÄ ]g ?î&~ é™E–4ÛtàúôlßâÐìvȆO&TL-™G°ýþ',2f˜“ëé0Ò…Õ#¶mbÃÌ7 Ëyˆ–¸>n8˜-@½Äá—¼,=6hÞCÑ™f­Èl˜_Êx©¦]»GkbƒQi”¢páëu3¨¬—qL˜ÛŒtt•(á‚ÁG{qUÃýdI©¢‰‘ .UǦܩÁ§†#—n®ëØG¹|×3@UYAv¾0@8Lüº’k«¿O Dÿçú@Ô 뎩‘n„pRÓ«ZµyŽv']\5û+À‰`nq ¯Ç¦¤1–n¶}ÉUNx£õÁŽM嫱·]¿Ú:Â3éÌ|{Ìñž td)ЙiîúÛÚA[6²ñƒÛã´«Iubv |ó1 ’Keùµ® Ú_ççì#šWu¼¶Ó+é¼Qœý-…©×§™„n<=0 u4!ydÇîÚ ¯‚YêIÖ¬—_ˆ:q1ù*.ýç¹EÆ+¶÷}Q 1v™av»€,kå¥w\Ñ5PQ•²ô6A˯ÊMÊ`!½xÂíÀw˜4ŸÚ¡bëÎ%Ô¶šX7D²¶Ê£’Œe ~‹.Õ^(nz#Ò®r”ô;äe*—!"ðD‘ɵbð„7¡‚¥™ÀRÁl^›%ð8å—'“u|w6x,Æòöàxø#:¡˜ `”u³æ=BÛv}ÃUÑo™îö|Ù²¤‹Fí¡­Ôa¥ö1|Vm-‚“tKcë: >ú‹&Îb&žÈ ês ¡¨/ƒyìºÀ‘óß… Øø…M\/br®š±…A†“¦‚ÌRé`ƒÉ'´Š÷ûÑù¯tÃ3Fœˆ6Ooêò0-ç^_7L榰í%Ih‰.— âÐý¢ endstream endobj 126 0 obj << /Type /FontDescriptor /FontName /NCDHJN+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/L/M/N/O/P/S/T/U/W/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/plus/q/quotedblright/quoteright/r/s/semicolon/seven/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 125 0 R >> endobj 127 0 obj << /Length1 2510 /Length2 18715 /Length3 0 /Length 20161 /Filter /FlateDecode >> stream xÚŒ¶P\‹¶-Šîn»»»»»Ó8 ÁÝÝÁ-¸»;ÁÝ !@‚‡@×{ïsO²ïÿUïUWÑ=¦©kAE¦ªÁ$féd”v¹1±1³ò$”ÔÙØ¬¬̬¬ìTTš¶nÀÿˆ¨´.®¶N þ? $\€fn`™¤™ØNÉ ww°qظùÙxøYY쬬|ÿcèäÂ4ó°µ(1ä@@W* 'go[k70ÍÿüÐZÐØøøxÿvˆ9]l-Ì@%37 #˜ÑÂÌ áda tóþWZA77g~OOOf3GWf'ka:F€§­› @è tñZþ* læü§2f*€¦­ë?r '+7O3 ,p°µ‚\Áî K  LÐS¨8Aÿ+þcÀøOolÌlÿ ÷ï¿Ù‚þv6³°prt6yÛ‚¬V¶@€Š´"³›—#À dù—¡™ƒ«ØßÌÃÌÖÁÌlðwæfi15€¸Àÿ”çjábëìæÊìjëðW‰,…wY d)áäè¹¹"ü•Ÿ¤­ ÐÜvo–&kròùþXÙ‚,­þ*ÂÒÝ™E dûÎ('ù°á·Ìèàbeeåáã߀^6,…×ôvþ­dûK ®Àß×ÙÉ`.èok!øºšyn.î@ß?ÿFllK[ 7€9ÐÚ„ð;:X ´úƒ‡ïbë0`ï€õ¯Ï×ËÒ äàýÛüïù²(Kˆ«(é0üSñuââN^_&N;€—ÀÃÅ ðÿwU3ÛÿdÁúÛUdåàû'Yp—þ'aÿÌŸö?·Aøw,e'ðÒ´¿wÜ•‹Õü‡íÿyÓÿvùÿ[ð¿¢üßvü'$íîàð·šöoýÿGmæhëàýðκ»÷_É | ÿmªüçf•€–¶îŽÿ[+çf¾1µÃÛhë*më´Tµu³°ùgYþ‘kýud¶  ª“«í_O+ëÿÒ/ËÂüäpoäß* øpþM)²p²üëÂØ¹¸f..fÞ¬àEbçâø²OÑèõ÷X˜ANn`¸<€•“ Â_åæ°ˆý%úqXÄ#‹ÄoÄ `‘üø,RÿE<¬é߈ À"ó±Xd#‹ÜoÄ `‘ÿÀ슿˜]é7³+ÿF`v•ÿ"^0»êoæSÿÀ|¿˜Oó7×®õùtþ‹øÀ1õ#°Îì7çbþ«5w1³°‚_Vn¿åÿ•ÿsÿU€“·ø/â³prÏÿ$œœIþµ,–@0%ðwpÛ€ÿb`csƒWÅÌÕæ'p_¬~Cp«? ç_Ðö`ürqü=~s²ý%pø­ÿËÜÉÝå6°õÿw.œàÆÛx;ÛAX€e𳂋²û‚`ÿ7Íáî¨ã¥»õ;2ؾ¥?ôàÚ~'vvú—\Œóo58˜3ø ú×p9Ùþ#ý÷h9ÁY;ƒjN¿‡Å n„³ƒ»ëñÁ’wÿ…`úwîNà'οGø×Dþè'¸=¿cp\޶ÿ^®¿l€t• Äüùœàoðã˜ÅÍÆøÇ.«uótúÃÜ=÷? ¸ñ@pž, Øû2vpxï? ¸¯>¿ûŽätù‡ê_4 wpcÝþ~逗øðßÿA^@ „õ' 0»Æ°îŸõb„žL3B‹T:ïé˜|×]zÜQàÒéê>„ì¸Ü‰¥DÛÚ“¢½Ý }ö=éh†‹ìLUëúå÷d’¬>Ð…°6‡3:[r"Ö4B OĤ)úÍïùŸv°=tdŸRÝ;½‰4ÄI ™ßDU|`=öûÙpÌb{b«¥ÅTЏ£'è«õ‡FÏà£mM²O[^ãrK—ò> QG{ôX79N£}ߦ]-ñ!Ó©ZZB„ë;Óó%cqšr‰Ýïø:aâ)Ò?dtp´¨"Ž™5œ ÒåÔvx"üŒ9ÞêԪ|««)àý€^/ —˜ðй;íŽ#3·Ë/ù#rW>*á…6¢èZ§fðzº÷úܨ˜‰U¹ÒZCIÙ! S?O%Iñ|±0‹Ð˜¯yë…¿\¡“Æï‡4BHØ«ïP4`#2¨rEŠq?ï×»n(\á;VãL¯“ŒFµ‘Ý¡£³À£ðèn[|¤OøÞúŸToÝÚßìAá¿6¬m9'a ÖЮ‡ôOã/ëÿ\ivmÉj3¼ê(è»Ìîy6•ŸñnÍ5’1~ðJDÈ'b0{v½D'È¡1‡nÙW%?±‚«HòŽ>ö¶Š0|OГ†­À5øÚXYÒ£¸5.í³Ìp³¨ÛKÿüGI ŽÏbÎ/æ\ØT¥RºˆMÁOmq?<žUm‚(Ùä(TL\·Kº†Ç¥ï­Ýë‡öÎpÌ¿Øm2¸ÁFü|MM)¼ø…œï¨ZEçEó¸—HÍÎíkêlµbƒ{?û„oûæÙú’X©jÖ°K®úå’¤AD;ûã®×BŽ.ð‡¡³mÙ„Ò@êQ&ÏÖ ˆÚ{jœN¨aýá%ºÌ—‚hGµaL>îÝ59Ø"3ÞÉPó䤺¬Å—íÙ dz–ÛFâGX È"c)ÖåfÞ­çbeóÆûm•¦°‰·|8Ù\ÌG¶é ¡q½ò0^uHüÅß¶fÏõüÕ¿ÏZðÔ͹9h=bûUÑDºˆü¡·"Ýùé—´|7O[$u#30Ú' Ó…„²Ï ð9žmÄŒ«Ü }Þ“Ï‹k˧˛y_i0 ÛU•M¬=$ô ã}Çu‹íœvÑ®ž¯uß~…I=ÆÚÝù3)„&ƒéKNE#/fú¼›Ü«˜ýT1å.Ù–5©:4žlQ•€ú€6ę֗ S2‡²x¥õêyvkL•ÃMf¬pÍažT¼ÇVÏÙÔ@:‘èR‰·;ÚæX<Æ_ísò*nåª-”ûÓ译×ãeˆúËJ¾¬ûå¤, ‘Di•¼ZL×î¢|úè°¸›Ê½`“Í cϾ¾Ó2—ŸDBªÿÅCë&û«C·ªöX;ŠãEçjU.1†u·Â÷jœù„!×÷a&ÄÅS)Y0Þ ë~¾ê!EñÜÃÍy™â™‰½ŒÐ–Wœë…þÛhX¦×P(é€Ô/(IÕWáÎ %–Üíæ©q;h½ß Q¯Rûga‘=Å—ZO‘ç¡Ýæ×éÔ¡ç]·–\âÍ~26@÷â°¥K£oé“%RÊcê‚è•ÃZkrOŒÄ&ªOÇ-Ý÷Í«ú©VmŸÂe#õrðÆ!i½!ÁhMÒÖþ\›¢x}Õ,…ü~#dËEÿõËÐe;±3..+ö4 bF7\=YG_Q’ܬ8ýÆê›ÛG"‘%;·!šO¼ü,´qry2…ùp°-Ü1coð#ß# †26V¸Ü~~ðÊ[³ žŠj¬ëâë;ð’ë%{S6Úê‚”QîÓUv‹Îà„Õr52°N†$‰gRäÿwÏ‚]½Q;åŒi¶–ñ•oŽÍëa,íj|ß4V»?ý’ZJ *?X¤Õ eå'’ÄfæXO#“éØ:固%¸câc¿¦pj×ḤZn]²ak ål¤Aª'ú~X0ˆ6Ìr=!Óiɉô¾Ü$ü4͉eOp»«*ªh yŠ$ÒK)I®Ï¡ç¦Æ€ÒRRóXíiaÈn¸íKHª­Ÿ ów)>Os ¨N×q8Ÿ¤Ý•ìñf²–lvë ¨’•',îh_6§Íá,\Þ“v\m&ë°¡Š‘ï€t‹¦.ÙZ »8ÃAÉÁ Ä*L8Êb»B|¸Ö\Bg:Æ^ÓS´0^ÁÍïyR$õn¼¸hþÊù7+r ’ai)ï£ûª²KIûÈ‚“ð>A}† "7ò‡l•ÆêéO^—ÒÄdwT·„/tá0Ãa;!#±úš2vÓ£ñZÛW›p¢vÓä¹åËpy Kf–ŽB0ò[êW¾w2o! Rç ¬vç^]ùÍzyÇÐUpH.½±´?)…’*á·„ö &اó€ Ç¡»‹´)o¥=ˆ´G¤Ñ kÌhp†4zEw£ 7ú!1ù˜ñÄÑQ+~ß0ø¨á>ôŒ |¶ráAÝm Rëµ1¹¢Õ0ÎX b zˆð RC‚TÔÝå¸OÂ2óˆ¥>uvª“uŒv:߃ÓpÔ7jÝyšß!Ÿvý´st@ˆˆÉæÈ'ÛºÀçsI ;!ˆ·…?B3uæ%kä¢$h²xóñAK+ëIeB Àó#j;úOKá°˜q‚·(SȤֽp0ZON¥Ï1ù èMäjT>BÔµ ÝÛ°å¹Õe2ï&š·¦"=?ï7áRÝ> uå7-`U ©Jø‡=m™°o-Ù?ßbaRŸŒB! dxVS`Jå2~Æõ°ªY °t&ßÁÇü"Åß9ÏÉ’i|õcOH•žˆ_IaqðßÊØ%EÞÓاgO­+шŖoª Kuî(û?EX*Š»·Óz¾¡,ËÈÓ£ž/õjijúaJx:õ•Ú*Ç)ˆ*‹¾;ÁzoU7¼¿ýÊþ¹¾dÐvÅ¥g&‚ЍÓ+f~š³”'öŒw²í,,¨!r¼ˆË>`™ÿ¥'WÒÓ™¼JÀî²^ìÍc üŒ©†ºa«Þ”æOå/¸Ï ÉöÞ˜UŸÝe)ŽhyQf•yš¨;,r¸$ˆÖ‡©¬JV¾k)¿¤9ˆáSãC5r3iY`¤ *T¥Û¸ž+Ïs¡_DßåÔ w^¥,@$Òò%fŠký8"Mx È‹ x·QU„`fª2å÷n/Úò=LáçÝŽ#èÅ¡NÊÝc–k¿%õÇ6&Ó8Â/uHÜß”ýFò‡¬®‚îõî• W´NÝ믰KÁÖYR¨§ž©mí+a AqÎ7–MºX‰’ºî¤XEy2ˆ$æìJPÀäƒhzàêêÏ[õM]/Þ±ÃL)Fº¡:v!lw¦Ôâ.jpÎ tÖ`(¡Ýì“&Þ¹jj¹K]ëú‘¦ßð¼;k–Ï¥ïBõI©Ð× BÈm‚Ðûœ‡œ—áø·À¥xÆÃøá埤bÅ+Ò¹köÍ,憷{‡rÛ÷ß>Aµ!Bªa|Ƹ΅”lX:¾þeÿÓ5£ÈF¸5Û4<9ß,¾Bµž6ÀŽJµ6¢}ü“0*B‹ŒŽCºbð¼TVnä~ËÅCÙÝ›íä ê÷[ê1ÈJ´¸ø%ªÇ> CU$rZòÏH#_+žo["vOa>õ`¥/ Aø„¿!ŠËÏd OÝ"lÇÚh­Ôþ*“•r»ßÏ&³‘/ëóUµûH³qz¡ê¤kÓ³FlÕ€DScÁ;~„h>>/ ¬‘ú¢¯Dtd§ˆ·J§Æ ó7†/š¦O¦äk€`øQûäöìb9ÂÔD¡ÆÛ‡øê>óBVèÑGt?­íĶSi¼"ÍÅU-ëöJÉP‡ =–×åÉ’èkX4¡Æ¡„”¦øüu‰ 6Õ9vÅØ”C-OÈ¿z@HsÃKݦœ3£Î,ê++‡Hï ~'µÁÃŽ+ö#ŸPø.̵ËÌE«°ûˆ½(ÌÊÀÙå½,úû3Lnœøò=Òöî´[øjb&Ó'ô¸ôè´äËéd²Òr&¿Š[um%nxKJt»øû*ÏZ A~gMü-³)óݲ[*‚)Þåx`TÞá]s"ˆíÀ€ ò™ßªç~ ¢=8îc}V©‡zYÀóôTq§Wû‰báe“›õª]¼4ÀW-;øŽ·žýSÉ,:ÇeÑÌÕÕjàrÎMQ(s°F6,Ã8®(5jOL²áð¼Q®¹ÎN!Y‘òçRçul³¡¬)V‰Ý‰Û ®E)Éx¤fg¸C þËúkbôƒ¥S5´7BÅûɇX_§ruZ¡qx}I’%´ÖÚÚÔÜ^÷r jcôw*1ÐíF³›ýô Õ8IÇ¿Ibëg×~à:íäÌ{¾"Dúú]d¡;³MHJ 8-ü•;O!ØßŠýÒÓ,ÙÈLXØNúS[Cø Bf^få³kwxëDû|LÊ8\ï“vR,W*Tϯɒazд9å•F­Ç™ÍÓ$S¯÷ôdR×֗$B¶®›ýq¤.´¹,Èç@T^í¨ŽGýhEVÞ,Elä1Ú¨´H¥uòÊÔÌNE;í™æ>ÐtÖ¯¤&m˜z·ÞÔ9—ãÚ^õ’ÌY²½¶V.l?.ÆB4?¥IX¡C]fò2¬*ç—ðvF(3…AÇIM(é„2z­“lÉ6Ý'…Ê•‰pòN+Œ~·Ä~¢&ãBæû;®¼ÆÕª.ÙI5Z(„²èÀ&*Ú>vø ä{Ìsµ_½JBª z{2FˆÂ©êêç´ÀŒÇ™3¨“2c!$V+]Ö˜aX`y²õϤ¹È +ƒ®ç×&›È_coƒBGÝZDf×› .W±Ü èí«­7¤û8ò,ŠvÞjVml£R¢j"7ÏÑžh‰3íÈeÃv*áåÉè$“dt?â5ì\ùIfT9à00—ônùì8ŒÏb/t«4[¦¹-íWSJ&; &"Â*xÛâ?I a¸öÉ¿ŽÍõ.ò¾µs”cÎpè-Sytц|[¬ú.Öž‘°¢¸™ö!D 62! òÒú(Uˆ@:›:óŒ–ñ;`[hˆ¤ü^wÔHjžŠG³«ê1|ØNU'æ’'ÙrS2Œnj…)ÙH¢X™"W9’ø‡Ã(…‘7ˆh3`ÀÇÉZ­5¼Æ—Îckâíl-p‚2ñtó&ʤќWÖ—øl=L-Eúj !BÊ\ÈZ:À˜#ÅZA¸?D†ú}Ëõü©ÏÐO|vœ©sÔ­leqwO(z¾5xÿ¸éÙ©H€–"‰1 ‹ÿq,ÏbFŒ}Isüš…:CßGMP«Êé—‘œ*<Êtàˆ¶2\€4}¸ nEøIp¾³“ËÙ^Ô>B¦MXÔ ¥;ÉYA³ñÓú4"ñ{‡W#Îp—(Á£hȧ°iþ…©¶„YÈwCmÞ®+$’¶-”qLé_ɤn˜ì¦ÃNWÏ;$>¤Ã4ƒÖË4«Ø¹…ü\mIÑ+˜'®:¹›¼;jL=-Z3“¯ôdª€$*ÙçÃþά]žŽnéFߨV»‹bOþV£IŠ×ƒ|èX{¹ÒR¢×ªå|j±vSJóD_›J™“—ORwe{œõ0õÃ]y‹dvlËL±d«®3Þhr+ê³{CÀžx ‡ô¶‡~o¯ÆkÊ#ô—üfÙHg^ߌñä4½Q/‹_Ë.LA®8*þñïp¬Ú`ù æQpo°3Iôß\#BD#k•Ñ-toþ°1²}†ÿ¬y†Â°o¦­€ÓTTro-ì==ŒTíÅüæa+Õà˜5šwf.£êXÇÜ¡¢9o4^£ù9g43N÷=T$Õùµ’ IÆ÷llèáädY®¼'fê…èÞMPGK†ÂÊÉ4®ÚhŒ2“j†Œ*Ñ·jÚ² Zõð®z¤´‡¶m^+‘3'PúZ+³ÖŒQrÈ!ªðÜ/Q»Ê8x¾MºÝ—ã– Óä8´pªé¯ë¾åt@k¦Ãq~rþ)¾¯vF¾DV|’Y…Ót7¸f½áº¿Zð­ªmš4¡üωÚ²fÕ×|ÞI—å£dl´YÇ·Mê‚U/®•ôz˜è”RFçoQ¶3QjºGh»!º‹Ç óOÌŽ‡›fnOd<‘Ñi¸¾zv ¥xÔØ˜¿;‡¼pnCG’zõ­ÚþÞiv·œŸ4šžQ s’Y»7ÜÞ 1ÆsG·¤ #3ÇŸN@S?ïš”;ƒÀÿ¢^1Ás7Zöc&Ž0 Ê9{*v®rR‡€˜æ©ÍhͶʱ+%ê'¦[7Û97!þäN–M¦Äf;ïn!)—ËÏŽ«Vq{w®‘oÓ8QHÈ‚Iþ¡î°ô†}Q7üB=&+¨&<%}xXe´»&W(F…Ë8ËŒìewºZv»»h‹kš†“ þâ ‚KZ—9~Ó›n¾7¡CJ>DêïõKâÆ·ŸÙy:Q ”w«‰R+µg6O 妘«Ã†yLœŒš‹<ýrd Ir_¨P0ÝæƒZ¡;ï< 3†qÞôåót&“|˜,Ò¦ÄÕ /|#\µ—Ða%)QwPŸ£S§bÝÄŒRŠ¡Kgùñ úî‡Ñb+C»g§ŸÞg–ßÎ÷ÐÂ?^fßK™¹ŒúÂ!†‰ìÛ*¦áþ¤%}E•²™w^¤Z<‡. —Nj0˨ Ò0V_E8I3~}K5=ÒÊp+JLT†KE2 Ó¤YȲC¬ÍŒ%ö=£|úepÖ)ug`Wòu¹C} ¤ ª¢½ökûÙG3F#´[§*Ø­7†ˆ¶¬LúUúû|ÏjĤlµÃ’Ü<‰èè†)Õüöß®îYLÚŒ‰0ÕëS|yZ.»y èO_ŒAÏÇbÞÝ™‹»$…FcŒHfïÅÜœÊOVËóñvR%ÚœñÜê%?D'K=…‹ñÚJôJÉ‹3ÌŒö»Xx µ¾$˶ˆ@cIt+–q³„k*@¯Ðœ\m(T×¼;\ ‰.À8×?»Â·Žÿ%“aIîØUú èÎ-"D³º2&å¦#Z™éì“`LzŠ…µR1ù)˜ZzÐè´5»fD†¾ÊŸ—·Jèv­#"Q50š)”¥ÅH}=dg¤YD/)ÒòR½ Û3ÐÆ]¨ú?LZmš/ô,ÿWHœZõƒt6 /:ªÛŸ }Û ò˜Èk;æâ;YçÉ) ¡ƒ-o^cZM3‘!¹8J“ E,h'qÑÊë¥ìrš|óì ¤xl–\ÆŠûà8×“Ϊ†Âa*¸LJZîð:ÙâøI—9­¦gw’«Ù°Ëy)–ìªKºìµdÅ͸‚´ÐöiÜKxn‰,´‰Õn%è œôÒýø¯ì6…žbAˆÁ-À´zâ·ÖWJ•ªEƒ™¦ñçåoOpåLe¢råãzïìåìz[$Å8$×ûcGêµýà\X?ùgãéz†Ñ  ßòX€”G'7Ð]·E+à5ñý ÊÇÑ0ê3VQÞMiº|ÓÏ_¤ÆPy (—7¿]ÚËZVù(š>wÇì1ð–z¿€vŒK®EÒ|’¢þ"+&´<£ ‹;i'ë7íû9©Ø–Aœå¯2¸D8&¾„sç½GçËÒ˜¼¬V¬ù/"^-ЯL³r¸gèˆø _r¬Uåg‚UÒl^YŽƒDf¡Å„÷zü/¼?Ã}GÛÖZ=ZpæZ€/†±·v1øl'ô j2´ø@19ø ëóÙ×ÐÀÇE~DéçtÓjÂ&ìÂ3]†±žxx8ÔìU¸&+ÃpÙo #@2QVmŠ SÚíòk- éH­”?<ÝvÈŽŠjKÏSë£ïï?ÇzƒÄ]}]©pO³uÃÝå`>è\£Óùû|QBޚϛ¼?©q-ÊÖ½]yü|™Š:¢Û©eƒÿEoÚ¦Á„° É•š†p`ÝÓdRÝ+;“ @Cv…„4®´¥a£.ð=-*´¤öñÇ¡®µr±Ó¡ì±Üzâe c®4=Z@=Ptøû:V-•ÏA–+,wäã!]ë››Û;Ç”{ZÒ÷įšޮ<b†¾½÷.g ÁACÒ­Ñâù7ýØ÷ïk-ÎÉiŠâ"?…0»î¾p79eÙ´Ìæ{LŠ•¯Ê!TÕÚŒ ¥<¯âûW{"í) ¹—vu[]m\G`óD¯Ç§sq“VÙ#Ȉž5-sË‘Ìx¾† xÄ!ž V1üLP-†cÒ¶äÕÄpP—yÑÇd„§ˆxÔæ·±:¹—û@ѽI~˜CèÛN€ +þʾû-@0J‘çÞvuEý4|šLH™919–mÔû›¤ý^Èäçü÷øg7X܉ÈaÉÜÕ —$.aÏnY¦!êe‡ø Á×¹'!L^¡³ñâ£oWåàI%Oå,v%V+wåvJ”ö)áRcØÒÅ­9h ©Ñ^†nm"~}’~¬£}ž¡z»Þ»3㢇OÉó(É»2ë%NE\8ÓX&ùx]؇“ËÒ@¡Š$芔×Ä›å7†\!貓àw™R§Tä_¿Èžäׯrø@ï=‡Jï•¢”Év’IÀHÏuh»¬*àé#ÏÛx>º»DÇ•¨8öì| üÉMø-ýgù—A¶ÈR•6ú’ÕïÎ0ôË£¦á•ð:@Ï8KµÌ\í*§°qêÕþîµ>…žâmÿõ)%‰@‚û“cc`…qûL8ƨgjÉfæçg SùéM¶òø'ÁBaÖT9ÿ¥˜š…Ø5Ü|¯ ò4˜'a§ñ¹7ù¦‹åhÄb©óaÑïåÛ¿eâ2%ÛtždÊåc…¸H{¼®BŠ‚OMVé ù×¥DÏZÈYL“H\ƒs§?< ?!ž%g0VÈ;.åEÓᙊŸC£ ô EEŸVâ$B‚iF`8 Œ†G>…:A5ŽÃÃÚ”†½#a½þ|šoº}såb®>·êœë¶@׈í±ì4A¦â¿5PÐÛPŒ¼`œIK©Z\R{¬-38Yã©ÓýÈÎxÆ*Ü-€¾x‰ÑËvŽ‚¡¢zG]9ýÞ¶´/þòU¦c6 º+jI­°z3| ‚Âå ª¬>öÀaÓÞì1wÔ#kªøf[ö²¢\¹Èp¡»IÝÅ/5„ÅKé©!9ƒÆßÇžAA‘_Ÿ"—ôhS›±Qä묌3Fù=âʧþGJCk6b3Ý„Ÿo™ K%ò®Ýf¹Ë‰m‚¤‘Í—¥Žºâ8új¯#‚0rŸmvL;°Ä[RÊ2µ·!wáC™c}Ëå˸D5,ÒaD¼ce.™Ž®«R× Uˆ“@JE”Ñ‘¬EñTÞq‰Ó%´(zÓ½ØqÔ~É´£gØÔޝˆ93·Aw1Äv‡T Q¢¬yñ| ¿xÈ" *ÏZ8®•|º<@~áúµNÂ@¤+ÀÉ–£æ«f©õ°qpi²\A}’0ÕŸ=:£ï&-*X½]%ØaVW€@œúÈΟ;Šõέ_ßþ½Ì£u¢¼sUxPÎN«£ÃÄÏüÐåŠHwKšï#Q¢N®ÉñeLíf#påÒd$÷oîƒfó¦=Hy÷6õw‘G^\V|ò%‹à¨zõ„Â"ƒûß0üŒ‹ fLA­’ùxG•¢¹õY@ùÉÌ÷ÒJbHÐ$U¢rïè÷4||ËGô1s‡”:©ÑÑ},þŽ '˜R3«.ãÑwj•½ÖVƒ‰w}ù›­ÈðжOí»fÁ{e*o y¤Ñù)ÞÓ‘!az!š‚އÌùú_ô—Jo‘“€Mò¨ƒµþuÐÅb~h÷Is‡_ª9.vf÷gœÛHd‰ÞŠDX_ æÔKÂ> ¼¤’/.¼v2fhó,)ÂÔ{E>@¤hÔe^-¡"=!ÎX£Ì–)‹«íõ“BìÄOÉ8O>fªVF僘Ü/|&MV‚×O?c24ÐKѿⵖ”„d¢$ ’ÆéHz¢Á{'9z—Ó^•²$ÅÐ(T£aáØ=”/~%Týœ$DÛIù–\–ZwóÄJ9#†eG¼‰«’lé@Ê|3±¿P—AgüÞt„eO]X„í—£_òO½ŒÅ•ùŸDbÆâÖ~èÁÃQMî+J’ô^GÒ¯oeÕ”óð®ÈIÙøÓ¦ø+â‹McΗkÙ×ß?ÿ¬v‹ö}ô¢P5©Y Wü67Äp”7J§òí˜QWi‘pŸãzÒXä«…3ÁO{|½sÊõЧösÌÂþ¡Áþ|¹"ês ºbŠ«'—À8Ðè$Z,UÓŸPŸP­Ïu*àKA%ƒ*sùÜéiò¤têÝ;þ“du5kò3ƒÅV³°932…‚KW¶Þ-q-ŸkfƒÑ¤4Ÿ»k®‡æ0yºµ L}¦ŠÄž¹G$ÍŒÃW„4”C>#ì§fA‡†CUŠæ2˦¨lä{_¡±{I-¦lÖA/ñÉ}ñ)qÕ€r×)²eª‹ÀB*â·µÓ?›“17ò¶Í›$»1eìf"S¼>_Òò1 MHÑ|[†«£íXÓÅ©®$ G„|1kQN·6Ž:ª/Yk§ „Œ§ùÕb;}ÓzTìùÞ%&žbг˄÷«EÑÏ®J‘¨dÖqÓÃG!©E˜v)ÒèÝ ûi­>{¨'ò¶ª-¾€s†šàŠPË[z Tq—o‡Š¬ix¤8>qO褳óšêi2¸lÒÏ,Šˆ~²«´2úÛP,º ?—Ðô®Šm¡Ìw©ÞæS/•ÚÐéˆÿ¦½ï3båXþÞ=ÛáÜÚÃ%)}ïÜ>Ïo…è“?¦`‡TîZyÇ”ׯћъ֓®EujÎÀ-º›§0Í!­e=²Êè`¬¥ã^.yŒˆ0Ôïw.ãð¶[®—És©F4ªwõ,¾.¥xü*O ×GèÊtP¾fìl¬´yŒ¡ÇRr»Î¨á7‘€7æ1 /Öò™‡Àﲈi_u{‰Wªø•î0¦O[(œ¦Íå©é™"ë凨&å¯Mü¶Má)AvJå$ye-Om¯!'²¨x¸©7u,ç‹v*wfå`½¾y—:ÚGôI6/kÛ3VÌ ØÆSYL'þ¼¥Œžì)´µã‰Ñ¨„´¨{ò~„™ßU¡BA¼í­¨gªÖyÖ ;r„6ÁªP¼ÁWì&l—+ƒÜh±wî |?ª8¢à¦ã¾3Á^+qfÄÅð;y¼+ £Ö ±‘ û-_ K¨ž¾hÒvå9 DèoFãüZÎw"ýTF¥WõíîhsZ©Þ0…ªi*±g¬•Ö~]`c Ìaã̜̂*mså÷“gä*…=3%¹ØÒpÅAÝgâUT.1ª?ÞSÒ?¦ÃPÈ3,D¾`•’}ÒЩ˻!Û}¹œi—KåŠ ø•\ìƒG§†áÒ[H~*—ׯ߃]ƒ5jss`oЬ’Ç»xh¼î&5o$kü£Aaù†5ÈæÑe?`;qÎÚëBcl‡«žDóg•sèŠXŽFAPܲ2kA(¼×>¦µ¬v£]éQRœµ,lÑþ2ÔºÈø Ú"Â/ Ù½×úç×Cw1By>¬¢Ù–¯LO´xËD¦ð|¡/oÂŽŸUM䆲‘³š§#`{¾ï14´œÛú©»óˆu˜àÝ=,è–¡•Õ¤¬]È«vM‡ýüòÁjŸÇÞ¶z«Ûµ~F“Zfe½Ÿà£IÔš’“ÿI©[ËcRƒ*òÄéBïkýRŸ]/R(RŸ[¡#„¨‹<“×.M²{Ü¼éŽ »ö]{W–jèžC+Sñš%K!ÿpƒîÅâ€[ŒMx Ó/¹nË`çÛ~£{Ü”!C„ ¸I¿.²z±N³9BëxÕþ]i÷ײ¯z1MX ÛœÚ>»'X{3Yf>Ÿ7š…‡\?s_¼ÙñJÏ­ ŸpF"³D·›æ´"ƒ;…p8„‚‹”(Tö•ÇL#ÓgûáF—Ol’¾>–„ZòŠèwc‹_=Δ”ÓMSì6²r~Æ3{Íöრº†Í(kþ0#äF‚B˧¾ÅæK¶]!q‡ïU%ë¹LSÆ£iõüìÉhË­¿ÞÙ#f€ºQâD¾@§u“FR+DUL³!=G(Iž¼ëŠØšƒ ¢¿ã®™™È¸«)Âö.ß&„J" š9H×z¤ëb ²25«Åª3aí£pe«‡1çïw.™6GGãëêwž«o3a#: tó!—´2Þóó¸‰ t)„~êM™”ëï>¸!*¾ÊÇ?êÄà3a‰%Ô=F ‹ŸÜ–C|˜©©‡ƒïbH^Ô­·¶;¹m•@èÝýn~Ilìh÷®f5cô:ÍÆ†Õ¯ïõk0ßÙHU;pçI2-_:ïu×O¯&šæ§­ÐÚ›\P6)xàðr Ȩ"Ê#XdHàyAò´ïë(Ë´mf·ñµzì×ÕdÖ¯EH  €˜Ø‹Geâ°Θ’íÄX$pÜÜ %¡0º;%î'!ËČަpÿ¬[øcêåþȦÎt¬¼¶1ë4ç1¯¤P­]·S­!iúkåY—âéµ ñ—U¹Ô[ÜbÓ‹ÊÎzݘ_ì„>¨ã[DVø4¥ýl}DǦÓÖÒÖCc²ŸÏÄ|-©ýi \kÍ[¾­—0òêké°eÊÝð¡N^ãC”?8½z–Öþ.µTé„yQþniЉ?ïi™ÆÓJPKøÔ §‚–¢Gá ò—D šè|Ô³×ÙŽCá¤O­±ê7vÏ• ¿ž:xŸ1‘) êVdOxмTðFµÝì(AXü…ò)„ Îå*¬yO£ÖOAg^h/Ìêy-<á›d!̉ŒD¥õDÛK¹mc»Œ©ž˜ÅýÁ•íF:æÙ– ä×A¸Ž´À3ñÚõoe\FØ …ÑS5¡é ÛÖ5G$Òf—_.t¥¿ð¾G& K߆ðSUï®Éí|àꙣÅ¢DN|o!O>j} ýXßwßÖÎõEž[¾ÇfYeß®q¤ì2 5QÿK±k± îW.áªËÀ¨dmô ·IYÍ5âž)¿¡_pò…ár ¨8W³dЭFjf¶6›y¦¬¡OOÿ×Õ/ZŠ”´é–¯z·é%··=›òžýrŽWX4çWFÜÊñQnpΙïqÖ\×JD‚)~؇ ô‘°@kù%áù{XÑ&¡Ë!_æxö\ƒòåÑ™™qObK1 å½p~³¼eDÝ9Œ28) •{ùlþŒ¯WWÑ8pÅÿ Æ½ÔæðªÜëðMQ€î¶ â㈺!wp­!Q!j\gªú>hÏûãDã±v®Èæ³·ù¯Å‘¸"ÖUäç1¶ˆýƒˆh“¶,Yþ Ó#ùj6º:‚Ê=Y=Êñ¬1ŒÕÚaÛO]™"¼Å–9…â³bËÕ—f’FüT)[×C+ ­Î¨SG5øíoª#C¦œÌÂØô켡Ëo{ÏßÔ ;R­šŒ”ÎÈ?Šâ7SŽú Ïç@²± bF?”¥š~x$M³½Ö}iÁ/¦—¿UÍl™~btnÔ‹Ì@|¬´Pø8êx5Là÷“äÔŽÆ‚—m>VÛÆt3O› ®ílë™oíMZƒbÌLFø`šU&Z¾§\ú”ü€‘•#d\©°Åk©p“SDJœ·ðý‹Û'»i\O¥‡‹*ˆŽ8ÈÖÈ·o»£J¯žfãl>ïËßr2DÞJää`Û“`—†9~§ ‰šEŠ$Œm'^¹½I?Ó±Ò•{±j’œU.. ÅRžæN…˜|Jd|•4I’Ói>¿k<>XÉoHCýuÍ…f™¦ï\뫊MpªõQñ :‘ˆaRi#à¯S8FdÁY«ãéW®é¿¥j68…ºC5Ÿ õcêvc]HÄϤö†EXÓÛ`=¦÷Í:c.¤ ¯jH5|_-}IªAž¤ÌÕóó|3®‚Ô/›Ô3¼”Üíg züÛ×ÌÈÌÉe8´ˆ¼!ì}®€M™oýM‘šÇXÝ^$Ât++pX— úñÉÓ§>ï9íxb¢¶·vø[ÉÝÙÈ®SÇg¢¯O’M—ç3¼`Tx,q‹(2SDZ?=®ÞŽòxÃú Ç‚!¹3²à™&÷d·³à–J;ò!hê;£xëÎØ ‹«;·—$Œ‘Å0ÿ”ª r„q[KíÌÀ‰ñs÷¦ƒ)ß4<›Ûä ÃܦÁ¾ðÅDáYÁº(>ÿló«é!FÔ§(Ó¢ɘ@ÛjBDkË¥”¬ õG˜G¦ûÐP'TBN‰HË"IîbúTäʉü55Îì°Òdš¹Þõ]ôJËt—cèÔq0÷zbØôŸ³nòߣUõTÌÏ=Ȳ\µdòîÑ!†Nì›N›åì×Ê–6Éus.¬øÆ¡TŠÉNb—¢;ŒLc¨–²pÁXÕZGöl1ЖË`¹F× ‚ÇðÊFèbQß3HO—Ug¨—Ä›ÛàÛe#TI ˜Aø°€GsœÃÜõ]†f­ÚP5ý†­eFõÐÏ8}è«2és÷ÜkuèwÈ]ù P…ÕÈ'o›Öã.ÎÏòeï냮#Iô°Þ&”Ë kÙÛí“ec;ð÷Ã@<+¯ ¯ÝGüôoå$œ|а6ô€ßí®Q Ëýaj`®.uØ^hGPjÑ€H³E³Í‚  UÅ…ºFbÊm³w’ާÒ<Úì$ÛËûW”€ÎÇI‘¹ä± UãÅZ<'A£¼iil`L_0Òžû(û@ÃnRÅVã®Ý„Ã\±pÕ³ŒôK`#cžz“ò‘]•ÚTziè“)ܤrÉ\­1€,©Y"ÁÌ ¿Ó¾tW4iÜðn¤Ä̉zeñxcpŠq´Š|÷ áy_r‹8ÑÜëG]ðæ•½ÕòŒ°4Ær®Y]JÈ…ê}ýÎMé!y|^T{–A|4Z¢Þ¤F²ÌËÀšÎ9 P‹f3ú"käþÁ$àðkAyj†O¸¿Ùð°.[‰ëWéŠ 6þò÷կĠ"òõ ‰©$ªº°‘öˆ?Èb[¨/›–¶1 sn–±û¿>ýä–Úlèk§U¢QÞ½³ø2 5·N¥¬§—Žv¨V's(ÆN\¸ Ó¼EœtÌBœdãÄ*òntCÂ3²îøq*¹Zka¿¸ªWqaï;Ò†Gv©aòt2(„Ó‰s]’#¡cL±{à,®¿dCµŠ–¸ k¤b…5ŸÖ"“†˜S9ƒÅ‹eª²B„œ§¡-»k—_­²O±Ë­Ò¹èŽß'„Ô§vô½'aêê,v@QZàUDˆú‹Z½93é%Õ$s¯¦˜÷“ ïe¸|èØf}m‘q’Ëݶѯ{Eù xéêBY¤ ÃáÕà&þ`ç¶îâþuߎ¾9›ûédÂg%Ðasq!ìV ¨ñãÉa:ÙU3"kMïVW ?ÒÈäsÞ GUþåÊÄõ¯ïTÂ"7”Ú¡Ÿñó+ÝJ›éAo®ï}K£ï|É>y„7ù»86î*+3Ó¾¾s‹V,™‰gØž"~.¸…ä¹nýô,yÆ%v¼ ‘ðÕôÖì8³”^‚¹ˆ†“®™I„…äKäÜçäÆªD.ŽØØ¯}DåFžïýb£ŸK‹OeÝÙº_5w¼ † WzB*Pé@²ÌËŸ0,zñè½7nÓ¾ýùñ¢9B{‘d â¸×Îhbí× pÉ™FK¤¤P^,Î„Ôæh¦ùàÄ&Ö‹)£1fÉÑApÞðùú«ôM–Zä À;9±Ø±á¿˜LØF»tVijïÎ}ékÎ\&ê6>+ao•±ÝUC û*)uRTº”–ˆ³ O?s½8‘©ž+öãF'!A^·éºw¿g&‚ð«Ò´òe×IŒ€æÿˆUl^Ài"vÉ,RŠMœ”‚Á†*ü1.6jæÄ³EÐ"6ŒÞóÛjUËS ä.>wIó¸0ôÝ»öíh:ÃjXù<×·GÁÓõ.ätPGàD”Ä$joé–Õ‚•|£]ÀXÑeä@yÊÜÃ@·›¶óa‰ü >[‹=+º‘2hÅ¥3ÆÂ ÒΣÒ£+eHà6¢Ê]¾JÍaQhÓpʪ“ofÔÆg^«‘6Î’Xižã¿;¸I`Å8öÒYR*h Î×±ËöùQÑþǺ׸é±ós*tÚéQ¿w¹Ô=.¤*D¤‘r¥ÈÜT‚*è*ÿºé8R±cqÅÚkN™ØËü$G(Qûˆ¬14Aßv®Ö"ÃX ¯»dï.¤=|hOÑëR²S†IL#\µ“ypaAþa.TÅ›É ãvŽPN÷èm-—Ý4š—Íp6“û÷ØÇþ3Z)RU!'â°$Fìvªh‹^xÓ¶…Õ¿ÀÐü2)‡¡†ŽžÍ ’5RúœÂ Úft{¸¹6']9–Ñ:^j¥“²s~Æ£½HhÒ I•Ÿú^Rè)×¥ˆT0‘õš«ÆSÔ@+GÌI¯lUÌ©ÓMÞéÏ[n\Ás@7—RÀÓ@˨^vé6^f"ÚùãÊ™²“ˆXm.§Šrp®‚¬ROÖ‹»<Ùë)‘‰ŸÏl`þËŸÃo'¦/KE¾Ê@OÄ=Wþy¹¸œób­¥ª„6Ïä÷öìnò¡ÃGS†$@¯¨®E?%ÛfjFÏÓèë€ÒˆVU%±Di/Þ cºexAÛe¥ãIƒO™}OinË›þ·$O"Öoþù{Ó¹pŸ5K\¥»ìElHËÌÀæ4x^U|Ô[Âá—ä˜rÏRU„,›M<™¯ÎsÞ_\Ë:ØzÅõkWÕ‘Ç¡³ 4ÄòÀ{d, ië¡¿X"Rñ¾ŠS­•»/´°”y¿Ñ€‹Þ>pšz­ÀT0•”õú´°J#¢äÓ¹éc È‚@<ŠQ3úëµhßÈëö7…šÄºž+ԆÖ`è?a·Ý)¼qˆKSœ,@ Œx̘DœvÖq… ÎŒFü7ÈÕ,éÕäŸçIj.d,V‘™}¸iÏɕɟDã…Iž¥½ºÅúUuÛ¯7u¼›dž¸+*ƒX¦na~÷ ÅvŽÀŃíL×u—aßëŽHÓÌT¾äïP.Ê8Xäš’•¾\šÕj±$¸ó2.˜¼ht¨²e£Oh¸Ã̘{Ç©"ïÌÖ9.…*[ÎÕªK‹´­dÃl‹%¢CS#):{¿óÝ7`PR/èr]d—¿­+×Ä–ÉÂA̲M$¦$Ä…á÷ Ñ†_Oïžž¾bq®èÝ…ÇÞÃó•‚$P‚ÖœèÆ :qËâë¡G­†ÿÑÝÉ‘ÍÕñ@g†-Fè—5ÁÌ7°oR|Fwd”Ò·x̤˜ÔØQ)Kœò'»™E¥D%í|,*Û$ƒZ†Î§O] j •>ªB¨Ï¢•wí±>VZͬè]*€¿]åa²a¾‘$3[»=ïÛ’l;Ýšbœþ °Ïã»!®ûbúS@]±éB#ê#wâQ¥Ò©Õ÷bôÜõ¾/@2i|Þˆ¬Nr0ü‡+„@Ä…3LW[ù¡7:œq4›7½Æê—RVþþö*×=ñ Ù…~ü&œ{„áz§¦Ø&nø³,Ô«[L"Ÿ=„ †~EØ 3¢šðô²Äóå]"FQœì{Z¾“®®Õ¶ýÇþXÁ "¥§3ìA×oÃ,j·gpy…+}ÛÂÖZ»ÁtFrZi%—c³TvþFÆîg5­68NÉ `œª˜žqBÇXîì`õE,¢ÔÙdÎHZbL BàVF¬{|‚»”£xŸ`ã¡ÎB[i;F’È·Â,yP°X”cQÛ& C'ÝÔ©ÏMùÃ2h+àŠlcZïü ÍnBȬÇ_ùK]?‰%Vº÷Gä ]€dR›ß}ä?V7{FKùÝ$^@ÞQ7Cò¹q¢©ˆ=°ñ½tîw ˆS.)Q¥µ²÷t‚¡3§Xñ$ «[ñ³øÔƒ¢@Y¯^ä›…sÍŒ,€Ïh¬i÷)dô_…pÔ WŒí£'IãÑ&ç,ND'(â® g½B<òßË|Ö]Zy/®æTÆwà©ñ׿»×«®»‚ãnQÈ •‰…f¥ã'ÿïâ*ë0_æ ”h¶)S0î æ<…õU”º’éH” ËNäl‘—jüaÿšk,„[²µ@%Êvm›Iej›-/Wëw­¨Ò—l™#͈ñðd˜^8BH½Zgä›ê÷Á²nyYanŽ&Ÿ®Ó<˜–ù9ü+j߯Üü%ð¹ÒÊ7og²EøŸŒ4 r¡¥èÁ»7˜›*û¡Ý–Àuàï׆¹ ™®Q0ßñ”Q¶ÔuúIa7Ÿé(\ søB‡55†²þÔ Òòì?*`÷IµåúEÖ"0Õw¬‚„tþŸå/.q1Å# RÐ;É 5HÃ"¨`@yíµ2³äjL”€ Îo@„"æÒ›Qit¦c)ý@ÙÁýãî=c¥“=†=_i¹Ç;è5¢®‘méKî\Y UapkDŸ]0R¾1~ÚŒqš—ëìäˆâ¢÷ c»ÕôV$ýŽÎýä“¡tC˜ÙŒ¸‘™âÍqOT,d°›`PE\ØH[óíq^ 0H½ùút†(½£ðÛ·òï¢sÄ&žÇÈ3?BqMÀTg²?z•ꕚÔqjãSºÛKU|zá‹Ê ÛÃõ„[ÙD‚›­‘Ð¥p\Q†¸‘WYRv/êÉzwåðzÔ¿fæEÃÄõ›.DË€ê °¢‡]– ‰PÉ¿ÿUðüƒ¯Þ4“{;Œ°ž\’³eáàyKX𧮇…·|aãçrª—Cqt‹×(.[#‰fÇÄm%½ð„—¬á [éL?Ôº1È[‚˜-ðÞÜITd¶õ)‘LÁïHµDê`¢Ã[ðVrÌ9§!´Pà©Gb†Qãæœ»Œ3I_ŒRª=’xX¤Ù™ùº`iÓFSô#‹å»vH:4šxù'"€Îix;`ù!’ªv÷ÿ¦1ð†y(T‡ìÁ”K•Á-œ•Â-Ä?»R¿Ë-D'‚ŽQãŸÏÓ|O…㘨]ÛNpŸKDã¥nCQ©¹{&¬§k— &̺2’t†#ú¢Ô}õáÕØ–¨»‹ _²N endstream endobj 128 0 obj << /Type /FontDescriptor /FontName /NCBOMW+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/W/Z/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quoteright/r/s/semicolon/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 127 0 R >> endobj 129 0 obj << /Length1 1626 /Length2 9118 /Length3 0 /Length 10168 /Filter /FlateDecode >> stream xÚ¶P\Ù.Œ»CpiÜ‚»»{ph¤—àîÁƒ;w $@Ü]ƒ'¸…GfæÎ̽ÿ_õ^uÕéó-ùöZ{kס¥T×b•°‚Xe!`7VN6A€”Š&'€ƒƒ›ƒƒ …–VäæüËŒB« tqAÀ‚ÿ r𻽨¤ÍÝ^âT `€¢»€“ÀùZ“OƒÀÅÁ!ðŸ@ˆ‹ @ÚÜdPa(BÀ@WZ)ˆ“· ÈÆÖíe™ÿ¼,œ|,¤$. Ks0@ÅÜÍèø²¢¥¹@ b ºyÿƒ°­››“ ;»§§'›¹£+ÄÅF”‘à r³h].@+ÀæŽÀ?;cC¡hÛ‚\ÿ´kA¬Ý<Í]€€ƒÈv}Ép[]/‹´”jN@ðŸÁʰþÚ'çßteÿ&ÿH6·´„8:™ƒ½A`€5ÈP“Ufsórc˜ƒ­~š;¸B^òÍ=ÌAæ/Tn•И¿4øW{®–. '7W6WÃïÙÓ¼ì² ØJ â軹¢ü®Oä´|Ùvoö?OÖ ñûü¬A`+ëßMX¹;±ë€AÎî@é¿B^L(ÿØl€n^>^Ðô²´eÿM¯ííüÃÉùÛüÒŸÄ `ýÒÐd |ùCñq5÷Ü\Ü~>ÿvü7BáäX,Ý@åö3ÐúOürø. /€Ç‹ö8¿¿¿ÈË vðþ'üóe—Ö—Ñ“•bþ³ã¿}’’/€+77€•‹— Àà àãøý7‹º9è¯*8þIU[Cû²Kÿ)Øã¯ógøk6ÿÍ¥ y-ÀðÆßpðrX¾<8ÿŸ•þGÊÿŸÀ³üß4þ¿ɺ;8üáføÃÿÿq›;‚¼ÿ xѬ»Û‹þU /SþßP=àŸ3«´¹;þ¯WÁÍüe$À6o#ÈUä´R¹YÚþ)–?í:¿‡ÌªC\A¿o+'Çÿø^&ËÒþåæp}Qä.àËàü÷’2`KˆÕï ãâ} 0wq1÷Fáx//À‡óe­€^hÀΆ¸½¤^ÚóXC\P~Ÿèk^»ÄoÓŸˆÀ.õ7âç°«ÿƒxìÚÿ —<¿‘?€Ýâ$`·üq¾¨–ø/øÂcû/øBú|arø|¡rür¾Tþ|a†ü rØþ_rù| `wû|iÕýÈõBåýü¯íµtwqy¹`þ€—½ÿþã6½€–(‹sK¡P»†ÐÎÛ: OÖÝq‘iÚ]½tFVŸE—.÷{ ÄTÆÚìàu—k‰Ô¯}X+Û2 WâKO>G›#Ú“5:|M5'w;P¾áNI4!“²j‹ïù>9ûêÙÃ~„îV¤ÍwvçÇP/Ľõì—ój¨X ŸÛÕØ«}­„úX1ŧû&¨t†¶À"g– Á• ‰ çÜ sæêz'oâ™B1‘Åï8Ž»ÄÇpƒëÝÝìÛÕ*m.×""CB2Ø+œÑI:Ƀ÷Šó>eb°ÚØF¸ ŸsŒ£P)Lv?ûØ+õ"J_oDÓyûFönýÎßÊvJ5!Åìé…ÈyõŠ´;jBR¾b³YÂ`^wûÞκŸ(N–fâƒ,ÑG9>­}Œ~÷Ê% …AP×0·"ÁÅÝKk¡¸÷Ó¹M¡Ì@”ËgþfIlŒÃuõi±T¹¥Â|,øeõ ¾O˜«Y½{i¢f1¦H?;;ˆpâ„0ƒ…ocçdµU¶&tKÊTäa6©wæ'½ åºR,ÄRj×éo¦ÝøÙØ; äÈã£ã'^ùT?±KøDÞŠÞ†k†Üá½ï£ÛÖ›=¼â :¸fòÚ²ê\ç‰h&Sð|ï„>œ$œ+Í?wnÀ­Kpà‘ùe²æIœí1ìòm5R§ÁXEös Ëãúá—v½O±!?X´g),¾ ™­± k[#¼¾Çf°º'UЀf¬˜{,úÅJÚ£›|ØÄœgc>¾¤yJ•,|î(˜Ã@:½ÙˆI\Õg*…ˆ;àU+"{Ã&csüsªét?k8JÝu_ÖѦ¾¶3{ðtÉKF+>#å²Ç¯Æ&AÜú£*x#kËü!à#‹A_6¤.жӤwœFa˯~(_§†¯¦óvÏfŸ¼Ký˜â:Óæô3Zäm¹1E5ìê¬ÃEâ›AÔ§’äDŸh¹¡›áè;LEVѯèx8_qüÅÛc,±2ŒÇŒ‰× GÞu5‰ ó äÿXðϓˣ—^erá«öF˜_ÉXYŸEÄDºæÌJ¯!ábM°úx›¤j´ã¥l;’bRz&ÈaÈl  vä ø ö˜¬¼º’}kªà™?¼`(þ°·PýH+œ¯W+Ûe®P7q9@r÷{2fÜÕ“r"EžGI@exŠ ¦¾ÀC7öªf`S”Ѻô=ØØÏj2>Jr©‘ô« œÇ2‡+o'”ëæN*¡ªå÷j', ¼Ð¤ºLJ?Íœv¢ÊT©Ît‘[ɾHZ(ÛxÛ$®?’@Ô¾ðN£¯ÈeqÄ4þ˪ûÛ·g”ˆ ]D[¹‚y]Á£Ç f¤dØ\„Ô¥[¹³~ˆûºÉ‡ÁO‘~s3ƳïÕÏÍ峿vz£"}Š„1!CaôlŒYQÏj8îx$%Ï)N"«&ŠŠz¡Mo\ßz:Åñ~di©Y@smËt¾7&qVN¢ëú3±¨äkGj™g©žvßÚ`Èvà©åOß™qÛ!fD&–ɧL}[oÞÊKnÚlÛÌ’5>;5¯éˆÖ«•tm÷ȶ¥OJŸ54Rýè/ôtJ âü ÊГæR{ËŸ§Ú!×N+$*‡A)àŠ•ÁÙc½ˆ«Ngü&x֙ت%‚-LwïÐ/YU#ÉÃ,äa±e ud§µ}²öBh7šd¼sKòUo|N pwˆ7‡TŸ¿î2†èes(H‡kgT¢6.…Ê}¹XÑž 9KÛ±¿Eà›ÿ<ÃZðáWì¯f5ë,IÆzXI)k~¶Ft=Ÿµ­/r3NÃR›q%ëo¢ÇÂ$q5‰œ¨m;V°1»·”L×#®ºU.¯}u¤£×2*gc˜ÆN˜Ï{§Ô½?åÖ¹¾ÚŒáŸ`×Ö&zÅ×¥*Éæy«Ïtã¯7¬Sh1¹±•þlêífSh •q~"ŸÝ–Pø¤T‚«Áù£în-Ø¢C÷ vd¤¹yÖ<øË¿hdt6Và™šžáMiky.ÆªÓøaU¢"/oe‚Í[X¾„ 9ùêÈ )† w‹ÓKMal¬òÂDHcD˜QüÒŠk‹† r3^jt§°Áa_ ·E6°ç%ѽÛH˺&²Ž+Q"E§¡A÷÷·±¥™ö£l×g»Ò8ÊWyÄõE'¹-v<¯ò7Œ4í"ÙSõÝÚÈÎåwXâáz¾íbm{N}C[Ä”¸¥K¥Ù½ÅýeHÿÝ.Nc{à0üY‰P¥1Û Åb4£«W ºÍ=9ÊUÛàÑV¡h#€Ü1ÌØjµO¸·úÛUÅU|ŒÈ¯¢×¹îõÇE4!3f¥ˆûk95ºw³Ä%f4¸ì¢o[,øsŸèíöˆX¢h@»ž‡Éí¾OlKÓ£\ÅŒâzÕEôª:•Ûa´BÃÑKIaÌ"2ŒLŒêi‹FE6"MLsZ«Pw_<;³ ’ð“4ôf¼™ž€Œ€,(.Ðg–2¬¿ÙeŇ7]);%Û“UÿŒöì©„ G§aÙYõK3ÕÁ„Å: ¸ª læcÎ@‰"Œ'4‰A(ö •´6@¡± ;ŽJ¢èÜ¢³´ L1k¹s\Ü|§OÖÅÉ.|ÛåÕ²‹©ÿ,•™×¦r¡¯¼MÕ#Zž¾ZË. jATñä55˜ v.N颸³„¬u‡ÙY´kNvL˜å§URû&P`'…F{÷hÑ/ryçáÏÓÅôƒ—¸vÝ:íàj”jÍœ4ý ?S¬—šù¼úSÁO¹'>JËèSõ½­RæúArƒr?ÙiÊauLn[iGžCšîDdûTPáÅk¸W•/àó²nº×wÌÕ¶”„°¹ !—UUÌz;ˆ=œDdK{sÅ@ìë„ð&‡ŸÑ*_Öti@íæ›MžÀÒþÔ OîIíüMM.9\¸é€‘!…} 5ç+ƒÔÅê³0Ô[!ŒÉLâì ¾’צ\*"ztJ4¾ßæéY;Æ+NE¡²5ë!nüØÈç J;'xæÖn6¸váúÜOÄG( }—‘š"Ÿ¾ñV}Ôq<æÚ)»ñˆe¿K4ÒO‹ÿž¡à¡‘œÃZhÒ¼ÏÖÃØ™,òÆF=»¸*¥õ‡7ãq3r Z¤˜Ñ'›nÚoÉË1TQ?KþhÑãËÕo•qÓÇ\K-»ÎdvÓD¼Q|¡ ŸÕˆ˜7jFw˜¤€…™¦Ô¹¢î~ép+¶›åé8¹/wøw$¸zbƒ >F'Dí¾u³Âò1_nlÇaÌ–×âZZLñu}’À‡ŒoÁ'd›®ü-€Ý¿$gY²ó­<(‚xÃÎγÀØt9¡Ç²N„ºNðÉ AÚÝ/To¶Ý^¬kbÝ¢Yb„¶ ÎRØ àÂEÚMò<½D§H'«YñLªw‚LjñßKeÉ­Á}½ª9$ö•‡áúyHí×Þb9e#‹ŸT*ñˆ×G7¥ÏḚCiwƒŒ²'Œ‚ðäïsÅ£±¼êBSiÓ¿xÚ‘í7`¾*_ÇI)H±„«©nA¸„E’híŸMCÑ|U’é?$Ð.¥Õ¡ÒSß~µ/º„q¯(—†74)L,§¦ÃcgUÝÙhÅÿUšt÷ú&¨·µ’{K0M½%mHµ€/í†Ë¦²b Z³·ÞÁù=q;EÿUìY¨ØìÌüÌ&Œdj“|ë’àÇÇ:ä…ô°oî‡5è”N¦b¹½–ú,ÈcþvQ µ|Š’/Â"çpYÈFŒèøf\ŠJV‡`hÉ„x®‹,ÃÓØ=¯éœÒsxÿ Ü‘†ÿ\à‡`gV`L†¡ï¥Ý‚2ÚqãðØ ýl( ºÆfPaƒöÌöŠåœ¾4ÿ`ð!Ä]TåÏ{˜ªœ@ãÛ{Çý°õÞ[dýr¨+¾`öÑÃ0YF ¡=ê«Í&´áwLëØïú“\[5ìÎ-öM Ç@+Ïz&1 ËðJé¶@sú‹­^4-ôHŽKÕì²I)±æªþhA 2d1ÍV²Âƒ*‰›W¾¨|ÚîÃÖzeÑV–Û¥ÏAÑ¥'ËÑÇèêml)Ã37µ«rRùýøE)|Y8Tt#Q¢ÔGÈ °±曟Òïñ\O)W١ѶzB4”/Fá­æ¥?rŪިï$y-Ãàé …À7sCšÞ©@¡¥Aå1~øêJP5Ã!)@_°P_ÎF+kn°(@±Kd[m> ½ŸCuúœïµ¾åU©çè‰9nwR¶MÀ2‹eÛÜ Iéõnm26¼Á*c³l`µ”£aŽÙ‡H¨ô!×/ À=jØc‡¡(§}}Ü“x—×*>r­èqÅx”îiœ¢1õúøNë-ûàç@šL\E4žÁ&†ƒÔàÑmaFšÿ–mUÌ~RC·nRˆÑ¬ŽŽÐU…úkNäíEÑDûí<)ˆŸœ¨Ü•Á¶>A@¬«L\ …B³³)ª!ÑÀÂíÛ<Ñœ÷8$ÛcZ×¼ôeøã癀¾&ŠœLÝLîpú´}ÝØ$³K;×ÊÓqÛZe5 ·$"MÔëôepsiNñ†;© ‚:ÏÍê"Zÿ-êï1H0Gjç'ÁE’åŸ ‰Ûßeš|¹ì1B5[‘K.%^Cζù¢CȵÉË“Öãiœ‡dЧXr-„̧鯈cø?GcðbÚ[™¾>ß>¤Fq\#"¿Z±M„·xÌè¶×:bËÚy«õÌ.ò¾ÃÄÜåmK±Æ{ò§×ù•¯IgÀRgýë=ø¦})ƒÌ¤"7šÍOˆŽyX IœÑóÀê*‹ši¿¼p‡lx¼‚ëÓžè‰{U=ZÖ<¢7§.…¿ªê±žSìàæ -)H¨ /nï.zƒ­äù³`á‚9Ôë¦öŒÒþö_îv|¡šÑNÓOÙá¹ÙzŒ}<-ÂbñD«òãá*DI:å,–Œ;‘ÌyÒ¯£Ö/‰ 2ý_mÔfü}Ýõ’6krÖð´.szß%[±ÜvWAÍ 'Në÷­OäT’œÒìñãIÑ'ëç 5vˆã¨ L»¨¦°à7à÷Ü’iÇ¥ÓêSîÐé¨ ©¬Úq ïÝ1ŠA-jŒÉVä@-ÁØ"ÐQ±¼Ý„nÜyCÃÏûBÙ æ>]{ÁÇ1V¾Ì¶”Þ|!ƒœ/0ì’×fB ‘Y­·fŽ›e"$æN;×_JePAõBª@â„ö|Iý“˜ÿCxj \­P‰Ó›YB~¶ÛÕX:NK±pê,ÊèI„úË_ƒ[‹ÆOó‚Ãðrüàû&iç”­#„G•"ÜŠcE ¬ñÌí¬éf´ÏvÖ?¿× h®J»è9O•©ÆP…­Y) ¬×ÓQc¹9SÃûdÁ^òŸˆYà«û£‹[óŒ4ô‚ʺ%›ØÍ¸f¤“œÌžbLg=ùËŒfên?xùuÎ×$/ðÃë 8>cæÍÞ{`úú:V®5ÜÝOØZ]НU\ Ü\‚gPµ¥°é"óÓÊcÃKBZ|2¶c$:´õ÷Òy©bž\d<w#©ïH—ld÷k÷8hc)ê·´ dt‘)Fù§ÝóHFþp*gN÷¶/²&Zb >ñÏ­u¦ÔxuææÌ¬ÞÑãþõJqÕ{ì°6iÀ’q<ÌV~ú2ÿ\1-%r4ƒÎœ<[æ×€®á÷V‡ï»ÿIã´jÛ>è^”L} ºÖ™áËL )ÄrP™Y‹0^”O ùè0è,]·‚:˜+…ˆÌÚì|mòz¬(NšðNš¢ÕI©˜ ­† Õ¤ÓѨƒ‘-CUC<9ûfÄsok½•þxÞ …îdÜ‘²9†c&0Ô"qI¡,NRIÍ6zŒd~Ø^˜mIY Ý WpÎQ1O›æÅŸˆŸ“Nîtñ˜¤Buò«¥ˆëLøÓ1E¯.=[œzr!ñ—aØ[u<‰ $¸ð¼ÝAã–&€@ŸhHËYÌöêÙ§áè”U/Ÿ™ºMáÆÑhž<Îev,rŠö1\XÓ¸ÔšR^üÄUq¢{Lªÿº›âOÉò¯d÷‚;™÷+…Iò…¹¥WJá¿PÎÂOÆ“*QÃ;ðGBûŠA¼èI—Ê£nËSìjøßš p ž3÷¸¼ËtxVü†YΜ‚|V¦RÂÕá[íY1‹Pd\öem%ýuUòt‡²Ò ѨïÍêU)¶ ØâŸ¥zÒaV® ÑESM”/7úµr•2p„ˆUK7!å¶TçÉúTúEõb4=°:K§õî©C‚ åÀcY8#všŽg3¤¶t_÷Tdß@¦jÌ0 haf5žÁÒŠ¢ž÷|yïzöÝÆžÉ´b‹rì½ýa7½ÝÞ³î}ˆµý ÓÅ„ÿ$O"›†gÊ{mŽÁÖhb"ßçþ«>óSåI[!*Ï? Nùü>YÚ‚´,ÜÊø3£ÓzáÛ:@îL½f¿ãiqò’LD]ç<ɵ\4ú¸@–>4ô(P”·±û»9ëW˜šÒ0Æœ‡7îÐ÷Áß"ön½íÎn¿ü¤ËSª˜ù䢅ËÓÿN i¢íjhUĤ^{̹6H–dd)GUäöΞ̷ëÍ…µà1ûzÓBº1óUÕäœOò¨Ä²J*&Ë‘^Êt5”ÚÒ5IŽäU_ˆ\ô¤©¬ ߎ}sk¤³X‘qÕ%« âܼö‘¨g#EƒQå‘ëP¾jL¡%å@Ük¶8β٠neßê |ïJF8ÁÝqwx8ß97ªWä7Ïjˆð8àï ½‹5‹xdsBŽ÷wh©ÂÀ“:Q ø‰\{lÂÐÊùŒlžÐ†q1í–}¹ÓDÉiÃSºq8e9{–„í´(t“T¾J` êFã5·•bWˆ§<ƒÌ¤‚kû3"ŒUµ$±«Â7þœ GEØ^¥µø›%ß©>?s»Ûaù "«&UÛXûMYêGÂúFHÕNYò©FB¬•eAZƒl—âww—"8Û´¸wáO¼˜ïdqHiŸ|¢#ÂÃ-¼I¶nt'кZh§æÈ²|&©KsPྦfÀ…/é$/&¨åƺ‘øHÆE”-wa/×2©÷.}ͤ0»!Û–¹È'IVP3ϱCó(è'u#"•éTÃ4.A|/Ï`¿¿ë@áÂç†Cx…ÒM©”… ³ä[Ò_\Ð¥•výƒÔ„…Fá Ù„H¦‹šÀÆy_ŠhÎå1’æ-5TÎÉ}qÖ..ßò,¸¶Æ#èî>ZÕ¦ú0ãQ’õËùF*¨nFF/"äÙY)¨õq Ù̺w ˜³`~»caˆ‡GQbuI·R1§3SjDb‡¾µcVetY¨çåè #¹Õß[Ìc}Gøq£7€ýIó,ù›O±P~9=–BbÞÜ!^ämΉ?/ŠÚ†MTËìRE óYdt”êw&„¥'ÇÔR£ÈŠâœê‚-Õà*_»dB“©†/‹W[Bž¼7j¦çjͺJÁ ©þ9Ý©›òA 5s,Œ©c«•n½ L²nê!ó>}Ê‘‹®ŒeQÛ³Þ9›ItyžjsW»ÌY;‹`Ü‚דㇼ£2¥1i³Z’ì=þGéÕÎõÍÐXi­ªIKU3Mþrðs ͼ!{B£™“åÐsNoP±fJÇ{ûÑKB7½yvƒ±zHÜvÞÊž>êË~ËŰO¾_Q•¾o´°JëšHo,`«ŠŸeI ?””çL´?Êë8óÆ4ž°§|îŒdFìÝë<ÅBäÒè¢HŠ9¬äfö;Á$[nWE–%r]{"¸Qˆ¾N¾PS\0ˇç•&,òֿìÀÍn¼Òú5šìk—2üM©ìûsÛg`-|s§m(§M‘C‹X'6p0¥2î.ÆÁïg ËìŠ<Ó;YBFlFZöŸà~N—©e/OMðPGé7—ý|4á ¢d {äµþ6F 1Å1¸ÙÞIx»âÝÈUà”š'ôÔ#¥ƒú¿°ä·"8?w''6EËž\'â±}`É©¿‰‘cSβøö:X=숯Iå>tänÈfsÒ›ˆ„¬Ë0-Ù(ñÓ¡! lµï¨l%ÍÒøâ#µ<1õ>ç>k«óƒÝnèèílžinûîù©Ö•$~"úòØã|©Ï@w»j%‡’à /p(ÌÈܰ@Rý‰ó¥ÁaPˆðÜ&Å(ú×.f†J ¾mœvøŽ½-÷«ëîðlî±¹×ðU+œâ"ºON4Ý¢ŸäîÌʳ¹¬£1›õQÉÚ;:Û1 Þ7½ci…Yz™b#¼-ܳ9Î1)8_åÓ–M“:ñnü:Þ ¯SŸñù‰ÒqõÀûuÊRèŠä„t¸Ö´wÞœDuɇHO Ù<ý6 äë¬.²;¦‹±\|JßOv„ “¹±ëзCêöKM y ç-Á(P?Š__S’È,!JÄ»W†,fzäZ‚k´²ýe1åkìáÍS¸AŒôYS‰Á#yú_„ö¥oÉmhmiÐõâÎ\Ò¸ÇϽÊ}Û"]Zª eVžçg›KíV¶ÛñŠFßň 0—L“Záa&éׯ“Pˆ<7œúUÂ×çr<­¯èÂGë`H‚?¤¨%~¥íŒ ‹øªï¦· KÅw­Å:¦Õå:_¨5fMOÿæ®Em;ß ÊWyËz4¿G›¾oïwF2K‡y¼=¬­“¯hß§öJŸ†±tÞSûºÛ§Îí;q¤õÜ®—²ÕÒ€šˆUŒ;‰éÍÜ€ØÞ&Ë.1§j¬§€fcÝ 9‹†ØÒWä5.ÖcÎE‡IAÚžÜ=ÄÜ~JØ‚¯Ûæh‚¸a®ƒ0 ¿×fU=ŽÀ@­60¥F¥î,WAŸ=a4ìëqÑrǺû :’,õûˆ¼žà›8lRN'Øu¢'¾Ú÷:n«c¾¯³\†Ô Õ0½0Ô4Å–ç.˲]ûX67 ìÉ8^ñ$\xnðÛ™Z?ƒ^¯É ¿»Èí'¾é’ªæVv²|CbS`&T°lEFa[ª¤o¼¡€â¦/¦ÚôôÈD}àT%#0 ³'\;L$i³ »'Øi˜ú®g™À ½P‹æÂ­ &’R” Óç.R]ž+ »8uHë<įÁÊò#Q=¬{œK\œÇP›!žÆû%EN 0VO–í¬·±Ù—Ê=y <¾røÄ™Òäg›á[ò'fÁÓ÷@Þx{ÿ 5 Wâÿµîâ¢ì¨Øq‰~ÛÈáKùÎOc)CÙÙ€JóYчXjå¼Ô-«RTã„ʈ; Aƒ–úfýºœã”¨[ÝXuˆ•º1_¯L´òÁÅÕüQ>M•4ðùçjèWnÍjÌTZüF7M¯Gèôæ–Ân!ëzGr\c»Šz6Ó€/ FD‰hCR!þ§ªÆ*9ËyŠ#¾è¤ör–Ù­ÅGάy.ë#ç[i٣̛(ÅaFè°·Çž f¤:ÊNúv¤d%NfHŸJ˜È ¸$¥0Z,p ßoÛ®‡WÓ`Fr•1ä ¯ )¼@¿Vö#"¨D^1€Z¼ú1p§e'WE”Y¼y”ù6S}/ÏElº…è°;êͺ3¨Ë'×Ù™ µ.Sw¹¼O!ywøq” Ø¢ç䪷Œw½ ,¡üM§fÜLXÃk&—ïG"ìU‹KLËð‰wd‘wšèc›lpíUE½¶†ðÛFÆÄ€z–¡«cJxŸxïWýÜ{HåЬµYí[oïTÕTyV[ësnz!hýŒØ þüØ5²ù”ãì—’½îúËùˆŽkeIŸt©6'W…÷_×)rº©úJÎá}ë 6M '˜¯ãz 5É¿hhQ£ÝRA]à€ýn$ C4áõëDp÷t±>›#hÏ<úâPFU>Z¤ênA4Å﹫P?‚~"XAU7<µv&ÎSòí[ÞÈ[¬_¤W$Ç*8ÞåÇ5ÒálÌý– 8 ÅrŽìt>‘ÆL wé/ŸÓ>‹ Û%£ƒ‚6¯ãˆ¯O_Y¦‰z –’}=P`…Œ?û§ܺ`¸EŠÊŸ¨—ªkð¶ÊÊ <Ï3@˨D©ðÄýJ¬VÈCœh7 Šž¸œ¥ì·of<(ùÌÄkæEY½%×Jý€Ûëä —¦dHì%…Û3eGƆ§Ò;Úk{ÑsªÀŸöHò‘eæ®­žÞ! Àm2ÀEßÿUºÉ endstream endobj 130 0 obj << /Type /FontDescriptor /FontName /DXEWFC+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/A/C/P/T/U/b/c/e/h/i/l/m/n/o/p/r/t/u/y) /FontFile 129 0 R >> endobj 131 0 obj << /Length1 1489 /Length2 6908 /Length3 0 /Length 7920 /Filter /FlateDecode >> stream xÚx8lÛ¶ÚÔÞ[¨=ŠÚ{ïMÕˆB$HljϪMQ¥ÔEÚŠ¢¨]«VÚZEQÕúÒ>}Þ÷}Þÿ?Žï;rIîó÷uÞ×yÝÜF¦ÂÊNHG¨‰eªú¦Ö ň¹¹Í`h8ôoœ˜Ûê‚!2ÿá¡ê £1˜qÔG":>pH’”IÉ1 PúoG¤· @ ì sè‹t(Š˜[éà sqEcöùû-€ÂIKK ý({@½a0 F»B=0;BÀp€)ƒ¢þ‘‚OÎö”õóó{ DÞ. üB?Ú`EA½}¡N€_”`èj"ÄÜ3Wê/ƒ)Òíö†0"P˜„Ô€Ù`ª­0ô„"þrÖûËAðçp пÒý‰þ•†ø †@ž`D áp†Á¡C =´?ZF8ýrÃQHL<Ø ƒƒ1¿K4”` Ã?üPo˜'%‚‚Áqý•sÌê'U¤‡FÿªO æ …`Î=@ôOsÝH?DÐß+gÂÉù 'OQsÌ˪­öÇÿs¢@iII ê€úC\Em`à ýmü c8„y"=ÎИ3óB„ûBhohHÐþ¹"N0àu!ˆÿCÿZcúï óØ1ò€¿ÿzg‹Q˜ø·ûª«›(ë þ¡ü/£Š Ò$,& ––@ $@JJòÏpøo;ß_ÿìƒüñÀ(×™}$fÿíj ýktõ¡N0ÿ¶j£Á˜iPF¸`- º-¼ýCiÀü¡NF04Äõ/Õü…›ÿš78 5B¢`¿nLø_6ÌAÜ1· #Íß&(f†þ¹¯:‚tú5lb’°·78€ÓkÌJÂL¥Ôÿ·˜¢"$Àp 8#½‰5V Fa8ÃPî˜>¸þ2þÆA@1€¨£7…CÑÿ‹ÿÿjï¿p Œ9jè@b €¨ØÅs c@€¨ áƒú üƒÄÇÛ3Ô¿‡!ù÷ú÷ …úC!Ä ³Hˆl”Û‹¨Ž‹:ef?á£ø«k]ñ)Öýqhž¹§A®z¹šS^*N5 #Œæ+b&gƒ™>]ŒùßëÉ _ÉÒ*@c©÷o¨ };éq²9!™\Æ¥ÅoP~N5f%w°ÁµáM·œ½Š–êß~¾Uü£ µ}Wzà(=£àÈbF?TÎïÚÇ~`ÍÁµ†¶¾G‘Dåm“íc¦m>þû,é\¥#‘ñ[À†MRÎðòò›¼þGâÇEº}µ’51ÔŒ4:ù#iƒŒ´©y:/QX<*gª™)œŒ%1<+8R+ß§‹ÚSÅ}š\ TÃoÞÛìÓ€”˜•Ïï]9f±ß|löM””¡%-ÞU¨î— w­ÖÙpöçZqxA.¿¡kñZYV~n­‡ý¾9‘à~¤¸ÝÖÃ…ÃÃÜT˜m¦<üÎà‡g*’Fp6ÏgË÷Wr™j&nj#m·5Ÿ‘[B"_Ÿõê¬ØÓ§;-o:†{c\ŸXi§ÂS¬:s÷_量Ԗ8{Gi! .‰®×CvÛó'ç'O‡šäãµwiÊÞU’žŸàL¶'/4£œ3ÓÛÆÊ6 ²–‰V›¦ £vÿTÁúü}µäÛ§ò-ò™w€÷'Žn¨$SÔoÜ4îý†g—âè}$*Fh§[Ðu×Õ¡Ì€W};Ö¼Ÿrµ£b=~$5»R òÓ<Ôžºüþ½ç‡ß“¾nŸ6}.°Rnˆ» Ïèž Ý°ö–µóî@Kö«‰ƒ¾NÞÌm­¦Ë3Ü#jÇaM™AΨxUs²D›êòm¼¹ÍX¯ã´…л÷­sóé7͹ìíÍpO»&ƒÏžß+½TÔTä¼óÑÒâ5úa<ÒA¸$q¡j¤_ïP‘‚'š"Äf"X®ÎÍÄ›pEÝ÷tEû6\Z(.5=ÎúX–©ÛêYDu!ç8%w¾û‰/}µ2”| Œì®ÿtÛÖÒ‹Y-B¿?ÎúöjÙIL e‘uòÌÛ"+#õ#½böb­7kZ+Z™AÄ zÿ)Fš¡=ÞîÆàv$éÅÙ¥¥;«I®zÆqéaNkò4öéwžŒl8»Æ5ݽP=JlWÐs6|Ç/¥5ã!‚±pRÕ [@iÉb/a‹¯ó 2RÐyœ!Oÿ½!ä®ÈX‰ãüTcjR½e[é³IñV¥[i84•Ä¡}3ñÅô‹ïÛ _M(Ú£§-esºß~ÉôQâ»U‰x[F=}Óüi^PðÆ×¯Æ!`ñåpœÌ®“;þ¸ÕÌÅSè4-KåòÞšuÙŽ÷+?IUÛ†i"- }ÛòÒ{2Øe3òêåG–„¢6ʪºîqV}kÎÌ¥Ÿ49Äó5QÍœ/ÁÍ3Vs%f$›V²Ê¤É#ït§¢{èè ßVÖ¾0²Ã®lÈñ[È¥.uÒÒ t烜‹GúOaK ?067ÒnpÒ«E1E“|µ®í(<=ðíI·)lý>ÏÖ¢ÇmX¨´Ÿ£“N%·bÄ›¤óld1Ô7uFh€«‘ÓÕ¼L_ñ´a_q-ÝS`6JÊ—lŽ^~Ñ„ ÙÐ$OW*6H“°;ÏŒ7ûØpǹ-À`\ÙjÈÕHZ ”šÞšâ&‹&ŠÒ$)¾L3 |F}râ¼;aG©æºt*·Y”“³®’9²7rùj`!%æÌ«z°²^g?ø|ú¹’-„íNz=‚IÊ‹7’që†nÜÕmwCyúßUJ³æ€´ò%¸Ð²RýÁ ý–;ö»2)B/›÷øç—/Çæw¦ï!Û#ìæ¸^ò$~<9¶¥¼ÏLÞ|‰j削êMY_·ãÏå0ûø: Lz‚½Výia¢a.¼Ó”³P6y'óÊÇË4žXYâ8GREžr±È±˜c¶AX““\?ÞÁ=y^Am+Š?*790¤T0%ø€%FvãG<æ‰ZÜhœþ0TIjPõÙ•õ­r÷(€Õ:·fPL±ù±ÚâýæØ`d7¸"×ötGqFˆûðØ]OÏv¥L½6Œóíµ/Ã7Ù}Û b °Ã1:ä0ö<'êIa>oõ–<ïè‘-i¸›µÓ=°é;Ï&íN@™Dפ•à)ˤ64·Hwc<åMÈ™DÙV/?v ÔTUä䎆.—øqìÔgJ>)11ÚáÚzÙ*sÝùލ3IýÖüN‰oußÇnfáÖf’7bX¢Ìýî/I!± Ý̉óKô$#ѵw¯˜^é‘Ýuºð2rÒ4ޤYÀ®Nx¬§Uò®Mwéô¤9Ÿ?û+W¾àÜ"Ä: ³´½¤àñ bj{ý·‰?„•€Tø?˜yOóÆë'Î*ЦåCÅäNŠËõV´¸Ô|‘֑ѯÏÝ ,›¬_jÌËí¨„4díº7,ö¬šò½Ÿ·›ç¦b+_ý8ðˆjÇJ#ß…{D"§ßTÜf4þØF[Uð„:8=ù½/;ÕgÁû)Ål¯3Ô› Iï^,à¤éìω֜±Òí£ç£q®´ ¹1 Fª»¾Ÿ¶95%CHJH?äÛ6 •éS^%fo×ñm¶ZÌ|YMÐ,¯†KEè:3[Ò®xØÊ×ä â­¼=c¥(åëfèˬùÌ(ºÔм8¥×w7*¸5^íÛÀmaòok@õCÏæ¦»¦—-'ʃk±Õ„q oÖç[”73Z{:Ñð®ú1­…6Xfáþ¨1ý"Öh£xƧPhEr©si–ŸûûX¶ -¿ay2ŒóáDßç. ëüÏðƪ> EX7U|àÉöþàî§k·³Ü‡á}Mƒ[Ö½ÊÞº¨3¦ž¤~žÕ–{C:¯ý£YœêJ¨èkôý¶Ôþì¼2$«Àá#éÄïñí…H·ZóCÝ3j·Â6"!üÑ AGPÝì‹/$}ÚájzŸï∇Ÿ7 #§ǼrÖ«øPáèYbTx¢€ºÄ­GN±_Š‘IYA¶ª• \?q4ˆ]8&âž!Û°¦ñÜÞ |?-­AßIî×õ3vY~è™'²£&‹™Mˆ{2Ö»_O¢gÿôÍõÕ…) gÕ6=šg¡ÙÕ(gfje¡MòÖÚ°E8Yü $®LŒÝdFaO¡›³žÇŸtb‘JuõëYá×öG{ÊS¡âeëÆ´»Ý*l§÷¹Ž¤Õ‹ÚèRÜ䉨*ªvžùáÕÚ“KˆŸ—h|r™în¸ýD%ggóñryÕZ§×‹ñ£röÕW+“·›Øb‹S&>ž93¼#ª>š5í/<ÝèÀcyê]\f“ºÜãë𤣩þûCúÓîPÿsM®ë樒½q‘ÂÖ±›o3^–Ó/wiŒæd@êêsS#äjzœ9èo° ŒtVŠà‹nû῎7¹ÓƧ´°ð 7ÒÒ©ÔgÀ£íñ(ù™‚ÇLè—a¥18™å5ç”…ªÖÎÅ“;ïÜégRñä.ò |HÁ{%åý"¥Ÿ±Ñ%¯ãàb/(ZÜ•µmcùéõ/ÈC›M‹¶®­³MLññs’gxÊì’XSy¯ JXäë W~¸Çñ† Lêí8]ã~Þ³/¼t?¼¬ÂÌn ŽÑrÌ3‰îÇ¢„ŠbŒüù#ãΧ­µ‡™këE·ø6j¸ßU2S”qt³å‰yP«þ­§ÎÛ*U‚Õ3Þ>«¯~¶AO¾w1ÔeyhüŒë’ë…< Ó‡ˆ¹<Å='%q?…­x%SÙÞ Ë ·€~ˆKSÎnI¾¬ªÓ³µl¼!oÏNÆ:Û J&Šî8H4Šy¨É{¾®z/«Í“·†ÿ ÿgž={.eý _ëåã’¦›úúmÄM Q¤^¾<͵Ã窫Å °šõî¢üÌŒ|‚RéPmãuFù…ŸÔTš?xT¯ñÕüˆ³]w,&F°ªcʺ *E­¬âË<#„913çê5ʺ¸H÷PñYk §$žý$ë0C»½¥AúèH‰? ¥Øk<ö]Ûë> Õ]´ ÊÓŸ^WœK~X¡lûMÆ’Q–†Ò—=%š"Ïj]/J…=(¾ÌŠ:YÄhM[V±€Ã¬8 ró%ŠîçÌÜvóydšü¤UÂÏ›?Ò$_%„y‡é£äkc6ÂUqºîÛ‘v¢û™•½ë á¼Íý¥™W'7îžÏ ±è…cïG¥óH¡ÑäØg>š²º.·ßŸL>d“}éÃÏ¹Û {¹dš™ÕëÛ9rtõUõ~ƒb·Nd»h𧤹HPaûTpI×x: ÈÈ9<]5)¿þµ»réÔ±]›«äxëw%i¸,ò ? ½?*AyTd±>RÑ XMYò²ºæÕ«TBƒ9*"÷ùlÅ@ÀöÇá×éf‰ªWšÞ.ëæø¯)$Þr%Ç>Jä ®KnêN ¼Ÿ¹¬Y¹9'ÿÑia-¾¾ïÇU>7ztYäÆ*€ôËxâËácÛ1Û~cì·– цó©Lqd"‰Ï’jŽˆLlºè'²‘rn·¶òFl¿îÕPÏ“½’ a'?о§ú2Ë'3M®W<‹ŽÙ ¾›s›M7Î%·¢§¸·b›œZ)1Ϭ:0à >ãäÐ v0Ö ùPôfãØG-&/=ž,ä„'ìÇë;Ò"?fËÚ·™|U ‚¡êÝ‚Š$C¥qßÔÜp 2@æ&¦êaSò¡ÊPJ!ÜÝòÒ½¤¨¢{Ī–7òÅ'ÖRº—D[âÄäËøÀ;ß:ëì'»Ò“út7‡#GýµÑ) E$Ãøk7#réõãÎÇ=.é* OÇúŒ>%ʪØ'V¤‹ëP¹)ÞéƒhÇáz¹ª=@¶w]`oˆýéðŽ˜=›ëÕªCDˆ°4­±èë’ú а|ÅùžÁ¡½©º¦l®›8¶ ¥ŽGÝD?vÛ÷ªì÷Ää&/F³q)Ð,½•u6ãyõqŒ:…?+ •йõSµ#VvIÑ¥Mó¾ø‘13÷˜ZE7&ûŽõ-4h‡×c‚îÚÅ,¥œ³B*^(&.^7ŸŠ£c›«®Û Ý*cJû‚9Ë·N?¥Ì ÙÐNë%¸`'YSÑ6ðÏ#%¤ÜiW¦ßâ%ÐJ»‡%Tí?|ŠªEù–håËièRnlÆÎ㺖Ýl½+9Áå!´2éj*ly—*™ gL‡÷eÝù°|ùæ’ŸÁÇ' `x¥L<×…¡ÄªÑf”_ŸýD¼:0CwE<~b„Óîãä7¯ŸÒÀzgõ>YONùŸÃÎ9‘ÇÃÕ‘ýð"Ão_ö¨† Ë<Ó²ƒZV˵%éU³t¨âˆúÕ=ñ !¨Z6}ÇõÜø;Û¤ªÞiÑIj ¶ч®RÖh–•Çx<¤÷9£6ÕÓFc‚›epÉûI|¿s_°¿¯5³9„ÌâÛ~Ž€b'pj>2gr{¸Z…p„öõŸ‘ñq2N¥ó¹`OóẨ3½ò™£àvaŒí<¼Öÿ¯¤ßñ†¤Õ UŠn5]6CÆžXçÇ|.J~¶Î¥9#½6{¡÷÷AßvÙìÈ•Å}«‰× ûNÕ²4‹Ýð%!¼ühÖ²r9\X¦q¼uöø†ÍãÀ€ñ´.\(¨zÑ}Fâ‘“‰ò_´RPŠ<^€¥B÷QܦÂejív€ÒVÿu«ùÚ%áï¿ú´d!AYGr*ŽRpÿä¶#<¥ŠØwŸ3 … q;}6÷îaõŽboqf‡žóú|¦åPXÿl|Hß×ñÌnæyÿLŽpÐKÃäÖ:ÃÙK1 “òÞFrÿ7;û„ìqÆý„§~*.©ë?L´ç?末„?v<: ”m­ÏÖ˜¹§>‡×3²ïé]î®OòR _©Êóê©xf6¼o8mz¾õš›5üGÔÓdðbeáU%'ƒX“q¶:4MâBðõBªìî1/!M}kÙ×ìÛŽqÆ/˜NêLáTnýg€F¦@_F,Š•°õûÜ"Ôº÷ h ¢¶¯6ÎéÔ÷„6 bS”òúôHj~ápȠŇb™)&ó±É…!PÜÜ›tNònc˶§‘†?¾N¦Þ0 üÞ&i9qƒdTYó\­.ÍÏS'ìÉïKQeX3ä4ž]¼9ÚR–@ k¯j$dŠæ)^½MÈY#µ£D D¯)ó2ƒ¥æSá—Õ.ûÁFwز4ï› ;ˆxnœ°vsû?J²¹™7éñ¥n÷ÛÁVeoº  ò}³±ì%û­‚Ƽs¡têŸÇƒ¸oÇÜ´×¼ËS@-m=¹«ç«Ð[èÍ#Å0ýêÅÒ£¯d8ºdÏÀ"󽢌´X ï¨"pD;%j)Æ ×^aë~ƒ^íot€¥ŸFl çÇgìZDH¢ŸÆóä/»ŠŸ®+ÒBfÖôî= Œ¿ûj;ï&‹öÁvrã‹çº_cî-ƒ"^N1"yÂåç„ýBÅ'./Ûvâ ÕŠW!¾“~ñìÁ#žÆñ‡;ÇòßkN(“±xñÖØª¨™‘{ ¸=ÃþŒf2Áâ$"¶¡B\iÒÿÙ•«£ìuW,CÈš™J£Ba˜—þD£|Œ¡õ–ºðÌÚ¤+®®Æ£ˆìó¶X?ø“z,›µÕaå“n†œàÆþ!M¯¨ÁõºðÎj·¼â2Æ|Í ‹82Ü÷¦‘>ÍŸLMÒAíR›<-ÑAY?KH1_ôÂU#“ñ=IÒYN¦2Ç–TSv9«ŸK¸ÀÙ‹zñ±»þ\-ÒX·ûàÓ&ï?°jÂ(òhÀú’l+LNO Æã%é3¨%t°i¼ )œjöU¡µµ-8l»ò9Ra&“R|ºm?/yßYõi¨7'â}.¶O@”ÄFxgòí3ˆIÇË•·[êU®Å¾ÈTl–mHu¢„©;ÚZ6› #Oo1÷lIàòr˜¾JÝÒEV5DíÛ1IÆ/Ië{F:«íöLrµ‰¥Ë޲¸sýôý‚‘%Ü’õN°­rÈ+^›z ðã¡ÜÂêè-.vËðµÓÓÈŸ~¸MæÀ9Y*•â @€Í¨’ˆö‰´Õ«'†çeBäjgÇ ·øšçºMýRnï(n_“ÇUW¿ˆ„Kk=¦>}ñ Öí†beVü ]‰c#}InÅ DŠÝÃ;*ÚÉe“ ‡¹b5(÷<§¦â"†‹CÕ“\jëVvÖÎ$-ÌYuÈ#(D”x¸_G²Î¸¤òfTνo‹³îbBjâñXOô®R=ÉZ%òL ùíMeüͶn€|«Y¶©ä—"Ò53§³×/ÊŽlŽ%Ç$Öë›ïÓSÝ¡»åôž¹*»ŒgÍ@Hª’´Š—èÅ©” ([_\·ÎÙ9NÙë¢LB›ä&–©"è‰ý'öty»‹æê¼Z@é–\ëžÏð•Lþ‚€0ª¸Äª–×â¨ÆUïVÔ×ÜÌ@æzP¾À¾bê€Å¿ÔCÙ¶Ôtr™&”׫U“‘ÜŒõÕDŒèâ8¼\?ÊyPNµ¢oF–ºüôÝ’–Ö8¶8ÞÓØ'!ÆÑ¢;wI’èsüqv©ã×$ Šâ‡dûEóÚÇF*iéªÆL1?>+ vËŠÕ,œ?°k3ôážúëLX£é¨¿ŒùÈYîÎEõ½ãÅ'ÙŽàÓM2M.ÃRpÞÙ;d÷¿úØÜ+h.q^Ó˃«ÑJû’Ô(öú,h̹—K½¾;o›6fZezš§“‘”¥t·ÚóiiùG6)ÑËm¿Š+Ûmªß[4=Ê䡌ŽÍUûD`¡µŽÁ4†OÍ¢i¥aÇoSv;½ì±&˳õ%b?à%±ïb®£z•¸> endobj 133 0 obj << /Length1 1398 /Length2 6288 /Length3 0 /Length 7254 /Filter /FlateDecode >> stream xÚtT”ïö.Ý(ô €„0 -ÒÝ--8  1ÃÐÝH (]*)]‚Hwƒ„¨tw‡ üÇ8çüçÞµî]³Ö7ßûìgïwï÷}žUGŸWÖaUBÀQ¼ >~q€¼¦¾‰(€Ÿ_Ÿ_€ˆÝ†r„þ…‰Ø ¡HW.þ¿òH(…ÆÀ(4O¨¹9@‚ˆ8HTœŸ ÀÏÿð_DR v‡Y4ùj8Ô•ˆ]áì…„ÙÚ¡ÐÛüëÀ á€>}ð; ëE `8@Œ²ƒ:¡w„€ú ŠòúG N ;ÊYôððà;¹ò!¶R\0”@ê EºC­¿h &ã#bØÁ\ÿàú”  G wEg¸Á­¡Hzs€¾ª@Û ÿCÖøCxø{6èßåþfÿ*ƒÿNC 'g0Ü ·ØÀ¡m% >”'ê ·þE;º"Ðù`w0Ìl…&üî P’Õ€ÑþÏ‚„9£\ù\aŽ¿Fþ*ƒ>eE¸µ<ÂÉ G¹ýêO†„BÐÇîüs³p„Üçï·¶ù5„µ›3ð1æâUUøKACDÿÁl¡(€0ÿC!1Ôõ„Ø•7ðr†þ‚~Áè ü|œÎôP?˜ ýGäã v‡PH7¨ŸÏÿüsE¬aÀ j ƒý§:†ÚüY£/ ó˜ñ£µðÿúýûí Z^Ö¸£×è¿ï¨¯¤¢«ªËógâÇääž^0€÷¡0@?DÅ~ÿ,£†ýmƒÿ?¹ªpàáŸnÑÇô¯ŽÝÿ €ó¯9¸ÿ¬¥…@« àüÈÍù…ù!èèÿ[ê¿Sþo ÿUåÿ%òÿnHÉÍÑñw˜ówüÿƒ`Ž^ hѺ¡ÐÐD mÿoªôi5¡Ö07§ÿŽª¢Àh#ÈÂmÑbæ ññ ýÁa®J0O¨µ ±û#™?øã_Vs„Á¡:Wدo :‹Ÿÿ¿bhAÐßW´.‡ hûüs_E8aýËgÂ"0 ö"âGËI@XàBÒêù[É B§Ð3úlH¢_×*‚]Ñ3Ã\з`÷+ø €@k°­-ú8~aÿØâ†D¢Í÷[èŽþµþít(Ô !ú:…€< µ¯mú^)ËàÁ»6Œ·°Ôò,Þ¤;RÅñù•~ºò¸‹ÜSë²;ƒ):_Þ†Mù2pïñ4oÏ šOVÉAa(v¯Èò¾î¿8i·…2[#èmGESž­$è2Ý~j†cvÿ…ÑÔÏ0ÑÁòõ¼«× Ó‡;'@Á72ÖdT¬lvËV´ +ÛjÀÄœ,Ži–êf úxô +w.×Cwáµb—607×—ÙÓ"xüF½³B¤,œ’ŽÊ[5{0±—Ž:!S­ÞƒCNø›üÛ¤ø»tùNáóØNÕ“ FF¶¸.:~'@!£ý ,,3©}[m´¶±ilH€£O‚õ§·Þ+vÉá[MHƒ$m0¸OVÆ Ùò*HhYo9z¦\»¶ð9É}$pl–¥ß{xgp¯ƒS>gÞ8ÚåPå––öeÔâF{Z¼s£$lä ‹n¹°Â˜é´þŒF5‰¯®È4&ï“Ýɺ¹<Ýs Š;òwŒ×?§+íl`MÉyÈ_â3îeàVÜÇPÜ0[Ò´¼TÑ<ŽìyË¡\²švÎ^0µªSüHÞ…{0h˜Z­ÝxE£\©¿È?k~mœ=ùx¬Ä@ÿF#ÓÄ$Àù )Ê·¾'gÕ¢ƒUå3¿V¨ˆYM¬OÕÅWû'€b`‹ïñþ˜!RyL‚þ^ÝV6Ðl"MèKc¡½w³·ËâóU¼¤üºÁàé\ïí Ï¥kBL«TÞZ*Ï)h_Ð P€ ¥Éå¹ó£Éæ0~NÁ°j§’\ßß®tK=θ‘.äÜÉõ¢ Lx_³0qdsÞ ËrížEŽF²èË_ 8ÞSOô WÊ™2÷ÄáE-ª5­0æŸÝæRé¯ù~æNbH•nÃîxô™%.¾Àþ=Võ›2V±giäõ÷9½‘Rü(ú,9Ññ«ìÚ²&©ÊnÉaù ±»äTcÖŠ;BPßÅL~Ô»¼„WÛrýÆîÁBYXÚ¨WBûm«7 Kß?ZAˆdQG¹k«.N÷´ÅÕìñæ³"º g¦Gê¦OÙ„TštÜs x Í8é6Á¢½óÂ6ÐdÉØ™ªFKOÛ H¸E‘Æ'ßyKBQ9ÈnsèõB×}§‹¸;“ÁÝŸË™Œˆ^× Vê:­ogl˜eµgžÊz2àxO :’´Ïмš õôÓš­êÍÞ™J†¸›mX„…ñßź¸†à¸CÞ³ÍßK»É˜:x”&g¼l>+ô¥Jñ\<[h&¹Ä(&* %ËY›ú,ÙÓš‹8Û}I7¥³ñö>–ŽR` ¦úJwÉirQ§†F¹ ‘µ¾<ljY&8Þç;Ùµž%ÍJT£’#Ÿð¸/ôþ]ô™ŸÂ10#€$´ÏTÒ0%9©`y¸xE´^1@êãköí¼ô-jé.ϼ3/Ž Ç{‘›Z£",Ô5-´ÉC ˆõ©œúšâ Óäûó1¥¾þîXš®G¬)¨àŠðñz0¶Z~göÖVÝÃÔòÆDÆŒ‰¢·ã›¯‚S71&â æh(Ë\spÚ!\³^‚ï-ÿSÁÈ>÷²Å_'Ñb³A]Úîq3M± \Ï •`è§­Ý-¥ôÔ×<.P´fÈ= nç‰üÜtëå{kz¾X~d†¦á¹i;]ï-XDÏÖ÷0ŒGèv±ßY)?ë „ !.=ÏÝØžÌãÄÜ/ƒN=&q/É‘<†‡ ¤GšwRW¶JЇ Ñ.Å+í±L[³lfÔ”*±ŽÊ,ÐãûùE¹(ÒÜfH*õ²Ê -²Â.½][Ô¿õÈ+¸th¯ûi29¡½êoF+†®R‡™’Q¼~†l›‚õ^yÓ¶Ÿ&Œs/°›'¨…æ¦F‘ÊëfÑÓ+'þFG“$ô˜‚Ödå ¹0Z”¹exeþH+ðmNTÂPAÜþ­œ‚ô0gþ¡Àt“°”©ÆwkÚA·t-Ñ0qöÞç¾B×’zÀO Æó\l˜›ªŸR–y‰´¦‰þY스 â?†eÉ(d° VGÙY9vsÆ*’Ã’mÄr¦/·¬C~jêeðn=à«tÇb¢ÎĸoòMÙclÇm¿Ï’;öÆj•¹Æ·Ü£LRÖÄEêÊü‘\î×î!²ÚxRîQ× ñómÂöäú–/‡øWÆO qzR¢Œ™šªó¸|R\¬Ü¬/7ø¶"Ôã4KÝa\&#R"YwŒIWŸø8}Ãǵ*õ™ HÞŽß,-épIøH_"s:ug].©ØÄâlÈ"<Ë._e”ÞÚùñÖ™Á[xdí · ‰€P£G¢_^š°áàŠ Ôß±¦Œ‹ÉL}j±c:™ü`µ¶Ð+Þí¼)qûñ·üIy%…üµˆ[GLßH-oÂl©]æh{fÞšÎ)V© í§wïwGÞu¾Ì!Ž¥\Ymðòf}5ñ“Dª“qáðÍÁ*;lλð˜"Ž/ Ÿú޹¼HªURuÃËãPÛð9&n„óº ÒÖÅb&Öê'Qg©UÀŸ°‡m—ŽÇ)7«ù£¯÷Þ·v¹¼ï£ˆ¬ˆV. NSn&Õm8Ûù¬Z¢å4ïoT½üÆ<äRï.“ìëòëõ'¤4¥æ?ásPrVŽã¾MŠÈºgìÍa W'ÑGƒß2|&lë±Ç·Ëf¢3…ƒ"¥§6éÕLRà²yØÒÏy„½8ðkc–pTD@Øð½ßD_½Åx¿Ý©"¥‘²1¨® è g‡‰43Þd“:4&¬*°‹|y“.IƒTI£ú;¶?óŸYjà=»-”…ÉMÆsͤ!«»¿ÍÏ €í;“×ÈP\÷D•Æx)x¦dãS4É|&7áËnK½…g¹&ìXµZÂýË"»–»-6IØ¥H3:g}ÐìÏÈС¡kEI`W^ÛyÙ&.°Û ê2É30Žå7­_ >]tuÀ+ ÆôU OEN'’X&8côÔæx¾§µÛ>b,êÒ")Ë~A¹4FÚé0)Ÿ:Ç\ªvÃXµEL²©a˸¨5¬}¥¹m.PÓ”EG¸lË<È#‘è×%½bï[@ðh9SÛ›…±­Öâ¥]wÏr[tZ~°à—F6‘T±(%[iKj±o—>§gnv_<ÙÇ…–}[ñ™åæÖ#Nñ–daíöï'ØuÅ̺/£nê†EIê¢lw |Æ…cœýŸ; ”©f<&#)´K éò7mî$Ó½{§y¶°ð/AQ;³4<®¨†8b>Fg÷EIp´ ¦Õ£ûÂLŸÏ*>LPîM’wÈj^ßë\øˆUñQSß®c)5·:±àÝè«e4Í}´V3]¸ò}´Xós`Ó+cË+²jÕ±ê|mçô|á¶×à"Òp¹öž/‹~ä>Ù6e§þ2ýà~ð*›§2H=ZˆNÇ ßjë# ûLA·¡kmʲKƒÊ˲3ìè×Bì_ºÝé÷Ù?ß]ð™ÙäpàQÑ&;À­\¸2.¸‰:ÖW 9ðŠ‘*w)åÄ›?|H/„‡;ÎÄéЂ+wreQÐÿ¶7?dô¯b”˜#©>ÞÄÞcw Ô¬ Yô‰«sù‚q‡1´ôSÀ†° Ô£>†Qú‚©é<ã«¶ïûêG«A-Ém½á‹^J3»Û ÃbÒC-àg†c»cûàG;ôšuËõÔLYi½'ÇNP,•Wm©X›˜à°/2Žï޲š~ésè •â¥‘dÀ¥ÚO©¶Î«'Ë­#SÏêÖúì°nk`¦sÊç ôE+6ï–a©­ñåŒ~æ#K3¯#j$¾S*’v‹kHºÑì+®«.œñ·$UýÜ’géÉ\õžîmÝ,™=ˆ™îäw_Ñ£7{ÚPËóó|º›+–§QÜ÷òù[8cP2Š šÁ5ÎkTèïF䫟ýú™IìéÖWo¤R§½²¢…‘Jt±hgž­_¼æø×ICÞê îïÖ.T#UfÛQ£¤‘Ÿ#ÉV›0€_½hi»Hgî$VÁ*%LŠà@‹i†§ÃuŒ ¡owxú:T=#.¿¬¼H|Öé}°À†'n¬&d°a’Q|—ƒ1„ÉÄç› 2ܾ¹bL~ú’£•~ùVaØ ÄŽj)C“‚fæ)NÓÜ÷=æüLÉ;^½}Ñ †œ~›=qAih‡ÄÄ>¢1l§•KŠó‘1shÀ±P“­¡Ï>ÃCŠD£b[¢òß.`æÂ ñ¶Ì»ó£]ª¨¹Fü§W¢9lªúŽ~NéÆÓY÷,éALS«èhãò*êxÁÖ¨f…R=Q‚ùšì¨ùÍÍöã®2m$Óæoï÷ƒ7(¢lHûó #l=iQ]Ц5¡«´wz¸Ñ„š"ÁyÍ_™'½1Âî„ÔLZàpJ·/¿Ó¢SƒQz„ü¬ˆ¾Ó_?[XµÁÍ"8þLVTN´Kpv?‡Êw±>IKø.å?I@€Ž:ñݱJP85÷׋×+qk@àUd°€Þ$åO…§`;Æ9øìÎàEþSè¡»+ 3 êHRq<ëÍÙÜù#hèÌ$_ùOÞŒ*åá#‡6Vnlaw²Í“lª_[)µòòtºM«Õ~Zx`ƒàç–äöëY//¾RÏC2™DŸÓäŠhv”}¬ k?–{Óñut\F?=“¿Ì¹îÐt°Ñ}HGÖ`å§Á!•ŒësäbÙTdU Žëÿ‚=–Æ¿k¨­"]oc¯öº=ФUÔaÌ#!9Ü0x‡JArꢅó¼Cu°Ø·{$´‹¬¾ÿs¨\—ïÅQćݘù/É^vžT¤@·Õf7xh³vèDcƒãM_kŽŸäO×ˆÊ µ¼ÐÉt®ÌÌÖyûX¯­2¹ ?Ðf7†§1)¡%´–ÔÚËÝè1R<èukØã³Í=œÂê‘p®%?xjy6›†ñJ¯Nf‹É ìl1–~§'y£`Ø\´Ð}DaFƒ‰ã› 73ß[ü8öæ-³e‰?²"%̪q1ÒveH=޹ºÄ:ƒ™­³ä„Ó­œ\{*\¶’›í> ßÇÞå4<‘Vô7¨+å<»>újIq¿6ê©ÁeëòÒ@JQîÝNÂ>Y:°X >›þÆïÊ㼦Nv¢g0ÖÕ¶Ë\C¯S**ò-\×)ÊD7r½¥¶(¿«ƒ‹¯œ”L¨øtÛÒÉ‘0ËÍY0]M…oThñ'»:Ú°Ÿé†ò3µ['Õ¼_jvŸ¾ð¬2TøYÊ•öÔù€˜‘çpr««j™Þ^›WK¸ôÓ°JI¹e%«9©u÷º0)Š;@}æGWn„y¯Ã*_åÞé“cžq>dÅyýÜì Ùpêþ]ŽˆÒhÖið›>ãrTYæYó‘2]Q/¨ÁR¨îk·Þ8±Oî V–ì‚s4|´!~ DŸyåxB‡:çÓnV^þèM_1tú iÐ}ø5¼ÏñeÇÞ䨼 ë*†«ø_¶_s—à—ï¹A±˜P#%v骿`·YQaámÇo™·u ¬9<D=–.1äõÚd¶ÃÝíc[:µ„׌ $9Ìr†¥™ííin]¾„‰Ò¿Ýf ¤Ê@Ê­v%™ÎHxÕÖ6nE$QH%]Û öÕ7¸|ÚÕÔèØ¯·ø¬>¥!nU?õ°¤´£=}¬t„ªU3e‹û¹`‡÷~¼LüûiâÎ!çƒ`³xÒ±)7•y÷û˜ä³`uœf¢ྠLìGß,ežy¹è­,½õÃÏ!¤‚ÚSG²+rï;Æ|Ö]ïRŽÎE+#ãô– ÐÕ1^Š›xÝp­R%ÝŒÀOt˜D/÷“c¹a-]’[õX!³Jb»ÜÕ¯©Ù%5Ëœ°ÂÛÌ ‡_?Á­W nMôá•0B_–“ê! /WXæB(E©ÏÔªbs5¤6_¦N"4ˆÏå_ܳK'ò;!¸Ý]b†ýâû½Ö' £Ï`Møµ.bN e¯e'KZ§pà ù14{†wp´tí‰cuOkÿq™Øë¡t jªk‰5¬^å±.o‚Ö£¦‘ÁÒÃ3‹@$[f9Lnz\[[; ¿ë…Üjß´~]Êí(µš`ëç*¤È.Í×m›ÉbÖ£^;8éS°–7Ï ªUêÞVñ~K•·¿H0œ»‚pfYÅ®£¦K^:Âøâ9k¯é æ³ Rz~únïYYKúc@2¡Ç Æí~z"#rÙ{¯­'7ªÌW-¤ò âM ú§“¥zXœ[×G8{[1ûlq(¿# f"ÜK@dÁžW½‰” _òa/YâÑ[½Þå°Rª,öo ýŠ©yÈâuÊìùr j '¿¿§{U:h+¦®Le¹Ï_Ã4…8õ.0 ùÉ-ôijƒi·«x³½†pç« ÓQ³È›srÓþuÃpꆛ{±”£†‘G>£Ž–KÖšò|¬›À)áõËýçGsñÞ]$ª5vùy’»ªmj5ÄLDs'z?3Û2×qiyêh0²ÊÙcÉ•º¦ô@§Þ¥Dxã }âX´Ë¶ÕÑÇ>•&Ç~‚Á7R—û"s$Ä=ê)‡ºvgŽ$…_ºo^0g™6v…Ó=ÛÌá³°€øQ3ò¹–ä3-ZLe*KÝHŸW]ï© ­œCO‰Ç’Çqb|¸wà=žÔãÞûEîmÉ´U#ëo„ú¼fJPºÀÅãϧû­BÏ7°¾f÷»»¨[.gµ]Hð.–Í8¼÷ ^Ì}ȻӅ]ðÖf:•>Òª2”Ì9~‚´\‡k½z.½¢Âìîa·M?*7"v»K1ïÀ~FÌð“¢ßš‡fË #ÁæÃÛÓ©ú:Šd÷peÚ^ëW˜_D‡rŒ9©õ;3…‹1LkÝd@‡ EÅÄ)CÏ,Öú.­?}!ºt´2ò”¦«®I°Že ^ŠÁYáBñM·¢}ÙVDÀùÙ¥ðãÂÚø@3k3$]_Kð:‡øi°_TÊ‚Šç…U˜³J5ñ¸‰›“Ý“)Y§ÜKÚ*#mÇ{ÖŽÕf¹í¾cÔ-Ï‚k1ò„‚ï­‘&L½”q¨ð?ÔÛ*ý^Äm÷À*øB´¦`Ô¶Ý¥°ÿsxZFÕåÅéêŽ[N¶iÙÖ¦Ãñ-ýQý®yç›.Ãçê¾Ù)¨–ozEãßf§ ÏËÉÍ'fÃÜN&Ë ù{†¸·y˜˜Ë7“Ç\¬e| 9r¬æNZ_¯0_X£jªÀ-ò–ÅŸ]ÜcTdJSi¶Ã?¬!OV,‰`p{ðžNýe°üÙ}“`§Ìk¢&ÌGSé}AóõÍÉÚí‹üYÒäw_r}xª®¾«\¥Ì˜ÚÛìuÛ@#hUà'ð«%‚°bʺ œ£ø[Ú•&¸ºb÷x=I-ô„@õ/ЉÖÉ.&FøÓ"h‡"ËÝ4‡í—·û–tÊå}£xŸ”qp{ÜÞ¥mZ’ùÛÃŒA±l±˜ô>,½S‚ÁebWÌ;ÿ­bZügËig’ÉâŒR²±ÿ’§ endstream endobj 134 0 obj << /Type /FontDescriptor /FontName /SFHQIQ+CMSY7 /Flags 4 /FontBBox [-15 -951 1251 782] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet (/asteriskmath/dagger) /FontFile 133 0 R >> endobj 135 0 obj << /Length1 2134 /Length2 16730 /Length3 0 /Length 18018 /Filter /FlateDecode >> stream xÚŒõPœkòÀ #ÁÝ×àîîîîƒ3¸»»[Ü-hp îÁ‚C‚»^ÎîÙÍÙÿ÷UÝ[S5óþÚžî~»Ÿ¡$UVû(bî` ”t¹~dadæˆ)¨Ë°0˜™Ù™™Yá))Õ­]í€ÿ‘ÃSj]¬@¼ÿ°sš¸¾ËÄM\ß @Y7; €…“—…‹—™ÀÊÌÌóCg^€¸‰»µ9@ ëºÀSŠ98z9[[Z¹¾ŸóŸG-€…‡‡‹á_î{ ³µ™  `âj´?ÑÌÄ æ`f tõúŸ4üV®®Ž¼LLŒ&ö.ŒΖ‚´ kW+€*Ðèì4üU2@ÑÄøwiŒð”u+k—+Ô,\=Lœ€wµäòîâ2:ÞO¨ÉÈ” ËÿÛ€ðws,Œ,ÿ ÷·÷_¬Aÿr613s°w4yYƒ,Öv@€’¤<£«§+Àdþ—¡‰‹Ã»¿‰»‰µ‰é»Á¿R7HЍLÞ+ü»>3gkGWFk»¿jdú+Ì{›%@æböö@« ü_ù‰[;ÍÞûîÅô÷˵9x€|þCÖ s‹¿Ê0wsdÒY;¹eÄÿ¶yÁÿ‘Y]ÌÌÌܬܠèifÅô×ê^ŽÀ)Yþ¿×àçãèà°x/ègm|ÿ÷q1q\Ý€~>ÿTü/Á³°Ì­Í\¦@KküŸèïb Å¿ùýý;[{ô˜ßÇÀü×ç¿Oïfî²óúcþ¯WÌ$©¨«¡ªNÿwÉÿUŠŠ:x|>²q>²r0XXXÙ\ï~ÿGÙÄúï<þá+²pðü;Ý÷>ý'e÷¿g€æï¡üo,E‡÷Éhþ º>3³ÙûËÿçqÿ—Ëÿ¿)ÿ+Êÿë ÿߌ$Ýììþ¥§ù·ÁÿÞÄÞÚÎëo‹÷Éus}߇÷]ý_S-à¿WWhnífÿµ2®&ïÛ ²|Ÿè,ìŒÌìÿ–[»HZ{Í•­]ͬþ=5ÿ–küµovÖ  ²ƒ‹õ_7Ì»3óÿѽ/™™íû-âò>šÿRßwèÏ•™9˜ÿµl¬œgg/ø÷wýN–÷­4zþk˜LŒ ×wÀ{~ gø¿^,'€Iä/Ñ¿‰ À$ö‡¸LâˆÀ$ñ_âb0Iý!6“Ìâ0Éÿ¡÷˜ è=¦âz©ô_âf0)ÿ!V“êz?Aí±˜ÔÿK<ï'˜ü¡÷LÿÐû fÿ%öw¿÷ûÉþõ_=g2ÿ¾×ü¾'añ|ÏÂòøÎêøÞKëà{lþïYÚþßÓ´û¾çiÿß÷˜ ô_|_a&›½é_Ûg ú‡Õ{²Š{ñþ—óõ{òŽÔï!ßo}ÐÂõ”åoé¿×õ¿â÷Üß—ÔáOkØÞ‹urspš›Úý¯1Ïßšÿ³°¼{8ÿß«pù¾ñÇøý‚`rµrþIÿ}â™\=þáðÞ@·à{ÝÿïIxüAÖwoÏà{x¯à{g¼ÿ…ÿ³LfnÎïpý×­÷¾iÿáýž@3øå3¾P›úÐŽû¯"÷&YÙ‘/£¯aµv%ðÜT‚Åø®Ø c–Dzæöc¶ÐOXËÞ¾Ùjc3ÛnúfÆðb/7v@Y˜î0øN£ <ž¸È»±îËuwë³Ì-±ÏZT‡=®…giqœ.ö泤ø©ZjÎ`¨›1"BLÆÅÀàrs³!B„vŠdwÖˆÖ‰ÌÎuÉP¸\ OþN!’­3{“c%â»Zà‚6cm1ûÒºC8aðÚÀ‰ëý\÷Ëú-+Ý.ç\+ã-ŒH£nÜ")¡Òo*ß)ÎÐŒ!L¸*Í'²aŒ³ÏÿlS(ZV­»¾â{ƒû EjõuÅE½R,|Ág’\Íe•$¡°õCXV°ËÊ*6Î ·"ð²±Ic?ôz7ÿÂú°ŸÄÕ;…é<7Ý{ýuä e0Œ¦è—³Ã•;øíHRijˆßNÊíåϑɑ ¯<æVdLd2õèºÏUòVÓAbò}—bLJFÅDÇcÖ¥¡˜<š×vǧӊu‰;Qþ𺠪³Ò~ÕàÃ/f0!áÒúÁáã£é} =ˆÐ­¾’vcS’&ˆóý‰hû3´!ü¼¼UuMÉ“Œ+¶*pf“ªë€AD¹ùEõæü—¢? Ga{gúàPÌ5Zœ̌?6eeÓ_Ѫ:š’ùÌx%B¼zo‹>"Þéôb„È—Ätq«Ý”W–­Ö†è¡kþÕší¬O3&sŸŒž‚†cÙ—1Uõî4ÞxIJ¯Ësj‰PÇ…ªyˆ ׉–N`±ùš2å%Ö;¹P–MR„òD8Ñ6/þÉÖÕs¦@ˆJƒ/–W߃‚YÇn‡JøõŸ¢(7S@SZ4!˜n2Ø›T?6Ì eàŠ,´¾v¸Vd<@u³±’Ü@˜^•ÒD†hšQóTº)¯iB:¤J5~9²ÚÒv‘!kØ¡<@IœÈ ›±:mçkŠ×äâB¯±"ÏK#'È„QŸšŠÎwEü /Nl™3צªúÂV°ê§`ægÜw™žTô”)U^«Ïd5r6Xðlà!ϱƱñKš xÈÝýŽ€4Ô}k^>­¹mPÓ\^¨S&xNW›Ì>™1feÌkI bù¹èÀÆUq+}˜‡¬•¼\œî‚b¨¢#ý§——~> ŒG ¬HÕÇ‹,1GEÄãšéb¦Ä:Ÿa!£ís!X3''o¼Z ª39ë·0ð08´xú+ƒß]£îØUáõ±›'Kß{_5 5q¸ýÇ'w·ã0«—÷ìdP|DWØÝ­|6K;²!¯ô÷K­9¤1¥´^ÉŒ†ü°3ǹos†–Švš¼Ç¡Òk4E˜$36Œ‰Ib«8#‚?îÍwÑztò½ûØR'Äñ ÉHhžÖ+¼’Ë…*jW]*ÁÂ]ÄCq]k؉9aäïïçžÌŠ J5‹?};ñÛú®¼:&Cýª*aµÖ6ùDLØ"u<-ô³ns’¦.JŒ†`}¼AN_Qš²K e­Ô‘§Š‘ M¸¤Ë}›{ª¾lÒ¯ PeÃÁz4$ÕYŒ?áiWˆT©‡žLcÒœ7oØ®‡]ï£=XƒÀª}У ‘¹8 ^#”¹q̹)Ű¢k-ô3hA}í?D#¸¼5B)úЦa[¦Åº Eµçj[Bo¥ÉOQn¤nY*²ÔìöòáÚÌ›Gḛ̀qÖ빎†¯*Ÿµní÷ñõøÇ¥{®jœÔ› ‰cçêR*•´Ef½®¬ƒ/óÚûBÍžÄ1Ö­÷™ûç Ádz ‚5ÊÑ–š™u¡$¼Ì FL$ùŒÍãÖ&áaÒÕ•¯Gwäbq-ðq`j,ÖiáÕSê%¤Âž"p€Y2n˜!B’–³™½.<I Ȥ×ÓR:ÎýÁ ùû€³Ü+ùÝž{ÌNî+Þ"k¸lñ=3Ân[BÆûS»ßµ}(¾v¾hhIˆå L•÷kŸù¨3iX• øá¶Aw³us÷ðvúßÅž—·x Ó¶c³©}?κ{…a-p€wÆÄKSI€hOQSõl+ÈÅ%„i÷ß™ 8Ò@$måîÕ‚ t¤æ$hðgÇfzVˆqÿ­³©nçZ>Y¾ÖÏ3‘[²¬MÇ?¼ Y`wÀ¨±ÔÌ`úeÇè ®¼„ A–=›ƒƒ‡’ôöÁÇΩl Øõåt˜®®Úrnªò$yP ¨'ÁceÅ¢sìà{âÇ•íQs¾[Eív_»õªMyF[6UËCÛa)™åð·Î†w:â™rW/Èó‰fPÆrû̓𒠾k0‹}âûRÚµa°œšÌªwkYîò®ÅÃv½Ë6X7uy¦¤µ‡ë¨i1ž8¿vÊÍ´ôä]7¤ûÜlð%‚ v{ø%.ÁÀÕ6™«{—ÛåˆS~k_"ÐvK7Ù”˜õ!à¼Õ^Ú&ŠÅÏ饽ÒH™ÛwÝ„ûWñˆ䨏m½òö-»ÃC‰ÑÉAê/Ÿ{hXqpW™ÅîYsIWq¨W•#›«Ü÷z­F³Èǽ3´G×@hûÑíÇÑ`Þ·—–¹8TÓoHâ%Ãf3qºª»Ùtð†Jô€Áñ³kó[©kèü˜ŠÓxÍïåÌR¶f“·Û§>E9p¾¥ªm/òਇ8ƒ˜îb"V‡ƒ(4ù^<‚Ü'"ÜÜÇ(,c÷EÈ_+†£¢òÕF•†EÜ…„b2Ró6Ûç!vZ“4m]ìÜM7¦ Á!¸G|ë‡ûõ;(}Δ5RQyÊÀ`eß|EÖzÔìT{´Ö‰;Ó,¤_›M¦÷KF츑ºy>Ì XÈû¢ èÓn9 ÆäJß~«øv´&㞌¾KpÊuh&×Ñ@ïÒž/îÇêr1UöÚ|ÌNß{ÐÕµÇ+( p|TgZXn¡Ò~‹Ÿ)^Ï_UgV ãó¨Dx½+ŸÃË=ýZá=Ü1[º…=uì œ¿ƒ…\·M6ð:¿1Ù}6ž7¦ÀI¿eÿŽöˆ?³….½,e˜ÍDí «õ¦õ23ú|0éFÈAg: ƒËó¬øs2®‘j®Öoåyìü×c¸ÀA“ïc“X±6kvàܘv©‡HÆ/Ûáju~aµ™àиšN[en ¼ÊVA¡Êëê°qÀž:k SÓöA·\·>’à&QEÆÜòHôâÒï:y5E$Ž>I Ú¨ARòEnp ïÈÒDÊœe]´‘bÍ‚ D ÆÍ/~~YN)Tvʪ¾†Èsw<”9¿°ÎhãzÍ9ü¶f(ŸBÞÆ$‡·ë+„‚ýYz“õàk§läâRÁ‰‡µ}ïa¿üXiþí¶Y‰Â·™<[Ádi™jd© ¡QmÑÓ±Î9Sæšô9¥ô¬ETŠA€:"YØ6øG"=ÄôtVõï0ã-ÃûbçñJ­zá ó5³÷H—?À,"øÏ…·XåÙ »!»æKA†qÜ[˜la=畟~Þ–ð{}ó<1ß{Vÿ‘Oãùââ P´i92ߎ¿§^7ƒ^ô˜GÑþ²Ø‘9q Tê] Nï’ÜÙ"ÍZâ‚W}-3ôßz|…9íxª¨Èsœa,·_ŠWÁò ¦‹Q’’ºî¥û=ˆPýjawe7CëÒ–Þþêîð+³ßŽn6or0îDÕá0Š˜û!®öYÕúµ±oåb³>l6ŠÓ_Ò$Yý€´Z¤×IväCíÊ.èŽ ¾£0ÿ7^…ïÁîàO¬­~lmÔY®) ÿÎê£^(Õ3êaãKˆ5‰*7éÁé3ùÁ)ó7¨€zg²°ß¡íôÒù* Í˜þÈAסLÊÍ›¢j%)¦î³„úㆢ÷n¦áİ”N¤%…àš3 j°Èɽh˜·Ú7pë㵌0¯›( %8ÝïyRB9ö3UòC§o‹ÐvÊöµAhÍÐg«ŽÂ ¯€>Böì —RðQÞOŬ¦œ£9mVòGxØxH7Wšæç%@&WÄF}ãÎxñáâOdÁöÁ•pŒ{É Ð•—…´Ñ‹!Ÿ"²—´F2Ó:9-ñü›k ôcùX`yéT–µG”ç—T<"Ÿ€cD/±ëuD1Sߘé.ÜjÔoí™|u;i\¶½)©E»9or'j,—ŸveMxš¼×µz\ ÇR§ÌÅ¿BÁjK?¢g뛯æ$Ûtвy®Q‚^¨í`]XrJ¥µöª˜úë2ŽÖXJþ‚Ó–Â:«»iôø3}µN·ýýFÀG7ç—g‚½<åĺÀË×{Àªö÷‘47¿J'—¯Á=e *?¿JÖ ©vIÙ›dCu߯Yoáï}òBôz>1 ñœ¶ÐÀ‘OLÐBS¹+F ×XûÈY\=Znm£—ÁnLs='Õ²Àó<ýf/¢8Þ(¿}½Ó ù¢;¯3#¿ªtQRtç%[¥’BKØ£ É FÁ¯=ÔaE-§DüõÃ4rö)É[¶Hz&œ·') pVd›f‰Ú9Ÿd@EVÂ[‰rž5Ú´­zÆÎ š ×ËT%+…±; n\ÿT’-;¿+ºmx=ˆsΘ›‡Œâ â&¶m}eŠÀUÏüpÊð¨R¢s'ÓútÚ *q%ÛEåÜ¡k ‡=úUImoÎßI’Çl˜ü¾¤ÒÌ,¯m!³Ë\~¨È”y0}¬-æó†Õ€îây½j¦lé@nNªA2aoLJOŒh'c¦m@cÈ^Šà,XȤúY aŸqÂûǨ*µó6!¬¯(:bÍÔ"ò…—ã˨ƒ)ŸÔ Bz&6>‘>`Ä!"!(LˆÜdÎñÕÞ- Eû!›¾í°!u0±®&DºÐÒb”­}¸µ¾-O߈ÉfÁRXºÐLá¤Ö &$µ’X²“ÌÔ³Û1õh«BÒOûÊX˜†úä[M"JäGp„è²|¹ ˆkÅòp:DçÁ5GÈ胋uç¾ dX¦ÖnÐ7 =¯&Âä+‡G‹!ˆ…¶¹¼¢•Ÿ—_Aí[ûq†¯¦6 æ€ïªdW¡ÿF]€iùéú)Ðexfàf ‡$æ¶ÙµRH¬¤AÙB§ôöóÜ£Éït1Ò¥MpqÓÞXÂñ,h‰rOüeÊß-3:¿úÎä´^’Y.³â6Òò™tl]…»òy8.<øûU`ÍÔ |_3ƒýXÁjÝ4ŒÆÍʾ÷Wã‘SÒÂH÷^ñUñŸ‰ÙKgâ57±‰·WôÙ§¼!OÑbªV[„35UNWÁŠ Ý^âNÊQûË\ÞíNž_;þ®“«U7BG}þNpF^Ž`ö[nVÊ«E…© ¯ñÛ3áçñI—©»fñ•¹Ÿ]ïé<ì~Ç„yÞóœ3C|ÇØN’µ˜ÛŸMX6Šˆ7Ʀ?‰Þ> ÚD‡\°ií÷¨â|x¼~•ÈC6 ³@ѧõ1noR·ÀX¸ ¢±ûð&ìËT”kˆ(Ö©PÃñh÷þüb˜gÛöÇÇDrL…ÌRâU~€KæäOWÖX>ƒ–4ƒ£aÿml”B¼5Bú“‰{ùìqC-Uî#;š›÷IœÜK!™@™n’Âò¾Xµ™“Ÿ‹LWûržÊ¹3ÂóΚŽd‚N’ ^YòÐ!?¡÷8jµ¢Å= LžµW9xGÛÏjL’ßù< -…;ÿÆßé3-€VØüÁ—ù1ÀMÜk‚3Ö[äóï< Ú#BÈÆÏªà[hóâ·¤¹Ö>(—E럅'Õx¡hz0 »£U4&Jemó2ç±×ô¾Go!&ÍbjŒ>º£*ûÓãG›BoŸNô^Òíh°¶ó7ÇôðòMâÂ4Ú#ÓÊ–ÎêÃ<…ÆfáÛQ—ù™l­W–`ËTËå“û¿VS 4÷É Øl9ò1½z2ñKO;÷ñ×õ*¿<Ú–ŠÊíßÚN^ö|Ál?[^Ô§¬Ûˆ@i’Zx¯˜g23ëÐF‚yæT 2Å\ŸÀåÆ ©>eqìš¹™]Z9Îz 1‘Ü"Ôí°HªÉ[æÝêDPèÙXŸm%ÛŠô•´ôƒbÓPh†#-[|¥\?A°Kd¼Ü±àc6zðG¶ì_ÃêÙU D½™[ʤçƒ&«P0«‘Ô-õî¢b_,@Åjßds) VË–ÕQ^ƒcF7K÷%GÒl%j>®‰l‘ÏTåB%VŠc× ã¸Æ!³žõƒÇëâò€q¹ºï—/¤‡ý–Y²Ñ³ˆ¿CË*Ý …OkÍ‘ @Å®,§7ñýtõA@©b»Ûk¾ÅÝζí­jBŒ4ãyRgx†{yËç¬Å2|Xƒ”Z‹Îl¤äÐK÷À¬âŒm9‡Þ[?X¿Îµï@ï ñ¹37ÅX¯pÁñà×ÂÆþÎŒ(¼OÇÉÜýlæ¡6ññc·Qâc³Q纺b˜ ojW”(ÎÆ(n·C9ÃSœ:´€@º¬‘ãgß#2ˆ5¡@Í6Wòã¹)Nô_`nr”äÛ×Kà‰üJ’ŠÜ&Fû>Þ"Íf't®pfÄ‹G‡Žxi#³æ–jäÖmÛeok†T_í›:iìö°y&{ºI¢(}búÓõ­g#ͧ1Ž˜šámÀáªÕè½ËbâTÏ÷m¬¦Š·>o¼Hο…`>«ÿf¼¦ûçÌT}Å쌨Ûväq¶§Ïœ®—¬Eûƒ*Ìp3YúÈ®h,à³ñÉN ÕK)‚Ûàw\b]¥d~¯\pçûa•íu&aÖíRÊ1Läû&{4“Ñ ÖÐH,hp@ øtº½;‚1Ju#¶Øk\C@ªôâ²j‰ ÿÃhu1©Ëy5lƒ¦¥yÞŒ-‡øúîjlºXcm¸Ò7 /©ˆr C‰V'ù%¼_Ÿgï8´n¥€“h°xçí¹,ð#~@ÜRB²<ô,†vjv„éþšh¶ª½ ›/o-…g  ÙÆÐ¬ÁúÓ0}$›ÜÎ…ÊÇeX™Ê ŒÃ¯\Å‘£3ØÒ Ý3=*o£›»~}Ð .S>o~´…ÏË£I[à ·ç'!ÞþC5Bàìë\Iæ޽+_VyçïŒ!a!¯…ÄÑ; w›Û1Œ·vÔG ž³ ‡$ÄÈ$0$€8¿ë¬¤Ï¦O$?æÓËÊF&Ew®i”T¹L =Ò‘(öþ\ýh'h:aóøö8<ÈiNEtuúpZÊ ö°•‰UñZ0p »Êð#(EEzf@pV6PÖ4š²éï'Ðo3þA¢úkmBˆ6ªX³Î!=ŒÒ-íðõy© e#‡XúÒiS}ü˜QÜIÅ„¦ÝsÜëh’G)ÜI@ãPþóS,»g,5ÖERnb€Å AÿTý׺·ÙgŽøTI–[ ½¶ø4á QK®M ©~±¶¦©¤F㋟#qÌ÷ljnÕNzž=¤†Ù¾S´·{X-Ý[Œ)‰JÆP]gW…òyaÒCŽä´{ù6.êð©¼4–ç9‘ -<±Ó}Ìu b5ædf½Ð|‰Ütw ^’´yGó¬K󴿆ñn“ø†ŸÕ-öp±o·/ÜKÙû¬b|¼Ñ¸!7KHäühბt¶uÊ“•qëûmµN¶[Ÿ{óN(LƒRà‰˜¢‡j[ò*ãͿѩzC÷isÜòCÉO‘DÈ›”hxB‰´Üq–…ÛÄKpr>B}G^ª¹:÷”0x»#ÿÅ_™Ö ÃDkQ<„s’°vSK¯=ä­o.X ±]ˆd®spët&æT2iÞˇc¶Ù¢-ê-'ÀˆÙàÐoíåf„ˆ(n¥«/á~{&>öă£é—iÕBès{žT– ߉„>m[cÌìx¨ ­·*hzqp*Õ%NZnhûêØÁoÆ ¬\bÏÃÏ©Í_/].z@ë¡æ" hìþzÀÆ R1©þM©—Á·ÜÈߌ|Æ}8’ZX.²šÿËÍ!Ú8-©þîÈn'ï‡tLID‚¤Þê—ElŠ?ð |±ErÌñòôb¸ó<&[Š]ø•voùb&_eí&³;ê,ƒ§tK2}÷¿Þ½èÍ{Q}Þ;•GEJ&o‹†ñ B\¢‹ ’®òŽXê`•ÊVâé~!êaõI,Èh8ÏM¥Òœ“”_Í$–¹‘—âì¢mùÔ2«52ÉÍÓ¸/.ÈtÑ#DTŽ$â¯9Þ´Fœ sá€à#¬vDâÃÁPäãýH|÷x¾™ëNE:¿µþ§•4JËž‚;æpy[ÊÖ×Kžø1ù+°6\ð¼ßNTÎöñ‚ì"Äb-»†5Óð&ÏÀ*­ ¥ÎGå͋ý[—†o‰þÐW¦bÕöëî…’CÑ‹–gÅÄ™ÅÝ„‰72öxjˆŸ|ýÎn³<À ›z•sEÿ ™…÷®z@µjí×—E…"Nî°8fF ßðÄtÖ>¨z>™3f§”Ưè"scyÒ2›Q¦vö¿0Ÿ1f CNš Æ(¤×ãj.wò]Îô“`2fœºZ{¾{D¶ kÕxi Êmß;©î‡|n…êô³,ñnÃW|ò«x$Žh˜%[Ù‹/”ô[í©¾ˆ ’£[·&ËÓ'ŠX9å|T³3¤á™‘éÌãì"1à\ ç8§ÿ9Á·jßI Z „;M쵞Ä9` øô«B¾DOˆÆÙ… ¤a}–´?sTRi˜KT%âËBÖ”úÃþZ8Éû¢¶üÇ]ŒNÎÄRJQ¨—z¨%•]›…ÛÍ×Û¯TC{B…¢58?R£bÕi‹W{2•gÃf¹-Õ7Ñ‘DÔó ZÞ@$U.±"£$ÈÖ­ÏÉËW{3ÐtT^éJN±rºjúΙ"ý!ˆØYýäšêëåÞGšýÂsZ\î'+¿ò @âÕ½˜ÃXš•{x2™-û<.‡)>ŒöÝ‘<çº6®€ò²ßWåΘ4E"Úveø´ÛÃ0PdVó“OUÆ·u:`«âެYž–˜R”õ„>79™û$5rK‡èž‚£8YkÌMënª¶{»pzˆåÌÇ4ÒZf]Ó “aë&å&Ú~ý´û­p4–ã[ýG.üT²ûÆTK1Ó¿6`íÓú ä¢ÒËw„#3Ý"ÅöçËG{&'ðW¨°×ÚŒÁZ?^ÁïàO…=¿dB„’–KÄM–‚Ùç;T8R Ë š˜ñ‡}Ij¹ªjEZ~â:„»Ä”:f=…aéÕ¡…ª¦ˆlòYTÊ3¦›Èjà›lé¢Áë=è$vo|…÷IL‹#b¾·M™­b^g§ßš´úÁ[S$$:cA9ÕOwêk´PêÙfÈÈÿ2k—”4ÚÀuÞ oÝ$øð[ñÕñè|F%‡)¹GK ¥´Í”¬I}ªû…î'˯}°¤Eõ¶œºúñ9ß=úú(왫FaÇû @o * IÒ  >ÿ˜zÖí&4+—3Î÷7í®§%Z†:è6_+b³øÞÉ®W¼êÎCË) Î 8m:mÙãyWŽÒ˜NjiC³¶«à;©Îdîr #Ó°à>Í´|Ë”Ä×ó·]ú¼('–àʵóÑ}…¼G £JvQÎl£È´@õÐ#&•7z¼Ë¬–F·ˆ3@3ÔN-›T¼¾Œ6x÷D¨ííÍÑ #éÛ©^]ÆóiQü~߃' !vŒü:{<8‘èÖ)Ù ­ïáqþñ%m y±P1?Q éö^«ÂÜ4¡$g±§]‰%ÈôótD 2ä Þ“‘Òá¸3=ƒ)N Þ$ù­AÜ0±0:úâk¥ø°Ð­Ýæ®éðÞ9)O—åðÏIÜñiz¼2Æ«¶ŸÎ-ñû%Ãï1Ì`ÍÍloÀÏ.CL]ü¯¤[«u´Ä•ý!Bßô’`ªôyÒûÑ jõÌN8îk}㔆½¾Z;Gª‰4)êÎZQj*þh–¦˜×B™Øm]ºÕš*9À&ä£Á",åü xƒ¿Â’ÔäÏ0Y±@¡Ù²’å{‰,˜Ïp>Dî0¿³8ܯÙxÊT-½ð5*`¡ƒ± 9P…Q C/C•RÚMM’˜²°ZÅÆÖ+µ ¨¤»Ó§E‚`gc[G’;³ˆ ç¬!›œ­ÈPÜWw•ʺο½§s]3‘Úý¨G4×X<9¨šˆ”ÝÀ²kB×\‘QîËÒÎdl=¦»èÁc®™Èß<ü6†—DUJs‘õ¼QÔ½<¿ Ô}ö–¸60S ˜&PÇ8½Ûƒ?>‚œ÷ý ŸÝ[¥÷oéY´@åØçñ7«­ÛÊ«Ëõ-Ú Éâ‚„IJ¦§ùöw`ÆÂ¼Žný·\eßµ‡Së÷„òŒž¤¤g©ÈÄE݈aˆ½Y!üH³/tU*Ug %ãM”)Fm8€yk$}Œáó ú¾©øá+Íúüú“<úNX‘èÕ Í~cÏØî$Ç‚J'éšõìŒÀåV .ÜO)÷¼È£ûê+ Žþ XðSC.w/£ES,S£±}UÁ˜fA=³ .à³ãá põÏ<*;¢Î ÚV/Õ® Œ_ŒâóhD×o)$2mšÜ㿤‡Ð§ç5»,H“øÒ7ýîÊb4òǸ¨üpCp€äá=š›*²bÍ„µîït4`0Z-CXè«hÔ@n×5èd›ôÂrž· SK-Û>ÖŽÌ ¤‰¡aº…YË Âm/½>DoOŽ=üf5÷6݆ºŒKFƒcZÚ1íÛéµµXÀ¶Ÿ2½‰{úhMze¤'§ ÛHó£kÇ‚¾[n«”®ö@D»ÖͰ§'*,<¢{iÖ8©ïÝgC™½%HS›3?o•±ê¥Hö³Ý LØR±vÀÃëèÊ»%JƒFÎOãÔw­Y†‘´_±r\ŽFk*÷%’G$ŒÆ«´ñɲ›ƒúçq6#À©Êž¬=zä%ß?G@Ô›Ç!WÉHqXŸ,ëEö¿åi8áÞ5xpÒñOîXTÊ ã 8UZŠ_h%Ρ}áFY§(;ñ^© UA¨Av¨?ÊÓ;à&CË•~$ÔІ 0®@2BP“t£Ü E¿l|%(ùH÷éyØ"µóZ娮ÐRÿgjoå4ÂgAŽkäYÍjhÉjí íZ>A>q´›Îаs ɱxœ‰S_þt’¶ˆ>€cFÓ‰3cñ.©‰7Vàú4xƒÉEZÄ Tjiªñá®mJšgñ^)3I½˜üR%/n©èiâøY@À2özw¿Ý Ôai|š|Ì“_»ŸöÉèÑÅ,«nDI^Xj«1(øxò§vóãà±BöE¨‰ÉqFaOÍPÅà¡gm^³öyÄÞli€»/C&œžoÎ_/X¨‡Æ/Ù`wþ"¬øþx…® ®²#Av¼-VY;à¾xt¡é@ ±¼žOi4ûËÂ=ŽRÅ×uÂþúìfXRæ1±/Ö”5Ù öüèí,yNÔÈI7,ÇÝz¨úÕ{Roj'Kñw÷=•tf›_<2† îÕÅUÑö=z¶²>ÍV' ÚÉ+¶aB›¡Õ’+Ã[lÑŽ(°-tñpÀŸYþ9Ñü_”g`Ë Ž9g§Éz¿G •J ìYq8ùá÷_éËÝIE[:GîU±PÌ!^P•Ðó ‡€öûjSMf„¨ ~ƒÈ#к…ƒŸ./Ùuè`‚±xãåóðRÚ$$ftN"_Ñ—G`0ó¯¡A“ð·#¦ÌQ§Ÿ htê6½1»˜É5€uÉó U–”áÉÕ¯–~ÖFõDtñ}Lœ¢¸ ÝlU \à&þ²‡È\µ?û§éåàüøõóR4Ebð0eªÉ烙×;"9Œýߎ۵¾—s—%¸bªÐ•ü¿/í-¨`Ã’ð­ßew§RC7á²O_µ"ÃË+T8Þ@äAstdæ‹ùHß»z ¢ÎA@º„‹m.£ÆÅª¥rŸåê‹·—¢!H×.É/f›»ª´.ë¿zÉ ê©ýñ áË,´Ê)`uà){M£Ú4à,£rÍαô2¸„Ù±À\ÈqÙ%IéæÇ;x_ÝLÌ™~ãÙ7gÙ¥s}@œ±©óD-„§AxUò ™Š—œËÂ%w7{Üá¶zÆ 3yézqà‘åÒcUÈj%qmO?g$¹ÂšÛ‘fÃVº»q!´²µ*~×úþ 0i+-”Înõ²Ba(UÐ GñbÌ"«hß< ¹ŸŽlk…ZÂ6žÍ «Á;œ©kJQ¡íËÒssZô2 §Û4£å{§™fY¿¸¶ÍB#! ¿Zʨm§ª˜ã†D1Î/Òo0®|ÀoÙΛÕþ£¼¿ø‹ž}¨…¬û½–¹ƒyÆ`ÑÛ&ó*a~¼»çÍÝè¼Ò/õêXªRW¿ŽÚç5ácó9‘è= à$®N]«Úƪ»ùIãG´•Žî ”ðAî¦Ä•ÂéÝ‚°þ}¶!“Ð_üw.Èr`‹Û\ÕLÄá)wÛö¡3S ß—È á]˜hë­J—‚x<³r–XáQ”Ô“ðe=rœò¡<ýG6&Ï=Ñ·ÒÏ8|P³ñ¾¬8 ùA™¾“ÑÜYh4_ìh-/^®‰„¤"eX˜m}u0Ðòl°åvéÓ >L™~’ãiù‡”¦8Ïë8Š]"O!{¼²¨nd}Vöç»6®OøvË—›ôÉœË+½/›ªy4«HIÐZ±Å#|!J ù¾o­ñnF""çæÝ”¿z `‰¸ÏX‰0G9YÖdÚ¦A@,ÿH:ÌD€3ÂüHpïÌóÂM|µö^¦ßôòDî®ëBz»u¦õX ~BÃaÜ,Qó‡‰ú2=ß[Ùé÷ïdzœ¥í5M¬u±•ë:}„HÝ–íy˜"ÌÒ® I4hÖµ(å  Î¢[ç‚ObPEƒi¹æ"¿MÎÚx©rr‰7:ì•Ú•;· Ù¶ÆN5_Èz¤)‡¬ÖIDÌjV†×CŒoå@¨O€ŸFŒ?rŠe6™]W ç>ùávcˆ¬‚Mðh“®sǶïd«õ }bÎeŒÄû8ŒŽ]Dð³y‘›ƒÀQYúòØŸdEˆ˜°aJH~mnàîœudz$ýSZ¡é¨µ»Õm’ogúÕÓð"“s¶ß›àÀ/Ë×:¼ù¨®ŸnÐs—ڻ˞Bb ¨GQýÎ+l[+C…”i‡¸R¼=ZËå:q%èõ¥þ”å&4ÔBÛãA›oØÕÓ]òîÆhåæG©léEŸ¶ó·P%@{iŸjŽŽ¿hü‚Û–aö„L ¥^û!­¬ä¯M<Ë2@‹EÑüÛ@¥gN 2½d1H­Ž–r”ìÇü‰oõÊFxwÅý.¼D½# ¾ 6É+-„ºÖâó$;³ƒ€q‚¥ÈÍzæ¨Ú2± ì`Ï H8RÑk…ìx 5Ûi~Rc$˜ìæF[›µY~â 5åY¦iíšEwm’9Îê/ Æ| J³`vÕ´ @á‚H™üQéµcYYöÏsqç솳I_ Ð_B:è‰Ua w€fU uA+K­ Gâ%Hßï—?˼=˜pèìêÈXi?—¼ª´µµïVê,–[:À§®1ÆÿF=D6ôiÿ!ÇP™&0KJ™ÀV«Õß\õL\O4”~ ßTUUïL•÷‰†ÄÒØª®0K¿Ÿ`‡”¡½ø4PŒ_=‡ÊIÿ€ÄÑB.¼„%Ùnv/`ò4ØE Jè Ñp_‰ž*¡¹¬æª%frQz\ÎþÍäj cWU±ˆhf,Î%”èÓ¼$"²DùºèµgåŽl §d,‹\a ;­}á¢ßBìv1³:.(p‡©ænQ#­€žÄ·LáOü–ò‡¯J›ä/fN DnäBsàqïIGzü¢‹  ¨wTϦÑì-êt#*òädˆ]2”ïþëû~ ZKåuj ßÙ|;œ;/W5ÌŬá]Ý8 ¤l=¶4XJÎÖ”. Åx;HL*A§½?¿jŽèW¸ùàG‘ýG.޵Òë—¿°€Gïš[ÂLïþœ‡¤  ä÷È‘‚­ùîÀÕ‰žeÂi–Æžd† Afä°·‡Òj«»é9l50¬öŽ%“sœD{6úÆY­UΕþ’ýìº?Lª‹CzùØCJøxZèi–Gß§*‘wü|Ž*É7qmàìèpˆ‘5°6JÒ¿P§ô¬’Q2q¯š¼ÓÔš6)eêÀ´ðUq[)Pœœ©X3‹¤Ï0ƶ¹úô·Šf¨–Eæ@œïÁ‚ªl`ëìô=^ï]ñ}/d…-ÍéÕŽúñBsPÿݱ ‰ôpÕ¦‚± Þ¶îzŽ’ P½E-½(!Ü É1öZ†£< _ ƒ'&k A%¡C['Ÿ^OXðU{B¡{ Pá{ËÊ• ¡J¸:£,ãN§¼¾†ØUCÅuGÒòV½¹~p+éTUç-}»ò%mõ1&÷5n¡LÑóâP©ùÛ½«­ñБbT†¦dIÅël›`€£KÃbnaêàÜÕóK1ƒÔMS”‹Ø\ÔÌö¹(®ÓZ a&܆,ýÀ÷±#Q€—+M‘’é<ݪÁ—­ì)ÞÌæÏ>Ï,ÇêJ©_ñLLB#R#nÌüˆ ²ûR o[a“²Fq‘\šád27¹UAÂÆÁÊ‘CŒdK1…Hd-A ARE£˜-c}lâ?¢zP˜;H‘Sö&迉­݃ªÛ|S”nÉ«ï2;<ÎAI޾E³ihä¿ÝSMþš£ ƒ[ ‘ŠÈ¨{µ‘@¬çpä…qDš—xËØJŽÐ/ çï¡ïÔH®]øªËø¬Z8æ¼¶ÈËaagÀã¨Õ_,hÅ¥™ÊûY—Õ§®þxÑfꙪûwÉú‚Îþ¼›8½Mða›v“q¼ôr«/îeH ×ʹÄmºÜ• ê (!ÑRãy˜üjµ¾Ç⨠†êC²:¾‚‡78tóïú¾ÿö ¨ð2ÍéÊf’as•Ýï ¨$EZý9æÿíï:g»Ô„ä'^Rœ­ã:\ío@'ñ’aÇì4wÐAäÕª„!ïå)d"º|h‹äC?_Æ›}—¬Ãì{ò”tö/†?u¹ÈÕ†¯ë¦È´Ë‘fÜ£é]î(>ƒÏË& 7õ”îél_ÏÅÁáeðàCßGÙù‰m*dçÞ·zÿã,·¡ˆøIôðþìõ§ñ,f¢ÉLÁ endstream endobj 136 0 obj << /Type /FontDescriptor /FontName /FNZURT+CMTI10 /Flags 4 /FontBBox [-35 -250 1124 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/A/C/D/E/G/I/L/M/N/O/P/R/S/T/a/b/c/comma/d/e/f/g/h/i/j/k/l/m/n/numbersign/o/one/p/parenleft/parenright/period/quotedblright/quoteright/r/s/t/three/two/u/v/w/x/y/z) /FontFile 135 0 R >> endobj 137 0 obj << /Length1 2099 /Length2 15481 /Length3 0 /Length 16745 /Filter /FlateDecode >> stream xÚ÷p¥ëÖ Ƕ;\±mÛêŽmÛ¶í¤cîØìضm[7ûìsNïóýÕ½µª²Ö˜ãyæ|ß )áWEZA#[c1['ZF:.€°¬’$#€™Ž †”TÉÜÉÊø?vRcGs[®D;ë;}ÚDô>emmRÎVFf##;€‰ó?¶\}s#€,@ÊÖÆØ†TØÖÎÝÁÜÔÌé³Ï~( )Œœœì4ÿJZ;˜êÛdõÌŒ­?;ê[m ÍÜÿ§™““=½««+¾µ#­ƒ)% ÀÕÜÉ  `ìhìàbløK2@NßÚøßÒè`HJfæŽ;mMœ\õŒŸ+sCcÇÏg#cÀgw€¢¤ @ÞÎØæï`™¿hÿ>#ãËý;û¯Bæ6ÿJÖ74´µ¶Ó·q7·1˜˜[äÅdèœÜœhú6Fê[9Ú~æë»è›[é|ü‹º>@Lð@ÿSá¿õ9:˜Û99Ò9š[ý¥‘þ¯2ŸÇ,jc$lkmmlãäó?scÃÏsw§ÿ÷åZÚØºÚxþ™˜Û™ü%ÃÈÙŽ^ÙÆÜÞÙXRäß1Ÿ&˜?6Sc'+'ÀØ`ìfhFÿW%w;ã9ÿ2jðö´³µ˜|Ê0ö671þü‚ñtÔw1898{{þÓñ¿†‘`dnè0065·ùSýÓllò7þ¼s7€&Ãçø1þúü÷—öç„ÙÚX¹ÿ ÿ×Ó«ª|•ùªLýoÉÿu Ùº·@Ööslþo¨ªñß«+kldîlý½’NúŸÛ hcú9Ñ´Œ,t ,ÛÍÅÌÝŒ¾š;šý=5Û•ÿÚ7+sã¯¶Žæ=a>³þïsÉ -?Ÿ"ŽŸ£ù/—ñçýo_QC[£¿–‰•  ïà ïÃð9QL¬¬OÆÏ­42vû×0èéll>SŸ½&¶0],+€^ð/Ó߈ @/ô±è…ÿ N½è;#€^übÐKþAŸUdþ ½ÜôYEþ¿ˆƒ@ÿõbÐ+üAŸ5ÿ ½ÒôÉZù¿ˆó³ŠÆôÉZÿúìnð}v7ü/býôÚZ}ý,,,Y¬­ÿäÿu'ôFÿ€Ÿºÿ?)›ü!ó?õÿ‚¶ÎÿÿÔdúøÙÎìOóOQfîvfÆ6ÿˆø´™ÿ~ž¬Å?à§TËÀO=Vÿ€Ÿb­ÿ@ÆO!ÿ¨üù0¢·ýüäj÷‡Êg»Ïµý£œå“º•³ã?R>-öÿ€Ÿbþ!•ñ“ù?ƒ?+:ý~2wþüdîòøÉÜõ§úÉÜíð“¹û?à's?4?+y;ü­ì6ÅÐÙÁáóµñ¯GÚçýÿëelìfl³4okÈdQÔöøSÇ•voœ‰¾ÿ:âJuWô‹ËÁ·až§æ‚ÈEÁ®ÙýȧM”¦ÒFK5 K ¯´H.Œ¥º6pƒ¯IÞçGg¦}éÎN =f#SŒ‹&…A×[JLû«½¹Ì#q²¦Ufä §tp ãÑ‘XÌp Aí‚™í?„~ ÎÌvH’8^ ŒŸ%â‰=¥õ0±n÷/—Ó›o¥áÃÛIßfó¥ö°aKëMfHw{D±^â(nÛ‚ü) Gyšbéd}Z]}v%ãì$˜9¨£¾_%¢€þ¾~ÌÑYf˜q/r¦ÈF Z-rÅÑ©™dÌ–o ß9]ò›0_$Ýï 2]“+|®#z\ÉŠ&wQ(Ú¾Pls7Ù2U²@²Jqšß,Õ,­"%ùÉÿÐlüh™:¿NI¢ýTR…%bÕsÆZ€°x±@*˜äXA¤À"½¿¼ª U<•è‹ROA„ò“‹0ðÒç[¥,®=…¿ì´ü£’æ`Ê?óc+`HÇÊ®¿}=b§SooLäK( ´’ oÃwŒø‚˜KßVïÀÈYêj80Öš=Í7t`_ý¼:·öG8>)˃Ÿ{¤º¥âײð¤;,!u›Ø0·"Qß,JÔWf{y ¤K‡—HhÅöAŒfàºÊˆ€¥í,±!#§ 'rDj7˜Òb .õàfÚnòÇžOg·vXt?ñsû×IVbæ Š—Æm«í”–F*Yúhî=ºvÔÝõ›Råì ­a’Ý8}S½—–ËùEÅl.Hê€P [ÑÜKgë·ÕKëK5qçêB}ÂÈ…\éíï8ÇSËækECñ€1#äÜ·6°?¨üK¤c8Øî<>(¡zÓô:‰2Fr10RB—v?ëÛš 'Yóñæ`<.É¥Ý"+í%ƒ#ô:è%X»~=? Zl±cð]Lý ^½»aÚæW;׊!|8õF‡s,ǃN¡ëößOÂzZs’¸Q¾+wþ|±`$hà‘óÙ Ê·™¶Ä6Q1ù>ô§Vç3®Ô ‰„m…_ÆãR–¿@ÿœ¤,IÃŒ—‘„ è=ŸÐàÅDè5H›Ÿodè¡“½þaÄlóÍ¢s,µ¨f¿ây×WÅÐo²IT2àÚ÷ˆk9Ùó5&Ù8ø&ææI“[r}ú ÎÏC`ÿtåKˆBCs‘àNÕün;qNRù¨*Ê96óÅÖ)²w$KfâOD(‹pEô˜/f-ãKfä žÈ,‡š®7%C|EöZ¥u/Žwi8¦°4êãwãÒoj[@Ø“× Ú¦¶ —®>ñÀ’Cæv¥mj,º0÷‚'l”¿ýtÅ£ì¯ ‘Yר(ßÕ¬ðJ•¤£Ep6{X:Á±G-ÜÙ „ÓËQ;£“o:(ͱ@°WÓ­Ì¢jEÿd2ã[§Lÿ8ûS3^›èèà Übü2„l‰p .ÁÄN_òÁÊXHÒ]í¾òé‹Áëøÿ8‚sÿl‹eלg9˜ÍbØ¡(¹)†™™# Ä[;%ñÑô•êµÖ©-gA«„>Ô‡åØ®!œ¼ë'ÆSÇ]Î+:}‘†çÌܪ'«eÑÏ鵜ç›`‚2»Ê_¬·µì¯¤pü“£÷詸Мk¾Ý‚*·v97[Câ(½’~¤j†?¤`NªðÜúQÏ_LÕåò^Lê ]±w}¾Wµ •óC å•B‘9M-Úè4UäDÚM?ŸÔ¡Š!¾‰‘IÎŽ^»á?§“ž¢™£ï\ÀlW°N&]ò<¤õDç 3£Vß‘§§\A¡„t¥i ‰UÌçAt¼ïz´ök.+TlÁ¯°€kãóþ \¥<ÕËOË>ˆ.U—$”z(2±áÂR-Оëûn9n#IÜiAt!"äâï²´Ü;Ùæ,ö .ÇM‹‚4k5*=î—lNá8cå/!Þ`˸;,ã±7åµ{©Híf°ãˆMeÌœËÇ5ºŠ–…$&‡ÐÞ®\”ßi SûqW&LþåMûuuˆlæF/-"T5v@%öúfÓ²Òšl3b߯Qh'J ×o|"cŒl^u"›žV]Gþ%²©óNϤ£oÇF!ET7ÚŠ IìôAݦ֦ÑÔŽ}â:yÕ»Ô«KY$z·ð%ÉAcŽþˆ¦"¨—\®˜dgU¢g%–.T8fA6Ô†²ð~ã4¤æ;¡IèM¹ÃPªå‚Ñ¥ \ÜùüIïCƒÖƒím Ûn§äpé-±‚«ˆð@Æñ¶ýÅ3ÑÖåËC•e…ö…FìO ÎÄZ¥„¾òÅeÜÍt_cÿ€@Þb…þJÕß…7ã|2!Ú¯Ë}·7E0“Zõ Gø¦Ç$Li¹$‹/ Ö‡˜]°0±ö ˜?š@× í œûÒFX]õ!w„eŽ THéOQbLwn@óîj’›À—)xgík?†ð€Èm·çbxÄNúÏ-PŸ1Ø7Ž\¶†‹33E’[„‚LÉL—ßÚïæWz«m0ô‹òøÀ$_¾k)€–×d p~žrRÔEUa–7ãL&Ê<%)ŽÈ‹ÓO"·Î*i§»ð æÄÞQÿUx´’2â“Jk.ôú‘tGE}bÔ±å篆©4‚+ ¯uU2Ì,&V"wønç/LÉHõtª RRcaM¬z_+‰çÁÉLÆ=î"‡­Ž<4mn‡¿g¿€áHÍÍD´hØ9¨ÞÀ—I^-ljä˜5`Š<6W2U¨"Ý¿ ’h¡Û Ô×+ú¸¼˜š›ìDÒD?3sŒ6p.³œ0kÀ‰è×К}Ÿo§,NF ~^«îšòk¿:Û ¡©–¹NFséCnkL¬]fBÛX4øÓ\ýÖb,èôE6®Aimf]ƒ‡+Ÿ¦œ.ä@ñÊé’·TÑBlQ÷ˤ(Ðö¾ÇĺC€÷¡Û¹&„0xw½ëE*æÙ¤Vcóâ4ð^·ÜS¡  ;da¸8kxX´Çö¹•nî„]磽*Z´Ž/¸mßì™[…ù‰Fª¿ö ¹£^­lçÄè<ßùÌWP¦¥äh¯<¥ÐŒ$øvhÆÂ¸SUƒóO¬Õ&ˆNg×ÓëiÈ4%‹Efy–µl83IÙ\L]ä§Ý²F÷Xâ;ßaËrkú¤SÙÉbãLH—K'[ #†§fÄ9ߎ H±VÝÔ¸\`9Ñ®¿„S™T78ß‘‘6íÆ«!)`³†KŸ®Ï–|@bø´ãuEÚ åÇdE-TÕvcSˆrá=ÃÈ7 ß½MœÆïÓ½¨¨% Èίèåæ—’Å÷ë ATa;½fGÊÇš*¼ÛÄÓ^$8SÒPy*[/û“§Ú S†ûZmÒü®&ꔉÈÉ‚U†’É¿tO‹’Qî&—²bsâ2kÑîj‹äÕWhÖœ Àäél[•ó¼HàùæŸ[‚ ÕC¶4Î`;»â!›å]ò†ô;Êu×@dŽyåjEþ4½–µñw‹b nÅb—m[-ö·X7øMÔµÔëÍM³TbÀ<¬^²`oI yœáefH¨Ö wð¥Ã|Iáö ±GN•òÅ« qÂÀRØþ’°ÙN Z¼É²m‚Kÿ†Â€ÎWÿò„ 6ki§%Q¡þÔaÝWfs=ØF¤â®Š¼ãqç7‰é·ùŸâäʼnWß2Ɉ_«ÚE~;w:òLÕ ½(Ô©îXÝ@á4|7,‡xu¿Ñà—1= ·l’Wƒ= 1×@T—Ø…:¦Í:Å my¯EÞ(óÝg¢l/|aÔóøñû†r ‹ï)É„¡nÛ8‰SýŠþø!Èõ|±‚x ñbf ÊõôÁ;¦(æi=Ëß’훕¨#+“_šÝŽfgœáÉ©xyô×±Ú¾ÈBæÇ'ÎÓuÆÙ3o’k{¢­¯Óáã‡Hßñm©çâÆÞÅ¢b]hgv޵XV>ªä¬¿RB©DßÿÄÞXËïômõõÓEa1³5ûÏ™(¬­FfçÇâ…=8²x UÎ¥/ÄN,Í1Rƒl³ üpœLtÂQë78˜“}ºJ á™+·sy‘òƒÛɾ–JŸ(êÂÑÈ‚I_ý]~û%„ q\œ'ÄŠ…R s §rLæI•S‹Y=sR‘¸‚A>‡;]Š ÀÖJ ’ªñ‹54Ç@DÉïk¬©wÅ“è\¨JÙA=rYµÆÁC 9–Ÿ“.àïŸïXrÔiyÊÚ áÓßÀ¾"”Eœž8Ü’(R¼æÞ³w³¿l3Åž#ÞQp`2.ø{‡#5´ë>û¸¸på…·½¿rmjŸ\h­ª0ÉÃìóê¹{0Úü¦Ï ,õ-|H@H-vb,M¡ÙDJ{Gœ½ÇܱÓ%2˜H|òº‚å…Óû7„kBô!Üo'BVˆmÃ,‰{|ë\fþk.UöÏÝ’ëý8]"T¯ìª¥+»¬þ%âË׎e‹Wö{PZjì.ÖÖ )”r–9ˆ@?%Ž±ïŽ‘Ø‘ÀF¹ž•´nÅ@p‘m¶Š8@Ÿæú7ÃN:¢Ãp¤‚`øäå4rÃ``Jô9*ÓˆYmÐ+K“RF„`[ñ›+‡¯Qlz¼³1ø0cÖ\ÌOËñê)Ò”Hîf&µ¦Ecf+E_ÖV ÉÛ ”1iÁâ½¾‹×vs &zÑ÷á·vÉâIWE[vK@’Ò°»Ìuü¦<-DxÖ¸íê‚{=Þ-‡ˆãÝJ~rzU]"ë…÷‘ÿrÞÍ Ë½O«ÁͶeÙs2 ÞÈóf™µ(4ß›\Ë¢´ê9»`z,É2Ãw´ê30éßnÖÚ?ŽãÀü.®ˆ˜ÍœÐY5å~/·^o¤FSç‰Ã"H¦\FW6ÀˆnE–ýµ]ve¾ò›§õùk¨á#X@õ—-RgGlLT¶‰âŸ7„è9ùsÊ.0tG´‘­ªÁxWc5¢Fö-ÚÀ*ÅßͪèLŒÖ~ÅØš:0»}±Z‰z|xnŒ9µÇpìkØ\%Öw?N~.7?[dúeí*#PE¦<:Ë"°ÇÓ{áJÕ'ÿ¾:ÝÙIÃÛB݆´Úá<쯌º¹ô¤]Ádæ‰ìÃcdR(!ŸI"©Ý±ª˜:+Gê¨3€à¢^ß/Q9H2F`>ЖJ ³ŽÊnŒÖ5 ð<…†mAYØlyßK<Õê1Ë4ÈÓT\. 3:Âz-êÅ)°Ò†BsÆÎ|”mPu«ÆÕHßs…§ ‘Ú…'äUƒ”ѪuO1Ù +iûkÎj—¬À%ÇšÔQñ†áÈSÉdgÇÉž!UÉãU¹Ã™;<΋‹€˜Áj{|ÔSm©-­?f›…ç'ñd³ærVårØÆ¨Žô€§¸æÅ]º •Ñh™dHFZ̘L”ÆÃoÞ&Û'z¦¢–zJ¨–¤Q5Ì5T ™á›±ñRèÚ’Z3ìS ±uÅúbóÝ­o±áy¸• ‰ídVî©þ£(d®âØsÚa?¶;ì6Yl\šKuI˜tÒ‹’ú÷¡÷~µG—\ƾY|k«¦$#>ÄÏÚ€²ÿº£ìÌè1øµƒ÷ôÐ@às~Äù†}tÚ¾ÿó‡l ®G‹”J þ¯;ìà|ÑÝÑc!ƒ<¯hÌѲfåºýé1]/àŒnÀÒ MƧjºQEÔíÜ5¢Þµ¯ ÑÒܤ€Ñ´+ÈÍú E|wlO _Û:Tˆ[sÑ Û7-̉±]ÎËÓç/›‹»‡ –òW3Çñª9lÄ›¨:„!|ïæ…l€ÍóÝÉm-g31o„ßh"–m¤]/Mëvß’,ˆ{ÀO–*ȇ”6¡"²%ô‚htŠKàw-#ëÓ…ÎHoöJ;²Jõ[tñ$K…4´pÉÕìqèŠzßš78ËðÊ69Õ쬆Ïÿƒ™¹GºÀêµ9:~° vLöxà>^]~'ÔVjÏñàÝ9ilqS¡Ù1]²íú%¯ýâ36^âAúük=wN9×T¹!ElVÌ2±Ù^äc»^Ä¿—â6[Ö\-uÝAF²p t«àLGÀ†‡Ë XAÀ¼U[5šCa+q]fƶÓÚt{VrÊÁ–+I“„àúæ #®˜×"{sô»s±sñ÷.©+G£Ò‹¨– |6HöXÇ]vï¦u©§A}ëm¿dçý G×+ܤ£«S—£åÏ#B¦{š,žèÖÁ7ejbSO~¹.Z­)åaå&‡‹øêŠ4¤µ·ÑŒêUbu-£UVhô¤AXÓ*XU”ª¹ïÉe®Âyb_÷zM¾¦Àé+EÕ¨Îo¼öÐIƒÒ¢3ÿ6”›Æu R•k§ç€ºÛ DX-j¿Æ$¯J¸·¯‡jP²Û`ÿ%8O*n:`7~G>ɬ×LÕŽã´ S¦¹"ö9Žöñ’aßûáÔ(¤Eˆõn¥çPÓ–Å.-’×$¹C)ÚSBL‚k<¸E=“._*A(kÂÈN219ó}\^zðèçJDæÉ#Æó#+^ÈÕ2Òs>/P46ÏaßÀÆ5Z…3•$XYƒ›os ïhI? òäÙÜé^»ŒˆÔÔW×#»Ä>ª_Ô”0³~âÊn¸/­=–µêù4@°¬ÇâE}šnéõ¸\ÍR ¿% øaT™OÝ=Ë:ìfRV†%ÌŸs¿™™Ë¥ßñæsÄÝTƒ÷(W×”v!B ¬¿µak9Ãè$bD¡¿t^2IÃÜBâ2ò_‡cA4>v6Ã8Û²¯ jÊØºMø~Ýr_÷Ìøï„x*×@§¼ÒO57ðtogŒß¦Å„k³¤×¾–Áò<™Q@r妨úá¹ÅÁz³Ø‰¡”ß²x£ù z‚ Mˆˆ…þ^.`Ô f•éMmN½§1ìap¢“ÆÙèû%Ñ×ë²ãÊ*D‹Ô!f+0¦bêG¨#W&Šh§ø–ΘùÐn VÀìlfÒ›2_QªÓàz„)©íÖ0ì4ŠV•Š/4¯Ö/q°´Atç¦pŒ6‚Wà«ËLCEïxkí æbkS•”&™»³½!ÜwŠOQ}×  ƒlxUîKKµÓÐ ïØÚ+Ÿ‹ccŸäß>ĵ&oœÖ,ti¶ÀêÖÛLÏÂ…µá”s,#ÈÞ*|>îõeÑ#ç»X¢/ ¯É7Ño÷péÀ,ì‰öñjÃ…÷2ß×Å({ÇI=?o¼HøéÊUÁRü ¯¡v–·ë–ŠCïõ– ðµ?¦0!© v©<‡§Ðîïtj#0*}l@0·ùœÛ ìs„µ)`ŽŸÂÉvðãÈ¡^ù§AÈUa¢ÕúY†óçã<ºs¦T1=ó&w襜X_u…0-—w¢{æŸF6‚—[t—±ó½#Š7ïè‚¥ït,Pt+â™ñÑš=œ¿U\òÚgYLÝB ©:ð3Nê§M{»ÅߥC›c€ìàö­ã[³i™Âïl®I6`·üÉUë–œ,É竊ê?À¶ aLãí7a uÕó8>pº„Ïq”Q= ÜÙ¦³†~{ $í%îѽ_´·DGZó2±€a½r¾˜› Tâ/·ùÌ€ûGÍUÊ1ôµ¤FâU A»RqÄL§Ãn›`£ ö³ÙáÖ®|Ûr¯Ò¾{Å/ÑßXb AJ<¬zm@ý>p88L7ç°ØÄÔ šê½žCPÜõž86X)f "y[^gäª23ÿ]>2[ŠÓ4¾‡gÌ}&Ã\ºôºe0ÜÀ0Þ^‚®ŸwNg¡í^• s¾ ¬²~b¤ÄN¹³`¹ºD•äÊ’€ÛÞÞæI z/ýxò ¡ †?ùÄu>ƒôÁ:60à›—2Ûï j”$v&ü‚óóµBÙG^Öœeœžß·tSŠˆö± ü¥•MK]ˆÕÞ* ž·Íʇ|wn4ÍiØ–¢H ›Ë? 6Eó׿ÞW!]ÿ1uÊi”潘Sãï»íz–æ°tü§;:¢£òéñäaµ~_3 —~þ"ïô¸õõ>ºÍK–¬aÿõ<ј ‰ö@Çq=Íj‘<¤Ö勤”4”ÕNK¿wš÷঳¤m82ƒ£ý€óöâ34diïíeÛ÷å÷ú¹!,”fKl­k„ª­¯M ?%"Ü-ø—Èü9j—^|-&ÇËÓ—*!Ö—KÓ+¨ª!±Ç8ýÒí- NQ]% £;jpçOt‚ð$Ôk'–v5¯¯fÜÌÀkiŠèNnØíaœÅAŸ‹Ë¨Š,\Ë´úC€q‡3Iñ™M5Û¬ÃA˜ºžhª鸂!úÇ!XÓã+ÈÅQÒ⬥B;6KW bÜdIžù~ñ„fïŠÛ¹dçÔóšfš~>T!­»M¦5é©*h—AÇ_€j¿ s×dS,f)pˉÐë[ŒÌ¶<³­N§Ýuu„)‹bˆªeòÅäÂE¸ê¡Ï/B‘æ3~WTa)…§~ó¥x™ÃC;Õ7è#õ—±Ø‘¶´nžÐž&Ê´k 9Î Ep—ˆ¾ðd“€F‰.O@2òF2,öAv½©M®!ƒ.f@¤W*ø=ôK(zó·‡$Òºl“vÉäk Éhþ 6€’kAùºeªHª²ÔëäU½—¨®†ñ¸˜FøÖ*h41l:U-KÈ®8ezÕà·­~°FAž½õ·,·ß¤l%ÛÕÚ£ã­oë¥ñÒ’´W<ÖŒ€ð,ÊRêÞT:÷Q;{¨TNQ}³n¯Í+Z‚‚ÂuÇE<®Ç3S|ß;å;W"\Gñfbùå“K—‡uhO>9ú÷ïBà Ñ,š¿AaäªÉºÕçÎFj ëq‘à•dWB^³IñÆ'L¦7§nt²ô^öS­î³®õÖYq_nŸ"™€oÕ_¼‘R¿!  €P`ý.[KuGü¦AÛEÅIã›4ôÈ[:†È¹9ñHÎI#mƒÂäjÜ=+Ä,¡_ªDdsw<À§ûkÙQ4ì+†’üÑhÙ4ÓWÎçëõW öêƒwÌ%÷B®yˆZ¬Y1ŠšüÝKz„)à,!÷yTdïÓcßf%ñàýTY$–'…#áT æ9ø| k¢_p_‡±Ü›@, ÁŒ.Ëœ×-ë}ÍÛŽ'—F½eý1T£â±ØëJÏc§ü† V†AQŋٙ¾Ÿ5Â’«˜µ€ªF‚žÓqô›™sHéîãõÖ@ÖE#%Uˆ]r€H$•îv2‰Üì¾kRUj“ï±¹ñ°»fÒ”¶ ‰ÍÝïÌÈ8«ßYÓc°K@F£±È[!ç":à ñ!Έ[°0 ŠË¿ñ¿È¨¥µP+±oÙY¾˜¸ÑƒB?Ðã·|£7¨ •Þ°ÇQ"± œ8C÷ÕB™üÉl –ÚªRxéÞbí×Ît%0‚¾Úëgst%>í-œ¶ÌuˆL^€™€†wΣ>ÊÌ£B½`­Z‘aX¼fíç3ß!>¤> ¡I7È\G'¹öRÈt:^òpay1>· ØÑ CGdœRµüM“ý;`ò,9Àü‰Õà ·¸-F|j"¾æu€‚ŒfBq‹t)¶•8œÍ¯Ò69opû,æþ {ƨ¹‰¾:ƒ§…º›F²¸½÷õ9ÁPš 0»slŽÁT3=ó\Œé¼*ßa§V‡læ¸Ñqâ÷'ºð3Sz«˜;è ‹ ÜýÙ ,‹g#dÙÞÄ’ñ;x3À~1†‹$Åè;º§êøöf)dZÍè×t=O—wo[³·,qÞ·zR5³ŽmWé5'Ÿ²Mèí3á7¼Ü¢Ü!âÅ·ÞêÜbòþ ¬œ¡"¿ÚRƒÝô [×`' ´ÌTODëi‚^ó_ÅBäé†ó¸‡6¿vBºí\Ë`A‚X¹>:ªIÃdµô¡ô}†˜®’¬÷ ÈÈ äš}‘]@ÔæS˜êèâZÇËÓ²]cÒîoW¯ïY7Îë$´°BÛ‘.5qiB¯Ù„G›‚ýŠ›ò›‹9‰ÍôË2@I1wÕвù‡>ð“s(&dš™Æ:;ôù5@Áuâšël±a[¾)j‰ßÍqÒ 3ïÖ!µ]õLt˜Y"eq†= /Ú ÒÙà&»íÕØÚÛ+ú›§›®†æ“LB×Ú·7p~ßn\«'­x³òÑB"ÂeûìÃpÝ|­.¯Î`Ú}×vɺvˆª:ǹpQï>ç´Àƒ²Âc¦¸ÙÐÜÄ‚ô´r×÷3¥õ‰´tŸ&g‡Œ¸SJå:–÷EgáÖPwp\ÍôŒÓúyœAÈ\±¼g1»ø1ärrEêþ»§T})YºôROB{ß°ƒî^÷D\î%W§NåÎÓžRċͶJ!xN^ˆÙ´”ÆÔÂÿ3êCsMÙ#¦…sr´!cQc|£ßJÁÛ äB×Ò}P«S’ó6h¡^ýͦjä¦OC^=®7_›$Úžøm'ŽüƒR;Z|îõK’L–¡eóÖažáµxÛ«¤Z)á›ì QÈ‹rÛ‘‚„=ë„™¶cIýÌyúùˆ· Î× <|}•]ÂÉÞßB3rÐQmS½¿VœŽnàÖ›Ö[üí8{@¿S)‡êp°ÖI jé8‡–thT\Ðpö+f‡õÐÎÆ/öQë#†cÛL×É+@´Û§…öðj7$¹¹)úÚŠeëïuåþ»5õÄ$…®÷LÆÊQÍ¥ˆ à±À¿N!È{‘+ÝšÓðå’Bm7T0ø²Vxø ÞIˆÂK÷êŽf5êGç÷Vq',Šœ ÔF¦1‚±– õHð¤²Ïí¥1ì QG¸ªfÚÀÆŸ€4õ}ÕTœâr”§Go•3ìÁØÊ Cì ¹–€4¨ø@¿wPTt0°þDJè_6'“TÃFÖ æµ*Q;Rò¾ƒ(ÖA‚Dî¦îYá¾<ÃòœEƒ&™!yë?Q|æ:­ñ¼"C4’¶Ø0œõ[W“’h!F§\Ì‚õÆáÆÏ÷ lå xs.“ûÒ—«&dÖSêõ B”ã¥uïøqÄ€”ñî72åQ–Ti™nɤO6Üï?M»~¯4<%ÃC†7ÈÚ°®‡§À?¢Ý@LâºØý ßÅô#> Tî­à*róå Ê*‘-Ÿ­á±÷ÅEQ‹’¬-¦€â¤S‡.w_xãáîJ!¾ÅÇ—±Œ#…­öŠÕ[È0»›³{as)ôJ±K¼\(«Tj]ŠÙímiºÙŠ%2³µê{j âÓÝhò$6ì>Ôc±•ÎuÒ:>‘“G¶¦2ñx°éD+ªS÷W'ï>¾E{Nòi·Å ã‰)x…_ºEžôdÈZСP\J›ü–—ǽtêŠÞÑ§Ü C¹Í*†ðOÝoò§ŠòÝêš›LðÃÌÛž+ÁãÏÛY…•øºèµ†–úm+í¾„ÍŒCW§¾™=ÚHsÄÍÏrnû‘7%èÛà2¯!8;¾ @ÛêYnãWXcÑÞìïþQüJ—•·R×`Æ’<Þ/½Q ë"h?¡|®™¥áƒ¬ÂTÉÅ((rñ›È9ÉHËss?³¢BJT ÷}ù¦l‡ÈM›V¤àžŒÄbÞ.^ºÂ"/‚È{Ž&œîhü2@¼D}  oÖµÄy)Ü̘·’© sÄYSMyfIÀo@®nLµ¶¦RévÜ{ØsI ²=¨õî}Œó¤oAÃa.”ϰ²êU´£ÑÎ/n’ÍgÔÞlé7ne¡SŠ?@ë.XâƒQ°Ò6Wž•vo §²üG4¹¿é¤x«¥ç4÷÷!WÄåŸÙÌÿÁ¢°â¡·Ñ!R›Hè“-_hª…Sˆ>D04çÁ/#·ÄN죧·SQ–ß«C¿t}Àkð\LÜDÑýµG´)OMöÅ3²-ï ïf ßXð¡§?3ÖiŠ SÓÕæ£$x0@TS¾a@“=EO»ß~ªR5XŠ)£ÞMÝQ–‹=DSN¦c\˜o¯í—áÒâÜÇ—joà—–MéY½ÕHØPÆÇ7µÄΛñX²ÇºMIp¦ºLA®A'há !´ä XÂëºî|…7á—e:;¡q"é9ÎôÊ&¤+û¹Ø:/Çîâàða“¡Â«Ë¤™aL«Í¼ráÀ­þ/r4â7X§ç±,ð¼ìþÖR·fX³Q‰e\¹886x8äjš\€ ©ÚZ(ogÔ4ÉÚ„-ÛŽÆ Îeú¬ÐÓpQöŽú[)ç÷ÐùÁ‚…–+9uÇ%Ù>[‹ìaaèÅz娑dzä•D„˜0,P¾óƒ{“z¼+÷ ¥Ã¢0ìËyÏîÕ.\ÂÐ8ÃqÜMò:eŒ®4¦¸ ÷åøÜî¤tÌÑú0g= RÔ•áï?~ˆ 3®#1]Þ WÛMˆ²ÚíZ5VÞð傾¶zs³ä–uQCÕ(àæÚŠRvH,Q_åÜ+k"$Á°g(€pãsk"†Ù!º³ûÉ{/1ä°¦§)Üç|ž6yé²¶¯Ã*Ïíd×û!=ãä4Mïx•ò£êhê¢(š§ÉöHìI—6‡ ´;'D¨ºŒVjå;ï2v\ŒáxÌ}ä½~…§¼òy¶¼×çÙ‹@±vJý?‹n×'îÝ;ônÄkíô“PÂÆ„’‰„ùÙîšB*¤%Ê @tKøXù%…ì±W½ù¡],Yn°Nöߍü9}sÍ)™œv*Ht‚£ï$ e]^ÚNZÒâoïtÿ@¢Ö—öD}çßxczJ¶xØ,Ni˜ p²Jð Ž *¯Î½|>MPà#:~ü奵üøLôkÒõ¾GÆdpiÉGRw2³KãÁ/œ©=“VìC—“A*êðêDÖ¾õ޶ÅĘ;µª˜¯C¼‰n(´øûö É©š1hâŒð&’{YsÒWŽY ¾Ö:ù‰K ä¡f)qõg:Jûé:=°Á²(\EYŸ§VdMF|ÚG;¶•¤ºvõ¨îÔè|œi°–U©>0SHÇ^œøô‘èÛ‡é §±^ gj‘¥MŸ/8WÖ…“ÏÌWGIÄ9Ñ*ÀXí,†’—ï§ÚY¯ÚÙ:Š«Së–dÅ¥ë…(qnîN!ðÌäþÇùnE—É/4DË-#عs´NÙ×GλéѾӺ²R¼§š×1|‹äuäOkZX·¶M=¬Ç ¤ÈEoƒ žê*¢»ëLGùœL°å7ΨšÓj:0 áÑVpª‰ÏǶ áîbG?À×nqäD‚4h½ñ¯`¥­qµghÉ2+b(– …Ú 76ˆšžôÞõ¼ ¥Wºä½ÉΓӋH±è2½<Œm£µ"úrîLÇŠ›Ô“â[½NfÞz}Z2ÜÊí¤À ¬ñBŒµU¤à<h³K¦{*n¹ßy\MP-ÛØoþŒÐ±ô^Ò*ç-·Ù©†t_»v”œÎÓù°ëu¡âjÂJ¶t…Hô¨wA™ôOÀ½–¹³ÍÄhh,– Á°”ftI]HÒ]ða£ƒSïè`tñÂwh8GéÈÈU p(a—{jæíût‚õq¦oÙNhƒ†µa(„±nž"½ÇËaôm¨SFÛà™Ô†M° b‚¢+º!v¶žÒÅÃjŽ-ňÑe¤°šá¹Ò08Âp¥Î@»™Ç…¿¢¼ýå>:ÏCZTfC½pLJ ®Ýœ¦q5=éu κP“\Öé |P¹cÿJâ•€,Ìa‘Èk(:§ÜÕÿú!1[UüüÛñD×É}ªðÐ4G¶Bϱâ°XÆöÛØ%–“ ]ÒOn<Š·¦Rp ² fð›,]» qî±®Q°œÒ›…V RL@Ê’œÂ‹5\35W ð0k¾doé«ÔüüO†sÈólUû |j«m”E©d(¿+ïºÚV‡1bÁ 1¬zðÚSÁk®°ÑLA<Õ~]<ª‚‘~ t¥P75©ûø H$tö¼¥žŠ\†ç~©×Ã^Öev‚ì’±ØV‰³þ}øü»¶û2IÞÎWÓÍsL¯ž[ç– Ô凞ûSC½$ ü¢2½rê2U¢ÁËÒ‰µ²Èm p’UE,>ÉÁýy(Põc{GHëë_AŠålü˜ÛïØú³Ö›+Á”ÀÒBÏ+oM¡õá„èÃh€¬ *Q®Î:q{%>œ§ ‹K¿œ½¥i3 5¥~[ž p~05»¯È¹¶EaÕ€r4!.r­žV#2€3˘½wfÿ‰°éy„ ›É2Ç A‰ƒÇÖ(0¶¦(Í»ørt¼2ÓBåô‹ÂÎç9·¦»Æ¾”âP®%¦¶M¶˜/SûE¶†ûœ…ë;±z^²sDiH†œ‡UßaïÑ ÎŒ›×·ô ŸR}þh¿J²Â$Õý²­©ÌÊ8þ\¾2!Nrª `Úá“Ø#«&«xѦ#à ÖQ¼ç*ZË{eXî–9p)j)Nªw ⻹¬VÙBžn¹§)à{|â»d5ÊQÉQ$uÖÂB¢^9rî3.'¨;f7cø@èÌ‚È5=‘õ`‚3©ˆÈfÔ î$9|nÚìOfpTü&Éß7º‡'F_wBº&ߨã¯vsU|žÓÏNéÖZ|ññ&u—²/ÃvøÎ(QQOCšS¿µiT)]r™´ÙÊOŠ'ò@“ŒÚ£Ö‘!^PÍ]_&Ä(¥ëk/û¸@:&Õ Îß•€R¼ðRksìyQÕƒU¾Û©.–~‰R úê·¥Ý3„3LÂv‚óÞÁ›v”›hhµt¸6«ÆãJýZ’—Žýe¶ÍQÞäÄ[ &Pÿî0È;æve=¿!+÷Bë–˜'‡‹Ðýüà†zœšö/œÌðqÁÄ’—÷,}%EéÊE¸<ÙÁ¯¿c /I9¹:9å™iXI‘w¡×.Ñ+ovè)j ƒ6®;`[0;Vo·³ñüyGµXøb0j@p¦‡¼Ë€2›óv”ÄÍŸOH{V÷Û« u‹­*Ù?²¶-¤ŽG§áü"rÐr®q-F±Ý&oøça}I ‹ ˜·êõ’¸âÔ‹è$°WBAEi3*G\D'/YÅßè?Uq¸J9Æ)ê¤DCƒ[ƒw’>s¦@Š$ŒØŒ’„Œ×›„+žšÄQÏfUË_þUiœÆ”Z;ǪÃ"Ë‘LHÑwkY:Œ1Zx(ÆJ:™ØúèäÏ7”·.þSl›»ùs&)s‹0ÿ°F‹¨KL_÷–è¥>¦þËèž&dX§®Bº5ëÇSõ¹bÀîOI%l|è]I! Aa< *&Kî@Ý,˜ãE޾ï¶ŠœÑ$ñˆõ ºã ¨eW¸äK)´@hS_z® hf[8|ü~¤øÓ,ˆó$ì÷¨ø `€¼ÔH§ÜãäõEƒÝ·ßC²ìQEt¹ØÙ¤‚OÀÙö–0冷úw¼ß¢gÉè¾4Ѓœî€[ ª 7F9¨'Õô^hdÁ­Ë–tŒ¸¬£ŸWf†®)ú‡»¥L7s³­›f (µ²]W±-.„!¯£ëÃC‰~|ƒôtâiÿÆ1ÉøuÜ3ÁC)òR‚æ\L=Ÿs¥x²ý½Æa:©Rî×WƒÎGQ,Cê÷¥»É¤§—uú¶\æ²+b8ƒûx‡rœï²*ŒàÏi°¦¼ÅÉ)/œ:×`-£ú²t&uc¾ Ìq7¿ú=*õÍ#Ó,ça±0Ø•ÀA-ŽƒŠW€¦õÐV(m;ÜÎܸZF–*¦•L:JˆPUû¯Xƒÿ}M[o¦4шI(x@EI›†?‰³HT½ý/.8Däl Ò| ƒ­ƒÉ ÑTÑ$ü›M3i&%à9í7ðnt†ó¾õn(•;tÿ€±>*5—vÛr|ߩߴ¼ÄSdÜ`pïqÂóÇSh“;qð›h£‰ÆkWË(C íHX§ntø®áE’žp³ÊŽM¦¡ãö¹ÔÄ}Í0âçåb1è=Èf«ãã´H?} V âúÝùm¶ŒS.íW)ÌkÞÛß2œ,{Éá¶Ûaaza´†-Ï¡]”vÀÐæ¡°8¸¡Ìû?–æýá÷£—€«1îªìòjïè3B/àa¼ð¯²ôÕF–Œ o†q³O3É´J¤]§(òovOdIü Û©A¿×ž‰ãžºÄñJövqÚ}dä„È üÙÝS/ç°|Æ.¿S‡©Ž_uU‚+Tï´Øû‚‚ Af®ìàë; V¸¿ðf_–8@ZtWÚ¦û¶68˜Wj¿‘šp'û{:æà_”ãʯñrH+·¹¤„y¥xÝv9@ŠZÑ|è0ƒ*qÝ6ŠŠÚJJ Ílλ#ó½|+“ÝÚ]E©¿Ž!Àd0’š™ïÓm¹ùÞbn¦°©:ô$ÕÙNÊ«_vWaùó2XÿÙ(‚­öÇX¶ÞùãüÌ7B©ŸËÑÏcšH¼€Z|I ÉxñÄÌÃá7ËÏÇ ig›LH  ñ¶q–®ºÃþU åÜqÿû@âô`ù¡½{à:ø2h¡+(_UœÖè›UWeà½Uk* “FQÝ1h º3´†èÎCÛÛm}ÿͯ™¿_[¨8 ¥ƒ€íËvÚ7Fœ²Âãh]jm$ªÀP‰ Š•Ðœ-¼ƒ‡“¨¼øµ»CçB”Jƒ &òˆÅ$‹[7!šù÷¢Û7=#lìÈUð^s3æÓTÝš"Ò–aC"„-G26+¿&×#9WØÈ†4~\ÓØõ­!z(t¾^=œÀïwëPOˆfÛ„ÏnEoi" X¤Ð2"ÞaDÑ:ÁHÿ¶Ü’ì endstream endobj 138 0 obj << /Type /FontDescriptor /FontName /WVPLPU+CMTI12 /Flags 4 /FontBBox [-36 -251 1103 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 63 /XHeight 431 /CharSet (/A/B/C/E/G/I/L/N/O/P/R/S/T/U/Z/a/b/c/colon/comma/d/e/f/fi/four/g/h/hyphen/i/j/k/l/m/n/o/p/period/plus/q/r/s/t/u/v/w/x/y/z/zero) /FontFile 137 0 R >> endobj 139 0 obj << /Length1 1597 /Length2 9834 /Length3 0 /Length 10875 /Filter /FlateDecode >> stream xÚ´TZ-ŠÁ` ÁÝÝ-¸»[54î.AÜ ÜÁÝ݃»'8ɽ3sgþ_ë½Õku÷®ÚU§ªÎ®CI¦¬Æ(j6JíY™Xøâ êê¬,v&6$JJu³-ð_v$JM Ä ¶çûC4q~±I˜8¿ÀöY[+;€•‹•›…ÀÆÂÂû/"Â0q™˜²`{ ¥8ØÁ²´r~9ç_4f´V^^n†?áQ; dfbP0q¶Ú½œhfb P›€Îÿ•‚FÀÊÙÙ™ÙÍÍÉÄΉ ±¢e¸œ­ª@' ÄhøÝ2@ÑÄøwkLH”u+Ó_5°…³› x1؂̀öN/!.öæ@àåt€šŒ<@ÉhÿYþ/àïáX™Xÿîïè߉@ö‚MÌÌÀv&ö {K€ÈP’’grvwf˜Ø›ÿ&šØ:_âM\M@¶&¦/„?¥›¤DU&/þÝŸ“äàìÄä²ýÝ#óï4/c–´7ÛÙí~×'‚Í^æîÁü÷åÚØƒÝì½þ…,@öæ¿Û0wq`Ö°9ºe$þ漘þc³:8YXXxØÙ@GÐÝÌŠù÷êÀ?NÖßæ—|¼À‹—6€> àË’—“‰+à qúxýÓñ߉•`2s˜-AöHÿÉþbZü…_îrè±¼ÈÀòûóï/ 3ÛÛzü‡þ犙5eeµuéÿnùßN11°;À‹‘ÀÈÆÎàdçpñr|þ;‹² èï*þ)coðþUìË”þU°ëß  ù{=hÿKü¢[ €æ?2×gád1{ùbýûŸÿ?ÿÎò•ùÿV$åbkûÇOóáÿã7±ÙzüÍxÑ­‹óË(€_6Áþ©ZÀ¿Whr±û_¯Œ³ÉË.ˆÚ[Úþ{ ');Ð\älfõG™5~ï™-Ȩ vý~YŒ¬,,ÿã{Y.3›—×ÃéE’\À—Ýùï%íÍÀæ¿—Œ“ `˜x ±¼(‰“àÅú²æ@÷?"03Ùƒ_B/Ýù,À¤ßWÊË `6ùmúƒ¸8^ó¿áÍÿYÌÀ@v³å?àK°Õ? '€ôÈ`¶þ|(³ý?àKfð¿!Ç ×áEàœÍú’òø’Ýéð%âu³ò˜]ÿyÌnàÍÎÌyy@þÈûe°ÿÂ^+ Ðh†´86ã¶® n½­%tcÜœ¦ÜÑJ¡eôZ„´¹Ü£"$ÒVf®A®E»ÐW¶$i®D–Hy5×!„}Wiyð~4ŠUÜiAZ˜ÀíÏ?­í%F$bTÙõþåè­`Û Ý.K™í胪œ‹uëÖóÞ½¶·dy$tnGe·’KîÍcÉc´F”~@á eŽiæ,>9¼3#ñk:Ìsw´™«ëi̬ñgRÙXz$Ÿãhö/^ºëlïf=WËÔÙœ:(tñ‰a¯0G&©¼Äö“dñ潊 ¢Öç?³Ð2A­ô’z·“ðéÉË`â±ØByßPø´Ô2hw##fì¨;ÐÕ8¡ÎãÓ[¸¹I½ÏUj*è1ÜC¼ ‡Ð›+¸~BPôðÚÝX„»Ò9º’;:©×óÒ³ØDDÚÄYi[•øæèƒ­Ot¹ËÓáo^LQíÕm=~ì0í¾ë®ÖÖW*yꂊ„Ÿ˜Š†Ž•ŸÖÀM9{UÅ¡XÉÛb …¨ßI«7H°$¥±Ìäx±ûÄq’3¢›Â#÷àéæFTïa›0^ ÃiŠÙHjm{¢‹SƒšÁÏ•?7X"WÍwûNDvÙ¼Bd²EêzT!lï¦Ó¨$çÁã%}Íý‘`ã¾ÐQÜŒnf˜‰_Sc²Q„âv„4§óÒ–€nM_þ~~NXo<4.¡äè½á1ªìh™7]û³7×(QÛðIhøV6áŠz唸bƒC?*¥º„-USåŠk >ŒÆ¨M+6u<£}*û"xU²©7BÔ¿hPõÎ7eDwºSwÁcÈ} 2ª&¬º?@‹JB/vú* ³~çë,?9/QKˆ²ÏϷصöîI“«9k&£_cÑÙKÃÒ¤õ«ö»Ñ†‡·}nŸ§§éÜíšfqwu*’±G„ŽWP˜ ;Xe1^,Þ\"¥{Y™ü‡Ì•߬¼Ç'˜n UEá¾VÉÍÀÚeØ^®Pi­øãE®ö{‘4æžÿ²“êy»zVJœY—ÜN¸4›:È#%ç+ƒú…[W[tEáAI5‚‰ÿãjL”ô=(T»ú3¿OMÜígì]ë^í+Éy—RÒÖ<Îþ‡å1™Ö‚œ5îcq6·ƒJ[4‹´têÌ,ǹ‹Þ1Š›N[wRÚçL¶V=物Á¡¤¥¼¨º a«ËÔˆ&ÓŒ'ºEb $ó¾/Æåäô|èäÙÅ´‹½5&ÏúŠ¢,ðàïJ±$êóoÑgÌ“» ³ËÒ38G¶úÑ6äŸZswRDž“q7±0h  'Çՙ¡&Ãßj¬LHTßÄ4³&8KŽN5®æŠ Læúã±tçÕHª '1f&fþè*pÄ F0Ì {ˆ‚¡cµt»ÙcëÈá`.ÈÎjbo)ÝÔ¯âö\6ñ<œd%: ýÐÈ´žzþ3 RÒ=P‡úë@ÉÍ!g¸”™Ÿ ½õ7¶Í¶Yø93ìý7VäèÇÛ‘}vÓ,ƒ°ŒˆN¦¾#Û(s9Å+‡‘ñ;‡E–Ç”í9  R%j¯âO³5èn¥Oj»jÀtj‰ç‹áIÂÍZ¶ñ±Ž]’©r±Ù"ðtôר,C¸ ÎäSÝ‚,ø7G‹ÏÔ‰1塨ÐJ^“R)ºM6ÒµnÇù9W3ò•íDgè³5ç‡!->k® §(ºÀÓó>/¡qpcDz¼G£™ìzZ[C) @éêˆ /÷ÚD+u%x—™é>yŠåï‰4êú‹’®~»[1ɺ'íš Çì ‘á$B?"èt„œfÌá}8P/°«³…ÃZŒæÕø%u([)LŽ©ç`ÐõféÕØUÔBgöXG\ÑE¨ ÿøl¼gÎÞ÷oò¡Âµþ÷0ñx|$r‘üW÷9ZÏ”#Ú ÁWp a|x¦ƒ¼[uR†æibc$s²ª4Ð\zŒêt'dÑ“:PÆÔ õ¿h`ß”¿®<RÀ*U}×gë¯NnAE' ¼I~Ò.¤ŠSýÖ#ÙôÆ ˆMÞÿ0´Š ùBØŠ–‡j‡YÌÝ"è:)ž ï+Kxý¹3z£‚@o$¬6 ´gëN£ÏC€–À«õh“›kïÅ7Žj tU]-`¯X~‡Áu,GÝEeÜÌ·úCð‡¸^²n¸ˆfKmhx”…)¾½ò#ëwÚ7渑Aï~ÉÀò·ø+àa¶ Ö_4ãªB·?%>î'~•eH NÏŒ¸Þ2Ëxœçñ^Y~?þùûê™>ÿWid$û¾ x3¶ðµJwRí1xìlV2a¾uœ Œæ¤t\çw$Ýë¸Â”Í“7‰–Ájí@=Ï´,à(Tˆ`hÍŠ6ù^âÖšñ>äupϱR0—ë•§K~Œˆibd/"ȽάoÕ²ŒIéØ#BA•9>„ÇüDði©ÙHãu «Ú¡šù«K(üŠÓcÚü®ò«Éüy¾W¸§í‰onU1 &¤d*ÔmÜÏÓ­-M?KÇ›¿f¢áCêÜ<+Í bŠš€I¦Ìwpl/¹Âõ+2<ðtgXò2Œ53€¤or+C뛯r¾—9KÇ«¯ˆÿŸ$*ñO8nðÜQ`{45Š…ƒå!(þ^‚ eÔ©Û^º« Ê;ºHTÌû’{gs§\ÜtqhEO³†–´Â‡@Î÷¾£~ ]MŸ€C¶HâóR"Lèˆ-S'Oêö¾q-Ѻ’T!|z¤_0œ.k‚²$ê?îËã¥Ãq yŠt6qí›°&ƽ«ÐZoï_v~žòQ~””Wὕœ ¥æ'~ aÅ„m…f ùQü4ÑíØîM—]sߑ猙ú«O‰$‘«&¸9ŒY§ãÄÏZi³ÞÔòS_M¼ª3,pD§9ûéwßÉù¾ãM0Ý(ÆdÌð !©¢y2½m©:¹ ˆ«ÊÈ¢©´Œ›ú:Æ>i/+°Ä*hÍ’9Õ½%§Jqò¤oZƒMø‡¥ø)¶J@)ö;$9½À»Þp†oÓ7¢)gªÊ#¤Ê6 -uèøü”õ#ãpç1¥ð8å¾4Û‘O×ê^tú,êoFI(Ä–v²³‘k„_±$$;<Ÿ<ÉŸ×%h×U£,}¿“H0Q„ß2 À„´rÌÇÏŠÜ™+IîLØs­äÄ®…9üšÁ Äé‘°P¥o4TÁ<;•.kÇò?¥ÍLØÙEú§-óK–WÊödH{—«ÅwUU‡5Þ] ´#´žß×îìUu´ô¡•Øî¡^ÕÞ¥nnŠ~«q¡âÞEìžóO;ÛÉØ¡ý_‹é¨[¢§ÀÁ/ÁWûàªç¨›¤Œ…†g•ŽÃXà¤ÏXf´Ìþ·ìÞ¢±žR:×Z jDÒC)²…Ÿh}Ÿ±)3 MõÚ1”„»/zùq²TÝÂÖšû%Ë9ó„É?kíxûóÏVÈpFÃ$hÃPë›GìËÝ]:ù°Ex©ˆÒº½•=tFÐ^ÿˆbw‰RÅd‡QOwäŒ5õ&ñ=º8`{èà&0õ ÈJ}ûE^{F‰kïƘt|æ¢ ¦®½.¶ˆä+4Îe” 4ÅÕ{†ÄçcŸ÷‡xC´fq+¯¾ÿLJ{æÞ{CÆ#6ÔöÑzi|E2Ž[?ëîŠ$׬&<Ê¢+PBÜúCÁð3Xfcî,E@;ÜÜ(‡bèÛ¿ÞèOH†úm]Àî}³k´‡% ¯Pa9 ëAÁ‰~9p¬L¦YÍ cPLF½1jvÆõæ"p¿>‡QµÅÆÕ–»tsÌâèpÞ†¤â5 oIß«„צºz^ì¥÷Ã/8>õ‹MoR¾ —jRWš¸Ÿã wÑmŒâ"öç@·øF*숋_æ~¨H¸b™"‡¤:¥©‰WìÂvMy !?èÍ<Ì 1°RTqÊ'|WÀÀazÂM9…b 3—)Ë{J•*ó 6ä]5`¼×òãZƒ]‹4}Q9Ί”–½y¨‚ϸªŽKª©2lc`¹kÚž™°‘¥‚ §.¸¼Š½MT”U4e‘ ë‹·vò¾Khæq¡þh4œ! =»,eËÒfÐF’«Q6%kÁØ$\‘ÙØ¾moló€ [tï<ŒHì×#²åÍ/^°e`áÚšÕ¾B Öjb€iŒ€‚R½þ rüAǸhÏXÖH¬rĪpÆñâ‹™ŒéÇx?a;]O»¼ÂMYÿÙ^ºi{B‚A²‰—)X.]f×~R#ÜDè6kIüƒ=®s6Ú;Võ›#±0Æy)õ}1Ú.´ÚýXfNS¿aÙ4§n9­g´¦[otlJT‘÷”À™_YD­ÈㆦN‰@/Éç…1D Û4]rVì·oRàŽË?®ƒüѸÖù¦z¬ýã쬘ÜÔiä(ÄÐóV×~ˆ¸»(}·+ 81Bó¥Ú²oüP€Ó ¤8V½k|ΪZ)»U™E »)Ëgf]Â^hÁ†¤WÏÇ..ï„>äJ.à‡;P+*Ì+Ø>f7?à…}¯0ÜÑpMå#¿kï’Yà‡ÿ…c9KSodž)×(Äô°ˆÂùº4†õ©Ágp®ºÓlò±Òk»T@ Ýõøf¥i wÄsî2LàþÍ(ÔEÒÀDÞ*ïþ;~}y†i sCêP …ÇÁDÉ\Žæ1À@+ ¿knjF(ou‹ö3Æ•©r¾X\£±®ø`_z„ÒçCµÄ#–ÚÿY“Ox_Çæ:¾Âï¨WsŽ%Þ0úp|=Ó‡»ÈØ™N‡×$#^ñÉ‹u 9T4"eM··v¡‚¢Kóþõ›·ö)˜\[¤Ø­ŸryA[œk¦¿ojHI¨Ýä»PP w0k¬É ´\k=ÆL-\Ó›ófC¥*BƒÐ'ZßëZ„œôàPÅ+w¸7ÕQÉ`â§¥>å Ò  'gï{òêùÒ(ï…æà& êrödl]+<”/Í£¦õH`1¾zNºmóOZA™}áMª<ÐFVã9ÆôÊŒEÍÔ)“å°Áqj>§¦€Ð§;§ý Ûå¦ ¦]³£Š”×Q™Aْ玧-¯µ¼öo ÿ;Û@ÎÞÑúlG—LÿE·‰„V…§0tÈÇMTyeýÖ.=¹„¬žº®›½Ù»‡P@8Ý.…;ýMpd³j˜êôu/Ë0YÁ«›W2¾·{’f„grUlËY`IëÝQ­–Ó2"{œOzÀ®¯Á¸¢è¯Iw²ä‹„sʧ©ÔžþÛ*·®E"ÿãð£îáZ†…v•¹­¨:­î²Èèá¬W1¥Ø$¨x„ÎѨlgÝ0µ#Ÿ,0ᨄ’1ݵ8±y)-‹˜lå8lJ;½*W>@Ô‡eŒWì,l'o³ðÀ@ôfUû„™­¦·ÍÍöŒÔ%Ñ”ôV¯³”ãay;–a_ïX±D☠dÔö èI~,s(T€EF+3p±,¡ ÂT‹ 2W8•ØW£g˜ÁÜ×>Qƒ)û¸£IjÁ©Ðáü=Ⱥ֬·¨/ôr;ïGò»@ \öÒ,q±vÜÔ€‹r-÷š_húu}49çñnMêC“h¤áà:ûj¢6ìz #!«¨ÒijŒ2–@FÙëƒzŠ>­º qåæ#D¿ŸDXШ²ü ~ ”@; ÝÌ„´¥XÛ¥â1›w?]첤–×¢•h|–»ˆü»+uPm·½5Y¾Ð0û¸°T(’0q¶yv7Oe0šSûwÐÔY¬±-¢’þ¹K‰2ÃÒ°þÇe¨§–§sÄà*¸ŸSl”>þc‚ʪ¸ëTß³é}päh³Ys!èjÌ«Å4$Mòx¯bX4lr¨–6ŽCaÒ#ž#Ë™L}dš`¥__oo1œAÖÊ3Œ—mà æ×¸YÁ ‰Úx\UOëWäLE¯´Ý‹ 3±ÉqÅ|)¶AÚ¹‹3Ø›ÂS¥Ýø*}<"ÇЫ¯”¾&šyl×'•µI뽕Uö¶zâŒØÕ!މnGg};nª«ÕÉ­;R¹µmšÓŠd;cåÀ°ArQ´V‚>Tëêf_ÑŠ¢åæôtèvé»_ì‡Ù¸­=NÙ#‘AŒ¥Šé{ÿv,hn܉Ë4òœž¼Ü ß§»f%jÑó’ijNöó]Ê)ŸH^¸‡¤±Ìk0ï65Žnæ«p5ÿÙƒ>øÁ–³Çñ’ö4]á[êJ|ó ü³ dÐúýìAŒ/Ï åÏï#ý³ù†Ÿ'SÆè :2…­ú7ë¡-ïž½i&Õcß#Ó-ùôYižOΈWêۤˑjoÅ [Ó1l^}ÐP" \ºC¢éø`su™˜—º6ÝǧŒejÝZ–:ÛÕÍaû>ÁŠè¨á uQÈMµKj'™Z2aâé­n=Íþhùû/8“ú‚\³lÕœÙUœ„ãwWnÚh«UÐ}Œ[†ßr;x1hGó‰?JÐuúëÍ•~©Q×'Eêõu@-1ÒçE¾Çù¤¹ËŽ$c&B r÷É­¢UÓtºêgÝGx(Yb0Ú#ò6N•QtpZ,ú†a2þ’ÀéPª™Â;‘É\ª…ϵ!ë|-:±b£ÇíkEÏØ øf¢²Í Å î ûE¶$¬p8,]ú+ÍŸ3Ûdqz…-Ï[oEù)Ê—Ç3à’¥&Oú5=D:µ­êM8 Qz%.€G›âº¹ ™Aù§BTÐNÙEåÂÈ%¹ÆOîC†–ª·¨ç®¤Xáâðn¡×I>+]"ÉPÅȧ}ÑÑè"°`&Te$ ÍOl.XDQ=a7à¤Ê\ÿ)BL•–¿0ˆíBèÌkQÅõXÜÔ(–û€Ö€þêmQÒ brqúìóö³‘5ðáÚ‡Ú²â’^/K{Ñ\WDа)¥©vÈ}sõeEÍÖb—Œ§ˆhH”ÙÛÆèneÒ$l‰.¯=½åv½| ›Ô£m3Ö [¦+œ™D8ÕÉ?‘¶Óƒ×ûO6Ú§»Yº¶a¦Câá.ëg($WÅûÎ!m¿'É»l ŽO<7á²ðü¾7Õ’®÷—Qm/Ž@7J(Á2z§i³½ t< Úû` HšA¥Q˜D~U³–3¸Ei˜!ÆÍîza ÀWiY¦ ¡UßdŠ8L ¿~^°;;f=Þ±?WpÔƒ‘ꎬ>2=µgfðÀByûÞ!š/´d¨Û—i>©È +íôÓ¸ësÌžôÌðUßç7övïãJßaÛ-Û†RµY¥}JãØr‰2Ú|,Š™#“ÛiX“­®×⇊C7yÒÓ@ç8Z–ª©¶\Fe%©¯kÁP2º¾ ¸ÜYS"nñfy¿â±|ž«Š¹|8e‰:ËWH6o—@jGšg¹s—´dZ/ N^/McgWò7ºö|NaLΑvL-âÒn”eЖÙÄ)¶´feïÜAâW®‰Ð‹.Tá„t&¬»‚þž¹©8…²ð-dí§úZýáæükÜÒ{nkÁuäOCëAžIƒË±a ~_زoù#² Ï¦/»R7IpwW‚Mš6÷npØg¯²akˆB|£ '’tÌÓ­çXÉèE›©kM™‘o£}ªõIWô-¡÷;À~L?l1(è~Â.P¶à{%ÙÑsË*SËRS±z´?Ô½»àÙ×ûˆIý0Á‚“_³|z~\–Xž0`è€C |Ô>…rù›m= TŠc}¨d²‘€Ƕá“=(£œ+¯:Q:××5ÈÃÖ3d‘7×ôŠßt #Ô±7ÃéE Ñ Ìó>9°IU¸e¯}4'$UVé9d'‚^_齸’@Q6âóê  å®›Ó½¡aùðP CW@ž‰s&%l»¥ŽÌ¼‹éà~³Rüœ¬™û«Qîѹ|O¯ˆïZal Œ(&SBâë ê÷ªA<EÝÔÅÐÈ[…´±·c¼*tU¹À'á·Ë,Ò$]¬Ïšþµ@°ÜÈ;x\¯ÿùuVþQhë™Q U›øäì sVħ6ÛúÀ›£¾äŒö»y 5åzþ®oVAgí=K^ ÎdØqXXšE]­ºù!INj}Ý´Ö÷À°%Aýþ¾Ÿ‘|‰ßº¶0‰Ô½|ärj+†mÀŽvÙ&Ë­UÚe?DF ñá‹Tqm ãaö^E4L*j L@ÉÕ½9åÑÄv‹\ŠSN=¤ÑçÄHLSÐ^œbz,Œ3^ï$+:©"›™¸Æ/Í; %a„Þ}‘X!­’w¹öøžX›ñuKçÐw‘¨Kã=~žƒ=™W“ØfæÁ:“}6Ó?‚ãuR6µª4~ œ|tÌwÚìÔëµc°d*<…A»Ü"2 ´r½Ôc”^Ÿ%ü2éK–Ù¼Ò%Í)…Ùa0•6Q” ¼HúâÁõŒåՔ͉Ç&ç%E]â[”²«¬B6¡p¨Ùt˜bÇÝ7$&,…ŒæÃ"ïí[¯ŒÒ0«õ•špgžŒÝ\‘œve*ùz`²Nâ£èŠˆæ%["Þ›Ì 6Ââ½"ðÁ‰²»ÜF<ö‹Àâí>3 &:ô G¤Z4’¡îò´“a7ð6Ê Ð©+b!Æ Û/‡> endobj 141 0 obj << /Length1 2135 /Length2 8304 /Length3 0 /Length 9559 /Filter /FlateDecode >> stream xÚµT”k°-¡4H# H×Ò ’RÒ-Ã0„À ƒ€€tI Ò -ÝHw ‚„twJ#ÒßxÎy¾ïÿ¯õ}kÖš™k÷¾ï½Ÿ‡‘NC‹SÚf‘‡Aœ<\Ü"YUmm^7777/6#£¶ Âò96£.îdƒŠüa! ‡€HÙ3i¨ ƒ”í<|Ann/7·ð apÀ3Ðk €*@…8a3ÊÂÜà6VÖdžÿü°€Y<‚¹¤í!p0 P!¬!öÈŒ`@ ¶ Üþ+‹˜5á º¸¸pì¸`p+ V€‹   q‚À_C,¿[¨ì!ÿ´Æ…Íж¶qú[¡³D¸€àR`g†@.ÎP €ÌÐRR¨;@ «ümÀøçp<\<ÿ†ûÇûw è_Î 0fÙ@­–6v€º¼ ÂÁA-~‚ìœ`HÐkÈiðWé €¼ô Ùá?ý9á6'.'»ß=‡A³ÔBfo"œ°×÷Ì#ÏÝ øÏåÚBa.P÷ÿ¥ ÔÂòwÎ@¨£3DéÙ?6HöÌ ‚ðsss ññ Žˆ+Øø;¶›ä/%Ïo1²Ow˜ÀÙÄÓÆ‚üÁvw½†pgˆ§ûŸŠÿ&l€… 0‡XÙ@±ï¢#ÅË¿yÿpW€7rüxÜ¿?ÿþ3AN˜ jçvgþ×_((©+°ÿÓò¿J˜+À“ÀÉË÷ÀÏû Ìðüï( ›ªà¾óT‚Z‹<¥ÿüúŸ `ùg=XÿK †œ[€ån̹ù¹ÁÈ/žÿçaÿËåÿoÆGù¿ŽùÿV$ïlg÷—žåoƒÿdocçörnÈP…!7ú¿¦z¿Wbaãlÿ¿Z%¹ ÒP+»ÒÆIÞÆb¡aƒ[ÿ5‹u~ï™ ¢s²ùýdpòpsÿ¹\`[äÓà 9’© ÈÝùïŒrP0Ìâ÷’ñò @p8È ›9I¼üüwä6Z@\ÿb C ]Èî<–08öï+ोþ&PæŽ@Ù;ŸÝ‘0(÷/ r€òwÄ*Ü/¨xG| Ò!ó©Ü2Ÿê!ó©Ý2Ÿú¿$„̧qGȘZwôÔ¾#dL½II ;Bf0¿#dÕæpØ‚|X"îä|ÿÊÿæÈ’Àÿ?2f‡¼ÇÿH~_'ÐâD&€ÜàortFNüò¤,ïþ&˜3ü=²«?Ù¨õˆ¼I›?Ùªíˆ,ïÏTÈÚíïYé…#P@Ø¿øi‹|…ý¡FVæp§FÞ¡r“a´Š|/ÿ@d¥ôÁƒ¬ÔéÎY¨“ÈéVx!ïÎ9ú@„ ì5ÒÃùD¶öúD–ër‡¼Ho×?ÙšÛˆlåÍ_ø_[v†Ã‘¯–¿|È•ûÿõƒ@\!`ì©qXÔÿU…ã¯2i*εAÞ§xÝGïN0õVå(^o¼ð•;?æË ”ný¾z¾H´Ã›w[c«OÊmkºà‘*B:UÕxßÒ|…ÃcˆHübÇIÅ™wýyK‹¡ÔŠt¿V³×åDj”•ŒÃñpm,eKAŒ©¶ä¬Øzƒ¹z— u0<ƒ\HˆÕ¿I:¥©D¦\zô{³ƒÓ‘Ôà˜Çò[ç‰]ý¼üËÝÓ(6K‰TÛÛxÏOR¶%6Û(Ÿ› FWÛåÈ/£X|Oý}X̾jDå<¥´Ô>ªÙÉqV§÷÷×þ¨XUüVXÄ»2"y¢­¹+èÏfeô~‹`ZE³¤~Î[¥ÁÒ(fÀ)<ôVƪdàgŽä'©t%wý–CfšÁñ !V>Ob~Ûšc`Ú`›¬èӽ̲ûÁaKG“R©Ê •Õ+}ÇÈGûÑéѓ־¥ôËy–×åûæ Ü–û´‘úg™™³@C¶²ÝOúUÆ£çb„ï\Éå©w™,bSÇ}ŸÁéÙÔ]ÄÃ^н+Õ|ÄÓ‰£xàÒ¾(›ð‚¡öxŽív<ЧP@Òš”êòôýÌá˜gá ¼ÿå\m iÑ(cm1^Ý›ÙØ´JDk_è&4âç‹·â­]ºt'-\¸Ó”åuÊÛ'›ƒ÷ÑèT«/R—Ë’õK©‚¾‘Ï`9ÅY¿q4|•Cœf\)ë\‚ª>œ¹±eý¨Ûx‘Æ ì=?µÄc3.£7—J`^ß‹¿–({"ÍðœGñ ~ào™äïˆã=ÎÔšÞ$1üÉœ\—;Š? ^x„µÑ¬z´þùú$W~:»æŒ9N©’&läãìIUĂůñV‰ô9©z-z½”]ë b÷ºøhkaßËÞc~œQ¼bš«’§¸ Ú’·0'NãHÈœ)uuìŽ?½PÎ"TÃ`»Øî6|`çTX¥¯#)9Vžw;t-§ûÓö¬IwÅzíÇSF÷7§6X2-ˆ¨ðg—w­ÿh’I¯‘íØnÏ`Œ×tztíÛZ/ÎöË"e 8œ#ð£cnIí.ØŸ\ÿ!V.×_šåà3¡™öA©ùµoäf“tn±_óÀ©[ŸÞeú §ùÒYP5Eš”@ûܧgk±€IºCƹdÙ¸#ëç'q’m¡(ÏÄ ë|4W.ˆh“çÐk¶ßÝ«Èi+PE#Nîkþ´¨hYbÇV@#Pæ­ûÛÐ?f  DNe1‡FöR¿‰ÙMëh0š ØB×C ,•úðròUŸGÂöêšZWDMM6¿%å㤢*·³ ?7¯e^áÕCààYÊ6üBc V1¯ ¦ш\ß‘-ªá4²lú*„“v¸¸õë„A¥{³W¼'qô*üDªá(ïxz°S/ôú¹RB©é‡$4µ~ôkå¿ÀüHržhPú\=f"²£ó\^„4Ãø,X‰¶›¬áº@1k8Ávòº6¤W¶iŒÖ™Gè×ÒQ…ú$QNPrÁSSõ/øÖ‰Þt‘]Q·}ΫwMétx7vìUÔBÖp¡–šàϵyhýÙÿ‘ºK@W0íkVáþœò¾9BM²w_oߪéÞÂåjÄ|¬p ÉÀq¹ÑBÏËŸ5xØ)«žrÁ¥rgJ]?$•¢šb:sfq–¦ÎDÕå1"°ñ{·ŒD‚ú†R´SYá(æ’‘59ÉÄ uŒOÓ[KŽÙ¯ŒŒ—Ñ(4‹Öè€ä︙õflÜhŸüDï7°îå¥õ–ß»Œ”*0QÒê©ÝªftÑiÆ sÁºkJ´ßº˜ý ØÌ[9:ʪ„Öã»Ã»pMŠ¿Ÿ©€Í°4¬ˆ)n ~-ü¾n_ëÕ¿àý€E݃|œsNù |,åµóse±l¾ÝLA~Ëÿ‡6dI®¯}LÑsf–yV×^ÝjMU½&$…îñÕ§JtðºƒU掑ýRî‹ærpò9u-ÕQ¼·±çæq‚(5ÚEdŠ[ª£§%_b¡kYOéjädÈ+Õhû=›Bzª7œu»xhQC‚ßÍ¡ûL¥lÒÖµ[cEÌ+8âçÜ+–ëd`sÔIËâÀ…‡·¯Ú;ýzÅ6p6tt3ÍYÌP›»‡9ˆÈ&v‚tÁ!O¶—ÌÅøï›-9§Ðñ©Nmß_òóyf×.w®^ca¡6åFüÓm12·æRa“ë´Aw½ä‡åOu¾"pjõׯJõùƒŠâ;‰Ð7…:äT®SzÚëïrõ¢Q1»#ð—U¶XÞÜ7µoÀûМíäÃY¹P*°˜ËRýmBB5ë+*í¼µp@B¨ÅX¨ês¤žÇ¢’•7Âdï=‡;p?—@õD;vϧ¹šjÐN4×…àm攌ࢯ’h6B‹Gë˜á þ£’­µyÞ ÏçÊÅÔŠ‹´*ŽíµÎ”êï·;ƒs[;ª¨Ôv΋÷œ€rb¦ñzÚºž¯²8O¾÷a<|¶-vôÌdfûN`‡Ê)Ô{‡ lÄ?!ûÐÓ=‹"}~BTú À“ »ØHç6×´×èÒÁá¶ä˜°·ÿ„¹ð]âEðé€Î6ÿb÷;MŽ·¾Âjc<Ödé‹2¯,éÐKúËKÍ‹¤†…™ÇuŒµh³z±í*…ƒF¯ÔÒ*~´TÕ¤a3ž'ÛO…M¢€pJ™ýjJ¸/™O-~ÍØýäµ™Fp KBoÂþm€uÁ÷QaÚc­NR› ¶&ìä‡;¬¾¹yÎUÜÕü > µz·‚YÆÌàÃðsDº¾qCîWƒŽ$£ÆkĨ¿Hg\Ï^ÀŒv‹ž‹}Xù}-ŒˆÓ×±¦3Þ eÙ´&ô¾ …,QY·ùT¦o/Ú˜b‹©¡ƒ¿ÄŒÕ_ff„¼Ë:DÐS×1o1ß œVP¶[ÚJVœäÊ#–öjàíSDn;{Eäöm®ô¾‰àÍxÑû’¥öÞð¤Màt:›¦D@M–Rå¹qÐ'T‹•{L=+.,­`û±ºÄM€×ua«ãÛDÂ#ž,±våÅ5åþyæžöŽÉ…Öy¿îšÙ¼c¾®ðòÞÿE\ÕOYzc}˜×iþ§ñ“åkÔ̹›–;E¹áf|μQ$Jûh>bñLò«'Dk[r„¤&;bQo™ÆxBjn?ÄbÜGho{B¯=â% 2°Ït18Úî ¶;f?&"š÷¿ö¼²"ôä(2>Ãþ¥(¼RðB}ÿýˆë ö·®«šœK2üÕšS`AºÜ¶°þÃÑõ·ÍSf¯ŠzG51")uœÓuÐg–4÷µìÏý÷\‹”›ó¿0™¢$áàÙëæ²0äºþk',ÙòœhÍ ¬_QD¼~úáý˜oÜmj'7Ò°ÈJ °™þ Ƶÿ-ñ6q§<ÕF àEè:fŽ9ß\ø\;”8÷²ýD¯³ËÓO½,ªu½5®<ÿ0!"w…”䀬QÃ|:zƒe_B±w¢b=«¤Ý°¦ÄHSßÒxÓÓÅ×WXd®_°¡'gq@'ŽTÂÖ§Ò¢Y×ÌAÇGŒy¬ªüÑ'+ãù\CÞE¨é?]‚{õÏè5~d4 [9ÚG.›#ÂZ÷åÜæÚÏÒl*kõ™Ã&k5g&C~Z|B=òÖyèCV_Å%ùå]6Ý®:A5ø^ôÝú´i3­^(íÄí8¥1ÊÆZþä×ýî†ÎXÄ›®<´9BWN¥ÌrQßkÔéÿÜV‘8ÏÙ¤ûœû¾:ØÅ÷cÁ§¸QM k×çÊ„š#eš§[V4}Ä…Æf©ï4P,ÞÕk2L ¬òHû¹_$ËÓ xÄÿÙ|/x¼¨•œF®ðÑkÊàx5€ÞHá‡~ʧƒÃ]ó½—`™,rå¬È‹@EB›'a9~Ÿ"ŒZÔ«k–@¤›&C¼Í%Ô“Fðê¡ìÛ^üvi5¯üÕÉ¡ìxt=ž ó/Þ8ê )hCÅÖ4É•#‰gø$ÞK³¿-: ÃÜ¥ï‰êc¨‰õÆÙ½§Ê"È«öøZeþÌ, –‹~àùlWŒ8â¾gC]^w¾"·žÒDd-K¬ås’1S \Wóë$Œœ…FµÝÎR…+ÀÑs‡Ký7†ÚZó!.ÕjQÛoµ™_þ„xL—b6¾¾ÎÝâe&¦Ð¼ØÍÆ´õq}¢mÔ—ø©ƒ­em`à›"Ù~8C»=j°¯O’º0:J}ÙA±í9l#2WBŸÖU\bð¾ÀuÖžÁ.Î3‘«[æç²þ–ÐÑVÚÓZ«Ç¢[ì«^Éã?‡wvâ¸#I’Ä¿éP©õœA86]½â‹?xÕn(RÞ˜ÍØž÷ Ô½ w—ü:¸qN\hL`éä‚q9\SU{ˆ19W;ÃKr IsBÿæÓT´^*æG=˜•/Zt§ÈDù&~"ÉsPeÿÞâ ±)åCý²‡¢Ç&˜Ìô#z¥7íRß3›]Ú´—é~E~¥¢®jûL(C£Uõ&Rï«KHÓS¼qê{=ôŠ^Çnõ/«±Ùr<;,[«òúD‹p¶óöŒÀùY\µ©_Nû–Ÿî¿ŸhY«>±˜"ÆîºùÊ0é•×ãTgúMµµa^ÂÁ¼8°ª6ˆ -1¦ß16ºµEÓöS„4ªcÑ3‚Ì«òKãôÁMûÇÚq³U–­—èÚlbï½f;¡+—Òöáª!C(Éù«(áŸúÇ¥†ÞÜ´¤½áô~y?x¢Ÿ`§eœB%¡ÞP’\Ì~Ÿ´×Dì£ôÝË¢Ýøx„ÍбJËOi,k_v]ç-µÌM?þ, VJAS-šÀ{ÔÔ†úIŽ%µG¦þn`‰¤W¥nh¾:ë˾9ÁIÿVüCÃàùÏW~š\ê'‡B ˆÂ0÷«ð’ Õ­é ¾åç2·LÙ'œ4T¹‹K6Zª± !ƒ¡ a›Øwð‡î0T±óuüÜU³,‰U½nÊ¡—ƒFûÒ_¯?s£Yb âIvq8¬7ç?ñš«|©ˆ~q‹uÆ›ŽºüÜîâ¥j·ëèÕ/fªH³³G˘åTAÍ2Г¯^Ú/+¡EUF£%¯ÎekÐßßn¥G8¡ÑbA»Ù°ÛiÒMÃBº üÕ•}‘Jó‹`NZBK¦0 cr3ÒŒHç hüNiw(s{ÆÙÀÓ Ÿ6–´îhÆÎ/#é33jà¶#e œZØâµ#VÒ¹‰}ŒK×é:¥MŸ=[EAXY0€=båx4Ù%JkÕU‘è+h¥Ý‰ue;±{t²Å.É^Â~ýäAK»ÿÙ=ÏyØÓ £ ,%{›óch˜rþã8Jƒ·Î‰ÆÌ—BïÉ|×ùÏ®g¸>~QM+µAjìߨQ0M=ƒö ójͬ"¡ËO;_>ô ,½9úb1bÝàK¹§ü$’+@“¹0Ý´±¿VØŠ$Ç'ÀÃ? ®ïõ48~éá,ã^²8âÞìI›[ŒTyZH®!BRj¼ðú…*Á~Ãá©@-FLW‰Šöü!Ñõë7b³Ù{X8ª‹‡|hÏã}7ždÄË^,ºÎNÖûˆÈï¥=Sä" £·Ó!vV˜gzÔÎÙ÷Á1hnº€ìý q™ŒFêV• ÷ò6×\âQ?žˆÇÔ×Ð_î/„!pXNÞQ.z1¦¡ö$\QðÌ+þ®Å„ J• Œcn~u…Wðœû¾ªÃös-ñFÝÝ,’SÑ,Ó{o»°ÊEÙ*âÒ%( ¥Á] x9¯iÞ@­9…Ÿ¶DºØS‘Å2D¿–§øXí””_‚ZëA2¼R¨•¬Ï]dMAâ*: ‚uÉSUÕf¿ú\gxR"âpÁb{¦Y-Ô¨‚–ÞiÑO¡êøýýÁÄtØfÄWKwʹúfñtùr–gRÊÃ퇾b—X¢àÆ=Jż˜óïë Óc¿ÓËäÙé RÓL¨bUG‚ç­gRÚJªün²,Ó‰yŠÓàqoŠ“L´€8ï(ödCŠÍÅ0r°µ˜[§®N`IiîLÚ)I8¤3M·…éÿûž ½pÍŽðQbØp .C–„å¸hÙŽa2èz»~A~•©À7Âfb‚á ‚HbcÄÔ°`ÔÍ‚+z$ˆ¡ëFõVs¹¨Ý¾ì(›õK¥ðäæô§ßb)q¨z±ÇGf*ë DVU–~Ú Ù>oªÛ²E üX¾O"Õ®@XO<“àí]ÕØV>¦¼iî·Ìv[‹ô²ß¤v4@¬Áò£\0W¸Œï{÷õCé®{òË8ÃÒŒ¿ú^÷îk™ŠÙ©°€Li6’ô¥ï•¦$52¡•dÛ¾òpN¶˜° &‹Æë8`òxb¨¸©pó\é1‘‰¬íQã”7ÝçF¾˜z££vßKlG¾óü9Õ˜ 5ëxœ<–°8‘Gèv…—’> A¡Œ=A{¾YYk;‡r?^ûbvÊ Íá¦ÊÞz™í >?ÝŸD ŠÕÔݪQO¨hw¦7Ç-x¤@ГÈéãÄ7þ´o­1ÄdßFšwõ»S7w'¬iÈIPÌ^-[® ]“År äOOÄŸ®´/’>)‹çÐ,›òIeüX&-®K¢@d4ŸÚ¸äÏBt–Ç?¬E@˶˜Lþˆê|“ÄXÓe¾»«µ$·e¡RIL*()7ò¿ØÒèÔæ„ƒ•Œ-i_u´Oö…¯¿5‹·,æ¬õºæÊò\Ô†Xf\€“ H¾}œYë瘛­cEJûO¤…Å/¡ÒZN¡‰ò0H’ap9ÇsoDj:˜ñ­òQºñûW”KóÅ%P’á¹½¼W†Uê±(Óù.†¤o~Í­f]Üüœ1Ÿ)Ó„È+ MÙíöGº­›³ô&d•k0¤[«mbƒò—ޝ¦ÄtbÓ;§½‘xÂÝÚÛ46ÅäÙŸä:PBÇ/^"ü¼åÂÊÞÈQW‘Ž0Ä(Ï…e¿u¿Ò©~£ÄÊ‹M5jNU¢Ýà-éÞ˜,9÷f¯ž+pJ‘³¤ó¾i³w’J bJõŒcýòÙ¬ˆI m&o Ý öæ´ûã’XÙ¸-‘ –QûcFRÁ'-ïHV‡¿Ê`’»³íðäE_.™ë¸â&ž›ý|T‘#Péjov Jïq2A'¤GÄé¬d’¯m `x˜²`óÝ!mùKÌÛĨeBõíòÏDÿ°HK^LäYŒ‰?è¥z½QÕ½²ç]@`È·¸ ’Æï› {B» †fÛ@¹‹®{àöÔé§Ñ‚.Ÿeø­Rçž ®ê,؃+9š2gµá“,ãM¾­îÚá÷Ôp>­+Ïãz[e,±€*·ÑÉÚñv9òœØ‘#Ç•ÍPY±§gŠ·Í£WŸ…rqvndóû E±z1Øá'eÈ[ÄùÀ§[V¨ŽðR¨9r„͹¬Äzx…Q÷ƒ;¬jÖGßv‰“D{q–¹AÐ ™|cdvö¡8Cx‰h¯f)ÆWpNEß®ÎSö3Mð^k71§Ç/S˜3‡Ñ¤£–‰/p3´tð¾G‹1ÊŸ6Fñ»à)A"8bpÔ匟‚ED¤ñ•å*W°ß„pf8C(xȲ0ŒkN??fɺõ~ ¦šÆÇÌ¢P›Ê¹ˆÂiúÔºbJ÷‘qýnml,‰C÷*{ ÞÅ+ß`.¢ÍãÍ<öYÛeqfµ2ªšóû'èjï ±Pirp[eÜÚɽ¦Í2ÛQ4“㘞֌}Û‹¨¯ë™Õýá·N«^\“Eû}>”åñ–×[™‰˜·Â›l/‰v1¸P&n>uù‚ƒ¥,—æLôù›±÷RÿšðRå.žvæÛ¬Çl{bcU긹vÀ×ÒȶÖc]Èg Ì ß ¥ö‚§ÙҹŶ™ìFüèµ–ò”i* 9Òí= ,Š¡&Êÿd×’-‡¿8*žU%µŸ¨÷r±+øW”óóú ÖŽÎL(Œ¨þôZñËúPaI¯ÊŽr= ±"¢y0WÏz®ÔðŠë* ¿–œPùkœ\¤O—ðJy¶CBÙ1失›]ž4IÎЋôCvaGñ€ìÁüéˆtmwíù¸Ñ=¯ÑƒvŒ¦t‰îŒAÜRpª®VŠ­Lä5N-—Ï+ñëfEÕ>YvBÂ#I¿ú´W ùB’ë)+X)E/ÉÈœ5é˦/¨º˜£? ?—1Φ«Dÿdþ‹ì _ï½€‡ÄT2¦ˆmß.M_Ò¤"®BS™š®r¹KËåT G>ÇŠ ùed«ŒÈ뺂ÌÛîI³¼©¡$ÓÙ;'<•–üvúçžÛÑÜ,¤÷œ¯lgXˆ L¾‚¸C¾c f•uµ±¢!¦=úwAdÞŽŒKm¢âT‡WµÈFzP¯9;“T6lKöó©F@¦y_N÷Ï㯆7àªÐ)Mºøu(báêÞ$’+ž™^Nís£Û&Æ·³¥ÿú¼ò”øTz](ÞóÞ¹Y½Ç¯ãœ/OêOñ£ßèÓªˆh„eêªGöHÝ/ ‚[Aayk,Ã?^§‡&½›ç}}Lb4Æ$HÔ“w èÜ*ýà/.Ÿ]ù`](8®¨dˆkâ•á”Xjü±"&øM±è…pýŠ:CSo Û•íªaôÀÒ1U¡}éå(|ˆÌÌ‘ª6ö½‚f“Ÿ Ë.®¬î\–5 KMÃAë §²\ I]f{¹Ú»K?¨…u‹:f̽ÅÈ ¶•ˆœ.1OÊå$izÎȉü•©0‹K}Î’ÈSwžÞûsx‚Ã"²uÏÒQi«ÐÁBË8zk™`6§Õ‚œxçM:y x•ñ |äÛ…<)Ð@"aV;ð…çe¯Úm×6&,Ç%Ë(g3¡c:4ðàÚs€ •ã0t“¸ ¯÷yÐ>ÅäMîŒÏeeÆÃE\‹‚+ÇËøó^Ô·[j$qrºf÷‰¯·²—ì^H)\²UÏÌ£Ò£{?« ù&¸øV£ÖZ’ù¼Ìˆ^xšµ"»ˆúVöñ‰…ÐϤ±·æq='_=µúÔ³§ë.º®g¼3ƒÃ=–øñlÛWòE3;&#ùÅk/zPù‚C6·üG­4-º4?­eXŠ¡é=fâð™à¢3pìØÐ?%Þ›Æ#柚̾ùe@NÇÎ=J¤ê\BŦqÐÆXS£™fÅ¥ÃÈõœuFüó¥ÀÊhZYOÀâîó^uÔ·_©ðÞ·Ç ö)öt×ù}>aÉ_v3T¦ðÇ=Ï\éÍ'ç3 <ªaZ÷`À½ ‡¨åì^-˜53·$·Un?†q4ÑZIWºuè°gšœW·ïµÏÌcG>l¤‚L¼¿ý# ûç endstream endobj 142 0 obj << /Type /FontDescriptor /FontName /QJYIOG+CMTT12 /Flags 4 /FontBBox [-1 -234 524 695] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/L/M/N/O/P/S/T/W/a/b/bracketleft/bracketright/c/colon/d/e/equal/f/four/g/h/i/k/l/m/n/o/one/p/period/q/r/s/slash/t/two/u/v/w/x/y/z) /FontFile 141 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GRRUTB+CMBX10 /FontDescriptor 120 0 R /FirstChar 65 /LastChar 117 /Widths 115 0 R >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NIHSVW+CMBX12 /FontDescriptor 122 0 R /FirstChar 12 /LastChar 122 /Widths 111 0 R >> endobj 106 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OXVUQU+CMCSC10 /FontDescriptor 124 0 R /FirstChar 46 /LastChar 122 /Widths 107 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NCDHJN+CMR10 /FontDescriptor 126 0 R /FirstChar 34 /LastChar 122 /Widths 114 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NCBOMW+CMR12 /FontDescriptor 128 0 R /FirstChar 11 /LastChar 123 /Widths 117 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DXEWFC+CMR17 /FontDescriptor 130 0 R /FirstChar 65 /LastChar 121 /Widths 118 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CEERAL+CMSY10 /FontDescriptor 132 0 R /FirstChar 0 /LastChar 121 /Widths 116 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SFHQIQ+CMSY7 /FontDescriptor 134 0 R /FirstChar 3 /LastChar 121 /Widths 113 0 R >> endobj 54 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FNZURT+CMTI10 /FontDescriptor 136 0 R /FirstChar 34 /LastChar 122 /Widths 108 0 R >> endobj 19 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WVPLPU+CMTI12 /FontDescriptor 138 0 R /FirstChar 12 /LastChar 122 /Widths 110 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VJJNXZ+CMTT10 /FontDescriptor 140 0 R /FirstChar 46 /LastChar 119 /Widths 112 0 R >> endobj 24 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QJYIOG+CMTT12 /FontDescriptor 142 0 R /FirstChar 46 /LastChar 122 /Widths 109 0 R >> endobj 11 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [2 0 R 13 0 R 17 0 R 22 0 R 26 0 R 52 0 R] >> endobj 58 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [56 0 R 60 0 R 63 0 R 66 0 R 69 0 R 72 0 R] >> endobj 77 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [75 0 R 79 0 R 82 0 R 85 0 R 88 0 R 91 0 R] >> endobj 96 0 obj << /Type /Pages /Count 4 /Parent 143 0 R /Kids [94 0 R 98 0 R 101 0 R 104 0 R] >> endobj 143 0 obj << /Type /Pages /Count 22 /Kids [11 0 R 58 0 R 77 0 R 96 0 R] >> endobj 144 0 obj << /Type /Catalog /Pages 143 0 R >> endobj 145 0 obj << /Producer (MiKTeX pdfTeX-1.40.18) /Creator (TeX) /CreationDate (D:20180518163814+02'00') /ModDate (D:20180518163814+02'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.9.6499 (1.40.18)) >> endobj xref 0 146 0000000000 65535 f 0000001289 00000 n 0000001184 00000 n 0000000015 00000 n 0000274172 00000 n 0000274031 00000 n 0000274313 00000 n 0000273460 00000 n 0000273890 00000 n 0000274454 00000 n 0000274880 00000 n 0000275166 00000 n 0000002442 00000 n 0000002334 00000 n 0000001424 00000 n 0000273602 00000 n 0000005356 00000 n 0000005248 00000 n 0000002523 00000 n 0000274737 00000 n 0000010268 00000 n 0000008332 00000 n 0000008224 00000 n 0000005460 00000 n 0000275023 00000 n 0000044782 00000 n 0000010160 00000 n 0000008437 00000 n 0000016119 00000 n 0000016237 00000 n 0000016283 00000 n 0000016543 00000 n 0000016775 00000 n 0000017023 00000 n 0000017238 00000 n 0000017581 00000 n 0000017761 00000 n 0000017978 00000 n 0000018278 00000 n 0000018428 00000 n 0000018646 00000 n 0000018972 00000 n 0000019142 00000 n 0000027745 00000 n 0000027765 00000 n 0000036499 00000 n 0000036519 00000 n 0000044699 00000 n 0000044719 00000 n 0000044740 00000 n 0000044761 00000 n 0000048167 00000 n 0000048059 00000 n 0000044890 00000 n 0000274594 00000 n 0000052264 00000 n 0000052156 00000 n 0000048305 00000 n 0000275275 00000 n 0000055023 00000 n 0000054915 00000 n 0000052378 00000 n 0000058484 00000 n 0000058376 00000 n 0000055150 00000 n 0000062643 00000 n 0000062535 00000 n 0000058611 00000 n 0000066376 00000 n 0000066268 00000 n 0000062758 00000 n 0000069914 00000 n 0000069806 00000 n 0000066491 00000 n 0000072860 00000 n 0000072752 00000 n 0000070041 00000 n 0000275385 00000 n 0000075305 00000 n 0000075197 00000 n 0000072975 00000 n 0000079108 00000 n 0000079000 00000 n 0000075398 00000 n 0000082635 00000 n 0000082527 00000 n 0000079258 00000 n 0000085845 00000 n 0000085737 00000 n 0000082750 00000 n 0000089431 00000 n 0000089323 00000 n 0000085972 00000 n 0000092934 00000 n 0000092826 00000 n 0000089569 00000 n 0000275495 00000 n 0000096058 00000 n 0000095950 00000 n 0000093049 00000 n 0000098526 00000 n 0000098415 00000 n 0000096185 00000 n 0000100538 00000 n 0000100427 00000 n 0000098619 00000 n 0000273745 00000 n 0000100657 00000 n 0000101133 00000 n 0000101668 00000 n 0000102149 00000 n 0000102664 00000 n 0000103305 00000 n 0000103620 00000 n 0000104361 00000 n 0000104861 00000 n 0000105186 00000 n 0000105886 00000 n 0000106504 00000 n 0000106861 00000 n 0000119040 00000 n 0000119297 00000 n 0000135046 00000 n 0000135389 00000 n 0000147436 00000 n 0000147708 00000 n 0000168737 00000 n 0000169207 00000 n 0000189489 00000 n 0000189967 00000 n 0000200255 00000 n 0000200509 00000 n 0000208549 00000 n 0000208823 00000 n 0000216197 00000 n 0000216436 00000 n 0000234575 00000 n 0000234957 00000 n 0000251823 00000 n 0000252169 00000 n 0000263164 00000 n 0000263418 00000 n 0000273097 00000 n 0000275593 00000 n 0000275675 00000 n 0000275728 00000 n trailer << /Size 146 /Root 144 0 R /Info 145 0 R /ID [<334DB30DBBEC7CF51097860A063DCF45> <334DB30DBBEC7CF51097860A063DCF45>] >> startxref 275951 %%EOF pyutilib-6.0.0/doc/plugin/pca.tex000066400000000000000000000054301367314503500167170ustar00rootroot00000000000000% NOTES: % % . Search for TODOs in the text for issues that need to be % resolved. % % . This is currently in a book format. This format makes sense for an overview % document, but if we prepare a journal article we'll need to switch to an article % format. % % TODO: should we stick with LaTeX documentation? It might make sense % to migrate to reStructured text, since that is a Python standard and % since it can generate LaTeX. We'll have to decide that sometime soon. \documentclass[12pt]{article} \usepackage{fullpage} %\usepackage{secdot} \usepackage[authoryear]{natbib} \usepackage{listings} \usepackage{url} \usepackage[usenames]{color} \bibpunct{[}{]}{,}{n}{}{} \usepackage{graphicx} %%\usepackage{helvet} %%\usepackage{courier} %%\usepackage{makeidx} %%\usepackage{multicol} %%\usepackage{mathptmx} %%%\usepackage{type1cm} %%%\usepackage[bottom]{footmisc} %%%\usepackage{footmisc} %%%\usepackage{amsfonts,amsmath,graphicx,subfigure} \include{macros} \begin{document} \title{The PyUtilib Component Architecture} \author{William E.\ Hart\footnote{Sandia National Laboratories, Discrete Math and Complex Systems Department, PO Box 5800, Albuquerque, NM 87185; {\tt wehart@sandia.gov}} \and John Siirola\footnote{Sandia National Laboratories, Exploratory Simulation Technologies Department, PO Box 5800, Albuquerque, NM 87185; {\tt jdsiiro@sandia.gov}} } \date{\today} \maketitle \begin{abstract} We describe the PyUtilib Component Architecture (\pca), which has been substantially revised for the PyUtilib 4.0 release. The design of \pcasp is inspired by the Trac component architecture, and it supports advanced features like non-singleton components, namespaces and caching of component interactions. The \pcasp includes an independent, self-contained framework core that can be easily integrated into other applications, as well as a variety of extension packages with commonly used components. \end{abstract} \lstset{language=Python} \definecolor{light-gray}{gray}{0.9} \lstset{backgroundcolor=\color{light-gray}} \lstset{aboveskip=1em,belowskip=1em,showspaces=false,showstringspaces=false} \newpage \tableofcontents \newpage \input{pca-intro} \input{pca-core} \input{pca-extensions} \input{pca-disc} \section*{Acknowledgements} We thank Jean-Paul Watson for feedback on the design of the PyUtilib Component Architecture. This work was supported by the Laboratory Directed Research and Development program at Sandia National Laboratories. Sandia National Laboratories is a multi-program laboratory operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin company, for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-AC04-94AL85000. %\appendix %\include{pca-deploy} \bibliographystyle{siam} \bibliography{coopr} \end{document} pyutilib-6.0.0/doc/plugin/snllineblk.eps000077500000000000000000001542121367314503500203060ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(TM) 6.0 %%AI8_CreatorVersion: 8.0.1 %%For: (Shannon Whitehead) (Sandia National Laboratories) %%Title: (snllineblk.eps) %%CreationDate: (5/5/00) (11:19 AM) %%BoundingBox: 178 243 419 281 %%HiResBoundingBox: 178.4834 243.4766 418.7407 280.0811 %%DocumentProcessColors: Black %%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 %%+ procset Adobe_ColorImage_AI6 1.1 0 %%+ procset Adobe_Illustrator_AI5 1.0 0 %AI5_FileFormat 2.0 %AI3_ColorUsage: Black&White %%CMYKCustomColor: 0 0.23 0.38 0 (PANTONE 473 CV) %%+ 1 0.51 0 0.305 (PANTONE 541 CV) %%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) %%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 %%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 30 31 582 761 %AI3_DocumentPreview: Macintosh_ColorPic %AI5_ArtSize: 612 792 %AI5_RulerUnits: 2 %AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI5_OpenToView: -270 804 1 1146 827 18 0 1 3 40 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:30 31 %%AI3_PaperRect:-30 761 582 -31 %%AI3_Margin:30 -31 -30 31 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_level2_AI5 1.2 0 %%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) %%Version: 1.2 0 %%CreationDate: (04/10/93) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_level2_AI5 26 dict dup begin put /packedarray where not { userdict begin /packedarray { array astore readonly } bind def /setpacking /pop load def /currentpacking false def end 0 } if pop userdict /defaultpacking currentpacking put true setpacking /initialize { Adobe_level2_AI5 begin } bind def /terminate { currentdict Adobe_level2_AI5 eq { end } if } bind def mark /setcustomcolor where not { /findcmykcustomcolor { (AI8_CMYK_CustomColor) 6 packedarray } bind def /findrgbcustomcolor { (AI8_RGB_CustomColor) 5 packedarray } bind def /setcustomcolor { exch aload pop dup (AI8_CMYK_CustomColor) eq { pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } { dup (AI8_RGB_CustomColor) eq { pop pop 3 { 1 exch sub 3 index mul 1 exch sub 3 1 roll } repeat 4 -1 roll pop setrgbcolor } { pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } ifelse } ifelse } def } if /setAIseparationgray { false setoverprint 0 setgray /setseparationgray where{ pop setseparationgray }{ /setcolorspace where{ pop [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace 1 exch sub setcolor }{ setgray }ifelse }ifelse } def /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put userdict /level2? systemdict /languagelevel known dup { pop systemdict /languagelevel get 2 ge } if put /level2ScreenFreq { begin 60 HalftoneType 1 eq { pop Frequency } if HalftoneType 2 eq { pop GrayFrequency } if HalftoneType 5 eq { pop Default level2ScreenFreq } if end } bind def userdict /currentScreenFreq level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put level2? not { /setcmykcolor where not { /setcmykcolor { exch .11 mul add exch .59 mul add exch .3 mul add 1 exch sub setgray } def } if /currentcmykcolor where not { /currentcmykcolor { 0 0 0 1 currentgray sub } def } if /setoverprint where not { /setoverprint /pop load def } if /selectfont where not { /selectfont { exch findfont exch dup type /arraytype eq { makefont } { scalefont } ifelse setfont } bind def } if /cshow where not { /cshow { [ 0 0 5 -1 roll aload pop ] cvx bind forall } bind def } if } if cleartomark /anyColor? { add add add 0 ne } bind def /testColor { gsave setcmykcolor currentcmykcolor grestore } bind def /testCMYKColorThrough { testColor anyColor? } bind def userdict /composite? 1 0 0 0 testCMYKColorThrough 0 1 0 0 testCMYKColorThrough 0 0 1 0 testCMYKColorThrough 0 0 0 1 testCMYKColorThrough and and and put composite? not { userdict begin gsave /cyan? 1 0 0 0 testCMYKColorThrough def /magenta? 0 1 0 0 testCMYKColorThrough def /yellow? 0 0 1 0 testCMYKColorThrough def /black? 0 0 0 1 testCMYKColorThrough def grestore /isCMYKSep? cyan? magenta? yellow? black? or or or def /customColor? isCMYKSep? not def end } if end defaultpacking setpacking %%EndResource %%BeginProcSet: Adobe_ColorImage_AI6 1.2 0 userdict /Adobe_ColorImage_AI6 known not { userdict /Adobe_ColorImage_AI6 50 dict put } if userdict /Adobe_ColorImage_AI6 get begin /initialize { Adobe_ColorImage_AI6 begin Adobe_ColorImage_AI6 { dup type /arraytype eq { dup xcheck { bind } if } if pop pop } forall } def /terminate { end } def currentdict /Adobe_ColorImage_AI6_Vars known not { /Adobe_ColorImage_AI6_Vars 40 dict def } if Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /_newproc null def /_proc1 null def /_proc2 null def /channelcount 0 def /sourcecount 0 def /sourcearray 4 array def /_ptispace null def /_ptiname null def /_pti0 0 def /_pti1 0 def /_ptiproc null def /_ptiscale 0 def /_pticomps 0 def /_ptibuf 0 string def /_gtigray 0 def /_cticmyk null def /_rtirgb null def /XIEnable true def /XIType 0 def /XIEncoding 0 def /XICompression 0 def /XIChannelCount 0 def /XIBitsPerPixel 0 def /XIImageHeight 0 def /XIImageWidth 0 def /XIImageMatrix null def /XIRowBytes 0 def /XIFile null def /XIBuffer1 null def /XIBuffer2 null def /XIDataProc null def /XIVersion 6 def /XIColorSpace /DeviceGray def /XIColorValues 0 def end currentdict /_colorimage known not { /colorimage where { /colorimage get /_colorimage exch def }{ /_colorimage null def } ifelse } if /_image systemdict /image get def /_currenttransfer systemdict /currenttransfer get def /FourEqual { 4 index ne { pop pop pop false }{ 4 index ne { pop pop false }{ 4 index ne { pop false }{ 4 index eq } ifelse } ifelse } ifelse } def /TestPlateIndex { Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /setcmykcolor where { pop gsave 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub grestore 1 0 0 0 FourEqual { /plateindex 0 def }{ 0 1 0 0 FourEqual { /plateindex 1 def }{ 0 0 1 0 FourEqual { /plateindex 2 def }{ 0 0 0 1 FourEqual { /plateindex 3 def }{ 0 0 0 0 FourEqual { /plateindex 5 def } if } ifelse } ifelse } ifelse } ifelse pop pop pop pop } if plateindex end } def /concatprocs { /packedarray where { pop dup type /packedarraytype eq 2 index type /packedarraytype eq or }{ false } ifelse { /_proc2 exch cvlit def /_proc1 exch cvlit def _proc1 aload pop _proc2 aload pop _proc1 length _proc2 length add packedarray cvx }{ /_proc2 exch cvlit def /_proc1 exch cvlit def /_newproc _proc1 length _proc2 length add array def _newproc 0 _proc1 putinterval _newproc _proc1 length _proc2 putinterval _newproc cvx } ifelse } def /clrspaceissepn { type /arraytype eq } def /clrspacegetname { dup clrspaceissepn {dup length 2 sub get}{pop ()} ifelse } def /clrspacegetalt { aload pop pop pop colormake } def /clrspacegetcomps { dup /DeviceGray eq { pop 1 }{ dup /DeviceRGB eq { pop 3 }{ /DeviceCMYK eq { 4 }{ 1 } ifelse } ifelse } ifelse } def /clrspacemarksplate { dup /DeviceGray eq { pop plateindex 3 eq }{ dup /DeviceRGB eq { pop plateindex 5 ne }{ dup /DeviceCMYK eq { pop plateindex 5 ne }{ /findcmykcustomcolor where { pop dup length 2 sub get 0.1 0.1 0.1 0.1 5 -1 roll findcmykcustomcolor 1 setcustomcolor systemdict /currentgray get exec 1 ne }{ pop plateindex 5 ne } ifelse } ifelse } ifelse } ifelse } def /colormake { dup clrspacegetcomps exch 1 index 2 add 1 roll dup 1 eq {pop}{array astore} ifelse exch } def /colorexpand { dup clrspacegetname exch dup clrspaceissepn { clrspacegetalt exch 4 1 roll }{ 1 3 1 roll } ifelse } def /colortint { dup /DeviceGray eq { 3 1 roll 1 exch sub mul 1 exch sub exch }{ dup /DeviceRGB eq { 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch }{ dup /DeviceCMYK eq { 3 1 roll {1 index mul exch} forall pop 4 array astore exch }{ 3 1 roll mul exch } ifelse } ifelse } ifelse } def /colortocmyk { dup /DeviceGray eq { pop 1 exch sub 0 0 0 4 -1 roll 4 array astore }{ dup /DeviceRGB eq { pop aload pop _rgbtocmyk 4 array astore }{ dup /DeviceCMYK eq { pop }{ clrspacegetalt colortint colortocmyk } ifelse } ifelse } ifelse } def /makeimagedict { 7 dict begin /ImageType 1 def /Decode exch def /DataSource exch def /ImageMatrix exch def /BitsPerComponent exch def /Height exch def /Width exch def currentdict end } def /stringinvert { 0 1 2 index length 1 sub { dup 2 index exch get 255 exch sub 2 index 3 1 roll put } for } def /stringknockout { 0 1 2 index length 1 sub { 255 2 index 3 1 roll put } for } def /stringapply { 0 1 4 index length 1 sub { dup 4 index exch get 3 index 3 1 roll 3 index exec } for pop exch pop } def /WalkRGBString { 0 3 index dup length 1 sub 0 3 3 -1 roll { 3 getinterval {} forall 5 index exec 3 index } for 5 {pop} repeat } def /WalkCMYKString { 0 3 index dup length 1 sub 0 4 3 -1 roll { 4 getinterval {} forall 6 index exec 3 index } for 5 { pop } repeat } def /StuffRGBIntoGrayString { .11 mul exch .59 mul add exch .3 mul add cvi 3 copy put pop 1 add } def /StuffCMYKIntoGrayString { exch .11 mul add exch .59 mul add exch .3 mul add dup 255 gt { pop 255 } if 255 exch sub cvi 3 copy put pop 1 add } def /RGBToGrayImageProc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec dup length 3 idiv string dup 3 1 roll /StuffRGBIntoGrayString load exch WalkRGBString end } def /CMYKToGrayImageProc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec dup length 4 idiv string dup 3 1 roll /StuffCMYKIntoGrayString load exch WalkCMYKString end } def /SeparateCMYKImageProc { Adobe_ColorImage_AI6_Vars begin sourcecount 0 ne { sourcearray plateindex get exec }{ sourcearray 0 get exec dup length 4 idiv string 0 2 index plateindex 4 2 index length 1 sub { get 255 exch sub 3 copy put pop 1 add 2 index } for pop pop exch pop } ifelse end } def /ColorImageCompositeEmulator { pop true eq { Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat }{ Adobe_ColorImage_AI6_Vars /channelcount get 1 ne { Adobe_ColorImage_AI6_Vars begin sourcearray 0 3 -1 roll put channelcount 3 eq {/RGBToGrayImageProc}{/CMYKToGrayImageProc} ifelse load end } if image } ifelse } def /colorimage { Adobe_ColorImage_AI6_Vars begin /channelcount 1 index def /sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def 4 sourcecount add index end dup 8 eq exch 1 eq or not { /_colorimage load null ne { _colorimage }{ Adobe_ColorImage_AI6_Vars /sourcecount get 7 add { pop } repeat } ifelse }{ dup 3 eq TestPlateIndex dup -1 eq exch 5 eq or or { /_colorimage load null eq { ColorImageCompositeEmulator }{ dup 1 eq { pop pop image }{ Adobe_ColorImage_AI6_Vars /plateindex get 5 eq { gsave 0 _currenttransfer exec 1 _currenttransfer exec eq { 0 _currenttransfer exec 0.5 lt } { 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse { { pop 0 } } { { pop 1 } } ifelse systemdict /settransfer get exec } if _colorimage Adobe_ColorImage_AI6_Vars /plateindex get 5 eq { grestore } if } ifelse } ifelse }{ dup 1 eq { pop pop image }{ pop pop Adobe_ColorImage_AI6_Vars begin sourcecount -1 0 { exch sourcearray 3 1 roll put } for /SeparateCMYKImageProc load end systemdict /image get exec } ifelse } ifelse } ifelse } def /proctintimage { /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store /_pticomps _ptispace clrspacegetcomps store /_ptiscale _pti1 _pti0 sub store level2? { _ptiname length 0 gt version cvr 2012 ge and { [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace [_pti0 _pti1] makeimagedict _image }{ [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace [0 255] makeimagedict _image } ifelse }{ _pticomps 1 eq { { dup { 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put } stringapply } concatprocs _image }{ { dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse _ptibuf { exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc _pticomps 2 add -2 roll _pticomps 1 sub -1 0 { 1 index add 2 index exch 5 -1 roll 255 mul cvi put } for pop pop } stringapply } concatprocs false _pticomps /_colorimage load null eq {7 {pop} repeat}{_colorimage} ifelse } ifelse } ifelse } def /graytintimage { /_gtigray 5 -1 roll store {1 _gtigray sub mul 1 exch sub} 4 1 roll /DeviceGray proctintimage } def /cmyktintimage { /_cticmyk 5 -1 roll store {_cticmyk {1 index mul exch} forall pop} 4 1 roll /DeviceCMYK proctintimage } def /rgbtintimage { /_rtirgb 5 -1 roll store {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll /DeviceRGB proctintimage } def /tintimage { TestPlateIndex -1 eq { colorexpand 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll dup /DeviceGray eq { pop graytintimage }{ dup /DeviceRGB eq { pop rgbtintimage }{ pop cmyktintimage } ifelse } ifelse }{ dup clrspacemarksplate { plateindex 5 lt { colortocmyk plateindex get 1 exch sub exch {1 0}{0 1} ifelse () graytintimage }{ pop exch {0}{0 exch} ifelse 0 3 1 roll () graytintimage } ifelse }{ pop pop pop {pop 1} 0 1 () /DeviceGray proctintimage } ifelse } ifelse } def /XINullImage { } def /XIImageMask { XIImageWidth XIImageHeight false [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load imagemask } def /XIImageTint { 0 setgray XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load XIType 3 eq XIColorValues XIColorSpace tintimage } def /XIImage { 0 setgray XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load XIChannelCount 1 eq {image}{false XIChannelCount colorimage} ifelse } def /XG { pop pop } def /XF { 13 {pop} repeat } def /Xh { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def /XIImageHeight exch def /XIImageWidth exch def /XIImageMatrix exch def 0 0 moveto XIImageMatrix concat XIImageWidth XIImageHeight scale XIType 1 eq { /_lp /null ddef _fc /_lp /imagemask ddef } if /XIVersion 7 def end } def /XH { Adobe_ColorImage_AI6_Vars begin /XIVersion 6 def grestore end } def /XIEnable { Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put } def /XC { Adobe_ColorImage_AI6_Vars begin colormake /XIColorSpace exch def /XIColorValues exch def end } def /XI { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def cvi dup 256 idiv /XICompression exch store 256 mod /XIEncoding exch store pop pop /XIChannelCount exch def /XIBitsPerPixel exch def /XIImageHeight exch def /XIImageWidth exch def pop pop pop pop /XIImageMatrix exch def XIBitsPerPixel 1 eq { XIImageWidth 8 div ceiling cvi }{ XIImageWidth XIChannelCount mul } ifelse /XIRowBytes exch def XIEncoding 0 ne XIVersion 6 le and { currentfile 128 string readline pop pop } if XICompression 0 eq { /XIBuffer1 XIRowBytes string def XIEncoding 0 eq { {currentfile XIBuffer1 readhexstring pop} }{ {currentfile XIBuffer1 readstring pop} } ifelse }{ /XIBuffer1 256 string def /XIBuffer2 XIRowBytes string def {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} /ASCIIHexDecode filter /DCTDecode filter /XIFile exch def {XIFile XIBuffer2 readstring pop} } ifelse /XIDataProc exch def XIVersion 6 le { 0 0 moveto XIImageMatrix concat XIImageWidth XIImageHeight scale XIType 1 eq { /_lp /null ddef _fc /_lp /imagemask ddef } if } if XIEnable { XIType 1 eq { XIImageMask }{ XIType 2 eq XIType 3 eq or { XIImageTint }{ XIImage } ifelse } ifelse }{ XINullImage } ifelse grestore end } def end %%EndProcSet %%BeginResource: procset Adobe_Illustrator_AI5 1.1 0 %%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog) %%Version: 1.1 0 %%CreationDate: (3/7/1994) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin put /_eo false def /_lp /none def /_pf { } def /_ps { } def /_psf { } def /_pss { } def /_pjsf { } def /_pjss { } def /_pola 0 def /_doClip 0 def /cf currentflat def /_tm matrix def /_renderStart [ /e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 ] def /_renderEnd [ null null null null /i1 /i1 /i1 /i1 ] def /_render -1 def /_rise 0 def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [ 0 0 ] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fScl 0 def /_cnt 0 def /_hs 1 def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /_tDict 2 dict def /_wv 0 def /Tx { } def /Tj { } def /CRender { } def /_AI3_savepage { } def /_gf null def /_cf 4 array def /_if null def /_of false def /_fc { } def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc { } def /_pd 1 dict def /_ed 15 dict def /_pm matrix def /_fm null def /_fd null def /_fdd null def /_sm null def /_sd null def /_sdd null def /_i null def /discardSave null def /buffer 256 string def /beginString null def /endString null def /endStringLength null def /layerCnt 1 def /layerCount 1 def /perCent (%) 0 get def /perCentSeen? false def /newBuff null def /newBuffButFirst null def /newBuffLast null def /clipForward? false def end userdict /Adobe_Illustrator_AI5 known not { userdict /Adobe_Illustrator_AI5 91 dict put } if userdict /Adobe_Illustrator_AI5 get begin /initialize { Adobe_Illustrator_AI5 dup begin Adobe_Illustrator_AI5_vars begin discardDict { bind pop pop } forall dup /nc get begin { dup xcheck 1 index type /operatortype ne and { bind } if pop pop } forall end newpath } def /terminate { end end } def /_ null def /ddef { Adobe_Illustrator_AI5_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /sw { dup length exch stringwidth exch 5 -1 roll 3 index mul add 4 1 roll 3 1 roll mul add } def /swj { dup 4 1 roll dup length exch stringwidth exch 5 -1 roll 3 index mul add 4 1 roll 3 1 roll mul add 6 2 roll /_cnt 0 ddef { 1 index eq { /_cnt _cnt 1 add ddef } if } forall pop exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop } def /ss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def /jss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put gsave _sp eq { exch 6 index 6 index 6 index 5 -1 roll widthshow currentpoint } { false charpath currentpoint 4 index setmatrix stroke } ifelse grestore moveto 2 copy rmoveto } exch cshow 6 npop } def /sp { { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def /jsp { { 2 npop (0) exch 2 copy 0 exch put _sp eq { exch 5 index 5 index 5 index 5 -1 roll widthshow } { false charpath } ifelse 2 copy rmoveto } exch cshow 5 npop } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf { } def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /XR { 0 ne /_eo exch ddef } def /H { } def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq { _eo {eoclip} {clip} ifelse /_doClip 0 ddef } if newpath } { /CRender { N } ddef } ifelse } def /n { N } def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf } ifelse } { /CRender { F } ddef } ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps } ifelse } { /CRender { S } ddef } ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { S } ifelse } { /CRender { B } ddef } ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type /stringtype eq { pop } if } if newpath } def /u { } def /U { } def /q { _pola 0 eq { gsave } if } def /Q { _pola 0 eq { grestore } if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq { CRender } if } def /D { pop } def /*w { } def /*W { } def /` { /_i save ddef clipForward? { nulldevice } if 6 1 roll 4 npop concat pop userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash /setstrokeadjust where {pop false setstrokeadjust} if newpath 0 setgray false setoverprint } def /~ { end _i restore } def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /A { pop } def /annotatepage { userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse } def /XT { pop pop } def /discard { save /discardSave exch store discardDict begin /endString exch store gt38? { 2 add } if load stopped pop end discardSave restore } bind def userdict /discardDict 7 dict dup begin put /pre38Initialize { /endStringLength endString length store /newBuff buffer 0 endStringLength getinterval store /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store /newBuffLast newBuff endStringLength 1 sub 1 getinterval store } def /shiftBuffer { newBuff 0 newBuffButFirst putinterval newBuffLast 0 currentfile read not { stop } if put } def 0 { pre38Initialize mark currentfile newBuff readstring exch pop { { newBuff endString eq { cleartomark stop } if shiftBuffer } loop } { stop } ifelse } def 1 { pre38Initialize /beginString exch store mark currentfile newBuff readstring exch pop { { newBuff beginString eq { /layerCount dup load 1 add store } { newBuff endString eq { /layerCount dup load 1 sub store layerCount 0 eq { cleartomark stop } if } if } ifelse shiftBuffer } loop } if } def 2 { mark { currentfile buffer readline not { stop } if endString eq { cleartomark stop } if } loop } def 3 { /beginString exch store /layerCnt 1 store mark { currentfile buffer readline not { stop } if dup beginString eq { pop /layerCnt dup load 1 add store } { endString eq { layerCnt 1 eq { cleartomark stop } { /layerCnt dup load 1 sub store } ifelse } if } ifelse } loop } def end userdict /clipRenderOff 15 dict dup begin put { /n /N /s /S /f /F /b /B } { { _doClip 1 eq { /_doClip 0 ddef _eo {eoclip} {clip} ifelse } if newpath } def } forall /Tr /pop load def /Bb {} def /BB /pop load def /Bg {12 npop} def /Bm {6 npop} def /Bc /Bm load def /Bh {4 npop} def end /Lb { 4 npop 6 1 roll pop 4 1 roll pop pop pop 0 eq { 0 eq { (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard } { /clipForward? true def /Tx /pop load def /Tj /pop load def currentdict end clipRenderOff begin begin } ifelse } { 0 eq { save /discardSave exch store } if } ifelse } bind def /LB { discardSave dup null ne { restore } { pop clipForward? { currentdict end end begin /clipForward? false ddef } if } ifelse } bind def /Pb { pop pop 0 (%AI5_EndPalette) discard } bind def /Np { 0 (%AI5_End_NonPrinting--) discard } bind def /Ln /pop load def /Ap /pop load def /Ar { 72 exch div 0 dtransform dup mul exch dup mul add sqrt dup 1 lt { pop 1 } if setflat } def /Mb { q } def /Md { } def /MB { Q } def /nc 3 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end end setpacking %%EndResource %%EndProlog %%BeginSetup Adobe_level2_AI5 /initialize get exec Adobe_ColorImage_AI6 /initialize get exec Adobe_Illustrator_AI5 /initialize get exec %AI5_Begin_NonPrinting Np %AI3_BeginPattern: (Yellow Stripe) (Yellow Stripe) 8.4499 4.6 80.4499 76.6 [ %AI3_Tile (0 O 0 R 0 0.4 1 0 k 0 0.4 1 0 K ) @ ( %AI6_BeginPatternLayer 800 Ar 0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D 0 XR 8.1999 8.1999 m 80.6999 8.1999 L S 8.1999 22.6 m 80.6999 22.6 L S 8.1999 37.0001 m 80.6999 37.0001 L S 8.1999 51.3999 m 80.6999 51.3999 L S 8.1999 65.8 m 80.6999 65.8 L S 8.1999 15.3999 m 80.6999 15.3999 L S 8.1999 29.8 m 80.6999 29.8 L S 8.1999 44.1999 m 80.6999 44.1999 L S 8.1999 58.6 m 80.6999 58.6 L S 8.1999 73.0001 m 80.6999 73.0001 L S %AI6_EndPatternLayer ) & ] E %AI3_EndPattern %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np 3 Bn %AI5_BeginGradient: (Black & White) (Black & White) 0 2 Bd [ 0 0 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 1 %_Br [ 0 0 50 100 %_Bs 1 0 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Red & Yellow) (Red & Yellow) 0 2 Bd [ 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < FFFFFEFEFDFDFDFCFCFBFBFBFAFAF9F9F9F8F8F7F7F7F6F6F5F5F5F4F4F3F3F3F2F2F1F1F1F0F0EF EFEFEEEEEDEDEDECECEBEBEBEAEAE9E9E9E8E8E7E7E7E6E6E5E5E5E4E4E3E3E3E2E2E1E1E1E0E0DF DFDFDEDEDDDDDDDCDCDBDBDBDADAD9D9D9D8D8D7D7D7D6D6D5D5D5D4D4D3D3D3D2D2D1D1D1D0D0CF CFCFCECECDCDCDCCCCCBCBCBCACAC9C9C9C8C8C7C7C7C6C6C5C5C5C4C4C3C3C3C2C2C1C1C1C0C0BF BFBFBEBEBDBDBDBCBCBBBBBBBABAB9B9B9B8B8B7B7B7B6B6B5B5B5B4B4B3B3B3B2B2B1B1B1B0B0AF AFAFAEAEADADADACACABABABAAAAA9A9A9A8A8A7A7A7A6A6A5A5A5A4A4A3A3A3A2A2A1A1A1A0A09F 9F9F9E9E9D9D9D9C9C9B9B9B9A9A9999 > 0 1 %_Br [ 0 1 0.6 0 1 50 100 %_Bs 0 0 1 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow & Blue Radial) (Yellow & Blue Radial) 1 2 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A8A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666564646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_Bs 1 1 0 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb 1 1 1 1 k Pc 1 g Pc 0 g Pc 0 0 0 0 k Pc 0.75 g Pc 0.5 g Pc 0.25 g Pc 0 g Pc Bb 2 (Black & White) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0.25 0 0 0 k Pc 0.5 0 0 0 k Pc 0.75 0 0 0 k Pc 1 0 0 0 k Pc 0.25 0.25 0 0 k Pc 0.5 0.5 0 0 k Pc 0.75 0.75 0 0 k Pc 1 1 0 0 k Pc Bb 2 (Red & Yellow) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0.25 0 0 k Pc 0 0.5 0 0 k Pc 0 0.75 0 0 k Pc 0 1 0 0 k Pc 0 0.25 0.25 0 k Pc 0 0.5 0.5 0 k Pc 0 0.75 0.75 0 k Pc 0 1 1 0 k Pc Bb 0 0 0 0 Bh 2 (Yellow & Blue Radial) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0 0.25 0 k Pc 0 0 0.5 0 k Pc 0 0 0.75 0 k Pc 0 0 1 0 k Pc 0.25 0 0.25 0 k Pc 0.5 0 0.5 0 k Pc 0.75 0 0.75 0 k Pc 1 0 1 0 k Pc (Yellow Stripe) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc 0.25 0.125 0 0 k Pc 0.5 0.25 0 0 k Pc 0.75 0.375 0 0 k Pc 1 0.5 0 0 k Pc 0.125 0.25 0 0 k Pc 0.25 0.5 0 0 k Pc 0.375 0.75 0 0 k Pc 0.5 1 0 0 k Pc 0 0 0 0 k Pc 0 0.25 0.125 0 k Pc 0 0.5 0.25 0 k Pc 0 0.75 0.375 0 k Pc 0 1 0.5 0 k Pc 0 0.125 0.25 0 k Pc 0 0.25 0.5 0 k Pc 0 0.375 0.75 0 k Pc 0 0.5 1 0 k Pc 0 0 0 0 k Pc 0.125 0 0.25 0 k Pc 0.25 0 0.5 0 k Pc 0.375 0 0.75 0 k Pc 0.5 0 1 0 k Pc 0.25 0 0.125 0 k Pc 0.5 0 0.25 0 k Pc 0.75 0 0.375 0 k Pc 1 0 0.5 0 k Pc 0 0 0 0 k Pc 0.25 0.125 0.125 0 k Pc 0.5 0.25 0.25 0 k Pc 0.75 0.375 0.375 0 k Pc 1 0.5 0.5 0 k Pc 0.25 0.25 0.125 0 k Pc 0.5 0.5 0.25 0 k Pc 0.75 0.75 0.375 0 k Pc 1 1 0.5 0 k Pc 0 0 0 0 k Pc 0.125 0.25 0.125 0 k Pc 0.25 0.5 0.25 0 k Pc 0.375 0.75 0.375 0 k Pc 0.5 1 0.5 0 k Pc 0.125 0.25 0.25 0 k Pc 0.25 0.5 0.5 0 k Pc 0.375 0.75 0.75 0 k Pc 0.5 1 1 0 k Pc 0 0 0 0 k Pc 0.125 0.125 0.25 0 k Pc 0.25 0.25 0.5 0 k Pc 0.375 0.375 0.75 0 k Pc 0.5 0.5 1 0 k Pc 0.25 0.125 0.25 0 k Pc 0.5 0.25 0.5 0 k Pc 0.75 0.375 0.75 0 k Pc 1 0.5 1 0 k Pc 0 0.23 0.38 0 (PANTONE 473 CV) 0 x Pc 1 0.51 0 0.305 (PANTONE 541 CV) 0 x Pc PB %AI5_EndPalette %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 0 79 128 255 Lb (Layer 1) Ln 0 A u u u 0 O 0 g 800 Ar 0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D 0 XR 392.1587 259.1909 m 392.1616 258.791 392.1631 258.4092 392.1631 258.0791 c 392.1636 257.3091 392.1558 256.8057 392.1494 256.0293 c 392.1411 254.9805 391.8071 254.2759 390.6636 254.2563 c 389.5205 254.2363 389.1348 254.9541 389.1431 256.0034 c 389.1553 257.5264 389.168 258.9014 389.1636 260.6362 c 389.1602 262.3579 389.9941 262.5522 390.5205 262.561 c 391.4072 262.5767 392.1289 262.4219 392.146 260.7002 c 392.1509 260.2144 392.1558 259.689 392.1587 259.1909 C 394.4048 259.2397 L 394.3916 260.1152 394.3525 260.9395 394.2832 261.3379 c 393.9214 263.4272 392.3955 264.1426 390.52 264.1177 c 388.6445 264.0928 387.3438 263.3398 387.0376 261.2417 c 386.8818 260.1714 386.8687 256.562 387.1045 255.2422 c 387.3525 253.855 388.4365 252.6577 390.6719 252.6875 c 392.9072 252.7173 394.1133 253.832 394.272 255.4272 c 394.3486 256.1963 394.3999 257.1206 394.4087 258.23 c 394.4111 258.5596 394.4102 258.9033 394.4048 259.2397 C 392.1587 259.1909 L f U U u u 365.3804 259.1909 m 365.3828 258.791 365.3843 258.4092 365.3848 258.0791 c 365.3848 257.3091 365.3774 256.8057 365.3711 256.0293 c 365.3628 254.9805 365.0288 254.2759 363.8853 254.2563 c 362.7422 254.2363 362.3564 254.9541 362.3647 256.0034 c 362.377 257.5264 362.3896 258.9014 362.3853 260.6362 c 362.3813 262.3579 363.2158 262.5522 363.7422 262.561 c 364.6289 262.5767 365.3506 262.4219 365.3677 260.7002 c 365.3726 260.2144 365.377 259.689 365.3804 259.1909 C 367.6265 259.2397 L 367.6133 260.1152 367.5737 260.9395 367.5049 261.3379 c 367.1431 263.4272 365.6172 264.1426 363.7417 264.1177 c 361.8657 264.0928 360.5654 263.3398 360.2593 261.2417 c 360.103 260.1714 360.0898 256.562 360.3262 255.2422 c 360.5742 253.855 361.6582 252.6577 363.8936 252.6875 c 366.1289 252.7173 367.335 253.832 367.4932 255.4272 c 367.5698 256.1963 367.6211 257.1206 367.6299 258.23 c 367.6328 258.5596 367.6318 258.9033 367.6265 259.2397 C 365.3804 259.1909 L f U U u u u u 380.6807 257.7373 m 380.668 258.792 380.6577 259.8726 380.6577 260.7695 c 380.6577 262.8638 379.5527 264.1997 377.1758 264.1997 c 374.645 264.1997 373.54 262.9795 373.6558 260.7954 C 375.8652 260.7954 l 375.917 261.7847 375.7754 262.6836 377.0986 262.6836 c 378.4224 262.6836 378.3706 261.7847 378.4351 260.8081 c 378.4902 259.9746 378.4351 259.8315 y 376.5718 259.7676 375.4546 259.3818 v 374.3364 258.9966 373.4243 258.2129 373.4243 256.2212 c 373.4243 254.5 373.772 252.8311 376.0068 252.688 c 377.2144 252.6108 378.0366 253.3691 378.3838 253.7803 c 378.4995 253.7803 378.6152 252.8809 V 380.7607 252.8809 l 380.6724 254.9648 380.6768 257.1255 V 378.4644 257.0962 L 378.458 256.8721 378.4448 256.6455 378.4224 256.4395 c 378.3325 255.6177 378.0752 254.4609 376.752 254.4609 c 375.4287 254.4609 375.5186 255.8613 375.6729 256.9282 c 375.8271 257.9941 376.9063 258.2129 378.4482 258.29 c 378.4624 258.063 378.4678 257.7373 V F U 380.6807 257.7373 m 380.6787 257.5342 380.6772 257.3296 380.6768 257.1255 C 378.4644 257.0962 L 378.4712 257.3198 378.4712 257.5415 378.4678 257.7373 c F U U U u u u u 350.3286 257.7373 m 350.3154 258.792 350.3057 259.8726 350.3057 260.7695 c 350.3057 262.8638 349.2007 264.1997 346.8237 264.1997 c 344.293 264.1997 343.188 262.9795 343.3037 260.7954 C 345.5132 260.7954 l 345.5645 261.7847 345.4233 262.6836 346.7466 262.6836 c 348.0703 262.6836 348.0186 261.7847 348.083 260.8081 c 348.1377 259.9746 348.083 259.8315 y 346.2197 259.7676 345.1021 259.3818 v 343.9844 258.9966 343.0723 258.2129 343.0723 256.2212 c 343.0723 254.5 343.4199 252.8311 345.6543 252.688 c 346.8623 252.6108 347.6846 253.3691 348.0313 253.7803 c 348.147 253.7803 348.2627 252.8809 V 350.4082 252.8809 l 350.3203 254.9648 350.3247 257.1255 V 348.1123 257.0962 L 348.1055 256.8721 348.0923 256.6455 348.0703 256.4395 c 347.98 255.6177 347.7231 254.4609 346.3999 254.4609 c 345.0762 254.4609 345.1665 255.8613 345.3203 256.9282 c 345.4746 257.9941 346.5542 258.2129 348.0957 258.29 c 348.1099 258.063 348.1157 257.7373 V F U 350.3286 257.7373 m 350.3267 257.5342 350.3252 257.3296 350.3247 257.1255 C 348.1123 257.0962 L 348.1191 257.3198 348.1191 257.5415 348.1157 257.7373 c F U U U u u u u 326.3809 257.7373 m 326.3677 258.792 326.3574 259.8726 326.3574 260.7695 c 326.3574 262.8638 325.2529 264.1997 322.876 264.1997 c 320.3447 264.1997 319.2397 262.9795 319.3555 260.7954 C 321.5654 260.7954 l 321.6167 261.7847 321.4756 262.6836 322.7988 262.6836 c 324.1221 262.6836 324.0708 261.7847 324.1353 260.8081 c 324.1899 259.9746 324.1353 259.8315 y 322.272 259.7676 321.1543 259.3818 v 320.0366 258.9966 319.124 258.2129 319.124 256.2212 c 319.124 254.5 319.4722 252.8311 321.7065 252.688 c 322.9146 252.6108 323.7368 253.3691 324.0835 253.7803 c 324.1992 253.7803 324.3149 252.8809 V 326.4604 252.8809 l 326.3721 254.9648 326.377 257.1255 V 324.1646 257.0962 L 324.1577 256.8721 324.1445 256.6455 324.1221 256.4395 c 324.0322 255.6177 323.7754 254.4609 322.4521 254.4609 c 321.1284 254.4609 321.2188 255.8613 321.3726 256.9282 c 321.5269 257.9941 322.6064 258.2129 324.1479 258.29 c 324.1621 258.063 324.168 257.7373 V F U 326.3809 257.7373 m 326.3784 257.5342 326.3774 257.3296 326.377 257.1255 C 324.1646 257.0962 L 324.1709 257.3198 324.1714 257.5415 324.168 257.7373 c F U U U u u u u 292.6523 257.7373 m 292.6396 258.792 292.6294 259.8726 292.6294 260.7695 c 292.6294 262.8638 291.5249 264.1997 289.1479 264.1997 c 286.6167 264.1997 285.5117 262.9795 285.6274 260.7954 C 287.8369 260.7954 l 287.8887 261.7847 287.7471 262.6836 289.0708 262.6836 c 290.394 262.6836 290.3423 261.7847 290.4067 260.8081 c 290.4619 259.9746 290.4067 259.8315 y 288.5439 259.7676 287.4263 259.3818 v 286.3086 258.9966 285.396 258.2129 285.396 256.2212 c 285.396 254.5 285.7437 252.8311 287.9785 252.688 c 289.186 252.6108 290.0088 253.3691 290.3555 253.7803 c 290.4712 253.7803 290.5869 252.8809 V 292.7324 252.8809 l 292.644 254.9648 292.6489 257.1255 V 290.436 257.0962 L 290.4297 256.8721 290.4165 256.6455 290.394 256.4395 c 290.3042 255.6177 290.0469 254.4609 288.7236 254.4609 c 287.4004 254.4609 287.4902 255.8613 287.6445 256.9282 c 287.7988 257.9941 288.8779 258.2129 290.4199 258.29 c 290.4341 258.063 290.4395 257.7373 V F U 292.6523 257.7373 m 292.6504 257.5342 292.6489 257.3296 292.6489 257.1255 C 290.436 257.0962 L 290.4429 257.3198 290.4429 257.5415 290.4395 257.7373 c F U U U u u u u 268.1484 257.7373 m 268.1353 258.792 268.125 259.8726 268.125 260.7695 c 268.125 262.8638 267.0205 264.1997 264.6436 264.1997 c 262.1123 264.1997 261.0073 262.9795 261.123 260.7954 C 263.3325 260.7954 l 263.3843 261.7847 263.2427 262.6836 264.5664 262.6836 c 265.8896 262.6836 265.8379 261.7847 265.9023 260.8081 c 265.9575 259.9746 265.9023 259.8315 y 264.0396 259.7676 262.9219 259.3818 v 261.8042 258.9966 260.8916 258.2129 260.8916 256.2212 c 260.8916 254.5 261.2393 252.8311 263.4741 252.688 c 264.6816 252.6108 265.5044 253.3691 265.8511 253.7803 c 265.9668 253.7803 266.0825 252.8809 V 268.228 252.8809 l 268.1396 254.9648 268.1445 257.1255 V 265.9316 257.0962 L 265.9253 256.8721 265.9121 256.6455 265.8896 256.4395 c 265.7998 255.6177 265.5425 254.4609 264.2192 254.4609 c 262.896 254.4609 262.9858 255.8613 263.1401 256.9282 c 263.2944 257.9941 264.3735 258.2129 265.9155 258.29 c 265.9297 258.063 265.9351 257.7373 V F U 268.1484 257.7373 m 268.146 257.5342 268.1445 257.3296 268.1445 257.1255 C 265.9316 257.0962 L 265.9385 257.3198 265.9385 257.5415 265.9351 257.7373 c F U U U u u 307.6543 259.1909 m 307.6567 258.791 307.6582 258.4092 307.6582 258.0791 c 307.6587 257.3091 307.6509 256.8057 307.645 256.0293 c 307.6362 254.9805 307.3022 254.2759 306.1592 254.2563 c 305.0156 254.2363 304.6299 254.9541 304.6382 256.0034 c 304.6509 257.5264 304.6631 258.9014 304.6592 260.6362 c 304.6553 262.3579 305.4893 262.5522 306.0161 262.561 c 306.9023 262.5767 307.624 262.4219 307.6411 260.7002 c 307.6465 260.2144 307.6509 259.689 307.6543 259.1909 C 309.9004 259.2397 L 309.8872 260.1152 309.8477 260.9395 309.7783 261.3379 c 309.4165 263.4272 307.8911 264.1426 306.0156 264.1177 c 304.1396 264.0928 302.8389 263.3398 302.5327 261.2417 c 302.377 260.1714 302.3638 256.562 302.5996 255.2422 c 302.8477 253.855 303.9316 252.6577 306.167 252.6875 c 308.4023 252.7173 309.6084 253.832 309.7671 255.4272 c 309.8438 256.1963 309.895 257.1206 309.9038 258.23 c 309.9063 258.5596 309.9053 258.9033 309.9004 259.2397 C 307.6543 259.1909 L f U U 402.7383 264.0288 m 400.5024 264.0288 l 400.5024 252.8774 l 402.749 252.8774 l 402.7383 264.0288 l f 259.9766 264.0288 m 257.7407 264.0288 l 257.7407 252.8774 l 259.9873 252.8774 l 259.9766 264.0288 l f u u u u 239.207 257.7373 m 239.1943 258.792 239.1841 259.8726 239.1841 260.7695 c 239.1841 262.8638 238.0791 264.1997 235.7021 264.1997 c 233.1714 264.1997 232.0664 262.9795 232.1821 260.7954 C 234.3916 260.7954 l 234.4434 261.7847 234.3018 262.6836 235.6255 262.6836 c 236.9487 262.6836 236.897 261.7847 236.9614 260.8081 c 237.0161 259.9746 236.9614 259.8315 y 235.0986 259.7676 233.981 259.3818 v 232.8633 258.9966 231.9507 258.2129 231.9507 256.2212 c 231.9507 254.5 232.2983 252.8311 234.5332 252.688 c 235.7407 252.6108 236.5635 253.3691 236.9102 253.7803 c 237.0259 253.7803 237.1416 252.8809 V 239.2866 252.8809 l 239.1987 254.9648 239.2031 257.1255 V 236.9907 257.0962 L 236.9844 256.8721 236.9712 256.6455 236.9487 256.4395 c 236.8589 255.6177 236.6016 254.4609 235.2783 254.4609 c 233.9551 254.4609 234.0449 255.8613 234.1992 256.9282 c 234.3535 257.9941 235.4326 258.2129 236.9741 258.29 c 236.9888 258.063 236.9941 257.7373 V F U 239.207 257.7373 m 239.2051 257.5342 239.2036 257.3296 239.2031 257.1255 C 236.9907 257.0962 L 236.9976 257.3198 236.9976 257.5415 236.9941 257.7373 c F U U U 242.5732 264.0317 m 240.3247 264.0317 l 240.479 263.1196 240.479 261.3726 v 240.479 259.625 240.479 252.8799 y 242.7529 252.8799 L 242.7529 260.396 242.7529 261.1665 v 242.7529 261.9375 243.0488 262.7085 244.0894 262.7085 c 245.1299 262.7085 245.4639 261.873 245.4639 261.2183 c 245.4639 260.563 245.4639 252.8799 y 247.7446 252.8799 L 247.7446 259.9077 247.7446 260.9868 v 247.7446 263.3252 246.6592 264.2373 244.9116 264.2373 c 243.5112 264.2373 243.126 263.6978 242.6504 263.3252 c 242.6118 263.3511 242.5732 264.0317 v f u 254.0674 258.7856 m 254.0674 259.5234 254.0674 260.1426 254.0674 261.1494 c 254.0674 262.7686 252.6797 262.7168 252.5771 262.7168 c 251.2793 262.7168 251.1123 261.8174 251.1123 258.7085 c 251.1123 256.3184 250.9775 254.3462 252.5708 254.3462 c 254.1768 254.3462 254.0674 255.9331 254.0674 257.1924 c 254.0674 257.7817 254.0674 258.3706 254.0674 258.7856 C 256.3208 258.7598 L 256.3198 258.0903 256.3179 257.4473 256.3159 257.1152 c 256.3027 254.9307 256.4316 252.8774 y 254.2603 252.8774 L 254.2085 253.582 254.0928 253.8647 Y 253.605 253.415 253.0908 252.8369 251.9731 252.8369 c 249.0952 252.8369 249.0313 255.3164 248.9668 256.2544 c 248.9023 257.1924 248.8765 260.4854 248.9922 261.5864 c 249.0693 262.3188 249.6606 264.2402 251.8574 264.2588 c 253.3994 264.2715 253.7334 263.5518 254.1123 263.4624 c 254.1123 268.146 l 256.3286 268.146 l 256.3286 266.9155 256.3271 261.6851 256.3208 258.7598 C 254.0674 258.7856 L f U 278.6055 268.1602 m 274.9053 268.1602 l 274.9053 252.8755 l 277.1924 252.8755 l 277.1924 265.104 l 280.5073 252.8755 l 284.2588 252.8755 l 284.2588 268.1602 l 281.9717 268.1602 l 281.9717 256.1357 l 278.6055 268.1602 L f 296.54 262.4351 m 298.1714 262.4351 L 298.1714 264.0298 L 296.54 264.0298 L 296.54 265.6973 296.54 266.9189 Y 294.3813 266.0195 l 294.3813 265.2197 294.3813 264.0298 V 292.981 264.0298 L 292.981 262.4351 L 294.3813 262.4351 L 294.3813 259.5015 294.3813 255.7515 294.3813 255.2148 c 294.3813 254.3149 294.3813 252.8755 296.8223 252.8755 c 297.1953 252.8755 298.2358 252.8755 y 298.2358 254.3921 l 297.5161 254.3921 297.2593 254.3921 v 296.8994 254.3921 296.54 254.521 296.54 255.6128 c 296.54 256.2109 296.54 259.542 296.54 262.4351 C f 301.2476 264.0288 m 299.0122 264.0288 l 299.0122 252.8774 l 301.2583 252.8774 l 301.2476 264.0288 l f 301.2593 268.1636 m 299.0122 268.1636 l 299.0122 265.9087 l 301.2593 265.9087 l 301.2593 268.1636 l f 313.0493 264.0317 m 310.8013 264.0317 l 310.9556 263.1196 310.9556 261.3726 v 310.9556 259.625 310.9556 252.8677 y 313.2295 252.8677 L 313.2295 260.396 313.2295 261.1665 v 313.2295 261.9375 313.5249 262.7085 314.5654 262.7085 c 315.6064 262.7085 315.9404 261.873 315.9404 261.2183 c 315.9404 260.563 315.9404 252.8677 y 318.2207 252.8677 L 318.2207 259.9077 318.2207 260.9868 v 318.2207 263.3252 317.1353 264.2373 315.3877 264.2373 c 313.9873 264.2373 313.6021 263.6978 313.127 263.3252 c 313.0884 263.3511 313.0493 264.0317 v f 330.21 252.8779 m 330.21 268.1563 L 327.8462 268.1563 L 327.8462 252.8779 L 330.21 252.8779 L f 336.9893 252.8716 m 342.4854 252.8716 L 342.4854 254.749 L 339.4175 254.749 L 339.4175 268.1621 L 336.9893 268.1621 L 336.9893 252.8716 L f u 356.8613 257.0283 m 356.8545 257.5054 356.8374 258.0229 356.8374 258.564 c 356.8374 261.6729 356.7344 262.6108 355.437 262.6108 c 355.334 262.6108 353.9082 262.624 353.9082 261.0435 C 353.9082 256.7012 L 353.9082 256.123 353.7925 254.2407 355.4561 254.2407 c 356.7832 254.2407 356.8838 255.3979 356.8613 257.0283 C 359.0483 257.0771 L 359.0396 256.6675 359.0225 256.3271 358.9956 256.1099 c 358.8706 255.0801 358.7388 252.731 356.0024 252.731 c 354.8843 252.731 354.3193 253.3091 353.8311 253.7588 C 353.7153 253.4761 353.6641 252.8687 V 351.4668 252.8687 l 351.6597 253.7842 351.6597 255.5962 V 351.647 268.1616 L 353.8633 268.1616 l 353.8633 263.292 l 354.2422 263.3818 354.5762 264.127 356.1177 264.1143 c 358.3149 264.0957 358.8545 262.2129 358.9316 261.4805 c 359.021 260.6309 359.0796 258.4609 359.0483 257.0771 C 356.8613 257.0283 L f U 373.2896 264.1177 m 371.3848 264.1948 371.1533 262.6143 370.8613 262.6016 c 370.7939 263.5654 370.707 264.0317 v 368.5869 264.0317 l 368.7412 263.1924 368.7412 261.4453 v 368.7412 259.6978 368.7412 252.8677 y 371.0151 252.8677 L 371.0151 259.4541 371.0151 260.2246 v 371.0151 261.0854 371.3335 262.1777 373.0322 262.2417 C 373.2896 264.1177 L f 384.6948 262.4351 m 386.3262 262.4351 L 386.3262 264.0298 L 384.6948 264.0298 L 384.6948 265.6973 384.6948 266.9189 Y 382.5361 266.0195 l 382.5361 265.2197 382.5361 264.0298 V 381.1357 264.0298 L 381.1357 262.4351 L 382.5361 262.4351 L 382.5361 259.5015 382.5361 255.7515 382.5361 255.2148 c 382.5361 254.3149 382.5361 252.8755 384.9771 252.8755 c 385.3496 252.8755 386.3906 252.8755 y 386.3906 254.3921 l 385.6709 254.3921 385.4141 254.3921 v 385.0542 254.3921 384.6948 254.521 384.6948 255.6128 c 384.6948 256.2109 384.6948 259.542 384.6948 262.4351 C f 399.7983 264.1182 m 398.1245 264.0527 397.9009 262.6138 397.6221 262.6016 c 397.5547 263.5654 397.4678 264.0317 v 395.3481 264.0317 l 395.5024 263.1924 395.5024 261.4453 v 395.5024 259.6978 395.5024 252.8677 y 397.7764 252.8677 L 397.7764 259.4541 397.7764 260.2246 v 397.7764 261.0854 398.0942 262.1777 399.7935 262.2417 C 399.7983 264.1182 L f 402.7324 268.1577 m 400.498 268.1577 l 400.498 265.9023 l 402.7324 265.9023 l 402.7324 268.1577 l f u 407.2148 259.3755 m 405.9297 259.3755 L 405.9253 259.7822 405.9258 260.2134 405.9399 260.6729 c 405.9946 262.438 406.7524 262.562 407.3662 262.562 c 408.3071 262.562 408.8179 262.1895 408.8179 260.4678 c 408.8179 260.2798 408.8208 259.6245 408.7896 259.3755 C 407.2148 259.3755 L 407.2144 257.8403 L 411.0732 257.8457 L 411.0981 259.0347 411.0771 260.7373 410.9893 261.29 c 410.6553 263.3843 409.2417 264.1196 407.3662 264.1196 c 405.4902 264.1196 404.1797 263.3843 403.8457 261.29 c 403.6753 260.2217 403.7202 256.6694 403.9102 255.354 c 404.1108 253.9595 405.2881 252.688 407.3662 252.688 c 409.6016 252.688 410.7598 253.811 410.9248 255.4053 c 410.9668 255.8086 410.9795 255.9106 410.9961 256.3296 C 408.751 256.3179 L 408.7383 255.5479 408.7695 256.1875 408.7539 255.9131 c 408.6924 254.8657 408.5098 254.2554 407.3662 254.2554 c 406.2227 254.2554 406.0718 255.0894 406.0425 256.1572 c 406.0269 256.7417 406 257.2896 405.9766 257.8384 C 407.2144 257.8403 L 407.2148 259.3755 L f U 211.2568 258.0488 m 211.2979 259.894 211.2788 261.2896 211.2788 261.7544 c 211.2788 262.6768 211.3384 267.2515 210.8892 271.7358 c 210.6343 274.2793 209.7456 275.5757 206.7529 275.8647 c 202.2593 276.2988 197.7124 276.248 196.7803 276.248 c 195.9004 276.248 191.2998 276.3115 186.8071 275.8647 c 183.7637 275.5625 182.9141 274.1533 182.6709 271.7358 c 182.2183 267.2407 182.2813 262.6426 182.2813 261.7544 c 182.2813 260.8384 182.2012 256.2529 182.6709 251.7725 c 182.9409 249.1968 183.9351 247.9248 186.8071 247.6436 c 191.3003 247.2036 195.8667 247.2607 196.7803 247.2607 c 197.7124 247.2607 202.2603 247.1963 206.7529 247.6436 c 209.6772 247.9346 210.6279 249.2378 210.8892 251.7725 c 211.1187 253.9951 211.2163 256.2383 211.2568 258.0488 C 215.0732 258.0493 L 215.0347 256 214.9199 253.2671 214.6064 250.1675 c 214.291 247.0439 211.8652 244.3174 208.6499 243.9736 c 203.3965 243.4126 197.7466 243.4766 196.7803 243.4766 c 195.8667 243.4766 190.1577 243.396 184.9102 243.9736 c 181.5874 244.3398 179.2598 247.1782 178.9536 250.1675 c 178.3467 256.0908 178.4834 260.7998 178.4834 261.7544 c 178.4834 262.6768 178.3721 267.6929 178.9536 273.3408 c 179.2524 276.2441 181.6157 279.1377 184.9102 279.5347 c 190.1553 280.166 195.9004 280.0811 196.7803 280.0811 c 197.7124 280.0811 203.3188 280.1489 208.6499 279.5347 c 212.02 279.146 214.3267 276.1221 214.6064 273.3408 c 215.1763 267.6816 215.0767 262.6768 215.0767 261.7544 c 215.0767 261.3071 215.1094 259.9829 215.0732 258.0493 C 211.2568 258.0488 L f 200.0591 273.665 m 200.2915 268.6143 l 207.7437 268.6143 L 207.8638 268.6143 208 268.5977 208.291 268.6655 C 208.6328 260.7998 208.3594 258.3374 208.2222 253.2871 C 204.8037 253.082 L 204.9409 255.2661 204.9746 257.2339 204.9746 258.4282 C 203.7271 258.394 L 203.6587 258.394 203.6162 258.4023 203.5308 258.3599 C 203.3682 263.1372 L 200.4624 263.1372 l 200.9067 249.5332 L 197.6099 249.3965 195.6611 249.3965 192.6533 249.5332 C 193.1235 263.1372 l 190.1919 263.1372 L 190.0293 258.3599 L 189.9443 258.4023 189.9014 258.394 189.833 258.394 C 188.585 258.4282 L 188.585 257.2339 188.6191 255.2661 188.7559 253.082 C 185.3374 253.2871 L 185.2007 258.3374 184.9272 260.7998 185.269 268.6655 C 185.5596 268.5977 185.6963 268.6143 185.8164 268.6143 C 193.3115 268.6143 l 193.4053 271.4126 l 190.5337 271.2998 L 190.6021 271.5049 190.6362 271.6069 190.6362 271.7095 C 190.7559 273.6377 L 190.7559 273.7739 190.7388 273.8936 190.6704 274.064 C 194.0005 274.2026 196.3374 274.2808 200.1396 274.1426 C 200.0967 273.8784 200.0591 273.7505 200.0591 273.665 C f u 418.606 260.6797 m 418.606 261.9922 418.6924 264.1382 415.3247 264.1382 c 412.4419 264.1382 411.8975 262.2749 411.8975 261.2881 c 411.8975 260.6128 411.8813 259.9873 413.0254 258.9365 c 413.6572 258.3564 415.0171 257.4297 415.6323 256.9917 c 415.8257 256.854 416.5859 256.312 416.5859 255.355 c 416.5859 254.2427 415.5581 254.2388 415.3418 254.2388 c 414.5029 254.2388 413.9985 254.5654 413.9282 255.4058 c 413.9004 255.7354 413.874 256.0054 413.874 256.3223 c 411.7148 256.3223 l 411.5317 254.8657 412.1123 253.9741 v 412.751 252.9927 414.1689 252.688 415.4185 252.688 c 416.2842 252.688 417.3198 252.8628 417.9844 253.5273 c 418.5015 254.0444 418.7407 254.6118 418.7407 255.7202 c 418.7407 256.6465 418.6152 257.3916 417.2744 258.4404 c 416.791 258.8184 415.7627 259.5117 415.2148 259.8716 c 414.5605 260.3008 414.1069 260.7241 414.1069 261.46 c 414.1069 262.2739 414.4761 262.5708 415.29 262.5708 c 416.104 262.5708 416.3911 262.0605 416.3911 261.1777 c 416.3911 261.0566 416.4087 260.6758 y 418.606 260.6797 l f U u 231.1948 264.0239 m 231.1694 265.4063 231.1563 268.646 226.8755 268.646 c 222.5942 268.646 222.5298 265.4194 222.5298 264.6997 c 222.5298 263.6968 222.4141 262.0254 225.1782 260.4443 c 226.1626 259.8809 227.1074 259.3525 227.3896 259.1968 c 227.647 259.0557 229.0908 258.502 229.0352 256.6514 c 228.9707 254.5044 227.271 254.4561 227.0093 254.4561 c 226.0542 254.4561 224.9399 254.6699 224.7515 256.3687 c 224.7212 256.6392 224.6641 256.9648 224.6641 257.7573 c 222.1445 257.7573 l 222.0479 255.0659 223.25 253.8896 v 224.3271 252.8354 225.5381 252.6147 226.8237 252.6147 c 228.1094 252.6147 229.5493 252.8804 230.3701 253.7896 c 231.1626 254.668 231.4521 255.5313 231.4521 256.8315 c 231.4521 258.207 231.1304 259.7754 228.8164 261.1382 c 228.0771 261.5737 227.2866 261.9736 226.4639 262.4238 c 225.4438 262.9819 224.8955 263.7095 224.8955 264.8022 c 224.8955 266.0107 225.6157 266.8335 226.8237 266.8335 c 228.0322 266.8335 228.7266 266.1909 228.7266 264.8794 c 228.7266 264.6997 228.7524 264.0366 y 231.1948 264.0239 l f U 259.9912 268.1636 m 257.7441 268.1636 l 257.7441 265.9087 l 259.9912 265.9087 l 259.9912 268.1636 l f U LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI5 /terminate get exec Adobe_ColorImage_AI6 /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF pyutilib-6.0.0/doc/plugin/snllineblk.pdf000077500000000000000000000172501367314503500202700ustar00rootroot00000000000000%PDF-1.3 %Çì¢ 8 0 obj <> stream xœ\K®$9ŽÜç)â1úŽ1}…‡éF‘‹ž¨Û™Q¢ñ²€D-²ÈË%’FRýýçžñøßú÷ëçÿüø¯´Ç¿þïG|üûGŠ%>ë|ÄŸ3ÌÇOã´ôˆµ?g|™A–g˜é¢Ã³ã÷¯õ@yÄ’1b=QÛ#æñ µ]ðŠžiæýD‰çs„ŠÚA§gÇbRLM3‚®Ížˆõ™¢8Ðñ™«f¨%]²Þr±'° Œ(xs‰nëžÏ7wô†Ó~ËžùY;¹'Ìú¬‰O¶ÐÍö‹V FokŸ ûœãæÚ7&ìýBÚû®˜¢§g,åHªµçX\ºà ¯À&¶=ûãEN~B ±Çg¬\èJzbE‰¡‚ù™»ÍcÝ)`Y] Ä û{–ÔÖ¾Db¥z ´§Vð¦!ÒSNÑá™!É‘ D=Æx[T§lI7j¼Ò’ð@|H2á$ApJ®: êo*PÂc6H¾-ýc© G¯&¸IQÏŽ5&€ˆbÖó9Ù¦1>&Ûâ—‰I6QÊ^d ÐOh“*~¬ê–r„Z*4=×ïÑ,%çǧ¾¾æõãŸ?âèù9.#oYGF× GÎY8 l/‰C,.²À…£8êÐŒŽ£8J‡G ³,páHt«ŽÄá*ŽDO‡‘H¾Âadœè8Â"`íÍqÚ–°qÌ_¸1iWDÉ‘ír\82IdÇ‘KÊpô¡ އ%¥vÁHЂh¼¼8ŒDK¢FàÈÃlá%˜¡;Œö¶Žð,PÐGÀK¥l7Ž@'Y‘ãÿ dÇèðtÊÚ…ÃH3rÕ#¼#©ÌaLJÚ0ž²¼¨Ády°ŒL,Ž"“ct ‰ÎŽ##³ãÈèä@úTÃ×'hˆ£€}š 5CÇ?#ÏÝéùDV>4€ùvh˜G›ò›3!ÿL‡…àQ4žsÒaC•½9uLXN©×l®›•dJðŠY…ŠÙ‡p²8/r&í[Ì9~ê|ÛÉ4xÍ9æ2iJÉ9  ßkýNíàUaÄýÝ–UÚIäXýøä@UޱA6‹èE–ÒÑa;Ït½Ô„À­bQE:J£s‚æe›£ù¡:j¾.HâA~š7›9‰Qrb`T ÁâÁ^“nšn1`Ó!Û&«“ ð`å ‚Êã•Ûé76çõ#õsÓði­lº›Õֺ娀•Y/ãÐd2*šh ý í¢>\Wùya̘ӄwmŒúŽ˜šÁeBô,‹–ÍóÎ{D¯Oú·S¢/šð(ôjñz¤me‰+g&B8€¤æÊ±UÑsïËiÛeR„iy‘Ãõõ÷`£×†»Ï%]ƒï™íÏ…ICÆ3Q æªX»ø£,áøJÄ¡ìErï öN;ì³`/𣍲’TnØ7x¢y9†VãsŒƒûV³—ƒûFå÷ä´zpߨå|pßðƒüÁÆ}ì´”3€¤…9›€4ó‡=8Q ×½pÜrð/àz`ßPBºa߀we# öiH:°ßôýæhzº€ƒz¼ÙÃzŠº%G=VÞ”%,Ôk½9^¨×¹ûÅhµøP/2§qßlÆqnduÓüe“bõÇ4Å¡Y8×Bh] ç[7s¬|2B-”ƒìÒîÆp£Ä0 ܆à™Òlˆ·®„ÓZè56Âv½Ü¯Ö×áï´íoܨö'°JÝ~¤fÿ”â×ßI‘&»~høoWRF~w5✸.²öðM€oÎxAþwÇõRÆG\/ØÌ× \Â×KÌ ‡ß%׸^r{‹ë¶¡Pºà[°¡·¸ Ò™+®ƒw\×ïoq]œ×}ÀÁ÷/Moq½ C£Ù€—dqv¼@w\ßôøæh~ð×Kît­ ,–y#¼Ô~Çumšé \›œá¥å÷Ðý67À©ð+’}‚Ï/›”ú:¶IÎÉE󌰾µs Î¥^‘\[¹#y)å#’SÜÌè}¤xGò’óG$§]Ý‘¼”vGr[å‰äï´íÒ#¹‘ñó÷ðêãÝ…·€þ!̯¿æÉ½€þ»•€)q•Sç¤bÎ7}p¾9ç<¥ Å*öŒçaøaL#Ãt:@ˆP©ß@´í~œqÅá0ß7^j0>@ð.ªíô6éÌÀƒ DèäP‘é{ÄAú/­2ßôÀSq»‘F¶jÆBzèy‡™Ö¦Ò7'J2ó;ÒE6n¤SÚ£¤Gx¾o#»®õF:÷ÐOt¬0~#]Æ‘n¨pÌfʾèy[+ß"÷êÖ*ÎA>Izîü­®ƒ|rT˜ZÈçÖ¤¸…kî ½ø0)]\¨Ó–|PO¢ËÛ¨çA»£´èoÒ6Só$ËŸ­Ä»ÌâÿT†%Ä;½ÿ}“™Û(×:ÈÉ5oÄ“LÕ¿IÇûf,¸”S8pgy¨ä;¬Â„äþÁjýí‚û {ÎÚGåYíëä îka•Eª’ÚGCÐÊ…öÑéNà'ûñ€ rì;o'§2,´ûGû'g0ÍæheZ ÌÑΚR(ÉÑ>`|3´;íhwçϬ¼dGû@ßa˜íöˆíŽ4ШÚ¹ëïÌ{hŒ‹3ºãúD*ŸîÄýƒ!s™Í±.ƒ*w ÊwäxÛ)9©°“Žý»kËÁ>¨ûyRyæGc ¿Ãü@:9O2Oe f ï‡Åâ…wѤ°ÞGcPr¸ÈZðï´¶Äàeˆ×žkü¨)e4ÈÑäÿT”yÕ ùCä·ì¦YÂéånqº—»EŽSîvÚËÝâÌSîO¹›t©w¹›œÜN¹lkw¹; +ËŸrwÂyL¶¿ÊÝ©©`¹«Ý"Ç]í&§ÆSí&­Û®UîÖïó.w‹SO¹;áD7æ)w§vùÛÊ݉EœtÊÝ܃Ì.wkßñ.w‹ÓO¹{Kj•»?t²|†»sŒ¿^ì&­ó*vçØ–N±;G…N/v§9ì2p»×¦®bwbÂzjÝ ØÉóÔº 4ßµî´îv­›4%¾ŠÝ©¼Uº9—¼*Ý úÈéTº©ùÖ¯JwÆÊ!<¯tÃäŸax¥›;–ì½Ò-™”Sê&=ë)uC¤Jv­[t;µnÑõÔºo|}Ë*݉€’Y‚ü ¥œórÄß{žâðg~r®y8÷Àjúº{°¹;³ÙЯQ›sfâS£çÎ=çn,«õË5†áâážä°Z†â½Óð³"~ æv<¯4ý¯ˆ_ëºYÜ#à½,<[Äštâò+ïIc»B~mÌdŠlŽqx@¯<#Ôz…ü ¤–q’‚:`§ÀŸM×#~„Eôˆï#<âr*Ô'âWÖåâðk¡Œ²üŠhS)þSœö€ïN_YÆ øµ†é ø”u±’½~À_>¥:.8Ò]yÀç&S=ùÊ‹±Ø®€O A"qEüOŽL†’]!_6•ã§øÞ)3ÛqŠœ!ˆZÈ'Ýã©Ý¹¶<äS_UÒB~Å)1ÄÑ+jù ù¥kÝ#•rrüªÆ]Á£Õ|*xî?§“i•´õóßiíiŒóµéòj70VŒbÌ7Ù5ù*Ëi…#ÅüC[ÌÿíBð[Ïæà?¹– KwÎë§ñ$È0Àú`ÛdTY‡Û Þ×ý3ÝÏ„PþÂ+y‡r8/çD;Â:IÿßX:DÄ–­‹júð)ÈjëR:´5t^ŠÎ3l™3 q …ެ‡•ÿ3àZ6=ki÷²‡Ž'î‡ÓÁ£ 3‹Ãˆ™¤Û`¢¡¶i áɨ›–FB›3>R÷¡ ª¤x Å'ÄàÄ8Äaÿ©Ð_Pr‡xZ·bͨcsà:ܧÓÝr§»|èzƒ-axBÈAW¢ðŽ4Þ«JŠÑxΫÏ|Fd;àQ39]·Òœ“aÀȈä1'³ùŒ|8Ù;Âpš«â¥ïáø*ñd\œlfzÛLj@>G60ßpí|É OÀ°S°’v ²c£a†ÎR´ê¥F}ÑÕÎäQZ"'$s í£(aßAù/¬+Á9Ýašœ û•Ê>.LY²àÔ¦ìYÐݵÀrƒÄ$0„è4Á<®¦3B&ÂËEÜíaú ¸Z$¬°Ž²K|¥UÒ‘W{bZû,¾¬w4)*„Ò‘¢µ`^q:ü<¼©hxr>ÁÏiœ®}À;eš8’06U¬º€.>ËRº8UÇ$ÓG‚M~gd;‹‰Vµž7Vññ©Ò¯oQ÷ï©Y³À´ kÇÁŒH¯Ù9/çPmµPmìC ¬¾sRRÇ«’Lû5$†¦¶‘ïœó*ïÉÂùwóÛ\u*øX²¶AíØQ„'>žê‚|çåe„ÓJwzè;#Ñ1ºI©§²pxñYõÄ;ÇéÄ3y?ôz‡jÄóæ¼œs-u=õ|Yˆç=8´Á€nš'-{ÏâÀkD&‹ÞÒtQ)9Í'¨ÃzF¤Ôܶè¿~lçœi õy8Œo´µ -šoa.:¯¦¹Ý&ióždÛ0ï)TØ4²Uk{Óºï1²Üg“Èÿ÷ÙdsŽÒSu|rÊûÙÄg‚ã È×xȃwà¿O|üïÿpPfÜžW²µ»ÎßÉÆ'ôd›ÎÎ66}Ò çX¾±IC:Ý$Þšž–oñrFÜ5ôEzºq8–n€®VÌ´H…äÔ.=݈¹ÛÕ@Pv¶áÔN66ÃrE–ÒâµàÅØ‰†ÓžhlÎÎ Êênq§xEfÄI4°'ž ¯Œ&É3 Б·+'ÓöÆÉ4>µùK7VXôJ’:Dz•±[W&bÞ2%Èæìðÿ4ƒVPœórNŒ:“ÁêÅøÎ«3À­y¿sμ¼=gCTÞœ†ÝžóHQ”'‡ª£Ÿ]#aIv²éúTsÆ`O’t•õuÞR×ZÑï‹æÿÛ–옚Ê!$ší~~qxGí~~sVœsÝ!訧wÖæ´VÙu[ë#ØÐ[îg_ÛºÁνT‡¹ÜkqtkIݳîxÊ@…’g°‹¥Áζ4¢³f\ä ®6“%§¹Ì¦e¼B¶«(•{»­Ä2m=ZâÓ›F¨³œxYpè8.¶îJ[°ã­$ŒDæÙé—ýÎ3m'6“÷P‹Õw°6M%-©=4ØÁtݽ º˜„G‰v¥‰3™IG×㪨©û7˜åÍuwDyªi³¨ºT"¨7ŠÇ4`ضÉKc_ßÌ[&?­wlö`ñ3«ÁW•>>Ùj`ýM\)Öc“L;[³kíºóÞYZ³ôg8gD>ª9wíÐEQºö©b©ÑÜ}©Ùæ0N[NiÑÇUN&õr•ïŒM²Û[ÅáMw¸Ëb[Þph# K3l'Õ Õ ¦9ߥiý­\`½r¬Ä \V Îó©*ôù¢t_®—¦™Å­ÐÛHxû•œ¨Ô¯Ùt'l^.ÏÓò—sŠÞI×A§ Ž u…üÁy´]š[qÌòÉY}œAÅ–›tõ˜/ZÉ•`¥¹n·™Vïy‡—H$ k¢¤›}¢ÄK+{ÂêQàÙÍ:¦ø­ÕxÛ7pUPYæµh ‚m¿ù1¬g7YÍS´¾’C·ï¤Èaþ‘»àE†‘tw.ëÖYÕ(n^oÆôÍàþù#óجæUtx$GydÓ)$™òSß|Ñ¡ûª&9bÑ.3Òb KcáÉo°:Êlº*4ÉŒ½ÑYJä _A’›ù‰ …7¬.Ì'YÃf8Grq«B •‹.¶^o,’éœK8¿ó±iKSo?aDÒ}^£Å‰F+h0'6LĄ̑6°*Êá[(<ó±­¿XN5ÄÕ“ÂJ«Ó.&çtÓPI:¨*‡‰Ö¿ÑPÐÄJy‹AÃ[ÔŠ5³Í[Ú[`›-‰æ NœuïÍOš´´Út!mZß,HŠ›“Š+YliºÎ;ˆÅkÄ"r©Ô{õ°Hž6ût]Ÿmd‡Zôà}£4u:Æ#ÃTv ž`_v¶Ê2i¸äÐ×Å™µuµ¦b­Hrã ½<Ô¼-Ýg~(…ðÁŠøa—ŽÎÀ6 Mœ<Ï*j5 °R‰c?ò‰Äª!¥R€UžBêèGn‹V2n’Ý#1 ëÁ'o:èi Î;23d¸xÇL_kÆ¿tGXœ¼•RåÖ÷ÀX³‹¿86d]ͯ¾§umÎ!äè_ ÝÒôW0ª;»Òî$ Xp¡ á°v/ëÖÃöÀšH.v/Ît¡1.Ó®C1(gÄx0¸èc^›CA³xÌ ŠÖbª8¯È<Ýh ˆ0¹1±ÆŠx2NGÓg œ¨óäV¬J–Óú¦¯rƒ{ÔRÔ&ˆíΟ¶÷õÍAZ ƒd&Æ 4ËNhr¬ÏÚA ¾–F”ûg}á¶89ü?ª4œ “åOM¹gÎé(œ{®Ó®3r/z 1­Ä¿CÄwÔÔÍ–.¾¯ÑL%î G¼äëÛ=6ÍïCt=ªÈÍ»ª÷SðS:Ú·1´rµ6Ëܰú¬r;7”Ú°¼4÷d *ïß6cÀÀìv›g»¦*›ìÛHW^›æåXÎûØKX¬‚ùœ4ÍçÇ:‘öÚXO†wf»Þ ñ&ËÓ³•ûçõºjמSû¸)X[†t£Ì}R™ÀOæuTèª%߇ j©\#f¶¯ãZRž?íS»À/@´ÊªÎó,Èñ˜ZVé*®ûùMcßÉþpÄæ°òÈOÈ‹}«?åuy™$ ³„b‹²>Ì:t?Žew] 46 HY+og ¶må4Ýtb…û¶b1rÃxh}££áFóÍtý¹­ï¢ìâ]/˜NjEöW |ÀªÆL —PÛô°“¿žX€ÇI¤¸úò€È«l´øÄ"iÍV¨TÉ*³5•;7âqvÙðø£r-¥ù(¼y©u“È{ |#ѹ~g/¨Š P<¦qê²î4ç÷ðÆü`(ÛZ‚¡–n9öENµð)Ù׬[*ü Ý>àª:+dk_V¦®ÃÁê…‹«°Û-‹ãEL„d®vD®Qýo4hëSw¡ž¬±©"´”É8²Ó\K]éŒhìÕ'¤Ç„}Ý‘fÆcmœ´°`€ÁÚº5D3È:M@ÉòKÙíÈÆy}ã¦ØÊfaÀ~©éi `è\ÍÆ˜O°1A’š‡Ø1ƒT ÃÛ$¥`¹Øb`ýJÁÔ†VÈU!£ÕÌ®ée*ú(Ir f~ùufgûƒÓÙº÷øÀâTuiñùìsŽõÕ x*£6×_ƒ•ßyçÚ±Tê…q =ÓWsÛ³4O«ÉöUòˆT;S™ªXèt.-¨[Ö9¬óò Ù-O\6’œ-¦MÛªrJΩüðE³~U§#[šÌ¾6ÇP@º&k@VÍVÇ œê9¥7¹ï~u|Ýýþ7þûØ endstream endobj 9 0 obj 6549 endobj 7 0 obj <> /Contents 8 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 6 0 obj <> endobj 10 0 obj <> endobj 5 0 obj <>stream xœkhÙDÀ€ endstream endobj 4 0 obj <>stream xœc`Ù endstream endobj 2 0 obj <>endobj xref 0 11 0000000000 65535 f 0000006844 00000 n 0000007305 00000 n 0000006785 00000 n 0000007158 00000 n 0000007010 00000 n 0000006892 00000 n 0000006654 00000 n 0000000015 00000 n 0000006634 00000 n 0000006980 00000 n trailer << /Size 11 /Root 1 0 R /Info 2 0 R >> startxref 7550 %%EOF pyutilib-6.0.0/doc/release_notes.txt000066400000000000000000000005741367314503500175310ustar00rootroot00000000000000Pull latest updates git pull Update the CHANGELOG.txt file vi CHANGELOG.txt Update the version in setup.py vi setup.py Commit and push these revisions git commit . git push Tag the release git tag -a '5.6.3' -m 'Tagging PyUtilib 5.6.3' Push the tag git push --tags Upload to PyPI lpython setup.py register sdist --format=gztar bdist_wheel --universal upload pyutilib-6.0.0/doc/th/000077500000000000000000000000001367314503500145455ustar00rootroot00000000000000pyutilib-6.0.0/doc/th/general.txt000066400000000000000000000622101367314503500167240ustar00rootroot00000000000000= A Perspective on Software Testing = Software testing is an essential element of high-quality software development efforts. Although there is an obvious up-front cost to software testing (e.g. the time spent writing the tests), software testing has many benefits that justify this effort, including: * Illustration of the software design and functionality within tests. * Tests facilitate large-scale software changes (e.g. refactoring) with a high level of confidence that the original software functionality has been preserved. * Test code coverage provides confidence that the software can be a exercised without errors. Despite these advantages, software development tools have significant gaps in functionality. Few software development frameworks and IDEs are comprehensive in their support for testing, code coverage and related testing capabilities. This report describes a component-based approach to software testing. Here, a component is a software testing tool that has a well-defined set of input and outputs that rely on standard file formats. Our focus on component-based software testing tools is motivated by our experience with the Jenkins continuous integration server. Jenkins plugins support the integration of testing tools that generate data in standard formats. The following sections describe different software testing activities, along with available testing components and the file formats that they support. == Unit Tests == Various code-driven testing frameworks have come to be known collectively as xUnit. These frameworks are based on SUnit, a test framework design developed by Kent Beck for Smalltalk. JUnit was developed for Java by Erich Gamma and Kent Beck, and similar testing frameworks have been developed for other languages, e.g., !CppUnit (for C++), NUnit (for .NET). xUnit testing frameworks support test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework. To achieve this, xUnit frameworks share the following basic component architecture: test fixture A `test fixture` represents the preparation needed to perform one or more tests, and any associate cleanup actions. This may involve, for example, creating temporary or proxy databases, directories, or starting a server process. test case A `test case` is the smallest unit of testing. It checks for a specific response to a particular set of inputs. test suite A `test suite` is a collection of test cases that share the same fixture. test execution The execution of an individual test proceeds by executing a `setup` function, followed by the test body, and then finally the execution of a `tearDown` function. assertions A variety of test assertions are supported to check for different test conditions. A variety of xUnit testing frameworks can generate an XML summary of test results. Although there is no defined standard for the xUnit XML format, a variety of packages generate a similar XML summary: * [http://sourceforge.net/projects/cppunit/ CppUnit] (C++) * [http://cxxtest.tigris.org/ CxxTest] (C++) * [http://www.junit.org/ JUnit] (Java) * [http://cran.r-project.org/web/packages/RUnit/index.html RUnit] ( R ) * [http://www.mathworks.com/matlabcentral/fileexchange/11306-munit-a-unit-testing-framework-in-matlab MUnit] (Matlab) * [http://somethingaboutorange.com/mrl/projects/nose/ Nose+PyUnit] (Python) The following sections illustrate the use of xUnit testing frameworks for Python and C++. === Python === The following example illustrates the use of the classes in `unittest` to define unit tests: {{{ # Example 1 import random import unittest # This class defines a set of tests. The name is not important to the `unittest` framework, # but this class can be referenced from the command-line. # class Test(unittest.TestCase): # This method is called before each test is executed. In this example, a sequence of # integers is created. # def setUp(self): self.seq = range(10) # This method is called after each test is executed. In this example, nothing is done, # but generally this is useful for test cleanup (e.g. to remove temporary files). # def tearDown(self): pass # A test that verifies that a shuffled sequence does not lose any elements. # def test_shuffle(self): random.shuffle(self.seq) self.seq.sort() self.assertEqual(self.seq, range(10)) # A test that verifies that a randomly selected element of the sequence is a member of # the sequence. # def test_choice(self): element = random.choice(self.seq) self.assertTrue(element in self.seq) # A test that verifies that a sample of elements of a sequence contains only members of # the sequence. # def test_sample_many(self): for element in random.sample(self.seq, 5): self.assertTrue(element in self.seq) # A test that verifies that the shuffle function raises an exception on an immutable # sequence. Note that `assertRaises` accepts a function and a list of arguments that # are passed to the function. # def test_shuffle_error(self): self.assertRaises(TypeError, random.shuffle, (1,2,3)) # A test that verifies that a user cannot sample more elements than are available # in the sequence. # def test_sample_error(self): try: random.sample(self.seq, 20) self.fail("Expected ValueError") except ValueError: pass if __name__ == '__main__': unittest.main() }}} A testcase is created by subclassing `unittest.TestCase`. The individual tests are defined with methods whose names start with the letters `test_`. This naming convention informs the test runner about which methods represent tests. When a `TestCase.setUp` method is defined, the test runner will run that method prior to each test. Likewise, if a `TestCase.tearDown` method is defined, the test runner will invoke that method after each test. The crux of each test is a call to an assertion method that attempts to verify a condition of the data generated or execution process. Note that the `assertTrue`, `assertRaise` and `assertEqual` are methods of `unittest`. These methods are used instead of the `assert` function so the test runner can accumulate all test results and produce a report. The final block provides a simple way to run the tests. The `unittest.main` method provides a command-line interface to the test script. When run from the command line, the above script produces an output that looks like this {{{ ..... ---------------------------------------------------------------------- Ran 5 tests in 0.000s OK }}} === C++ === TODO: Illustrate tests using !CxxTest. {{{ # Example 2 }}} == Code Coverage == Code coverage tools calculate the percentage of code that is executed by tests. Although there is no standard code coverage framework, the XML output format used by the popular [http://cobertura.sourceforge.net/ Cobertura] tool has been copied by several other coverage packages: * [http://cobertura.sourceforge.net/ Cobertura] (Java) * [https://software.sandia.gov/trac/fast/wiki/gcovr gcovr] (C++) * [https://bitbucket.org/ned/coveragepy coverage.py] (Python) The following sections illustrate the use of `coverage.py` and `gcovr` to summarize the coverage of Python and C++. === Python === TODO: Illustrate the use of `coverage` to generate an XML coverage summary. {{{ # Example 3 }}} === C++ === TODO: Illustrate the use of `gcovr` to generate an XML coverage summary. {{{ # Exmample 4 }}} == System Tests == System testing of software is testing conducted on a complete, integrated system to evaluate the software's compliance with system-level requirements. System testing is a form of black box testing, and as such does not rely on details of the software implementation. System testing exercises an integrated set of software components, but its scope is more limited than ``integration testing``, which directly exercises the interaction of software components. Instead, system testing seeks to detect defects within the software system as a whole. A common type of system testing involves the execution of command-line executables. These tests aim to verify the API for the command-line executable, as well as the overall functionality of the software that can be exercised by the executable. Automated command-line tests analyze either (1) output generated during test execution, or (2) changes in files and other artifacts that were created or modified during the test. Although these tests may require a custom logic to check test behavior (e.g. to verify changes in a database), file comparisons are commonly used in many system tests. Example 5 illustrates the use of the Python `pyutilib.th` package to support system tests. The `pyutilib.th` package extends the functionality of the !PyUnit test framework. Although this a Python software package, `pyutilib.th` can be easily applied to (1) launch command-line executables, (2) compare their output to baseline outputs, and (3) compare files generated with baseline files. Example 5 executes the `pyomo` command, which is part of the `Pyomo` software. This command is used to construct an optimization model within a Python script, and then apply an optimizer to this model. For example, the command: {{{ pyomo diet1.py diet1.dat }}} is used to solve the classic ``diet`` problem with the `GPLK` integer programming solver. This command generates an output such as: {{{ [ 0.00] Setting up Pyomo environment [ 0.00] Applying Pyomo preprocessing actions [ 0.00] Creating model [ 0.14] Applying solver [ 0.16] Processing results Number of solutions: 1 Solution Information Gap: 0.0 Status: optimal Function Value: 14.8557377 Solver results file: results.yml [ 0.17] Applying Pyomo postprocessing actions [ 0.17] Pyomo Finished }}} Additionally, this command creates a YAML results file, `results.yml`, that provides a detailed summary of optimization results. The following Python script illustrates how the `pyomo` command can be executed, the output captured to a logfile, and then comparisons of the logfile and results files with baseline data. {{{ # Example 5 import pyutilib.th as unittest import pyutilib.subprocess def filter_fn(line): return line.startswith('[') class Tests(unittest.TestCase): def run_pyomo(self, datafiles): # # Execute Pyomo # cmd = 'pyomo '+datafiles pyutilib.subprocess.run(cmd, outfile='pyomo.log') def test_diet1(self): self.run_pyomo('diet1.py diet1.dat') self.assertFileEqualsBaseline('pyomo.log', 'diet1.baseline', filter=filter_fn) self.assertMatchesYamlBaseline('results.yml', 'diet1.yml') def test_Whiskas(self): self.run_pyomo('Whiskas.py') self.assertFileEqualsBaseline('pyomo.log', 'Whiskas.baseline', filter=filter_fn) self.assertMatchesYamlBaseline('results.yml', 'Whiskas.yml') if __name__ == '__main__': unittest.main() }}} This script executes two tests, one for the ``diet`` problem, and one for the ``Whiskas`` problem. In each test, two assertions are performed. First, the logfile `pyomo.log` is compared with a baseline logfile. The `assertFileEqualsBaseline` assertion includes a `filter` option that is used to ignore the lines that start with "[", since these lines contain timing data that will not be the same from one execution to the next. If this assertion passes, then this assertion deletes the `pyomo.log` file for the user. Second, the results file `results.yml` is compared with a baseline Yaml results file. The default behavior for the `assertMatchesYamlBaseline` assertion is to perform an inexact match, which allows for the match of the baseline YAML data to a subset of the results YAML data. This is particularly useful for applications like `pyomo`, where the data generated is not fixed because dictionaries or hash tables are used to order the data. For example, a results YAML file might contain the following: {{{ # ========================================================== # = Solver Results = # ========================================================== # ---------------------------------------------------------- # Problem Information # ---------------------------------------------------------- Problem: - Lower bound: 14.8557377 Upper bound: inf Number of objectives: 1 Number of constraints: 9 Number of variables: 10 Number of nonzeros: 68 Sense: minimize # ---------------------------------------------------------- # Solver Information # ---------------------------------------------------------- Solver: - Status: ok Termination condition: optimal Error rc: 0 # ---------------------------------------------------------- # Solution Information # ---------------------------------------------------------- Solution: - number of solutions: 1 number of solutions displayed: 1 - Gap: 0.0 Status: optimal Objective: Total_Cost: Id: 0 Value: 14.8557377 Variable: Buy[Quarter Pounder w Cheese]: Id: 4 Value: 4.38525 Buy[1% Lowfat Milk]: Id: 5 Value: 3.42213 Buy[Fries, small]: Id: 6 Value: 6.14754 }}} The `Id` data in the objective and variable data blocks are arbitrary values that may differ when `pyomo` is run on different compute platforms or with different versions of Python. These data can be omitted from the baseline YAML file, and the inexact YAML match will correctly ignore the `Id` data in the results YAML file. == Performance Tests == Performance characteristics for software include runtime, scalability, reliability and resource usage (e.g. maximum memory usage). Performance testing is testing measures performance characteristics of software under a particular workload, and it can be used to verify that these performance characteristics meet performance requirements. There are several goals that motivate the use of performance tests: Verify performance goals: Many performance testing frameworks allow users to specify performance goals. These frameworks then provide utilities for executing the software, perhaps iteratively to identify the mean or median behavior. Deviations from the performance goals are treated as test failures in a manner similar to standard unit tests. Generate synthetic load scenarios: A key issue for software developers is developing tests that mimic real-world demands on the software. This is particularly true in environments like web-development, where user behavior represents a stream of events that need to be handle in a real-time manner. Many performance testing frameworks are tailored to support the generation of synthetic test data that can stress the capabilities of software. Monitor performance characteristics: Even without clear performance requirements, performance tests can be invaluable to assess whether software changes impact its performance characteristics. Seemingly innocuous changes in software can lead to significant changes in performance. Performance tests are particularly useful because they can be used to automatically evaluate software in a wide variety of contexts that might not otherwise be evaluated by developers. A wide variety of performance testing tools are available: * [http://en.wikipedia.org/wiki/Software_performance_testing Wikipedia Software Performance Testing] * [http://www.opensourcetesting.org/performance.php Open Source Performance Testing Tools] However, most of these packages appear to be designed to test web applications. The remainder of this section will focus on a strategy for monitoring performance characteristics that leverages `nose`, `pyutilib.th` and `Jenkins`. Performance monitoring is a key issue for many software development projects, and thus this seems a more fundamental testing capability than performance tests that validate specific goals. The [https://software.sandia.gov/trac/pyutilib/wiki/Documentation/pyutilib.th pyutilib.th documentation] describes a plugin for `nose` that allows the user to archive test data. Use the following command-line option with nosetests to collect test data: {{{ nosetests --with-testdata }}} By default, a file named `testdata.csv` will be written to the working directory. If you need to change the name or location of the file, you can set the `--testdata-file` option. The `time` data is automatically recorded by this plugin. Additional data can be reported when this plugin is used with `pyutilib.th`. Tests can call the `recordTestData` method to add additional columns of data. Thus, `nose` can be combined with `pyutilib.th` to support a generic infrastructure for executing command-line tools, parsing their output, monitoring their progress, and otherwise summarizing their performance. For example, the following testing script executes the `PICO` optimizer and captures several key performance statistics: {{{ # Example 6 import pyutilib.th as unittest import pyutilib.subprocess import re class Tests(unittest.TestCase): def run_pico(self, problem): # # Execute PICO # cmd = 'PICO '+problem pyutilib.subprocess.run(cmd, outfile='pico.log') # # Parse logfile # INPUT = open('pico.log', 'r') for line in INPUT: words = re.split('[ \t]+',line.strip()) if len(words) < 2: continue if words[0] == "Created": self.recordTestData('subproblems created', words[1]) elif words[0] == "Bounded": self.recordTestData('subproblems bounded', words[1]) elif words[0] == "Split": self.recordTestData('subproblems split', words[1]) elif words[0] == "Dead": self.recordTestData('subproblems dead', words[1]) elif words[0] == "Started" and words[1] == "Bounding": self.recordTestData('subproblems started bounding', words[2]) elif words[0] == "Started" and words[1] == "Splitting": self.recordTestData('subproblems started splitting', words[2]) def test_SC(self): self.run_pico('SC.mps') def test_bell3a(self): self.run_pico('bell3a') if __name__ == '__main__': unittest.main() }}} This example generates a CSV file like the following: {{{ classname,name,dataname,value test_pico.Tests,test_SC,subproblems split,0 test_pico.Tests,test_SC,subproblems dead,1 test_pico.Tests,test_SC,max memory used,23224 test_pico.Tests,test_SC,subproblems started bounding,1 test_pico.Tests,test_SC,subproblems started splitting,0 test_pico.Tests,test_SC,subproblems created,1 test_pico.Tests,test_SC,subproblems bounded,0 test_pico.Tests,test_SC,time,0.0192639827728 test_pico.Tests,test_bell3a,subproblems split,27730 test_pico.Tests,test_bell3a,subproblems dead,27730 test_pico.Tests,test_bell3a,max memory used,45024 test_pico.Tests,test_bell3a,subproblems started bounding,55461 test_pico.Tests,test_bell3a,subproblems started splitting,27730 test_pico.Tests,test_bell3a,subproblems created,55461 test_pico.Tests,test_bell3a,subproblems bounded,27731 test_pico.Tests,test_bell3a,time,38.1778950691 }}} As with system integration tests, the performance testing infrastructure supported by `pyutilib.th` and `nose` can be used to assess the performance of any command-line tool. However, the tests performed by this script do not perform assertions. Rather, these tests record test data, since the goal of the script is to monitor performance characteristics. == Practical Issues for Robust Testing == === Test Discovery === Test discovery significantly simplifies the management and execution of tests. Starting with Python 2.7, the standard `unittest` package supports simple test discovery. However, the `nose` package provides a more comprehensive capability for test discovery. This package also includes functionality for generating test summaries in XML, including code coverage. TODO: discuss CxxTest... === Robust Testing Scripts === There are a variety of issues the previous Python scripts would need to be addressed to ensure that they work robustly. Consider the following testing script: {{{ # Example 7 import pyutilib.th as unittest import pyutilib.subprocess import pyutilib.services import re import os.path currdir = os.path.dirname(os.path.abspath(__file__))+os.sep pyutilib.services.register_executable('PICO') @unittest.skipIf(pyutilib.services.registered_executable('PICO') is None, "PICO command is not available") class Tests(unittest.TestCase): def run_pico(self, problem): # # Execute PICO # cmd = pyutilib.services.registered_executable('PICO').get_path()+' '+problem pyutilib.subprocess.run(cmd, outfile=currdir+'pico.log') # # Parse logfile # INPUT = open(currdir+'pico.log', 'r') for line in INPUT: words = re.split('[ \t]+',line.strip()) if len(words) < 2: continue if words[0] == "Created": self.recordTestData('subproblems created', words[1]) elif words[0] == "Bounded": self.recordTestData('subproblems bounded', words[1]) elif words[0] == "Split": self.recordTestData('subproblems split', words[1]) elif words[0] == "Dead": self.recordTestData('subproblems dead', words[1]) elif words[0] == "Started" and words[1] == "Bounding": self.recordTestData('subproblems started bounding', words[2]) elif words[0] == "Started" and words[1] == "Splitting": self.recordTestData('subproblems started splitting', words[2]) os.remove(currdir+'pico.log') def test_SC(self): self.run_pico('SC.mps') def test_bell3a(self): self.run_pico('bell3a') if __name__ == '__main__': unittest.main() }}} This script includes the following changes: * Filenames are referenced with absolute paths. This is necessary when working with `nose`, which does not automatically change the working directory to the directory where a testing script resides. * The `PICO` command is registered with `pyutilib.services`, and the test case is skipped if this executable is not found on the user's path. This ensures that the tests execute without errors when the `PICO` command is not available. * The test case is categorized with the `unittest.category` decorator. This allows these tests to be selectively executed. === Defining Test Suites === The Example 6 can be generalized to dynamically defined a test suite. The `pyutilib.th` package supports several methods that can be used to dynamically declare tests. For example, suppose that the `mpsfiles` directory contains MPS files that define integer programming problems. Then the following script can be used to add tests for all files in this directory: {{{ import glob import pyutilib.th as unittest import pyutilib.subprocess import pyutilib.services import re import os.path currdir = os.path.dirname(os.path.abspath(__file__))+os.sep pyutilib.services.register_executable('PICO') # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): def run_pico(self, problem): # # Execute PICO # cmd = pyutilib.services.registered_executable('PICO').get_path()+' '+problem pyutilib.subprocess.run(cmd, outfile=currdir+'pico.log') # # Parse logfile # INPUT = open(currdir+'pico.log', 'r') for line in INPUT: words = re.split('[ \t]+',line.strip()) if len(words) < 2: continue if words[0] == "Created": self.recordTestData('subproblems created', words[1]) elif words[0] == "Bounded": self.recordTestData('subproblems bounded', words[1]) elif words[0] == "Split": self.recordTestData('subproblems split', words[1]) elif words[0] == "Dead": self.recordTestData('subproblems dead', words[1]) elif words[0] == "Started" and words[1] == "Bounding": self.recordTestData('subproblems started bounding', words[2]) elif words[0] == "Started" and words[1] == "Splitting": self.recordTestData('subproblems started splitting', words[2]) os.remove(currdir+'pico.log') # A generic function that performs a test on a particular file # def perform_test(self, file): self.run_pico(currdir+file) # Insert test methods into the TestCases class # for file in glob.glob('mpsfiles/*'): TestCases.add_fn_test(name=file, fn=perform_test) if __name__ == "__main__": unittest.main() }}} More complex test suites can be defined using [http://pypi.python.org/pypi/pyutilib.autotest pyutilib.autotest], which allows the user to define tests with a YAML specification. This packge is tailored for tests where one or more command-line tools are applied to one or more data sets. There are three main steps for configuring and applying `pyutilib.autotest`: 1. Create a configuration file 1. Create a test driver plugin 1. Setup the Python module that is used to execute the tests pyutilib-6.0.0/doc/th/overview.txt000066400000000000000000001136651367314503500171700ustar00rootroot00000000000000= !PyUtilib Test Harness = The !PyUtilib Test Harness is contained in the `pyutilib.th` package, which extends the functionality of the Python unit testing framework. Python's unit testing framework is commonly called `!PyUnit`, but it is managed in the `unittest` package. The `pyutilib.th` package has the following features: Support for new unittest features Testing classes from the `unittest2` package are included in `pyutilib.th`, which allows newer testing features to be used with older versions of Python (2.4, 2.5 and 2.6). Nose decorator The `nose` decorators `nottest` is defined, which supports test skipping Test categorization The decorator `category` is defined, which supports test test categorization. Performance testing A `nose` plugin is provided to support the collection of test data, which is handy for managing performance testing. See the following links for more detailed discussions of testing in Python: * [http://pypi.python.org/pypi/unittest2 unittest2]: Many new features were added to unittest in Python 2.7, including test discovery. unittest2 allows you to use these features with earlier versions of Python. * [http://code.google.com/p/python-nose/ Nose]: A third-party unittest frameworks with automated test discovery. * [http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy The Python Testing Tools Taxonomy]: An extensive list of Python testing tools including functional testing frameworks and mock object libraries. ----- == A Quick Review of the Python Unit Test Framework == The Python unit testing framework, sometimes referred to as "!PyUnit," is a Python language version of JUnit, by Kent Beck and Erich Gamma. !PyUnit and JUnit are the de facto standard unit testing frameworks for Python and Java respectively. This section outlines the capabilities of the `unittest` package, particularly for features supported in Python 2.7. The `unittest` package supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework. To achieve this, `unittest` supports some important concepts: test fixture A `test fixture` represents the preparation needed to perform one or more tests, and any associate cleanup actions. This may involve, for example, creating temporary or proxy databases, directories, or starting a server process. test case A `test case` is the smallest unit of testing. It checks for a specific response to a particular set of inputs. `unittest` provides a base class, `TestCase`, which may be used to create new test cases. test suite A `test suite` is a collection of test cases, test suites, or both. It is used to aggregate tests that should be executed together. test runner A `test runner` is a component which orchestrates the execution of tests and provides the outcome to the user. The test case and test fixture concepts are supported through the `TestCase` and `FunctionTestCase` classes; the former should be used when creating new tests, and the latter can be used when integrating existing test code with a `unittest`-driven framework. When building test fixtures using `TestCase`, the `TestCase.setUp` and `TestCase.tearDown` methods can be overridden to provide initialization and cleanup for the fixture. === A Basic Example === The following example illustrates the use of the classes in `unittest` to define unit tests: {{{ # Example 1 import random import unittest # This class defines a set of tests. The name is not important to the `unittest` framework, # but this class can be referenced from the command-line. # class Test(unittest.TestCase): # This method is called once, before all tests are executed. Note that this # must be declared as a class method. # @classmethod def setUpClass(self): pass # This method is called once, after all tests are executed. Note that this # must be declared as a class method. # @classmethod def tearDownClass(self): pass # This method is called before each test is executed. In this example, a sequence of # integers is created. # def setUp(self): self.seq = range(10) # This method is called after each test is executed. In this example, nothing is done, # but generally this is useful for test cleanup (e.g. to remove temporary files). # def tearDown(self): pass # A test that verifies that a shuffled sequence does not lose any elements. # def test_shuffle(self): random.shuffle(self.seq) self.seq.sort() self.assertEqual(self.seq, range(10)) # A test that verifies that a randomly selected element of the sequence is a member of # the sequence. # def test_choice(self): element = random.choice(self.seq) self.assertTrue(element in self.seq) # A test that verifies that a sample of elements of a sequence contains only members of # the sequence. # def test_sample_many(self): for element in random.sample(self.seq, 5): self.assertTrue(element in self.seq) # A test that verifies that the shuffle function raises an exception on an immutable # sequence. Note that `assertRaises` accepts a function and a list of arguments that # are passed to the function. # def test_shuffle_error(self): self.assertRaises(TypeError, random.shuffle, (1,2,3)) # A test that verifies that a user cannot sample more elements than are available # in the sequence. # def test_sample_error(self): try: random.sample(self.seq, 20) self.fail("Expected ValueError") except ValueError: pass if __name__ == '__main__': unittest.main() }}} A testcase is created by subclassing `unittest.TestCase`. The individual tests are defined with methods whose names start with the letters `test_`. This naming convention informs the test runner about which methods represent tests. When a `TestCase.setUp` method is defined, the test runner will run that method prior to each test. Likewise, if a `TestCase.tearDown` method is defined, the test runner will invoke that method after each test. The crux of each test is a call to an assertion method that attempts to verify a condition of the data generated or execution process. Note that the `assertTrue`, `assertRaise` and `assertEqual` are methods of `unittest`. These methods are used instead of the `assert` function so the test runner can accumulate all test results and produce a report. The final block provides a simple way to run the tests. The `unittest.main` method provides a command-line interface to the test script. When run from the command line, the above script produces an output that looks like this {{{ ..... ---------------------------------------------------------------------- Ran 5 tests in 0.000s OK }}} The command-line interface can specify the execution of specific test suites and individual tests. Suppose that these tests are in the file `tests.py`, then the following command-lines can be used: {{{ python tests.py - run all test suites python tests.py Test - run all 'test*' test methods in Test python tests.py Test.test_shuffle - run Test.test_shuffle }}} Starting with Python 2.7, the `unittest` package can be used to execute tests without requiring the the explicit call to `unittest.main` in the testing module. === Test Discovery === Starting with Python 2.7, the `unittest` package supports simple test discovery. Test discovery can be used from the command line with the following syntax: {{{ cd project_directory python -m unittest discover }}} For now, the `nose` package provides a more comprehensive capability for test discovery. This package includes functionality for generating test summaries in XML, including code coverage. The `nose` package also supports plugins, which enables `pyutilib.th` to customize its behavior to support the collection of test data used for performance testing. The `nosetests` command recursively through subdirectories looking for Python modules that start with `test`. These are processed and their tests are executed and summarized together. Note that `nosetests` only recurses through Python directories, which contain the file `__init__.py`. === Skipping Tests and Expected Failures === Starting with Python 2.7, the `unittest` package supports skipping individual test methods and even whole classes of tests. In addition, it supports marking a test as a "expected failure," a test that is broken and will fail, but shouldn't be counted as a failure. Skipping a test is simply a matter of using the `skip` decorator or one of its conditional variants. Similarly, expected failures are indicated with the use of the `expectedFailure` decorator. For example: {{{ # Example 2 import sys import unittest class MyTestCase(unittest.TestCase): @unittest.skip("This test is skipped") def test_nothing(self): self.fail("shouldn't happen") @unittest.skipIf(sys.version_info > (2,0), "Not supported in this Python version") def test_version(self): # Tests that work for only for an old version of Python pass @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows") def test_windows_support(self): # windows specific testing code pass @unittest.expectedFailure def test_fail(self): self.assertEqual(1, 0, "broken") @unittest.skip("showing class skipping") class MySkippedTestCase(unittest.TestCase): def test_not_run(self): pass if __name__ == '__main__': unittest.main() }}} This example works with Python 2.7. This is the output of running the example above in verbose mode: {{{ test_not_run (__main__.MySkippedTestCase) ... skipped 'showing class skipping' test_fail (__main__.MyTestCase) ... expected failure test_nothing (__main__.MyTestCase) ... skipped 'This test is skipped' test_version (__main__.MyTestCase) ... skipped 'Not supported in this Python version' test_windows_support (__main__.MyTestCase) ... skipped 'requires Windows' ---------------------------------------------------------------------- Ran 5 tests in 0.001s OK (skipped=4, expected failures=1) }}} Note that skipped tests will not have the `setUp` or `tearDown` methods run around them. Similarly, skipped classes will not have the `setUpClass` or `tearDownClass` methods run. === Assertion Methods === The following assertion methods are supported by the `unittest` package: {{{ +-----------------------------------+-----------------------------+---------------+ | Method | Checks that | New in | +===================================+=============================+===============+ | assertEqual(a, b) | ``a == b`` | | +-----------------------------------+-----------------------------+---------------+ | assertNotEqual(a, b) | ``a != b`` | | +-----------------------------------+-----------------------------+---------------+ | assertTrue(x) | ``bool(x) is True`` | | +-----------------------------------+-----------------------------+---------------+ | assertFalse(x) | ``bool(x) is False`` | | +-----------------------------------+-----------------------------+---------------+ | assertIs(a, b) | ``a is b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertIsNot(a, b) | ``a is not b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertIsNone(x) | ``x is None`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertIsNotNone(x) | ``x is not None`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertIn(a, b) | ``a in b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertNotIn(a, b) | ``a not in b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertIsInstance(a, b) | ``isinstance(a, b)`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertNotIsInstance(a, b) | ``not isinstance(a, b)`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertAlmostEqual(a, b) | ``round(a-b, 7) == 0`` | | +-----------------------------------+-----------------------------+---------------+ | assertNotAlmostEqual(a, b) | ``round(a-b, 7) != 0`` | | +-----------------------------------+-----------------------------+---------------+ | assertGreater(a, b) | ``a > b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertGreaterEqual(a, b) | ``a >= b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertLess(a, b) | ``a < b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertLessEqual(a, b) | ``a <= b`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertRegexpMatches(s, re) | ``regex.search(s)`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertNotRegexpMatches(s, re) | ``not regex.search(s)`` | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertItemsEqual(a, b) | sorted(a) == sorted(b) and | 2.7 | +-----------------------------------+-----------------------------+---------------+ | assertDictContainsSubset(a, b) | all the key/value pairs | 2.7 | +-----------------------------------+-----------------------------+---------------+ }}} All the assert methods (except `assertRaises` and `assertRaisesRegexp`) accept a `msg` argument that, if specified, is used as the error message on failure. There are also type-specific methods that are automatically used by `assertEqual`. It isusually not necessary to invoke these methods directly. {{{ +----------------------------------+-----------------------------+--------------+ | Method | Used to compare | New in | +==================================+=============================+==============+ | assertMultiLineEqual(a, b) | strings | 2.7 | +----------------------------------+-----------------------------+--------------+ | assertSequenceEqual(a, b) | sequences | 2.7 | +----------------------------------+-----------------------------+--------------+ | assertListEqual(a, b) | lists | 2.7 | +----------------------------------+-----------------------------+--------------+ | assertTupleEqual(a, b) | tuples | 2.7 | +----------------------------------+-----------------------------+--------------+ | assertSetEqual(a, b) | sets or frozensets | 2.7 | +----------------------------------+-----------------------------+--------------+ | assertDictEqual(a, b) | dicts | 2.7 | +----------------------------------+-----------------------------+--------------+ }}} For historical reasons, some of the `TestCase` methods had one or more aliases that are now deprecated. The following table lists the correct names along with their deprecated aliases: {{{ ====================== =============================== Method Name Deprecated alias(es) ====================== =============================== assertEqual failUnlessEqual, assertEquals assertNotEqual failIfEqual assertTrue failUnless, assert\_ assertFalse failIf assertRaises failUnlessRaises assertAlmostEqual failUnlessAlmostEqual assertNotAlmostEqual failIfAlmostEqual ====================== =============================== }}} ----- == Features of the !PyUtilib Test Harness == === Importing `unittest2` Capabilities === The `unittest` package has continued to evolve with each Python release, and there were significant changes in this package with Python 2.7 and the associated release of `unittest` in Python 3.0. The `unittest2` provides a backport of these facilities for Python 2.4, 2.5 and 2.6. The `pyutilib.th` package imports `unittest2` if it is available, and it provides a `TestCase` class that extends the functionality of `unittest2.TestCase`. Consequently, a user can import `pyutilib.th` and treat it much the same as `unittest2` (or `unittest` in Python 2.7): {{{ # Example 3 import sys import pyutilib.th as unittest class MyTestCase(unittest.TestCase): @unittest.skip("This test is skipped") def test_nothing(self): self.fail("shouldn't happen") @unittest.skipIf(sys.version_info > (2,0), "Not supported in this Python version") def test_version(self): # Tests that work for only for an old version of Python pass @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows") def test_windows_support(self): # windows specific testing code pass @unittest.expectedFailure def test_fail(self): self.assertEqual(1, 0, "broken") @unittest.skip("showing class skipping") class MySkippedTestCase(unittest.TestCase): def test_not_run(self): pass if __name__ == '__main__': unittest.main() }}} === New Assertions === The `pyutilib.th` package provides several new assertions: * `assertMatchesYamlBaseline` - Test if a YAML file matches a baseline YAML file. * `assertFileEqualsBaseline` - Test if a text file matches a baseline text file. * `assertFileEqualsLargeBaseline` - Test if a text file matches a large baseline text file. * `assertFileEqualsBinaryFile` - Test if a binary file matches a baseline binary file. These assertions are described below. `assertMatchesYamlBaseline(testfile, baseline, delete=True, tolerance=0.0, exact=False)` Test that the YAML data in `testfile` equals the YAML data in `baseline`. YAML is a human friendly data serialization standard. If `delete` is True, then `testfile` is deleted when the assertion passes; otherwise, `testfile` is not deleted. If `exact` is True, then this test passes only if the YAML data exactly match. When `exact` is False, then an inexact match is performed, in which all YAML data from `baseline` must be captured by the data in `testdata`. This allows `testdata` to contain additional data that is not checked by this assertion. The `tolerance` parameter specifies the absolute numerical tolerance that is used to compare numerical values that are extracted from `testfile` and `baseline`. `assertFileEqualsBaseline(testfile, baseline, filter=None, delete=True))` Test that the text in `testfile` equals the text in `baseline`. If `delete` is True, then `testfile` is deleted when the assertion passes; otherwise, `testfile` is not deleted. If `filter`` is not `None`, then it specifies a function that is used to ignore lines of text in `testfile` and `baseline`. The filter function is passed a string that represents a line from `testfile`, and if it returns `True` then that line is ignored in the comparison. `assertFileEqualsLargeBaseline(testfile, baseline, delete=True)` Test that the text in `testfile` equals the text in `baseline`. For large files, this comparison is faster than `assertFileEqualsBaseline`, but it provides weaker diagnostic information when the assertion fails. If `delete` is True, then `testfile` is deleted when the assertion passes; otherwise, `testfile` is not deleted. If `filter`` is not `None`, then it specifies a function that is used to ignore lines of text in `testfile` and `baseline`. The filter function is passed a string that represents a line from `testfile`, and if it returns `True` then that line is ignored in the comparison. `assertFileEqualsBinaryFile(testfile, baseline, delete=True)` Perform a binary test for the equivalence of `testfile` and `baseline`. This assertion uses `filecmp.cmp` to compare binary files. If `delete` is True, then `testfile` is deleted when the assertion passes; otherwise, `testfile` is not deleted. === Dynamic Test Declarations === ==== A Motivating Example ==== There are many applications where you want to apply a code to a variety of data sets, and verify that you get the correct output. In this context, what you want is a test generator, which can dynamically create tests based on the set of data sets that are available for testing. Unfortunately, this does not appear to be a feature of `unittest`. The closest I have seen to this, is the support for test generators in the [http://somethingaboutorange.com/mrl/projects/nose nose] package. The test generation feature in `nose` is somewhat limited; it only applies to test functions that are Python generators, and not to similar class methods. The following example shows how to directly insert new test methods into a `unittest.TestCase`: {{{ # Example 4 import glob import unittest # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # A generic function that performs a test on a particular file # def perform_test(self, file): if len(file) > 20: self.fail("Failing in file '%s' because its name is too long." % file) # Insert test methods into the TestCases class # for file in glob.glob("*")+glob.glob("*/*"): tmp = file.replace("/","_") tmp = tmp.replace("\\","_") tmp = tmp.replace(".","_") setattr(TestCases, "test_"+tmp, lambda self,x=file: perform_test(self,x)) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} In this example, the files in the current directory and in all subdirectories are used to create new test methods. For each file, a new test method is added to the `TestCases` class, which does a silly check to see if the file is ``too long``. The `pyutilib.th` package extends this idea by supporting three methods that allow users to dynamically add test functions, baseline tests, and tests that are triggered by module imports. Although these methods operate on the same principle outlined in the previous example, further customization is done to simplify the test creation process, and to make it work robustly when used with `nose`. ==== Adding Function Tests ==== The `TestCase.add_fn_test` method can be used to dynamically add tests that are defined with a function: `add_fn_test(suite=None, name=None, fn=None, options=None)` Add function `fn` to the test case. This function is executed like any other test function within the test case. The `fn` argument specifies the function that is added to the test case. The `name` argument specifies a string that is used define an input for the test function. This name is also used to create the method name inside of the test suite, by translating the '/', '\' and '.' characters into '_'. Tests can be grouped into named suites, using the `suite` option. This is used with the the 'options' argument specifies additional data that is used by the test function to perform the test (see below). For example, the previous example can be rewritten as follows: {{{ # Example 5 import glob import pyutilib.th as unittest # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # A generic function that performs a test on a particular file # def perform_test(self, file): if len(file) > 20: self.fail("Failing in file '%s' because its name is too long." % file) # Insert test methods into the TestCases class # for file in glob.glob("*")+glob.glob("*/*"): TestCases.add_fn_test(name=file, fn=perform_test) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} The `options` and `suite` arguments can be used to pass additional information into a test. For example, suppose that a test is defined by executing a Python script and comparing its output to a baseline file. If the script is `foo.py`, then we assume that the baseline file is `foo.txt`. The following example illustrates how these tests could be dynamically setup using the `options` argument: {{{ # Example 6 import os.path import pyutilib.th as unittest import glob import commands import sys # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # Execute a script and compare its output to a baseline file # def perform_test(self, name): output_txt = commands.getoutput(sys.executable+' '+name).strip() baseline_txt = open(self.get_options(name), 'r').read().strip() self.assertEqual(output_txt, baseline_txt) # Insert test methods into the TestCases class # for file in glob.glob('*.py'): baseline = file[:-3]+'.txt' if os.path.exists(baseline): TestCases.add_fn_test(name=file, fn=perform_test, options=baseline) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} The `suite` option can be used to categorize tests further. This is currently used within !PyUtilib to define test suites within `pyutilib.autotest`. For example, the previous example can be generalized to categorize tests based on their prefix: {{{ # Example 7 import os.path import pyutilib.th as unittest import glob import commands import sys # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # Execute a script and compare its output to a baseline file # def perform_test(self, name, suite): output_txt = commands.getoutput(sys.executable+' '+name).strip() baseline_txt = open(self.get_options(name, suite), 'r').read().strip() self.assertEqual(output_txt, baseline_txt) # Insert test methods into the TestCases class # for file in glob.glob('*.py'): baseline = file[:-3]+'.txt' if os.path.exists(baseline): if file.startswith('test'): TestCases.add_fn_test(suite='test', name=file, fn=perform_test, options=baseline) else: TestCases.add_fn_test(suite='other', name=file, fn=perform_test, options=baseline) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} Note that the use of `suite` changes the required API for the test being added. Also, the call to `get_options` must include the suite name as well. ==== Adding File Comparison Tests ==== The `TestCase.add_baseline_test` method can be used to dynamically add tests that compare output files with corresponding baseline files: `add_baseline_test(cls, name=None, cmd=None, fn=None, baseline=None, filter=None, cwd=None, cmdfile=None)` Add a test that compares a baseline file with a generated output file. The output file can be generated with either a specified command-line, or with a test function. The `name` argument specifies a string that is used to create the method name inside of the test suite, by translating the '/', '\' and '.' characters into '_'. When the `fn` argument is specified, then the output file is generated by a user-defined function. This function has one argument, the value of the `name` argument, and it returns a list of files. The first file is the output file that is compared against the baseline file specified with the `baseline` option. A comparison test is performed with `assertFileEqualsBaseline`, and the `filter` argument is passed into this assertion. If this assertion is successful then all of the files returned by the function are deleted. Otherwise, these are left to assist in the diagnosis of the the test failure. When the `cmd` argument is specified, then the output file is generated by executing this command. The output file used for this test is the test method name, followed by `.out`. If the `cwd` option is specified, then the current working directory is changed to this value before executing the command. If the `cmdfile` argument is specified, then this file contains a shell command that represents the command that has been executed; this is used to debug test failures. A comparison test is performed with `assertFileEqualsBaseline`, and the `filter` argument is passed into this assertion. If this test files, the output file is left to assist test diagnosis. For example, Example 6 can be rewritten using a baseline function test as follows: {{{ # Example 8 import os.path import pyutilib.th as unittest import pyutilib.subprocess import glob import sys # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # Execute a script and compare its output to a baseline file # def perform_test(name): pyutilib.subprocess.run(sys.executable+' '+name, outfile=name+'.out') return [name+'.out'] # Insert test methods into the TestCases class # for file in glob.glob('*.py'): baseline = file[:-3]+'.txt' if os.path.exists(baseline): TestCases.add_baseline_test(name=file, baseline=baseline, fn=perform_test) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} Similarly, Example 6 can be rewritten using a baseline command test as follows: {{{ # Example 9 import os.path import pyutilib.th as unittest import glob import sys # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # Insert test methods into the TestCases class # for file in glob.glob('*.py'): baseline = file[:-3]+'.txt' if os.path.exists(baseline): cmd = sys.executable+' '+file TestCases.add_baseline_test(name=file, baseline=baseline, cmd=cmd) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} It is important to specify the `cwd` argument for Python test modules that are executed with the `nose` test discovery framework. This ensures that the test is executed in the directory where it is defined, which is typically assumed for most tests. The previous example can easily be adapted to provide this argument: {{{ # Example 10 import os.path import pyutilib.th as unittest import glob import sys cwd = os.path.dirname(os.path.abspath(__file__))+os.sep # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # Insert test methods into the TestCases class # for file in glob.glob('*.py'): baseline = file[:-3]+'.txt' if os.path.exists(baseline): cmd = sys.executable+' '+file TestCases.add_baseline_test(name=file, baseline=baseline, cmd=cmd, cwd=cwd) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} ==== Import Tests ==== The `TestCase.add_import_test` method can be used to dynamically add tests that compare output generated by importing a Python module with a corresponding baseline file: `add_import_test(cls, module=None, name=None, cwd=None, baseline=None, filter=None)` Add a test that compares output generated by importing a Python module with a baseline file. The `name` argument specifies a string that is used to create the method name inside of the test suite, by translating the '/', '\' and '.' characters into '_'. An output file is generated by importing a Python moduled specified by the `module` argument. The output file used for this test is the test method name, followed by `.out`. If the `cwd` option is specified, then the current working directory is changed to this value before performing the import. A comparison test is performed with `assertFileEqualsBaseline`, and the `filter` argument is passed into this assertion. If this test files, the output file is left to assist test diagnosis. For example, Example 6 can be rewritten as follows: {{{ # Example 11 import os.path import pyutilib.th as unittest import glob import sys # Defining the class that will contain the new tests # class TestCases(unittest.TestCase): pass # Insert test methods into the TestCases class # for file in glob.glob('*.py'): baseline = file[:-3]+'.txt' if os.path.exists(baseline): cmd = sys.executable+' '+file TestCases.add_import_test(module=file[:-3], name=file, baseline=baseline) # Apply these unittests # if __name__ == "__main__": unittest.main() }}} As with `add_baseline_test`, it is important to specify the `cwd` argument for Python test modules that are executed with the `nose` test discovery framework. Note that testing via Python imports can be fragile. For example, if two Python modules have the same name (e.g. in different test directories), then only one of the import tests will be performed. Python's import caching logic will prevent the execution of both of the test modules. === Test Categorization === In large complex software packages, it is often useful to distinguish between different categories of tests. This allows developers to focus on different aspects of the software package during different stages of the software development process. For example, the following are commonly used test categories: unit Unit tests nightly Tests run nightly (or during a continuous integration process) smoke Fast tests that test overall software functionality performance Expensive performance tests The `category` decorator can be used to modify either `TestCase` declarations, or individual `TestCase` test methods. This decorator accepts a list of strings that declare the test categories that can be used to select the testcase or test method. For example, consider the following test declarations: {{{ # Example 12 import pyutilib.th as unittest class Tests(unittest.TestCase): @unittest.category('foo') def test1(self): print "TEST1" @unittest.category('bar') def test2(self): print "TEST2" @unittest.category('foo', 'bar') class MoreTests(unittest.TestCase): def test3(self): print "TEST3" if __name__ == '__main__': unittest.main() }}} The execution of these tests is controlled by the `PYUTILIB_UNITTEST_CATEGORIES` environment variable. If this variable is not defined, then all tests are executed. If this environment variable is defined with a comma-separated list of test categories, then tests that contain a matching test category are executed. Similarly, `PYTUILIB_UNITTEST_CATEGORIES` can define a single test category. The following table illustrates how different settings for this environment variable impact the execution of these tests: {{{ PYUTILIB_TEST_CATEGORIES | Tests Executed ----------------------------------------------- foo | test1, test3 bar | test2, test3 foo,bar | test1, test2, test3 foo,x | test1, test3 x,y | NONE }}} Finally, note that the `category` decorator is compatible with the boolean attributes recognized by `nose`. For example, the command: {{{ nosetests -a performance }}} will execute all commands labeled with the "performance" category. === NOSE Plugins === The `pyutilib.th` package includes several plugins that enhance the functionality of `nose`. ==== Garbage Collection ==== This module defines a nose plugin to forceably run the Python garbage collector before and after every test. Use the following command-line option with nosetests: {{{ nosetests --with-forced-gc }}} ==== Impose Test Timelimits ==== This module defines a nose plugin to terminate a test after aspecified number of seconds. Use the following command-line option with nosetests :: {{{ nosetests --test-timeout=### }}} ==== Collecting Performance Data ==== This module defines a nose plugin that allows the user to archive test data. Use the following command-line option with nosetests: {{{ nosetests --with-testdata }}} By default, a file named `testdata.csv` will be written to the working directory. If you need to change the name or location of the file, you can set the `--testdata-file` option. Here is an abbreviated version of what the CSV file might look like: {{{ classname,name,time pyutilib.th.tests.test_pyunit.Tester,test_fail,0.00291109085083 pyutilib.th.tests.test_pyunit.Tester,test_pass,5.57899475098e-05 pyutilib.th.tests.test_pyunit.Tester2,test_pass,0.000113964080811 pyutilib.th.tests.test_pyunit.Tester3,test_fail,7.60555267334e-05 }}} The `time` data is automatically recorded by this plugin. Additional data can be reported when this plugin is used with `pyutilib.th`. Tests can call the `recordTestData` method to add additional columns of data. For example, consider the following test: {{{ # Example 13 import pyutilib.th as unittest class Tests(unittest.TestCase): @classmethod def setupClass(self): self.counter = 1 def tearDown(self): self.counter += 1 def test1(self): self.recordTestData('counter', counter) def test2(self): self.recordTestData('counter', counter) }}} When running `nosetests`, the order of test execution may be different from the order of test declarations. Thus, the value of `counter` is used to validate the order of test execution. The command: {{{ nosetests --with-testdata }}} generates the following CSV file: {{{ classname,name,dataname,value test_tmp.Tests,test1,counter,1 test_tmp.Tests,test1,time,2.71797180176e-05 test_tmp.Tests,test2,counter,2 test_tmp.Tests,test2,time,1.59740447998e-05 }}} pyutilib-6.0.0/doc/workflow/000077500000000000000000000000001367314503500160045ustar00rootroot00000000000000pyutilib-6.0.0/doc/workflow/DOEbwlogo.eps000077500000000000000000002431361367314503500203520ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 8.0 %%AI8_CreatorVersion: 8.0.1 %%For: (Shannon Whitehead) (Sandia National Laboratories) %%Title: (DOEbwlogo.eps) %%CreationDate: (4/18/00) (1:43 PM) %%BoundingBox: 164 250 449 535 %%HiResBoundingBox: 164.6206 250.4463 448.3794 534.5537 %%DocumentProcessColors: Black %%DocumentFonts: Times-Bold %%DocumentNeededFonts: Times-Bold %%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 %%+ procset Adobe_typography_AI5 1.0 1 %%+ procset Adobe_ColorImage_AI6 1.3 0 %%+ procset Adobe_Illustrator_AI5 1.3 0 %%+ procset Adobe_cshow 2.0 8 %%+ procset Adobe_shading_AI8 1.0 0 %AI5_FileFormat 4.0 %AI3_ColorUsage: Black&White %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) %%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4 %%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 30 31 582 761 %AI3_DocumentPreview: PC_ColorTIFF %AI5_ArtSize: 612 792 %AI5_RulerUnits: 0 %AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI8_OpenToView: -270 804 1 1146 827 18 0 1 3 40 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:30 31 %%AI3_PaperRect:-30 761 582 -31 %%AI3_Margin:30 -31 -30 31 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_level2_AI5 1.2 0 %%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) %%Version: 1.2 0 %%CreationDate: (04/10/93) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_level2_AI5 26 dict dup begin put /packedarray where not { userdict begin /packedarray { array astore readonly } bind def /setpacking /pop load def /currentpacking false def end 0 } if pop userdict /defaultpacking currentpacking put true setpacking /initialize { Adobe_level2_AI5 begin } bind def /terminate { currentdict Adobe_level2_AI5 eq { end } if } bind def mark /setcustomcolor where not { /findcmykcustomcolor { (AI8_CMYK_CustomColor) 6 packedarray } bind def /findrgbcustomcolor { (AI8_RGB_CustomColor) 5 packedarray } bind def /setcustomcolor { exch aload pop dup (AI8_CMYK_CustomColor) eq { pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } { dup (AI8_RGB_CustomColor) eq { pop pop 3 { 1 exch sub 3 index mul 1 exch sub 3 1 roll } repeat 4 -1 roll pop setrgbcolor } { pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } ifelse } ifelse } def } if /setAIseparationgray { false setoverprint 0 setgray /setseparationgray where{ pop setseparationgray }{ /setcolorspace where{ pop [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace 1 exch sub setcolor }{ setgray }ifelse }ifelse } def /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put userdict /level2? systemdict /languagelevel known dup { pop systemdict /languagelevel get 2 ge } if put /level2ScreenFreq { begin 60 HalftoneType 1 eq { pop Frequency } if HalftoneType 2 eq { pop GrayFrequency } if HalftoneType 5 eq { pop Default level2ScreenFreq } if end } bind def userdict /currentScreenFreq level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put level2? not { /setcmykcolor where not { /setcmykcolor { exch .11 mul add exch .59 mul add exch .3 mul add 1 exch sub setgray } def } if /currentcmykcolor where not { /currentcmykcolor { 0 0 0 1 currentgray sub } def } if /setoverprint where not { /setoverprint /pop load def } if /selectfont where not { /selectfont { exch findfont exch dup type /arraytype eq { makefont } { scalefont } ifelse setfont } bind def } if /cshow where not { /cshow { [ 0 0 5 -1 roll aload pop ] cvx bind forall } bind def } if } if cleartomark /anyColor? { add add add 0 ne } bind def /testColor { gsave setcmykcolor currentcmykcolor grestore } bind def /testCMYKColorThrough { testColor anyColor? } bind def userdict /composite? 1 0 0 0 testCMYKColorThrough 0 1 0 0 testCMYKColorThrough 0 0 1 0 testCMYKColorThrough 0 0 0 1 testCMYKColorThrough and and and put composite? not { userdict begin gsave /cyan? 1 0 0 0 testCMYKColorThrough def /magenta? 0 1 0 0 testCMYKColorThrough def /yellow? 0 0 1 0 testCMYKColorThrough def /black? 0 0 0 1 testCMYKColorThrough def grestore /isCMYKSep? cyan? magenta? yellow? black? or or or def /customColor? isCMYKSep? not def end } if end defaultpacking setpacking %%EndResource %%BeginResource: procset Adobe_typography_AI5 1.0 1 %%Title: (Typography Operators) %%Version: 1.0 1 %%CreationDate:(6/10/1996) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_typography_AI5 68 dict dup begin put /initialize { begin begin Adobe_typography_AI5 begin Adobe_typography_AI5 { dup xcheck { bind } if pop pop } forall end end end Adobe_typography_AI5 begin } def /terminate { currentdict Adobe_typography_AI5 eq { end } if } def /modifyEncoding { /_tempEncode exch ddef /_pntr 0 ddef { counttomark -1 roll dup type dup /marktype eq { pop pop exit } { /nametype eq { _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll put } { /_pntr exch ddef } ifelse } ifelse } loop _tempEncode } def /havefont { systemdict /languagelevel known { /Font resourcestatus dup { exch pop exch pop } if } { systemdict /FontDirectory get 1 index known { pop true } { systemdict /fileposition known { dup length 6 add exch Ss 6 250 getinterval cvs pop Ss exch 0 exch getinterval status { pop pop pop pop true } { false } ifelse } { pop false } ifelse } ifelse } ifelse } def /TE { StandardEncoding 256 array copy modifyEncoding /_nativeEncoding exch def } def /subststring { exch 2 index exch search { exch pop exch dup () eq { pop exch concatstring } { 3 -1 roll exch concatstring concatstring } ifelse exch pop true } { pop pop false } ifelse } def /concatstring { 1 index length 1 index length 1 index add string dup 0 5 index putinterval dup 2 index 4 index putinterval 4 1 roll pop pop pop } def % /TZ { dup type /arraytype eq { /_wv exch def } { /_wv 0 def } ifelse /_useNativeEncoding exch def 2 index havefont { 3 index 255 string cvs dup (_Symbol_) eq { pop 2 index findfont } { 1 index 0 eq { dup length 1 sub 1 exch getinterval cvn findfont } { pop 2 index findfont } ifelse } ifelse } { dup 1 eq { 2 index 64 string cvs dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring { exch pop dup havefont { findfont false } { pop true } ifelse } { pop dup (-90ms-RKSJ-) (-Ext-RKSJ-) subststring { exch pop dup havefont { findfont false } { pop true } ifelse } { pop pop true } ifelse } ifelse { 1 index 1 eq { /Ryumin-Light-Ext-RKSJ-V havefont {/Ryumin-Light-Ext-RKSJ-V} {/Courier} ifelse } { /Ryumin-Light-83pv-RKSJ-H havefont {/Ryumin-Light-83pv-RKSJ-H} {/Courier} ifelse } ifelse findfont [1 0 0.5 1 0 0] makefont } if } { /Courier findfont } ifelse } ifelse _wv type /arraytype eq { _wv makeblendedfont } if dup length 10 add dict begin mark exch { 1 index /FID ne { def } if cleartomark mark } forall pop /FontScript exch def /FontDirection exch def /FontRequest exch def /FontName exch def counttomark 0 eq { 1 _useNativeEncoding eq { /Encoding _nativeEncoding def } if cleartomark } { /Encoding load 256 array copy modifyEncoding /Encoding exch def } ifelse FontName currentdict end definefont pop } def /tr { _ax _ay 3 2 roll } def /trj { _cx _cy _sp _ax _ay 6 5 roll } def /a0 { /Tx { dup currentpoint 3 2 roll tr _psf newpath moveto tr _ctm _pss } ddef /Tj { dup currentpoint 3 2 roll trj _pjsf newpath moveto trj _ctm _pjss } ddef } def /a1 { W B } def /e0 { /Tx { tr _psf } ddef /Tj { trj _pjsf } ddef } def /e1 { W F } def /i0 { /Tx { tr sp } ddef /Tj { trj jsp } ddef } def /i1 { W N } def /o0 { /Tx { tr sw rmoveto } ddef /Tj { trj swj rmoveto } ddef } def /r0 { /Tx { tr _ctm _pss } ddef /Tj { trj _ctm _pjss } ddef } def /r1 { W S } def /To { pop _ctm currentmatrix pop } def /TO { iTe _ctm setmatrix newpath } def /Tp { pop _tm astore pop _ctm setmatrix _tDict begin /W { } def /h { } def } def /TP { end iTm 0 0 moveto } def /Tr { _render 3 le { currentpoint newpath moveto } if dup 8 eq { pop 0 } { dup 9 eq { pop 1 } if } ifelse dup /_render exch ddef _renderStart exch get load exec } def /iTm { _ctm setmatrix _tm concat _shift aload pop _lineorientation 1 eq { exch } if translate _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale } def /Tm { _tm astore pop iTm 0 0 moveto } def /Td { _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto } def /iTe { _render -1 eq { } { _renderEnd _render get dup null ne { load exec } { pop } ifelse } ifelse /_render -1 ddef } def /Ta { pop } def /Tf { 1 index type /nametype eq { dup 0.75 mul 1 index 0.25 mul neg } if /_fontDescent exch ddef /_fontAscent exch ddef /_fontSize exch ddef /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef /_fontHeight _fontSize ddef findfont _fontSize scalefont setfont } def /Tl { pop neg 0 exch _leading astore pop } def /Tt { pop } def /TW { 3 npop } def /Tw { /_cx exch ddef } def /TC { 3 npop } def /Tc { /_ax exch ddef } def /Ts { 0 exch _shift astore pop currentpoint iTm moveto } def /Ti { 3 npop } def /Tz { count 1 eq { 100 } if 100 div exch 100 div exch _scale astore pop iTm } def /TA { pop } def /Tq { pop } def /Tg { pop } def /TG { pop } def /Tv { /_lineorientation exch ddef } def /TV { /_charorientation exch ddef } def /Ty { dup /_yokoorientation exch ddef 1 sub neg Tv } def /TY { pop } def /T~ { Tx } def /Th { pop pop pop pop pop } def /TX { pop } def /Tk { _fontSize mul 1000 div _lineorientation 0 eq { neg 0 } { 0 exch } ifelse rmoveto pop } def /TK { 2 npop } def /T* { _leading aload pop _lineorientation 0 ne { exch } if Td } def /T*- { _leading aload pop _lineorientation 0 ne { exch } if exch neg exch neg Td } def /T- { _ax neg 0 rmoveto _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse } def /T+ { } def /TR { _ctm currentmatrix pop _tm astore pop iTm 0 0 moveto } def /TS { currentfont 3 1 roll /_Symbol_ findfont _fontSize scalefont setfont 0 eq { Tx } { Tj } ifelse setfont } def /Xb { pop pop } def /Tb /Xb load def /Xe { pop pop pop pop } def /Te /Xe load def /XB { } def /TB /XB load def currentdict readonly pop end setpacking % /X^ { currentfont 5 1 roll dup havefont { findfont _fontSize scalefont setfont } { pop exch } ifelse 2 index 0 eq { Tx } { Tj } ifelse pop pop setfont } def /T^ /X^ load def %%EndResource %%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 userdict /Adobe_ColorImage_AI6 known not { userdict /Adobe_ColorImage_AI6 53 dict put } if userdict /Adobe_ColorImage_AI6 get begin /initialize { Adobe_ColorImage_AI6 begin Adobe_ColorImage_AI6 { dup type /arraytype eq { dup xcheck { bind } if } if pop pop } forall } def /terminate { end } def currentdict /Adobe_ColorImage_AI6_Vars known not { /Adobe_ColorImage_AI6_Vars 41 dict def } if Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /_newproc null def /_proc1 null def /_proc2 null def /sourcearray 4 array def /_ptispace null def /_ptiname null def /_pti0 0 def /_pti1 0 def /_ptiproc null def /_ptiscale 0 def /_pticomps 0 def /_ptibuf 0 string def /_gtigray 0 def /_cticmyk null def /_rtirgb null def /XIEnable true def /XIType 0 def /XIEncoding 0 def /XICompression 0 def /XIChannelCount 0 def /XIBitsPerPixel 0 def /XIImageHeight 0 def /XIImageWidth 0 def /XIImageMatrix null def /XIRowBytes 0 def /XIFile null def /XIBuffer1 null def /XIBuffer2 null def /XIBuffer3 null def /XIDataProc null def /XIColorSpace /DeviceGray def /XIColorValues 0 def /XIPlateList false def end /ci6colorimage /colorimage where {/colorimage get}{null} ifelse def /ci6image systemdict /image get def /ci6curtransfer systemdict /currenttransfer get def /ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def /ci6foureq { 4 index ne { pop pop pop false }{ 4 index ne { pop pop false }{ 4 index ne { pop false }{ 4 index eq } ifelse } ifelse } ifelse } def /ci6testplate { Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /setcmykcolor where { pop gsave 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub grestore 1 0 0 0 ci6foureq { /plateindex 0 def }{ 0 1 0 0 ci6foureq { /plateindex 1 def }{ 0 0 1 0 ci6foureq { /plateindex 2 def }{ 0 0 0 1 ci6foureq { /plateindex 3 def }{ 0 0 0 0 ci6foureq { /plateindex 5 def } if } ifelse } ifelse } ifelse } ifelse pop pop pop pop } if plateindex end } def /ci6concatprocs { /packedarray where { pop dup type /packedarraytype eq 2 index type /packedarraytype eq or }{ false } ifelse { /_proc2 exch cvlit def /_proc1 exch cvlit def _proc1 aload pop _proc2 aload pop _proc1 length _proc2 length add packedarray cvx }{ /_proc2 exch cvlit def /_proc1 exch cvlit def /_newproc _proc1 length _proc2 length add array def _newproc 0 _proc1 putinterval _newproc _proc1 length _proc2 putinterval _newproc cvx } ifelse } def /ci6istint { type /arraytype eq } def /ci6isspot { dup type /arraytype eq { dup length 1 sub get /Separation eq }{ pop false } ifelse } def /ci6spotname { dup ci6isspot {dup length 2 sub get}{pop ()} ifelse } def /ci6altspace { aload pop pop pop ci6colormake } def /ci6numcomps { dup /DeviceGray eq { pop 1 }{ dup /DeviceRGB eq { pop 3 }{ /DeviceCMYK eq { 4 }{ 1 } ifelse } ifelse } ifelse } def /ci6marksplate { dup /DeviceGray eq { pop plateindex 3 eq }{ dup /DeviceRGB eq { pop plateindex 5 ne }{ dup /DeviceCMYK eq { pop plateindex 5 ne }{ dup ci6isspot { /findcmykcustomcolor where { pop dup length 2 sub get 0.1 0.1 0.1 0.1 5 -1 roll findcmykcustomcolor 1 setcustomcolor systemdict /currentgray get exec 1 ne }{ pop plateindex 5 ne } ifelse }{ pop plateindex 5 ne } ifelse } ifelse } ifelse } ifelse } def /ci6colormake { dup ci6numcomps exch 1 index 2 add 1 roll dup 1 eq {pop}{array astore} ifelse exch } def /ci6colorexpand { dup ci6spotname exch dup ci6istint { ci6altspace exch 4 1 roll }{ 1 3 1 roll } ifelse } def /ci6colortint { dup /DeviceGray eq { 3 1 roll 1 exch sub mul 1 exch sub exch }{ dup /DeviceRGB eq { 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch }{ dup /DeviceCMYK eq { 3 1 roll {1 index mul exch} forall pop 4 array astore exch }{ 3 1 roll mul exch } ifelse } ifelse } ifelse } def /ci6colortocmyk { dup /DeviceGray eq { pop 1 exch sub 0 0 0 4 -1 roll 4 array astore }{ dup /DeviceRGB eq { pop aload pop _rgbtocmyk 4 array astore }{ dup /DeviceCMYK eq { pop }{ ci6altspace ci6colortint ci6colortocmyk } ifelse } ifelse } ifelse } def /ci6makeimagedict { 7 dict begin /ImageType 1 def /Decode exch def /DataSource exch def /ImageMatrix exch def /BitsPerComponent exch def /Height exch def /Width exch def currentdict end } def /ci6stringinvert { 0 1 2 index length 1 sub { dup 2 index exch get 255 exch sub 2 index 3 1 roll put } for } def /ci6stringknockout { 0 1 2 index length 1 sub { 255 2 index 3 1 roll put } for } def /ci6stringapply { 0 1 4 index length 1 sub { dup 4 index exch get 3 index 3 1 roll 3 index exec } for pop exch pop } def /ci6walkrgbstring { 0 3 index dup length 1 sub 0 3 3 -1 roll { 3 getinterval {} forall 5 index exec 3 index } for 5 {pop} repeat } def /ci6walkcmykstring { 0 3 index dup length 1 sub 0 4 3 -1 roll { 4 getinterval {} forall 6 index exec 3 index } for 5 { pop } repeat } def /ci6putrgbtograystr { .11 mul exch .59 mul add exch .3 mul add cvi 3 copy put pop 1 add } def /ci6putcmyktograystr { exch .11 mul add exch .59 mul add exch .3 mul add dup 255 gt { pop 255 } if 255 exch sub cvi 3 copy put pop 1 add } def /ci6rgbtograyproc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec XIBuffer3 dup 3 1 roll /ci6putrgbtograystr load exch ci6walkrgbstring end } def /ci6cmyktograyproc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec XIBuffer3 dup 3 1 roll /ci6putcmyktograystr load exch ci6walkcmykstring end } def /ci6separatecmykproc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec XIBuffer3 0 2 index plateindex 4 2 index length 1 sub { get 255 exch sub 3 copy put pop 1 add 2 index } for pop pop exch pop end } def /ci6compositeimage { dup 1 eq { pop pop image }{ /ci6colorimage load null ne { ci6colorimage }{ 3 1 roll pop sourcearray 0 3 -1 roll put 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load image } ifelse } ifelse } def /ci6knockoutimage { gsave 0 ci6curtransfer exec 1 ci6curtransfer exec eq { 0 ci6curtransfer exec 0.5 lt }{ 0 ci6curtransfer exec 1 ci6curtransfer exec gt } ifelse {{pop 0}}{{pop 1}} ifelse systemdict /settransfer get exec ci6compositeimage grestore } def /ci6drawimage { ci6testplate -1 eq { pop ci6compositeimage }{ dup type /arraytype eq { dup length plateindex gt {plateindex get}{pop false} ifelse }{ { true }{ dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse } ifelse } ifelse { dup 1 eq { pop pop ci6image }{ dup 3 eq { ci6compositeimage }{ pop pop sourcearray 0 3 -1 roll put /ci6separatecmykproc load ci6image } ifelse } ifelse }{ ci6curoverprint { 7 {pop} repeat }{ ci6knockoutimage } ifelse } ifelse } ifelse } def /ci6proctintimage { /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store /_pticomps _ptispace ci6numcomps store /_ptiscale _pti1 _pti0 sub store level2? { _ptiname length 0 gt version cvr 2012 ge and { [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace [_pti0 _pti1] ci6makeimagedict ci6image }{ [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace [0 255] ci6makeimagedict ci6image } ifelse }{ _pticomps 1 eq { { dup { 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put } ci6stringapply } ci6concatprocs ci6image }{ { dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse _ptibuf { exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc _pticomps 2 add -2 roll _pticomps 1 sub -1 0 { 1 index add 2 index exch 5 -1 roll 255 mul cvi put } for pop pop } ci6stringapply } ci6concatprocs false _pticomps /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse } ifelse } ifelse } def /ci6graytintimage { /_gtigray 5 -1 roll store {1 _gtigray sub mul 1 exch sub} 4 1 roll /DeviceGray ci6proctintimage } def /ci6cmyktintimage { /_cticmyk 5 -1 roll store {_cticmyk {1 index mul exch} forall pop} 4 1 roll /DeviceCMYK ci6proctintimage } def /ci6rgbtintimage { /_rtirgb 5 -1 roll store {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll /DeviceRGB ci6proctintimage } def /ci6tintimage { ci6testplate -1 eq { ci6colorexpand 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll dup /DeviceGray eq { pop ci6graytintimage }{ dup /DeviceRGB eq { pop ci6rgbtintimage }{ pop ci6cmyktintimage } ifelse } ifelse }{ dup ci6marksplate { plateindex 5 lt { ci6colortocmyk plateindex get dup 0 eq ci6curoverprint and { 7 {pop} repeat }{ 1 exch sub exch {1 0}{0 1} ifelse () ci6graytintimage } ifelse }{ pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage } ifelse }{ ci6curoverprint { 8 {pop} repeat }{ pop pop pop {pop 1} 0 1 () /DeviceGray ci6proctintimage } ifelse } ifelse } ifelse } def /XINullImage { } def /XIImageMask { XIImageWidth XIImageHeight false [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load imagemask } def /XIImageTint { XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load XIType 3 eq XIColorValues XIColorSpace ci6tintimage } def /XIImage { XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load false XIChannelCount XIPlateList ci6drawimage } def /XG { pop pop } def /XF { 13 {pop} repeat } def /Xh { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def /XIImageHeight exch def /XIImageWidth exch def /XIImageMatrix exch def 0 0 moveto XIImageMatrix concat XIImageWidth XIImageHeight scale /_lp /null ddef _fc /_lp /imagemask ddef end } def /XH { Adobe_ColorImage_AI6_Vars begin grestore end } def /XIEnable { Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put } def /XC { Adobe_ColorImage_AI6_Vars begin ci6colormake /XIColorSpace exch def /XIColorValues exch def end } def /XIPlates { Adobe_ColorImage_AI6_Vars begin /XIPlateList exch def end } def /XI { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def cvi dup 256 idiv /XICompression exch store 256 mod /XIEncoding exch store pop pop /XIChannelCount exch def /XIBitsPerPixel exch def /XIImageHeight exch def /XIImageWidth exch def pop pop pop pop /XIImageMatrix exch def XIBitsPerPixel 1 eq { XIImageWidth 8 div ceiling cvi }{ XIImageWidth XIChannelCount mul } ifelse /XIRowBytes exch def XIEnable { /XIBuffer3 XIImageWidth string def XICompression 0 eq { /XIBuffer1 XIRowBytes string def XIEncoding 0 eq { {currentfile XIBuffer1 readhexstring pop} }{ {currentfile XIBuffer1 readstring pop} } ifelse }{ /XIBuffer1 256 string def /XIBuffer2 XIRowBytes string def {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} /ASCII85Decode filter /DCTDecode filter /XIFile exch def {XIFile XIBuffer2 readstring pop} } ifelse /XIDataProc exch def XIType 1 ne { 0 setgray } if XIType 1 eq { XIImageMask }{ XIType 2 eq XIType 3 eq or { XIImageTint }{ XIImage } ifelse } ifelse }{ XINullImage } ifelse /XIPlateList false def grestore end } def end %%EndProcSet %%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 %%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) %%Version: 1.3 0 %%CreationDate: (3/7/1994) () %%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin put /_?cmyk false def /_eo false def /_lp /none def /_pf { } def /_ps { } def /_psf { } def /_pss { } def /_pjsf { } def /_pjss { } def /_pola 0 def /_doClip 0 def /cf currentflat def /_lineorientation 0 def /_charorientation 0 def /_yokoorientation 0 def /_tm matrix def /_renderStart [ /e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 ] def /_renderEnd [ null null null null /i1 /i1 /i1 /i1 ] def /_render -1 def /_shift [0 0] def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [ 0 0 ] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fontSize 0 def /_fontAscent 0 def /_fontDescent 0 def /_fontHeight 0 def /_fontRotateAdjust 0 def /Ss 256 string def Ss 0 (fonts/) putinterval /_cnt 0 def /_scale [1 1] def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /_tDict 2 dict def /_hfname 100 string def /_hffound false def /Tx { } def /Tj { } def /CRender { } def /_AI3_savepage { } def /_gf null def /_cf 4 array def /_rgbf 3 array def /_if null def /_of false def /_fc { } def /_gs null def /_cs 4 array def /_rgbs 3 array def /_is null def /_os false def /_sc { } def /_pd 1 dict def /_ed 15 dict def /_pm matrix def /_fm null def /_fd null def /_fdd null def /_sm null def /_sd null def /_sdd null def /_i null def /_lobyte 0 def /_hibyte 0 def /_cproc null def /_cscript 0 def /_hvax 0 def /_hvay 0 def /_hvwb 0 def /_hvcx 0 def /_hvcy 0 def /_bitfont null def /_bitlobyte 0 def /_bithibyte 0 def /_bitkey null def /_bitdata null def /_bitindex 0 def /discardSave null def /buffer 256 string def /beginString null def /endString null def /endStringLength null def /layerCnt 1 def /layerCount 1 def /perCent (%) 0 get def /perCentSeen? false def /newBuff null def /newBuffButFirst null def /newBuffLast null def /clipForward? false def end userdict /Adobe_Illustrator_AI5 known not { userdict /Adobe_Illustrator_AI5 100 dict put } if userdict /Adobe_Illustrator_AI5 get begin /initialize { Adobe_Illustrator_AI5 dup begin Adobe_Illustrator_AI5_vars begin /_aicmykps where {pop /_?cmyk _aicmykps def}if discardDict { bind pop pop } forall dup /nc get begin { dup xcheck 1 index type /operatortype ne and { bind } if pop pop } forall end newpath } def /terminate { end end } def /_ null def /ddef { Adobe_Illustrator_AI5_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /hswj { dup stringwidth 3 2 roll { _hvwb eq { exch _hvcx add exch _hvcy add } if exch _hvax add exch _hvay add } cforall } def /vswj { 0 0 3 -1 roll { dup 255 le _charorientation 1 eq and { dup cstring stringwidth 5 2 roll _hvwb eq { exch _hvcy sub exch _hvcx sub } if exch _hvay sub exch _hvax sub 4 -1 roll sub exch 3 -1 roll sub exch } { _hvwb eq { exch _hvcy sub exch _hvcx sub } if exch _hvay sub exch _hvax sub _fontHeight sub } ifelse } cforall } def /swj { 6 1 roll /_hvay exch ddef /_hvax exch ddef /_hvwb exch ddef /_hvcy exch ddef /_hvcx exch ddef _lineorientation 0 eq { hswj } { vswj } ifelse } def /sw { 0 0 0 6 3 roll swj } def /vjss { 4 1 roll { dup cstring dup length 1 eq _charorientation 1 eq and { -90 rotate currentpoint _fontRotateAdjust add moveto gsave false charpath currentpoint 5 index setmatrix stroke grestore _fontRotateAdjust sub moveto _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto 90 rotate } { currentpoint _fontHeight sub 5 index sub 3 index _sp eq { 9 index sub } if currentpoint exch 4 index stringwidth pop 2 div sub exch _fontAscent sub moveto gsave 2 index false charpath 6 index setmatrix stroke grestore moveto pop pop } ifelse } cforall 6 npop } def /hjss { 4 1 roll { dup cstring gsave false charpath currentpoint 5 index setmatrix stroke grestore moveto _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto } cforall 6 npop } def /jss { _lineorientation 0 eq { hjss } { vjss } ifelse } def /ss { 0 0 0 7 3 roll jss } def /vjsp { 4 1 roll { dup cstring dup length 1 eq _charorientation 1 eq and { -90 rotate currentpoint _fontRotateAdjust add moveto false charpath currentpoint _fontRotateAdjust sub moveto _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto 90 rotate } { currentpoint _fontHeight sub 5 index sub 3 index _sp eq { 9 index sub } if currentpoint exch 4 index stringwidth pop 2 div sub exch _fontAscent sub moveto 2 index false charpath moveto pop pop } ifelse } cforall 6 npop } def /hjsp { 4 1 roll { dup cstring false charpath _sp eq { 5 index 5 index rmoveto } if 2 copy rmoveto } cforall 6 npop } def /jsp { matrix currentmatrix _lineorientation 0 eq {hjsp} {vjsp} ifelse } def /sp { matrix currentmatrix 0 0 0 7 3 roll _lineorientation 0 eq {hjsp} {vjsp} ifelse } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf { } def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /XR { 0 ne /_eo exch ddef } def /H { } def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq { _eo {eoclip} {clip} ifelse /_doClip 0 ddef } if newpath } { /CRender { N } ddef } ifelse } def /n { N } def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf } ifelse } { /CRender { F } ddef } ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps } ifelse } { /CRender { S } ddef } ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { S } ifelse } { /CRender { B } ddef } ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type /stringtype eq { pop } if } if newpath } def /u { } def /U { } def /q { _pola 0 eq { gsave } if } def /Q { _pola 0 eq { grestore } if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq { CRender } if } def /D { pop } def /*w { } def /*W { } def /` { /_i save ddef clipForward? { nulldevice } if 6 1 roll 4 npop concat pop userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash /setstrokeadjust where {pop false setstrokeadjust} if newpath 0 setgray false setoverprint } def /~ { end _i restore } def /_rgbtocmyk { 3 { 1 exch sub 3 1 roll } repeat 3 copy 1 4 1 roll 3 { 3 index 2 copy gt { exch } if pop 4 1 roll } repeat pop pop pop 4 1 roll 3 { 3 index sub 3 1 roll } repeat 4 -1 roll } def /setrgbfill { _rgbf astore pop /_fc { _lp /fill ne { _of setoverprint _rgbf aload pop setrgbcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /setrgbstroke { _rgbs astore pop /_sc { _lp /stroke ne { _os setoverprint _rgbs aload pop setrgbcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /Xa { _?cmyk { 3 npop k }{ setrgbfill 4 npop } ifelse } def /XA { _?cmyk { 3 npop K }{ setrgbstroke 4 npop } ifelse } def /Xs { /_gf exch ddef 5 npop /_fc { _lp /fill ne { _of setoverprint _gf setAIseparationgray /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /XS { /_gs exch ddef 5 npop /_sc { _lp /stroke ne { _os setoverprint _gs setAIseparationgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /Xx { exch /_gf exch ddef 0 eq { findcmykcustomcolor }{ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse { 4 1 roll 3 npop findcmykcustomcolor }{ 8 -4 roll 4 npop findrgbcustomcolor } ifelse } ifelse /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /XX { exch /_gs exch ddef 0 eq { findcmykcustomcolor }{ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse { 4 1 roll 3 npop findcmykcustomcolor }{ 8 -4 roll 4 npop findrgbcustomcolor } ifelse } ifelse /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc hvashow } ddef /_pjsf { _fc hvawidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /XK { 3 -1 roll pop 0 eq { 1 exch sub 3 {dup 3 1 roll mul 5 1 roll} repeat mul 4 1 roll K } { 1 exch sub 4 1 roll 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat 4 -1 roll pop XA } ifelse } def /Xk { 3 -1 roll pop 0 eq { 1 exch sub 3 {dup 3 1 roll mul 5 1 roll} repeat mul 4 1 roll k } { 1 exch sub 4 1 roll 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat 4 -1 roll pop Xa } ifelse } def /A { pop } def /annotatepage { userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse } def /XT { pop pop } def /Xt { pop } def /discard { save /discardSave exch store discardDict begin /endString exch store gt38? { 2 add } if load stopped pop end discardSave restore } bind def userdict /discardDict 7 dict dup begin put /pre38Initialize { /endStringLength endString length store /newBuff buffer 0 endStringLength getinterval store /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store /newBuffLast newBuff endStringLength 1 sub 1 getinterval store } def /shiftBuffer { newBuff 0 newBuffButFirst putinterval newBuffLast 0 currentfile read not { stop } if put } def 0 { pre38Initialize mark currentfile newBuff readstring exch pop { { newBuff endString eq { cleartomark stop } if shiftBuffer } loop } { stop } ifelse } def 1 { pre38Initialize /beginString exch store mark currentfile newBuff readstring exch pop { { newBuff beginString eq { /layerCount dup load 1 add store } { newBuff endString eq { /layerCount dup load 1 sub store layerCount 0 eq { cleartomark stop } if } if } ifelse shiftBuffer } loop } if } def 2 { mark { currentfile buffer {readline} stopped { % assume error was due to overfilling the buffer }{ not { stop } if endString eq { cleartomark stop } if }ifelse } loop } def 3 { /beginString exch store /layerCnt 1 store mark { currentfile buffer {readline} stopped { % assume error was due to overfilling the buffer }{ not { stop } if dup beginString eq { pop /layerCnt dup load 1 add store } { endString eq { layerCnt 1 eq { cleartomark stop } { /layerCnt dup load 1 sub store } ifelse } if } ifelse }ifelse } loop } def end userdict /clipRenderOff 15 dict dup begin put { /n /N /s /S /f /F /b /B } { { _doClip 1 eq { /_doClip 0 ddef _eo {eoclip} {clip} ifelse } if newpath } def } forall /Tr /pop load def /Bb {} def /BB /pop load def /Bg {12 npop} def /Bm {6 npop} def /Bc /Bm load def /Bh {4 npop} def end /Lb { 6 npop 7 2 roll 5 npop 0 eq { 0 eq { (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard } { /clipForward? true def /Tx /pop load def /Tj /pop load def currentdict end clipRenderOff begin begin } ifelse } { 0 eq { save /discardSave exch store } if } ifelse } bind def /LB { discardSave dup null ne { restore } { pop clipForward? { currentdict end end begin /clipForward? false ddef } if } ifelse } bind def /Pb { pop pop 0 (%AI5_EndPalette) discard } bind def /Np { 0 (%AI5_End_NonPrinting--) discard } bind def /Ln /pop load def /Ap /pop load def /Ar { 72 exch div 0 dtransform dup mul exch dup mul add sqrt dup 1 lt { pop 1 } if setflat } def /Mb { q } def /Md { } def /MB { Q } def /nc 4 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setrgbcolor { 3 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end /XP { 4 npop } bind def /XD { pop } bind def end setpacking %%EndResource %%BeginResource: procset Adobe_cshow 2.0 8 %%Title: (Writing System Operators) %%Version: 2.0 8 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cshow 14 dict dup begin put /initialize { Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if pop pop } forall end Adobe_cshow begin } def /terminate { currentdict Adobe_cshow eq { end } if } def /cforall { /_lobyte 0 ddef /_hibyte 0 ddef /_cproc exch ddef /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef { /_lobyte exch ddef _hibyte 0 eq _cscript 1 eq _lobyte 129 ge _lobyte 159 le and _lobyte 224 ge _lobyte 252 le and or and _cscript 2 eq _lobyte 161 ge _lobyte 254 le and and _cscript 3 eq _lobyte 161 ge _lobyte 254 le and and _cscript 25 eq _lobyte 161 ge _lobyte 254 le and and _cscript -1 eq or or or or and { /_hibyte _lobyte ddef } { _hibyte 256 mul _lobyte add _cproc /_hibyte 0 ddef } ifelse } forall } def /cstring { dup 256 lt { (s) dup 0 4 3 roll put } { dup 256 idiv exch 256 mod (hl) dup dup 0 6 5 roll put 1 4 3 roll put } ifelse } def /clength { 0 exch { 256 lt { 1 } { 2 } ifelse add } cforall } def /hawidthshow { { dup cstring show _hvax _hvay rmoveto _hvwb eq { _hvcx _hvcy rmoveto } if } cforall } def /vawidthshow { { dup 255 le _charorientation 1 eq and { -90 rotate 0 _fontRotateAdjust rmoveto cstring _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow 0 _fontRotateAdjust neg rmoveto 90 rotate } { currentpoint _fontHeight sub exch _hvay sub exch _hvax sub 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if 3 2 roll cstring dup stringwidth pop 2 div neg _fontAscent neg rmoveto show moveto } ifelse } cforall } def /hvawidthshow { 6 1 roll /_hvay exch ddef /_hvax exch ddef /_hvwb exch ddef /_hvcy exch ddef /_hvcx exch ddef _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse } def /hvwidthshow { 0 0 3 -1 roll hvawidthshow } def /hvashow { 0 0 0 6 -3 roll hvawidthshow } def /hvshow { 0 0 0 0 0 6 -1 roll hvawidthshow } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_shading_AI8 1.0 0 %%Title: (Adobe Illustrator 8 Shading Procset) %%Version: 1.0 0 %%CreationDate: (12/17/97) () %%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) userdict /defaultpacking currentpacking put true setpacking userdict /Adobe_shading_AI8 10 dict dup begin put /initialize { Adobe_shading_AI8 begin Adobe_shading_AI8 bdprocs Mesh /initialize get exec } def /terminate { currentdict Adobe_shading_AI8 eq { end } if } def /bdprocs { { dup xcheck 1 index type /arraytype eq and { bind } if pop pop } forall } def /X! {pop} def /X# {pop pop} def /Mesh 40 dict def Mesh begin /initialize { Mesh bdprocs Mesh begin /emulate? /AI8MeshEmulation where { pop AI8MeshEmulation }{ systemdict /shfill known not } ifelse def end } def /bd { shadingdict begin } def /paint { emulate? { end }{ /_lp /none ddef _fc /_lp /none ddef /AIColorSpace AIColorSpace tocolorspace store /ColorSpace AIColorSpace topsspace store version_ge_3010.106 not systemdict /setsmoothness known and { 0.0001 setsmoothness } if composite? { /DataSource getdatasrc def Matrix concat currentdict end shfill }{ AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { end }{ /ColorSpace /DeviceGray store /Decode [0 1 0 1 0 1] store /DataSource getplatesrc def Matrix concat currentdict end shfill } ifelse } ifelse } ifelse } def /shadingdict 12 dict def shadingdict begin /ShadingType 6 def /BitsPerCoordinate 16 def /BitsPerComponent 8 def /BitsPerFlag 8 def end /datafile null def /databuf 256 string def /dataptr 0 def /srcspace null def /srcchannels 0 def /dstchannels 0 def /dstplate 0 def /srctodstcolor null def /getplatesrc { /srcspace AIColorSpace store /srcchannels AIColorSpace getnchannels store /dstchannels 1 store /dstplate getplateindex store /srctodstcolor srcspace makesmarks { dstplate 4 eq { {1 exch sub} }{ {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} } ifelse }{ {srcchannels {pop} repeat 1} } ifelse store /datafile getdatasrc store /rdpatch168 load DataLength () /SubFileDecode filter } def /getdatasrc { /rdcmntline load /ASCII85Decode filter } def /rdpatch168 { /dataptr 0 store 49 rdcount 4 { dup {pop srcchannels getint8} if dup {pop srctodstcolor dstchannels putint8 true} if } repeat {databuf 0 dataptr getinterval}{()} ifelse } def /rdpatch3216 { /dataptr 0 store 97 rdcount 4 { dup {pop srcchannels getint16} if dup {pop srctodstcolor dstchannels putint16 true} if } repeat {databuf 0 dataptr getinterval}{()} ifelse } def /rdcount { dup 0 gt { datafile databuf dataptr 4 -1 roll getinterval readstring exch length dataptr add /dataptr exch store }{ true } ifelse } def /getint8 { mark true 3 -1 roll { dup {pop datafile read} if dup {pop 255 div true} if } repeat { counttomark 1 add -1 roll pop true }{ cleartomark false } ifelse } def /putint8 { dup dataptr add /dataptr exch store dataptr exch { 1 sub exch 255 mul cvi databuf 2 index 3 -1 roll put } repeat pop } def /getint16 { mark true 3 -1 roll { dup {pop datafile read} if dup {pop 256 mul datafile read} if dup {pop add 65535 div true} if } repeat { counttomark 1 add -1 roll pop true }{ cleartomark false } ifelse } def /putint16 { dup 2 mul dataptr add /dataptr exch store dataptr exch { 2 sub exch 65535 mul cvi dup 256 idiv databuf 3 index 3 -1 roll put 256 mod databuf 2 index 1 add 3 -1 roll put } repeat pop } def /srcbuf 256 string def /rdcmntline { currentfile srcbuf readline pop (%) anchorsearch {pop} if } def /getplateindex { 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall } def /aicsarray 4 array def /aicsaltvals 4 array def /aicsaltcolr aicsaltvals def /tocolorspace { dup type /arraytype eq { mark exch aload pop aicsarray 0 3 -1 roll put aicsarray 1 3 -1 roll put dup aicsarray 2 3 -1 roll put gettintxform aicsarray 3 3 -1 roll put counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store aicsaltcolr astore pop pop aicsarray } if } def /subtintxform {aicsaltcolr {1 index mul exch} forall pop} def /addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def /gettintxform { /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load } def /getnchannels { dup type /arraytype eq {0 get} if colorspacedict exch get begin Channels end } def /makesmarks { composite? { pop true }{ dup dup type /arraytype eq {0 get} if colorspacedict exch get begin MarksPlate end } ifelse } def /markingplate { composite? { pop true }{ dup type /arraytype eq { dup length getplateindex gt {getplateindex get}{pop false} ifelse } if } ifelse } def /tocmyk { dup dup type /arraytype eq {0 get} if colorspacedict exch get begin ToCMYK end } def /topsspace { dup dup type /arraytype eq {0 get} if colorspacedict exch get begin ToPSSpace end } def /colorspacedict 5 dict dup begin /DeviceGray 4 dict dup begin /Channels 1 def /MarksPlate {pop black?} def /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def /ToPSSpace {} def end def /DeviceRGB 4 dict dup begin /Channels 3 def /MarksPlate {pop isCMYKSep?} def /ToCMYK {pop _rgbtocmyk} def /ToPSSpace {} def end def /DeviceCMYK 4 dict dup begin /Channels 4 def /MarksPlate {pop isCMYKSep?} def /ToCMYK {pop} def /ToPSSpace {} def end def /Separation 4 dict dup begin /Channels 1 def /MarksPlate { /findcmykcustomcolor where { pop dup 1 exch ToCMYK 5 -1 roll 1 get findcmykcustomcolor 1 setcustomcolor systemdict /currentgray get exec 1 ne }{ pop false } ifelse } def /ToCMYK { dup 2 get mark exch 4 2 roll 3 get exec counttomark -1 roll tocmyk 5 -1 roll pop } def /ToPSSpace {} def end def /Process 4 dict dup begin /Channels 1 def /MarksPlate { isCMYKSep? { 1 exch ToCMYK 4 array astore getplateindex get 0 ne }{ pop false } ifelse } def /ToCMYK { dup 2 get mark exch 4 2 roll 3 get exec counttomark -1 roll tocmyk 5 -1 roll pop } def /ToPSSpace { 4 array copy dup 0 /Separation put } def end def end def /isoverprint { /currentoverprint where {pop currentoverprint}{_of} ifelse } def /version_ge_3010.106 { version {cvr} stopped { pop false }{ 3010.106 ge } ifelse } def end end defaultpacking setpacking %%EndResource %%EndProlog %%BeginSetup %%IncludeFont: Times-Bold userdict /_useSmoothShade false put userdict /_aicmykps false put userdict /_forceToCMYK false put Adobe_level2_AI5 /initialize get exec Adobe_cshow /initialize get exec Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec Adobe_ColorImage_AI6 /initialize get exec Adobe_shading_AI8 /initialize get exec Adobe_Illustrator_AI5 /initialize get exec [ 39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis /Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde /oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex /udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash /.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef /.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash /questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef /guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide /.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright /fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla /hungarumlaut/ogonek/caron TE %AI55J_Tsume: None %AI3_BeginEncoding: _Times-Bold Times-Bold [/_Times-Bold/Times-Bold 0 0 1 TZ %AI3_EndEncoding AdobeType [161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal 181/mu/partialdiff/summation/product/pi/integral 189/Omega 195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple /_Symbol_/Symbol 0 0 0 TZ %AI5_Begin_NonPrinting Np %AI3_BeginPattern: (Yellow Stripe) (Yellow Stripe) 8.4499 4.6 80.4499 76.6 [ %AI3_Tile (0 O 0 R 0 0.4 1 0 k 0 0.4 1 0 K ) @ ( %AI6_BeginPatternLayer 800 Ar 0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D 0 XR 8.1999 8.1999 m 80.6999 8.1999 L S 8.1999 22.6 m 80.6999 22.6 L S 8.1999 37.0001 m 80.6999 37.0001 L S 8.1999 51.3999 m 80.6999 51.3999 L S 8.1999 65.8 m 80.6999 65.8 L S 8.1999 15.3999 m 80.6999 15.3999 L S 8.1999 29.8 m 80.6999 29.8 L S 8.1999 44.1999 m 80.6999 44.1999 L S 8.1999 58.6 m 80.6999 58.6 L S 8.1999 73.0001 m 80.6999 73.0001 L S %AI6_EndPatternLayer ) & ] E %AI3_EndPattern %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np 3 Bn %AI5_BeginGradient: (Black & White) (Black & White) 0 2 Bd [ < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBBBAB9B8B7B6B5B4B3B2B1 B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A99989796959493929191908F8E8D8C8B8A 898887868584838281807F7E7D7C7B7A79787776767574737271706F6E6D6C6B6A69686766656463 626161605F5E5D5C5B5A59585756555453525151504F4E4D4C4B4A49484746454443434241403F3E 3D3C3B3A39383737363534333231302F2E2D2C2C2B2A29282726252423232221201F1E1D1C1B1B1A 19181716151414131211100F0E0E0D0C0B0A09090807060505040302010100 > 0 %_Br [ 0 0 50 90 %_BS %_0 0 50 90 Bs 1 0 48 0 %_BS %_1 0 48 0 Bs BD %AI5_EndGradient %AI5_BeginGradient: (Red & Yellow) (Red & Yellow) 0 2 Bd [ 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < FFFFFEFEFDFDFDFCFCFBFBFBFAFAF9F9F9F8F8F7F7F7F6F6F5F5F5F4F4F3F3F3F2F2F1F1F1F0F0EF EFEFEEEEEDEDEDECECEBEBEBEAEAE9E9E9E8E8E7E7E7E6E6E5E5E5E4E4E3E3E3E2E2E1E1E1E0E0DF DFDFDEDEDDDDDDDCDCDBDBDBDADAD9D9D9D8D8D7D7D7D6D6D5D5D5D4D4D3D3D3D2D2D1D1D1D0D0CF CFCFCECECDCDCDCCCCCBCBCBCACAC9C9C9C8C8C7C7C7C6C6C5C5C5C4C4C3C3C3C2C2C1C1C1C0C0BF BFBFBEBEBDBDBDBCBCBBBBBBBABAB9B9B9B8B8B7B7B7B6B6B5B5B5B4B4B3B3B3B2B2B1B1B1B0B0AF AFAFAEAEADADADACACABABABAAAAA9A9A9A8A8A7A7A7A6A6A5A5A5A4A4A3A3A3A2A2A1A1A1A0A09F 9F9F9E9E9D9D9D9C9C9B9B9B9A9A9999 > 0 1 %_Br [ 0 1 0.6 0 1 50 100 %_BS %_0 1 0.6 0 1 50 100 Bs 0 0 1 0 1 50 0 %_BS %_0 0 1 0 1 50 0 Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow & Blue Radial) (Yellow & Blue Radial) 1 2 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A8A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666564646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_BS %_0 0.08 0.67 0 1 50 14 Bs 1 1 0 0 1 50 100 %_BS %_1 1 0 0 1 50 100 Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb 1 1 1 1 ([Registration]) 0 Xs ([Registration]) Pc 1 g (K=0) Pc 0 g (K=100) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.75 g (K=25) Pc 0.5 g (K=50) Pc 0.25 g (K=75) Pc 0 g (K=100) Pc Bb 2 (Black & White) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB (Black & White) Pc 0.25 0 0 0 k (C=25 M=0 Y=0 K=0) Pc 0.5 0 0 0 k (C=50 M=0 Y=0 K=0) Pc 0.75 0 0 0 k (C=75 M=0 Y=0 K=0) Pc 1 0 0 0 k (C=100 M=0 Y=0 K=0) Pc 0.25 0.25 0 0 k (C=25 M=25 Y=0 K=0) Pc 0.5 0.5 0 0 k (C=50 M=50 Y=0 K=0) Pc 0.75 0.75 0 0 k (C=75 M=75 Y=0 K=0) Pc 1 1 0 0 k (C=100 M=100 Y=0 K=0) Pc Bb 2 (Red & Yellow) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB (Red & Yellow) Pc 0 0.25 0 0 k (C=0 M=25 Y=0 K=0) Pc 0 0.5 0 0 k (C=0 M=50 Y=0 K=0) Pc 0 0.75 0 0 k (C=0 M=75 Y=0 K=0) Pc 0 1 0 0 k (C=0 M=100 Y=0 K=0) Pc 0 0.25 0.25 0 k (C=0 M=25 Y=25 K=0) Pc 0 0.5 0.5 0 k (C=0 M=50 Y=50 K=0) Pc 0 0.75 0.75 0 k (C=0 M=75 Y=75 K=0) Pc 0 1 1 0 k (C=0 M=100 Y=100 K=0) Pc Bb 0 0 0 0 Bh 2 (Yellow & Blue Radial) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB (Yellow & Blue Radial) Pc 0 0 0.25 0 k (C=0 M=0 Y=25 K=0) Pc 0 0 0.5 0 k (C=0 M=0 Y=50 K=0) Pc 0 0 0.75 0 k (C=0 M=0 Y=75 K=0) Pc 0 0 1 0 k (C=0 M=0 Y=100 K=0) Pc 0.25 0 0.25 0 k (C=25 M=0 Y=25 K=0) Pc 0.5 0 0.5 0 k (C=50 M=0 Y=50 K=0) Pc 0.75 0 0.75 0 k (C=75 M=0 Y=75 K=0) Pc 1 0 1 0 k (C=100 M=0 Y=100 K=0) Pc (Yellow Stripe) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p (Yellow Stripe) Pc 0.25 0.125 0 0 k (C=25 M=13 Y=0 K=0) Pc 0.5 0.25 0 0 k (C=50 M=25 Y=0 K=0) Pc 0.75 0.375 0 0 k (C=75 M=38 Y=0 K=0) Pc 1 0.5 0 0 k (C=100 M=50 Y=0 K=0) Pc 0.125 0.25 0 0 k (C=13 M=25 Y=0 K=0) Pc 0.25 0.5 0 0 k (C=25 M=50 Y=0 K=0) Pc 0.375 0.75 0 0 k (C=38 M=75 Y=0 K=0) Pc 0.5 1 0 0 k (C=50 M=100 Y=0 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0 0.25 0.125 0 k (C=0 M=25 Y=13 K=0) Pc 0 0.5 0.25 0 k (C=0 M=50 Y=25 K=0) Pc 0 0.75 0.375 0 k (C=0 M=75 Y=38 K=0) Pc 0 1 0.5 0 k (C=0 M=100 Y=50 K=0) Pc 0 0.125 0.25 0 k (C=0 M=13 Y=25 K=0) Pc 0 0.25 0.5 0 k (C=0 M=25 Y=50 K=0) Pc 0 0.375 0.75 0 k (C=0 M=38 Y=75 K=0) Pc 0 0.5 1 0 k (C=0 M=50 Y=100 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.125 0 0.25 0 k (C=13 M=0 Y=25 K=0) Pc 0.25 0 0.5 0 k (C=25 M=0 Y=50 K=0) Pc 0.375 0 0.75 0 k (C=38 M=0 Y=75 K=0) Pc 0.5 0 1 0 k (C=50 M=0 Y=100 K=0) Pc 0.25 0 0.125 0 k (C=25 M=0 Y=13 K=0) Pc 0.5 0 0.25 0 k (C=50 M=0 Y=25 K=0) Pc 0.75 0 0.375 0 k (C=75 M=0 Y=38 K=0) Pc 1 0 0.5 0 k (C=100 M=0 Y=50 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.25 0.125 0.125 0 k (C=25 M=13 Y=13 K=0) Pc 0.5 0.25 0.25 0 k (C=50 M=25 Y=25 K=0) Pc 0.75 0.375 0.375 0 k (C=75 M=38 Y=38 K=0) Pc 1 0.5 0.5 0 k (C=100 M=50 Y=50 K=0) Pc 0.25 0.25 0.125 0 k (C=25 M=25 Y=13 K=0) Pc 0.5 0.5 0.25 0 k (C=50 M=50 Y=25 K=0) Pc 0.75 0.75 0.375 0 k (C=75 M=75 Y=38 K=0) Pc 1 1 0.5 0 k (C=100 M=100 Y=50 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.125 0.25 0.125 0 k (C=13 M=25 Y=13 K=0) Pc 0.25 0.5 0.25 0 k (C=25 M=50 Y=25 K=0) Pc 0.375 0.75 0.375 0 k (C=38 M=75 Y=38 K=0) Pc 0.5 1 0.5 0 k (C=50 M=100 Y=50 K=0) Pc 0.125 0.25 0.25 0 k (C=13 M=25 Y=25 K=0) Pc 0.25 0.5 0.5 0 k (C=25 M=50 Y=50 K=0) Pc 0.375 0.75 0.75 0 k (C=38 M=75 Y=75 K=0) Pc 0.5 1 1 0 k (C=50 M=100 Y=100 K=0) Pc 0 0 0 0 k (C=0 M=0 Y=0 K=0) Pc 0.125 0.125 0.25 0 k (C=13 M=13 Y=25 K=0) Pc 0.25 0.25 0.5 0 k (C=25 M=25 Y=50 K=0) Pc 0.375 0.375 0.75 0 k (C=38 M=38 Y=75 K=0) Pc 0.5 0.5 1 0 k (C=50 M=50 Y=100 K=0) Pc 0.25 0.125 0.25 0 k (C=25 M=13 Y=25 K=0) Pc 0.5 0.25 0.5 0 k (C=50 M=25 Y=50 K=0) Pc 0.75 0.375 0.75 0 k (C=75 M=38 Y=75 K=0) Pc 1 0.5 1 0 k (C=100 M=50 Y=100 K=0) Pc PB %AI5_EndPalette %AI5_Begin_NonPrinting Np %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np %AI8_PluginGroupInfo (Adobe Path Blends) (Adobe Blends Plugin) (Live Blends) %AI8_PluginGroupInfo (Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool) %AI8_PluginGroupInfo (Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool) %AI8_PluginGroupInfo (Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool) %AI8_PluginGroupInfo (Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool) %AI5_End_NonPrinting-- %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 1 0 79 128 255 0 100 Lb (Layer 1) Ln 0 A u u u 0 R 0 G 800 Ar 0 J 0 j 2.7812 w 4 M []0 d %AI3_Note: 0 D 0 XR 300.0903 265.7822 m 369.6396 262.1079 429.002 315.5156 432.6763 385.0654 c 436.3501 454.6152 382.9453 513.9775 313.3955 517.6514 c 243.8428 521.3252 184.481 467.9204 180.8066 398.3682 c 177.1328 328.8184 230.5405 269.4561 300.0903 265.7822 c s 306.7427 391.7183 m S U u 306.7427 294.4868 m 360.4395 294.4868 403.9712 338.0186 403.9712 391.7183 c 403.9712 445.415 360.4395 488.9463 306.7427 488.9463 c 253.043 488.9463 209.5117 445.415 209.5117 391.7183 c 209.5117 338.0186 253.043 294.4868 306.7427 294.4868 c s 306.7427 391.7183 m S U U u 1.0569 w 320.4209 474.373 m 319.542 464.3242 322.501 461.0342 v 325.4604 457.7441 325.0933 450.8022 y 325.9888 441.3545 327.7051 440.915 v S 290.9287 469.6646 m 290.4336 466.9053 l 282.9077 476.0054 293.4316 477.541 v 303.959 479.0732 301.3447 475.73 y 307.1738 474.0278 306.5146 468.146 v 300.0649 471.272 l 290.0527 472.8433 290.9287 469.6646 v 306.9878 475.3716 300.8662 456.7817 v 295.6816 441.04 290.292 441.1514 y 297.0254 440.1001 300.7715 445.123 v 300.1514 439.9331 299.7676 439.2573 v 299.3838 438.5815 305.6499 438.5981 307.48 446.8584 c 310.7114 442.1611 310.5474 439.0376 v 310.3809 435.9116 315.7012 444.3359 315.1533 447.1475 c 314.605 449.9624 319.5728 438.5591 317.1445 438.687 c 314.7139 438.8179 324.1226 439.0156 323.1382 446.7275 c 322.4595 440.498 330.4277 439.7275 v 325.8247 444.8447 325.0044 455.6802 v 324.1836 466.5161 318.6689 480.7334 316.1265 478.7783 c 299.1167 486.2905 298.9692 476.8984 v S 293.0288 469.9009 m 300.4854 472.6401 305.2881 464.7275 v S 297.8901 469.645 m 312.041 469.7925 293.3179 442.3833 v S 320.3486 472.9849 m 323.7251 457.8359 325.0601 456.7207 v S 319.0664 468.5269 m 324.8037 458.4756 325.0044 455.6802 v 325.2046 452.8853 321.3301 458.6592 y 323.9058 454.6934 326.4282 449.687 v S 305.0488 453.6001 m 303.1299 450.2207 l 303.2412 452.3042 l S 313.0342 453.1802 m 312.8506 449.7065 l 312.2109 450.7856 l S 300.0649 477.8857 m 307.1016 479.2539 311.9077 477.9551 v 316.7109 476.6592 306.2979 477.2095 y 306.1699 474.7788 l 304.4316 474.8706 l 301.3447 475.73 l 300.0649 477.8857 l s 313.6206 464.2881 m 314.2437 462.8643 l S 312.3413 459.8301 m 312.9614 458.4063 l S 302.1318 477.4297 m 304.4316 474.8706 l 305.3105 478.3057 l S U 2.7812 w 259.4092 426.5947 m 355.8311 426.375 l 354.6689 364.8154 l 349.7461 324.3433 308.5396 302.1519 v 267.7949 321.7095 259.5264 369.4937 v 259.4092 426.5947 l s 0 O 0 g 350.5889 425.9546 m 305.7026 380.2847 l 310.1416 378.6577 l 295.1367 358.2129 l 299.6313 357.626 l 283.6196 331.3184 l 315.604 363.397 l 308.3506 364.479 l 330.8281 388.0078 l 328.1245 389.543 l 355.2832 415.959 l 355.0469 424.6753 l 350.5889 425.9546 l f 281.353 416.9048 m 281.4531 418.8154 283.9204 419.3799 v 284.3403 420.751 l 285.4277 418.2563 283.4448 416.9688 v 281.4614 415.6812 282.8325 415.2612 y 286.2593 417.5166 287.4551 417.105 v 286.8237 415.0498 285.7197 413.8901 v 284.6128 412.73 286.6709 415.4058 288.3589 414.4463 c 290.0498 413.4868 290.1865 416.0898 290.8262 415.0137 c 290.8623 412.3994 288.0947 412.7192 v 287.0073 411.9067 l 288.8428 410.4189 290.9453 410.6553 v 293.0454 410.8916 288.4033 408.7002 y 288.3032 406.7896 291.0542 406.1221 v 293.8047 405.4546 286.1841 406.2056 285.8643 406.7451 c 285.5444 407.2847 288.4951 403.8218 287.8999 402.459 c 287.7832 403.5107 286.2119 403.4189 v 284.6406 403.3296 283.8618 405.1094 y 286.0645 400.6431 284.9854 400.0034 v 283.9092 399.3638 285.561 401.0186 283.478 401.127 c 282.7852 401.1631 282.4375 404.4893 y 280.958 402.8262 280.6104 399.5391 v 280.2627 396.2485 279.6147 403.769 y 276.3525 401.3301 276.5889 399.2275 v 276.8281 397.1274 275.2236 400.3564 276.856 404.2612 c 277.8516 406.6475 273.5938 401.8223 y 275.5767 406.4194 l 270.1143 405.1401 l 270.3477 407.3154 274.8203 408.5474 v 275.8799 408.8394 270.6899 409.4624 y 273.0205 410.7305 l 271.7578 413.2334 268.9546 412.8608 v 266.1484 412.4854 271.1738 415.3555 272.1807 414.6045 c 273.1846 413.8564 273.6689 413.1333 274.7119 413.0776 c 275.752 413.0249 272.6563 417.0161 y 274.6279 417.2051 276.5391 414.7246 v 277.5151 413.4531 276.5029 420.6426 y 277.9102 417.6113 l 278.7861 417.7363 l 279.8652 421.6831 l 281.353 416.9048 l f u 0 R 0 G 0.3476 w 311.3486 413.0415 m 316.9805 413.2417 321.5918 412.085 321.6499 410.458 c 321.7085 408.8281 317.1919 407.3457 311.5596 407.1455 c 305.9307 406.9424 301.3169 408.0996 301.2583 409.729 c 301.1997 411.3564 305.7192 412.8384 311.3486 413.0415 c s 311.4541 410.0938 m S U u 314.4053 410.0938 m 314.4023 404.459 313.0811 399.8921 311.4541 399.8921 c 309.8242 399.8921 308.5034 404.459 308.5059 410.0938 c 308.5059 415.7285 309.8271 420.2949 311.457 420.2949 c 313.0869 420.2949 314.4053 415.7285 314.4053 410.0938 c s 311.4541 410.0938 m S U u 313.71 408.1943 m 310.0801 403.8833 306.1284 401.2412 304.8823 402.2925 c 303.6362 403.3408 305.5693 407.6851 309.1987 411.9932 c 312.8311 416.3042 316.7832 418.9434 318.0288 417.895 c 319.2749 416.8462 317.3418 412.502 313.71 408.1943 c s 311.4541 410.0938 m S U u 309.3096 408.0688 m 305.4414 412.1655 303.269 416.396 304.4541 417.5137 c 305.6387 418.6318 309.7324 416.2148 313.6011 412.1182 c 317.4673 408.0186 319.6421 403.7915 318.4575 402.6733 c 317.2725 401.5552 313.1758 403.9722 309.3096 408.0688 c s 311.4541 410.0938 m S U u 0 O 0 g 311.3901 408.8672 m 312.0688 408.8311 312.6475 409.3511 312.6807 410.0298 c 312.7168 410.7056 312.1968 411.2837 311.521 411.3203 c 310.8423 411.3564 310.2637 410.8359 310.2275 410.1577 c 310.1914 409.479 310.7114 408.9004 311.3901 408.8672 c b 311.4541 410.0938 m B U u 1.0569 w 278.5327 432.7217 m 275.5767 438.3813 277.7207 437.1157 v 279.6621 435.9673 283.4751 430.7188 284.8545 430.4717 c 286.2339 430.2241 281.4697 430.6523 280.5547 429.8291 c 279.6426 429.0059 276.6499 430.0352 y 274.5225 432.585 l 278.1494 428.7388 273.1792 430.2183 v 266.7935 432.9053 268.9209 436.9712 v 275.5791 441.0566 278.5327 432.7217 v s 291.8384 432.5405 m 286.5596 437.7388 289.6855 437.875 v 295.9658 438.1533 296.3496 431.2642 295.209 430.4463 c 294.7588 430.124 294.3247 430.146 292.8452 430.1377 c 291.6157 430.1294 288.6816 430.4438 y 288.0171 432.6548 l 290.4087 428.5244 285.439 430.0073 v 276.4751 436.9155 280.6997 437.48 v 286.187 440.8457 291.8384 432.5405 v s 304.4263 433.5278 m 300.2373 438.2759 303.6113 437.9224 v 306.0864 437.6636 310.1138 432.5684 309.2764 431.4448 c 308.9009 430.9414 308.7231 430.8638 306.79 430.5327 c 305.5801 430.3242 303.2188 430.4604 y 300.4126 433.3916 l 306.3115 427.2427 297.3311 431.0303 v 294.5083 433.6172 294.1826 437.377 v 300.9048 439.3716 304.4263 433.5278 v s 317.8091 433.1694 m 314.0547 437.8945 317.3394 437.4609 v 319.8062 437.1328 325.7915 431.6089 324.8931 430.5327 c 324.6147 430.1992 320.1787 430.085 318.9497 430.0625 c 317.7314 430.0405 316.7998 430.5244 y 313.9961 433.4585 l 318.8828 428.7607 312.5083 430.0571 v 307.3633 433.1138 307.2905 436.6846 v 314.3301 439.7939 317.8091 433.1694 v s 332.1494 432.7603 m 327.1484 438.5957 331.3369 437.1548 v 333.6899 436.3452 338.4126 432.4185 338.585 431.0278 c 338.7656 429.54 335.6343 431.1836 334.1294 430.7412 c 332.9502 430.3936 329.8462 430.3574 y 328.1387 432.624 l 331.2646 429.2393 326.2949 430.7188 v 317.4893 437.0156 320.7881 436.8433 v 328.3442 439.8389 332.1494 432.7603 v s 343.9888 434.4849 m 338.3901 438.8706 343.0767 438.623 v 345.5601 438.4927 348.6777 433.7979 348.4053 432.4238 c 348.2856 431.8203 348.0938 431.4839 347.1816 430.6606 c 346.2666 429.8403 342.9932 430.4463 y 338.5903 434.4238 l 345.374 428.8643 339.4331 430.6357 v 331.3457 437.3301 333.0112 437.5884 v 339.4302 440.4702 343.9888 434.4849 v s U u 0.3476 w 307.252 416.1929 m 307.6577 416.1704 308.0054 416.4819 308.0249 416.8882 c 308.0474 417.2939 307.7358 417.6421 307.3296 417.6641 c 306.9238 417.686 306.5757 417.3721 306.5537 416.9658 c 306.5313 416.5596 306.8457 416.2124 307.252 416.1929 c s 307.2905 416.9268 m S U u 311.2065 400.1313 m 309.8716 401.1157 308.9595 405.3628 308.9341 410.2549 c 308.9063 415.5366 309.9717 419.7583 311.457 420.2866 c S U u 318.1152 402.5952 m 316.4688 402.4009 312.895 404.8677 309.5269 408.4136 c 305.8892 412.2437 303.7725 416.0479 304.4902 417.4526 c S U u 321.439 410.1992 m 320.5015 408.8311 316.2905 407.7686 311.4043 407.5684 c 306.1255 407.3511 301.8701 408.2637 301.2861 409.729 c S U u 318.1958 417.5195 m 318.5713 415.9038 316.5132 412.082 313.3647 408.3384 c 309.9609 404.2974 306.4146 401.772 304.9404 402.3311 c S U u 0.1725 w 287.3882 356.5332 m 289.3545 357.4731 l 289.3989 351.7271 l 273.4019 352.0498 l 273.502 353.9604 l 277.4956 353.749 l 277.2397 352.1943 l S 276.2163 359.2114 m 285.4082 358.5522 l S 274.8813 353.7129 m 278.7695 384.4927 l 282.4155 384.2979 l 285.9365 352.083 l S 276.5835 372.7695 m 284.7432 372.3384 l 285.0547 374.9336 l 283.3364 375.373 l 283.4473 374.1494 l 276.4941 374.3413 l 276.5835 372.7695 l s 276.3276 364.6011 m 284.4961 364.3452 l S 276.9673 370.1387 m 283.9116 369.7715 l S 278.853 386.0527 m 283.3945 386.3364 l 283.6226 384.0615 l 278.7695 384.4927 l 278.853 386.0527 l s 279.3838 386.2002 m 279.4287 387.0679 l 280.3965 388.9316 l 281.584 388.3472 l 281.6479 386.2529 l S 280.1182 357.2646 m 281.167 357.3838 l 280.8833 352.0024 l 279.832 351.8857 l 280.1182 357.2646 l s 278.6885 382.9297 m 282.6714 382.5454 l S 279.832 351.8857 m 280.3965 388.9316 l S 285.6084 355.7568 m 279.9902 361.4502 l 275.1841 356.1323 l 289.0879 355.7461 l 283.0415 356.5889 l 283.1416 351.8828 l S 276.4834 367.5522 m 284.2959 367.1406 l 279.9902 361.4502 l 276.4834 367.5522 l s 276.4834 367.5522 m 280.0459 372.4136 l 284.2959 367.1406 l S 283.1997 376.0767 m 280.0459 372.4136 l 277.8267 376.5327 l 283.1997 376.0767 l 280.1406 380.7632 l 277.8267 376.5327 l S 280.1406 380.7632 m 278.6885 382.9297 l 280.252 386.1528 l 282.1792 383.0938 l 280.1406 380.7632 l s 280.3325 384.4092 m 278.5771 380.8462 l 282.9272 380.791 l S 280.4243 382.8379 m 278.2939 378.7715 l 282.8242 378.8799 l 280.4131 376.0488 l 277.2788 372.7334 l 279.9653 367.5439 l 283.5278 372.4023 l 280.4131 376.0488 l S 280.1406 380.7632 m S 284.8521 361.1943 m 279.9653 367.5439 l 276.0078 361.834 l 284.8521 361.1943 l 279.8872 356.2329 l 276.0078 361.834 l S 280.4131 376.0488 m 278.2939 378.7715 l S 276.458 373.646 m 284.6157 373.2173 l 285.2554 375.4453 l 284.2959 373.7544 l 284.0952 376.5522 l 284.2959 373.7544 l S u 278.8335 385.7051 m 283.6865 385.2769 l S U 278.7969 385.0127 m 279.3286 385.1572 283.8228 384.5732 y S U 327.8994 352.3057 m 328.4194 352.2778 341.4829 352.4585 y S 338.8716 352.4224 m 336.3794 367.8721 l 332.377 367.9082 l 330.6948 352.5059 l S 0 O 0 g 331.7349 352.4502 m 333.2559 368.0361 l B 337.6367 352.1387 m 335.356 368.2725 l B 334.8608 352.2861 m 334.3159 368.3281 l B 332.085 365.6611 m 336.9634 365.75 l B 331.9932 363.9253 m 336.8716 364.0146 l B 330.8394 355.2813 m 338.8438 355.2065 l B 332.1406 366.7012 m 336.3237 366.8291 l B 347.5625 375.2866 m 348.0381 371.0845 l 338.1343 374.7417 l B u u 336.8022 375.3091 m 342.5928 375.5732 l 342.6509 374.7334 l 336.8022 375.3091 l b U u 335.2061 377.0083 m 335.3447 382.8042 l 336.1846 382.8018 l 335.2061 377.0083 l b U u 333.209 375.4204 m 327.4155 375.5259 l 327.4126 376.3687 l 333.209 375.4204 l b U u 334.7104 373.4985 m 333.9985 367.7466 l 333.1616 367.8306 l 334.7104 373.4985 l b U u 335.459 373.4902 m 337.4224 368.0361 l 336.6353 367.7329 l 335.459 373.4902 l b U u 336.0176 373.749 m 340.4814 370.0498 l 339.959 369.3906 l 336.0176 373.749 l b U u 336.5991 374.3662 m 342.0669 372.439 l 341.8027 371.6377 l 336.5991 374.3662 l b U u 336.4932 376.1797 m 341.5273 379.0469 l 341.9614 378.3267 l 336.4932 376.1797 l b U u 335.8232 376.7915 m 338.8853 381.7114 l 339.6084 381.2832 l 335.8232 376.7915 l b U u 333.9487 373.7739 m 330.2773 369.2876 l 329.6157 369.8047 l 333.9487 373.7739 l b U u 333.3145 374.4609 m 328.0469 372.041 l 327.6768 372.7974 l 333.3145 374.4609 l b U u 333.5063 376.2881 m 328.3501 378.9355 l 328.7202 379.6924 l 333.5063 376.2881 l b U u 334.1738 376.73 m 331.5347 381.8921 l 332.2773 382.2925 l 334.1738 376.73 l b U 338.7822 378.6743 m 337.2363 377.4507 l B 340.4063 376.4995 m 338.2041 376.0073 l B 340.1816 373.8989 m 338.0371 374.4497 l B 339.8169 371.9189 m 337.7061 373.1592 l B 337.9897 370.272 m 336.6187 372.3467 l B 335.1836 369.8994 m 335.1309 372.166 l B 332.8779 370.7173 m 333.5757 372.4219 l B 329.8604 374.5332 m 331.6987 374.7832 l B 329.4849 377.3364 m 331.9517 376.249 l B 331.0977 379.8618 m 332.9751 377.5005 l B 334.1709 380.396 m 334.4185 378.4683 l B U u 337.375 366.9487 m 337.4111 367.6411 L 331.8574 367.936 L 331.8208 367.2407 L 337.375 366.9487 L b 334.6162 367.4409 m B U 347.354 374.6025 m 338.0371 374.4497 l 345.8745 376.2461 l 348.3135 379.6001 l 347.354 374.6025 l b 0.6953 w 300.2793 392.9277 m S u 0.172 w 298.6587 327.334 m 303.7954 327.1196 l S 317.8267 340.8311 m 314.8008 351.2607 311.7085 340.9009 v 310.0869 335.4746 311.6914 328.2852 y S 313.0625 327.9878 m 312.7847 330.207 313.0708 328.1572 312.7261 331.2861 c S 312.5479 333.2749 m 312.3535 335.3525 312.5093 337.5132 312.9404 339.5908 c S 313.3408 341.2959 m 313.6357 342.3608 314.0806 343.4736 314.7676 343.9463 c S 315.627 342.7505 m 315.7437 342.8169 314.8677 342.8589 314.2334 341.0508 c S 313.8105 339.4878 m 313.6997 338.6089 313.7021 337.9556 313.7134 338.1919 c 313.6104 336.2393 313.5493 334.6572 313.7329 333.2134 c S 313.9497 331.3916 m 314.0972 328.8662 314.5171 327.7124 y S 316.2861 327.4204 m 315.4463 330.8022 315.2988 336.0728 y 315.4712 343.5874 317.6851 341.0649 y 318.0327 340.6641 318.3218 339.4766 v S 311.853 341.5156 m 307.7813 341.5601 l 307.7202 340.375 l 311.5884 340.2559 l S 307.3779 327.4951 m 308.1733 336.1089 l S 319.5542 341.6602 m 320.1411 341.6489 l 320.4717 340.5361 l 319.1895 340.6201 l 319.5542 341.6602 l s 320.4717 340.5361 m 321.1812 340.3003 321.1338 339.4126 v 318.5361 339.5352 l 318.4194 340.5308 319.1895 340.6201 v S 321.1338 339.4126 m 321.8149 338.8789 321.6313 337.8579 v 317.8296 338.1724 l 317.7241 339.3877 318.5361 339.5352 v S 310.7124 335.9751 m 309.9004 327.0225 l 311.3242 328.3047 l 310.3008 334.6377 310.7124 335.9751 v s u 300.1885 330.2319 m 299.2344 330.4072 298.7173 332.2427 299.0981 334.3262 c 299.4653 336.3311 300.2661 337.6855 301.415 337.7661 c S 303.5342 331.8008 m 303.0225 330.5771 302.2856 329.9399 301.5928 330.0459 c 300.8447 330.1597 300.1719 332.0508 300.5527 334.1338 c 300.9336 336.2173 301.7485 337.8721 302.9697 337.5913 c 303.395 337.4937 303.8291 336.8765 304.1045 335.6499 c S U 302.2827 333.8169 m S 297.1401 335.9365 m 296.5898 335.9502 296.1191 335.0879 296.0889 334.0059 c 296.0557 332.9268 296.4785 332.0371 297.0288 332.0229 c S 297.0845 335.939 m 299.5293 335.8169 l S 296.9731 332.0259 m 299.126 331.8926 l S 301.3594 337.769 m 302.8223 337.6079 l S 300.1885 330.2319 m 301.6709 330.0317 l S 302.6416 335.7417 m 302.1021 335.8447 301.498 335.0659 301.3008 334.0005 c 301.1006 332.938 301.5513 331.9785 302.0938 331.8755 c S 302.6416 335.7417 m 302.7944 335.7334 l S 302.7944 335.7334 m 302.7944 335.7334 l S 302.7944 335.7334 m 304.1045 335.6499 l S 304.1045 335.6499 m 304.5825 335.6191 l S 302.0938 331.8755 m 304.3242 331.7866 l S 317.0229 342.9951 m 316.2891 345.3228 315.0371 346.0986 v S 313.7637 346.6328 m 313.5913 346.6689 313.5352 346.6855 313.3438 346.6968 c S 313.0181 346.7109 m 312.6899 346.7163 312.334 346.6831 311.9531 346.6021 c 305.103 345.437 304.6914 337.6494 v 304.2798 329.8652 304.1016 329.7065 y 298.6587 327.334 l 298.2998 322.7144 l 323.0107 321.4072 l 326.7798 328.5078 l 326.835 330.5962 l S 307.7505 341.4766 m 311.7612 341.3511 l S 312.8789 346.4688 m 313.5352 348.6602 314.1499 346.4297 v 314.2197 346.1714 313.8052 346.3628 y 313.6802 347.1611 313.5327 347.0835 v 313.3882 347.0054 313.21 346.3101 y 312.832 346.1016 312.8789 346.4688 v s 314.1055 346.6577 m 314.6479 347.8369 315.043 346.2129 v 315.1011 345.9736 314.8647 346.1631 314.7871 346.2324 c S 314.7871 346.2324 m 314.7729 346.2461 314.7622 346.2544 y 314.5869 346.6885 l S 314.6201 346.772 m 314.4033 346.4355 l S 314.7622 346.2544 m 314.4033 346.4355 l 314.3726 346.3882 l 314.1499 346.4297 l S 314.3447 344.75 m 314.9736 345.2173 315.3433 344.9502 v 316.9258 343.8208 317.3179 341.624 y 316.5254 341.6069 l 315.9077 344.8501 314.3447 344.75 v s 316.5254 341.6069 m 315.8604 341.8687 l S 314.7676 343.9463 m 316.1748 342.3135 315.8604 341.8687 y 315.1875 341.4238 314.9316 340.3335 v S 314.7676 343.9463 m 314.6284 344.0659 314.4702 344.1855 314.292 344.2993 c 314.3447 344.75 l S 314.8647 340.4336 m 314.4478 340.8867 313.8833 341.3848 313.4575 341.3457 c 312.6675 341.2705 312.27 340.8423 y 311.9111 339.4185 l 312.7734 340.1943 313.2212 340.0859 v 313.666 339.9775 314.6895 339.499 315.2461 338.8174 c 315.438 339.7412 l 315.1987 340.0718 314.8647 340.4336 v S 315.2461 338.8174 m 314.6816 338.8481 l 313.2212 340.1138 313.3071 339.6963 313.1128 339.6382 c 312.7954 339.5405 312.4146 339.2793 y 311.9111 339.4185 l S 315.3071 333.5249 m 315.4238 332.0205 l 313.5186 330.7798 311.7305 331.6782 v 311.4663 333.1357 l 313.9609 332.1538 315.3071 333.5249 v s 315.3071 333.5249 m 314.709 333.4722 l 313.6968 332.8105 312.0391 333.2749 v 311.4663 333.1357 l S 314.6816 338.8481 m 314.3115 336.1255 314.709 333.4722 v S 323.748 329.7344 m 323.0332 329.8652 322.6436 331.2417 322.9302 332.8047 c 323.2056 334.3091 323.8066 335.3247 324.6689 335.3857 c S 326.187 330.688 m 325.8062 329.7705 325.3223 329.5146 324.8022 329.5952 c 324.2402 329.6816 323.7368 331.0996 324.0205 332.6602 c 324.3071 334.2231 324.9189 335.4634 325.834 335.2549 c 326.1538 335.1797 326.479 334.7183 326.6851 333.7974 c S 324.6689 335.3857 m 325.6948 335.269 l S 323.7871 329.6563 m 324.8022 329.5952 l S 327.9614 332.1509 m S u 327.6333 333.7168 m 328.0923 333.6641 328.3818 332.9189 328.2788 332.0566 c 328.1758 331.1943 327.7197 330.541 327.2607 330.5938 c 326.8018 330.6494 326.5098 331.3916 326.6128 332.2539 c 326.7158 333.1191 327.1719 333.7725 327.6333 333.7168 c S 327.5723 333.7197 m 326.251 333.8418 l 325.7896 333.8975 325.3335 333.2412 325.2305 332.3794 c 325.1274 331.5171 325.417 330.7744 325.8784 330.7188 c 327.2607 330.5938 l S U 326.1177 332.3149 m S 323.5059 334.5347 m 321.9263 334.5898 321.8428 334.6235 v 321.7207 334.6709 320.8809 334.5151 320.6665 332.7324 c 320.4912 331.2554 321.4175 330.5464 321.334 330.5576 c 323.064 330.4575 l S 322.7803 330.4155 m 322.4634 329.2446 321.9878 327.9043 321.1338 328.1543 c 320.0742 328.4658 319.4287 330.7046 319.5928 333.272 c 319.7124 335.1353 320.647 337.5244 321.9233 337.2212 c 322.6216 337.0542 322.9805 335.8364 323.1416 334.6123 c S 321.4868 332.7461 m S u 323.0947 335.2939 m 322.438 338.481 321.0195 337.7773 v 320.5552 337.5493 319.4707 336.8706 318.9644 332.627 c 318.8447 329.2393 320.0464 327.9292 v 321.4092 326.4443 321.9292 328.2632 322.0156 328.2769 c 322.2739 328.3213 322.7803 330.4155 y S U 314.7871 331.7144 m 314.8594 329.3643 315.3628 327.6123 v S 320.978 327.3564 m 317.8296 327.7568 l 317.5459 327.7065 317.1841 327.8345 316.7285 328.3296 c 315.5269 329.6396 315.6494 333.0273 y 316.1553 337.2715 317.4209 337.9526 317.8853 338.1836 c 321.5034 337.8804 l S 318.0688 339.2485 m 317.6157 341.0981 316.937 340.8369 v 315.7993 340.7119 315.8188 335.7471 v 315.8105 333.981 l S 317.2983 337.7495 m 320.5024 337.3965 l 320.2021 337.0293 l 316.9507 337.3716 l 317.2983 337.7495 l s 316.2192 335.8252 m 319.4814 335.4551 l 319.3369 334.8403 l 316.0747 335.2104 l 316.2192 335.8252 l s 315.6855 333.2217 m 319.0088 332.9355 l 318.9644 332.0869 l 315.6465 332.4624 l 315.6855 333.2217 l s 315.855 330.5269 m 319.1509 330.2686 l 319.2593 329.6396 l 316.0386 329.7261 l 315.855 330.5269 l s 319.6763 328.4575 m 316.4893 328.6274 l 317.1064 327.9985 l 320.2046 327.7515 l 319.6763 328.4575 l s 322.7466 334.604 m 322.4492 336.4868 321.8848 336.5146 v 321.2925 336.5483 320.1963 336.1255 320.1016 332.7627 c 319.999 328.9751 321.4619 329.0415 y 321.9736 329.0723 322.271 330.4155 v S 311.3242 328.3047 m 316.4277 327.4702 l 317.1064 327.9985 l S 307.5449 329.5786 m 307.4282 335.9224 l 306.3486 327.2671 l 307.4727 328.1685 l S 305.064 336.1587 m 303.8486 327.0586 303.7954 327.1196 v S 306.3486 327.2671 m 306.0039 327.1895 305.9624 326.3828 v 305.9175 325.5347 305.8594 322.314 y S 309.9004 327.0225 m 309.5581 326.9727 309.5249 326.3633 v 309.4917 325.7432 309.3579 322.1304 y S 323.0107 321.4072 m 322.8164 326.2827 322.9834 326.2188 v 309.8252 326.686 l S 322.9834 326.2188 m 325.0244 329.5615 l S U u 2 To 0.9363 0 0 0.9363 -4014 4716 1 Tp 0 Tv 0.9363 w 203.3188 391.8047 m 203.3188 448.7534 249.4868 494.9214 306.4355 494.9214 c 363.3843 494.9214 409.5518 448.7534 409.5518 391.8047 c 409.5518 334.856 363.3843 288.6885 306.4355 288.6885 c 249.4868 288.6885 203.3188 334.856 203.3188 391.8047 c n TP 0.2295 0.9077 -0.9077 0.2295 204.3882 408.9634 Tm 0 Tr 0 O 0 g 1 w %_ 0 50 XQ /_Times-Bold 25 23.3749 -5.4501 Tf 0 Ts 100 100 Tz -20 Tt %_0 0 100 100 Xu %AI55J_GlyphSubst: GlyphSubstNone 0 TA %_ 0 XL 0 TY 0 TV 36 0 Xb XB 0 0 5 TC 100 100 200 TW 25 TG 0 0 0 Ti 1 Ta 0 1 2 2 99 Th 0 Tq 240 Tg 25 0 Tl -0.5 Tc 0 Tw (D) Tx 0.3609 0.8639 -0.8639 0.3609 208.2388 424.3232 Tm (E) Tx 0.4743 0.8073 -0.8073 0.4743 213.8438 437.8008 Tm (P) Tx 0.5829 0.7327 -0.7327 0.5829 220.4336 449.3364 Tm (A) Tx 0.6872 0.6359 -0.6359 0.6872 230.2192 461.769 Tm (R) Tx 0.7726 0.5288 -0.5288 0.7726 241.8223 472.5483 Tm (T) Tx 0.8516 0.3891 -0.3891 0.8516 253.5806 481.0522 Tm (M) Tx 0.9057 0.2376 -0.2376 0.9057 272.647 489.5723 Tm (E) Tx 0.9307 0.1018 -0.1018 0.9307 286.6929 493.3848 Tm (N) Tx 0.9357 -0.0341 0.0341 0.9357 302.4551 495.1357 Tm (T) Tx 0.9095 -0.2225 0.2225 0.9095 322.1772 494.1357 Tm (O) Tx 0.8667 -0.3542 0.3542 0.8667 338.8022 490.002 Tm (F) Tx 0.7863 -0.5083 0.5083 0.7863 355.7842 482.7041 Tm (E) Tx 0.7036 -0.6177 0.6177 0.7036 368.083 474.8999 Tm (N) Tx 0.6062 -0.7136 0.7136 0.6062 380.0059 464.4746 Tm (E) Tx 0.4954 -0.7945 0.7945 0.4954 389.5293 453.4565 Tm (R) Tx 0.3628 -0.8631 0.8631 0.3628 398.0088 440.126 Tm (G) Tx 0.2205 -0.91 0.91 0.2205 404.6646 424.3887 Tm (Y) Tx ( DEPARTMENT OF ENERGY \r) TX TO 0 To 0.9271 0 0 0.9271 196.1235 390.4141 0 Tp 0 Tv TP -4.5499 0 Td 0 Tr /_Times-Bold 26 24.3099 -5.6681 Tf 26 0 Tl -0.52 Tc (\245) Tx (\r) Tx TO 0 To 0.9271 0 0 0.9271 417.2295 390.4141 0 Tp 0 Tv TP -4.5499 0 Td 0 Tr (\245) Tx (\r) Tx TO 2 To 1.0795 0 0 1.0811 -4014 4716 0.0002 Tp 0 Tv 1.0898 w 306.5 273.437 m 372.1592 273.437 425.3887 326.7441 425.3887 392.5 c 425.3887 458.2559 372.1592 511.563 306.5 511.563 c 240.8403 511.563 187.6113 458.2559 187.6113 392.5 c 187.6113 326.7441 240.8403 273.437 306.5 273.437 c n TP 0.1371 -1.0723 1.0708 0.1373 187.5273 385.4619 Tm 0 Tr 0 O 0 g 1 w /_Times-Bold 21.266 19.8837 -4.636 Tf 21.266 0 Tl -0.4253 Tc (U) Tx 0.296 -1.0397 1.0381 0.2965 189.8828 367.7671 Tm (N) Tx 0.4133 -0.9987 0.9973 0.4139 194.9116 351.083 Tm (I) Tx 0.5193 -0.9478 0.9464 0.5201 198.5166 342.0317 Tm (T) Tx 0.6444 -0.8674 0.8661 0.6453 206.4839 327.6519 Tm (E) Tx 0.7612 -0.7666 0.7654 0.7623 216.356 314.4292 Tm (D) Tx 0.8851 -0.6189 0.618 0.8864 233.2866 298.4683 Tm (S) Tx 0.9559 -0.5024 0.5016 0.9573 244.5513 290.5688 Tm (T) Tx 1.0182 -0.3591 0.3585 1.0197 259.1855 282.9219 Tm (A) Tx 1.0593 -0.208 0.2077 1.0609 275.98 277.1401 Tm (T) Tx 1.0778 -0.0604 0.0603 1.0794 292.1094 274.0537 Tm (E) Tx 1.077 0.073 -0.0729 1.0786 308.2808 273.2808 Tm (S) Tx 1.0447 0.2721 -0.2717 1.0463 327.8657 275.0117 Tm (O) Tx 0.9946 0.4203 -0.4197 0.996 346.2251 280.0249 Tm (F) Tx 0.8998 0.5972 -0.5964 0.9012 365.1851 288.5981 Tm (A) Tx 0.7841 0.7431 -0.742 0.7853 380.3311 298.5474 Tm (M) Tx 0.6506 0.8627 -0.8614 0.6515 396.8179 314.6948 Tm (E) Tx 0.5206 0.9471 -0.9457 0.5213 406.7275 327.8994 Tm (R) Tx 0.4098 1.0002 -0.9987 0.4104 414.8389 343.1924 Tm (I) Tx 0.2922 1.0407 -1.0392 0.2926 418.7197 352.2153 Tm (C) Tx 0.1332 1.0728 -1.0713 0.1334 423.4531 369.4292 Tm (A) Tx (UNITED STATES OF AMERICA\r) TX TO U U LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI5 /terminate get exec Adobe_shading_AI8 /terminate get exec Adobe_ColorImage_AI6 /terminate get exec Adobe_typography_AI5 /terminate get exec Adobe_cshow /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF pyutilib-6.0.0/doc/workflow/DOEbwlogo.pdf000077500000000000000000000322421367314503500203260ustar00rootroot00000000000000%PDF-1.3 %Çì¢ 8 0 obj <> stream xœÝ\ÉŽMVÞ×SÜe÷·c– 4¤¦¡mXY2 ªZ4H?úˆ÷äN^Wf•°…Üä…+ãfœˆ8óùÇ[ºç[â¿øÿóËÓŸ~õûqû×ÿ|*ó¾r¹ý×S»ýö)ßþí)בîû–;~(åöòTR÷vË%ßÓÜ·2zº§r½ßsx^ã>Ç-WŒ~û ¥Þû­¤6ðÆ­äµï ÿºïsÞrÛõ¾9qŽ{Ϙ0÷º·²neæz/š‰MaâÜ÷rËcÝÓÀmÕûXx?×|¯x®uÏ«ÝÆè÷–ú-ïvï#ß.Gøüô‡§O¹á¨­ÞZp€yyÊ{4ì(ucù¶ð´Æã9·<1Àƒ#»7ž,”Êrƒ^áxþü´vz=Ј²<óÏŽ‘càØâõ q²„Soäh÷Ä•Vï³òˆ[*1R@ľú=µ˜TÛí§§“op~î»WͨàÇAŒ ²—öÿ†’e”ûÖc&sß5‘¯21çœÝó½TÍzÚ÷Êsãx¤öÚåÞ§ÞÀÚ`ô¼@¾%–„èøqóàü@v\÷.iX#“Q!´ˆF ™„²/Bl£ Òê "vÓÁ‚ÜÝ£ÔÁçL¼ä=3gfOÃtÇ.g€µH%n¢SÚ@¦=1»Ð圓tbí"s¹ì{Þ‹gœGÀ®M°74:ÈàÂÌ1ã2n]Fu[dñsP‰ 5ÜÄcvoZ ÒS*6Käw ¬€¼eLšq1ò2Z*éŒÇ¶Š{ü,yÀ ÍE›X}!A"ò]‘2m`?2UnÚ¶„¨V0ç5ÉÐyú/QPð<)¢X¤ ­êvU/ÜAÖÆÍiä2OëØ¹Dh"(¸¹äBM>(G›{!Ò–±zÌqŪ´H!s”1Ò*Tjðè÷3) L n~Ómoq‹Ð(?Øj¾x|25QáÎ(»" áÀXýYs¶怬œÕÀl¦sbÁgŽ A`‡§=Ô°°¼ÚyDÊ%Q=QI±ê ÿ÷n¾¢:$E!à àB‡nàœIýÆÙÚJ îœ>ÓI¥=¿ÙÇs/ ‰š É7¤+ÐÒÈÇÀø8 )Á V#cSþE·t}åл-^z³©Uσ\Ìz¸ 4]‰ÚmB~¶8lCäjæ¤TýN’©Œõ©ßŽ€³&Uô„¶i”ºÖ  n”´ž7‘›`e~R-áÿ e“°›†ëº‘@Ô­Õì"GÔª@ØÒfôm£î'w.!Ú®B{$²ŠÉÎæ¡œ”"6¢–Û"jñ 9ȆrzßS€qòþ‚(²y…ì&-5Z–‚ª»Óà7Ô‰.ó§‘$u=!,ÆèåXÏO_°!°Uô°‰}y3‚çæçe¬SÑ¡‚âfƒÔPMFáÏpù,¤h«'äK©©¼ÏOZfPðäX©r‰^8þóÓu$CIZÌ>}ŸÛÕ †&I®hŠé«ÐѤŸúq¾”áOÜã  AäP¡Ní@,žéû>h`'@&ž5 ³|ØI¤Ú.ëÁXéý%7 f6߀{±»ÌÞìy’±ÙüÿùÍH¦,Ñ­¼íVsؼµM„G–¼…‚ý’M;ö´½~Ô™ô%M`3I%Á׽˿°%‚÷nd½‘¿Ða¢„”,%!ÍËç.kݧ¤Bëñh.ÜN¥I/2¿|âHíµË± å6Ôvà'ƒîÁ5?Xe…—C^FBŠN~…<¯*%–ÌE›±0 E ],Ô!D*Ù‘™¾Š½ -Üôý‰N‡Ù»!:GŠÉ6¸ÓA‚4VdÖÔ†ÿ^Î$;qÉ™áŽ\(Ÿ¼XT GìªX ´©}f ؇´I¬ð{—+"á PA ±;*¨@j=,!êpÀƒ)ºüYJ#èm¿íí«DÓ,eÆ+Žìà[ô";vóý¡ HZ2Ñ©¡¤¥0UŒˆËQ‹\§Ô¶E™&I}rMZ{Ò%My춪7lÕÆhR¥Ôû0ú«[܉“´m8c>b—>¥ÔA ÷ :H¸ádËç @Oy™Ä8Ljl«Å"bcU¹B$zUä у†¸iÞ$ ¯Ü(ÌA–ª¤ç&5$Tˆ¾ÄГá€tÑÇÔÚ (ÄjmÊ/Ó¶[‘E§‡flÒ:u(È-5”Â¥’ÏOb'¿cåãñè€ïb+rÕ<¢¡åD›Ö©ŒŠã«,/›a #Á (™¯ŒRF6*Dݦm/Ÿ¶‘hÇæ’6™È¯/1R,r’ÀDŠ`¶Õ^£‰jgî²[ý?Þh¦ÅŸÇc Î8FàTHÎæŸ:Mk|}þl¯q½zã±ï€p9Ç‘Aj²Ð‡k0!Ë:“Ê‘îžfgù©p¬–âÂNÇP­‚›]Õê7¨Ñ¶iK7ˆ*M͈gÐ%ÍÆÏ+§SÎS Š" °áгuÚ)#½ÄZK|ÔE‰ó)Ž£õêÁÄýÈkjÚá`)w¥X‡’7r•  7Àö’*È ~£GËu¡H)[taS@Ìf`HÛ˜^•¼Õ™h*V¬ûàþN_=ÃQ{Þº`fÅ#©%­ùúÇÙÀªÛb2¦½âd¬nÛ²–íÛ•@ý ” Pó%e¢2=>E=«YÒ¤™¿rü½ŒóCzhTš}gE«Fˆ ³Õí$—GßeJN'øLçïÿߡΩ,Rú~ß•†|X¼µœ¹€~ÒþôôüO6Ìô0˜Ó _É?`°‘¬»‰gxwÚo‚dVØ"ÓåôÒ ³”Ö‰\‚b7¡@’L·1Dj·­éòŸ½ç½àðSSNà[v•<»½f^¶’èW±ÛN;ª“ ¥гog˜(ìüdä1d¤næÚÒOçœVaMo¤t+…·fw^u3ðŠü©JäfD~"tÍ l…¿È¯1PÐHþjRWÏÔ=e9 ÃçêƒtÄ 9×Î f³ç›Ä—« ‡:Ê%&a°k†%uëIù±ËȔ۾ÙaÍa½c¦a“5äML*8:ˆ ®AYGœüj$3ÿSÅÅ ð-ßëìpËM·0>„ÀR:·{æÊ-ÜòÖ”0ÂA¶ ]:ÙgXçý¥u;MÐJÎïRMç ‘|æ--©Ê€6•Ûœ0ødåJ‡K2%¬d#€Ó¯Xuˆ•3‚€ÀN§#Ï#XÄŒ»¶S¤LÎ̤Ø~ŠÌeD®Ž”»Ë­mSÎŽqïKrG¡§ŒlS±‹ïˆ¦êk1âÊÁ‚4­ šf°ŠÜ*:­~ac¦ñ‘”ÍíÊ.&qS:ˆI¶ŽÖ"wЛ­?å[¹ÖèK)²·—‘Üp¬Q}l²C«J$®!y$QOŠªSœÆÊ kݱ¬f¨”ТÇLß[Ib9ªÕì Ôuy½c/£t_° „‡yÅÙºõCN¦"F¦ôÃÜÒ'tt¥=³£Í2M}ÛD.z)Ýܹåö[àøÜæ2" CØK;ò#¯Fä´Ë«g˽(vÙB©s‘óˆÜŠ%®‰43õDÄPLÎL;qã{…Ëòw¡ævÝcµ©Tf«¶ÓÙÌ8ÐØ Hä¯l‹¨SLÈôi*{MHæ>å3-¦ó¤‹­&wSú@é~&5‹í‘ùá¬Ôe*™‘çv°»4òÏO"ZlÚø<d毦fZ¡ÌÞlI’pGÀÔ#]˜Ì@L&q¸‘vIˆT¥• Œt€[qu—%1[³mC ;©e1Þɾ¼E–OCæ†.Ww•4Ñ“T€#4<)«ÔüÉvLœ “ph–Æ8•Æc1 Þ¶GŠ’8EQ›ù™98¥HTßx±DC“X’+ñƒÐlPY[dæb¨p%5¥Ò¬O\›*Ü4SÃ[T.CëuºRfØï’¦SwE¸Ô<[ðbVVÚÜE•O½³ÈÊjæãpEI}å9›³+çµ"¹ÏLÍqn#Êjl ¢XßnýاÝÿ’dI^œH¤ f³±ßóËÇuøÅ;å.ê¨GFgK³/‰òü.îÎpŽFÁ>¢@C%Ò2V˜¤!Då¡¢Afk@-NuOagzdHÚèhöƒCÑ3ø«D¥fXÇMSK ¶=/•#5ÅX<å(*]áÛ¦7Î}…ÆÉrv½Ò5>ð{öòÎaŒÐ#ã}RE ›òEÌõ9Üæ)‚Ò“ÅÉÕ!Q@é% Ø2¯lo´úƒ3›Löb¾(æ &¿L¹ëêç9»BÊTyäß"åøülÎÛÑK0çû“˜Ñ-ª>HS<Ÿ§Aèñ3¤õÝ)ß¼õr%Ù³Ø]} Ù\“ÙA——m»½»˜OÆ/fîdÁi޹«#¥èâ(Ó3÷qøaߢ:7¨y¶Å*™›—³zŒCìm_UÜÜ–ù@5s75ZhÇ^Dl°öy/9}Ns¦îHE9e½kÐõ4+ĆbåØÑuÖÇ7;xïøÁY4ÙþMæQ‡Âçή"åbíÙ›¥íÁk¬¿ôØ¥«QäŠ^Þ}'´ÛÑJµÁmo§2æœÇ[ÓrËÚ—¹ zKŠªg'˜ùT³ÇÏŠ4X‰£A+*3Ôh®r%X$:¼s¶P@:³fÍfç‡cNè°MŒôÎs“Œåx2»Ö®úéÐiSé¶2î= kùåÉ•¬¸¿|ÏKÜh¡²o9,ÅŒÜV^Ñ0ôå»Þ"¬¤¢‡p`­8åd½%«eXß~K±œcS%´²qµ]Т6~ó%áÊËÅAL12Ó,¨o¿õѵl%°ÀAË ²ÊÙ<’Äû­#ZÍJÌ„%'7(7”k‹#~ó-–ük×±K—üò¤8Š z#+¢ ,ך­-èúš÷Ѹ¡·FÆj’‰)uä¸%ŠóÖp½ºì2ËÜðc 9\ÍQêÒPÁ¥Œë©–“OS\\«†ðüf–wõc 9+±2¤F+ÎJØÕ,jèˆ×C}V»z—Iæ„ÇxJ*°í`/+†­è<³rz^V™Š©Êy8O Iþp‚r.liTè®R‘_UÐ=¤Í;˜à4)èöàxG%É9,?j¨%WÖG†iºYÅN³Ïvž þ#ÅžztcTFå’•d?¿(òäL š¥BúžŽG.³bS?RìÊ©5•Ôt,­öŽiP/ÙMåøï<)öôà7Ùb—¡Ìhè_ÉjžQ»žÝ¾yuçÑó›YÁO?Rè­ i:å‘1y"[¿ÕÑFqéö‡²›YžßÌ MðC Å®Ü Áæ›ÐÉ$6§8n°þsÚ+Ý!Ö§Y±«)vår6ûˆÝëÇ|%_cxåã4õD&pí9çÄž~œÐ™nÛ Må&2ÝRÅ똸L„êZ÷óuRèÌÇ;jj¾V Ÿ¹`² Eö§¹™íËw½õÑ*ÉgŽ,oQâH}ê3}ãAq®¶Ø;Ö[I~#©Û8ßz‰u¨3.ïÈiÍêm©Ù‚_¾ë-y¸Šz"Ìpº‡k¡%² _¾ç%éG딩ØzVbSå´‡nýö[òþ–âæ²Œ·s°ÅÑAxß|‹°ØuCü8¦u­¨§UÒ—ïyIܤT¦ò?/ö‹{±4&í;Þ’ßä 7½½¸25ïátÿï¯r—]VÝ-¸6SVs"éËw½%NPw®àÚÃ=`Þ^i&k(X½ñ—޽Sâ œ` ?l·ôV§TY*Nå=¡QýD˜# |AÕ±¶Õ¦Ç3Œðÿÿpÿéaf‡kScø$§4w´»©™ ;d¡;ËÃZtu·³Ùž1bvÇlsŸïÛ¤´}yCíK ¬8Ýé5è;ÍÅ^Îâx›-Nˆnè5¬ñjŽdßAšîÄšœÄHŸinü OšÅþ5"ÏÍÊe[·ÅÌŒ Ëó^±4{{T;÷µŸ¬®ö%ÝûS\†`Æôe›óîâ6(^\ê`Kj Û•9s•LtfW^›:ê ðĈ'ÏîŒóóˆ+7Bìê±Ê|Vƒ ;ä!íê™øº¼ŒíµR6o[щÙn—ZüG´Já°ìŒq­‘;Ç|æƒèy±mxa¡Ï8Üò«‰/PÿX’5PÖÝv¦o¢ýWN ±IÐs²³±™zÝù&RJr#]V‰oé^Vq“4Øb±,]±À“Xì8œêÄ*óü£ùÆyDÍcÄË‹êÝå-±"ôLU¾TÆR~{g_÷S…nŠZ,v&ß`+ÀýÿÍ•À­:VhD–á€ržhw—Ã[#Ƴ û–†®Ú0ØîŠtª’#Í`¶¼N.eî¬<;\·ŽQR œÀ„X^&¾¼Q¯$†“$õN…ÿDt€ºhB†¼:ývQ×ZÞ†)æ>m.je'°ÜÈT‡¾JË+a5—”¦džz¬8]ØeŸB! r³LvÞ‡oÔ u˲!jҥȔR>eò¦‡ÃŒËˆ.ŠaßdñªÛ›gQìd²û¦n©öF˜gäÙI©ksMVœìV"çóG} íªf"¨3øWlG &TÙ\¸ÔI'q*ägûÒ8oQpèéä\Ee—2ö—˜¹&”eIâݺ­Œ2,êîpo;/ô5êEºMÓ‰sìxë J>Ó¨DÌ}0žd½›uÞZÔ/σU¡¦ªw”Ï¥ä¸JzQEaT«q Œ%ku‚^ ?%1ãúÛu§fšº1?¥ÆèÕ“lþlÙ\—ÕaE˜3¯ÛõèÆñNà˜v„ÙË^û±7øºÒõ€Àp1(¼³¢k«WèÆìøÞFsß¿S0÷ûÒ^ —ÍÀm± ­ýçg/#R^tn(ðú 7vùÎØ [‚q@^ ëḞFw Ú{¶A¬Ûu‡ ¼ÝïC`i£ÅÓÄ]W 3ÅEüºQñOïìæã„¿%¸˜Èâ5Nóùie+Á-×’f«†bÚ Ú†­ÓIiŠÛ›os±d©TUPeŽžvòmŒ¥#Óì«qÒw³ù¼z4·È³4RÇY×܇dC·BhNyýg¸ñ:ùÚÍ×ìX›4J9ºö`¨ÙL¼w\ß*$í&˜ó¢nË´íà·j‹tÏÅêÔÑÑù›æ­Îþ–ék†“.0?§¢ž?Å»ê¿aU.§ÕÑÔc@¸‡ƒËÍâøÜ|·ŠºœÏI>6TÏcIh*vÎ+ f‡RÏê§ljqQháÖR¶;O:Ρ0†Bi:š_•’áÐc¸àJÂ4µT³½ñ‘]Љ)³¼d]GÜX“þ£ÚÂݰ¢FÚó!Œ#HC¼“·qD€Xf©e»>ì¼×ÀžÁ‘ùhºŸ vä>Øâ!=6|I—-ÒYý™xƃ”ðÔepÂdoôŸ„éæe†}ö=¦ &GÖÖõVuy3^-v{ØpZÁΤêˆäŒÜ³/ÙŠ÷ ßCi:“jÇQ‹ªò©¢Š®QÛeä3uËS*Švû‘½íÌ·i(ÛIg-SrüŒ…næM}Y†)ºÔ¾f”‘s£zgv‡#ŒŒ•KP!‘”¡;˜õµ8݈蜊¨ÞŽ Ä E‹¯{oFkRõ{»×”ñNy±úXŠ«ªŽêv;"/—#·Ó!0ÛAâeD'¥ÑZ.öö© ~Œg\äóÍ*î«1‘ƃ1èc@¬¦i~T¥I;Ä—aü=ßÐÁÔaGÜ•]Lfu­±TÓŒM}ɇIÑQKÜ2zžþx‹§S%û®ý+‚ýüÊe\•¿p)jÐôpá”g5‚l}yqk)²+9òbö†)¾îþO^¤×þŽèò.ânÖkë¾ç©O\±Ë,–U¦Nª[_èÊ=2¦Sk–¼3!Çòu}JéÌ2âžjWi¹×Ÿ½×©*q±Ž/ª0)HI.OÈœG”FÌCiÄ-ò2¤Žv`–Ê. ëÄÛ~¢T9[#²%bá®|„«j>&“´è[ÝéXÖ5ì&ð{fÖâê צbbï~Æì Αû+Å;àçt1çÒ'"k¨2‹¬–z¢¿K¾În|¹À9 ç04+«%~%m;ÛáÃÁÒ¼fÇ=[8Ùž_Ÿyç}‰®¼„Îz×£˜5îçå­_±¥¹#ö^·,v‰4éνëûmÔ1T]/¾/°(9¾È5fYö‰­¯”èæhâåç€¾Ô ³|Á?” ÙvÄ'ͨ¯yäaGB‚¬Ò/Gš¾91ÔãÿÕMNý°5<”{{¹aç$¥ 5KïŠõ© (ê¬y”ê;J2YÖ,=g>Å9ëé.§7ˆPÀß­š`4WdÈ5I´bÂòÒ]c®×w"g® Töã)ÛŠ°s×iL6gl»º7Ï$ïû ûå͈î!¦¦YKâ³>áÅö,ßìâ,Üì¶«ºBv*ªv¹ ô*s¬Drgo礪+3.‘tÁU·¡$ ªyRèk\Îæ ¶Q¦£Îqα¼¼Ñíªm6$”poÁ|?A×ý¹òx|Þéò’œ¼$ân~BÄèþã-뫈ÇŸ_nöééW¿ç7€?~sðÓ—'NëÔìPvz¹}xüõøM}ƒºê¿;}zyúÅ_üòÓ¿¿†Ö ­BáLNÝ¥Lh’¿¿5ϺÄÐ~s†¶ EJ©QJ_~xüõø Zž?oŸÁ’¥,`w6 lð#T7~V£Ðj}xüuü¤»ÏÌÞè;uC ~}9å6¬YÁ©<å˜|õáøãñËà÷¬6¿L˜eŽ ë÷gX=`aES±—•µ±øëñÛÔ—õ?x1KÐ>½{È6K{R üîŇÇ_ßxgqñ[e”uèxûíý´1©I™¯³‹5â¯ÇoY7wù¹¸­á;Ä$ÃÚÆ6¹Ì™UÐâ¯Ço¼ó3ø}F~¦jƒÐþö]ÖØ{W³ü˜‚ŒM¸_ÿŠ_yÅ‚{ccDŠ~zÜd%@¬shK?â·¬ŽœT÷H ìw"䀾2ò+Ôm"%ÄodþŰ)ƒo¼ýåZ –LÚ&|/f…Àò8ÌJÒÔˆ­†=5ðû†ø[ÝúŠjVž›+c(ü–¨³‡TMxPâÈííË´Iü ™° Ù~`»:”Ѫhàœ2ä`–(`\K ¤ÊÒÔ-Å»>Ñ™¨Ì_„ö(IœXJ«‘.-‚Ÿ&½&.‹­½ÛÕ®XŽƒVøØu ãƒ\®Ù®ÀœÀtæÛŸñÛ;Š \¡sáÆŠUGe‰UÊ·tù–Ð߉í-n–Á¥´ýó °rƒÊJ†lU”¬B¡+«ß¨Jç‡õCj¤¯ýͧÛß?ñßÿyE.endstream endobj 9 0 obj 9024 endobj 7 0 obj <> /Contents 8 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 6 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 5 0 obj <>stream xœkhÙDÀ€ endstream endobj 4 0 obj <>stream xœc`Ù endstream endobj 14 0 obj <>stream xœ”{PSWÇo€Ü{-H+™ °ÚpÇQ•b;V+®JA¤Z@)è‚À\àBHâM" &”‡x,AÞ”^cÁÅÐÕ–n»uT¶ÝúÀj÷1jGº;uÇ]ÝöwÓ“ÙØÕÙ?vf“™ÌÍýýÎïs¾çü~_@) UNFù,.Ø,”ó–W’M½ÿu¬‚øk³? s2ªá„ÿ='…dNáPôGÏLDŠXU{ÇíV6Tþ˜ìà'§ìž°QP@-‡«VÈvÙ¤†òr¦f×þý•¤¢»ÑÖʪîôì(káçây+Öà°¥ãéœõEÙ7Ú£»PNdê¶ü5ïl•.ñó°k°ò:kÄè$Ý"µîA­¨ý@͇•Ã5#äfb߃°Ûy·ÓÞÂÑ·Vž³IèbäÕ g~;vÁ^ô ÍPIÑóöL/N{a ñBò3K’Üîe~ÏõJÌë-î6ô+eàÅúñ¼^Ìž¤ Oé{DÀyÊ“t//5‰‘3J%åwj´Õáš6ï'“ØlïBã¬LºküHÏd#1°'"s³îˆ“´ºß½.y’â/°nzåkjt¹«gÂotf‘¹[ë©@É~£Ã1Ù©8xaþe˜§ :×ÒßÝÕÑÖÓtñ]’:EF³¦£Št&±Ø#Û®\,™pÜB“èzÿÈðØ™c_¡?±¡ðDÎ'ŠSdQ½&-=qÕÕŒ¯ï^¹zç댫k¢B+<²Ö9zðà‚CB€™MQÿ2·qß endstream endobj 15 0 obj 2099 endobj 11 0 obj <> endobj 10 0 obj <> endobj 2 0 obj <>endobj xref 0 16 0000000000 65535 f 0000009339 00000 n 0000012832 00000 n 0000009280 00000 n 0000009693 00000 n 0000009545 00000 n 0000009387 00000 n 0000009129 00000 n 0000000015 00000 n 0000009109 00000 n 0000012580 00000 n 0000012046 00000 n 0000009483 00000 n 0000009513 00000 n 0000009840 00000 n 0000012025 00000 n trailer << /Size 16 /Root 1 0 R /Info 2 0 R >> startxref 13075 %%EOF pyutilib-6.0.0/doc/workflow/Makefile000066400000000000000000000010031367314503500174360ustar00rootroot00000000000000# # Create The Following Documents: # # . Managing Python Workflows with pyutilib.workflow # workflow.tex # all: workflow workflow: lstanchors pdflatex workflow bibtex workflow pdflatex workflow pdflatex workflow sand: lstanchors pdflatex SAND bibtex SAND pdflatex SAND pdflatex SAND strip_examples: python example_exec.py lstanchors: ./lstanchors.pl workflow-*.tex clean: @- find . -name '*_strip.py' | xargs rm @- find . -name '*.py.bak' | xargs rm @- find . -name '*.tex.bak' | xargs rm pyutilib-6.0.0/doc/workflow/SAND.pdf000066400000000000000000011143421367314503500172320ustar00rootroot00000000000000%PDF-1.5 %ÐÔÅØ 4 0 obj << /Length 672 /Filter /FlateDecode >> stream xÚmTMs›0½ó+t+Ì" a`zrl·M'IÓØ™Úȶ&  qüï+Y+;níÁ£¯Ý·oß®„Ñ aôÕÃ0^-¼Ë/Œ!2ŠHœ3´X¢”êFŒ´¨Ð/>¾›^ƒ¦™ÿ0»ÿñPì/‚?‹ïÚ3AGi’Œ'F¡vÌYvt¤Óð]ÿŒ½1 ñÑàQÖ¢=¯œ×¼ØðËÔZÞwAH_ȃñâj ¢$JHNB’G‹­ßm!‹€`%äÊúÍKÁe/~k^¥Ýy FØW݋ފU £l7ö@H;Þïúµ’ŽM£Ì¤kà·¢_‹ QÍ—àØ°`y„©6Þµ»¡µx޶:ȲVÛsÒ…Ö%Œóˆ%Ô:>‰ºEcIÌ";~+´ ûý%H§å#êDãmÑ9ÁžMÙv.‹\›FóBV¢°FwE/”,j»º)žUgä+zà›3ãz>¼¼Ó£áàqs°µ‹[ÄØ¥²ë,%Yb§š„oM|®Ãé¡QÝG´IQ‹¥ÁPöX:Ú9K|èÍŒ&ÿç& ¬°lLbCÝ‹¶S+3·™‚Üõi걑n Zûÿk»ëC¼ 8¶HÄWò⌀àq£Jƒõ²æûÖUÛõâD5m!&; Š2GUô¢_s;y”ÇË5ï5cP`júÂâ6ú2˜ÍÔWKh4É»ÕîS`ÿ¤ÖÐT§r7”úÎBÜ9/h“ôWbÓ;¤1ÈŠw.# ÇeôfáØä3Á,̵f,ßd Æ8:)1ÜÁq« h±S¤ö5ªÜøÎ>4ŸÁt-ÖŽR%6®‰Ÿ†§jÏÁ›-¼Wh*ó`f£ˆ¡²ñ.¯‚¦Êûyx`ÝøKykW endstream endobj 1 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./snllineblk.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 10 0 R /BBox [0 0 241 38] /Resources << /ProcSet [ /PDF ] /ExtGState << /R6 11 0 R >>>> /Length 6549 /Filter /FlateDecode >> stream xœ\K®$9ŽÜç)â1úŽ1}…‡éF‘‹ž¨Û™Q¢ñ²€D-²ÈË%’FRýýçžñøßú÷ëçÿüø¯´Ç¿þïG|üûGŠ%>ë|ÄŸ3ÌÇOã´ôˆµ?g|™A–g˜é¢Ã³ã÷¯õ@yÄ’1b=QÛ#æñ µ]ðŠžiæýD‰çs„ŠÚA§gÇbRLM3‚®Ížˆõ™¢8Ðñ™«f¨%]²Þr±'° Œ(xs‰nëžÏ7wô†Ó~ËžùY;¹'Ìú¬‰O¶ÐÍö‹V FokŸ ûœãæÚ7&ìýBÚû®˜¢§g,åHªµçX\ºà ¯À&¶=ûãEN~B ±Çg¬\èJzbE‰¡‚ù™»ÍcÝ)`Y] Ä û{–ÔÖ¾Db¥z ´§Vð¦!ÒSNÑá™!É‘ D=Æx[T§lI7j¼Ò’ð@|H2á$ApJ®: êo*PÂc6H¾-ýc© G¯&¸IQÏŽ5&€ˆbÖó9Ù¦1>&Ûâ—‰I6QÊ^d ÐOh“*~¬ê–r„Z*4=×ïÑ,%çǧ¾¾æõãŸ?âèù9.#oYGF× GÎY8 l/‰C,.²À…£8êÐŒŽ£8J‡G ³,páHt«ŽÄá*ŽDO‡‘H¾Âadœè8Â"`íÍqÚ–°qÌ_¸1iWDÉ‘ír\82IdÇ‘KÊpô¡ އ%¥vÁHЂh¼¼8ŒDK¢FàÈÃlá%˜¡;Œö¶Žð,PÐGÀK¥l7Ž@'Y‘ãÿ dÇèðtÊÚ…ÃH3rÕ#¼#©ÌaLJÚ0ž²¼¨Ády°ŒL,Ž"“ct ‰ÎŽ##³ãÈèä@úTÃ×'hˆ£€}š 5CÇ?#ÏÝéùDV>4€ùvh˜G›ò›3!ÿL‡…àQ4žsÒaC•½9uLXN©×l®›•dJðŠY…ŠÙ‡p²8/r&í[Ì9~ê|ÛÉ4xÍ9æ2iJÉ9  ßkýNíàUaÄýÝ–UÚIäXýøä@UޱA6‹èE–ÒÑa;Ït½Ô„À­bQE:J£s‚æe›£ù¡:j¾.HâA~š7›9‰Qrb`T ÁâÁ^“nšn1`Ó!Û&«“ ð`å ‚Êã•Ûé76çõ#õsÓði­lº›Õֺ娀•Y/ãÐd2*šh ý í¢>\Wùya̘ӄwmŒúŽ˜šÁeBô,‹–ÍóÎ{D¯Oú·S¢/šð(ôjñz¤me‰+g&B8€¤æÊ±UÑsïËiÛeR„iy‘Ãõõ÷`£×†»Ï%]ƒï™íÏ…ICÆ3Q æªX»ø£,áøJÄ¡ìErï öN;ì³`/𣍲’TnØ7x¢y9†VãsŒƒûV³—ƒûFå÷ä´zpߨå|pßðƒüÁÆ}ì´”3€¤…9›€4ó‡=8Q ×½pÜrð/àz`ßPBºa߀we# öiH:°ßôýæhzº€ƒz¼ÙÃzŠº%G=VÞ”%,Ôk½9^¨×¹ûÅhµøP/2§qßlÆqnduÓüe“bõÇ4Å¡Y8×Bh] ç[7s¬|2B-”ƒìÒîÆp£Ä0 ܆à™Òlˆ·®„ÓZè56Âv½Ü¯Ö×áï´íoܨö'°JÝ~¤fÿ”â×ßI‘&»~høoWRF~w5✸.²öðM€oÎxAþwÇõRÆG\/ØÌ× \Â×KÌ ‡ß%׸^r{‹ë¶¡Pºà[°¡·¸ Ò™+®ƒw\×ïoq]œ×}ÀÁ÷/Moq½ C£Ù€—dqv¼@w\ßôøæh~ð×Kît­ ,–y#¼Ô~Çumšé \›œá¥å÷Ðý67À©ð+’}‚Ï/›”ú:¶IÎÉE󌰾µs Î¥^‘\[¹#y)å#’SÜÌè}¤xGò’óG$§]Ý‘¼”vGr[å‰äï´íÒ#¹‘ñó÷ðêãÝ…·€þ!̯¿æÉ½€þ»•€)q•Sç¤bÎ7}p¾9ç<¥ Å*öŒçaøaL#Ãt:@ˆP©ß@´í~œqÅá0ß7^j0>@ð.ªíô6éÌÀƒ DèäP‘é{ÄAú/­2ßôÀSq»‘F¶jÆBzèy‡™Ö¦Ò7'J2ó;ÒE6n¤SÚ£¤Gx¾o#»®õF:÷ÐOt¬0~#]Æ‘n¨pÌfʾèy[+ß"÷êÖ*ÎA>Izîü­®ƒ|rT˜ZÈçÖ¤¸…kî ½ø0)]\¨Ó–|PO¢ËÛ¨çA»£´èoÒ6Só$ËŸ­Ä»ÌâÿT†%Ä;½ÿ}“™Û(×:ÈÉ5oÄ“LÕ¿IÇûf,¸”S8pgy¨ä;¬Â„äþÁjýí‚û {ÎÚGåYíëä îka•Eª’ÚGCÐÊ…öÑéNà'ûñ€ rì;o'§2,´ûGû'g0ÍæheZ ÌÑΚR(ÉÑ>`|3´;íhwçϬ¼dGû@ßa˜íöˆíŽ4ШÚ¹ëïÌ{hŒ‹3ºãúD*ŸîÄýƒ!s™Í±.ƒ*w ÊwäxÛ)9©°“Žý»kËÁ>¨ûyRyæGc ¿Ãü@:9O2Oe f ï‡Åâ…wѤ°ÞGcPr¸ÈZðï´¶Äàeˆ×žkü¨)e4ÈÑäÿT”yÕ ùCä·ì¦YÂéånqº—»EŽSîvÚËÝâÌSîO¹›t©w¹›œÜN¹lkw¹; +ËŸrwÂyL¶¿ÊÝ©©`¹«Ý"Ç]í&§ÆSí&­Û®UîÖïó.w‹SO¹;áD7æ)w§vùÛÊ݉EœtÊÝ܃Ì.wkßñ.w‹ÓO¹{Kj•»?t²|†»sŒ¿^ì&­ó*vçØ–N±;G…N/v§9ì2p»×¦®bwbÂzjÝ ØÉóÔº 4ßµî´îv­›4%¾ŠÝ©¼Uº9—¼*Ý úÈéTº©ùÖ¯JwÆÊ!<¯tÃäŸax¥›;–ì½Ò-™”Sê&=ë)uC¤Jv­[t;µnÑõÔºo|}Ë*݉€’Y‚ü ¥œórÄß{žâðg~r®y8÷Àjúº{°¹;³ÙЯQ›sfâS£çÎ=çn,«õË5†áâážä°Z†â½Óð³"~ æv<¯4ý¯ˆ_ëºYÜ#à½,<[Äštâò+ïIc»B~mÌdŠlŽqx@¯<#Ôz…ü ¤–q’‚:`§ÀŸM×#~„Eôˆï#<âr*Ô'âWÖåâðk¡Œ²üŠhS)þSœö€ïN_YÆ øµ†é ø”u±’½~À_>¥:.8Ò]yÀç&S=ùÊ‹±Ø®€O A"qEüOŽL†’]!_6•ã§øÞ)3ÛqŠœ!ˆZÈ'Ýã©Ý¹¶<äS_UÒB~Å)1ÄÑ+jù ù¥kÝ#•rrüªÆ]Á£Õ|*xî?§“i•´õóßiíiŒóµéòj70VŒbÌ7Ù5ù*Ëi…#ÅüC[ÌÿíBð[Ïæà?¹– KwÎë§ñ$È0Àú`ÛdTY‡Û Þ×ý3ÝÏ„PþÂ+y‡r8/çD;Â:IÿßX:DÄ–­‹júð)ÈjëR:´5t^ŠÎ3l™3 q …ެ‡•ÿ3àZ6=ki÷²‡Ž'î‡ÓÁ£ 3‹Ãˆ™¤Û`¢¡¶i áɨ›–FB›3>R÷¡ ª¤x Å'ÄàÄ8Äaÿ©Ð_Pr‡xZ·bͨcsà:ܧÓÝr§»|èzƒ-axBÈAW¢ðŽ4Þ«JŠÑxΫÏ|Fd;àQ39]·Òœ“aÀȈä1'³ùŒ|8Ù;Âpš«â¥ïáø*ñd\œlfzÛLj@>G60ßpí|É OÀ°S°’v ²c£a†ÎR´ê¥F}ÑÕÎäQZ"'$s í£(aßAù/¬+Á9Ýašœ û•Ê>.LY²àÔ¦ìYÐݵÀrƒÄ$0„è4Á<®¦3B&ÂËEÜíaú ¸Z$¬°Ž²K|¥UÒ‘W{bZû,¾¬w4)*„Ò‘¢µ`^q:ü<¼©hxr>ÁÏiœ®}À;eš8’06U¬º€.>ËRº8UÇ$ÓG‚M~gd;‹‰Vµž7Vññ©Ò¯oQ÷ï©Y³À´ kÇÁŒH¯Ù9/çPmµPmìC ¬¾sRRÇ«’Lû5$†¦¶‘ïœó*ïÉÂùwóÛ\u*øX²¶AíØQ„'>žê‚|çåe„ÓJwzè;#Ñ1ºI©§²pxñYõÄ;ÇéÄ3y?ôz‡jÄóæ¼œs-u=õ|Yˆç=8´Á€nš'-{ÏâÀkD&‹ÞÒtQ)9Í'¨ÃzF¤Ôܶè¿~lçœi õy8Œo´µ -šoa.:¯¦¹Ý&ióždÛ0ï)TØ4²Uk{Óºï1²Üg“Èÿ÷ÙdsŽÒSu|rÊûÙÄg‚ã È×xȃwà¿O|üïÿpPfÜžW²µ»ÎßÉÆ'ôd›ÎÎ66}Ò çX¾±IC:Ý$Þšž–oñrFÜ5ôEzºq8–n€®VÌ´H…äÔ.=݈¹ÛÕ@Pv¶áÔN66ÃrE–ÒâµàÅØ‰†ÓžhlÎÎ Êênq§xEfÄI4°'ž ¯Œ&É3 Б·+'ÓöÆÉ4>µùK7VXôJ’:Dz•±[W&bÞ2%Èæìðÿ4ƒVPœórNŒ:“ÁêÅøÎ«3À­y¿sμ¼=gCTÞœ†ÝžóHQ”'‡ª£Ÿ]#aIv²éúTsÆ`O’t•õuÞR×ZÑï‹æÿÛ–옚Ê!$ší~~qxGí~~sVœsÝ!訧wÖæ´VÙu[ë#ØÐ[îg_ÛºÁνT‡¹ÜkqtkIݳîxÊ@…’g°‹¥Áζ4¢³f\ä ®6“%§¹Ì¦e¼B¶«(•{»­Ä2m=ZâÓ›F¨³œxYpè8.¶îJ[°ã­$ŒDæÙé—ýÎ3m'6“÷P‹Õw°6M%-©=4ØÁtݽ º˜„G‰v¥‰3™IG×㪨©û7˜åÍuwDyªi³¨ºT"¨7ŠÇ4`ضÉKc_ßÌ[&?­wlö`ñ3«ÁW•>>Ùj`ýM\)Öc“L;[³kíºóÞYZ³ôg8gD>ª9wíÐEQºö©b©ÑÜ}©Ùæ0N[NiÑÇUN&õr•ïŒM²Û[ÅáMw¸Ëb[Þph# K3l'Õ Õ ¦9ߥiý­\`½r¬Ä \V Îó©*ôù¢t_®—¦™Å­ÐÛHxû•œ¨Ô¯Ùt'l^.ÏÓò—sŠÞI×A§ Ž u…üÁy´]š[qÌòÉY}œAÅ–›tõ˜/ZÉ•`¥¹n·™Vïy‡—H$ k¢¤›}¢ÄK+{ÂêQàÙÍ:¦ø­ÕxÛ7pUPYæµh ‚m¿ù1¬g7YÍS´¾’C·ï¤Èaþ‘»àE†‘tw.ëÖYÕ(n^oÆôÍàþù#óجæUtx$GydÓ)$™òSß|Ñ¡ûª&9bÑ.3Òb KcáÉo°:Êlº*4ÉŒ½ÑYJä _A’›ù‰ …7¬.Ì'YÃf8Grq«B •‹.¶^o,’éœK8¿ó±iKSo?aDÒ}^£Å‰F+h0'6LĄ̑6°*Êá[(<ó±­¿XN5ÄÕ“ÂJ«Ó.&çtÓPI:¨*‡‰Ö¿ÑPÐÄJy‹AÃ[ÔŠ5³Í[Ú[`›-‰æ NœuïÍOš´´Út!mZß,HŠ›“Š+YliºÎ;ˆÅkÄ"r©Ô{õ°Hž6ût]Ÿmd‡Zôà}£4u:Æ#ÃTv ž`_v¶Ê2i¸äÐ×Å™µuµ¦b­Hrã ½<Ô¼-Ýg~(…ðÁŠøa—ŽÎÀ6 Mœ<Ï*j5 °R‰c?ò‰Äª!¥R€UžBêèGn‹V2n’Ý#1 ëÁ'o:èi Î;23d¸xÇL_kÆ¿tGXœ¼•RåÖ÷ÀX³‹¿86d]ͯ¾§umÎ!äè_ ÝÒôW0ª;»Òî$ Xp¡ á°v/ëÖÃöÀšH.v/Ît¡1.Ó®C1(gÄx0¸èc^›CA³xÌ ŠÖbª8¯È<Ýh ˆ0¹1±ÆŠx2NGÓg œ¨óäV¬J–Óú¦¯rƒ{ÔRÔ&ˆíΟ¶÷õÍAZ ƒd&Æ 4ËNhr¬ÏÚA ¾–F”ûg}á¶89ü?ª4œ “åOM¹gÎé(œ{®Ó®3r/z 1­Ä¿CÄwÔÔÍ–.¾¯ÑL%î G¼äëÛ=6ÍïCt=ªÈÍ»ª÷SðS:Ú·1´rµ6Ëܰú¬r;7”Ú°¼4÷d *ïß6cÀÀìv›g»¦*›ìÛHW^›æåXÎûØKX¬‚ùœ4ÍçÇ:‘öÚXO†wf»Þ ñ&ËÓ³•ûçõºjמSû¸)X[†t£Ì}R™ÀOæuTèª%߇ j©\#f¶¯ãZRž?íS»À/@´ÊªÎó,Èñ˜ZVé*®ûùMcßÉþpÄæ°òÈOÈ‹}«?åuy™$ ³„b‹²>Ì:t?Žew] 46 HY+og ¶må4Ýtb…û¶b1rÃxh}££áFóÍtý¹­ï¢ìâ]/˜NjEöW |ÀªÆL —PÛô°“¿žX€ÇI¤¸úò€È«l´øÄ"iÍV¨TÉ*³5•;7âqvÙðø£r-¥ù(¼y©u“È{ |#ѹ~g/¨Š P<¦qê²î4ç÷ðÆü`(ÛZ‚¡–n9öENµð)Ù׬[*ü Ý>àª:+dk_V¦®ÃÁê…‹«°Û-‹ãEL„d®vD®Qýo4hëSw¡ž¬±©"´”É8²Ó\K]éŒhìÕ'¤Ç„}Ý‘fÆcmœ´°`€ÁÚº5D3È:M@ÉòKÙíÈÆy}ã¦ØÊfaÀ~©éi `è\ÍÆ˜O°1A’š‡Ø1ƒT ÃÛ$¥`¹Øb`ýJÁÔ†VÈU!£ÕÌ®ée*ú(Ir f~ùufgûƒÓÙº÷øÀâTuiñùìsŽõÕ x*£6×_ƒ•ßyçÚ±Tê…q =ÓWsÛ³4O«ÉöUòˆT;S™ªXèt.-¨[Ö9¬óò Ù-O\6’œ-¦MÛªrJΩüðE³~U§#[šÌ¾6ÇP@º&k@VÍVÇ œê9¥7¹ï~u|Ýýþ7þûØ endstream endobj 12 0 obj << /Filter /FlateDecode /FunctionType 0 /Domain [ 0 1] /Range [ 0 1] /BitsPerSample 8 /Size [ 256] /Length 12 >> stream xœc`Ù endstream endobj 13 0 obj << /Filter /FlateDecode /FunctionType 0 /Domain [ 0 1] /Range [ -1 1] /BitsPerSample 8 /Size [ 256] /Length 12 >> stream xœkhÙDÀ€ endstream endobj 17 0 obj << /Length 1033 /Filter /FlateDecode >> stream xÚ…VK“ã4¾çWø¨T¯äGlsdwØŠZ 6œ€ƒb+ÕÄ’‘í ù÷t«eǼEå N¿ôõÓâÑ9âÑç ÿÆùÃaóáÇ<‰Ê¸Úï³èpŠ/£"Iâ,Ë£CýÁžû~TÍv—&œot~•¦ÑiÁ¾ÈA[#/$ùY­“ƒuZõÛ$gß;Ìv ¸“›“uD /Šˆßž¥_ÐìÉù'ÕI7´Ê $³':ŸŒrçÛö¯ÃOÆNð¸Ê+‚‹“¢œ!"ýѺQÎm ät2xHD\‰’<|ùe ÙáùãÓ÷A{™ ,‹y™ƒ‘W>¼h€šì9s îˆ~ÛŠ’IäëÑ¡HuiÂY×vÄðPÃóöÖ½ÕwÖôv¶öÑâl}V¦¾=û¤¢RH*&iP?¤jNtÁÙg{UÎ`¢ãíneU9’RŠE þ s,x•2cƒ©4Ø3…˜¡NÞ´`kú+eõ…Ï÷h©Q3/˜j»‹½©{ŸûàôèZ Ȱ¸îYmÍàd Mº4íÇãº`rù?W·òUÝï^ šÂ9i†ÛVa–VLýÒC"3^øË2^2 7hÕâÐ<ýت@c„H\Ô§­.z ‰>ê‹nÄ™,áì$}—4†HøòzŸu=B&xË ÂpÔ€©ADL1à„¡'<Ç^Æ‹ÿD§‹„6pkëG1˜Ê¦CãÒ]çl3ÖÃ;çÀ­gÏîë-o{Ÿ¥¥ÌÛn­Z$Y!KO¥L=±;qÞìxiˆgì¤eNN›³"vçôšÿr#¡}3*8}~|(0Gy&Øoê½nêà_›€Áz}§jý'çI½Rß*Wk¿jù~‘¤T¤srBCÇ÷-èõÊ]µ¿þø Ž%w² ,#¡¥ 5ƒ™—´Ò½†ÿ­4ã †bt° çïÝ[æ7Ý+ÀKk" éDB!Xé´O!0`ôúšWã ˆE!ñ£´¨V@(ÓÀªyáäP\ŸÓL½…ÌÉÅIrvµXBâƒGlýÈóž+3ÜsŒVü}Xu™˜6\™Þ7\™½Ûp¨æ±”SµAÅo&RÕA¶\@¤ÿ]NñìƒßÓP‡«VoèBà§¢!ží´ÔvØ:*ç¾Qc‰GÕÆcµ@Òãê'™G(pè qSU“áÅö‹Ó³cñ]âë_$œâ‡>/Font << /R11 23 0 R>> >> /Length 9024 /Filter /FlateDecode >> stream xœÝ\ÉŽMVÞ×SÜe÷·c– 4¤¦¡mXY2 ªZ4H?úˆ÷äN^Wf•°…Üä…+ãfœˆ8óùÇ[ºç[â¿øÿóËÓŸ~õûqû×ÿ|*ó¾r¹ý×S»ýö)ßþí)בîû–;~(åöòTR÷vË%ßÓÜ·2zº§r½ßsx^ã>Ç-WŒ~û ¥Þû­¤6ðÆ­äµï ÿºïsÞrÛõ¾9qŽ{Ϙ0÷º·²neæz/š‰MaâÜ÷rËcÝÓÀmÕûXx?×|¯x®uÏ«ÝÆè÷–ú-ïvï#ß.Gøüô‡§O¹á¨­ÞZp€yyÊ{4ì(ucù¶ð´Æã9·<1Àƒ#»7ž,”Êrƒ^áxþü´vz=Ј²<óÏŽ‘càØâõ q²„Soäh÷Ä•Vï³òˆ[*1R@ľú=µ˜TÛí§§“op~î»WͨàÇAŒ ²—öÿ†’e”ûÖc&sß5‘¯21çœÝó½TÍzÚ÷Êsãx¤öÚåÞ§ÞÀÚ`ô¼@¾%–„èøqóàü@v\÷.iX#“Q!´ˆF ™„²/Bl£ Òê "vÓÁ‚ÜÝ£ÔÁçL¼ä=3gfOÃtÇ.g€µH%n¢SÚ@¦=1»Ð圓tbí"s¹ì{Þ‹gœGÀ®M°74:ÈàÂÌ1ã2n]Fu[dñsP‰ 5ÜÄcvoZ ÒS*6Käw ¬€¼eLšq1ò2Z*éŒÇ¶Š{ü,yÀ ÍE›X}!A"ò]‘2m`?2UnÚ¶„¨V0ç5ÉÐyú/QPð<)¢X¤ ­êvU/ÜAÖÆÍiä2OëØ¹Dh"(¸¹äBM>(G›{!Ò–±zÌqŪ´H!s”1Ò*Tjðè÷3) L n~Ómoq‹Ð(?Øj¾x|25QáÎ(»" áÀXýYs¶怬œÕÀl¦sbÁgŽ A`‡§=Ô°°¼ÚyDÊ%Q=QI±ê ÿ÷n¾¢:$E!à àB‡nàœIýÆÙÚJ îœ>ÓI¥=¿ÙÇs/ ‰š É7¤+ÐÒÈÇÀø8 )Á V#cSþE·t}åл-^z³©Uσ\Ìz¸ 4]‰ÚmB~¶8lCäjæ¤TýN’©Œõ©ßŽ€³&Uô„¶i”ºÖ  n”´ž7‘›`e~R-áÿ e“°›†ëº‘@Ô­Õì"GÔª@ØÒfôm£î'w.!Ú®B{$²ŠÉÎæ¡œ”"6¢–Û"jñ 9ȆrzßS€qòþ‚(²y…ì&-5Z–‚ª»Óà7Ô‰.ó§‘$u=!,ÆèåXÏO_°!°Uô°‰}y3‚çæçe¬SÑ¡‚âfƒÔPMFáÏpù,¤h«'äK©©¼ÏOZfPðäX©r‰^8þóÓu$CIZÌ>}ŸÛÕ †&I®hŠé«ÐѤŸúq¾”áOÜã  AäP¡Ní@,žéû>h`'@&ž5 ³|ØI¤Ú.ëÁXéý%7 f6߀{±»ÌÞìy’±ÙüÿùÍH¦,Ñ­¼íVsؼµM„G–¼…‚ý’M;ö´½~Ô™ô%M`3I%Á׽˿°%‚÷nd½‘¿Ða¢„”,%!ÍËç.kݧ¤Bëñh.ÜN¥I/2¿|âHíµË± å6Ôvà'ƒîÁ5?Xe…—C^FBŠN~…<¯*%–ÌE›±0 E ],Ô!D*Ù‘™¾Š½ -Üôý‰N‡Ù»!:GŠÉ6¸ÓA‚4VdÖÔ†ÿ^Î$;qÉ™áŽ\(Ÿ¼XT GìªX ´©}f ؇´I¬ð{—+"á PA ±;*¨@j=,!êpÀƒ)ºüYJ#èm¿íí«DÓ,eÆ+Žìà[ô";vóý¡ HZ2Ñ©¡¤¥0UŒˆËQ‹\§Ô¶E™&I}rMZ{Ò%My춪7lÕÆhR¥Ôû0ú«[܉“´m8c>b—>¥ÔA ÷ :H¸ádËç @Oy™Ä8Ljl«Å"bcU¹B$zUä у†¸iÞ$ ¯Ü(ÌA–ª¤ç&5$Tˆ¾ÄГá€tÑÇÔÚ (ÄjmÊ/Ó¶[‘E§‡flÒ:u(È-5”Â¥’ÏOb'¿cåãñè€ïb+rÕ<¢¡åD›Ö©ŒŠã«,/›a #Á (™¯ŒRF6*Dݦm/Ÿ¶‘hÇæ’6™È¯/1R,r’ÀDŠ`¶Õ^£‰jgî²[ý?Þh¦ÅŸÇc Î8FàTHÎæŸ:Mk|}þl¯q½zã±ï€p9Ç‘Aj²Ð‡k0!Ë:“Ê‘îžfgù©p¬–âÂNÇP­‚›]Õê7¨Ñ¶iK7ˆ*M͈gÐ%ÍÆÏ+§SÎS Š" °áгuÚ)#½ÄZK|ÔE‰ó)Ž£õêÁÄýÈkjÚá`)w¥X‡’7r•  7Àö’*È ~£GËu¡H)[taS@Ìf`HÛ˜^•¼Õ™h*V¬ûàþN_=ÃQ{Þº`fÅ#©%­ùúÇÙÀªÛb2¦½âd¬nÛ²–íÛ•@ý ” Pó%e¢2=>E=«YÒ¤™¿rü½ŒóCzhTš}gE«Fˆ ³Õí$—GßeJN'øLçïÿߡΩ,Rú~ß•†|X¼µœ¹€~ÒþôôüO6Ìô0˜Ó _É?`°‘¬»‰gxwÚo‚dVØ"ÓåôÒ ³”Ö‰\‚b7¡@’L·1Dj·­éòŸ½ç½àðSSNà[v•<»½f^¶’èW±ÛN;ª“ ¥гog˜(ìüdä1d¤næÚÒOçœVaMo¤t+…·fw^u3ðŠü©JäfD~"tÍ l…¿È¯1PÐHþjRWÏÔ=e9 ÃçêƒtÄ 9×Î f³ç›Ä—« ‡:Ê%&a°k†%uëIù±ËȔ۾ÙaÍa½c¦a“5äML*8:ˆ ®AYGœüj$3ÿSÅÅ ð-ßëìpËM·0>„ÀR:·{æÊ-ÜòÖ”0ÂA¶ ]:ÙgXçý¥u;MÐJÎïRMç ‘|æ--©Ê€6•Ûœ0ødåJ‡K2%¬d#€Ó¯Xuˆ•3‚€ÀN§#Ï#XÄŒ»¶S¤LÎ̤Ø~ŠÌeD®Ž”»Ë­mSÎŽqïKrG¡§ŒlS±‹ïˆ¦êk1âÊÁ‚4­ šf°ŠÜ*:­~ac¦ñ‘”ÍíÊ.&qS:ˆI¶ŽÖ"wЛ­?å[¹ÖèK)²·—‘Üp¬Q}l²C«J$®!y$QOŠªSœÆÊ kݱ¬f¨”ТÇLß[Ib9ªÕì Ôuy½c/£t_° „‡yÅÙºõCN¦"F¦ôÃÜÒ'tt¥=³£Í2M}ÛD.z)Ýܹåö[àøÜæ2" CØK;ò#¯Fä´Ë«g˽(vÙB©s‘óˆÜŠ%®‰43õDÄPLÎL;qã{…Ëòw¡ævÝcµ©Tf«¶ÓÙÌ8ÐØ Hä¯l‹¨SLÈôi*{MHæ>å3-¦ó¤‹­&wSú@é~&5‹í‘ùá¬Ôe*™‘çv°»4òÏO"ZlÚø<d毦fZ¡ÌÞlI’pGÀÔ#]˜Ì@L&q¸‘vIˆT¥• Œt€[qu—%1[³mC ;©e1Þɾ¼E–OCæ†.Ww•4Ñ“T€#4<)«ÔüÉvLœ “ph–Æ8•Æc1 Þ¶GŠ’8EQ›ù™98¥HTßx±DC“X’+ñƒÐlPY[dæb¨p%5¥Ò¬O\›*Ü4SÃ[T.CëuºRfØï’¦SwE¸Ô<[ðbVVÚÜE•O½³ÈÊjæãpEI}å9›³+çµ"¹ÏLÍqn#Êjl ¢XßnýاÝÿ’dI^œH¤ f³±ßóËÇuøÅ;å.ê¨GFgK³/‰òü.îÎpŽFÁ>¢@C%Ò2V˜¤!Då¡¢Afk@-NuOagzdHÚèhöƒCÑ3ø«D¥fXÇMSK ¶=/•#5ÅX<å(*]áÛ¦7Î}…ÆÉrv½Ò5>ð{öòÎaŒÐ#ã}RE ›òEÌõ9Üæ)‚Ò“ÅÉÕ!Q@é% Ø2¯lo´úƒ3›Löb¾(æ &¿L¹ëêç9»BÊTyäß"åøülÎÛÑK0çû“˜Ñ-ª>HS<Ÿ§Aèñ3¤õÝ)ß¼õr%Ù³Ø]} Ù\“ÙA——m»½»˜OÆ/fîdÁi޹«#¥èâ(Ó3÷qøaߢ:7¨y¶Å*™›—³zŒCìm_UÜÜ–ù@5s75ZhÇ^Dl°öy/9}Ns¦îHE9e½kÐõ4+ĆbåØÑuÖÇ7;xïøÁY4ÙþMæQ‡Âçή"åbíÙ›¥íÁk¬¿ôØ¥«QäŠ^Þ}'´ÛÑJµÁmo§2æœÇ[ÓrËÚ—¹ zKŠªg'˜ùT³ÇÏŠ4X‰£A+*3Ôh®r%X$:¼s¶P@:³fÍfç‡cNè°MŒôÎs“Œåx2»Ö®úéÐiSé¶2î= kùåÉ•¬¸¿|ÏKÜh¡²o9,ÅŒÜV^Ñ0ôå»Þ"¬¤¢‡p`­8åd½%«eXß~K±œcS%´²qµ]Т6~ó%áÊËÅAL12Ó,¨o¿õѵl%°ÀAË ²ÊÙ<’Äû­#ZÍJÌ„%'7(7”k‹#~ó-–ük×±K—üò¤8Š z#+¢ ,ך­-èúš÷Ѹ¡·FÆj’‰)uä¸%ŠóÖp½ºì2ËÜðc 9\ÍQêÒPÁ¥Œë©–“OS\\«†ðüf–wõc 9+±2¤F+ÎJØÕ,jèˆ×C}V»z—Iæ„ÇxJ*°í`/+†­è<³rz^V™Š©Êy8O Iþp‚r.liTè®R‘_UÐ=¤Í;˜à4)èöàxG%É9,?j¨%WÖG†iºYÅN³Ïvž þ#ÅžztcTFå’•d?¿(òäL š¥BúžŽG.³bS?RìÊ©5•Ôt,­öŽiP/ÙMåøï<)öôà7Ùb—¡Ìhè_ÉjžQ»žÝ¾yuçÑó›YÁO?Rè­ i:å‘1y"[¿ÕÑFqéö‡²›YžßÌ MðC Å®Ü Áæ›ÐÉ$6§8n°þsÚ+Ý!Ö§Y±«)vår6ûˆÝëÇ|%_cxåã4õD&pí9çÄž~œÐ™nÛ Må&2ÝRÅ똸L„êZ÷óuRèÌÇ;jj¾V Ÿ¹`² Eö§¹™íËw½õÑ*ÉgŽ,oQâH}ê3}ãAq®¶Ø;Ö[I~#©Û8ßz‰u¨3.ïÈiÍêm©Ù‚_¾ë-y¸Šz"Ìpº‡k¡%² _¾ç%éG딩ØzVbSå´‡nýö[òþ–âæ²Œ·s°ÅÑAxß|‹°ØuCü8¦u­¨§UÒ—ïyIܤT¦ò?/ö‹{±4&í;Þ’ßä 7½½¸25ïátÿï¯r—]VÝ-¸6SVs"éËw½%NPw®àÚÃ=`Þ^i&k(X½ñ—޽Sâ œ` ?l·ôV§TY*Nå=¡QýD˜# |AÕ±¶Õ¦Ç3Œðÿÿpÿéaf‡kScø$§4w´»©™ ;d¡;ËÃZtu·³Ùž1bvÇlsŸïÛ¤´}yCíK ¬8Ýé5è;ÍÅ^Îâx›-Nˆnè5¬ñjŽdßAšîÄšœÄHŸinü OšÅþ5"ÏÍÊe[·ÅÌŒ Ëó^±4{{T;÷µŸ¬®ö%ÝûS\†`Æôe›óîâ6(^\ê`Kj Û•9s•LtfW^›:ê ðĈ'ÏîŒóóˆ+7Bìê±Ê|Vƒ ;ä!íê™øº¼ŒíµR6o[щÙn—ZüG´Já°ìŒq­‘;Ç|æƒèy±mxa¡Ï8Üò«‰/PÿX’5PÖÝv¦o¢ýWN ±IÐs²³±™zÝù&RJr#]V‰oé^Vq“4Øb±,]±À“Xì8œêÄ*óü£ùÆyDÍcÄË‹êÝå-±"ôLU¾TÆR~{g_÷S…nŠZ,v&ß`+ÀýÿÍ•À­:VhD–á€ržhw—Ã[#Ƴ û–†®Ú0ØîŠtª’#Í`¶¼N.eî¬<;\·ŽQR œÀ„X^&¾¼Q¯$†“$õN…ÿDt€ºhB†¼:ývQ×ZÞ†)æ>m.je'°ÜÈT‡¾JË+a5—”¦džz¬8]ØeŸB! r³LvÞ‡oÔ u˲!jҥȔR>eò¦‡ÃŒËˆ.ŠaßdñªÛ›gQìd²û¦n©öF˜gäÙI©ksMVœìV"çóG} íªf"¨3øWlG &TÙ\¸ÔI'q*ägûÒ8oQpèéä\Ee—2ö—˜¹&”eIâݺ­Œ2,êîpo;/ô5êEºMÓ‰sìxë J>Ó¨DÌ}0žd½›uÞZÔ/σU¡¦ªw”Ï¥ä¸JzQEaT«q Œ%ku‚^ ?%1ãúÛu§fšº1?¥ÆèÕ“lþlÙ\—ÕaE˜3¯ÛõèÆñNà˜v„ÙË^û±7øºÒõ€Àp1(¼³¢k«WèÆìøÞFsß¿S0÷ûÒ^ —ÍÀm± ­ýçg/#R^tn(ðú 7vùÎØ [‚q@^ ëḞFw Ú{¶A¬Ûu‡ ¼ÝïC`i£ÅÓÄ]W 3ÅEüºQñOïìæã„¿%¸˜Èâ5Nóùie+Á-×’f«†bÚ Ú†­ÓIiŠÛ›os±d©TUPeŽžvòmŒ¥#Óì«qÒw³ù¼z4·È³4RÇY×܇dC·BhNyýg¸ñ:ùÚÍ×ìX›4J9ºö`¨ÙL¼w\ß*$í&˜ó¢nË´íà·j‹tÏÅêÔÑÑù›æ­Îþ–ék†“.0?§¢ž?Å»ê¿aU.§ÕÑÔc@¸‡ƒËÍâøÜ|·ŠºœÏI>6TÏcIh*vÎ+ f‡RÏê§ljqQháÖR¶;O:Ρ0†Bi:š_•’áÐc¸àJÂ4µT³½ñ‘]Љ)³¼d]GÜX“þ£ÚÂݰ¢FÚó!Œ#HC¼“·qD€Xf©e»>ì¼×ÀžÁ‘ùhºŸ vä>Øâ!=6|I—-ÒYý™xƃ”ðÔepÂdoôŸ„éæe†}ö=¦ &GÖÖõVuy3^-v{ØpZÁΤêˆäŒÜ³/ÙŠ÷ ßCi:“jÇQ‹ªò©¢Š®QÛeä3uËS*Švû‘½íÌ·i(ÛIg-SrüŒ…næM}Y†)ºÔ¾f”‘s£zgv‡#ŒŒ•KP!‘”¡;˜õµ8݈蜊¨ÞŽ Ä E‹¯{oFkRõ{»×”ñNy±úXŠ«ªŽêv;"/—#·Ó!0ÛAâeD'¥ÑZ.öö© ~Œg\äóÍ*î«1‘ƃ1èc@¬¦i~T¥I;Ä—aü=ßÐÁÔaGÜ•]Lfu­±TÓŒM}ɇIÑQKÜ2zžþx‹§S%û®ý+‚ýüÊe\•¿p)jÐôpá”g5‚l}yqk)²+9òbö†)¾îþO^¤×þŽèò.ânÖkë¾ç©O\±Ë,–U¦Nª[_èÊ=2¦Sk–¼3!Çòu}JéÌ2âžjWi¹×Ÿ½×©*q±Ž/ª0)HI.OÈœG”FÌCiÄ-ò2¤Žv`–Ê. ëÄÛ~¢T9[#²%bá®|„«j>&“´è[ÝéXÖ5ì&ð{fÖâê צbbï~Æì Αû+Å;àçt1çÒ'"k¨2‹¬–z¢¿K¾În|¹À9 ç04+«%~%m;ÛáÃÁÒ¼fÇ=[8Ùž_Ÿyç}‰®¼„Îz×£˜5îçå­_±¥¹#ö^·,v‰4éνëûmÔ1T]/¾/°(9¾È5fYö‰­¯”èæhâåç€¾Ô ³|Á?” ÙvÄ'ͨ¯yäaGB‚¬Ò/Gš¾91ÔãÿÕMNý°5<”{{¹aç$¥ 5KïŠõ© (ê¬y”ê;J2YÖ,=g>Å9ëé.§7ˆPÀß­š`4WdÈ5I´bÂòÒ]c®×w"g® Töã)ÛŠ°s×iL6gl»º7Ï$ïû ûå͈î!¦¦YKâ³>áÅö,ßìâ,Üì¶«ºBv*ªv¹ ô*s¬Drgo礪+3.‘tÁU·¡$ ªyRèk\Îæ ¶Q¦£Îqα¼¼Ñíªm6$”poÁ|?A×ý¹òx|Þéò’œ¼$ân~BÄèþã-뫈ÇŸ_nöééW¿ç7€?~sðÓ—'NëÔìPvz¹}xüõøM}ƒºê¿;}zyúÅ_üòÓ¿¿†Ö ­BáLNÝ¥Lh’¿¿5ϺÄÐ~s†¶ EJ©QJ_~xüõø Zž?oŸÁ’¥,`w6 lð#T7~V£Ðj}xüuü¤»ÏÌÞè;uC ~}9å6¬YÁ©<å˜|õáøãñËà÷¬6¿L˜eŽ ë÷gX=`aES±—•µ±øëñÛÔ—õ?x1KÐ>½{È6K{R üîŇÇ_ßxgqñ[e”uèxûíý´1©I™¯³‹5â¯ÇoY7wù¹¸­á;Ä$ÃÚÆ6¹Ì™UÐâ¯Ço¼ó3ø}F~¦jƒÐþö]ÖØ{W³ü˜‚ŒM¸_ÿŠ_yÅ‚{ccDŠ~zÜd%@¬shK?â·¬ŽœT÷H ìw"䀾2ò+Ôm"%ÄodþŰ)ƒo¼ýåZ –LÚ&|/f…Àò8ÌJÒÔˆ­†=5ðû†ø[ÝúŠjVž›+c(ü–¨³‡TMxPâÈííË´Iü ™° Ù~`»:”Ѫhàœ2ä`–(`\K ¤ÊÒÔ-Å»>Ñ™¨Ì_„ö(IœXJ«‘.-‚Ÿ&½&.‹­½ÛÕ®XŽƒVøØu ãƒ\®Ù®ÀœÀtæÛŸñÛ;Š \¡sáÆŠUGe‰UÊ·tù–Ð߉í-n–Á¥´ýó °rƒÊJ†lU”¬B¡+«ß¨Jç‡õCj¤¯ýͧÛß?ñßÿyE. endstream endobj 24 0 obj << /Filter /FlateDecode /FunctionType 0 /Domain [ 0 1] /Range [ 0 1] /BitsPerSample 8 /Size [ 256] /Length 12 >> stream xœc`Ù endstream endobj 25 0 obj << /Filter /FlateDecode /FunctionType 0 /Domain [ 0 1] /Range [ -1 1] /BitsPerSample 8 /Size [ 256] /Length 12 >> stream xœkhÙDÀ€ endstream endobj 27 0 obj << /Subtype /Type1C /Filter /FlateDecode /Length 28 0 R >> stream xœ”{PSWÇo€Ü{-H+™ °ÚpÇQ•b;V+®JA¤Z@)è‚À\àBHâM" &”‡x,AÞ”^cÁÅÐÕ–n»uT¶ÝúÀj÷1jGº;uÇ]ÝöwÓ“ÙØÕÙ?vf“™ÌÍýýÎïs¾çü~_@) UNFù,.Ø,”ó–W’M½ÿu¬‚øk³? s2ªá„ÿ='…dNáPôGÏLDŠXU{ÇíV6Tþ˜ìà'§ìž°QP@-‡«VÈvÙ¤†òr¦f×þý•¤¢»ÑÖʪîôì(káçây+Öà°¥ãéœõEÙ7Ú£»PNdê¶ü5ïl•.ñó°k°ò:kÄè$Ý"µîA­¨ý@͇•Ã5#äfb߃°Ûy·ÓÞÂÑ·Vž³IèbäÕ g~;vÁ^ô ÍPIÑóöL/N{a ñBò3K’Üîe~ÏõJÌë-î6ô+eàÅúñ¼^Ìž¤ Oé{DÀyÊ“t//5‰‘3J%åwj´Õáš6ï'“ØlïBã¬LºküHÏd#1°'"s³îˆ“´ºß½.y’â/°nzåkjt¹«gÂotf‘¹[ë©@É~£Ã1Ù©8xaþe˜§ :×ÒßÝÕÑÖÓtñ]’:EF³¦£Št&±Ø#Û®\,™pÜB“èzÿÈðØ™c_¡?±¡ðDÎ'ŠSdQ½&-=qÕÕŒ¯ï^¹zç댫k¢B+<²Ö9zðà‚CB€™MQÿ2·qß endstream endobj 31 0 obj << /Length 867 /Filter /FlateDecode >> stream xÚ•UKÛ8 ¾Ï¯ðÑUoË·Î`:ûÀ¶´)zh÷ ØJ"Ô±³¶2™üûRIâtÚn¤(’"?>Œ³U†³?®ðÿ¤7ó«—w‚g„ JšÍ—• )ª²’JDy™Í›ìsþáúí-ŘÎáWü;ÿ;›QDD™ÍGœË¨õ±kíÆ:Ó3*pþÞ´F&¨†$™jß¶;êÎon½Þw†è(FRRᣛO2pU2TÂ]põFwze»Uôõ¡¶¦sö Ä[GɧBá¼¾‚ˆõù~Œ¶‹ôþàÖ}â÷Ö­},/ï¸:š`ŽÊRAæU8³=ìœmííÁý²í÷ÑÒCÊã2@ÊQXIŽ„H†Ÿ Ï·­Õ›øìkéŸzpa¦c R.Q4BwÕQó­v¶ïtOÿèE?h×֌ɾB˜Ó©ý­vÉú,£M@€ÛÈüÕ-ûažëtsk¶Ñ ^GX\uÿ.ªÞô‘ ãC„¨¤N£úu»((ÎwÿíÌÿ)›7‘ª’(qÄÿ Å UJLÞ›5Äöj   UÿðƒRô¼Ã—Šû˜$E´ªRP‹Ñ ºv§ú f¥P¡$äTAh*AS™7f¬»H'·NL­·zíá|M‚¤_žTŽ9ž^"R xá_v×™ –ˆ(ÙŒýÒí %R[]Õ+ýÅ0Íçk;Näé0ôùƒmžÚ‡–É’^ íÓ T8¯[=Ž!1UABÚEñ™§x¥“>Œû ðó÷à5ÌQl†eˆ¸NЂñ®1~Š»8ÚÁU/Œwð¼Ô€Q¸ñ8}°PLG…üð4±»Ý5üT¾x®2Àî÷ S"ŽÅ“‡žëH:=…ÂËžÐõ|ªLcX¥ÖEZ뤶H¦»Ñ¯RϹ¤š°K÷ÏàËL8¬‰ËMîw`ج<•ø‹æ‰Þn[[‡M4†“ùuÓØ¸™ÚC!ÅóxRXŠ­~»Ó¹’G@»ºÝ5¡} ‘7Êë‚䃙¥$0âDL3ÖîøýH ²î7è·Yk=†^Ò g¢,õ½¸lÉdòìñ‘DÇÝ"=”aCü, ¿i¶MV]FA˜ø/,­PIILŠM”^ϯ¾¥øW endstream endobj 35 0 obj << /Length 572 /Filter /FlateDecode >> stream xÚmSKÛ ¾ï¯ð­Xª)`0Î1ÝÝVZm÷’T=´=›8(,l+ò¿/xœjWÊi^|óøf Y—‘ìûYå×ý×o5ËDz–4Û3ɲjC±¬²}›ýFÛæì|N ºZÝvíÆüïþeQ‰ní.»æ s²ò½Nm!z˜AÞZJú£}‚ĦÿuyË~ž¼µ+ÆçL «»¥¦Ã`b’p ïíèÕ7ç“^˜f%ú¡ÂhÒZXÚú¥W.üÌy%P,]r •žÂ*£òï0hOºøåO,Ò=%ÿ³Ó!§5êæO¹hïÛ2ÑBs²¦Æj¸Óñ&Ì8ChÛ:ÐùÅ8¯oÉ'M®ÕÔx²1ÔŒ`==ÛœôHx±áÛ×ZBpJúÿçg¬¤˜Pš¼’¸ëÏå=ïþŸ$ endstream endobj 38 0 obj << /Length 687 /Filter /FlateDecode >> stream xÚí™Ïo›0Çïù+|„CO•Zµ°Œm9ªî€nË®^Ãî­ âúÛ}¦lÿø{b/DHG{ »i¬)‰9GªI£yMrÎU›åLä\Žþ ”wNóûe튔¢¬]Ýò¨ë…í-³ZwJéáa,ø—×P ®¡pkxU $rs#qmÜLHª;s œŒžxI¶TMX‘rŒ'{¡°¦é(Ä Õwt{uÒLIZå“ ÑXí›Ý(¦»‹XæöÍ.¸,2G'+Vul?D ý¯küJa@iÜñÛ,œúr»PU±,Ó6Ú1íHKÂa:/ÕÌ’R³muEbŒg¯‘ÿa×ß Nt»þK•)÷®¯8ÆÃqƒÿ¬ij²[àd÷›*ä¨ÔMžso ¸+pl·rž\å<]¥Ëª²¿À¥uØX£ÞðæQËtuàÁ$†À¸\¨[£K=•7Å‹yq`Â…±ÑÎ`dÃjÿÅì-&Œóœâ(âö©¾‡Ç“Ÿ‘1 endstream endobj 41 0 obj << /Length 478 /Filter /FlateDecode >> stream xÚÝTMÛ ¼çWpÄRMx|sÜT›JU¾m{ð&$±bÙY+ýùãd“ȇJÝCµ'Ì0¼7f(Ú#о-è4®ŠÅrmb‚h£;¤RˆV¨Ø¢ü£ê}–3Iq»KãºÚ]»>ûU|_®¥@ÄJÉâ~ÐÄrŽr% •S å@Ãæ§PÃJ¼ïÊÓ¡Ú”uœ*\ÕõÐû®ôUÛ$ÂØ,¬”izÎ èŽ?)åmÆ"0.Ÿ+HŒ]D˜/3Àý±'Y.„Æ«ºÜ§®š y$½:vnjæË@ÿ‚˜&Âj”ƒ BLâ;wê\ïšx ÊâMÛ4nãÛ®ÿ-pÙlÓJÿ6”K߯íï $Û…iÕ¤Ñ⺦SË{¨Ÿ(ãžÓ0a×íà#¥Ò{•§¶óñ—•˜D£ØÝÀçÀ¿§üãöÏÐáï9D/95è=œ_.$“„QyI»¤©I‘|ÈÏMXÓm ³ øÖ„5n;ÑR $}År-ÌmÀ™2”G5Eà=Í=œ¡¯´x…çŠQNã¶Öj¶%¨ -¡ðaÎÁŒà’ÅäÄõ]ãŸØ‰¯ÿ‡â~w¸%Ì” K‰16)Rwìçbñˆñ”' endstream endobj 44 0 obj << /Length 166 /Filter /FlateDecode >> stream xÚUNÍ ‚@¾ûstn3«»£×"ƒ ZèPÄL—` ¢·OÙ:}ðý#´€°‰ð‹K-Ê\Ê$çL`oÀ LA’ Ø+œâUW=Æf‰Ò“¸ØíL JÍipì*_µÎ·Ár¨]ãGwFTu`Ž‚uÜ÷‰J{A¿žAp>àþ=v½Ÿ«¿¥Î€HZ«ù”JI"$š3iX‡eþˬmôOÝ5 endstream endobj 48 0 obj << /Length 2171 /Filter /FlateDecode >> stream xÚµ]Û6ò=¿Â2PkE‰úÊ[®HŠ; ¸Åeïòö–i›]YRE©®ûëo†3”-¯69\Z`a’Cr4ßÜhuXE«ÞD<þíéÍÇ"^‰<ŒE*WOûUÃ_J™®žv«ÏÅz#¢( þÞ ýZA»«Á´Íúç§<|€[B„ešÆx;Zm’"± Ë+£›ÁüEqµÞ$Iœ×" Úþ@I»ŽS<Œ¥}ÕÐhšª×ÊšæP_ÒµÝX«žŽÛ¡Wƒ^‹48ðö¾íirR:À=ZUí©«ÝÁß `×"xAž7Èr $°Ÿƒr¬n’H]ßVÚZmÃõFfIði]Üñbé ªë‰7XZúžx{hùØ8´'dívjP¼ß«Æ?'÷mû@… vÚV½Ùòé[¾Èv íª^oâ,"êwc¯aœIõŽwTëÚü¡ 0µuS î_ˆåDŠ;…â%…"{±ƒ>YÆÒ3æªn­.Üëd$±Q\¼‚öOíNז棥[Œ† ÛuØ4 -‚°ê蘳}Fh“IE­FiðtÔ~Æo;_°3{$a¯{ÝTš?i­æ¨7ê\`yÉ’¥}[nšhq-8™™ÁÚ=d8t¼oÇѪ>´½Ž'§ï$ ÎG.E»3-p°LeMTÂÔ£­Ž`Xµó9\“a¥,¼ßñGW#Ž÷ö4Ê>ƒÔñë€Ò´\8Œ#Ž“‰ÂÍüèjó¶à>±ÕŠ™òø×‘–@K&ŽáÚ¹Èhµ­µ÷¡Þ{Î,:dû·ø)e?|(㙌óP&ÒnŠ|25‘ß_š+F„E"¼^/ÝQ4(£0ʦƒo!BÆ9Öeë¨üèWì{uÒ$-â‚v)5ÃdÎ.ÞðI¯àDc\.ÒàAïò^ñçì4»S|ïzq£9(m/¥h8ôª;Îã'‹)žŸv.ˆ¢~ަâã†Ã c?CÄá_´$Œ ):ü¢n7¬'0¶°åÿ©\ŽpQ KO´œ öÞѱ轢 ³¼¼U>”!^ù‚E“ò!ÓW‘¸ùbl81MsÊ‘ˆÈVŒÍ4f0PŽ\h¹U.»ãÔs€¢,HºN_ ·ò¦9W ¨CNI”haòn-£àû÷“!ü¢«á¯WÒÇJ (­ÁEÝëiA7YæQv£šJQR "à0E „dfÎ p¥ Thxî¸ÇÉ’ðß0è¾™Må0 Ké")¤‰Ãã0toÎçó”1<Òœ|ÑþŠ2ŒÄ„á+ZH æ¢ü&5ük$-Œ‹i2‰ÂDƯÊÜŠ†ÚŽÃYã/ËeËΈk(aÇšåŽéÇ~äÍ»¸çî›JôFóg~ŠÒè£^,™ƒ_ä ¢ïÇ=0¶ý!Ÿ…žBïþ.|E|Mð2ã¼ø¶ …”z¼,Q˰Lб§œŠ|.ä¤(fBÆ“#à‚#£mýjhë>ãà«äq‰’·Ë’ß0±³ìÃò?ðµEá?<¯Ëâ—Y˜\å‚â÷e¦e6ÏóÿÇu•„¼-LÒäZ º½ÿ¬34ϧu’½2®oðgù3M¸^ç†V+¬n©0b䟅?YÛ–fv캶èGO9ï¬`MUb⇶{VêÈ»š9z­Z¶óHMùì;¶¹ßáν¬zì2g] Õq\GŒy½Ý”{zŽþ·RŒ¦"nÞÆèésV¿Z³½ÞÕpþLD’ ΩÑm5ïr–»·0–eSRî.ÐWÕfû•2è÷»UôøÉ™–û3Ï ²ôn°ŽobZ]ø7þ ­¾ ‹8žk¬ ÙRX&d勹Œ—å ÍBÎ%}™¼(éËûv{­|î˜îñÜ¢ÃÎÎØ°ŒÆiË Œ §Äto›­w»èÚ3|¡ÒÚ¶þsŠøôK!ùÊ2ªJaTÔ¢X]ï7´JÊPœÝÄE<Ê¢€ÙT‰áâZ/¸C-ÝÜò%®¡ð”¼Î;aîEÓ;ïB’º®6•Z~g×.÷È”ïêɯ3ÁŒÅØÉ‹ ÓÍÎÒšZ5^¹ž»Ä•¸ù·s¿òMž˜¼ßÜÚ¼k5?[5-ƒ8š âf‰ú?9¶8–¿X¾¹ýª!Éxªò,-Ñžäòû-n_Ÿž¤¶’X̃LTÅN/ùÍ ÐàÓC¶Xb;H é‰ç°(¾åG‘ÓÕ•HóªMá1îì$õdòO•Ü ¢Fù̓ŒŒîd¼8°Nk]]?´E#…ŠDóšl å¾wÑÔðˆÜôè)¹3…ÑêÒŒ¥ÔUNjãUÊ<3¶¾½aá¢uý:zƒôç1˜æ‚© "ïIÓ௷6”c.Éèr¹¬€cÎrÊ€9²GÙ W•c(O)0áö$RX¸X†# û±©† …=˜Ý9!ßáVÞd܇›G£†1»ÿ‰F,z_R§×Ð^C:jììu`gœñ¨þ2‚ *Ôw©øJ2WÅ*ŽD˜Ã' Q…EQЧŠÙ™÷Ooþ `#Ú endstream endobj 53 0 obj << /Length 798 /Filter /FlateDecode >> stream xÚU;oÛ0Þó+4R@­”(Kkº@§24h‰¶ÙÈ¢ RNÜ_ß#vlGY:‘¼÷ã»#Mv M¾?лóëúáqU󄱬‚'ëmRÕY‘É’ó¬(D²n“_䙲eú{ýã¢÷¸ŵ\«œ+ˆÿ|J¼*ˆ“öÅⵑ=^6*F%jñ!ƒ” C7ítlÌa0½ê]´àöÒ}b«=õò Ùu§ã¯Úí£›÷°|6î‚e‰aoSF‰lœOi)H–.rÁÈz¯}eNì4 f ñ”>…äƒi§NŽHmÕ3¥¼×N›Ùfåc1à*ûy¯Þ£_@'7)äÕ~ñœåY¤ Ú¡($%îÜ£ÇÅ\B—0Å0àœq‰ gð E…S[ÓÅ"Âk;šC”ÛG»T¯|„‡[ÓIk•ÍîÀs‹¸EDÏ‚Cì´úoÈå%ŸOÏ3hüÅççOí#—þëS ª'9” w€,:ÝGah/«Èn:x<0Ê¢$«i„ZŒiA 4-¯é%Ý7ÝÔªèYεæÖ¯KÒŽÚÇ{L™ Ê£©gÌ1åùoA¨™°=@üŸ¯ó c“Õýe$vÚÄ8âûÔ;ùvåz&páâM^“=E÷ïü«ÀL•Ÿ© *ÛX<®Šêº¯œ‹LäüÜX{ìQê®ûUÆëK÷Á ÆCÔyÀìf¬Œ`Z{ÌæKFFuºo}}ó%Ö“]˜qO˜'ÛŒzpÈFãk}ÔØNÈh•“º Ø /T £pkY!¡‘ƒÜè0‡†X¨”çjjNbøl™ Qß–ü)­(ñf q†> XÜ _ˆ yºà(.e$ (hvÝdÝ#ï=‚¹pšÍÕ8{öåÔû03xƱVâ*{÷~Á%ÏXœÝN·K/ge4Fa½>…ݦm3Y‹D,%ý0žÀºŸ/…³ä¡ aúáþ1Lš²4èe%€ÈÑ“e7©È±ƒj´/ `&·Íé³)¸Û$×.á9Ë(ƒE(¨Èx?ßúFèÛúár³ endstream endobj 57 0 obj << /Length 983 /Filter /FlateDecode >> stream xÚuUÉŽÛ8½û+t”ˆáªå˜ `0ÀÀ’9°e¶­i[tD:žüýY¤Z6tÃ,_-|¬*ÒâPÐâó†¦õýnóöSË ÖΔ,vÏEÃáŸ)U±ÛßJFø¶b”Òò=êÃ0¶W´ü{Û¨ÒN/ß)vËhysÛv_Ñ$BÖ<¸£E%%áJÌÞKþþüÌÌ~æ†æc¤S*›‹šD_ÁüÓp¸N¨pÅP¸L_‹½q¨Ñ¸&}9½>áçp:]Ÿ´ìˆûŒ«?&Ÿ½=_ìhFï–€:;¼…Tç3sŠZ•d 9²òæßÝå/ZE¸¨á1ÿ[6^=¬l,c7çT4)8MQ¿RÖ»Lƒ3{€2é†u4I˜ÂÊ˳’&œðê#‘P9o.î È.ø:¢ú–-ô)õÚ yK mEÎÚk÷²v6()J›Œ‚¼V\1N•3ßÅš;ªº …à] 7Sˆ ŸõÅåÔñ¨ÆÏLEJE œCq"¥©ä‡(œdå^û`*9(ý–•?4î¢;"ñ ·WgJƒ6å—W‡zÜ'“Êç(°ï „sh6“°·ÁW««†&PsÅ\ì´J„ò™,ûô¯é}¼p)^ó ¬¹DJ+ kïË kxyÆ—Ø·Á®;{0Ð?îþ.S¦iw;Ž„½ïV/XÕÎ}ãÚc€½þá±¾!¸Fer‡} êçÉžqG'ÍÌ6è"MQ;Œ¨±Ù_*Py;;ˆœ°FñÐz¹Nx—}ò¶|Ž=*=Úȋ AE¹;gõš±C4˜“"öÀÈrPöaÄýêOCŠ8Ûù*úa+)Ô?ü|†OöA¹›A̼9´9¦ñÎFïO•8€oBÌÿÂé¯9WÐ&¦Rd Ö'ƒkoí´Fí½ÂqN¿Ö<'cœÂawôÔäß\H|~Å×»Mè Z°nª¦`-4 <"ýyóc…Õr 1ne³¤xûå,Švóü=ÉÐ*…¨1æguÑuxiéò)Û²¸¨ /0&¯@IG;¡YNºw^¼l¬ë^¶)¬+,ÆíØ®ñl!›¨‹ƒ€`Õ§àDÉSxÒ}l’6̸ÉÒáדñ7cFüÀqbSNæ2AáwæÞ#¨•iÁŽûqMc¦)Ÿ,–‡›Kt‘BìÛeÅäh .£-!¹YAÄ€ ÌSäÐÁn½®g- T^T5%¬K÷Éè-Ôàÿ ìi endstream endobj 54 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/workflow-overview.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 58 0 R /Matrix [0 -1 1 0 0 612] /BBox [0 0 612 792] /Resources << /ColorSpace << /Cs6 59 0 R >>/ExtGState << /GS1 60 0 R >>/Font << /TT2 61 0 R/TT4 62 0 R>> /ProcSet [ /PDF /Text ] >> /Length 2625 /Filter /FlateDecode >> stream xÚí\Mo$·½÷¯è£6À´Éâ÷ÕA$—`>9ƒØN,Qd#?õªH6{Ôšµly-{ÚÕðM“ÅÇ*Yüh=Lvþ×?ÎV~ÏüÍÿjç¯kùQâ—Óûé¡VYÌBOªìD~|­]ĶbË ¢<'TkUЗ,?(þÀbfq’3-ÆÏç{ùî~:-Ásâ´”8/žj‚ÿŸ'I²@|Ü5ä–À-C!¤K†`Mœ§D-}Çé%6”Üb¨•m€´…ZEM3 )Í*"þuž¾Ét?% ú5¿¤;äͿ›Lý´CMiÒ¨´;1Ûû®àÏo§Ïno¹È| Ú<Ÿ¬40ÚÅÇ™œeV·÷üè+V‡I3žÝþoúÛÍí?Þ’_òÍ#Æ…n¾áϰØûîï·žþpÛ-»šFúËhŽ”/MäÁ¢š`1b fÄj°hĉõš 7 }Î/Ŧ™Õ笀<ó/‚5X*v˜r“P–EX²(ƒf‹æeí0·«–µq ÊK4ú4ñd_Câ.Ê £i牬Tϲîö*€¸.î~!'ûÎB¡ˆ(4Ä£¨Y,`!1kA‹,¸ p‰/ÄÍ`2)²‘û«=é<Ù´þŽ|åE—œ2ªÕ¯'¤okã[ÿ`Q¯Õ–ÚL@MœÁ1;n`Aû¼ú€´S+ÌK¦$:ˆÌ‚¡±ªuh#.QmPÐH†®Ce#Xž|Kr' *#›4ŸHEq¥qYÔÅpNÒNzŒ›º•ôÃÆöKd¡\"G¨¼„ ÀêæV¡,sZ ÓâðÀ’“ L“¤«vO%ÃvÕýc¸ñì}7úö?ß÷øîößp±‡×}w‡O•÷<ÜóÓtOqÐÑ-sT·ä<ðJx¤üË÷ßý¼.‰HÂ@¢hìd¥¯ëoN_×§÷è@™Êp*Vk÷T¤7![Jª›ÍÄãj¶ T²©h¨ ~ö<3„£O¸¹‘›¹¹‘›¹ÑÈFn4r£-·ª5-øœÖôi×Z*[­UE)(¦i-—Ak+P2šm«BÓDÌ´àsÌôigVì–Y%#ÀªÌ¼±+³HášmKÓ4Ñ£=ŸÑ™}¢37êlkÀ‘¦uF£Îh$³5íVgîªÎì¹Qg[2£Îܨ3uF£Î¶47:ÃBˆ¸Û¹§.ß‚—¯PÔú¶ø‰ÃêG`$SαzñèˆpŽçˆpÞ¿æÀõ«ˆUŽxàÅñÀ0TŠ6„g']vEÆn/£Î c@MZ†*ÊA¥r©S‹õû1´{Jž–ÎØŒªkc/€G†H=ÚµšÚÙgîÀ-ÍS‹‘-¸Ï/²ÚîìÚÓÿˆá™!gŽ2”0!Xä¬ÃPÌz‰ÈÄ+…(ã/Ò2ùE^»Á CkËK–ŠxÿÜä[Phu[T\IŒ®ûMCÏ—SŸtÛ°kÏ­Ù»5ò/Ö`MXS¹(>ÎÕHßõtìéií]êØa£s©ñºEÏ;ö´È€¥öì’ëÓH‹Œ ª @«=‚¯:µQ»xµ'`³§lµjO¤}·'´‘s·'ê¶¾ÛÓòG¤nO@Ö}•ŸÄlµî´ÚÍñ¹Ú€ÙoºkÏ’6ö¤€˜&%/¡^Õ¯¢®¢Ť Ô”ZøƒFmÙŒËÐYõZ+À”.¾¬&T‡a¯ƒ…øj^mkk0ÅŸÐ#Q¢Ž¿=-wCVÉ£äIDz^Çì ªÑ—Ék2-^5±šTV© kômr·åhUaDœ|É®¼ôÁ)`HQ2LŽL“ôß =”`%P刑y³)ñ™ž) DF˜²DÂN Æˆ UN5/÷Lˆtç*—k…»ž§ÊEâ´JÒÁC»Î=¼rÝé2¼êA×Ë×…(J{ëÂ÷{™få<§áœì'sÚ[gjEÇ:sgq÷€ÍY9`óv÷€íÊÙškgk¯ÖµöÍ)>äã±,þ Ëbw±,žßÐÂØ ãmýïžÍQ– ħv6÷ì¹ÜÏ螎èpÏWwÏÃ9çrÎEuɞ˽ºK:/qEð»{]Ždæ>žóÈ\÷ºœ·ú-o ÈÙBÝÞrÎŒ@<®f«@ ›ï{]”¯1£xÉŒòÀŒòÀ¬©R²52ú00k@¤]f!]cÒ†Y([f•Œ‚d³Xf+P2šmKÓ4ÑwW"hË#èG‰ -ºÓA¿$‚¶>½0‚¦A“qoyŠžIú LÒ´¤?‰[M¿xýƽóðÍÃ7?^üŒmÍ_(~®Ü3ñs}Úâç?öø_ŸI *ÙŠ[ãçˆÃÕl¨dSÑC”ú ³¥Ì ¤3«ß«à¤JÉÖÈ äÀÀ¬6Ì~'²Çyìqû²c»ù8‘=Nd߆au*[WuꪴqUA<^¨§*râ¨Gåq–Ëe´.ÊzQÞš¤*íÉö@ÅùÑE;‚‹ºÕEÝ®ƒl_ó(fŒ4¹úŒM+Fd„ÄŒœAŽI“œ7sšÕ¨W˜ÎSˆÐ0£€Æq$’œ31_”CRn½X¯"RãÕŒAmW%˜NçËi•9¡>a’å·2Äxç±]{V ÁíZÍÉtYu(§»~œ. ©Û䄵Ùê¤j!7±xퟠåqDZß¶¹ÝiSÛÊ…HçMµâJ²=VgNÕ“àè«-OõM?U-#£}EÕ.¸Y”³3U› ˆÝªh¿N 'A{v¯Sh—åA¦Uä8¾‘®[XZÓWîAâãmËû¿¡ûž õÉëËmáñòû(êöîKà^„\¢Ç¬sõ½æ<.7ÖPŸôJܨ®ŠŠZ^¬¡vo”üðÕÔU÷‹æp¿ÃýŽ?E¶õ-\cþæQûKd{÷Cv¶òÕ­†ød«![ iÜjHãê~|ûßÇq«!Žkø8n5ÄíVC¾ºÕŸl5äq«aC&«ûñí©rã~Ks³ÕðÀ‹Œaøa´¸ãCÆcYRhŒé7/ Îÿ1MÆ endstream endobj 63 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /Length 2597 /N 3 >> stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 66 0 obj << /Filter /FlateDecode /Length 9580 /Length1 23924 >> stream hÞì› |”Õ¹ÿŸó¾ïì“YBöÉ2Éd!$$„@Ø2d#„d4„MPÑH b«@£ˆûRÔªÕ¢e2"FEEënQ[­{­µ¸€FqW„ÌÿwÞgé­Ÿÿ½ýß{?&ùÍ÷œç¬ïóœ÷œKIQ­#•¦Ok,,:óšå_ÁòÔ:i[»Ë6èE¢À=DJëü˽Ù_žB$ƾ^Ô~êÒ[÷U Ì4ŒÈ2èÔ3V.ÚÒ;šh¤ Æ,^ضàý–mÍF}*] CÔ.Ûx"Wò™‹—.?÷Þën=ùÅDî Ï8k~%f ÿªLä7.m;·ÝMÊÑ>õ½g¶-]X²:ù ¢æ|"í³ö³:–cÞø4Ûeyû²…íî'¾¿“(ýS¢Ø Rµ,e'Èl¸ÞPŒY§2Õ—é!…̤8MŠªiª¢ÝBÊç~ò®¦È§¾Ñë%üü¨©Ä“¦›•l/ÑY¦î28ährdÓÍD}WÒáÏø¹‘¶Òýô=NÏÓ+ô•°R+]DÑ?h}I? &+’E.ý—}ú~iXJQê.2R£Ïéý{?}ýä+úùoaÙÜO­ÇZ¾ÃÏ÷ô@Ò¡#r‡Ž)9„­/ŒÝJE¨Ôw8uتKaÄžfav%Â)\°]b(qÿ¤Ä~œ2‹n‰ƒD öËx‘ ’„ûfŠHi"]dQ–8PâE‰OdЬHYœÞ2q mjÄQ7W çà;OˆB¤‡‹1BŒe° E¾ùÑ(¦³Â_3wÎìSfÍli45Îh˜>mjý”ºÉ“j'ÖTWUVLð—7vÌè²Q#KG Íœ•éËHKˆq»œQ6«Ål2pàʯöÕ´zƒÙ­A-ÛW[;Tæ}m0´ah zaª9ºNÐÛªWó]Óš‹Ž©éçšþšÂåKc‡æ{«}Þàî*Ÿ·GÌlhFzS•¯ÅìÕÓõzZËÖ3QȤ§£…·:aq•7(Z½ÕÁš‹»ª[«Ð_·ÍZé«\hšOÝV’6¤‚ƒ}íÝbðx¡'”ÁÕ£»qÜFÉaƒjVuÛ‚àô†æê*Ozz‹n£J½¯ ±2hÒûò.‘s¦‹½Ýù»º.éqѼÖ<ûß‚¶Sšƒju©Õ]]‚î¼`®¯*˜»jOya0ßWUÌ󡳺ˆ !Ëåóv}C˜¼¯÷Ó£-m‹1Ëõ ɤ|Ä7¡¼?M˜fˆçKO—s¹¸ÇOó ®khæ¼—æyBä/Ìk *­²dWIl@–¬ë/hÞêK—¡ªnü®Xœ\7Ï;4Þ׳ð‹roPÍn7±dÛÂ._Uû­©9è¯BÂßyÖêîa…¨ßÖŠ‡X"ÝÐÐ,ôµc|\¯ŒÁ’Æf½I¤Y0¦2ˆû^¤U°°ºJÎË[ÝÕZÅ”}ùš¤âð{Ý%^Ï}ÅTB-rÁ¸J%»º«yÁ¢`Z«gÖç"o³'=èoûZ|Í [d”|®`î{.]Qo…g;¦veùä¦,³·Yñ¨-2Z0xkðå«‹Â¥geD+Æz›…‡ú«a”H ™:ªdÔ¬ÊZY¤Ê¦•µžô–tþüSòDædÈ šèËÃÀœxœ:5®-'”ë­^XuÄêÔ™`¤·ãÏS‘¾ˆ ŒfÎÚþ"5 o.l ºÑM2Š Þ M÷6ûúZ|XCþéÍòÙ¤¯õøÖ5úêf6ëÑŽ¬’¦£r\>ŠsAJGqF©Ä¬Éóô‡UÏOÔóÙÚcŠ'õ{»Ì¾ºÆ.Ù¹/Ò!yñá¡Ù“Ú.]‚W³»›¯¦ÍçuykºÚzÂëæuuûý]íÕ­‹GË>|“tù›Çzô¹Îh^ãY%‡Š¦:Q×T14{OE·Ollèö‹3›Ľջ±©9¤¥²µ¢¥;eÍâzï×­Š´J£ÌxeFö4³^ßó Ÿh^ªé=?¿Gn3÷ÛÍïQØæê·)°ilóë6ùAÃÅØn«½ dxÎkYÜÕÚ"_.ŠC(ñ+‚Â7ž‚Šo|·PŒö Õ·°"hóUH{¹´—³Ý(í&, œ{pŽÜ“ºZ}ا° šÉ#x)ª²KoO8ÜÔœ¾ÛÓÛ’Ž¥v 4³9hÉÃÞoÈšŒz¥Zaž\7¿M΃Ͳ­)kÒü,ÛþQeRЂ,‘P£Fo#—#ÍGl@½ý:d‚ëZ‚-yrÐæ%-úrv©Ö7aç> Ùr Â–®h_‘þnâU°fm°`nÔØÌ²¬…d²cæó}(šßê…·5šßˆ¥Î{©Õօص셺¬žH!ÉÇR³lQÖ ¥âW¦mò•4d™ZZxòznC¤Ævm˜Qö®Œ4€wP4Iο0UYõqÙMCÍð‹ENZïÉ„â`TÖ¤6lþÜÞ‹oTc³Ü#l‘>žd«I>¹~W³šz¿õ­L?â34ß'¹0Éó 6µtkÎÊšo>Ö¥›»ºÌQÇoÀþ2G FüaMÄ'[WtöµYöIË‘­MsΉ—`ywþLK¯HiçÑ&m,M;ž 6Ú¤+…œRêG´ *?‚c¡z(uFì›Ô{Ð&‘&ýDvØ¥*ñ7pmR2Â3Ál° ª…¦B³ u°g@©Ús¨w'©ÊámZ+æ ©ót-SÏŽ¤WP¬¶–6ûÐwõq”-¡éÿRËXègºV± ä/@šuš¤ú,ž•ùòß’ýHÊè’Ÿ+íaŠ3ù)ïXi‹)]L®c¥¾BÅ¥JjÉúseØ~_JEëÕhæñ¤]Në¡ ´;)[JÝŒº›)3BoD)Ð0¨-¨l¸Ž* *¬/‹á#Zaxw@Hù•KMýZu©’Ik4¤ôx.£KõxvF´1šGÖ#îŒSŒwÓhõmo‰²ˆ"÷Á©ò®×ß2˜ÉjBV=Έ«)ÿˆ{œ•ã,ï©ýw/­Ìº>À¾ð<ÇwÍMê]Jõ¦¡èã4ý>k7·m)4 ¾™FÓLÓ¾Žü8ì'”„örm$ÓF}m¤G4ñÞ¡ŸÁý÷¡TÄr8Þ½ÉZeEî8òþ¢Ùa“j#U_/7Fî$¯C×FÖŠ¼wõß#^£x)Ä; ó×× ÖÇzí2¨ˆŒ¸¯ÑûI0¼&¢ý‡4[ý ÷—zÉZ¥ ~ üHÆJŒ{êàü‡ÏH_[ß`_-¢ýX3si”vö+yÞq†>Àýî4­-ÇÚ[Ní’‘3p…<×d?R¸ÃÄK)Úp?¯cãÌÈY5 ª9|žéw yΤ’Ežu{óˆÙ©T!÷ní|Ô‚²i˜Ñƒ¾¦#ÖdˆÇRÏG¼×Ñd£郸'- ÿ Ïfm¹ÕÛðla­^-¥Ü@B7H©÷SÔ(¥Y©ñy º\CKÕU#nñúšA·(>Zcè¦ó`;]·Gˆ-ˆÜótFlåqô÷8ÝÝO¬«èÚ~ªí¤¨å8›v‹võ Ø€|2òãp#¥ #eO¿#1„‘ËÌÈad3²Bñc€L†//WrF(~4ÎF/#‘ÊHa$3<Œ$F"#ψcÄò1< 6F3Ü ÃÉp0¢v†aeX¸O3ÃÄF#ÃÀÐ*CaéaFãã ãGÆÆŒïßéÊoõ'ß°ñkÆWŒ/_0ö3>g|Æèe|Êø„±±—ñ1ã#ïÃPœø€±'‡•%þÁx?7 ø;ã½P\%ð·P\ð.㯌wBqÕÀÛ¡¸à-Æ›Œ7¸ëׯqgáÎ^e¼Âø3wö'n÷2ã%Æ‹ŒÝŒ?2^àvÏs×Ï1žåÉ?ÃxšÇ{*W<É þÀ=Á³~œ;ÛÅxŒñ(ãÆNÆÃŒ‡¸ë¹ëîúîzã~Ævè>FˆÑÍÃÛ¿ç®ïeÜÃØÊøãîP,6\qW(vð[Æ¡ØzàŽPìTàöPì4à7¡ØÀm¡X?p+W¹…«lá*7s•›¸ìF®yç~Í5¯g\Ç ®e\Š\Íͯb\ɸ‚§t9×¼Œknf\Šm6qÍK3ºB1ÍÀ¯B1-ÀÆPÌ)À†PÌl`}(f2pQ(fp!—ý’kþ‚«\àßîwV§}î¨M{Ï>5í èqhô˜í¤´Ô ¡mÐï¡{¡{ ­Ðï »¡» ßBwBw@·C¿nƒn…n¶@7[§ýºººººº ººººÌ²8m3t)´ ºêç‡É·om(Z®¤åŒŽ[®¤eŒ³팳g2–2Î`œÎ81–1&ä’Í(cŒbŒd”2F0JÅŒ¢S.ËáŒaŒh†›áb8FT1èv†aeXf†)%#kôÏ?ƒz¡O¡O }Ð^DïoлÐ_¡w ·¡· 7…7 ×¡G¡G ÐÃÐCÐMðüVééuìéU!·\á+Ù9ç2Îa¬`t2*ì‡ ?£œ1ž1Ž9–ÃÄXÍÃ6rdgðè ŒéŒiŒ©ŒzÆFc2c£–1‘QèfT12é.kŸi\eS óMƒSc3‡'«‹rFžø¤d“Ùí°©m;t}RV¼ÕŸ•”œ%ûÊ:4;’=|@ÝßeP@n6æn2ö(WÝ—à6F÷„?ÞnsŠ)Ñ8Ì·ûSìJ(/OªïÍ+…OÚ=|˜§û?¬5|X‹t–/ÝÝïwz¿;Ò¥ö¬NKßΨÔâììâÔ¨¾V‡Õ`À—z™Åi5h·¥ä&Ú쵺¬F#¾´AöÄÜ”Ô!‰6[âB<'†÷ª+Ôש˜ü"—ç²Ä—ô(³¶SNîQªý.·/¾Šñ=öq°D”ȃÏbSJJ & Á5Îïy/C¨k26e(þŒé­ª3#-C±kZJOø=¿ÃŽçKIp‰ú”“Çá‰ýdÆíñÛë5J(ÔŸ¶¼7/ëfîœÙ³gÏÝëF:oöÙ½³Ï…½O–ºz‹Êà0¿ó¿y6ˆIVŒ\¼ÙÙ#FD±ŒGñˆ’åð¯Ék’–ؘ¸â¢Ò‘ꊘ¼!CsÝ#74ñœ“‡[¹ýœ“Ý9†•ÏŸRì²¹mFkrÍœ³Æ,¹º5ÿ»Öq'•&N,ÑRæp™L.ÇÄ1Y“ΨÚQ—Y:¤|HLrF²#);>-3Å—:(7°þ”·¢3‹ÓGùKKä¿N]‹Uù°¡JhGõ1®´b‘ÚñG>eÇ}C‡ÆY{”ü?ÅeØ ƒ'%׸§¦ÈµW^]V& _…ðØx…‹öHÏÛŽWMw?tŽ8¼L#/l¬[ð›c4 §>lK)œ[œmê{Ýž2,+kXнŸÂlŽIžUœfw:û~v[:Ö·A³¸¢Äk}ƒ­N¹¸ñ峺lF£Íe=ø…˜oÖ­6gÆ ¾7ú†Æ¤àù'…÷*_b]O¢½üüÒ¥àþÌ¢Ì"»§G©òÃZ(Ø3ÒfÖÜ#ý6Qï驨#Ý#ÝqαblOx¿ß#_̱{&x ¹“ã\r•Qœpiq_ú õp„’'ýЛ7Û]VVX8wvž«w6~á?x–^é;ï¿y´þ"£@ëß,yW-0FòÆØHpxE¦•/Ë_ÚX4«vXœ]3Û-¶< 4cDNLÖ¸ú†úqYEs64 ™æÏdÖTÕd7[²Ëê†ey]Ùã§5LŸ-R§,ŸšãŒOˆšŸâ‹5%¦&9’'¥æy“3òý3Ëý§ObŽu:cÓâ=1¦Ø„XG’/&mˆ79=ßß‚(]E¤ ñT@÷s”üQ–\a,Ì9BD‹aú«íTêýÄJ¹=Ê÷¥&ØÜ=áwï‡Ñ=æ¿Å7#×é6ƒKþuã76 8ª¨üΠ¼ÝOËž¢Ù/³ÇŸ;Xäbœ#†’#üœþpˆÍÍýÌžÍ `C.vãLæ€ôȬȪwë§XÐhsX•š6£©/^ŽOq³Ã.â ΄œ´ìÂó+§Í° 9Gž0úieS'wØ î!Ù iqóvÍ  DÁòã+¶„ø®¾ÛiÈ¢ñ":â;‡–/´#[xŸß*‹l©ڰe.ÙáUæõ–y°Þ‡¥éé?’<(óGÇ ]e ÒR&ÿðJ^/Æ<ñ2!ä~™×»[.MÖ=|ŽýSH§:jv˜•Sý¯YfÎìÈhGf$.ÇìÍFÞ’ä5D?Fwp8JˆóÆXŒ®Ä˜÷*g¸csÇ3«º Êe6¨Fkbå¼þ…×.ž0¥kÙµ¢Ïê¶OOÉM²™ãó}é…Y¾Øý5s§g¦ÉOLÍJ³'fħݲ| ųÖÔ–¯Ú´õìpü"vœº;»f1c÷€y¢°ÖÛÌþ ÍÃ{”çüQS³§ú³§NÍö«ÏCÊ^"øGVpÈSK¢žtT?,N¢1dsv¸Çà'®4âÐÒ~‡–ÊÿL0©1½ûÝ^¯aRc\Êãt߯Éÿ”à7œñ­Üb {Ë\º{õPº"¡}5¯7:–Bœ‡‡ìñGEwªÿþÉŽvÿ®‡]®ôˆMOñ>—û-Ç lªªî˜|aÏÒŠå-££-&Õ岟²hÂȦ1)¾ê%Û£¢íƒÍm?{ôÌqÞ¸¼ª‚’S&ÛÍv³¦-1ã笮sùüâÔÑ'—UQ7X¬n»fшAÉ©®O.5Oš'©°2whmq²).'-%+Æì)š˜—>&/1-ËkŠÉNMLs ÊÎLÌo\9e̢飪yÄô…¸™eâßcˆ¡!Ø¿Š¼á1¦aÊÆdar “C£„Mß$mr! ƒë Ò]=Ê©Ûs4†>¤X(.ü¥? …qž‚ݹ9pîv O™×#n÷§Ï°öß6áåâCyOâf*_àÂâÞ"\?eÌç蛂\šã9"'Od'‹—Èqˆì(qœ9éSùù#r4#ÃD>ˆ«Ñçë?²FŒx™Åá5NøDºº'6ºÃž:,;sxŠ­ÏíˆsšTS”U\aHÈ«(,®Í‹épÅ÷-Qú¶Š“Åòâûú/ûL‰…9ÞÂìŒAÊS–(‹f°¹l¿®\xèÞþÿ×ÎØú¥'tBÿï¥þù„þ7Hû&ã¹'tB'tB'tB'tB'ôï–i;‘¥ÈvQTÌ ýo)ò_}àCªL)©dT¬ú¡ÿGíU?S?W÷ÿ'»YðÏ „rÛÇä/£Ÿã4òãÛNf¬J¨‰Úètê‡a~8§î$Ý*„HùÉ¢Qÿåúý@½mLt¹þÞŠÄœHZ¥Aˆ—ˆÌnøM$mDzG$m¢5â9¹š5‹ìS©‰¤%+¿‹¤r(OGÒ*e+¯FÒÒ"i#e«ÞÿC®µ³4áñ> +ÁbzñRXÙ\‘@ˆXë&·I/·aw“ÊÎÿaÐ_ ½?D´¶ñÛM‘ b#Çî¼¾y,7Ì6;ãQÏÒMˆ©Be|{à$Ô!K†V—> stream hÞì›ytTŶÆwÓ;sBCºC“!Ì„AÒ„ $ cBÂ(“"`àˆ"*΄Nƒ½8+Žè½ŽàtQÁyDH¿¯ÎîDï}®ußï­õ¿þ¾Ú§Nuª:U;.$ADáÔ@:U–ÕsÎ̺DÞU5s«„ Œ´M™H¤-¨Y¼Èµûú}¿‰ADæé fÌýé§’0"K!Q›¶3æ\<½[RI3Q~"‘mÿÌiÕµìþ”hú«h¯ïLÂw…âÞÈZ”;Μ»hiæ´#ÇP^KµzÎüšjjw9|É›(¯[½tAºÐÃq¿õ]óªçN;}tÒ|¢êãD¦'Ì_¸ýÆOõKòú‚ºi _|v„(}êJºÉ*®!3ÙÌ[̽ÐëdVýUºR#i‘fMÓLºfÚNÚ×r]BÁŸ’2—‹øÍd¡V­·ii.¢mòš¾Ï!¿M~³õ6¢ÖëéÜŸÑ4›b<èJÚH×Óô.M¥Up[h;ÝM÷‘ž¤çémúüi½Ø<—Âô}d¡¢ÀÉÀ‰Ö»A zz6r=J1&×ÙHÀøê¼ØW­×ì­-–h 1î ×^Gô{q:pRË‘å@_YÖÖÀGw|k½­uwë=çA)§ 4‘&QUãùki&ÍÂÈ\Hsh.Í3Jópm>§£4µjPKú³µæÓPG‹¨žãÏø…Á’¼v‘Q®§%ø³”.¦et -§ÁÏ%Fd9®,3ÊKÁJº3s]n8¥YE«é ÌÚZKëþmiÝ×Hëiæù*ºú_ú¿+]ƒ?×ÒuX›èº‘nº¸…n=/ºÙˆßL·aÍÝm\»‘m†“W÷Ó3ô í¢Ýô1–555.Ó1\€1XŽ'\uNyü–œ­•xvùlÁ']Šøåçܱ88޲æ*ÔäVxd++Ήkð ìÏ>—n0žÿlôÜQùwQ5·ž32·%éÎþ+#mŸŸrT¥»žÝ6ß¿íLÝíFùº“îÂ\Üc8¥¹þºïöýÔD;ñç¬?ױ™óQ3ùiíÅL>Dû¨Åˆÿ»kߌûÏD¦GèQ¬Çévš§ðGECì‰`ô ãòSô7”e-.=CÏb‡z^¤—èz¥CÆçs(½J¯Óô¶‡{>Ççi@žaµS&Oš8a|e…·¼lLéèQ#KF/*VŸ—;tˆ'gðƒèŸÝ¯oŸ¬n™]ÓÓR;º;8c£ì‘á¡!mlV‹;± ®ùî‚*—/­ÊgJsfʲ»êsU>B¿¯ãsUÕ\¿¯éAÍéçÕôpMÏ™šÂîDƒ2»ºòÝ.ßËynW‹_Z¿1Ï]éò0|‰áMiF!…”ÜáÊOœ™çò‰*W¾¯`ñÌÆüª<´×’ëÎ’Ù•šCBaCá|éîÍ"}°0Œ–ž? çP¸üZŸžš_]ë]Z‘ŸçHI©4b”k´å³äú¬F[®Y²Ï´ÞÕÜõ@ã†;M­Ê«u×VO¬ðéÕ¸©QÏol\ã‹Êðuvçù:/û$<Í×Õ—ïËp£±â1g¾@øÌ©v·«ñGBçÝ'Žÿ>RŒXRí?’´òÏ ®+OèzˆçKI‘}Yßâ¡©(øJ+¸ì¢©?y²2*}Z•¼r@]‰óÊ+ êʙ۫Ü)rªò«‚ÏLô5LuevÅèSñ×]>=­jjÍL©ÕÓÝyyOŒ§:ø¬ùÍݳP¿º 1KCi…/˽ÀëÊpÉ9˜UVaܼ͛ëC"¼Ë—•Ÿ'ûåÊo¬ÊãʶܥS¯À‘æÞ.Çž^Ô›*e?|ñ¹˜”´üÆŠÚé>g•£ësº«Â‘âóTbø*ÝÓ*å,¹í¾ÎGðu)Æ7wáÙΫ­*Ë'·¦Ú\šC¯”³…€«pÁŽé2ŠrF‡rU©jø–` é~× zjn¡¼¤Ë[s )•)üóoºäöÉœê³Ó–3}âïù—]ãÚ²C]ùÓòÎéàï5;líÏû©É±~1î°Éé,T—ôT¼¹ˆihÆÉYLtùh´«Â=Í]éÆòŒ®Ï&ÇÚ˜ßâ2wqéø c¶ƒ«¤üw%¾žÍ%¥à²*h¹Xƒ5­Fy˜Q>S,<ïr‘ºìj´¹‹Ëeãî`ƒä„‡¶¤U¯ÏŽîW³»›» Úí²» «[ S›=žÆùU3È6ÜEµî²ŠA£¯c*V8–ɝЦbQ\>4³+öž¡Ín±¶´Ù#Ö–¯xØŽ¬vmy…_ZnÕÐÊæŽ¸Vñ0ò^ÕdTeÁ% ²¥1(ØŒúއ=D ÆU“0Ê5-‚Œ˜MÅÕ´h³«˜†˜‰c#&0I‰31ÄØnó]µrz–WÎl¬ª”/Åc*ñWø„{0ù4÷àf¡YÂ|!îiC}¡î¡2ž#ã9·È¸ CÄ ŽÜ“«Üا° *È!x)ê²IWK P^‘ò²ãDe –ÚD0¾Â×&{¿9u8ê “T!<Ì×PS-ûAÞ y¯5µ¨¦ËV5ˆ*E¾6h¡M°Ô(0î‘Ë7Õ`n0Æý (ø*}•òK+fUËÙî£B÷L;·iN“_”UÙíîi¼›xBR×Hiƒ¾QYG(âË*y¬aèy—jª\mÕ”a©ó^âàÈ4l‰¦´i!ŽàE’¥§††‡øÚtCƒø+}h7ùJšS­••Üy£´&Xßm÷…¢Giç eðŒ.ɾàïtUV}R6SÚBcÜK±³ÈN-YqÙžZTÍŸïEÄ­n¶É="4ØÆAŽZ哇aÜõÔò–À=î‹SÎùÉìê–‡ƒ\˜äx ›*Ïø&ddvµ 7¶ð?¿ÇË~FeЕSñ;6ÿ2òTÖ m’‘sLÕ¦ˆ³%ñ ";ÈýW±8/ILãi§)ªÿ”ã¸vœ6›äèÇh'ÈjA0\ŒïÔ æ0šp>¦Sh˜ñ[²f¢š)0šíz€Ñ`¸ñdÐÉtêm$«¶1pŸ)÷}’ÁeúÔ _@íL“i§åm´ÝåO°‚Tóß2б|M5¦ø.`ž _Ï”IÅó Ï”?£Ès1w ûÿ*¦Fê`M¦ ÎÇÔ‰º£­ä?ð ÒÖÐÈþW1O |$1™h‡þ"Íý3LÓh˜mZB=%zê6 /¬® ]Ag04ß¡Æ}—Óœ?°ñ¥´Á´•<â8íÇÐ$h!è¼` ¸ñ(hrÐm0‘68°AmíˆÁí³ ÿ};L;,´í¶€¥†Ÿî§éÿ-0hgºþ4¾ ˜šáOÀ3ù†Ž¢"&ð#øéL¹’Úé•VV¬Ç´ ÜÔÍ >èÿ€~šR,ƒ©ßùè/Q_}æì|fQ^›¡‡iây$ÿIÌÀ’ŘzÓ¼?ヌãTÙ:ŸÆ[Þ‚AÝ*Ó0ô¦jý7šôWÐ.¢TËÍ”j;L©¦&ø[‚~ÐyŒ:`ܲø<ÖG0þ»úmð¹ç´½êì5Ó ÆC©ÖtJÕRŸó1žõl1õ<`Ê ü*Þ¢+Ä[yÐHèxàu Ì@< lÑЦdZ+¾R£ßxYtÑÚZ,~£vÚiÚb©•ßõ;Fz{`«¡Ù˜ß3ê±AŒå%cîT;UÚ ´… ü §§P)ƒu›8­Êæ] ÚÚ"¾Eý]”¢R÷Sšé3J1Õÿ50Ö)Öb¬ïü5ÐÏMઠ^ JÀº ßt.úVê`n¡>ç£/Áž´:üÎTÄjh6ÕéÕT«/ÅZÝIyÚ§4Gih¡ÖBÃÄ“ÔQÛŒ9úœæˆªsGyŽ˜Œýl,ê~fo܇{ÄOÐî4T|Lnyv9õ¯©«¶gÜ•äÔúÑP­ûY=Ø$OíÓ6¢SÇ´±Œ¡¤OFìÔ60ã¼ØV0KP¾Üî5âÓ@•ÞíýˆX˜aÄ·ƒ•z'”‹Àì3m¬ÐÃPŽQFl'¸O»÷ß¶±ÏÁGr í)ð ê> Ž"ç0²Sc@qyÈ[àƒg)‘àÙVC—i—ºXüL«µ*_ ¬“9ˆ^†óu5 à¢õYy¦q¾Ðz›<›9_hů 1FpuTç=ƸŒÏð@¼qÎm½ ¹ ŸÃ8/[çIµÄà;qžZˆ®1¦ÉæÑ­¿ò™¨—g¡ö›qƸù,k}Mî­|nµ¾iÚKÓùÜj} gT¹q¥(uîèkh2Ÿ%òã ™@ÅÆy`ìÛ­·K5c¤ä¾n® 5ò|15fàì¯6ðà=í‰õxξî¨wÖ(ОÃ0×$C°-%‹Ö“6i=ÇÁ2iì+{ñ|Ó¡›±Ö5*Ñu¼;jO˜Cé¦hZŒû+1ÿõ$ÒM^º&È oîK^ó@òâ¹£Í÷Ñ&óuT+ÑÖs‚±’sÝW3Óæ3tĺÐ<‰1Ÿ%ô€1Ÿ ‚,Æu"ýœÜ±Ú2ßñ›e~$˜Ž–¹Þ™|ëcÒ-'ÁÛœ7Zõ³yœéWžg™§ªÜ ÏÉ´`_ØÄsmn‡:?‚:Zdùm$ÃI‘–D¨L¥I¦jšjµÁ_„ü.€û¿Cm¬¯èv#OŠ Ò óÝ@çäC]ÍKq7Ð8Ó:\[G7‚‚9ŽWæ/xÖÌ­0ÖËÒ`Nr˜\+2ïRyÄV¬Ù­È¹³ð!¼^LWážY¨w’æZÜÈwòQžB æUˆŸÐ…ú7È_zÂp¾O!§©à Ä.Œ8ÎS.ÆE®­ÃØ×Çš(Bž— ωsÏp´?9A±© k¯ 9UÎ4>ë书?„{)Žâ-ŘgÑÓ0œcéÁ³ªèrö<3r yÎ$Qˆ<ë‚{s¢þ:u0µ"޽kq‹©—q†5¿I[Ì­(§s9bOõXÛÑ·gà_¤lSYàWy6c¾õyx¶ X«wI´[Dˆv =!Ѥ+Àdƒ°¶«èhÖki΂)XÇ]äšÊõm¾’nDlƒŒ+Å­Jƒ± í!Z(5%!çKÂûT=„ö!΄ݢQ?%v¡Šr¦¶gÐO!ŸÖÁtù ö«~Šž<óÎÍ¥+À2mži×VÓXP¯y°¯zN>0ã_ÕC[·%`)XlòÑ…¦ œ¢ÙàqÖë}h½g’g“õg€sÃ:ˆÕòí–à÷Ïó”cÞI%x^½9¦=XGSx"ŒÜ©þa0å2è\ŒE|oý{œÕÛðþ>Žß·¡Þ6äi)Tdë…½âö÷±Æ£¨½iMÑ^ľ|œ¦‚R¬úÛо´R÷#gë‹ý /Öv‚] Ì.0 \jÀƒ\ŒÍFJÒ/Ã>¸ûáNJÓg¢û0E”…µQ¬ï§1èÏh°LSÁ0Ãèó6¬ŸmX¯¨ó‡þ¥ÿåþuÿ³þáý(¿ ‡ðQ±ö ÑÞ¥Tín¬‘iÎåžÚQÄ?Džò•BKµWiœØOU â?¹WÛJÙâGê¡¡AZÖåpŠÕ pO)uײ©ƒ6m• í¿Z¯9P¬ÇPžy ÀYjNj7Pž§‘3h˜y¸¼LÌ+(>g»Ìç m#©±‰Öç1_§p®Ÿ¢  d€ÉA_ ða®øºŒ•ëÙü9u5™©å š…¹¯ÖN ÿ;E6™oÈ<@ž™–iØ‹Ëi‚)ž†ã»Üž7ˆ ÝÖ1@iÈHºÙ’ßݦSº¿îjÑVïm“(†Ã¬Rære.S¦A™K•Y©Ì e–+s‰2Ë”¹X™¥Ê,Qf±2õÊ,Rf¡2)³@™ùÊÌSf®2s”¹P™ÙÊÌRf¦23”™®Ì4ej•©Qfª2ÕÊT)3E™ÉÊLRf¢2”¯L¥2ÊŒSf¬2^eÊ•)SfŒ2¥ÊŒVf”2#•)Qf„2ÅÊ W¦H™Be†)S L¾2yÊä*3T™!Êx”ÉQf°2(3H™Ê P¦¿2ÙÊôS¦¯2}”é­L/ez*ÓC™îÊd)ÓM™Leº*“¡Le:+“®L'eÒ”IU¦£2ne:(“¢ŒK§2ÉÊ´W¦2eÚ*“¤L¢2 ÊÄ+§L¬21ÊD+¥Œ]™He"” W&L™PeB”i£ŒM«2eÌʘ”ѕєÊPЈ€2­ÊœVæ”2¿)sR™_•ùE™Ÿ•ùI™•ùA™ï•ùN™o•ùF™¯•ùJ™ÊWæKe¾PæseŽ)óOe>SæSe>Qæce>Ræ¨2G”ùP™”y_™÷”yW™w”ù‡2WæmeÞRæ°2o*ó†2¯+óš2¯*óŠ2‡”yY™—”yQ™”y^™ç”yV™g”yZ™ƒÊüM™§”yR™Ê<¡ÌãÊ<¦Ì~eUæeV¦E™}Ê<¤ÌƒÊìUf2~eš•ñ)³[™]Ê< ÌNeš”¹_™û”¹W™{”¹[™»”¹S™;”¹]™ÊlWf›2·)³U™[•¹E™›•Ù¢ÌMÊlVæFenPf“2×+s2×*s2W+s•2•Ù Ìze•Y§ÌZeÖ(s¥2W(£Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡ÒQ§ŒÊ„ʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄJ{„J{„J{„Êv„Êv„Êv„Êv„Êv„Êv„Êv„Êv„ÊvDîi5û“;‘3û“ã —sé2òH—.eYéOƒ¬àÒr–KX–±\ìo?²Ôß>²„e1K=_[Ä¥…,u¼Èß~(dË|–y\e.Ë– ýíò!³Yf±Ìd™Á2Ýß.2Kµ,5,SYªYªX¦°Læû&qi"Ë–ñ,•,,ãXƲxYÊYÊXư”²ŒfÅ2’¥„eK1Ëp¿£RÄRèw ‡ c)ð;Š!ù~ÇHK.ËP¾6„ïó°äð}ƒY.`Ä5² àÛû³d³ôcéËÒ‡ëÍÒ‹[éÉÒƒ¥;7–ÅÒïËdéÊ’ÁÒ…¥3K:K'n:%•ÛìÈâféÀM§°¸ø>'K2K{–v,–¶þ¶#!I,‰þ¶£ ,ñŒc‰å` K4K_³³Dr0‚%œ%Œ¯…²„°´ák6+‹ÅŸ4bö'•BL,:5. 2DXZ*â4—N±üÆr’¯ýÊ¥_X~fù‰åGb9äbä{.}Çò-Ë7|ík.}År‚å8_û’å ~ÎrŒåŸ,Ÿq•O¹ô —>æÒG,GYŽðµY>ààû,ï±¼ËòWù—þÎò¶?aä-ÂXÈa–79øËë,¯±¼ÊU^a9ÄÁ—Y^by‘å®ò<Ës|–å–§Y²ük>Å¥'Y°<Á×gyŒƒûYey„åa–®¹K±<Ȳ—e?>â÷ÇO€4³øXv³ìby€e'KËýþxì×â>nå^–{øÚÝ,w±ÜÉrËí,;X¶³lãÆnãV¶²ÜÊ×na¹™e ËM|Ãf.ÝÈrË&¾v=·r˵|í–«Y®bÙȲk®çR#Ë:–µ,kX®ôÇUC®ðÇM…¬fY囹œå2œÒàÃf,.õÇõ…¬dYÁ·/çû.aYæ«…\Ì·/eY²˜¥žeËBnºŽo¿ˆe?®2Ÿ›Ç5ç²Ìa¹e6Ë,¾o&Ë îÙt¾}K-׬a™ÊRÍRÅ2…e2?ô$îÙD– üÐã¹éJþ¢ –qÜݱüE^n¥œ¥Œe K©?Öí•ß0Ê+—÷Hì*H‰?62‚«³ ÷Ç"/E\*dÆÁìJH¾?v $Ï{)$×Ûê.€ añ°ä° öGã|pi?ª2e€?J.þ,Ùþ¨a~þ¨ H_ÔxH¾Ö›¥—?ª+¤'×ìá’ÖÝ%ßÍ,–n|{&CW– n¬ Kgn,¥KKª?JŽRG7·ÙÛLáÆ\ÜŠ“%™ïkÏÒŽÅÁÒ–%ÉoŸIôÛ'Cüö)x–8–X––h¾!Šo°s0’%‚%œ%Œk†rͶa±±XY,\ÓÌ5MÔY4ÁBž@äT§¤5²Æy:²Öy þ7püŠØ/ˆý ~?‚ÿ|‡kߢü ø|N ~|‰k_ ü98þ >‹˜áü4b¦óð1øEìôCðxå÷ ï‚wÀ?ÀßÃ/t¾ÞÃùôpøç›áiÎ7Àëð¯…g8_¯€C¸þ2b/…Ïu¾ÿüóðÏ…Ïv>>ËùLøLçÓá3œqïßÐÞSàIà ÀçàqðXØEÎýauÎGÃ: [ä|´€}ˆ?ĵ½¸¶1?h>°;ôbç®ÐeÎB—;w†®p6…®tÞî÷‚{ÀÝà®ÐLçÐ;Àí¸gt{è…Îmð·Áo·Âß‚¶nF[[ÐÖMˆm7‚À&p=¸÷]‹ö® é¼:d”óªÎ!w97„Üã¼BOu®Ö³«D¶óroƒ÷²¦ï¥ÞÞ•M+¼¡+Dè ÇŠâ—¬hZñî O‰%d¹w™÷’¦eÞ‹½K¼K›–x7Õ{Mõ±õ‹êõêES½È«Ýë…FõözW½¶È[ç]ØT祺Ñu u¾:Ó@_Ý‘:êDHKàÀž:GrÔ³¼.Ü^p‘w¾wAÓ|ï¼és½³Ñ­YÙ3¼3›fx§g×z§5Õzk²§z«³«¼S²'y'7MòNÌïÐ4Þ[™]á‡úc³Ë½Þ¦roYv©wLS©wTöHïHÄK²‹½#šŠ½Ã³ ½EM…ÞaÙÞ|<2µ³·sµÓí²#Û¡'äC»;<Ž#Žo&røztd[g[­sd’È•$æ']štu’™øJ¢æIìܵ 2á•„¾N0Åx:w+ x{¼+^“Ï_R^`hNk>Ƴ–Ä»Ó "ãDdœ3NËwÆ Š:õM”÷„ý»)"#‘š'Õ##œšüD螈ý "Ãášü„ëñžpDd‹ÂF—D†:C5oNè¨PÍš“[à Íì^@ºp AÂÑm¨»WÄ9 ôýBþãY3 qMsyYFFq‹Æûl£'øÄZ_j™üô”Ž÷YÖúÈ;~BE³WU6 -·Ü+ÿA½Q¾bãFj?´Ø×¾¬Â¯oßÞ~he±¯AzÇðé U*3&/¬_˜‘±h2>&/\”aüEIÔËR† Ê¿ ¡,ÿÔeÊø·?\ 2e!~c‹2þOÿˆÿÛÝÿßðÓLòÿÐVS­¶ \. àR°¬ËÁ%`¸,KÀbP…à"°ÌóÀ\0\fƒY`&˜¦ƒi Ô€© ÚøGµÚ0LÁ0T‚ 0Œ^PÊÀP FƒQ`$(#@1Š@! @>ȹ`(<  €A` úƒlÐô}@oÐ ô=@wºLÐd€. 3H@Ht)Àœ ´í€´I $€xbA ˆQÀ"Aa „€6À¬ÀÌÀ4$€Oh@¢Z˜h§Á)ð8 ~¿€ŸÁOàGðø|¾߀¯ÁWà8¾_€ÏÁ1ðOðø|>£àø|ÞïwÁ;ààïàmð8 Þo€×ÁkàUð 8^/Á àyðx<žÁßÀSàIp<ýàQðx´€}à!ð Ø ö?h>°ì€  Üî÷‚{ÀÝà.p'¸Üv€í`¸ l·‚[ÀÍ` ¸ l7‚À&p=¸\ ®Wƒ«ÀF°¬`X Ö€+ÁT;¤AàýxÿÞ÷_àýxÿÞ÷_àýxÿÞ÷_àýxÿÞ÷_àýxÿEÀ °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€Àû/ðþ ¼ÿï¾À»/ðî ¼ûï¾À»/ðî ¼ûï¾À»ÿÿ'ÁôSùÿCðý$N™,3Lj]¨¿nŽ ¬ÔŸJh$MØOáXÓñ4@<ø`\^ž-Óú8Ö«F.¬xRÒ\O¤I ß×¶mŽ{_ËF=ª¿¸ïͱnÄ^žsúƒÓ‡²Np"ºÖ ‘õþÑŽÚ¿=Õ?«×Ñ7öè.¢R¢ b#4«5ÖâîÐMëÓ)­o¯^=k}z§¹;DhF¬wß~ƒõ^=“5=VEk²,ô×O×G¶h+Ý9c{™“ÛFƆ[ÌZ»ÄèÌA©ö² ©ƒºµ·êV‹n¶YÓû íP<'¿Ã;Ö¨öqñí£m¶èöñqí£¬§ß5GœüÎñ[®iÎo›tËÀ‰9õ›BlšÉbiINLê20¥hldŒÝcŠ·Y££ÂÒó&ž¾2®l£]\·uºiúÎÀIQaŽ¥8½/'aTÂîZÇöØE ô›=‘A 7ô§=a†Û }‡gHàÀ¾8QbcöRNŽÈÊ8jLPî“RÕÃGŸ>NTØbS’;ÄÚÚÄ¥$$¥ÄÚÚÚ¬f³5ÌfzG9’ÿ§ià„é˜9…b¨-÷´MDwbíèKl,:^Ä&¢ ±-Z/Ou§¬ä`Ç“ƒ‡—‡~%;žìxò£È>B(ItöG–¹[DF³y,åœÈÁ”sçßœ¤Bœ7ÖÞÝ49Íq±ÉšœuÓ±á×°éºÃëó†oú`ÓÕon̰ӄ›,¸iJç´ñ›ë.ºyrºvãÖSÍSÆÝýÓö-'wO{×÷÷Í{lýÈò Ψ;°¾¤üêý˜…-“úvýêI›<‘Ñvô1F~äô]bäÃà¡b‚œ˜àlÄ*¦Eüâq$‡ÚQ7Ô.?P;4UBåP…âú>òÈùK¶·‹'$sx—¤ŽEI#Ì#0q9Ñýåó«é³³ôÇ4â¥sfR>¾Åõ‡©ëÛ×P}»-Ú•˜äж%v+ê>xyŠI‰®«%º]B|{»uÄæ’ñ—ŒHI²…ÚL&|h‘%“ó:VxO¯W}µ-´®· µ-ñŽº`úº*¹"¶´nÒc„ºÐÔð ZJßàH„GB–÷FÚňà„È!IˆËp¡R†\3‰òr†ŽŒ-ÄÓ†âBúöI1™»·óCiÃEöQýa›Í%r=ä䜈Nè/²Þ²û¸üîñ!&K¨54#glv—¼žŽNžÑÞRO§Îc.Ó±p@ç8«®ëÖK›}‹²ºx:Ç¥{ÆxËÉ­‹wtcûþ˜*Ëœ&ë³zRo„ÔŽ¥Ï¦þDâÅ œ–™}`°aÐôÖ̆ŽL:Q>#S—ÞÎ:±“…ݽŸ~ó¹ÞžÅ~n5íèÄÞ³'¦Ô­õ4öì÷}“¥ž¯&ÔjÝRÿùð{Œ;« õf„"¬}hÿ;Ä;_Ä÷o}aõ¼!B„"Dˆ!ÂÚ©âc%í¤ ¦n¡„Ú$¡5x–ðÑ·iH™NHvR9«\^‹“}çGŒÆpmÁ©AŽÐ>rèùPµV{ÕR»W{ª$•.%£|¤— íoûLÑ¥†ŸÕ¨£ÓŸÐê-ö)_‡\£”r2ä1ðó!O€_ ¹NÇ”«"ºc†hS ¹B›Õs!W)¥þr ö_C¿òø³c;ølÜömoÞ¶òc{††‡ÊÛKf…Oy|%-ŒûÌæÁœí1“yö,÷Û³-x¦e6½CÌ%KÔ™åÇøÃÐ ›px€úû3°}f:V ¸²ƒi·ê·ýüª„Ííï0P¦í/Ѹ •*,⦯äùoËþ·A>8c&ý€qP‘= (¤;•ïOäÇÁâÛ/7ÝèŸlÞùu-¾¹öèÛ[Bþ2üÀxúÉs߸¢Ÿ‡jÔŸÐ 0³KÔÕ endstream endobj 70 0 obj << /Length 2747 /Filter /FlateDecode >> stream xÚ­[Yã6~ï_aä%vvšá)‰æav‘Y`ö@ÈC Ô¶º[;¾V’ÓÝóë·Š‡[²-ÑÀôˆ¢¨¬ªOÅ"Y¦³çýýŽºë_î~üœð“DȈÏžf1‡œH©f«ÙosF8á‹{F)ZÜsEç¿ä›ý:³åŸßRsóÇÃ?~ü¬äŒ1¢•2HtvÏIÄÌ"=¼à;BÍ7i¾µ¥ç]ºÆR4ß=Ùšÿj¯yi뫽/ûý®¨ìMå‘VÙï”òm^å;‡hq¢ùë‚Ñù®ø ÏÅnÁÕüµtÀ®aºµ ómµ`ó@`«?LÍ3ûd“n·Ya[Ê|ûìFø^½@o °‘P‚ª"+àîñ¿Ù²*Éâ>¢Å-I€’RSz^ÙaÙÚ§Ãv•n²m…:ÀŠå:-ˬ´MhÙÊ>{|·WÔAzI«68¥iŒ]Ã5´O5󓵞LŽ­×’í!-¿ö™Ç$ Z›VévÕ‡Å)‰˜oó+ôý´Þ½ö¡É„Äqì[‚"¥c]bÄ+lÉ‹…AZZiŸ –ðº,²´²ƒ»òðX«ï GàŠ4ê­Ô„B#¹éÀ ø3’hç›áýH>ÒÜ‹XMUW¿–ÒÈŠÝzmÍbÇU( --w›ý¡2r(Ú¼S6¶`$ƒk^ù&žp¦v /—ÆÚw <ðóÃÝÿîÐ6nA”Šg ÍE³åæ륔$Iâ™ þ/²ÙÓÝjâqü},VQì·?èlÏàÃ!B'³WÓrz=ûO‡£Péò‚}Ÿž"DDKy ‚ aŒ÷`(®EA¦Cñ„pÇX]xívtœ)‘„1o"Nt¢9‡,tj™cx4ÓgØÈ£¡zFålÕ•ÌÛåZÙjk…(¨¶× 44ËLÎŒ²™&:âú¯#i_lO¡÷+)¤a<Ð5Á$ 5Ì¢®d“i¢ Úø7ÐÐt¬3LR‰k1iw¨N¨ôíJ*IFXƤ"˜Hc‘†yÔk2”S[>\;“¡×ü’kÂY i0‚í>jØð]É&[>DAµ½n ¡éXgÖüR 'aׯù³·ly¨2J_·²—,&\.ÎŒ`’†&YW²É$ QPMŒhh:Ö™YŠS’øS0³²7G\váeN¸°`N¸°€'\'.:ºj€*"¨ #ZƒL´ÑPÃDëJ6™h! ªÉq MÇ:C4šD·Ã¡o–AŰêÍ–ÿÒªz¿x^*)Œ E—¶À&ž—JÊÁúQÀyé—ÏK†Ñ˜¤.h_~K÷Ø>Ñ $=°êg­Ä”¾<F$®HàTtÒ:¹)™Odéï$¡„EÒ¿nY_7B±/æYи>òsÑ~ož…"R7YUUä Nç.·À¤Ø¤•¸É/±90˜_ÒNÊ)²rŸ-Û™3ëwÛ­0lÂWÌ|Å„#*4†Ï ¥1;b[ÆlL¨à:F•™­¶À)&ü”¶fs(Ý+®M¾]®«låïìÕfK°:‚a:E½‹¼tþk“y ïgGï4†9NŒ±ƒW´V·¹±Jà ÌDÉ\“Ô=-+`yœÜ±/vû¬¨rŸÞa’YlÊæsb:‡‰Ù õÀ:ÕΫ‚{Á—'’º´(¨0éTp…žvÅÆê&±]à›_¥ÐM|Ý Š'5=7Yõ²[¡:¹œ¿¾äËÛ7•v¦JÚYNÇã1“ô£”“þžGnª#&ýs‡á‚ ‰OŠ¢Ú`•£¥ð¡§Vþ‰ÜMדv…L64:þ(ð!¶×ÈjÜ<2¹_˜”(°H^Ú%¦Êå(£Ç¨GV¾o«ô­RO˜;$3Ò—¶¸ÊZÙnorƒ°ÞJ-›»wLÎ\ÓNF‘yë%Û`‰ÛT1¬AžC®Ò*ueý"ÁÛä¢ÃzeoñK3·¶M_Š p2òytPŽí)­]ŠfæåUž®óo6%.rªƒæµÑl½1‹}^ºë-ؼ´ÕèÖ½µµ Bzx/`’H¿†÷œD5íð"vî {Ë+ËZ\Fáá•Õ„òþ¯ÊŠb÷¼IN3º¯>A;£è´Xùf.¡«Ìª£÷ZšiçƒÕÏk«j{âV¢¶[‘ê$#MÖ9P=îV®¡Éº3¢H5äR„´”ÞùNXeÔS™áÇ×a»›´¯“æxª¯I8„™)nZvºéЯ%Ñì^DIÂà:Ì>M«´Z~Í«o„¼l¬ûÁ™×O€¾µ%›1h¾ôeO²ßåŽüÔÚæÃiXµ¶æƒÂØØÄ0–C4ë0ö „ËalÀ0|;Zƒûq0ç“H‰ l #t;jp{$ÙÔl‚j{Ý@CÓ±NW°µŠ4áB[wó©³v­³û®ÚËgZH‡-¶0BY4jEG’MeQ‚¼åo¡¡éXƒ,b¬‰ô“V›E§ ~꼞Z L¨2ÌAµ0‚©5j˜Z]É&S+DA5n ¡éXÃÔJÜ9¨W’®VÈ›O×'Ò$NÂ[ÁÄ 5Lœ®d“‰¢ ÚØ7ÐÐt¬á„vCø;§´/ð7Y=GM°(köZÆ/½}d.Mëý£@®]äF—,Šˆ¼M¨[CM tñ}u>áíB {Âå@7` %FiâŠÝÚ›È`\¢³×£ý¥ÐÒm hÕ»2ÂúÖN,¶OmíÓaÛÚø“‚ù*lcöo´:^‹­\Gf©…í¾b—vKÄõł%óçþ¾¯<±ß=ÚÙ¤û½Ù ãö'|æjêXï@•;ñÂ]$á¶š°ÚËcnЬ:[÷$Ýönî v¯79þµ·;G»Åüt,D½·ãóÃHíåy½+ì¾—¨Þ2€ò*_º­ˆDˆŒyWþ·t#Û¾ ¿­a> stream xÚ­\[oܸ~÷¯äe5éšáU—òo›¢}(ZÄÀÙ]òŒl«™ÍJš¸¿¾‡Q’-y$R@bQ"ç#Ï9IRxõ°Â«¿_as½¹½z÷1¦+Âã!]ÝÞ¯" ÿ(â\¬n·«_‚(bëk‚1þšý†1=䇇õ58ø¹8²M‡jýûí?ß}|EJ„PPxuÍB$0ÕH·ü,âÁ±ÌÖTæÅ©’OD­‰¾§ûãÎ9¯ ÒJߤúR—¹þYºÓ¿Êw»SU—©l€.RÜ›¢º*TY½&Áé¨ïÒÃVçëúäŸlszþsÑT¨Q”ß@hVȪÏëPh}ÍbüãГn®¥ôR\Ð#ç¡·Î7ÙP†Æ@R2Ê‚3ˆ Sw™¾nµŠ³­yü¤¯Pq]ž@×J÷ð¤Ö ú¦(õu_”§N«o¦’ú1­eŠi“»ËßäÏ›jêâ!•k¡åÃ$øt:‹*’ìœióŸóêQ§êB_7ÅþxªM¶6$´¶ÁêUªþIBZ6×w“wh‚h(V×ZèûHc0æM‘¿  Iš"O Šè–á(¤)òÓH×qˆXýĺä/ëX*[["=åC§*¤­MU<îµ7„Ö°¦ª[ ͇¡êC<²r5Ö>få}QîŸY»:íÔ)Ýݺy÷Ån§;€õ!’¨}m‹ÓÝî9‡þ”¿Jw's =u@·Œ0$(}f¢¾(<ïéöŠ pðo·W\I½c¸JD+!8ŠAC›ý•|Î9ÜÆÑŠ!ËluõËá§¹ïE"ì‚ýú;^m!:—2äY•Üà ½[}äæÄ3ú‚þ=~‰ Mͧ p©è† a%ˆs3U혩‹F»=€UW‚S°Iܘˆ¢$NŒÅÇ,ôÒ2-Æxk ¦nθ‘gC ´Êت/Yc—©²Ykù(ÈÚk ¹c©‰ Ád• $¤¡ìÈVG!ø&3YÙìÒª²~®-Ë8$“®›»ù ||‚Á—ß¡3 Î÷»âŒdä׃bGΘëZ oÖ͆g]_2gÖù(È2e ¹c»£$òt9-†·ñgC¿/™³ñ}d ¶€†Ü±\Á0fE0 ÃI„Æçl³ûCÂÄN¬¾~Íyýõ«t:U¶»‡ ’€)ÙÛ´|¨šôÛoçm5Ñ÷`˜gROßÓbxÓo6Ô8ýú’9ÓÏGA–2 hÈKѯG)¬‹qTÆ(ÄfMôæÍ›Ÿ›µaQ"¸½Èž€’B?çÕÁðeÏ|¨Qö<“Ì•=^ j,¾„†Ü±ÆÙÓV—\³gx„f¹«Ë|ƒ«4ƒßZ o¾Í†ç[_2g¾ù(Èrd ¹c½Â7ÐU˜o%É„òÃñTWh›Ál½Ì$Ç~øüÃ4&EX{1©ÅðfÒl¨q&õ%sf’‚¬õÐ;Ö+LŠ8Š8ï0©8Õ/¨ôe"•D‚(ötJ-†7•fCS©/™3•|dÍ¿€†Ü±F—oœGééGZ oãφ7~_2gãû(Èl ¹c½²|㣘ñéË·ì» eÍthÚ"3hâéaZ o’͆'Y_2g’ù(Èc ¹c½2XRâ(î,ÒLdLNžUTC&ªÓ^'dä±—c&I“Ös@VÆ<½Y‹áM´ÙPãDëKæL4Yr, !w¬WˆFAW”ufE_4ƒÞë }«~¾éâ$Q‘ÉE"]0ÇH§‘×.Dº& \Žty4ÃZ{®.ðÐ.~3N@IÉŠ%Z×Û_‘ÐQÖ„ÿ~ªÕ.ÈÞ[SpSfiUºˆt=b’`„q8%DœÄ6h-C¿` ÌHôã0—±Š»ÿf›Z¾x`Xo]¨tóupš®×ú¡ÚÃ×#UÑ–•[à&D4û;”·µ‘euý0Ä6!õVmÝüþž›m¶J¼Ør9ôÌ"Š"èì‹tȘc‡d‘@ árÂåéÑŒ¦CÎÖÅèB‚…@èˆx ½ ß¡w>ÔèÐûL2ס×KAÖ^ hÈëåÐkUÄfŠ÷¡7è*/)— “ÞE0sEú±¨ÅðfÑl¨qõ%sf‘‚¬åÐ;Ö8‹E›ùÛÍ ÝLg Qzú¢ÛE³¡ÆYÔ—Ì™E> ²–_@CîXã,âf3‘ñEÍ+öï=:ÝØ÷¥_.“‰r”`O—Ôbx“i6Ô8™ú’9“ÉGA– hÈk|VC@áéIZ oãφ7~_2gãû(Èl ¹c{"ÁŒ'9÷ÈËhñ/&1}Â%‰ð£V‹áM­ÙPãÔêKæL-Y:, !w¬qjaŽDlÞVœQºÝJÞ|˜D's/Þ´¾´™4Êš¾X®¤ñQNcç´ã 5¾»—&…Ôx£c™ê¡`M¢vÛÓ+‡ôù=1›UžÞ3I²‹D“¯9h,P(Úðßs|ë"bá³áÂå·.ÍhY1S^ƒFtEaA7ïñn›ã"{2Mßßeõ9˃/8 ÐGÌ<3þ~“ :åýf+7¯ »G¿ÔéªúñÙ!˜M±ß›š_ç0¬)ãh¡7‡0W‹áÐçÍá„ vo†åð\]ŒÎ±),Øê7Çî`xh³¡Æ‡´¾dÎcš‚¬½Ð;ÖèDàÀˬÖUcÌÙ—³Z0×þÑë—úûe„ ýݽÖæsu1qÌ":Ñ=ƒêéP§ßešu™ªcZf‡z÷¤³Û¨S$ÃJC#Yª=f\1§³‹rð$h¯ê集6Ç…¡f­šçÃñA¹^$¶Ò/C•%ˆQõ³Áº¨=ÆÙ‡ä@‚xÊ µõª8ßx+­q†^ón0Ž êÈâPc ˆŸ\ž>`Äc«o¤osÊ|ÆU–†›*ßw¹œ dýH' ôNÇæÄ{'ܹéŇ$8ëp¥ÊÚK&mõ™VÈŸªß*(Q„±0’›s-MȘ±Á“ðêù1Ý|K² ä! þUÈ.2C“H§¤Œ2µÏ6é!¯öú6m‚Ô&;5u5üPøEÙÀúzg*0òJ©LöÀAõâ ÕÆc}>žGÍùxxÒØ’²’JzOLg„‡r[˜üÁigJUY­>#(JçÍu²+Œ,¢N_¿¬F§W%ÎAYžiúÙ©©8?<ìÏáÛž$Ïbº”Ú,×>Ÿ23eüÔËo9ðæ$vi§Rñ@OAójsR§ôQ³XZ‘Hm5€|D±áÆ%&ñä•@KJý KË]ž57íWd03ÃcÈ"”Ê °vv[}£>‚ÀÉó @ΠdÐÒ„ZÏм£ô‚…aô JdÖ‡JUØ_uµÙ~ß³AºÝªÖ0s”½2IIWž¹4J²Ê®!w0D"xÔëo`¨ýåšã@åÚž#°R®ÂÒ=Èn10ŸÉƒÝî~aÜ+ñ®üö£˶²ñ¦W Ôs$“)z¾–{`(}æ[}3Ð7 xkŠ}TÒñ©Ç’02ÑóoòA³¢ÓÅŒæeRižùÆÎüþI?Måw6ž•ìºûÃN•úËúQjš™WC±Ñ•ì}ò4VöÇIÜ¡Ì6Ó×Û!¦[?ûB~¸°mD??dÙ¶ê5áÎ`©¶ô³ÆÆÄ(4šØO¢ðÙlõ¾ãþê6$r‡z£¿C{¥`òú¨²JJ endstream endobj 81 0 obj << /Length 1589 /Filter /FlateDecode >> stream xÚ­XÛnÛF}÷Wy T›½’»íS’6EúP´ˆ€Hƒ–(‹ Mª¼TõßwöFŠi[¢`ØZîÎΜ9;³nüz…ÝçÛÕÕë÷‚„ % VÛ@*$„ bJç"Xm‚Ïáïe“.– Ga³K?rSÛ¶X7ee6éŒi‘nìãͽþ½ñaApXVßÀŠ• *`ÂÌï’ÚûQçÙí®Éïj¶Õ¶Û´J ÷ú7|°ƒ¬ðþd"]þ—Üíóô'˜a,ÌšÅ×ÕoÁ’Ä&¶%á[dckëTï#iß6µ¶|ýžËcNDŒXcfÇ'k2¤M! o‘›1JæÌÝÁD«Ø[ ÅR`®8Ó>Æa[lÒªnô ŒÏ‡ÝBR$Ât¨4\—E]~ŸÝ¶Uj·DÍa—­wÖ ÞÙ,8 lžÀx4OıMÛ†SÅSdÈéQt qdcHêo£ôJ‚H,}Ô+0{3Æ ãH0ú4ÇŒC½}”¡ˆ)M^‘®£^&æ´Óibè‚™ª¶#Þ,(ÛÆ.&yí6ØÒˆ!_Uc‡6q°”ÚØ‚ÈË“ íà€Ë•I  - R?h ·0ä.˜ÓRhªÖŇ]Z8€Qê˜@ëÔ÷¤›—‡1þE w4—7k9/“Mí|òžˆ «•¡øÃø TJÈtD¸"¤C´âƒÀš$+ŒfEX¶9·N—¦>£jAÂ*­÷¥?,&-Dðá_­Ñ´º· æìÛÕ}Y5C0XvðEÙ¡÷Juœ¸ãa}²kÏ&3û1»Ëò¤Ê»ã ,Ψrúжõaë'W­¬qÔÚT]ÈTY%¸aÈzÊû¨Ç6æ!TæÀMÌîý…ɳ±+ÇBÒñS=zhÃ7Á}p«¶Të‘QFâ °ké„33z׃.׿aû`ËXÑ2Û+g´My—4Ù:ÉukÑS]Ã2)êãÃÏ_VWZî8 AÌq@#‚bÁ‚õÝÕ?WHHI¹18š%¿ÍM¼þpǃŸË«?áçáK¼éÒ½byôÓ©%=>„$¢¥ºü2˾©ö ¢³½d‚éŠúÓ‹áÈB¡ÖM†!J»fõ¦°ÖYž·P/€žÒÌpC°^±£] »¾6ËšÛ9,ù½ KçÃ’0$¸­ü½5Ã`4Þ]{#"—•¿·¢1’Döö8é«H[!*yµ.ÜA»v¬ÕS§NYÛ¶2­ÁJhLùT½òóò6[;Í×í~_Ö©7IšÑê,"—²ãß¶6†xñ¯ƒ[ÎÆŸ«ºI“Mç×X?†>©§›(»[цJT{^zéKÈ1È™DZËz–sޤŒ†ü­Ò`{t <Š@Å"ê¡>ÅÁV Á9ÁÁØÝÁ¯΃€;âŠB‘”!Øýø{„)ΟƒÀ™D„Ð AðhŽ‚JD'1á™0 ˆ€+à¹ô@—Ê%{*;ßg¥Ç˜öÆaZw¦|2ÔˆW.SÃÈ|Vž[—«9uÙºCçc™BàÞ¦ŠhdŽºçH{³9Éë<©û¢ÝÛÂ¥Y Ë»/Xàý}Ûdyvƒîˆô¬ÇK‚Q§Ð/Õ<Õõ³Uw2Դꆑ­º9uJ¹CçcM—h ›YrzŒÙÉ?j:ùÃÈÎNþ‚º„]€¡ó±FJÁÐùcèÁPO(u5g“nG*…{0é¾0¹¾ÎЬ¹¾ÖE§Nó-ÜžÜG_%Õmíǯ¾6õ3k\£xfíé1fËïd¨iù #;[~sê$s†ÎÇ2òHŠPŠ$Væ“FîßÖ/^¼ó_–”‚ǧՃõu|fñê1f«çd¨iõ #;[=sê2~†ÎÇzD=ð¥¿.ßÐIÕêI¹)Žâh^­ê!æŠíd¤I­ Ã:WjsÈñê¸;gCMëLIÄ„ûþS‹ÙoÅÐ&…Kz•jm½üôòY ’€HØ,õst2Ò¤‚†a« 9äø´_€³¡¦4ñÇõsßëgê‹0Lj‚CKª”Òâ6ØšûwsZá endstream endobj 77 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/workflow-example2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 83 0 R /Matrix [0 -1 1 0 0 612] /BBox [0 0 612 792] /Resources << /ColorSpace << /Cs6 84 0 R >>/ExtGState << /GS1 85 0 R >>/Font << /TT2 86 0 R/TT4 87 0 R>> /ProcSet [ /PDF /Text ] >> /Length 2408 /Filter /FlateDecode >> stream xÚí\K7¾÷¯è£&€:|?Ž› ²—…Y$؃¡ÝÄ»™1⌃}üú­¯ŠdSR2KÉØnرD²È*²ª¾"9~3èñŸã µôhø‘ Ѩñç DÓß»á›OÆ×ƒc6“²cІšeƒßPŧŸß‡q?jþs¿§o¾üZ?Ü—þ=Çï‡Û2dV“9²Mä·ÚX¬©`L#†ÕÂè{â?èþ†Ø Lì¸eœ”÷wüÝݰ¼£ÂvÊaœœ)ú·¸H ñq[);y’ PÎ Œ¥°¢©å[*O¡RÑNÊÔ¾•02ˆ2D)Ó,¸7©ÈÐýðŠ9ƒÓÝ5¦_Ús¹Í0Šø·ƒ*Ÿº©PRTÂí–—íESðg»áÓÝŽºŒ;(P§q«YÀ 'Fc5ÍjwGU? “R4önOÄîßÃw›¯ßÞh5¹ÍËŸßîn¢Ÿüæåý7Ûýyøb×Öt^Þ)ýÊ8ÌΤãÅq¿(R¼4R€Æô·¤Ñ˜I(ì67eGRœÕL¤‘~¬#Údp»‰$aЗXhë‰$V ³ÎˆJ²°Ð¶¬©“ï¨4%µ‘¾0$}¶DÚœD$Œ¡Àm?Íï[”004m7Ë,YÍd|fVÄ¡«š4©~2¼ iÌ ‰ñdH šL ´¼‘,ŠTƒ=´tœ<}g\™{`]RI‰V_ Úó®–­E&ÔAD¸Z$Õ„W#QK³#3äs²û…€œ2`𒉬ƒ@³ RiÑ:´¦ k!$‘¶‘2C,‚á•7®iûyá‘T·FXÑ9ƒ¢¾=ðÂY.[Þ1vôØV¼_-¶›1¥)@åÙ'¤n’ }Á˜ÊÒÙLÚ¡RÆÒDÞ*žL=#«Tü†Á²aúe‹z,PìÎÚMØó&'¬]gx†·ùêõO¿¼½¿Ùý &öæR~wÑq’?ZÍs5ÏÓ<Ù@{³LAÌ’ÚÀ*a‘–-ò/¿¼½®I]1H°u¶5ó”Ÿ`ØBKí¶PFãˆ>´…²–jÙ BdÞuh–²hBÓâwoœÒ¬ÂÍ„uóc§j²„jh°÷‚Žþz=íTÝÈÔÒÔ6Ýd}¨›¢&œvE7ŽfÕtÓbazAQ©²>§›á1H7›ÿ6µš§=UKUÖÓñ3ºjWsè³T<³ÓZÁó“Áó#×¹ÆÈœý_Èqúóçë®(îs _WKÆÑ"?hÀ÷lè‘–öƒ=ãÓOnÎ$mÆÉ™Š²k@z¦É¿K@Òk@:¦Òámãå$E»Çœ¤\ܳÄ(`C½äÙe—^jáÙMių›`¥Ú*„e³E3«Ê:ÀIvÛ\i&Da@Í ësŠ¢(³œ´]\7‚F<‹¼ã›·2Ž­Ê8ö«†Õ¸…%–¢.Î@¨äE.ìÄ=¸ ß÷e_<…ëÊçÛ…4¬aŒq„Ôó0mïÕÒ«Á)Ž5Iaûß Ž5ÚæVk3l€I¸H"±˜ìNA8$‡pÈÛ”ÄØ÷Ò£ŠYRöˆ²w\†9/”㪤÷VÛ¸&™ ,p¬ü5¦PÇÖ¸LJÁ‚ëtf èþ8¢  ÑÁ¢G[Ð$ JäøMŸ9ÈŠÖ"‡×B艱 uÚŠ@:È*RâR“k%ZO)“l™Ý ¹ÆVÖ˜m¡$¬¦å•ÔAAÛp—wŒ‰ê„¤bë±NBažâŨ}fß›§ñ{¸õtêðÁÖ£àŸmXj­·\ëC­#ŸòPëB>vÉ<^/¡Wóü˜/¡"½–·YÁè§šÎaFãÌãÞq½¸†Í:{înÛ©ã»mg»»mg»»íJðÅ-7«×ÙN¥žèîw+QÒ“»mÑ¢µyÏiQÚ¶ ƒÿ5Ý-d¼rþ€èÖç#Ñmr³è6ÙYôJ°LܬJ ÌØz½ÂÍfÑ2^ñêLC²±Ëyÿóp>_¤[¾Å¯ÒÍ·ø<íz‹$oñѬ]ÜcÚ¡ç[ü#QU‹¿,]{‚áºghWŒRk.¿æòk.ý\žàh8±àf×OÏåÑÕ-åò¥‚’òz¯óù?ú%é âWÿ‘ƒxöQÌÙá]Ä/:Äñé.ñ½ñ"CsÖããa|‡à¯I’þÂmœÒr ‹´È®ÁbýÕ¼âÅÈQ)ŸswKA»r ;'·”TµF´Øq”¤qÙ5V¦–BÚÇOÍC>ÔÞðË:¹€QĽN‚/ãWg¿éÕ¹£V¼êŽV¼êŽV*ÁqÆ«îh¹#ºó†JH8JêÜoÎJZ>8º‚r:§i9•åǦié±)Ç3§²¦OeÍA*kZ*ëúLÖõ‰¬i‰¬i‰¬éYsÈš>‘=óÆ´æ±nNc]ŸÅº.‰µ]kûÖv¬­ ¬=È_]Ÿ¾ºƒìÕvÉ«•ÜÕ¶ÔÕö™«W7ç­n!mõ±­ºk«^÷ÂÓ¡ÆÈ}M[]Ÿ¶J€ˆçó¤‰\ðÚ›“KhrÅr ýÅë¿ã éÿ -üòÊ­iÅHuBÍfTðŽÃ¯vãÅ{í_G>çÌÎÛß÷ uµ»wø 4½þ ÚïñZÄÃö$IÑ¿þbøâqñ9çãÿ²sW endstream endobj 88 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /Length 2597 /N 3 >> stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 91 0 obj << /Filter /FlateDecode /Length 10045 /Length1 24784 >> stream hÞäšy|ÓÅÖÿÏwIÒ&i“”îé’6mZè¾ÐR–6Ð…–RJi£-kKYU¤AAÜ€[ETÜ7ÔëzQI#bTTÜE½îûŠ»UܯÍó™ïI  ÷¹þîs¯ç§í'ï™3ËwæœùÎL’ˆ(ŒÖ’B“›ó O½bÙ°¼ µw.êè ²]GÔú‘|Uçòe×÷yÓ‰¤ÑDºŸæuÍ_tÓWãî"2ä…™ÊÊy™î;ŒD¥V"kÉ‚¹s>nÛöºº ý•,€!l·©eUȧ-X´ìô»¯ºédäÙÎ;eqg•=úÑøZä7,ê8½ËFòóh:ê;NíX4·ø¼ø DÓ õÛ®ÅK—aÜø™¶@”w-™Ûe{ì·¥|C•JŠš.ï"…è®ÖaÔILå%zP¦’-YQUEVo$ù;79ΠÀOC³ÃAøý]ÕÓI{ 7È.ÑQ¦ìÖ…‹§‰'n ØLG~ÎÆïu´•î£éQz–^¡%#µÓùô}B_Ñô»D’AŠ’¤¡ôû8W·ˆÂ”ݤ§"ÿÿ—wú¿DŒÂY6#£ºŽXüþþcm›ú^ЛȪµµÊÏÁº_ê÷+DÞ_"òòz‘ÖZì7Ü0°m`ËQÃé¢%ÔM§ÓJZEgÐjZCgѹ´ŽÖÓú |qÒÐ…´‘.¢Mt1]B—ÒfºŒ.§+èJºŠ®¦kèZøñzº>ç2‘¿¿Wh¥¢äfºî¤»À¿Ò-t+ÝNw ÿ7xÿ.º6¶pþnXn¤›`½ VQKضá×K½ä£{i;bÆù`®vÓº|ÑÜI»è!zqÜÈ>¦Ù„%˜ÿç5ùóqÚCOГô=MÏ`eB­OéKÔìGM®ÇuÞÕJ¿Ðzxm?¤}Rý,Éô;ù‘Ñ»B‹ÐÕZEôDtnÑü,â± y¡ÛÇænøønÄSäDúš@4îAÝ^x0è¿ã{í…@tØß»PGøB”ì øâ©@$D?nûœVæÓÚ=v¸×#å¾6È;ïòá§ô™æö—ñž¨±u„—EGûöc´eï‹¶Â>¸({ù/±;|O ~­Eâkúüpúó@y?}KßÑÏÚç~úûÉôò¿À²¹?ZµüŠßÐotijS+Ò«œmo¿–nÐÒªKË„!“’‚ŽêØU¯Ôî¨öÖ,_ÐSÝ^…þzMÆJgå\cN6õMHšòf:»z¥ÌrIKÈ™Õ#{q܆‰Çz•ôêŽ9ÞÉM­ÕUö””6ÍF•Z_^}¥× õåX(ÆL8z³w÷\Øg¥ÙíYæ9Î9Ó[½Jõ(Õ==ë½¶,ïPg•wèª}±˜ò\o¶³ªÚ›åDgõS?@òêÒ­NGÏÏ„Á;û¿9ÚÒ°èÓ­?“HŠ)vʃiÂØ0BÌ/%EŒå‚>7ÍFÆ»¶©•óšm÷‘;/«Í+·‹’ÝÁ’((Y,9ܼݙ"BUÝø[¾ Ö»v¶#'Þ×þÒñ‡r‡WqµÏî\ Ø1·ÇYUÅ~kiõº«pwæZÝ›Ÿ‡úí˜ÄBᆦVož³ËéÇ`pˆ,lnÕššy#+½¸ïZyóª«Ä¸Õ=íU<@Ñ—³©õ*òØ[ì°ß[DÅÔ&Æá®DP\Õ=­sæy“Ûís°>ç9Zí)^wÜ׿lÛ&¢ä´z‡~ˆÇ¥hOÔZanÇÔV37¤‡8Ze»Ò&¢ƒ£Îq£Q`E¸´¬ˆè¸ÑŽVÉNÁjxJ †HÕ2Jze­(RDÓÊZ{J[ ÿü7C²ƤK÷† êË Ãá1ñsþéи¶ÐPGõܪA<ªS]`€ÞŽ?NYø"ð`´ᬠ)éxsa“ÑfQŒuxi²£Õ9×ÙæÄrOns¾Öâ[ßì¬ošÚªE;°JZŽÊqùÎy)ÅÁŒ\‰5X“e†UË×ò‡³µÇ׋=!Îúæѹ3Ð!9ðaÒzW]Ç#"ŠñjÖ`wsÖt8VGMOGŸíìž^·»§«º}ÁHч³nN³¹u´]ë”ÖÕöUâQT/Õ·ŒËÉÆÞ3®×)mhêuKš§¶>€{«cCK«O–äÊöqm½i(k}×{·f•…UEÆ!2¢§)È„hõí¸‰Öj¥ªfÐò}i¶ M¢Î>™mÖ M†Me›[³‰)v\Œí¶Ú1G„ç̶=ímâå¢h„’Wr–“Wv–÷J²Þì5:çŽóšœã„½BØ+Ø®vÎ=8GìI=íNìSXP­d—x)*¢KGŸßßÒš²×Þß–‚¥6šÚê ÍÂÞ¯KŸ€zã…Úaï]ÛÙ!ÆAžVÑÖ^×Ù†eìU꼡è!4ÐjÔhmÄrD£NÄÔÚ¯EÆ»¶ÍÛ–%Úº°M[ÎV/Õ:G"ìܧÎ%”×Öá,ÔÞM¼ Æôõ¡5·²ÅŽ,ÖÆN2˜1òN'Š:Ûð¶JÍXê¼—íl™‹-QuÍÕd´ ILKI7…½¡¹è"mʯ¤.ÝÐÖÆƒ×rëðl«×„¹¹2ÐÞAQ þÖc¨¢ê£¢›¦>šâ<;‹´Ö“ÅÞ°ôºlþÜÞ‹sD°qˆØ#L>ö°Õ fn†ß•ô–>ÿíΕ)ƒ~r²âp “ì`aS[ϱï´¬œìc­aš¹§'$ìø Ø_!a‡ #¾Xñ÷dã-¡_ ËàµC ?’“^„å-|ïü“Òû_RϤêhj<žt&Ú¨)‘,BÊç´ªÄÑPäºöÊ]hGuv¡J|N¥rª*è« Zh4 Z {*”¤>ƒz·‘"߿ߦ¶c¬2[Óå´@z9E©kh£~}WG)ÐBšü/µ„…~&«ãð,H·鳑f$¨<¹³’!çáü/d,]]øg¥î¤hƒ›²Ž•º€RÔL²+å* (IPOÆ?+Ý&ÿÇBêZ§œ…ºõê“ÐF¨ž&ªšðg$o 8ýcJqê ƒÒ‹ÑÙÇ(`×ï8FO£€ý¨ú rù ¾¿:R¦‹¨šâ 3)ëÜ~¬´¹þQkÔzÿµÃÿ›ô+,ýê?Œ;¡Rh9´Z {´FUèdu$*›üï´Hy>HÔ å¥+äŠT:hþñ¬£Ô©ñ€ÿ ˆÇ¿ÒT–þa-vÁ~êå7i Ëÿx¢R@u,¿¤`^÷*Kí¢³dê?I1òàëd×Yq†lûsÒ¹)ÆÐeþ9aœ+ÑÌãØ4)ÏP´îr+ånìMÏâÝ8V¹T¢±…æá]õ(·Òdù*‘¦©rGÊOÑHé%J¯Ã^ô;M•VQ£tžÿ-y7Ò˱œ‚º¿A?S™ÖN´!p$– ÚÈ·bíÙÉ!ß ÝßÄÞ7ûÙyÐâÔ>8}"/øƒíc¥ñÀÞ§\«Ù®‚æc»š+Dþ"èRè Í~2´@iBÞ-‚6hö¿@‹”däÇC§j¶› UJ$ò Pšf»Ú"oÁxþ Ý¡Ù>†Þ—qǃîCÝOp߈‚ªµrÜiZ$ÔÂZ& û¡J!yÍÛåu=²Lóåìà}Å¿DÜA0¦êÊâ;ÄÀõâLãûÂÀ*q6ó}a`3îÚ=`7ÅÏ{e?5ðî·ˆ6âÜV£ â æór AP߉óT¿œVàœ¯Ó-ø‘ÏDÿrí,ŒÀ>N)|– ô‰½•Ï­§Ô_ÈÃçÖ€gÔí²‰Ty­„Hžà_ %jûÊ>ôýCyk= çBUÞn&‡ZNsÔiT£ŒÅ{žF²ÚIËZ eꮢqPÖW¨îsZ®{w@Hþ‹KUùI‹u‰œF«k8Þ+µiñ\Biñìh%b4›ŒƒîŒõwÒHå*ו¢, À}p’¸ëï[º2†‘Q‹3âjÈt3rœÅ=5x÷R;(DÓ§ØžåX㮹Qg@½‹¨Áƒ>NÒî³f}'l‹ Fø¦‘ H_EnœfŠG{±6hƒ¶6R‰xïÐÎàà}( ±,À»7Aõ¢, À§YÜ_T3lB¤hëåºÀä èÊÀZ÷®à=âuŠB¼ã1~m½`}¬S/† ©I{‘þ ­ŸXÝ`ÚF3”oqÙ Õ™ öP"ê'¤¯ÄsOAœÿðikëgì믴kfPïÀ~%λAg¸îSÜïN¢‘ê2¬½eÔ%8—‹sMô#„;L¤¾„"t÷ñ:ÖO œUuPÍ‘óL»cˆs&‰BÅYwxoþ 1›OãÄÞ­ž…ºQöåëíèk2ò+°&}ü,å,Ä{-MÐë‘>ˆ{Ò"ÿoâlVÇ’M¹s kõr!ùZú ºVH¹–BÍBª‘ZŸ¡K”™´HñP5⣭éát£ì¤Õº^:¶“5{€ˆÑœÀ=OcÀf—EÒAb]µAW©t‘¬TàlÚ+u)¥õÈ' ?w€QBÊAÿÏB†r:w°`û ó¼ìð;·ãXCòÕt=t"Τh¡ÜF‹ Ny] Íýgõqo>HíPt‚ú4MAÌND: *“ÞÇÙz­Ôaÿ×-' Ëÿ7ÚPÅÔßM7a¯\¨{œ uoax>?ˆï*;h4ì¤ëÀ)j+MDúN¨ y‘îĺˆB:Qù€r”-8ÿwx µ@:ýp* ™‰½â %*°–K)ër’ü>îk? Þ~ªÄþŸ¤|‰ï¨ãp~?Lyª›>Ë Ë VÈÅCíP ÔÆa ·ÊwÃ÷7R“r>¾¿¾‚÷¸‡f)/P+ÞƒtåUìOïbŸÜ‚{ôøb M†š!1ÞÙP54!ô‡ñUýéñ¥o|JÖ„ŽåíT.{qé'§ì£Jyîp×S.ò£‘.‘ßÀºyI»«ÔKOQ4þÒçzÚ¦Ë]”//C»n|O?‰ äU4Lî@ŸP’|*ÖùŸ­÷¦?WɦºõÐePe€S¡K¡8o„®§Qº¯¡/h”Þ€;\/U!]¥ë¢lÝkXk¨Lw&Õú“ƒT •B-P*ÔH7‰5̓ª!XÛPžîK|G,£Týv¼‡±% Ç;5 îâ ÎLý8ìó¡j*Á;w)´Ú!¤¿Ÿ–ëï—B‚4žA—ê]´ZG™½¡JŸü›/)1¹Oþ‡/) øÕ—” üÂø™ñ—ýȹß3ö3¾c|Ë5ûß°ñkÆWŒ/_0>g|Æø”±Ï— |¹ù#€}‰qÀ¾Ä<à}Æ{Œwïp•·9÷ãMƌׯ1^e¼Âx™ñwÆKŒ/ð ö2žg<Çx–û ×|šñãIÆŒ=ŒÇ1eìf<Â}>Ìxˆ»;2`ô1îgì`ÜÇØÎ¸—ácôú /c›/¡¸‡q7ã.ÆVÆß| ÀŒ;¸ÝíŒÛ·2naü•q37¿‰q#c ãÆõŒë¸ëk×pó«W1®d\Á¸œÛ]ÆØÌ¸”q ãbÆ&ÆEÜõFn~!ãFã/Œ Ü`=cã|ÆyŒsçøìÅÀÙŒµŒ³k«g2Î`¬b¬dœÎXÁXÎèf,c,e,aœÆèb,öÅNe,bœÂ8™qc!cc>cc.c£“1›ÑÁhgÌbÌdÌ`LgLcLe´ùâJVƉŒF £™1…ÑĘÌhdLb40&2êuŒZÆxF £šQŨdŒcŒe¸ŒrÆÆhÆ(ÆHF™/¶ Á(e”0†3ŠEŒBF#Ÿ‘ÇÈeä0²YŒaŒ¡ŒLFÃÅH÷ÅŒÒN_ŒXÉ©¾˜‘@ ŒdF#‘‘À°3âqŒXF #šÅOˆä' acÃÆ°2,ŒpFÃÌ01ŒŒPî3„a`£ž¡c¨ …!3$iüŒÆ!ÆAÆïŒŒßÿ`üª=VúE›‘ô3büÈøñ=c?ã;Æ·Œ~Æ7Œ¯_1¾d|ÁøœŸ÷™/Ú |ÊØç‹ÆÊ’>a|ì‹|ÄøÐ] |à‹®Þg¼Çx×] ¼ã‹®Þf¼Åx“»~ƒñ:wöwö*ãÆËÜÙß¹ÝKŒ/0ö2žg<Çížå®Ÿa<̓Šñ$?ï _ô8`7xœôúQîl7ãÆÃŒ‡»;r×p×}ÜõýÜõÆ}Œíü {>F/?ÖËØÆ¸‡»¾›qc+ãoŒ;}QØp¥;|QcÛ·ù¢€[}Q“€[|QÀ_}QS€›}Qnà&®r#WÙÂUnà*×sÙu\óZÎ]Ã5¯f\Å ®d\ዚ \ÎÍ/clf\ÊCº„k^Ì571.òE5¹æ…Œ =¾ÈVà/¾È6`ƒ/r:°Þ9X狜œï‹œœÇeçrÍs¸ÊÙîmà~KuòwáµÉš'%?= í†1ìƒz!/´ ººº Ú ý ºººº ººú+t3tt#´ºÁ¸ ùèjè*èJè èrè2h3t)t tqè‚äMÐEÐFèB¨O:Ë7D¼}k|b%-c,õÙÄJZÂ8ÑÅXÌ8•±ˆq ãdÆIŒÑŒQ>«ÀHFc£”QÂÎ(f1 }±, ùŒ†aeXáŒ0bÐ'™&†‘Êa|a"²z÷4ð[¨úúú úÑûzzzzzz QxzzzÚí„„®‡ç¯3 O¯eO¯òÙÄ _ÉÎ9±‚±œÑͨdŒc?Œe¸ŒrÆžr#’1„q?¶™#;…ŸÞĘÌhdLb40&2êuŒZÆxF £šQÅHe¤ðŒdF#‘‘À°3âqŒXžC #Ú}-x:ý€~Cÿý ýý ýýˆÈý}}}} íƒ>>†>B÷BÏCÏAÏBÏ@OCOAOBO@{ Ç¡>è~Dut´ººV‹ðjöñ™Œ…>[.°€1Ÿý11—1‡ÑɘÍè`´3f1f2f0¦3¦1¦2Ú­Œ'0<ŒF#—}œÃÈfd1†1†22 #ƒ’Æp2t •¡0d†Ä¯¹oýÐô<ú:ôô*ô ô2ôwè%èEèxøè|%=ù<%7ù\)7ùœÚµž³·®õœU»Ú³fëjiõ¨Õõ«Ój;pÆê­«ßY­?³v•猭«<êªÈU²qeí Ïé[WxL+$óòÚnOK÷¾îŸº•Èî–î9Ý˺/ë~Ã-ÝÛ»÷t+}þÝîˆî£jÖv_Ü-G¢\¦nÉ"Ì)ݦðšeµKË.Yâϊ߯Xð!óG\rܦ¸-qÛât-¡˜»"ÖFÈ]¶µ69ßæ¶½dûЦ’íF›lÙdÙbÙfQ-³,ßYüu›EÚþHø‹áîv¥1|VøâpÅ.,ŠÕž[Pc KË SFç…U„5†)›Â$wXna;,-£¦ÂÜhžeV¶˜%·Ù5´æ;£ß(»(ø.Ô*ûC%R$‡$‘d”xy»•\£ì’Ä¿±Ñ‘$]ÜÛÒœ•UßgðO©÷†Nžæ•6xӛŧ»iªW¿ÁKž©ÓZ{%颶^I®lñFŠp§åÏ߸‘ÇÕ{›[}Ê7&Žk«÷®i·[KûEšP¥-kæÒî¥K—e-ÍÂ4s),˺ñ§AÂ'ؽL”,[J¨’õO~–²–vÏêF[df.]*zíÎ9!ñ„ÿ»?ÒÿåÉÿ¯þÄΚIâ•¢¥Ê;ºpRÈ@eÔ@“¨e…I×S ”žÛ^U’cxY™Òs‚Wðz÷U³Û+œÃõ*M¶º Ã…r Uzÿ½'ñ±7¢,o¯”÷^ÿëýÖCOÚÊòú_í/È—l)6M‘á²Á ×;Ssåá®’¢¢Âryx±Ë™.k¶â’Òr¥¨0IV"ƒ–rYä%åƒJõ¡4yeʨ攕“<$$DIN K/rXêœ%™ñ:5D¯èB %㜞R_0Æf$$fÄÁÄðÐcºð?èÂ?Q­ú}—üEYkyš~e˜IÖ…†\Ÿ™•V0¦>̦ ·ÇÄ'BláÆaµ‡®ŽO1cÒãÒE_é‡FÁ#1þêãºHJ%}$¶Oë”æÿb»É"Mtöù¿p'‰Tº9ÌFÑRx´Ëdt¦É¡:%›Ó•ŽÓØä6‘YŠPÌæŒÄ4§3ÉMÎÔXCDâ”ÎC±1e#lE6xvÖÌEñ ý…R\ÞÌñ±{ ‹V¯ß³GŠÝ3s' ò±ÙÆ}"ñ?yZA~VV[zt4Ç-CI1„+ÎT—«¤Tâ`ÅœJŠÚkÖG((*K2«'ÄOQÇgåGêÍÒ&½ÕY^4ª&æLº_Z<;mX”N µ†Iê¡ð!&U3Ì©ži‹2)Š)zÈ“‡ÞÆzÜH¤–`e&Q -Aÿ&Ë›ï‹7EE™Hü7ÕlW‘ø¯Œ¦ø ÜIî-(0¤õ&ž†{Œ;ÔÚT+rÅâÆã6´`‚˜PVE¦×_&åõæõc‘F”a‘Ú{ÿÍn òÛ°°UgJªk¸­¸¤(.‰+=I‘Šse§Ó&–ù#IµÄU9£ë¬Iw¤ää¤HÕ+n=mtlneVéŒêÌ»bóëÆœ¿¹¬*'º2iäÔÚë.­/M–Ϋî:¡C\,Ýú£'ŸÕŸ%åÁ}eyyV±Pì;þ]¡éâý?Ö¡ÎÛ1ILÏh =´\øQ^nÔéŒá¡…ÒúP‹H[BVJ/‹ô|l&öž1.# ›i`)Ûƒ+Æ8°Ù›!13ÞœbJ/NÌâò¥ð»Ù@ù +5•<•Jú>ù²{cmúˆ "ðÅh»;±É¬íSbæ…RÞžC{Å›ûßÖ z$Åž5ã´þ§a³ÛS&ÞRìWv·åy4Ú+.—køðÀ…@Ä£hx1¯Ë€Eë7ÊÀ+5º¨°¤TY™5,g¨­tã ãWœ˜?fåö'Ú2ÆæWtN,²šl&½1¡fæâQ /oÏþµ}Ì %qã+†·å&‡[ køøQãÒëN©´´>­dXŰȄԄðxWLrZ¢3iÈPϺéoG¤¥Œp—‹¸Ö#®Ïëá|/£Ëq5ÙËvÊâò”'/q‡¤Ô˜Ê2ìjø°àúƒïêÜ¡±ŸuÛÝá º‰ÁÕ(6¹˜² I\Œ8¡ÿnÁmRxj° £cl7?Jq¹o¹¶ ”*Ïc‡&92ãLÕWNŸ·±-³hö¥³êW6%æ§§ç'˜”t–ŒÏŠŠZU_PTâH5YŒªj´˜:'Li\wo犇×ÕŽ%}b´šôz“Õx¨¸ª¶`ÊÜá#Nj.´¤–fŠ]t Þæº.*¦ÙìµG¨@nÇËmÆ'nòŽ{sr¢}òýîp7E§št™u 5¶‰<à ±¡asÄLÅñj=T¸O¸Ét¼jƒ\!y½ƒ³·.(Q‘zƒ$EG+;M‰…™C‹R" o˜µ)'šƒ”BB"S \éEÉf‹eàw)×lJÁ¾ SÅEåõL#Ÿ(F38÷ƒßKæÍj²¤xs '210ÿ—±ÒÙÝlؘz™äY>J²öù÷ßk’¬"àâ5²öI n“;g°¸´º¸à#Ê´hg‰ƒÂ*®¸ØYÿŸZ^!6íÅÒþ襨’^+/› ÒÒ ÌCÒÊ\ù³‡=cŒšìcœpuó´Õ ©©AOH‡ÆNžXSyh[ТœLÍŸ¦¡©aLzáÌõ-ÃÝÙCBTE1˜CB]eõù©…««¼±©±Ü%%M\6)Õ“èŒ2Ä%ŇÇgÆ'e9R³ÝS+Ü'OfŽˆ²X¢’cì©‘†¨Ø¨ðxgdò0GBJ¶» QŠñ#_¤öÒHÚÌQºßf 5”œ9âߥ巿ÿbßjbš¢ðÛíÏÒ(Ø¡8Ó`[¬ $ÑÒC$E¼‰.Ý)¬”]²»bôîÁÎLŒ'Œr1!&ž#Áh¼˜xólôì…(õÍtKÀðk€¸Û|3ß{óæíÌìÛ7íf{)œzÑœ‰T•Uìéw]æ{j~I²ôÇ‹ì«ñùßÉ·I¶ëñ ý‹“Ò=ì.E.î—åm²Ãv~ßl,iŇÍ‰ŽÆ+Zæôx(ÌÂòv Rº·ß°@ ‡–⤾Vò¼ž;g¡`À½:“V‘–:ÿ2æ8sܲ¿®%Ò‘X»ÑÛ+ù$éä™õ¶un†8·¸¾îž Þû[Cêvààèák:\ø¯;8öˆJåpP5²Áн¡¦Ý8pàÀ ²7£ðƒ‹1± ¼¢Ÿ?cp¸¡–×;Ø ƒ²]“ ò²a“®ÀËi[z Ì sÇaªÇðpà – Pƒ±á‡tÁe„k ㊃˜`‹h³m[q©ø©øèã1, ‚P!4!ºKx¹v[5,¬Û)ë}$XE©ì;) ÛÜ!aÖænäOlîE¾hs î +ì.pû˜O±Ûæ4ŠOm.BµøÎæ.ˆŠŸmîF¾js/D]Äæ8W7Ì$´á§Y?¨ÃõÑq…tȃ…º42&y)£FE¦A[RPÀ,êFa ÛL.Q¬)ZOc© eûÐfu*Z¨ÜŽbma/fIЂ`MÑkµ¸–õ&È ~å(L`mà$|,¥>[·æ÷56"ûb£!0„’ÊÇÀÎ?ˆLæ’ÉÏ©¡6a@ß0ƒJSØjñY2ëøè z€Ö¿b*Ë#g 5,v²Œa6ÐQVÔê¿ðÒfì–á9æ“g³inT6 )Ì=üífö.æBçòû›ÁΟP_ÁSÚ«w?°úu×7ÿ¯àšéû.=BÑWÞõÿ0ñò 6 endstream endobj 92 0 obj << /Filter /FlateDecode /Length 11031 /Length1 27444 >> stream hÞì›ytTźößÚ»§t¦ÎœÐî¤I„y ƒ¤!„ $ cB&1@Œ‚QDEÀYƒÐiT¢¢¢ÇyžÐã N=à¬G‘¤ïSûíBDϹ®u¿?¾»Ö ùõóÔ»kW×®]Û³Ž$ˆ(’I§ ãËzõ]0·¾‘÷AUÍÂêÅÑ#D5s‰´+k–-uï»æÀ/Db‘Ù>{ñœ…?ýTAdMÖa΂ fÛw|¾ˆ¨ ™(âÙ¹uÕµîûŒhþ)´7p.‘{Ãqot-Êç.\º¢GÝ‘c(o ŠY·à¼šjÊz§¨ôÊV¯Xœ%ôHÜ/ûã^T½°.ýãš™D³Ñ¾éñÅç-YŠ~ã§îgy}q}Ýâà—ŸãÞ4ô©s8é&«¸’Ìd3o7÷C¯SYõWé2l¤E›5M3éšii_{É}!…~JÊÜnBàW“…ÚIk$®Ä3°ÿ퉸t­ñü¿EÏ•ÿUãqÓ#s£Q’îìè¿ó×ѬÀÝø”£*Ý-ðìvþÌøÍ§ëî2Ê·Òmt;ÞņSÊ‘;à碌°¶ï¡fÚƒ¿ù3ë^º×xs~j¡í§ûð& ÔjÄÿÓµ?‹ïŧ#ÒCô0fÈ£t;Íø§" öX(ú¤ãòô7”e-.=MÏ`‡zž^ éz ¥—ÏgQz•^§7èm ÷}Ï6@ÞQµ3gLŸ6uJe…¯¼lbé„ñãJÆ)=ª° ?oäoîðs† 28gÐÀ½zöèž•™ÑÙ“îJŽqDG†ÛÃlV‹;± îžÂ*·?³ÊoÊôŒÝC–=ÕTŸ¨ò»*ü}¿»Ê¨æþ}M/jÎ>«¦—kzO×÷0Ö£»»Àãö¿”ïq·Š)¥ð[ò=•nÿ ×Þ”i"QHKÃî‚ä¹ùn¿¨rø —Ím*¨ÊG{-áö… UANÁSQ—Mº[ƒÁòŠ´—œ'*Ó0Õ¦)þ°lìýæŒ1¨7JR…ð(cMµìù*ä½ÖŒ¢šJL[Õ ªùÃÐBX¨Ô(4î‘Ó7ÕàÝà÷7¢ào¬ôWfË/­˜WiLg‡ŸF{†àµs›æLùE½*›b=}µ‰¥`ÏX/% }£² Ž8QÄ—Uò Y#Ðó.ÕT¹1Ú&ª)ÃTç½ÔîäH¶DSfݺHò±ôŒðH»?¬'įôá=å’4gX++¹óFi}¨¾ÛáG2ÏÊÐ \*’}ÁïztUV}\6SÚJ=+°³ÈN-YqÙ™QTÍŸïGÄ“£n¶É="<ÔÆ“µÊ'À¸ëå­Á;=¤ñÓ£»Grb’óALlªl:;àŸšÝ£»íìh¤nj²Eþù <^¶ÈÓ*ƒîœ¨ˆ¿±ùïHû¸S}Ú7‡= #gþ˜ªMQ¿•Ä+ˆì&Ï_Åâ ¾(1M¡=¦|ªþSŽãÚqÚf ’S¢£=  ¤…!jÀLpq(¾G¿—ö˜#hêÙ˜N¡=`Æ_Éš‰öh¦àht0è&€ñàBÄSAÓÕ¨·…¬Ú–àݦ,Üôéë³B~1u4Í =–·Ñv·?Á ÆRÍËxÆò5Õ˜Òñ]À< ¾ž)“Šç"$Ÿ.NÑgbN§{þ*¦&J·¦Ò9gcêB½ÑVêxŒ††è`èäø«˜§?–˜L´[þ¦:Ú æ›–S_‰Þˆºè «;DwÐŒ Åwëpß%´à¬@|m6í ¯8N»Åñ`4:t>0œx H69i·6œHܬ?‡¶vÄ`½öyȃ¾¦Ý Ú¿ê4ÛÁ ÃÏ÷Ðìÿ–‡´3[ ßL-ð'à™CÇSüütº\IõÊ`;+æãÚ n é6Ðò@o£4Ëpt6ú‹4P_‹wv6ó(?„ÍÐÃ4í,Rÿ$f`éŘúÓv¬Ÿ)!ÆÉªl=¦X>‚AÝ*Óf0ô§jýWšþWÐΧ Ë ”a;L¦føC~ØYŒ?‹Pܲì,6žE(þ»úaøŽ¼3Ú^ûÛ5Ó ÆGÖ,ÊП¤gc<ëÙnê¼×”üE¼E—Š·‚‹ ÑÐ)À êA˜ƒx Ø®¢KM©´A|<¢F¿ñ²è¦u4´XüJµ6Ún©•ßõ;ÆzKp‡¡9x¿gübÃˋƻSíTiÏÓv&ø t‘žF¥ æmZ°M•Í{´µ]|‹ú{)M{H=H™¦Ï)ÍÔð×ÀX§Y‹1¿ßùk Ÿ[Áå!½ ”€!¿õLô”nn¥g£/Çž´“Òÿ@Wª a54‡êõjªÕW`®î¡|í3Z 3t´ÖJ£ÄãÔYÛ†wô-5T-ÿŽò1ûÙ$ÔýÜ À¸÷ˆŸ ½i¤ø„<òíRré_Swm θËÈ¥ ¢‘Z9ö³°UžÚm6¢SÇ´IŒ¡¤ÏFìÔN0ç¬Ø0OQ¾Üî2âu JïŒö~D¬Ì1â»À½ ÊE`þé6Vë(Gƒ#¶Ü­]…û¯»ŒØàc 9†ö¸uG‘sÙÇ©‰ xyÈ[àeÏR"Á³­ƒ®Ô.2t™ø­Óú¨|%¸Qæ zÎ×u4„sˆög䙯ùBûÍòlæ|¡&'yÀµÔY÷ã2>ÉÆ=8·õfä&|ã¼l_$Õ‡ïÄyj!ºÒšÍçVû#8£Êóè(ŨsG_O3ø, •÷gÈT*6Îcßn¿Eª#%÷us­—ç‹©%8gµë´/æãÕ8ûz£Þ혣@{{ÀX\“ŒÀ~´‚,Z_Úªõ +A´±¯Ü‡ç› ݆¹®Q‰®cí¨=ae™biî¯ÄûŸ¦§nòÑ•!VƒDó@ò™‡’Ïk¾›¶š¯¦Z‰¶Ñx—vŒ•|×53m;MgÌû -’ﳄî5ÞçâËðŽº~FîXm™‹ïxžŠÍ2¿ Ê'È\ït¾õ é–“àmέúoyœé~Ï2OU¹ž“iž°•ßµ¹#êüêi©å;´‘ ÿOж$C½`M7UÓ,« þ|äwAÜÿr7Llcn|E·yR|ˆ.xßuF>Ôݼgp#M6mĵt¸6”ãødþ‚gÝ-Á»Æ|YÊIîóCsEæ]*Ø9»9w/<‡ç‹érÜ3õNÒB‹ùNÊ3)ɼ±càS:WÿùK_ø Î÷™ä2Õ¬@œáˆãü7åa\äÜ:Œ}ýÉð˜EÈó’ä9qæŽö‡#'(6•aî•!§*ÙÆg`½<×ôp/0%P¢E£8ó<ši…s,+tVõÝ~;ÏŒCž3)d—g]hoNÖ_§tS;âØ»1·›úgèHó›´ÝÜŽò²›Ë{lÂÜÞ‚¾= ÿå˜Ê‚¿È³ï;Y_„g ¹z»D»Qصé1‰~?] f|ˆ¹]E'@‹^K+qÌÄ<î&ç4xXÎoóetb›e\)ÞÑ­4ËÖ ¥àRS r¾¬‡êI$´p&ìMú)±åp”{hKp†ýòI`Nמ b¿è§èñÓkn!] VjKñLKiжŽ&Í‹}Õ‹øòƒ9ÿ®Úº,+À2“ŸÎ5ƒ|àÍçˆ'i“>€6™q&™q6YÿpnX‡±Zî¥}üýÙh¾rÍ{¨ÏK¸7×´ó( ãq ë!ÊÈ*àcP.ƒ.ÄXdÃ÷׿ÇY½ë÷Qüý¸õv"OK£"[?ì§°¿‚9CL[i¦ööåã4 ”b~¤ëoCÒ=€œm öƒ˜ÛQ4ìõ`pƒ:p.¨ ò06[(E¿ûàì‡{(SŸ‹~ÀQ/Ìbý MD&€- ÌCÀ£Ï;1vb¾¢Îú—õ—û×ûÏú‡õ1ZüŒÂOÅÚ½4B{2´;0G>¢©8—ûjGÿyÊ—T -Õ^¥Éâ UŠÿɽÚÊ?Rm" ÓŠ0/ÇP¼Vˆ{J©·–CéÚd´U‚¶ÿj½–`±Gùæ™g©9)¤=AxŽÆÌ¡Qæàðu1¯¦øœí2ŸmG£›f}ïëÎõS4Tl0#ä+ÖÞ_÷Ir>›¿ î&3 °¼AóðÈÿN‘Mæ2g¦¥{q9M5%Ò¬¹Àuà9ƒ(ÚgC”ÚÇÑ –üí6›²aº»U[w_X²³V™K”¹X™Fe.Rf2«•Y¥Ì…ʬTæeV(³\™eÊ4(³T™%Êœ¯ÌbeÎSf‘2 •Y Ì¹ÊÌWfž2s•™£ÌleꔩU¦F™YÊT+S¥ÌLef(3]™iÊLUfŠ2•ÊT(3Y™IÊø”)W¦L™‰Ê”*3A™ñÊŒS¦D™±Ê+3F™"eF+3J™Be ”ÉW&O™‘ÊŒPÆ«L®2Õ9G™aÊ Ufˆ2ƒ•ÉQf2• Leú)ÓW™>ÊôV¦—2=•é¡Lwe²•é¦LWe²”é¢L¦2ÊtVÆ£Lº2iʸ•q)“ªL'e:*ãT¦ƒ2)Ê$+“¤L¢2 ÊÄ+§L¬21Ê8”‰V&J™He"” WÆ®L˜26e¬ÊX”1+cRFWFSF(C!#‚Ê´+Ó¦Ì)e~Uæ¤2¿(ó³2ÿRæ'e~Tæe¾Wæ;e¾Uæe¾Væ+eN(s\™*ó¥2_(sL™(ó¹2Ÿ)ó©2Ÿ(ó±2G•9¢ÌGÊ|¨Ìʼ¯Ì{ʼ«Ì;Êü]™·•yK™Ãʼ©Ìʼ®ÌkʼªÌ+ʼ¬ÌKʼ¨Ì Ê<¯ÌsÊ<«Ì3Ê<­ÌSÊ<©Ìß”yB™Ç•9¤ÌcÊ<ªÌ#ÊTæaeRæAeZ•9 ÌÊܯÌ}ÊìW& L‹2~eö)³W™{•Ù£L³2÷(s·2w)s§2w(s»2·)s«2·(³[™]ÊìTæfev(s“27*sƒ2Û•¹^™mÊ\§ÌµÊlUæe®Væ*e®Tæ e.Wf‹2›•Ù¤L“2•Ù Ìze.SæReTÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#ê•QùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPiPiPiPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽÈÛ/ ²æ@êpræ@jä.]HiäÒE,k©Õ\ZÅr!ËJ– F@V:åA–³,ciàkK¹´„¥žƒç:„,f9eWYȲ€åÜ@ÇÈ|–y,sYæ°ÌṫÔq©–¥†eK5KËL–|ßt.Mc™Ê2…¥’¥‚e2Ë$K9KËD–R– ,ãYƱ”°Œe)fpAŠXFœc £X ÎbHAÀ9’Ï’Ç2’¯àû¼,¹|ßp–sX†qÍ¡,CøöÁ,9,ƒX² àÆú³ôãVú²ôaéÍõbéÉ÷õ`éÎ’ÍÒ¥+KKn:“%ƒÛìÌâaIç¦ÓXÜ|Ÿ‹%•¥KG'K‡@‡q–ä@‡ñ$–D&°Äs0Ž%–%†¯9X¢9ÅÉÁ×ÂYì,a|ÍÆbe±R&@Ì”Rˆ‰Eç Æ%ÁB†ˆ K»QE´qé˯,'ùÚ/\ú™å_,?±üH.‡üH.ƒ|Ï¥ïX¾eù†¯}Í¥¯XN°çkÿdù’ƒ_°cùËç\å3.}Ê¥O¸ô1ËQ–#|í#–9øËû,ï±¼ËUÞáÒßYÞ$M†¼Hš9Ìò&ß`yå5–W¹Ê+,/sð%–Y^`yž«<Çò,Ÿayšå)–'YþÆ5ŸàÒã,‡Xãk²<ÂÁƒ,³<Äò K+×<À¥Xîg¹e 1$N…´°øYö±ìe¹—eK3Ë=Dì×ânnå.–;ùÚ,·³ÜÆr+Ë-,»Yv±ìäÆnæVv°ÜÄ×nd¹e;Ëõ|Ã6.]Çr-ËV¾v ·r5ËU|íJ–+X.gÙ²™knâRËF– ,ëY. $TC. $Ì‚¬cYH˜ ¹„åâ@‚ÒHÀf,. $ „¬aYÍ·¯âû.dYH¨…\À·¯`YβŒ¥e)Ënºžo?Ÿeq ¡r7¶ˆk.dYÀr.Ë|–y|ß\–9ܳÙ|{K-׬a™ÅRÍRÅ2“e?ôtîÙ4–©üÐS¸éJþ¢ –ÉÜÝIüE>n¥œ¥Œe"Ki Þ ™ˆ—ß0>/§÷¸@üZHI ¾d,W)fˆG^ Џ4še ñk øõü@üE¼@|#dd ¶2‚ÅË’Ë2<‹ó]œÃ¥a˜JÈP–!95³äbFAb* 1S øZ–~˜î¾\³O F>Xï@Œ\›½Xzòí=øº³dscÝXºrcY,]X2Y21r”:³x¸Ítn3ss+.–T¾¯KG'K–”€c:$9à˜I 8fBYXâYâXbù†¾ÁÁÁh–(–H–®Î5í c±±XY,\ÓÌ5MÔY4ÁBÞ`ô,—¤=ºÆÕ]ë:ÿ+8 ~AìgÄþ~?‚ÿ|‡kߢü ø|N ~ü×¾Dù p ü|5ÇõYÔ\×§àð18ŠØèGàCðÊïCßï‚wÀß#Ïu½ÙÇõôpä×›‘™®7Àëð¯Ef»^¯€—qý%Ä^Œ\èzþyøçàŸœïz&ržëéȹ®§"縞ĽC{O€Ç7xŸGÁ#ç»FÔ»ŽXâz(b©ëAÐ  þ¸×îõýˆ@ ðƒ}á¸ö†¯tݾʵ'|µ«9|ëp7¸ Ü î·‡÷pݽ܂{vCw…ŸëÚ 3üpühë´µm]Ø6p¸l×€«qßUhïJû8×öñ®Ëís\[ì·»6Ûït]ªg¸Öé9®µ"Çu‰¯Ñwqs£ï"ßjßšæÕ¾ðÕ"|µsuñê W7¯~oµ·Äb_å[é»°y¥ïßrߊæå¾eÍ >SC|ÃÒý‡ÑÜ òDï¡Qƒ£ÁÝ G,õÕû–4×û¨~B}c½¿Þ4Ô_¤^£zao Ú_ïL-„zWÕG: Ï÷ç[Ü|žoÑì…¾ùèÖ¼œ9¾¹Ís|³sj}u͵¾šœY¾êœ*ßÌœé¾ÍÓ}Ór¦ø¦6OñUæTø&£þ¤œrŸ¯¹ÜW–Sê›Ø\êŸ3Î7ñ’œbߨæbߘœÑ¾¢æÑ¾Q9…¾<2utttwÔ²ã:¢'ä#{;½Î#Îoœ&rú‡œzltW­ktŠÈŸ"ÎK¹(åŠ=:ù•d͛ܵ{atÒ+I%}dŠó&uíYH‰ŽDw¢ž Ÿ-±¤¼ÐÐÜ|Ö>Œg-IôdF'ˆèW‚VàJs$æ›=á1Ç+-:ZDG£5o4ªGG¹¢4ùŒÒ½Q}FGº"5ùŒÔ½‘ˆÈ»DL(/Œw…k¾Üðñáš7<7¯ÐÞ£w!éÂ- D·¡î}"ÁU¨òÿPÊÀDP &€ñ`(cA1ŠÀh0 ‚òÀH0xA.ÎÃÀP0 9`€þ è ú€Þ è z€î t]Aè2Aè < ¤7pTÐ tNФ€dAˆq ĈQ D€p`aÀ¬ÀÌÀ4"ˆOh@¢Z˜hmàøœ¿€ŸÁ¿ÀOàGðø|¾߀¯ÁWà8þ ¾_€cààsðø|>GÁðø|ÞïwÁ;àïàmð8 Þo€×ÁkàUð x¼^/€çÁsàYð x<žO€ÇÁ!ðx<‚‡ÁCàAÐ €Àýà>°@ ðƒ}`/¸ìÍàp7¸ Ü î·ƒÛÀ­à°ì;ÁÍ`¸ ÜnÛÁõ`¸\ ¶‚kÀÕà*p%¸\¶€Í`hÁ°\.¥Úë_`ý ¬õ/°þÖ¿ÀúXÿë_`ý ¬õ/°þÖ¿ÀúXÿë_`ý‹z€=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øöõ/°þÖ¿ÀÚXûk_`í ¬}µ/°öÖ¾ÀÚXûÿwü~*ÿoþG?É3gÈ “ڗ诛£H'+ ¦GSR$æt" ÷ߟŸoëa}óU#7f¼ )iž7Ú¤EèÐ!×s`€e‹S„?Üï˵nÁ^žÛöaÛ˽Ú><;¸× Ñ냣u|ûrÌà^ý޾y´Oo“c¥Y­ñOzOm@—Ìýúõ® èŸéIÒŒXÿƒ†ëýú¦jz¼Š ×dY诟š¢o³hk<¹“ú™S;DÇGZÌZÇäØÃ2eS3†õìdÕ­Ýl³f ™^¼  ý]kL§„ÄN±6[l§Ä„N1Ö¶÷ÌQ'¿3GýšgZðëVÝ2tZngýz»M3Y,­©É)݆¦MŠŽs˜Âã1‰6klLDVþ´¶Ë:Ê6:&$p[m%HÓ÷OŠ s<%Є¹Iã“ö%éÔ<¶ß!J ßìi¤¡?í0ôØþpèC8<íÁCD‰Ý1Ñì£Ü\Ñ+û¨ñ‚úôžž¡>&ôô ¢ÂŸ–’œo KHKJI‹·u°EXÍfk„Íô®r$ÿKÓà Ó1sÅQZåퟌîÄ;Зøxt$>½ˆOFâ[µ~Þ07õ¦FÌÔPÇSC‡—‡~%;žêxêÃÈ>ì”"º¢Ë<­"»Å<‰rOäâ•sçßœ®Bœõ­ý{jò5'ħjò­›Ž¹æÃ­WÞ”?fë‡[¯xsKÁý]¦^¿xñõ3»fNÙVþ 3²´ëvœj™9ùŽŸvm?¹oæ¤Û¿¿{Ñ#›Æ•o~xNý¡M%åWÄ[è<©ÿ„·Ð‹z{;uí%ºö™É"3ItIY$ºNô„Çtšã3Æ87vðà\tmºñ“‘˜h1fb!¢tOzfæÀABàs ìo’r&¢ŽUèŸFšc»¦»;'„›Ú´`ŽH蜚–mŽÕíû"¬Ž,Ojf¢Ý"E¼Ù—ÞÉÕ%ÆÑîžØ!Ú¬ÛÂÃ4½­-,ª›£;$jeZn¢3Ú¤[#míŧ¶HÄ£œ‰mOÉÿ–r¨ü¯&°.»R‡–ô˜V‘¹ßYÑ¥Uti1—c¤ûâ·Ooc~¤¥gƒ;H¤©aN뛘 —˜€Ó·šÂ"ÃÚLܺ=6RóµìQa&SX”]{Õé2Ùc¢Úöj+bbGÇ9cmnOFdbŠ+A¿ÃãŒÇtw¹»8R:¤ÆŸš‘.ûµã¼KžúÒVot¬s!N~äöÝâä¤Áä‰ Mž¸Ð¬ Íú¸Ðä‰k?{©áÔ wDÊÔ·£J¸œ’á¸~€¼r¤:Z…Åkï1¦[J碔±æ±üòäp@šÉÜ»U˜Èã,rŒ Ûb.‘ë.7÷DlÒ`ÑëÍ£¿ I_9$jõuù“qà V­GkLb¢\úá~5WÏÈÊáí|Æ€Ä'8c­]Ç–”ö˜Õ49koB¿I^÷poa—ü•yÃ+u_,;¸v”#½¿§}¸-B>¾À¸èrÖ_Ðmxׄ±ëö5\\;,®k^ŸöÊ*†Õ®’ó©4xB{£UD/{#zç/¾¨x_±yDhÈF„†lDhRÿKM\¨ìi¸Tñ¾×Õ¹oç¾N9§œr:9åsÊùé”SÌùþz à!ï±oe±maxfw½‡½Ùìzq\O|Ö ±¤IšQ·iiÜЗp§Å­·íBjW¶S®r¾ñ€„B $U@Ë%!$®Šxj‘¼Rñâqøg½N#åT¹¼Î7óÏ?³³óÿó#Çë¤1YÎ_¦_Ï$`¾ òó2#§?užÕvi7hG4vTÕ¼ão :RÛ¼_4 c^ËdfÔy¬pBmˆnÊn’}ç4ϵâ^3Ã¥y»ÍwÙbÇBžù`hϽ;²WmÉzï\}®\·fó`0™Û5}y.™*Ü^ˆM®Ou ,Ë N^ŠŒä3kr©®Õ¹Âôî\+[f·%:}O,¬w«BÝÑ‘xbíêp¤ï’+LJ‹ù‹dw—*wzU-  Þ€Wf{’ëIdÍøt/z¿dsÏ¢õèúSH‹öÛ:ï·÷¢ßÞ‹~;KôÛÖÛO­WöuôÏG'Có¾É—1w\°6Š:ëPS/ƒ§ÞjF-®iŠk-u /¥UÂÁ ªy,s¤mæ°¨’TÚwi)º³Óí;Ä;½é»Ÿ‹²Ä¹;?Ýê‹õxD‡äà® ETEâãSµŒBbz·&œdòd ´n=FΙ½’Sr(~*÷C‹óìãìëÓÌ…!’¹’Ô‚’Ô‚’"È—T©3&©AþîÊi`?a[+a[+Pk95%¨ZÂ-/Û6Jÿ霓ôþ|Òåäcà¾/(Û­˜fÖ†Vò\2©±åg€áf’:çÀš•AGF—ìã‚;Ôå iüö‡­Ð%xˆXôe&³—ܾEð„ÁŸÝÒRD»yzÇøÁûö1‘V[øjçÞ‰øÕÓÌ\‹Cõ“‚˜Oß/È {rÀª”4UÇÅiìáN¹Ö}¶àÞË‹% skèQ‡Þ3Žðº(qa¡±ŸÐˆïȦò49çµ¥ø>¶Asã± õ#43ƒÁɬ?ZĽ;Y³ì ÉZ×Ï%ë QO†WE!Wt†suEzBq KØßøFÄz’„¢'wêCH€á`(îf¤Æw)ºì`—€ÆcP±YWðIü”¢wp,ïÇñN¨XÎåél졺‰@´?º‰¡Â+(ƒœ£Aœ b?Þô¢Œ(LRÂÝ4à¬ïÆuTsΜzÞ9ÅíDSTnšØ`ÃALz0郿^¶)먞H$qbmëD2¤Ó÷z=3t ?0ØM4†?&©lã Q­ZñHŒÙoy-BzbßxIÕ²GÁcœÛÉ^ßåWà4ÒÙ±fNë.x$¹’×ö$êC¿‚TÄ+wàË*-3пVÚ,1RÎ"Ì ÉNðæ¸cÊ>‹@$<53µðò#IÂ>‘Pç¶$àÑgxQNw9Qqâûw©:=¥0œK“ÊkÌá'ʼn¿TjBOoDñz*scoÜ m^ñjDñûºÕ…‡5ˆšÞô/ÆGÌ{ÿN°¬ ú†`m´ñß}ý¯÷/C”$îÂÁûópå’+à½6Úh£6Úh£6Úøs@ ýá"\ÄRŠY…xÆi};ƒþWf=õ³Þ[wý¶‰ðQÀ}õ~¿dQïàwñûÿD±ÿ¦‹CG ô#lCDy´]®EeàÖP;o[\„?ï¹…ö,~¶øêEq,âáÎá¸p^ÃbuM zni\ié}­Ö̃xM³HÁØ4ô6ÍýŒM èü*µ~N¢s2£6Qó˜M3HaNÚ4 ü·mšúS›æ^°iX@O#‚Q>#@mG&Úª¨:ª  '‚&€ª‚ÖhYŽ T¥¡g#š…AàD‡ ¯fµ ¨ }ÊŒœ€ûfaÌ>à™0´ÆP×á.:’Àµó˜ÖþV«ܺõÜ´C]E7¯²tÏʽ~—,tEek.º‚¦¡eZk Ïß TÑjÕ¬g–›±WPY&Á~hÍAoÝ’’ŽN?M³Ù²ÝÜ_­Ô*êd¢R=R©ëf¥œ&ggIÁ> stream xÚ­YÛrÛ6}×W`üª©Ö¸’€gú¦uÚ¼eªw’æA±([ItE1‰ûõÅ…W›-@ã’ÁƒÝ³‡‹å£;„Ñ» 9}Ĉ „ b Žn·“' ¤¤ÜÞn]Ú[ÕCåÀåŸ[~Ë&ôßþ¬\`V¯ðë|ry-)"”ÍWˆÄ1–æh¾DŸ¢ëõ]±Ÿ¥Ó,"À`úyþþòZpD0(¬ˆy.f@©ÐëØ§ÞìÜìõfSä‡ýâ°Î첕»s¸/¿O ޲ý×0fÙ” =`'.S=Bw鲜¶>Ü—O.ò¯¹3˶ ³Ò†a ¸r–Ìõì7}3¬'Õ/vË>H"AàêmM@’zš¥§Eþ¦þÝä÷y+h’¾ xb#aÆ)(©ÊX }ŠV­XV0ŒDÄmŒOŸ1Zê{ï¦$úngnÍl‡¹Aµ ÏÕcU Šó§žq&úbßZ©qA‚J ][¼òDz¯˜ÖÓØjŠRXi,ý–ÅN3yºYAVŠCËôv³Økù üêæ•>«¨£Jâ„–`’Œ`% 5¬¤®gÞJ !¨ŽþòÇ:¢$.€`1"¥/”U b&¥#XJ'C K©ë™·”BªÃ†ü±zgƒOˆq`i0‚ƒ2Ôpð»žy?„ :`g`ÈËæ‚I;‘`2I´’U&’eºªK¢f*Õ5$aU­“þHo‹ƒÍ/&ï˜s5ža°€Xf˜#Xd'C ‹¬ë™·ÈBª…q†ü±ŽlVXeeu~qqñ6Ûê­J ý`¿ ÌE^lÝ…ù^èÜYïìΦŸQ b–ÍZ¡B;jPhO<óZA•8ÎÁ?ְЈJ€JÞªŠnœ‚~)%f†þ~mOãZ’–´ZÁZ:jXK]ϼµBPÿ30äuDKR£ª¥¥-ÑŸJ“‘ "‰¦¬Èæzã• bÀôq€¦a4`Ã:hç`¯9â8‚{?G(Õ3ŽP)ê9F­3êhŸÊÅÓ.™ ¾éë4½°D¿Âô’d«fÚVL˜>˜»Èï]×*w?]_‹‰þ¾ãÑ*ÛW3×å3锈èÇbû°IAë)ѼBÉÓCñà.M‹ª5ÝLñå:kzØvÖZ¸ÜvÊÜØ2K˵vÙÁˆT»<#8/·÷‹ÝYýáìMÍñ›]g?å8úy:£‚:© n'nºf­"ãÀâªF|lZfÍ¥?Xi5ÃØkwOf™"7­?3üåÑ|ÉL ÐŒ>/ExtGState << /GS1 98 0 R >>/Font << /TT2 99 0 R/TT4 100 0 R>> /ProcSet [ /PDF /Text ] >> /Length 2824 /Filter /FlateDecode >> stream xÚí\Y·~Ÿ_Ñ»¦Í£x=:†8/àÄȃ0‰äÄ»‚å]!ǯO]ì&g{F+yÆØì6dï𲋬ƒÕÅ"‡6vøÇ°±Övðqئ„…äÌðËß7ˆñ¿ÛÍëß ï7fHÅÆÑ:lVµx_}s‡ýÝ`ùßÝ¿ùÃ÷vxw§Ï·ßnJœËƒ¥/­y‹´é=úIPÙÜ0†ý-u»Ùް°±n§ü¿á"Ò£›Šü#zˆÊ%])ì7ÉÕò –ÇXQò£qõÙ œt"PºÐ2Ž‚ŸFé8ü³ßüÈ”‰Òí&Y¾¶çò4BîÞaÁè§mzR$E#ÔnPL¯ñXc¨Ë‡"bSE0–†‡a‰ÈùJI“®a,6 8|oäÿ8’&ë Q»!˜zËÏ" ëB$eò°•‘#Ê¢·WÉÚ8†å1©Mø…3#С- ÈÔsµß8ËÝ#­*ƒpتFçùï?ºP˜1ô¨-ÚÎèX¬…8²46>!áÑ!8˜QÈ MECšÜoÐ,~ç@ÇY–X2"Õ76°m‰‚±ÂŪ™úµÂ© ‚ Ô6ð8:d° 6(€ø”ó˜]bDBcEê$8FÑA!&ú ÊI Ž5ï -RÙ¤aë„vP !|–z¬8ÏeÏã‡@fÅöbPÙ0F$ŠOäH"/!@q#Wô,Ʋ<ìFOÖ 0¹j›J@çƀ-éìu¤6~¤²ôNU¼Ý<À™ ޫĩ—Lª"m À’¨®IÑïw›¯v;а#gci(ì ,ÐÑçw·X÷n3ƒ²Úíìþµ¹úîýÏïï®wÿÜ|»›ûµÅ`g‡sr£_î3'½Û”¯És4žÕs~¶ç|u` ðÐ|E‡“¥³˜lᇫïï¯-ºš«7¿Üï®SÃÕ›»Ÿ®ÿºû#ÇyMcI³«Ó_þêô«3¯P~½×´·Ÿ<ý¡“8¹ßf"B~’qX§â:ƒ©xtŠE'S ÛÖwèÕŸ>Þ7³kanEÖƒÌóÖêGþÒ‹<}­µ·d¨=C&¤š LA«Áf¹'ç`w(Íj&¤‰Qdó!sÔ®rgØüù“ÌIßǘ“Ú‰¹b{æ”`A™ëgæÀüh³žS¨¤3WMتºÿ(_.Õ/†£ÂÉ“fàùž™©­ŽYµN ±Bô„y@€Áºø!ЕY©Sà”4åP«„.éӊПdœ‡TÄf´@±áV§©ÏðRKy#±N´k½É£Z¬!ßF˜¦Z`ŸOˆ¼8"K¨ˆO¶!³F¸’ J¤vÕ„ñ ÐSû›ãgYÔæÝŠb¦ØYk7äÝ4|Uí7u|È}èØÅ8ôœïÓ :öìeHÍX d„Þã¢_ôi…i*Š nôm&äß—ƒÈ¸6«UW‘·µ%uÒ“mÕ®D&ç7«˜Ïm6äo7À žÆXk 9a†ô–FHΚ¥Gh¦‘\·9‹y:Á@UL§"•p™„ Aˆw¯0Èûµ¶uônbÈdè0Tú–†Pû¶Ô±ʶëp ¾ctI¡>•N¡d¢Pzÿ²WÉ4aH¥RR¥ ¨"“Ç>©ÖÚl†¶"z9Ojô%Ðv}­jíÔJ‘µÃ׋èà«ÛÿüŒ=j¡¦2âœËXßý;`xæoÙ$šE!Á¢©ÌaIK¿&±VÀÇ’W.pòÊB’äÕv4 W›þpµ{s½M0æ«;üÄÓÕOøF{õMÍ\ŠÎœ“œ“ñkÎé9.tíÙºî-t—\’…¥ƒ>Ÿt¶wëâôŒyž¿zzú—7=ŸKFøìsËå"¹]»”±q‘'šÖRÆÆ¡½ºì%c£a—‰kžg5óFåéHf3$4 "TÒÂðÂhÁž­ ‡£ӌ֗f´tØl j¤©­%@ÓmmŸ_ª“VPNž)sÚ÷æ´¶2çMê˜Ó*ð¦2çJÃÜ „9iÖs+iŠØ°ç1Ø^LŸ]ÊJ‰F¬´ ›_ꬴfjDCÍ&i•Î 4¢éMfѼ½Ì¤\3Ik&iÍ$ýd’<À&ÿä>?“Dº¥L’§†hy„Óéih×t‘ӄ8Þc×UĺŠx‰KÐC 3ëx¦¢)i‚=8ØÓÆìáH²Yùß7GÏä gæ#ÏH‹»ÉÞ³œµ–¢>ÍYw“}àï!s $ °d¨Y0ºL¾²×…(l¦¤kÔw)vu4GØÕÚÊn0¡cW†>LÐåʰœ‘T†g K³žûX‰_ŒáuCäùoŠ?ˆkhG_3)®["¿&†Y3¡k ó‚3¡ù¨,ñL’ƒx´5á9@éOã]àö”ó§ËBÊl+œ´# ½¾¸lždÖnQ6”ÐÌ$š«¿\N*'FlŸ rõ¸.êd“FrÔã$êI¨{à½&€¨|3•5ÎqДC­ª]Ì㚘ÇÍ1[Žy$7b“†<’š(kmÔ€G²*}Ô$šˆÑC¤5 D°&l¢XG;T†) DÒàH§B tj[s*s”~â(GûNiJ;5 DGß1z˜Ûã¹]BŸÛÍìA§Q…Y%4L_°N @ä08š"ÙܲÙUZДƒVÉ; :¥Î0ðÑ”I­DâD,›ûP6÷‘lêÙÔÆ±© cSŦ&ˆÍM ›»6÷lîØÜǯ¹ _s½æ&xÍmìšÛÐ57z¥%8J‚?ø¥pu ŸŸÜ£GýbrO+0 A¿ãšá;ç!ŸøÀGûü¡¯çŸºÉU¹&#×@þe'#yi~‘Ž=òn“Ð~7¥$?ù`"Þd½`e½ðþç‘ßÉq-…Ðæ¾ÍBó`»æÇ7ÔxŒœW±zŒ—ûc¼fá…à"²´—VÿçH^õ؃d—› @[˜6„iÞbP Ùsj8ï*dhAh’ìt‹!C»Å°Ìg¦Íßî<Ñ'uö å)ï¿,{Såõû¿/.•3lÓœ“fQ*ÁZ=¦ÕѺ`D˳¤øÅ´ðj@“ äx۬þfêÏ6Éñð9õHKWVŸÀmì”Á(_¡¦PФ0& ýôé•Ó'[bw²¥ŽMkq¹ßžlA8ŸlA0Ÿl)ÐlA8l¡µU=ÙR|{²…~TÔœl)¶?Ù’û“-¹=Ù’Ú“-©9ÙÛ“-±=Ù—,}yRcMi<É”F¡Cd‡rŸŸÒ Ga)¥An?I œHgHËõŸÇ¦3 ô—÷l)äÑtÆ·ïÿF—õ´WõœtÖq½dg½Ùã-&†Çýä Ò©ËÒúŸ<-,,$T=rÉ„ppɹÓ%QËHèCÍê½ä4æ«/*ÔìØ%Ê¥OfÚ|÷`_ðLoŒ5T|ž¡â«ö¿|Lµÿù6ìzLoòä‚j6]ýB†Ý€4ßs0âñ{`ªý—fYÝ®¨/gùkXý¼Âê&CÉPªù|AP]dCœƒjhƒj© ¸Úñ'ÖÀúKnÇ<131]#b‰ˆãÓ ˆCÛ5½~¹ôzpØ>”Òßqw,Á>ü¼ ,$ endstream endobj 101 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /Length 2597 /N 3 >> stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 104 0 obj << /Filter /FlateDecode /Length 11257 /Length1 27744 >> stream hÞì›ytTUºöß}Ω!U*sB…T%E!„0II!@H Æ„$DÀ(*ÀETœ5•%Îhã<ÏÝÚ*85ÚàØNHR÷9ç­ˆv_׺ßß]ëùåyö{öÞµÏ9{xÓ«%ADÔB*MšX‘;`ÁܦDþjêÖ.ŽNNèAT¿‰H¹¡nÙR÷ÞküL$F™ls7.üᇲp"óX¢°n .˜ócÃ~ôX”„N¿˜ÛP[ÿQñÞO‰ôBCæ"±Ç޶Qõ(÷˜»p銜†ÃGQ^O}é‚óêj)§ô Q…†òú…µ+÷jÚ[Qß½¨vaØÏ/BÛÆB"í‰Åç-YŠqãÓØC¿¾¸©aqð‹Ï¥aL=ì¤jq™ÈjÚfˆQ§²ª¯Òå YI‰2)Š¢©Š¶“”¯¼ä¾BŸ² ·›øE3S‰C–[”L7ÑýšzÀ©›þÍ–[ˆº®¥Ó?“h>-Áól¡Ëi3]KÓ{4›ÖÂm£t'ÝC~z‚ž£wèÿá§ëÓB W™b‰‚'‚Ç»î鯑kQŠÕÜ¿F‚Žà—gľìº6èèê0ÇÍh¡¼Žèw¢3xBÉ×ËÁ!zYYe´øÆrK×Þ®»Îxå4•¦ÑtšA5T‹û¯§¹4Oæ\Z@ i‘QZ„kø=¥Y¨U‡ZºÿµÖy´4ÑRj¦eø·~I¨¤_;ß(7Órü[AÐJºVÑêÐïåFd®¬4Ê+ÀºoæbºÄpR9²–.¥ËðÖÖÑzÚðKN¹VÚH›ðž¯ +ÿ­ßü›ÒUøw5]ƒù°…®£ëéÌ‹›èæ3¢[øt æÜƵëÙa8ýê#ô4ÝO{h/=`<Ë:<5~"ò¹Ì1žáb<ƒU¸Ãµ§˜ŸßòSOk î]¿·ÖЮ@ü’ÓZ, =G½æZÔä^ø=转>ãI\…{`ÿëqé:ãþžþTþST>›O{27%ÝýwþzÚŽ¸ ¿õ§ª»[áÙí0üéñ[NÕÝi”o£Û鼋» '•#wÂßEwcmßKm´ÿ~õ§;Ö=tŸñæüÔNÚGûñ& ÔaÄÿÓµ?Šï ŧ"ÒCô0fÈct;Í“ø'#"öx(zȈqùIú Êz-.=MÏ`‡zž^ éz ¥—ßÏ¢ô*½NoÐ;"î5ú¿;yÇÔÏš9cú´©ÕU¾ÊŠÉå“&N(_:®dì˜â¢Â‚Ñg{óG5rÄðayC‡ Îí›Ó§WfFOº+).Úa·…Y-fvbA}Š<Å5nf_ËôŒ›£—=µÔž¨ñ»*þm¿»Æ¨æþmM/jÎ9£¦—kzOÕ÷H™ÓÇ]äqû_*ô¸;ÄÔò*øÍ…žj·ÿ¸áË ¯e…ÒÒÐÂ]”4·Ðí5î"ñ²¹­E5…è¯Ýn+ð4ØrúP»Ík‡ó÷ò,n½F Ã(½Š†·ãŠÐ¿Ö¯fÕÖû'•W:ÓÒª}ùÍ~‹Ñ—{ž>fÚènïs°uS‡ƒf×d‡×{êk§WùÕZ4jU‹Z[×ù£³ýYžBÖÊO’pË þ>žÂ"¶•N>õÂoÊpxÜ­ßï9~ì·‘ÚPÄœáøžt«ßâ©Ç„ëÒƆâþÒÒô±lìðÒlü-åU\vÓlg€¼¹ÙÕ~¥F¿rP^‰÷éWZä•SÍk.wQkM!PïËS^õ nävîHƒ¨Z‡?¡/%³¨µª~ŽßUã¬Çüœã®r¦ù½Õx|Õžª†jý-yþ¬Ãøº4ãV¸·3jËÊú[2¬î*Å©Vëo w1~yFÄ^—QÔßèè‘î*á$Y ߪ¡»ßôƒ‚šQ0V¿¤êM Æ:ÓªÓøó†ä ɔᷞ֗Scâïù·CãÚú€²ÜE …§ ð7šB õöÇãTôgúb´°ê¯s¬¼¤f`å"¦ #¤¿Å$·Ÿ&¹«< žjæwR•~oú³6Þoi…§´|j•ñ¶C³¤ò7%¾žÇ%?¥á²,(˜ƒÅÙNùZò£|ª8öŒË%ò²»Õê)­hÕ;÷„:$7VnÚœYR»1/f–f1v7Oq­Çíp·Öv[f·¶{½­‹‹jæ×ûð”Ô·z*ªF:±N®Zí\©U •ŠÒÊÑ9}°÷Œn÷ˆõåí^±¾bjÕƒdµë+«ŠP jFW·÷Àµª‘÷z¨¢Gõ ^pë½§É(XúνD-ÆUÍåºAFÌ*c‚ê:Ž9dLALã˜×ˆé¼¤¤¹xÄØn‹ÜõúëYU=·µ¦Z_\”€W‰ážQäW<£Ú…b÷Û< £ývÏh=ž¯Çó9nÖãL ‘ ðpô=©µÆƒ} ªŠœ‚§¢ªwéî+«Ò^r¯NÃT›¦Vùò±÷›2Æ¡Þ„Çø[êjõq¯JokÉ(©«Æ´•¢J‰? =„…z@b£>Ѩï/Ðhß‚‚¿¥Ú_­iÕ¼jc:;ü4Ö3¯û4eê_”[Ýã`¬M,[Æ:]Â06ª¨âˆE|Y5?$K8F^çÁ¥º7ž¶Fu˜ê¼—ÚœiÀ–¨e6Øœ¡‹¤ß–ša°ùÃú¢CüèÞÞW_’¦ Ku5Þ(­ UÀw;üvŒ(ó´Gj€§ƒK%úXð³CÕ«>¡wSÞA“=+°³èƒ6z²à²?"£¤›?··#âÉ“­úaõqˆ£ýÎÃñÜՌʎà]ž ÒNûäôñ臃>1Éù &6U·žðOËÎéc=3a„[[­Ü€Ÿ—5â”êAwN TÄ_Äüw¤mÂÉþ]›ÂÐ#§´Z-ò×’x‘]äù³˜Áu´©´[+¤Ú?䮣­Zœ:êQÚ ŠBZ¢Ì‡â»Õûh·)œ¦‰výþJV4Ú­hÁqÐ^Ða ?˜&‚ O=µkPo3Y”ÍÁ{´^hÔ«³C~1¥h3i·ùôÝû°€ñT÷ß2‘1EuZ:¾ ˜fÃWÁ3ºâþÆ„ˆI§ÊŸQÔé˜ÒéÞ?‹ÖJé–T:ëL´žÔ}¥þŽÇiDˆn†þ‹ÓôàG:šF»Ôhá¡5Ð.0_[NtÔÔmÁXXÝ!ú€,0:ߥNB»KhÁïXø Ú¤m'¯8F»Ä±`4:ô>0œx4HÒœ´KE¤Œ nRŸCß@9l°Nù,ä¿ÆØÞ¢]f3ú¿úÛÀ ÃÏ÷Òœÿ–‡ô3G} ß´vøãðL‘¡©„ ~~8U®¦µ:ØÅŠù¸™v€›Cº4‡üïP;)Í<Іž‰ú" Q×âÉ<* a5ô-š~©30ç2Ú Ú†õ35ÄpŽ,[Σ©æ÷`P·FÛæƒAT«þB3þ Êù”a¾‘2¬oQ†ÖSÈ<ƒ‰gŠ›—Á†3ÅS? ßQpZßk½¦gL±”aéEê!|&ƽþžmÚ à}ZAðgñ6]&Þ.‚FA§7hU ñh°M=H—i©´^||+Dzâ!ô: ·’bh©ø…R”NÚf®×¿ë7L0ôÖàvCóð>~ËÄßÅF2æw'û©Qž§mLðgè"5ÊÌÛ´`§,›ö0èk›øõ÷PšrèúejŸQšÖüçÀ³N³”b~ÿíÏqnW„ôrP6„ü–ÓQ·Sº©ƒŸ‰º{ÒJÿYTÂbh5©µT¯®À\ÝM…ʧ´@™`èX¥ƒÆˆ'¨‡²ïèsZ ê¨V, þåb&ö³)¨û™A‘ÑmÄÐ~4Z|L½r¹Ô¯¨²gÜåäR†Òh¥ûY3Ø¢ŸÚV¢“G•)¿a|¤ÎFìäÐxFl;˜'‚(ßnwñP£ö@ß#V øN°Fí‰r ˜ªÕj8ÊQ Úˆí÷(Wëÿë=ØiÄ>)È1”'Áý¨û8‚œÃÈ>NNýÅËÈCÞ/3¸—2ÜۥЕÊE†.?Ò¥J™¯7è9ˆZóõRÎ9D×3ú™ÆùB×-úÙÌùBþLN6ò€ë¨‡<ïñŒ+ø &mpn«mÈMøÆyÙµHWs,¾ç©™è*Ó$šišÔõ3Ÿ‰Áfý,T~1Οe]¯é{+Ÿ[]ojûiŸ[]〉4Σ#-ÏuÍä³$8Bocœ!Ó¨Ô8Œ}»ëV]MxRú¾nª¢uúù¢µqö×x±N`>^ƒ³¯êÝ9 ”g±ŒÇ5³±­ ³2€¶(‚ÇÀJeì+ûqs [1×*SU¬¹', ^Z -Cûj¼ÿéj2©š® ±$˜†Ï4‚|¸ïÓ=´Åt Õë(ŒwióÒßõÅD[OÑó>H‹tŒ÷YF÷ïsqˆexG=I=-w¬5ÏÅwò» Ú‹Ü Û˜_Ò­Fž¢'Þw Ež–õ1­ÀÜBçhpm]® å8>=Á½îÒÁ»Æ|YÊIîóCsEÏ»d±sv;rî\܇ç‹vÚÌC½´ÐìA¾S„ò,J4­Eì(ø„ÎU¿Fþ2>ˆó}¹´:€ˆ3\qœÿZž‹>·Þ¾~(<æD ò¼Dýœ8ý Gÿ£”j˜{È©*p¦ñؤŸkêh ´xJ0+kšG³´18Çz…Ϊþ ÷¯ç™‘cèçL2Ùô³.´7'©¯SºÖ…8önÌÅmÚ@ã mz“¶™ºPG6S%bO‚˜Û›1¶§á_ <­"ø³~6ã}'©‹po!0WïÐQn6å&z\G½Ÿ.3 >ÀÜ®¡ã ]­§•8 fa÷Öç4xXŸß¦ËézÄ6éq©xGëA¶ÔP,[y€–‚ƒRµdä|ÉX!UI(âLØ+ZÕ“bÊv”s”%8C€zù$°Œ¢ëN±ŸÕ“ôÄ©5·.+•¥¸§¥4U¹”¦€fÅ‹}Õ‹ø8òƒÆW}Ý–ƒ`™æ§sµ³œ¤ùà,qˆ6ªƒi£ g’ g“åG€sÃ2’Õ|íÕÁߟ-¦Û)ß´›Êp¿„¶ùÚ>Ì£H<“X‘FîTÿ ‡rt!žE6ü õ;œÕ;°~Ãß;Poò´4*±Ä^qûûǘãÑÔ]ÛB³”°/£Ù ó#]}:„Ö¨älC° ÁÜŽ¤±`hÀ À¹ L6(À³ÙLÉêÅØ—`?ÜM™ê\ŒãžA åbn”ªÐdŒgØ Àl04cÞù³óu~7¾^z|ýþh|XcÅOÈ!üTªÜGg+ïQ†r'æÈ‡4 çòåâ"Où‚Ê¡åÊ«tŽx„j@Õÿ¤­²òÄ÷Ô_™L#•ÌËq§£M9õSò(]9}•¡ï?[¯=XªÆR¡iÀYjJ i_Pž£ 4ÆtÜ ^¢ž¦ÕT_„³]ÏçÆZ'ÐXĦ[žÃû:‰sý$5 Ì ùj€5„wÅ×}`Š>ŸMŸSÍDƒÍoÐ<¼ûZå8ò¿“dÕó =ÐÏLsöâJš¦%Ð8¬¹Áõà9ƒHÚk‰Ã¥Ú&Ðæ<üí6‡zÂTw‡réþ°$1f­4—Hs±4-Ò\$ÍiVK³Jš ¥Y)ÍÒ¬f¹4ˤi–f©4K¤9_šÅÒœ'Í"iJ³@šs¥™/Í“æSi>‘æci>’æˆ4‡¥ùPš¤y_š¿Kóž4ïJó7iþ*Í;Ò¼-Í[Ò¼)ÍÒ¼.ÍkÒ¼*Í+Ò¼,ÍKÒ¼(Í Ò·ÅrËH®9‚e87Æ’Ç2”eË`îlË@îeK–~ÜY.K_n—ÃÒ‡%›¥7KK/–žÜu&K÷ÙƒÅÃ’Î]§±¸¹‹%•¥;K ‹“¥[ ÛH2KR ÛDH"KãYâ8ËÃÍ×,QŒd‰` çkvK_³²XXÌäIS ¹¢±¨T¸$XÈdé2ªˆN.dù…å_û™K?±üÈòË÷¤JÈ¿Iï¸ô-Ë7,_󵯸ô%Ëq–c|íŸ,_pðs–£,ÿ`ùŒ«|Ê¥O¸ô1—>b9Âr˜¯}Èòßgù;Ë{,ïr•¿qé¯,ïϼHœy‹åM¾Áò:Ëk,¯r•WX^æàK,/²¼ÀòÃò4ËS,‡XþÂ5ŸäÒ,Yçk±<ÊÁGXfyˆåA–®y€K°ÜϲŸe_ !$Lƒ´³øYö²ìa¹e7K˽ì×âîån–»øÚ,w°ÜÎrË­,»Xv²ìàÎná^¶³ÜÌ×nb¹‘eË Ü`+—®g¹Že _»–{¹†åj¾vË•,W°lfÙÄ57r©•eËz–u,—âk!—âgC.eYˆŸ¹„åâ@¼ÒˆÇf,. ĬaYÍÍWq» YVâë!pó,ËY–±4³,eYÂ]7qóóYâë çqg‹¸æB–,ç²Ìg™Çíæ²4òÈæpó–z®YÇ2›¥–¥†eËL¾é<²é,Óø¦§r×ÕüEU,çðp§ðù¸—J– –É,å8/dR Nÿ†‰8}zOÄ­…”âr ã¹J)˸@òQÂ¥±,c8Xˆ[) Ä­ƒâ.‚âZ £1ųY¼,ù,£18ßÅY\ˆ®†Œ`ˆÖ§Æ0–¼@ôÈÐ@tdH z*d0_Ä20Ý2€köDë7Ö/­¯Í\–¾Ü<‡¿¡K6wÖ›%‹;ëÅÒ“%“%#­?¥,î3ûLãÎÜÜ‹‹%•ÛugIaq²tcI8f@’ޙĀc$%ž%Ž%–%†Ds£X"Y"X¹¦kÚ8Æbe±°˜¹¦‰kjTYÁBÞ`Ôl—NWT«3ªÞuþpüŒØOˆý~߃!þø×¾AùkðøGüø'®}òçà(øø,²Ñõiä\×'àcð8‚Øaè‡àð>ʇ¾Þ8×õND×Ûз"¸ÞŒÈt½^‡-"Ûõ*x¼Œë/!öbÄB× ðÏÃ?ÿlÄ|×3ó\OGÌu=Ñè:„¶AO‚'€7x¿GÃÏw=Þäz8|‰ë¡ð¥®A8€øà~\Ûkû €và{í¸öØWºî³¯rí¶¯vµÙ׸î÷€»Á]àNp‡=Çu;ô6p+Úì‚î´ŸëÚ üvp3üMèëFôµ }Ý€ØVp=¸lׂkÐîjôw•m‚ëJÛD×¶F×fÛ®M¶»\—©®KÕ<×Z‘çºÄ×⻸­Åw‘oµoMÛjŸ}µ°¯v®.]}áê¶Õï­ö–™m«|+}¶­ô]à[î[Ѷܷ¬­Ù§5Ç5/mVÿÕ,ÚšEa³è×,jv4»›Õð¥¾&ß’¶&5Mjjiò7i#üM‡›j¶ŽàÁ}MÎÔb¨wUS„£ø|ßy¾ÅmçùÍYè›aÍËkôÍmkôÍÉ«÷5´Õûêòfûjój|³òføf¶ÍðMÏ›ê›Ö6ÕWWå;õ§äUú|m•¾Š¼rßä¶rßļ ¾ ˆ—å•úÆ·•úÆåõ•´õÉ+öá–)Å‘âNQú&¤`$ä£û9½ÎÃί9ý΃N5&ª›«›’•, &&‹ó’/J¾2YJz%Iñ&eõ)ŽJ|%ñÃįµXobVßbJp$¸ÔxýÞÊ*‹ Í/dí?ظײOfqT¼ˆŠwÅ+E®xAч£¿ŽVãw¼âP¢¢DTT0JñF¡zT¤+RÑ#Uodÿ¡ÅQ®EÿŒP¼ˆè=ö ŸTYewÙ_¾}¢]ñÚó Š½öœ~Ť ·$ÕŠºûE¼«X}DèÿçY qU{eEvvi‡•&—ú­“¦ùÅzF…þÛ[>Õo^ï'ßÔiUíB\QÝ.”‚Jœþ¨7Ê—mÞLÝG—ú»WTÔ;»®.õ·èÞë5|P÷„*ÕÙ3—4/ÉÎ^:¿f.Yšmü $šõR¶Ô–,EYÿ×l”)û?~¸dÖ|–†bK³ÿWÄÿîáÿÿði'ý¿9;¨\JõÊZp ¸´€‹À°¬‚•à°,Ë@3X –€óÁbpX‚à\0ÌsA#˜@=¨³A­ñª¨Wf™`˜¦© TsÀà• Lå`˜&€20”‚q Œc@1(… Œg/È£ÀY`$†ƒa  CÀ`0 @Ð䂾 ôÙ 7Ƚ@O 2@àé ¸ ¤‚î 8A7 ’@"Hñ Ä‚  D‚ìÀ€X€˜€vv¿U ˆêb¢ t‚“àpü ~?‚À÷à_à;ð-ø| ¾_‚ãàø'ø|Ž‚€ÏÀ§àð1ø‡Á‡àð>ø;x¼ þþ Þoƒ·À›à ð:x ¼ ^/ƒ—À‹àðEï#%>žûê,Cš¾;xBT™â(ž&ÈOœ˜¸7Q¥ŽàÑ}Qýz_TH# ýa_¸¡G÷Ù¡áð´ˆe6Çd“òóEnöãõï7#CÞ|tèîãE•5.-9)=Ο–˜œgíf ·˜L–p«ö®t¤ÿ—¦ÁãÚQSÅROZåí—„áÄ90–¸8 $.£ˆKÂâ:”Þ07õ£ÌÔÐÀSC‡ÓýRxjhà©#û°Q²È DUx:Dv»i åÏÇ+çÁ¿9CÞ„8ãZõUô×—ªèo];:îÚ¶\óÖÆÂq[>Ørå››‹îï9í†Å‹o˜••9ukÓù7Îì¥\¿ýdû¬sîüaç¶{gM¹ã»{=ºqB妇›n,«¼ò¼…³‚'̇ñFRã¾Ì‘b@Gð'o=\ŒÏ r­ºé•+2F$C¤'é&+]$¹u“Ó_äô9=DŽG Ü{²§Ÿ]é>9Æg¼‘ü˜Äaùùxøˆìò_F¤ªßWOáQ¥ËÌ2D¿ÇD1Pðô•.!Ál1­Õ)Y©®ì”H­ëå„Ù-ËÖ'%Jíº×,¢3Ý®±Ex„ˆSÃâ2RSÒâÂT‘¥ˆîª9ÖÓ=Õã¦ÌÈè0M ‹ŽT_;™+½Ö–Ø-RS­‘ö_iÃíQVM³FÙyZaƒ7EvKÔÿëÌ~ÁêxB¹ÔÏÛ=+Wdõ™I"3QôL½HdMöØ£»OŽ–÷¾™oQè÷Šû*N»ÛS·(ÔO"L1Yéîñv­ëp×û¦ðø©i™Q¦QÛµ7ÜâèåIÍL°™E‚ˆ3ÙbÓ»»zFká]þQ Ý¢LªÕ¦¨aáÕÕ-A©PòœQšj‰°v¥ˆO¬ˆG::ŸÒïg„þß•`çÊ¢níéÑ"sŸ³<¼g‡èÙnªÄ\€ŸþýŒ”–ž9XŸ~CEšœˆiâãõMHÀ©[´°ˆ°N­›[µÅD(¾Î€-R²‘6åU§K³EGvîQVDÇŒuÆXÝžŒˆ„dW¼z§5Ú‡ ÁåîéHî–wrfº>®mxÎ;ÕçimñFÅ8°Zbõ_ùƒDïX}Yayņ–Wlh_ˆ í ±¡åÛ!~ò:SíÔµ;"ô_¨m·¡Š]_´v\?@^}'Iut³×–3®wr’äñ¦ñüòô•(7Ë0Ì`üÉ~Úž¢/D³%úw›L<¿×xu§5Ɣ쎱&õ-é7jU!ŠÉIîX‹9&%1¡»Ã2~kÙÔ Ç§%[íú”³[•¨²™…=ª|eD½ïTUÃìÖ徉gÍÙP£ïMÛº¶¨oá õ¦³¨å~lyiCl¡'a = ½¼?Ê!ÆÛBĦ?’Äøl7*eë»Wv’~9[ÙŠÍö_ìKlÇufw¹Ë%W«].I‰ZÑ\‘)JIQZŽ ­B[EɲåÊvÚØ.%Ò6Y4HÊu§FÒ^R @9$A=4Ä0’؉ -Ðß¡6zhím¹4?¹´hRDTß,—´ªIÚ®ÛrÉ7óÞ›ÙÙyoÞO‰\¶‘á.Æ[.‡fÔ´4? è%ˉLëàÆ8ö›·o©$ATROámôPóázÄâd·›D,ú·ƒËOëÙ3©·(ÄéR\dvî@ÿÒw÷¼ì<¤kãúTxσ©ñ{“ø½³o~ûÉ?¨Ž[¢hÞ½ÐÄêè¸f¿sqmï#¹1%’¨>}ðÈXî<±§›ëÔuÐV]×…Xf"3Ÿ¹¹˜±Lš*›4U6iÕ$ù,K1iÉìí¤Ç¿×}ÁD0!¨Ä¦TbN*11•اJLL½ _¡Íë6’µøù+ëMJˆþ!iû@Þ/]>#ÓI9)»Ç~7©Z"3îwkІÀ±.ŽÆbG¥u ¬ð($Ó„]Cûniž©g†Z eMšu™bf –º>xìÑ}ñÃ{ãnÃÚ9{ßÄ¡]½{jXß¿x@GZN8š¦9ËûGÒ±^=âêÑêa,î]™ µ¶yœAŸÒ!qª¦:#Ý¡¡Ÿ¿oüÐØp6½Sp¸$¡Õ-ɉs{ÜJ ÞîÑü½c_!gѵù!ušy íF÷½Ar ßÔy¿yýæYô›y´ß´Þ~b½B[Kÿz`ÚÛ²Þ6=ð:f.q†ÂÖ¯g¬é%qí§µ¨ÅÔLb­¡ŽÁá†Q-”NÙi˜#¡©ÓVI‹DÛ¦rº÷[­‹µÅú0§Ô|÷«À3ŽÖw’÷´;V oa¾æõK"ÏvgÊû(Q *2wƒHÈ‘;” Vµ=ÎÛx‹ØNä~rs~–~bÚº"™=L,(L,(lùÂqÆ0±#ˆÀ_Fº öã3µâ3µýG†S„¨ÅW÷rŸi£äßò:¯ô§Ãv‹'÷}Eœ3bšaXõò¢aR£[«¤áZ’ºåÀ²QcŒ$ úYÎáuµyevî)#tqN­ØÚ›Ž?´—súÀŸ|#¢}sqߨÉÇ–(=ŒmüiþxªûÈ"µVçýD æ“_`ÄÐ#º¬ ŠÏE‰:îŠâvî2 Cí¸ÍÜ]g¹1¨ÞKŠArÏ»xÄŽí‰ý‰øöx$M’sZnÄ÷Ñ ÙGcÄT%àdÆ›4Ýn§™¬iz›d­(·’uʪ„};«ßºÉØ]þNo·ŒyÜ^ý‹+aÍpÚ˜k¿†èS½ÝН~¼ST ÍÙ9œ¯>m_ÁÏ‹J C³6®z ÏCG3vgkõÑ¢ýyÐM-¼TväLª8¢âv½I"ŽˆT˜Ç$àìîÀž]DsìK{lJÚ–aæQ†ÈM8ˆI “>xwÑ5Y“J(õ×P£þRȉ»ÝNŽ<Ç$:4™bÏó]ý‘U îØáwòŒéXÙ¯ue¶úš$[§ˆG‡¾ÏÕ.B5ÒÚ²¥n(v x$¹’×Mú êCw½$Ä-´àÙDÚŒñ{xŠï†Z„zÅ3Ý ž@]²dÌZ"áµ£q3o-IBfEBœÛ,IÀ£o²VѺqÃ¥2Vц¿W½ )¤J¡»,p„W]Ã?°¶ð씢Ê\g—_t»=õ®nЬè–5±½­CÚxŠ“TT¿ðÝÿÅðÖíê—w>Ðïÿ=0W·òKÞ&4¡ ÿ{ÀVþ}À}ÿýb` Ý>°O}y–jÙ¹ ¼ß„&4¡ MhBšÐ„&|9@ùr'\NDŒÚXÊf|:ƒîÀ+¶Ï|j¬‚€öÂ[ŸxÌÀÇOã× ìçøøWw¢Øÿ¡‹Aç í@؆ ¥Ñ<:ŒŽ ¯¢Ut•Aßk ñ77aÎvcçÈØæ7?A^Ô…º±{°‡°Ž÷á…Ï1/ús÷&¢—ór{8ôW êk'ð1§‘ˆ7qðçLœüEçÐÃø*ñ†'kRIǨ“zÆÄ)$RWLœþÏLœümgß0qØíA/ %P^#€Í¡ZF%T=Ñ Ð•†R€•@s¤Í§Ø*ŠÂÈ$Z—†€w‚±²Aå¡ÏÃì³Ðæ`f î[9KÀ+ÀŒ‚1/}î"35˜¡AŸ‡u Æå *ÜŠñÜP§¡/¡ûWlܳýè‰J²£Uc-² -U0ö@ž°¬A•g®7fî ¸E‚e Ö`´bHIfG_Ðñøˆ6WX.ËÅ-U,)–²•Bq5ªM®¬h …“§*em!_Î—ÎæsÑý3³™©T_*»RX*>‹2;­PÖò…Ê©|IËj¥üÉB¹’/åsZ¥”ÍåOgK÷kE2²…<±ý~´ÂªËh‹«… ܰ’­äËZv5ƒŠÆ–‹k«•R!_ŽÞ³ÙfÐ,„Ò)X«ïSF´`˜ÊpÈ¡ÖÌuìÿÖhÍËdÑK#^  ÊÆ`Úñ£OŒ]ïÄùŸüpýxëØŸ‘Çj„©~pÞÈQ?¹û]þ“j™¿Ì=$_Ïä`À¹B endstream endobj 105 0 obj << /Filter /FlateDecode /Length 10036 /Length1 24752 >> stream hÞäšy\ÔÕþÿߟef`fÙ‡e``PvQÜDT„Ipq­LBÑ´4ÛÔK™­¶ší˵r˜Ì(­¬lÏê–íËm±ÅвýfÊ|_çóžQ4ï÷ö»ßû{|ÿø¯yžó>Ëçœ÷yÎ9S’DDZC MšXŸ_xƦ¥?Âò>Ôܺ¨¥-"Ó¾¨ÑG$_Ûºl©Óý}þt"i8‘î§ymóÝòÕè{‰ Dáý柾bÞˆw6 ¶ÙâÌm™óIÓ¶ÏÑÕYè¯d –ݦ‘(+G>}Á¢¥gÝwí-§!¿€È~áé‹[[¨´ìt¢±ý‘_¿¨å¬6;É/¡}#ê;ÏhY4×s~Ü:¢i¨¯~Û¶xÉRŒ?ÓªDy[ûÜ6û“ÿ¸“(õ¢è4RÔ yé(Lw®£Nf*¯Ò#2…‘l5ÈŠª*²z3ÉßyÈy6jëNÂï爵zIÚc¸Iv;‰¶ˆ2e·.BXn¦[`½VQKضá×G]ä§h;ÖŒó¡\7í¦ôø0Vs'í¢Gé1¬ãn¬ì“šMXBù^“?Ÿ¢=ô4=CÏÒsô<"ãEz‰öÒËôÊ¿UòôQ‹È½J£×kûè z“Þ¢wè=úþNÑ'ˆºoþPþ6j¼‹:k}ŒZŸÑÔìAM®ÇuÞ×J¿Ôz؇¶Ñ~)Œ~–dúH‰ÕÛ¤­ÐuÚ:ŠÕ«s»æg±Û+t×ѵ¹>¾ë)r"}}p5îGÝ.x0ä¿“{íåàê°¿w¡Žð…(ÙôųÁ•ýeñGKœ(qIéRF°,Fk´m jÄö©;@*–ã3[Ê“ò‘(Kƒ¤ÁR),¹È"?eG{*gÍœ1}ÚÔ¦FoCýäºI'ÔŽ¯W]5¶²¢|ÌèQž²‘#†Z:dpÉ ü¼ÜœþîŒtWZJ\”Ýfµ˜Œáa½ŽD9®Êf§ÏÝìSÝ®ªª\‘wµÀÐÒÇÐìsÂTy|Ÿ³Y«æ<¾¦5çPÓÃ5=GkJ6çpž›ã¬p9}{Ë]Înij]#ÒÊ]MN_–®ÕÒª[ËXIME gEÜ‚r§OjvVø*—-è¬h.G]&ãט¹ÆÜê2š4!åëïjë’ú”´„Ü¿bhŽ[‹x¬Oɨh™ã›T×XQîHMmÒl4Fë˧ã3h}9Š1ÓÅήœÝ—tÛhvs¶yŽkNËôFŸÒ‚FJEgç:Ÿ=Û7ÀUî°r¦<×—ã*¯ðe»ÐYÍä£|º ›ËÙù3að®žoŽ·´-ú ÛÏ$’bŠGÝ„òPš06ŒóKMc¹¸ÛC³‘ñ­©k伓f;üäÉÏnòÉÍ¢dw¨$Ú+JÖ„JŽ6ov¥Š¥ªhþ-[ç[3Û™›ïkøC¹Ó§¸›g·.l™Ûé*/g¿54ú<åHxZ‚s­è*ÈGý–fLb¡pC]£/ßÕæ‹ræ 08Å,¬oÔš›ù¢Æøpß ¶òåW”‹q9+:›Ëy€¢/W]ãÃTø¨«Øéx ˆŠ©IŒÃ3‹â®èlœ3Ï—Ò옃øœçlt¤ú<®S]p€ÁÞN>NYø"ø`´ËY*R2ðæÂ&£Í$V1Îé£IÎF×\W“ 1ä™Ô(æ&|­­oM½«¦nj£¶ÚÁ(i8.ÇåC8ç£T‡2òÄ`e¶#´¬Z~¬–?š­:¡¸:Tìì sÕÔwŠÎ]Áɉ7“Ö»«[.YŒW³»›«²Åå´9+;[ºkfwvy\Õs:]õÃÚX'7®r¬Ф©¦atnöžÑ].i}]—GZ_?µñaÜ[ëý²$iÝÔ•Ž²Æ‡q½÷hVYX…Qdœ"#zšŒL˜Vßñ°‡hVªj-ßÚ-‘f Ù$jí–Ùf ÙdØT¶y4›øÁ"Å-€‹±ÝV8çˆå9§iAgs“x¹(K‰?É'¹F’Ovì’d½ÙgtÍí3¹F {™°—±]/ìÎ=8GìIÍ.ìS¨FrHŠŠèÒÙ44¦îuô4¥"Ô¦CS}áÙØûuãPo¬P3Ìc}kZ[Ä8ÈÛ(Ú2ª[›¶¡Q¥ÚŽƒ= F¥ÖF„#µbm°€Zû5ÈøÖ4ùš²ÅC6iálóQ•k(–ûԹŃò›:#]…Ú»‰WÁ˜±N c£úF¶8ÅÚØI3FÞêBQk³ÞV©µ¡Î{©ÑÁ–¹ØU÷\MFG°Ä´” “Åè ÏC‡øiSžx%u†¦&¼–[¬€gÛ|&ŒÈÝÇ•ÁðŠªÅXð·CUŸÝÔuÓd×YØYÄ µž (öY2ª[°ùs{,®!¡Æab0ûØÃVƒ˜¹~W2ºw¹V¤öùÉÍq‰ÃA&9F`SSç‰ß´ìÜœ°­ÍÜÙf9yöW˜å(aÄk"þžl<û°µ·%ü+aéû£¶¨ÇrÒ+°¼ƒïRúâÀëBê9´ANO&‰6hJ"«òm€Êúp8T y¡Ž }ƒr/ÚÄSõd†]h ¾§Ñ9-0tƒåP4š­= JVŸG½;I‘ï lS›1VH™­©]93˜^FÑêjÚ ïEß'Q*´&ýKµ³ÐÏ$u4žéV!}Ò¬S•ç0wV ä:šÿ…Ì}¥+¥Kþ¬ÔcðPö‰RPªÚŸl'JyŠ‚JTÇ’ñÏJ·1ð‰:„Ö*/ÒÔ“I½œÖBç©w’[HÙˆº)=HgPIPT´¯UÑîFj<‰Öjz‚Še­•mf0l€FAõÐ\èlØã u1ê-$’nQuh ɇ5]¤X8­˜)G¦µú*”?{]½KÞ©ý,}bùú…ÔaËYS•Å4&( ÒÍŸM(,H‡z/]ø§5ˆúNÊ>Qª ¿ï%Ó´‘F£ñG{‚ŸÄ¦I_ÄRkhµÒDUA ë“®2¬‚¨JÁBÝõhTCãUû3’×S¼þIЧxõå>éÅ'è¼´ëwœ çNPÐ~\ýZŠ»ºOß_+ÓÅUAñ†™8wœ(m®Ôjµ&°Em ü&ýJ§I¿ÎÀVh0´ Z-= Z­*tš:”ÎM÷‚Z¤¼Ÿ%ê@…òer"E)-´Z¾xÖqjÕx(°Ic-Öã_i*Kÿ˜¶v¡~jä·i5+ð8EHÕ¬@¤P^·¥¶Ñ¹²õŸ¡XùKHðMrèl8C¶ý9é<kè„úÿ9aœ+NÐÌ“Ø4)ÏSŒîr(å>ìM/àÝ8QyT”¢±æá]õ*wÐ$ùq*‘¦©r9 ‡ÊÏÒPéUJ”oÄ^ô;M•VÒDéÂÀ;òn¤—a/8uƒ~¦R­hCàP.B;´‘ï@ì9È)ßÝ ß ÅÞ7ûÙ…ÐÍâÔ>Ü }*/øƒí¥ë½O¹A³] Í9Á¶ š+FþRè h“f? Z Ô!o…Aë5û_ EJ òc¡34Û-ÐJ% ùD(]³Ý m‘·`<·Awk¶O eÜ1ä'¡Q÷SÜ7¢¡ ­wšÃV µˤña?2FH^DóÀfy­F¯,Ó|9't_ ´‹;Æ´AÝBÙ|‡èÝ,Î4¾/ô®g3ßz¯ÄÝ`¢vØM ¡ó^9Hµ|†¬¢8·•'iœ8ƒù¼ì­ÔÃwâ<Õ/£å8ç«uí½?ò™X¦…‘Øç#(•ϲÞn±·ò¹Õû¬ú yùÜêõጚ¬GÉd;Ê•4…Ï’ÀXÑF;CVÒí<ÐöíÞu‚ºöuÝÛt†ú1êX­>‚=UhÞÓÉ4Yyã†ç”{°gCòWäÁû¼ZÓtÜG6’*£Éã« $m_Ù¾±(O#Ö£q.$SùÑ=áVrª#iŽ:*•QxÏÓIV[iiPK þºki4TŽø ×}AËtáÉÑÖRU~ÒÖºDN§UG5ï„´õl§KµõìjÖh6ûÜÇëï¡¡Ê{4R7eAïƒÄ]/tßÒ…‘ÑEFm±®†œ>÷8#¯³¸§†î^j …iú û ¼Ö¸knÐPïRª5ä¢Sµû¬Yß Û"h"|3‘&&"}-yp>˜uV(íEl$Òz-6RƒŠõÞ¡Á¡ûP2Ör Þ½qªeAï8õâþ¢šaj!E‹—ƒw’· k‚±"î]¡{Ä›+„õNÀøµxA|¬U/ƒ ©N{‘~“ÖOœî-0í?§Ê·¸¿¬×êŒS;) õ“àGÒÁsOGœÿði±õ3öõ7ƒ:ˆ˜™ECÔ»±_‰ó®Ï®û ÷»Si¨º±·”Úƒgà2q®‰~„p‡‰Ò—P¤îAŽcýÔàYU U;Ï´;†8g’)\œuG÷æß°fói´Ø»ÕsQw<ʾ¤½}MB~9bÒÏÏRÎÅz¯¡qz=Ò‡qOZøMœÍê(²+·bnA!V¯’o Ï¡„”i T/¤©ëó t¹2“)^ªÀºÅj1=ˆn–]´J×EçÀvšfk4'xÏÓ´9ä'ÐßtOˆˆ«&èš•6’•2œM{¥6å°´ùDäGà0LH9øYÈ0’.è+Ø~Ã<¯:úέÆ8VS‹|m†¦àL*ÊM´j•—ÓÐÜVO÷æÃÔ µ@§¨ÏÑd¬Ù¤“¡RéCœ­çÓ öÝ2¢°Qü£ åLý}t“öÊ…º§¨P÷öˆGáóÃø®²ƒ†ÃîDºœ¬6Òx¤ïÊ‘éVÄE4ÒIÊß)WÙ‚ó÷x‡·P¤Ó¢Ò°™Ø+S¢¡ ±<˜—äq_ûõÒìÿÉÊ|Góû1ÊW=T‹ôXôY ]5B^(j† :h41Ü(ßßßLuÊEøþú:ÞãNš¥¼Lx2”}ØŸÞÇ>¹÷è-ðÅšÕCb¼³¡ h,4Dèã+ÿÓãK?Ùø”|Ąޒäí4Röá>ÒC.ÙOcäý¸Ãm¦<ä‡#]"¿…¸yU»«ÔHÏR-4öÒçz>ÚfÈmT /E»|O?•Ê+)KnAŸS²|âüÏÖ{;§äÐÝ:è*hLS¡+ C8o„6Ó0Ý×З4LoÀ®‹Ê‘.×µQŽî ÄÃj*ÕC•†¬Éa*†C PTL׉ƒæAWÄ6”¯;€ïˆ¥”¦ßŽ÷pã=®ò.çÞa¼Íx‹ñ&ã Æ>ÆëŒ×c¼Êx…ñ2b/ã%Æ‹Œø±ÏsÍçÏ2ža<ÍØÃxŠñ$ã ÆnÆãÜçcŒGÙ¸‹±“ñãaF7ã!ÆƃŒíŒ~F—?±ð1¶ù‹€û÷1îeleüÕŸ8¸‡q7·»‹q'ãÆíŒÛ·ró[73¶0nblfÜÈ]ßÀ¸ž›_Ǹ–q cãjnwãJƌ˗162.å®7póK3:a¬çëk1.d\À8ßï(Îc¬aœËXÍXÅ8‡q6c%cã,ÆrÆ2Fc)c £q&£±ØŸ08ƒ±ˆq:ã4Æ©Œ…ŒŒùŒyŒ¹Œ9ŒVÆlF £™1‹1“1ƒ111•Ñä 42¦0Nax ŒzÆdFcc"c£–1žQÃǨfT1Æ2*ŒrÆÆhÆ(†‡QÆÉÁÎÆÊ(õÇ•Cƒ%ŒAŒbF£1QÀÈgä1r9ŒlFc£?#“áfdøc‡é —?VDrš?v(ÊF'#…‘ÌHb$2ŒF<#ŽˈaDó¢ø ýØɰ3l +#‚aa˜&†‘Î}†1 lÔ3t •¡0d†Ä R€ÑË8Â8ÌøqˆñãŒ_µÇJ¿h3’~fãOŒ?0¾gd|Çø–ÑÃø†ñ5ã+ÆÆ—Œ/øyŸûc\ÀgŒýþD–ô)ãÌàcÆGþ˜1Àßý1åÀ‡Œïûc*€÷ü1•À»Œwos×o1ÞäÎÞàÎö1^g¼ÆýÛ½Êx…ñ2c/ã%Æ‹ÜîîúyÆs<øgÏðóžöÇŒöpƒ§øAOò¨ŸàÎv3g<Æx”±‹±“ñwý0wÝÍ]?Ä]ï`<ÈØÎz€ágtñc}ŒmŒû¹ëû÷2¶2þʸÇ WºÛ= ¸‹q§?º¸Ã=¸Ý=¸Í=¸Õíná*7s•-\å&®²™Ënäš7pîz®yãZnp c“?zp57¿Šq%ã Òå\ó2®¹‘q©?ºØÀ5/a\ÌèôG5ñG5ëýQÓuþ¨ÀZÔ8à"Ô4àB.»€kžÏUÎólZ+R¾‹¨JùÈôô.ôVámè-è1èQh´zÚ Ïßhž^Þ^é·‹_ÁÎ9‹±œ±ŒÑÁÃÍ~Åð0Ê##xÊÑŒ(F?ÆÙüØz^ÙÉüô:Æ$ÆDÆF-c<£†1ŽQͨbŒeT2*åŒ4F*ÐÉHa$3’‰ #ψã9Ä2b<7€G ÃÐïÐ!è7,â? _¡_ Ÿ¡Ÿ ±r?@ßC_@ŸCŸAû¡O¡O ±‚{¡— ¡ ç¡ç g¡g §¡=ÐSP7ôVuô ´zºA[áUìãs ýö<`c>ûcc.c£•1›ÑÂhfÌbÌdÌ`LgLcLe41S§0¼ŒF>#}œËÈad3²ý™ 7#ƒ%ábè*CaÈ ‰_7òÜ  ^èKxôMè hô:ôô7èUèèexøaè"%#åB%/å)/åüª5Þó¶®ñž[µÊ»zë*¯iÕ°U5«Ó*pöª­«Þ[¥?§j¥÷ì­+½êʨ•²qEÕrïY[—{MË%ó²ªoCÇþŽŸ:”¨Ž†Ž9K;®ê؃áöŽí{:”îÀnOdÇa•k:.ë£P.S‡dæÔSDåÒªvï’­í^µ½¸]¶¿]zµ]’í’§}R»ŒZ´§÷¯µí1 •Ôîl/hWάZìmÛºØ{FÕ"ï+‹¤Ó0•S1¥…yó½ ¶Î÷ÎË›ã»uŽ·5o¶·%¯Ù;+o†wæÖÞéyS½Ó¶Nõ6å5z§ þ)y ^ïÖo}^wòÖ:ïļ Þ °×æÕxÇo­ñŽË«òVo­òNª’ÆæUz+”’J‘(mÉk’&«¦æ¤¶$¹-飤ƒIJ[âÁDù\‡dM87ac‚bŇÌñ)ñã·Äo‹×Yµ„bn‹\)·Ùרå»Çþªý#»Jö›í²u£u‹u›U™heýΰªÛ¬Ò¶ˆÇ#^‰ð4+#fE,ŽP¬¢Ø<y+­–K¾Ežo)³L´(-’Ç’WX鱤gV–™'šg™•-fÉcv¨üÎ0Ê# ¾ „Ëp‰É)I$Ù% ^Þ.E§T*»$ñolt$I—u5Ôgg×t“k|ᓦù¤õ¾Œzñé©›êÓ¯÷‘wê´Æ.Iº´©K’Ç4ø¢Ä?¸ÓòmØ@I£k|Iõ~åæ›“F7ÕøÖˆ´Ç£¥"M¨Ò”=sIÇ’%K³—dãš¹–¥øÓ áìX*J–.!TÉþ'?KXK:fu -23—,½vd‹œxÂÿÝéÿòäÿWâfÍ$ñJQïå=])d Rª¥ Ô°‹,ÒfŠ¥¡Ò‹ÛËËÃr !+“Sz‘Âð nöôSe‹ÃQ椿D©³W—.‘¨ìȇ<ƒ½‘¥ù{¥üzÞì±yÆ^šß³¯g`dOµkŠŠ ½Þ•–'Êt—Ž”»]i²f+.E-ÿ}—üeiãÈtý ‹IÖ…‡mîŸ>0qDÅjÑE8b aöcVUË‘ë2bÆØŒ„Ä ÑWÆ‘aðHlàú”.ŠÒÈM‹íÆÛø0¥¾Ün²Jã]Ý/=É"•a¶¸â,#EĸMFWš‘œªK²»Ü8=É™¥HÅlÎLJw¹’–r¥Å"“&Gzu^Š+++‹Œ-b/²Ã³³fÎ(J¨í)”âógÎHˆÛ[X´jÝž=RÜž™389°û‘ãøa<(ÿ“§ ,ÈÎnʈ‰áuËTR Š+Íí.,ñbÅ\JªÚeÖÇ XTšlV§ô&LV-Iƒ²óŠ£ôfi£ÞæY4¬2Ó®RzHZ<;=+Z§„Û,’z$¢ŸIÕÇf¹ÔsìÑ&E1Åô{æÈ»Øï'¾VÍ:¢òbö­?‘²“Ÿ¥Š“Z(•ÜÁ)ºÅ•ª_½ŠûÒCƒ â„©@ܹ<á§`> µG²÷õ”‰ ±9vý» ,hʈŠàà-Ž,)ÁÔõÑÁ8•,‹€.QÍŠÞS6­£ü¢77Mj¼éƒ‹JæxËF½¢#­yÕs+kWxsò§œ][9¯:ßb4‡©{â]ñ‘±é©1“oûéÖ;$ºjd’Û™èNLÎJ0»²]ew.h¿ëôA©ýaqÙâߢn R.Áû›C>öRWBf·|…ÇÞÏÙÏIá”gÁ|‘ˆùî°Hµn·>¾;8õx\=á–ºLmÖ™âêèÑ7h³îÉ.ëÉFd÷dKùù‘¥¥ùù6 Žÿ‰.Ù•²+5Í=È^\R” —i®LµŸÄôŒÖð#ËRssSåµáFì-”Ö…[EÚÞ»BzM¤çãE7eæ¨ r2ñ™ÉxÝM½{L±ØÜ±ÆÞ+Mq™Âceè2ƒªigè%_ó`zaz¡Ù!þ;=™óvJ¹4˜ŒRîû`üÆ Mn8nÕó(‡n@}Œ6¿q/÷èN Í~êɶ³³lˆ¸}=šçz´°Ëûu çIvjh{ä}4OÌŸ–zå’ñçßß:fIã°“ gEMZ\]0~PbAíì³k *:¶4åMŸ42Ê “ƒÅd*¨œ>8Û“?q΂9 ¤ ç]?¿8&%-a`^JV‚)µjlÖHwNÙÀì‚Þ¥u36ÌÈ‹ˆKŽŠˆu%$õO0'¦:¢3Š“²¹| ünR¾B¤¦‘7©¤ï–¯z ή ù!_}¶{’êÌÚN$f^(åï9²Þëúok…<’jöÔÐá¡ÑWZ ì²$¹ÝEÉ–Þ]F$£r™õÖ¤ñæß{Œ6£^µŸ9~@RrV¼ÉŸEØëÇ"j–)oQy¤Áý(<¶¸[ž¶23ih·\á±Ù•XéÇX)¶Û\,.–ŠÅׄp³E_\œ7* _z=ŽÒ$eUÚ†4Ù“6)­9M±¦¥¤Éf5-MMê|ä‰0c~Iq6©6éPÞ¸â GfÄ~¹V¥¸üÐK”Í»óŒ³fôˆ:{Æ™=3ÎÄ·§T¼¥¥p˜Çú¿<íG†Û=hPðÈëQ„8•ø#U¿ÑŽÔ˜¢Â’Áʲ¨ì¬ÜöÁN»|JÁˆÛ—O±gŽ*(k_d3ÙMzcbåÌÅÃ^ÝœókóˆSJâÇ– jÊK‰° ¶ˆ±ÃFgTŸ^5aIMzIVYVTbZbD‚;6%=É•Üo€wíôw#Ó‹R‡xJŠÅºÖ`]_Ò- ^JW×Õä(Ý)‹ëQ¾Üî1öK­4•f:Ôˆ¬PüÁwÕžð¸qÅÚ«ZŒÜvOD­n|(Å&[Z&Ž›àR„ÿ»}„¶I᩾>,Œ‰µßühÅíî{ø V^2Æ Hvö7U\3}Þ†¦þE³¯˜U³r¸)© #£ Ñ|¨¤µdàØìèÈåÅ ‹Jœi&«QUVSë¸É×>кü±µU#†IŸm&½Þd3).¯8yî !§ÖZÓ÷»èj¼Í;umTL³ÙkÓ@¹/·Ÿ¸SÈ;ÈÍ1vËy"<“fÒõ¯N¬´ç–‰ ›#fŠpÁE±p¿p“édÕú¸ S:öz‡fo^A¢£ôIЉQvš’ û(J4ô¾eÖ¦œdQ ‹JèÎ(J1[­½¿KyfS*ö*®"oöö7ò‰bÔ¹Bs?ü½ÔjŽÔ¬&kZ¿Þ·{s£’‚ó ûA!ÜͲúíÄÔ“É$ÏòS²­;pð“Tk .^#[·Të1yrÇeŧWLJ&Yª­v¶8(l="V&ÛÿS˾b×^,½á^ŠÖ.+ˆ•×̉Ó3&šû¥—º f yƘ0 Å™kw]ý´Uµii!OHGF”T9æÈ¶E9'”š?iÒðù-ì y§¶;¶½á¶vËÍ3%X)Æ|£bQŒ˜˜—±[ª÷=ÙãÜÖhgu´6,³6l"Øïƒ~0þëúÇBmC9ÙĵèÐË;Õ0‹1,*>92:+Ó?aÚ®‘C†$Z’q&*+5éy FC˜Áž><çȾ?N|qá(·U1„ÍÑY˜}uà€üf_MŽÝ(òŽÞ(Ê=x+Ô<)oÿ`“Q2~aìË;Ø9XV´k€u¸„›ÀAC» ì×€q16±SãKƒMùÁ£«å‹ü¼ ÌÐ.³fdÛzfà︋†ÇùÿùiÿÆýCþ¡tÁ¥õ…Óª bÌj˜9Ü”íñ–¤ ÊŒÊQ[W;"£p溆¬‰žœ~aª¢ÌaáîÒš‚´B§Í=rbÝÄ‘n)yüÒ ™ÖظèÜœ$W´!>9!"¡Br¶31-Ç3µÌsÚø,sd´ÕëH‹2DÇEG$¸¢R²œ‰©9ž&¬RlàùRµ‹†Ò•¼JÙí–aÈ•+þ¬%7´5çvK)üûVóÓDÅßnKZ¾[ƒÖL¬iHk&’h©|C$EŽ¢ »……²KvBŒÞ<Ùƒ‰ñ„Q\¼¨ ‰Æ‹‰‚n&^ˆRßL§ •!qwó›ùÍ›7oÞξ™i&ÛpW¨,/(£çÛ5]—è¹øu‰.П®ÑŸÆ—ÇßÇé®Ç‚¶ñ0FrsØ‹\Ü/óÛd>†ùúWÑý1'ûªÃ±–`¯Þu~Ò a9á åæö;¨ÿrôj€ÔVIŸ§èÞŘ¿Âç‰ÜœK «±–P}w׸¢"\ãV¼5õ¡–Øæíîn©D’Î\àÿ\kÝ qápp½) î(<»CªwààäQÇ ïG_(í8”ÝØ‰òµÂPyÖ8pàÀ Ò/Ÿð €‹2ñxD/;Sp¹Õˆà>:àìU%ˆ,­Û!˰t–— óÂÂixÔSx¹aÓ:¨ÄØðB’Ѓp dñIÐÁ ìluö¬Ë.g?g¿‚m<…%AŠ…:!$D/×¾•ë-=e«XÊÛŽ Ü»À/ÌsîFþŒsò%Î%x ¬ÒYইŠØÁ¹Añ9ç"”‹8wADü¹ù爸çè«@šðnFÖŒâø8B¤ÁFY™ Ó,•Q¢!Ó!Š5 ÈàM …²1Ç:‹•TÌUÔžÅTAÍ$¶Ë ÎÊ4ÔИžŠ¹­¨&A ‚¹Švh­Í¤´5An²7§Âæ&¾AÂ|ɵٽ6ýOÏB=Ò™-ê !,iÌÚÿ 2™•,Ö§ŽÒ÷ÀØö£XšÁZ›=%ÕŽ.’xSS3é×FMÃ2Ò6Iæ´aʶfèQ’ÈdHJ·-’R-ÕœU•è@O_og{CRÎh#¦ÖØfd”ÂDœÍ"ªf«&‘‰©Ži–­šªBlSVÔ)Ùœ$­ÙVLïîÑt‚fÈ®ÙØ~ЖmÕ"²®ÄЀÁ:5ftÛÔT+z"Q4=нЉ³¹á¯˜J±È™A ý4¡ {ΠţÔúo#<·»ex‰ëÉ „ˆ«i î”…®=ìëeú­åÄú·‡w*ZBm1[Ò^¯ßÿHó·mß½¿*6­’5é ;å»þ»;Ìp endstream endobj 108 0 obj << /Length 2917 /Filter /FlateDecode >> stream xÚÅ\mÛ¸þ¾¿ÂÈ—xÓ.¤HJ: zצí-®¸r¸Z[»«Æ+»²góë;|%y-Ûâ¨)îÅ2%?â<óh4C–Îftö×+ê>¿»½úæ3ÆH*%ŸÝÞÏbÿr"„œÝ.g¿Î*žŠUV­ž¯•œÿñú†K:¯s»q¿^­Ö×\Î÷Eù`‡òk&石§ÍÊ³ÛæÛëßoøæHº'bID¢8y˜óÜfÛ¶Çõ'EDIJ9¬(·už--ôúþ°HIBE÷»£¸”ˆD5‡}«¹bÀ ^þr{õøBá6ƒyJÏb&ÌDOWz\A’$žðÿ*ŸÝ_ýËóÚà4ß{`±T]°_§³%ìûaFI”&³½9ò þ³Ð«ÙO€|d:1Q*:…`O_"(’ q ‚ˆÂ?‚!¹$Ô< ÉÂÍî—Û cRDIdìi1Ðò 5,¿¾eÁòÃä%3CáXF~=I1Ḛ̀Š)`2«¬W¯^}¿†´¸Ú-êuEàëyõHATŠ ^-Z=£¡†ÕÓ·,X=‚¼Ç'`(ë„z$`&®¾;ž‘Qáê¼Þ'±@F«­·ÑPÃzë[¬7 A^#0ŽuBoB‘(²rÓZ"E¹ÙÕ[²Ì!Y¯r-±×?¿¾LHPµÇ 2pµh!†Rß²`!aòΟ€¡p¬B‚".Šåi%=_¨$–$ŠpJj1ÐJ 5¬¤¾eÁJÂä½?CáX'”¤—8ùi!e¯Ýn¡³«¬¬ßÞV»ü2qQUB‚W‹×h¨aqõ- † /ˆ  Ç:!.F‰PÝ0µÞÕ/äõþ²8%SARŽ‹S ¬”ÆC JéÀ²P)¡jÜ?CáXÃR’iB$;£¤_.TRÜ(\Pê` •4jXI}Ë‚•„!È{†Â±—+eÌÌjÊù-Úù£¡†ß·,Øù‚¼Ã&`(ëÄr¥Œ‘izùreþ9_ìê¼)ÿ/[””2.‘¦Å@‹l4Ô°Èú–‹ CÆ …c¸W)N`¶‹’Op«ÊmmZôÆv÷d7Ö÷{\ ~Éú¥1a÷¤·ƒÚh¨a¡õ- † /Ž  Ç:!4I‰JÒNVôÞ*è­“˜úùæãÙ~dç%IÂDŒ“T‹–Ôh¨aIõ- –† /ƒ  Ç:!) %ŽDGR¿ô$Åß8ë’#±š¦I¨Å ìÒ©L=B œïBL£õõ8*èEnŠþTº•é[ÓÔ–Fö>t¬± ÂS¾±,;ÖT–B–å(¶0ÓÜ/#ÙÁOºm.[ír»³~ÌÜû+>/×Í@¹Xí–ùÒ¥µ=x0à*B;ªoªÎg¬j7¦Ÿë\߀¿æ³M{¹þÿ'ݰ—Wׂêö¾ˆjèÂtÐÌn ;ˆ!;¸ÑZÂ=ìîN\Òù"+íÆØæµÝXU¾¨WÏM oÔ“;Ö¨‰™Ù¸¾û7œìŠà2½m-)¾KÐ|nª¢¬{“0ûkŒT£4²´Øñ*ßîV†WøRlÏ7Šrì(žæÚï€^ü"‰IÌ%ââ¿áüŘFsñæb° 1'PT£nò ìM~<ÔàMþÀ²Ð›<Š ï¯  Çzy“÷)ˆß‰ ￵7v(Ϧ†BA¾Éq©a­šÑPêé[¬ AÞÓ0Ž5¬¸+qær„/N5œ±ó·¥ÝZ°ÐÛ ˆ“ ^€pÁí |Þ¹c¹8š BL¬&ªIe„+—äÀ&×7ŒR:ÿ{éS‰¯¹Îš¬`_Ôvë*þ•‡ï×e II ß±†În t‰˜hÏ#égD)î³Mw4J‰’>Z´`z.ñ|½1?4Û÷ÍàPNbþŒÁÐc'äàAÅü M¿µA]æCñ2w_Ûl*vIµÙ\tØ1Y•ÛÝÖd¹z‚ëæØ§›ŠÂ538ÈEíúçM:Ç©?lúLUg‡´Éa‡^…«8§ÙÇ®8þ¶JšÎýòèøÍß*ñÞÐïËp5ß?‹ÇfzËb‘Õ†#3í¬>0ÀÑc\Õ5ÂÏÎ|š ,5Òtz@©"ápac£ÝÉæ† \$¿Ë3-ëO…9%ŒèÇJ4‚9˜#¢De+†b½s?î¼í£ÛÂxÞ,—v_QÛŸ7'Úç«ÕÍvWÔ¹;ÀÊŽx™‚7?yÌ-ÍúšéZW›.5·ŸY·êpµÉº‚,~³.—y¹È›2¥Þçyù²LØ´×µ5A¶bjv3CDMwI8uy‡+*.LéW[ª,§)%µ™“UÅ6·£…ÚTZ‘ 7ºwÆ k$Œ툩n`HWw[;TæùÒÆ\GÂgð}a×d—ͺ*Õt•Sc\—m_ E fsµš2[=ÑX×WìC®½r-¥Ö˜„*ó¶XûXïï(E—™BšPU,óêhðƒ8ãì|-!¼½ÜÜu¦'÷—y•­Š/Ç_>K)‰Ó¨ ÿ§óðšLm–°-–3Á '¢OZVÝu•U®þ-wOwyÕ¯HíŠ÷ùÊR³!ÅD•e,0•à "LeyÂùT1&•ÍÅ`eÉEBdŠ«,;Øa<Ô`p`Yh€"Èûk†Â±†ß@ã’'_ý 4)¢"\eÚÁ@«n4Ô°êú–«CWÊ …c ‡.à®ÃpÎo1ÐÎ 5ìü¾eÁÎÇä6CáX'Z:¸m–³þo qÆIÌN~-Z~£¡†å×·,X~‚¼d&`(kø)gŠDͲXÀhœB#ƒW‹VÏh¨aõô- V† ïñ  Ç:¡ˆa‘L¾âh,IHÂpѪƒÕÛx¨A½Xª7AF¦`(kXo,åDÐ3¯ }nÞ÷°«o_g›M^./k®f±"‰ÂųZ_£¡†õÕ·,X_‚¼&&`(넾J„ˆÏôé¹PJ EŠ U-ZJ£¡†¥Ô·,XJ‚¼û'`(k°¨cÌ‘8ß{´ëÇ" {¾gV°ãäx_áÙ †:QÍ1©LËÿ¶AŸ JR¬¼Z ´¾FC ¬oY°Â0y]LÀP8Ö‰»”¦—æ+4è3žŠû{-Zfc‘†UÖ3+Xdr¼.ðìCPXÄMßM›}iÚ¨M<ëÇ>!IÌ}»ÖÝË Çb’F>è5ÑŽ|>›IéUºŸAÉhšçf°Àçf!9ý7ïÎ<7»áüs3Ä4ZÉŒäâ²~lF)Išç§ÿ\›GÜ*mš$Tâ:TêÌÃØÆ·©tl0˜cìÛ‰?o׎hÒk×ì¦eiñ]“™ÇÑ®™”™7Ç›FS44êÄms¸-2u@ù¥ŸÐ—úô»ÊôˆÀL…rÏòáû¢Ê³†šÌ­Š­;ÈþITÝ› ÿÚ”:ì ñí ¾­Äö4xǘeeÊ9 ¤p±¸%&{Áµö_fc\" endstream endobj 111 0 obj << /Length 3243 /Filter /FlateDecode >> stream xÚÅœßsœºÇßýWì¤±ïØŠ~! 3÷¥MÒé}ëÔ3$7ãÁ»Ø¦ÙØëø¿¯„„@ëÕ.è0íCb–_tÎùp$@¼z\áÕß.°ùû—Û‹Ÿ#¾"¥QDW·«$EQ”®bJçÑêv³úvyû”_ÝÐ(¾|¨¶ÛêŠF—/Eù¨V‰ËüŠD—?³ÝóÖì³oò«ï·¿}øÌ“±.a 1JäiµdÖüø¨÷sÏ/w‹ä³[[iÑMþ;Æ´Ìõ93½òåŠà˪þ!71Ý*³¾hŸôŽEù¼oÓöºÚmXÂ¥¥NÃ>mF<ýn׿TOÅÚœë1/óúŠâËuôꆥ)b‚¬nˆÒú°¬Í»æ`m¾¬³r#ÛÕ-eÛyóQêt+þPFeÛ}þg%yAdÔˆŒÚ§Û‹ÿ\¨cù3QþŠW1ÆÓtµÞ]¨õœs”$ñJú\þ_竇‹ب÷:ýoG,ŽÄXìÛw¼ÚÈm¿­0bi²zéöÜÉZz»ú§T>Ò†(‰O)èãñ[RΧ(p– BèˆFw†7#¢ ¢];fú¢÷®ã ÑJ$ Â1ïCDQš¤0_„ÞDf¤áoÑÔÍñy¾Ô‘VéXXÖÇeªm}´@ê㵄‡Âµº„J0Y¥(Tt Õø(%H˜,°ÞfMcsѰ+ãr1u2Ñï8Âϯû¶Ø÷èE&»‡mõ‚Ô&¹…œÎ t±±HaÐ `èfKù¡s- †â Ê ×ògÁ üAüÙRþà»–â °<®u$ã,;ÿ8–b±ô»N&›üáH¡ aÂú„swW”E{w§rN“oä'’#¬_²ú±é—ùñ²i&¦žˆ"Š}ƒ˜¾ÙR~ú\Ë‚éƒ8ȳ€‡Âµ:ú¤ˆ¼qHp*µ"§†¾wïÞýµ*›¶Þ¯ÛªFòçyz8F4æ®ALÏl)?=®eÁô@d#¾€‡ÂµNÐÃJ¸†çøðÍÊVçqSF¤Àd5h€q›-åÇ͵,7ˆƒ," x(\ënŒÈÛeÛ‚ é'h“˱z+ÆÞy?$"ãÀÄ5h€Iš-å'ɵ,˜$ˆƒlôðP¸Ö ’ˆ\GÓIÕ¾}ƒÒ׉(ÉK€IiУ4[Ê’kY0JÙð/à¡p-ïÍ[”RĤ þ|)oð, >ÈA}À–ðP¸Ö‰›·(òÞ,~÷–ÿÌ×û6ï‡CÓîÑ¢#Ç0È 0d³¥ü¹–Cqc…kù;«(á >ºGÛÉ®*׃çöÉ,4û^¨¶˜AÒ”Û¹H$(¢Àl6h€A›-å͵,4ˆƒ, x(\ëh1EGE_5A¿ê´æ¦@¡˜ÚÇàEÙÉ}$F)£ý>*éí²ö ÉÛêîS úò!FX%ÂI£­((À\8h€-åGÔµ,Qˆƒ,V x(\Ë?Úâ ÌOƒ8ø³¥üÁw- >ÄA6` x(\ëm~².’>‘Çu¹äcŸ™º?Ý<•P¦¥F‘ˆ€)dÐS4[ÊO‘kY0EÙÈ/à¡p- ¡Ų#ж”?ø®eÁÁ‡8Èl…ké6iûÛB9¢‰É!ºº¸(×¹^,ýw½¯ë¼l·¯úgVö››½ÙSÏ^RK»|WÕfÇmžýhúc6VÞbŒhe¶úð\Õ­^¯_¸ìëÏ\8A10x 0¼³¥üðº–à qn…k€—PÄsá­ ±•$vÝöÈõ ˆ-ÊÕD¶ºØ]^·[³]ÒÙô»fF1ë¯þ|÷æw·YQæ÷æš8‡3OŠSX.i@qž/åÅùÀ²PœAê\ÂCáZ'pÆòÀØÍÅj WVºÇ¬¾ÏóðíVžoº!žNœOÕ~»9äñAfórÝyÿz@ý¾ÉkÔ¯Û7×o/ŠºÚÈ|\T†åêá<Ç G ƒ¥å‘˜ãÙR~Ž]Ë‚9†8Ȳ·€‡Âµüó$AœR‡ãü®K£´ý¶-vY›o_¯=c‚·@W/†¿ìl7Û´½®vÏUS´ù(‹ŸPð˜¢$fàALîl)?¹®eÁäBdi[ÀCáZÞj ÄEl^LÜ™Žt[ýíûy€F)¦¾A Ðl)?@®eÁAdƒ¾€‡Âµ¼÷Òœ'(…=G$À¡Ÿ«ä¼cVpà᱂{'XÊ?IžG´û|¤ËUí{éi¿*޽? A‡÷:åÔYù˜äòÔ”ß$Œ§½=å,–‰`˜`NgKùAu- &â Ë× ×:òR˼¡ç#ÍèìÓ›§ÆŸ&?5æÊ[ÀŽÎJ€!š«ägÈ1+!€slÔáÞ –:Á”Ü$¡ìù9/Õ(þ4ÂÁÀ4h€é™-åÇǵ,˜ˆƒlÔðP¸Ö „ˆ@"%æÅU?iõ§“‹>Ùˆ_ÏÓ„ ‚ögVÌÒ\%?JŽYÁ$œcƒ÷N°”w°Í’‘öaêH÷ùRÞÀXyƒúx-á¡p-ï­:K)Š“B^œÌñöË™…ÉCLj2Øç§# 0Z³¥üh¹–£qÅa…kùÑJ0J¨ùæùe›n\óq8"B4æ¤A Îl)?8®eÁà@dƒ½€‡ÂµüϘHäøÆ$¥çúø@š¢$IÆ7î]^úò«¹?Ë™zÒÀAÉè‘ ¨nÆH,°náTêfLP8_7ÐŒ‡™¾ÀçkÓÄtÅÔ ¼™Hú÷R—IÑ/¥ÕÒ¨Íõ±Z/qŠ¢aƼ¿Ô C<¶„ªûçë¶/ÛRçza]çY«ÞvkK³°®Ê²{—hZVõ-<^'•Qç“jâ¼iîKݘ?º »lÏù’1L^@£y0ò­V(øŒ"vúÓãsàŸW˜~x3,ø3]á–“»i€»ÀÙRþ.е,¸ „8Ȇk…kùÇNjjZ´Ì}w}Åx©~n ½Ü¥BCêCMP˜p¹‡7cˆùL_LëçhÒ½T•_cDos¬#á ‰ýbâç±>D¨¢¸ßCOì$ýWv\ªÂÚã¾îú.fú.¹E?‘5Àa·ëÝ·EÓª¢h,2½¡ÜTš]šç|]d[óãµl³Ÿú þìežoò«[”›b-»X]M-ŠeO)ÜbjOCÑ7§ÿëºà¢*ßtÙ®‘šÛÓ¾äyy²“¦²÷%']›"<†3® <ÂË‘Œ¿~¤¬'^¬n¨9$„È9èÆ£2}Ç  ÝÄT£²Ëž‰ÊE Pf&)1œ^®ÕUFÔ|¦Ò«ÔŒ(õ· «ò¨r§Z¡B§vªõ©µ™QÒôj­ÆlÒd Õ 35ÙUmÖ£µå‡*ñ×ê^Í!zæ`w°Š+#Ö¿«5äd± ‰z¬.ÃKØ6 ˆ˜èJ€Ý* M<†¦ß Î¢vîÊú™‘Þø[›OMÅarÇϪ•U­·:Q¹FôƒTu®Ìœä>×§Ø7V½Ò³¦©äcàÇ®E›¬U×\J¶¥ì²¸’W’^ܪ}ÝÄžVï|_gåú©+?(©oùÔŽFéH)E]JË8‹Mþ‘{–”«Üòr…4¦ÑÒÆb¹n0§û)­!$À(ÍUò“ä˜ À96öpïK Gr¿øLN™‘Lq³gÙ$®RŒ8pŽì åj¶’—+׬P® ÎéaXÀ;ÁR~®RŽ0&ç°RÙéYr½…«oîá+¢fÞÉ»É#ž˜9.D8ÇH ÿ E®E– endstream endobj 115 0 obj << /Length 3002 /Filter /FlateDecode >> stream xÚÅÛnG†ïý„…¥Àîô¹{ 軈´ÉE‚dì…×0‰Š K¤–¤,+‹¼ûÖœz¦)6É®êì°9šþìúëcuÍAc>ùmÂ'/x÷*àUÀë¿a‰Ã1ñŠUÆLœðÌ?¹º{Q¯—¬òÕDˆfÛj6¹yñó~ gìXãý>¹†m?L8S•Ÿ<6{ÞÕ{·š·“Œ$ Hí•e•ÖÛ‘iå™òèØŒ4ŒÇ#Ê7ÈHÏd<´Cx­tò9XÅ-ùƒ9ùÙRéäÇ‘¡“O1($¬€Cx­¿^¾øö\p1©Xe¥\ÞL×Ì;$q¦«ÉåõäýÉõìæôÃåßžk?ÚS*Æ…ÉfŸÙ×ÙÕÃfö/nøzv{¯âmý¦ûw—ϳ•†ŒÐ ÌHƒÊX¾T’±­È°Œ‘ ê¹(á^kcR2Ï+óÌ(Ót?]¯ãÁ‚ŠV”Fd`²¥ÒÀÄ‘¡¡’\À!¼VrF²N0®ˆÕbÐ '?[*ü82tò)…„p¯µ£Z4³R·Åâê¶«[s’‚êd«~Nºœ®?ŸËzJºzØÌo翲ÇåêóÍíò‘ÕÛŽœ¤LŸ—4ì 2vÙRiìâÈÐØQ ¨p¯•®9Ú1!-ùƒ9ùÙRéäÇ‘¡“O1($¬€Cx­=]°5œ9¡oƒ?~œ/æ›û>øõé#øÉ7ÓÕoë~ù›Ï×ë#k2L8bí4ÈøeK¥ñ‹#CãG1( SÀ!¼Vƒ_„TèÁgºƒ°—/_þm¹XoVW›åŠÁ‡é6¥ ¯AƒLO¶Tšž824=ƒBÆ 8„×ÚC´ðªº£« Ë*W‡yƒ‘IK¬Vƒ™·l©4oqdhÞ(F 8„×ÚÛ€9¶4¼Õ0±ùâþa³f×3h×WÍ©¡Wï^½> %SULqZéiPQÊ—J¢´%’A}úK8„×Úƒ‡×J@éËôöÕq0yÇ”4˜ 2LÙRi˜âÈÐ0Q p¯•†ÉTœUj\—–›]…©ïƸ½;/g`d–†× AÆ+[*W/ŠA‰áµöàå<Ä£áU«]„Áúã ³ŠiM¬aƒ²l©4dqdhÈ(0 8„×Jž…2F0í‰fÐ '?[*ü82tò)…„p¯µç,”1¥“òÅX£*f±Â dȲ¥ÒÅ‘¡!£À(à^kÏÅX£¸â2.Æé˜qĪ4hÉ–JG††bPHr‡ðZé)IF<Õ3HSŸ«”Î|:ñsB®èî ¥ÒWa¨˜ä.÷*ìõ"¬áŠYkh¼ dಥÒÄÅ‘¡‘£@)à^+Ykt%˜£5&ƒ5õÙJÉÌÇaaO1§ÏUwÐR{ú^]&+÷»úª])§‘™¼l©4zqdhö(b 8„×JŸØÑ`»‚ãwìÕWm£Ý¬Èäd ¥¹Ç„¦oLÈ3Ù¬Ò^œ` ùÿw×[µ1Ìkb}4È”eK¥9‹#C“F1(RÀ!¼ÖÞLÅ´û/’}íO:O¯6óåâìÕÝôþ¸‹fZ+æÁ.\ƒ®l©4\qdh¸( 8„×Ú—vL;»®'<\ †¡4 ®Aƒ W¶T®824\ƒÂkíKf¤8pÉì÷#QðŽX§ 2JÙRi”âÈÐ(Q é/à^+}f€{Æ%±Ž äägK¥“G†N>Å °áµö €­ø“¯‹©Ê2nif¤Ae,_*ÉØVdXÆHõ\”p¯•ž«TU1kÌè,ÀÌT³¶ïÙ|êÖwíÂòfkK×6sÂ@y þÓŠÙHƒ Z¶T´824hƒÂkíÍ;æF-Ñï-?gíËþ8Œ“LŸÖ0Ò ã“-•Æ'Ž Å òáµö\¿WÎ0§»Bu³\¥&CÝO†ŸgOí>±ž„ȰÓ|±CG8Æ•íwihýzÄÅ °áµÒÕDk&û‡>*“0`K|âÃHƒŒV¶T­824ZƒÂk¥ÑR’Éþlz}]ssq8Â2G|ŠÃHƒ N¶Tœ8248ƒB² 8„×Jÿò¤l®­vEé~5_lv]¤­˜÷¾¿¸Z£õòû‹úå»¶zýeý²[Øuñš{9\á]oV»¯ÞVJŽ? )|Ó³WÓp?/4Wg¢ûáÝÙðpœºë:«ÏŠþï^äq` bÊ ÷~@aöÞM`%ü›Hé`ƒX:­t›ŒÃ1fïI¾öýü¹BOúA…žþççèa dfzÁ·þßThé• ?ðõžÝ݉ryê†õçá·|G;+θVÑÖE»_,ª*(½¢ßoº¸Þ%V5œˆŸÜ|Xl=¿»¿…ciùÉÝô¾]Ø|šÍWíb{Ñ­^¶¯ýÄé¥ùÉå°s·~0ÕÉt5k×^-‹ÙÕfv«lOëÛ½ê!NÞøÒ:˜]ÞÍ´¶ý­štãÛ(F±h˜â˜/v†Ì™ö¦ßíu­èiˆv=k×5Ÿx*NÖÝ.M°Ëú=¬jFk®V³é¦{×´]u=on⟮žN­9©Ýáªv§ÝÚzÓ¾¡¾Ç­ýäy÷IWÍMqÓúý]¼ë· ƒ°–‰ÑS9H…a$†, ÂVL‰ŠPŽP8\Ãè C¶ÉC(a4Ä'|Œ4¨íJ¾T²]ÙŠ Û® ù*à^+Ùç 㘳ÝS‡~º¯¿ÜëÃwy ݱ¤u¸# 22ÙRidâÈÐÈP i.à^kÇ]^Ý ùBæûǃlÝÁ íåÛv±ï,¡¯ìÖÈ?Oà·WªÐt1ˆa§ hD¸¢ô‘G(1]à‡òŸëÅ}¤¯À¤k͸ìú¡—«»éímÓ^JhbàU¸®qEr¿\uKóͧvs}3ýŽöIXɸ0ÃÑÎr5KöOvèŸvHÙæ[Øw¨÷÷³¾I•4ØâCÃ6ºÇv<ª–°nŸº)Ý!$a䣼j;§:ê«éb±Ü´qÿ:k×ÍN¥9ùRÿ3½}˜6­h½z~Óî. sòÔ®\Þ´-©¬“ÎÄ-ió[ u_×·sŠËÆñu»zÔëÖ[ên±^=ïöœw»µ¬7,ºw'¨>vö2„ =çõÓÎÁœÅÕGúOmýÉß—uÔålu M{°©­<—ØgXÄUEÉ”0hÜýþo}{úÊ7f˜&]­d|ˆ³3Lß·áÐ%Á¡³ú9‡ñÐ  ) ŒÝHÁ¯vŒ=|¹·ƒ€ö^0 ²oàè…Ûî]ÂEo‚áþ Í±Ý endstream endobj 118 0 obj << /Length 2735 /Filter /FlateDecode >> stream xÚ­\[sÛ¸~÷¯à£4!¸“ÌLÒLÓé>mgݺÓÝ} %:f#KªD¯×ùõ=¸$ÂÎ$á ü€ó€xœ}Ípö·l¹½yÿEðŒT A³Û‡,§ð‡"ÎEv»É~]T»Íò÷ÛŸÞáŰň ºÐSuP…nþz{ó¿wqF 4A„8Éy¶~ºùõwœmàáOF¬,²]ô)cH9œm³_nþaZåWu¡—çM{5Mó- P-§]ÓªuÛìw§åвbQm·û%‹uYÀ’ˆÅ«y¶?Ú›Û­½ñ`Žícmž4»Ãsk‘Ú½¹w_›ëfgß6—»ýnu¬«Å>µU[£åŠá|qpda‹+ìv™ Ë¢³áÔîõ RÌF°Ö®%xÅy© ¯À+œË!Ñ`#ÉÍIÁîC½n~Ø֛wp‡qC¦*ò‡òCµ}®ÏÞhžÛWs¯­¾- ^Ôôá¸2…ˆ‚>žZs±Þïvµk„*UµCð\;©{„uŽ TǺñ߈ýŒ#:ðv-S¼0„uð·ª–‘Pµ¾¯Ç»§çy&K†rx+©+q¤dKövW¢ˆòÜïJÆM)Ï<,´•º V}AÙ4ú½êøê¿ú°?>Õ{n|«^RÝOÝêÝyêèÓþ„³Êô†lU TŸníc*-t²@ç"l¿ÆË,ÏÏܼ,_üÒ<5€¾­Ž T)Êp.Bî%#)„#ñp¨MHõ]Ls‰0™ÌKa"ÉÅ0$¡‹Ö“‚ýàbÕ9uKO†Nã¸ëú­}`=7}‡Á£f dE)RXωKž`ˆçüÇ÷þKAAΈqi`mÁô(b…MEb¹'àÅ?OÍî+Ä]wË\@ÄÿÊe{d^NæAe·Ë’ÂÅ·ÓXƒ0T1@Ú†Ræò… VvDQ7êª}>ÖæB&êøó9ê^@»€'Õ}³mZûª^§Ï'ûôE»«!̾_ÙãzÿtØïê]{òëÛCÇ †V4]Ü>vÍi´ÁÊÂa§:ìO§æ~[nîëu¥6âÙ v®ºƒÊ¶û—1ÁG¹t½¢éè7‡Óóýz[ìM0e¤ª\ Üó·à«Qyƒ<в+eã4%LT Š­¿(ÏéI€°nü³‚±¨~gOͦ¶ÏÍœNöÝ”ÂikÔUæ%À´™Gûú¦V±s§Â ~µiGCô—2÷Œýt¹§„§nTxXŸG±0â…ìŠ}ЋÀ¼‘À¼Ñ‹\…GòL¨¸ }—ºÏ9G„)üçٱΠVuóΧ»öÀr!‡`¡(ˆ-´‰‚#Íú{;޲A HTÂtê Î`Fè†iamHt3-`ôåÓ¹èØõ8·BŸƒq¡ìƒîªl¼ïc0á2ïSWLýºèÛëÌd/ªê5LÒw_GYŸyyÁ§b˜l’Cߎ”Xí#(fŠ”=Xl¤ÄP)SBåe„+be|3\°œÊEpöD‹²ÛD={`¤Îž¦CgOg–ÅΞ’êü5CñXÁU-A#¬´Ñ惙 q±_SxŸÉ™²{`‘ýZ!Éúõ—ûuB3zßNäbtäo„€Ie¢ÿ¤ 6AH» âﻦmªmóÝå«ÿ¼¤jr`ÇézÇ;ì¤áVÍ®TæýŠ”åâ 'sªÜI©öÅÙêÔH=iûç¯ÝEmNÎF,µE½­4 g#s,³ý†âR¯k8laªÔ¬›ÖÜt»—Ö•®tdëƒÞGA¤6Μõ;`Ôî ¨ùÖlG“fóZ}²åtk«n/ÛÞQ5>¼†1íN5hæÉ³ŸÑ©+°ëÉÞoŽ0%4;‘lƒÜVõÜÛÊ0bàõL#áÊ›q¸×µ™-ùK·5O](AÒË[ ˆäHà|ž 3‹ :DæH–"!è\p9è$4£ :“¹N&,ìEâdb€‘:™˜œLœY;™H"Èùk†â±‚“ "¤þÊ”¼³€pŒD™–Ñ9ÀHVÑd¨°Š|Ë¢U”Bóü Åc…Ua]-2Í2tîoL,yb€ê1’¥5*,-ß²hi¥ää0CñXai1ª?WiMËê$j“h!Ó„Óc$ g2TX8¾eÑÂI!È9{†â±ÂÂQ?ËåìÍí*WHs”÷Ÿ â$Ôc$Kh2TXB¾eÑJ!ȹ}†â±ÂÂ…þäåKÈÏÂb%TR”çiA¨‡HÐd¤ ~|³bå“BNçñ؉† ã,ÕBlò'ÎnVtÕGÍ¢Ôÿ5Â,‹ë+rm ¢(–Ö—.¯¬ãÑI`*ç?æ½ñe“aŒ0¥¬¹±ûpI¡½Ü½^þ?~í# endstream endobj 121 0 obj << /Length 3156 /Filter /FlateDecode >> stream xÚÕ\[“£¸~Ÿ_áÚ—¡7i-º!ت~˜¤2©äakSÓ©y˜ê¢mÜMmƒ§ÛóëstºÁm$òš ćÎw>Ž$Äq¼xXÄ‹¿¿‹Íö/·ï~ùÈÙc”qN·ë… ð— ÆøâvµøÝ>W×$cÑÓŽ£êðí8¦ÕáPå4*k}~Yíêæp\6ÅJäæÄ}±®ÅŸ¯®i W$ŽŽ>ÓXìï/ß‹ZcVk]¾¯M}õõöŸ¿|di·•4¦(N¡ù¬ëô-ÉP§¶F¾[ á Ám¥ÓLæ`¦Å«x ;m+Š+Ì£çý¦\–Íæt•ðHÙËí}×”A‹E¶¸Æ ÈM4œ&€Çæzù_±<6eµÓÅŠغzƒN€òU¥¨ƒ½]Õèz_,ËõÉԢ婖a8‡vŽHlœþûgY\¸©+½W÷ÚpDm{XTîʦÌ7åÜ6š™Fkçéê=÷™§²yÔ{Ëj»Š®7åÎ V{‰m»¦õAñC•oºð² e­©µt™]æûü¾Ü”$€¦Z¥4‹šJ¯%‘ùRÖÈ›B—i«`稸‚Úê^Pðûéß T½7X;}öEãáL¾—P\Ô Âptoo6ÚaåîA—ØË•q¿ùtdøÐªõ°½W'h莔áÀž\•‡b)U¨Žœ‡ ^®7B‚RÉ:ç†u€\WýVC­Ô|»ßÀ²î×e{J×mŠÝ õ¸Ìû7‚ÒÔü–¹Ë0"ðGB¿ÃÐ0´¿Ý¾ûÄð/R º‹„bÄÒd±Ü¾“åŒ1”Bè ˆÂÿ‡b±~÷/-Ž=î žtÁ¾|+8†!š¥‹'Us ÿ4ôfñ šÃP"Ø9}}ü!Ac— 0š"ŒÉ‡çfÆéŒv8†9r^;§ µC9JY`j1‚õ3j\A}˼5Bóý ùcQÍ£Ý(”¯VwП·Å®Q:º¾~~o:·UQ77ïå¡Ñ¿ý 7%vLßœöÅðÀ?ÃØVºÚSW£Ü5(X ¬½Õe:‡;§à¹ ·Á:Ÿ 5®ó¾eÞ:!Èis†ü±ÎèœÄDr^ç§¾ÎOÿŸ:—ŒP¦ó#Xç“¡ÆuÞ·Ì[ç!9mÎÀ?ÖcŽ8éÆóêØ¼ü¸lhÀ2¸ ™ŒP)M‡•Ò Ë|¥Duÿ ùc¾¼eiŠbG:ÁΟ 5îü¾eÞÎ!È9l†ü±Î¼ÃeF ¾ünñ,?«(웑Ë^ÔBŒâ$0À´Á› 5®±¾eÞ !Èéb†ü±Æû*&2”pÞyQ»…žªÐC0õ¡‚Ü©[½#?aè1sÞKÞ鲄ÿÁ¬ÅÚd¨q¡õ-óZAN30äuFh‰@¢3$ú¡õsc&‹žõþŸ:E§·UÅ Â<ìÅ[#XU“¡ÆUÕ·Ì[U!9%ÌÀ?ÖøøˆÅˆÄ4Ìù-F°ó'C;¿o™·óCr›!¬×!ÅQ¬g:¤|øÐ 'íw3—ͱTãcH‹,£ÉPã2ê[æ-£‚œëg`Èk\F£”šÐSOF¯W ?›Ë¥…D²ÀÕbKk2Ô¸´ú–yK+„ '‡òÇ—Î`gBÔ“|Û)u£ÓÊI ¥A©ÅVÎd¨qåô-óVNAÎÛ30ä5®œX Œ0«œºhîÌòRA_äzÐ ¶oÊå[óÚ9ºÏW7ìý׋dF3‚h :¡2›5*³–ùÊ,ˆ +9òÇÿ&™f\}o¬?¸9 /€ˆbiÚY‰]ÿ÷¦Äd*MS”e|žÌ„˜gfM3„Ï#¼‘™pÂÛ™ ÍpJ˜ÊE|Qb•Ó~p¸r÷§j+“Sâ4‚î«”!He(Å"ÚTåRŸRÉ1PUTš©4(’oŠ2Ò°Hxù¡ûP^ÍPœ0[O6ß»A›ÛÜ&(}‘´§ÚŒ+’%Ñ?v¶y¥ÁÓÉ8:…çš`ƒBÚÏäQ‰:2߉’1³`jK2÷¨@ØVGï¡À0m¡1ÈÁÆÈyÿóŽÿmgÑe‘%(…±ŠÄŒØä=½ :Ä&Ljen½s[4•ôÚ…°=Ö…)QË3ÝÔ*8Îõf0GO–묷¶â¦¬½§ ä\q…#•à‡uçAåÂÅ4ºmÞHÚeÆ f„^ŸvMþ¬Óæ¶å¶\Öz_yž’8ZW‡mÞèByC¹]åM®÷ö‡Júù{©„*KîOƒ“D£îÍz}ªðú}ˆS–"!\Ž&XÁ ><\ñ(/w2?ÒæÜÉ» d@vêêv¥.ÁZ›ðèÀ{Òœ+1ÒÀýV©dÁLê£,úüXìÆs&U_líI:ŒèCé‡e‘¯ÂWºt}¨¶æ¼|å­w—Õn§SõTd¢RFwúœnع=•›¾Õ½)ÑÚTê8@¢ª\¿€ÔMè&š§£Ó БœÂ¶z×¹ÞìªÝ5î·j7ÈÙEšuâ ÄÆè„ÀM~pÉØ$ů[o­1~ѵqö¢vìbá˜ï÷…Í3ÕY‹Ô}*Ê¢êí¯í‚òý†NF:^'‚¸gËvó‰è?Q©{¢„y¢Òá'*5OôD;[ï ·Ûê` UgÕ½—{îÓþc& r{• ¿ŠÝä á´G®ôìx6ú7¾êxÓ…ñ"¿\:ó`4v(ºyúPSec ûËbäW  üÛ•}²O¦ŠAè䧃¢\ ×ôl¢Š÷‚ÚAÑpØ}™dÍyT/å¾ÑûO…ÞöF*õ^³Îyä2ó¹ ÿC½6†©QŒ/UBšÒ®¾dËå£ÞÕÔriä”àÞï!¨+ìY“Ó=˜q®{m&¤n0Ó>m¿‹P¬~}sN…Œ`Ô7Ïœªæ9§Â0eàTÌ©.@x{NÐ ;§šÌÅèâ†A9ÍÂÖ»;¡oV¦C¾Yya™ï›• ‚œ¿f`ÈkôæÒœ9§00P û>§ƒ,£ÉPã2ê[æ-£‚œëg`Èk\F £˜ü¯§00Èßýv0‚¥5j\Z}˼¥B“à ùcK‹dÈæ‡O]›Â0ˆ‡&… §ÅÎd¨qáô-óNAÎÙ30ä5.ÝcÌ'­M]¶…cŒ¸ŒG-F°¬&C˪o™·¬BrR˜!¬ñµ(s„¯¥¨Ó »x5*êçú™¬ËsÞ4 YŠzàíY“#¬ ¦òðrêÌzc‘‡;6+8S^¶W—ÿ Á ¿> endstream endobj 125 0 obj << /Length 2673 /Filter /FlateDecode >> stream xÚ­[ÝoÛ8Ï_!ô%ö^Ã#)R ÜCoq=`=lûÐ- Å–]Ë+ÉMÓ¿þ†’–)–D£¢HêÇáÌɦÁ}@ƒ_QsýçíÕß?J0FR)yp» b9B·ëàóâö!_ÞpIå¡ÙSÞàµy(j,Õ«ªØ›V¨ûrûëƒA ò¯Û«¿à†Â$!‘2b&ˆˆe°zºRõB’$q’þ¯ò`sõ_'¤Å±÷°XFm°Ï_h°†¶_JÂ4 žuÏ'ø‡ÐÛà7@î'&Q¾…€ÏÓ×I…ƒ „0Æ{0$—„ê‰ÌCò„p-ÇD]XívtdbÊ PÂXˆ“4I O† ôÚ0bX‰Â ›x*RLÆPiY›Œ˜³”‡rœ©üµ3J/|‘)I#©uïÔF#\û?~^ÞHFòìzŽÒ”°_f=·Àf®g…¾pf=@8¿ž=İ–¬ :ÊÅG± !7.þù¡X= ë®ò?) óUS[o¼ÿf <ÈV­Îš“ß–\.²í!w;pFs¬52K@eÈ¥Ç}Á.]áRB×ãYZ[ÙÖJ:¾Ë×Xq÷r"ƒî^Vj¥’çëU}¾drñbº„rß厠 ¸Њˆ´7,ÁQp `eŒ1ÂI¼¼a”ÒãÎx»L9Hùˆwµ"VMYõÎ7!P,eøéx*ŠÛ\=öMɘWÙ}^c5N Ÿ^~oŠmq‡w¿”Oûr—ï¼ýP­Š¬v¨L÷ÏáPâµ>ì÷eÕœ …J X£wv¸f¦'N J–jZ‘\h©É¨ýFDX!ÂYI÷8Ô´×Ùv‹&ªñþPçUmž*±jUåYc÷ÛÃ}±Ã²B5]K[eGV¦7#<ÍC‰K äùëPTÅîÛw8ø6_ß›'‘±§Sz~ȵNãDQëbì$€Ú¬2uŽœdy¦!(CÇFвÊöÙ¯yÁG4¿ïË:72¬Ç%T¹í¨íu“íÖ™&­’ÃÛuØ+Fßl”CAµ}Ôõ=^ Eƒ×Uf:Þåxë˜.Ê8º‹1Ž®C‰tQK¤A+ÓÚZµa˜êU‹=‹j}³ÏªÆT»+5{ƒdeÍðâtО–q`OÙn—WKii a””if%œ¶¸Ùã‘8#1D\ÆßÜÂD>¯Ý˜‚G°}Ë»ÿåÚÂjh;¦(Ò¢«j\Ür¡‰õÞn;5Ê{÷ WZmº¿6ƒª½ËñŠfPM¸®åq@93MjÑ)5€›J‰wÖá€á ¨ôA{Vmå|‡¥Jsó¾X2P80Õ¶c†\ŒJvƒ¿ƒ'´Ä`\¤vö´ßæïU_®WfŸÞe[db•ù[¾e*/¤"N„ž‰4€¨œó™ÍT¶6Sã´F…m’ðPj,XÎè}ÖæÐWº­hµÍj£…¢î*Ëi  œ¶š‰ƒ»N¿ïX¡n¬3¢‹ëž}K¹ØÚ*åú=vÔëTgXf÷E‚H\§ºa§ÖIS'LW»{nJçp>Î ÛÄ… çZ`3Ã9!%I™ðçF œç<İáÜd] ¦gBPÇÌ+?kaø&hÓ¡3´“™ÍMѼäìu ÍÇÌÒÔ‚ Á{¢C×A–ÊÓþ—ýËAÇŠä|Êf[>“Ö¾ö'•ôÚ5] Ô³ó~!Œ›âB~á6×/‚L|^ÛŒ@áæ‹á¸1UãÒ<Á8‘ql÷Ø•‰óa;`Dba«Wwwùi·•n¹°»ÿaÜ©û—j7üV¬m³JnB†4›}€H‚'.ÆWe$µ*©ÝV]1ÒYãMf*3¼Ô‡;³?«;6kŒ¡/% OÚ1ß'¹'€ä/IÃNqÂÄljœvPÛ¡mãq"G™1, œ€@Öe9IdÕ—Hc¨j%PÝN¡±‚ˆ‚E&ƒ¶r·}Á‡²õZg{Ù[@æ=–0CÒÆƒ~Ñ%³ÂýÞiè4§09^š¢¥(¦êþ Ò%]ÑoˆD4vvȶEV÷™ „F.[ç`„*3L†QtBBi†©}0c»@KWjÚ¶D5u ÆÔº¿õT ­H1-é Ð ·XsG=½ysß"8ÆÑ,9£¹0$€¦c ‡ó‚ªU¹6V 5Þº‡㞬…òŸØå4¸ÔŠøÐ»R;m2\¢êú* †:Cã¶0Æ$¸ ”ÎhÜ]×·ËDE® clq}>`åiDÀÙ]fcjÍܘ€ $¢Ìccp~còÃnL“u1°rXîtã°¶0|ÖéPƒëÉÌæ¬^ röº€†æcé(„ã^E¬Ö°û‰(‘ÂÓý1¼?jØøÝ™Í6¾‚œÁ. ¡ùX¯óeF!€ˆCÏBã~œ'YÙJ4ëTçÇÚéœO‰5¯DBdêéTŽÞ¼š 5Ì«îÌfóÊGAŽ ÐÐ|¬a§F$ =ÊÃÛø“¡†ßÙlãû(ÈìšÕÓ8¯"(á<´‰é¦'¤á!¡Ì½?øúµØÍׯÊÉÔùvó_Øý”U÷µ-ÿôø¼®G4\(ñ{ÜÂð¦ßd¨aúug6›~> r”¹€†æcõìiœ“„¦€˜‘y üîÝ»_ÊdÖõªÀíyö°ÎGžyìa#¾gŒdÏd¨aötg6›=> r¿€†æc½Á‘…'Q'·"“ÜÕy¾Qÿ/V- o¾Ñ‹}±:™Ùl¾Ñ |±º„†æc½Á7Úúd¥ÈDŠÝþÐÔ_èæ:îþ>.æVÇÈæç¹Z¾Lš5Ȥ“™Íe’—‚¬õ/¡¡ùXÃLb)'‚†o3ée$“âˆ$‘ŸOjax3i2Ô0“º3›Í$9ë_@Có±Þ`RB‰q‹Iø#‡.•~Œ¤R$HJ=ÒÛJ“¡†©ÔÙl*ù(È™ÿš5ø"€I˜Žô³½ƒð6ýT¤aËw¦5ÛðÊq¶ò×Îl¨7Þ0ÆãßäßóÕ¡ÉmD=.Ïg‚’Ô—^G o~M†&Xwf³æ£ Ç‹ hh>Ö»”D&¼•ç?Á•cþ¥?ª«B}x‚:ýÒi1ÑјWŒ« ~°Þþj†œ endstream endobj 128 0 obj << /Length 2885 /Filter /FlateDecode >> stream xÚµ\KsÜ6¾ëWLå’QÖBðä#U>Ø©xks‰·¬ª—‹šáH\S¤–äDÿúmëM?X²Î¦†J(b$²ÿ¬›o»²~œFP$’ÉQŠª¸’=VWœD’Õá ¥H7튬,¾ËIP•ĪðxIð†û c¦ugê‹îÎ6-l'ý.fÕÖUº”_±~’ò;ó¨¨ö.þ-då>o‘]`Füv}ñß ©c · .Ä wŒ0MW›û YÏ9GI¯bð·ÉW»‹;FY{?‹E4ûü¯¶ðì÷F,MVªå=üÓÐåê OL‡!Jâ×tü!B)ç§ p– B膠a%ˆ÷4MUóX¨ «Ý‘N€·«(I޹5Ei’NÏYè…eó³1˜z:³F^51+m«g’Y»œ*›µV‚¬½Î¡!,å¬Á©¥(h¤|šQxÑÈ8¡w—WÜÀ[}y8컢,nУñwH:×Ù¦«›Ã_Xà•³ýŠäU7 8G ú4Œc=F0ÇCÍsl,™7ÇBäxq ùcÍs,NQŒÍyàñÉìî*vµ"ŽHĨÕcSk1Ô<µÆ’yS+DAŽgÐ?Ö<µ¢´n˜…²íVÒæÝi¼³ÅIozŒ`Þ,†šçÍX2oÞ„(ÈÙú òÇR¼!˜LG§†9MQuîàß·¥)VÝq^RK¹¥§·äv_‡·Lrí(ßäÑ3â J(9ÏIxæyŽx çÇ€ƒðq€ãç`ÿI8N,U>ÆÆtQŽ0á6„U1Ãë»Lˆ œ ¦ÍîM©¬o‹MVêçm—?˜>™¹š.Ä„bÙýCiz•¾~‚h±¨+ÝŠ ;‚Ø3CËʺ*ºí¶ØÉ(l—7yµ±8nrY7S‡*úÄã¸Ó:6QãÍáYt¨z«ÒNƉúx‰5Ò‹&çC@jõÁ"F),T5AìòŠ`Œ×¿ÖU×\B]—íCYK<k^_¦´õ­ ¬Ø”ˆtU 1]ßdm±‘E²Þí+¥?ˆ¤»ƒ~úÐÔRÙ[%›lÐ?þ©ï7YeäúÁæ.k@À¼pÜôQ”WÝb›u™®DËJW,ëß²Í~lÔËtÆC“·yÕµSFhQ¼îš¬jwusŸ@]½ÓW3&”ŠÊ^u<ŇºéZƒQϵ¯÷ݸƒœnD¤&ÛÜtVÊWŬ1uUÞÙÜ€¼(•¨qns G3É)¥Q¶6J²êbëQrîo›ìáN¦,âÄuz¼+´ú˜›`H­ @пÅâ ´‘V>lJMƒló&ŸŸI«+vMmè,³Ú.kº)ùä¼ä6Ð*·¯HýlÅÀ´ÊÊ~ù¸jÉÈå"3eðv4³ IJ²ˆÿÐåÕVæ¤"nr<òÑ3ŠË‡7ý¨§ºN¯AÕF®7¹Öd»¡òåC宀‘Zy Ö+O5-ªM¹WÙ8h×>ä›"+Í ’8otËŠ06½æXÊM Žx©èg$XÚ¦Üz,(éõMÕz„Š}› ¥d¸–Å}ÑÙ~¹n=Noéå#ÇÞ™vR8–s¶~W=Ÿwóš°¶œ¥ôÂ\ùJé¡qeÈ'«å´äµ®rý¼ntÅ}Ý䦧V‹éll‚¹[‡\Ä¿vºNʯà Y›~üe¿ñœÚ¼ÏÆ%MÓ‘åöêò Í%‹×y¶=L¹Ü+ÛXëð–E—«<#séEj‰OÝ¢…â@OêIm›¦M.R%´tIF:  ÜhUufF¼1>Kln¥[#ñúé‹VOUM°ÍçV³ÙµÓ“`Yozwû ¢ÔgKÜñGnŸýd±›,–{Iuks­Jq«ßÌãƒAQG$Ã#‚L'|. žÄˆ§©5ç§¼4GyB)£N[+pùˆGéëG.18rÙÐk0(e‚ ‹FvG6'Œç,‚sZ ;ÃM™µ­–QQWÄÒ£Ë[Ø ·¹r›jaAÞ>e“Ç»ZîQª—dˆAPö@l íõÙäÍ”¾®H q &c¨ajîŽîü–à˜hÇÆbMZ+·¨¶Ú^ÚñBKOÎl”ÆVvšaÄ÷ÖAºê˜™³(s§ ¦Nݾ©Ú©±ÒáÈ ÕùñâÕÄ#1&¬ÙŽåxz\8Ú@˃.«Å0’xRé È' 9©ôÏJø/SÓÀGÉPzÁH/„#‡Ð ®<‚¬Ð;†jTëk žF‰!ëîL³‰-CVÃÒv·U®‹³´êeZiÑÁWƒôfšv-«}Ò2"Ü`}…°ŠHÏ8À<GF"" p<p‰ÄE˜k`ók1Ô<ÁÆ’y3,DAŽgÐ?Öü.EŠ0¶ðïaÊuà¥^†ÉB»¿×ù#‹Ñs,:%@¢ÒÌ"“l!Ð<ņ2yÌ_1ŽÁšñEz…Z1F8‰ ï£ïTÕ“.ÿcPu8Î$Á‘àa_1 0‚Ù´jžOcɼ¢ Ç„3hÈkþ4Äåw—aŸ 0‚¿jÞøcɼ¢ g°3hÈköÂ#DbãSÞ/ü†Í=p¿9-ø" £ˆº›#˜q‹¡æ7–Ì›q! r,9ƒ†ü±æǸúaäÄW“îÝþi," Šâ@¿Õc³h1Ô<‹Æ’y³(DAÎògÐ?Ö<‹àLDÝ··6™ø4¢Ó{— ývïuRáÅ4Ð5õÁ¤Z 5Oª±dÞ¤ Q#Â4ä5O*ýÈÿéSÛ”£8 óV=D(¯#ÍÒj,–/«B”c‰píxCÍR*MÏ¿±}aˆúHاÙ=D(a#Íf,–/aB”c­|íCM|AÉÔNBW"R¿ûVÔ¡š.¶Ðå@±°â endstream endobj 131 0 obj << /Length 2838 /Filter /FlateDecode >> stream xÚÅ]o#·†ï÷W{c9‰~sÆ€/ÖE·EI`ÈÖx-¬,¹Òxe»è/ç‹3”MixÛ"ˆ5«‘^ñ¼çñ!9ôPtòuB'û@ÛGf™}ü§=¢ö?6ÉÉ•š–‘Le“Û‡ÕóœäY>a¬>·)&wþqXÃ(=ÔøýO:™Ûs¿L(y6ÙÕ¯|¨^Ýh.'¿$H½Ó*Mr)÷#“"#Œñѱ)®õ[oâá~[ÀÁµ.¯>üü™Q6ÉI®¹ž\Ý98'RªÉÕ|òûôq³X•§^ýòóg™ ^Ës’e™­_õUtWýX¬æÅóÅÉìä§Ó3Åèôå‚QÚÏgåìâ_öÜ9kŸ9¹99çÿ¶ïcÕÿÕ§8»þzõ–Ô6 –½Ëh©0–~d`,19”8ת±ôHs¿¹”ȼÁmG6Ŷ(+àF£si5põl '^*Î^dPpPuÉNá\+\Ïtž%Põì&y=SÊØ†1¢4sɓҶÁLögÀöP9±°ctcØ»Í1ú@óvúV 3ú˜@Çç[‰žDh#zt" {âš$%[¼xE‡á­µõY6|\Ý/¶§g\Ñé×bUlfeÑþ³¼/šƒ»õr¹>åjº[¬¾6O­ŸÊǧòü8*#&‰°èÅ Xhëƒ5ÁÅq…`À›áȈõ"8@ÖR“Œ#;”^Ý¡DK…;?2p‡‚1Èå+Cp­àHD+;amòzÞ”~Ûó†û›lpãךšh©05~d`j0¹L'p®¦Æz"õ>4üxo ‘™NÔôbÐÞÀ*èLazƒã #zx3úÜFz1bœåÖ¤|¢í´G›¼+n¼9x)§$ÓnÀùënQÞÞ×0x0iˆá¦VÌLv8^5ˆ·ãpð‰L1"˜ÜkÝlû­iž ·¯Ñ¦kÞír¶µ#–Óé¢~dÓYóð¸)æÅ”òU1o^PVŠõ¹ò~V6Ï=nÖ§LM¿/æÅðítº]<,–³MóÜÝÓê¶\¬W³å¢|i?mÕI-ÚÏ/*¡çÙÃã² UÃ'gŒ*[(˜=Dv¿bo_Eõó{õ–bs*éÔÔ¹4S;b»·OØc]µrÕmë$,NÙ´²ÕçŠæ ë7Gß+ÅÙò©h¥š–UgZ“z¥b»§r»^•›õ²ú‡²s *šF6'ïÖmƒæÍ³«m¹)fuŒÔ®²xKNÏ„­!Ÿ«àê·*ÏœããL¥íœ‡™4•e ¬,ÊB)¦²ŒP8^YÍè*K´Áq¦õÅV Ž1 4°#†x©àˆa/2èˆeËW‡àZá vkç³a ~{áÂŽPrw…º*矪 /Oåb¹¸!»õæÛÝr½#Õ©ê²ÄùÑqª’¶ Rƒ£®×@S-¦Î LÆ GJ‡àZá’#ªGdÉé5ÐÉ– 'ß œ|ŒA.a ‚k½Sr­f:¶†(ÑÖœyq÷Þ¥RÛA2ÑUœëëÅjQ^_WEg[,ïÚK¡?Ì6_·ÝñßvóíÈÚÃmCsï×@ã-ÆÏ ŒÆ ‡L‡àZoçÈŒs’ѼRe¢½TÿnF¢€;Σ„J†ã­×@ó-æÍ ÌÆ ÇH‡àZxc‚hÞV» &²X=>•[2/ìxkSTŒR(œöaLà¤ÃqiB;U ¯¯Ifl,:v}í v}MÒæ i½šµh©0m~d`Þ09N8× ‘×÷1`rßK`S­̼4ñsº\%p,u`æ%rI¨Ñÿ·…5aª» pÝÛ@M^´T=?20{ƒ1 ‚k…GÌ"ã„qö?\XZe…®×@ó-æÍ ÌÆ ÇH‡àZx3”0­/}¼v k³úÏ>/N¶åzS\ÏV#×D„’DsdIë5ЈEK…ó##†1Èa‘À!¸ÖÄ”ÕdìèšÈOƒ -„¯ãð’œh¬`½¯h©0^~d`¼09$8× Ó%†!kK¯N~´T8ù~dàäc r Kà\ëÐhÝNûÅy•D°ÌæY_z 4bÑRaÄüÈÀˆa rX$p®õb]ÿe…Ûf£½øt˜ê& äþ 40ÑRa`üÈÀÀ` rINà\+Ø!ñÜV&ä lò㥂Éß‹ š|”A]ÂR8× Þ<ÊóŒÈn ‹Ko­ëýÉüg;¥Zo^ê!°;ÑÜ•6nnÅ3[¥r\­h q‹– ãæGÆ cC$Cp­0nö±»ïèóps7£ÈP’ dÑê5ÐEK…)ò#S„1Èe>Cp­0EFÅe‡Q7ù~öxÁçç²õh†¢¥Â ù‘ÂäòžÀ!¸V˜!͉Òí½ê—d6Ÿ_ßlf«ÛûºgsÛÌ}·—†Pä¶- 4JÑRa”üÈÀ(a réOà\+Œ’¢D³®qL¯&¬[w‹ä@Q´T#?20Fƒ\ê8× cd=Ñ*ï0z¿W;ãÇ!âÂz‹»Éz †(Z* ‘"ŒA.ñ ‚k…!âš*ÝšÛmðWì‡2ä. 4JÑRa”üÈÀ(a réOà\+Œ“Ät£~yÓ«}Ý«±<'¹ëÃ@KQ¼T¢½È ¡ ê2ŸÂ!¸V˜"ʉÉÛ/nÔÃÉNáºÖ×ã4e†pä6 4MÑRašüÈÀ4a r$p®¤‰å”dÝ&!šx MFž#kS¯¦)Z*L“˜&ŒAŽ€ÁµÂ4™Œdݦ»#¿kÆw{ZÜb F+Z*Œ–-ŒA‡ÁµÂhiûØíÿ°«Æá7—ãÀ©¶SDîí0Ð@ƒ-Ç Æ —ìÁµ‚«±LäD"ï<h “-N¾8ùƒ\Â8× ß8Ädõ×?Yì7 |¼¬çøíß¼~We¸!¹YÃ@ Z´T4?20hƒ ‚kM0B5}uÅ÷j“Úý¯âý];Œ)¢ûD 4ÐÜEK…¹ó#s‡1ȱ’À!¸VxXÄrº]"b¿l‡QA”FV¬^MN´T˜?209ƒ\¶8×:P±¨!LqT×x3®kÌѸå°Å ób‚†0¦Cï T)ŒV®ë6}€õ…7ñ}aµ3yf#ቾ§×n“n$Ç|Ïq㛤ÃÑaëÈ/_”j[¥4Q¬­@¼YˆíÞe³û¹½¶ endstream endobj 134 0 obj << /Length 2964 /Filter /FlateDecode >> stream xÚ­[[sÛ¸~÷¯Ðä%Ò6Fq#Hf&I»Ûì>tÒ®;}Èf2´ÙlhR%©8î¯ï@ðb“’pöB>à|øpÎDãÕÝ ¯þv…Ÿ]?Ü\ýù—€¯AqÐÕÍ~Rø—"΃ÕÍnõy}sŸV›kàõÌe™Ô²y¬ï¥¹ÙYVlh°~Ló;STëñ~»ùróÛ¾ôõóÍÕáÃ?d1á*$ñ0Xm®T9çEQ¸bˆÁÿK¹Ú_ý£«Å±Ï°0}°Ï_ðjï~[aÄâhõ¨k>À:[ýÈ#à ‘ì‚i_"s~ g"„Ž`4@Xâ<Œ€FˆêqÌä²;à4± 1E Œf†(Š£¸‘ËÔ½œ˜bz, ¤ÌôÏES3Q³ìœ\jX;Sä´SåÏŽ3”^ÿ2Yš‡ïªŽ,«´ÈMA±7W½ ÓÕ“Ù"n¥…—ªáÝz{¬åΔÞ>u­G˜d삌 íïi=FeÀÀ&¶ •‡µL¢‹¨¼æ"Ò•¯Õ6ÇÖÖœ¢Í5'ÐíZ¦Õm¥Íx±Ýy]™yøcf6³vs[6Õ7€[˜‡©’Wu)“‡¦ Övÿ‹âÛ¶43¨É<¿#D ÌùB®©suM$F”Q×tá×ä>ŒÖ5ÍåbrG,0G8òLU; ï”c6ÔtÊ1´Ì9åð!¨¯rÇšN9pˆDØœýhRŽkr~]cŒBLZט뺄ø4¹u}á‚uí>ŒnngrqÙh(й™ç²”ožE[^Ø`¢ÂÄH%ü±aT…³÷cñŒAâ¶Ñ6ÉwÙ hëÃXe3Üê ·)7ª2U±ðÞÜ%}ƒÌýwÞ’ì(­ÑImîlTµmŠ"“IŽÌ@"p!Ø RAvt’sX!(â¡AŒñú¯R&oŒo61]«x¯Ÿþ)«âXnH´†LfÌL¼ºf°-.d„ÊR s¯’\EÞ'S¬¢¼‰ÄueJÒÜ\ïSe·jRë¨ÂaÚ¤³.ݦ2wò óÌkSl_kuèAl¨e1Í’Û4Kë'ÓRåm]µ,ó$3%¥¼V–*Óúi"H@ÆÕ´™#a?³y2Æ×»¤NÔ;¡šÉÊT|HžÌM.Õü«»º0õn¥y~6â±SÀ·I%/Æ;æY±ý¦r&¹{3f—N"¢¥—ªØ›ËHJ²t+óJ?`Ó£*5=ª;Õ£ºÞ6õ÷¥”ÀÇtýéß ¶ýe¢jšÀ‚mjƒ {KÒ¼nÞ©9TW“ç•ß™`„ÇÑŒbÄ8=&ÜJè2׉·*ÐËnduÃZ ¢ÖSùoå˜òa9©ÐÔ,nÿ#·ÚoÖi¿ß¾×‚òªNêæV Q]sé)Zµ(›¨„Çë÷¶—28BŒ…åML4&ý%]A^ÔæF“Ð’Ûµq³Tû@]·ñ·ÓåÛ$77Znú®iLõ›íO¿n0•+sM›ÁIXM…êëéÙ‹ÆÅ?Ÿé²ÐÎP9Bµk…–ˆÚst¥JÆC Z»>½8¹˜Úƒ…¸ÍV?ÿPðj]žÒ†Š7!À4ÔIëà ¯þ‚PCILñ±RûLU —1\u¼Ø?5­rS8´U ÆZ t§j¤•‘U¿ðh(äXInaz5S õ¨' nou[W2)·÷&.@ñ;$¢ˆv¡õÓû›£›nØë fkÉ|ÃAqiYä tí,Âõ¯û®'}3Œ•P0f·*×цl”mÍyc)€ä1âCµ@J®‚Y©«Â´ú› f 7cHä 1#ëDkµŒƒv[ Õz‹ž’¬*,Ú6;꓈&ôf˜zxõ}±ëÆ6²&’Ã!{j#{ÝîÅGyä"ÛâÂöî:Kóæ]¢³€»£š°jzmݘÈËŸÿÍë‡IS'Ͳ£rþµ‰ÜÆm¦‚)1aš7ƒW¯:Ætya®v-›:Ió²I#¸]ð*K«ºé äßï„Y‰eýUÓråƒüëEV·KKEùtþ¤ÆÂX,³#é9îH&ˆÄÇŽä„ó;aØÉl.&O(X†âuÒÐÃð=i˜5yÒðÌ2ד/‚ÚùZ€!w,½ý$°íŽâÅ b$XÔ?/¶q°«Ê8ÜÆýMáÇ?p€OÚeߢGˆû¬xDê¼!oÏþ¢FCŽp,üD×ax‹n6Դ膖9‹Î‡ V( 0äŽ5íq…¼ÍÓãtÞ“?jzò‡–9O¾Aí„-À;ÖˆÇ!‚9PHŸ³“ûC¤ͨ¿~Mó´þúU9Jfû7æ”⧤¼«ìýOßwÕ…¾'ÀˆDž¾§Ãð–ßl¨iù -s–ŸA­d`ÈëåÑ:¡E8, =¤FY¯^½ú‹>¢9ª|Áãyõ©”y:¯Ã[=³¡¦Õ3´ÌY=>µ3¾CîX'Ôà ŠHs<ž¡Yîê¼Þ¨@´ûzÙMo†·ÞfCMëmh™³Þ|j5²CîX'ôFcý¹‰9¤1¡4?ë í$dë¥T{ ûñ×—i ¶üÌï3ëÂ[Is‘¦…40ËYGä´SïÏŽ3Ô ‘Å8ì‰ÈüéÄPEêìèBaŠ˜ðtI†·fCM+ih™³”|j°CîX'Ô„¨×wIÉn÷Õ\Ž ¼üaÁH®Ò‚»Ht$ÆÈsÏØAøJn6Ò¤â†f¹ ·«‘Øq†š<* a„xàçjzÞó>jz⇖9ϼAí|-À;Ö‰£õ¶ß^_rT µ£‘6õ¾ì@€<%f¼6hZ^}›œÅåNL+of\‘¦# 1‘èE°r$*¡ò˜[5ß=)ã¡•dá#òT©c½ßÊÕö/+îöi&ßme Íþôº)¸,ý"G÷ûk”†·dgCM‹vh™³l}jå¶CîX'Ä)ŒôÄ;¦M`‚ãÀÊN¥öc®3BqÜ~ÝðÎhóó—óäžß&÷0¼8jZ€CËœèCP+šrÇ:!@. ïùëß?ýëÆçݘ9F¢ûT¨8È|<„w2T.÷…_|óú Cæé; oiΆš–æÐ2giúÔÊi†Ü±ÆòE«MÆõ[ZIýÏ¥Ÿå‹¼óŒ¹œôŸm­4옵Ñ_/„ RM!zºÎÃ[Ÿ³¡¦õ9´ÌYŸ>µšZ€!w¬× n0äTË” qIìæçb·ò™­ÓDÉA}X«|g“a‚®QU—éA•iשË/s¢X z:ÑÃ[¤³¡¦E:´ÌY¤>µÂZ€!w¬ñ@CÒójh›•lutN=1G¡ðóp„¯vf#MJgh–«r|ȱ“½;ÎPÓ²‰#Ä‚`‘mI?DUQÖk/‚±楽ÂW{³‘&µ74ËU{>äXÁ,ÀŽ7ÔÈßÒ1Œ¦tæ§ Ê´\l+Ëÿ5Ç endstream endobj 137 0 obj << /Length 2735 /Filter /FlateDecode >> stream xÚµœoÛ6ÆßçS±sYI‘¢X $Àõr}Qô®[E[,¼¶œÕŶ²œÍ~ûŠ%yE[âèP4’eê ç™_F´d}šÑÙ?_ÑjË`Ë`û'ìQøÍ’ˆh)gŠ%$‘Élµ{eŽs¢=c¬|/Og›Wÿ¾¬¡dÜÖøí:[Ã{ßÏ(‰t2{*GîÌh«¹ýÔ’œ@ªgV1ÑBœG&¢„0ÆÇ&¹$´;£ñIžÞK°CáZn_ýí;‘Ì4Ñ1g·›™–D³™âœ!g·ëÙoó‹ÉèüÝÜ.Ÿ?þN%…ÿÙâÛï]pÿ¸íˆ‚å4ÂAÔh !-凨Y0Dƒ\â'p(\Ë £DhËÐS‡¡ÇçS‘m³{òtÈ?o¶‡'òKµ3¬X H®:µ4°`—ò‚uY(X(ƒj¦p(\ËV¬"£ª:=‘åzm°ù8Œ›œÐ¸‚ÔÒ@s3ZÊÏM7²`n0¹\OàP¸VÉ £ì%8`•TUIz̳}ax9cŒk’$ h–£ YeU²#»ªL £zè:Ë{ä˜":rcÞ­Nyÿúz}Úíž_f¯r+¥šÅJ“˜J—]!`–j‘þôäÅO]#æ·ÔJ[G{§“\V°çÓ— ®×j„_j8Xçáðë=[@—´IQ!ÈMÎ &éY,Q Sfþý↠>ÿ¼€ë_º`rþlä‡mj÷›êHz<œòU}ôþ¿éª8ÚY¹æÅò°GЇ¶Øj¹·;Ûl—µF”;åÀ¯æt×ßþû×°°;’ÅMDÕüΩQnÅ)E¸Šk˜—_–ÙvyWòâÙïÚpAÉO Pß0Ñ,'wiñpXÃßÉ“yfæÀÕ|i_¶"‡W6òjàÑüó”æYZ]ìö˜Vgd› rÖعO«QÛíaµ,ÒutT]Øà—ó§lÁæûOö¨µo¹{Ü–Þ€ 6¬Ø†•m·§c‘ƒL5Ò|Ïʽx¾9íWÆïeiTyè)+ì°¥=pÌjásÓ9ìÇÚU§ãóêÀzL‡%ZÖ£WÛ屚0ÑöE=µû§sP¬§œÚÿSÊócQÍvÕá¬:gn¸jeLj*Eß^/i4‚õ!›¨¤5b¡% ¾P 0%íºÂ€’> WÒÆzá½ 5ƒ•VŒZ-µ4°«¥ñRÞÕÒYd¡«%”Au¾¦p(\«gµä<’„qnÿYoòîoµ”ÀâŒÕåæÅ»¾UÌPHUŸuï÷­Ã…I¸kÍ›«+{XØäíªFMêX%?¨°‚9E˜ãл,å¯P±"1—¸´7è¼–ò'¾Ypæ1¹|MàP¸Ö… ¥ጷ×:/ I$`W÷­ŸÌçºÖ>ûöz‘‘®Î8Úœ¶±J~Ö:a£†0ÇÑw'XÊ_dÎE¦Ñ@ç}´”?ñÝÈ‚31Èåk‡ÂµzŠ £ð‰D)S$¢U•Y§›¾ePD(sŸÑîî²}VÜÝ™úrL·›·ö¶÷~¹KßýpØ­5# ¹övhæÆ*ù‘ë„L Þ`©—÷¶a¥MªAJ’¨þ0]ß õeŠœ³5è®·dî>Y8Kìê½¶Á0–òÓÔ,'ŒA‚  ׺@T§>¤•DfÈÝêpÚiÞy*7#ªH"4£FÑh)?FÝÈ‚1ÂäR?CáZÞEÐ’$Z ’ßÒÀ&¼”7ùg‘…&eP°) ׺°Z‘°á‹ êéÀ6m_©®¯z„ÙF¸ÓÒ@c6ZÊY7²`Ì094&p(\«³êZ%E$¯Ÿ©lú¨ÒÈÝ친ýÝnèÖÌ*A–´FÍÚh)?kÝÈ‚YÃäø˜À¡p­>Ö%Jp“D*6öëß|øù§_-cYSíØM‡ÆA+sSB9²Ü5hGKùìFŒ Æ ‡Í…kõ¬ÌkãˆÄLzKÙÍॹ ¡ YÊ 4G£¥üu# æcËý…k]*e’‘ØÝ3(Nùþêµï–Ûcz«(»qÕZh®FKù¹êFÌÆ ÇÂ…k]ZŽEš(*‡€åžèÞæ§\qAXŒûfKÍÕh)?WÝÈ‚¹ÂäX˜À¡p-ÿ­Æ §È¢Òh “?ZÊŸündÁÉÇä6CáZþ‡¶‚I¢´óÐÖüèä½Y{¿üå€ykàJ —È’Óh ©-å§®Y0uƒ)8®å-9Q’WrZØä—ò&ÿ,²Ðä£ ª6…CáZî^FšÁÇx~„ûf™:Öûo>?­ÃjO¤b \íii ñ-åǯY0~ƒ28®å)8Ƶç;’å%ŒŒî:o±(¿ß‹â­Ñ@ó6ZÊÏ[7²`Þ09F&p(\ëo±"Z‰Öm¥lÿx*ŽdÂz+/ŸÈ¼þúzI’qIš¤ÑR~’º‘“„1Èe‡Âµ.$c¸*êI‡SуÒÛÖý¯Ãð”…,T¯ÑR~¼º‘ã…1È!1CáZþE9HJެ-:ù£¥üÉïFœ|ŒA.a8®uiQq¨¾(O¿š_.ŽüBAÄb"‘ßÙni !-凬Y0dƒ8®uávÄ)a2ªÖÞÕͦËÀž1CV¥F Ìh)?0ÝÈ‚Áä’¶ ã±éFÐébÓÓ,)â|þ˜ViÙQ‡³¹éå•î‹í³}o}H«7ìtáвn$d—-–ì;¦w‘ÙÞo«ÏöÝl¿NM&öY‘‚f,ç&88û_;Ôª“‡Ê3Q;Ê*š.SànO£"°Å4B’´ê ;=Æ”Çû:F™á™™ˆÙËv»t-ËùZÉ4ße{8@, 7ß×ç `&RÃb½úÊ5#rqÃ(¥óóK`Â6þ²¿ˆÝ.4XhBíÁŠšöRåwR–™íæM¦s“9tLËöKGûjWyv_ /êóJÄ˽ÇíéSV¶81Ó¨)Ok7KóòþÙn2˜î[ûb¹¯Þ}ªNpŒ_²uZ°Û+m¥Êî\àÅC;/ËÊìrÊfÏN¹ÊÉÑnÝ4ËT¸ºP–Êùì¦úf{ù×pÑ¥þO €Ì endstream endobj 140 0 obj << /Length 2312 /Filter /FlateDecode >> stream xÚÕ\[oÛ8}ϯúR{vÌ’”¨Ë}Ø[˜‡Å,ÆÀ`v:TKN…*–W’“x~ý~¼ˆ2Ó±H‹Ú˜"©#~ç}$e%8xpð;¬>ÿ²¾ûð)¥‰PÅ4Xoƒ„Â?Š¢ˆë"ømACd¹"ãÅÏe]núªÙ-W”áÅz™ÑEÞ}[þ¾þñÃ'„ Œ1ƒƒU"¦eýµ”½¢ô´ô$ƒÎ¢ÓsÓ~ÛÖÍ3êôu. BQ&ÃI=€Î×¼“….& Û¦®›%e‹çj÷ «ªÝþÐw?p`͇O=½ÂŠ¥@Ë*Œ 3y¡Ï˜$g§™Á@1 É0®"ïóKç@uš½~X®B‚¹\Q‰¨óöx}|0,J²ÎA1¥NëvEùri|!FQŸo7°W”KÂ/òðÛÚDÅqh?SÀŒ(X± %Œ˜Ä®¿VƒpZ˶ìíî\Ï'®e^Ôa³µ_M?Wý׳.ݾÜTŸ1¦eñfH1[ 1l’ Æ$ßÇrÔÿlzÇ€÷CIDÂK2(M©êvê¶å×È«Z=´ù¦Üêú(«í¦ðOG‡&é¼ý¿(y€;¡8ÿ p iI­Šr²tñçi²B©på6å~¼ýŸ«ºVBl6‡v Za4÷eûXíò¾<ÓBE?ÊÍaÄ}%ë3rDÊÛYK#³W·¸X¦FQJ’!yÅ*u­0´ÄÑßÚŠƒ? N[["KPÑ1‘Afc‹Ÿ~‘ŸRi^* ÷$jeݾmøáSUp𚜠ØT5\ÑUe£NÛ´eÞ‹œ¥OÊæñ1ß«ºÚ©1iu%OfŠyё߮¼`<œ«Œ•¾*ÍïëÃ0JHEH÷oªR–Îã¤!‘„¶j×í«V8j¿e­9rÞÒ7M­N©+åè óCHCD“pÈFÝÓÅf¬3–2 çCò——J–¡ô5_R¬X5üFÝ—ðc'ºàsÅ KÞ.Iºx81¼}>Êîs32gŸû¤½9CîXW|N3”Ƨù¼9ô¯–ܸ4à¯ßù=Ú!¼4Éî##,gy£•÷gÇÊúD—bŠÂØ3ŒÞºO†² oF欼AZ¯rǺòD—béíOtËñ‚Îð„ä¶ç¶$ÃÈsû:BøZl2’ÕafX®ó!gðÄ ì8CÙ§'’üYròÀöq/^îâ«.ñv/t‡GYào\-j›{˳]’¤(b~iìÃÛc“¡ì&3#sv™AÚ30äŽuÅh)EL;®ƒþú¨,Æ«^dùO'UÇ·}ÇÈÓU‚·§&Ùu“³ŸÜ‰ÑðfÆɺ",B ½1¼%Ÿ eÝŒÌYv‚´\30äŽeg0 %$nïìý:Ï;{$¢ˆ§^1¼8Êî@32gú¤]3CîXöôb‡žégÄð2”]|32gñ}Ò‚ÍÀ;–ý=©…R2å½_o{´CHŠâÄ3©ŒÞ¾š e÷•™³¯|Ò^˜!w,{RÁ1J¨gR1¼ÅŸ eߌÌY|‚´`30äŽuå !p&ùŸ½²—E(‰ý2Ïáë½ÉHVë™a¹:χœÁ,3°ã eß‘g) s~U/å¿=z¹f„ðuÍd$«k̰\]ãCÎ õ ì8CÙ]4E3¿ 7þ‚³¿ßð_׃ÿ -U/×PfœÎü/ÎBx endstream endobj 144 0 obj << /Length 2958 /Filter /FlateDecode >> stream xÚÕ\[oÛ8~ï¯0æ%΢æð.©@^öÒ]ÌÃb`›vŠÂµ•ÄÇöZvÓô×ïáE嘖DjjF¢>“?òœCO&xò÷7Ø~ø$ðù_(aøG&9C…“Œä(ùdñôF]§¨È‹ !úÞ¾œÜ¿ù÷eŒLHãÓgM«r}V›ÝñP¡e¹XÏ÷åoXà«WðA®?ßþâzø·Û3JÂÀ;fiJj0’•4*¬¤vÏ¢•”BýŠÇº $‚/. 鮟dÁö4“äa¤ i8TPH'=‹RAõàÁP™ÂöþäŽuyáÉn¡X)I´f F²ÐC……ÖîY´ÐRrâ¡x¬ B£>™·*úhtc%¦.}0å?y—î.êJ0“¤_À‘ÏÁxæÙ„!ÿh ‹Âa…;lM_7†b„iq Á<_#ÔbêD¨ö£‘Rt3Üट„ßµ·ú J `³D ¤VÿÜ*KC öd~P%mY*{–ʦ°[V{^ý^µ"ÓÅÜÞýjŸXìËù¡\š?žW‡Gî&Q¯]´ («'Ñ[ø‚÷óÅa»1uOú€‘vlåûãFÕ¼bŠ®gœÑéí£m¿þÓ4XMfL2ÍìŒpĹ´óú~uMÅôÛ5Órl»…ífýbJ¥ºÿ]WZhû¬.Ö\@q¾YšÂóµ2Óûߨmò³­aÙRu÷öù%,0Ý”öѹ­iè®n5¸¿æ¸(¶mþõ¸ÛmÕ(1!-.ìæ5>¶b÷ã9^Gu5ÕsE Üú;†iÍAímC½ÞªÖ*A™ö—悺»>ÛB0¢Mãêm[#ÊE6>3rùÕÞ«WÛLŸŒ¢@^>…ÅKíË´;+I†ÏeÝ:С¤™Ñ¡êÖýv½6BXmL—«Å~µ;XQŠ IY´Ei^%)¦só¡{­K'’åxúVÝȧðÖØ;ð_p0š´Ø÷ûÕu«eõ…ZËPX­×Çê°÷í£û²:®öªZ”Pɧ»ù¾Ò}|^•^]Õmlûkc®‹íÓ|ël½Ú”õ;rMò©‰LUï:ç ArPæ8sPƒ9 xMd‘'ÌA=ºç „fÔsÐP*‚ž´À¨áIkO#uí9*¸ö<éYìÚ3‰ 7\#0uÆ“®9ûM¸5£«§Ýv.ÐË1T–¾‘¯¾¼üètkxÁÁîIÒò0R¥5*(­“žÅJ+‰ Zc0´+<§Hò4»âa$þ`¨ðà·{=ø)¹¡x¬×>­£H²¸uü7µ~÷\ÚÝËñ°Z¯¾¢gX߯·ÏH­~ÿª+ª]¯‡Cæ‰æ¥ÁHVØ`¨°ÂÚ=‹VX AN#0VXÆÍ„¯0´/VÕ¡ÜQ3”N%iŸª_:‰‹ܬD{Õ`$«i0TXMížE«)… §€ŠÇ «IRÄh1õÜ´î"ʲDÓÔ`$‹i0TXLížE‹)… '€ŠÇ ¯|ø¸4m+‡‘<øƒ¡ÂƒßîYôà§äl†â±Â•"¥v¨vûóghò<÷6Î`ktTœ¦Tû~*uñ“¿Þ^Ífßo˜þ|¹áWŸ• êg‡TŠA¦m·ñ0’¥8*,ÅvÏ¢¥˜B“Ï Åc]"•ˆ 1¢ï´?X-Þõ֢нqR ž ôÀ"C A¦D»ºñpzJD¿d+8’™Ý`ñ$/Ï„¶Ef#Ï*ɱ?ê’´QîõÑÞÐQè:Ÿ  ók2Õ1s•|x•æ‘ÓUežÔ©­æIQg*V‡ÕÖÞ2à&žÆ«ÅT{š‡—k©QŒfÓ÷ê«¶{sÛ¤æO³VôÛFûwëòm#²áºd“­ÄQ|²i«WQôºU' (—ߺÕ:“†a›v§’Ç©+•„-¬»îÜJw"@·Ñ;“ôþ{`‘ï?Ë„çxСÛ$4£6ƒ¹®\™„Çíx©Ë…áPÁåÂIÏb— I¹ñ¡x¬ðrA%áó¼” xÈë\’2ž#–xžÇÃHÖØ`¨°ÆÚ=‹ÖX AN#0uAcê1þÇä›“Ъ´ýšF²´C…¥ÕîY´´Rrr¡x¬ðÜEaÝÆÒöPzɃ?*<øížE~ AnÀF`(+¿e‰ëƒ%T¾‰ +ÞDóÒ`$+l0TXaížE+,… §ŠŠÇ +ŒH„e1^¾‰aŒDâ #YMƒ¡Âjj÷,ZM)9ŒÀPâa$þ`¨ðà·{=ø)¹¡x¬°KEsŒh}|$1Êß;˜O3†(-Æ æy`‘Á<…À“Ζô@èæ%4£QÆ@.úÅó)øðœÚ·*¾NŠÌE®UÙílWèp7)r»·]]:Ó«kz?º­¿1%-(å\€™«ß,raèê¥B Àoç‚Ì‚ Ò/h‡ÑuüÍèH+¡î †ÞÄO‹B¿í­°¾‰·“‚AÉPÁ<*è´¾¶ÚÔµJS¸pBIÀ”1/ œJõN%¨C1·–AïÛlªAÚTƒºtÊkŸh=ÞN!¨„‰f„€â1§ímþ&‹ÒÉy•`ˆ²;¿ r¢N€Â³BŽdEV¬B2ždDºz‘øf8#2ŠàÊ‚ÀÛ#±HZYx©+‹áPÁ•ÅIÏbWIÕÃ5CñXA'ðÒÓ:ÐxT)Wýû3uÓs ‹z£J]|¹á¬ ¢d¤¬ i¿¼0ë°=ºm@B3! ä¢ßB‚dZf÷7=?®fâx(7e}­#]n~ó¥{r VS|¤ #X¬4$¬Ù“Ö˜=zH#¾NC¹Ï°>S›’æ‡#y~ žÚ=‹žRrã5CñXÁùµäµóÃwÆêgݯ5¬þq1–ÅoÀb_k@ IGB{ ôx­ã›á†v(=,~^è3îDýÜEAj÷Q;Òù†âŒo¨vbmÀ/9êÐV›Åú¸4nŠ:xì=1_›*ÛòS*óǽyPmúR?f} Y;8ÒsÙÄt3²W­O …ªÚ.®Ét¥ïÀø>öȾïú,· í>Îë=eþ~¬gp¯Lé«Ðt„¥þ]€gí´ÕÞÙcù‘ÌyD³Ùc¹Þõœ }4ÞÖ3<ä•R«]¹X)´\š¹³6ý å“™ ˆÕÉu*[•àMül" endstream endobj 147 0 obj << /Length 2774 /Filter /FlateDecode >> stream xÚ½\]oÛÈ}÷¯PýbyÝÌ7‡ò°E›}(PÄ/»IÈm «¯’R·èïðkÈ‘5¦f.Ѳ¢¨áñÜsï ‡—$“§ ™ü튜|þùîêý§”M(…TJ6¹{œè“„1BNî“/Ó¯„&·ßîþn{ÿI;™MÍ©ù©j¾Ïo©žîžÊCÞ’¢ß’)PZ´-g·3&Éôn™ÕÛù¦ÙÚ=ÖŸ‡ö§â!_ípÒ ·ï3®AR9™1©N£:¿Èê¿´ÚmÏõ_ ô¤û¿6=\îòC½Ùy+œ›[)§E½çñ¸}(˜¯W‡—[%§±&f[Ð&Vk¶_­ÏËÄh){qr™N],VuÍwe¢Ü=7Ùö0¯ã,›–óCý㪨÷ìóÕö-êóÇC–·-³zßÃn³™ßÒév1[¯¶ÍÎ]Å]1Ï›½‹lVvÖè\woF…1©ª;Y2zŸ- nÁR`Ê´àgu k³ÇÝz½»erú¼Ú>•»h£Gýó±ÈŠz¯édѲíQ%ã®þ}µ^‹C>?d'ò.³õ¾i²}Üå›yg…š¢ê§ÍRT~¹±ºi?/þ¨b"n¼‹|U†ðã–Êi–¨d§FvjdÿëÝÕ¿®J™‰ùª9H™LdšBšˆÉÃæªÜ/„áP'Üü?Ï&Wÿ´¶iqÚïX"UìË72Y˜ßL§zò\µÜ˜5ôzòÙ ¿êŽ"¨bo!ÔÇ“×Ê8_\‚ LB ”ÁL1 º!™fúÌEˮÉ9ó&Rk 4m%bU«ÏJŸB¯•é0ü½i0ëîøE†:Ó«Z«“ÈZ].­U EÕk†â±ª!—:1¦QLUCnÃQJA‘æì^möåhR¥f¡{1•j_އÕzuÏ»üÇõîùÍ4Py,Q@”Ày¬Ã@{,Êï17²ha²¾¡x¬7<–¤ dÅÊñ§øþòïag)” ³W‡vV0”ßYndÑÎÂdÝ0CñXþ¡K2 ’ãÄï0ÐâCùÅw#‹Cl†â±ª´âd K‘3j§¥?Ê9¾¤dú±þx5HÁÉ)©~%’ìóÝÓÇ›ÍKùyón8ϘüDM/QVë0ÐV †ò[Í,Új‚¬=F`(ëµÕ()àËЮ嫋õ7wËò‚ª4\ûY]C•Îõx¹£¼¯[ضåeVݸ2æ%F¬ÂCæ¼mÄ`(¿ÝÈ¢ˆ!Èšg†â±Þ0"/×Rú )¯¯¯9ûß°•¨¦‘9­Ã@[)Êo%7²h+a²òÀP<–ø¤)èD¶‹T§Yl³Ë›4vÈ~†­DpŽÌJÚJÁP~+¹‘E[ C•†â±üV" ¤´Yù®W»ñï>+NG½jñu»è|PùÇî zM¤ x‚K[= ¬×¡¼^;‰,Ök(‚ZŒÁP<–÷’Oh‚1œøZü`(¿øndÑâc²‚ÀP<–7Ñ-€W‰ÆÎ¸ë›§“íæÇæ¾Sµ]òê&LÄÛçY‘å?²&/­¶ÝñƒIi*Á™²Ã@›2ÊoJ7²hSb²F¡x,¿)fbl"ª[pƒv‘ $Eæ°m—`(¿]ÜÈ¢í‚!ÈJ<CñX~»($mrØîxØvŒÕýK”c: ´c‚¡üŽq#‹v † «ò Åcù# '¢I0‘—ú‚3P™r: ´‚¡ür#‹6† +ú Åcù ÄжZçúúú+‘tØ1Œ€È”Óa  åwŒY´c0Y•G`(Ëï&€qÞ¿¹yö´*Yþ½\´.ï Ü”7T~¿¹ÌMDƒJ)ÎMÚMÁP~7¹‘E» CuÀ ÅcùÝD°D_à¦ß.sO$\¡ÜÔÃÀº)Ê릓ÈbÝ„"¨uÀ ÅcyW€¸h\*éa Å†ò‹ïF->† +Ø Åcùk‰¸ÖÀ•nk¾WÛsµD,mæ;¤­O–¤É:ûy^dßçùSQî,sÍ`¾)'ñ\SÓÛ‘ªX{`‘U¬%‚L9¢Šõ„á*VD7:grqöY·Š,Û‚¦^®«¾ÏfuRpGnó µÃñàyuR šé‘RB›h äm„¡”0ŒpAJˆï†µE(—¸,¦g´Vøy¹zhÆ“§l›µ£SÿQ¥WC‘f-|x´`†Q3iÇ=°Hk0ã˜Ñâ„ak ºÑZ#˜ ïhÁã†7Zô0°£E8”w´8‰,v´@dõ¡x,ïhÁ’T[£x,æOÙ‡¦¤¬ªµ®·¿Ì–ßê­ÿTë>蝹ÄÿÖ»`p ˆ)TàVzh‹Cù-æFm1 AÖ#0åÏ/’ÕÈüÒa Å†ò‹ïF->† +Ø Åcùó‹4¬'¬W¸zfÎixÄ>JÞ¶qKª ¼{à Qµ?œ¬ŒŒŒ#“U‡ök0”߯ndÑ~Åd=6CñXþdŰDâÄï0ÐâCùÅw#‹Cl†â±üɪ\ŠVí¥ó®°¯²(³Ç<ª^eQ|Î TÇ•oth …"ùä„m 9Vs<;ÑP¯Ý“JH©J %Í2ö™yòçãý¬Y.†Dp…LCÚCÁP~¹‘E»CÕ~†â±Î=7&@'‰Á2Ž’í¤©ôРahJyÕA`íŒäu‹V¬Y0ä´úŽÀN4”ß)45ò§Iç”߆’h—Zzh¯CùÍâFí AVãŠÇòNo©R€”¾E@ ä—½S´èñÄX™ÐÌÄ"y'´4!@´êßà˜ÎR)@ Üû€zhãCù­ãFm AVôŠÇòÍj©4”ðæVÑlùî­[‡Ü kZÞ9<­öÑfÀ²5År÷Ü[°9* h’^j+6YQ.dŸCuÑmÓ°|¬õ BmùDös5ü@5 ¤Æ½×¨‡>C‚¡ügˆYô‚!Ⱥz†â±ücªñ½âÈôØa Å†ò‹ïF->† +Ø ÅcùGX.€µ·Ò#÷¡TƒJÙ£Ã@(Êo 7²ha²¢ÀP<–ß@eåR#ß |!% †LaÚÁP~º‘E;CuÍ ÅcùHÍqôÿõ>T@¢p¹®ƒÀ-Éë37¬X›aÈi1;ÑPÞ9’f )î…CVõ`$¯ênX±ªcÈi¥h(of1âÜë?Î]˜I“ÎlÕiójÏ{gíõÛ%o 9[âª@¥iÀpÚ½mdð uµ½¨zÁ}¿[¡9Sh’To¨×í“ÀÌ}k¿I­ÿŪXÐ endstream endobj 150 0 obj << /Length 1125 /Filter /FlateDecode >> stream xÚ­™Ms«6†÷ùêÎé\TIHBʲ3½¹»N½h›fAlb{jŒ ¸¹ù÷= >Œc#‘ÌLÐ÷¼œ#‚6ˆ _Hs¤p¤püÎ|S¤B¬…@UX …VéCua­4¢´þ]ž ·‡ßn3"!ÏÏ/­áwßÁ¡Vè½¾3­î6Ì=úý 9êʬ$Öœ_FÆC…)ewÇ&˜Àd8£é ¦0ÎÅY!wÖÏˇŸ¾RB‘ÆZ2‰–oFŒaÎZ®Ñób›ì/Ëo]¿,¯ø…ÀHúù¥gxûe2Êî—adÎ~ñ¨Ëñ ¹³j¿puÅ.”`®[²Sy<•?ŒFjcý ÌÃ×0ÓQVÃ\Dæj/Ú$Ï¡;Ëj©aS_~¼úuÓ@BDÀ XHÚÉÌ9V*B!á§E éï`öØ Ú„vu:‘¼0ÃÉg@«É uÒgDï×IôIž(¹XQÔ9¼1«’1$¥¹Iø×S^n“<ÍòäËcr²€U¾k³œ T³¨ša=,ÚNtù8”Ÿ°½-;–»ì\Æ«¸9yMª#]œŠdm®”™9óÝ¡4§»Ã[–§q?<~…jfÆæJqLV»¿ a«æóéu•¥i|Xãjb( ‰Zj@9tPi¦´„ð&È¢¹wÜÛ`æ0T3y»‡¹z›GX0/sîp·û4:{OÕº@–!ƒÛ˜_ÿêÞýk2ÊÞ¿†‘9÷/º|Í ;ËÞ¿B—šÏñ£ÜVCP²Xç»ÿ’œáã‡ù¼Œ‹þ2§A`J×pÁMaR”ð¶x®µëÇÒZÌTz˜ku`SÍ}ªÃ8áŽêà>Î!Sµ¸³ùŽ©R&Ûääq™¦#”mkxËöû쑉Åûî°1—ÌRúiÔBKÌèLÝâ æè¡5æÄ§[ÜA÷ƒÇ4Z?LÖÂÚ-„â˜I¿íñ÷[LGY»ÅEd®ÝÂK ._3(äβv ¡"¬Úýñ©ˆ7É“i éÇ1Ï6Ÿ:Ås°}iÏ‚ïæìþJÓZþ|Ýc‹:ñÛcŸ1¼]7ewÝ02g×ùÔ9e…ÜYö’#aœð,9=Ã;ù“Qöä#sN¾@]ÂfPÈe/9Lêóq¼7u#Î7§49”ÅÓxýà þzäg¡žám¡É(»…†‘9[ÈG .í3(äÎúl! { ¸K5ol‚í—[›˜`®äåæ[¯­»—9Å6{7Èr»+®AÁŠè{ ¬½)MŠª»^£q‚%Ú›w0—°ÚmÅ’ï»rü %æÜï-ÀÃû ™Œ²?!ÃÈœŸ:WÏ ;Ëú„€§ÓíËÉv¡6îÆáqñ¬ª=ÃÛ3“QvÏ #söŒ@]žgPÈeõ IÔVÕn)?¾ÅgÏô¯Ž庽‡ñLkŸíý8áŽí½û4ú´NRâòeÏ—>!©JƒeEm¦ê,·£ ËÿÂ[è endstream endobj 153 0 obj << /Length 1741 /Filter /FlateDecode >> stream xÚµWK“Û6 ¾çWø(ÏÄZ½hɽ¥m¶Kw¦žæä@K´Í®,©$µÎæ× ­lkÛif:³³AŠàhqXD‹ŸÞD<~¿}sw_$‹8“Xd‹í~‘'ð—„Y&Ûjñ1ˆÃ|¹Š£( ~Ô¶ì­Õm³ü¼ýõîöÇq¸"Áï¢Å*ÍC‘oè³wËU*Šà$ÿl Š› 2z™ˆài‹@ZÞ·,¸£â]êeSÝv'Õ8ÚÑî¯v>| …¶W Û÷,ãTïV¿?ü¶Ì¢`K¶Ë" Ú¶~Ô|äÇäó[Šup>êòHJÛw]kœÅ7â£â |±¦Ge•4¸3)²ü£¬jì2ð)8íjY*²Ûïêœ>é¯ÒiÚŸÑ£Q8/ã(N™áœ²7Ú=Ó¢ìºZ—þ3.WYœÎ> ·öVY’Ð3v£«’Í:pÒ>¢$n‚áW[^SŸ¢(ikéÈ»û¬˜†;N7¡Øäp“¿ÁvîqIn’tÜUÝ9ôy”>Ç;JÙÐÕ íùâ*{ÇHZ{Bƒ¥ÑÊ{ôˆ+½Ç¥½2ätØë=ÛšGxHÚââÙ¯‘Î{h¯­Éu|; ±?ED7ƒÊ:CÚ;tO\ ò0¢ ô@Ê ±YÀj˜Dœk[„pR@^xd”B9íõ> éL‹6<éŠ"_x'Á`U½_•mã¤nh+¥kFV1à/­›ŸÑT$\†×óW¼ZP z³¤Y&Q°bó §vºìkijÂ8Ð'Ì5Ia‹Ù2fžgAÈ‹GHe[)>ˆ5,ˆ‹à œª®Î¬4OïÐÀž“´ÃŽ|tm7œ{ê~ƾË&rSQ4`¼ŠFûhÀ§,k4¡ô'Ue£í‰¦d"èXò½Þy¥ñ5!R0`oãõgšŒÈK/‘—Þ væ=¼ÎÃ" vŠWùXÑêY»#^ïh.ùëþ´Ÿµ'ÅÛnàBûN²‘‡‘!“À>[§NÈqÀ x™4²®UMÇ\‘X4Á쟾EL˜.É^j’P`ƒ¤¡‘®‡ËhnràKºÖ=Ç$D¬~P4³hKÙÉeÖZoQ¹ym´¢¯+ú¶iù;£þêµQKÒÀêCƒéXb6ÌDéÚ8$•=d/Æá¤––jHt_LHE a6JHfÏ@"_f¸Ší¹× i|8|qT†íƒÀ` Þ>ð%dE© ÓΫæ[¡±—mpA³G üi|‡F=ÎÝý&™–¤UƉ€nE„ñº Ç|Šâüê£Ë:b‘ÆCó(ƒ‡ë¦¬{Jz˜I.ë(¼õë ²ÞÛŠ7û$ À ˆÓBêÐÊyE’¯Èþ¬õWÅz¨ãؤ"ÚaY=\0ƒž3Å&EW†*°‹¿Y˜¸Ö{抈ç×w¤ó¯ðœvÛ+&ºÞŽ„4“rhb”?ÓTM; E„MêS˪_}ÀQ"qÓ×L€­»¤_bYJB o3ph„Ý÷õð~ÚѨ¯ºTlã•€¨L§)ͯ¦,ÆN8ÖWØ1`—æ½€cqš!¦½B¦Q—xö8‚±oj5äjYC‹Éj;$†´Cò°¬ ÿà ÖU÷G›oB8u"ÈÇhœcaP×íA—$zf…ÑCé™dIÅ•dÿö(­¯LøGÛñµ¯Ûó\o)â0‰wzº ©ËûÅÑSþ…éNMÕÆ§OëêvÚ¼@[CNœ‚¢œ‹à82%Lõ#ùzD (ý]0T£ŒO]^ðã§HDþÅ4åŸtŽ;%«á‹ŽË!õ   îæ3v/g`jî÷øz_ªgk¾6Õ Nö$%ÖÁÁèj…¢ 2 *ë¶'Ýš;"¦lñJÑXCúajø¼Oò¡Qý4ðù¤a¢uIC£½ÝBL«Ýj.vC?{QõC/u™jÜQלJ¾Á7O·ÅÇÖå‡gÀkã-¢·ú¯¤»Láiøÿ§ç;dä0@Å ±y&<®í·fC"·˜l1“Z±ö(Q*Þ)OœéÍïoU!fqÀ}3m}2Ôjà§éEÑŒçt1pº Ô÷ö¨¸]¦ó¿¸÷Ûê;gZ(iL ǹ/¾(òo ÔÕ-wæ8ñé‰B àâ §¹ß¯VÔ @TÑ)#Zý/J¿gØìý·FÈ«8´­æ<Šð«¸{‰Á|(&g]×#fw’Фwùl“58^Ú«„iÔ¸„5é õ‹xS„¹È!if1˜l.v½ß¾ùžú! endstream endobj 156 0 obj << /Length 67 /Filter /FlateDecode >> stream xÚ3PHW0Ppç2@£B¸ôÝLM õ,MMBÒŒ ô ŒŒLÍôL ") ÑÆš±!^p]®!\Š 3 endstream endobj 159 0 obj << /Length 1080 /Filter /FlateDecode >> stream xÚV]Oë8}çWäÑ‘ˆñwbÞ€rPá¢Ò]´byÁ´%©š@Åýõ;Ž“6).{µ/‰Ç™93¶Ï‡³€ö}:=8ú‘°€ '1 ¦/AÌ¥)ŽU0}Ðļ˜UHdŠÌTáãôj|ôCŠ€R¬¥d6’‘˜é6ò>܃‡HR‰nCE#N:µ ŒÆR‰&¿ ˜1 ÈŸa¤ºÜøõÒÁÅÇC‹˜ qIâà%úÛÏ Vq²…÷ÇXh¹ÅýŠ¡p¼u8i*¼iž#“XÁ¨uõ œzÀÇIÂ;÷‹׿ ° .“?‡Vj§f=pQ˜ê¸ó¸5C&ý0«c¨„ktYÔ&Íà¬%J뼘…S=çU½ÊŸBFÐ{mžÝdV¾-ß;Ò'ðiâ²:/‹Ê9åE]ÚB‚ˆJ9°+¢ ÑÒ£ÊrSÔù?„° ˜Bërõ &/×Iô^¹ðmùYÏËÂKcÉû<`œBrq6O SÌLåpÊ÷§ ©gƹ,—‹ÌMÐw¬³Æ…Ò´ÃéIÑEû{®w¶\ˆ]õsœú[2ÝEw9€Ù“÷šuÈëDêD“~¢k_"à:‰‡Ò%rí$öäã®vòõól´Ì£_ÀõíÞ\´úeŸã¦„qoæ¶™¹óVÍv+ï­dâ¯Dëð¸ŒçmÆíØ«'pTD°ï40Uþ¾*дÎ{ÃxFͳ»ìªî}çcMzÙ dºçFèIgäA‚]äX ]ŸJçé¶ãçþí`K­¿•Wàmê»ÛŸ¶Ï§Ç]ÓË¢ÊU¹rSËEš«Î,—uþ–ÿjÈ9×e¹xÍÛÏ/]Øó*/^(‚Ï:­Mû!+‹:}Ë‹´C\§«Â:6êäö(¿ŸUmÞZTSå3¯¸*…I,ûÚÚì}LÉæØ™³lGw'7#FH ®yë|—ÏyêÆ7ÍúÒ…³ÆéS¹Jër•›ê°S<ï*^ ’Åãß*žb«xÖð*ôi½Š%Dü7©Añ å_XmóúƯ59&:¶æeWë¸8nÕÊ× 3ËHRº!ít·ŠÔnR¸¹p£5–½ÉË¢á¡5áVä1Êì]>Ïk“ÕïÍ„ñvœŒ"=‘ˆT2 ‡lÈÑp'«DYèC‰¥³ú?Œ¹N?ó²LZêˆÇŸX½{µÙ˜vQ…±@y÷w“/ª=R-Ô&;‘ )Ùt^×Ë㣣õz?,¶ÅÅåjæÝd¡zB{¸w­Tb*`©ˆ!à?¯qçtàt>=ø÷[Ìf endstream endobj 163 0 obj << /Length 67 /Filter /FlateDecode >> stream xÚ3PHW0Ppç2@£B¸ôÝLM õ,MMBÒŒ ô ŒŒLÍôL ") ÑÆFš±!^p]®!\ŠÂ5 endstream endobj 166 0 obj << /Length 70 /Filter /FlateDecode >> stream xÚ3PHW0Ppç2€ÒN!\ún&¦ ¦zÆæ– !i ¦†f ¶‚…™ž‰…¥BHŠB´F™¡ž±‘flˆ\Œv áÆ% endstream endobj 169 0 obj << /Length 54 /Filter /FlateDecode >> stream xÚ3PHW0Ppç2ÀAriCC S=SKK=cSC…ä\.}Ï\C—|®@ =¦ö0 endstream endobj 8 0 obj << /Type /ObjStm /N 100 /First 858 /Length 2291 /Filter /FlateDecode >> stream xÚí[kOIýî_q¿ Ñ(t½«h$a'0“¬´2¸½cÜÈnDòï÷ܶmÚNïœ^wúý¼O®³"½N;]È ·Ó‡aô®ÒéÑÛÎE^jÉÒáçPp–½”Çû½^ÖO/z嵱¹#?¾þZ@ÛHÞunÐqâpé„’ã.”ßÉÞ¼?rçïû'È´Qû}»E²‘œ¶Hì 5ÑzˆˆÐ«W”,i–ä¦%7iòeòÉÇ÷ÿN/GòÇ7H‡+ˆÅåiZÐ'Dúà’³ôkAçóÐ¥€ôs@ÚçI-–'Ayí{Ip‚ø† çÀÁû×÷½ü*¯‘ÊLS@Ù…)œ6©Ü¥õ{aZæCò¡ÕÄ¿Ÿÿu–ݤ×{y¯;Ê”ƒtäU˜©ÜHç_|€#1Ça6û׉Fò¶3nci$²nq=Dªˆ¥?Ê zš&íÑo~9Ç”)ɃòÀ !Ž¥"G)ƒ~¾>a±{󈑎©¶¿ã¶+èuÿ2ïfý+JZË“ü¦ÓŸô î.Š2–Q9Ÿró±åÂ(ØË2e¯\¿˜ø%³*×På>ìu®°ûc± /y-£Ë«sûkš]]?òD| #ÉqÑée—ÍþV2é´Hoþ`òĂ͆C/³‰zb¼ í$ͤ•ü3y—ì'¤¼N““ä(9MÎ’ãä÷äâ®×K‹#¨‡Y/EÙå'ÛŠ1>Ú™fÃxG´ ¹8i”uK¶G 1uöG-+ÿúþ8cÃÖ™]=9 ¨ U-œö1N­ëàœZ‚y]œ¡‚ÓmçšàL%Ø:þh*…›Y­r3ö)¼X ±q[@7·~"î&Ûînl-¬~l€•µ ˜E·É<°•âÍÚ5€NJ¦û[w±°LÃíîoî’„~)ÜOBü4[‘µOKR²»Ý^þHC &»«vÕãšn±¢iýؼ䂲a‘¡F pûõ»ùý\ÖÊ =Ì¿ÔÎïÓA;Ϙ°è>üù¥—ß¿ü’]Ý Òáîímñµ,ß>%Çûû\`uÉ•A>/ð¾M_:½a:­Íš“Ž‡*­Rõå·c™JÝÖþ­Ùl¿ùyœy1ÈÆt<%}Òì³)çO«4+ž¯õiõ†;ê™2•#C›/Š;¾ÛŸ}Õ+_L´ß¹fõ†J ãùB—í5[—­è-¯«Þ²oùÕ½¥ìláè\½2Ò–ÿè7Û-ùa~°\~ù²lš–_ÊΔ_eM5*Ø´š«ê^š¨¹<ãÛ|ðT´eiÇ¥Tç&ë}£±7g ,®­GšÖŽ ³•/Ÿƒ´¸¼¦ä]>¸éôFF½˪Be–Õ«Ç6åï&@™·¢üÌ%ߌ7Kâ/Øþc‚›g²ùÂV“­UØzñ˜;\Ø6KãVž|­Ç¾RùxµÔS×3l‡ ]PiHaÉ»mØ*•¨_­ jmfWqCÌ>«è˜=„-2ûѯûíu˜¹<âª+\åVç*> ±NŽY6|µùaæ¶Ú/äîi¿Fy þ&müùbçìÕçð(ûE©Mr¸-êòøÈK¸Ï6¸cÐñYy=Ê*«-ÈÕÿa^j‘fòÉyý‡{*T1Ïñ†|­ûÃXy(õ¶YÄŠ ±È¬¢g`Ìöhäí›Ãýú;%Ënq« ñ)6Ëy·½Þ»òIuMze;â3Óë3l¤R˜êN:Ÿ°O´“>rI¿ÀøJZ>‘Ö¹¿š'ܪ„Z'Å¢ò\W ·ügÌØÀɈ”²Š;n·”üÅŽšÈ+ü-¥®…|â ôÚý¥¬f‡ÜJv|§zZ·ªf‡\-;¤Z;=Ö[M¥·vÓ^®f‡rÛöò¼µ…dõ,Xªš©²½õ¨+OʤVÿ ©¢«ßHÒ¶ðeé1kP}ž1¢ |µGªr|ð\÷äsÞ¯-ËÏ–—ñcï¯ ¶š*ÆÖ;ëÎeÞ_¼h×5ÂVÓÆÔL›íí*Õ£q¹âÙøfr|mÜ®ŠÛÔýgÆ*(¿('Ö?Ψ±®šNÖÃ]ß™®agêzøîÚ˜ªvkxå¯ü–€>9•ÿmãuÞø¤¼ß x÷üNå'þs]=n[þ _jFÇè·k[þ6éó´ endstream endobj 185 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚwT“ë²6‚´ RD¤JD`ÓIh"½÷^U@I€P’„Š ½)½7é*½ƒ(U@”ªt"EEéEàuŸsöùÿµî]Y+ygæ™öÎ3ßúÂ}ÃÐDH †²ƒ«£8!°0H¨¢§§A 1aHÀÍmŠÀ¹ÀÿÖ¸Íá,…”þ„ Átª¨‡BµÝ]€`1 XR|KŠ‚@·ÿ¢0Ò@UˆÔj£p,€[…öÆ q„<¼P> øöí[‚¿ÜJ®p  Aõ 8G¸+!#â4AApœ÷?BðÊ:âphiOOOaˆ+V…qçz"pŽ@c8Žñ€Ã€ç-õ!®ð?­ ¸¦Žìoƒ Êç ÁÀ…  Gb .îH$dšhé Ðpäo°îo€ ðÏåÁÂà…ûã}üå BQ®hÒtÚ#\à@u]aœNAÂÎ,Šàñ€ \ vÀ¯Ò!@u%# „ÐáŸþ°P à c.ç=Šœ‡!\³¦‚ru…#qXÀy}ª J¸wo‘?ÃuF¢<‘>Kö$Ìþ¼ ˜;ZÄ ‰ps‡k©þÁT€ëà8 Hê–˜”î„{AEΘz£á¿Œàs5¡?4 ´'´÷CØÃ ?,ÄÄaÜá~>ÿiø§ƒ0´ƒ; €G'¨áö¿eÂü1/ %ˆ@?0tþù×ÉšÀ0 éâýoø¯‹¨˜ikê« üiù_Fee”ÐGHL($*‚AâRÀ[„ƒß?ãBêø_-¤= xì¼^ÂEý]³ÇðþÙ>à?ƒé£Ô…yÿÍt+JøÿŸùþËåÿGóó(ÿ+Óÿ»"uw—_vÞ߀ÿÇqE¸xÿA¨ëŽ#¬а Èÿ†ZÀﮆpwýo«BX%¤ÒB`qaøo=«Žð‚à 8¨ãoÚüÖ›/œ  7Daç‚ô_6–A ,›¿M,aåp¿y.à KõÏ:ÔPì|ûD%$ â Ÿ I}À„5…Á½~±("ŒDá.@BÏ~@{p>h ) š0ì\øGl¨;CHþ‹„ÄË¿Ö÷‚Cã(¨L°SupËA¥«§Ðò ,éfêÁQ¡Á‚û¸.µa›…x“¬ÌIgê`õûNmúÊnÙ³¶}–j8j½Å÷„8ÔW8ìbÇÏö.Œ&øì³qŽÓ4=±HV¾.]Œé"2d¢m§T€9t™pÓøþUÝñ1Á“‡¡Dý–vH‹~k{eI¦.#Ûmó/ŸŒqMv½¦Ë;Lå|r}´m‘¢ŸÎ©#Ûzˆ÷¬ ïéë¦ëd¨íñpù;W(ŽNM¦—MUœ¼Â|:ïòÏœbtz;+а®çs|ÉÕú[ŽK[Ö7xÛo9Ú&ÚGƒ¿àÙéÐÓ Ê©˜Üü•HØTvIC|Â>Ö¼# ¡ùz¶ì»³vXˆŽ÷ähÇÐüOw-ËwÝÁ¼‚zñr§¥K_üê¸_Æx؇7ÿU™L·¤&À˜É·îg”×Íå’5½Ç2j!j)•êØb*_4};¸9à˜µ"µÜì²HÝçò»{>xñÓ¼íÖVežI·Š(d }4~¾fÚ7½àÉÑ&XäM-4­*Zï麰ç[áµ`­ÛãŠ*ô+÷¸J|ÿ@÷(% äÈ~ºÞÃ$ÜÁY6µØ¾{½”8FT¢Ÿûüh'ñm7ª…H àQ}´?Ù NêеxÒg†WėÛ${òº¨ˆå'Ï~È7§h‹»*NŒÅêÇ›øz}Zò›—èoÓ-„ Ü—ßé%.(Ò8ú ]™â}DýÁ¨7h-þqt‹ÒüNSNßHëè×K-%r·Ÿ~ÎÜØs`eÙΔ»ÌaÙjÃqfw†²¹ú]™Í¼`î¨ûa?yý–'ÇWfâ¥ú¬Œ×ó­5Ô=u¬A_pb÷&Lt«É3ZÿEÙˆ¦ü®ªßîwŠ©¬¸®»I—[¾ÖVî•9”\&kÛµ6ej?ƒøÚ¶:ÆÛ=à{åy7hjÉrJü^}‡è–÷àJª#³ICHé?zô©Ððºýø} äxÜÐÅê"Ž7_Û^EoÏ·±ÛÄÀ+jø‰ñ¾ÉqIá†Û|zÒ2”CMÍaÅÞ=~ìœ+x?Ú.>ý;¾¿‰BÕ"n£L¶¸~…”~ú¸{ð¼)04I7ræ‹E]µh•©zœù<‚¤ÕK¾ÏþƒfÍ‘%‡µ©ÚÞ+§tãÞHcª¥%Æu`z*팋ÔþÎt<ºz''#Kó†ùþt ¬þF}€ Lécgúr Åž,ôÓ×Ü2ŸÝá žðöv@߬ۋ}EóGûßêæä¯L.Õšæ~ìE}3öLY„]Ï€7mD¶(#šWÙÙ^11zm¼ìœ†[™¼“ÔÌy+`Ë 8ƒšk1W’HòÚ`ô8"p!°€€ ™gú¡¢ÖPdaO|ûLn“ý-&í…‡÷T…ã}þWš:U¾V;ïFx^©cÑÛÈä¯ëŒôð~Vx»èZe§$¤¥–î2üîZº_,‰äSQ? Ð7óJÆÁÑäS"Å’íþý -gåøðîS—oòžñ³wÖe?iÞ©ì¾èåAÿòŠ_À’ºWg†à Þ:¼³ª‘±N¦¦çòšSAcg–3Õ’>óžxÙ™øaÚÎ\Íô™“†­Ãp˜Ñ³ªjJÞ¢Ï2ý•FÔfÁ*h»Õ·Š2*D·ák<ê–¼Q€¼Ÿ!‡±‡E ƒL1¢È¯©-Í6;å!ätÃö³ï‰KrJÜA3ûq1Î"ñå<»—Þ —Ö}¤ ¬šÓ½k~ï™Ýñ;Ù– ÷'FyµQçê€êwºÚuc[ëžôÄ™¥Tîe,õÂ\ŽL5Ùz‘çÞp³îØ¥‹Ó™‘¨1ŽA_k`…uÚÒ +¾)pF¿œ'‰%QcÌ ¬X*,r›X¦gHëÂú;u|"WQk€ÙGb—ö’^nó¹ì”Þ€jO¿ª‡šš"5üÜGSvIÎ ?ïVy£¼Þ×;•Kñʯ6y™Jbå]LJ¼¦Ðœm¾úP»žùú!™G/«3$$×’?=`ŸZ@ŸòÁ^‹ÆÒžYŽXžQl„»åÇÓrÚ·gåõ¼¤mVB÷nD3_ÏÞÐîhò±aŒöbëØ$öò˜2Ùéú‰ÈJ8ÓaÚ—3òÌ38½Å(ñ3ü&«tÒÁ<3F]C…¸ºž¾kú*å+&z{cˆÍ1êIù¤ËtÝïö×/-ÿãÿàtÓ¢#Ku]j5ŠkkÄw+ûFƒzä\ß@dã)ËÚ¤n‚ŒÍÌ(Y[‹«¾9¹ãn/ïG&FWc·Õ+ûùÚ–Lñþöã´$·“ŸKÖ|ºf>Êñ÷R½ØxÊf"Hª~¬DAµ=®4Ú5çíÂûpQ÷BÓ;Ü‹\’M³Xúo_V)Û™Ÿ»*ó3Çš2ÜŽRk".´0pšLMS©¹†^aº Ñ$»ÎIa…/8yM+2Z¹@Á¨*•a+s^©­‡ÙmF ª”»mwð„žÜ¹²¡•ŸÑ=šzóÒjªþõÃ7gŸŽá([ø…f ìZáË»ÑòŠLû1•Á«dUOÇ›,H÷С£ÛÎdyAƒ½J¹´¼ÖzKÌèh(iö¦cï– $U¹Ì¼{ï-ǶSr/¡ÈŒç:}Øý: êw6‰D?~©ôرƒ¥ ynKªý6áÔ9ª¥i@CÍq”gUájP0ÿÊ|9«mRÖ¢âí¨©(+E݈iе1Žê ¾­â/þWûf2¡BjC,Ë! ¨¦vŸfÚ$–*Ú~¾Ml•þEÇËM¬£pþ ®˜½,c-ö½ïÅîpPþ€ÜŠZœbEs¢ð¦èýyLM¡t/»¦|)|uÒp`¦fT¦bÿcχ'Á~®™kB?êô”ñX[¬_lvôÄI¶Q‘Á&Û"Bœ’½¨ÞLc¯öúyŠË·¨YG+ [» {ëRé \¼³[½÷ÍÄ®T¸¥×Žîn.n«r>?óh‹jÜu:¥#ŠQHÍ9šîWbiX‘.ÁJ·Z÷°ÊhŠ–‡¼¬Vpi«­†2Ð/îïÜ€SäO­ áÀ>аˆôÄÙɆ&%LŸ8‹,ûÌ‘­ %¢2s¯?~ÛM²ø¥PJƒ›.=Øòf£»Aï‡ôHÒòä5Ô$`ƒUâÆ³øìfPRä§IÅÉõþKª”#7¥d.=x²U{¶½Èžs½RÎAå{^\màŒÂáêÆ<¹LŒuB ÆŸðO3¡"B÷“ªc{URåé- ‡GM©‡oX¥i•ånsí’ÿèÙ`âÊàoŒÛ=êuÄÐìޢ䀗ʬö_¶è.ùïkœ‚ÔR)‰ fÁKõ…1^ˆÊHógn—â+ž'–ÑŽ£?;è_ðô¶ž·ÊœÆŠº¹~;UÈþX¨S´'ã³»kÚ$þ6´=çõãbý¼ÍQÚy²VçùNؼ×+-G5¹ž âðBëxk Ð4¾Ýºù›ÖÃ㯢3Ìå7© Ã.¦®wYRV¦Æâ¡î'ÞMfÆÎó$±„7’º¾ÖçoÛBƒ}[îŽæš¿ìâ]ÃÏ­»úx¼|Ô¡ãÏø‘¥%RM«`‰§²‘Á9Î ed­‹³sדª—n¦1_:˜ùZÍrDÉ ‡·<ûÆ¾Š›wú=¨:¥É)ÊCš*„ޤÒÙô¯Œ°[Ü»!ç®¶m´–˜BÁ»¡*+SãTÙÙ×p47¡µ|(Še`Ï«Ÿ;VªuÕHx«oÒ íýÙüC/:³xkLåÑ}åÜ…¨ÕJ¹LìmòC¦‹[¯¨õL[š>œ5Kg5TÃþE¡x NÞÿAu?&uë2ÃU:[C“39™3µÃÖŒ žíˆ|Œ—(%—å‡h¯q´X+ÑÆ§»fOJÝ‚Hëø‰ms1À§ûJTe fRÝ=]¨X~4öÛ!µZáž‹s±"ÒH`{@Æ8.™!êý.´‚1x¢Þïú‹Uµ:æ¦A7ŸK±,Dg'¡Õ¤[=û²²‡Õ ôT 9¥rZ»kÅÚ=¶ßß$Þá3öÚœ_‹%éô¢”žt,¹IѬªÉ¼ž3ê%†Öù¿jbÔ.¼´Ú¸X(ív‘±»×Ñ[g¦öT]FöîYÎûŸþ¾[Ïæ(Gé®ì˜Š`ÚNŠ8*6•:íÖ[zòk—\J¹]ð; tˆ?ös‚ª¡Š¾¸ŽUýÌÖŠ‚ÚÍÆÈáý$Îõç›39;ñŠ&¹G¾ÚT|g;šVYÉü‡=ÌTeùú“7­ 2N ¾%½ø_úivMã}Ý«R¢†tS®U-½½ï(¢t)Fq=vßʆ¶›9r¶’,ݤĤq8ê+ƒRÎ}×y«d²v‡I™9M‹9Lá×eä¨3.jL=x€—¢½e‚Aó„VsE8ï.½U\¤¨+J‚è„¿N¾Æp³¯î{œºcWñézÕ%œn˜ÔP(¥/Ü÷ÝÈz«Áu¾9·÷Ë´êI8Êdƒâ|9¯êÂæ.Ò¨IêE6+]rg ´')÷—C•ü˜žXQ-xß§”ó²‰~õÜŒôÅãö¹'’aNÊ“‹R ! ÁŸ—UI_ÄűY>ÚñVMœh#wµ(²¹o9Köõä£Ó²§)ë@@ ¾nìK!aí,S4§X¯’"ÏŠ·â˯ŒŸFŠ‘…·'£Döã†X¨¼¨’¶wùoÕoj¾³90’Ýa{` š‚L/ÔL9I¤Àî`’5UÁœ-з–ݼ‡e{®/xQÉíez„_ü©ñŽÁ¯ònÓ7<4mt§â‚ø‡«ùøo©nzò¢…CÔÓ §˜A9‘*š6°º©Ÿšõ±'sÅ&ÜlxE•ê+T Õ¥½¼Skz‘.çÞ¿—ŽŽ8óŒU÷ˆ%ôÖha™†À½öþå誹ȶu¹F ~ž@Ó[Ï¥ü„ÅÞLžïnsIz-Åqµž£ºëe££öqCÑ«\¶<^§˜3»e~F9_\4« t8Dßriج¬}‹•5oö$*í'î?áàçx¬Î´•"TÒ1UsH÷’ê-œ~^+%¡U{pÜÇÓÁðð#YwqÁÁÝ&aPíŒÐØâ¤‰­Ê%¢‡·Üà¦éŒÅ²v…Th4®ºav¸gja`Ê6ü]\ØÀ‹Ë+Þë3ÝGw™sKû¤t4l¾jnŽ£vðEAßúÒ=d-[StjZÚ~Ž›^ôüüëfZÚêøP3¹¾¥›À#mq7²³%-¸èð¬ N&F¬CžA­x,6fõÍD_ZêI>ã_׊æ(Ìfù–Fí¸‡Ž'QÑ ©«ò‘’Ô‹=þ|©”ñ€çO{îxJ¼áì_ðuN+á…3s‰0Íj?oÕ jœO¸Þ³û*› ¤·‹ºéˆ2]ãîÜZ¾ dœË+_È?xD9\ò¥WT"ܱeu³ÙWKXÂý•­‘aþþøC>ÛOSŒŒzê×x’ï‹'H0%ÕÜ/š ~È 7W g§Ðà·Uxk¬®WB=ßp:6à°øhÝn?9GŒ$9%j•èÓÀJ šâ¾êtnÐ[ê¼Ý(k•Ûë¹:ÿbï“\»a±1Œ=R»Zß­Õ´)y x¬eúŠ+,ætÐ;c"ì[ÂÍd4¢iåÌê˜mÍäÂ35÷D½cFºé5­AÁ×ÍÞHŠªÒ%DQtD!Ü|Ää ¦Å =¯„“ÞNÝ”#¶×0zþ#é°qЦ¨õ-/Þ/ÍâhªrC©~6á‹ìÙØ~;ÙÝG5ÖºF¡ Mþƒz¯IåáÂB“¨g#WOU˜Ë™i.&?épé£Ýì²òg6¸ÊåÑJV-L›t£8õ<\Ï]…p„_ú¬ªÄ¬òoì•ãsË‚&,yŠºxÂÚÏVFº —Gõ°·Í¼/ »Ö9X¸Ñã’hî%¶kšõìÒ·®ž…ÌÎ?R+‹’Ž3y‰ô¾†ðô5Ö;ŽºªÂ)Ëày‹¨û0\æA®ïã³Á=)d½˜-”*ÓD/ŒRd›L×}T1è¯Î6‚þŠãSÊIÞ"w¯¯ËÉV$Aí²–v–¬3ô/äQQ‹…§¼‹âº |æ½ • §åšŸ\£û8ÒŠ¢AöÁ+}÷h³¤Å®ôPnÕ¹ç[²|2}u^c(hÅà>¡Hý\ÄI-u¯fïf[`¸9–Ç£x«úãUCαwÅ6z5tz0#KÞÅiÖ²¹–Ñ÷x̯õ0¸×H’“ä3·ú…æÑ8M¤xmL}³ù±Gv endstream endobj 187 0 obj << /Length1 1384 /Length2 6013 /Length3 0 /Length 6959 /Filter /FlateDecode >> stream xÚtTTíÚ6¡ƒˆ4(±ARrè’fènÉf`fè–|A¤EBPJ¤•éFZIARâã=ç¼çÿ×ú¾5kíÙÏuÇsÇum.vCAeg”# ‚BbÁB"²€ªž1Xqq™Â±ØÄeCcà(¤ì8¨¢aP,Sƒbñ~z($ í…ÀbXR,%+"ˆŠˆÈüíˆBËjPo¸3 'h£0 ˆKåᇆ»ºañ×üý ð:ñ`)_ဲ; w‚"=(Ö æŽ¿Ñ ŠLPNpÖï)xåݰXYaa!¨;F…vUà|àX7À†¡½aÎÀφ}¨;ìwgB .ÀÔ Žù› \°>P4 À¸ ‰ÁGx!ah9`¢¥ xÀ¿u;f€…ÀÿJ÷'úg"8òW0ÔÉ åîEúÁ‘®€  ºBX_¬E:ÿt„"0(|<Ô G@ñ¿*‡e#ŠoðO{'4Ü‹ÂÀ?[þ™?eu¤³*Ê݆Äb@?ëSƒ£aNø±û ÿÞì]$ÊðçàG:»ülÂÙËCØ ÷ô‚i©ýqÁC c®0, !"""%#À<˜¯“›ðÏô¦~°_FðOßAP€ÊpÁ7 ‚»Àð  Ô`Ñ^° €ÿ4üóƒg¸p„¹Â‘ gÇÃ0—ßgüòÑp_ÀZÏ=0 òó÷¯7[<½œQH„ß¿ÝíWØ¢{[[…ÿwÇÿ²©¨ |Aq@PTBÿ$™þ%èŸi ¡ð?eüG¬ÒÈü®?¦¿+öþCÞ?âàþ™K…g- àý7ÉmD$Dœððÿ™ê¿Bþ ÿ™å#ùñB ~™yÙÿ3ÔŽðûã€'­/=^Èÿvµ€ý­ÌîåþßV-,/e¤+â_c„c p_˜³!ëäö›-¿q³Ÿ*CÀ‘0Cþó³âWó_6¼´œîâ?<%™`xåüóJu¤Êù§ÄD%$( õá—Œ?I`¼a¾¿H  !QX|€o/pA¡A?7* „až^ø¹ãá_ˆ¸ ìðÂüþq—“—Û/6à ùûüKÛ0˜/Ì 4>‚r’‹¸SÑpøJùºàRß­A®%‹'|‚ãèF¯ã+—ñ•eÜ›Eï+?ên¹:µ Î»§4Áv°V[y)º.ŨþGà‰}’ñÀR=h¬Ÿ¾ãcÞšòëv2fAS¥åÀSÏ@ó°»Äµ„ï´¹²=½¤¯>§9ôiÓð}ÝŽ›ì‰Y2Z.“Ô!?Á}Œ7»oörˆ+Ç1s˜‘ƒ+ÈBz“zÛ—rhoúÙÇs6í$~PÐz¼X~Àí9ÑGÃþÓŦ¢˜&&N¦ÛŒ,Ä{Ô=Ü*«©Ú £ùSc¾µòùlÏ(O ^ZM/ƒÇ!«[˽{Æß‚³<×;hSÊ «iíÑteõöq4Ør±»0–Õ·.*Ó ûæÍ.w3OÈ|z} QX¹­…Ö4ü¨ôœî~ß!xõ¸î°»úýBsÅKÅvEfWðMu7ëØ©IÙt–ÇqØ^¢& ˜íU ïGÒ'¡‘ò÷¾©_Ï版ܖ¾ØJØÃ¼)‘øíAPIÕ¶þÛ¹!ªQ„µmøy¸¤þ¹ã»ÇÛÛyLnbêQ¼9éêÍåÌ$ðÉUÀª†ÂqÂÛs%ôBj…~lºÉócß:9óŵ4Z—FK»cmîùÝ9’ÉÚ4/1«O”È5b_\ì]­ ëR l“Ùw^ß/*R±£û‚2?Ú.ñ‰Qé~ðÙT*"篷ơϚ0iÊqD/†[Éol˜ªx³»W'PZ˜Þ:^èmzqâ#€ÓRãâÉ×k×ù"8n;¦–ßÊô*T‰þ¯½êPÑŠFƒC^‚ËW§pe,Oß°oì®6ÿvvM庉éáóþs­£ŸzØ? ,p Jl^Š·Õr÷ÓˆIÜì£ ¡OwgoñÞ=s‰­™1óQ®œ`.Oê€Í®wõ\P¹q©QL„V¡o]È+äɘÑÍç§=Iɺ3tÌ–Ps«cS1C»'Yt˦ɊsVM1Æì+Yÿò‰ä£gŸ|5rŒEןÆ2-Â˸Ff±€tE Ê­³žR}_Èác¿ïiyÔi•*Ž”`A~˜‡¶«"!õ›1¡˜z{„ l9ÕÜY¿òmÊ2¡‹ãmªÚ}ÚXwk€I¢d9èF˜ykÓÚðˆæðõ”Ý8áÂ÷W £®>‰‡ >ßLb8ËÎÃPFò}+}ÉÉ‚ßÈg²‚E IÓÎå뿸oUVeÌt»mÏdGÌ–| %­ªzõ*]±›ÉAqW*užÜ¾'û¢õ£·»Ò¾†òâàa–Ý[؇š”r’iµ5Ah/ð±OÍT .ŸÒWjbK*ƒöýYG΂X¹lf=·Bmêê–ŠĽ٭Óí´êž¿Úz]vB×±ìwMd–¥hGOûHHqO‚w€ä,ãÛÃV€ý̳û)‡Ó­⇙¦Ÿ¬t„¦t¿vó5 0h¼× €Æ¨ÞVÑÈj±²øMò^‰Õá‰j54\*©eÈɉøñ常F0…aκ‰qmÖÛwØy”I§g”[”Ëõ¡c™ôvSš€*X¯X´ÑÆ+9-;zHòæÓú›/(Ú[(ŠÎeÞõÌ*¶åê<¤wâcüðñà³Í¶ë3l ·báƒmß IL×|S–8³õmTkÒóú& öG>*å[ˆú²­J{²ë:*]¸ŽZ ^› ßïR¹¥Tþýxƒ]$¹Ù*åĹqÔÐÊÕVòn ›ÎçóÌgQ[®u(µ?UÔrû@鵚£â¾ !a­_!Ku&-ìò“<¸×41°@( "u‘&;>Ü…‚kƒ¯Ê²4ü d¾2ÞêâI^äí9mÐ:qÓ?® X4 ®<ëz; »Ó]„W½hâîâÐ[ÿêÞ¦Tm1U˜Wâ>åÈ%2þäâÍc‡§k—ÚrRfS„]öZ3\†ê¢9²¬æÊ|&*ºÂËò8úM œj–rîìA&B®4àC9ïº1Ë‹HI2iÁ‚éã1T2Us›)Å6‘£òYˆN JÜžfdð±ÕìsR#…ߢÞê¹dhQv¹]ã›ÅFªd^ËÎ$€|c{øFÌõFÚ‚¥žÞh¿FûíÓikb÷âó:ÿ÷!!$dÔÜQG‹¶B)옹J‚… sЊ9_â…)“®I8“@ÎVØÌË-cjúúüÆzH|'1®Ñ0ShµQ÷Â@¨ïá…ŒöÖ}–æ1T »ß²Ë(L Ï÷¼Ã³@°÷Ég×ÂÑ!n)Ç5)^ôß#î;ð#®‘ÀŒFí•\$Å®iÎB½ü™Ìzéì_=ë¥í¸]f½‰[쌧.KÐãïtô’ ˜Æõ…•‰Ñ¯š›Ëå4ôÆ ^¡ .52Èšƒ 4HK°†¯·FEº>»eskN‰2w¬94Íqüñ$é­yØ/µ´9sÂñSIü4{Í*n8uøƒÍçÓ#¨¸˜áUO0P$3ïiž_ó²'HÆØÝÝxŽq~޼âŸÔLz©$w%Ov„Y7ËŸÉöÕ6M›ÿî­¯ö6NOCJ†SK~Æ¢<æzý3!éG­M–1¨Ú‘×![Z3ìÍ3x ¬ÌøÞ;*%dæâ9÷JÕ¡ÕÒh%ÏxÅDÿR8wÓs‘0àŒ‰î©0œ >þÉ‹Ì1ëZ‹*Hº³Í_Y3ø™!ÈOhÇ:Û·v~ Vö*Áe^öPþ(d-žk2&êèóß Àæmêî1º1«õTL“·s¤±³/ÉñKyØäùø2Q[Ík€ì¦%ÔK{§VS訙ŸÙOÕ¦jT|ÞþÊ˪|QM3° v˜’öÚõâß\ç8ÞUÛñï®à¡êËf³}‰»Dž`îQt1Q[€!¾7‡VÏ®gîIñU¾æ~{UT™¶7üƒ¿ôðÞi¦Èd‰JJÛk/B«ÈüÅI‡¬±R-Q·aqÎJ7 ¤ úïêGÅé¼"Ì”Ëmú:”‚ƒó’Ý×ß}A(7÷9ßù¬¸åÇarÉÕ“Ù› ±ò/r-´ÓDÐàˆ1M/dä«4(TÕ"Ϳӑë2Žç¹K/žÑ¼ïµh½ ¡¶~áà‡»oTNÓýÐÆèQËuÈMÜÜ”þ[üª>°ïlŸ«çžeÂeúZ¿NG*¡Œ”ß8mdÝŸ~Òeµ×N³aå j(c¾œw0fmxüÔ!4S¾¾{v{P'¼i˜Ró>OE•ám#¥>J­ñ9,WîâyjF“uŸT÷Û“l·>dæår¦/VkõµÐž[Êb.Ê÷f­¨à^Å¡-Ó‹­;[럨­ÐW¿°¨ííË&ÄO8³^2Î'žR”±T—×q‰´|óuP\^wÛüGë¡—^ç¤&+Œ2:ÉLTm¦:…PKÎE×î”7áÖóD¾q×=;Ãsý.hñ¦ž7ܹ*¡û§ÕäTèÆÚÄ™ä¯6Ocö±%ѧÞ*ž¿ñ´ø¶lßÖJÛǼö ð»*DÈ8¬éz'¡ƒ×¡ѵÀ Åëlt#S1«•O;ì&$¯o gù üp€nçP¿è¢ˆµ.닽êðémzVn‹Ïµæ‹ëPÖë—sü—á;ºÐê ;ï_­t+ýÈ] jñ¥\Þ²xsñRÚ2óà‰òæ•€+eÅÛ…þ»qÞSÇ)Ô¬Ho°yêpwåþ ÞÒqP* ¸ZRŸoN¿ëÆàë¼?ÔwØÙœüu3™näÔèýç}G—HþɆ·3Y(²øñ—fd þ»®_]{¡‹½*!Ùiò­4–Ç~Ó5¸â~¢ã› D]®ûç⊖¢¶-‰âšO{Ÿ§î<µkî÷Ô…¡*2ž˜mì_>ÈONî—RXçëÈÛMÓD&fÕ”(Kq| P‹2–Åžêµw~?Â,½ýqWFËò{²KnaÆñüùÇÓü4ã/,Õ×_¦^íúú™½©¿•ã¦ö¤‰Ô•¦ +Ö2RæÕ‹[w&)X¸?+¯j_æ/ZŽyW[OJ=A}k/U?g‰SÒ»Âäš©Õ_7&KuŸ‹÷½Ü\QL'øÈ³¿~Ðzap6×Ðà_¡ÇÐkœåÍÙ ×zV¶^èÞ't»ßNY|tt›µØ?B­«tYìFý4ýÙªÞ˜’Â>y 7‡E½†…óÑçÝçÁŸasæjÚÃëê,)ƒ^ª¢c»:L»”»VÉ]O‰žä&?4 ’»Ë1Ø ³?x£/É4»ú äàØfåÚéÝP 1Ë5br¹4²¦À¯Æ€šMÛ= M¯!És£öÓþ'<™Fb]Žr¾7j°‰í²™ôÈâî8RmLrÕ`µ“. +¼Ï18ßÌ`A›Ï„µ0ùÚ¾ª%iPà›ßzÖ\eŠÈ<"–@½½j½’Ó‘»* Ï]ÀC/Œµ)×7jÖÚÑêýÞÏÖ¤h*»¡4ÙbXÑ?'¿dbÙ<-R._ÌWï6g1BÖ(îR Q«vK˜{mJÄggrq@5ét*@s[¿F®_•ð{Ù¹y¼ñEX•ËÐþ¶XÃ'Л1ìÆÙ™Õg ‡H°}ºos|8±YV`erUgt„†¥ÙÈUI-r¶´ˆ•©}…ÙnsûDÝ Ã/dnj‰ÑVÙpŒÑ‘n‰™Møw|ëöZ„d¸÷ŒçEîμçSOŒ‘¦¼wb–ŸqìÃWºíJûÎsHvÎùÎüÚ²)º·Kžäù …`­R2H‡XC*a£$Ш?šhw¼ÜÞñÇFÞ ÊmÓ®4¡‰Í— uÁ »7¼lQÛJÙ6!m»Å”4býÚ¹z,åD;Ãfê5=k ó½ÓúcèÉe ÉìÛ;àŽtåôY,]iÓ@éS¶w‹€[ !ÙNeäÇGæ3‰‰ ''éF•ÖS3òfÍ–²ÌîML*:ñïsÍ•“mè×O©˜HÈD†7¿&ŒÇeq´Ž´e¼v]5ýÒ0½hçXhÑNJ2É[q“¸ïCR|¸ÊG{?e!ÒŽVŸ]ÒjåŸ/ŸÅÍ€~,§ì¬¥zÝA8&,$x ”ô·ù€Ø¡ì9Íпv³7LGitÚ"ßdÉ0®·T§ÁÞFß6uÌðºÿSú–èX¿¦¡T3Cë†Õ¢E·`¤§Ä®>Z¥AÒgνýùeŽ:ß[ú£•ou«$¥ŸîÏ8_8&ïy´pV ¹SâüôÐ?ßüÓFÄ"ZN®(Fç ‰¤@ØýèÈ H`›®Í'ªášuÁù ÓÈRÍûÔ8N¸U»–¶Å­+Z_|[ä$¨Ë-I€Íð<Ñ×oƒÃZ¦´¤=¥5N ³L, ¯ èówX#ß­¼išH%}z?ïª5}¼ùöË~ßx„Åð88’moæÌ*$«ÎuÇÙL*?»ðñ"™E䛬sZo-U/õß³Â~J§y7¬ªž™·Ü-O!qëíõ‘‚ŽâL`þ˜Ï1n°ÚÓ ¹û×ÇK¹Ó§'VÚ4`Tó^,V•—õƒõ[½dàÜÕµE÷˜v¤›£°CR¡…fÖŒìð×wÁU)$½Û…´=.Y‡ýMЬJÅ37 úÅBcú‰NmlÃzЄ‘”_åû¢X’l‰\órE"U7[åù AñADÖáíΘ7M”cëüä¨VÝKÝö®ÆoËÖ‰˜Áüû.:û^óoØW˜®T%/Hc´¸_*¤ÐÉJÚ›&RîR ÷³îˆäâsШ¡\ú~hý?®„› endstream endobj 189 0 obj << /Length1 1405 /Length2 6229 /Length3 0 /Length 7197 /Filter /FlateDecode >> stream xÚx4\íÚ¶ ZôݽÎè%zÞ‰ c †1ƒè5zo!D/AtQ¢Ñ#ˆ JHô ˆß$oÞsÎ{þ­ï[³ÖžýÜ÷u·ç¹®=³6'›± ’=ÒªŽD AB@€Š®±%E…€@"NNýÛNÄiõ@Á™ÿ@¨x@ÁhŒMŒÆu‘À=O8$ IÈ€$e€@€(ý7é!P{ÁìºB€{HEÄ©‚tóõ€9:¡1uþ¾ð@x iiIßá%W¨ FtÁh'¨+¦" #!0(Ú÷)xî:¡Ñn2ÂÂÞÞÞB`W”ÒÃQžWà C;Œ (¨‡Ôðkd€Øúg4!"N€‰ õ—Ãé€ö{@"P˜O„=Ô€©0ÖÒè»Auþþl$úWº?Ñ¿Á¿ƒÁÒÕ Œð…!08 ¯®#„öA Àû_@0…Äă½À08ØøÝ: ®dc&ü3 âsC£„P0ø¯…¥Ál³Â^éê E QD¿úS…y@!˜}÷þs¸.¤7Âÿï• aïðk {O7aSÌݪ¥úƒ1ýÛæEÄÒâ Ôõ8 ÿ*`âëýíümÆÌèï†t8`ƀ ˜/"Ø @{xBýÿÓñϰ‡AÐ;¨# Aôïì3Ôá¯5æü=`>+ †~ ð×ç_wÖ†Ù#pßñ°Ž¦š‘>ÿŸ‘ÿåTVFúüE¤‚Ò@’HJŠÿ™Ç ûÓÇÄj!é¿ÚÅìÓß-{ýáÏðþ™K‰a.Àóo¢?Š!˜ èÿL÷ß!ÿ?–ÿÊò¿ý¿;R÷„Ãûyþü?~°+ îûa®'£]$F ˆÿ†šCÿ’®.Ôæéúß^-4£%„#†Ñ‚ 1! Ø_vJæµ7€¡!N±æ/»é/½Áa¨ûõ„ÁDÿåÈ â‚yŠ 0Ôüí‚b4ôϺjÒþ—ØDÄ%`°/æ¬1+q€?£J{¨Ïo2„…H4&€™1à€ô úu°¢a0 33 å‚9§_Îßv8@سwâÿ2ý£&ÄÓÃ#ÀßäÀ4ô÷ú·Ú¡P(„há"îü"¼ã¼N‰Ñ[ðÓÞÊjWL’å@´8škî©¿“~ŽÆ´»òCûºÑLƒùŠÈ©wŒ|ûçã>zòB–34 ÐXjëʇ‚…Ãß{¡,öHÇ É̘uŠƒdCf²‡V¸VÜ©æï.#${E·žo_u¡¶îKï\¥§älŒèx¥ü®ìÇ–l«èËä ”VYž&Z¦WØa gÊqôß}×­²G––^ç dŠi÷ÕJÔDRÑSûÝcËM¢§IλׂÂâR?U©HOb§/qäZÆy(¹üc¦hðeò¨g“£žJÈ-ýGoš=âïäò{—˜l7rM¾ “е¦Ä8 Ôer(sÖÚcŽdÔŠÂ úpiYx ]‹×º3Ȳò3Kì÷ÍqøÂDm6'éÎÆç$ƒD¬ÓåàRCŸ)KÀYÜFÌß_ÞMP1pRháè±9¯zŽÞúölVeÁšŠ8ùÜúºc¤7êɱÏL3’dÑ™³Ó¿Ü¢%~ú–ÂŒOM]¯=‡ì¶åMÌOœ 2*ÈÇ5xÙ¥!{_Qz~’=ÑL”¬Ð„bÎDg +KÐR&B)x†œ”Êe¿‚ùùûj‰7OåB[åÒ¥‚'o¨î&’ׯß2ìý~Ó&ÉÎãPX„ÀF» ë¾ÓÃ2=î{h±$XóNÒågeËéCÉwËÊ?Mƒl©Ê=(pˆÿ‘ðmë¤é ÀB©!ú><&­{:hÝöÙæÎûƒ LY¯&wû:¹Ó·|4›.Nq©ìF4d†ØÃKàU͉âí*Kƒ41¦Vƒ`Ž“VÞ7Í'߉AVg²b!n6Ÿ›ôÜ~Tº+«(ɸç#¤E×ktƒ¹¤ýq‰£Í‚TI¾IQ’€'›BEÞ!„°œš‰6à Úïi‹v¬8·ÆR4\h¸žö1-Qµ×3 ßòƒœá”„ªKýð2ýðQØB_ⵯ²»~ÿÑΖµ¹;£j¨n^´¥ØJÙqd+E‘eâì›" µC+‘u[‘¶[5mHÍt"ÐmŸizêámîîOú€—H’óÓ s=Vf£µ´£Ò½ì¶Äì“\iëYpVõkÚA:ØFN ç,êùv_Kk&ù£à$*çÖ€Ò’Å^‚p&/‡Yd¿Ã]žîÎkCà\ ·;_cdT½i]é¹AþV®]©?<À¦u+îÅÌ‹[tߌ(~Ú¢gÌe³»ß|ÍòTä¹S‰æ{SF5sËôižÀú·o†`ÑOêåpœô®c)ÜjFüâitЦ¹RyoÍšlÛ{³åÉŸ$*í#ÔafȆÌE¯öüÝ…Þ†4VÙ´¼z¹ÑòáƒëeU]Ø«¾7§çÜž2Ú»ée¤’>_‚›g¨êDDO:£h+?D;šGÖéBIoçßRÒ:7°Á®lÈö^È¡*µ×Öôsᜉ†ùüHb‰Ù515ÐjpðׯC1DïYÖvî ïzõ$NX¶ý˜giÕáÔ/TÜÉÖ ‹L¥¼»lÀpïÙèbWò¬À G#»“i™®ÂIÃŽÂjªß»pI/Ò¹Ûr‹ TàºYªb±^Š¸Í¡hzŒÉ§)‡öHƒ¯aiTX›>ox#I5Prfsš“4‚0\ƒ¸ø"ÅÈïÕñ±Ãÿ¨I U§'w7Šü³³×”ÓG·ß^¼\ÈG‰8p«û.¯ÕÙ=Ÿy®h a‘J­G0Hºs‡ÑoÞÐŽ¾sÑ—»½÷³Jñ) ¥ü\`É©öxùö¦ öÛl>RIw«÷lx»g-ãóŸg _†ÚÌq´pÅ}:>²¦‚§'n´ Ú¸ÂÃ{„“ÖÖlxsØL>õƒIޱW«÷&ViC:Ù e?§_zÚ`Ç)‰eK(ËQ,y!³MÖ j²ë':Ø#¦Î*¨¬…ñƃý£§‡ f2ø3åÀHo\U@ÀãnˆáÅõÆ™³þ•$z¡XNœ¨ï•_óXms«zÅ´¡ŸªÍÞoŒ…uƒ+r¬O>+Ì cïÙ¡ á©YNäÉ×úÑ^½¶exF_Þ4H'lp öØ ÝÎ{’ÏÚ<$Î:zdKîg|îÜðšg‘v!ö¥H mÒLñu“ePž[¤:Óïò&e­«—ríü4TØ9C K%ÞlŸë3Æ$âGKŒ >sl¶´É\w¾åîLP»3ÿ¹Äž»ºïS7£`[3ñk,aÆçׄÀ¨…nƸù·‰]G#jï_2ôéJM¼:Yˆ‡Œ7M ©°«csu4KÞ¶k89nÎçÍú†ïžÏ?·±ôM{YR{ƒˆÊV÷MÜÕCAÅ| ¥Þ#÷IÞDýäiÚ¸|¸˜Ì^a©Þ‚—Š'Ì2,¢ÿÌEϼÉòÕžúüÝÏÊ _\ûðWŒöxÞÏN؈Ìs’±•.¯v]Ã_bÅ“}¸†!g^ïVˆÑ~j§© /ô}BšøÞ‹•ò€ÿQRqKšZ$á틜ÝÁ9ášSfÚô|Î¥&4'rÁ@¥ñ‹—Þþ»†D qé.É>~A¾u¨PévÒ«¸4þ€­:ž6³Ù¯+±åÕpÉPmFsj¿eÛ=¹ìþÜ•b£‘º€Ržnº¾ôúÈz?á Í ~Ó:}÷ÃÚbTo° Š ’}_ªí¹5Ç2Ü7¾h=VZª&ˆnx½J?ߪ´‘ÖÖÓ‰†wÕk^Za™„ø Æu‹˜# bøŸB¡‰¥¥]XÞ.ï£èXÎ5A¼’å‰0öøÉ¾ƒP óüÏÆª>3X7%eŒßñ–Ôà@@w‰¼ýµ³¯IN|H_“™ëÐfæ*½{ÙG•úäãäƒùWí97¤ýn¾üd­²$Ü~Ôž<y³ ÉÌ·—)7è11«õ¸é\kº§}Jåã\Ø.D(€7vÎoª{÷â+qŸV.\UçÀð>ŽhÈY³ yÒqÔÉ}wÒ²s*¸ >'+ ‰ãS¿“iõµ™áo­R)ÏñGÐÏ‘m2šï²kæ¦sì[A½!{c%c5È#©ÄmoCÇ¥x·<> i¨Ð»Øè'ã½;õÄ:f1N^__ž»’PÃÁã$֜ԻB쥓^VØ>7l11l¸½:H`ÁÇG¥`‹û Y„%â0M=çýºÉTdR¸‡UzjÒ.(r©ªzë¼TUDÀˆúÝ®ÔxμÊêÓ’¸®07üÂé>CwïEÛ¼E1CQ¯(ZËØßõLwæNÌ€Uêbæ0Õ;joCSÜÜjÕùªÊ¿Õ/gyxèÏØ#$·Š)¦q¤Ãøjw-d¾umÉuäÈð-ë0;`ÅÓôI§pSœeù™ýi^£y'ß+¥8öÕióm‡Xh÷b/š5sû-Ü?~£Äüž—±:q«aÖ¤#¢/;iQg|…ôÞÎÁÑUXù•Ué¡ êî“­"½l_©—M£.r±2îà}7 ßq˜2Ýv7 <»œ»ŽËÁüŸé×0èÃûŒÊ‘þZÆ’¸ñ)•ˆ™ßÑM)X N G.À¹JDœBe8T2÷Û,qÊAFmSæ<yÐaõrFÆá¶Q`QÚ(oµ=[ˆÉJìÄ@ßMjüºñÎÕíhÿ^²Q±®~-#äÚöp[i:H´lÍæK·2‹ÙÉ#ŽCiµ¢vÚ$g9¢ÇÖ €ªÏOü½oÖÚ’‰‹ž•¨ï;Ît7ˆ=QÎþ¼‘»«T^E¹Úéþbâp”ŒuåÕò”X~,KTqÒä>è¹Ý[ÂêcwÆ'ë7™žz—Y%/õx=üHÜÑTÿ#þöIwÏ™ÇucxÉö„P`aÛø­7i-å·?Lt©e§Aêês’CåèjzØnß`åí¬ÂÞòÆë1’jçQ\XxœãGiíTìÓãÒrÍÌ_z&oÁöÚ5úuDqNKj~Í>m¦¢ùùü‰Ô[—Û³É7ïúžçéy’€Óð·KÊ;„J°Ñz%ýÑp‘ä­.JZÖQ¼·uÏÉ‚š‹6¯-3M ¡ñxxÙ‰³\å|6 ÌCÉÜ—E,²5ºK®–ျ+ãÅ™g],S {u”×Û •üiÒšàæ»…|¹]wQw³M¿„H»±Ùva—v¼ÿ¶Á]ª—«Ñx°z3Kž{ |앳u#%âXÔBþ^¡ŸÂ‚ê^°œÞyÄN; s¼¿ûm;Kyö)¾Ï»†Ç\Ê}EÏ‘k±çXÁÇ1šë½$‰ªÞkmçÖÅÁÄŒI4;öOýÕRhFJú{‡,ЯfSqИ­n91 óNý\8\\8¬Åvjip!­…µä/UpÍ3Fˆ>9Ítc…Ö>M5ÜÌŽÁµ[-§v;¾Ñtü”É$Õ½K}J ×öç¬EJ7b‡Êð-þu‘«v‚?—ŸìÝÙî|¼×£u+˜ä› ÚÆ¼g_¹ùh¯Ü-‚Mn ŽÐwgã\Ž„ *D\éyóG'NÚj÷ÒW׊Î}ïð¬×>ä|ï_ÉH^ÆÖaÈ’' äB­ø´8l)WñWÏz<>P[9°BO½wÔ×fŠ7|ÆqÁñBŽšácè\žÂ¶½¢(„—ÜZ´’!ƒt{–i‹“O7P“©!ûKI¾¬Šý³Õ¬›Ãnôu jç«u òîhHо§Á}¶¦ò £Ý·†÷ïgž-kEoý,OÛEnIÓ-]Ýv¢¦†p÷A/®æÚ‘3••O¢zXÍ:÷Q Þ&žþÉ´¨Žö‰ºsƒüÇü‚Oj* MgÖ«3=7`©=É_Õ1mÙ•¤RVñ¤ŸÀìste]ð¥{(y,µ“âàŸÛ—}8K³µ©4I )Óøü骥&³(µií¥æ«wØ‘åT=©ÑSõò·šª Gf nGø¾S™mÔËœêr/C{‡•£ðNN 5´ç œé5ZµâjØnG«šÐú-O;nÞÉH‹» ¹ñP ó«¬zw»ãju‰ãa !Y(þû åÁkz".Eàc¤ç=IÑ'AäÛG^«ÛÝ'AÚ‹æþyº3Ë¢ s‰ñºGÖßeÌée©)¼X“"ȳnZ¬ÉÞ WfM!Œ)³ J2XÕ’U(`3)ŽÝjAÑî✚Zo<K‘›²ˆýyë*E¼ñUl°G°.ZÞW®6’o=ÄN§ë‘ I'z€QÉ£¾ÎÝ|>Pš~y|ãÁÉÙ|Á0“NöNX¡A*—$M†}ê©á'«í(öþx*žE¶Å“—ýKƒìÅãôŒ^¯ÎÑÃËo*ºï…½NQg—0ªÊoáaŸðÐ6œ Ò³ÌTMÉí„|E}YÞ óAÞ³^«d{ã})¡¿$ø8?½3$NqXd¶6ZÑÀ_MQÒR]óê’Y2¶Ášóü]Å ïÖ§‘þT|“‚8ñK Ç5S¼~rñ7‰Q™q\u‰MݱÒ—4*7æ¥ò3·I kñt½>­ð8ßF—…­¯H¾N!¾îåZ[b¿1§‹ÐŸOfˆv%Š{–PsHhdÕu{2 ©w×ùÎ&ÁOîЭþP Õ<é+Ù@V²ÃˆºAO ïxd桉õ §‘ëT÷³ÅX´££p+>÷Vl‘Q)Æå™T§f¹Á§ìœƒÚ µ?½^?òTÌK! <æ ¾ê—’ºzWörËŽÁK¤Öͯ@<,^Í—>±h3ŸD8žj©oÉ(ô¢Óæ“ðŒMõÇ!ƒ¤Î"*®V%«ô%åC\Ì/\JŠ*:±G-j¹Ã^ì3—Òæ‘ÑôÞ5-{1§·(¥ƒ´w^DÍ‘Š’GÉgßadøš1…æ¶H·§‘æW“¬?ÔÛÀ#ȶ“ò°>Šsm{"Ekð+yþ˹š{/úÇ–Ø‘x–§?Y½‘nT'_²Ù²Õú žHª+ é&ú Ȥ׎jØs{S•cŸÄ,ì'œÈ*Û&êW¤Š~ïæS¾%Úæ‰x‰ÃѲ¢5Hº}]`«ýùð-kÇ«•‡¡‚Ò4†Âý%Ÿt Áù ó=CÃÛÓuM7XÈw6p¬cKí» ¯¾¼Ü®²Ý¹;u>–1ÈK¾‹fê­¬³šÈ«¦¿Wø³B_±˜S7Y+tù º´iÞ /,röC›°ÝúTß‘®™:ÍPüzœßE듈¹´¼CF`E €|ò¼¿ùDÕ\uÝ^è\YÚÀ^Ö¸y²Ÿôލ`hØŠfF'Ö©;Á’’¦w).éB³ò3õg¾fÊ,jŸñ€T-Êg¯D3ÿ®º6ÅúFÔüͱ=§²[m÷%&é"°\–§œŒÍïS&’âŒß£ãn©;‘+ßøà­÷éI^)Ãq®/¾b°îÝg;£ŒeÓ^™e·ù4õÝÑý§4°ÞAmGÖ]îçˆdN(×Eµ7«2º²K¨ÿýëÎCÊ‚2·”,ÿÖ•r-‰Û*ÚW*8ÂÞuO\©ñ«>Œ¿åxnøƒeJEç¤è8¹•Ö'Ë›ðcW)s„zërîM.’Gìáj©òc‘ͲqɈ½~pž³¾¯5±Úƒ¼Ã³>…bDzkdš28ǯTá…ûÆ¢½|fe<í “i=ïûÚR¿0±gO­|fǿգi=¯õùÈ-á}´.añB…¼[U›EŸ¾'Ê!—ÇQÑÛÚ¡Ô,{´×j;èÑNHýû2%Q¯j¡5ý\¯éZ¦f‘^ÄD~ŸLZ—/F KÔvwNsoXåúùN¤ÌràBAÕ‹.³â™öFJ»y"ý“änúšËwFoÈ_$×nù*n\·™®^ü~¥Ð§);ñÏ8¼ë«l'YgãòIl?¼©Xõö @оw±ÓscûVïö&{VзçþH ›ü¢è`cüí¾Žg6³ÏÓèxg³ý[ôÛêôß]ˆ•÷6’ù¼þ¼CÀm8@pâ­ì8™¼Öqe|õ2?—}®žkwxê'ÛVŸ¥å;û@mîfÏèvŒ›G¹‹.q‹"žb/”ëÕSÑô,xßH Úøl³Ÿ“9d÷³°›ÑÐùò«Jv:‘&O¢,5hŠø9ÿBªìþ7u}[Ù·¬[vц/NëŒá”Χ€$z?|/z,òåàµGœBTÚ~ô¨ c÷.×ÏhÕ¶ñÖ¡f"Órº·‘T¼Ô‚!÷ Cf‹e¦LD¦Zå‡AÑs¯SÙɺ ÍÛŸ†é_}›JãÓ÷ûÑ.i=v†¤UYr]®|˜ŸŸ JÜÝ–Û‘¤L³¤Ën<=}¸- $ŽÑZQMÎS¸|›½Jb F 5ê _Sä¥HÎ'Ãõ.ªwÖÕ ¤X24™ :¹n3wszf&XÝÊ›rýZ7ƒû}w³‚¢7•ßù¾ÙPö‚õNÁ•!·ß\­ÚÁ„?§X þ-[Ëñ¡©æëEœ:Ðy´0— ˆðà׸ÑÈ…=W‘v#Œ7+7êñó)ñ”o¤°GKLÐ@ZCT¸‰æ*^¡¶u Îü‹ð»VÞ!Õ‘ÆßÛ9²Øò?lE^æ0J}8S ؉un¤½>à/i#Èû¶£q#¨/™Mþ‘*ý8> ÇþUÅ« p¹¸’é©WÇ:ËH@Õˆ>¢ƒ¯´|ž9›`5ù©²'³¼Â%ê»ÖŽrg°q…IÄ$¾.¥fÓXX$žã•¯¡¾ï›³o¢?GÆÎ÷ mܹû¼¾e-ã–OŒ™Lëœl:#i–/ùž‚¼eÚžK¬¤'ôbHÜÒÕGœÄÚØuÒØ²ƒˆÚþ·²ÒX]×,œ²úX‰ðÔ–“¯ôR²ae\¾¸ãý^ ®||˜‘{*ú?éB endstream endobj 191 0 obj << /Length1 1606 /Length2 7741 /Length3 0 /Length 8558 /Filter /FlateDecode >> stream xÚ­UeX”í¶¦Eºé‘î.é”î˜`¨™¡‘’éî–n$¥»¥Q I)I‘”ƒ~gï}®ïì_çìs]ïŠç^÷Z÷zža|¦©Ã! ‚Z NNnQ€:ÄÑÊ®uRå:€N,FFYØ:ÉY"À¢0 xy<"""XŒY¨³' bc‹0ëi°°±±ÿËó;`åùÈÃI8ÄÆ ðüáà ìuv;! þÏuÀ` °†8€²šFÊêŠfEu=€"Ø ³thºZ9@€U쳬¡0€Ã_uA~·ç|À’†,pg0òp ì;ÿ±œÁ0Gþð €À60K'Äà PÄ èà úMàÁo ýCÈ}Èp|ˆ=€iBá8qFªjÊ)üÅak‰ø]y Ö™ (ÐõwKb0Q„%Ä @€=¿kY ÜÙÁÒó¡ö˜3 ò‡†+âdó/ìØÆrÃá0Ø¿§ó¯>ÿ£{KggÏ?§¡²þÉ‚€ƒ¬9±xxjµm NX\¿EÙÉ àáþËruþGÌ û3 æß;Ãò@Âurð€ÀÖX\êPÄCIóÿMeÎÿœÈÿ‰ÿ#ÿGäýÿ‰ûwþÇ%þÿÞç¿C+¸:8¨[:>,À_ àá…T¿ß˜ÿ•kéqðü7ÙO4ÿÅðß(#,Æ ídó 7'÷_N\âiB@[€µ¥ÃÃŒþøõœ@`˜Ä ü åŸ18x¸¹ÿÓµ…í~]à¯Ø ôwæòüáÍe¤­#­£Ãö÷×ôO–æƒê]Oçbÿ݇ôOã7†Œ ÔàÍÁÏàà ó„…x^ÿ›j`xþe«Y"`€ÉCËÜ<ÿïß¿,³¿ÁÈ;¡ ß[¢ƒ°t=,Ö?¿Ã@WìAÏ?wý¡áØV ö±–æ¡@± »ÔŒ4D YÎÀ˜œIOê@°ó»zÝÂ|ÿ*h§_jØšH¹Åmu0gÄè¯Ϲ=ç»MÖ­¡.R¦Îdð÷<ª×ô,Ýù„ËÏۄض¹Ìßá¦íDyͪ®¢ rëo}ÓÒ6/¾Å žhãƒaýdñ§wË÷'a¸pÆó¦ÔÅ$«ÒÝU-¥È´Ëìq1@^åÝ]ëúÆæÈkuí¸k)²mÄæÆE3sì嘿‚ŸM±?‘Ï’žoªè2Y«$î§Ët9%¥7¹Ç\ õT÷æÔO4 ˆgj¡šŸòB–qgXFœæ%¥ÞÊ9©ðŒéœÇàóÜ׸“¬žU½Âã¯v+¢QžI}½U¼Y‘'6þt ÙBÌÌ¢/ůõ;Vtâ×õÜ›™†õû?£ä+Íêÿj» Õ¬¿,•i.lîr£ÿ"þVÖ&´ƒ–"ƒB"ëC ,‰M;9ßu[0ûßÖÃlbpŠ2a7åéópN~ЊÜÝPh&'¯½'Âç©s®†Ý#‹:9!Z‰…ãV®ç]ßT¯IäÅ~–‚wüxRhäî¸ÕmW–´^äÕ••TmŸ6wØÁÖ‰tð¾¿ëlÊÀwóØÒvÔQ†I~§L2苟&ãp­r»9eØé”Þ’ð<û Ç«@YÇßEiôÌîö)U4kGJ鄇?ŸK¸Dp^—=®Ù§Ò UèŠòÓ¨ÀIm¨eÊ+cžXM J€w¡¼á¾"°Ú$ÈdYÙ?4`5ñ€Œ­ž³Ö‡æ¤K ó0ƒ!JOaÓ@?) ²ÉÄçØTöWŽz¯~ˆ©‡G„CÒ}›øÜsfZ¹ß¾j眢<З);:SáÑ›}J^ÑKÜ@Èn¼¦ võÉ#â+°°&}+ß<ím¤oÕÑ‘hô#cr»"À~H>YÁ>±H:¯"§¢$HCB¶Ÿ±ˆ6í3gÕX¿ xÁ¶¶‘ͨƒDó†?†åø;ÏNHú½xVú2/ÙŸ}ûG¨áÀÁcºS¥ù¯ëqúk hÜçÖF]£ïx{ÒÆ}™Íó0³KÁî.ŸÇ¹åCßfçî}s'8“ rãå üÒ¼Qü9ô ó’ ~¼!ÜÕR¿WÂY«\;áMý®w‡rNtÇ-À¦ðþÆ;ÅûL£~]ªÒóʉ%½-.æÂªè;y· ¶ñh€äQ]‘9PÕåR%cw—íµ¨T±Ü“q›åBý¯Íº†£ÇËõŸig^ì(/c ý"×§šõ|zíkk™ ôÔd¥ ¯ÓºkN#©¶¨Î2/a^]ô |"èãélbP”ì—$‹MûÈÛ}üO/Ökw˜%Ê `#;žèCêd¹ñü2ogw3…šÝˆ¥§ÝDi‚ÑÌöô[%\OŽn¹°Ôrúß¿K9‚t{–Vg(yÐçôÕ†ïÌOÏn‚n·©oŽDzÌöÙA¨xJp±‰Ž+yz’¨“4‚ºè‹“)÷Y’¸/áGÔUZ4/‡0LªE$¯[€zž;“ÚM"u9“ŒúëGï…HèÆ§`@$Ó9ç¬^Ñ‘¢0ÖŽ5¾UŸ+c¤o;®m<Â#N²ö§ê¯*…ˆ½•y=\öüÏ-éÂDüÃ^m¡«o óÇèÀmØÒQG„Ú§MoFób¢ó,a¸&¥HK$í¡kû˜ âˆ÷6Ü£–_¼"$D^©njhUâ÷#×ù&™æø®f!Ée: ¤Û Sç.ä=ܧEBüXgnÛ峦åî^ï¤luÔ€©1?óz®ÑnL4 ®Øbõòw1QÁòV¥µ™üÛûÁ»{¸ º¬IN„Ž`šÜ­xšÅœBôL¬ø k•ö_„²÷÷bnSÚí0…ÐCžÖÓ•½üÄJÑרo–"Ò{v˜Ýí;Hìd°_ñ*>jx›}Ok4`=¸Y#DÙƒ<.¾pDâüNC¥»<É#Œü!ŒKÀºKÃuêdИ2 ¤ðëMÍùÂdƲ´áJµKw83¼ÊÌ< ¸?zÇš9²Ô¨w ¬a_oøHœ4É÷Ž•UZ‡j¦îs.:j2kGŠ,K0¯×g¨­s.ôë`E U~[ÇÄ,A,Áñò Ž)}¡ì†Ë¯Îó©OjJò€J M:r™º}8ýáßÌò޲[øsÐÈtµZE\FHNŽ¿ê¹ËX}Ôüþ“‹­¾qõ$>ª-,;¶™¦Ãªa¨î)ó"?¾màLy"МTrOlGkYبËX»ìÅ”o9…`ÝàP)÷[ŠånR!)½ß—᎗ÈJÙ=â,ÄôCÖ5RQ Ö§h>®Yçoò þ ØXʘÞë"t'ù&üÏÎËýR’L>cÍÜ­Ñ©(žÜb…-}íGFrá ,óO ŒØE-w‹I¿~ã¾ÿBRtøáÍöQ­»é×\ÿ,SÏÂ(Ì%\ Qw?Öš‰¹í€i‹²_†óu;ß+´rˉ‚"ìÂVYAL̸ú]JÎæÔ¸ÀŽÈ¾ƒÛu(-áöÖò´ë7ɵ)†Û}HÕ ¸\¯|µVÑ‘×Á4Ò«Ý©?Wýzƒ«ºmUm÷Ü®I À~œvZJ!FePœWÉ5 g€IÑdÀªnÌblÞVúÓ$Õ‘°S9Ó“^ÊÆnm_Í«¹Ö m]•“$ÇU½YhDq«rê"Má¾$î †—Ü;Þdþô=ö‘»8ß4 ïåÚéçÆÓüE ´üÈì¹1 <2®:ªÉâ÷I5õTZF´­åÆ37‹h÷@87)·‘Œv?½Î>ñò)‹lï‹U¢BŸM[W¾>‚Ð{··&޵g9¦Ø!BŠ)ÙRé=êp²ê cÌ5â;“™½§äã\3FÅ8¡‚¼³@¬ÙÔ£HÑd)–ÝèUÏŠuûù§zÁÐpL¹&%bE-«\Á…%’‘HqH†U¥• RÆ€Á¶a ÑXg´Gƒúêe2.’~€ÇÞW *ÍÃǹè;挻y*r¹P±T#KÑÛ¸½iH<òJ¦KGÕLj²qxÒBEé`İ\¬Ò@píž’N°CJUMIQ…'[‘ŸØŸË±¦heB”BHÛÃRiÑHY´cYçq„lHU=j3L’…Wq”ø á)š!Mºå¨»BÆùt%ýR³Lx]¸æÏ%ݽ6™Âjx3Þ}¦% jÁy5ÉýCÚŒõíñËXQ„0ö1ÐRj AÓ’6#ÿÎN¯ÿÃÐq¤’AOK¶v%î;…¡XTƒ_÷áh.gØI…Ì’’tÙ–Ä‘O ´l­¢šæ £SÎíÝ÷Žv0³Ž~_bµ#“cexɺéíù¥×‡QØíhº0Î;«š*êâ xÑZ½)\ö¾©.BH*˜^âI]áúŽÑ·øm‹u¤ƒAù]Ž±Í ¢€¼¯¢G“©í ¶ùçDÑë±ÛÇÒ­«6_hI»²dí°Mƒ”¦dðü­âì@PCL}-¼ŽÂ!¬ì*(ÞF/Ù3^‹ñM~•§ìz£¢$]¤Q‹Ù9½‹(Îë×àҤȃ#Ô°¼³D"*¶}ôïö£ôÈEë?ç9ÑÅN*|dèÀ-Fæàt®…š˜>¯¢“T©AýNS9™h¾UÈÃà.™x…òíf":Iåpe>xˆ1ûsÜRø«ç`|¤Î,ÁMTÙXX• ©xTW×Îûºöú9]²)bxBãU[P¸-„ÃC¶¼ÖdœÉâßøËk¢Ã´U>&7©s(ûzá›Cc͇euCwªr_ˆ/’³¡XàüSù6 4½„ô ^5ܳÙA×SR;Sǹj\›ßïÅš\`Afw{ÇËW’Qg=XÑ(¢‡_UâN ©kËjÃrjì÷òÖrMMø›„JWDÁë{î£Óitë±%ÍsÌC&5Ž>·òN¦„ö½«ÞOwõŸMIVmXŽi†ÊY²ËÝÇðú¯%›bEmçüŸŒôüzŠQP LS¯Ö„â¢$Lá½¶¼FbyÛÿ¡ëŸî¹½)“`wZ~‘ß»ÐZcrФµí“Èþ÷¾É¶m2OõQ»Â“Äž5gÜç±¹+ƒv¯Š6—âãj§Üeo7jø¾ÚoÆh¨Es1g$J"iÚ³ Ð^Mt>Ê,àWèߟŸîæº0Zj}åFÆÇ¡eÕàóyz~B³J}cP–«A«üÝ/ÅVªp¡µé,#í¸z*Xó Y‰—¤2¶L¼SsP±OXZ*§rs BÜøHæ‡úyù”€&!>) "¼Êâ¾ZA¾g,Ëb]‡”èšÐ$]õîÀ^:·á[ZKH«f9BíÒ;tï²æ8㉟ 9Ò„ˆ?`K™^a¬ô—‰¸n‹¹;ܧ`F¿\qØØ^1 ë­Ç¾Hñ¼8pMZ‹Æh)#NŒ:Ä[먙ÑÒ‹ZÝC/lpºi ¸g¯líû€º}ÑQ?õ a>PŸ¹_1-|eXŽi›ƒ)zv]ÍidT²ÿ%½÷“xt7NƒÇìl¶tDc‡ÓîHVþœá~ú¼¯pþœyÀz)¾Øy¤‚ýÓ‰›pêü(}ÎSÖôS°\®»}÷ÇB*}ZBNN`úó™Tލ§Vª¬1,§_Ëó?M5‚¶%n{>¬­Íkìä'Ú÷$¡|Äíð!i3Ô:B„ûÜqÛ.SôãiY_1È9‚šI¸a𠋃Äh¥ÉBú„iMñpØYŸÅ aÿö%ŽêÇ@ÇûW8OÄù_Î((Ͻ¥«Ä¸âÓK.¨é48³ìr˜#8œ\ôyÛŽç?ÍÜnRU!³ìžfQóž(5–âá’>êׇÆ=râˆTc•$Ç"Á­]œ5Aõg: ê§B¸i)G}èò‰9ŸnaòòÅ:”nRb›c«Pìdª™ña¡+ðIš>ªæÄ‹zþí3šÓÙ}Ç}3}—ú(Q’89 «èje¢».Ö×ÅYÍ7´ApLœÅ‘íbÞÝmç]¤Ä²]§Â¾ì2ö_u Ã)¹c,ÝÒ&J„·M‹…¼À€dA[~ž®òx¹É‰iQbSBúÑgŽîËï{»ÅÁ¥,†ÓlÀ2ðÁ·Õf+Ìä¥CT  5FG¼‹¿¸@ZƒWÔŒÂQ…5oŽ fµÉ°ÚóäHzúòۘו TbÁ7Ans¢õ­švb¸CaȼrHJG`; Þ׿j ?„­ ýÌî·œg#7@Ú£! Û§à+o¿1¿üVú‚k¦í•}tàü%op ±3jÊØ"Í×@Ÿ¨¡¦Žwcå7çb(2"Y89>ë”÷.™$LºA­Nþï"q˜¢ªŒùp£4ÒÏã”»;h1ÛãÒ‘›TðŒ\zže»ëÑ¿öÓ~ZPe³X¦qÌGº½&-W?ÎÄ~«Æÿ„ŽEüºÏÜ+LvÇúˆ 0‡AÞ½¨ òÀZ^”Ýx™–ïÃõE”D¡»àÈ>ßÏíÈÿ2å5ö,@u•ZZsïWÐÉúù$3Û •Ç'Ü£•/—^!ÂPË×á_‰?¥6±Ö¿}.n¹Tù³{¼N˜f>ü&pRÝcƒ%"¶ð…©Þé'žÃ0«rP*gÊ, YI8@UïüQºl.UÔ¾M †ç–D÷çÚXuÝãúóq(¡­0Ke R=ÀX–›4…âTiŸÆÚ!Tñ4i× Ïú$uM9ú;fhh#fÝ’Ë{w¤Œ<µ]–±´÷yèÔÀ‹‘Xî'÷izæüÀ—ÚÇÍÍ/ŽLG´ê@È}â&ío7?ÖmK3•~9ß“ °çx“Â0‚yÙÑôãq«¾gíe°w7CåÅ—è~ûŽÓ²’oÛ^¼2&¼ŸQL¬emcŽR|¯p÷ÀÊ/‹¤Fó‡jüIÅ>Éx9˜¥Ýd%6ENdKhkÛF¿¶Vâѽ@Žô-ˆ1fÀMÝå邗빑+’1;7"=sÐ{qe¸Z=îÀ?ÙÜTJWœ~W%B¸âAS“iÛUë\ðHÎ9ë ¶Z‘"j=âû7”ê‡eïÞ]ÉÎ D–AïO±Ú´Ô {>Ôê•áš¾hG- ·‚†|-:‰[õ+Ê[V.´r3ÒœWOæìò+…eÄ·•5ú$þªñë1f w"®².ú6Ì`fúÀ›§ºë<^m–K§l¨½®1çpëOºN^+¼S}ÌúÚ†ølÏïÚ岬8ú™I´À? _†{ykŸoqþAZ©¢!G\+4w²$„r#@®ÌÛtÿÇ”X»8WùìN ?œlâÆÓf<øHd ëøÌ/?…ª>LFì¸Í:ëãËnÞxñƽ„s’,êVë§™Ò“fGº€QMiìχ§êl4ød%ú§ìwÖw•¹)C;k‡‡,ŽÐ–‹½™Â§=ç¡#‘]0â|É=¨}Êu1óDRûÝ4Û%z—¤P*#ºÙ·åóõróÜHÉËR¾Áµsê.æØÅk<ò˜|ŸƒÁüŽ]ŽsuÈ[rNûó:âó¾ú¦g ´þ=ev˜ºßš™1éO£|awˆÛJN;O âxýŠ€•Ù’±nþÔ¥[èÔèÖÁ>Ö¥UoÁö0ebœór5f×Nxµö³:]{¡fw^,ÚdnN­L¦y2ÎÏæTjÌR#á¡”ûAÎÐç‹Ç?^œë¡ÕË|u |1S€¯lº’Ê?œïË8ƒñ?š:3,„m(2¾µ!¹ü#ˆ‹ë£]Û©ÓO•³ùŸÒ¤\Ý>èðïÛí‹Ä¢Ów^aŽvxKþ¢aÖI}Êö^à\Œç&Jšâî&þÖ£pžþŒ&Yü¢ùf†àû`nBKgê¥ZØÐÜc¹S;¤Å rÓ^Šò uœQAÞ&‡Ë`Ù× ~ÝÕä¹ûãµ[J†)»zhÑú§áï;R3Œ~ÚŠQ+˜éº È×POQ1h(A?Ë oˆô„ò—_ÜI¬¡ æB.+ëIúI{fpë.Ÿë è¦VÖ§LÓ&ÞÿÔé-+5SI¬û„‰ZVó±%$¥hâEÓŸª¢¥o¬^õ^Û)`TìS¤ãEò!µ¸­ æí4Ã#ÎCWçŠÚJW|šèص bö2‡±g²Nš¤löÚÀ)%•÷Œz%fŒ›,µiÅü¯ÝzPóʪR#­¹zØòÞ 5®5]k‹àâ®jà¤ü°n7 KøZÛˆ C#qx5Hç¥ñH¬Ôj»£©~¥ijœFÐ_ÒšBLFò7¹°«¥»â3E£ï{‡1Ù=è2[ˆŠ# 9µgϯ5G''ÆÜzLä¾£/~6Ì"â!µõ%Š5màZ{¦æêwJ³S|’L¡oèB×·S«ÏË©ïˆK(cŠŒÞáŸ`ð´–Ê塺ÅrØ’f˜ ¤6p.v†Â×´ë2Y ‚\ÈUáÐ(þ\[ý†$åi®ŸÇˆÙ'gÔfÕXj‚K½ïÍ1BšÝ“í>-dv‰\b½»ýVOìbòCùiŠ#¿æFé_#{J¯‘ĽòCRÍÿ•FˆÁ¨¼m&’MS\âAŒøDÓDŸ V@Ã׳²Më^‡¨šïã`†ð5E[0+^.Tæ '¼7¥Õ/qOí®GɾkÆëµ@ÑÏ!Å;Væ!¡>•ÎBËgcò„:S2 ˜ûu·î…в":ã÷îK³(¶æ¸¹»Ð‘,±«ÜZé«|§pZLVÃm8¹ïg)cŦ÷™C÷UDMÙ·ªJ£×u&£Äå¬sª‘î¦a1„t¦F}¢.Q‹©D¹ÚIí©–­hÔ cˆ@Ñò X±ÜÈxìÕ5™8 Ÿçvež ­¼=Úf\C ­xõÝ$ZùjŽß¢¤{|½ÞÇ_C3)aªæûåš¹~°» cì"ì›Õé;S À­¨n=vJÜ<†®Å­ÙyWšâäÎ/:ÆBÉ™·GóÏXdÝMcõ–K”[ks‰ˆT%F 0£tÄi]¬ÍúŽ6:äI™‡1b´³ÛŒ‰fGç’PéîT²Š²‹!ændžºí~•¼ ©TÌ’ƒÖö®ýKý9fQŒ‚EE·¹îÇGB±¦irr8Ù\»ëbV'‚Yoç¨~²ÿ3¦ÛòÕ“¬ ã\ R’C¦¼‰m6S9¾g¦Ï”ÂÜìÔÈmŨžÞë$4D–³ÚR¤m’çñÕûbOJOßeÒ:v¤»–˜Þ‹J'*¸\îÌ÷àë Óeýûï¥2K.2Z‚3u9ÌÙÈòÇý‹¨3%ZSTï‰YY™ÂîXµÇ…‡V¨ •ÉÓÔØg$†Íª(¾'¿¹ˆ-ºd _²úÖ{.`–¸Ôxç?û4Jk¡÷š½¥@ ôË¥CÌÿΈ¥ÚšKKl·2ß]RK…ã2=fgg¾ñ#cç{o~uå-뉌­za0‰yèKÞC·#2H œôdç¥&Ëe‚ú‚f1Ò·Þ*ºB ×й1õXk׈¡t.)p wgÿu3½”PÌȱB°`z>Jtî6-¨U“¾ÆÑ¥±ÏÉq¤€>f¤QóN ñ%o1î« ú*)Úꌕ«ÊŠ:²Ã†*Z74bvíCPb“+ì+Lä€àU™¿=›/÷\†-›¹«õG? §ŽÄWpÛ6µê ¡…'r=Žá®£ëEó5¯çƒW:×_^½ø N˯ýHŠº¯‰¸Ïò‡ßŠ$ËqF* endstream endobj 193 0 obj << /Length1 1618 /Length2 16398 /Length3 0 /Length 17252 /Filter /FlateDecode >> stream xÚ¬·cxåßÖ%Z±mïØØ1*¶mÛ¶m³bÛIŶ“ŠSQŶÜúŸÓÝo?çöýÒ÷ýö[cŽ9Ç\ëÙ›œXA™^ÐÄÞÈTÌÞÎ…ÈÀÄ ³´5ru–µ·“¡W25wü5²Á’“ ;™ºXÚÛ‰º˜rÔMM"¦Æff‹‹ – lïàédiná RUR§¦¥¥û/Ë?!#Ïÿéù›élin øûáfjcï`kjçòâÿ:QÙÔàba 0³´1Ë+hJʉ¨ÄåTâ¦v¦N†6W#Kc€Œ¥±©³)5ÀÌÞ `óïÀØÞÎÄòŸÖœþb : ΦƖÓL=ŒMþqÑLl-ÿ~,æN†v.gàb°´3¶q5ù‡À_»™ý¿98Ùÿ°ýëû ¦`ïìâlìdéàø[UADìß<], ]þ©ílù× °7ûiboìúOKÿòý…ùëu1´´s¸˜z¸üSËÈ`béì`cèù·ö_0'ËÑpu¶´3ÿ/t'SsC'Sgç¿0±ÿ™Îõ øßº7tp°ñüW¶ý¿¢þKgS3X óßšÆ.k›[ÚÁ2þ³(’vfö Ó¿í&®ÿÓçfêô¯Qý³3ÔIšØÛÙxLLÍ`åì]þ–Pýß©Ìðß'òƒÄÿ-ÿ·ÈûÿOÜÿÔè»ÄÿïóB‹¹ÚØÈÚþ]€?0€¿/Œ=@ðÏccèôÿ 7´µ´ñü?$üg ºé¿IþàHºþ† ù_A˜˜þm´t³ô05Q°t1¶˜ÚüÔ¿ìªv&¦N6–v¦ý×0ô@&¦ÿð©XX[Ûý3z¶»LíLþ“ü_‘þEQJLECD…ö?ÞTzQ—¿YúœÿQá︨x:üåø?º’µ7ù_‡à„„ì=Þô/#=3 €ýo&'èû(ü/àe ]œ,=Ú»gbâdû ÊôÏ$˜€ÿúÒýQ;c{“6FÙÅÐÎäï’ý/Ã?ncW'§¿ÚþëÞÿmàžÿµî¦¦¦Æ°«ËöÆw툵Éõï[©ƒv7Ë €)¾«`¼½“qZg1<é3å,>–O‰74oùôæ&P/2ÖH'<ãoÐÊ<ÐÁ„É›úø°9pèÀ™L1öFVpétÁ†ÑÙ¿Ín g¤§Z§§}uu¶ú÷·˜ë ' KS³ûÍ“æê+Nò±æÌa Ñ®E[míbå“zœÒù—_Ié’"¨U)¡]ldܶä¯Gý» RFÌSÁûÞëàM¾§h‘_ˆO‡r^, ö^&oá¯^N2ÿÆ#Ø;Ó(SÝù¼à-<ëúþfªÜ÷}j·Ž^\Õìtzšhç—gEýMÑ„¡?ßµ­êH¿Rü^¸ýRž޼4eîWæ ‡GeÛ|ø³…=šP’_S.Ì_¾xÈoÛXqR÷¾?ͪ†OQP×áÀ¯þ·,úEÄ=eÿ/Ôê¡Íâ—,1{ð5;Ž¥tÇ\Ø••ä½!)zM™G*½þA`×slA¾‚cS »ðúqêÚ&åŒÈHTdO÷ÒÒ*Ë®·î†"I¿½‰Ã5n*W2QÚ ÓÓ½¸TÞ:8±x>HÆýOxk‡L«€êuû€={þƒt²°S“FS]A~AÎ 6Óê†*Ïq*x‘LnMmdý#],sƒö¼} –%AR8š!ZoÐg¾p (ÔæÇÙ>ƒá1e”‰áü¤3‡¤N´µD‘bhOypá±¹b„Œ™R2Ÿ(! »g¨›æ˜ö!§ÙÚÍP ˜òËk{J·ß¸0üwFO‡–´5ubQ z½)µ0fKõ–é{Iºs…¾b@ª›§«ŽL7=ÄKÃ;E–'CÌS¾”õ cTtõ,†Œ8åq ƒÖä Ÿƒ»á¾ÂˆÚL¬8›Òûš„<è3õ6éPæ&O»®ñ#éƒ=€è6ƒ]ˆ~$„g{wjN  x²V/.+­UÔ×pÓ•4¿<ëˆÆ|¦¿3²}µJž¨9ó|<Ò=7¦¼§¾ìâèצýÅzXCGm”Üs‰v£šÒÀ£Øí³Çh&ÍäÅ5%UˆK¾.oØ_Å”â`ò.eíY æµùž8-RW1•†}cÊlRJwÕ1§Ã¥â‹×/üo?÷òïNX¤6šVyå‡ç$K?tÇpÒxãË +˜M¡jzn9ŒÇ“¸w7HéJóå’BÞ_T¼|-Ó4D@Äîi)—=«‚Ô-ÈÆ°ÁìÝózÆA§e{qÛÇëÑïCŒkÏÞÿxe½½zûtîÄAŽJ~ðcèù¬?âÕÁ•(yâ/ðwŽ^ûâ>·F ÅÛÝkp™*/]€wÍë>ÍŽ÷(.%½ÿ™o|°ÇËoýSâUË«x—@ ™0Ð}Ü3pgÜ„•õLÐèÃqpÍ7fPŒHÛÀ¸EûÑ[/f°&’Æ¿3x]kó ?ýZÐ9÷ ¿ ?@D&d Þù ÷1<ˆ¸=édfÿ4PHæeÍzñgò½bÝÌâçÍ6E‘£É#®—R†žkQs“dai&™!Êlsj,N¸Œ|§Ri!rÇpõ‹²d³˜ ÃGÉ/Õ;â ‡ŸÜ9­ûZgQ-TóÜUÜVj}V» ™'%ýHWÈ %ƽKV¿o ,Ö„ ]Oº ±&Ý1i™#ð=Ð<Ó ¤U«ƒ°yäÏÝŽ©àü9†¡ɵQù„󢲕ç&Þ´CZ®~ì Þ¨{dxšó —ÁB©¾`§áäÉIJk-Ãn äÉFÂo¾:—ˆè¯ûÁð¶ªHý:y¢“(\—tŠn) ûí ì<Ÿ»`ØøU¨ØšßgR~7ˆ¶¥M>ä¹`X ‚1„¶wŸðrm3†K8.Œ™‰iqõˆÞ…”]¿^¼‚ðÛ¨…|ÁÌÚXbyBí©ñQ6¤ÄFá"Ì<âT´/WíˆZ“8”ÉV RPJîo@ƒv•PäæLvU=†ÞO\]€L*H½öîÜÆ.| zd1Íwk將ʞ½›oeÊ 6ö„öñõRÝ?~ÄÂvëô¡ðÈb·&ˆƒÝ‰0ì0àd(K XÈË‹QAŠãÎ>£‰Ù•"7wÃ?ƒ¬‹þ`áÀÙ^ƒN ­Ì<ÞR.,Üñ8(6Ñ’y´?QÎ)ªË3`œÑŠªµ¸1Xé7”HºVo¬ŽÚx0õ4‰ Xô5 ®óä0Ÿ9ø~MÓf‚Žû6qÙ÷ÆÏãÒ&*ò™@r?ã W¢N§lÀt1‹yüÝÇ8ÐѮ⣜#§®DPŸŠÕO£¿ÔPä™ýù­¤ˆ&qzAp‡?ÄËhŸRc4Té ¡Õûì¾sÑGÈÒôù‚|™¨e¬7ó%>¬5é{°±;ªGRhˆ>UÓZ\v¤¢ñŸˆÙ‰ðM4•gVó)+>å8üÉÃiL‡æ8©×<›Å÷;?ÎÕÜ€ÓO²WÖ„³$Ÿª^Iü¡ñ8 [Þër4ý!ØûžtýóEø:/Ê¡ið…öÑIÍ&/´~|â`¦Oœ“9Thˆ¶(4¥!¿|šÈÏSi!Öâìh©9 óëcÿëÙðX"ÁíN·ŸZº¿ýÈ]—ĬòM1Yþ ÍïiáŸÍŒÕ uÄþï;®ø§"Cvˆ¶¹n1‡V޼Ào²šqÕCe4BL—¢’0Mÿ¥ÙÚAIyH´×~èRZÜ4Ó?î­‘9é\™CǙ݋:ÚlõÔ˜˜¹aõLÑrÐS? ûH:'N2/ð8|¬o5yb¢«`J(Ía– C†þÐ4¨Ž4j®†ÏØxE¾mÅ´Ê@dDXD›zˆ-IéäãMl$y]<˲«. µ…¿UñŒ¾ŽºF Ä”[ƒF8MfSõ^}Av²!XY<=‹ŠË|Œ·èŠöËņg×Ã¥œùÛHÃ.uÞ¼"Z ÍŸ|ßý¾»^Ž&”£K=A(ºŽK¤jÜÎå-¯ÑDÀ8¡ Fc+Ú -k=¢¸[¸¯ÿÓ/G¥wþéÇyŒ ù‘5¤ ’Ø¢w¶—gâ\ÕvÚÔ¯jcD”íH’b¯¹Wxs'*[ÂðI·¦Æa{ d>áÐârYý(Ÿî{&0"Œ ·AÎíèÔ€lÇq±3÷ r½ü¢äáÈ»ëÈmw?ãîþ!Fžó/§‰\û½7´*ûvˆ³×¶¡j¹æ‚µm‰BÄ\›:M•–ÐY?$¯¨LÖêþ`xwÛÈ-ð[¯&€ÉÊf6a‡óÖ.P½K4C˜ÙQÕÙÜ]œ¼—\4 L¤ À!œP¢×5ʼnR8’F·dO—[UC±ƒ¿S=Y>á—âñbQ²3æmvPsƒ›ÓPÕ–ZHèõ)<í™(—jm·®ç0,gë¯ñå!Ôj3v.´…¥b!Wéu×¢¬``6:§S ²§«ìäfû÷ƒ^&ÓVK¼}ú˜àã`2?˜² U¥¹'(V[žM¿M¡€EȤѷÉK®9Šì‡ÔÄídqVW· ¾Ã\¢Ãøzûn^5§õ¸I'vdr?ËÈV«Der“zEìñ38Ü<ƒ¢wz|CÔWæÃ<þ9á :¯óѫǬTÙòÝgžäüÆt$€pþ=ë1èyUƒ‘¢ÔÀîtÊ mIN*¼ª2Åîg¡ö·bq¬}+ùqs…À°¥¸-.ùS"¶i¥$늄;[:f ¥„à×ãÌ /‡w²-5úÁœ!$ÅŒ-ÛFŸt[Ë_Õ,hosõÊ qE”U~îÞŠ½FÖSƒ¸»pÌ’i›ˆÖ KG-²¿…ëÅv¢cRÂDA­º|ºˆÏý ’üÕ¾yS#÷óÒ×wå>ÚÜ÷aµ:§ó‰ ÃùUU‰Ÿþ _Ü5‡3,œy©r:#@´Öz ƒw¬˜Gz¤?¤®Ž¹iô*ßÕ˜µòE8»Ðßk<(°¤Ÿù®æÇÕŒ½y1!0Ó¨Àþ5ô)¬aÙèÅRΣ¬ÂÎy¾­” £ˆ(v›"BÔˆY–ÖÎmfHƒ®ŽüöªJ‘½0W%U±F Åà.ˆA fuòR£ÐŽ{·ÚZû‘úgîHÚ¦Ù>É„\MÝwãoµl†öp`]vt—B?MiC$4u¬‘v¦à‚NëÀ‘´)®PVòa]jWFÉ,3tœ)n¤$¾%ÿÉxøö$´qÍ$‚…¾ü8öœy-2+n¹>"ÙÝ×uQ¿ûç©ú8•Ë÷õά=¨á(ƒªÕPZÁ‚“ÎÍD„¤;#ï“#%þ#ìŽäªiÀp±9±hiXÓ±Ò2Tª„àsBcy/Ùo&НÇÏDÈêv*©kmwë¦t»Èð-esgšþ­¥aÐÀ: GJ¦š¬HøµsR·¤ÒÍÒ(×{‘ñm`Žc7‰\y “Æúú@tbÀDlI/ÒÝÛÏéãûŸ’ûž™õÜéé “ôv¼\ˆ€¨é°ùJp½ßÄ"¿éf¿w <Åc–ÂgCÝ®´¥RêAnÒO“»˜OÆ6¤yPÙ×x?À=½b—#jó ¬L%?6Ïž Bvt§Â£8,²)žåÁ‡¾²È¢Røj7<枀knÃ2úö:5âEQ£™o”ÏÎ’$N]X ·8(Mƒ/ /ÃI-ñ‰À ³êEÈ?e…t;ñPÛ•¾Ð ’– ßÊ1ëÒØT*rX†5ÆdéÆí|yýÂMšu€ªZò' GH³DFA¶™Ø¦HÉ#R0Vá˜ñ- ï;uã=ê4_»<­’ê;óI¢?w3`[ƦdR-ÑîšÇ[?ôÁJÚ<•)² ¥A­³5‘ û<,9÷uW A¶h¬g2CÛRã9-Ū¢E¦‚Øsãkˆƒo6œºðžv¹2 ~{ ±kKÀÁVy×9ü5 æ,•+Ö·*Í…òUÌÖ¤†Ð@ã^ÖÿÍhÉö‘ãrÖÆŠ:sip;²Þ[{餸e7mFê››D}ñV<Ÿ,ß3¶ÌÝÉñÈw »KFjªÍ'ßÍ ìÕ‡òÑTÕÈ:¡D8Û¬7<.¶ áüŽØíñgÄ©"²Œ´ÈÛçWÔrâx’[¤'¸…¡y&Äžg¸0g>>?¢XK«e§"™VÇyÊÀADjöjñ~§b­‚‹CÕ/ùÑ|©eŽxÊÛ£RtÙŒ2Âõܾ ª]“ï ›XZ][䢵ôh¾¿:TÈ–žä¸—0›e Ó:Yä]²÷P»ÙL&ÁPä.ᕃáá AŸxʆ0Îý¦.ˆ¬ŸY*5kݽBw㘮Éäì‘ñªKp°å. Ï8·r¾öŠ}DÚ°)Ÿ¿Ô¤>&Ý4Ø· ñ y0‘Qßè'fd¦ûŒ%P”W¡¬(Ôì4?D– ¾bCùèX>3H°‚lþ“³iƶ›RH\:³*$g‡Tà¿[Œ3T}Q§¶¬¯ò¨¾K°ù~Ç+÷;’ª %›”Vqžø=¥:©p[ aÀÙŠLf7{&E—²Dàâ½ÂýZÎýŒá³ÑÐO î—Ïêve~ù»I>>5•©'!füÜ,Q•å‹Û™êÚ\õÊnm.ÌßÁôwŽä~g¥öiUãQd ÓÞSZˆ·cIÅoÊ¿²¿û©Ø~*w@§=Ö¡ªÙ)ð@k·ŠT¦×ª`DÙ#@·‡ð{ж’ rÿFàïo_d`w#Êêß1êöØ3%“ &  €‚“Yž#|‰;G¯d •pû&ö¹'éÛef…èï­VtTÃ~d•±ÄÇ(ïÒ‚¯‰¶O9&G U,™ ë¬ Eyݘ%¾fëØ¡_1í›)¥Kß(í/çÞ=tèi¶’r»q“Éi³@´Ðx£&^ÌýMzCY2;^Yǰov"?$[{Ê©ìÖXh•„¤=–ìÕŒ~Îþ:ÚYê3y€¬e–D˜Mý^Ÿ)6gyyãKWàw¸:¦´Q$ÜêË^Õ+‰a{­ÆD“U$c!gÑ÷1@¿ C#õ!ë°4Å à ,‰<ƒ§±ßѧ ItD­ÐšExcõ;ÖNäƒoO²uo®ÙùŠ>ÿ¬n%iy`¢Z=S¤Æo@Ô(ÑP«L'|˜ä柷ì‰|Nã-ë8Ö!Ìÿ˜ÔóÏɳ£™ÚE”¶íê¶Æ`/+*3|ÅßaÎNÿh ÓîM:¢“2qZuñdaR;PVô\¯jÀg l¦Þ;˜·»Øf­/9ù¿V£º‘3&·zÉ·@7DŠ0EA߯ ?îÉŽ‘Vþ6ªÙE¢r35ýKkutiwí‰öíH–°ëF‡aÄ-vügÿËÃCJ—Õ¥§2ëÝlAkwkËfk•Étr/6#‚+ƒ{¯ŠqtãÛŠ¢“qê%K­ô¼zù~ËTd·Ã¦àcb\ðÖ¾`üžu‰É¶`×%;}m—M€xz`'}Šõº_ç‘­›8/«áÙôï'}ÉuÃEº§Xý‰äQEj(†Þ†/‰é=çØOd©ç†1®»TƒWBÆÆoóô™$*ƒ×hSâÒ²HR‹A¨¨¿8V<Žäp@þÈD˜nî,™¤ºò’LMØwú8·~Òš/n7^Kæu, Kv¹‚eåÖ)¦Z=rævlc6•äìaú ä½ÒË̈ïïó§>Pi¥Ÿ‚1û"¡æàæÝËH’féÒ¾˜C XNûHÿ|R* sŽùš~m,²ŒæÊý)Þ£ƒ”)òQcßQÑ•–ש@oAw•à€OãÆÀ+Ù.MâD8ÅJuæDjÙBð‚hÀø¬ÛQ!ýÈ£%g6oìÑô8äxP÷=]9ÙW×`ÜŽ-¿]N™™Tð1ú&»„U. ÌÜWµ . ± ®»~vL÷&Uí¼6Ayb›dI´ÿ †ÌMæOJ㑈{ ÿ&*Y~6”õïô„j̱Nˆ0bEH.Ö¡èz¡æ)“<† B,ºª¹¦Ð=váO«5A÷É{O—i¨BOD#á°©`´nÂo-¹é¬wŽ•Á9»kß=NÙ^G˜*`ÀÄ£v‰‰ð6 Ç2ýnÖ½V¹i´ÕÉ&7![ºX6äÙÒâFZ ÝPaÓ5¨¹@ò)f'©ß“šÇ¸²±fŒe(Ý]mÉIºà´ðn‹½3KNÑ­ôôö“I²[Ò~ÑkšB–5UЗŒe#ª#Æ\Ë…v˜õÌ–_¬~Uß³•ß ?#(†±" ¶A2&õ¡SU'(¶Ë*ƒF°‰É`Ižä´Ê<Éö/nvæ¡•ÅTìLJ⮈‹gùSŠ)yÁ8ļÿXSK_jjŸÉ\;ó ¸¡æ »tÌÎ<Ž›Á¶ŠncÚPö—ð¯“âk¸¥´šm•Ü_[Ï\ûþŽ¢+ÉõùîágOþëŠl_{¤M“¡à.Øâ¶¯œõ¦ Sæ–sŠcGYêÞs|ÛÆÖv»ýžËÌß[‹‰),x|s™.O¸´~ààÖs_ÓOú¾º[Ü+±³Ãê›$QµòC>Ê q~¶7‡!N—vyÊVúA÷ÚñÔ[‹c÷ŽQHËÞÌ= ‰„7ôþK¬G‹Ö|î\þ”—ù’²A_áUGÃe³õVsqayîºÞœcá΢÷޹L=‘M9¨„¯\hdGy>oñ{s4hݰ?þü± %£¿€›Ú% ‘œ•‰IžRp‰zEÚìéÉ’BK^2œÒí– a¸T˜jû‰<"; ã[Oöãnî‰fh0Äxˆõ‡§¥Cx¥Á+1Bl)4›“eÉr¡(p7¦v¾Ž)ÛdJ%í-—€ÄP‰°CøcåɵTÚæNîë—°âéÄ^øðÙ›6üŒ¶O“±P®Á'ãú \Þ\&±“{W5ô(àçRyÉ|<…wä õ|nHBQQÊdþz—£ó'+nêb¬‚ž} jñcÖIK“ wmzk‘•m|÷íчÔï¥kïÕÎ(¾ÝÈŽVÄøÔ}7ñéB ²Ï~u÷¶•õ¥½¯$,„ñ×KúÇ9ŽŠY»ÏzU¬Ëg®¡†‡Ôú‚Ϊ¡ÿè!/N§3 _…£E•LÁY/—B›xjHwÒ«?cYy¿¾uçj|ÝóìHiìTAÈ8Ê-{³Žä2ˆsÓ°ž?Y‚’ÏÝî@pýiyÛùìO ™Bè"Ú÷ÁާôVÐRþ2Ø–dAÜÖ¢*˰x<6/¿,[g)}Mvúg2²%Gœü¢D5åî(â0k‹ ~y?}gÈý›}rT´|~Y&è61¸é-Ï' õ‹×Ų3Ÿ{Æy÷ÐgàâÇÏ®"Õ£'GËTöM¬Fdó•pŸÂZÉGNW‰ÅÔtã7åY¹]¢¦ÙV£›ï•i§’aRE—Ñ| †¦…A£#§¼œ˜Îhk3ÐÈ,&HÅ] ®‘Nsf°Î(êé­¶~`õ<É“±PÝ}QÏúR²w{……¯P'¨Ÿÿ‹Z¿¡$|UN9ítK ¿0ûõ…Q~òTªq✛Œ¶e<@â{µYƒï”Ç­®ÊN·œ² 3ÞÆ> òG‡"W,;‚µ àŽºÀSWÂÆ›µ&¡ƒ¨x$‹|kÜL'"9Š[ߢyì‰U«Ÿ“'ÍÍâ"R€¸{Û±Ò‰y…I0Æ´$±DŠÿÖ£F%w:³*L Bͽ¹=åTd6G¢¥¼Îø%þKFË`êas®t–ö™ kCòÜèpš¨š7qäGÓš•F iPÈΚ6UÚ%¯cQ\ÖFHÿcTè,L;{ƒwXP^)§o;IøãÓ>Îéô"sŽŽ¢W#õGC{Iå›»,ùLgF*_å]ŽfÊ)EŽ"Ol0šüÂÏÏf]ÿPéÊâÂFª¸]7Éz0qzW‚@ëg|-Xï CCº—¶tâ….g`Ô¶ÿ2 Î5ãSP>8£ì¾VEöZþ°µÐNëOëâ¬a  OÁ•Ô gã{‡@ƒ¯“´×´·rÔ~$ÌêˆøY“s eL ÔRïÉõ3‰º#*…s'&e|Þ*>^"?“ð4<žAwÉ•‹ûŸX $1/äºa®Ki‰ê„ ¿Êu~z±}`ÒÓÿü­àßÞ)àLêZ±ÿ§mÚ¿J&M4èPOdàGC²·î‰\Xà»…P0ej¬pb~"ãTÚ$ qs,îM=?Z…Ã*yöW£“¿Ìܰ5Zäg9sa°ÇRªÝîØYë\HzmUÐð¬Ê¤‰‹‹ÃåT.¡ŽfØ™ŒôX9,˜í–Ì>JžçzEjCŽ*øwUîþ²QCº* rXqÚØÑá¸jD<Éäi˜=àœ”}þ.9Nú4ü¿ÇüÐX°ôɹà}Ü죧K$©E@ â¢DñŸÍ™G“óp|¨ÚTYÄìü.^®ø^ðpY TfŠî¡L³Cý?Woâóì7[qÈ’™á}5èÞ Æ=¨Â Ñ?Ú¤iÒ³åû–‚d#À*w¿K>¶ŠÎÛ”äB•5¥è$Í®sksƒœÆVRÌ%T_1î¶$3&úÜý&cPEáú7Nyb˦‹Iù0'+ÌWµ{Ëœ€õt%%ÊcxÚ€¨`lâC™s¡ŒG]3ø¸—±Œý¨È*'Î/äêÖ_ÊdîƒmfžúxgF„ïx©ÆcVöÖûôÙÒ°Á Ò¸bc‘7á|‚Ãà ®Ö Ìü$Àì×ÄWò`´héÞ£ÖFl‘,… wÐ-&'gelw’>2ÌûÊÜë³L >m(Ùr•¾K†Ü2ÓÖZÄ~8?%’þ ez£Ö–JJLRåý$4z™_˵(V NÎÔ)ùûßçÄZ'ÃõÞæw”\õ¢ã€1Dý¬ÐáRÎñú ÍÄMŽ`1óèy2¤B­ÛÚÆ£¹r¨7 ´˜VËÒí"2š°Ó^=¡p +y ĉ"`É/\’Ý9é?T­I/> q½Ê‰7%—Xi­9¥zaw¸´"³õ?µöµÊv5ÈË{}W4·ü#¾Ç(|¯ŽkT4 oœa«ØàНÈ.è^ºUR˜Y‡ý*–GïŒr²E¿Üoê(B>#܂ӮΩ¨C›A•ŸÀ•KC‹¨Ã|ohšDNŽðmU–oТbwì’DGðo`'·ø§?B‡ûV BL×+Ÿbù:ljbH#z♃k"лzVGÉ}Tùï›Ã%Rà(Úé>ξݲ8hÌ—Ý 91ã(³&Ž' ª²¼ÇžÀü…‹;(nzóŒÆ:åáÜG;õti´÷Å.a¦úv®ÞQççnÙì£xå´*Ð|{Ò¥³-Z&†ö¦é9UˉnÉÅpiȹœ%EŠ£­ã‘T›çÒÓ­<„CìD ‡Žì–òøJÄU°Ð—‡ñÇÄf!"ýfŒ‚ë49ô4ÔÅÓ„®ÌAËì´Ý{¸4È»`lcÕÆqQ°l­›æ©y(>²çO §ÍŒã3ll·"¤>ìLÿÚXÑ5ä1öÇ1”f^@á¿X^d®+H~/›â˰{ Ñ®M#mÖ{;& ªœË}TJZà…Î⇟»—ìaE”Z$JXö«ö[TÊ$¥ýðÏ,t›ªîNNÆ~ûá³³Z„þAÚ€$PŒ•i¤ÃNFÈÇ(Þhz.¯cËëOƒÑDfØ,0Nm‘Õ1½ÑñÑŸå>_à Á>¤-2-!ñ#e—t†›H+$©2¼>Ùï«dj‘d¢b³cþ0Kê˜2Lfn¶ñ鲚±>œüÒÿúÇ“¥@è…x;rzФžS3]kõ¤j}•¿@w¶7ãÑ+6ÅA ”Sª&‘/:Ö¾€ ãh‡K{â&†Bߥ6  : AyÒÂÙtä^MèÖ‹rœHiäýÕd %úòTÕxV¬;2¡úmØ5SÝÒ뫯·ŽNõyÖ¿Jýž#ðQB`Ù ÐÃ÷¬+¤ÒÑ©<°"ùG],Êéé#‰ˆ~Àÿ©™ÈH°ºË==D`鿲{%Rþõe¿r%Óì 9V2 Šr5}–§—€|ÞC¬j`ÞbŒ¥§!”¥å)Âj}SŠÔ-3Òª„)ƒ ¨ dˆƒð¨æ¥H>kÂn*kNÔÇ­ËgÕËÌ92$cuAÈÈÅ,xASñH^1p2©d+ªóDÊû^뙚#»Ý̽@"~¾\F¯@P‰½B×5#jù«±FEìz#óû†_°ÿ)¸ó—‚Y†auãZ‹ßýix&`?¤­NªÿÓ²ÔZf~tàØ{x©¼bˤ‘ŠÞR ¶¥í8äÕ"ô³’3âœ>†úÈ›Pƒ´<Ž•œ†­¼›s›³ìÓaF«phFZùx õ –ñ9Ñø¢—ÀeïA–Q`z‰D)‘¯­‹0- Ñ5Â/Æ“„QNÇÙ1ž³øÐo#¡¬†o´ï“ëû ~Mº+6“-q„Ä>øSžFMÊ—„rбâÅE,"ï+' T,Ê/*wiB\\ï¦ËRšº¥.ó¾#nÀßÙF•D«ì›u<7WÝI 5ãd¢§itšæy»,))ñz¦¤,ZíHŠ‹}ßZŠ%EzGx÷rÓQ·•(á¬`ŽøiÎ|$·RÀ+NÔ*Zœ8ÈPÓ“Ú… Otç"হè»ü 3ŽöɆ!±§^ }ý~.ï)ý{š?mégiÝèÁ”KB…hønÆiðÓPgî‰eâWý’mA~3hmÊ Tÿ­³^Óë@8™µ+i{ŒèW%ä6%v,n¨’‘£ ¶í=8Â}€õ¥{ÏÛéü:×Ó*>ÅâGÂßuj"Õïø½³Ý´§Ujþj½-œ'|O€†¼î´º3ü•Õ"ÒkŒÁ·MëÈè&‚Ÿêͤ}[×YØ©½ÛYÔÉ;'5+'D¡_m‚Ñ/몭ܮ®v§.Û$탭þ3BnÛÇýuµß‹[_` Ê‚¤5-u¹2„‘ëP—È8 rD²òÜ`—ý]0w[ÀÔþ†yŽ îÃߪo~±X’bo•ªÊ.Š÷7Pثϑ˜>§Sit7xÝ %©lÇr2Àˆ0÷ⶨ´ª›[w{B’wwÜX(CAgŠÅZÍÐh•$Du®-eD»€Ä,rjéç B*·[†"ÝEw™²•ä釦5„pv—N„é}õ®fÑ‹9í ý¾)íÑE™wwæ@²×mÃeIÄiúE– ¬ù}†8ÅG”57 ÇC,fÞN;÷N´o¾Ƶ T¥¼ ‘çÁZ»±ÉÙ?*®¾êDuëaÇÈÑŒ.UAÜM‹ ¬4E ªÛþ› Ü"µÞÙÂõ‰€Ýˆ“yNºmtCôõt 5eè—»E´Í20l&)vá¼D{©DÀUÐŽ…yêÑ׫O±0mVUp‚Û”U(kõµ1‹jïÇnþŠÃ>ü” 3›»-FG;3ò]oÚr/ôßü²­û±Þ&2ä~:Zþ1Q˜²»êäOêéÞª;­)_0È[tÏìBèrf?ÀÙ‡ùH¬”Ôæwù^ö‡6ÚŘÔ^¯nóÖù3OJmŽÞ"YÞîªóþßÙº^{d}×ÎQÅoͱܾjßî§ <´‘gÐ¥ISûDòÄxC1"£&¥°G`ʦ?ד ¡ùJ3ôø˜©?^›où›&¤]iýØdUº´‚Q¬*÷kÅ¥i§›ßGúÖÅÑüìZ­×å£Åûlœ8~ÄZeëú¢S4òËä{óú}ÿ ö¦ØÄEt¨K`”µqÅž¤7:#õîÞ-{Iõè Ú?®ÜKƒëL Å0õz+2@¶%n6€Rõn5²äá’å|ï˜3c§”@õ”úLÊž‡z ‰NgÌšb¢³ç/*K¯‡ž¬ÌßÞ§iNáù ¬¿Èiy»òa*ê·òapÅ‘À¦KñÏôBj:‹î gCµL’݆ÙX`d¤C $FÎЩ2ÍRç Æ¶“ûb'$%]• ©þêê-¦r #º€ÛˆÜnw”ãeNè¿™_.ø‰X&5' 3 ‰ç=EyL¦K‡š£›'ï¥Ãaw„Êd½©¢'T€méY€ý{âk¡$Ž3hK¬q}œiBoøÃž¬FÚ²ƒ°Oþ ƒñ*†ðtx^»a$;èÙ1ÏSð<‘Tß`Zœa¾]²ظÈ2|/»‰_Ï©X”±TPú}é·‹c-¼¸y~ô%ÜÌdæáš/Î@ÇÝõY%¸ÊVÀR?Á¡Éy]7p­hY²Üabwܧ4­³c¦ÃüŠ‹R‚ýt\4Ë$;|†ã›–U·v¬Äo”Ãç2öÏh*&M®nCyÞíz8™5ãžÂtÖ—‚ffRÕƒi·ïÑjr…Ie3‘].6×Õ)ÜyŠñZÕuX=U k$Ê :œòn•ditt&ı.§[0?ÿÇù”~eÊØü¡T9°¯ð¢‰eÕÁJñ»?*’M9…ü%©(c|ÛxžûcÐ…m¨Úëø"WÂùéÛwwA ÆÑ‹ÑKáõÊkô@]´[»uñQ{°Jõðë#0źà„=Í22¥¯Å¯Ûh²µ„QcT eÛôåETJj^ïfC½Û®»ìn¹ÛUu/å;ù'?›kÓ8Ê2Þ9¿´ë\†ñ­O&ãà £$´ƒ½ÖCTdÎZþ%Á¹ûkÛ=Š×fÄ6‡èZ-I†÷‹BÚ¹à0ÍKfNµ{ÅQB°/x+}PµüÕì\u ƒâø&ê3ßœ 3EîšîN¯¾~vQ(š¥ü¾>ˆË ë:tX×Oޏ@~ýtÁv4R³ìzfåXÒöÔ—ÓÉž;±‚áZyè@û)5OuŸ½;ÁÆl(§¸é1y¬¡ô#Tüë£0/¥úLÌ\»ƒE°ýð¥·ÖNÀÉ{ UàZ‚gœmæLP$dD;±º·ðxG¡½Ê¤ºA}Ç–ÔÓ–òL­Åï¯(gï`QI­Ò¦™§¶ôD¹ò·R˜1Àn$vq —W0žxF†x¢1ük8`®ž Tcöî,dûË>;¶ÐvÛï²xö:þ(s¨÷ªåµÈŽ--i?òÄëz\e¨ŒÑw4+dUR­@@"ˆ^/°tåcYÄ—À]I.¯#Ú.pÊ*z±=¹hR S Ìg×LÕ8*Ñ9QʧŒz· 0® *² z?ëP+¬ÑT ¨•!*ù÷¬§(Ôàì=øŒ]`ؾÿHWª7LÍØ5ù\% ««gð!wŸµ1æ¨Ú·éæàm\iY¸ËÐN`רLÏlUC6·ÙðPhwß àÖiLÕ7ZêÖD9çeZèõNV/ó7÷Ú‰Ì[RA»cSËt4ÃX³ç|Ü1…¸b?÷»÷‡º65ë^!ÐÏ|1.„»ÜA·6ìcAú~iFVglBôOjé Ìæ:ŒI Z„QŽ"u7CBL¯øü¢µòµúáøjRU@t7À(8RÔVŽãü÷6 Ó ýP§Ú2YöSÔÍ;·¸¦t"…‘,y\åàojèñË}g/_ E$5ûˬÈ^Ç:%y…(©BqÿjÜ®Qǘsèd=„‹À°GÏUaì±9ÕSê÷l—æi*-lÝYì¾.°¶S’ú.h»-wòÛéÊ|¡Â7=æp໌y.|ö%ÆKÆhù;Q1¹Æ?~Á;†Sh»*ý@ÙL¦Aýæ¼~œtíeˆÊÍh‡.k¨ƒ¼ß¥(H鵕h.Ÿ8-¼³j)àÒÁ÷ß6vÒX0y?&äñIBȼ2û>Ga„zI~JV?€’ehNGék*ú‘¨…4¿º)eïš>y…b“¹£ 9ÁÑf—8ð¿ebòî[}øãÚrpÊž}ȧIWâŸo}ôW¬WÍÑqºôˆ¬hSt“”ÛmÏ›Úç”N…aôÒ3ß (YQ»š‹qâ/; œá0â~wý99¿õš„V𢬌kúuÄãCHû3õ@añŠ$5bmQ‰¿F¤=,ƒ%‘!|±!8°X­hyÙÅÜ0’õ”~§ >û’üi9êzñ³Ìr-5³Î©ZŸè¹æ©TšÓ¢oÓãi¤¶x½ý5EàL[—}пjÉlF&9»`¢E³¦å›Ý=„CrÇnš†p„ >6aT5q} . sÛ²‹-{1õa®D©ÜbÖ&ÅAì±½—Ñ“û9f†Ç;ˆe?xøÌ:óKÇ#hžMH&ÆÔ^UCž˜KM ;×aëú#Òlø7‹¾™™qXФALæ õiÇqò€–s#§.-öûÑ(ƒÙ $e͆|+¶9ûUéjX»Ÿ~>Zˆôíg#ªÕéO;Œ0\aAúN\Ø­1…5©é[LêTNSò¤uJÍÜYðƒÚ)ëU:*=r=T™<\S"͸yûðuæ¹¶f˜¾3q}uî§dîÃ(—ÒÂÐEIhÍKI©@aÈNÑ{H´õÅŠþþý‹MΪŽ÷JІx¶šÏ>W˜)ÍLìPK‘,[¾~¢Âü{Y…|qì‹–êÉÂ¥pkJQêäiúùëë‚ößXÔ±J¿\ö¿Qv VûÖÔ ~Jl>´7‚î@Ökœú Ô‚+#·ÓFâð½½`8ß÷baÚönØ‘<3·¶÷‹ÛìoÓ½ôjtžI¦Î§§Cë<Øh‡'W—ÛwÕ_ªKuÖ8…ž88u›©ü±­#û]x!™RAœ‡!È·ÕIý®~š& |¤Fíµ˜¤ A:Ï”ÿ´'¾3ªö0$SµZîï#“ެƒ 9›Ù+c‚Ḿ}ör/±DmÉ‘@ŽÓ–š·j$¦ÖEdœ¼¢§³ÃÉsЕ_ƒVƒ5&¸“}ÅGÖùdì‚O ?~u|”ïŸá$, ç휆Ž<§-¦tD,`¤w>ǃc¬î"¬®§ŽºòåÇ6Ã7þnñ[r#^& l9òÙU/*-Ä ÅÏ‘±ÖOs?ʨë{À© éýÉèö¯X·4ôÃ&1ª:ùTâ·jƒÊ]¶i[Ãq°k4}òcèƒe´ šR®3 £†7X‚˜Ÿè‡uãiß6Qó¹Q•;ÖòßyHŽøQ¨Îƒ [Á®˜Wê7¬IFçæðSlM=§lPÌqÅŽ¹PŒz‰ÒM÷h|‰¹åeol¢p§ð„ª;øµ.¦²JÀêˆæ 1(²×z÷°qº¿b VjÛ¹z $Ê(Æþ2PÄ{ÏJ@M¼ºãó H¾Ò«Kk£€:—¦µ­;=i£\¸·ž¤ëJ¨¶ñg/Ôzwãó$j º]a·ÀéSdœi’Ôšå´Ì…ßûhB•X`²ýx.Ë"µ¬¾ªÅ™Î‰(33WÅö×PŠÏyÕBµ8ñÚC§)ètì/„K¾Ý|&-ÜYºfS†à0çf1Õû°v‚ d2{/a‹+åQ~ o£GNø4ú¹ü?p_™bRy©â„λâ~¦Ã6H[7G>Ö0Óí †ú–§PÊA{|/d4ÜèØÏKuö÷TSÛ2ÎÆì©Z þvJ ¯½­|‚J|0f|Ïú™ÇÁôœÙðž`ÚwrX!ÚF½u' _qLIöj,t(“Q¬ZAÞù8¯Ù¸ˆÇ°õçô!¼<>-úº;-Úº½‹b‰¹ nÙqlq}ÁyJ¤\?ØM!Pé I/¥F–íüGøAMÒèõ]XƒÇ\¢Y>ÂãÀ¤l¡¿Á­—«™€(•€ ³Úå¶Yëos·ÔÆëÅ„1 ‰NIÓÈÌ‹ó´>ª}þéu„µì-"q›~Î~»p>[AسfN"pu*MaýpØ%¨:H+;X¹6EHžV~qéFPˆhÖ¢Tðþ±×2ð4ß½r^HQâ­éh†ßæ?àÈ(¯Ñ|NˆÊ+ÚAûNO^½ ¢Ö×ógNßP¢·}LÍÏÚmŒçO-C’lŒ½d’Ðï£y“õ…óLBË^éú½Oq$GYáó‘;ã2K’×5žŽÔâõ] m¼RÞ\¹mýTèvRt?.éuÀR =ØQ4ûëê¢ÚÏ+Æ©ÂÓ¸–«Õ(Þ]‘É7oá1òyj™õ~ˤ{!áµ[–"U¼dzBpW7`›¦UqdŠª_º¥¶ÒbõVᛣ²)i oÓ°ŸŒ—Íá˃¬L­»]»ÿPùöMê˜æš‹2bw„‡·ÜHØÒˆÖoßþµ-þÃÆj1)/Óõ jI+7³z$7Þ¤3)°½Ò œc\Û¯xýgƒæO´Á®q"Gå^ŠÐuù « îƒnúijºTÍeð±[Ðþ!qÁ¶UÓ}ç0Òæ–…a""í7 6Œ©î~i“Æ „ʰ;"ë·¨QÏ)ŸŽÃiÃÅ|á eúÕäóm©2H!w‚hÓ"—Ô÷^—O)ØgqJ›$?R wŒÛW”Vo“c¤Sü“ÅHK Õh9ê­©¿|g—éß ·/ÐÃÓ#zhsÜH#õžÂ^`Ó\£âºƒÇÖO3……\ŠSW™ ø.‰ñPXÀîeýŠ÷¸Ý9ŠÇ¼2âU²ÝžŠ]”´¸±‰çH¬Iî"RyÉŸ´b1‚Iµ±á¦ þæÇŒCù2ËpÊ4¢ô"q¸·¿ K×ÕÊ“b"½S1Áˆ2Qð|â5^qëô³ÌÉÌcÓEÇ@¸Ò»Óª7X¢n§6ëÏÒ¶|¸Ãþ6‘¯{& ù24ÏÐÆ}s ÿN:²4Œœ' ‰7éX½½˜Zå^Ú|†*Ñr‡ òfFr*Á¶ÉLÌ`ä‡:}PÊs¬o¼„M%¯m^ÎþO‘ŠIZ¼·ÏF-g)ŸjÜ—!ûŒ$FÌ>‰Ëç% Sk,?Bb‚–|Ù¹Îz7Ó“ìQ:z<ϱÝg^ù\ #7ùIµÐPy’Ñ´@ ÍkôUÑfáÁóÿažýcºÝÓ`¨ý¦¬"¢Y¡ ÷Ž— Xl(Vf7ò)¸xIDZî&ÿôgz´B4= 4z5.Ä–ð£Þ+G S§ÉǪý ×Hà¨F‰>ø°êÁð;޽'ÓlÑˬŠfð@ý­Ÿß(Áµï@jXª­LÓdwA±ì2óÖ ¬âÔxÃæÎXÙ9}PÛÿ~óûsY «ûæ·ü†ôÇ8KôúÃQiúrÞÛA-õö a£ûÊŽÓž«©–™´»k$J4ƒwœi¢øÃØ5~NQR‹`‹Y´Êj™Ÿ³½½‡Á%⻢Š}BÈ> À§•ß]ÿ¤òaŽÙ8̳Q¦¸—Í/ÓoÃb̳mÞIäçñ‘UÛñIŒ¥–Ûîò’o“¥V° Òõ¹Qà‡w²t¼‡ÈÚ©ÌH}¬³A<˜K#ä>ŇxˆÈïçÔ±Þ,®\‚šdñ‰ÛíS ;"ºf•2…Ü))ãh‡nyÆeefÂy9™×ÉEhmàcp-·Ìi©Q-~1Û0ˆVì­7ŒHF iŒ VÅ&TUÃêØi¡¹ì«®6PÀxþP× Ðg¯ThËxJé€@ Kä²ÍÞ”õnÑSdJ#ª9Ÿ¢]:ÝBy¶Ià'øÂ¬@(ø_öœ¨+éšzX×Ò–• Pv3‡Ö1’9[>XyØ¢ï  g"ñNÇF ØE¡íˆÑ-úd*Yy·2A¾£¾Ü.Í9ª8β>AYD< yXDízW!ÙŒÈ,¬¨>槯JDŽêDÑòxûw?»z¹¯" endstream endobj 195 0 obj << /Length1 1630 /Length2 8067 /Length3 0 /Length 8902 /Filter /FlateDecode >> stream xÚ­VeX”í¶&¤¤»‘îNéΡ©†`‘”énAºIé’î–éú ßÙ{Ÿë;û×9ûÇÌõ>ë^ë^q¯÷¹^zZ 6»”5Ä$q†±ssp‰ÔÁN–îP5ˆ³*»ÈÖ]ÃÒ xø1èéeÜ@00ÄYÖ胬² +€[XXƒ qñtÛÚÁLºZú̬¬lÿ²üvXzþyŒ„‚m ¯AŽ'3ì‘âÿ¨ `v € ØÑ*©+˜Ôu g›…#èþØŠ@lr†‚˜67€ã_€ÄÙü»5(Ç#—`€º€¬Àa 7V —ßÀ俆BŸ`(ÀÖÍÂö8v¶rt·þ]À£Ýò§ 7È£‡Ó#öH„@aP+7° ð˜(+ÿW0; ØïÜPð# €ØÒ-3VM’Ó7"kÜÝÉÜâR\«Sç_éx›¾&\n~û1„£nLä¾Éóë®Ëݦ2ËÖ@'±#cG è —Ò—Ž¹+ïC‹ ëV §Y1vúž~”÷áŒêê#.½­õM-³¢[Tª±^·§‡—Ìþt¯óü _\¸<ó³J­‰%jÅ­CÀ¯ÎßÝcHܹ¼`ü2Øß×ÛqŒÒµIÁš‹N/jAâ—¼K›ó4w;«µºG¹~-è±.ª„[̱—ô9ÊwFshØ+UïýDª/}RómöX©v1Ï`a®?ͬ|=óXw×ñèón¸m£ Íca†k4qLI#<… tbAò B¶<æ€ò‹p©ñXÚÖ›a}Æ­Šx²{ÅÓW¢ å>ýVÇ8iZÐ3ïí:¼ƒû؉>ÑÛ­nuô“€:êz´S4Ë”îÆëý$µµ6’Í×Üv¶ÏŸô2£Æ^Ì[ˆ×Ì9&:^L1TÁ}K’¶J*3<¹Fec5CbSG<”¦õÈ×ë=}?Fæê¦€BS”3Mo/V¨ž4vÆIÔ"}+¹°Ÿ®IþI£“ü„©ÃH¾ÞÕ$×c¸ÞÚÅhHFÃÀ$¡ÓúüV«“ÒvPÿšÚ·dŸBîZTŽñ„Ô|”f«GÃ/Nh—u‹˜K¢#ÝxEhx =ƒ3’ébj~#ó¯ÅŸaââ4àÌHK†Í7ï©¢ý–ÜTÝm×[ᘡ*ƒƒ]n®Õ;³öàٔÎkÆÏà' ^Ï{^ŠÔF¹h4S?§‘¤ß[G_·ݲ'-i²9»¡4»2Û“®)ç´ì¶ëú¦×=æFÝìlÙÛ^®$~åqÉñ2íò7r¹Ï;A¡½¹"6Ò$¥Š?.Œï[|ýÒh³¦¾s·û*²J°ý“"G9{ÑjÕ9¶N†ñWr¤~²:Èè˜k‘ ÏjŒúy2¢jÖäÑužA F½ÃsýéòWÐ$°dʉ=à…[ˆ&áÖ«UG€À§aÿ Ôæ7(ƒ%ÆééÒ²¨ïC+GLy11Åð+|ø'!]M#1‘aû œÿÛ‚û¡]‹¥;\o®䦂 ÂàúuuDÈiÊè ÿ7gÞ'†%_³ô>lß—›~oAdQ©Ç«›Aü¼Å\›ªb„Êú>Eå %Ýlœ0TÙêê¥1¿>ò;Øñ« &vÕE»îÊÓøæ®ðFå‡çç/¾*`’ÈÚ¢› vå>8ž-鯬64òTë ††ˆJ>°K¿ªLú̇¦ž¡CEŽy½OÐÇ ®7%s%V¬;þ6I;ú2€÷AÁ"õÁÔ#±ø0)iÎHîj÷\ýÓΈ\°žÛ‹²u½\%pîèí¿_NxI„u¨õ%J!¦òd+ZìÓ]>7ûÎS›èóòj·(ß³#xaqÅA¬fý\«ïÄ™àqWIÆm±ƒY8Kc¼Tr˜êý\§¦«€œì‹õé¼4‚æ1V¥$Â*?ý·WȾ63À»ó—:SKãŒ\]ˆÐ.…oSy$JßcÇ æ[‰Tn‹žTRNZËá3br·ðúª¿š—ÿ~™Ã:È@Ù·X›5à/݃aP£ Â+n.!pqx¾LÉ¥™Z©XšSŔƇZÚSÿžÝrïìŠÀv?¶HoDÍjþ¯™”®¨w°]QæÉ¤.ìoÉé8uf¢ìhŠ­häsúÃÎK²U*p_Vá·lU¼qñÒ}óíÉRª=6ÛGöQ\zèö|­çhÛ‚cÙŽ£3tâý_?¯VÖs‰MÌ Ã_o"º šÖ_Ö†á«PÉTß6pS6}Jñ]ÐÖê âÙ [†ÊßÑ/Éa‹X13I[ÎIé•ìùt¡?ÊTBÌ$ ÒÂÜhá/œY>F¨´8äÖË;Áè¬N#V=K²7ý>f&Þ³æÒNMïB›ë%îøû¼{š¨® f‹zª[)®Di0â:%>2m Môêï'¦þÜ-z·×“/7 «˜šw!5Ç¯Ý /”ØM’»¡^GfI›É|gWá9XÝ„\H¥#G!8À¾E£bmÝc>«â]@Ž Ó0áâ€ÿº ÇéÙ—"¥–À¬±ütËŠó®Ý®éÃ|À?¥+-è -e§W+ÌÝS±Íí±|Íf?V"“©Ï;ñû'ÖÎ-?æ…¨ >ß šEoÃ,zdu³‰ØÐ±ôŠÎ2Ìrçɯo[ø`ã‘L£;»$nÍøá*'Ò¢FÐbuHØåÂä×7c‹‘ öœ^ßæ£'2*×ó¿ÈgMG•ËA ˆ¨G«yc÷{¤¢µ r×Ö<ÅúwÑYaYÍ!K+ >B^Ö:O¾ÞŒ¨n{ÃÞë¶= AÕ"­&®ñbðÜYQ(>¥½%WQãæÆŒ)}8«÷³Q¾/B>Î3½8’ðHI,¯´Ýôvf6¿° «ˆÖÊ<=yã•¢åxûš^‹qÉgĘ“›=3±HˆíÕñí?‰Çí@[”¦}í°ô,w\ü ™,cÅ\×·˜º5Ù³´ê{Î_d>Ö¹Í*p]å‚Åʵa¢ƒéÛ7@]CNXÍÜetóUòñ<$¦‹©ïW0¯]·ýô¯£Š¶õºãÝ*ó,Êê}É:h—ébt5‚_ßÙ‚®o¶Їjº¡¯)Ë~¥|\üæÈéðbÓu%Â\”’'Óú|£…óM}‚&j HÝ`R[n°ž¯k¶Ï¹îW¾œÖ+Æ©1žW›UBI©â›—Ã,°ÊêÁv&¼gÑŸ‚Wñe ,Ë}€€1°aŠÂê‹KÄp¨ôxB«ŒÊñ˜Úq2Zu&í`º¤î† î¾2Ê …Œ´" ߘå| ³ÄÐÏí:½l„æ!­ÒéÃÓ¹ÀôA„á\ªƒ‰øùy"òÙ¬¨x@ú½*`Ñp¿¡Û³ƒ±˜ ô&rŠ,ŽÝ„¯A§Œtd´„³?ùC-·Åªt#Ʋ ½7ÂR`Kú%‘3rÖ‡‰,f†˜ÚðÃ|HúϘ¦¥ 5Ut™ÅQA$ŽÇY÷¥ãú-.>Ö©Ä™/8Œ  £?âÂÿž‚7Xͦ3>岆)âx½Üu®_ŽX÷ýçκêç×Xó\Ó…=éý+Ÿ[óÃ&ó‘fÝ>ËÎpòÔ’xÆ‚»¾|¹T·çÔ¥é Œõ9ãõ8ÔeȿߙœKÝ’xÁ<Þ<ùNEÛˆÝÆÓ°$Xg†D9¥ËϘŠïQ ŸloȬW|†L\-ÃkÞvsÜ?”\2ïYeŸŸ°cûÖùDÁ FI\¹ÐOƒ*’FÎÙ¤Ègá£ÖÑò[þ€)T©¼²$êkª€ì£o¸Îù:”¥Xôîf^C¨ƒGó¥Y%­ˆ–¨ÐÑÀjUzJÉÍ! cÁ!]§;–t¼ƒAo¢.'!ט\ûÂÒh~¸ü¦ ¹z­J¥E©wKëkgl?@¾Jc1$ñ«Fá’@ήÄËœ'§EsÕœVŒD—(¬´<×\â$—«ªO£*ã§\[œ¶“á\r;3în¡²ïº÷EòÉæ³^1ò¬Mžùûë­+2’Œº²É^éÍ¢j$ÂÙ:b´#gP§«ö%{û‚®æ›e*‚nBBj¤>•âÏhAÔR÷ƒ#)‡&›¸S帙aÃD÷Au5Uò*ûç¡“!‰Õu7—R²J98·“™”î˜âØ I¿è„Mr ~¡ød^m5‡QùkDgER>Ÿ×2ö¢“7cv=Õí&À_¤‘à< Ä™ͪ/8~»Ûð4Xt õ¬ôÅhb“·=Ú-Y©7»OçR’Ø^«ê…R*§­¶ëIbSš@Wœ—Tñ:u4„DM·Ý±æcÉ…o§Có÷£[*{ZÐí_ßrf]ê¾¥4"uÓ*¦…X Ý.Öè¬ÃÞrZ©Z¥¡Ë4ÙÁºDj¿¶Â:+ÔU×F.æ…î‰3C¨-ŸO|‚±€Ó6TÉvd »†U¥í5Ác'›*Õ©gu/Ž-dbLM xõ]è" –„š¾×)Ë/Ǿ͙ÿÖŽ€Fõ–G‰K~ùË9{ŽnróŒätÒlçËDÊ"Ò¥üšÉ:Ãå° ;·n]åÚ—ùâ8Âj@îéÑÚKbœÇ¢äÏ·÷R•’/ÅwìHÏ í$—pŸ f¦=ñÐé¦a4Š%Àó¡ ®1 äE]a|ÆIi1éŸêú½l®–•e$rU³Ôý§%•ÃV@»G½Å[ÁžÞ½E†{A…÷é$ë÷J28¯– Šl¼kØ‚P˜ëW5(Ûï?çiÏ«ê `v7ÖŦ©3ï*ä`)b*èúWhé\š,ÇtÌÎ\•:¼DÓë¡öÈ+Nx$›jì•dHt1•3ó|`šú¼"z7¿¢î-í5ÅÞî†7äêIüëÖŸ©OTå]PnÕؒÜʲA~¬ z†™§™Êwb>j=¸E>¦§¾{§CF¤TÎ…:­€‡>;?wÀ¦öYW úÚË—{ø¼Ä@&Ä"öRæS¹Ÿ´X¡«_ïuußÕ0Y'ìÙ-S 0ÊÝŸI5z¦¶Ë݇»òÔapîû¼érVèÕ=…¾(áXþ%~+vEžØŽ øU/ËDú9ø‡(:¬FžËOt&uîx]qñç¥ä>·aP¦â/%SÛ³øÜ_Ì‚,¿ 5ÅžŒFæ·‰í¡}ðšºÙI¤›ÿÚ÷,†uV±¦ËUR°Æl>hæçh…ëÆàijõ I7®4ð÷*ÈHã©‹Óýî‹sâx¾˜ £=&Ø´7Y+p·5VkÞ;”WØ øg³t‚攣{Pß~ØZ`¦y.~-jÅ5ޱÄë9ë}×Þt?~øPÙöãõBô,@E¼ˆÔ)€p‘²gÀiöqZ$2¼o&‡¼êZ©ÙJ­’åm±<¯ŽÑˆ3…?æžu;Qr<ÿË¡;ä˜pN”1Ù¶8;ÔŸÊ/ø7 ½÷ˆd|TÞ“Š­i ­”ÖÐ9¯ÐâhÍM©ô,dã"ÌAÄ­¤Ÿtÿ0 I~ÝnQÎ쮜\Uc¼íèƒI¸w$ï›F¬™x‡AfÔ»]öC€Û²3GprcA•ÄVLÞ{§HŸ6röæ}õ`Qyi2¶.` œW ÞH‚‡ Åþ}´Kîµ–(Ÿ˜i­µÜËi·±–úuͬ|­ðÜ.¶­jé’>)Ê:Á=]›(µ(ÅÔ®ø/"sâ wx³ÇÆÛ¿Lkµ¹G¢)Ö8¦“ ^*"ªN%ý¤!ƒ‹ûàH“c xÆÅ‰ø5Êaäµö µ6LqG9C>—u¸À§Ø;Ô \â•Çà°Í¦á/¡Mreè9¬2ybÅsdÛú*ñ†ñ·NVÏ>çÆñ u4&+³](»½žãÜa„qé!ÜI*E&`øÐÕ¬D3žÍoA?ïn£fr'—>Ë'ArY+èOùæ…•‡œ+™âq´œ£5Ѭfït'_ýî8/Ñw3»°jîG½.û4-M‘¿.§ç¶{» r2ýv !ÿi5 gÛ½Y›/>©†ci`J亖]Jï?lN™— É xw™Ó(`w…–¹[а¾TDR¾Ñ¾Ë÷| šÑb*{A!„ížg²g„Ÿg9fîŽS$_ˆ.ñFÛÀ›‹b¸§•°,Ï%zýw3ßÁ·)È?áØêÄŠ¦¿¹®Wu‹Å†AÊr1e’¯IÕü„lGQ&šð¨9'·©°˜«)±áAâóçy|™Í’Þ\K½:ºJ2ý_ê®RLºØ¡'X„—/^šc]B¹¥Û€‘ÜU¤e£s¤]›~ ß²7,•ƽ2Œå*¦!ßUé)íÞm˜¸RgÓë!ÓÔ²¬fÖ©üz=þ8/p´ZYÜø¤§¡þÈÒÌêôPÁm•­ª³f0²N[}R¸HaK賡9[‡Qf×fO…%i[‰0̳N²’€9ÊüÐLo MÏò¡Ž@ƒ*§ØIÎg¶¹~Éu·}RÌÞ¸ÛøvJNÏß|äNfǼæ$àõ¡çésü%pL÷ôJ@È—¤‹Û çÀÿ‹ˆÃÌ%5pT¸.ðã–³Tôˈô\µ¤¿é³Ï36Öw¿i¾ H©Ÿ/¶ß¤6÷¸o‘c w«/æÀÙ¾ŠËœy ’åb_Au”ç¯`æê)E¡2“,O£Íõ–-¥øúðN(T4î_•€®|pW%Ô®·L=áœxœž?æ±ÞÆ¢t¾”á`µã|/ÚEÓB­óñô½Vwß‘ÌänHi§•³YÞÖ¯ .ÇÅ7\¼@Ùã|8‰¾JcW kÙœ4X,z1ÇOk±ël-aá)AétDIµÏUDŠ(¼ÇÏî™Zu˜v¦‰çþ]˜ ¥šëû\еð1|W`•Œ&«_h¿™Át~íp…r«¥ëÔZÚ>ºü£ô°6u!{ºù’Pä®zÓe:È¥§úêìí½:ÙŽaÖ©C¹­ÎO4úff‹]½¢•çͧ’ ìFÚ_ÀÙI&Þ¡ä½3ß]õo‚š)³j 7¾WýÓ­š5–®‹¶žŠè§>§çv~*ÆLaê©Õ²©÷EÈeyð‚›¢_""ÑÞ2ŽáŸY%­ŸWÓ5{p¨ûŽClÆ•¤Yަ¬À/@D³Xꉞ)£®ã‹¹HL Bhá§(, ê—_^/s¥|náݵß7íœÆ¦Âø±±b—l‹L~~Eit\^pzOÂ9ˆ².,¸2ÜÒ´ ,ƒÛ¥´ÕÉi7É„`‚šèè””ˆÈû% OÁBfM:„/ö‰eÒz®<2z9‹E#Šr{58ä¹nWYчŠ:(‰ÀåÄClíQ)tÅ—Jˆ$Ú·Í(ß0“Ǭܻß17x5¯`zc„$šcT~€+!Ïk+C m&©;U‘Ç´•òº’öã­¡•lŽv´3"ŽQ¨”yîwÃÏwÊzØÌ«Ö‹~r—Çìcu¹¦+KÅŠ™ú›:¸ÐÖO'ib `Ü™;±„ò'£HÎ5ŠÁ-ùÄ뙵 ãÔlÚ„·M*¢5›9S·MW2Üø^DrÇDó¤ŒÏÊg¼é_A!P{€ÿ(Ÿ[|{›ûÉO¢ 툡a˜‘Ó³ê¦ê­È–ÀécÛz Ù‡)¥ç:äÏr}ÖG¤1ÆÛ0}3}æ 7Ëy,ÄMÉW]û¡r;oˆ8ikSÓ àûġH2s)oúv ²÷‹Óëò-R©U€Ä}QŒÃäZ2bˆxZ*ËFÃ#”qœyVâÞ–ÒVRo7ÊÓM·ûÓ[TJ+®Ðñ§-Ê]P4weÃrçd1£ÅKýȾS¦n$媮Ä0é½sYiF=õ…Nô|ÿiToær²=&ßÍ’Õý„£ï?áìç8@ê¢åñž!qÆôi;j ‚“7E…Sª}Ó÷f›a–2ì½eTGICÂ(|…fw¨À¸w*ËTAðÈüØ…^¾M®Œ.êÑ"“7¹”{ñÆ|ÀqSK‰È9.B…nû¥¹Ua{hÖ^Øã‡¯_Dö›úzu6JçÒ”Ãt$º°Rì ÏçÑeá?„~¶÷Ý…ºwC­ƒ&Q‚ÉÓDç£Â8–°æ˜Å+…x'ˆâ$¿+岯ðxãÂÅÃ][t‰LM%~ßÛÌmä"ú€@í˜vNpáùŒ¦Í[Øútë‘2TÚdí=Ð1‡%\'˜éšyPÌD„Ä|ke3bä2¬˜:dÛù nö;cšå›3<Ûq€­“»‚G„,V×Ë¥ )½Q ÓÖʬˆWåé;ð]µºù/â÷‹ˆ,K/¬à¤é+ <}þìvKýá¾QÁ“;HH? ÷ç?†þ¨ÌbrÆž¥¿?Q†õ¹ÄÌàæ%•hÙ~KK‡dDá¶idÆgXÍ{ް—熲¡]¶ÜF$ºS‚R"7­»ID˜=Š4’_> ÉöSÀKn|7„Êq> úb`ã—¡FµjLK+%wqÖh´vÎ4(Û¦ÈZîÞ­ ô›UŽÌòAVY>ŠíÞi­¤DÃ¥²{†ˆ¼¸Ùp5.!Éõ[~®´ÉËØ/ «Ùg¾#•&@¶køÎÌŠå cÿ©²œî ë€Rü¤ï*‚Χæ&G¯4°ræ’¸ûÑ`?DÚM=7µG¡R—þ&&éÍýýÏH;Òü!ñ|> stream xÚ­UeX”í¶¦%$$DzH‘î”în„™afh¥‘îNié’înDJZ¥»…ƒ~gï}®ïì_çìs]ïŠç^÷Z÷zža¦×Òå”±Zƒ¡$'/@ìdí‚е‚¨sÊBm÷NA\ff98È †Bä­ 1€!È øø¼¢¢¢¸Ì9(̶³GXõu Ÿ±³süËó;`íñÈýIØ`¹ÿp9BaN òâÿ|P íA[°# §©e¬¢¡`UÒÐ( ¸•#@ËÅÚ ¨ƒ ô ` …ÿ2@(Äü»5×=– `@À@@ðý1;ûâÀ@p'0qÿ #vp+ò~H( :ºØü&pï·…þ!ƒCï3œîc÷`ZP„ƒaHÀ}U-yÅ¿x"í­¿k#À÷aÔö>Ó tùÝÒŸØ=Ì}i† H;òw-kÀŒ€9ZyÜ×¾ƒÁÁh¸ À»1àÀAvVpGqsý{:ÿêð?º·‚Á=þœ†þÉú'0r´åÂå廯 DÞ×¶Cp¹/Š Ä àåùËoãûGÌÿ3 Öß;óìž„• âè°Ùârk@‘÷%¬ÿ7•¹þs"ÿ$þü‘÷ÿ'îß5ú—øÿ{Ÿÿ­èâè¨aåt¿=0€ûPü~cþW®•ØÑãßdÿ=Ñôâ‚´ºƒ Äî^ .ž¿œ`„"Ød£Fí¶VŽ÷3úãׇ؀àŽ`è^Ë?cpò þ-¦g¾‚üºèŸbówæ÷òüáÍ­i¨§&oÀþ÷×ôO–Ö½êH=Ø=±ÿîãÔæŸÆo YY¨;À‹“W˜ÀÉÏ#|Ùxø¢¢oþM½?@¼ÿ²_X!á`w€é}Ó<¼Zÿïß¿¬—ƒQ€¡6¿÷Di±¹_­:~‡.pø½¢nû}Ëÿ°ÿ,9äâÎÏ@âÉi)ÈJò¬¾yÓ®^ô¾ XaÞû\ßrh»OrȪh©åMEWí˜Øm£Çç-د U¶oŸ¶'ör¨ß0>ëÌ}´ÄÒ,ÌþÍŸÛ¼?eÛ0ÂkZ}ÃDˆÇàÛÚˆ¶ŽyÁ ÍX3?{ÿü™/£k®/)ÓŒÀø®:𬅍…¸2ok›%þÇùÙÓžÁþ¾ÞöCÌÎ *öÌhfq+rïÄ-ú¤‡%ü¤øË³\,#>h”Ø5€ÅuYÁ„×Á„ñM†JšÆ~ïe²ÿJ°~Á{Zn“ò§*ßMÕK—X’úÀÖAŽÚAÀW³z7]YŠÒ±÷×EÖÜ-þÂô©ç RµvVNok™©±”zžGžË†Ú8,£Û½ˆ„ãÞM 0g&x;ôð¥ð3þ¸Á£vűÓ7*W£¸iò2ËÙ¿pº}‘y }i8!…ÇI(Ÿajäpï@µ®²±‰Èa¬º+êjY!6² ~ctl ýÐÝ# ÕRD-¤¤Û?-Å–<`+ŽéÓù,]µ„£6ííê2E=µ¦=e÷W¨ º+teƒ è(ò½ÔWÛBºg6 áþ¤ÓCëü4þ$fØc^Ñ¥ËìuEl"‰l¿1!UŠ‹!wHAJÄLJ&oar¢ì¼7“è$&±N)ðmšjvïè=š˜í[îýÐ!àÛ¢ ¯|shèã‡D·Õ^öŒa—MCQ{ðó[º0˺ ©AÐ"fóÓV'®suMR Ƭ*É…@Ãüjkå!³÷Ÿ.’*‹ÅÁŦ¸‹Ìµç(?ñü Yy^÷Ýq¿ÏvsÚŽhR¯œZx`,UÚ9ÐôHežZ–[‘R6sLºaƒœÕn>ë*!æ²´›ˆŽÑ¸í¬ïˆ¬×È,˜«xØCÂÊ_ɼ“é½YËÅÙ2! v[˜KG!™ƒúöäq“)%™}ê)H8°D?‚Мþ*B!ìp 8Z1DJø½7Ò›L8–À y°Uœ(9ž˜žL§-ì ®ì'Èr=Îê÷T¼Î/DX_¸Os›¿ô)÷‹•Ì÷vtÔPÄ_€W3æ$ZÏ…œ´F{ª»ssK‰Ø"|ädiýØ4sµéa0n­Z•½¨@íÌŠÉyàŽp¿tÒ±¸HÿÍ¡€cêsíZäTv•¹nËǯ«Dv5X/Î'\Z#…Ž—‰Ø.“]º®/9¥“zŒÞ½³ÿ~L›3è$ÓRä#+@æXÿdPâAN;´Ù¸öMö 5)$m()–² ~»øÁã FC&;’¥¶¦­y;o3õƒœl3òbe1ßÏ}=Pi[Ÿxô\ææ©?³`C_÷-ô5^‡8Ë«€ÛH0¬o%£6:åÒèç£Ã ¼´s>0«#ü¯:-Œ¿‹ ¦F£gñ°jê‹Óí éËë¸ ¤Ü¾ý6Ì;?½‰ÑR\ð‘Q„AY8qžøex/{SºVhAwUH3#Ÿ6HËÎVÄ™ùþ«¢ù-ãç[g[Ÿ!óøœX co„ÂŽÍZ«;^£µ5W@!þ¢Òïäð¸Xù¥Ç'êïÓ°E™cÐòY¾{Ä;B ss(ºäo/õg„f‘µŽc?xÞ" V› I7”f«v/ÂÉdSúºGTøÐR ›¢­‘‰f 5Åà íŒ,VrÃÛïlYþ)ûƒÆ†û—È_óiŸeÔÌÚÛ ªýI£í¶{ì³wC!/œ•]Qg/å8:Ç0:|TÆ7‹6Ž;Þ&©Âöå$¨ýøŽ5à®ÿŽchŠè±·Ÿ¥[£}fc3*Ùz¦¨ü…Dé„ýƒ+,[’É 6íÓzàß‘ïùÔ­r8ÿcLvîÌËÛdcm%Tm {ßÛÔGa‡M(;R®-fV©}”iwôfnk/‰x˜¼bùElÛ7Ðyë"æói×äÜ(ú$®ŸhÓlg5Uß.òQ»½‘ÇŠë›;Çzº¥ÒjÂyUí9PÓ$'š•øn¯ÓJ†» 7o'ûðUs•ZN"m­Þýõ¤_Z–ûòÊ[ÅȽ‘ƒ¶øáò¾ë{{Óq »‘0:¥i3m6äÏÁËü¢`8eHÄ£“EÚµð«zG[3ù§z‰áÀHK×ÉG^uyÙ&“&J|täpÃÀÖÇv]0o²Y‹­ òM Dð™ê3’ –(Tƒmœ40ÕÅC 'ËnUyDè¡+‘®ÿµä±¿Àà NÂò”¾:HBh¸"I:ù³Vm@K€UvDë!<é/«¢ƒe;£] GC+}õ½#öZÿ‚>•§1@#á-ÓB˧„­ä8Ú$œ:¹Wܹºi1ÒîŽEWÙí/Ì7Îj¿y§«qï!ñÆ£m 4“/¦P—|>³ŸÓŸ|í‡Ä¯XE¹Ôt!(ïü”†Iý‰šÿpŠÀ}¸Ê[Ϭ½å"<þµŸ =̧äH1¹™ƒ¡mHÕzp`•Ú'ÿHS§ó ºósšGþ4Z'ß.ðö¨ÝÈ'LÃâüÎIXŽ,æä‡i¹Œ¶¡Ùû®ÐªR})øBãòV¼˜…ÔÒ[YA9jÁðN…xµDÁy#»MÒEl*cUƒÖЧ;–•ÌV¹ËCA -{í#4â!/y?q{NІ_pÿp{½õס§š B³ðËVcÓ£—ÒÃL†®Q+_Nå}Œ®¸º…fû²‡3,Ø%Ã=S£vFâ´ïª>ÛŸ•T-:¾¼|6 î.WØ1œ}†þ`p¢@ùÞ”îªÃ²¬®Íòf93Å^äÿÁ¬ÃR³¾¤?-ÂØk!×P(½Íï —Pý}Õ I¶çª"ãûc"ÎXÜEªbìav£¾æ½ÚŒ;ô•½|¶ôþžÃ–B—–éÐP˜¾ˆ>ðƒ×å{ì„üh}¹Ëdq¬g¸<_BžÕºù± AeOdåß꾆¨ÿ+,ÅÏ Cwº”wÕÒDRî`ü æmŠ“N L-q4V:ñ2 ËébNsþì«'MÊg—bù8*Gp,s[Ê&IsÐ9W"•™kõ mÖ¥“&C眀tˆT—vh…óR¿ë2÷åÖƒ»/ôú ?N»©XÆèî½—‡(l‡ld´±æG¦F?¥¸8%¾2°nmZ¯;>˜ ADZ§=$O÷Ýõ'Ê[ŸACåñއ]Ž„—Nаæ2ÉÓ¶ËU;}–ˆ™ ˆö•^üI‘W&Úˆ]Ty=6­GZÆT:öF»õû6-åÿ‰à醬ñdýQ^x¦õˆž®ÈŒ‹ŽáÄ9rûd¢šÎ9“ÿÉ3ÃȺï5Ú>«%ö@ &[Î}IM.ƒ•ò}ÈËŽN7#ŽÂ>“¯åÖÏCˆyX-ØÅäÎ{"éýÃCŠÚµ;×iÇÄÑѤTûh…-Ë5cWʜԣ›ÔiuÊûƒäöªP»šY+Ä1МÑcº–3’âÊIݾ)Ëç¸;ÏÄœ*V¢¬F!IwʽóÚ½Ûèók•óÖ¾/–Ã3( .w¹fÌ6ÀÇa,”‚L[b(Òq­Æ9pÁÛ¹bǨ¨ÚËwËÖ \þkS.ùN³Üö+ç4‡A(ÆsÔ·ŸÈ;Pjm‹Ïº~eS0h™í hYš4ŒÜ¨ªVËS w¤}0ß5r1†Ì>ïl•È °ýReä×µ^8” ¢µ”¹ÞNyÐkm–ˆÂÛ>Z]«”/ Á°l B•ërkü ô ÅÛPš.ng=M‰íEEÚ.qß)³ì3c~Ýuaó0dûp–.ÅeI¬îïÃ,. qˆÊ\ª¤Z.ðÂx£ÓT¥[jÃä;C͚ۛÞ¦¢l®}ߟ0.äŽó¸ÓûmYÊ—”@åž»Tm=)Â$£ÙPåðo­²dd)¢fƒâß•Ì÷”c?ñ~®óç~çðÚ³ÆP\’:ù'»¼¢AYê‹„Ì`jh÷ú)îhãÚðuc8ýcŠ!©";Ü^[êh|äó^ª§u›{Å}®ËwÏör²ž{‰ñÙéMªÐŒÄJ7 ÞÕ·ú:$´A®YÏ¿¦ÇÌ•.«VYˆ„è epªÆãíÖŸŒa@V‹›5§­Ekxy†$³Í6|˜‚Ú¦N•¶®$2ÍÓÇen®ž¤}+Q‹Þ:=Ê……Çå¥×yµ´©9Òš>íg°ÓyFnœÕRx®ýeΡùSåB›Jj –ðÉIœ/çLù‹ÙuÅôʷϘ¶ãð=ºV4˜–šÝ„6–žû~ŽÒÿ´“œ™][Þ&dÐS1Pe¥î̾eN>X°©³3U㟰s·ãlÉE`êÍ_¤Q 2keKÀÌùd‘€ÀШ¨Ã¶NÎI¯êÛ`2È]Lô­ rq&žˆ# ,ŽûµÉÁ̉ÞI+ÁLN¡Û:°î‚‹¢¸ÎEz÷4xÅ„ÒìÕÚãæ‘%(Z‚/y£^dì)Óœ¦áMjLzÏ +GÎIgƒÈ¶‹ÅU¢èÜWÈGÌøô (gŽ–QÓ+un±Å³—QÛc<ˆYfÇÅç+lVW+´“-ê:k[$º!˜Éêõ6f0‘ÝceI6QGyy;|]“år=ì "ìqÄy>™MDÿ©g¡hé©óQì ¥& Y؉l˜÷¾’š^Lt¦‘d^öÊý¿bZ -aË2êc^‚FôÎîøiNH}Ó³·á^¾j]Ýlƒ“åS\åá.䯵ÉáÝzÇ)…[„e…)FO0Äá+?,0æƒû­ÝâÚs3¥5@nµÚ_4v {oç(ÚªŠ‰îÀþ5•Š‚ÓâöÜûaØÞ?sÝVâÛ?‚M:ã:œ×) y^•pUºy2q1×àçxÊ··h¬\¶”TÛzдøa>›pfáåboɲß6ðPþ\å6°køQ\[’Ànû1~ž­ÇÒóãKÌMÉÁ“‡{7ö"Ù«'T&w†Fó0cÛœS»ö¸vpKÝív騣3§ª¸oª:Ò¹“¾—z]>û=GÓ¸ÂäûdXMªiq õc "–â¶eæ¤wPpnn´.WYzJaÛî¼8ö×½k¹™PÔ`Ö¶_ôájJË¹ÅÆ{ú¢©5}ã„ÕVóÞWÏKx°ô˜_ ?FÈ,ïÒvsù²-+|x*÷æñÊ’jØ«¹xÐÙR¦$îƒÇcÎYG _ Âì@_‰Žñl?Žœâz…RLí$ƒŒ×¡ŠÁÂk^ežŸ’sƒã-<ϦÓe= P÷éz"Þ9sTµ`â¯gg>,êZªð>…ÔŸ1¤f1öÆ"(ûªøÃBYE!¼ýúìúW(!ˆw&ÕDzß1›Gëu¾:òøß%8óÉR Ì.a‘ àãâúÑønÝr½ý$Ÿ¡nqX…ìåb„xºÔÐ…(gª/ñ„fgµJÃÅ0{‡ìû7j²vS¢o$l‚ûÝ>0sÖ†Úíøùiëëɬ^ämòªl`r¡8‘å>&¯*Ž$øõ§Ð»U¾|hTµ¯Á 1m„j—×–[DõƒÊ Ã1u¾-òæ~-Y\ºF7Ó{°Û–ïœ×©0^ˆ×Ñ™ $¥Ä#~¤ðéüCr‚®mAÆ—74å7üÇCø»“¿Ø¿™xû6eKÿŠÝÐÄXoÅƸ)‘OwR è%)aAeoª…˜â:ÇÇPƒ(¼/h#Ü´=-xÚcM,Ï;žvꢼ3w!™ ³-”Q²!ùøJ œ‹ÈcïyÅ“-vá‹­w@TW„õØ ëfÇv<“˜6à¤4³1Tz!ÇÅ„% 9wš+Ö¤¢¤=•–J7<+¹i©/—àÊÊm‰ƒRÝäQY7jƒßiÃv~T"ò83@E_Qv_ ç¾M™ï8ÞK(áûÚéã+þ’¥š±žqóÁçcÌLe­÷úÑÞîÒÏÅœ 3ÎkÖ!~¬7‚DÞÌÝÝVÃ(R>H¡Hù¬@‹^›±t¼€ä-Kàˆ–f1mç¼ë¨®_˜™™M Þ»Ö™à‰Ã‘­öœ1ôÔaã¹6å-„øêë} Øb¬®œ>4´cÏ‹Y™¼`íu~¤#0?³ý¢å,ó§(hz$òí¼A|c°—™~É>_ÿ­ÞA£XÐÁJg—G8-Ë*µ`¤EbŽ÷»ƒƒCˆõ0yøò4 vîäeäúSIp™ä<¶‹¹Žö4¼KÏtkÓÏËâx^§Å~*•WFµgD´*ÓÔa[ÛðCÔ%-*zó‡˜Ýá÷ÄDj¸%_NuKŒí/8`…„¬Ã.kÖ³šTÃcŨ>}%æÕÙ›«£Êëò´D¹§¼Þ=õŠö wØÐ^ŽWùÍBÒ†LmϺ:m°_PèµÛÐýhÞi8öxÂc›,Eý8Á·žÍ¹ùlÅ`¤7¡®‚Bb± ô4z2ïa­ÉÝP Á'+5 ÌÚ€DãØ³~ƒôOé[¬õ aQbIîD~îÇ’Ý7ãP~vA€#O±bÇœ ÅÃ5ëͺx¦‰©‘n‰WZpž!U­ò,Í©=/žH°øín U襜ˆƒ‚5-qÚóÏ;Í9ïôtoD¢D¦iŒö¶ä‘¥ÁÔÌjQ¯gaFÄaì$Ç2DÏ]šG¶ ÂZI²>þ(¶ÿ˜|=g¯SÞ¬\vÁôœmóxpŽÒõpiï'¹kèØÒ)«9ÝÁ…çÆd™m½ïÙÕ`Ûâq,T¼O0ý ÔRkЯÉI/m±>­ü`vÙu¸²šú™î}fI1£}¢?Î21‡ùîêË5J¸”Å—„ëÃ:X²ÀDb4^€J+o'Ös „ýSGNc#ÞÆRÝ´;xjÉÝÜи14MÝEÌòr‰’USŠéVMܶ·d‰  é7Ïtª0!ÿœ¬–Œ²¦î^rÅÙîcÊ€µ4ZÅsz̪™úDóír4Òvý…£ÎÖ¼*ˆ×Û3Å:üÓ\á{Ö[Vµ^= ‚Páô©•NŠB5é}q~Þ$máü;L´3³‰Íøgw¼ÎP ó!÷¨U~͑ŅøÛ͸+¿2C¨Gã$À©Ì„uØåùf~ÜI ‘O#Wª¬óE|ïñÜ~žhÇ-Xu¥bÂ9yÞÒˆY­î8H;è9ŒÔÍ~l´•Y*öjW`À‚ñó;"™²‡VÔžán ýJÜs ÿ|•n™«Ï…·Þ›x¿T¾}JZ¶NêªVZªm_ž®ôu3¢ÆÜOõšÂêÌ=1,ÄkøÊÊÌMÔ·S®[FŠNìó'ÚV¦ÒO]|~·/8b§#ž¥ªÌ¦hùúj‡¡=í°Âm>*P=pÛ3WiÙ‚Ùð~à ­½É+þ,÷yõEl碩@Wºèš÷©IrÉ|Þ£/•×›C!áEµ—ÄÒ y¸ê6&½ö/°˜E1òMÆÜ´ŒCÒÈÂöSA2 Œ@ˆâ¯&3ClJ!Ÿ¶N'¸j†ob™Ÿì™ÈH©sÍÙý¤™1F/Ì×伯ŽSCêÇ(ÓaÖ™e'ÔŒÀj}ŒÑ¢¾(áæ†¥cæ¨ç>†bÊØ"¡ð„Ø÷!Y·B«ñJË Ô5?ÞÌŽisžÌutå^`ï•*ŸôpºÌX ü*²Ï2Ty‚Ñ×Õ ÈØÑ¹ŽWÒ§hYôv_×-µn¡èÛ/ôtçм­|hP¡ë`†ŠY¥Lû2m Iõù=!Gk’ðÉíðéœx!m&·GfQЋËÔ•©µxüø_BÕé,©Fº<évN\¨„¾XÇÇLázzËÝö± ožOû ðWËïöµº¬\ó¥¨ýX~ ¸ÅZ.ík“ó­R·EžBZk¦Äž¤R>H°t§ð‚ý„t¹:@ª$ï–$¼ß+O)~aT(2ëáÉõŽ.—È`àgZ¸ ù…å †¥/ßÎ2Èšˆ#4—&ülµ‹&!+â ¤½ÙESë-^EAe®-QÏÕ]ªOà‰“¶¢ [j"új~Ô%Uåˆ'k<öòÛÛÖO'âuÛ"qÍÓìus•E©3OŽù›ð\#e‡ 7ÛmÁÁËr®ôÆøÅû—– ß%bäfW¶Ž~Í89 1¥X—ôÀtçq°jqÏv 马K¶ ¦ kjó4§?êlê™Ûêq Ÿ&ÒÇä#£ÞGE0„x`Ýþbó‡``^û[d;5Ö®H@¦ºŸOM^›ãz}L颜ýŒ“â‰È!IèëËVxM85÷ç‚‘Íï´‘QûZ–¤€ƒNÛÛ §éµ:¶ãérÃÝ3ĺJ†?*½C€½ÕìØ›£ì¶:ò Ñ~’)†S;†»0.wùkŒó$êa÷[£ÔÇùGóWõñ'skÍ.ª4 ›BöÍŠB!¡ÁlÒ‹T¶nѪ¶HKGX±°í6u&~Ô¢l«î[‹ÕMEUåŽU: {¼æ¥£œJý¸dvY HIË«íJý¿ê endstream endobj 199 0 obj << /Length1 1144 /Length2 7560 /Length3 0 /Length 8325 /Filter /FlateDecode >> stream xÚuseX\ɺ5îÜi ¸5Ü5¸$¸Ó@Cã®Á%¸{£!¸wOp‡à\‚K \fæž3ß™s¿gÿØUk½µ^©UtÔjšlf Y{W6Nv  @lgææ¢ij¯Ä¦²r¼€¼¦httZ`Wè¿èBÊdê v°—6u}ᵬÝʦÎ. €(ääå|Y¹ÿèà,PsÛ9xÔ@® gØþ…’v0w³Ù»jº9:BÀ ‹ƒ›³9ÈE`ùRÙgH98z9ƒ­¬]Œï4´™XXXÿF8f^ÿbÒ °•=€þeá‚88þ‘éEBdr~)ÚâX5KS °ëí­]]98-MA/»‹%»=È•ƒé¥P{ )»?\Ðþ˜™4ØdþÒ”Ç?çfkïàaïó_°%ØÞâÏ–,Ü9ÞÙƒÜ@ Òÿü¡ýY\¼@.  r€<Í­9þH©ååú“äü6µ·ðóqtpXšB\@~`KÐËÍÇÅÔpuvùùü¿ÄîÐ89`sW€ÈêåþVA–í•M]Áž} ;È þñý{eør¡ö¯¿ÃULí@]]i9y–öþï(II‡I6Î7<6.~Þ§¼( ðrÿSQÍü¿ÿ>¬`oéø«ð—‰ý«xw³Ë‹ Œ– ðŸJ*®`s€ño“y/þxùqþŸæùþÿ´Ð?sȺA öÏøW〗Î]J€?z‡˜:ÿW¸©âõøg 6è/Ÿÿt\M!`s {+È¿Çv‘{‚,ÔÀ®æÖã/ü½ÅŸ/¤æàþãÍØ8y9ÿÁiYƒÍmíA../îû“Ù[ü#¥Œ½¹ƒØÞ  éúâ?Sg‹ÐænÎÎ/ãùó‚^Îþko ~)ò™£-Î;˜ …ØÔ…´ßÕHy°ýçîã{wóìFŃÝf‡ëU!¶-%ãÉ¿æOÉ‘V±­Ò‡W†‡ ‹'“‰yãa+ ÙÁŽŒ‹Š 'IzÌþEXEã' ãä9°4!š8-÷@ÊkPþŒºüF—NTj W3ÌàÅÞÞ¾“*eya%ªêþ<“áCЩª<Ä_]iv¨Shž†þ¶«qêžá­zãñ-^e®ÉÜ|¿$&ï‡Ù094׺Ÿfdº¥o;Ǻ¸¬;Å;a»Y?}ÌcØ»äEÿ½1Ä<‹Dœ”@±ŠEL<È«d'´hŽB–9WÐß1Å8„ÁÿMÂÞäȬڃæãšw)4–ØM Ynckù®y”kd¡ã»ƒå¥•atÈWüöæþûÌ÷óvD«Ó†#»îR½Š›Û£0µ”0ê䪓‚ÜE}4{ 3øäâZyl$Š„ÏêMðÀ:«âsQ¨¡{šgFFôˆ¬jå7ý> ¤Û•|JEíkŒùÏòr *öóõJàÈ¥nI6*å(J¯ˆÙ(ÔsOóþ¬ƒŸ!°î&´ÍþFŸüµ[_ ýé‰s™°þнFI½ ÍÜùФås;0T;BÉ mS¿œ'/w0·u÷+Rs-¢áƒÖç¹U+@@^t­wº}¹µ wd]Åè× ´ÿÌluƒR׃La]Æ£¿!V1®ÇžFZH ÍÀOh!2 °Áú¸p„û£ +ÙKÏ(§:\‚Ô&/²¾dòÉ·»­vOb%r+RôjkL­[RWPÒêMõ¼k+ÍÑÑ<>gSÆH³?²^¢{+17‡àKKí¼—w½‡·Ài¢ú¤¥Id/ŠÞ¶²ÿ[e¥†·Ý !pÆFÞYs§…ú¹í„Åj"¿r£Ôë`T,»-.œFv”0»¼¼)Á˜Úaª¸e®z×ìx6µµ×­ý^0Rèu‡Ho<Úù³}tRÿs§npˆn-ºQý(>­qìÒ„Ž–÷Q墪¸-¹]ʹzibpôìl5‡#n¬!7ý ¶òæñû«ke†@ã1˜ªõñœ’¤u§‘}5Ál5 ©óº°hwhÄ%O¿æabѽ†ÒZZÏÌ–T‘'.)arˆ,/Üô[Ÿž¦ >ÓÎ2Ör·ßÑlß"è .öUŠºtÅ7М6¤ð® ËY“îvi®ÄÙ mÉÛŒ­æÜ·&J•q.¬WR«›„}Þ:HœÍLdƒa,w>tòA‚Nþ¬Y.ã¡#ÿ˜\>ÔV…ÌÅyRüÉ{g…¶±Œ¢—bÑ4nËoA¬ØžGÄ ÷½b3¢öæ÷2ŠzÔ_V…¿¾ÒŠ@f]…[K¡ºQlU^í|ùìÍØ>«y?ž‚Ã?Ù݆½u!Ù7O2i(’Aúµ‡0e-ð!ã5Êö~{RŒÒË7´¥ºòáÍSÞjbœf¹¿ÞùÒSzªXæ­lò©¦hòL”t*ÏLpÅZz–Ø\žïò«>4ĽÖÊ3ê'㬢ŒMªDnÙu­,Ùò'E‡Ã,sÍ[Š&ýè·Q%ÃÑ–(ùxÞG£¶>ÐH‰Åµ#hIA:Ù_M¤§šêˆš%ržË¼CH#d‘2<ŽVÞ!ÁѱßZ*~?U¢«Å©ŠÏ¬bbóQHcRÂ')yÙßmþ-þnE/º;îòè!êÇF惌Q{!딾Ð2Þº¯å$üeÚSãbÃyIA7 5‚0^P…í„MhgOó¤ ¾¨N÷‡Ñ“ÌÀД‘AAîjü6š)­ð “†oNä ĵ‘²))½®’R)+לN.!³W+6.È Ü)²[ÈÏçÄãÝ@ztê3u5K–)¯Š [>9u-»gës| î´+vca¨íêJØEÿ÷ˆß îðÛåZóJIk9ç‡îÐúéóýó½ÝN¼ c WÌn’wœ+ÔwÓÛòN„¹ñyØ®©’bí4"u<¸ÑZÝî„Ü”RsN†ÜA¯ÌÄ ’P=MÑcNà(Hè É">ÈChkVÜÑìH¥§ˆ ⬠b"ß‘r#®¼n>ôîçòuž )41OÙÝÛ‰K"2 kê!JiÕêNï¯="Ÿ²œRåîËßG#½¾;þŽé)z˜LIp=°¶œ^N´MöMÙ >á\[pŸ¸w[YÜœn·Ôîq£¬Ôæ.t&}íÕ¾ãv`Bþ>¼©Vw{mwfÓ’Áo£êJÛês¹=È7OHQÓ#ÎúçÜuâ¤[òꛇÈDÊ_¦®u-4ì‘8ëX,‡ü\ Šò Ù!þïåüäWdj”Èñª<ì5µÅ.5¤·Ü­ÐñDã(µÁ½<¡Àø€Ö³F{ÁF_†[Œ«ýZÔÿ2âˆoÖ—º 24<»Ç’šjð}I>%™¥±w:Ô×Õ–gwVÎÐj«ŽǾ”åïãQoJÖ;AÕ"8®˜øxÌA;û6Ûó‡gÅh§0ŽÜêvŠù(ÕÐY×ü™ª/ÅÒn8#Vÿ5rþš'j+oy hEQûÝÂë¨ZœŒe­À®LnjA‡®¢ˆ—häñô«²¹¡F:“@5Õ§á ll¥ÝäÙðOy¥ê«8ÆÞÚ2¶ÕE°õ!€ÑÖ/ûÉùÅgÁc°Ó4MœT¾&»{¥öqŒ@8YýcÚ/‚V{?ß.~JØi¯d¤žÒ†|êºi”† ,¸?žôl÷ZVþ½Í•2“{jqfF=Ôð+XÈ*N„5&3PX2•›~¹¢¯¿F>'ù¾ÞßZk‚޶†Ï–€å#¨ÆH2a›$HóLi# iA®öM¸§Mˆ]a›;í'ÿCdÕx¨Ôƺܓ—ÉD¿T§î'š›§IζÖ•è£ðë ‰Ê"«/(>i´]àå*òTs‡ù†±÷pà«:ÔåêJ4Yø SI¾­üŽÕ 7Z KDTWDÎÏ=郟ΆñÖæs–%øo“Æ;áµåúPLÅÄ ž,­ÂÔtÑvîR|•DÅ÷4ò† >û‰0Ç‹‰6Ç\}Åq¡Fâ™Io¾Lý8%¯ýåŶ¤„yÚD¤SùéP»žõGo£ïcp ´¼+Eé­Þ-î.&f Â\ÆWò1Lcwʦ;óùþùÆÒ´¤|‹º]á$“ ;ž|œ #žÛ[KŠoˆþ1¤¾•:?¦Æ Cp{H"àÓŸXz<Ófòž4cÔÍoç~¨*»~¥ÀqoåÚ ä$ñâ~6ñr.Ñí,o˜ï0¨\w˜)Üæzbò:t µ8…Í„•î«éAiÝ&¥öÜæ˜BÒˆn =ÍJÇj«qÚ¶n}'²,ó½\Õõ&“@C@<¸$˜-}¦]2‰ñä*¬<G3«»‚ðz yÙº¯HSûU Ö´²Õ›üèÏ<ÊÇ•þ w£ÄçA4ƒ=<-ÉÈ_êCC?ßÈ~ÿø«hZ¾y”spšÝ`ÃV´gÖ± VÏlÿuÐ ê!±Ï´€>’fõ&OÉ_O1ɦäÃôƒîQ‚§­þ¥5o Ÿ–T®÷È=éòq ôRƒøÜå…Ú²}{:cško#Ó¬=,# ¬5êyÄãÝ&ení”õ²P¥Ék  Í·îå\ŒvO$IóÎA+©¨­g ë‚øoÔ¶ô!CnZè"0ÂgˆÐáƒf´~±PkO¤Úe!Êy27÷?ÓŽ» Ži”pÕ Ã¯Më¹Æ-÷ÒrÚsà†Do,Iã}´QÃ- F’Fæn(…{Yô˰OrDK âÃl~ÓGó–®y8oâ™*'žt»¿cV‰ujKÞ ÀFª’ŸhÒü¾M§:ælö3Ce Bê¤}Á¹>CêeBÇÁ€aæ-m´ú8@Öz*ø«Ó˜º{̧‹+cÕoQ@rwlV3Ùx¯V~æ§Å.–µEò§KÌh•NÛФŒÆ3)µŒ7לõyž14dÁí·Ô³ßS–m®Å³f¡¥¢djábuä1CtÔ¹òò2Pƒ•`²0+ K˜š¼ƒ)ÉÔŽ±O$„• :Eõ>ù)–;™Ÿ^\Gvb¾ëô™¾–|ü Ñ]J'Ï@jÇ—Õ`þÅw'Óú9e׌°¥)‡MdJˆk1×közl轫b1äZ×0êw‡ã5W½!¶vd@¸Õ¡¹È–ÆRï»»Óúüaà$CghÚ™ºx˜AI_+ô#Þ“tv‹ŠÆ«[±÷8£Ùˆ8«žAçÜÏ6™ÉwXÌݳ½.¾,üâΡ‚錺*ºœú<ûg¢¡¨Uï–55¤gÈb·%[½¬=£éSѱ°$ ;7Ñ’…÷²šÕï[ƒo¢ãî7 Wl|ß.û—ó,†¿Ž·ûn“Z:~ú ÝZ£àÕr -2ÜõwM+„òM¿‡ß÷0zv=Õ›¶J&…U¹#Û´DƒpL¹ýK¶WümÂÏ5er=rˆC@µÇ64ŒKåÜãpXmê­êõ=É€6ºKKðÓ¢[³Yi:ISÒoȪ»½»§äқѴç3†ªˆÛhby{w_ƒ 5ãj§{:ц¿¬÷¼6-‡G+±Ð3•,\u¾÷‡ã+bk‰»˜O(ßÿ@ñ€•ä,ºH‰u!TgˆÖçžññ!úÒ~:´›ÄC€0sÿª|¤sSëƒjI15gTœÈæà9k×òúòUs·ã±øÀ¢Ú¨&}¸4(·Ä_¬dµÛá÷$#4 Æ5Q¢¶¸Mõ{K„ êa«†”/ü È4¢”æ«âkù<˜ p~:to•åćW‹‹¶ï]¸W’ ž7¨ÆÈxéÄô†uÌ¢K³Ô@A,£AÍã— {/ÔF(’v÷$¥tÂm2pn¿1øÀ±ãškË4é†3O2ÙqF8Ž•ŒÈ? ¥Êc1}©‚Ñ^G‹5ˆšOŠùºaHN;0w¦Ñøx9‘¹u 3¯–ÒÙ¶¬Õ…êã1!7Œ;¹nÏ×N_Õty%Úaïñfïß újáÂû\†8²³£yÖ7û »¿é%`Ùx(Ýa«ôðõ2i« êßáœ|…ÕA:çž*ÝŽº‰K [ýžÎ=9T6.Òé‚¿;‡ç*˜¥™cà¹×ßåëihZzÁè`]Ï0ò9 ?”›£p6Ùz.݃€$c‚¥Ð—J®Mz¬ÄS+KQ¯feÁDUTÎÊ ñðkñêûý•8Ê!Ð8ÝX¥85ôÙÕDÉö¸Á©Ý鼫vÞà¡–k0¸"e!ÁXop ¢£t8F¹ƒÑCx@œ¸Zv††ÝÕfªY˜È}›t–·™ÍXN«÷8FÞ[„†àÍ=úD¹Š:·K3[¥3®e'ÛMÌÞ\aÙË^£6ú0½Åšøªxª~!S÷‰9å„L7©þJdé¹)0¢qêU+·¼^­ó/™ð£û1áTÛˆú”CLšØ^tLáF¢÷ï›ø 6`òsÅ&ÆÈƨ6Sƒb  ga²i†Bu†fñÞÇyFB—ŒÕõ( êãÙ"éÃæ&TI×940ÛÕº‹~'g³Âé ’±ˆZÎíW¡˜fré6Òtâü"b±e7ì›ÀRÂN16¡ èk€£ä¨GšæD&ÃäÛï}ÎåYL¯ÚѪ‹Ë=¦å弿.£xgP®;M͘ÃðG”-~“,‰éâg3±9)=Á‘¬Ãg!Ô&ƒA‚–žbîf‰#ÞÁ³É•°GÞ—SÂÌ 2‘n®¥EIÒLFˆ!ì zR–0T•lØjí†Ó+úM;DáÇ7»%ÃCîdÔp9P]&h†¦LÀâ7óTôG‘*YQ¤¶çžMØát8†cO T þˆ¦¼î2Ÿ¨o†*M|„EnÂá_­X0¯T¢¶ÝoÀÝGJ‡LRo÷õJ££n¹ ~JÞQÈR$¹ô5ýàaÑÓ˜}Y³aýû:‹¹Pðƒr/˜îþëÉÇm½ßrþÇX·)äÇøP¹Oßýk<8ö4Ç‚2Rhö¬èË鄚 èÝý}³©Å]., ŽCñš#«~éhA\œ¡~Å×öÝnüßsß®0Ánw~¿É:ác+$c\L9$Ñl_k“50è°­]àoåÕlj0Þ1‚5,ôFŽkJSŠà#w/ y§×‰ÓXÖJ™lþÐÙ»}­^3:p(ÒŠw8W4mÍV'†"蕲†ÿÖãx€Á¨ç‚`Ël˜—µO׃§¯ñµ¾¦—2¯ +ð§Ò¬÷'CD¸â»÷Pø#Yv¶¾†lì~?5ì©s¿°áW<§XuàZQºxZû@ØQY¡aenÝð"µÊÅ|4@ u˜ÿïBÙšCDJ–Ùúüæþƒ9¬GKº/ðµïç°‹xp% x™‹ ÷½è÷4åæú¦Wüx¹H8HŠRÒKª¯“é;oµ’yªmˆÙnPœÆîðX’Îèè\%)ŠÞn—Ýq娜ÂÉÎ.pÐ>­—ñmKDV袹CSî×yCD,!|É—?].yÅ™‹‰„NχȰ9nƒºq9(kúÑ*†:3+h95™»Ñã`xã]L oÕGÆI‡õý(E~‰^l²RôÖfNí,ä Ã蕈8šR^Qm&¹r¯Äª¥£2}/œ¿‡U|"åÇÊÁ”ŽKiÖÆŽmˆäíw/nŽ4ïè¤nÒ‹UòDáxû¤Ôþø£¢¾ºƒº¸~Ö…Äó“Fž!ÉöÛçI8ØE²˜%ê=öŸ+üÓH¯ýg Ÿæ†¯¼y½)·Ë†¼íü˜ÍPxã®UÕ‚GÂ@RÏÚD#«’¤½ÜÌ ±|ƒF˜…шÖ{"ÕŒ±Ìø©ŸV«ãäûJ_ísûrrºÂ8eüABl˜v’m³)%‡]®Ù¨’ÊwEyÿؤ÷Ýb@¿¾œ;’2àûù 9‰FãºMUbO¯ÅÖ€ƒÂÿ@â( endstream endobj 201 0 obj << /Length1 1625 /Length2 3279 /Length3 0 /Length 4075 /Filter /FlateDecode >> stream xÚ­Ty<ÔûúOe_B–lù†!ûN–ÃX³3!1fa3ÓÌXæt,Ù²ûžÊNHD‰ì²kt(;"Ù"ËoèœÓ}uïïŸ{Ï3¯ï³½Ÿåý|Ð9s+imÎ ÁaIÒò2rê‰%yÈVp7iP´Ê ˜€„‘Ð8¬.Œ„T H ‹„ €¼ššãðdÚÕœ·±„ŠKJJýк.ä¿,”H"Ú ˆR>¼‘Þ“’“ñ_Z!‘É  Ð$63·34ÕÎë›ÚúH,’Ãæ^.40AÑX"R@áæ»ÀqXú°5¢ K›À" GS¾p$þÐ$à‘O4‘HùÐDÀ•Ã’(3 á4ŽñB@Ñ£pGá 8Ї'ÅF3ÇID8'”¬æºïu’Ü`¤ÃÜD4Å àPOîuØÒ‘C±’`h, !}I‡¹\MÄc`dJn ž€>*ˈƺþ¨@ ]aI$R`(؇ÓùÑ'ð/ÝÃðx ù(wäõw h‰AÉ0È+PrÂI”Ü®h,ƒìá¦bQ8@^î»á…ÿËæ$ èüáΈSŠ€!pX @ Q ²¦8%%pþ¿cYæŸ#ù ø!ø¡÷#÷gŽþåÿ¯ïùghˆc ó¤,ÀŸ œã‚Ãy&Àá©ù·˜'Cþÿƒ~ö‡"¿×ûŸ° I0ÊP´±®bädä¾+ÑDÚ‰0G“àn †¡LìHoƒE 4Iaöh¨€´¼œâO6k74Ü{HÚw8$ñs²ŽÊ—Õ1³2½b.ùoÇõÈÍœ²$k2žRÙŸ\Á!þAttp¾ÀMiy@ZQ•rsåääÿ”ýþCÆ#$ùò‰€ö(mËÉ5ÿçï‡äøŒŽCî †EPVíoÅ¡îE P9zý”¦ÿ’–‰ôEÂF^ãà!îié¤rîÌö]‡–&ùí¡øÂJ뼜ÀG¸Æ€´ðiµçݲP™'}êû5ä¡üÞŒ‘ÄìïM\±Æär6¿Ÿ°xsÛ„h­ªälìõBæôEèo7WM¦NÚ«ÈÙÎ¾í±°¼^°K#ÐW«H [ÙöÎ äÙijøÃS+b9ëXŸc/Ï]XMœßÚkíìhok\¥nžá“¼KÒ€qû'/œK"‘ ë•ð}êoÕ=.6³°@2]uMàùiÄ>ûæ¢ûYÂg¼ußö0qçësµÇ*I©.ù´?‰¹ì&)Ý©ü<†7ªL¡±ì„hlZ œÜß8¦ú_®WÖN~ª36B¨fëÎÃðx §_Úq‡HÍ3†«ñ¾ÕžÝ(•`šÔ²¸8Ïd2ž®jë|O(*¶øÅˆÑ„èn-ˆ£Ú¹²p=j[æ´ÍéD@îZŠê‚T¢@«¦O&MÐEgߘKÇj@íoÅ,x’³~ªË¹Ž EÈô%[e1æ:ÒiOìŇ e«6Ðj}b®¤ /lyrFRÁ¹*}iôàä’”õgu1ˆ(óXœ%:ŒÑãXdމ9KBuÐ.©YçË˶ßU†!÷²œ/<¬é¥ScV=0ÆñX–îUFL¢‰íØžÌÙO½Ûï19p£7™ùa à“ Õ²GÁ¼ŒäZU‡Á'º€Û·¤83ý,Çû !-Ï¡ƒÒ·0=;¤°;ÜêW×ëØºSÆêGzmò¼hzkêëG-ÌCs‡ :êXíHÎN¼ìåD1¸~4ÄJo!’󜕵¾kis¢^ek•¼ïÂÆa~êý—x¸ûƒ?œôJ´{ ô»ü…ilØØõf¾¶ úWa:b̪bž/+ø×ªò««*™=d+BJbã«Ø·…[†F¼ö™ðUmnNìÞôœ@ͺ]õ1¾óäÓÛw1gÆo/r:ù}Jнö|q›ÆåÚ†1'tx§gÐÌÒþhòCÿ^Š8òq?—Qq<+O +o˜Ñïï²3ü€jþ°µ%©XQg° š%V6 iÁ «áhŸÈ5–W»ûÛ…sƒÒŠŒÒ)4öô5ê&ü7|DÚh;¥¹°Ç:>oxEÜ}éô©rÛ8 ¾`Ô+B^Fu”­,1-\W¢‘íÞÞ WS«'墼ptM!%2ž%Æû8ÔD&¨NY ý¬|‘뵦_ð¢‹ß½ŠS:}ë‚øø½ùåøÑiqãV#sZü”ŽÚ»Â¾Z{ª4cžy«T!v’㆓±g7|_ù™G¤Bjgß8°°= ÎL÷þ6`ÁÎG/m4ðæß1ŸŽÆ°ê›à“9_Øø÷ß•–˜“®Eå=â'ÛÕªd3Z|„'ƒ13šñ—‹bç“gèåÜPü=9·¢yv¹„œlŽ­ÉzÐþÞ_&›˜3†y¿û”ayÎÕ£Þ‡¯PÞcݲi1\_=a¦W Æèl 'MQ¥,wÓæaW¯އ]»tee¢€lÖºÈE#»`žX bo½õ0\3‹ç:V£yGØ7Ã0V"A Ô¬OàÎq·b3î^r˜j¾/3tÈà¤àú&ò{›øôÇ\÷λó%þo¦N]-Š:ØQ¤U·I8i×Bw¡S »¢Õ|(Ü?%¤ÅÍ´ÁvnŸCXIþÃ~9÷Æ´Á§þ-‹›çA ×ÐÜ%ãüžc­ŠLéqÿì ³ÍA¥9kTþ]óÔÔjJ›ôz¯–)½\b’º’ûW|IC±?+_âýØýð]ìódÖ¬±×.Mè~‘õ;¢# í…>qCÝú¢ºi§†XM+šïË/ß%ϬšOÖC»¡é¨s"Ñ®çí•­÷E-ƒU.Ü:mUؘöBJ ¹itd;uy½ðÈ ðÅÔŽžƒîùõ-W! )&ñPT f…o|4fŽ_ûs2/BìêËœ¨Q- D¨*Ÿ¥ ÀaëÙ»Ë^´u… ƒ½ø,¤¸\Áî.ÞÊy†+åc>iádõ!ÑU—ÍÚ ³ÎökÜck*«`} :L‚¹kIþi£ZœD ùñ ×¾8qú Ê ÷„Öv^5\`l<ÝɸiCp.Àt›t6 køØ¿–Ü £¹àxnÄmSNÒªuþò䊿mÒKeö3†Za¬ÒE A¾]ü–†ä€ˆSæðõü:¢‹žLŽ’;¡Õeyc,Ff„{r * lÑt½q¯ó+8nÀ¬ç8]/Fup98ñÜ´}ºpú…xðL7osÜMlRaBëñÛ»Òa]ÏÌ,x”¾MòxŠ~¥™þfÈšÚÙÊg{ÅyçT®©óü¥ |, endstream endobj 203 0 obj << /Length1 1626 /Length2 12207 /Length3 0 /Length 13040 /Filter /FlateDecode >> stream xÚ­wUPœí–.ÜÝiÜ=Ü݃ܽ¦!¸ ÜÝ-8ÁÝ%¸kpw·Ãÿï™ÙS{æÜÌÌEW}Ëž%ÏzWUS“«¨1‹š9˜˜K9ÁÌì,l|qs Øä®fj¥À¬ê`o x×r!RS‹ƒÌÁÖ@ c°9@ËÜ an àà°óòò"RÄÝAÖ–V`†ª=##Ó?5¹LÜÿÝòélm м¸šÛ98Ú¿ç|‡øª™›ÀVæ k;s€¸²ŠŽ¬’4€NZI m4ÛT\Lì¬M Ö¦æ@gsz€…`÷`ê4³þ«5g–w,Qg€1ÀÙÑÜÔú=ÌÜÍÔÜñ/ÀÑdoíìüþ °vX‚Œà÷€Ö@S;³¿ x×[8ü]#ÈáÝÃþÝö¦âà v6Y;‚ïYU$¤þQ'ØÊüWngëw3ÀÁâÝÓÌÁÔ寖þ¶½Ã¼[ÁÆÖ@gØÜ üW.s€™µ³£±û{îw0Gõße¸8[-ÿYdni 2³3wv~‡yÇþk:ÿìðŸº7vt´sÿ;Úáo¯ÿ¨ÁìlngÁ‚ÈÎñžÓüžÛÒˆÈúצÈ-ìlÿЛ¹8þ»ÍÕô÷€èþÚú÷"ŒÍ€vî3s DV%ð{JÝÿŒe–ÿ;’ÿ(þ?!øÿ„Þÿ¹ÿÊÑzÄÿÛ÷ü¯ÐR.vvJÆöï ðoð~bìLl €¿N ð¿ÄÛ[Û¹ÿÿ£þÕ_Ëüÿ·`²`ã÷±ˆ-ß©acaû‡ÒÚYÊÚÍÜLÅlj°0¶{ŸÙßz  ™9ÈÎhþÎíßc0³³}ü›º•µ©-ð/¸Ùÿ6™Íþµƒwºþ®ŸUKITQSñ¿œ×¿ÝTÞ׬îîø^Ù¿u¢è`öÂ_ bbnOföOfN¶÷«ËÆÆàåa÷þoþ ÄþOYÑ ²vè¾wÍÆþwïÿöû§¤ÿ/0’@S³¿G l 4{ßµÿPüe6uÞûøûù¿÷üïòß[onîfnЏ8ç`Êh“œ–®ÂËê•Ðíîd‡îr,ªUÏÏõ«tèðMÝà-3zþÄR7Î÷Úä>{èø²-ǰ3؉kGÛ‘h~šCìMIß•‹±JÓò‰q'€Õ %åH+ÂólFaæ 7›æÎæègUƒÂgX’ñNüÙ½¥k®6Õ­#ªiRM4N+zfUÞáMÜþÝ-mïÐ@_ÇŇ®m"ÆÌhj~c<Ÿ„Còx°»èºÖôõãë'G8> ­ò AŠœü $k§Ìú„rJý”±Reì¯LÔັ‰’ ¬ÑãŸØéœ®•ÿ,âÀmÅÈÖK“•ëtl<é‘rNúíY2뼌Ä@‘zS¶@e²TápöÌRѨ>#aZj2µ›iÌ}ëÏÓ±ÿ vÝ«¬k*5¦pãäÊr¸_ðUoõs·Ó ²%[„Ò§a:­9åjY‰¶^*¢Q5¢®ÂnŒ‘%*Yè†[Ôvºà«?˜z–}ýšœÆ–xuC­H,»&ãñr~2J¼7î;ËÓœ4aTi“Fù˜ƒ§o¢Ç´ñÓƒøkmü埋¬/<Ƀ²b9Äe¢Ô‘pð´ÅT˽¬ ,¤rØwݽ4»šëÁ‚ü`HZÇü¡2zB爺f|NiÖ<þ+}íN¥Èƒ¨\“›ÛšÇL¢n¿®õõµi\ß VÊjÍÊ¡Ñ%}㞆iz°`ûËjòX°Å×èã-7L G[ÖO& '>ÇäÓÛÓ³vŠP þ¡ ê¸ì ÜÀßèðbh6£ú ~Nøzî©|óYÐh.×·‚ Ìà„¤b«3¥X/¦3èG†A2s’hïÔÿëØÌGþ¸{ô—@PûÀr'ïÕAÅk|hHÓ#òžõ3Þht[ æä‚q<¤l«Ó£^xûŽÜù¾š@={H|“;ßêÕ ¹§þF?É€Ûe¨¾•Gö,y˜ø?Ïòúõ„m5ð·F¨Xg /Íl힆9NL¶èRµŸÊÖm}V´^ÌMñ ÈŒÞ/¢›ù<àã*ƒ’’þ ædlr®O:îã­—b¶$®.ÌLt Æ®ê´sÝÞŸPùaàìv±^?e ¨ñ„¹¦ÆjBàýœî¨Óïxv0ªÙv'‰Šo‚ÉÍ0ï©Ìuô˜¸Ý¨ÃP8\ÿF`\ñ‚Û®©][+å £gýÅV¿}i# ç*të_'Õ’+;m |ˆ# >ñ\ü‘B}0ĺ!=èXÝ*ÏÞ, þ§YîÛÎÄà)A2‘)ë²÷­ß‡:8¶^JzÉüö–`TØ_SÍVÔšàÏbŸ#=¦#Äš—hš¡Äp˜ ÒN›¹x{S¨˜7¢(ܪ¾yn©ŒMÐr÷µ†…}fv¸ 7"}RÕ£´ FÜœã'a3‹zJ"fôiB27®ËT¨¬œŽæc´ã¶eg‘¢ Äë¬|3¢DÌØæCÕ‰Z&ÖP[Í£ OÄo®‹»ÔµàTdžÚr|ðtÃàm·i7Và%(Ée’ò—ßk{%^¦Wƒ8-¿WN´N¢Ã$•§@Á¬2TYö B•• ù+L^^ëéû§ï5~µ\~’ü½]CO'S’-mž¼V8ã£9þý¥wÖ?ˆ>Ñ,Ú“q„‡²þŠ‹OvÉ)6efø‘°>ž}¹•“¾ÆÒ|ã>ãAFº7öf]f›µ7’¥JÛ&ã•3ѾV&j\ûcÑtÏ+F;wL»3®œuŠá”Íjà¬?¦ÌA’K –Ò•žÌhhq†IX ‚ÌtÈjÌj=¥sÒ^w½ëí^™}/ ÜÆx©D‚UŒtbc7øÆ Jô×tV,E“>±nh îý»5£åjóÆ›ûüïéɵŠQSû{xŸãhýq¿G„†#&h¹&g˜ Û¸Š„WFT8½Rëƒë"ø-™IZð‡±óe¤¢–‘ü2£WK¿zJ…ѲÔ$á|äJ|® syqÊ'ƒÜ–ÌĈy»Óðàa¡¯XKrVs- ¦(Ñ˶7íòüøinJFcäC ž@ëkõ“ÎJÞ=ü~̤6)ÊSN™O ¡ãG1ÝMÕÔÒl$æ+[“£q§{*Ým«k½§–Ü=ào,™ß‡¸®Ð°~è6Fë« Lœ‚®Q®âòå¾OÕÏr݇õ­ËñÞ˜1›†=¬!k'ÔæHJí厬,õg»%<8jš©ƒ†/×®`ÂOJ̇x_W‰ké?wué­ÕpîÚ¨¯Ùm8ÆòL?‘\ù é†?ãc欗 ‹ð8Ã@È”ëó²v´þü^¡ŸìÚM’*éŒwR>}_p-¶äXÿAÑÀ^—Uè&ø°Tmî‹·Èxœj½{êͧ‡”…¯=‰/X;VLíLËþ ð&è¸qûì½N›`+™@c.X±gÎO5]¸Ý[„}ôZŒ0+¹Ï—]2]XukùˆQ"ca;‡fûrë½ÓÉhê]j-á +‚½k Ã:dÙ¦ ®ŠZÆ?^Ü~¹-[“Ð$źùxùù,Ó*ö˜RN Ùù½@¯Jé“#ß)ÅÔMÞµnsÔ:¯ê¦V™rV1•Ünc¨‘,mí»™(&†b:¥y«j =¨J¢®f2Óu•튰Ì=Zú·½ÌTëáVØvl ‚=ØÔLbeÖ+žX.ÇhÞЋ+cèÂËâå§dI§>Kö@³¼oŸºá<¶Ÿh­°‚x+Ó àPÙÁ­UG×>RÞXŠ{úyjýå}õÖ…¿9[ WëFBe+֜KJ¡\#@{ìÕí}1|n¬žÊ>lØtQô¼^ ^nt«@ça”8áëPÖ.€ X„£›}åêü?õP©Ÿšu$Â>Åâwî-]|§ÝbíìÚxÚÆ}$%ùæñ™ï¹¹µhfhMT{®*ûõÀ#Õ@L’'ÑφD ”×$­Ži[)FUáL‰”G.»³¬·OŒ "–±9«”UAµ3º=q _ðÂÖF’À€„åç76OÓRîê‡ÕXf¹èË¡?]Ø[N¡ý$NòòóZëØ‘üÜTò#Û*3”¯·8{´ã‚UÂåy”hŒçù)Þþø(xwë²7-/)[¿¬D²É£“$@lzùÑ,70æ[†ÿ¬ø‡W¨‘öA[îÒžî ô™gò¸ˆ9´ƒ!1´£€u›Ë5®Îž#37âN/vý•M=f­[$7•z[¤LcQ vùkp¾tµ­dD„¯dMÂýnß pÿáÇ`>*õj¨ /4ò«EßO‹7ÚHz‡ßX8„ûÌøŒ¢,Æ´êóõùlB3vGÝѼ ©àSñÝ~Âi3ð×Vq|̲ì²ý²¯YAj%]_¡aLÓÖctžçȸT G"OîØÆN&îÝ_¹KøZ¢©(óÑâÛ%Çljßí~’ý„3¶ÊXjÑQ'j\¬~Ü…¡kTë-=P˜¨GtÖ”Zÿ+Û¾äti0±úmR¥ (|ѨcË9œÅÞÙ§l)…ŒF‰F6‚úAa‘]8q©œƒ&g´iïÆŽ­<ÁTÒ¸†ñgM'37¬¦mgð›ÃÛ§(ÄR8ü\=廆᠀¥K¿TÑß–#Ê·Ço‰]8ÜaDƒýшƄÛã?ë0` E~Á±)´ï2½^Z#Ôë‹4j“ÔN5!¼j pJH²;‚¥ôê!sHàÑÈe„ÀNÚ>ìê²Uã˜^´Î{T¥=ÀyŒÙ.´Ñ·cv–ÓóÆ|™²= üȦ9ø |%_µ¦CæÏDËØ…\€Š[D«¤ö’RÆ­Ø12Z¾N(¹°|m¥<ÂÉ ùœÝ/‡"§æ\¬vO5Õf‹ ´^Ó†6Ÿ%¢`]B/æÐ*ðy‘à1™ë-1ü³b”b)Å«Máý°d¼íF„¿Ç™ €UíKð´OW£…ø°\zÇ„Cé~¹¤9®fˆPL¦•M‹ó¹«[¼´RÄÅiÝô`ÇÕv†¨œ6zSôΔ Üòƒ¢¥”â8/ç3)¶ó UMH©n0 ¼ÄE.‚ MhÀ;‰óÿ#›è:fÞ±x8îxFçü»cª?ÜFœšÐ¥á¼b?óÒ–;ŽÁÿŽ—*ç;™„Z>)9ŒJì7n4fnJ[0¬“ª=¨UEÙs±Âgxtm`­Ï4O&p)&©óúüÜíë¡^Á õ<`mã…6êê$÷K¶nŒ.xu=ø;(ä¤*DNòóŒÉoµ‰Ì§óePe·Æ©áç$åp¿’hN }çœm#_•.Ø-X\Ò‰¼ù Ã;‰±N½N£l~iQ·'ål1u¿/Ôa;+ßí²lªƒ*Ú—Ÿdí¾µ¯SÜÞåâH6ÔY¿êúµif,|©+S™óX{“PîP’qîOùÕË C§©=9äËäï›cÓ–ó:0H›%C¤Á§àÒKüp~ºgIÙ”žÀi-=Mز´ÐñFjƒ G!2Ybß fmVÍwúmß›þv$Þ&§`˜ìXü]Çif…õãbD¤ÚÔS«wM–®Ájl[¦¨Â="  oÇÏÞ-~jÅ·IoñZºB0)‡Ôüz2Îy6IÂûb—„âå…3ä„k®d'N{¡b^LN}¾Jªìã*‘†« ™Ã`‹YK’_FJö4;ž[9LûšžÑ©6°O¢óôÌ»Gú"ø5$ÐÎ(ý¨‡&:3ßbÁ9"CÒ…þŒ]úë€FY›;~'z¸‡w•-ÒþË4‹}äÃJ:б3Ö0aÎQÂSU؈ÄÎS.±ÖF³¤Êx…ØFªAëzHŽ»b‘UËbx”$î11áxÊ­4­æaé¦}¡ypØ Âø™^¤ÛåÓm-!ž¦36ÑÃq«(,ʃªN[á.Z‰{·C‰Ùü)…aqubݬ֣8^Ò¨p )®¡bæ„Å$vçb…v[Šˆ¿§Ø%³ã;„ìÉða"xÃÞ«™ô©¶Bæ’dÀMU>Úé‘À%ÁND¤¾mj `QŠÝÛîvCލ~÷z"ÉI¸„j O»tŸDˆ_wôS¿‰§rƒ %+òIZˆ Z©õ·g¡^‹Å‡™y ÎÈÙ*rCžn¾-º™—¾î}s&rýôQ÷‰½^{ƒZø’½–ipJŒe‚ýX%¨ü¿s˜Áþr°õÁ¬Åߢ!ùGkžóæ§Àœ"i.›·C·Í:(êMÿÐuð¿$s‡ý²2G]l ·| ß.ž®oxˆ|¿Äî­ ;xûÉøÖ…°V-<0 ·ÆeÝÍÐÄ–fkx0¼ H¼ÅÔIw™ïQ—³œdÃ…åO™,j¡ô_ìO¿P/ ëŒNkÃ4Uc44lìïRÿÊíSÈQUrÓRk¸®qЏ)ÿCkM°ð6ø2N±¬Ü©p¢BVú>4@ÒEÉ»*¡Cèo—‰:‰|²ÁÿÝα§êáÚ÷Uéƒ*°‘W%¿+þ`JÉm‘ÐZf¹vƒ·*Á÷G»Ñgß~¸UÚ¯ÑÏ?t|òJï‹LfxxcIOmQü`SpT…“7êlÊ…· ê¿ø¸õL5›KÏç{¨µØÂF都|Z¸ýÁ÷úC–,ý£±]Ü„2]\¨ÚÇÅ£BÒGý˜p,!Og„J¯Î3áBÓ§€er9ŸFv5LlüÅqíÑiߨXX© BM63hÞ|Ìúš¾È—ö}wwÂVËÒÔsþ±P„š[E ÷n‚ì„X´x¥°±Ý’¤H=›ç)^ì> ¿è{5¿Ø›'þ6‚!<®ò&ñ‹=‡ 6ð€DßC¿UEÖQ`('.© µ,Î3Z°†‘s7p)÷rݤL¥È­ëãP-±“ÝZ*“‚  š¥áëÎ÷@„„ôP*ÖÖ½ã¶-ú£NôëŒÈ2¬Ø´ç¦åô0:áCœÕ2Â)‚œnò.Óx¥ìšsñEÜ-Ñ6ü 58KÑá*‚ 8ºBÞº[ou?cp¨Á`.·‰T2²–ûuÒʤȾʴ^'feÏÉËå’_(ë(œÑÏÖ¡G"ÆÄ3n,±/L^»z”„l£&X!›•¥‚ËŽ²qDIðæÔð% ³èkv¦ë훬ã¸|‚’?í¦ôã5œ ÈF~àÄû,vÊM5œ”¿(ÿLhÉ ñã>f”ÊP—OñD;éÛ¼}%T E¿„kTãŠ^T 룣ÜÏáXªµgÂ)Ò–RαûÒY½ÆY8Éy‚ÖBt0¦.ùð&éÊgÎWsý—dñóW¾'WÐø:}â<*?MAФÇåpJ7má()rðýš-g! ÂE•[Ýe[tüq‚À¸NÕ5즒ŽðvY~à}X¯¡×N)ov¢Ï{‹Ó3¬7oÑ=amöÇõáëñÎÌLŒÄ£ISnZ×÷ÿÇþ^`{|Ñ,“îWžg²†á”o«Ð±/Ù_ïÔ¿?¤åÆÐ>f}2à™,aùr`"Ò°˜Ï>N°åÛ­Mh&[Z8w×~••mO«K+Qƒõ¤ÈwyÏE“to{E.u}:uáAÛü11ð e˜Ô_í¦Ï·öÉr @l>A„ÂFô^HPu@òàˆKƒ+ñañœ+È𓷹﴾õbB$ž“Û˜h#jòÈÉeEISÝæ–°93uãø¬mC¼y±3ù¡Zè®ËRŽÒ)ø²ixÿòóÍËý–‹]i¤Tî›^$8·¬&Z/«€§qðå¤hz¤Ea[yt–uQ«%0xbÿ™µ„€Dr×J£MðüÅhE‚>øhQ—}×:ïûL‰:Ûæ µ'oÅW¯x9ªßðx(E…ç­5´ýá{ì \û³æž§¾^¨HQI®áÏ %ï¶Ÿí}ÂÐeŸŸV>ïê-Øž¦mÍ&r2ßóÿüLÒ]²°¤IAlÿü&žP€{kå(ù0‰„ú¼Þ‰Å”9<”÷A‰^—Ó2*ÚPÉERYo/¹|¬îä4²}0+¨~0×µœsC]ymJPƒiýéùe 4ÆOÓw–£ðaùi„i>Œ‘õ  Ç‰ ²þŠ:lÜ?N7õZ‚c|ބĉœ&iðìÏl¾^ÛtrÜNÚ"Žo“ØoÛ®# *g°>/)Èód¥"A¡ÔL‡þòÁ#ÂoÙFòNÄvå‚´ Š9¶ë ~6œlã|ÑH£4”}ß3£Vš ï\{D”â®ÜÁtŠ´9Nõµ@™×[B›¿e½JÙï#­ §ÜwÿAÖ‘^t·¥þ¸F¼Â½ÊÀQ×#ÕÚ\….§uÓUb»³–‰•æÀS”~¹Ý|­fæNZHOLIìlWBÙ“äjg.Ù(}©÷°ë;aÚÛ±‘vï$7mdŠ "8wDmâN›6uœÕÊ·h’0á'¡ÛÐçÛŸôëpUwÿºåóZ2 ¡+EÆUz–ìÿ±góøÍtšËìªöÁpXXc8õü NÎx¿b¯É1ÌHÌE¿?6ñC*BN&˜eâÃwƒ´ Äcb¯ê;>û V6–˜-ðà2èÖ±¶åpî`ö,K²‚©Tµ5P{èíÜ' ÚýWÚ`‰›]û¼7ÕØ@×°Ž'-5±¦ ²”Á$ o±³­ªku’hÇQ‹"àR";¹>µv#Óçm+ZS\”)Æ ÿ›ñ ÃÊyÁñwJé“Jx„Cÿ ÿA뗻̔F5ÄT¬„uÞ)ÉÒ6)“*ÆÑ-ÐO‡Vô¬’—ÀӨ氲cJôÃL\×îeֹńÜÜjdø9RvȽ>m¤®OV"èTUåµ ‰á…Pa´óÊçÍ]HB¨G§ëAEYš#*fè6I~óÆó<¤áÃñI¸mýXò˶g]¯G¯¯€êÖ´ä5èi·ë<Â~Á„åR¾ “‘°âwÔ>mï@¨Ô)+<ÙÄRÑG‡jŽ&rMs`‰áˆê§óŸZ$â|Ž¡Wö"íÑ*½áÜ|i>+2s×§Eë<ÜU(Õúœ5Aq6bbüÅ¡/„lÌ÷çÞ8©óÅ<„?WÛÇg‡&È¢`:ãM‰þPT´üºÔ`*#¨A¸1#.âmFp§ ñ³*¡Plrs&0–0_";SªRüÈ9U<½qzñv—üy­ìSÞÎ5Ôv¯pÝLJB&Õ*Ñ(Œˆ¿mC–>ÛQFˆi56p¦Ë[Ï¡.Ô̺F0”âÆMì'ñO4š¸ë¼t.;ßD7\¤PêÁm3°ždÒð_ZäWF“­}¶Q2 CžÚäÝz…~{µRq;i+¢¾©°BÔ9ë+º@{glB81É ¦êU²w¬+æ{Núqÿ¾|©[«´UËṵv`.£0ZÇç bDhZô£Øúåû`QÐà\Û|ÚŠ!ü¶jŸñF1á^î?òêâ­[MÃ1RøÙvÐc ·H™®I,žsR'*†[ë±&ÿ„$^½Wþ¿‹\ú´9å+Z‘ê%àhüja,²xø½?üã'¼¢d“|ÀGò¤ÓL=_ʱD/}Š¥u/ µÊz@7hRÄHMˆ„ÑèWt 1\ŸÀ8)êvœ "÷UˆÑaÞ‹«WE’Xu'¸k×TÁ!¦¨Âå¥[ŽâzÔ€Ž8b¿­»ns…ž’ô ù´n%u$÷ô:ßüTgXr±ÁËA˜ÂíÑß$µ—°Ó¡JÀÆê!”À Ð°}‚‡®VU1yúSV5¾ºûäEH¥«¿yâí¸s×\E“¢Ÿ,Íè±)VÇ)§‡«Øº耚û ò¦'Uª•Ä¡½ÒaµžÈÀN—`Q¤'륨Ÿ²îGüÌ÷´¶ÞUé¤?) ¥Þ§ÂÐäî1A¡¼yÈpÏÇÍþlOi›ï¥§Z,@X:Ë"æ>¾.˜uö›ûzvüÕÍIë~Ô£îá”F9¢R2†kŽ)'•óú"$^ ‚{kLS7£Œ£M)^»—â‘9}n8}üOÌzB * *ÙL;Ášü´¾uNFÒÒŒîbäÌuÈ6Ĺuº4cSá®úÕˆH3¬Ú~Ž FôO«è6Îȱ¤TDƒ’ÃUõ¯Ch¿·¹8ã{¢Ÿ‘–>pvÇš¤Ú‹ÏˆõBGÓ½x;}—{5õQÂuθuiáÑþ¯bËø´ñg÷@dµÛµu+”$³45|ÚÛ\ß!L<àäµy ÁÞúE£s"þîLgÜ$Òœ\sÑ6-¼õǧÌ-¶â C¢‘ÒÊš4t:¤§ÆæÞ ÅŸH0 Î µŒ›ž‰/ -y5ólôÂ'§1[ßÛ»wƒƒøãz0… k¢Úä0Nýéå2º¾ôlFkÜJ!ï*®‹AŸ¼Ö‡¥…ˆ•ž`F]±çŒCõ§í8ò¶?o„L„ýVŽ›²½aõ•§ë+êT£„„a`Ïêp¤Î¿”zyqõì:Kó€Y0ÔªIÓ•–ƒ´g€.åè‚TFCzṺÎÙ@įZ!(KÖ£+G¤³¥m×ÐJº2¬ÕŽhôŽË6ݵ}óE±õ-‡öì=oп³eLxÞØŸ«åNU…´ñdâW¡TŠe8Ú9K ÌT5¸òKˆ¬’ípÆý!)ÃFdÆÓŒÆ`Å¢àˆ¦r6®¢¡Yò:Ìšj-=!ã(úqOÂÜÃÞϪµLh° &9*G¦#© ›(+öc§®™zRXŸ@þêVg* VÔagÛº+Ba“¢ç´ÍY†@)fgýùÙÌiÇ'2¾ðNÖÀö&DÍ8uI¬p÷@æç:´^Ù |gµ6‰áAš/0½çý&~·Ëf‹Öºiç™,5Þ¡ãß΋D¸a(n²TL +3&¾‡×ödÐ1úöÈ„Bµÿ`3¨R•-¸Ü§O´AÃJR£OĪe£W®•o²Mÿ‰WàÙ’˜½àã|•}1ʪ¡~ûÜ3æ!ÞYèCi”tµ(Æù‘ñE,"GxÌ6¸:O™ϯU¸ýy#ÑÒi[§$¶ ¤ùP¶g@ïÏGÿBí»6%_“¯õ-\ƒ}Âæ}ˆZ6ô•5j5!,$c4þê2;v sq¾|ÛÏü ; º¾ —X×€lGspOTø›ù’–ZÊ*L#PáÊËúJLE½"øyŸ¯»Ö’µ.Z w&t°TºA¢žJÍüu/uÚó&#,pz Ö>EhÉói´ø Z—fBç70TfmnÿØF›[ßäû¥ É·aÁŽ#±O¿§f¡\%Ä™ñÈÀ"#¨ÉôrI:>ŠvóòÑÿU½ÝNë,‚‘E ÞÒR,S¯£AÄMSÄn¨Rí°v ­ôl2SDY¿~ULVkÅV Zøv®èÆsSnq’P (Åw˜g¤²·¡nÄ;pžŠ=ˆì¾âTÞÄ)ÏaÕýÔwó¦¨'c RøÂ¼S»è ÍÕÑÓºBLÞ$dæ°C:SðÃÔùXó”áó˜]>"%b³&ì@ú{´1†P€X½èC¥8E#fyÂâÑkO¤}Vls—ã™–¯éªéf¼tX@ÁôåÈ™&¢JT0)¼ÔŽøÅÀ(ÐggSI­èêVXË@Ø(™kq…çêç![ÍËV#²,ÏšKšœ2hÖ8²á=¶ç¥ðöÌLƒx\ŽlfÃáh¡±Ä=÷ý1áI‚JöîˆÉØ‹Y§1ÎÇ8× ·mK+8³üuíÁ\lëky9›'© Þ€ÊÏ,~/k3ÀPcS]k×÷ëì‘Bö¬o3ÇTx¹^pX©p­ˆí“YÊ„ŒcEŽ_ªzÃ4¿Ÿ¥!Tç›çÚ‡2.EÐXkNdÀ8¬ë“ÿlð)7Åî¡"ëN®R20¹Ÿjí¤Vg¦èbД¬M¦5 ÷Qêæ'錣>òð¢ø¸¾ë¸ë¨<ô"{& ]è¬VÝgKSј]ì¥nuaiŠàÔšv¦R.> xé¯ìνàKÒ qè?bW{.c;F“”ó®ÂÞžxšW*¿‡k¶§g¢šSÏpp/é!¸>¨-¦…7ÍZ`¡ÁŒrA1âh¿ÄD»þvkØÀi?¦¤k=Ö¨ek¬ ÞÌ šÄ6ó¦€êòGÝ[øY&C‹®\µÊuj§l£,¿ûüfØœ A0(Ce:p{éÞ*GžÈÃÐ#Í·¾´NÈ_‘£º¦‹ öÙšoõêThw8@èý¡ABvÞKã§Å?6]J@Ò£¸ëÿê~¤ é¾:ÇÐ kþýƒøÐŒ9ò·œÐßÌbHöùkêŠÃZb¥¥5—©Ûç {|÷q>¡LEíâ>”zÔ9_ö8ЮÜ'¤=ýf\(*mŠJˆ(é Ø½c¹øôë{Ü’kŸ±ª´œ°C²öqÙט¨QvôRß`8¯´FÖ0Wì êû†ÚD- ݉Bq›Ïˆ ɿԷǜyð”gΩk[k>ú3K ÄÇFVôcÃê],8ÜL˧wßz>lÒìâüÒÔ¥7]ŒW_-ïzÝû@dýˆŠ#I+Í ¹Èìúñ'<²¤+¤™ƒ'^Ý­„P½ç(­àw•cJŸêSà¢Mñ @ò[†©Ni1l}ß,í)V­[JeºÓ*Lwd/ݤ‹× 6&õÏÏ DÈõ:œÐA¯6$ç(“×FM/KžÞ¥Ðø²s½Äá~0¶äK­×;_'/ aŸ°°Ñ¾ï!-á·_Ì #ªÎhbM]Û˜¤ý¦Î^«½Ývk„f<ü <¯‹y¼TùIÈ=túcÔLÈ»û–³ú€ÚÞ–¥:†ùÌÕÑù-›]‰èbvûu‘^Bex5.A’_âg&†<ˆ}„Ó„r4LkÏ`³7,Ó¯Î+ä8ÈÇénôk`ãxTGc;®s\òñ»¿ù[¶nc™‰âÃOOEà‡ÓR¡í¹®ª›êFL»ÍûtoâlMh Ÿi€Ü<#†Ü9©‰ç\DlZìrÉÈ>zìÿ¹¬ÍÝÄ]§‹™=e/u³¼­å‹Ô²ôî ÛsŸ Žåx„gÌë™­.ƒ¿üvÊ÷ÿÔÙ”ú)í›>ð²Uí‚[šר0÷ŠÀBñ-íК jgÙ¥ºçSôÝ*y¤€Ž?ÖB©.JÑ8eÅYŠ ~Ð_ÝjZšf×¹Tƒo×HZ„ÿûžn&JÞ5Ïë õRü¬­ûxô á¬tÆ]-]X#nmg$ÌiwñÍà›çàðQÕ &[XœVto„nt£¯‘LX/àv;ZÓ'±Vë¾”®º°R°$:žV†§jâA`/º"²²`×oc/ö›§ì­ÁŸ3ÝÔ0û.×%,VÌ,û\ â.ã,9u}éë1uŵ™’lÏŸïüšÑ­ú|û–iŠgø2kò2_æµ·ˆ›)Õ­›õoÌ÷^Á8qˆ/Ëã×I9Œ«B]2L~Ò_Ãî²¾±®æÁœÆžO¿q-ÂF t±èM”üÊ^ oL¥7Ÿ+nT ¯V3KŠ%ûCdè!U¸ ñÛ0Nˆ%ѽՓ"3k¿lpô-ÓOʬ†æÞŒUQÈÀh EQEÁ>to@:tÜWô¼ÒE‰’ÛY;£/â_ñ;HOÔkZ6*üùÁi¢UâDMoëh;°s¨µe® ¸^¾@¡Õ³ŠöÞXE¾(ôá7jxy=Ñ c`\! 8é1ÜóÐÑcó6 Ã÷3³–$Rn¦å¯ú`̽þôqýÚ&ìì0ÿ4wkû½(ŒcŠ{QšWÜN«!ëÙ‰þ–”‹úŒ›D>""Ä vñ]>ÞLDœJ³ô:”Tɇ)Iœ çà ïÙ8càr[-ÅóÖçêh„xÀ!„„ÑŒ¡‚B€6»ÐHˆcÑxrh« Ž]ý*àC\,AdvÛŒÀ½~Ÿ»ó‡IÙN ©œ8)„+÷¯únŒ_쑨*$÷Q¶H¹’z0¼ïnøLWxÕ!´žN:O¹_Þ‚úü?ñQDOWœkFí˜ê¼Êý¾‘„8;5 òΑh‚\­x²§K°©FíÖVO0Dv6z~oÎFyܼçä= —ûñÅÊ)WƯÙûYد±ÄaŸüƒÉ(R÷«ŠU‚?ïå ¾¦Kʾ6ÍÞÔ  !<0 éF ƒ“q í|Ɉ[ôŒÔ6Hâ &ª± C¨Ë{ε5)k¹šžçât£!)·†‡yËÜuJÕ£PwáœÖ>ûS!†f'™=Ôá‘Ö(ô‘±é·l@¢»Ô®5ÕP¶ëElIàçFÖ³¦%à×´§‰×Å€ìkt.OþïYÝò/²EÉpáj‹#®M¶ÞYBÝ1òX«ov0 ù"ã´ŒnP ±\”ýˆÔ·| Ÿ3^Ì—Û¡| 'ù¼°å²ù-|š˜obÄÂü, _F³AŽ®ãîø/–;ëhwX ÇtüŸØd÷NozÂp»WJ'OÛÔ•:Ó‰…7ŽÙ*ƒº¸¨6ôCx8Qî*ÆHù›Os+ S¾öÊÛx<Ÿ" vÔêHá÷·"‚Š'î”Ç”›T—‘Œb}z-Õ¶×i¿uÎðQt|íwS«ÿÂTÖ > stream xÚ­wctfë–n¬Ší|aÅ6*¶mÛ¶mÛ¶mWl»bWR±q³÷éîÓãܾúžkŒõN>s>óc-RB9E~#[c['ZzN€Œ¹µ³£‚­µŒ-‡´±‘9àKÎCJ*è`¬ïdnk#¤ïdÌ P56 0¤A[;wsS3'¹²‚*õ?%™ ÜÿSóåéhnj ûzq1¶²µ³6¶qú ñ¿vT468™LÌ­Œ‚²rêâ2¢rQe€¨±±ƒ¾@ÎÙÀÊÜ enhlãhL0±uXýã0´µ12ÿ«4GÚ¯XüŽ}€£±¡ù—›±›¡±Ý_*j€±ƒµ¹£ã×;ÀÜ`ê oãôÕ'[€¹¡•³Ñ_¾ä&¶²s°ý²°þÒ}“³utr4t0·s|e•ùN'3}§¿r;š©¶&_–F¶†Î•ô·î+Ì—ÖIßÜÆàdìæôW.c€‘¹£•¾ûWî¯`væÃpv4·1ý'j€ƒ±©¾ƒ‘•±£ãW˜¯ØuçŸuþ[õúvvVî{Ûþmõ_Ì­Lha¿r:}å65·¡ûkVÄmLl ôÿ9Ûý§ÎÅØáï‘ÿ53_ ôlm¬ÜFÆ&0t2¶N_)äÿ;–iÿ}$ÿ(þ·üo¡÷ÿÜåè¿]âÿßûü¯¡Eœ­¬dô­¿à;ðµdôm_{ økÑ8[ÿ_.úÖæVîÿ/§µV5þZ[+£Õ‰;鵄߯ô‹zZúÍEÌÝŒäÌ Í&úV_ýú[®lcdì`encüÅëß-Ð0ÐÓÿ‹NÉÌÜÐÒæ/Xþ¡2¶1úWø_Tý žNEUY\XêX®Ê} “’»Ý¶ÿ(EÚÖè¿…°uxÒ0°²h˜˜¾îÞ Vzïÿ!åßþy–Öwr0wh~ÕMÏðwõÿñüó¤ý/a„m mþE'}£¯Iû/Á_jCg‡/‚ÿ¾ü_Uÿçùï™76v36„Y[¶5ä ²HËLwªÃÈžÒèc¶+mT**ð«±íõM Ûá¨Ô{« ¦mšæühw_:³{? <íC·úÞ›b|™ëMLÑ_€´EÖÉFu@§S —~®åùgQjLƒ•^åpwR^A§ä oº“ÉêÏ#…±K*Ƀ¼ajC,Zbr]áÙ9YâÉãÃ÷Ÿc#ÃC½×àý8T9±Ð¤\ú>Ég„INîzw†à/.lv@ÊcÎvk‚´ñFÍÒ&Õ[”¾™tƒTÕj´»Kµ5·ÖÒÉ*ÚQÖ%Bòε'óõ¢ö`­?.á5Æe–ƒ¿(Çõ=F7;…Ž=À̲ѳÐÕK0UÕµ‘‡›ö¡„ŸÑ€•Iº1Çyð0²$Ïù×ø°È¼ý0È8Œ4î¾ë?æá¸SÏðX½òE0€X/V«à†º&ˆnê\qÆœúîš–Ã)•DZîA~õkÔ`$ 4‚ïŽ+>bL-¦zÇ€c´ø¨ðíW.'MÍìɺ´; Æ´ùú2jú᯵;Ó*š­OœÏ•@,Ú‰g`ÜÅâ9)ª ‚AãJÆÝ{úWa¼ [8y» JÓ €&;r¢Ž½d+Ä,Gs?Æàzð®9YáHjZÞEjÚ)þ"m?šh¥Ó«4³¬ù2rrÞñ†R€»¿3Of7îl„N©ýìü¯&Y(¼¬ˆßG–´]\|m^¬¾|¤wMUf~Î(ÝþP½YáJ´¸jsÓÂèñT|ó |žæbL:Ð:[qiV³ŸsÚbî­?ë¹â,DŒ„°¹¢i+UÄuõ´æí•“ï!^ú7hÙ â²Ï:M`¡lz'¬-Úœ¼n?ihÄÜÅ7{eÅÕn›°‰~󛨩¤*âmÈ<½Ž4£ Öý0饳K­·Î(¹k¼—o¾Þºd¤QÄ~ï ³}e6¬öÂY"\׃0hDt¥råPÍÀ˜EëpCˆÏY Ö£ÐÃK¹(crM°Àáᥬsx\Ç&ákëP\§;u̱+õí!¼äp×ezR„òÛN¶µÙÊ P«Ödz×|i]N|ÿÜÀìÕAß.2òŽ§Ñ»æÖVI¥ýL5s’˜.=´ýVþ£rÕïÊ ¼'òù>´Ì` Wî ¾¹³ÖMt¨=Jš“ØÔ´… ºß¬±= èp Ÿãè·Ç8°Å--kwa8Akˆ¹æ7wñ‰é‹dé(©Ðø¤žp€äü±ºÂJñæ—Y.`ÔQU'=Õ)÷ _3¿õptÖ::ÚCÈ„û¦»E:3Gv–6™¼}Eªß‚šùußN~âšEe'¢?p„ù…Í/b É0Å’àBŠo0 6_ݤ§Ý_1Å z¢<ÛÄ•wùl]­.ÅP"sóéBœe´àiµ!Ô î4i=¿º¿³¾ ØOÉañhH“z/¢‡%–‘ýT ž¹ürÙÊõÁ®f|’¤Ó©åÎy«FÛ>Û±(…"ÃP¸UÛ^_”ö¿Šúö!؇%rV²Ž†³ÈïT3õ¼Ü÷˜3Fs+;Y!Tè6ÄÇWY}kïûܧ¼¸²×äOí?Á/4þLõóí ê,ĉÃÚÕY´«ËÍ- ãÕí¾8ËÓÜ©"|WõêUg%tQâ^¯ýúê=WyÎ7RS£Y*"ö*M2½dÜÒ³xRXÏhä,P¢ä¬Â¢ð§Ô >á$5¾~œûÏyüƒØÜAí`üÓˆ…N+>€Ækè0c/ tªüò;Ù¡4`'sGXýq’?'µ±q*UIÒ®s•ˆäi›!23;ËÉÙò¨gµèÈcvãc¢¸»ðwÎ÷Á GhéVHÝ£’kg¤$Ž,žfhÓ“ùþ"c¦Ð3O'Ê”N®ó‰¹$ù\#²nì2¾ é“¢d Ü)UpnêŽÒœlOC¢Õ †ù”{~gŽ(Ú—û%OÈ÷ø^CüÔ?€¹Èü£ŸûMó 1Û%‹YÌ>J%¾KæÛÆïƒÒ7µÍ«oºÈÏ~4]¼äÍôñ¸ ƒGÖÏuf™£›l AÒ÷®PN±&û)?¶@|® ‰Þª5ÃÜìœ*A—!zÚ°ž*º —M'Ì ¼¤« _P§£ æ¡dqK…¬Cˆ4Ó™ŒµWW³9È=éu{3ÎÆ„þ„húÎ[“üØö<0Pv ªûÄ@¼¢~7¥n\w^ú=£»*™3Òô¨&J±ú‚ÕrÉ5íª(}8&õxvr¥¤z7ªo4‰̈0Ù-È$8.Mx ¯Óá~d4 µ×ý ›“?ÂO>/ä èãšc¯SÎþ¡Úz–•¥ôĤ«ÑëÃ}*wgû™ ãã(Ë̶>Ÿ…Ö\²*&±c:†mcÁÍ®ÅÆ¼Õ1¥—¿#wú*¶Ùq‡ {#¬iŽ¥>DwüR²ÈMkÄDZ!¾´èz¶_ÅœÎà…´x òÝ®D©ÒIœ]ÆÌ—žcÞ’£Ôp›”ˆí‘^— Ô‘†b‡ÏÇýé*B'ë¾éÀéÕû^F@Ñ&q ÊvÍÕ–®.p7có¹Áª¹oA“I+wa>HŠ,@ñb‰O:ÁäT¡ñˆJ=EwI£[Y@ßBß&Ý0¨1o­h<ÚvµzfY²œØ 5튘!+VsÚ£j=ƒD•×»¦JC/g^M±Å:TaÀ1‰ò1¡êKIyð"6‘NNÁÕÃé¡¡8û‹ÒM(†³£W°" ´”ù3?¼Ÿ}ªõ1欂æzý!Ÿ<÷^¡;Y'”üÒ• Ì TØ0m6€^9n\c"?a$µdbú2òÉÆwØ—ÎR=‡Pµ1Ö¢dXŽ~3}¿JÀÌû‹ €šš¾î}ŽMÈ 6àϾì¼à‚‰?¶˜0`r|Ó ÷•‚èÕëߦ&f™ðÉÕ>L÷ûíá¨úo¡jE^‰/ßpï–¹]±ÚJŠø 8 U‘Ûåd/ ]£÷(Ô¢ÞÌ$˜2âú÷÷uMKÜ—–ßk@¥ £\œœ¹¦3I§Œö,Uí<,¹‚où+ØåLÜðRv­AŠ.…À®¸\ú;ÉЗ ÜNå„´—Ó8š.ÆÞ<Ëd“Všöº_À¤ËVcàV¹Ì oµ7,£%uS%-ž:·T×rà!SM’ó°×þÊˉ‡»fÆQÓ©!A ã ±FݯOI䪜ªNãoœƒi˜î±NMâfu£ô±qŽ‚ˆ™…^í ¥–l¥ã)g¢ÿ‰ç³¹žjtoÓŸpÓf±,?N¼ž>ü)•B3]v¬8ð«ô€Öêå`l®Ó4«£GN³1eˆotoÊ|_ù•<”Œ0µ}7ZE?Ÿ¥70CŽ®” Œµ?/–:;hNí3фז.·×’f ò>…º5dï tÙ!æ « ½çÒ6Ÿ…븘›õî¨wp†÷ÍÄŸUDLÁ}í÷ÛCÃ¨Ž˜TÌ'‘2ðC$í'v6L¤s#þwäÙ×µé¶:Jo\è —Ö]§ž^š‚.<ËR˜Ð$0™ÑÖnyÈ¥›\bž>вB8ñn·+‹âødÇ,‡‚cFµ£"ž.L=ž„üÔ왕ïìÊxÒ€r{@¸ÑöåQßÌo›Óð g™RúÏ)î_—ä€ù‘àÙ]S2Mu|•&Kg*./ürÛ"² `3÷þq6oWwÆ LSË2J0=¶91¼§Ãqo]Þ „Ì"{+eª_~RÈÚ©¨¹R¼L›UºP›ò~§³¥¹m;ö„›Îp£¨8#Ž"¤áœeicuiÍVú2@Z0Õgê8xâ›ÏÎáÌ¿XË+Pñc„ÕJ™IŽbz29½dÙÑðkhð0ìe~Be”§2"i€‹n)-¿Ë\ûå W|?B{.cSù |mù ÂnXÜ]ånOÓrLÇîš= _زˆ¥±37©=÷Ýr Ö˜_ÓÖ==Y\`v_ÅîM9CÁÛ£®O‡Ø+  7ÐOømt) °ZRE24ÍŠ¬j³±²›ZÁ×tû @¥lÃÅ1†ZÀæOt‰1|ký‚üÆYÄswtá$r•û¬4b@Se ¬zÐ†Š d_+©N›ÿ’íwø(WuB# ïm›”e‡a~ô—¶äÎâñv© ÞÔ%>ox¯Î8"#©TëÉKŠ…i$ÀëœÉÖÍÜ•½ƒ<pHÇ?8 ¡ís! Õ¶o$3WaäëëÜqÔpzêýÂ’g±(ZÑòQîʘPEš(„Vjå‚ð¥]&†æïe‰­`Á5/†1II•F© óM¶b㼿e ¨Ëèn›Lsÿ&_F{²BaË1kÉT§/ ŽD3Ñ î6ØW/žkQ©b®€®TSGü]T£©®À;/ëš-7•«äчþÑQÔm‘ÈÕSuu ÖWÐÉ¢ö 3¾IÐ] ³ÁGŽ" _¢ €+¨U^ý”M€L×Ñ+îHžÝC+î¦ÔO_²Øb~H–ªä6è·Ö|æ`åC(¶££fäOßD¦á™1Æ@4:à ÜÖpG:ÄÊ‘Ýbðì» ‡NÜ›­{ s­Á0l Vêc#dµ[eŒ*€¬xˆSbF™½…jK£,‰Æù©Pç{­ðûaH†¤7€8A)øòZ" á ÛÀÍÈh¢¼Èî ñ€ÂIRxt®á3³»²@Ù®[zee†àMOÔ»(êjO³³qHË·»õ*Gp+Ä b““|OOD×µwûòŠó‚âíçL)ŽÑ HÞÒ¼ü³‚Kƒ7sƒ_#KµÝ›í Ájüïp<޶î°Hð}–Ž ÝÇ^-+ìj…yæ¨2öFùÃRœ=%!>ª# diÌD"7.9Û^ö”3ÔUYõX£›Ä*`ܤWæ9†/~.A ÃƒÏ®`CXŸ#®½8®}é÷GaFX¿Ó0.wJ6b Ä'ùÿ1(¿Šž¢ÝùŒæY—f¬À«j±üY e'ôúå1µÅk<5ZpäÈ #³Aói4ç©tLÚ{©ʼnòAêÛÍCÂrªþû‘2“ŒžùíÖl›¸?¾¸Û:XÜ)›œURƒ_’%vS± sŠ?e¶ƒ$a§ðL‚cr²êÕhD¢ÿ;3±ñ^PÞë -ÝïGÕï;]Ìã½É¯ä¼îr7AÕ¶ýã~©ê9äÑ-ô+჎ÕT>§Ì§)•zгï[¦Wl@ÐÅ-¸&e è^£—2lM#(ÔŒ›2tÔC Pæq86»V`¹’hñä40Q‘S<Å6É·†ü•Ö­ŠÑÛÓI¢ï~G“Ðãeô¢ÙY}PX#ó†%R9U¹ÀÜÕ]I­ÅúAߣ[DRÐýxØÑ%©¥ShÏ{©Üã/6›?ªï³ådÓ—88­ãë`ɹ½_/ÉÏ~BåÌÒª¸ë¸õé•86HmÅ)*óz+Ž9!© SõÝÒú«(,E÷µuMeb0Î>ø4l!AöGUvF9Œvý*AÃuͺê Ü€!»„*Š%5 ÀÐêÒÅ鹜*‘Ù†ëXä¡ó¯°ZǽÒD»TÐGn¦ÍÖ:r;6Mç?-^¡ÞÖ9È îñ©R ‘‘®”Y±ÚÒÞÚÇá]o%˜ÂÏÖòcÃag‹ÆîÖª ›ÙÏBö6ÙjãQ]+”ò‚WbÊðmÐÓ¹ý°™^ˆçJ%oî%†ñtÆÁ/FPãj|+Pª50¶|øg'8ÝÎ8ŸnÆÁåu¿­¬¡E— £†6IaB{ð’ôdô«¡(ŽHÓ±\ƒò»l•ÔËÐO5s´>Ê?c‹Jü=ö\xa ô`¶ÊŸ{îd]¬³½ù–(7>¾ù‘Ö9c 5˜’À C’áœb÷'òRlɲç—8ÛSUñ Tx$H …%¶å9r}åäy-…÷Ä×$Êî²Ifæ9ÆÌ@›|€®94;ÌçB‡4ÁY\œÚ%9?:lÅþÄõü&½†ô2OžŽçÎà“} ?>A´Å¸öà°O&;Hµ1»]µm‹d¼ß@‚…Cxø¡m¾Šˆ¿ký™Ä„ ¤™œÃ%•óâkä!ö¹Púy"áÞ€ ÷áÕଓ||hð'ý›=5Ë;ó+‡\´Ê°8h ÅœôŸâ,MiN¼Tóq^¼âL(€H,Ÿñb[éeætk¦±õJ~0¦,—®!«pW£š3è‚ GÕ ¾ºPF™z¹³Tu¦ø€*f%ÿÍkÔ°–_¢_b`EGç2¹k~ªdÛñ¶@ógåbmN°³+¤aíú†/Z¶¨h¯R‰Æ¹5Ѭ:R¨¯ˆhžBè‰P8›‹‘í­øÈ¡aç\u*––ïwíšÚçòüI{üêý ï^ ø¶ýÎëVô´ÌQJ$†h Å„¬’£w¥>€H›Q¾ÑX•˜\v¬Fˆ‡Å%KAŠ›»NÑ3yÝH°J̱dpúãÉÆðéÞ˽f¶;d8¼3~+‡åž(Dm³¸‹p ×µZÉá0 žš™¶9AóÑËR "ðK£ª± –rùȘ9çÖ ¬ß™dº“ ½=s–m”,{:ÈBSA „†×¾%w¡lQR·8 ß!¹T$^Ó.nò¢þŽ5|il´¡‚1³p»ˆƒ-DÑ•·szÂÿ^£Ö"ÁŸšÆ úŠR!¨¯qA#ÝÈ~u¬´Ì í† gº†/ÅX¢\jãÎQ;@™¥UÇw*·93qCðò:3¶”ÌŸÀˆxY'lÒŽSO8_.þx‰1ÄL™Èˆ?;£ÎÏ•ßÃ?#»Jìi×DU<}„ì;ñ¶ªc”¿Œj÷¬z.Zq©ÖuG”ŠûtŒa‡™*.ŒéÌE a+bµû¢5u Qº§FZÖë³0Mh«C ¬WÔ§_^|Ò¶<¼ô-;:E¡Tm™ØGág¡\„êoùÍìBÀã>´-Våˆ}4㢅Fõ¶Ÿ `¶ò6FÔ™þZBg.×G‡Òþìbé¦xù2Ø3¿ Ë;ÿ‰ƒô,ô½†ØO©á®ÜËú¢À ¾kDÆ¿~ÇÒ$Z4Íû®6zëIÀ"ïxž“(ô ë0%Úuk:-Êá€.ß„âfWV²† š˜•N2ç‰!p¼Î3Ó{H²ŸiQ4°B›öÇįæAD1: P”•°ñy«¿%£I[i_¡‚]Îw²§û:Ö ²éß+e–Ô=‘c@…M|¥Ä×#âÎDhƒÅ,úºaLTòúNÔK_IqrmyV2s•.KdšW÷Q×®ge]È‚³à…?é©1ØêX (õ†˜ÂðQð,i@|> }üJÔr'¼é"Þyi,>£DÞÞuÈG…›5bƒ°†äöµs-És¨ èyÝÒ³6×”‡l3× võÕJ]Ç ±çfS)À+ˆE.™·ê÷{Àë*a|‹@#kÜÖN‡Ôo€NPújѨ(&6ÊÌ ¤Ì5ÕÃÉÏØr7RÚ?Ì(yÆeç‡×²WáU©ZAç~ðæ®S<×.¤“šÀ·úí)&½Gú7ºF¼ðÀl° ˆX×r éÖ)GšýÁ¸/(ãgkbtãñ˜€ëp½?Ãν¡,å«ö=@–±ÌM P©/ 2ˆýùïZžƒXóZ;!ϲҌî Á *ž-ly§’ŠÈ“w%©+ôi ÑÏc"tao¹vy¢Qu#"†Ô³]±HŽ’XÈ‚ãôOÍtÎôSÀ`ðØ«EÀbYÄ\ÔÓ/êáô혅ûIWPÉ7 f‹ÿÒ:dÛT¸ÓG±hFÓ·x@ê[é/ötrfnüÜŸXÐÅ€¡&Ý*/wža“x¿‡ñÞ ðBA W‹É}Y^Þ,héS9šŸ¼Ñ€áãD>#Γµ&Ååa½~+WT`òž&ù•ôé̾‰†D Èž”Í^tø Ú¼ T€l¹ùWjç–)­è«=!š&Ê…²…†oy¹Í!8GÀaØûkdŽ¡€.{ 3^BļΊþmŒf\»QY¢ÎÛÃúöîG™ÚÔH*¬T™óÂPæHäÞ)½°ç çü+FLÀŒð+úŸži8²k'Ýðy£¸o$-ÝÚ«íÛN+!‹ò4cÀ´@a;°çHó© èe~™ƒ9ûî†Á¿ª‹½´H,n=‚³0ÉwÜ»OЬ~2ª7´Ú†’åæ"Zÿ*° Fi\yfÆž\YÃ4µä¶®æq€ë5™j°œëVj\üÓ;ÌÙ¸8ëÄj«ï, Uð<¿G…Z`ÌSߣN‡Ê}˜B1ÁÏ‹ÜågðU0Ûò“eHëCÇ:âö¶ÔÛ,Øs¨âx9†À¾±ÐÑBE×ã©ÂþQ§»q¸ó\Á&(ç#d|wײÚ&Ê#ãy5gkM.†C1Ù–†#­Ñ%«ã§0‰ÖÌ2ßªÆØˆâ4Cî[=o‰Óæ©­©è9ÿž¶º"”¬AfÓëÕØ>‹=cTX: 샾3˜œSG}!fë?WÅ <òÂ#¦Ù’•[Ü ¸ðÓQHD5Šv}ì3ë§F˜áˆõãGÄ9‚O#š‘ý…#¥y ޼óúíINP6~™Îb™¢.9Ô]©už›ml>t·Ñã»N¤®keÎäæ=Úö !’ÊÜ]…Ú7~–gH¯aÉâÚ’Þðp$HÄ­2-\ô²7zz­QËôˆu† ÛBéHg!  ô3Çù§ïXÂ푦ždQ͉úmN§¶¹â(# þúôïà¹BD˜ ÎÔD¨C£B‹ Àj~Lígïf‹ÏÉ3O^¼ ª¶ÀBäÙu1œOÊÃCìæW„mDxX!^u'å àQFmi;ÈûÖôÝX‡ãr³a«li¡ôÖKàf©ì}kžb † “çZûiõ´"®Î¢Ù>ì—GÁÆÇûŽ ßw*$o$õ–î®í"h¡áà–ZdÚÌiDÏ1SzKO[ç”àá $ç?MR?‡KK¯ž‚bÛ_QÐc‹Í6¼Ô.õ{7б& Ö’†FëPb[ý¹|0m9ðf|Û€A"E¡Ú™sXÊüU«ú7º]³ì6Ȭó>!/ão̯üU@83“”v~—ŒçbÀ¾²Bž æ¾±+in£g[·ÄèßÕ êá’°€ Q#=fàsÔŠ£Clc‰§Âè¸ÛI‚{m!n,/e[¡0&ýÉÀœåsr¢1ÍB2¥P¦ Å‹I¥Ç}®~%×enî Øv£èkUÌyeµžàR‘Æí-O¹t'Q-ëfh×ç $ªÝ* ÒíÒ¦ ÅZIjœó@þŒic*t#пŒVy]‘aÍ9¤AûiÔµ™Ô6J-~ᇹ‰8ÐÆð2Ú¨a' IÅ'kë—¸HÙQÏÕ—½Þ‘¯ŒGÁÛ9@Éý jX[mðÒ?n—’=1jµÖŸ9§€šŒpOÂY'|“ä†1¡ÄàÑ-|—Fƒr*qS›8ß-”¬^5ŠZ¼@;™L]ÓÞ+í·Bßà<;oçŠO«qëÃË«MDdoÒ»ïxõ·´ú[·c@Õ‡RÜÒ+\Ø*ì»~ÏKÂMp µ¢SŠ–’ÉÜPà¢ÔŸŽº`ªIææõú¿[]Ä-ë…dð(›ø˜õ42ê vC±ÅcµTžV/ˆW…é½&lþÆÖÐô£õ§¤ìXeJ q8¸DâˆîWž.Ô?¤fõ/J„¡›áQ8mÔsÖ’½Ÿ*Ým´fìiã¨c©Â™Iò1£p)­bÊTnÊ+ɺ7:á„RËBtk]wV‹=ÃÞ "gÈ©QUØG• 5e<ç.êB¤< ç …wz9ðì$¬CÉõý¡§üž7\©6U!BFì {š>¥¾YM×BC)¦W±«%èSy˜ð’ †­ µ ç'šÂZ“:7ûÍÏ$SïÐâ  4ÏòmÜkŒYePªQ )1«†ÌIµhfp*g¥ÝÌô÷›Oˆ€Ò›´Hnbq_ö˜¬Fm”„‰Œ×âFŽE-›SlhhkÓº¡p| ƒÁ¼­[ å"½žÃ}ë––©ýŸÉÃYôÌHÿ{fñ£_ýº]bÜ*{äÌÉ´š8Ï—òäî6"0wøHùZ@ ¾8$}lðD]Ï5Ûš$¥¹–µFW¹ 3MQn#¾~ÎkQ ¾Ãç*j½ÎaÉqÒÔpq…ELZ欅æGÆG¶S„)·—èx ÁÛY ÂyUÈ\Ó`&dôûÞ Ô6l§OÙl{¿ìGÑÀí@Uóðr—gÞ:€IQG}Ç™Ãà­<ý ®É <W³W»"Ò£ÌYŸ>"^Þ‘½«¢÷÷²KvÍõFgC¼­| yÔ×®4Ø ±ù¿éRÁ‡ünå ðIxuÙ»áCb“Ê¥ÏJ¨´Œ•7fÙ–ÛnÎQDòmׇçîêvà§Dc 0–>GJÑ|è…¿Êy˜3 ÑLá¶j@Û8»†ëó=ý­ÃƒRç'$§s‡`Ž˜ÎFàü“2dvÔÎ.ˆè“µ9X¸™PóÏ¡[Ꙝ5ÕìFä]ˆËÂr(AŠgSPðU\Ñt`«¡00¶#^[«èÝ;ÊÃi:ËóLí³Èí¼Qä/œ»F(ä§Œ‚“Y0©ó{&\â‚³íº Ó„ç=¹SÃ{—Î.Xëk¾¤™¹üï8ÚRD ¢úNß×Ó¨ëôNŽsP)Ö¬ )vLöpïçkf湄Ïu&—ì+™®[÷¶ä>?¼N›‘•TÉ$µ8„½âÄ»sŒÙEÌ$Ü9uyó€  v(|LœŸé¦Åºxý…öC§óµœ3,´Ç÷¶ë¼bƒUA¯£TÜaý|Ò«õ‰ÏÛ"Ç(~LG™Áø„«0Y#‚c–½‹èh@¦„ ×Ëò^,ˆYWÎÐ,· ôàHf1T|®KÆtDÉ~$&!­¨‹J™IúÞø¤Í~/l1|,´_`/©t€Ì£@*OF¬+k¥É§q+èMH0µdL%Y%ª††±TŸ¥Òl`'iÂÐECÀÜñµ™©iÒ#Ú:Œ#ž¶94ЛúNlîòã‘ù¦‘Χfl‡îúþɱ§…§ÂJ›+¹SÊb=bg ‰²+ 7›«ß'1Oþ+D'ú‚Âú ó2Áµ÷–)ô ¥qì@…”]žW½° b$Œ2—lï Xºž|ù ÊX¥¥íÖ§Ï §ˆ~ã¥=geÇàw¸ŒBÃZêÔµ瓹jìOdÙ Ñßöã“YÊ©¡<e(÷:§HHÍTȶ¹³9ñWqÜL@ü^a endstream endobj 207 0 obj << /Length1 1630 /Length2 16759 /Length3 0 /Length 17594 /Filter /FlateDecode >> stream xÚ¬¸c”eݶ%63lG†mÛ¶#wضmÛf†mÛV†mÛ/¿sêÖ­v_ÕŸªûcµ¶æ@èc޽Û"#RP¦4²50³µq¢e¤cà"”3·6pvT²µ–³å”¡U26u&ü+g…!#v08™ÛÚˆœŒ¹ÕEŒ ™˜999aÈ…míÜÌMÍœ)T•Ô)©©iþSò ¡ûhþz:š›Ú’ÿ}q1¶²µ³6¶qú ñí¨llLèdfLhbneL(,¯ ))'NH!.§J(nlcì°"Tp6°27$”174¶q4¦$4±u ´ú÷ÐÐÖÆÈüŸÒéþb :íŒ Íÿº»Ûý£¢!´3v°6wtüûNhîHhê°qúÛ'[BsC+g£ø+7±ýWBv¶-¬ÿêþ‚)Ø::9:˜Û9þª "öï<ÌNÿÄv4ÿ«&´5ùkidkèüOIÿÒý…ù«u˜Û8:»9ýËÀ˜ÐÈÜÑÎ àþ7ö_0;ó¥áìhncúŸÐ:›Œ¬ŒÿÂüÅþ§;ÿY'áÿR=ÀÎÎÊý_Þ¶ÿ²úŸ9˜;9[™ÐÁ02ýièô7¶©¹ ý?³"icbKÈÈðo¹‘³Ýè\ŒþÕ Šf†òo#[+wB#cz9[§¿! )þïX¦ûï#ù¿âÿ‚ÿ[èý#÷¿rô¿\âÿ×ûü_¡Åœ­¬äÖàß;†ðï’ØþÝ3„2„ÿ,+€ÃÿÏ`mnåþòú¯ÖêÆÿN÷ÿ&éøÛAÓ¿Ô0Ð1ü[hî(fîfl¤`îdhFh°úÛ³ÉUmŒŒ¬ÌmŒÿrû¯¶Ò220üŠ™¹¡¥Í?$°þ[elcô_+øK׿ò§—•U”Уþß,Ø*ü'w»¿¹ýjdmþçá!![7BOZF6BZ&Æ¿÷ïoBœL,Þÿ›ÿbüϳ,ÀÉÁÜPûoÝ Œÿªþ<ÿyÒý/0¢6†¶FÿŒŽ²ÀÆèï´ýOÁ?jCg‡¿$ÿkü­ú?Îÿš{cc7cC˜µe[Cî ‹´Ìt§ZŒÜáIíþ^FÐá`»Ò•¢¿jÛß´°Ί_5ÁtÓ\_mîKgvŸRT‡£½èV?{RŒ¯òq½I(û 7É;Ø©èõJáÓÏÕ£<¯e¶Á´ØÔw'•ôJ> ð¦;˜ ®Ÿ)ýH\ üPIŸì| SëcÑ:‘~Ôž“'žóV(²Ä¦u#W”d.Ù½×}²^KvWwš(küÿ¯™ãþFé’](÷†aM‰îK 2ih¾¹<–d­óO„Eƒš¡ÆFíÈ œ¬v¡”Ìž¶½$n¼L§kô=r~Õü”qø·K„…˜¡ÚRcÀúô¦ V§RÕÐõ„ÜZ‘˜Ú&õ/ù¢Ö ±«»¾2SÂï j¾ I®ymv‘ädvûÐ^..™Kqy¹Uh$û]øKŸAνMžÉÀšsÅ:v év3.Yë)qfE–£†Õxê)`À(*S|]ŠMR8ån¹.n*–[O2YжÆ2dêQÜÒ^Ô=UâF$C¾õÅ2Ù"U¬ÖHÖþ!eúÁnuŽjHO.nv¨Œ Ì‚@ „ÍœH"ˆ÷‚—Eê/UÄ(àÌæÀFJ˜úA9{Š Fyr|ÀZk.Ÿäióª^E®Xl˜õmÜÌÑYv£Ýïb×Mùú,¨¡ù.‹H ß»‹}ù¢6|Uà8Àcrº9§2Á:÷8­‡"G¡w{幫!Z‹rm” ½izR:tè¿im¸9mOI74|· VMO¯·$û7E>™k¥‹Î¦.ýŽž{³Õ´Œ~T2|Äøw‡•ƒb*¨g‚Ltb¼ˆ¥>ŽtÕè@ÂÅ[¥â%Ôq;䈿Ë=Tjã©0=¦)+-¶‹²¼mY§*«˜TÙÙ¸ n6Ú?Þbß\ÅÏ3›ð¦€)qz™Ñ×7μëe2@AÆÂ-pif±°W#™gkY©Y­Ó|Öì„3ÔûuFÃE…l°¸¹È{dJµög²Ë”~äƒàŸ¼½˜$€2+}{Yvª…ÍÑr7†tDÆ3Ï8¤.k·=¤pÓw™êÄÏõ^%!žda.$CÀ…ûJÄp¦ï)§D¾Àܯèù0¬,åË—8}äú|Å I*Št<ÙŠ‚#û>^ˆ…ŠÜ‹¸{º…ÜÌÜ®1´ ÐÕ w’>’2vÍJšoš¡ÓE«f:Š…×#™k õTw…è‰- £·® Ö¾‹ÖÕѯkÖÂMªi¹Òœ±«žý_‘ ö¨5î è›?ô‹½|G­m<Ëq*ófÎÞˆª­8?Ñ= :9ÇîÐïAÊH"ˆ³0¿÷1.*†¿qlP'h<À(áÊí JZÊ“wËã̘cÝCÑ:üÃHHf•ð“L$Õ2èÒ9ÁpáÐ+µK ±Ü!ûÜ3ãÁö¼ØÎ—åê#Bzìˆ~æÄ $E$|gê‘æCE ÎÁ.¨{,»Œ -Uå0 Ÿil¼'T‡+'‰¹ ¿°T«]Þöˆ|íIo™íÁ ø‚”ÇVö™)ÿò¬í2õ_ÝzgIôf’?„ß¿4¨Lkk™q7ð¾oðР³ÞÈD?û²9Ì’²Z£Z†I{oƒn0-¼ÉÔ ýiÛt#v6¹®£yÒJYCŸ®,óoy$m^l^×?­´Ÿö¨ÂºR0ßS½v× á¯ÌT$5žÁ÷º¬~OΆ ;&.ƒ½ÛÓ øZV4zÞNÂË Ø$Þ¼KD,õQÈV%Ú)»ä”?HW.Ä}J6ýl¢Iݸs©¿qn¯HÕÑØÿ !¨¾ôR O¯ù„à7É+¡²ù”©ŠqÿB· äÃZÔ=]å­5r¬ÝäÌLf‚ ¨ÿ¥zh-ÛpÁr8!#\ƒXW.úl‚¸T…¿ü» ݱ24ýfÙ9X ”aK`> BÖF–|‰­ {õÓ£¨B²íóAùÝê´uzV•)™øÏ©å¬ÙûRs <£O1º—„Qs5Ë#Àפ“ K²Cˆ¤ìÑø_}ô¸£ÐÀ'ŠNj9˜˜Ì |Б<|M=?ÉÊùœPÃÖË{«âùùñÖ£á6°‹šgÆŠ&£®ÅÕLüŒ­Çãô!³‡­˜€xM‚¨¨D©è5;va¥?…ƒ X¬'§1C㔇À}ššü‹©]5ÃÛ¢LINS·²îÜÐëœÛƒƒÀˆßÔØ5‰”^+!ë²-vÓÅ¥©!ñ©NZUìD*ŒEE-€Ë6°ŠzÃÜ.®VþGè#Ç_íÊò-ó‡YB˜òôùkÍtó,8 9BÁµ<,le“Œ>ðHzñµáõI÷«=£Š¢·>¹§3¿É¸¶îrŸð½HVNB[ߌËùEŽª>Kï¼&{T¤Ê2ð4Ààö@ÔYVÇf£}’¦S ’Ä>:1lzNg[|×xºAíQ£]çT1#×BÁò Z‡Àm)à'<ñF‰1ïíÓL;+1&¬b5|eÞ‰O²†N®ô¾æà5†ðíܧK8uÎq+Ê—Œä!’¼'•lƒxil=ip—DÏõ2X™‚×È#Šñ¾î·/-ÚÂv»÷& ×ðÒ$|ªÑ½KÇV¯ÝÛaw_l ñ>øL5ŽFìç Ì4É…iÞ-Á Q¤m­ýƒG*Ÿ²cêîГ¼x–Ôšñr"̪·Šõãsý¹±¹¿ÛýÏUPùÆÁõHø†AU+5Œj—ZœîU'ÇníHS’1ô,í5…•’pò(rÑ!˜ô-»Â>Û¨D§çqj9¿¶ÏY¯¡°§d›bΗ…Y¦–û˜+æÕòˆ®ªÝQPÙ¯1x>,¡A SJUd⯧Á¢ÊQ§êé‡DMRY—”Ú ŽM¸˜™†ê°˜˜É=Š»ÀÖ‰ÀŽ-8žt=Où,qíÔ!!³ÝtƒfºG/b|ǘ! ÀÊpíA"ˆ2ÏÀ\{™Vƒú7OµÝèNж­ÝÔþå¯Ö½`,ãCN¿Bt‹]w:ˆñ¬gÇž0¡Ä$™ßýüó y,û„îñ· ÀÜëÓo„iDQ.- ú¡—ÍÝ™ÎuTPùC¨pcx ž›:¶Š"RlyãÂ…åJýé<•yò†Ý¸æ ÁW¡](Ê%:Z;WÕù,)›ƒ:\l?d”¢åN¡}ð¦Ê0¢£ñúSRœhƒîcÃ}¿ÂâòBëÚÃ/nhQ6–æ³sÊ9çŽî"žñ^Ë7ÊËj¼ç$äªS(bŒA®}a Dø³NÏZ-÷ Ô+nü^¾M×–°Ë"W²T;q̆a÷îáúôbpyÕíˆo_ÃHkî¹ÍT²ö¥6ïT÷ Ú몧¬±bÚÉÔšª/?Î!ǧ€TôØ ¶Õ¼ìî6ö †¾ÕFdEMíR&¿×\½ƒ¶¼à¾M¯jß&U»ª-Ö ±F‹Såó#´}RÚ†c°uèTO hu幘)8©õÙKÕ“´O1MB4øËZ˜Õ³O~Ÿ@æ&k›ç0>"빩Ћ%c+Þ‰’¿ÕL× `ÕÍp@¯™Pªhw¤¬uêJës’O‰¿LñOü˜ ±EEíàÖ·¯&Ú(ÍΣFö¦þ¹Œà^ £Ì©(*\Sµyrªø»¼õªáµ³˜ªüÒ|¹Üi¹h0Û3ñ‘ê\דç3“.¤aÂpÌL*Ù 'm’QÔ§òtq;‘ÂÂ=#lg´·B·­µ{܈¡¼kI°Cã[ßû™®-KÉ^i†w~‹·LcMÝ F—¬×JÄòPY蓘–?[Í&/>ýóE35;x×VSŸöãM¢‘ë £8­ø± ´Ã;“¥{rýNÒûk“ÜBºî˜€f¬ÿ³ J‚otŠG&‘*9sš¦j ñ”)n³ÑLj€n O9ÚÞ} óüU¦­Gë„äx0¡+ùv8ãt–ëe“…ÞrîÙœCXÔ%VÊmÏÚ󶪫#Pqä±o(oj!ßjä9\V ÃQV»|.¼3æÂ.ÞíXù! sÓ¥ðá+ðžx¦XNǯºÅ çæq‘º‚i3[îl”¢…qDÈL…hšW]T~ï[«b׳0Ênð@ø–ŠH£¥ÇÎ7(9¡7,T%lam“øÞG)õ /ä¶“‰0ÜsW\Y£WK¢öî®Ü€óf&1‹YìpFIF®Fì—\6A)Áý¯ÄO;F¾2é•Ó§]§|‹N+É_Óý.¿cÚZ>ÃQl¦tqQ‰ o,Mcva q(Ê‹e‰I¯àf7PUõfØ•èæüO´9 \{V“þ2ùÎe€ý—¹½…°7Ç\«Ÿê¿Íä·Fº€é¸˜™'°¼1M!X•~×ÄS1žþ¶!­/¶‡äí½Ÿwmt1lˆ|£•š@Í^0ăJ®‡eQiô3©&…Nr Öøiök¤°/‘âNÓZaŒvákë†Ï‡|¢l£±¾->UK%+„™‚¹Ú¶b%$»˜¶Ò•4u[{]ˆð—ȃ]lA;‘æ$ø"àÄÝ̽ž`k> K‚g,xšÞMW‡]Õheª{)p<ÚOBêeü–^ù[Й$Ó® î›mŸ¤ ·^Í€ùÄ…­Ÿ¡âè›Ë¢Råª÷ )ùð‡ ÓSwc“ÿ{m;j@,†n½´è%-¬ô\­êÁm¡­’™Â):u—ÈÂì¦ $“úÀUÍþºöà¬ç/}ä´ïÃàÞ;&tõeW¹úÐm²”ÊKàwiötÚäÎæ±Rj¿$Vd@މW’3*á:°õ¨=eéªîŠÀéêhá$r¿ ª¿>0¢U ’Åò)ÃB‡¡äþkø§äz!¨€°WŠ5ª¨€\¾§o|8ðÂɳ%Ø7,èïÅ8Aèë9·Dwð%_ ÁzH¶n[ë¾&ërKyþÉÉ—´É{_cnA§=”œ,ß‹v‡´ÔX6•ר$õD@€ý4=h­†aÃGKºUI‰»êȆyÃèÝúÅ»B Mzÿž47݉âI¤êÿ¹Ôèîfz±˜–ï~*ÃC8òŠ? yïfW¬h8º*lÝ5p~«Ä Ã:s¬`y\¤qnƒ*¼éâ¾·9«ü8Þà+© Ò‡CrvòÔO†Ø…†*`CF8ÜÂìDŽ}Ë'\EÕ·…nÆ7Ï+û ·u¯µ5ÿ|Ó¦1bø4 yBC訞Z¡]2 ^4¤351:'h(ÿæÌ…]øºJ œo…£ŽvšëyM¬Ú2þ®ÛÝ3–°ƒög«ÍI@…%_É}aõ¾«4Dž—¦kÐŒ%åP_åi8…ÆvûÔõsW7²’= Ì®waz!JI“«ô”6¼Í:™öYå•f*Îå"ª<Ý®3d`ΙƄsà³ 3U-ò‰¤/Tà«R¡Ò{E[¿Gìì¹c²™¾ï°á8q£9_†ˆE ¾:¥v¡Ëf?6 •¼$‰c|Üg\4Ôš¿Ä·2Ò ‘0];C¡Kóxz?¾á/PG*:Àà^“ËDâe%ñå-ðEÊ“æðÉ-œï6j›Þ«?C\5É9†ô*9¡ Ë5qÆ&Dš¤ ¦å »ø&jUÓòšØDÎsøSæNá ÏFÊž ý x-œD^3U“@ÈôC±HhôqÜY;˜ Ug­° >W)±&‹dC0zΰpÏ—Gd² Ò ñO sk·ú}_Îÿòµ+Ïs¸AßþG<¥/óœ&¤”…m=Ržó}ظl¢Š%§–¶I‘·î¼¥*±…ÄÜóéhfô©S|káÞ öA¾,RE¸‘ãDò2ê6RÚ7ʼnqO ô¸ÁB¦¥/%JMD÷,×ï» P8gÀ¥¢2 Éàœ Ì\š<§#N?>sõr¢/Œš|,Šåú’&FÔv%Iá~ ^l(øP§ÓùSÔ÷æ]êIQ‘[°ÝßwK`0 Ú„Èt©£±‚þæ‘oH+ïûþèØn0aÃPù©BScX¡GyY†íIú5DÅz™-ÛˆøuëPÆu!ŸZO3E¤C¾ïÙâ´j©kv’z”@ÔÉDÎèpñ¾Ò0®Sú05N‚‚¦!ȨŒŽø€l ncbõŒa¸¤ËgQ‚rÎLÁ‰Ž¥(Õ72S,…Bˆ>¿‰/¬æNwi>´/Â-•"e}‘WÉZSÜø@"Šç4¬2TV‚XÕ ¸³–\¯ KŠAF)Ü…t†(6rºðÞE#ƒ¤ë¦ª‰µË$0ßÒ¾#«2=\†y¥RIXÉÒŒQd¦QÛHX4­o:*œ0|Ô®#J`èaÖ¶ÍÊCÀÓ“p¿rÿm4`9iœ <ØjÖ£ð}Ü"í¸ÈhS†ž$ðŸbá|ÇB6nþã£ô§‚5Ø9Æîžuºù¤@hlX±?– WOÆ´Zzè&•ô&ñ Ý´CCwû}³Bé©LrÜÝû û YÉ 7,¾® ÓïÑyªöú°_P·w†2ì‘ðYõAø¥ÂT“Án@Þ8Vo÷|$~~Ék!®‰–¬n=‰Qø|gAA Py0»Ã0Q¦*2×·ÙHþ÷rÊÍÐ…ç&:b®œè¹v¿ iwÍX®©¦ï21„¼‹èÂq•ôÓý!2ßMò~ßêN\Ó ’ê)hÔÍ9U6pÓÔ:z‚mö~G>.M`’ŸüÑcI_eæ§°¨j_=H **÷0åêªäLx8¯ôˆH÷µ®?{V¬¾÷‚½ÄK!j>æÉXŸd¬­kü@Rü³V…\JðæÀ‚²«Ñ¨žv$l*óãŠF…jÍ]ä!D| Y›‰6Ì~:!ù:yôš7Té§•U\‹V[™®h„€ÉT°Z‹N£7k0ýö[½U²%ßù]/{jgú†¸0<'q+B²**¼uƒlÎgéÜÓ;°³Vâ­n5è9"Õz¨¨Š r¾ítj¹õá(`}úüÏ?£ú“Ⱥj,‡€³kKf[èóEª  OЍ$\¿ž»çY¤@L÷¡W,Ý©~Ô·Xé1=ë³ÃÐ({!çm¢1†»ítX†Ð5‰V_ë y!q ÓqÏ7Ò<8RòŒFZøñP¦‚á·ñSå|Q.Žüêìæ2Ê~Ø;õÕйðQ<ÂuŽgb€ÆóÓö â¦6±NæOˆgÛjûŸÐ_U"û¨èF}:— &zßë¹¼eÜÉc –µ–»éLΖI¸¬ù¦ýz‘¯nÄ¢• à&{wê±"ÃÂbÍ+µï[C­§ïà‡éœ)¥,#¤àõè2ñó÷pÍg‹„'ŠyËÕá% ¿›ý8´Š×Φ)çK‘Ý7¬œ’££TZ¸FÌl'­…"Y·uAw«ø£9%UªN£E•L\&&'¿]î:mûÀ??›Mo•º]·³…ç:âD‡\¾×H¨o<ì Qº ÓÔè†öw²D •”ÿ279“ÊÁ)±ؓª¡6cÿ3ÙN&L(ÜTÎ }1tæÙ‡¶+nì|‰3‚Ìò Žž–û æ7ÉðYú£¾Å*ö÷íZ„T—?#e‡O:§Õ&~%p³Iåöìïë—Å)Ãa"‚<ý ]ïùi[žÇå§ÄŒ>›ûù¤¡1¿ ¥¯á¯3S+Tëwæøûîú$Žœ×ê[³m©ïZ§„…š¡Jþq•AY~”•u3uIû.¼iq?#µöJ)­XY =­À­Ð†í®4,…cÌý4Vq8V½5€C PL¾Œày©®àH[êÌäC69L¨s œ^Ètc—c*|¤ÑüxŒðå·UÇY@¬ˆ¬ãâÛ22Vûà5™˜'ã Îkü±&v»øÚÄè÷H»lv‡­´qÂRûé¼ÛúÛ‰c{˜CÙEyVà BYõ{!-Ý?±ö8Í5û§4§’¿¶ÛšÙQ‰§f t–ì2ºd7µ=F»'SˆÀÕufKý313j[mƒÃ°æ•44ø‚êbàš(zV8àE|ù~ã\/ŒtÂ4ºœ7˜é±DG.F€`ƒ?]Þ­Ç~³JhþqFË*«â?ÀÑ®¥Z¦p£…q ¿PÔÞDCS~Zw¼qÂ'L¼‰¨Ã=Wäì›pì©HÙZa&¼ ×í£CÒ噂.[æ?Ù#³Æ e*Œ{|§Ál®Ô°·“ùµž­'oÉØQ­ÌEñ« Ì·Œ.àD¬PïŠC½aN¶ñn³ƒqYê” Ô9AJ´ˆ©vùÓô·UL1£8$â2Ìqw¬¦ïÆ/:uÆ ãþÙŸD–3‰Â“î»™¸Û¼¢ å¸Ê ¡oŒ½™$ø@–¯Ÿ}`É«ÔôL>dym˜±¼ìÓtF$!׫¸¾Yà2½³ba®dréÐ;æ?m{Ó±#KÜýá–„b9–˜xßñaeÏa9ìå›#péÏüßðsÎIÁ¾>m `ç©V碶Ò3¼1¤,BÞÛL±»Ã A—ó`t¢›Ü7OØ@Iië4Áûef\ÕËÁnˆüšQ¾‹{ û¾-’úöú~p4ø 2žÒW…Žœ–­•ÕH{Wþ4l}{Ád9yÎßgþ ’ÒÏzv›³ñ$Xó{¤þ$¶ž9ŠœŽÛI“´ìæ ‡2~óÓî\ÑɃšXH$ì {k£ƒ3fÊQyn27um1¨u“¼ñuìWq)~Í»Á¨³%g(íè3C‹^Ö{Fµ‰šu˜c“Ûë£ØüdºX¬ò²:K8ÁöÚUvJV7vn܃hðËíJâ+ŠÃÑÅühžËˆUN’h$§Ï®þ;˅™øåöѸ·~–x;þJX5£pÅWÃÖvlÏS%)¦?ú)fVãížøHuO ìeVLIÓíº6e· ê‰Ðfÿ¬òj"á4wÙ®¡^Ë7Ž£©7 §WƒG{H<¶µ¿1õk˜L‰e½.U8ù} •¨¢! Ytæ“-,ô¾_Wt¥»h%±1:ñ^áŒDŲgŽà‡ÊnÍ¡1ÃÌëY'­môrïfç2±¨?N°Ýe+þ=¶û‰-´·šqÀô©öuKT³‰u©³Ðnr† "? frþ¾ŽÖèíуfTAOxì¨ó)Ò_6Ñ­˜«>læÀÇÑÜVœmy¯‰µNþÛîS•à^=þ©ªÿsýWæ¬îRŒ À²ìÓ?ùIþê>ënû!‡+ƒLÒ”ã Ëÿ'¥ÄÙê®d•6…zŒª¼÷:ùŠ{Pycî~Yø!«£M)™®ÿ``,ÏÄÆ  jýíj>ÂÐ zŽEê~iÐÇ’w>IA*a~£170Í@W¼ç²;8íƒo–5ºÛa´p_3QÇ þmƒuò­ß ùíƒØ°•)á\«áÑ÷»öÆ (ç9Á߯ ý´±Â˼{"øTó8hRÞ'¼Õf³AuÙ–«P’—5Š©¬gGˆd2­e÷ð–s¨­ckQ‘Z’WæÔžzuö„N|îõ#åí¹>QEÀÆÝ}Ø«½~¥G‚JâëLi;q:¤\0ÿõo.‚„EP¿J6š«( 'éJ©?¯BûˆÄrV‹»ôŸ ,ºú\©³BwªjCdÂô)ø8-¹Ä3Xv[ÔÔÍûÕt°,à™›v›Píýë’Š®<µµÞòÄ$ðú!¹E _°$A1Gâxœ“o[¦õòµ†ÅìW{w¸·¥Çz‚½ÙƒÔmQZ½æ¢Îá0æaÂðeâ^àñÝ u÷Ø%wk¸/E8=ô ¥³aoñÜAES’–”EÒš`­»™—+a/³ÁÈü•ûpX¶.FxlL(I”ähbu½à×ܤlË ¶xRXÏS¢ªV¦±SþÄŸdàM¤FYôʼn$xC¿ãbTHEM@狈Þ/~‰¼*]»fcoÑÐvÓ:'uÎØþL¬ˆ¥ìÈ! T˜j³S{ýúR²¸#ˆ¯Î/síÛ?Û&ÿÔ?û£¿ù3QE©s£ã=ðDl…ÁöÅ™æj²¿ÎøTyÔwÿ â`óñªÇñz"ÒÁ)ÁŠ/HJ2¿ü^»«Ÿ™=¡¥ÛrÛù‰0Lý!…EîèI×·»“ýû‹’ÕõÉ›4˜ˆëªÆcsÝ/¡îïdÿ~ö~µæHêäBæècrˆ×²1'ÿ9›ˆ§þþ}6WÈïe™©4õìNz Q_ÂuÁ56Ëd¿7’`c{²G`é"@‘ot–0,6}.­ êÅYêV,•Wˆ½dU{×)ñzþÙH{Í£†uÐpìy/ Εåãö~Ñ9@»Ô=ùsœ&hÅcþgÖ‰,<{ÉÒ ·¤àAªaA§Ú³‡Ëåè×8óÖø«îU¥ÅKO‹fP!E­¢e¨ZŽXÓL¾£`¼Í³Zl:ÁkÆHvZt9×ïß•Úí"Õ«ÌNëƒ Ä¼¿£ÊÅó–û`çÚ• Z Û¹ÏTìÅû4ÔÖ_Ûü-·ì*Ð3z*Üa¤€RKCYÎǓݼH8R×}2Ò¬aò¯åÆÖïK8D† ²÷z:äö¨èyªA:± ,/Áé.íF@}ªÙqèxt%H'Q/´ÉÙ0P­K!Þµ¨ì¨7Œ Ò¥KºZ$S[Eß ¿aˆŠF<¤Ðqk áŒÄBgRXÇ]«kuí 3Ué/µûì £øÚÞÁBJ6hÍ@ÿÆÃj‹×¦ÖÀ¿”Çc§çt‹†Ž+»{l ,ñÆ,4'Ç)]ÔöP¥¥h$lÀÙ8.Ôfn:^\Ïç:”Y7vœÍOt²íkóf³^€d.Te$jºK{Óõv ÄÚì®–ä¿\°Qí¯ù¹éßÏ…jƒÙ5†.æPØ ¯Ô(ðåv§¤œù|ö¤]ô˜}H[3úªû¸-VdvDºÓÆÕÚpØâ[rS¯6·lê}¿¦öÉàNý­öž ½•†s“Y½ÉÑ+‰¨³¹9€†!5Æad¦—¤q ›‚¿¯Ûý;jÄB„ äj‰fßaÒ#áb5†‰=‡&6©¢lãüÙ#Mö£æ,¼Têa¹Û‚i|G9nâ,ÑΞù üV‰¹¿Dµ“Ògèʵ¥¹x´ÕËj×(Å%°Í@ ³£s½TÛš€–»ôFx„"ªå®Ø]Ë E‘­ Üm¶ò:Ôøá–Qk›O¾);×þ¨¶I¨Z¢ •ŽÔØ¢ÁW¢¤Ö„¶Ú·Š4`Ú{S~ý§Õûçä!viY¥×¡}÷£,>õð YÍŒ†/m%Ùùe¥å ¡ÅeBšRÞ6~ëâ=Ú?Åv¬@| Kµp(¨Z”w/Ç@ÞîØgL5&ÓfäN«ýÔ3°J^i£ÎJ•ËÎ 9îZ½îã ™p¿•ãåÎ/‹,¸ÆBԿ빟”ÙPÚO.ÝCúÈu®rÙ§‘åbžXÐdVøª^éc•L•íÏl¤ôJíd2úbb‹°ö¶3v.:¯€ão)¢=¨¾qý(ô©Ü/w8c¹o¾ŸçðÔ×0ølÁ ‚žUiÄ|—_„¶ä3Ä×…¡\…±Õ©ªœu[K7ÆÀìmg°=eÌ _4^%¢+‘aì›?ÒºÍç¹Cç¶Ùoº¬­™ƒâäáeû»")”÷fR²ý>ÃÔà`Œv¶®~ó&Çռ2Ktñ§#T ܪžOõ€‡èÅ«š¸´»¤ªÔ\Ç)©Ì­ê")Alq]bÕ¬hСYŒ]–—NvÌ0™›æwNÉQ÷<àÍIeü-. æMvö},á3¡#¤aD²ì…é}¨t”+ëÂabÿµÅQ>]Ä[`ß!…W‹zãZ;ÂàÅz_‹ŠÂ&úŽH”Ãr"¸^6û²…­Ò 3çzEs ¹%”6£üü6±¥Þßê‰/-M-i˜DI çÏ……ƒ¿›¡Ò‘CÔ ˜ÀSQñk<0<ŠQº¹ôý2¥íïUœ'üƒä%Å–mj¼Á=jœí\ÀkðÐÙ"ûð# [¥­îÏ4ó 2…´ƒyþ½'Ä]б>9@Eÿ]nMäþ9ÅÇZ]?kºoå3\ÊU⊼aà“/ qûVgøRL€ra§}x€—sâ<GVlß$Ö¯† :Åó6Œ;¦£EOséáâ;j>vÒÏJaeàt¸“O?¹øHfýÛ' lУçÍÇ‘£Jœ·÷³Å ¹ž†b˜Õ‚«$eÅØFÇëW7ëÁß°Âoý´½»ëÇ¢uáÅÑÖ°ã&`Bóc5Í´„SW /8ÈÝ ñ©ÄÚëÑѦBðtîwYË ì^do×·aX#ŪíÝàKB¦f‹Š°ó,Áq’€ï<”÷°û6Ñú !ÓË ü.Jœ®ZÛ᱆å5VàýáßÅym3¦ç– †dîý³M§ýÝ8QºH‡¾³Ú}r#æØjGÞá3ŠèA€Oz7»ì «$¥¼Ptç9k}Ê7ñ™zN)ˆýçðèT'9þqxÅ6ÑŸØçhq ˆàö]//lˆþ[{Ëd¤‚•^ùHœ4i›´céœø“"¹h°{%Òߢëm$T›T*m—Úº£5÷Zò®ù¿êQ½r[qÃPª¡+-®Û¥ÔÇ8FO©%ãò°<§É;ÈËŽQ߆@DÙ£^#]ÓxÓy±úÚÝãXBÂi¥­$ÞY8Èú JH6<Àž}üš‹Gö=ÁŸ¹¨cWŽh×–uQs$2Ý¿ €äØÍŒf´bg/š)¢ÈŽ 0ƒ t¤üXoðZ’=,î¥l¼ùL Ý ¶dƒ©š¶².V‚Õ@”n9AÛÆ¢3r&õæT”€¼Õp@¾:PJßV, —o6¢ â—P;)cŽ=_CMk5NΫ®Œ\‡$D€?•=„u!;éUÉ¢A5pÍUý%LÍRÌùs·A†¬pi(ªõ2¢Ó¹ëÓÞ=»N£éáÎ(}¸¾üé~ø:8K›î!ªP5ƒý½¤c"}i:%²ê‚jé#ÍýôKµBÙ~¤ßùPJÈ.Ç8-+xÓYA„jç%–¿nÅŸ€®Ú]õ È·'˜àêŒ&­œ\šCa»Pηq­‚s}«þ ¡Ù ‡T<Ø›Bš –™ø“4a—ôm¹n>!bÙ u|Ÿ`ª{g\l;›APñ £ÑÀbøö©thÛ¡XÏãÊv:œDÁ¤í`ᮣcú°jùÕ0º_ ÿLuŒ¡-nOšÙ›º/Ë aÁ³¿+Bk%Ý,÷)dþ£Ž&£ Ž’/Y»NÅßiˆ5d–6Þ}EØ~—»a×HO¨ÉÁ«roͯG·Ôxu^ÑØ*÷ç­üL¬¤¬ìgsø¥ÂyàØŒB‰»ÏÄS¼5'ix3›H2«÷ÓŒƒô|í'*3ÝQ= â«$ Ó>bG·²¹ˆÙç—-]^='³³Íuõ ÆeˆÐÕ¶ãûމ¡iž®ET¶1Ü÷CäðLÒS_ÈAyïVä>$½Ò”º’²‚¥Î6ù²ôjQñÅidý¬ ¥°vÇTÙ-íÏ¥~ïxN²×àÝòcŒŽ"Zr÷âÛ¿çYÒÍQõ•ÙìáÓ3ß°»Ë‡…PŒ¢V•p<]jcqœyxÂ1.Æ=.{ Ká¯õy•ëW¡¯mzའÙ¹.¸,Ô_‚í°Ýïçɳ×;¸ ußxd %ßïµúb,;­VˆŸvFýÎÐðûáà€·4u—çA(î½fhû …¤¹è‹´dÌ1>>1ƪ®ngy<¸ExµŽäXëŸ4–Zo^€\\Ú""Æ(ÒÝÜB”èâV·ka§u"KÓµŸdŠÖ#) ¤ ØÚ¸6+g3GBXõïšï’’Ì%U¢#? XüwÜ6ÎYÉAv6%Ož¿>€˜Ž‰(CŸ¨¸Á¸eX3sÙÔ9¨äë\wü«æ}(ÇK²yÿQ^£ ã‘lba€uWr¬Ôˆ@¼)øÑ61“ÿ!áÅš‚ci öGƒoÑ›;Àù<gÊO›(UÞ­Xž’ˆ >Ýí*Ǹ$6v¥fq û½”ýVª­áhúU ÑíxügU™ðÁp€ùnYh„Ù¦²Àûvi@‰¾ÝƒPˆ —m·ùÂybæW"ÛˆW¶™…ý>vß]ê e«)a cÛóCªïÖªuKçÈyCþ<©BTÐÿpV_•i¬ÙæwöŽDUˆ©0ÖªþÍÔ‹¶í¡ÚÓÔÑ6›½„U¸[hY ˜üŸK¿“/ ±Û;ñé;ï¶JGlîdÂg¤âÑ#.Zgn°Øw›0R)Õá{^éÎ@¯;ù!Ã2o«¬Nð³zÎá“îúg˜sÊ¢û¶“}²ÍìôØ/ï-Xý¤O¬ñâŽeÈ8¬Qïֵ܄™ðÑ\ZúY'úÄ Ü)f4† ²ÝßÑ4£8aý¹ïbµûM¶3<¤ý4댅KÈGÃ{8¦YKXYIžÑI} ª«vÚçl78C¥ðhؼå%¿ E縡ÜCÓ$¯“‡öʳA_{ü±9U³2/–O_Ñ]ƒMD@brîBãúT#>º;/Zˆ¢·‡›a}û¨Çè]&%ÁíóåæÁFý±’ *&,§KËžÅ?{ê´ýüÙÇevùþäÀA,ë…þqT:°ˆs{õ*ЈQ…;â·å›Þ ®!ˆÄyƒ(Y·hº'PaȸúSò-ÚšæðÞš9‚ ŘՃæòëÝc Hk Þ"ÒfÁ7Y£yëzçRj<|L¡žÉJž”ÈœÖ+d0 Á/T EþЈ€_Œ_ýU£ g¡Ÿ»:ýŽz•Üo*7N\æV¦ðGQÂãCÝMÉv’ÖGT+ëøAfsí{]ñ,½czŒ“õɲ;™Û¾Ç&@^lU-?ç-Ìý‘0Ùn­?γÅO6›8Ãf˜‰-eTòIã±’i®õØ‚%À¶¦ hwÕ íwhÇ rÐКÇ÷<=9x¢"öЊƒ± â0 dï´Ò‰/ãìpøÞ´Ü–^î$v´ ÂúÏN­Í×…OSe1Jë²-Þ]§Z%çéŠÛb;‡a)0MẔŸ@:?£í¾øïd"¨:“ê/7š–T¯ä5ù³¡Ü¬•qË´?$ÛV¶ÊÈ-¤ìrظþd‹-‹'ª~ÐïH¼ ÆQªDëåµïúéÔÎ.Ñeq ÚéZëF¯ßOñÒ|¶p'ª'^“¼ÁGçÚ ¿ëUN¿6CêRx¿¸Y§Ö±Îjc®X‰æÝ=KÀú4ÍÏ 5Øm è¦ëT¦+=m1,³©øò yœoÒŠ±ìAÇÝâqUSÄN ¥Ž1'IUõšÍ_„»€ÅèÌîÑãY:§íÉϤ|Q9س$BŸ%Û7À¨g§X•Rè.&‘ mó[{]›·•¼R“ƒ—˜ç,‰ü*dñó0iƒœIÜYJ™ì6éRt” ÒLÓ!£§¾×tO° ¼ïæû¶XÀ„Pmg;ãÒR©{Z£5ðÊškõiúXUµÀ4(@í.Á娺ìã®5Ãm¹ýN½ ð¡OqˆfÜäï‚ßO|–æ‘u|i/ƒåa…d¼7aÀÌ ßÊÒ=\R—šoøÈ¼|~=‹óŠAÌ¢ùΊ³ïÈ¿îÙÒ_õ;F"ÙíˆîsžžØMOøÉ·ÀËO­— Ej§ó~„†ï„Li ‹ôq¨_úÿà]D¢5ºE@mf÷kàä$;S]»^/xK‘ž¥_¬#…k÷ˆÁŽƒ5½™ÏÕÏ úc4—Ëð+ž‰'XÊëD9% Ù ¡°õ[ßÚ c8þáZwo‰-k`¹J<#[y!ýV[1ã”S¡ŸÇÐ4ò`h×âöÜI·Ñsƒ¤˜Æòƒ@câè¦w×x>ögª¾ƒ»Ê ¯Wx:–£¶æ@)3÷6 ?)0äë™êä—ºq´|4øuj-ûâKuá9v …6± wfµ Œé4íAj\´GÜ{æ5Ãòÿ´Kü7R#GÙüË/0=”l6®Ee X}ðÀÿóE¥‹Lù“N`öìIÃpÆdn°ôØ ÁB1á2×߇^ãÛÓh µ¬ð:(EŽ÷t¨sTyœ‚U]¥#û 5Õ•Æôló×Tä>'_ùʺZm™Ñÿ]sXMµc¿/³ßÓÞÚA_“Us;o<[– á+SÃl€Åmp½£1Ê:^!`_$*ÆÑyqÀÔø©T |®!,ú4€ÏkS jÆhV2Æ$ú䱈OÄËÁ"Œƒ°t[×¹QT!9ToÇ…e»»5Û¢Ê1oÙHÏÕùxÝúkÿß7ËukXØßêòm7ãŽSн¶\àùt–â0‚tMÙáº&™ñíFjAî{ôøã/s©¤“¿ÛT„x“^…>W+sðBe7Ú¬‹°sKcQÒÍ&W43xåø-s›ÄÅlE'gò®†h ¾9Œã‹¯ ϸÀè˜l£$ °ûŒ9Ú“ÔHéU{ÉQÛT‰k¼¡—O I4ZŸÿhßJàãKy_*V?+ý8ãš/‡à½íf0\¯âü3КÎåíH$¤ÎAëä˜Õž ¸·Hæf¢¹/WçGøå&®ÒÇ%‹f¡7µ÷¾êîë2)ãÇÙôp¤ËĬpHŸ~t™Sd[XÑÞæ›£N.Ã!ÿ§hüˆ^I€hÿOd<BaL=ÎÖñ_à.¯Ý@\¯E ›œ|¸\f‹­@ÕÇk5f§rBGEK‹¢U^šÝãÁèÆv­Q¡N×ß“Yu4©\}–Ѽ©&Vnñáì^Iîpþuú=^žE*È®H[ÿK„ñ­#u[•œÈö/ ®½e°¼«ErdõH3¾³8g2ËnÊ‹ñØìì› ²SŒá …XgêŸcðݦÇÜgàpâÒÅN@®{eê%åúV.…Ÿe}~àÇè†Ø®lÈQ q.ax—o^h¥ <¶ÙØþÛ”1ŽjÞkÑ!Ô\`H—ŽÅ÷4_ÕzpyO çÏúPÎ> stream xÚ­veX]Û’-î\lÜÝ=xp—`Á6îlÜÝ Ü5¸»»;Áàî.snß¾ýÝ÷úO¿þ±Ö·fY£ªæ¨Y{S(ª0Û%lm@ ,ŒÌ¼yskC'Ge[ky[Ye ©“ÈÀ ðq PPˆ: @æ¶6b /@h XY,<<<Q[;7sS3€ZMYƒ†ŽŽþ_–¿¶ Ýþ‰|x:š›Ú(?>œV¶vÖ@ÐÅÿØQ€Ì€s+ @TAñ›”¼$€ZR^ ´:|¡èdhen57Ú8i&¶«,F¶6Ææ•æÈøÁ%ì08ÚÌ?Ü€®F@»¿ z€ÐÁÚÜÑñã`î0u0°}œÈ`ncdådüWvÛ¿²s°ýØaý})Ú:‚Ìí@€¨ŠbÿÈdfú+¶£ù °5ùØilkäôWIc4(ÈÀÜÆº‚þŠe›;ÚY¸}Äþ ³s0ÿ; 'GsÓe@pš8[?h>¸ÿ:Õ ø/ÕØÙY¹ýímû÷®ÿÌÁä´2aD`aýˆiúˆmjnƒÀôW¿HÙ˜ØX˜ÿa7v²û'æ tøû€¨ÿêš$ Œmm¬ÜÆ@&y[ÐGHõÿLeÆÿ=‘ÿ$þ_øEÞÿ?qÿ]£ÿr‰ÿïó¿SK8YYÉX4À?æ àcÐØ>f @ð×°±2pü5pÌþ/Wks+·ÿÎùßwkÿ‘õpþ;üÂ6¦ 1°p0rüÃlî(aî 4V4™L ¬>ïo»š1ÐÁÊÜø!òßçûáÄÌüo˜ª™¹‘¥Í_jpüÚÿ{ ºý]Ó7uùoª2tÿÍ´ý{³âGW€TÝ쀀ÿˆ¤!gküŸ‹¿¨DDl] ,œ<V.æËøqyXÙ½þaÿ&bù×ZÎä`î Ðffdff|¼ÿùük¥ûo4â6F¶Æõ‘ ÈÀÆø£õþÓðlääàð¡øßÓà£ò®ÿ¾@ +ÐaiÞÖˆ/Ð"9-T…“50&¦ÝÓÅ9d÷«V5?׷¶Ó'9t“§Tÿ¥2ˆ±n‚÷­ÙmîÈîuGšvw¨ ÛŠª3x–óÙ‹Œ¦;m²•‹nןIïrʱF¤ÇùoÙ (-NfõÝ­1%e½Â‰V6¸ó{_2ç\_Lò;;o£¤šXm¨u`èUyGÇ”ñ÷wT}Ãý—ÐÝ;t™?à)ø p¼ŽH~‚ÜônjÞ Ÿœ¹œ]=0R^ÈülH“mE«ÝgY}©[]Lèˆ$9Ö.™Õ1»Ÿܘ‰ B>½¤ryúIT‘E_] îôðÝ~bþœ°N'­–Úî¬é{[»˜ˆì)ÁDÍ–z"åze­a ÉnÖÈ'±L­¼B˜†¨r'â¤Ôpàƒ—“±È™êŒ"®¬‘é®-°§Š=xŽƒÉÞÀv9øZè)7¨:džfHî›õtHzwâ ¢\¡bÂ$xT½’Ë\Xj±yåþRcÆõÕ{B³#cÆK¯Oª Üsð’龑¥¡"WÌðºs_t½·8s™s*¨œâ,>“ŸöËs‚ÒÍî!”FtÔEEá<ê@'ÖC¼jêF¶$E°ð…çH´Iа´§vr!`F5N¶ä³1­\^ŒY˜²·þP â׿ߤ³àøùC˜>ØÚ¸Xìß<Æ Ì‹½ òÂçTávy¢HÉòkh¯Úƒbne @"†gV…’ž%-¶¼·3)3ðö\KQ%á¦!aósêµ ƒ…jiÏ€íÑÍÕH´ßtS‡«þŠ˜°ëë®è‚óº±[`”øìëvyP€î&ç‚̃ñ›úe¤D¡oBð|½^eñå›fD°4·Û­&cb¢€BnAˆ;¢YÚ;ÿÒ %›*ê(‡˜n׺¼®J´Ó•¸ _Ž<¶3÷7cä}¶N[ o1!|%‘ù¥9¸Q?¸ÐªFnÞQ.ƒéVNà´«\)‹ÍÀᵜl¤G|Q×Û’¾"|Øw.fý%fIÈ8Ëͬî}f@ˆXÊ¢ö„-Ëåtœ­…Š6y³3x­ÒÖâ§Á 8Å2Û¯Vÿtc}šš%Õ½HÙÒÕÕ$ìHBõ²Tàú^JC®çtئÝä’wýãܑͬ}à æË>†±Ðºï˜Ì$ 6Í)|–¤ÌîëyiW®àˆ¨¥À•¼×@9—×»c-æø®pÔ%{%ÖwS¤û88ÈPÈ'•^xCÒÐÖÀݺ\MBß"J¹I«lð4:c‰ÑL,BŒ”d]c”3øÔkgXï6²•þhö äu•V@ùÒÊ4ù9?-¯:$9WIˆ§;aõ>¨y§‹çº—Élì§Ç4u(ÌGa~õp {rx‡˜S´°°¯îx݆}ƒ”oVmJhŠe}PïëØZÞ”,Ó`MŽÒ¨-u¹¿/5‚q¼ž.¢ÖñdëLgôJŠ>kÓÄ— *´ø(}­2èWŠ6 ™8i= Œ{úb434μu@Yá¥w5v1Ôø<–õÞÖ×ÍΫç3Œ¦’°Êw”°{²›½†“"õä×”^4„£N%o’tOÈá4”¤#ëî F-gÈ¿¸»aÙWþ€A]4ñsÆYù™:TSÿ"W~Åß°B.Ñ‘6Ù‰fƒÌÊ&è- ß`eç3 B‚#±ÒUàtzcyxÇÄXzvî“>–‡Äq{ÛM_ª—I?ZG¢ˆ§Sòö8÷ÛÙ²‡à8¡h|CfÔži³Ó{XØ¢§Íœò9WŸ¤qȵÂÁx¾ +LŸ#“%Ÿ+µßq¬§.Uã‰ÆxÕõŒ¨³½Cë,ó1(î'n©™t\®W ¨òÌ *kz”RçÚï‚©3`:Ö¹ õ%–UÅ€5²SÜWD eÉ1ÆÙR¢s@š—DSÈŒ7¥ø­ìl¨bõ_£Ge˜³&jº˜sÜY÷ý$Cˆ:Aôs>5ƒXë¢Ížz­Ö»ì@'‚ÌðvÐBP§VÁ…f5¢¬Œ>WÈå2‘!Ÿ¨­´¶Rÿõd¾¶2A;x„%êx±cøfœl+ ÒÃa_6¬±8Ùye›ñÊxc·ÃŽæt€•vãâIFH§M%¯TÖÐö¦—}–A,[$åÓzO&p&“¯œÖŸÄkŸÃÝ-¢U …ɤ3‚z Ó_ùð“ç£:ƒ/û>p7ÇÚª> öJeáþòn'ôƒÙòy„¢ÛšŽH’vÙŃÂANãÒ+eH)|D}Îý;Õ­—(½¥½ãç2Ï+mšÞqÖ&T6‘LØ@³²»XÁÄVgÐT²¶f´°ú™´þ‚a4hxDdJè¾ÁPÕ„hî'`¥MÆÒo$zËDÊÖrPÂ/5bkr:öbqj=²Ñ1…Æ-å½’Åwùf˜;é‚ÝXG>"§A÷XC0°¸Ö¦ñ ÁQ6ÆØÙ¸Þ¨‰Lq8€SÁÜÖpÛ.–ˆ‚ *%'Ž´úW@Ñ9í{Ã'ÒR6a¢¹0/VÂzC‚íV(Ú$fB¦ýOб&ïEüÚKmômG>©fÁׂÃ!ѸC‡ùI*¢Ü]ºÙ²ÖàÉÀÉú_i5F3“ƒ¹êR"­Úw4îü,t <1½Ä¤¤=å ^P5ÛÙÔ®ÝëÖ<ü·²Uxô ŸGH’rû½›Â­-ÔŒÆÝàªmÄ24'†å‹mÛaßX¸š’°FCÈÆzjo.![Ÿ½¶ÁOÀº/”Õ +Lׯ—ù$.9M&ÄœøvÒ"üF!ªµ6HKõ{¢Ô›lŽë8EEÚoZ/UŸ„“#ºLù?ÃÂOÇß$ßì^ÆÆÉÉJöaL9NâY0ñ‡þDMž­JmŸ jTÇ•Õ(G Çw0"й_(o õwŠ÷`ײŒHCÝ7 ^ß2Ý~­õRfTÏ~©Ï]˜§7²»*m£-ê“òÄ]ì*Ÿ‹vƧ[ƒ>½ü÷ö‡ÅzŒeð=I3.µ ˆ;îr‚rÖw؉8¤[ĺ`ùþ`¨µúÉ,>’ƒ¡iÔö­)‹û“âAË£¨^Ë‘¶ØF_¦7;UµÄ»ù¢ `èPÆEãžÎÆB¿;½¨åÄê*E]g-ÎúÔàØ«|æ·“ÂK¥IŽ.A€è– e€Àµ¯«×¬_ž<ßïVûÿx.¥âê‘ÈÁº¼h!jåÞz’oúØþˆ!tÄÕW¿Õ‡$ô‡°>KîFQ›´$[‘ÓQ‘pôr?œ”ѽ–ÖÆ])5+Bfg@Ó•úZÐUj{ãë¯jV(º}ÂÕmv°mC6HÂaE7?õ2#OÞ¤p5‘Å.’Ú>]í£bZUí¿±í‹Ïâ¹ngþ¾öÒhøœ˜OÕœg±þü›Ðkz…îZ›`Fˆø6OJj¢YØÇ´î5$D'`ò4¼‹:w”-“ÒçÈN÷‡?¦;M,Q|¿~hXêBÓðùÛ O¹HÕÜýi¥Eo—¹fÝ1Õg8º‰}²d‘* ø“%´¯= 9Í_=UÆUýMDˆË¡~G6+ —¥A %=o/C•ù8y™xçÑkÉåpYèêKüDpeî3ø1IÀH}‚¾ªy*¨iÛð¼%R½7D†i4”<׺1ävè¤ hV¿${Ú^YAØ ÷–ßQyR0üQ^sNž)b¿ žUç~]Ïö˜g’ˆÞŽ3šúäDœjeÓ¤×`#„'mÌ)$¤d6vŒŸD‡ŽÂvÜŒv•%ž®3ÙÒEuí¼·£Ãí^eî´e9„™Øº´´u0Dç͵“¯tΆ–­TÇnhTðŠÅ™Òò1·z½D]Y=ÚZãßw=ƒZYbâú¼å)HhæÉJïpp,!Â(ôÃ$J†i«üÎÄ_ø žbh+ñ™O¡Ó­,ÞÏ l€hs•GÑÊÚþ³8£Mêa\ÄGž½»Á·¶×-ŽÃXNhvY¶ ŽqTÒé=ää~y w7wâD­‘äM#ìAÁ¡ ¦¦D -98wþ]éF>Û}hšÞFÑ;ul2üª“pÇøÆIo¡œ]xÔF¯ i®Ö÷ÕÇ€X[ÅD˜ì´u1›c07ßn}|´^ _a›eM ßxuäµ-Ç9-Dòxh¨ŸyÅ|«ütÆs¸ýÒ=ÄÐ'{†&õ,ZòüIØÆ ‰ìq § fZl}³ªs;'|rï:YÔc¦ÞBÛz­öþ‚U(¥ß%^K š² YêμІ¼¿¿Åv>Z€ÑUÀ9·‡ì­ »°Ü¦éãàF‰¥{yPÏD¯FŒ²Ù_!´e,Ù~÷`¹~Àº Èúƒ5çwßt r甾sä3üzQ4ÄÈ_!1{ãÏ¡÷Ó ·Á¤Ý†îÝl\Ìœí ··lOfÏP»{m6#Ú”feÒº®Qß®Uÿ%ßsÔÀøkÕ’l»‡ßp~¸²j»—E3½ÆÌN˜ô‘ÒÌ špo Ê·Á¨ácéÏ ;ª¶m±Ò¶wó Ðö_Iu LÆ ˆSÒ²#õ¿¾ôý‚”™Ò ˜ì[XA:1'ÎͱÆHŽý†á ì ÍÊX.ïÏÊúÛ..ê¶ÄüÜ‚A²ºë&í9iµÇ0õHÆÚíž²¸ ÊÇDà¦ßKaóéÚTÿÓþ¼âŸPõVDR{Ûá³ÃçYêFe²iõ„†S˜ýg6ZícY°‚´÷§gM ¼¿!tÜ^µu0Zç%Ŷ-]>6)LBsW¯m\ÿì Ð+¨I¶~Ø6→Ìoff5þ3iƒñ£…Á»¯HÖyÃëFâÑeö"NíÚ±Êë¸@ÁØ º™{¤3ê~§$!,ôb’~,¢Óº>„¸ûuˆ};ræGÁ4§A<æpÚÛƒVôâÀóªå~ˆ4‚í®K uÒå<3lrnp¯;p¿Õ™¯)ÌWí¢ýû‹Ç ó˜‹ÆŸúiÉvµÄÏ) O&€KäBD-±"Ì®ú³Zèý §y™øzygÍïkÁ`»ém¿J‹Åz*'mêùæÖˆÅ ž’ñµÅ‡O‹§òr§Ef ù“€(KJöw]iWvP¡% Å䃓҉, G1óEXZŒú>Ñž€ æÉ›ž %]¡ß“ØZb1ºÇIƒHÛ‡Qœ©S ‹™‘çoW¸ö‡§‘w4ôeÀ\R# ÜoYÒÂâ®ëM\Pä0Êvþ»eÓŸ¤¡þK—k¯žhÏØˆˆÌlXKÎiR꺳H-Aš$á¥g–ÃJÉ“Õß=q¨ÁP‘§‹´bJîÔ¨Ÿ÷ð"˜z¨*5\¤Óvèñ‰gé;‰ÇöZT–ÖZÑ>Ô‰Îëƒ5؈{O*ÿ@÷rjyÞ»[æC Ô&dDì‚Wü6ø=1ËiôŸ~}Ñ3/ Ê(D©ÂS‘ËÂí9Qíh¿Üýï¾ØHëQ›/´oÑRp »m¡ ö¿n>³^‹¾3? ‡-_¯|—0'$¾Õ4±Ñ¹aE°þlEDáÝw3Ä“ªT GÞ™"$¶ÌHä%<³pѳ‘¼$’|Ö.ðõõX™“ËðîçCÀê\ö–üZ}=>2_`}£r¿ŠçÆê9´•¢IÁ¬ Êèg¢ßFýw.ü ©¼åÍŠÛô\ƒ52¾JÄ¿P‹ë FiNh'8ÊÃ,å:9¦ª+ÞùMqÄ# 0²7â›z„†K]ú¾¿€U¶ß:aÇi­/„mØcx9éüÝû‰h†Ì…:Ñ"›r‡ºX5{÷?dWlfc»?xtÍ{ðÔÁmxÈ\£ÊDV„×YH2zúcåÈ;,æ¸f yÙD jmÝAFtCÂÅÐैF÷#„7ív(0`µ'{Gp™ë6™ÏŒ¯º±'wé†Êžs~‡Qrõ­Žp¶CPÕVX[¬È¦ÉL¢Ú§ -h^R‡Û æŸ×/z{~§“Ê~«”}ýêáÛT£–¸ÌŽú í‰v\9¹ó㯇ˆ!{”Ûœ>ÿû¢}Ôø@J0ï)¶&¬ý„Si6µm/Q«‡_êŽÚhŠà“8ÇduÈOêÚŽ¨lÐ((ß?¸Ø{à®YÓA”® ÈËÑ2W.Ûà®”Âaý!Ô— già5o¬ ºEK†Šaã¸Id|™íXKÌáX'¯#Š¢ˆŸ|EmˆnÉB›²7ÄÌ/|íΆ«4.3ù²ÓªŽÃT›œöÝEèK¿ÇåîÑäƒäy’ntÚòÆÈn&Å#¯Mð1ä^{ »¨ÑX ÉhwU××Ôö¤”?2٦⥟ø´¾Gœæå¨ë–†³v‹éÌöîr R_ŸÀ‹^u×>„f’ÞaËÍ­öÁø‰OxR0F—E=†Õ6 j뉆b9®HqPVªÎjáPVŒÁköpOML×ȴ*ù/ÓÑïn^ù—ÝØëéR½.”a_)ë…À{À¾NÊ»6øìiD²˜¾³„„OCj®7¸_Ø«h‚ž•.lÇ8¦T‚ÞäB£ú1?¯EŠý©ñ5¨¶»­¬´9´”$]ÉӲܦz¢t~ÚÁsp¯<€c”o3 ½9²BÝqA:£CߨY%ßH¡ÈÓr ¸L8·q}&€e·½lãâšÍŽf$zà^Í©ó? ÓF™xdÌ'”KÍ$D‹R'Œ6mö~‡þ-\ŸôIZÝjmÈdÜȸÔýà~°}~¢ßLõ§Á3dÕ»·á°-=ëÕ˶'µÐ ÿ«÷–Äí•Gœž?eBßxªB’å·W§¶ IbÁœÙã»îea9ˆ†*M¥ùú;SDLÚ¾5: ãUÞÊÃ2:ì&=¥òÍïÆãî­÷ÜdT¹å~\ð¯a®þI„DÂô¿/Á!œc Ç©YW/Ûj±¢›hMj웿óWÙïõ] FÝÕø çó-viÓ)à?¿ºüDaÕÇ'oÖíáИ¦´¼g¨0päçòø²Qú4…8ÛkÒñkW…>³m4S)çX{ÎH& ýâÑ=ž±fi#œL@¥ 2u3± W a|{mТ1€ ˜3­xjE™xJûg6]äöW¹bß/ü9D£VA’׆¶·°ÃA®/þf©ÇæÁsäÂ]O¯dqC8M÷ö»lgõM4U7%ò¢QÇ4ek/kØ„fîñƒ“Ÿ'­Q0vIvÒKíGy¼mLNÁdáûV”+í2½í,i#3‹)ÈãÛ¸xáöjÇnoK’Q;ñR¨æPhÝ¥¶üÚ&rù ¾ËM`¡êýÉšWÆžµX.tVP_Ø:G¥‡þ¤r»D[[´ìÕÄs…jÎ[Úë¿ë¢¦@Šir;­`eè[Œ®]Øz>v0²§ßó'û…ÉHq¡9Â¥³•Õq»NÆ—¥Úî~DŒ-^Ä;è|òÝ: 'ä ~¾/ŠFMt Ù„pvqH#½¢³4ß°[Ö=ý‚µ¨êgZ,±Ýñ–=w l›ñHl`léê)•èK0=´Ë—h™¹ÊGw#Æ5 hÄyJúcbDò 1mƹ$ª_÷#–Ï‚°sOMÏßê5ÏÉ9/¤¿è ³ƒ«ÊÎ a69ì^ ¶Ÿt37  =çŸ+‰ÐÍ‚ºô•æ’Ú鯹 oÉÃUÁÀÌ—jtyß6,i‘n‡ ¬MÑEeÔoñ]¨še7Ú±OJ–·•ü q‹<Ä@އ1½”lÄ_zÁU +ÀêXƒsïš9zŦôO¸«ÕóšÕÕ¤s4ÈÄžtS-ÜöÞM™î'Ä5¶·"ý—Ìp‡Ü»’ü ¶ nkl‡-h”Û=“4S©¿_ïæy·tCÕ³C‰ö[Š¢ÑÏ‹¿£Ø¶TCX|!íôê~ð”Ëfäúq¡¾Îþy›–}‡O`úLšyÁ¯‹:Ýq¼‰ÅÔõ-5ðaŠp0eY‰‡F•êa©ð’ŽröµîÂëôäûqo˜×Îv†J$¼G(­ÃÑä;èׄ ëZ%/òý ‚gƒkUÀáóYL¶b“Ûo])Ÿít$áâL=x8÷04×½'¼{ÞËA~¸ý|$ŠÔœÁxžƒ†Ë¼áåHÙ¯ïùlñd6zë‹ii`É'ÜÁ”9È¢kÄL°3=±÷Š’—0ñ…BÀÌQEgu…òŽå´aïäÉ0Wƒ$Á§ÈD)ëÛ·là{ߢ¬¡`–±~§Çrò â¦ï»‹XÞÀ¯h¼*æÀB7 õŒö;°~Ý4ŸhóZÒqAgÒŸð줦_r£›.# '±=Њ$¾†¢€'E•œõá”X|宎›ÂƒÓçBõGT=šV|l2g+v¥!J£|83 ò]ŠL¡5%oËí† IŽ.{Új¨K¿¼ê†€Cþár¬¨Å§íˆ˜Š.É“uÝ´ò–e¾+î°‡™ÆOG€?H¦aº58ßôTaá£þUmVVóKo):qœ•#ÖÖ:k-6h³–†EŸc¸M‡JKðRE³”}Cµ\÷IðÄ­ëõ]ƒâZ1á-î¹9_!v±§ËwXH]ã`ôûé"z§ª·~|hœ‚†Oˆ¸L´/­dÕº9äí"˜ª…§ûX‘å«)Ø©= ,+Å—ÉFôU Æ-çb#DBõ ‡QÓŸQ¿Âù1ÉnSÝçt³}qÎÄ•!Ù|‘®é$ÕèuÀÿþ1+§jØÐ{Á(í"ÅáÒIOž4D÷²CÕëð×"¼A*ヷü~NQ‹‹S†ü¨îμÀ¤«l»i vëOb] %÷_DõícγÌF&Ø™‰à™»µirKµó%íãÏVuš£Öa+öÄkì€  È›"è4úµúÈî%ÄE?+5*ðrgΩéíëÃ&ÚC„+Ï-­ØªO#ç?¤–rؾ%ØyK rhîÿÉyaý³‚n %×aIÈò};¸×dë:¤-c#R³üðŠ Î{ª™ˆ. ¶{I‰àsâå+XŒ (Ðf—‘UlìWD²ôšï6îî‹?äƒR§~E`Ä—9XÝñ'DgÌemöPÛšVÕ%«E÷o†à8x+!ƒ\ö…SözZŸæ}× !2‹ÃF°”ò¸ž9,}µÚ}–V–׋ÎJXÜÀ±¹bñÀ28þB&ôKKÅÉ÷êèm]xÓÆ|Kªù^½`V­¦QÖöÅÌß¶”0ükžÝKÞœuˆµ·ØBû8 Ï#ý§lå=–q÷©`˜ì;—B‡F^áæ×/ø)†ôúk·¤?Hˆ*ïÂó¥œS`²©•µˆ=X6%°o/k§=´{Åsv¨â™7-D0ð?¯œ‰§9}±%ïn)µá^CŠÎ•¡†w­â¯…@svedMîb¨h|Ö÷áIA8Ãôg¼í& øìNùpÊÃß¹„3ªõ0ØÏ¦\d´jXÍ£ 1¬*üÁ¡_"ÕóÉÊ2¡kıįР²¬Z¨¦£^†Eõ1j8†Õ¹E(|Æ5þDCÐaÍ ·+œšÛ`nM»‚:Œ¨s:[æ!"Í/^ÄÈ•œ€•y—ûˆšÁÚÈe“VôµÍuÇÐ{! ;˜!>‹—‰'ò “ *÷×FË=/¥ÒÃÒ ÌÒYýãÒFêÝ#­Px§«Çßå(BB¼bp¯ëÞ-0²Iã`Ö¿ %‘Uuöš–¨BòÐ9,.©ñýµ?ü”ψE#®rïÈ"lª--‹ç92¼«&6O´„ÀÏÌaÆ*QMç0ô[õBÅcÕŠç“ü6¨:ñ\¨°ÓN¢ŒêĈÚïÁôÔé’yOºª×ÏO¶ü-„Á½Í>^:i@‰T®pt$ѯ¯Zó>y]òýùç>±¿ñáÎUFJR‰hì«×‹)ú„}ÙV*( )¤‘vriÝмÇÿ­©^ÆÓ+³'S ‹]ìHb›ËBš¿%£/æÕåâº$†¾!ëQ~ý÷Yj‰¨µì£f˜Lã°ç"N]µL”¦Ì/‰¨·±ÛôìO¨Þ|Xx¬3„›dç'‚¥"TQÅbpøØ­—ìÇîÍÎ&%˜ 99޵y¼îq7Ïóò}0êöâs¦5O“MVµGF‚±AÎ7ÛˆÜbMEžð<\$ªÐù;‹â){Ëz­è‚™êÈ g’­ð² mqòéXüã? ­ÿÄlÀ(J™/ÓZ ì¯/Õ±øu€udm$þ ¯’!Ë”ßl‡j­½ÕV9ý*¦yâ.d³Æ$æ?Bt\¢Cv=Éä”õE†Ï͇ÐôÁ˳íÒÆõõôÙÀßË(m!å–¯ŠN¿¨ž ¿mmU/-?÷Æs¸n¶‹Ó‘¸v4ºüD‡š‘±{©úªì2CØ’UE•ß²õ²Sjct bÎÃsõI<¡qÙ)½”ßœÞDò‰µ¯ä>V•RJ·~ÐÖ—<âS›³ÿÌ´êã©ÚŠñá<V~¨é8„Áë°õë×µ 7 êØÛ¹¤džn rÈc?S‘”õ~$"wPA^ˆ¡E'¢ô4ehœÕ™åhfW\¢ê¸Á­Xþº¼‹î¤,»8pd°Ú #Ñ©ÊrËÚÏý¡©odáÍáˆÝÍuù©üm¦Á.™l<àµcSwÇe[kÍi« :ö ‹®c¹;Þ²ß[†ùn¢ëœ= 4Yë[,e¯bÏü….eî ê—„÷V”¢*•læÀû°üaÑ¥‘÷'»ªóó!–£,N0=ª»Œq¤ÙÌýAƒVÜý¥±ªŠ-RÐIʲ362;N[n®ˆ¥Ú5¬c,×§3F±#¢3¶~ÞC'm<4äÈÑ 7A éþ¸cmøaêG<>Ò9 ›ãZ,Ä‹=pÊ×&÷/ ±€ ÓÝt[ U 1ÛL2™d0Œm¦‚¯8þÄ/ÔŠ»‚Ý¥Ÿ‡±:—ÃCz…cS8¶w¿FÒw©Žå„-?îö¦ú¢p#©ÐÓ¯~ÝÕDÏœ3 ¼C»z?Û—‚ÞFw.åšñò¼ÝË4L˜GgP©Ùxõ'ìN‹3þÈ ŒYÑØXFÍä¸9½ôZu3Þ²G ÿL[-H ¥‘rQ±`}éí ¦y”Ú¼÷:‚§‘½Þy n.'”4mˆÄEÑpÐáÑÁ;³Ë»ê£:–x÷`FŽ!qÑ>{ñ•‚´êô\( ™ =0tÇKÕÆï‘µc2w€ì`Kå…y=™€²ÇHµ¸ÕŠ[EÁÙŸ ï쩳è¹á5®¬B>üŸ‚s·R«|`T¸!šÖ®jtêD›†ä+JÜ—™~Yí«œû}÷àµhRq;¸4â×èqIÈ>D~úô Nx!º¦˜,¶(Ë%î*fŽ–•ðª{¶»2õµÉ‹ë‹#Í7Nu’Ÿ–ܧôÁ¯§Ò¯yÐèMüèã« Á Ž©téU4ò’x'äï±ð·£ÊbÛE“nš,~ÎKLÕßf´Ÿ…@ ékàji}’ÜËgÒ£)}-î%g´8Œ¿î­Ë8{߇¢LTÕ)lKQ¸^<÷†¡ˆü»1k¹ƒu¢:`+ó•&‚aÉ—m>`bÑîW³W ¼ n…[ßÕ~©‰.b<¼…Íy‰î›ØKQÆl¼r#¸c~W¥'0áržKV7%p„ŸŸô&2týÛsøè'óºÍ®˜…è?ĤP6ŒÄ/Ý¡ütQ´O/êy=Í\Ï´ ÜD® ±O<_ödrR!b;(ì¡ÑOQ#êxÌ9V:évŒ„ÆÖOî§îïT“"ÁóQoŸýaÅq$fcƒüÆ É3Ç::ê a㔾K=/ç0·ÖÌý(û:‡!‚„J¿+Ä®S"¥“L}¥ñY˜¿90M47Öª|Í0;sû…T¤?h<Á¤|u3Ys4ÚJ:4c)™ß/˜›/qTggz´Ÿ> ³I³­®vgÎÿbÆÓwé‹ÐÔÖZ»u¬; PnÆSŸÄmƒ#Òu¡¶±—]Û”V·žFcQ:1YVÑr¯p 8À×Q R|é/1Õö•Fcv}n-póˆäÍÐ6ÞŒ'(±MûWµœl­#Òºb»B=DܱÕÝõ¼3(C‚€¢ù ÈK >• oŠ®‚¶%•k(Ôx1é*P øÓH9$ÅÖ<6ôž„ozG8vþ*Þ`¾8ÕÅÌÐS¡<`éÀ’\)žÇ¦žðäöt/€Di©|ǓӕQju»²š7³ym[pä|ÌÄt#ž^DáÖ¸ÝFkqlOŒn”—4è99ÁI4¸ÎökâÒèUM²½iH÷UáŸí¿KîæåÅ»gÄbù”JÈh̰öDpe-×BÕ 1JŸ<’dæ£*a I(õ^ÞÕÜ©-ÞúÍ“³ð÷ÖŸ–æ8(øoS g¡|ü‘žöÑS6ÚÒ›†åñ;fùú~r^«²QT&\»êƒ\jº- ß‘·÷¸pçE@®a¡Qµôê׌¢ç'ÂØ÷éº%.먆)á.0ÿŠeî¹è~(d^J—©xð0ö'’®Ëu‘-ä!Ƥ•û|²s+žQü-æ/¢ûdÁHú¼²é’®Àoê•|^iè­«jƒÑ¢+ŸL¯Ÿí>¦×ôÇiÚeSä{g^”Œ›†ç\¿ä=©;2 ž¥z ¡RcÑe ÖQS·ãͽp6ßcb\„}Î>‘û{í;¶î5¤ž)`%žãí§ ¯ÐĘQGH†ÿ^cÎUZûºÌu`3™.†'5~Çòz 7ZÀ§_Iÿ.ÈñœÁCÐÆº4 @«Ðÿ¥ª:à‹ì$cáÀm~kÙbàM¢W'_×EY§¡w(KÁ'äý-ß ¿vØÕÒ[‡sN|Sm'Ú¬†OÒÇêv ±Ó'è C!üTô™Á”Ì›(})z«Q)¯]PWµ©’2M3Òª6Ifð4û2[¯•VÅ6¬ÑÞ×QÉÂù³{Q¼òßRkˆ§¶3w3¼ ù£d9¾©•5|uþ)¸]b©l Ž3}lˆä ž\NHþ!m±®÷€×Ÿ1RW&Õû¢ÿ\é:¾ÈÝäh…²³2w¤ãO/ý”¼?`ÆD æmˆ‘a˜û…¶î[ªùzrE²hŽ“Nõ•Ôº'PÁ·•‰Jtqñg¾Ös,ü‘œ‚§¯ns+SpÒX!~š”¡Èú8i#•^´TÎÄM¨Òãúáï¼ ·­ÊæÅMsr›º+=ÔúÝ>Q Ê@¾¬sSrrß^£Õ“­z/ìq|æa"‡mkx<ßK+IÆû—WR[ bøù7¶å'‡ð‚G®w–øm¤ù@I(s·pQ¦/²–ºQçC¢0çs#–3˜»ýе*ܬ1Ü-¤Êf'{€Ü—/\¡ßÿ„öˆcéh,SÅ–\ÎôG"ˆ¿ö " Žø;á‰zã®t ö“§IYèr—'Æp» pùkè@Z›a±îÔ .Øì÷mªypl•€œ•êÄRÙÈaé»í3g½I·]I¢%ë%Ô2Ãö+'ly¥rÕjàšZafÆ::ƒ¯¬s³ªˆ xC¼˜™þ njL½d^”“Æ$¢ ^ÊFú)éã¦pÛ‡ÎË@Ö´ùòSýÒð0ÄÏóùJ¸¥ò›bnƪs= JxÉá[Úú%×A[ÅF30#Ü ¼åOfYîdY5zð1À~ì ºÝUtS½ø v9ú,Û~µÉÛ½°Œd3‹¢îïò6Q‘kaeÍÙè&æ$$<ögèeÝ›œm€ÃÆ 'åôlÙp¼ï¢–Fr ÏŒàæAè”ÒžÙrP¦‹m¬‡0Â)Dø83 aʵ¸ïn$Ž)¼ät< ¹S)ÓÁĈן:@ ‹0´¨=k³ÄW‘D{~KdÞïñ*o‹ ´Ðþ\M¢  FwYÄi²vÓ„¨;®9 ¬cû)6g8”´×¼®Ÿ{ÔPŠž`º?e~óJF¢ÁŽðÍž_-K³ô Í(@Ñ¥²Îr‹LáŽ.×cøžvÚ¶yOy þª(âÔɱãß*Sõ¿óáGë…¨V²RÌ飮'Y]™o4ï/»÷ ùmQøß´ÕgþÒ½È"çŸ…íÆƒ¢"N6\ü$ýèìT÷‹»Œ§‰‹9~£D}Øa¦~zû–þí݆ †2&ÆÝS0èGlL[®ìö®^h¨¼È£ÇJrkÝBù €„žcUí!f€oÿŠ»¶ÆY@q2jpO}›r„JwÔE»œ'Qʼ»ˆUÃjoTø’‰Ä™>´ò—‚EI}:biR»…GZsƒLÒëR¤r÷‹êÅÔÛ¤]ÂY·ÔÊ õšD®D˜<´½ ݉ΫX€^M˜ú3— ‡øÇ¨«Èãs0ŽÉOäo²C3Á’bvÛk”›£¬Ø,3®à ñ•…ª.þè/à¼*&ÍQÿØ?E5 endstream endobj 213 0 obj << /Producer (pdfTeX-1.40.15) /Creator (TeX) /CreationDate (D:20141015073613-06'00') /ModDate (D:20141015073613-06'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/MacPorts 2014_1) kpathsea version 6.2.0) >> endobj 176 0 obj << /Type /ObjStm /N 44 /First 374 /Length 2629 /Filter /FlateDecode >> stream xÚíZYo9~ׯàã./›W“ÄWìÄv²¶ãc‚`!Ëm[Yrtäúõ[Å£E¶Ô¶äû´˜Pd“ì:¾:Xì1ÓŠ„iM¤2Т¸…Þk 7°&¥†#L)p OF.Œ‚$\sØhJ"˜–f ¦™-ˆPöXN„aÀÀJ"‹—Jàhq`ˆ´ ˆQŽjÁ‰RÊÂ@¥-ƒAIÊÂê/ )¥†¬ ¥-HZ`.ˆ.áˆúh­Ð$Ú€øšS0I šŒqbÂÄHÃ;%1¥@‰ÑNab¬Dpb!p&–+Aô²PˆU¥ɉ-K Û´* ã00 T—ŒX«@­¾(*€U0a`ÄaÄ™í|R¨,4Vj€ è®c+Üo錃kdÃÜS´üçÖ0T~,¹çÍÀ³Nè;ž0â~ì‘~|ç©é ØpÞß”v ôÓN|Æ16'Ø×Q?”/Ý{Ç Öã³Û‡ó0qq¸A/aO”+ʈ‘¦‡^x®ß>¦ÈjÐ[ôä{ç…Ì¢Xi9Ï Â§"Ä1RÖcŠ~[Bzž5dé}Ç­ /öÐ0úÖ1ÿoÿÆ‘óNˆkeäoû0Ò¨æó"„kë9Ï1¡¤•M}Ž¥Nß cª‹8…pUJ郖‡Ú<–Råp‰Œ‡tÔT0zý^žü–¥¢åG˜‰GX ¥'Ëaæ)]ÏC2)ß5cÒ3¢¬V«<µY±Qw>ÇŠy1"3kÅc3öçÔúu1ÒMÚb*IM¬çø|îüñG‡žþ|¨Ý §ÛÕ¤7î?LGãŽ{>êÞÃÊÖÇ·{GÛ¯¶÷Y ƒîí„H¿cssôƒ|Ú€»Ð–¬€ÓL+púzÒ«†S¸ÁέîÃ^Õ¿½ƒG#:ÙàÚÃÅýiwÐï½Þ*˜‰“iupuèExK Dîºã“jJþAªqtýO/ÁnÞc·ãΟ®¤ÑñîÁ_o7A£ã6…d*ìï(TDuJÛªNõuÖЇÁl’«¤×Qé`oçøÃ{Péä²M'¸ùnX¼s2†^ æ:‚Ï3’,ZµêN¦`¦É—ûîôŽ^̓jš«g×QïòøäõÉÉ«£þýÕlr8llŽ×-¶`; B¬¦4KLÇ3Ó)ÅS5yÙb:Èé©–6Ó’öè5­è ½¥w´Oôžéˆ>Ð1Ð)ÑŸ™Ö–­£õÛÝÓ‹íÓTëãêv¶±ócZ ¯ÿcT‹¡F#,àÀ†e¨€ä– ý‹Tû×t“nÑmºCwéºG÷é}O?ÐczBOéGzN/è%ý PŠÞ@»SzE¯ÆÝ^5¨n¦~4FÊnø¥šÖÓ0ö =Ú FCø½¿ï:´(!nª½A÷ pÓÿvÍÆ`ŠÛqÕ†`’»ŸwÕ,ó7ý¬3ì+0Ñ~èCw\ O7ò!Á &!ѸФ_g£iu}5ð¿m<©¾ýÉ ;¹{OïÆUE§ßG`ùÙðºOz£qE¿ÑïôýIÑ_Õx”{„XÇ#.v>ž]^4=âýÕ ¿ÜJæ]Ak¹Ž+HÝ y^;ƒH‚c& †+g¬h¦5ð³û+@¤ë#¤ z„Ü!0ÍüÞ ¨µÿûóÓwÛg¾“î£i„iÈ#îp8µm’/9OÁs5xœé¶D’’<% £}z˜…йK0€dŸÞ j4>Ÿ^ÐXë̸¼¼Ø~³—¢ÎÔ††Õð[nQ@}¤D‚ËÑ`9¢ £0¸XžWöèƒ$Í)M7óÙ OIà/{ïf_£ù¾ï³ë<¢ë0^âµ³Í÷'G‡^m@³ñÏ“ÞÝ£nX–à†:|ÅÂïÅ©²ÜYvn·åsü?a­Rè·œ¢žú´›êÉ‹µŽ¯ó£×‡g'™žÇ£ûnKuÂ4†[Ðî뉚2w°B¬¤¦ML–2×ë hzºF×ZÌ_ó¸[p§ÑÜ‹âQÜ#Gl­ô~vþqç8D$`u4²‡Õu¿Í7 `&YÀ¬ÌÊÔ¼¤ÃÇyP¶5E¥]Éò¨Œgý¾‹Êô¤?«ãrœ ÇÁ<"Sì²(LŽÑþ¶[:^¬•úÿ½w±Û€ö‘|‡Ðr¡å2V› ZŲ|W®ï¤z¢Žzò^ãK‡òÚ¥Òrƒ<·6Z)s®gÊõέ³£ËÓwKL‰¸·™Óâ¥(kš³Ì͉IvÍJHÕ7T“T6B³èÜxgɱ…5³KžVù„þʱZrÖì {£ëþð$ïßÜT`¬^5!Ÿ¸g×ÿX&×Uì¼#BÇ‚—›šu©ýëJÞUÅÞÑ‚#×ðuÚØùß»s<ç…èÞM¼:·‹Þüˆ”,”ø¡š'¥ÄëÃ’`!ºœÇ 1< IB†X‘E I…I¬Î2™7Ïß™¾.šh~§!Œ«ä^óyÑ«ÁfWS÷ˆ“à9›ÝI…+‹[² pÿÿOwûãÉý(ðƒnòpÞ¿žÞMàçËcê1î#Mæ¦É/5s<-jæb}æÍO î¶hrO™cXÖÌõúÌ[?04¥àM)¬NÅà)ÒïÑéþamÉVùÐR.@•aŰ  !½—6¥[ða¡Z!d/!]뵯)Ù‚ƒó6Á̋ضõ– †÷̶҄J&^B²ö;JS4þhF22‘¬x ÉÚoMÉäêÖ|7{¬zoÊV>.OBÀ¼„l•¿MÙÌê²Ù‰‚'깆|¬X]>µŠ|º·ÕÊ·Ñ ËÁ<±¿Êro¿ë_C1åŠ0g8" ßIß¹‡H7ùù9Ä¥§.=!Å}çy•dâÔgQ÷Gü±%°çÂ<Їy¦ŸÍñ@‹Z<ð@1àåóy `1Y†>ÌؘROñ­<” f´JzóM!#/Žôoš@ˆ‡^²@p™³luÁãG·O¹öüÀˆ endstream endobj 214 0 obj << /Type /XRef /Index [0 215] /Size 215 /W [1 3 1] /Root 212 0 R /Info 213 0 R /ID [<6CA346B8162E6A7AC017CBE2A4AA9169> <6CA346B8162E6A7AC017CBE2A4AA9169>] /Length 610 /Filter /FlateDecode >> stream xÚ%ÓKHaàïýgÌãõx/3ÍÔŽ™–¥•fYi¥v±ÒÒcêÑ:E ‹¡ÕÂEµi%­ZTD7‚YTˈ]ˆ6Ñ"ˆ !ATó¾n¾÷Ÿo¾™óŸùÍÌþÁÜ_sfÌ¢ŒA))#%p§i­Š- Vz+l.k ©lÑ€tâ‡kÓj.'KI/¤$Öy7¼­«C·EÂ껪4’I2`=š²Œ1›dÁújÔ—C¢°øÅ<’ |¬X@òaÃ_5`9c)„%>j­˜TrmY;q;|¡ñf Ð#‹ac¹Š‹I YB¸/‘2عù]㌔Ã&/‡tkM“+`ï'õ4 ÐkTÁ>_ÓŸ„Ï HÜ×m«I 6S«–c5YAjÈJR ›»¡;êÈ* ¥:œR÷LkM¤¨W\CÖ’ÒHÖcMººžlξÜ,ÒÚFÒ ¼¾£¸‰´†ôVÚƒV²˜Ž«e+ÙüH*¶‘mÀoÅ@?a;i‡KIUËN².úF±“tÀ•Œ*î"]p±—Š{Èn¸†‡ŠÝd/\«b ÍÙOöÁuújé!àz¿)$½p#éŠ}ä\ò¹bœôÃü¢x˜ ÀÑxmû„ÿ£–†;¥ÿ22JFÂCÓúÖŽ£$IŽñ‚Á¿úV-ž •„ÇìüüALƒ›jW•̨ʀ{wAU&ÜìqUYðÛTeÃ뿨* oâ—ªxתʅw¯OU¼Oúh‚|øy¯TÀÏ©*$üà‚ZøWž†o?uÉþÄ~ endstream endobj startxref 300416 %%EOF pyutilib-6.0.0/doc/workflow/SAND.tex000066400000000000000000000141411367314503500172540ustar00rootroot00000000000000% % $Id: SANDExampleReportNotstrict.tex,v 1.25 2008/05/22 21:01:20 rolf Exp $ % % This is an example LaTeX file which uses the SANDreport class file. % It shows how a SAND report should be formatted, what sections and % elements it should contain, and how to use the SANDreport class. % It uses the LaTeX report class, but not the strict option. % % Get the latest version of the class file and more at % http://www.cs.sandia.gov/~rolf/SANDreport % % This file and the SANDreport.cls file are based on information % contained in "Guide to Preparing {SAND} Reports", Sand98-0730, edited % by Tamara K. Locke, and the newer "Guide to Preparing SAND Reports and % Other Communication Products", SAND2002-2068P. % Please send corrections and suggestions for improvements to % Rolf Riesen, Org. 9223, MS 1110, rolf@cs.sandia.gov % \documentclass[pdf,ps2pdf,12pt,report,OUO]{SANDreport} %\usepackage[usenames]{color} \usepackage{graphicx} \usepackage{pslatex} \usepackage{mathptmx} % Use the Postscript Times font \usepackage[FIGBOTCAP,normal,bf,tight]{subfigure} \usepackage[dvips,light,first,bottomafter]{draftcopy} %\draftcopyName{Sample, contains no OUO}{70} \usepackage[authoryear]{natbib} \usepackage{listings} \usepackage{url} % If you want to relax some of the SAND98-0730 requirements, use the "relax" % option. It adds spaces and boldface in the table of contents, and does not % force the page layout sizes. % e.g. \documentclass[relax,12pt]{SANDreport} % % You can also use the "strict" option, which applies even more of the % SAND98-0730 guidelines. It gets rid of section numbers which are often % useful; e.g. \documentclass[strict]{SANDreport} \bibpunct{[}{]}{,}{n}{}{} \include{macros} \include{example_macros} \widowpenalty=3000 \clubpenalty=3000 % ---------------------------------------------------------------------------- % % % Set the title, author, and date % \title{Managing Scientific Workflows in Python with \code{pyutilib.workflow}} \author{William E.\ Hart\\ Sandia National Laboratories\\ Data Analysis and Informatics Department\\ PO Box 5800\\ Albuquerque, NM 87185\\ {\tt wehart@sandia.gov} } % There is a "Printed" date on the title page of a SAND report, so % the generic \date should generally be empty. \date{} % ---------------------------------------------------------------------------- % % Set some things we need for SAND reports. These are mandatory % \SANDnum{SAND2002-xxxx} \SANDprintDate{TBD} \SANDauthor{William E. Hart} % ---------------------------------------------------------------------------- % % Include the markings required for your SAND report. The default is "Unlimited % Release". You may have to edit the file included here, or create your own % (see the examples provided). % % \include{MarkUR} % Not needed for unlimted release reports % ---------------------------------------------------------------------------- % % The following definition does not have a default value and will not % print anything, if not defined % %\SANDsupersed{SAND1901-0001}{January 1901} %\input{MarkOUO} % ---------------------------------------------------------------------------- % % % Start the document % \begin{document} \maketitle % ------------------------------------------------------------------------ % % An Abstract is required for SAND reports % \begin{abstract} \input{abstract} \end{abstract} % ------------------------------------------------------------------------ % % An Acknowledgement section is optional but important, if someone made % contributions or helped beyond the normal part of a work assignment. % Use \section* since we don't want it in the table of context % \clearpage \chapter*{Acknowledgment} \section*{Acknowledgements} \input{acknow} % ------------------------------------------------------------------------ % % The table of contents and list of figures and tables % Comment out \listoffigures and \listoftables if there are no % figures or tables. Make sure this starts on an odd numbered page % \cleardoublepage % TOC needs to start on an odd page \tableofcontents \listoffigures %\listoftables % ---------------------------------------------------------------------- % % An optional preface or Foreword %\clearpage %\chapter*{Preface} %\addcontentsline{toc}{chapter}{Preface} %\input{CommonPreface} % ---------------------------------------------------------------------- % % An optional executive summary %\clearpage %\chapter*{Summary} %\addcontentsline{toc}{chapter}{Summary} %\input{CommonSummary} % ---------------------------------------------------------------------- % % An optional glossary. We don't want it to be numbered %\clearpage %\chapter*{Nomenclature} %\addcontentsline{toc}{chapter}{Nomenclature} %\begin{description} %\item[dry spell] % using a dry erase marker to spell words %\item[dry wall] % the writing on the wall %\item[dry humor] % when people just do not understand %\item[DRY] % Don't Repeat Yourself %\end{description} % ---------------------------------------------------------------------- % % This is where the body of the report begins; usually with an Introduction % \SANDmain % Start the main part of the report %\lstset{language=Python} %\definecolor{light-gray}{gray}{0.9} %\lstset{backgroundcolor=\color{light-gray}} %\lstset{aboveskip=1em,belowskip=1em,showspaces=false,showstringspaces=false} \chapter{Managing Scientific Workflows in Python} \include{workflow-intro} \include{workflow-doc} \include{workflow-disc} %\nocite{*} % ---------------------------------------------------------------------- % % References % \clearpage % If hyperref is included, then \phantomsection is already defined. % If not, we need to define it. \providecommand*{\phantomsection}{} \phantomsection \addcontentsline{toc}{chapter}{References} \bibliographystyle{siam} \bibliography{coopr} % \printindex %\include{SANDdistribution} % TODO \end{document} pyutilib-6.0.0/doc/workflow/SANDreport.cls000077500000000000000000002051301367314503500204740ustar00rootroot00000000000000% ---------------------------------------------------------------------------- % % $Id: SANDreport.cls,v 1.83 2009/04/30 23:15:05 rolf Exp $ % % We start out with the standard LaTeX document class "article" or "report" and % modify it so it conforms to the Sandia Technical report style. % The modifications are based on "Guide to Preparing SAND Reports", % SAND98-0730, edited by Tamara K. Locke, and the newer "Guide to % Preparing SAND Reports and Other Communication Products", SAND2002-2068P. % % Get the latest version and more at % http://www.cs.sandia.gov/~rolf/SANDreport % % Rolf Riesen, April 30, 2009. % % % 06/14/2002 v1.01 % Make distribution list wider. Spaces between area codes and phone numbers % % 06/17/2002 v1.02 % Use \raggedright for main title % % 06/19/2002 v1.03 % Set tocdepth to 2 to only list sections and subsections in TOC % % 08/07/2002 v1.04 % Added a Makefile based on one Mike Heroux provided % Allow for distribution lists that span more than one page and % typeset the distribution in two columns % % 11/25/2002 v1.05 % Some changes from Daniel Segalman to conform to the new guide % (SAND2002-2068P): % - Adjust top margin of the title page to conform to the MS Word % template (this may or may not be correct depending on your % latex/dvips initial setup. Use texconfig to setup paper and % dvips). % - Added the word "Printed" before the date on front page % - Classification category is no longer needed on page 3; get % rid of \SANDdistcategory % - Added "National Nuclear Security Administration" on title page % - Changed NTIS URL on page 2 % % If "strict" is not used, we'll number sections to two decimal % places (1.2.3) % % 02/13/2003 v1.06 % New DOEbwlogo.eps from Tim Draelos. This one is smaller and has some % incompatible junk removed. % % 10/16/2003 v1.7 % Using \ifthenelse in the addcontentsline command interfered with % the subfigure class. James Gruetzner and Todd Pitts provided a fix. % % Philippe Pebay reports that the color package needs to be imported % before the graphicx package. This class file uses the graphicx package, % so Philippe could not use the color package because graphicx was already % loaded when his \usepackage command got executed. % % 11/19/2003 v1.8 % Make it work using the report class. Put "report" as an option into % \documentclass[report]{SANDreport} to activate it. There were some other % fixes and clean-up s as well. Mainly in the table of contents. % - Changed NTIS URL on page 2 % - Added fleqn to \LoadClass % - Can't get the report title to repeat on the first chapter page. % Left it off for now. % - The table of contents formatting for report class is more or less like % report.cls. For article, we try to make it look like the guideline. % % 01/19/2004 v1.9 % - The distribution list at the end of a SAND report was modifying the % description environment which interfered with its regular use. Created % a separate environment to fix that. % - If in "report", list chapters and sections in TOC % - With the jpg option, load the jpg versions of the DOE and Sandia % logos. This makes it possible to use pdftex which doesn't % understand Postscript. % % 02/25/2004 v1.10 % - It is now SANDIA REPORT, no longer SAND REPORT. Central Technical Files % now wants three copies. See the distribution examples. (Info from % Philippe Pebay) % - Added new commands for markings used in OUO, export controlled, and % other reports not labeled "Unlimited Release". Thanks to Mark % Ackermann for providing an OUO example. % - In report style, the page numbers restarted after the title page. Fixed! % - Big clean-up. % % 05/14/2004 v1.11 % - Had to comment out a line in fancyhdr.sty for pdflatex to work. % Don't know why. % % 05/21/2004 v1.12 % - Added the options [FIGBOTCAP,normal,bf,tight] to the subfigure % package in the example files from a suggestion by Philippe P. Pebay. % - Added the CA and NM options to insert the respective standard distributions. % % 08/07/2004 v1.13 % - Use pdf versions of logos. Makes the "jpg" option obsolete. Suggestion % and logos by Richard Lehoucq. % - Making SANDreport.cls compatible with the hyperref package % - Added SANDmath.tex from Philippe Pebay % % 08/18/2004 v1.14 % - \begin{SANDdistribution} now takes an optional argument (CA or NM). The % respective \documentclass options are no longer valid. Several new % commands are available within the SANDdistribution environment to % automate distributions for special cases such as CRADA, LDRD, % Classified, Patent, etc. % - The distribution list is now better formatted. % - Fixed a bug with \SANDreleaseType discovered by Mark Ackermann % - Added the command \SANDmarkTop % % 05/20/2005 v1.15 % - A small change in the distribution list (D. Chavez in the LDRD office % moved) Thanks to Brandon Rohrer. % % 12/05/2005 v1.16 % - New org numbers reflect new corporate structure 9616->4536, etc. Thanks % to Philip Sackinger for doing this. % - Philip also found out what the newest distribution rules for NM are. % - In the example files, deleted a misleading comment about secnumdepth in % the appendix. Thanks to John Mitchell for spotting this. % - New SANDmath.tex from Philippe Pebay: (ver. 1.2) % + add support for discrete intervals % + fix some comments % + replace incorrect \RequirePackage's by \usepackage' % - Also from Philippe Pebay: CA distribution list changes. % - Abstract will start on title page, even with report style. Thanks to % Daniel Dolan for noticing it and making suggestions to fix it. % - Put the title just above the first chapter in the report style % % 12/09/2005 v1.17 % - Fixed a bug introduced in the last version: The \cleardoublepage is % only supposed to happen for chapters in the main body of a report, % and it needs to happen before the page number is entered into the TOC. % - Fixed several new and old bugs that dealt with markings % - Fixed text on usage page about marking commands. % % 12/09/2005 v1.18 % - Make it work with hyperref again.... % % 12/19/2005 v1.19 % - There were still problems with the hyperref package. Fixed it so that % the page markings on the back cover are now correct. % % 12/21/2005 v1.20 % - Updated the distribution list according to version 2.0 of the Guide % % 03/22/2006 v1.21 % - Introduced \SANDrePrintDate and \begin{SANDreDistribution} % - Put a page number (2) on the back cover % - No institution in \SANDauthor{} in example files % - Move the SNL logo on the cover towards the bottom of the page % - Add a back cover with the SNL logo at the bottom of the back % - Use \cleardouble page and add comment to example files to make % sure TOC always starts on an odd page. % - Don't put title on first page of body text (above introduction) % anymore. (Changed from Ver 1.0, Sep. 2002 to Ver 2.0, Dec. 2005 of the guide.) % - For article, start every section on a new page (report already does this) % - Fixed URLs for DOE report ordering % - \SANDmarkCover now takes only one argument! This makes it easier to draw a % box around the statement and configure it as needed. See MarkOUO.tex for % an example. Thanks to John Foster for the example. % - Print small class file version number at bottom of inside back cover % - Change by Daniel Dolan to make it work and look consistent with the mathptmx % package. This leaves the Helvetica fonts on the cover alone, but lets him % have the body of the report in Times. % - From Debbie Johnson (Creative Arts): % - In example files, use First Name, Middle Initial, Last Name on cover and title page % - In example files, on cover, put author names on one line % - Mail Stop for Central Technical Files is MS9018. (This was an error in the example % file, not the class itself.) % - Back cover was shifted right too far. % - Move chapter headings up a bit. % - Use the geometry package to get the margins right % % 06/10/2006 v1.22 % - Remove "Unclassified" from "Unclassified Unlimited Release" (Thanks Brett Bader and Mike Heroux) % - Confirmed that M2497 is correct mail stop for classified reports to Central Technical % Files. (Thanks Debbie Johnson) % - Make the distribution list single column. This makes it easier to print labels. % - D. Chavez, LDRD Office mail-stop changed from 0188 to 0123. (Thanks Brett Bader) % - In examples, added \phantomsection and moved \addcontentsline{toc}{section}{References} % just before the \bibliography{...} command. This helps putting the right page number % into the TOC and also with hyperlinking. (Thanks Tammy Kolda) % - Clarified usage of \SANDnum{} on Web page. (Thanks Tammy Kolda) % - More usage and LaTeX tips on Web page. (Thanks Tammy Kolda) % - Newer distributions have a fancyhdr.sty that works. Removed it. % % 06/26/2006 v1.23 % - Tammy Kolda found a bug when using amsmath. Seems to have been a problem with % white space in the redefinition of \section. LaTeX would stop when building the TOC. % % 08/17/2006 v1.24 % - Changed tar file extension from .tgz to .tar.gz Some winzip versions under % Windows don't seem to like the former. (Rich Lehoucq) % - Org. Number for Central Technical Files changed from 8945-1 to 8944 (Tammy and Debbie) % % 09/19/2006 v1.25 % - David Wilson discovered that markings in report style also activated chapter % name headings, which are unwanted and sometimes overlap with the markings. % % 10/03/2006 v1.26 % - Some Web page error fixes from Daniel Dunlavy % - Mike Eldred suggested to keep internal distributions on a single line % % 10/03/2006 v1.27 % - Forgot to extend the width of external distributions % % 12/13/2007 v1.28 % - No change: Org. Number for Central Technical Files is 8944 (confirmed by Beth Watkins) % - Mark the OUO examples as sample to avoid misunderstandings (Roger Suppona) % - Paragraph indent is set to 0 for cover pages, but never restored (Daniel Dolan) % - Use "Lorem ipsum" instead of "bla bla bla" in the examples (Stephanie Phillips) % (There is a LaTeX package, lipsum.sty, that does it, but it is not always installed. % Therefore, I included the text verbaitm, instead of generating it.) % - If the report is an OUO document, some text on the back cover needs to disappear. % Thanks to Marcia Cooper for discovering it, and providing the necessary LaTeX code. % - A lot of changes from Michael Kaneshige to better match the formatting of the official % SAND report template: % 1. Removed the odd-even margin asymmetry - made the textwidth 6.5 in and % both margins 1 in. This is consistent with the official cover % templates, although it's not the standard LaTeX way of formatting double % sided documents. If the document gets bound, the LaTeX way is better, % but a lot of documents exist only electronically now. % % 2. Added more space to \topmiddlewidth and subtracted it from % \topleftwidth and \toprightwidth so that "official Use Only / Export % Controlled Information" would not get broken across lines on the title % page. % % 3. Reduced the \vspace between the title and authors from 0.75in to % 0.375in. This is specific to my document, but with everything we were % required to add, and a moderate length title, LaTeX was generating a % blank first page because the cover page was overfilled. % % 4. On the back cover, I centered the text block and reduced the minipage % width to make it look more like the official covers. % % 5. The word "NOTICE" on the back cover was significantly larger than the % other text, which was not consistent with the official covers. I % removed the \fontsize command that was causing this, and it looks more % consistent with the official covers. % % 6. On the title page, the top block (SAND#, OUO/ECI, Printed...) was not % centered because there were topleft and topmiddle boxes, but no topright % box. I think this was inherited from the report.cls and article.cls % classes, but to fix the asymmetry, I inserted a topright box the same as % the topleft box. It would seem to work just as well to remove both % topleft and topright boxes, since they contain nothing, but to be % conservative, I didn't remove anything. % % 7. Most of MarkOUO.tex has to be edited by the user, but the "Official % Use Only" (SANDmarkTopBottom) should be fairly generic. To make it look % more like the official covers, I made it bold, 12 pt, all caps. In % addition, I reformatted the OUO box from tabular with multicolumn % columns, hlines and vertical bars, to a minipage inside a framebox. I % think this is smoother. % % - The Technical Library has a new org number again: 4536 --> 9536 (Ann Smaple via Bill Hart) % Also changed NM tech library org to 8944, but I am mostly guessing here... % Added (1 electronic and 1 hardcopy) for housekeeping copies and reduce spacing % between distribution entries. (Ann Smaple via Bill Hart) % - Central Technical Files doesn't seem to want unclassified reports anymore. (Several) % % 03/01/2008 v1.29 % - Added Rich Field's SAND Memo class. % % 04/23/2008 v1.30 % - Change the library distribution yet again (per Monica Price) % % 05/22/2008 v1.31 % - A template to typeset OUO memos (Rich Field) % - Per management request, remove all references in the examples to Harry Potter and magic % % 04/30/2009 v1.32 % - When strict is used, section refernces do not work, since sections are % not numbered. Not sure how to deal with this. For now just print a % warning during compile and update the strict examples not to use \ref. % (Problem reported by Eric Chu) % - In article style, the list of figures and tables are now placed directly % after the table of contents without starting a new page first. They do % start on a new page in report style, since that is meant for longer % documents. (Suggested by Tammy Kolda) % - Tammy reports that R&A sometimes asks for no paragraph indentation in the % abstract. In strict mode, this is now the case. % - R&A also suggests that all paragraphs are indented the same. Until now the % first paragraph after a section heading was not indented. The strict % option now indents the first paragraph as well. (Suggested by Tammy Kolda) % - Some people don't like their blank pages to be blank. Added the "blank" % option which adds "Page intentionally blank" to blank pages % - Shared text bewteen examples is now in seperate files and \input into the % examples % ****************************************************************************** % Package definitions % % The version and date of this file \newcommand\SANDreportVersionOnly{ v1.32 } % leave the spaces before and after version \newcommand\SANDreportVersionDate{2008/04/30} % Date has to be in this format! \typeout{Using Sandia Technical Report class: \SANDreportVersionDate, \SANDreportVersionOnly Rolf Riesen} \newcommand\SANDreportVersion{\SANDreportVersionDate \SANDreportVersionOnly} % We need LaTeX 2e or better \NeedsTeXFormat{LaTeX2e} % We need ifthenelse. \newboolean are false by default \RequirePackage{ifthen} \RequirePackage{color} \RequirePackage{graphicx} % Variables \newboolean{blankSAND} % Mark blank pages \newboolean{relaxedSAND} \newboolean{strictSAND} \newboolean{reportSAND} \newboolean{SANDmainProvided} \newboolean{SANDnumProvided} \newboolean{SANDprintDateProvided} \newboolean{SANDrePrintDateProvided} \newboolean{SANDauthorProvided} \newboolean{SANDsupersedProvided} \newboolean{SANDdistributionProvided} \newboolean{inAppendix} \newboolean{SANDmarkingsRequired} \newboolean{MarkCover} \newboolean{MarkBack} \newboolean{MarkTitle} \newboolean{MarkBody} \newboolean{MarkBottom} \newboolean{distCA} \newboolean{distNM} % Added 1/11/07 M. Cooper to remove additional text unnecessary for OUO documents on pg 2. \newboolean{SANDnoticeOUO} % Counters \newcounter{SANDprintingCnt} \setcounter{SANDprintingCnt}{1} \newcounter{SANDreDistCnt} \setcounter{SANDreDistCnt}{1} % We need calc to divide by 3 in setlength and other calculations \RequirePackage{calc} % We need the fancy headers for the report markings \RequirePackage{fancyhdr} % Specify what this file provides \ProvidesPackage{SANDreport}[\SANDreportVersion] \ProvidesFile{SANDreport.cls}[\SANDreportVersion] % We understand five options: "relax", "strict", "report", "blank", and "OUO" % Using "relax" makes the document look more LaTeXy % If no option are given, then we follow the format of SAND2002-2068P % Using "strict" tries to follow the guideline even more closely % Specifying "report" uses the report class instead of the article class % Specifying "blank" marks blank pages with some silly text % Specifying "OUO" removes some unnecessary text on page 2 for OUO documents % \DeclareOption{blank}{ \typeout{Option "blank": Mark blank pages} \setboolean{blankSAND}{true} } \DeclareOption{relax}{ \typeout{Option "relax": Relaxing some of the SAND98-0730 requirements} \setboolean{relaxedSAND}{true} } \DeclareOption{strict}{ \typeout{Option "strict": Follow the SAND98-0730 requirements more strictly} \typeout{===============================================================================} \typeout{strict: Note that section references wont work since sections are not numbered!} \typeout{===============================================================================} \setboolean{strictSAND}{true} } \ifthenelse{\boolean{relaxedSAND} \and \boolean{strictSAND}} { \ClassWarning{SANDreport.cls}{Both, "strict" and "relax" options given} }{ } \DeclareOption{report}{ \typeout{Option "report": Using the report class as a base.} \setboolean{reportSAND}{true} } \DeclareOption{CA}{ \ClassError{SANDreport.cls}{"CA" option is obsolete}{Use \@backslashchar begin{SANDdistribution}[CA] instead.} } \DeclareOption{NM}{ \ClassError{SANDreport.cls}{"NM" option is obsolete}{Use \@backslashchar begin{SANDdistribution}[NM] instead.} } % Added 1/11/07 M. Cooper to remove additional text unnecessary for OUO documents on pg 2. \DeclareOption{OUO}{ \typeout{Option "OUO": Formatting page 2 for OUO reports} \setboolean{SANDnoticeOUO}{true} } % We're based on the standard article or report class and assume certain % options. Set those, and pass all others to the article class \ProcessOptions % We need to do it here so we get "reportSAND", and then again \ifthenelse{\boolean{reportSAND}} { \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} \ProcessOptions % Repeat it here, otherwise LaTeX gets confused \LoadClass[letterpaper,twoside,final,fleqn]{report} }{ \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions % Repeat it here, otherwise LaTeX gets confused \LoadClass[letterpaper,twoside,final,fleqn]{article} } % % Setup for letter paper (This IS a SAND report!) % \RequirePackage{geometry} % \geometry{pdftex, showframe, inner=1.5in, textwidth=6in, textheight=9in} % Changed textwidth to 6.5in and inner to 1in to more closely match official SAND cover templates - MJK, 1/12/07 \geometry{pdftex, inner=1in, textwidth=6.5in, textheight=9in} % In strict mode, we want all paragraphs indented, even the very first one after % a section heading. The following code does that. % \ifthenelse{\boolean{strictSAND}} { \RequirePackage{indentfirst} }{ } % ****************************************************************************** % Check some of the user directives and setup a few things % \AtBeginDocument{ % Do some usage checking \ifthenelse{\boolean{SANDnumProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDnum not provided}{Insert \@backslashchar SANDnum in the preamble of your document} } \ifthenelse{\boolean{SANDauthorProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDauthor not provided}{Insert \@backslashchar SANDauthor in the preamble of your document} } \ifthenelse{\boolean{SANDprintDateProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDprintDate not provided}{Insert \@backslashchar SANDprintDate in the preamble of your document} } % Save the title, it will be cleared by \maketitle, but we need it later \newsavebox{\SANDtitletempbox} \sbox{\SANDtitletempbox}{\parbox{\textwidth - 1.5in}{ \centering \LARGE \bf \@title \par} } % % Some measurements to format the title page properly % \newlength{\textwidththird} \newlength{\topheight} \newlength{\topleftwidth} \newlength{\topmiddlewidth} \newlength{\toprightwidth} \setlength{\textwidththird}{(\textwidth / 3) - (\fboxsep * 2)} \setlength{\topleftwidth}{\the\textwidththird} \setlength{\topmiddlewidth}{\the\textwidththird} \setlength{\toprightwidth}{\the\textwidththird} % Changed following to -6, +10, and -6 from -3, +4, -3, to get "Official Use Only - Export Controlled Information % to fit on one line on title page - MJK, 1/12/07 \addtolength{\topleftwidth}{-6em} \addtolength{\topmiddlewidth}{+10em} \addtolength{\toprightwidth}{-6em} \ifthenelse{\boolean{SANDsupersedProvided}} { \setlength{\topheight}{1.5in} }{ \setlength{\topheight}{1.0in} } % % We want a blank line between paragraphs % \setlength\parskip{2ex} % We don't want a head rule \renewcommand{\headrulewidth}{0pt} % Some people don't like their blank pages to be blank... % Turn this on using the blank option. \ifthenelse{\boolean{blankSAND}} { \makeatletter % Code I found, but can't remember where \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else % \cleardoublepage from latex.ltx \hbox{} % \cleardoublepage from latex.ltx \vspace*{\fill} % Code I found, but can't remember where \begin{center} % Code I found, but can't remember where This page intentionally left blank.\\ {\CoverFont{m}{6}{6pt}(Well, it's not blank anymore...)} \end{center} % Code I found, but can't remember where \vspace{\fill} % Code I found, but can't remember where \thispagestyle{empty} % Code I found, but can't remember where \newpage % \cleardoublepage from latex.ltx \if@twocolumn\hbox{}\newpage\fi\fi\fi} % \cleardoublepage from latex.ltx \makeatother % Code I found, but can't remember where }{ } } % End of AtBeginDocument{} % ****************************************************************************** % Cover pages % % ------------------------------------------------------------------------ % % Font selections for the cover page \Coverfont{series}{size}{skip} % \newcommand{\CoverFont}[3]{ \fontencoding{OT1} \fontfamily{phv} \fontseries{#1} \fontshape{n} \fontsize{#2}{#3} \selectfont } \newcommand{\doCover}{ % % Print the cover pages % \SANDmarks{cover} \newlength{\coverindent} \setlength{\coverindent}{1em} \newlength{\parindentsave} \setlength{\parindentsave}{\parindent} \setlength{\parindent}{0em} % % Front Cover % %\hspace*{-0.375in} \begin{minipage}[t]{6.0in} \CoverFont{b}{18}{20pt} SANDIA REPORT \vspace{0.125in}\\ \CoverFont{m}{12}{14pt} \SANDnumVar\\ \SANDreleaseTypeVar\\ \ifthenelse{\boolean{SANDrePrintDateProvided}} { Printed \SANDrePrintDateVar }{ Printed \SANDprintDateVar } \ifthenelse{\boolean{SANDsupersedProvided}} { \vspace{0.125in}\\ \SANDsupersedVar }{ \\ } \vspace{0.25in} \CoverFont{b}{24}{28pt} \parbox[t]{\textwidth}{ \raggedright \@title } % Changed this space from 0.75in to 0.375in to match official SAND covers, and provide more space to prevent % overfilling the page - MJK, 1/12/07 \vspace{0.375in} \CoverFont{m}{12}{14pt} \SANDauthorVar \vspace{0.25in} \CoverFont{m}{8}{10pt} \selectfont Prepared by\\ Sandia National Laboratories\\ Albuquerque, New Mexico 87185 and Livermore, California 94550\\ \\ Sandia is a multiprogram laboratory operated by Sandia Corporation,\\ a Lockheed Martin Company, for the United States Department of Energy's\\ National Nuclear Security Administration under Contract DE-AC04-94-AL85000.\\ \\ \MarkCoverVar \end{minipage} \vspace*{\fill} % Move the logo to the bottom of the cover page %\hspace*{-0.5in} \begin{minipage}[b]{6.0in} \includegraphics{snllineblk} \end{minipage} % % Back cover % \newpage % Added centering and reduced minipage width to match official SAND covers better - MJK, 1/12/07 \begin{center} \begin{minipage}[t]{5.5in} \fontencoding{OT1} \fontfamily{pnc} \fontseries{m} \fontshape{n} \fontsize{9}{11pt} \selectfont Issued by Sandia National Laboratories, operated for the United States Department of Energy by Sandia Corporation. \vspace{\baselineskip} % Removed \fontsize{11}{13} to make NOTICE simply bold, to match official SAND covers better, MJK - 1/12/07 {\fontseries{b}\selectfont NOTICE:} This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government, nor any agency thereof, nor any of their employees, nor any of their contractors, subcontractors, or their employees, make any warranty, express or implied, or assume any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represent that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government, any agency thereof, or any of their contractors or subcontractors. The views and opinions expressed herein do not necessarily state or reflect those of the United States Government, any agency thereof, or any of their contractors. \vspace{\baselineskip} % Added 1/11/07 M. Cooper to remove additional text unnecessary for OUO documents on pg 2. \ifthenelse{\boolean{SANDnoticeOUO}}{}{ Printed in the United States of America. This report has been reproduced directly from the best available copy. \vspace{\baselineskip} Available to DOE and DOE contractors from\\ \begin{tabular}{ll} \hspace*{\coverindent} & U.S. Department of Energy \\ & Office of Scientific and Technical Information \\ & P.O. Box 62 \\ & Oak Ridge, TN 37831 \\ & \\ \end{tabular} \\ \begin{tabular}{lll} \hspace*{\coverindent} & Telephone: & (865) 576-8401\\ & Facsimile: & (865) 576-5728\\ & E-Mail: & reports@adonis.osti.gov\\ & Online ordering: & http://www.osti.gov/bridge\\ \end{tabular} \vspace{\baselineskip} \vspace{0.25in} Available to the public from\\ \begin{tabular}{ll} \hspace*{\coverindent} & U.S. Department of Commerce \\ & National Technical Information Service \\ & 5285 Port Royal Rd \\ & Springfield, VA 22161 \\ & \\ \end{tabular} \\ \begin{tabular}{lll} \hspace*{\coverindent} & Telephone: & (800) 553-6847 \\ & Facsimile: & (703) 605-6900 \\ & E-Mail: & orders@ntis.fedworld.gov \\ %& Online ordering: & http://www.ntis.gov/ordering.htm \\ & Online ordering: & http://www.ntis.gov/help/ordermethods.asp?loc=7-4-0\#online \\ \end{tabular} }% end of text for non-OUO reports \vspace{\baselineskip} \vspace{0.125in} \includegraphics[width=0.75in]{DOEbwlogo} \end{minipage} \end{center} % Restore the original paragraph indent \setlength{\parindent}{\parindentsave} \SANDmarks{back} } % ****************************************************************************** % The user commands % % ------------------------------------------------------------------------ % % Here we define the mandatory declarations % \newcommand{\SANDnum}[1]{ \newcommand{\SANDnumVar}{#1} \setboolean{SANDnumProvided}{true} } \newcommand{\SANDauthor}[1]{ \newcommand{\SANDauthorVar}{#1} \setboolean{SANDauthorProvided}{true} } \newcommand{\SANDprintDate}[1]{ \newcommand{\SANDprintDateVar}{#1} \setboolean{SANDprintDateProvided}{true} } % This one is optional \newsavebox{\SANDrePrintDistBox} \newsavebox{\SANDrePrintDistBoxSecond} \newsavebox{\SANDrePrintDistBoxThird} \newsavebox{\SANDrePrintDistBoxFourth} \newsavebox{\SANDrePrintDistBoxFifth} \newcommand{\SANDrePrintDateVar}{} \newcommand{\SANDrePrintDate}[1]{ \renewcommand{\SANDrePrintDateVar}{#1} \setboolean{SANDrePrintDateProvided}{true} \stepcounter{SANDprintingCnt} \ifthenelse{\value{SANDprintingCnt} = 2} { \sbox{\SANDrePrintDistBoxSecond}{Second Printing, (#1):} }{ \ifthenelse{\value{SANDprintingCnt} = 3} { \sbox{\SANDrePrintDistBoxThird}{Third Printing, (#1):} }{ \ifthenelse{\value{SANDprintingCnt} = 4} { \sbox{\SANDrePrintDistBoxFourth}{Fourth Printing, (#1):} }{ \ifthenelse{\value{SANDprintingCnt} = 5} { \sbox{\SANDrePrintDistBoxFifth}{Fifth Printing, (#1):} }{ \ClassError{SANDreport.cls}{\@backslashchar SANDreDistribution used more than four times!}{Do you really have more than five printings? If so, you need to amend SANDreport.cls} } } } } } % Used to need the title at the top of the first section/chapter, but that is % not required anymore. Make sure we start on an odd page. \newcommand{\SANDmain}{ \cleardoublepage \setboolean{SANDmainProvided}{true} } \ifthenelse{\boolean{reportSAND}} { % % new 1 % Once we have left the preamble and are in the body of the text, % we want each chapter to begin on an odd numbered page % % new 2 % After we're done with the title page, we switch to markings for body pages. % \renewcommand\chapter{% % \chapter from report.cls %\if@openright\cleardoublepage\else\clearpage\fi % deleted \ifSANDmainProvided\cleardoublepage\else\clearpage\fi % new 1 \SANDmarks{body} % new 2 % \thispagestyle{plain}% % deleted \global\@topnum\z@ % \chapter from report.cls \@afterindentfalse % \chapter from report.cls \secdef\@chapter\@schapter % \chapter from report.cls } % \chapter from report.cls % % We redefine \@makechapterhead and \@schapter so we can move % the chapter title a little bit higher up. % % % This is for chapters in the body \def\@makechapterhead#1{% % \@makechapterhead from report.cls \vspace*{-10\p@}% % Changed {\parindent \z@ \raggedright \normalfont % \@makechapterhead from report.cls \ifnum \c@secnumdepth >\m@ne % \@makechapterhead from report.cls \huge\bfseries \@chapapp\space \thechapter % \@makechapterhead from report.cls \par\nobreak % \@makechapterhead from report.cls \vskip 20\p@ % \@makechapterhead from report.cls \fi % \@makechapterhead from report.cls \interlinepenalty\@M % \@makechapterhead from report.cls \Huge \bfseries #1\par\nobreak % \@makechapterhead from report.cls \vskip 40\p@ % \@makechapterhead from report.cls }} % \@makechapterhead from report.cls % % This is for chapters in the preamble \def\@schapter#1{\if@twocolumn % \@schapter from report.cls \@topnewpage[\@makeschapterhead{#1}]% % \@schapter from report.cls \else % \@schapter from report.cls \@makeschapterhead{#1}% % \@schapter from report.cls \@afterheading % \@schapter from report.cls \fi} % \@schapter from report.cls \def\@makeschapterhead#1{% % \@schapter from report.cls \vspace*{-10\p@}% % Changed {\parindent \z@ \raggedright % \@schapter from report.cls \normalfont % \@schapter from report.cls \interlinepenalty\@M % \@schapter from report.cls \Huge \bfseries #1\par\nobreak % \@schapter from report.cls \vskip 40\p@ % \@schapter from report.cls }} }{ % new 3 % We want each section starting on a new page The report class already does this % % new 4 % Center the section headings % \renewcommand\section{\clearpage% % new 3 \@startsection {section}{1}{\z@}% % \section from article.cls {-3.5ex \@plus -1ex \@minus -.2ex}% % \section from article.cls {2.3ex \@plus.2ex}% % \section from article.cls %{\normalfont\Large\bfseries}% % deleted {\normalfont\Large\bfseries\centering}% % new 4 } % \section from article.cls % This is basicaly the same as above, but without the clearpage. We want that % for \listof... in article.cls to conserve some paper. \newcommand\SANDTOCsection{% % new 3 \@startsection {section}{1}{\z@}% % \section from article.cls {-3.5ex \@plus -1ex \@minus -.2ex}% % \section from article.cls {2.3ex \@plus.2ex}% % \section from article.cls %{\normalfont\Large\bfseries}% % deleted {\normalfont\Large\bfseries\centering}% % new 4 } % \section from article.cls % Redefine \listoffigures and \listoftables to use \SANDTOCsection instead of \section % \renewcommand\listoffigures{% % \listoffigures from article.cls \SANDTOCsection*{\listfigurename}% % Change \section to \SANDTOCsection \@mkboth{\MakeUppercase\listfigurename}% % \listoffigures from article.cls {\MakeUppercase\listfigurename}% % \listoffigures from article.cls \@starttoc{lof}% % \listoffigures from article.cls } % \listoffigures from article.cls % \renewcommand\listoftables{% % \listoftables from article.cls \SANDTOCsection*{\listtablename}% % Change \section to \SANDTOCsection \@mkboth{\MakeUppercase\listtablename}% % \listoftables from article.cls {\MakeUppercase\listtablename}% % \listoftables from article.cls \@starttoc{lot}% % \listoftables from article.cls } % \listoftables from article.cls } % ------------------------------------------------------------------------ % % Distribution page at the end % We have to create our own description environment, so we don't % disturb the original one. \newlength{\SANDdistwidth} % Max width of distribution lines \setlength{\SANDdistwidth}{0.8\textwidth} \newlength{\SANDMSdistwidth} % Width of field for MS number \setlength{\SANDMSdistwidth}{9ex} \newcommand{\SANDdescriptionlabel}[1]{ \makebox[3em][r]{#1} } \newenvironment{SANDdescription}{ \list{} {\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\SANDdescriptionlabel} }{ \endlist } \newenvironment{SANDdistribution}[1][nothing]{ \setboolean{SANDdistributionProvided}{true} \newboolean{distCRADA} \newboolean{distPatent} \newboolean{distLDRD} \newboolean{distClassified} \newcommand{\SANDdistCRADA}{ \setboolean{distCRADA}{true} } \newcommand{\SANDdistPatent}{ \setboolean{distPatent}{true} } \newcommand{\SANDdistLDRD}{ \setboolean{distLDRD}{true} } \newcommand{\SANDdistClassified}{ \setboolean{distClassified}{true} \SANDdistInternalM{2}{M2497}{Central Technical Files}{8944} } % Option NM given \ifthenelse{\equal{#1}{NM}} { \typeout{Option "NM": Using the SNL NM default distribution list.} \setboolean{distNM}{true} }{ } % Option CA given \ifthenelse{\equal{#1}{CA}} { \typeout{Option "CA": Using the SNL CA default distribution list.} \setboolean{distCA}{true} }{ } \clearpage {\Large DISTRIBUTION:} \normalsize \raggedbottom \begin{SANDdescription} }{ \ifthenelse{\boolean{distCA}} { % Insert the standard CA distribution \ifthenelse{\boolean{distClassified}} { \SANDdistInternal{2}{9018}{Central Technical Files}{8944 (1 electronic and 1 hardcopy)} }{} \SANDdistInternal{1}{0899}{Technical Library}{8944 (electronic)} % If this report has a Patent Caution or Patent Interest \ifthenelse{\boolean{distPatent}} { \SANDdistInternal{1}{0161}{Legal Intellectual Property}{11500} }{} % If this report is for CRADA work \ifthenelse{\boolean{distCRADA}} { \SANDdistInternal{1}{0115}{OFA/NFE Agreements}{10112} }{} % If this report is for LDRD work \ifthenelse{\boolean{distLDRD}} { \SANDdistInternal{1}{0123}{D. Chavez, LDRD Office}{1011} }{} }{} \ifthenelse{\boolean{distNM}} { % Insert the standard NM distribution \ifthenelse{\boolean{distClassified}} { \SANDdistInternalM{2}{2497}{Central Technical Files}{8944 (1 electronic and 1 hardcopy)} }{} \SANDdistInternal{1}{0899}{Technical Library}{9536 (electronic)} % If this report has a Patent Caution or Patent Interest \ifthenelse{\boolean{distPatent}} { \SANDdistInternal{1}{0161}{Legal Intellectual Property}{11500} }{} % If this report is for CRADA work \ifthenelse{\boolean{distCRADA}} { \SANDdistInternal{1}{0115}{OFA/NFE Agreements}{10112} }{} % If this report is for LDRD work \ifthenelse{\boolean{distLDRD}} { \SANDdistInternal{1}{0123}{D. Chavez, LDRD Office}{1011} }{} }{} \end{SANDdescription} } % % The distribution list for a reprint % No housekeeping copies are needed. \newenvironment{SANDreDistribution}{ \ifthenelse{\boolean{SANDrePrintDateProvided}} { \setboolean{SANDdistributionProvided}{true} \stepcounter{SANDreDistCnt} \ifthenelse{\value{SANDreDistCnt} = 2} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxSecond}} }{ \ifthenelse{\value{SANDreDistCnt} = 3} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxThird}} }{ \ifthenelse{\value{SANDreDistCnt} = 4} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxFourth}} }{ \ifthenelse{\value{SANDreDistCnt} = 5} { \sbox{\SANDrePrintDistBox}{\usebox{\SANDrePrintDistBoxFifth}} }{ \ClassError{SANDreport.cls}{\@backslashchar SANDreDistribution used more than four times!}{Do you really have more than five printings? If so, you need to amend SANDreport.cls} } } } } \usebox{\SANDrePrintDistBox} \normalsize \raggedbottom \begin{SANDdescription} }{ } }{ \ifthenelse{\boolean{SANDrePrintDateProvided}} { \end{SANDdescription} }{ } } \newcommand{\SANDdistInternal}[4]{ \ifthenelse{\boolean{SANDdistributionProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDdistribution not (yet) provided}{\@backslashchar SANDdistribution must be used before any \@backslashchar SANDdistInternal} } \item[#1] \parbox[t]{\SANDdistwidth}{\makebox[\SANDMSdistwidth][l]{MS \hfill #2}% \hspace{2em} \raggedright #3, #4} \vspace{-1.5ex} } % Use a mail channel \newcommand{\SANDdistInternalM}[4]{ \ifthenelse{\boolean{SANDdistributionProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDdistribution not (yet) provided}{\@backslashchar SANDdistribution must be used before any \@backslashchar SANDdistInternal} } \item[#1] \parbox[t]{\SANDdistwidth}{\makebox[\SANDMSdistwidth][l]{#2}\hspace{2em} \raggedright #3, #4} \vspace{-1.5ex} } \newcommand{\SANDdistExternal}[2]{ \ifthenelse{\boolean{SANDdistributionProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDdistribution not (yet) provided}{\@backslashchar SANDdistribution must be used before any \@backslashchar SANDdistExternal} } \item[#1] \parbox[t]{\SANDdistwidth}{#2} \vspace{-1.5ex} } % ------------------------------------------------------------------------ % % And now some optional declarations % \newcommand{\SANDsupersed}[2]{ \newsavebox{\SANDsupersedtempbox} \newcommand{\SANDsupersedVar}{ Supersedes #1 \\ Dated #2 } \sbox{\SANDsupersedtempbox}{ \begin{tabular}{c} Supersedes #1 \\ dated #2 \end{tabular} } \setboolean{SANDsupersedProvided}{true} } % Distribution category is no longer needed \newcommand{\SANDdistcategory}[1]{ \ClassWarning{SANDreport.cls}{Distribution category is no longer needed!} } % ****************************************************************************** % The commands to specify the report markings. % % Printed on the cover and title page below the SANDIA REPORT number \newcommand{\SANDreleaseTypeVar}{Unlimited Release} % default % Printed on the cover page \newcommand{\MarkCoverVar}{Approved for public release; further dissemination unlimited.} % default % Printed on the title page \newsavebox{\MarkTitletempbox} \sbox{\MarkTitletempbox}{} % default % ---------------------------- % Printed on top of cover page \newcommand{\MarkTopCoverVar}{} % default % Printed on bottom of cover page \newcommand{\MarkBotCoverVar}{} % default % Printed on top of back cover page \newcommand{\MarkTopBackVar}{} % default % Printed on bottom of back cover page \newcommand{\MarkBotBackVar}{} % default % Printed on top of title page \newcommand{\MarkTopTitleVar}{} % default % Printed on bottom of title page \newcommand{\MarkBotTitleVar}{} % default % Printed on bottom of all body pages \newcommand{\MarkBotBodyVar}{} % default % Printed on top of all body pages \newcommand{\MarkTopBodyVar}{} % default % % The user marking commands % \newcommand{\SANDreleaseType}[1]{ \renewcommand{\SANDreleaseTypeVar}{#1} } \newcommand{\SANDmarkBottomCover}[1]{ \renewcommand{\MarkBotCoverVar}{#1} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} } \newcommand{\SANDmarkTopBottom}[1]{ \renewcommand{\MarkBotBodyVar}{#1} \renewcommand{\MarkTopBodyVar}{#1} \renewcommand{\MarkBotBackVar}{#1} \renewcommand{\MarkTopBackVar}{#1} \renewcommand{\MarkBotTitleVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \renewcommand{\MarkTopCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkBody}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } \newcommand{\SANDmarkTop}[1]{ \renewcommand{\MarkTopBodyVar}{#1} \renewcommand{\MarkTopBackVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkTopCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkBody}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} } \newcommand{\SANDmarkBottom}[1]{ \renewcommand{\MarkBotBodyVar}{#1} \renewcommand{\MarkBotBackVar}{#1} \renewcommand{\MarkBotTitleVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkBody}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } \newcommand{\SANDmarkTopBottomCoverBackTitle}[1]{ \renewcommand{\MarkTopCoverVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \renewcommand{\MarkTopBackVar}{#1} \renewcommand{\MarkBotBackVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkBotTitleVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkBack}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } \newcommand{\SANDmarkTopBottomCoverTitle}[1]{ \renewcommand{\MarkBotTitleVar}{#1} \renewcommand{\MarkTopTitleVar}{#1} \renewcommand{\MarkBotCoverVar}{#1} \renewcommand{\MarkTopCoverVar}{#1} \setboolean{MarkTitle}{true} \setboolean{MarkCover}{true} \setboolean{SANDmarkingsRequired}{true} \setboolean{MarkBottom}{true} } % % Internal command used to activate markings depending on what part of % the document we are currently processing; e.g. \SANDmarks{body} % \newcommand{\SANDmarks}[1]{ \ifthenelse{\boolean{SANDmarkingsRequired}} { \fancyfoot{} % Clear all foot markings \fancyhead{} % Clear all head markings % Fancyhdr needs a little room \setlength{\headheight}{\baselineskip} \pagestyle{fancy} \thispagestyle{fancy} \ifthenelse{\equal{#1}{cover}} { % We're on the cover page \ifthenelse{\boolean{MarkCover}} { \chead{\MarkTopCoverVar} \cfoot{\MarkBotCoverVar} }{ \chead{} \cfoot{} } }{ } \ifthenelse{\equal{#1}{back}} { % We're on the back cover page \ifthenelse{\boolean{MarkBack}} { \chead{\MarkTopBackVar} \cfoot{\MarkBotBackVar} }{ \chead{} \cfoot{} } % We do want a page number on the back cover \ifthenelse{\boolean{MarkBottom}} { \fancyfoot[LE,RO]{\thepage} }{% else \fancyfoot[CE,CO]{\thepage} } }{ } \ifthenelse{\equal{#1}{title}} { % We're on the title page \ifthenelse{\boolean{MarkTitle}} { \chead{\MarkTopTitleVar} \cfoot{\MarkBotTitleVar} }{% else \chead{} \cfoot{} } \ifthenelse{\boolean{MarkBottom}} { \fancyfoot[LE,RO]{\thepage} }{% else \fancyfoot[CE,CO]{\thepage} } }{ } \ifthenelse{\equal{#1}{body}} { \ifthenelse{\boolean{MarkBody}} { \chead{\MarkTopBodyVar} \cfoot{\MarkBotBodyVar} }{% else \chead{} \cfoot{} } % We're on a body page. If we're not going to mark the bottom, % or body pages at all, then we might as well put the page number % at the center \ifthenelse{\boolean{MarkBottom} \and \boolean{MarkBody}} { \fancyfoot[LE,RO]{\thepage} }{% else \fancyfoot[CE,CO]{\thepage} } }{ } }{ % % If not SANDmarkingsRequired % \pagestyle{plain}% The default when we have no markings \ifthenelse{\equal{#1}{cover}} { % We're on the cover page % No page number on cover \thispagestyle{empty} }{ } \ifthenelse{\equal{#1}{back}} { % We're on the back cover page % We do want a page number on the back cover \thispagestyle{plain} }{ } } } % end of \SANDmarks{} \newcommand{\SANDmarkCoverTitle}[2]{ \ClassError{SANDreport.cls}{\@backslashchar SANDmarkCoverTitle doesn't work yet; sorry.}{Don't know where to put the text on the title page.} \sbox{\MarkTitletempbox}{{\bf #1\\}{#2}} \renewcommand{\MarkCoverVar}{{{\CoverFont{b}{12}{12pt}#1}\\ {\CoverFont{m}{8}{10pt}}{#2}}} } \newcommand{\SANDmarkCover}[1]{ \renewcommand{\MarkCoverVar}{{\CoverFont{m}{8}{10pt}}{#1}} } % ****************************************************************************** % Table of Contents % The names we use to label the table of contents, and lists of figures, % and tables. % \ifthenelse{\boolean{reportSAND}} { \renewcommand\bibname{References} \setcounter{tocdepth}{3} }{ \renewcommand{\contentsname}{\raggedright \normalfont\Large\bfseries Contents} \renewcommand{\listfigurename}{\raggedright \bf Figures} \renewcommand\listtablename{\raggedright \bf Tables} \renewcommand\refname{\raggedright \bf \centering References} \setcounter{tocdepth}{2} } % % Don't enter figures, tables, and subsections of an appendix in % the main table of contents, if "strict" is used. % Code from James Gruetzner and Todd Pitts. Avoids the ifthen package in % \addcontentsline which interferes with the subfigure package. \renewcommand{\addcontentsline}[3]{ \ifinAppendix% % We are in the Appendix \ifthenelse{\equal{#1}{toc}} { % And we are attempting to add something to the TOC \ifreportSAND \ifthenelse{\equal{#2}{chapter}} { % It is a chapter, so we're OK \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} }{% else % It's a section; we'll accept that too \ifthenelse{\equal{#2}{section}} { % It is a section, so we're OK \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} }{% else % It is not a section; skip it \relax } } \else \ifthenelse{\equal{#2}{section}} { % It is a section, so we're OK \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} }{% else % It is not a section; skip it \relax } \fi }{ % We're not in TOC. Probably a figure or table; skip it \relax } \else% \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}} \fi } % ------------------------------------------------------------------------ % % Modify the look of the table of contents if we are using the article style % ------------------------------------------------------------------------ % % We want the dots closer together, and the same as in \dotfill % \renewcommand{\@dotsep}{2.27} \ifthenelse{\boolean{reportSAND}} { }{ % For article.sty % We don't want blank lines between entries and no boldface. % This is the l@section definition from article.sty. We get rid of % \addvspace{1.0em... and \bfseries (if relax is not set in the main doc) \renewcommand*\l@section[2]{ \setlength\parskip{0ex} \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \ifthenelse{\boolean{relaxedSAND}} { \addvspace{1.0em \@plus\p@} }{ } \setlength\@tempdima{1.5em} \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \ifthenelse{\boolean{relaxedSAND}} { \bfseries }{ } \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\dotfill \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \endgroup \fi} \renewcommand*\l@figure{\setlength\parskip{0ex} \@dottedtocline{1}{1.5em}{2.3em} } \let\l@table\l@figure } % ------------------------------------------------------------------------ % % If there is an appendix, set it apart in the table of contents % \renewcommand\appendix{ \setboolean{inAppendix}{true} \par \setcounter{section}{0} \setcounter{subsection}{0} \setcounter{subsubsection}{0} \setcounter{figure}{0} \setcounter{table}{0} \ifthenelse{\boolean{reportSAND}} { \setcounter{chapter}{0} \gdef\@chapapp{\appendixname} \gdef\thechapter{\@Alph\c@chapter} % Insert the Appendix name in the TOC \addtocontents{toc}{\protect\subsection*{\appendixname}} }{ \renewcommand{\thefigure}{\thesection.\arabic{figure}} \renewcommand{\thetable}{\thesection.\arabic{table}} \gdef\thesection{\@Alph\c@section} % Insert the Appendix name in the TOC \addtocontents{toc}{\protect\subsection*{\appendixname}} } \ifthenelse{\boolean{strictSAND}} { \setcounter{secnumdepth}{2} }{ \setcounter{secnumdepth}{3} } } % ****************************************************************************** % Sections & Chapters % We want unnumbered section/chapter headings % \ifthenelse{\boolean{reportSAND}} { \ifthenelse{\boolean{strictSAND}} { % The samples in SAND98-0730 don't number sections. \setcounter{secnumdepth}{0} }{ % The report SAND98-0730 itself does, though ;-) \setcounter{secnumdepth}{2} } }{% else \ifthenelse{\boolean{strictSAND}} { % The samples in SAND98-0730 don't number sections. \setcounter{secnumdepth}{0} }{ % The report SAND98-0730 itself does, though ;-) \setcounter{secnumdepth}{2} } } % ****************************************************************************** % Captions % We want the label bold face, and the whole captionwidth about 4", % and the text small % \newlength{\SANDcaptionwidth} \setlength{\SANDcaptionwidth}{4in} \newsavebox{\SANDtempbox} \renewcommand{\@makecaption}[2]{ \par\vspace{\abovecaptionskip} \sbox{\SANDtempbox}{{\bf #1. }\ #2} \ifthenelse{\lengthtest{\wd\SANDtempbox < \SANDcaptionwidth}} { \begin{center} {\bf #1. }\small #2 \end{center} }{ \begin{center} \parbox[t]{\SANDcaptionwidth}{{\bf #1. }\small #2} \end{center} } } % ****************************************************************************** % We have to import a lot of code from report.cls and article.cls so we can % change a few things. We do report.cls first. % \ifthenelse{\boolean{reportSAND}} { % We need to redo \maketitle for the report class. % Omit the date and add the SAND number and so on. % We also need to redo the titlepage environment to not % issue a newpage command, so the abstract can go there % if it is short enough. (SAND reports are supposed to have % an abstract!) % % Renew the report.cls \maketitle macro % \if@titlepage % \maketitle from report.cls \renewcommand\maketitle{% % \maketitle from report.cls \doCover{} \begin{titlepage}% % \maketitle from report.cls \SANDmarks{title} { \begin{center} % use framebox instead of makebox for debugging \makebox[\topleftwidth][t]{ \begin{minipage}[c][\topheight][t]{\topleftwidth} % There is nothing at top left \end{minipage} } \makebox[\topmiddlewidth][c]{ \begin{minipage}[c][\topheight][t]{\topmiddlewidth} \begin{center} \SANDnumVar\\ \SANDreleaseTypeVar\\ Printed \SANDprintDateVar\\ \ifthenelse{\boolean{SANDrePrintDateProvided}} { Reprinted \SANDrePrintDateVar\\ }{ } \ifthenelse{\boolean{SANDsupersedProvided}} { \bigskip \usebox{\SANDsupersedtempbox}\\ }{ } \end{center} \end{minipage} } % Added topright box to balance topleft, and center topmiddle - MJK, 1/12/07 \makebox[\toprightwidth][c]{ \begin{minipage}[c][\topheight][t]{\toprightwidth} % There is nothing at top right \end{minipage} } \end{center} } \let\footnotesize\small % \maketitle from report.cls \let\footnoterule\relax % \maketitle from report.cls \let \footnote \thanks % \maketitle from report.cls % \null\vfil % deleted % \vskip 60\p@ % deleted \begin{center}% % \maketitle from report.cls {\LARGE \@title \par}% % \maketitle from report.cls \vskip 3em% % \maketitle from report.cls {\large % \maketitle from report.cls \lineskip .75em% % \maketitle from report.cls \begin{tabular}[t]{c}% % \maketitle from report.cls \@author % \maketitle from report.cls \end{tabular}\par}% % \maketitle from report.cls \vskip 1.5em% % \maketitle from report.cls % {\large \@date \par}% % deleted \end{center}\par % \maketitle from report.cls \@thanks % \maketitle from report.cls \vfil\null % \maketitle from report.cls \end{titlepage}% % \maketitle from report.cls \setcounter{footnote}{0}% % \maketitle from report.cls \global\let\thanks\relax % \maketitle from report.cls \global\let\maketitle\relax % \maketitle from report.cls \global\let\@thanks\@empty % \maketitle from report.cls \global\let\@author\@empty % \maketitle from report.cls \global\let\@date\@empty % \maketitle from report.cls \global\let\@title\@empty % \maketitle from report.cls \global\let\title\relax % \maketitle from report.cls \global\let\author\relax % \maketitle from report.cls \global\let\date\relax % \maketitle from report.cls \global\let\and\relax % \maketitle from report.cls } \else % {---------------------- I doubt we ever get here ------------------------} \ClassError{SANDreport.cls}{\@backslashchar maketitle definition outside a title page.}{The SANDreport class cannot handle this case.} \fi % % \titlepage in the report class resets the page % number, which is not correct for SANDIA Reports. % It also sets the page style to empty. \if@compatibility % titlepage from report.cls \renewenvironment{titlepage} % titlepage from report.cls {% % titlepage from report.cls \if@twocolumn % titlepage from report.cls \@restonecoltrue\onecolumn % titlepage from report.cls \else % titlepage from report.cls \@restonecolfalse\newpage % titlepage from report.cls \fi % titlepage from report.cls %\thispagestyle{empty}% % deleted %\setcounter{page}\z@ % deleted }% % titlepage from report.cls %{\if@restonecol\twocolumn \else \newpage \fi % deleted, we want abstract on this page {\if@restonecol\twocolumn \fi % new version } % titlepage from report.cls \else % titlepage from report.cls \renewenvironment{titlepage} % titlepage from report.cls {% % titlepage from report.cls \if@twocolumn % titlepage from report.cls \@restonecoltrue\onecolumn % titlepage from report.cls \else % titlepage from report.cls \@restonecolfalse\newpage % titlepage from report.cls \fi % titlepage from report.cls %\thispagestyle{empty}% % deleted %\setcounter{page}\@ne % deleted }% % titlepage from report.cls %{\if@restonecol\twocolumn \else \newpage \fi % deleted, we want abstract on this page {\if@restonecol\twocolumn \fi % new version \if@twoside\else % titlepage from report.cls %\setcounter{page}\@ne % deleted \fi % titlepage from report.cls } % titlepage from report.cls \fi % titlepage from report.cls \if@titlepage % abstract from report.cls \renewenvironment{abstract}{% % abstract from report.cls % \titlepage % deleted \null\vfil % abstract from report.cls \@beginparpenalty\@lowpenalty % abstract from report.cls \begin{center}% % abstract from report.cls \bfseries \abstractname % abstract from report.cls \@endparpenalty\@M % abstract from report.cls \end{center}% % abstract from report.cls \ifthenelse{\boolean{strictSAND}} { % New \setlength{\parskip}{0.75ex} % New Don't indent the following paragraph(s) \setlength{\parindent}{0pt} % New Don't indent the following paragraph(s) \noindent\hspace{-0.50em} % New Don't indent the first paragraph }{}}% % New % {\par\vfil\null\endtitlepage} % deleted {\par\vfil\null} % new version \else % abstract from report.cls % {---------------------- We should never get here ------------------------} \ClassError{SANDreport.cls}{Abstract definition outside a title page.}{The SANDreport class cannot handle this case.} \fi % abstract from report.cls }{ % % Now for the changes to article.cls functions % % % In \@maketitle, we omit the \@date and insert the SAND number and so on % \renewcommand{\@maketitle}{ \doCover{} \newpage % \@maketitle from article.cls { % new \begin{center} % new % use framebox instead of makebox for debugging % new \makebox[\topleftwidth][t]{ % new \begin{minipage}[c][\topheight][t]{\topleftwidth} % new % There is nothing at top left % new \end{minipage} % new } % new \makebox[\topmiddlewidth][c]{ % new \begin{minipage}[c][\topheight][t]{\topmiddlewidth} % new \begin{center} % new \SANDnumVar\\ % new \SANDreleaseTypeVar\\ % new Printed \SANDprintDateVar\\ % new \ifthenelse{\boolean{SANDrePrintDateProvided}} { % new Reprinted \SANDrePrintDateVar\\ % new }{ % new } % new \ifthenelse{\boolean{SANDsupersedProvided}} { % new \bigskip % new \usebox{\SANDsupersedtempbox}\\ % new }{ % new } % new \end{center} % new \end{minipage} % new } % new % Add topright box to balance topleft to center topmiddle - MJK, 1/12/07 \makebox[\toprightwidth][c]{ % new \begin{minipage}[c][\topheight][t]{\toprightwidth} % new % There is nothing at top right % new \end{minipage} % new } % new \end{center} % new } % new \begin{center} % \@maketitle from article.cls \let \footnote \thanks % \@maketitle from article.cls {\LARGE \bf \@title\par} % \@maketitle from article.cls \vskip 1.5em % \@maketitle from article.cls {\large % \@maketitle from article.cls \lineskip .5em% % \@maketitle from article.cls \begin{tabular}[t]{c} % \@maketitle from article.cls \@author % \@maketitle from article.cls \end{tabular}\par % \@maketitle from article.cls } % \@maketitle from article.cls \end{center} % \@maketitle from article.cls \par % \@maketitle from article.cls \vskip 1.5em % \@maketitle from article.cls } % % For fancy headers, we have to redefine \maketitle. All we are doing, % is to activate the headers again, and then redefine \newpage so it % happens for every body page. % \renewcommand{\maketitle}{\par \begingroup % \maketitle from article.cls \renewcommand\thefootnote{\@fnsymbol\c@footnote}% % \maketitle from article.cls \def\@makefnmark{ % \maketitle from article.cls \rlap{\@textsuperscript{\normalfont\@thefnmark}}}% % \maketitle from article.cls \long\def\@makefntext##1{\parindent 1em\noindent % \maketitle from article.cls \hb@xt@1.8em{% % \maketitle from article.cls \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% % \maketitle from article.cls \if@twocolumn % \maketitle from article.cls \ifnum \col@number=\@ne % \maketitle from article.cls \@maketitle % \maketitle from article.cls \else % \maketitle from article.cls \twocolumn[\@maketitle]% % \maketitle from article.cls \fi % \maketitle from article.cls \else % \maketitle from article.cls \newpage % \maketitle from article.cls % Prevents figures from going at top of page. % \maketitle from article.cls \global\@topnum\z@ % \maketitle from article.cls \@maketitle % \maketitle from article.cls \fi % \maketitle from article.cls \SANDmarks{title} % new \@thanks % \maketitle from article.cls \endgroup % \maketitle from article.cls \setcounter{footnote}{0}% % \maketitle from article.cls \global\let\thanks\relax % \maketitle from article.cls \global\let\maketitle\relax % \maketitle from article.cls \global\let\@maketitle\relax % \maketitle from article.cls \global\let\@thanks\@empty % \maketitle from article.cls \global\let\@author\@empty % \maketitle from article.cls \global\let\@date\@empty % \maketitle from article.cls \global\let\@title\@empty % \maketitle from article.cls \global\let\title\relax % \maketitle from article.cls \global\let\author\relax % \maketitle from article.cls \global\let\date\relax % \maketitle from article.cls \global\let\and\relax % \maketitle from article.cls % % Now we renew \newpage so that from here on the markings % of the body are used. % \renewcommand{\newpage}{% % \newpage from latex.ltx \if@noskipsec % \newpage from latex.ltx \ifx \@nodocument\relax % \newpage from latex.ltx \leavevmode % \newpage from latex.ltx \global \@noskipsecfalse % \newpage from latex.ltx \fi % \newpage from latex.ltx \fi % \newpage from latex.ltx \if@inlabel % \newpage from latex.ltx \leavevmode % \newpage from latex.ltx \global \@inlabelfalse % \newpage from latex.ltx \fi % \newpage from latex.ltx \if@nobreak \@nobreakfalse \everypar{}\fi % \newpage from latex.ltx \par % \newpage from latex.ltx \vfil % \newpage from latex.ltx \penalty -\@M % \newpage from latex.ltx \SANDmarks{body} % new } % \newpage from latex.ltx } % \maketitle from article.sty \if@titlepage % \abstract from article.cls \renewenvironment{abstract}{% % \abstract from article.cls \titlepage % \abstract from article.cls \null\vfil % \abstract from article.cls \@beginparpenalty\@lowpenalty % \abstract from article.cls \begin{center}% % \abstract from article.cls \bfseries \abstractname % \abstract from article.cls \@endparpenalty\@M % \abstract from article.cls \end{center}}% % \abstract from article.cls % In strict mode we don't want paragraph % New % indentation in the abstract % New \ifthenelse{\boolean{strictSAND}} { % New \setlength{\parskip}{0.75ex} % New Don't indent the following paragraph(s) \setlength{\parindent}{0pt} % New Don't indent the following paragraph(s) \noindent\hspace{-0.7em} % New Don't indent the first paragraph }{} % New {\par\vfil\null\endtitlepage} % \abstract from article.cls \else % \abstract from article.cls \renewenvironment{abstract}{% % \abstract from article.cls \if@twocolumn % \abstract from article.cls \section*{\abstractname}% % \abstract from article.cls \else % \abstract from article.cls \small % \abstract from article.cls \begin{center}% % \abstract from article.cls {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% ...from article.cls \end{center}% % \abstract from article.cls \quotation % \abstract from article.cls \fi % \abstract from article.cls % In strict mode we don't want paragraph % New % indentation in the abstract % New \ifthenelse{\boolean{strictSAND}} { % New \setlength{\parskip}{0.75ex} % New Don't indent the following paragraph(s) \setlength{\parindent}{0pt} % New Don't indent the following paragraph(s) \noindent\hspace{-0.7em} % New Don't indent the first paragraph }{} % New } % \abstract from article.cls {\if@twocolumn\else\endquotation\fi} % \abstract from article.cls \fi } % ****************************************************************************** % Do some checking at the end of the document % \AtEndDocument{ % Do some more usage checking \ifthenelse{\boolean{SANDmainProvided}} { }{ \ClassError{SANDreport.cls}{\@backslashchar SANDmain not provided}{Add \@backslashchar SANDmain before your introduction (first) section of your document} } % % Put the Sandia Logo on the back page % \cleardoublepage % We're on the inside end page now \mbox{} % Some invisible text \vfill \hfill {\CoverFont{m}{6}{6pt} \SANDreportVersionOnly} \setboolean{SANDmarkingsRequired}{false} \thispagestyle{empty} \pagestyle{empty} \newpage % Now we're on the outside of the end page \vspace*{\fill} % Move the logo to the bottom of the page \thispagestyle{empty} \begin{center} \includegraphics{snllineblk} \end{center} } % End of AtEndDocument{} pyutilib-6.0.0/doc/workflow/abstract.tex000066400000000000000000000007611367314503500203350ustar00rootroot00000000000000We describe the capabilities of the \code{pyutilib.workflow} software package. This package provides Python classes that provide an intuitive interface for defining and executing scientific workflows. Further, \code{pyutilib.workflow} is a native Python package, so it can be used to define workflows within Python software applications. Additionally, \code{pyutilib.workflow} includes a utility for creating a command-line driver that execute workflows as subcommands of a command-line script. pyutilib-6.0.0/doc/workflow/acknow.tex000066400000000000000000000006521367314503500200130ustar00rootroot00000000000000We are grateful to John Siirola for discussing the design of multi-task connectors, which strongly influenced the design currently employed in \code{pyutilib.workflow}. Sandia National Laboratories is a multi-program laboratory operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin company, for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-AC04-94AL85000. pyutilib-6.0.0/doc/workflow/coopr.bib000066400000000000000000000321711367314503500176100ustar00rootroot00000000000000 @book{HeiCou01, editor="G. Heineman and W. Councill", title="Component-Based Software Engineering, Putting the Pieces Together", publisher="Addison-Wesley", year=2001 } @article{OS, author="Robert Fourer and Jun Ma and Kipp Martin", title="Optimization Services: A framework for distributed optimization", journal="Mathematical Programming", note="(submitted)", year=2008 } @techreport{DAKOTA, author = "Michael Scott Eldred and Shane L. Brown and Danny M. Dunlavy and David M. Gay and Laura P. Swiler and Anthony Andrew Giunta and William E. Hart and Jean-Paul Watson and John P. Eddy and Josh D. Griffin and Patty D. Hough and Tammy G. Kolda and Monica L. Martinez-Canales and Pamela J. Williams", title="{DAKOTA}, a multilevel parallel object-oriented framework for design optimization, parameter estimation, uncertainty quantification, and sensitivity analysis: Version 4.0 users manual", institution="Sandia National Laboratories", year=2006, number="SAND2006-6337", funding={LDRD,LMSV} } @inbook{Hul02, author="Hultberg, Tim", title="Formulation of Linear Optimization Problems in C++", editor="Nielsen, Soeren S.", booktitle="Programming Languages and Systems in Computational Economics and Finance", publisher="Kluwer Academic Press", year=2002 } @misc{PythonVSJava, key="PythonVSJava", title="Python \& Java: A side-by-side comparison", howpublished="\url{http://www.ferg.org/projects/python_java_side-by-side.html}", year=2008 } @misc{flopcpp, key="FLOPC++", title="{FLOPC++} Home Page", howpublished="\url{https://projects.coin-or.org/FlopC++}", year=2008 } @misc{Psyco, key="Psyco", title="Psyco", howpublished="\url{http://psyco.sourceforge.net/}", year=2008 } @book{Kal04, author="Kallrath, Josef", title="Modeling Languages in Mathematical Optimization", publisher="Kluwer Academic Publishers", year=2004 } @book{Aks98, author="Aksen, Deniz", title="Teach yourself {GAMS}", publisher="Bogzici University Press", address="Istanbul, Turkey", year=1998 } @misc{GAMS, key="GAMS", title="{GAMS} Home Page", howpublished="\url{http://www.gams.com}", year=2008 } @misc{OPL, key="OPL", title="{OPL} Home Page", howpublished="\url{http://www.ilog.com/products/oplstudio}", year=2008 } @misc{LINDO, key="LINDO", title="{LINDO} Home Page", howpublished="\url{http://www.lindo.com}", year=2008 } @misc{cplex, key="cplex", title="{ILOG CPLEX 10.1 Solver Engine}", howpublished="\url{www.ilog.com/products/cplex}", year=2009 } @misc{AMPL, key="AMPL", title="{AMPL} Home Page", howpublished="\url{http://www.ampl.com/}", year=2008 } @book{FouGay03, author="Fourer, R. and Gay, D. M. and Kernighan, B. W.", title="{AMPL}: A Modeling Language for Mathematical Programming, 2nd Ed.", address="Pacific Grove, CA", publisher="Brooks/Cole--Thomson Learning", year=2003 } @misc{OptimJ, key="OptimJ", title="Ateji Home Page", howpublished="\url{http://www.ateji.com}", year=2008 } @misc{AIMMS, key="AIMMS", title="{AIMMS} Home Page", howpublished="\url{http://www.aimms.com}", year=2008 } @misc{CVXOPT, key="CVXOPT", title="{CVXOPT} Home Page", howpublished="\url{http://abel.ee.ucla.edu/cvxopt}", year=2008 } @misc{NLPy, key="NLPy", title="{NLPy} Home Page", howpublished="\url{http://nlpy.sourceforge.net/}", year=2008 } @misc{GLPK, key="GLPK", title={GLPK: GNU Linear Programming Toolkit}, howpublished="\url{http://www.gnu.org/software/glpk/}", year=2009 } @misc{Pyipopt, key="Pyipopt", title="{Pyipopt} Home Page", howpublished="\url{http://code.google.com/p/pyipopt/}", year=2008 } @misc{PuLP, key="PuLP", title="{PuLP}: A Python Linear Programming Modeler", howpublished="\url{http://130.216.209.237/engsci392/pulp/FrontPage}", year=2008 } @misc{Pyomo, key="Pyomo", title="{Pyomo}: Python Optimization Modeling Objects", howpublished="\url{https://software.sandia.gov/trac/pyomo}", year=2010 } @misc{OpenOpt, key="OpenOpt", title="{OpenOpt} Home Page", howpublished="\url{http://scipy.org/scipy/scikits/wiki/OpenOpt}", year=2008 } @Misc{SciPy, author = {Eric Jones and Travis Oliphant and Pearu Peterson and others}, title = {{SciPy}: Open source scientific tools for {Python}}, year = {2001--}, url = "http://www.scipy.org/" } @manual{SAGE, Key = {Sage}, Author = {William Stein}, Organization = {The Sage~Group}, Title = {{Sage}: {O}pen {S}ource {M}athematical {S}oftware ({V}ersion 2.10.2)}, note= {{\tt http://www.sagemath.org}}, Year = 2008} @inproceedings{BeaLom97, author="D.M. Beazley and P.S. Lomdahl", title="Building Flexible Large-Scale Scientific Computing Applications with Scripting Languages", booktitle="Proc. 8th SIAM Conference on Parallel Processing for Scientific Computing", year=1997 } @article{PaiMer04, author="Painter, Jay and Merritt, Ethan A.", title="{mmLib} {Python} toolkit for manipulating annotated structural models of biological macromolecules", journal="J. Applied Crystallography", year=2004, volume=37, pages="174-178" } @article{Oli07, author="Travis E. Oliphant", title="Python for Scientific Computing", journal="Computing in Science and Engineering", year=2007, pages="10-20", month="May/June" } @misc{TOMLAB, key="TOMLAB", title="{TOMLAB} Optimization Environment", howpublished="\url{http://www.tomopt.com/tomlab}", year=2008 } @misc{ACRO, key="ACRO", title="{ACRO} Optimization Framework", howpublished="\url{http://software.sandia.gov/acro}", year=2009 } @misc{PyUtilib, key="PyUtilib", title="{PyUtilib}: A Python Utility Library", howpublished="\url{http://software.sandia.gov/pyutilib}", year=2009 } @misc{APLEpy, key="APLEpy", title="{APLEpy}: An Open Source Algebraic Programming Language extension for Python", howpublished="\url{http://aplepy.sourceforge.net/}", year=2005 } @article{KurGra07, title="A Common Medium for Programming Operations-Research Models", author="Suleyman Karabuk and F. Hank Grant", journal="IEEE Software", year=2007, pages="39-47" } @article{Marsten, author= "Roy E. Marsten", title = "The Design of the XMP Programming Library", journal = "ACM Transactions on Mathematical Software", volume = 7, number = 4, year = 1981, pages = "481-497" } @article{Geoffrion, author = "Arthur M. Geoffrion", title = "An Introduction to Structured Modeling", journal = "Management Science", volume = 33, number = 5, year = 1987, pages = "547-588" } @inproceedings{Har09a, author = {{Hart}, W.~E.}, title = "{Python Optimization Modeling Objects (Pyomo)}", booktitle = {Operations Research and Cyber-Infrastructure}, year = 2009, editor = {{Chinneck}, J.~W. and {Kristjansson}, B. and {Saltzman}, M.~J. }, pages = {3-+}, doi = {10.1007/978-0-387-88843-9_1}, adsurl = {http://adsabs.harvard.edu/abs/2009orci.book....3H}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @misc{Forrester, title="Open Source Softwares Expanding Role in the Enterprise", year=2007, author="Forrester Consulting", howpublished="\url{http://www.unisys.com/eprise/main/admin/corporate/doc/Forrester_research-open_source_buying_behaviors.pdf}", } @article{tratt__dyamically_typed_languages, author = "Laurence Tratt", title = "Dynamically Typed Languages", journal = "Advances in Computers", editor = "Marvin V. Zelkowitz", volume = "77", year = "2009", month = Jul, pages = {149-184} } @article{621567, author = {Prechelt, Lutz}, title = {An Empirical Comparison of Seven Programming Languages}, journal = {Computer}, volume = {33}, number = {10}, year = {2000}, issn = {0018-9162}, pages = {23--29}, doi = {http://dx.doi.org/10.1109/2.876288}, publisher = {IEEE Computer Society Press}, address = {Los Alamitos, CA, USA}, } @article{DDJ, author="Gigi Sayfan", title="Building Your Own Plugin Framework", journal="Dr. Dobbs Journal", month="Nov", year=2007, howpublished="\url{http://www.ddj.com}" } @book{Szy98, author="C. Szyperski", title="Component Software: Beyond Object-Oriented Programming", publisher="ACM Press", location="New York", year=1998 } @article{NEOS, author="Elizabeth D. Dolan and Robert Fourer and Jean-Pierre Goux and Todd S. Munson and Jason Sarich", title="Kestrel: An Interface from Optimization Modeling Systems to the {NEOS} Server", journal="{INFORMS} Journal on Computing", volume=20, number=4, year=2008, pages="525-538" } %\bibitem{ampl} http://www.ampl.com. @book{spbook, author="Birge, J.R. and Louveaux, F.", title="Introduction to Stochastic Programming", publisher="Springer", year=1997 } @article{sizes, author="S. Jorjani and C.H. Scott and D.L. Woodruff", title="Selection of an Optimal Subset of Sizes", journal="International journal of production research", volume=37, pages="3697-3710", year=1999 } @article{lokwood, author="A. L{\o}kketangen and D.L. Woodruff", title="Progressive Hedging and Tabu Search Applied to Mixed-Integer (0,1) Multistage Stochastic Programming", journal="Journal of Heuristics", volume=2, pages="111-128", year=1996 } @article{RockafellarWets, author="R.T. Rockafellar and R. J-B. Wets", title="Scenarios and policy aggregation in optimization under uncertainty", journal="Mathematics of Operations Research", year=1991, pages="119--147" } @techreport{phinnovate, author="J-P Watson and D.L. Woodruff", title="Progressive Hedging Innovations for a Class of Stochastic Mixed-Integer Resource Allocation Problems", institution="Sandia National Laboratories", year=2007 } @article{tabuhash, author="D.L. Woodruff and E. Zemel", title="Hashing Vectors for Tabu Search", journal="Annals of Operations Research", volume=41, year=1993, pages="123-137" } @misc{Trac, key="Trac", title="Trac", howpublished="\url{http://trac.edgewall.org/}", year=2009 } @misc{Zope, key="Zope", title="Zope", howpublished="\url{http://www.zope.org/}", year=2009 } @misc{Envisage, key="Envisage", title="{EnvisageCore}", howpublished="\url{https://svn.enthought.com/enthought/wiki/EnvisageThree/core.html}", year=2009 } @misc{SprinklesPy, key="SprinklesPy", title="{SprinklesPy}", howpublished="\url{http://termie.pbworks.com/SprinklesPy}", year=2009 } @misc{TCA, key="TCA", title="Trac Component Architecture", howpublished="\url{http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture}", year=2009 } @techreport{Mez94, author="Meza, J. C.", title="{OPT++}: An object-oriented class library for nonlinear optimization", institution="Sandia National Laboratories", number="SAND94-8225", year=1994 } @techreport{CORBA_CMS, author={Object Management Group}, title="{CORBA} Component Model Specification, Version 4.0", institution="Object Management Group, Inc.", year=2006, howpublished="\url{http://www.omg.org}" } @inproceedings{Mar05, author={Rapha\"{e}l Marvie}, title="Picolo: A simple python framework for introducing component principles", booktitle="Euro Python Conference 2005", month="June", year=2005 } @article{cca, author="Benjamin A. Allan and {et al.}", title="A component architecture for high-performance scientific computing", journal="Intl J. of High Performance Computing Applications", volume=20, number=2, year=2006, pages="163-202" } # ------------------------ @misc{pyphant, key="pyphant", title="pyphant", howpublished="\url{http://sourceforge.net/projects/pyphant/}", year=2010 } @misc{pwe, key="python-workflow-engine", title="Python Workflow Engine", howpublished="\url{http://code.google.com/p/python-workflow-engine}", year=2010 } @misc{SpiffWorkflow, key="SpiffWorkflow", title="Spiff Workflow", howpublished="\url{http://wiki.github.com/knipknap/SpiffWorkflow}", year=2010 } @misc{VisTrails, key="VisTrails", title="VisTrails", howpublished="\url{http://www.vistrails.org}", year=2010 } @inproceedings{Weaver, title="Weaver: Integrating distributed computing abstractions into scientific workflows using python", author="Bui, Peter and Yu, Li and Thain, Douglas", booktitle="Challenges of Large Applications in Distributed Environments at ACM HPDC 2010", month="June", year=2010, howpublished="\url{http://cse.nd.edu/~ccl/research/pubs/weaver-clade2010.pdf}" } @misc{Swift, key="Swift", title="Swift", howpublished="\url{http://www.ci.uchicago.edu/swift/}", year=2010 } @techreport{PCA, title={The PyUtilib Component Architecture}, author="William E. Hart and John D. Siirola", institution="Sandia National Laboratories", year=2010, month="May", number="SAND2010-2516" } @techreport{SPOT, author="William E. Hart and Jonathan Berry and Regan Murray and Cindy A. Phillips and Lee Ann Riesen and Jean- Paul Watson", title="{SPOT}: A sensor placement optimization toolkit for drinking water contaminant warning system design", year=2007, institution="Sandia National Laboratories", number="SAND2007-4393" } pyutilib-6.0.0/doc/workflow/example_exec.py000066400000000000000000000012361367314503500210170ustar00rootroot00000000000000import os def strip_example(file): base, name = os.path.split(file) prefix = os.path.splitext(name)[0] if prefix.endswith('_strip'): return print "STRIPPING",file OUTPUT = open(base+'/'+prefix+'_strip.py','w') INPUT = open(file,'r') for line in INPUT: if line[0] == '#' and '@' in line: continue print >>OUTPUT, line, INPUT.close() OUTPUT.close() for root, dirs, files in os.walk(os.path.abspath(os.path.dirname(__file__)), topdown=True): for name in files: if name == 'example_exec.py': continue if name.endswith('.py'): strip_example(root+'/'+name) pyutilib-6.0.0/doc/workflow/example_macros.tex000066400000000000000000000066521367314503500215360ustar00rootroot00000000000000%\newfloat{example}{htbp}{lop} %\floatname{example}{Example} %\newcommand{\code}[1]{\textmd{\texttt{#1}}} %\newcommand{\todo}[1]{\textbf{\textit{TODO: #1}}} %\newcommand{\comment}[1]{\marginpar{\textit{#1}}} %\newenvironment{notebox}% %{\begin{table}\begin{center}\begin{Sbox}\begin{minipage}{.8\textwidth}{\bf NOTE:}} %{\end{minipage}\end{Sbox}\fbox{\TheSbox}\end{center}\end{table}} % %\newenvironment{Xnotebox}% %{\begin{table}\begin{center}\begin{svgraybox}\begin{minipage}{.8\textwidth}{\bf NOTE:}} %{\end{minipage}\end{svgraybox}\end{center}\end{table}} \lstnewenvironment{otherlisting}% {\lstset{ aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, basicstyle=\footnotesize\ttfamily , backgroundcolor=\color{white} }} {} \lstnewenvironment{qlisting}% {\lstset{ aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, basicstyle=\footnotesize\ttfamily , backgroundcolor=\color{white}, language=Python }} {} \lstnewenvironment{qautobreaklisting}% {\lstset{ aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, breaklines=true, breakatwhitespace=true, prebreak={\textbackslash}, basicstyle=\footnotesize\ttfamily , backgroundcolor=\color{white}, language=Python }} {} % % Syntax: \listing{}{}{}{} % % NOTE: the firstline and lastline data is automatically generated. For example: % % \listing{foo}{bar} % % is initialized to find the 'bar' anchor in file 'foo'. Additionally, if we have % % \listing{foo}{} % % then the entire file 'foo' is include. % \newcommand{\listing}[4]{\lstinputlisting[firstline=#3,lastline=#4, aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, basicstyle=\footnotesize\ttfamily , backgroundcolor=\color{white}, language=Python ]{#1}} \newcommand{\autobreaklisting}[4]{\lstinputlisting[firstline=#3,lastline=#4, aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, breaklines=true, breakatwhitespace=true, prebreak={\textbackslash}, basicstyle=\footnotesize\ttfamily , backgroundcolor=\color{white}, language=Python ]{#1}} \newcommand{\scriptsizelisting}[4]{\lstinputlisting[firstline=#3,lastline=#4, aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, basicstyle=\scriptsize\ttfamily , backgroundcolor=\color{white}, language=Python ]{#1}} \newcommand{\tinylisting}[4]{\lstinputlisting[firstline=#3,lastline=#4, aboveskip=0.3em, belowskip=0.3em, xleftmargin=1.5em, xrightmargin=1.5em, showspaces=false, showstringspaces=false, columns=fullflexible, frame=single, basicstyle=\tiny\ttfamily , backgroundcolor=\color{white}, language=Python ]{#1}} pyutilib-6.0.0/doc/workflow/examples/000077500000000000000000000000001367314503500176225ustar00rootroot00000000000000pyutilib-6.0.0/doc/workflow/examples/driver1.py000066400000000000000000000002521367314503500215470ustar00rootroot00000000000000import pyutilib.workflow import tasks_yz driver = pyutilib.workflow.TaskDriver() driver.register_task('TaskZ') driver.register_task('TaskY') print(driver.parse_args()) pyutilib-6.0.0/doc/workflow/examples/driver2.py000066400000000000000000000006701367314503500215540ustar00rootroot00000000000000import pyutilib.workflow import tasks_yz driver = pyutilib.workflow.TaskDriver(prog='myprog', description='This is the description of this task driver', epilog="""********************** This is more text that describes this command driver. Note that the format of the epilog string is preserved in the help output! ********************** """) driver.register_task('TaskZ') driver.register_task('TaskY') print(driver.parse_args()) pyutilib-6.0.0/doc/workflow/examples/driver_1.sh000077500000000000000000000001011367314503500216640ustar00rootroot00000000000000#!/bin/sh # @code: python driver1.py TaskZ --x=3 --y=4 # @:code pyutilib-6.0.0/doc/workflow/examples/driver_1.txt000066400000000000000000000000051367314503500220710ustar00rootroot00000000000000z: 7 pyutilib-6.0.0/doc/workflow/examples/driver_2.sh000077500000000000000000000000741367314503500216760ustar00rootroot00000000000000#!/bin/sh # @code: python driver2.py TaskZ --help # @:code pyutilib-6.0.0/doc/workflow/examples/driver_2.txt000066400000000000000000000001741367314503500221010ustar00rootroot00000000000000usage: myprog TaskZ [-h] [--x X] [--y Y] optional arguments: -h, --help show this help message and exit --x X --y Y pyutilib-6.0.0/doc/workflow/examples/driver_3.sh000077500000000000000000000000661367314503500217000ustar00rootroot00000000000000#!/bin/sh # @code: python driver2.py --help # @:code pyutilib-6.0.0/doc/workflow/examples/driver_3.txt000066400000000000000000000006231367314503500221010ustar00rootroot00000000000000usage: myprog [-h] {TaskY,TaskZ} ... This is the description of this task driver positional arguments: {TaskY,TaskZ} Sub-commands TaskZ TaskY optional arguments: -h, --help show this help message and exit ********************** This is more text that describes this command driver. Note that the format of the epilog string is preserved in the help output! ********************** pyutilib-6.0.0/doc/workflow/examples/dummy/000077500000000000000000000000001367314503500207555ustar00rootroot00000000000000pyutilib-6.0.0/doc/workflow/examples/dummy/bar000066400000000000000000000000001367314503500214320ustar00rootroot00000000000000pyutilib-6.0.0/doc/workflow/examples/dummy/foo000066400000000000000000000000001367314503500214510ustar00rootroot00000000000000pyutilib-6.0.0/doc/workflow/examples/example1.py000066400000000000000000000007721367314503500217160ustar00rootroot00000000000000import pyutilib.workflow # @class: class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @:class # @usage: A = TaskA() w = pyutilib.workflow.Workflow() w.add(A) print(w(x=1, y=3)) # @:usage pyutilib-6.0.0/doc/workflow/examples/example1.txt000066400000000000000000000000051367314503500220720ustar00rootroot00000000000000z: 4 pyutilib-6.0.0/doc/workflow/examples/example10.py000066400000000000000000000012261367314503500217710ustar00rootroot00000000000000from pyutilib.workflow import Resource, Task, Workflow class BusyResource(Resource): def __init__(self, name=None): Resource.__init__(self) self._counter = 1 def available(self): if self._counter > 0: print("BUSY %d" % self._counter) self._counter -= 1 return False return True class TaskA(Task): def __init__(self, *args, **kwds): Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.outputs.declare('x', self.inputs.x) def execute(self): pass A = TaskA() A.add_resource(BusyResource()) w = Workflow() w.add(A) print(w(x=1)) pyutilib-6.0.0/doc/workflow/examples/example10.txt000066400000000000000000000000141367314503500221520ustar00rootroot00000000000000BUSY 1 x: 1 pyutilib-6.0.0/doc/workflow/examples/example1a.py000066400000000000000000000007671367314503500220630ustar00rootroot00000000000000import pyutilib.workflow class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @ex: A = TaskA() w = pyutilib.workflow.Workflow() w.add(A) A.inputs.x = 1 A.inputs.y = 3 print(w()) # @:ex pyutilib-6.0.0/doc/workflow/examples/example1a.txt000066400000000000000000000000051367314503500222330ustar00rootroot00000000000000z: 4 pyutilib-6.0.0/doc/workflow/examples/example1b.py000066400000000000000000000011641367314503500220540ustar00rootroot00000000000000import pyutilib.workflow # @ex: class TaskAA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.add_argument('--x', dest='x', type=int) self.add_argument('--y', dest='y', type=int) self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y AA = TaskAA() w = pyutilib.workflow.Workflow() w.add(AA) w.set_options(['--x=1', '--y=3', '--bad=4']) print(w()) # @:ex pyutilib-6.0.0/doc/workflow/examples/example1b.txt000066400000000000000000000000051367314503500222340ustar00rootroot00000000000000z: 4 pyutilib-6.0.0/doc/workflow/examples/example1c.py000066400000000000000000000011541367314503500220540ustar00rootroot00000000000000import pyutilib.workflow class TaskAA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.add_argument('--x', dest='x', type=int) self.add_argument('--y', dest='y', type=int) self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @ex: AA = TaskAA() w = pyutilib.workflow.Workflow() w.add(AA) w.set_options(['--x=1', '--y=3']) print(w(y=4)) # @:ex pyutilib-6.0.0/doc/workflow/examples/example1c.txt000066400000000000000000000000051367314503500222350ustar00rootroot00000000000000z: 5 pyutilib-6.0.0/doc/workflow/examples/example2.py000066400000000000000000000015511367314503500217130ustar00rootroot00000000000000import pyutilib.workflow class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @class: class TaskB(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('X') self.outputs.declare('Z') def execute(self): """Compute the sum of the inputs.""" self.Z = 2*self.X # @:class # @usage: A = TaskA() B = TaskB() A.inputs.x = B.outputs.Z w = pyutilib.workflow.Workflow() w.add(A) print(w(X=1, y=3)) # @:usage pyutilib-6.0.0/doc/workflow/examples/example2.txt000066400000000000000000000000051367314503500220730ustar00rootroot00000000000000z: 5 pyutilib-6.0.0/doc/workflow/examples/example3.py000066400000000000000000000016671367314503500217240ustar00rootroot00000000000000import pyutilib.workflow class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @class: class TaskC(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('X') self.inputs.declare('y') self.outputs.declare('W') self.outputs.declare('Z') def execute(self): """Compute the sum of the inputs.""" self.W = self.X+self.y self.Z = 2*self.W # @:class A = TaskA() C = TaskC() A.inputs.x = C.outputs.Z w = pyutilib.workflow.Workflow() w.add(A) print(w(X=1, y=3)) pyutilib-6.0.0/doc/workflow/examples/example3.txt000066400000000000000000000000131367314503500220730ustar00rootroot00000000000000W: 4 z: 11 pyutilib-6.0.0/doc/workflow/examples/example3a.py000066400000000000000000000017771367314503500220670ustar00rootroot00000000000000import pyutilib.workflow class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @class: class TaskD(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('X') self.inputs.declare('y') self.inputs.declare('a', constant=True) self.outputs.declare('W') self.outputs.declare('Z') def execute(self): """Compute the sum of the inputs.""" self.W = self.X+self.y+self.a self.Z = 2*self.W # @:class A = TaskA() D = TaskD() D.inputs.a = 100 A.inputs.x = D.outputs.Z w = pyutilib.workflow.Workflow() w.add(A) print(w(X=1, y=3)) pyutilib-6.0.0/doc/workflow/examples/example3a.txt000066400000000000000000000000161367314503500222370ustar00rootroot00000000000000W: 104 z: 211 pyutilib-6.0.0/doc/workflow/examples/example4.py000066400000000000000000000020471367314503500217160ustar00rootroot00000000000000import pyutilib.workflow class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y class TaskC(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('X') self.inputs.declare('y') self.outputs.declare('W') self.outputs.declare('Z') def execute(self): """Compute the sum of the inputs.""" self.W = self.X+self.y self.Z = 2*self.W # @ex: A = TaskA() C = TaskC() A.inputs.x = C.outputs.Z w1 = pyutilib.workflow.Workflow() w1.add(A) AA = TaskA() AA.inputs.x = w1.outputs.W AA.inputs.y = w1.outputs.z w2 = pyutilib.workflow.Workflow() w2.add(AA) print(w2(X=1, y=3)) # @:ex pyutilib-6.0.0/doc/workflow/examples/example4.txt000066400000000000000000000000061367314503500220760ustar00rootroot00000000000000z: 15 pyutilib-6.0.0/doc/workflow/examples/example5.py000066400000000000000000000024071367314503500217170ustar00rootroot00000000000000import pyutilib.workflow import math # @class: class TaskD(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='append') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = sum(self.x) # @:class # @usage: class TaskE(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('Y') self.outputs.declare('Z') def execute(self): """Compute the sum of the inputs.""" self.Z = int(math.floor(self.Y/7.0)) D = TaskD() # there is currently an issue with memory leaks and the workflow/task/port structure. # to correct this issue in the interim, all tasks that are to be retained in memory # (not garbage collected) should be referenced by the user. thus, the introduction of # e_tasks. ultimately, the workflow should own a reference to all composite tasks. e_tasks = [] for i in range(100): E = TaskE() e_tasks.append(E) D.inputs.x = E.outputs.Z w = pyutilib.workflow.Workflow() w.add(D) print(w(Y=100)) # @:usage pyutilib-6.0.0/doc/workflow/examples/example5.txt000066400000000000000000000000101367314503500220720ustar00rootroot00000000000000z: 1400 pyutilib-6.0.0/doc/workflow/examples/example6.log000066400000000000000000000000421367314503500220420ustar00rootroot00000000000000Options: z = {'a': 1, 'A': 2} pyutilib-6.0.0/doc/workflow/examples/example6.py000066400000000000000000000027411367314503500217210ustar00rootroot00000000000000import pyutilib.workflow # @ex: class TaskF1(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('a',) self.inputs.declare('aval') self.outputs.declare('a', self.inputs.a) self.outputs.declare('aval', self.inputs.aval) def execute(self): pass class TaskF2(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('A',) self.inputs.declare('Aval') self.outputs.declare('A', self.inputs.A) self.outputs.declare('Aval', self.inputs.Aval) def execute(self): pass class TaskG(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='map') self.inputs.declare('y', action='map') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = {} for key in self.x: self.z[ self.x[key] ] = self.y[key] F1 = TaskF1() F2 = TaskF2() G = TaskG() G.inputs.x = F1.outputs.a G.inputs.y = F1.outputs.aval G.inputs.x = F2.outputs.A G.inputs.y = F2.outputs.Aval w = pyutilib.workflow.Workflow() w.add(G) print("IGNORE %s" % str(w(a='a', aval=1, A='A', Aval=2))) # @:ex pyutilib-6.0.0/doc/workflow/examples/example6.txt000066400000000000000000000000331367314503500221000ustar00rootroot00000000000000IGNORE z: {'a': 1, 'A': 2} pyutilib-6.0.0/doc/workflow/examples/example6a.py000066400000000000000000000027411367314503500220620ustar00rootroot00000000000000import pyutilib.workflow # @ex: class TaskF1(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('a',) self.inputs.declare('aval') self.outputs.declare('a', self.inputs.a) self.outputs.declare('aval', self.inputs.aval) def execute(self): pass class TaskF2(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('A',) self.inputs.declare('Aval') self.outputs.declare('A', self.inputs.A) self.outputs.declare('Aval', self.inputs.Aval) def execute(self): pass class TaskG(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='map') self.inputs.declare('y', action='map') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = {} for key in self.x: self.z[ self.x[key] ] = self.y[key] F1 = TaskF1() F2 = TaskF2() G = TaskG() G.inputs.x = F1.outputs.a G.inputs.y = F1.outputs.aval G.inputs.x = F2.outputs.A G.inputs.y = F2.outputs.Aval w = pyutilib.workflow.Workflow() w.add(G) print("IGNORE %s" % str(w(a='a', aval=1, A='A', Aval=2))) # @:ex pyutilib-6.0.0/doc/workflow/examples/example6a.txt000066400000000000000000000000331367314503500222410ustar00rootroot00000000000000IGNORE z: {'a': 1, 'A': 2} pyutilib-6.0.0/doc/workflow/examples/example7.py000066400000000000000000000020221367314503500217120ustar00rootroot00000000000000import pyutilib.workflow import os.path import os currdir = os.path.dirname(os.path.abspath(__file__))+os.sep import sys if sys.platform.startswith('win'): INPUT = open('example7.txt','r') for line in INPUT: sys.stdout.write(line) INPUT.close() else: # @ex: class TaskH(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('dir') self.outputs.declare('list') self.add_resource(pyutilib.workflow.ExecutableResource('ls')) def execute(self): self.resource('ls').run(self.dir, logfile=currdir+'logfile') self.list = [] INPUT = open(currdir+'logfile','r') for line in INPUT: self.list.append( line.strip() ) INPUT.close() self.list.sort() H = TaskH() w = pyutilib.workflow.Workflow() w.add(H) print(w(dir=currdir+'dummy')) # @:ex if os.path.exists(currdir+'logfile'): os.remove(currdir+'logfile') pyutilib-6.0.0/doc/workflow/examples/example7.txt000066400000000000000000000000261367314503500221030ustar00rootroot00000000000000list: - 'bar' - 'foo' pyutilib-6.0.0/doc/workflow/examples/example7a.py000066400000000000000000000020571367314503500220630ustar00rootroot00000000000000import pyutilib.workflow import os.path import os currdir = os.path.dirname(os.path.abspath(__file__))+os.sep import sys if sys.platform.startswith('win'): INPUT = open('example7a.txt','r') for line in INPUT: sys.stdout.write(line) INPUT.close() else: # @ex: class TaskH(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('dir') self.outputs.declare('list') self.add_resource(pyutilib.workflow.ExecutableResource(executable='/bin/ls')) def execute(self): self.resource('ls').run(self.dir, logfile=currdir+'logfile', debug=True) self.list = [] INPUT = open(currdir+'logfile','r') for line in INPUT: self.list.append( line.strip() ) INPUT.close() self.list.sort() H = TaskH() w = pyutilib.workflow.Workflow() w.add(H) print(w(dir=currdir+'dummy')) # @:ex if os.path.exists(currdir+'logfile'): os.remove(currdir+'logfile') pyutilib-6.0.0/doc/workflow/examples/example7a.txt000066400000000000000000000001511367314503500222430ustar00rootroot00000000000000Running... /bin/ls /home/coopr/src/python/src/pyutilib/doc/workflow/examples/dummy list: - 'bar' - 'foo' pyutilib-6.0.0/doc/workflow/examples/example8.py000066400000000000000000000024461367314503500217250ustar00rootroot00000000000000import pyutilib.workflow # @class: class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('z') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = -1*self.z class TaskB(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('y') self.outputs.declare('y') def execute(self): """Compute the sum of the inputs.""" self.y = -1*self.y class TaskC(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='store_any') self.outputs.declare('x') def execute(self): pass # @:class # @usage: A = TaskA() B = TaskB() C = pyutilib.workflow.TaskFactory('workflow.branch') C.add_branch(True, A) C.add_branch(False, B) D = TaskC() D.inputs.x = A.outputs.z D.inputs.x = B.outputs.y w = pyutilib.workflow.Workflow() w.add(C) print(w(value=True, z=1, y=2)) w.reset() print(w(value=False, z=1, y=2)) # @:usage pyutilib-6.0.0/doc/workflow/examples/example8.txt000066400000000000000000000000141367314503500221010ustar00rootroot00000000000000x: -1 x: -2 pyutilib-6.0.0/doc/workflow/examples/example9a.py000066400000000000000000000012261367314503500220620ustar00rootroot00000000000000import pyutilib.workflow # @code: class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y B = pyutilib.workflow.TaskFactory('workflow.selection') A = TaskA() A.inputs.x = B.outputs.selection w = pyutilib.workflow.Workflow() w.add(B) print(w(index='a', y=100, data={'a':1, 'b':2})) w.reset() print(w(index='b', y=100, data={'a':1, 'b':2})) # @:code pyutilib-6.0.0/doc/workflow/examples/example9a.txt000066400000000000000000000000161367314503500222450ustar00rootroot00000000000000z: 101 z: 102 pyutilib-6.0.0/doc/workflow/examples/example9b.py000066400000000000000000000021231367314503500220600ustar00rootroot00000000000000import pyutilib.workflow # @code: class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', constant=True) self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y class TaskZ(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('z', action='store_any') self.outputs.declare('z', self.inputs.z) def execute(self): pass B = pyutilib.workflow.TaskFactory('workflow.switch') A1 = TaskA() A1.inputs.x = 1 B.add_branch('a', A1) A2 = TaskA() A2.inputs.x = -2 B.add_branch('b', A2) Z = TaskZ() Z.inputs.z = A1.outputs.z Z.inputs.z = A2.outputs.z w = pyutilib.workflow.Workflow() w.add(B) print("Branch a") print(w(value='a', y=100)) w.reset() print("Branch b") print(w(value='b', y=100)) # @:code try: print(w(value='c', y=100)) except ValueError: pass pyutilib-6.0.0/doc/workflow/examples/example9b.txt000066400000000000000000000000371367314503500222510ustar00rootroot00000000000000Branch a z: 101 Branch b z: 98 pyutilib-6.0.0/doc/workflow/examples/example_driver1.py000066400000000000000000000004531367314503500232650ustar00rootroot00000000000000import pyutilib.workflow import pyutilib.component.core # @usage: import tasks_yz driver = pyutilib.workflow.TaskDriver() driver.register_task('TaskZ') driver.register_task('TaskY') print(driver.parse_args(['TaskZ','--x=3','--y=4'])) print(driver.parse_args(['TaskY','--X=3','--Y=4'])) # @:usage pyutilib-6.0.0/doc/workflow/examples/example_driver1.txt000066400000000000000000000000131367314503500234440ustar00rootroot00000000000000z: 7 Z: 12 pyutilib-6.0.0/doc/workflow/examples/example_plugin.py000066400000000000000000000011611367314503500232040ustar00rootroot00000000000000import pyutilib.workflow import pyutilib.component.core # @class: class PluginTaskA(pyutilib.workflow.TaskPlugin): pyutilib.component.core.alias('TaskA') def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y # @:class # @usage: A = pyutilib.workflow.TaskFactory('TaskA') w = pyutilib.workflow.Workflow() w.add(A) print(w(x=1, y=3)) # @:usage pyutilib-6.0.0/doc/workflow/examples/example_plugin.txt000066400000000000000000000000051367314503500233670ustar00rootroot00000000000000z: 4 pyutilib-6.0.0/doc/workflow/examples/tasks_yz.py000066400000000000000000000021601367314503500220420ustar00rootroot00000000000000import pyutilib.workflow import pyutilib.component.core # @class: class PluginTaskZ(pyutilib.workflow.TaskPlugin): pyutilib.component.core.alias('TaskZ') def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.add_argument('--x', dest='x', type=int) self.add_argument('--y', dest='y', type=int) self.outputs.declare('z') def execute(self): """Compute the sum of the inputs.""" self.z = self.x + self.y class PluginTaskY(pyutilib.workflow.TaskPlugin): pyutilib.component.core.alias('TaskY') def __init__(self, *args, **kwds): """Constructor.""" pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('X') self.inputs.declare('Y') self.add_argument('--X', dest='X', type=int) self.add_argument('--Y', dest='Y', type=int) self.outputs.declare('Z') def execute(self): """Compute the sum of the inputs.""" self.Z = self.X * self.Y # @:class pyutilib-6.0.0/doc/workflow/examples/test_example.py000066400000000000000000000025111367314503500226650ustar00rootroot00000000000000# Imports import pyutilib.th as unittest import glob import os from os.path import dirname, abspath, abspath, basename import sys currdir = dirname(abspath(__file__))+os.sep datadir = currdir def filter(line): return 'Running' in line or "IGNORE" in line or line.startswith('usage:') or 'Sub-commands' in line # Declare an empty TestCase class class Test(unittest.TestCase): pass # Find all example*.py files, and use them to define baseline tests for file in glob.glob(datadir+'example*.py'): bname = basename(file) name=bname.split('.')[0] # # We use add_baseline_test instead of add_import_test because the latter does not seem to # work when running with nosetests # if not os.path.exists(datadir+name+'.txt'): sys.stderr.write("WARNING: no baseline available for file "+file) else: Test.add_import_test(name=name, cwd=datadir, baseline=datadir+name+'.txt', filter=filter) if not sys.platform.startswith('win'): # Find all *.sh files, and use them to define baseline tests for file in glob.glob(datadir+'*.sh'): bname = basename(file) name=bname.split('.')[0] Test.add_baseline_test(cmd='cd %s; /usr/bin/env sh %s' % (datadir, file), baseline=datadir+name+'.txt', name=name, filter=filter) # Execute the tests if __name__ == '__main__': unittest.main() pyutilib-6.0.0/doc/workflow/fancyhdr.sty000077500000000000000000000375051367314503500203600ustar00rootroot00000000000000% fancyhdr.sty version 2.1 % Fancy headers and footers for LaTeX. % Piet van Oostrum, % Dept of Computer and Information Sciences, University of Utrecht, % Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands % Telephone: +31 30 2532180. Email: piet@cs.uu.nl % ======================================================================== % LICENCE: % This file may be distributed under the terms of the LaTeX Project Public % License, as described in lppl.txt in the base LaTeX distribution. % Either version 1 or, at your option, any later version. % ======================================================================== % MODIFICATION HISTORY: % Sep 16, 1994 % version 1.4: Correction for use with \reversemargin % Sep 29, 1994: % version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands % Oct 4, 1994: % version 1.6: Reset single spacing in headers/footers for use with % setspace.sty or doublespace.sty % Oct 4, 1994: % version 1.7: changed \let\@mkboth\markboth to % \def\@mkboth{\protect\markboth} to make it more robust % Dec 5, 1994: % version 1.8: corrections for amsbook/amsart: define \@chapapp and (more % importantly) use the \chapter/sectionmark definitions from ps@headings if % they exist (which should be true for all standard classes). % May 31, 1995: % version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage... % construction in the doc did not work properly with the fancyplain style. % June 1, 1995: % version 1.91: The definition of \@mkboth wasn't restored on subsequent % \pagestyle{fancy}'s. % June 1, 1995: % version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain} % \pagestyle{fancy} would erroneously select the plain version. % June 1, 1995: % version 1.93: \fancypagestyle command added. % Dec 11, 1995: % version 1.94: suggested by Conrad Hughes % CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule % position (old hardcoded value of .3\normalbaselineskip is far too high % when used with very small footer fonts). % Jan 31, 1996: % version 1.95: call \@normalsize in the reset code if that is defined, % otherwise \normalsize. % this is to solve a problem with ucthesis.cls, as this doesn't % define \@currsize. Unfortunately for latex209 calling \normalsize doesn't % work as this is optimized to do very little, so there \@normalsize should % be called. Hopefully this code works for all versions of LaTeX known to % mankind. % April 25, 1996: % version 1.96: initialize \headwidth to a magic (negative) value to catch % most common cases that people change it before calling \pagestyle{fancy}. % Note it can't be initialized when reading in this file, because % \textwidth could be changed afterwards. This is quite probable. % We also switch to \MakeUppercase rather than \uppercase and introduce a % \nouppercase command for use in headers. and footers. % May 3, 1996: % version 1.97: Two changes: % 1. Undo the change in version 1.8 (using the pagestyle{headings} defaults % for the chapter and section marks. The current version of amsbook and % amsart classes don't seem to need them anymore. Moreover the standard % latex classes don't use \markboth if twoside isn't selected, and this is % confusing as \leftmark doesn't work as expected. % 2. include a call to \ps@empty in ps@@fancy. This is to solve a problem % in the amsbook and amsart classes, that make global changes to \topskip, % which are reset in \ps@empty. Hopefully this doesn't break other things. % May 7, 1996: % version 1.98: % Added % after the line \def\nouppercase % May 7, 1996: % version 1.99: This is the alpha version of fancyhdr 2.0 % Introduced the new commands \fancyhead, \fancyfoot, and \fancyhf. % Changed \headrulewidth, \footrulewidth, \footruleskip to % macros rather than length parameters, In this way they can be % conditionalized and they don't consume length registers. There is no need % to have them as length registers unless you want to do calculations with % them, which is unlikely. Note that this may make some uses of them % incompatible (i.e. if you have a file that uses \setlength or \xxxx=) % May 10, 1996: % version 1.99a: % Added a few more % signs % May 10, 1996: % version 1.99b: % Changed the syntax of \f@nfor to be resistent to catcode changes of := % Removed the [1] from the defs of \lhead etc. because the parameter is % consumed by the \@[xy]lhead etc. macros. % June 24, 1997: % version 1.99c: % corrected \nouppercase to also include the protected form of \MakeUppercase % \global added to manipulation of \headwidth. % \iffootnote command added. % Some comments added about \@fancyhead and \@fancyfoot. % Aug 24, 1998 % version 1.99d % Changed the default \ps@empty to \ps@@empty in order to allow % \fancypagestyle{empty} redefinition. % Oct 11, 2000 % version 2.0 % Added LPPL license clause. % % A check for \headheight is added. An errormessage is given (once) if the % header is too large. Empty headers don't generate the error even if % \headheight is very small or even 0pt. % Warning added for the use of 'E' option when twoside option is not used. % In this case the 'E' fields will never be used. % % Dec 9, 2002 % version 2.1 % The defaults for \footrulewidth, \plainheadrulewidth and % \plainfootrulewidth are changed from \z@skip to 0pt. In this way when % someone inadvertantly uses \setlength to change any of these, the value % of \z@skip will not be changed, rather an errormessage will be given. \def\ifancy@mpty#1{\def\temp@a{#1}\ifx\temp@a\@empty} \def\fancy@gdef#1#2{\ifancy@mpty{#2}\gdef#1{\leavevmode}\else\gdef#1{#2\strut}\fi} \def\fancy@ldef#1#2{\ifancy@mpty{#2}\def#1{\leavevmode}\else\def#1{#2\strut}\fi} \let\fancy@def\fancy@gdef \def\@fancyerrmsg#1{% \ifx\PackageError\undefined \errmessage{#1}\else \PackageError{Fancyhdr}{#1}{}\fi} \def\@fancywarning#1{% \ifx\PackageWarning\undefined \errmessage{#1}\else \PackageWarning{Fancyhdr}{#1}{}\fi} % Usage: \@forc \var{charstring}{command to be executed for each char} % This is similar to LaTeX's \@tfor, but expands the charstring. \def\@forc#1#2#3{\expandafter\f@rc\expandafter#1\expandafter{#2}{#3}} \def\f@rc#1#2#3{\def\temp@ty{#2}\ifx\@empty\temp@ty\else \f@@rc#1#2\f@@rc{#3}\fi} \def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f@rc#1{#3}{#4}} % Usage: \f@nfor\name:=list\do{body} % Like LaTeX's \@for but an empty list is treated as a list with an empty % element \newcommand{\f@nfor}[3]{\edef\@fortmp{#2}% \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}} % Usage: \def@ult \cs{defaults}{argument} % sets \cs to the characters from defaults appearing in argument % or defaults if it would be empty. All characters are lowercased. \newcommand\def@ult[3]{% \edef\temp@a{\lowercase{\edef\noexpand\temp@a{#3}}}\temp@a \def#1{}% \@forc\tmpf@ra{#2}% {\expandafter\if@in\tmpf@ra\temp@a{\edef#1{#1\tmpf@ra}}{}}% \ifx\@empty#1\def#1{#2}\fi} % % \if@in % \newcommand{\if@in}[4]{% \edef\temp@a{#2}\def\temp@b##1#1##2\temp@b{\def\temp@b{##1}}% \expandafter\temp@b#2#1\temp@b\ifx\temp@a\temp@b #4\else #3\fi} \newcommand{\fancyhead}{\@ifnextchar[{\f@ncyhf h}{\f@ncyhf h[]}} \newcommand{\fancyfoot}{\@ifnextchar[{\f@ncyhf f}{\f@ncyhf f[]}} \newcommand{\fancyhf}{\@ifnextchar[{\f@ncyhf {}}{\f@ncyhf {}[]}} % The header and footer fields are stored in command sequences with % names of the form: \f@ncy with for [eo], form [lcr] % and from [hf]. \def\f@ncyhf#1[#2]#3{% \def\temp@c{}% \@forc\tmpf@ra{#2}% {\expandafter\if@in\tmpf@ra{eolcrhf,EOLCRHF}% {}{\edef\temp@c{\temp@c\tmpf@ra}}}% \ifx\@empty\temp@c\else \@fancyerrmsg{Illegal char `\temp@c' in fancyhdr argument: [#2]}% \fi \f@nfor\temp@c{#2}% {\def@ult\f@@@eo{eo}\temp@c \if@twoside\else \if\f@@@eo e\@fancywarning {fancyhdr's E option without twoside option is useless}\fi\fi \def@ult\f@@@lcr{lcr}\temp@c \def@ult\f@@@hf{hf}{#1\temp@c}% \@forc\f@@eo\f@@@eo {\@forc\f@@lcr\f@@@lcr {\@forc\f@@hf\f@@@hf {\expandafter\fancy@def\csname f@ncy\f@@eo\f@@lcr\f@@hf\endcsname {#3}}}}}} % Fancyheadings version 1 commands. These are more or less deprecated, % but they continue to work. \newcommand{\lhead}{\@ifnextchar[{\@xlhead}{\@ylhead}} \def\@xlhead[#1]#2{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#2}} \def\@ylhead#1{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#1}} \newcommand{\chead}{\@ifnextchar[{\@xchead}{\@ychead}} \def\@xchead[#1]#2{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#2}} \def\@ychead#1{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#1}} \newcommand{\rhead}{\@ifnextchar[{\@xrhead}{\@yrhead}} \def\@xrhead[#1]#2{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#2}} \def\@yrhead#1{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#1}} \newcommand{\lfoot}{\@ifnextchar[{\@xlfoot}{\@ylfoot}} \def\@xlfoot[#1]#2{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#2}} \def\@ylfoot#1{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#1}} \newcommand{\cfoot}{\@ifnextchar[{\@xcfoot}{\@ycfoot}} \def\@xcfoot[#1]#2{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#2}} \def\@ycfoot#1{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#1}} \newcommand{\rfoot}{\@ifnextchar[{\@xrfoot}{\@yrfoot}} \def\@xrfoot[#1]#2{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#2}} \def\@yrfoot#1{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#1}} \newdimen\headwidth \newcommand{\headrulewidth}{0.4pt} \newcommand{\footrulewidth}{0pt} \newcommand{\footruleskip}{.3\normalbaselineskip} % Fancyplain stuff shouldn't be used anymore (rather % \fancypagestyle{plain} should be used), but it must be present for % compatibility reasons. \newcommand{\plainheadrulewidth}{0pt} \newcommand{\plainfootrulewidth}{0pt} \newif\if@fancyplain \@fancyplainfalse \def\fancyplain#1#2{\if@fancyplain#1\else#2\fi} \headwidth=-123456789sp %magic constant % Command to reset various things in the headers: % a.o. single spacing (taken from setspace.sty) % and the catcode of ^^M (so that epsf files in the header work if a % verbatim crosses a page boundary) % It also defines a \nouppercase command that disables \uppercase and % \Makeuppercase. It can only be used in the headers and footers. \def\fancy@reset{\restorecr \def\baselinestretch{1}% \def\nouppercase##1{{\let\uppercase\relax\let\MakeUppercase\relax \expandafter\let\csname MakeUppercase \endcsname\relax##1}}% \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e \ifx\@normalsize\undefined \normalsize % for ucthesis.cls \else \@normalsize \fi \else% NFSS (2.09) present \@newbaseline% \fi} % Initialization of the head and foot text. % The default values still contain \fancyplain for compatibility. \fancyhf{} % clear all % lefthead empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages % evenhead empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages \if@twoside \fancyhead[el,or]{\fancyplain{}{\sl\rightmark}} \fancyhead[er,ol]{\fancyplain{}{\sl\leftmark}} \else \fancyhead[l]{\fancyplain{}{\sl\rightmark}} \fancyhead[r]{\fancyplain{}{\sl\leftmark}} \fi \fancyfoot[c]{\rm\thepage} % page number % Use box 0 as a temp box and dimen 0 as temp dimen. % This can be done, because this code will always % be used inside another box, and therefore the changes are local. \def\@fancyvbox#1#2{\setbox0\vbox{#2}\ifdim\ht0>#1\@fancywarning {\string#1 is too small (\the\headheight): ^^J Make it at least \the\ht0.^^J We now make it that large for the rest of the document.^^J This may cause the page layout to be inconsistent, however\@gobble}% \dimen0=#1\global\setlength{#1}{\ht0}\ht0=\dimen0\fi \box0} % Put together a header or footer given the left, center and % right text, fillers at left and right and a rule. % The \lap commands put the text into an hbox of zero size, % so overlapping text does not generate an errormessage. % These macros have 5 parameters: % 1. \@lodd or \@rodd % This determines at which side the header will stick % out. % 2. \f@ncyolh, \f@ncyelh, \f@ncyolf or \f@ncyelf. This is the left component. % 3. \f@ncyoch, \f@ncyech, \f@ncyocf or \f@ncyecf. This is the middle comp. % 4. \f@ncyorh, \f@ncyerh, \f@ncyorf or \f@ncyerf. This is the right component. % 5. \@lodd or \@rodd % This determines at which side the header will stick % out. This is the reverse of parameter nr. 1. One of them is always % \relax and the other one is \hss (after expansion). \def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset \@fancyvbox\headheight{\hbox {\rlap{\parbox[b]{\headwidth}{\raggedright#2}}\hfill \parbox[b]{\headwidth}{\centering#3}\hfill \llap{\parbox[b]{\headwidth}{\raggedleft#4}}}\headrule}}#5} \def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset \@fancyvbox\footskip{\footrule \hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2}}\hfill \parbox[t]{\headwidth}{\centering#3}\hfill \llap{\parbox[t]{\headwidth}{\raggedleft#4}}}}}#5} \def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi \hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}} \def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi \vskip-\footruleskip\vskip-\footrulewidth \hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}} \def\ps@fancy{% \@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook % % Define \MakeUppercase for old LaTeXen. % Note: we used \def rather than \let, so that \let\uppercase\relax (from % the version 1 documentation) will still work. % \@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}% \@ifundefined{chapter}{\def\sectionmark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\z@ \thesection\hskip 1em\relax \fi ##1}}{}}% \def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesubsection\hskip 1em\relax \fi ##1}}}% {\def\chaptermark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright{\MakeUppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}}% %\csname ps@headings\endcsname % use \ps@headings defaults if they exist \ps@@fancy \gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}% % Initialize \headwidth if the user didn't % \ifdim\headwidth<0sp % % This catches the case that \headwidth hasn't been initialized and the % case that the user added something to \headwidth in the expectation that % it was initialized to \textwidth. We compensate this now. This loses if % the user intended to multiply it by a factor. But that case is more % likely done by saying something like \headwidth=1.2\textwidth. % The doc says you have to change \headwidth after the first call to % \pagestyle{fancy}. This code is just to catch the most common cases were % that requirement is violated. % \global\advance\headwidth123456789sp\global\advance\headwidth\textwidth \fi} \def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy} \def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy} \let\ps@@empty\ps@empty \def\ps@@fancy{% \ps@@empty % This is for amsbook/amsart, which do strange things with \topskip %\def\@mkboth{\protect\markboth}% pdflatex doesn't like this at all! \def\@oddhead{\@fancyhead\@lodd\f@ncyolh\f@ncyoch\f@ncyorh\@rodd}% \def\@oddfoot{\@fancyfoot\@lodd\f@ncyolf\f@ncyocf\f@ncyorf\@rodd}% \def\@evenhead{\@fancyhead\@rodd\f@ncyelh\f@ncyech\f@ncyerh\@lodd}% \def\@evenfoot{\@fancyfoot\@rodd\f@ncyelf\f@ncyecf\f@ncyerf\@lodd}% } \def\@lodd{\if@reversemargin\hss\else\relax\fi} \def\@rodd{\if@reversemargin\relax\else\hss\fi} \newif\iffootnote \let\latex@makecol\@makecol \def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi \let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol} \def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi} \def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi} \def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi} \newcommand{\fancypagestyle}[2]{% \@namedef{ps@#1}{\let\fancy@def\fancy@ldef#2\relax\ps@fancy}} pyutilib-6.0.0/doc/workflow/figures/000077500000000000000000000000001367314503500174505ustar00rootroot00000000000000pyutilib-6.0.0/doc/workflow/figures/workflow-example2.pdf000077500000000000000000001112541367314503500235370ustar00rootroot00000000000000%PDF-1.5 %âãÏÓ 10 0 obj <> endobj 25 0 obj <>/Filter/FlateDecode/ID[<9C0BC48CF5E5AFB9829644EED3A540B0>]/Index[10 24]/Info 9 0 R/Length 81/Prev 37247/Root 11 0 R/Size 34/Type/XRef/W[1 2 1]>>stream hÞbbd``b`ª ~@‚q ˆ›$X$€³ˆ%"A\7 Áêâ~qm€W И $Vb`bd˜ 2Š7ñŸñê/€.é  endstream endobj startxref 0 %%EOF 33 0 obj <>stream hÞb``àe``2`‚: TÀÄ,  Èb¼PÌÀ°…AZa&Sï« Kš'órh4•¨Ý_õª™‘QjHØ F>ŸQ À>#  endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream hÞ¤TmkÛ0þ+÷q£dz—-(†Ä©Ó޵5sX!TGK ŽmlÒ?ÉN³6m׌a°t÷œNÏÝsˆJÀ@ X PT 0 œ(`d£ Hçç(®ËºÍotÒŸÆð=ŠÐÅÎÎ2«­fñù ©+ë|ó9õYÏm¹O9Ài[ç™± ”N47;»Œ¢ºŠã‰îÌ h·t nSø¥ËθÍ5”÷fv ø ¦hþؘ?,PÝ x¹³ã.7•…@`ëæÒëIššQ%¥^wŽYOy2©w‹W FDqßJÐe&z[”Ÿb]÷mñyð¥¡àZèKô޽5(ý:»ŒÓ³}ähR—«Ìlkl¾A7u»Õeïºh£+ëâóqµ. `”Y³ýáð¡Fëy·EcëýÜ—ÃeØ×êûæCÞ¼ú¢ÊëUQ­Ñ]Q«®8ØIÑv6Þè¤8ºÁÏ„¯é›ÞG"Qöpo=™yû`zVj.õÊnº…Ä„$à5çaدo<`À•xwý÷«`ÁKˆüL`ÊÍ-–ÿ)| Ÿ„'ü$áùká§“§î 9Góÿ»äÏ.=A퀫Íȑڔž 6ô™2RÒW* âÇÈQþË$¼ˆ§âðwÊ*Œ‰ƒÍ™›á*%œÒ¿í¹[ endstream endobj 14 0 obj <>stream H‰ìTMoA ½Ï¯˜c‚”éØó}!Tu¥‡jE[ ©H“Š¿Ï³g7l)''ª´‰ßÎøùãÙ»7d?[CÙí¦…½½ÿd€ñ·3—/ìñ¶4v>ØLŒkåÆ%Î^²–ôsñäÍÙ›Ãä¿d¼6çf?…lÞñ“§Dþ<ê‰âq`‚Á\m‘°Ô‰®Á/q߃FlÐéÍâ|´ãNŸíÌÆ¥cãZ¶.òdà4j‚P~¶3 .¡2q»U!îÆh Ïö¶Ë3*Áyž}gÀ=H‡=Äd# õF‹_£¹UfaÚ™B’þt_íS†¥—¿5~ú¥E¤ uÓw¶­Êv~jðËÁœ \ì ¤j7¤fr1[„¬†ŽnŒó±‡`øn>¬.Žkò.®®îú$—VW‡¯ëÃ;óz8iúS”¥2Q²ãú«8QâOÍw^u@.hIút´4%Ó]£bѸ@ ªÅ‹Ž ˆ›°m@#¾  Aå¥`íPí# B‡ISÊ.-PuÙ÷Ó‚Œê[d '@•^ØFäáÁµ;vF, DtÔ!`k§¦TRHWï­w¬‚6©ˆ$7¡€Ø1Ê@2%CÞ‚Bkd†FCÅ%<ã8åžµ—°|ïê­¡¤SÝG œçɨ—z¥”$Ÿ$.d‡›Ôûôw uö€ÕU.ÚƒŒ,=õ®K7²Ë]ƒ&E†ìЬÊsœMŒ_êÕ»áN…­ ‚¯DÏ*\P;èÄ›d¬t^<ÄŽ.ƒ5KË[ªÐnT%¾B »;³ r@ܯM¤):* +'—“î*Mï Ù$ý,v.ŒS{m`ß»øtïB•™çVE»ÅâY¼ÕÛ»oÇÃzø"+¶ÿ[ïÝß¾8ñ>z^Ïçõü?×St¹–5÷µÄÙJÙÈ ùþáøoWÒþ`ÖRî° endstream endobj 15 0 obj <>stream H‰ÜUËŠTA Ý×WÔr:VRï­â 4Œû‹ƒH÷À8+ÿÞ“¤nÛ:(.iº;çVå$9IÕå™)IÌ­R*ñ •æˆþûåcàÖõñZ=‡O§nîês`_nñt3À¶1õ@×`Z@ß¶€è6§>…ûpÞCŠ<â_5¥sÏ”%ÏX;náæÃ«ãçðþ3‘rÅCïıK²8àé9ܽŽðêS(åØX°ybÓÞ¼{jq{B$ý ¦–©l'…0³ù‚‚sUÒ ³Ì†7BåÎKYnT¯Ð –|µëQITfÌÀÐIÙ¶ lá«N:ìâ‚XhK!Éæ€ƒžIê4*-¤¨kÒ©“ujE6nr1 Ê@2½A䎡†4ÚÉ-p§ŠgRVî-úé¢äªâW›-o0¤íý—½R® jª 2²C~‚}hpÐn4d˜ØUW55ïÁÔ"óz†Ú±ÎKÙM“sŒÔqE9Ì©¾½Yã²ÙÙ&&ÇêWšÐìBMôŠC…*ù¬CäFUê«Ä°ÝY(닃4¦¶¦Û¨T ¾n® Ä»´N¯hÛ4ý¦¶GWÆ%ïçàöï]\Ïïó—ø®û‡å¾Ä××?x-IÁáåýí«ÇwæÿþÕ¿ 04Wí’ endstream endobj 16 0 obj <>stream H‰´VËn%5Ý÷Wx Hm\å÷Ä‚%R¤aßb¡ÜˆøΩ²of„Ø +õ­c»Þ;™‰IIÆÙ6r2‰s€øxü„ß·ß¿´p½„d¿—ëéxb´-…|šrL%\7[¾g,Ä#HŒ‰RO‰¥„(|æXû„ºÜÂYâ”4¶,FÀGÃu8”öHس/DH®€•F8Ý ÑÈk1d~H‹õ ±%ßíXÐËÌ€…`PG¢´ëP1õõHº¸…®Ú€4CÖ£Öi¢èH!kŠÒÔB=é‘Ð6¹CpT¸czCà{‚ #ÄBµÒcÅš–e{³X‚JÕO‡TÖÒtㆶ3€A½âžJ­5Uj ëàà¤æÎu8 Ÿ®pÄ¡ÝbЪ-‰GÑh±y&Ìwè2 j™×²IqI86R§º((˜“¼ÔÞ,qÙèl“CeYY½$$»Ä¡à!Ÿu Üðм Ú™5fnˆ:Hc25ÝJ¥veT´¨géòbU¦æ7Ò®WxßõÆwĔȼh¬t•ÂŒ=ܰ÷ëS‚Ë×ñÕO¿ÿõçË׿?<χ¶s`ý÷ŽduMá_‹{°z;>|ž ¢£AQ ~œ yè6>oJmÕZq­>µÒNÿ‚GóäòÚ½¡„´fòܲo3Z dk[ËiåAKz ¬çÖ1KŽ-Ñÿ¨<«Šúùÿ‹ÍëÀâèËÝ*þ>­PSɬŽÍ¬ãæÉN\¤¬aàhT÷‹•8‡Ò|ý-]פ(oèKÛP-Â(•WàzÊ«š{ímêÓQ9Ï‘Xþ·£XDï¶íÝÉ0È ÈdÚ8%€9LË> òàø#¬Ü2‘=NÒµÍ>+ÕQñæÚ°úxÛg•£Á ‰a†-_hÂÖ-T¼ŒJìàmn¢õャšÞe“6^?ã5¡Ã +)ü£±-£›œôc‰Rì4ÖÍ!ižÅ÷ÈGê(w ùt¾M+wZhíB~­Ž/gRZb´9.9ÊÇÝ ß8+óäˆfTÜAê¤7b€‘”ÊùÍ‹3[¤’:Çà­ÙmæcXî;ÆÑ¾Bü,Ƥ^\aÉU8½*syË»ËÈl·ï«_×zI<ï…òYgßûý¿v¶ØÏ§^§ðR`Û?î Á›:3óñøò;ßòÏGŒU?am#fÛ7Åýé´P¶B5×§=5Ò&®£ë¦AǶQÏþ3Þ Ô•8t‹†Æ)>ʇ’ýþ`ßšçÿ endstream endobj 17 0 obj <>stream H‰ŒVËŽc5Ýû+¼ìFºÆ.¿·ƒØ°AH‘F±@W4#&M“™ÿçœ*ߤiZµ:©×ûe÷bña6v]é4eA! "®oËýX‘‘`s€xr?áïÝÉ}{:ÕŸžx6ü†ÿèe¤PšO¥‡æO·…Ø+˜v÷ËÃé·Ç­—0®ønA>⻆ôðîñ×Óî{¨üîÚü~…þ]÷OîH'/p ÞHÌŒ`¿èÏ4Ph÷ ~†H_7ø€€ÝÝr¨}"ˆÜüVÂLÝKh9)âwg ɤ¶3aÌIe¡"å U‘jŽ€F£h¨E‘f'µP_ Z´ÓŽ$†23 „D0h#RÛî$©yè:“.¦@`«6 É*Åç uª*R(Cj¢œŒ(Ñ7¹Cq„gzË>ô˜Y¯Ph6õPQb)Ë÷¦¹-«\ªL¬ÿÂiG' ÚMiª5VZC†wp2> gw§aH×44 `L–uf£…f5˜ 0ß yÈ"ˆV^ÊA&he±ûM‚¢æ$€(7­[V:kÃd_ÙUÚ.µ.¡A'$FcÆgÈ6‚¢¬êÍKXBæAqLV¦k§TL™+X‘vëUaÕè}#mÖ©qe÷gãVþ5n96¶¼Ä&Ç-ú?\ˆÆÄ=üøõËç¯_®§?ß®œ²ŽÔÐ¥°I¥Aûüëw'£óçuzA+äDf•¹$;fØ d?²å¸*hò@ÀØ0d[ª1â}#JŒ#ʨþ¼b{v¹L‡¼wtd—¨1´2½¸÷ßøOê\#Ù7ø¸&Ó{ü×æÑ°gÕ9=Öºƒã!ºŒl#hÈš]CX-s+¤«ðswEûw0)‹”¥£ÜɺL¢›©qèЭ$Y¼²ˆ¡n«>¸ɇzj&Ê`6½vÖÛP&œY·!h,%Ð(EŸ¶¬òàîª< 2¬ ’àÜL°*Èd<-ψcÅ¢†Ê½eŠGÓñR“£Óžzÿñi‚†¿/ãÚuPîUã%†ÂÞã^¸a…….DT€£¸q䤮’9 ¡Íæ;5­Ö+d;p”…rmYæZw:1A Ùí:Ê­Z/ë–Zdйߏ{ÇÍ!;Ø*»ÊݨXð>ÕÉhÐwIAâ­\¸¼ùx‘Šbƒ×\×%ݪÂãR0tì|ãEßàMã—^AÐË °Œ»[¾è¢\Nf½.ïqíëAñìŠPëë ¾Íõÿà¤ºÞ šU– Û¡ñÉ冇Р¨àem*¸Vß}åì¯^Ú9öÞ`¦•˜íØë·×ÓB™=j¯„©ï‚x»½¿Öc¡ãÒ8PÏöSÙˆ1h&üß ÀêË endstream endobj 18 0 obj <>stream H‰ìV=o1íý+\^ÖØ3þ,Q@ƒ"­”Q !‚»ˆpIïç={7¹)(Êí¼õxfÞ›™KŠ:/ÖE±E\¶|,æÊÀ®U{0%8­kÙîW;4Y¡Ð†á×g`¸û㎆éG´½¹4çøy=›—ó W;_ò¬Ú ¿ÞF\ÌV4 šù`&çK‚Ób>îæÏgS‰®îŽxf'»ïx&v¯Î>ÍïÍ[„|sÌv9"ŽËµ¹AÚÁjެFj!ƒåÐ_3AdÞ= Ôé1jǪϋG³£ËŠ5Sò–*ä+Þe`Øã²8åA|mlM飒°btN2º´Œa¶ågÚ#;#®ò>Ú¸±oñɾi©œyi•½ÃÂyûÕ8ïA;·{wýãîöx6ãvݘˆyJ–›P ÚVÄÛŸ_ŒÆˆaÂÛƒ¹xa¯¢à S’Áh‚M§ <·ž1Èÿõü¿žÿèzžs¹Pß@çÔÝ6¶šý)Ô70Ðíúcfë·:™2³¿v0îå endstream endobj 19 0 obj <>stream H‰ŒVËŽ7 ¼÷WèèE¤Þ×> àhx3Fœµäï]EªÛãG€`°³¬–DRU$§Sx·¥pÝ·Wÿütýs{}Ý~ùí¥…ý%$û¼ìï·+ÉLÞîå²=±ƒ'jð»>ûúÿv°Ø‡̣źŸÛáñùXPEêVAânž·¶?Æ’jg3ŸUtñê1õŒm3¬rÌdñ™° eF±C´'Ú2ö­ëaß`Çv žM?{õ =IJ‘…AНåCÏôtߺ0ýµßì3C ¯Vxþ_"-äf «¾n´"6¯t|KQÖjÎM26Œw¶5lÜ«O¸¦âè6騚–ÅÚœãlµª»¢F%‹… É®ÒX³‘h¸¤;/f3å¡Ô’¯vŽM̬™Ù²ƒ1’Ï: _Ù °ËšÆˆYJÔl2+[ÑtÅ‹°²a£ì4ªÑ:y#anr‡ã¨¸’éhÈØQÕ †J¢u:gàу,äVrV1ªÕ– Œm‡>ƒqÅo*üC•‘°!#;\ÐfyñtÀ{z@ös7²L⬓ÆaF4‹‹˜OèR5åµ&&`u#uÎFs…sá,£7.›­br¨þÞ±Äæì²Ù:)Ÿr£·âYµŸŽuXcæ‚Íj€4&¥éV*µsLU­ê*­îUÊÆômn#ì˜Ð}ðt¾{(^]f°Ç±wÌ¥¯_cŠ6¶‚ïÅ[LL ªóí÷Oÿúôñe½Ðü÷@ Ÿ€”è endstream endobj 20 0 obj <>stream H‰´VËŠG¼×WÔQ6t¹*ë}µÐÁGÁ€> ±ffñj勾Þ™Õ=£Å2l–ÉèÎgdVÖI¡úÜüÍ}øÙ?¹èû”³oIüÙþÝ}À‹_Þ¾4¿¿ø¨/û“+9‡(°­!¿I sxû„M‰×Û›û}*wÚÜ’½nþz‚@mL>ˆãL hj ˜ª™ë«ûèÞ»gW¬°^Bñ3ñ=¤róë…¦á7üG_¤…Ø–îåæÞ|ýéò‡{w1?s„F‚¶¾KÔê~”¶¤JÛˆ^d <ü&Óüèî´>Crò¦©4î7}vs[¨Âfó¬ÊüïNE8ä×õ@9T¤N#Ê“å.aw]ù 9´uíë²=€XƒbÉä–Öà@ð±£ÕôLO7×µ³K_å3C φÅõ"-db4o«µüêÈxMQa™‹vb i$:ÙPWŸpͦ–0S÷H?'ÃãCȦ‚$“Þ®„ƒJ[¸H¹ÂUäiæ@ÃAºób6µPºímçq‰¡Ì (˜-€Á‘Þv'IÃWŽ>äb0xm)A²ð´©S]±BÓR¥u²¢ÄÜäÇAP’é $w .¨a'w—z¨x&eåÞ”KHÑXýäRÕٲㅴ£?ƒq“Uš*A•‘ ‘ Ôƒ[l °N 8®4d“±N6ZhÖƒÉ"ó -C6A´óR1Á“ù±cM™+˜“¶ŒÞ´qY嬓}µµƒfG4»„&\s¨”Ï:@7ª¢-C6c ™/’ˆc²5]G¥bð©\ ĺ´N¯°mL¿Q¶èô¸èý漽ۨbEQÄc‘…±ó.»{óÛÓZiÏÜ?áTB³»/ÊÜ?¯ÆÃiN<âðÕߟç†üž¾°jlÈîiõ×——{ÿÍ^½ïMŒÙ¿]G}¾ºŽªÂuÕ˜ï×ÑôžQµóÂF~éá:ZÀ®#ª=^Gß#é¸qŒÔ¯ÿ9K“«‰’q_šRôpK±ûß“÷6Â!êú_ ñ.¥6žëŒÛ} l Ø™Q)‡%c6¦çSNº¸ ÙÚ§é9ù‡„ß‘,ð„ãgÄ8“ÑÇ[ Å~h û Ò‹²œXÈIå„`™Ë†[ŸzRÐvráãÌw®§RÙrZ`%bŠìeîWo%”G¸Ïwg èj°¼2I¾—±¯óüìj?»^ή³ðã?5üß 1ßîw endstream endobj 21 0 obj <>stream H‰ìVMkTA¼Ï¯˜c"ìd¦çûªxñ"ÂâAÖ »Á¸Éÿ·ªû½¢ñ–¼×53ÝÓ]ݵ›2G¨Åçæ{O‰þÇ'÷ÙÛ¾fî¤)¶=?§ý•»öIíäˈ8ÚC,~Ôµ£ÛÑ?ú]˜Í‡"«¿½Sù:l(‡Ú¼:ÑžƒÍØ».›}€Ú†zQ6ß ˆ]bЮXmd¡Þ/<öîR#3ÒÑõÄô×ójße¨× Œ¸¾Ó½›Vdf´hðôŸç‹»Xõ ‰KÃï «’È©ä„lrcÄ¡½{wöòêãrÞëÙ‡Ó·ó÷Ë+÷rq×®öÆ&íØ¥­Il‘®ÝÛgþ ñ;2ŠÙ·¶»õë-6.^œ@ÈÉÿ¾s…ÙËxؼÂ<׿„¨}BÎ (±¼ïE3©fêÄæ¤`x<„}Vd2Ú°¢hú"DÊ¡"‰QN†!¯=O-Ô{uGÛíXÊÌ€Áà‘ÑöN’^XÚÅ€ýˆ)A²:dñ9HŠ…ºÆÐ¢ ÚðÉŠsS;AH¦7´¿ƒxPÃÛ»ÔCÅš”5÷¦\ŠÆê¥KU§ÞFҶɼ7Y¥©ÔXydd‡'ë+¦¬Ó.aHW²Äh)ëd£…f=˜,0ßAËMí¼”ÍĘV‹1b÷;±P¸`N"øòö¦Ëjg˜ì+ÇJç%¢Ù%4…Çh¤|ÖAºQ}¶9KÈÜHb ŽÉÖt• Iòp%ëÒú½"lÓo´ívF\é} ÐëUFÂï;Ž .ÊÂ*“pùEÂt‹õç$&âHýž}?_¾R³o•]ŰþOÙqPŸt÷wº«÷u—þVxéIxïOªªÔU%§MU_³ªëõíÍ÷Û›Óª±þ»ˆv³¹){;©ÌØž Ü'—×Ý#¦©*ìô9dÛ& ˜Q¬1þ¯t¨üìØ4€³ÐF™ÿ)À¦eáç endstream endobj 22 0 obj <>stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 23 0 obj <>stream hÞäšy|ÓÅÖÿÏwIÒ&i“”îé’6mZè¾ÐR–6Ð…–RJi£-kKYU¤AAÜ€[ETÜ7ÔëzQI#bTTÜE½îûŠ»UܯÍó™ïI  ÷¹þîs¯ç§í'ï™3ËwæœùÎL’ˆ(ŒÖ’B“›ó O½bÙ°¼ µw.êè ²]GÔú‘|Uçòe×÷yÓ‰¤ÑDºŸæuÍ_tÓWãî"2ä…™ÊÊy™î;ŒD¥V"kÉ‚¹s>nÛöºº ý•,€!l·©eUȧ-X´ìô»¯ºédäÙÎ;eqg•=úÑøZä7,ê8½ËFòóh:ê;NíX4·ø¼ø DÓ õÛ®ÅK—aÜø™¶@”w-™Ûe{ì·¥|C•JŠš.ï"…è®ÖaÔILå%zP¦’-YQUEVo$ù;79ΠÀOC³ÃAøý]ÕÓI{ 7È.ÑQ¦ìÖ…‹§‰'n ØLG~ÎÆïu´•î£éQz–^¡%#µÓùô}B_Ñô»D’AŠ’¤¡ôû8W·ˆÂ”ݤ§"ÿÿ—wú¿DŒÂY6#£ºŽXüþþcm›ú^ЛȪµµÊÏÁº_ê÷+DÞ_"òòz‘ÖZì7Ü0°m`ËQÃé¢%ÔM§ÓJZEgÐjZCgѹ´ŽÖÓú |qÒÐ…´‘.¢Mt1]B—ÒfºŒ.§+èJºŠ®¦kèZøñzº>ç2‘¿¿Wh¥¢äfºî¤»À¿Ò-t+ÝNw ÿ7xÿ.º6¶pþnXn¤›`½ VQKضá×K½ä£{i;bÆù`®vÓº|ÑÜI»è!zqÜÈ>¦Ù„%˜ÿç5ùóqÚCOГô=MÏ`eB­OéKÔìGM®ÇuÞÕJ¿Ðzxm?¤}Rý,Éô;ù‘Ñ»B‹ÐÕZEôDtnÑü,â± y¡ÛÇænøønÄSäDúš@4îAÝ^x0è¿ã{í…@tØß»PGøB”ì øâ©@$D?nûœVæÓÚ=v¸×#å¾6È;ïòá§ô™æö—ñž¨±u„—EGûöc´eï‹¶Â>¸({ù/±;|O ~­Eâkúüpúó@y?}KßÑÏÚç~úûÉôò¿À²¹?ZµüŠßÐotijS+Ò«œmo¿–nÐÒªKË„!“’‚ŽêØU¯Ôî¨öÖ,_ÐSÝ^…þzMÆJgå\cN6õMHšòf:»z¥ÌrIKÈ™Õ#{q܆‰Çz•ôêŽ9ÞÉM­ÕUö””6ÍF•Z_^}¥× õåX(ÆL8z³w÷\Øg¥ÙíYæ9Î9Ó[½Jõ(Õ==ë½¶,ïPg•wèª}±˜ò\o¶³ªÚ›åDgõS?@òêÒ­NGÏÏ„Á;û¿9ÚÒ°èÓ­?“HŠ)vʃiÂØ0BÌ/%EŒå‚>7ÍFÆ»¶©•óšm÷‘;/«Í+·‹’ÝÁ’((Y,9ܼݙ"BUÝø[¾ Ö»v¶#'Þ×þÒñ‡r‡WqµÏî\ Ø1·ÇYUÅ~kiõº«pwæZÝ›Ÿ‡úí˜ÄBᆦVož³ËéÇ`pˆ,lnÕššy#+½¸ïZyóª«Ä¸Õ=íU<@Ñ—³©õ*òØ[ì°ß[DÅÔ&Æá®DP\Õ=­sæy“Ûís°>ç9Zí)^wÜ׿lÛ&¢ä´z‡~ˆÇ¥hOÔZanÇÔV37¤‡8Ze»Ò&¢ƒ£Îq£Q`E¸´¬ˆè¸ÑŽVÉNÁjxJ †HÕ2Jze­(RDÓÊZ{J[ ÿü7C²ƤK÷† êË Ãá1ñsþéи¶ÐPGõܪA<ªS]`€ÞŽ?NYø"ð`´ᬠ)éxsa“ÑfQŒuxi²£Õ9×ÙæÄrOns¾Öâ[ßì¬ošÚªE;°JZŽÊqùÎy)ÅÁŒ\‰5X“e†UË×ò‡³µÇ׋=!Îúæѹ3Ð!9ðaÒzW]Ç#"ŠñjÖ`wsÖt8VGMOGŸíìž^·»§«º}ÁHч³nN³¹u´]ë”ÖÕöUâQT/Õ·ŒËÉÆÞ3®×)mhêuKš§¶>€{«cCK«O–äÊöqm½i(k}×{·f•…UEÆ!2¢§)È„hõí¸‰Öj¥ªfÐò}i¶ M¢Î>™mÖ M†Me›[³‰)v\Œí¶Ú1G„ç̶=ímâå¢h„’Wr–“Wv–÷J²Þì5:çŽóšœã„½BØ+Ø®vÎ=8GìI=íNìSXP­d—x)*¢KGŸßßÒš²×Þß–‚¥6šÚê ÍÂÞ¯KŸ€zã…Úaï]ÛÙ!ÆAžVÑÖ^×Ù†eìU꼡è!4ÐjÔhmÄrD£NÄÔÚ¯EÆ»¶ÍÛ–%Úº°M[ÎV/Õ:G"ìܧÎ%”×Öá,ÔÞM¼ Æôõ¡5·²ÅŽ,ÖÆN2˜1òN'Š:Ûð¶JÍXê¼—íl™‹-QuÍÕd´ ILKI7…½¡¹è"mʯ¤.ÝÐÖÆƒ×rëðl«×„¹¹2ÐÞAQ þÖc¨¢ê£¢›¦>šâ<;‹´Ö“ÅÞ°ôºlþÜÞ‹sD°qˆØ#L>ö°Õ fn†ß•ô–>ÿíΕ)ƒ~r²âp “ì`aS[ϱï´¬œìc­aš¹§'$ìø Ø_!a‡ #¾Xñ÷dã-¡_ ËàµC ?’“^„å-|ïü“Òû_RϤêhj<žt&Ú¨)‘,BÊç´ªÄÑPäºöÊ]hGuv¡J|N¥rª*è« Zh4 Z {*”¤>ƒz·‘"߿ߦ¶c¬2[Óå´@z9E©kh£~}WG)ÐBšü/µ„…~&«ãð,H·鳑f$¨<¹³’!çáü/d,]]øg¥î¤hƒ›²Ž•º€RÔL²+å* (IPOÆ?+Ý&ÿÇBêZ§œ…ºõê“ÐF¨ž&ªšðg$o 8ýcJqê ƒÒ‹ÑÙÇ(`×ï8FO£€ý¨ú rù ¾¿:R¦‹¨šâ 3)ëÜ~¬´¹þQkÔzÿµÃÿ›ô+,ýê?Œ;¡Rh9´Z {´FUèdu$*›üï´Hy>HÔ å¥+äŠT:hþñ¬£Ô©ñ€ÿ ˆÇ¿ÒT–þa-vÁ~êå7i Ëÿx¢R@u,¿¤`^÷*Kí¢³dê?I1òàëd×Yq†lûsÒ¹)ÆÐeþ9aœ+ÑÌãØ4)ÏP´îr+ånìMÏâÝ8V¹T¢±…æá]õ(·Òdù*‘¦©rGÊOÑHé%J¯Ã^ô;M•VQ£tžÿ-y7Ò˱œ‚º¿A?S™ÖN´!p$– ÚÈ·bíÙÉ!ß ÝßÄÞ7ûÙyÐâÔ>8}"/øƒíc¥ñÀÞ§\«Ù®‚æc»š+Dþ"èRè Í~2´@iBÞ-‚6hö¿@‹”däÇC§j¶› UJ$ò Pšf»Ú"oÁxþ Ý¡Ù>†Þ—qǃîCÝOp߈‚ªµrÜiZ$ÔÂZ& û¡J!yÍÛåu=²Lóåìà}Å¿DÜA0¦êÊâ;ÄÀõâLãûÂÀ*q6ó}a`3îÚ=`7ÅÏ{e?5ðî·ˆ6âÜV£ â æór AP߉óT¿œVàœ¯Ó-ø‘ÏDÿrí,ŒÀ>N)|– ô‰½•Ï­§Ô_ÈÃçÖ€gÔí²‰Ty­„Hžà_ %jûÊ>ôýCyk= çBUÞn&‡ZNsÔiT£ŒÅ{žF²ÚIËZ eꮢqPÖW¨îsZ®{w@Hþ‹KUùI‹u‰œF«k8Þ+µiñ\Biñìh%b4›ŒƒîŒõwÒHå*ו¢, À}p’¸ëï[º2†‘Q‹3âjÈt3rœÅ=5x÷R;(DÓ§ØžåX㮹Qg@½‹¨Áƒ>NÒî³f}'l‹ Fø¦‘ H_EnœfŠG{±6hƒ¶6R‰xïÐÎàà}( ±,À»7Aõ¢, À§YÜ_T3lB¤hëåºÀä èÊÀZ÷®à=âuŠB¼ã1~m½`}¬S/† ©I{‘þ ­ŸXÝ`ÚF3”oqÙ Õ™ öP"ê'¤¯ÄsOAœÿðikëgì믴kfPïÀ~%λAg¸îSÜïN¢‘ê2¬½eÔ%8—‹sMô#„;L¤¾„"t÷ñ:ÖO œUuPÍ‘óL»cˆs&‰BÅYwxoþ 1›OãÄÞ­ž…ºQöåëíèk2ò+°&}ü,å,Ä{-MÐë‘>ˆ{Ò"ÿoâlVÇ’M¹s kõr!ùZú ºVH¹–BÍBª‘ZŸ¡K”™´HñP5⣭éát£ì¤Õº^:¶“5{€ˆÑœÀ=OcÀf—EÒAb]µAW©t‘¬TàlÚ+u)¥õÈ' ?w€QBÊAÿÏB†r:w°`û ó¼ìð;·ãXCòÕt=t"Τh¡ÜF‹ Ny] Íýgõqo>HíPt‚ú4MAÌND: *“ÞÇÙz­Ôaÿ×-' Ëÿ7ÚPÅÔßM7a¯\¨{œ uoax>?ˆï*;h4ì¤ëÀ)j+MDúN¨ y‘îĺˆB:Qù€r”-8ÿwx µ@:ýp* ™‰½â %*°–K)ër’ü>îk? Þ~ªÄþŸ¤|‰ï¨ãp~?Lyª›>Ë Ë VÈÅCíP ÔÆa ·ÊwÃ÷7R“r>¾¿¾‚÷¸‡f)/P+ÞƒtåUìOïbŸÜ‚{ôøb M†š!1ÞÙP54!ô‡ñUýéñ¥o|JÖ„ŽåíT.{qé'§ì£Jyîp×S.ò£‘.‘ßÀºyI»«ÔKOQ4þÒçzÚ¦Ë]”//C»n|O?‰ äU4Lî@ŸP’|*ÖùŸ­÷¦?WɦºõÐePe€S¡K¡8o„®§Qº¯¡/h”Þ€;\/U!]¥ë¢lÝkXk¨Lw&Õú“ƒT •B-P*ÔH7‰5̓ª!XÛPžîK|G,£Týv¼‡±% Ç;5 îâ ÎLý8ìó¡j*Á;w)´Ú!¤¿Ÿ–ëï—B‚4žA—ê]´ZG™½¡JŸü›/)1¹Oþ‡/) øÕ—” üÂø™ñ—ýȹß3ö3¾c|Ë5ûß°ñkÆWŒ/_0>g|Æø”±Ï— |¹ù#€}‰qÀ¾Ä<à}Æ{Œwïp•·9÷ãMƌׯ1^e¼Âx™ñwÆKŒ/ð ö2žg<Çx–û ×|šñãIÆŒ=ŒÇ1eìf<Â}>Ìxˆ»;2`ô1îgì`ÜÇØÎ¸—ácôú /c›/¡¸‡q7ã.ÆVÆß| ÀŒ;¸ÝíŒÛ·2naü•q37¿‰q#c ãÆõŒë¸ëk×pó«W1®d\Á¸œÛ]ÆØÌ¸”q ãbÆ&ÆEÜõFn~!ãFã/Œ Ü`=cã|ÆyŒsçøìÅÀÙŒµŒ³k«g2Î`¬b¬dœÎXÁXÎèf,c,e,aœÆèb,öÅNe,bœÂ8™qc!cc>cc.c£“1›ÑÁhgÌbÌdÌ`LgLcLe´ùâJVƉŒF £™1…ÑĘÌhdLb40&2êuŒZÆxF £šQŨdŒcŒe¸ŒrÆÆhÆ(ÆHF™/¶ Á(e”0†3ŠEŒBF#Ÿ‘ÇÈeä0²YŒaŒ¡ŒLFÃÅH÷ÅŒÒN_ŒXÉ©¾˜‘@ ŒdF#‘‘À°3âqŒXF #šÅOˆä' acÃÆ°2,ŒpFÃÌ01ŒŒPî3„a`£ž¡c¨ …!3$iüŒÆ!ÆAÆïŒŒßÿ`üª=VúE›‘ô3büÈøñ=c?ã;Æ·Œ~Æ7Œ¯_1¾d|ÁøœŸ÷™/Ú |ÊØç‹ÆÊ’>a|ì‹|ÄøÐ] |à‹®Þg¼Çx×] ¼ã‹®Þf¼Åx“»~ƒñ:wöwö*ãÆËÜÙß¹ÝKŒ/0ö2žg<Çížå®Ÿa<̓Šñ$?ï _ô8`7xœôúQîl7ãÆÃŒ‡»;r×p×}ÜõýÜõÆ}Œíü {>F/?ÖËØÆ¸‡»¾›qc+ãoŒ;}QØp¥;|QcÛ·ù¢€[}Q“€[|QÀ_}QS€›}Qnà&®r#WÙÂUnà*×sÙu\óZÎ]Ã5¯f\Å ®d\ዚ \ÎÍ/clf\ÊCº„k^Ì571.òE5¹æ…Œ =¾ÈVà/¾È6`ƒ/r:°Þ9X狜œï‹œœÇeçrÍs¸ÊÙîmà~KuòwáµÉš'%?= í†1ìƒz!/´ ººº Ú ý ºººº ººú+t3tt#´ºÁ¸ ùèjè*èJè èrè2h3t)t tqè‚äMÐEÐFèB¨O:Ë7D¼}k|b%-c,õÙÄJZÂ8ÑÅXÌ8•±ˆq ãdÆIŒÑŒQ>«ÀHFc£”QÂÎ(f1 }±, ùŒ†aeXáŒ0bÐ'™&†‘Êa|a"²z÷4ð[¨úúú úÑûzzzzzz QxzzzÚí„„®‡ç¯3 O¯eO¯òÙÄ _ÉÎ9±‚±œÑͨdŒc?Œe¸ŒrÆžr#’1„q?¶™#;…ŸÞĘÌhdLb40&2êuŒZÆxF £šQÅHe¤ðŒdF#‘‘À°3âqŒXžC #Ú}-x:ý€~Cÿý ýý ýýˆÈý}}}} íƒ>>†>B÷BÏCÏAÏBÏ@OCOAOBO@{ Ç¡>è~Dut´ººV‹ðjöñ™Œ…>[.°€1Ÿý11—1‡ÑɘÍè`´3f1f2f0¦3¦1¦2Ú­Œ'0<ŒF#—}œÃÈfd1†1†22 #ƒ’Æp2t •¡0d†Ä¯¹oýÐô<ú:ôô*ô ô2ôwè%èEèxøè|%=ù<%7ù\)7ùœÚµž³·®õœU»Ú³fëjiõ¨Õõ«Ój;pÆê­«ßY­?³v•猭«<êªÈU²qeí Ïé[WxL+$óòÚnOK÷¾îŸº•Èî–î9Ý˺/ë~Ã-ÝÛ»÷t+}þÝîˆî£jÖv_Ü-G¢\¦nÉ"Ì)ݦðšeµKË.Yâϊ߯Xð!óG\rܦ¸-qÛât-¡˜»"ÖFÈ]¶µ69ßæ¶½dûЦ’íF›lÙdÙbÙfQ-³,ßYüu›EÚþHø‹áîv¥1|VøâpÅ.,ŠÕž[Pc KË SFç…U„5†)›Â$wXna;,-£¦ÂÜhžeV¶˜%·Ù5´æ;£ß(»(ø.Ô*ûC%R$‡$‘d”xy»•\£ì’Ä¿±Ñ‘$]ÜÛÒœ•UßgðO©÷†Nžæ•6xӛŧ»iªW¿ÁKž©ÓZ{%颶^I®lñFŠp§åÏ߸‘ÇÕ{›[}Ê7&Žk«÷®i·[KûEšP¥-kæÒî¥K—e-ÍÂ4s),˺ñ§AÂ'ؽL”,[J¨’õO~–²–vÏêF[df.]*zíÎ9!ñ„ÿ»?ÒÿåÉÿ¯þÄΚIâ•¢¥Ê;ºpRÈ@eÔ@“¨e…I×S ”žÛ^U’cxY™Òs‚Wðz÷U³Û+œÃõ*M¶º Ã…r Uzÿ½'ñ±7¢,o¯”÷^ÿëýÖCOÚÊòú_í/È—l)6M‘á²Á ×;Ssåá®’¢¢Âryx±Ë™.k¶â’Òr¥¨0IV"ƒ–rYä%åƒJõ¡4yeʨ攕“<$$DIN K/rXêœ%™ñ:5D¯èB %㜞R_0Æf$$fÄÁÄðÐcºð?èÂ?Q­ú}—üEYkyš~e˜IÖ…†\Ÿ™•V0¦>̦ ·ÇÄ'BláÆaµ‡®ŽO1cÒãÒE_é‡FÁ#1þêãºHJ%}$¶Oë”æÿb»É"Mtöù¿p'‰Tº9ÌFÑRx´Ëdt¦É¡:%›Ó•ŽÓØä6‘YŠPÌæŒÄ4§3ÉMÎÔXCDâ”ÎC±1e#lE6xvÖÌEñ ý…R\ÞÌñ±{ ‹V¯ß³GŠÝ3s' ò±ÙÆ}"ñ?yZA~VV[zt4Ç-CI1„+ÎT—«¤Tâ`ÅœJŠÚkÖG((*K2«'ÄOQÇgåGêÍÒ&½ÕY^4ª&æLº_Z<;mX”N µ†Iê¡ð!&U3Ì©ži‹2)Š)zÈ“‡ÞÆzÜH¤–`e&Q -Aÿ&Ë›ï‹7EE™Hü7ÕlW‘ø¯Œ¦ø ÜIî-(0¤õ&ž†{Œ;ÔÚT+rÅâÆã6´`‚˜PVE¦×_&åõæõc‘F”a‘Ú{ÿÍn òÛ°°UgJªk¸­¸¤(.‰+=I‘Šse§Ó&–ù#IµÄU9£ë¬Iw¤ää¤HÕ+n=mtlneVéŒêÌ»bóëÆœ¿¹¬*'º2iäÔÚë.­/M–Ϋî:¡C\,Ýú£'ŸÕŸ%åÁ}eyyV±Pì;þ]¡éâý?Ö¡ÎÛ1ILÏh =´\øQ^nÔéŒá¡…ÒúP‹H[BVJ/‹ô|l&öž1.# ›i`)Ûƒ+Æ8°Ù›!13ÞœbJ/NÌâò¥ð»Ù@ù +5•<•Jú>ù²{cmúˆ "ðÅh»;±É¬íSbæ…RÞžC{Å›ûßÖ z$Åž5ã´þ§a³ÛS&ÞRìWv·åy4Ú+.—køðÀ…@Ä£hx1¯Ë€Eë7ÊÀ+5º¨°¤TY™5,g¨­tã ãWœ˜?fåö'Ú2ÆæWtN,²šl&½1¡fæâQ /oÏþµ}Ì %qã+†·å&‡[ køøQãÒëN©´´>­dXŰȄԄðxWLrZ¢3iÈPϺéoG¤¥Œp—‹¸Ö#®Ïëá|/£Ëq5ÙËvÊâò”'/q‡¤Ô˜Ê2ìjø°àúƒïêÜ¡±ŸuÛÝá º‰ÁÕ(6¹˜² I\Œ8¡ÿnÁmRxj° £cl7?Jq¹o¹¶ ”*Ïc‡&92ãLÕWNŸ·±-³hö¥³êW6%æ§§ç'˜”t–ŒÏŠŠZU_PTâH5YŒªj´˜:'Li\wo犇×ÕŽ%}b´šôz“Õx¨¸ª¶`ÊÜá#Nj.´¤–fŠ]t Þæº.*¦ÙìµG¨@nÇËmÆ'nòŽ{sr¢}òýîp7E§št™u 5¶‰<à ±¡asÄLÅñj=T¸O¸Ét¼jƒ\!y½ƒ³·.(Q‘zƒ$EG+;M‰…™C‹R" o˜µ)'šƒ”BB"S \éEÉf‹eàw)×lJÁ¾ SÅEåõL#Ÿ(F38÷ƒßKæÍj²¤xs '210ÿ—±ÒÙÝlؘz™äY>J²öù÷ßk’¬"àâ5²öI n“;g°¸´º¸à#Ê´hg‰ƒÂ*®¸ØYÿŸZ^!6íÅÒþ襨’^+/› ÒÒ ÌCÒÊ\ù³‡=cŒšìcœpuó´Õ ©©AOH‡ÆNžXSyh[ТœLÍŸ¦¡©aLzáÌõ-ÃÝÙCBTE1˜CB]eõù©…««¼±©±Ü%%M\6)Õ“èŒ2Ä%ŇÇgÆ'e9R³ÝS+Ü'OfŽˆ²X¢’cì©‘†¨Ø¨ðxgdò0GBJ¶» QŠñ#_¤öÒHÚÌQºßf 5”œ9âߥ巿ÿbßjbš¢ðÛíÏÒ(Ø¡8Ó`[¬ $ÑÒC$E¼‰.Ý)¬”]²»bôîÁÎLŒ'Œr1!&ž#Áh¼˜xólôì…(õÍtKÀðk€¸Û|3ß{óæíÌìÛ7íf{)œzÑœ‰T•Uìéw]æ{j~I²ôÇ‹ì«ñùßÉ·I¶ëñ ý‹“Ò=ì.E.î—åm²Ãv~ßl,iŇÍ‰ŽÆ+Zæôx(ÌÂòv Rº·ß°@ ‡–⤾Vò¼ž;g¡`À½:“V‘–:ÿ2æ8sܲ¿®%Ò‘X»ÑÛ+ù$éä™õ¶un†8·¸¾îž Þû[Cêvààèák:\ø¯;8öˆJåpP5²Áн¡¦Ý8pàÀ ²7£ðƒ‹1± ¼¢Ÿ?cp¸¡–×;Ø ƒ²]“ ò²a“®ÀËi[z Ì sÇaªÇðpà – Pƒ±á‡tÁe„k ㊃˜`‹h³m[q©ø©øèã1, ‚P!4!ºKx¹v[5,¬Û)ë}$XE©ì;) ÛÜ!aÖænäOlîE¾hs î +ì.pû˜O±Ûæ4ŠOm.BµøÎæ.ˆŠŸmîF¾js/D]Äæ8W7Ì$´á§Y?¨ÃõÑq…tȃ…º42&y)£FE¦A[RPÀ,êFa ÛL.Q¬)ZOc© eûÐfu*Z¨ÜŽbma/fIЂ`MÑkµ¸–õ&È ~å(L`mà$|,¥>[·æ÷56"ûb£!0„’ÊÇÀÎ?ˆLæ’ÉÏ©¡6a@ß0ƒJSØjñY2ëøè z€Ö¿b*Ë#g 5,v²Œa6ÐQVÔê¿ðÒfì–á9æ“g³inT6 )Ì=üífö.æBçòû›ÁΟP_ÁSÚ«w?°úu×7ÿ¯àšéû.=BÑWÞõÿ0ñò 6 endstream endobj 24 0 obj <>stream hÞì›ytTźößÚ»§t¦ÎœÐî¤I„y ƒ¤!„ $ cB&1@Œ‚QDEÀYƒÐiT¢¢¢ÇyžÐã N=à¬G‘¤ïSûíBDϹ®u¿?¾»Ö ùõóÔ»kW×®]Û³Ž$ˆ(’I§ ãËzõ]0·¾‘÷AUÍÂêÅÑ#D5s‰´+k–-uï»æÀ/Db‘Ù>{ñœ…?ýTAdMÖa΂ fÛw|¾ˆ¨ ™(âÙ¹uÕµîûŒhþ)´7p.‘{Ãqot-Êç.\º¢GÝ‘c(o ŠY·à¼šjÊz§¨ôÊV¯Xœ%ôHÜ/ûã^T½°.ýãš™D³Ñ¾éñÅç-YŠ~ã§îgy}q}Ýâà—ŸãÞ4ô©s8é&«¸’Ìd3o7÷C¯SYõWé2l¤E›5M3éšii_{É}!…~JÊÜnBàW“…ÚIk$®Ä3°ÿ퉸t­ñü¿EÏ•ÿUãqÓ#s£Q’îìè¿ó×ѬÀÝø”£*Ý-ðìvþÌøÍ§ëî2Ê·Òmt;ÞņSÊ‘;à碌°¶ï¡fÚƒ¿ù3ë^º×xs~j¡í§ûð& ÔjÄÿÓµ?‹ïŧ#ÒCô0fÈ£t;Íø§" öX(ú¤ãòô7”e-.=MÏ`‡zž^ éz ¥—ÏgQz•^§7èm ÷}Ï6@ÞQµ3gLŸ6uJe…¯¼lbé„ñãJÆ)=ª° ?oäoîðs† 28gÐÀ½zöèž•™ÑÙ“îJŽqDG†ÛÃlV‹;± îžÂ*·?³ÊoÊôŒÝC–=ÕTŸ¨ò»*ü}¿»Ê¨æþ}M/jÎ>«¦—kzO×÷0Ö£»»Àãö¿”ïq·Š)¥ð[ò=•nÿ ×Þ”i"QHKÃî‚ä¹ùn¿¨rø —Ím*¨ÊG{-áö… UANÁSQ—Mº[ƒÁòŠ´—œ'*Ó0Õ¦)þ°lìýæŒ1¨7JR…ð(cMµìù*ä½ÖŒ¢šJL[Õ ªùÃÐBX¨Ô(4î‘Ó7ÕàÝà÷7¢ào¬ôWfË/­˜WiLg‡ŸF{†àµs›æLùE½*›b=}µ‰¥`ÏX/% }£² Ž8QÄ—Uò Y#Ðó.ÕT¹1Ú&ª)ÃTç½ÔîäH¶DSfݺHò±ôŒðH»?¬'įôá=å’4gX++¹óFi}¨¾ÛáG2ÏÊÐ \*’}ÁïztUV}\6SÚJ=+°³ÈN-YqÙ™QTÍŸïGÄ“£n¶É="<ÔÆ“µÊ'À¸ëå­Á;=¤ñÓ£»Grb’óALlªl:;àŸšÝ£»íìh¤nj²Eþù <^¶ÈÓ*ƒîœ¨ˆ¿±ùïHû¸S}Ú7‡= #gþ˜ªMQ¿•Ä+ˆì&Ï_Åâ ¾(1M¡=¦|ªþSŽãÚqÚf ’S¢£=  ¤…!jÀLpq(¾G¿—ö˜#hêÙ˜N¡=`Æ_Éš‰öh¦àht0è&€ñàBÄSAÓÕ¨·…¬Ú–àݦ,Üôéë³B~1u4Í =–·Ñv·?Á ÆRÍËxÆò5Õ˜Òñ]À< ¾ž)“Šç"$Ÿ.NÑgbN§{þ*¦&J·¦Ò9gcêB½ÑVêxŒ††è`èäø«˜§?–˜L´[þ¦:Ú æ›–S_‰Þˆºè «;DwÐŒ Åwëpß%´à¬@|m6í ¯8N»Åñ`4:t>0œx H69i·6œHܬ?‡¶vÄ`½öyȃ¾¦Ý Ú¿ê4ÛÁ ÃÏ÷Ðìÿ–‡´3[ ßL-ð'à™CÇSüütº\IõÊ`;+æãÚ n é6Ðò@o£4Ëpt6ú‹4P_‹wv6ó(?„ÍÐÃ4í,Rÿ$f`éŘúÓv¬Ÿ)!ÆÉªl=¦X>‚AÝ*Óf0ô§jýWšþWÐΧ Ë ”a;L¦føC~ØYŒ?‹Pܲì,6žE(þ»úaøŽ¼3Ú^ûÛ5Ó ÆGÖ,ÊП¤gc<ëÙnê¼×”üE¼E—Š·‚‹ ÑÐ)À êA˜ƒx Ø®¢KM©´A|<¢F¿ñ²è¦u4´XüJµ6Ún©•ßõ;ÆzKp‡¡9x¿gübÃˋƻSíTiÏÓv&ø t‘žF¥ æmZ°M•Í{´µ]|‹ú{)M{H=H™¦Ï)ÍÔð×ÀX§Y‹1¿ßùk Ÿ[Áå!½ ”€!¿õLô”nn¥g£/Çž´“Òÿ@Wª a54‡êõjªÕW`®î¡|í3Z 3t´ÖJ£ÄãÔYÛ†wô-5T-ÿŽò1ûÙ$ÔýÜ À¸÷ˆŸ ½i¤ø„<òíRré_Swm θËÈ¥ ¢‘Z9ö³°UžÚm6¢SÇ´IŒ¡¤ÏFìÔN0ç¬Ø0OQ¾Üî2âu JïŒö~D¬Ì1â»À½ ÊE`þé6Vë(Gƒ#¶Ü­]…û¯»ŒØàc 9†ö¸uG‘sÙÇ©‰ xyÈ[àeÏR"Á³­ƒ®Ô.2t™ø­Óú¨|%¸Qæ zÎ×u4„sˆög䙯ùBûÍòlæ|¡&'yÀµÔY÷ã2>ÉÆ=8·õfä&|ã¼l_$Õ‡ïÄyj!ºÒšÍçVû#8£Êóè(ŨsG_O3ø, •÷gÈT*6Îcßn¿Eª#%÷us­—ç‹©%8gµë´/æãÕ8ûz£Þ혣@{{ÀX\“ŒÀ~´‚,Z_Úªõ +A´±¯Ü‡ç› ݆¹®Q‰®cí¨=ae™biî¯ÄûŸ¦§nòÑ•!VƒDó@ò™‡’Ïk¾›¶š¯¦Z‰¶Ñx—vŒ•|×53m;MgÌû -’ﳄî5ÞçâËðŽº~FîXm™‹ïxžŠÍ2¿ Ê'È\ït¾õ é–“àmέúoyœé~Ï2OU¹ž“iž°•ßµ¹#êüêi©å;´‘ ÿOж$C½`M7UÓ,« þ|äwAÜÿr7Llcn|E·yR|ˆ.xßuF>Ôݼgp#M6mĵt¸6”ãødþ‚gÝ-Á»Æ|YÊIîóCsEæ]*Ø9»9w/<‡ç‹érÜ3õNÒB‹ùNÊ3)ɼ±càS:WÿùK_ø Î÷™ä2Õ¬@œáˆãü7åa\äÜ:Œ}ýÉð˜EÈó’ä9qæŽö‡#'(6•aî•!§*ÙÆg`½<×ôp/0%P¢E£8ó<ši…s,+tVõÝ~;ÏŒCž3)d—g]hoNÖ_§tS;âØ»1·›úgèHó›´ÝÜŽò²›Ë{lÂÜÞ‚¾= ÿå˜Ê‚¿È³ï;Y_„g ¹z»D»Qصé1‰~?] f|ˆ¹]E'@‹^K+qÌÄ<î&ç4xXÎoóetb›e\)ÞÑ­4ËÖ ¥àRS r¾¬‡êI$´p&ìMú)±åp”{hKp†ýòI`Nמ b¿è§èñÓkn!] VjKñLKiжŽ&Í‹}Õ‹øòƒ9ÿ®Úº,+À2“ŸÎ5ƒ|àÍçˆ'i“>€6™q&™q6YÿpnX‡±Zî¥}üýÙh¾rÍ{¨ÏK¸7×´ó( ãq ë!ÊÈ*àcP.ƒ.ÄXdÃ÷׿ÇY½ë÷Qüý¸õv"OK£"[?ì§°¿‚9CL[i¦ööåã4 ”b~¤ëoCÒ=€œm öƒ˜ÛQ4ìõ`pƒ:p.¨ ò06[(E¿ûàì‡{(SŸ‹~ÀQ/Ìbý MD&€- ÌCÀ£Ï;1vb¾¢Îú—õ—û×ûÏú‡õ1ZüŒÂOÅÚ½4B{2´;0G>¢©8—ûjGÿyÊ—T -Õ^¥Éâ UŠÿɽÚÊ?Rm" ÓŠ0/ÇP¼Vˆ{J©·–CéÚd´U‚¶ÿj½–`±Gùæ™g©9)¤=AxŽÆÌ¡Qæàðu1¯¦øœí2ŸmG£›f}ïëÎõS4Tl0#ä+ÖÞ_÷Ir>›¿ î&3 °¼AóðÈÿN‘Mæ2g¦¥{q9M5%Ò¬¹Àuà9ƒ(ÚgC”ÚÇÑ –üí6›²aº»U[w_X²³V™K”¹X™Fe.Rf2«•Y¥Ì…ʬTæeV(³\™eÊ4(³T™%Êœ¯ÌbeÎSf‘2 •Y Ì¹ÊÌWfž2s•™£ÌleꔩU¦F™YÊT+S¥ÌLef(3]™iÊLUfŠ2•ÊT(3Y™IÊø”)W¦L™‰Ê”*3A™ñÊŒS¦D™±Ê+3F™"eF+3J™Be ”ÉW&O™‘ÊŒPÆ«L®2Õ9G™aÊ Ufˆ2ƒ•ÉQf2• Leú)ÓW™>ÊôV¦—2=•é¡Lwe²•é¦LWe²”é¢L¦2ÊtVÆ£Lº2iʸ•q)“ªL'e:*ãT¦ƒ2)Ê$+“¤L¢2 ÊÄ+§L¬21Ê8”‰V&J™He"” WÆ®L˜26e¬ÊX”1+cRFWFSF(C!#‚Ê´+Ó¦Ì)e~Uæ¤2¿(ó³2ÿRæ'e~Tæe¾Wæ;e¾Uæe¾Væ+eN(s\™*ó¥2_(sL™(ó¹2Ÿ)ó©2Ÿ(ó±2G•9¢ÌGÊ|¨Ìʼ¯Ì{ʼ«Ì;Êü]™·•yK™Ãʼ©Ìʼ®ÌkʼªÌ+ʼ¬ÌKʼ¨Ì Ê<¯ÌsÊ<«Ì3Ê<­ÌSÊ<©Ìß”yB™Ç•9¤ÌcÊ<ªÌ#ÊTæaeRæAeZ•9 ÌÊܯÌ}ÊìW& L‹2~eö)³W™{•Ù£L³2÷(s·2w)s§2w(s»2·)s«2·(³[™]ÊìTæfev(s“27*sƒ2Û•¹^™mÊ\§ÌµÊlUæe®Væ*e®Tæ e.Wf‹2›•Ù¤L“2•Ù Ìze.SæReTÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#ê•QùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPiPiPiPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽÈÛ/ ²æ@êpræ@jä.]HiäÒE,k©Õ\ZÅr!ËJ– F@V:åA–³,ciàkK¹´„¥žƒç:„,f9eWYȲ€åÜ@ÇÈ|–y,sYæ°ÌṫÔq©–¥†eK5KËL–|ßt.Mc™Ê2…¥’¥‚e2Ë$K9KËD–R– ,ãYƱ”°Œe)fpAŠXFœc £X ÎbHAÀ9’Ï’Ç2’¯àû¼,¹|ßp–sX†qÍ¡,CøöÁ,9,ƒX² àÆú³ôãVú²ôaéÍõbéÉ÷õ`éÎ’ÍÒ¥+KKn:“%ƒÛìÌâaIç¦ÓXÜ|Ÿ‹%•¥KG'K‡@‡q–ä@‡ñ$–D&°Äs0Ž%–%†¯9X¢9ÅÉÁ×ÂYì,a|ÍÆbe±R&@Ì”Rˆ‰Eç Æ%ÁB†ˆ K»QE´qé˯,'ùÚ/\ú™å_,?±üH.‡üH.ƒ|Ï¥ïX¾eù†¯}Í¥¯XN°çkÿdù’ƒ_°cùËç\å3.}Ê¥O¸ô1ËQ–#|í#–9øËû,ï±¼ËUÞáÒßYÞ$M†¼Hš9Ìò&ß`yå5–W¹Ê+,/sð%–Y^`yž«<Çò,Ÿayšå)–'YþÆ5ŸàÒã,‡Xãk²<ÂÁƒ,³<Äò K+×<À¥Xîg¹e 1$N…´°øYö±ìe¹—eK3Ë=Dì×ânnå.–;ùÚ,·³ÜÆr+Ë-,»Yv±ìäÆnæVv°ÜÄ×nd¹e;Ëõ|Ã6.]Çr-ËV¾v ·r5ËU|íJ–+X.gÙ²™knâRËF– ,ëY. $TC. $Ì‚¬cYH˜ ¹„åâ@‚ÒHÀf,. $ „¬aYÍ·¯âû.dYH¨…\À·¯`YβŒ¥e)Ënºžo?Ÿeq ¡r7¶ˆk.dYÀr.Ë|–y|ß\–9ܳÙ|{K-׬a™ÅRÍRÅ2“e?ôtîÙ4–©üÐS¸éJþ¢ –ÉÜÝIüE>n¥œ¥Œe"Ki Þ ™ˆ—ß0>/§÷¸@üZHI ¾d,W)fˆG^ Џ4še ñk øõü@üE¼@|#dd ¶2‚ÅË’Ë2<‹ó]œÃ¥a˜JÈP–!95³äbFAb* 1S øZ–~˜î¾\³O F>Xï@Œ\›½Xzòí=øº³dscÝXºrcY,]X2Y21r”:³x¸Ítn3ss+.–T¾¯KG'K–”€c:$9à˜I 8fBYXâYâXbù†¾ÁÁÁh–(–H–®Î5í c±±XY,\ÓÌ5MÔY4ÁBÞ`ô,—¤=ºÆÕ]ë:ÿ+8 ~AìgÄþ~?‚ÿ|‡kߢü ø|N ~ü×¾Dù p ü|5ÇõYÔ\×§àð18ŠØèGàCðÊïCßï‚wÀß#Ïu½ÙÇõôpä×›‘™®7Àëð¯Ef»^¯€—qý%Ä^Œ\èzþyøçàŸœïz&ržëéȹ®§"縞ĽC{O€Ç7xŸGÁ#ç»FÔ»ŽXâz(b©ëAÐ  þ¸×îõýˆ@ ðƒ}á¸ö†¯tݾʵ'|µ«9|ëp7¸ Ü î·‡÷pݽ܂{vCw…ŸëÚ 3üpühë´µm]Ø6p¸l×€«qßUhïJû8×öñ®Ëís\[ì·»6Ûït]ªg¸Öé9®µ"Çu‰¯Ñwqs£ï"ßjßšæÕ¾ðÕ"|µsuñê W7¯~oµ·Äb_å[é»°y¥ïßrߊæå¾eÍ >SC|ÃÒý‡ÑÜ òDï¡Qƒ£ÁÝ G,õÕû–4×û¨~B}c½¿Þ4Ô_¤^£zao Ú_ïL-„zWÕG: Ï÷ç[Ü|žoÑì…¾ùèÖ¼œ9¾¹Ís|³sj}u͵¾šœY¾êœ*ßÌœé¾ÍÓ}Ór¦ø¦6OñUæTø&£þ¤œrŸ¯¹ÜW–Sê›Ø\êŸ3Î7ñ’œbߨæbߘœÑ¾¢æÑ¾Q9…¾<2utttwÔ²ã:¢'ä#{;½Î#Îoœ&rú‡œzltW­ktŠÈŸ"ÎK¹(åŠ=:ù•d͛ܵ{atÒ+I%}dŠó&uíYH‰ŽDw¢ž Ÿ-±¤¼ÐÐÜ|Ö>Œg-IôdF'ˆèW‚VàJs$æ›=á1Ç+-:ZDG£5o4ªGG¹¢4ùŒÒ½Q}FGº"5ùŒÔ½‘ˆÈ»DL(/Œw…k¾Üðñáš7<7¯ÐÞ£w!éÂ- D·¡î}"ÁU¨òÿPÊÀDP &€ñ`(cA1ŠÀh0 ‚òÀH0xA.ÎÃÀP0 9`€þ è ú€Þ è z€î t]Aè2Aè < ¤7pTÐ tNФ€dAˆq ĈQ D€p`aÀ¬ÀÌÀ4"ˆOh@¢Z˜hmàøœ¿€ŸÁ¿ÀOàGðø|¾߀¯ÁWà8þ ¾_€cààsðø|>GÁðø|ÞïwÁ;àïàmð8 Þo€×ÁkàUð x¼^/€çÁsàYð x<žO€ÇÁ!ðx<‚‡ÁCàAÐ €Àýà>°@ ðƒ}`/¸ìÍàp7¸ Ü î·ƒÛÀ­à°ì;ÁÍ`¸ ÜnÛÁõ`¸\ ¶‚kÀÕà*p%¸\¶€Í`hÁ°\.¥Úë_`ý ¬õ/°þÖ¿ÀúXÿë_`ý ¬õ/°þÖ¿ÀúXÿë_`ý‹z€=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øöõ/°þÖ¿ÀÚXûk_`í ¬}µ/°öÖ¾ÀÚXûÿwü~*ÿoþG?É3gÈ “ڗ诛£H'+ ¦GSR$æt" ÷ߟŸoëa}óU#7f¼ )iž7Ú¤EèÐ!×s`€e‹S„?Üï˵nÁ^žÛöaÛ˽Ú><;¸× Ñ냣u|ûrÌà^ý޾y´Oo“c¥Y­ñOzOm@—Ìýúõ® èŸéIÒŒXÿƒ†ëýú¦jz¼Š ×dY诟š¢o³hk<¹“ú™S;DÇGZÌZÇäØÃ2eS3†õìdÕ­Ýl³f ™^¼  ý]kL§„ÄN±6[l§Ä„N1Ö¶÷ÌQ'¿3GýšgZðëVÝ2tZngýz»M3Y,­©É)݆¦MŠŽs˜Âã1‰6klLDVþ´¶Ë:Ê6:&$p[m%HÓ÷OŠ s<%Є¹Iã“ö%éÔ<¶ß!J ßìi¤¡?í0ôØþpèC8<íÁCD‰Ý1Ñì£Ü\Ñ+û¨ñ‚úôžž¡>&ôô ¢ÂŸ–’œo KHKJI‹·u°EXÍfk„Íô®r$ÿKÓà Ó1sÅQZåퟌîÄ;Зøxt$>½ˆOFâ[µ~Þ07õ¦FÌÔPÇSC‡—‡~%;žêxêÃÈ>ì”"º¢Ë<­"»Å<‰rOäâ•sçßœ®Bœõ­ý{jò5'ħjò­›Ž¹æÃ­WÞ”?fë‡[¯xsKÁý]¦^¿xñõ3»fNÙVþ 3²´ëvœj™9ùŽŸvm?¹oæ¤Û¿¿{Ñ#›Æ•o~xNý¡M%åWÄ[è<©ÿ„·Ð‹z{;uí%ºö™É"3ItIY$ºNô„Çtšã3Æ87vðà\tmºñ“‘˜h1fb!¢tOzfæÀABàs ìo’r&¢ŽUèŸFšc»¦»;'„›Ú´`ŽH蜚–mŽÕíû"¬Ž,Ojf¢Ý"E¼Ù—ÞÉÕ%ÆÑîžØ!Ú¬ÛÂÃ4½­-,ª›£;$jeZn¢3Ú¤[#míŧ¶HÄ£œ‰mOÉÿ–r¨ü¯&°.»R‡–ô˜V‘¹ßYÑ¥Uti1—c¤ûâ·Ooc~¤¥gƒ;H¤©aN뛘 —˜€Ó·šÂ"ÃÚLܺ=6RóµìQa&SX”]{Õé2Ùc¢Úöj+bbGÇ9cmnOFdbŠ+A¿ÃãŒÇtw¹»8R:¤ÆŸš‘.ûµã¼KžúÒVot¬s!N~äöÝâä¤Áä‰ Mž¸Ð¬ Íú¸Ðä‰k?{©áÔ wDÊÔ·£J¸œ’á¸~€¼r¤:Z…Åkï1¦[J碔±æ±üòäp@šÉÜ»U˜Èã,rŒ Ûb.‘ë.7÷DlÒ`ÑëÍ£¿ I_9$jõuù“qà V­GkLb¢\úá~5WÏÈÊáí|Æ€Ä'8c­]Ç–”ö˜Õ49koB¿I^÷poa—ü•yÃ+u_,;¸v”#½¿§}¸-B>¾À¸èrÖ_Ðmxׄ±ëö5\\;,®k^ŸöÊ*†Õ®’ó©4xB{£UD/{#zç/¾¨x_±yDhÈF„†lDhRÿKM\¨ìi¸Tñ¾×Õ¹oç¾N9§œr:9åsÊùé”SÌùþz à!ï±oe±maxfw½‡½Ùìzq\O|Ö ±¤IšQ·iiÜЗp§Å­·íBjW¶S®r¾ñ€„B $U@Ë%!$®Šxj‘¼Rñâqøg½N#åT¹¼Î7óÏ?³³óÿó#Çë¤1YÎ_¦_Ï$`¾ òó2#§?užÕvi7hG4vTÕ¼ão :RÛ¼_4 c^ËdfÔy¬pBmˆnÊn’}ç4ϵâ^3Ã¥y»ÍwÙbÇBžù`hϽ;²WmÉzï\}®\·fó`0™Û5}y.™*Ü^ˆM®Ou ,Ë N^ŠŒä3kr©®Õ¹Âôî\+[f·%:}O,¬w«BÝÑ‘xbíêp¤ï’+LJ‹ù‹dw—*wzU-  Þ€Wf{’ëIdÍøt/z¿dsÏ¢õèúSH‹öÛ:ï·÷¢ßÞ‹~;KôÛÖÛO­WöuôÏG'Có¾É—1w\°6Š:ëPS/ƒ§ÞjF-®iŠk-u /¥UÂÁ ªy,s¤mæ°¨’TÚwi)º³Óí;Ä;½é»Ÿ‹²Ä¹;?Ýê‹õxD‡äà® ETEâãSµŒBbz·&œdòd ´n=FΙ½’Sr(~*÷C‹óìãìëÓÌ…!’¹’Ô‚’Ô‚’"È—T©3&©AþîÊi`?a[+a[+Pk95%¨ZÂ-/Û6Jÿ霓ôþ|Òåäcà¾/(Û­˜fÖ†Vò\2©±åg€áf’:çÀš•AGF—ìã‚;Ôå iüö‡­Ð%xˆXôe&³—ܾEð„ÁŸÝÒRD»yzÇøÁûö1‘V[øjçÞ‰øÕÓÌ\‹Cõ“‚˜Oß/È {rÀª”4UÇÅiìáN¹Ö}¶àÞË‹% skèQ‡Þ3Žðº(qa¡±ŸÐˆïȦò49çµ¥ø>¶Asã± õ#43ƒÁɬ?ZĽ;Y³ì ÉZ×Ï%ë QO†WE!Wt†suEzBq KØßøFÄz’„¢'wêCH€á`(îf¤Æw)ºì`—€ÆcP±YWðIü”¢wp,ïÇñN¨XÎåél졺‰@´?º‰¡Â+(ƒœ£Aœ b?Þô¢Œ(LRÂÝ4à¬ïÆuTsΜzÞ9ÅíDSTnšØ`ÃALz0郿^¶)먞H$qbmëD2¤Ó÷z=3t ?0ØM4†?&©lã Q­ZñHŒÙoy-BzbßxIÕ²GÁcœÛÉ^ßåWà4ÒÙ±fNë.x$¹’×ö$êC¿‚TÄ+wàË*-3пVÚ,1RÎ"Ì ÉNðæ¸cÊ>‹@$<53µðò#IÂ>‘Pç¶$àÑgxQNw9Qqâûw©:=¥0œK“ÊkÌá'ʼn¿TjBOoDñz*scoÜ m^ñjDñûºÕ…‡5ˆšÞô/ÆGÌ{ÿN°¬ ú†`m´ñß}ý¯÷/C”$îÂÁûópå’+à½6Úh£6Úh£6Úøs@ ýá"\ÄRŠY…xÆi};ƒþWf=õ³Þ[wý¶‰ðQÀ}õ~¿dQïàwñûÿD±ÿ¦‹CG ô#lCDy´]®EeàÖP;o[\„?ï¹…ö,~¶øêEq,âáÎá¸p^ÃbuM zni\ié}­Ö̃xM³HÁØ4ô6ÍýŒM èü*µ~N¢s2£6Qó˜M3HaNÚ4 ü·mšúS›æ^°iX@O#‚Q>#@mG&Úª¨:ª  '‚&€ª‚ÖhYŽ T¥¡g#š…AàD‡ ¯fµ ¨ }ÊŒœ€ûfaÌ>à™0´ÆP×á.:’Àµó˜ÖþV«ܺõÜ´C]E7¯²tÏʽ~—,tEek.º‚¦¡eZk Ïß TÑjÕ¬g–›±WPY&Á~hÍAoÝ’’ŽN?M³Ù²ÝÜ_­Ô*êd¢R=R©ëf¥œ&ggIÁ>stream hÞ2S0P0W0´P°±Ñ÷+Í-Žq ‚bíì€"Áú.vv…7 endstream endobj 2 0 obj <>stream application/pdf wehart Microsoft PowerPoint - workflow-figures.pptx 2010-08-01T21:43:29-06:00 PScript5.dll Version 5.2.2 2010-08-01T21:43:29-06:00 Acrobat Distiller 9.2.0 (Windows) uuid:c76d1d47-c3f0-4c04-bb96-0c9873d56aa9 uuid:6797b86c-f257-4559-898b-06c8ed8bcb3d endstream endobj 3 0 obj <>stream hÞ²P0P°±ÑwÎ/Í+Q0Ô÷ÎL)Ž64 Åê‡T¤ê$¦§ÛÙßú ­ endstream endobj 4 0 obj <>stream hÞ|̱jÃ@ €áWÑ–»Á¶|iJB ÄkÀÐÒ.Y\[nDËèd®_»ÿßßÂéT]V{ˆºL^ÍWW¥ÞXæ¶7rí1`ø‚u¨Ÿö¡)ðy‡¸û«6սʋÊ1Fx'M›„CÊà«›ŒÿO:•qHÝePùì ZNÆ1’B³-îîƒçQrº{_½±Er7ÞÚ$“A'™´ž È¢ßS”\Lüµ*¥rYìÇŸÏ¿ X!G& endstream endobj 5 0 obj <>/Filter/FlateDecode/ID[<9C0BC48CF5E5AFB9829644EED3A540B0>]/Info 9 0 R/Length 48/Root 11 0 R/Size 10/Type/XRef/W[1 2 1]>>stream hÞbb&Ɔ÷ L Œm@‚/ ÄêÂ@‰ü& ‹H0ýŒ ‰ endstream endobj startxref 116 %%EOF pyutilib-6.0.0/doc/workflow/figures/workflow-example3.pdf000077500000000000000000001132151367314503500235370ustar00rootroot00000000000000%PDF-1.5 %âãÏÓ 10 0 obj <> endobj 25 0 obj <>/Filter/FlateDecode/ID[<07FD6CCAE555F882D7665661F99F3ECC><6D5139D3180FAF458471B3B2CF327189>]/Index[10 24]/Info 9 0 R/Length 81/Prev 38240/Root 11 0 R/Size 34/Type/XRef/W[1 2 1]>>stream hÞbbd``b`ª ~@‚q ˆ› $X AÄ+ Á|ÄR¬e Ö5±Äí\-@B×H,Öc`bd˜ 2Š7ñŸñÚ/€£¾  endstream endobj startxref 0 %%EOF 33 0 obj <>stream hÞb``àe``2d‚Æ ¨€ˆY8Åx¡˜a ƒ´À|g3žsÍJü;l›J´gÏŽ€jfä¸5¤ l£„„Ï( `v_ 3 endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream hÞ¤”oo›0ƿʽÜ4eþo°T!%4dÝÚ.*hå…K¼‰@®”~ûÙd+U¶L“%àî9Žçü¨ 4‚Ðe@ÃÀ‰;FAWW(®ËºIw:7>h¥¿ÃC¡éÞÎR«­f)ñýz!©+ërYF}W—s—Ü·ìåyS穱 4¿NPfövE tÇÝšЮné|Ã]¶Æ]ÜAéø¦w€?bв—ùåÕ»^"wï¸ÍMe!Åz÷ÉëIº6½2¢NJJ½n³ÎòdRï#HÅÝÞJÐe'&z[”/ïb]OMñ¾Ï¥¡à¶Ðè÷zkÐüóí—$þp¨ìò©mŒÍ7è¾n¶ºìR½#Ž1º±®4WëÒF©5Ûoâ~:_ê7ÅÎÖ ú~„˰›Òï˜/>tZåõª¨Ö豨ÆU[œâ¤hZot4÷/‚äV*¥(}~²ÞGÖ<›ÎÐÉ•k½²›vA…çu\Rþù* ‚øÖÎô@;·§#¦0&N1g ¸p¯ªËÿd­Ø‘5S±æoYϦÇmMêrõàÁà„ò'>|ôØ¥bw_ükìD^€]bÙ!êÀ†Ë‡K‰óºâ=t¼Î‡xgÂý˜”Æþ§-ó\ endstream endobj 14 0 obj <>stream H‰ìTMoA ½Ï¯˜c‚”éØó}!·ª+õ€8T+ÚIE› þ>Ϟݤqà¥MüvÇÏö³Ç†ì'kˆ‚#²]•£°·O 0þ6æú…}0Þ–ÆÎ›‰q¬±œ¸Æ‹‹WÛlÇ­%ýlGâú ±ÉêÁâ|´ãFmÌÊ¥cåðÎEž üFMðÉÏzFÁ%T$Nb·*¼ÝMáÙ^ÃvyF%8Ï³ï ¸é°‡˜ld¡ÞP‡ñ5š{e¦)$éOçÕÞg¨á†Ÿ~é Ò„ºé;Û2]ÈCÞË®§E)s’ÀyUƒ\D$$+ÔU¨¥×Ñ5*éRP-¾XÔT@Ü„m-°R_PPH€ òÕ®zæ@µ7B䓲”]:@Õeßß<`ïb €ŒY¨C« “†×ZìØ ±Ð–è8¨C`§¦TRHWï³ãXemRIn B±c”dJ†È# i¤“£ÁX&<ã8åžUKX¾«zo(élõãç¹?UâR¯”’€ä“D€ìP`“úbŸÁ¤Î°ºÊE5ÈÈÐSW]ÔÈ.÷4)0ìaÏPšÀÚy޳I`êÕ»âN…­ ‚¯DÏÚ¸ vЉ 6ÉXé¼x4;º RxÔ,’·T@nT%¾B »;³ ò‚¸_›´¦è¨$ ¾N¸wiº½,m“ô³Ø=º0NòÝÜ„¾¸Zv`oUZ%ݰQ•˜WÓ´ˆ^æb dÙ¤¢Û€¢\‘ÉØàÝqÞC«a¾›ÅÛ‡¯ßvÛåðÙ¼~Æ¥æìtaî×èßïÌ=ÅñÚìes& Ïysþñæ¼<†ø|BqÒá²ÍBÜÏÂûÅÕnIX5‹›§Ý°,É¥ÅÍöËòÃðN†ãߎƯ:{^úç¥^úó2ì[;A¿ã­ÿÛÛ~¿éO—üó;¨q.b¬ÿåE´?ÒêO# endstream endobj 15 0 obj <>stream H‰ìVÉŽT1 ¼¿¯È^ˆ³ç âŒZ‚{‹Ehþž*;éEÃöh$Úõâ­ìØa÷%;IÉîî6©¾\¡îk°Ó†1ø<`ôBÐ;äàCtÇ-Š“8èëŽr6Q|((&5HÑ%ËPW.úši¼T€røø^ ¤Ç>¶áL«ÑùBw>3¬4_ð-æ™{uÁ¤ÐUú°Iñ£Âò9ñ N ZqŘJ!(¡0²ÁA~Jç¸ O Ø}MkP‘`@²I~«¯]Ñ IÀt†–ad%!ïô6E'óÑCs{4W0l½Vxܓʉ…‚\|È*ù ®p ‹^YòQ:Ê V´¥cÈf}âD¡¶¦ÁTZdUb!ˆÖ%س¦‘mcú•²E§ÇYÞ°„wÛ«íÙa{z8€±;¼ã }³CRa ó]w8áèýöèå÷oŸ¿»|ø¸½€Ýó{¤|eþÝ?¡xÚ‡T•ó ãØ¿_ßn’?ÏÓ¯‘j£ ¯@³c½` »5PëØHÎ× h@S›ÀPÍ\“(h>$— »àÇíÑ›¿’³Ø¿#g§gr(ß ¹ÉGA–<ÉeIrW@ùLµ[¦y¹þ=¹Ñ8°«u?&¯/˜•àY%··†k1hþˆ*üzÚ^?qŸ`Ôü$WqûvÈTzƒ‡…ù‚ËC™£.!éâ9é·ÓÖ³Î{WRûÌÙH´‹¸`ò€Œ» Ö=ëgÔ¦rl‚8}å+¹¬#ó«ðt!쓎9¤µž§pé}ŽÛ¨(XdZpcYϾ×yè~ÞØÀÝFÌQ+ÃgCÜâ@B4l'K麣‹ªcl[4®a/õï.#®µXêkebõUtYÏ0Ü¿ñœ„4ÍÀò;þÌÜÀå–ùQ×ÄŸ{œtË°Í /aJnçCÀ_1Ò­wÓ`ïäµ·r±/µѺ…’,M¤zI®Û>œ—ߥÅYyî=pÿž¶¬ >ç¸N—°B”ˆËZ«G9i¬ëÞ»]¢¤E',>stream H‰ìVÍ‹Û7½ë¯ÐѰ*¾¯ =4·C¥‡`Ú†Ö^šºýÿóÞŒ~ko²É%ô’ƒ5ÏͼùÜM-†8|Š#äæS¡ªEQ"š!Š?ºTG†«^F¼H1$|P¨ØªÁLýÓKH…xS¯¡ÉÂj«†)~s“Z¨òH"ue`üR×cqjMQmŠÉÑýêî˜ás9>8I¸*ÅײOðò×/ЈžÞ¿‡åäM3‡ˆHÎúÛÙíI7ú}˜Í‡"K˜t£" ò8m(“‰>¢< ›pt]6ù9´ õÌ,¯·sbÐ\,,ôuį£{§–iéìz"ý¥¯ò#CuϤÇu¦O ™ÍÚI3yï¾?¸ïXò&5Ù'&Å`ÊP`®b¯P:ºŸv‡·wû^ÂØ]p¶ »?pÖv/ï~>¼r?ÀäË ¼øg+!‘l$~\ŒB¿+Ùlˆ) ¸lÈÈ`Ÿm°/a¢s¨œ _Øc¨›‚$ÚP'˜“¾…‰”Ñã¦"Õ +9 ›W Ù¦7h„í¶ãDP&.£ó Ø×9Ú8IR÷•¹˜/4@ ’õAŸƒÔ©¦ 2ºT‚h§N ¹)Ȇƒ é°Ðcf½Ø3˜¡Î± R÷¦¹„-«ïǰm­„ i[' úMiª5Vz‚B;¨ë¢X·`œæ£-]sÐÐ$€1YÖ™šÕ`Ú ùCA´òR61Á’¨ÚˆÝïÅLÁÁœDxKïM —UÎÚ1ÙW¶•öKD± vQá‹Ñ˜òYÒ¨ø–†!Ûc ™I Ä1Yš®­R1bT®bUZ{BX6Òo”Í»î]K³y“Oç-ö¼¤ÂÚaà¢ÿÍ…>stream H‰ìVÉŽ$5½çWø8 ¥q8¼^A8"•4P¢¡ª‘†æÂßó^„³ºÁ¹¡RwÆKǾ¥_¶o/[ 2ÂŽ¿²–˜ZPÑ8s¸Üqöóöî÷¯.¿lß_¶O[n=jÐöÞ£„žSøõ§MfŠ™oïÛû¯ÃGõ™cÒÐ$ƒšÀôß|÷ÚÂõ†ø{½~Üò˜1A6Õ˜JØssÿ™Ü”¯×é}ûþØ)sè~ÜÂí4[ž|ÐÊ3¨fÐÙpdsÕ·íeûñK„û)ˆÑ¤P’ÒÚõnïî›fúHÇ@UÖC5ì±d{Šñn$Gu/]` ¬4¾;Ó–Ç7¶J¬R98k{nÉ¡œl‰ëHêÃV…÷‘bc‘Ê` =|zlg.P·8[`_91™E#¡ÛÔ‚¥éiMéÄuëù o c;P·=µd݈C7±hxaÒÈMÆ¿+š‰š©é¾usñýðÐÌgkCÊ“¥…œLaµéy•ueuÿœ¢2l =7¶íÑçn•숫O¨f±KœÒÜW1€5Ío!²i@²õѰr™B*D+ T±³Üs á…`ºueXŸF?ùiç·/Å20£çm$ŸÜ,f¾ÚwLBq¶P–³š€âss¦Š°©A£ãrÌ–ÖɈć @;ÇŒ0àLobGC#5¬ä•+#ÃÖuß›o´ÆJ¶*¤ZoyqÛQ€A»²v`%¨©Ò??ðÚÖ,Þƒ§Ä<çn9hU(–ijÎl`•y fñͦè²Ù*ŸËAŠkÛHwWsA–Ö›NVë Õï(vB± ö(ï,ˆ)Ÿøbï–nµfŠA»pæ¦Q_g;7ÕdiºµJE㓹d¯ÒšÞ̲ÑýFÚ­Sãc_?Í--mX¦E²M*úÌ¿k'/{Zí²·˜qÙƒ'CJ¸\·w?ü¶î|ÿá&|ÛhÚl>JŸŸ»õ©Zž×)o}ÚR(CüÖ§ÕÞ—a%Õ2C¶šÔÓÄ]ùì^WŸÁR¶¥ú¸õ}©p—7î:=­©žÂu×à îéE³ endstream endobj 18 0 obj <>stream H‰´V˪$7 Ýû+¼œÚ±å÷6!ë0Ðp!Û"CÝC&wæÿsŽd÷c¸ÉîÒÐ¥S–%ùHr)×bñU†¿¸Ü"¤Î¹=²Õ¸«ÅÊ÷É}t_\.%÷§ÞCò]¢ÿç'­‡Ì·W÷ò£ÿì¢ïSB̾%æ*½`á§_^›?^}ÔßëñÙ}ñIåäS¾ÄLoÇUß]Ý(x\ÜÈ õ”,C)I˜ãæP‡(  øQôq¸Ô÷\î@–­ò ×½dvÞœnTL‡Fj£,áÀ¡Mº¸?á&R1%ðBVp¶ÛÝö^#´¶pŠ¡Ÿ¸b¨E‰h*5.Ն᪋j8"Ü`¯3õ/w,Á¸Øê54YXmÕ€Œm7©…*· R×,>œŽ;Îò|òCË&1»šmŠÀe)^bèÐ³ÚøäÞªIP(šÞ[Eœ2¨³ùPd “®T„A>.eF£›(ƒü¸…ÃuÙòrhu-µw1'ÍÅ’…îFÕ þ䟖iéêzbøK_å[„êžÄÇõLž21úUYÚ„w~XU&¿§¨ mã&*)€s¦2ÎÕ'L³K˜È)ÂÏIzÙ› ’hª/„0'Ý )£ú2L!÷Ö$DÃAºsÞµêBÅG[íx*(3¢& Xq9Z¡KR÷•µ ¹˜/¤¥ɺ!‹ÏAêTS<K2jG‚(­Së™±)Ȇƒà¦·ìCÇUj˜ITwgÁ³L-ö¦\BŠÆ*º»jmY‚± mç`Ðo²“¦J€+”ž ¨\¬ ðœæM']9h5q[LÆ:Ùh¡Y¦õwÈ7h2 ¢™g—™˜`ITmÄîO¢í ûs`+7Í[V9kÁd_íû€\GäwlbÇhd|â²=)Û8÷ªÝ¼6KÈ\Hb ŽÉÌt­”Šº§r%KÒj^aÖ}£lÞõB4vŸÚà£ûùÌ7´ÉÄÈ–ºÄ¦?_]ˆY=îÃoß¾þýíëëç¿Ü¯ç÷ø†ÉÐ$ÊÐþ>Ie”ö¯†µ=×êõ#¨rzy\º-“«²ö,Õr\Y2}ú5Zj–V¶i£ém’†Ö XŠÊÐË»s³BÿnÖêæ&ÇþÄͦÃ@Ž›™ÜÜqcjÏD•mú¸Éü\’š¿¿+w8b—Àí›zäiê1”úš 6Ô©GlêéÈ}ÑÇáŠÝ”lyÍ9R亗ÌêÓÌ#3Ügy{æ)öáïkä)6ñlËkµ­§ØÌÐtÞÉ6N4w² mM;Ù¦Æa'Û|Ò9ëd›]º:Å&›¾& × ³uל³Í蘳ìwr–ïÎ!gÕuÆYávqžz|ÿMfoÏú”OŽ;ú )O]p,†ü¿ &«Ea endstream endobj 19 0 obj <>stream H‰ìVMG½Ï¯è£ÉMwõ÷1‰8K„4‡ˆ²² °Wl¼ûÿy¯ªÇì’…pÈ-È’§ž»¾ºª^cN>dד/ÝE€\]Ï2‡%ÖêƒP>^dá7 u.r™G£ûøè°Tºö•òèƤæt\Þ#R jo>Uwì>Ô/Þí´u_ë„¡B9–᳂’D€Áè¸Ké¾+,zD—ÁG•¡ Ùn\%ê/P|ÔLÝâ«LH7ÅqÓ¯¾È»7 ¬Iá:øžé ûG=,×Ë+|n—,(•ÃOûÖ`“àþþkI¨\vZ‘×ÏÜ *ÖêŸ\(.d*½ÆÁóßÎðvvQ?çÚ&µ¥Ãºy¼¾dq5iFææÞù¡ñ-œPŽ.ÁAÊ‘s8éo§eÏz y~TçáÆ„Á먇|7”xa5¢Œ††M8,M6ùÙ× µÄNÛ ˆ1h!¦Œ,Ô|0QôLO§¥iúS_åK†žm óDšÈÄàæ¬ZÇ~]—çë OneáÐ÷}äŪY2Œ‹[Y«Ð ”ËŸ»õíÕ¾eßwg<«—ÝG<‹»_®Þ¬¿//Öÿnžle¼N_w33ñÙ-Î6ÄèÁSN3d´  TIe?bs¨tŠ ºËä¯ ŠŽý‘°¦¨¶p˜à*ô¹$ˆºÍ '#¥ê¾<@`|°Ó†„ Ü$茌ë5|!g!gs€rLPö’Ô ‰K^ÊPW¼d0D¼è e6sS{Á5L«Éù†Â£4:0½‘û^ò̽j-!«*V[QØ,â@ê6Jq£Ý4‚ #AìäöÐ]–.xO ˆõ#MkP1e€!ZÕYê«õ`Ø–óé-C6A´ó’71š'¨õÐÜ^ÌŒA[F¯Ú¸¤rÒ‰I®p¬t^š•§°è•%xÙìµÜ¸m鲋n$Å@胭i:*¥r!ëÒ\4¶1ýJÙ¢ë+ÁÊûeo'r{+1ƒ¬e˜ì1RË?I]2y1 Áê@Bï^^­ÈÚWÿnØx7úbRã›O÷Óü‡òzÂ)VÌÃlîfó„z‰ÔÏSý»£÷ŸãçÆøŸnŒÇ4ÊA”F½1½#›ƒ±ùû»O÷wßæTÖþ1å ÃØ7_ï]ÿ’ÏÓ& crש?-î³vôGb endstream endobj 20 0 obj <>stream H‰´VM[7 ¼ëWè¸[ÀŠD}_[äÒ[€äPôP¸Ý­½@º—¶¿¾3¤ž÷9mƒ^Ã6Ç’Hj†äs‰=Äâˈþ⊊7Á€•ƒ‚<ÊÔem[Àp[‰?\Ü“ûvsѧáOxG_¢„ذ>BñÛKðÞÎîá¯ÇíW÷vsŸ\‘ªÏÍŸzÉw‰þ÷_\.GðëÕ½ÿÆ?ãTŸð•}K‚S¸é=Þ|÷ÒüùÁøz9?»Ü4›Ò's?I sxû¤ã\õö¶zu±?î7¸º\ç+9 ¬[cÛ+ÈìúËAnGrÞ}FO®e§'‘ž‡?¾:++éÿ`e­î¬ÔXïXY7\@ÆÎŠô+¯ÀX±m÷µÝõX©)\ˆ´üùõhùä“ÚɳøËÌÌê|Õß®NЧŒRBƒ!šò)ÙM¥ôìšKhœ:Mm®f¿íDÆ×žÝΡ´ŠéPÛXƒ‡0ËC¼YÑÄàÚ„Øœg(™…~Ïhó0 V.©Ë&íZÔ±®TC1$ ¶` £QwÛ‹jÏà Ý"…åt¦°bÎÀ–®SÑU–.²¿»èY éUM7™õNÍTLÎTîx\pˆ1¸Ãêð 3އ㤦JÒ·Û²{*»®¥åõP1Gˆ+àØ3é¬óª©émÁ–yj*ëÍ»­öZ[<bsªÊ È'µ~,¨T•vÀªKt íÔÆnØvcÕŒ fPBRÖ^”,H7•Í»ü›x+¶ªº’2¹WºÈþê;6þÄÝþÑø·qð?é‹Ï£E‡¶ÝãŠ}‡¡U“¹xrÿ:1t§Ž»[È„ ³y 3&¯¢&òë²£¬5¬Ò°Ÿ8ÿ–qv]vû;´uRëìÄ‚´ËFzä>Ψ&z¦§«ë‰é¯ýjß2Ôð¢ÓžÓ!ÒBfF¿êÔÔÂ8³mðä·§»³³™$'d³‘«câßÞ>ÿ¼=öúðÓËo?nßsÚqX³d0†Ççì—¡-n´G%ZufåÁe}"k&[êÌ䤒³f!”‚$Z¢Âˆ¬y.RF·d¸â,2R€†iL%sÞÛ2ÔBG[íôh®™ÑGƒ1âôIÃWö첞ˆÅK¬²ø¤NuÅ‹°Ya£š%ˆ*6µ müäÇAp $Óѯ¡£Y@ ‹]ÙÙ§AÊʽٸlìÎhc¨jÙZí`AÚ.=À`Üd7Mì 0T ð|`§ëÜY¼§Ĩ®4N ¸d¬“ yÓ`ÚDâ#dAË"ˆ*/e7QgÕ|ŒØñŸÇ\!ÀœD8ËèM…Ëjg­˜ì«ý‡Øbc<óa+¸!)Ÿx0œ”n{ê©cØvXølÊöˆcRš®¥RÑSÜ\ ÄTZƒA(Óo´-ºŽo£×ÿ-À{LHL endstream endobj 21 0 obj <>stream H‰¼VËnd5Ýû+¼ÚØå÷Ä‚©¥|@‹€F鈙 _Ï9Uvçö<+%©sm×óTÙѧ0‡rî½ûñì~8ŸÅ'~tѧáOø¾ôbó2G¨ÍŸ¯XûÝ…c÷ç‹{÷ËóŸŸ>¾~wþà~†‚Ÿ^›¿¼â^/Ï®Œ¢øÜjˆÅŸ¤Ò ýýë7Wª~^«W÷öGÀÎ3WWú´å7˜‘€Û†~€_ ‡×¶L·™jFŒx¿Œ2÷ÈõeÔVp/® ÔáO½‡ä»D BR¨üzußûgœêSB̾%ÁÎ)Üô€…/³ó‚lSN¾ÄáËÌ4~¹ê·«“â„LO¡È5³·ÐLN,øfßòª·îÙr¥mm ÉzfÇàÁÌÒoêyò4Zh,hÌêÍ·µ:kÈÅ Â&l,l(àK3 õ^\a¬\R•9Lʵ¨ŒÄ¢À†bHjlÁË¿öŽò0H5€paé.,Û£Ó°9…pªøå.¼¿ ô¢ôþ_øoôüÿmõÆK×õ3Ê(©,þ—”ßøÊðµí¾ÚVýmþƒáeÓÿÝßÿó™—YŠQ?•;Î-8ÄØ¶auxgÏÃ5IMY?˜‰-ËÖTr]KKë¡»ŽéÃ1¤ÁØN&]î: 5e¸¤‰IM[à¦ÝV;ÒÙ§±9UeˆJ€Ê°èl¾T•¢€U—¨\I¦†—×Wæ+ç™tò寲Ï£ta6ϱjÂd0*B!ÿ=m”µãµ8œ>l›%\\—-?Am£®#}Ý@̈A3±dx¡§‘ ÁŸ øDÍÔtu=Ñýµ_囇j^tÛÿt°´‰ñxçmb½å¬ÆÁs2>O[Ú–¯¨Jí@Ò@F¬}ÂY€žºGH9)À-Gº!à ’(»ž;`Nz*RÑ3TqäZ4@ÊÃä¼;*ÔÑ¢­vNZôÅÌ€h‚AqÝgIÍW¶ä²®CØâ< ’õ@Æø ÒTã`›ANøD3=µì’Èzƒ øÒÑi¡ƒèÈ ‹‹~êì° e¹ÞlÐ5öU´R•nVs,HÛ%´›,ÐT+@•–æHp´±Iud¬›Óã4‹èr隃VÏÅdYg6p—Y ¦ Þ” š‹,‚hå¥l1™&lxžÄTÁÀœD8KëM —UÎʘì«ÝX(vD±1Yù¦„È”OÌô“æÛ.wU Ù ¯àl÷<@“µéJ•ŠfàæJ V¦ÕѺÑýFÙ¬ëäÝ™û÷ðá~¬‚ý! JÇgpÖG⯟>ÞÁþ|¯8è endstream endobj 22 0 obj <>stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 23 0 obj <>stream hÞì›ytTUºöß}Ω!U*sB…T%E!„0II!@H Æ„$DÀ(*ÀETœ5•%Îhã<ÏÝÚ*85ÚàØNHR÷9ç­ˆv_׺ßß]ëùåyö{öÞµÏ9{xÓ«%ADÔB*MšX‘;`ÁܦDþjêÖ.ŽNNèAT¿‰H¹¡nÙR÷ÞküL$F™ls7.üᇲp"óX¢°n .˜ócÃ~ôX”„N¿˜ÛP[ÿQñÞO‰ôBCæ"±Ç޶Qõ(÷˜»p銜†ÃGQ^O}é‚óêj)§ô Q…†òú…µ+÷jÚ[Qß½¨vaØÏ/BÛÆB"í‰Åç-YŠqãÓØC¿¾¸©aqð‹Ï¥aL=ì¤jq™ÈjÚfˆQ§²ª¯Òå YI‰2)Š¢©Š¶“”¯¼ä¾BŸ² ·›øE3S‰C–[”L7ÑýšzÀ©›þÍ–[ˆº®¥Ó?“h>-Áól¡Ëi3]KÓ{4›ÖÂm£t'ÝC~z‚ž£wèÿá§ëÓB W™b‰‚'‚Ç»î鯑kQŠÕÜ¿F‚Žà—gľìº6èèê0ÇÍh¡¼Žèw¢3xBÉ×ËÁ!zYYe´øÆrK×Þ®»Îxå4•¦ÑtšA5T‹û¯§¹4Oæ\Z@ i‘QZ„kø=¥Y¨U‡ZºÿµÖy´4ÑRj¦eø·~I¨¤_;ß(7Órü[AÐJºVÑêÐïåFd®¬4Ê+ÀºoæbºÄpR9²–.¥ËðÖÖÑzÚðKN¹VÚH›ðž¯ +ÿ­ßü›ÒUøw5]ƒù°…®£ëéÌ‹›èæ3¢[øt æÜƵëÙa8ýê#ô4ÝO{h/=`<Ë:<5~"ò¹Ì1žáb<ƒU¸Ãµ§˜ŸßòSOk î]¿·ÖЮ@ü’ÓZ, =G½æZÔä^ø=转>ãI\…{`ÿëqé:ãþžþTþST>›O{27%ÝýwþzÚŽ¸ ¿õ§ª»[áÙí0üéñ[NÕÝi”o£Û鼋» '•#wÂßEwcmßKm´ÿ~õ§;Ö=tŸñæüÔNÚGûñ& ÔaÄÿÓµ?Šï ŧ"ÒCô0fÈct;Í“ø'#"öx(zȈqùIú Êz-.=MÏ`‡zž^ éz ¥—ßÏ¢ô*½NoÐ;"î5ú¿;yÇÔÏš9cú´©ÕU¾ÊŠÉå“&N(_:®dì˜â¢Â‚Ñg{óG5rÄðayC‡ Îí›Ó§WfFOº+).Úa·…Y-fvbA}Š<Å5nf_ËôŒ›£—=µÔž¨ñ»*þm¿»Æ¨æþmM/jÎ9£¦—kzOÕ÷H™ÓÇ]äqû_*ô¸;ÄÔò*øÍ…žj·ÿ¸áË ¯e…ÒÒÐÂ]”4·Ðí5î"ñ²¹­E5…è¯Ýn+ð4ØrúP»Ík‡ó÷ò,n½F Ã(½Š†·ãŠÐ¿Ö¯fÕÖû'•W:ÓÒª}ùÍ~‹Ñ—{ž>fÚènïs°uS‡ƒf×d‡×{êk§WùÕZ4jU‹Z[×ù£³ýYžBÖÊO’pË þ>žÂ"¶•N>õÂoÊpxÜ­ßï9~ì·‘ÚPÄœáøžt«ßâ©Ç„ëÒƆâþÒÒô±lìðÒlü-åU\vÓlg€¼¹ÙÕ~¥F¿rP^‰÷éWZä•SÍk.wQkM!PïËS^õ nävîHƒ¨Z‡?¡/%³¨µª~ŽßUã¬Çüœã®r¦ù½Õx|Õžª†jý-yþ¬Ãøº4ãV¸·3jËÊú[2¬î*Å©Vëo w1~yFÄ^—QÔßèè‘î*á$Y ߪ¡»ßôƒ‚šQ0V¿¤êM Æ:ÓªÓøó†ä ɔᷞ֗Scâïù·CãÚú€²ÜE …§ ð7šB õöÇãTôgúb´°ê¯s¬¼¤f`å"¦ #¤¿Å$·Ÿ&¹«< žjæwR•~oú³6Þoi…§´|j•ñ¶C³¤ò7%¾žÇ%?¥á²,(˜ƒÅÙNùZò£|ª8öŒË%ò²»Õê)­hÕ;÷„:$7VnÚœYR»1/f–f1v7Oq­Çíp·Öv[f·¶{½­‹‹jæ×ûð”Ô·z*ªF:±N®Zí\©U •ŠÒÊÑ9}°÷Œn÷ˆõåí^±¾bjÕƒdµë+«ŠP jFW·÷Àµª‘÷z¨¢Gõ ^pë½§É(XúνD-ÆUÍåºAFÌ*c‚ê:Ž9dLALã˜×ˆé¼¤¤¹xÄØn‹ÜõúëYU=·µ¦Z_\”€W‰ážQäW<£Ú…b÷Û< £ývÏh=ž¯Çó9nÖãL ‘ ðpô=©µÆƒ} ªŠœ‚§¢ªwéî+«Ò^r¯NÃT›¦Vùò±÷›2Æ¡Þ„Çø[êjõq¯JokÉ(©«Æ´•¢J‰? =„…z@b£>Ѩï/Ðhß‚‚¿¥Ú_­iÕ¼jc:;ü4Ö3¯û4eê_”[Ýã`¬M,[Æ:]Â06ª¨âˆE|Y5?$K8F^çÁ¥º7ž¶Fu˜ê¼—ÚœiÀ–¨e6Øœ¡‹¤ß–ša°ùÃú¢CüèÞÞW_’¦ Ku5Þ(­ UÀw;üvŒ(ó´Gj€§ƒK%úXð³CÕ«>¡wSÞA“=+°³èƒ6z²à²?"£¤›?··#âÉ“­úaõqˆ£ýÎÃñÜՌʎà]ž ÒNûäôñ臃>1Éù &6U·žðOËÎéc=3a„[[­Ü€Ÿ—5â”êAwN TÄ_Äüw¤mÂÉþ]›ÂÐ#§´Z-ò×’x‘]äù³˜Áu´©´[+¤Ú?䮣­Zœ:êQÚ ŠBZ¢Ì‡â»Õûh·)œ¦‰výþJV4Ú­hÁqÐ^Ða ?˜&‚ O=µkPo3Y”ÍÁ{´^hÔ«³C~1¥h3i·ùôÝû°€ñT÷ß2‘1EuZ:¾ ˜fÃWÁ3ºâþÆ„ˆI§ÊŸQÔé˜ÒéÞ?‹ÖJé–T:ëL´žÔ}¥þŽÇiDˆn†þ‹ÓôàG:šF»Ôhá¡5Ð.0_[NtÔÔmÁXXÝ!ú€,0:ߥNB»KhÁïXø Ú¤m'¯8F»Ä±`4:ô>0œx4HÒœ´KE¤Œ nRŸCß@9l°Nù,ä¿ÆØÞ¢]f3ú¿úÛÀ ÃÏ÷Òœÿ–‡ô3G} ß´vøãðL‘¡©„ ~~8U®¦µ:ØÅŠù¸™v€›Cº4‡üïP;)Í<Іž‰ú" Q×âÉ<* a5ô-š~©30ç2Ú Ú†õ35ÄpŽ,[Σ©æ÷`P·FÛæƒAT«þB3þ Êù”a¾‘2¬oQ†ÖSÈ<ƒ‰gŠ›—Á†3ÅS? ßQpZßk½¦gL±”aéEê!|&ƽþžmÚ à}ZAðgñ6]&Þ.‚FA§7hU ñh°M=H—i©´^||+Dzâ!ô: ·’bh©ø…R”NÚf®×¿ë7L0ôÖàvCóð>~ËÄßÅF2æw'û©Qž§mLðgè"5ÊÌÛ´`§,›ö0èk›øõ÷PšrèúejŸQšÖüçÀ³N³”b~ÿíÏqnW„ôrP6„ü–ÓQ·Sº©ƒŸ‰º{ÒJÿYTÂbh5©µT¯®À\ÝM…ʧ´@™`èX¥ƒÆˆ'¨‡²ïèsZ ê¨V, þåb&ö³)¨û™A‘ÑmÄÐ~4Z|L½r¹Ô¯¨²gÜåäR†Òh¥ûY3Ø¢ŸÚV¢“G•)¿a|¤ÎFìäÐxFl;˜'‚(ßnwñP£ö@ß#V øN°Fí‰r ˜ªÕj8ÊQ Úˆí÷(Wëÿë=ØiÄ>)È1”'Áý¨û8‚œÃÈ>NNýÅËÈCÞ/3¸—2ÜۥЕÊE†.?Ò¥J™¯7è9ˆZóõRÎ9D×3ú™ÆùB×-úÙÌùBþLN6ò€ë¨‡<ïñŒ+ø &mpn«mÈMøÆyÙµHWs,¾ç©™è*Ó$šišÔõ3Ÿ‰Áfý,T~1Οe]¯é{+Ÿ[]ojûiŸ[]〉4Σ#-ÏuÍä³$8Bocœ!Ó¨Ô8Œ}»ëV]MxRú¾nª¢uúù¢µqö×x±N`>^ƒ³¯êÝ9 ”g±ŒÇ5³±­ ³2€¶(‚ÇÀJeì+ûqs [1×*SU¬¹', ^Z -Cûj¼ÿéj2©š® ±$˜†Ï4‚|¸ïÓ=´Åt Õë(ŒwióÒßõÅD[OÑó>H‹tŒ÷YF÷ïsqˆexG=I=-w¬5ÏÅwò» Ú‹Ü Û˜_Ò­Fž¢'Þw Ež–õ1­ÀÜBçhpm]® å8>=Á½îÒÁ»Æ|YÊIîóCsEÏ»d±sv;rî\܇ç‹vÚÌC½´ÐìA¾S„ò,J4­Eì(ø„ÎU¿Fþ2>ˆó}¹´:€ˆ3\qœÿZž‹>·Þ¾~(<æD ò¼Dýœ8ý Gÿ£”j˜{È©*p¦ñؤŸkêh ´xJ0+kšG³´18Çz…Ϊþ ÷¯ç™‘cèçL2Ùô³.´7'©¯SºÖ…8önÌÅmÚ@ã mz“¶™ºPG6S%bO‚˜Û›1¶§á_ <­"ø³~6ã}'©‹po!0WïÐQn6å&z\G½Ÿ.3 >ÀÜ®¡ã ]­§•8 fa÷Öç4xXŸß¦ËézÄ6éq©xGëA¶ÔP,[y€–‚ƒRµdä|ÉX!UI(âLØ+ZÕ“bÊv”s”%8C€zù$°Œ¢ëN±ŸÕ“ôÄ©5·.+•¥¸§¥4U¹”¦€fÅ‹}Õ‹ø8òƒÆW}Ý–ƒ`™æ§sµ³œ¤ùà,qˆ6ªƒi£ g’ g“åG€sÃ2’Õ|íÕÁߟ-¦Û)ß´›Êp¿„¶ùÚ>Ì£H<“X‘FîTÿ ‡rt!žE6ü õ;œÕ;°~Ãß;Poò´4*±Ä^qûûǘãÑÔ]ÛB³”°/£Ù ó#]}:„Ö¨älC° ÁÜŽ¤±`hÀ À¹ L6(À³ÙLÉêÅØ—`?ÜM™ê\ŒãžA åbn”ªÐdŒgØ Àl04cÞù³óu~7¾^z|ýþh|XcÅOÈ!üTªÜGg+ïQ†r'æÈ‡4 çòåâ"Où‚Ê¡åÊ«tŽx„j@Õÿ¤­²òÄ÷Ô_™L#•ÌËq§£M9õSò(]9}•¡ï?[¯=XªÆR¡iÀYjJ i_Pž£ 4ÆtÜ ^¢ž¦ÕT_„³]ÏçÆZ'ÐXĦ[žÃû:‰sý$5 Ì ùj€5„wÅ×}`Š>ŸMŸSÍDƒÍoÐ<¼ûZå8ò¿“dÕó =ÐÏLsöâJš¦%Ð8¬¹Áõà9ƒHÚk‰Ã¥Ú&Ðæ<üí6‡zÂTw‡réþ°$1f­4—Hs±4-Ò\$ÍiVK³Jš ¥Y)ÍÒ¬f¹4ˤi–f©4K¤9_šÅÒœ'Í"iJ³@šs¥™/Í“æSi>‘æci>’æˆ4‡¥ùPš¤y_š¿Kóž4ïJó7iþ*Í;Ò¼-Í[Ò¼)ÍÒ¼.ÍkÒ¼*Í+Ò¼,ÍKÒ¼(Í Ò·ÅrËH®9‚e87Æ’Ç2”eË`îlË@îeK–~ÜY.K_n—ÃÒ‡%›¥7KK/–žÜu&K÷ÙƒÅÃ’Î]§±¸¹‹%•¥;K ‹“¥[ ÛH2KR ÛDH"KãYâ8ËÃÍ×,QŒd‰` çkvK_³²XXÌäIS ¹¢±¨T¸$XÈdé2ªˆN.dù…å_û™K?±üÈòË÷¤JÈ¿Iï¸ô-Ë7,_󵯸ô%Ëq–c|íŸ,_pðs–£,ÿ`ùŒ«|Ê¥O¸ô1—>b9Âr˜¯}Èòßgù;Ë{,ïr•¿qé¯,ïϼHœy‹åM¾Áò:Ëk,¯r•WX^æàK,/²¼ÀòÃò4ËS,‡XþÂ5ŸäÒ,Yçk±<ÊÁGXfyˆåA–®y€K°ÜϲŸe_ !$Lƒ´³øYö²ìa¹e7K˽ì×âîån–»øÚ,w°ÜÎrË­,»Xv²ìàÎná^¶³ÜÌ×nb¹‘eË Ü`+—®g¹Že _»–{¹†åj¾vË•,W°lfÙÄ57r©•eËz–u,—âk!—âgC.eYˆŸ¹„åâ@¼ÒˆÇf,. ĬaYÍÍWq» YVâë!pó,ËY–±4³,eYÂ]7qóóYâë çqg‹¸æB–,ç²Ìg™Çíæ²4òÈæpó–z®YÇ2›¥–¥†eËL¾é<²é,Óø¦§r×ÕüEU,çðp§ðù¸—J– –É,å8/dR Nÿ†‰8}zOÄ­…”âr ã¹J)˸@òQÂ¥±,c8Xˆ[) Ä­ƒâ.‚âZ £1ųY¼,ù,£18ßÅY\ˆ®†Œ`ˆÖ§Æ0–¼@ôÈÐ@tdH z*d0_Ä20Ý2€köDë7Ö/­¯Í\–¾Ü<‡¿¡K6wÖ›%‹;ëÅÒ“%“%#­?¥,î3ûLãÎÜÜ‹‹%•ÛugIaq²tcI8f@’ޙĀc$%ž%Ž%–%†Ds£X"Y"X¹¦kÚ8Æbe±°˜¹¦‰kjTYÁBÞ`Ôl—NWT«3ªÞuþpüŒØOˆý~߃!þø×¾AùkðøGüø'®}òçà(øø,²Ñõiä\×'àcð8‚Øaè‡àð>ʇ¾Þ8×õND×Ûз"¸ÞŒÈt½^‡-"Ûõ*x¼Œë/!öbÄB× ðÏÃ?ÿlÄ|×3ó\OGÌu=Ñè:„¶AO‚'€7x¿GÃÏw=Þäz8|‰ë¡ð¥®A8€øà~\Ûkû €và{í¸öØWºî³¯rí¶¯vµÙ׸î÷€»Á]àNp‡=Çu;ô6p+Úì‚î´ŸëÚ üvp3üMèëFôµ }Ý€ØVp=¸lׂkÐîjôw•m‚ëJÛD×¶F×fÛ®M¶»\—©®KÕ<×Z‘çºÄ×⻸­Åw‘oµoMÛjŸ}µ°¯v®.]}áê¶Õï­ö–™m«|+}¶­ô]à[î[Ѷܷ¬­Ù§5Ç5/mVÿÕ,ÚšEa³è×,jv4»›Õð¥¾&ß’¶&5Mjjiò7i#üM‡›j¶ŽàÁ}MÎÔb¨wUS„£ø|ßy¾ÅmçùÍYè›aÍËkôÍmkôÍÉ«÷5´Õûêòfûjój|³òføf¶ÍðMÏ›ê›Ö6ÕWWå;õ§äUú|m•¾Š¼rßä¶rßļ ¾ ˆ—å•úÆ·•úÆåõ•´õÉ+öá–)Å‘âNQú&¤`$ä£û9½ÎÃί9ý΃N5&ª›«›’•, &&‹ó’/J¾2YJz%Iñ&eõ)ŽJ|%ñÃįµXobVßbJp$¸ÔxýÞÊ*‹ Í/dí?ظײOfqT¼ˆŠwÅ+E®xAч£¿ŽVãw¼âP¢¢DTT0JñF¡zT¤+RÑ#Uodÿ¡ÅQ®EÿŒP¼ˆè=ö ŸTYewÙ_¾}¢]ñÚó Š½öœ~Ť ·$ÕŠºûE¼«X}DèÿçY qU{eEvvi‡•&—ú­“¦ùÅzF…þÛ[>Õo^ï'ßÔiUíB\QÝ.”‚Jœþ¨7Ê—mÞLÝG—ú»WTÔ;»®.õ·èÞë5|P÷„*ÕÙ3—4/ÉÎ^:¿f.Yšmü $šõR¶Ô–,EYÿ×l”)û?~¸dÖ|–†bK³ÿWÄÿîáÿÿði'ý¿9;¨\JõÊZp ¸´€‹À°¬‚•à°,Ë@3X –€óÁbpX‚à\0ÌsA#˜@=¨³A­ñª¨Wf™`˜¦© TsÀà• Lå`˜&€20”‚q Œc@1(… Œg/È£ÀY`$†ƒa  CÀ`0 @Ð䂾 ôÙ 7Ƚ@O 2@àé ¸ ¤‚î 8A7 ’@"Hñ Ä‚  D‚ìÀ€X€˜€vv¿U ˆêb¢ t‚“àpü ~?‚À÷à_à;ð-ø| ¾_‚ãàø'ø|Ž‚€ÏÀ§àð1ø‡Á‡àð>ø;x¼ þþ Þoƒ·À›à ð:x ¼ ^/ƒ—À‹àðEï#%>žûê,Cš¾;xBT™â(ž&ÈOœ˜¸7Q¥ŽàÑ}Qýz_TH# ýa_¸¡G÷Ù¡áð´ˆe6Çd“òóEnöãõï7#CÞ|tèîãE•5.-9)=Ο–˜œgíf ·˜L–p«ö®t¤ÿ—¦ÁãÚQSÅROZåí—„áÄ90–¸8 $.£ˆKÂâ:”Þ07õ£ÌÔÐÀSC‡ÓýRxjhà©#û°Q²È DUx:Dv»i åÏÇ+çÁ¿9CÞ„8ãZõUô×—ªèo];:îÚ¶\óÖÆÂq[>Ørå››‹îï9í†Å‹o˜••9ukÓù7Îì¥\¿ýdû¬sîüaç¶{gM¹ã»{=ºqB妇›n,«¼ò¼…³‚'̇ñFRã¾Ì‘b@Gð'o=\ŒÏ r­ºé•+2F$C¤'é&+]$¹u“Ó_äô9=DŽG Ü{²§Ÿ]é>9Æg¼‘ü˜Äaùùxøˆìò_F¤ªßWOáQ¥ËÌ2D¿ÇD1Pðô•.!Ál1­Õ)Y©®ì”H­ëå„Ù-ËÖ'%Jíº×,¢3Ý®±Ex„ˆSÃâ2RSÒâÂT‘¥ˆîª9ÖÓ=Õã¦ÌÈè0M ‹ŽT_;™+½Ö–Ø-RS­‘ö_iÃíQVM³FÙyZaƒ7EvKÔÿëÌ~ÁêxB¹ÔÏÛ=+Wdõ™I"3QôL½HdMöØ£»OŽ–÷¾™oQè÷Šû*N»ÛS·(ÔO"L1Yéîñv­ëp×û¦ðø©i™Q¦QÛµ7ÜâèåIÍL°™E‚ˆ3ÙbÓ»»zFká]þQ Ý¢LªÕ¦¨aáÕÕ-A©PòœQšj‰°v¥ˆO¬ˆG::ŸÒïg„þß•`çÊ¢níéÑ"sŸ³<¼g‡èÙnªÄ\€ŸþýŒ”–ž9XŸ~CEšœˆiâãõMHÀ©[´°ˆ°N­›[µÅD(¾Î€-R²‘6åU§K³EGvîQVDÇŒuÆXÝžŒˆ„dW¼z§5Ú‡ ÁåîéHî–wrfº>®mxÎ;ÕçimñFÅ8°Zbõ_ùƒDïX}Yayņ–Wlh_ˆ í ±¡åÛ!~ò:SíÔµ;"ô_¨m·¡Š]_´v\?@^}'Iut³×–3®wr’äñ¦ñüòô•(7Ë0Ì`üÉ~Úž¢/D³%úw›L<¿×xu§5Ɣ쎱&õ-é7jU!ŠÉIîX‹9&%1¡»Ã2~kÙÔ Ç§%[íú”³[•¨²™…=ª|eD½ïTUÃìÖ徉gÍÙP£ïMÛº¶¨oá õ¦³¨å~lyiCl¡'a = ½¼?Ê!ÆÛBĦ?’Äøl7*eë»Wv’~9[ÙŠÍö_ìKlÇufw¹Ë%W«].I‰ZÑ\‘)JIQZŽ ­B[EɲåÊvÚØ.%Ò6Y4HÊu§FÒ^R @9$A=4Ä0’؉ -Ðß¡6zhím¹4?¹´hRDTß,—´ªIÚ®ÛrÉ7óÞ›ÙÙyoÞO‰\¶‘á.Æ[.‡fÔ´4? è%ˉLëàÆ8ö›·o©$ATROámôPóázÄâd·›D,ú·ƒËOëÙ3©·(ÄéR\dvî@ÿÒw÷¼ì<¤kãúTxσ©ñ{“ø½³o~ûÉ?¨Ž[¢hÞ½ÐÄêè¸f¿sqmï#¹1%’¨>}ðÈXî<±§›ëÔuÐV]×…Xf"3Ÿ¹¹˜±Lš*›4U6iÕ$ù,K1iÉìí¤Ç¿×}ÁD0!¨Ä¦TbN*11•اJLL½ _¡Íë6’µøù+ëMJˆþ!iû@Þ/]>#ÓI9)»Ç~7©Z"3îwkІÀ±.ŽÆbG¥u ¬ð($Ó„]Cûniž©g†Z eMšu™bf –º>xìÑ}ñÃ{ãnÃÚ9{ßÄ¡]½{jXß¿x@GZN8š¦9ËûGÒ±^=âêÑêa,î]™ µ¶yœAŸÒ!qª¦:#Ý¡¡Ÿ¿oüÐØp6½Sp¸$¡Õ-ɉs{ÜJ ÞîÑü½c_!gѵù!ušy íF÷½Ar ßÔy¿yýæYô›y´ß´Þ~b½B[Kÿz`ÚÛ²Þ6=ð:f.q†ÂÖ¯g¬é%qí§µ¨ÅÔLb­¡ŽÁá†Q-”NÙi˜#¡©ÓVI‹DÛ¦rº÷[­‹µÅú0§Ô|÷«À3ŽÖw’÷´;V oa¾æõK"ÏvgÊû(Q *2wƒHÈ‘;” Vµ=ÎÛx‹ØNä~rs~–~bÚº"™=L,(L,(lùÂqÆ0±#ˆÀ_Fº öã3µâ3µýG†S„¨ÅW÷rŸi£äßò:¯ô§Ãv‹'÷}Eœ3bšaXõò¢aR£[«¤áZ’ºåÀ²QcŒ$ úYÎáuµyevî)#tqN­ØÚ›Ž?´—súÀŸ|#¢}sqߨÉÇ–(=ŒmüiþxªûÈ"µVçýD æ“_`ÄÐ#º¬ ŠÏE‰:îŠâvî2 Cí¸ÍÜ]g¹1¨ÞKŠArÏ»xÄŽí‰ý‰øöx$M’sZnÄ÷Ñ ÙGcÄT%àdÆ›4Ýn§™¬iz›d­(·’uʪ„};«ßºÉØ]þNo·ŒyÜ^ý‹+aÍpÚ˜k¿†èS½ÝН~¼ST ÍÙ9œ¯>m_ÁÏ‹J C³6®z ÏCG3vgkõÑ¢ýyÐM-¼TväLª8¢âv½I"ŽˆT˜Ç$àìîÀž]DsìK{lJÚ–aæQ†ÈM8ˆI “>xwÑ5Y“J(õ×P£þRȉ»ÝNŽ<Ç$:4™bÏó]ý‘U îØáwòŒéXÙ¯ue¶úš$[§ˆG‡¾ÏÕ.B5ÒÚ²¥n(v x$¹’×Mú êCw½$Ä-´àÙDÚŒñ{xŠï†Z„zÅ3Ý ž@]²dÌZ"áµ£q3o-IBfEBœÛ,IÀ£o²VѺqÃ¥2Vц¿W½ )¤J¡»,p„W]Ã?°¶ð씢Ê\g—_t»=õ®nЬè–5±½­CÚxŠ“TT¿ðÝÿÅðÖíê—w>Ðïÿ=0W·òKÞ&4¡ ÿ{ÀVþ}À}ÿýb` Ý>°O}y–jÙ¹ ¼ß„&4¡ MhBšÐ„&|9@ùr'\NDŒÚXÊf|:ƒîÀ+¶Ï|j¬‚€öÂ[ŸxÌÀÇOã× ìçøøWw¢Øÿ¡‹Aç í@؆ ¥Ñ<:ŒŽ ¯¢Ut•Aßk ñ77aÎvcçÈØæ7?A^Ô…º±{°‡°Ž÷á…Ï1/ús÷&¢—ór{8ôW êk'ð1§‘ˆ7qðçLœüEçÐÃø*ñ†'kRIǨ“zÆÄ)$RWLœþÏLœümgß0qØíA/ %P^#€Í¡ZF%T=Ñ Ð•†R€•@s¤Í§Ø*ŠÂÈ$Z—†€w‚±²Aå¡ÏÃì³Ðæ`f î[9KÀ+ÀŒ‚1/}î"35˜¡AŸ‡u Æå *ÜŠñÜP§¡/¡ûWlܳýè‰J²£Uc-² -U0ö@ž°¬A•g®7fî ¸E‚e Ö`´bHIfG_Ðñøˆ6WX.ËÅ-U,)–²•Bq5ªM®¬h …“§*em!_Î—ÎæsÑý3³™©T_*»RX*>‹2;­PÖò…Ê©|IËj¥üÉB¹’/åsZ¥”ÍåOgK÷kE2²…<±ý~´ÂªËh‹«… ܰ’­äËZv5ƒŠÆ–‹k«•R!_ŽÞ³ÙfÐ,„Ò)X«ïSF´`˜ÊpÈ¡ÖÌuìÿÖhÍËdÑK#^  ÊÆ`Úñ£OŒ]ïÄùŸüpýxëØŸ‘Çj„©~pÞÈQ?¹û]þ“j™¿Ì=$_Ïä`À¹B endstream endobj 24 0 obj <>stream hÞäšy\ÔÕþÿߟef`fÙ‡e``PvQÜDT„Ipq­LBÑ´4ÛÔK™­¶ší˵r˜Ì(­¬lÏê–íËm±ÅвýfÊ|_çóžQ4ï÷ö»ßû{|ÿø¯yžó>Ëçœ÷yÎ9S’DDZC MšXŸ_xƦ¥?Âò>Ôܺ¨¥-"Ó¾¨ÑG$_Ûºl©Óý}þt"i8‘î§ymóÝòÕè{‰ Dáý柾bÞˆw6 ¶ÙâÌm™óIÓ¶ÏÑÕYè¯d –ݦ‘(+G>}Á¢¥gÝwí-§!¿€È~áé‹[[¨´ìt¢±ý‘_¿¨å¬6;É/¡}#ê;ÏhY4×s~Ü:¢i¨¯~Û¶xÉRŒ?ÓªDy[ûÜ6û“ÿ¸“(õ¢è4RÔ yé(Lw®£Nf*¯Ò#2…‘l5ÈŠª*²z3ÉßyÈy6jëNÂï爵zIÚc¸Iv;‰¶ˆ2e·.BXn¦[`½VQKضá×G]ä§h;ÖŒó¡\7í¦ôø0Vs'í¢Gé1¬ãn¬ì“šMXBù^“?Ÿ¢=ô4=CÏÒsô<"ãEz‰öÒËôÊ¿UòôQ‹È½J£×kûè z“Þ¢wè=úþNÑ'ˆºoþPþ6j¼‹:k}ŒZŸÑÔìAM®ÇuÞ×J¿Ôz؇¶Ñ~)Œ~–dúH‰ÕÛ¤­ÐuÚ:ŠÕ«s»æg±Û+t×ѵ¹>¾ë)r"}}p5îGÝ.x0ä¿“{íåàê°¿w¡Žð…(ÙôųÁ•ýeñGKœ(qIéRF°,Fk´m jÄö©;@*–ã3[Ê“ò‘(Kƒ¤ÁR),¹È"?eG{*gÍœ1}ÚÔ¦FoCýäºI'ÔŽ¯W]5¶²¢|ÌèQž²‘#†Z:dpÉ ü¼ÜœþîŒtWZJ\”Ýfµ˜Œáa½ŽD9®Êf§ÏÝìSÝ®ªª\‘wµÀÐÒÇÐìsÂTy|Ÿ³Y«æ<¾¦5çPÓÃ5=GkJ6çpž›ã¬p9}{Ë]Înij]#ÒÊ]MN_–®ÕÒª[ËXIME gEÜ‚r§OjvVø*—-è¬h.G]&ãט¹ÆÜê2š4!åëïjë’ú”´„Ü¿bhŽ[‹x¬Oɨh™ã›T×XQîHMmÒl4Fë˧ã3h}9Š1ÓÅήœÝ—tÛhvs¶yŽkNËôFŸÒ‚FJEgç:Ÿ=Û7ÀUî°r¦<×—ã*¯ðe»ÐYÍä£|º ›ËÙù3að®žoŽ·´-ú ÛÏ$’bŠGÝ„òPš06ŒóKMc¹¸ÛC³‘ñ­©k伓f;üäÉÏnòÉÍ¢dw¨$Ú+JÖ„JŽ6ov¥Š¥ªhþ-[ç[3Û™›ïkøC¹Ó§¸›g·.l™Ûé*/g¿54ú<åHxZ‚s­è*ÈGý–fLb¡pC]£/ßÕæ‹ræ 08Å,¬oÔš›ù¢Æøpß ¶òåW”‹q9+:›Ëy€¢/W]ãÃTø¨«Øéx ˆŠ©IŒÃ3‹â®èlœ3Ï—Ò옃øœçlt¤ú<®S]p€ÁÞN>NYø"ø`´ËY*R2ðæÂ&£Í$V1Îé£IÎF×\W“ 1ä™Ô(æ&|­­oM½«¦nj£¶ÚÁ(i8.ÇåC8ç£T‡2òÄ`e¶#´¬Z~¬–?š­:¡¸:Tìì sÕÔwŠÎ]Áɉ7“Ö»«[.YŒW³»›«²Åå´9+;[ºkfwvy\Õs:]õÃÚX'7®r¬Ф©¦atnöžÑ].i}]—GZ_?µñaÜ[ëý²$iÝÔ•Ž²Æ‡q½÷hVYX…Qdœ"#zšŒL˜Vßñ°‡hVªj-ßÚ-‘f Ù$jí–Ùf ÙdØT¶y4›øÁ"Å-€‹±ÝV8çˆå9§iAgs“x¹(K‰?É'¹F’Ovì’d½ÙgtÍí3¹F {™°—±]/ìÎ=8GìIÍ.ìS¨FrHŠŠèÒÙ44¦îuô4¥"Ô¦CS}áÙØûuãPo¬P3Ìc}kZ[Ä8ÈÛ(Ú2ª[›¶¡Q¥ÚŽƒ= F¥ÖF„#µbm°€Zû5ÈøÖ4ùš²ÅC6iálóQ•k(–ûԹŃò›:#]…Ú»‰WÁ˜±N c£úF¶8ÅÚØI3FÞêBQk³ÞV©µ¡Î{©ÑÁ–¹ØU÷\MFG°Ä´” “Åè ÏC‡øiSžx%u†¦&¼–[¬€gÛ|&ŒÈÝÇ•ÁðŠªÅXð·CUŸÝÔuÓd×YØYÄ µž (öY2ª[°ùs{,®!¡Æab0ûØÃVƒ˜¹~W2ºw¹V¤öùÉÍq‰ÃA&9F`SSç‰ß´ìÜœ°­ÍÜÙf9yöW˜å(aÄk"þžl<û°µ·%ü+aéû£¶¨ÇrÒ+°¼ƒïRúâÀëBê9´ANO&‰6hJ"«òm€Êúp8T y¡Ž }ƒr/ÚÄSõd†]h ¾§Ñ9-0tƒåP4š­= JVŸG½;I‘ï lS›1VH™­©]93˜^FÑêjÚ ïEß'Q*´&ýKµ³ÐÏ$u4žéV!}Ò¬S•ç0wV ä:šÿ…Ì}¥+¥Kþ¬ÔcðPö‰RPªÚŸl'JyŠ‚JTÇ’ñÏJ·1ð‰:„Ö*/ÒÔ“I½œÖBç©w’[HÙˆº)=HgPIPT´¯UÑîFj<‰Öjz‚Še­•mf0l€FAõÐ\èlØã u1ê-$’nQuh ɇ5]¤X8­˜)G¦µú*”?{]½KÞ©ý,}bùú…ÔaËYS•Å4&( ÒÍŸM(,H‡z/]ø§5ˆúNÊ>Qª ¿ï%Ó´‘F£ñG{‚ŸÄ¦I_ÄRkhµÒDUA ë“®2¬‚¨JÁBÝõhTCãUû3’×S¼þIЧxõå>éÅ'è¼´ëwœ çNPÐ~\ýZŠ»ºOß_+ÓÅUAñ†™8wœ(m®Ôjµ&°Em ü&ýJ§I¿ÎÀVh0´ Z-= Z­*tš:”ÎM÷‚Z¤¼Ÿ%ê@…òer"E)-´Z¾xÖqjÕx(°Ic-Öã_i*Kÿ˜¶v¡~jä·i5+ð8EHÕ¬@¤P^·¥¶Ñ¹²õŸ¡XùKHðMrèl8C¶ý9é<kè„úÿ9aœ+NÐÌ“Ø4)ÏSŒîr(å>ìM/àÝ8QyT”¢±æá]õ*wÐ$ùq*‘¦©r9 ‡ÊÏÒPéUJ”oÄ^ô;M•VÒDéÂÀ;òn¤—a/8uƒ~¦R­hCàP.B;´‘ï@ì9È)ßÝ ß ÅÞ7ûÙ…ÐÍâÔ>Ü }*/øƒí¥ë½O¹A³] Í9Á¶ š+FþRè h“f? Z Ô!o…Aë5û_ EJ òc¡34Û-ÐJ% ùD(]³Ý m‘·`<·Awk¶O eÜ1ä'¡Q÷SÜ7¢¡ ­wšÃV µˤña?2FH^DóÀfy­F¯,Ó|9't_ ´‹;Æ´AÝBÙ|‡èÝ,Î4¾/ô®g3ßz¯ÄÝ`¢vØM ¡ó^9Hµ|†¬¢8·•'iœ8ƒù¼ì­ÔÃwâ<Õ/£å8ç«uí½?ò™X¦…‘Øç#(•ϲÞn±·ò¹Õû¬ú yùÜêõጚ¬GÉd;Ê•4…Ï’ÀXÑF;CVÒí<ÐöíÞu‚ºöuÝÛt†ú1êX­>‚=UhÞÓÉ4Yyã†ç”{°gCòWäÁû¼ZÓtÜG6’*£Éã« $m_Ù¾±(O#Ö£q.$SùÑ=áVrª#iŽ:*•QxÏÓIV[iiPK þºki4TŽø ×}AËtáÉÑÖRU~ÒÖºDN§UG5ï„´õl§KµõìjÖh6ûÜÇëï¡¡Ê{4R7eAïƒÄ]/tßÒ…‘ÑEFm±®†œ>÷8#¯³¸§†î^j …iú û ¼Ö¸knÐPïRª5ä¢Sµû¬Yß Û"h"|3‘&&"}-yp>˜uV(íEl$Òz-6RƒŠõÞ¡Á¡ûP2Ör Þ½qªeAï8õâþ¢šaj!E‹—ƒw’· k‚±"î]¡{Ä›+„õNÀøµxA|¬U/ƒ ©N{‘~“ÖOœî-0í?§Ê·¸¿¬×êŒS;) õ“àGÒÁsOGœÿði±õ3öõ7ƒ:ˆ˜™ECÔ»±_‰ó®Ï®û ÷»Si¨º±·”Úƒgà2q®‰~„p‡‰Ò—P¤îAŽcýÔàYU U;Ï´;†8g’)\œuG÷æß°fói´Ø»ÕsQw<ʾ¤½}MB~9bÒÏÏRÎÅz¯¡qz=Ò‡qOZøMœÍê(²+·bnA!V¯’o Ï¡„”i T/¤©ëó t¹2“)^ªÀºÅj1=ˆn–]´J×EçÀvšfk4'xÏÓ´9ä'ÐßtOˆˆ«&èš•6’•2œM{¥6å°´ùDäGà0LH9øYÈ0’.è+Ø~Ã<¯:úέÆ8VS‹|m†¦àL*ÊM´j•—ÓÐÜVO÷æÃÔ µ@§¨ÏÑd¬Ù¤“¡RéCœ­çÓ öÝ2¢°Qü£ åLý}t“öÊ…º§¨P÷öˆGáóÃø®²ƒ†ÃîDºœ¬6Òx¤ïÊ‘éVÄE4ÒIÊß)WÙ‚ó÷x‡·P¤Ó¢Ò°™Ø+S¢¡ ±<˜—äq_ûõÒìÿÉÊ|Góû1ÊW=T‹ôXôY ]5B^(j† :h41Ü(ßßßLuÊEøþú:ÞãNš¥¼Lx2”}ØŸÞÇ>¹÷è-ðÅšÕCb¼³¡ h,4Dèã+ÿÓãK?Ùø”|Ąޒäí4Röá>ÒC.ÙOcäý¸Ãm¦<ä‡#]"¿…¸yU»«ÔHÏR-4öÒçz>ÚfÈmT /E»|O?•Ê+)KnAŸS²|âüÏÖ{;§äÐÝ:è*hLS¡+ C8o„6Ó0Ý×З4LoÀ®‹Ê‘.×µQŽî ÄÃj*ÕC•†¬Éa*†C PTL׉ƒæAWÄ6”¯;€ïˆ¥”¦ßŽ÷pã=®ò.çÞa¼Íx‹ñ&ã Æ>ÆëŒ×c¼Êx…ñ2b/ã%Æ‹Œø±ÏsÍçÏ2ža<ÍØÃxŠñ$ã ÆnÆãÜçcŒGÙ¸‹±“ñãaF7ã!ÆƃŒíŒ~F—?±ð1¶ù‹€û÷1îeleüÕŸ8¸‡q7·»‹q'ãÆíŒÛ·ró[73¶0nblfÜÈ]ßÀ¸ž›_Ǹ–q cãjnwãJƌ˗162.å®7póK3:a¬çëk1.d\À8ßï(Îc¬aœËXÍXÅ8‡q6c%cã,ÆrÆ2Fc)c £q&£±ØŸ08ƒ±ˆq:ã4Æ©Œ…ŒŒùŒyŒ¹Œ9ŒVÆlF £™1‹1“1ƒ111•Ñä 42¦0Nax ŒzÆdFcc"c£–1žQÃǨfT1Æ2*ŒrÆÆhÆ(†‡QÆÉÁÎÆÊ(õÇ•Cƒ%ŒAŒbF£1QÀÈgä1r9ŒlFc£?#“áfdøc‡é —?VDrš?v(ÊF'#…‘ÌHb$2ŒF<#ŽˈaDó¢ø ýØɰ3l +#‚aa˜&†‘Î}†1 lÔ3t •¡0d†Ä R€ÑË8Â8ÌøqˆñãŒ_µÇJ¿h3’~fãOŒ?0¾gd|Çø–ÑÃø†ñ5ã+ÆÆ—Œ/øyŸûc\ÀgŒýþD–ô)ãÌàcÆGþ˜1Àßý1åÀ‡Œïûc*€÷ü1•À»Œwos×o1ÞäÎÞàÎö1^g¼ÆýÛ½Êx…ñ2c/ã%Æ‹ÜîîúyÆs<øgÏðóžöÇŒöpƒ§øAOò¨ŸàÎv3g<Æx”±‹±“ñwý0wÝÍ]?Ä]ï`<ÈØÎz€ágtñc}ŒmŒû¹ëû÷2¶2þʸÇ WºÛ= ¸‹q§?º¸Ã=¸Ý=¸Í=¸Õíná*7s•-\å&®²™Ënäš7pîz®yãZnp c“?zp57¿Šq%ã Òå\ó2®¹‘q©?ºØÀ5/a\ÌèôG5ñG5ëýQÓuþ¨ÀZÔ8à"Ô4àB.»€kžÏUÎólZ+R¾‹¨JùÈôô.ôVámè-è1èQh´zÚ Ïßhž^Þ^é·‹_ÁÎ9‹±œ±ŒÑÁÃÍ~Åð0Ê##xÊÑŒ(F?ÆÙüØz^ÙÉüô:Æ$ÆDÆF-c<£†1ŽQͨbŒeT2*åŒ4F*ÐÉHa$3’‰ #ψã9Ä2b<7€G ÃÐïÐ!è7,â? _¡_ Ÿ¡Ÿ ±r?@ßC_@ŸCŸAû¡O¡O ±‚{¡— ¡ ç¡ç g¡g §¡=ÐSP7ôVuô ´zºA[áUìãs ýö<`c>ûcc.c£•1›ÑÂhfÌbÌdÌ`LgLcLe41S§0¼ŒF>#}œËÈad3²ý™ 7#ƒ%ábè*CaÈ ‰_7òÜ  ^èKxôMè hô:ôô7èUèèexøaè"%#åB%/å)/åüª5Þó¶®ñž[µÊ»zë*¯iÕ°U5«Ó*pöª­«Þ[¥?§j¥÷ì­+½êʨ•²qEÕrïY[—{MË%ó²ªoCÇþŽŸ:”¨Ž†Ž9K;®ê؃áöŽí{:”îÀnOdÇa•k:.ë£P.S‡dæÔSDåÒªvï’­í^µ½¸]¶¿]zµ]’í’§}R»ŒZ´§÷¯µí1 •Ôîl/hWάZìmÛºØ{FÕ"ï+‹¤Ó0•S1¥…yó½ ¶Î÷ÎË›ã»uŽ·5o¶·%¯Ù;+o†wæÖÞéyS½Ó¶Nõ6å5z§ þ)y ^ïÖo}^wòÖ:ïļ Þ °×æÕxÇo­ñŽË«òVo­òNª’ÆæUz+”’J‘(mÉk’&«¦æ¤¶$¹-飤ƒIJ[âÁDù\‡dM87ac‚bŇÌñ)ñã·Äo‹×Yµ„bn‹\)·Ùרå»Çþªý#»Jö›í²u£u‹u›U™heýΰªÛ¬Ò¶ˆÇ#^‰ð4+#fE,ŽP¬¢Ø<y+­–K¾Ežo)³L´(-’Ç’WX鱤gV–™'šg™•-fÉcv¨üÎ0Ê# ¾ „Ëp‰É)I$Ù% ^Þ.E§T*»$ñolt$I—u5Ôgg×t“k|ᓦù¤õ¾Œzñé©›êÓ¯÷‘wê´Æ.Iº´©K’Ç4ø¢Ä?¸ÓòmØ@I£k|Iõ~åæ›“F7ÕøÖˆ´Ç£¥"M¨Ò”=sIÇ’%K³—dãš¹–¥øÓ áìX*J–.!TÉþ'?KXK:fu -23—,½vd‹œxÂÿÝéÿòäÿWâfÍ$ñJQïå=])d Rª¥ Ô°‹,ÒfŠ¥¡Ò‹ÛËËÃr !+“Sz‘Âð nöôSe‹ÃQ椿D©³W—.‘¨ìȇ<ƒ½‘¥ù{¥üzÞì±yÆ^šß³¯g`dOµkŠŠ ½Þ•–'Êt—Ž”»]i²f+.E-ÿ}—üeiãÈtý ‹IÖ…‡mîŸ>0qDÅjÑE8b aöcVUË‘ë2bÆØŒ„Ä ÑWÆ‘aðHlàú”.ŠÒÈM‹íÆÛø0¥¾Ün²Jã]Ý/=É"•a¶¸â,#EĸMFWš‘œªK²»Ü8=É™¥HÅlÎLJw¹’–r¥Å"“&Gzu^Š+++‹Œ-b/²Ã³³fÎ(J¨í)”âógÎHˆÛ[X´jÝž=RÜž™389°û‘ãøa<(ÿ“§ ,ÈÎnʈ‰áuËTR Š+Íí.,ñbÅ\JªÚeÖÇ XTšlV§ô&LV-Iƒ²óŠ£ôfi£ÞæY4¬2Ó®RzHZ<;=+Z§„Û,’z$¢ŸIÕÇf¹ÔsìÑ&E1Åô{æÈ»Øï'¾VÍ:¢òbö­?‘²“Ÿ¥Š“Z(•ÜÁ)ºÅ•ª_½ŠûÒCƒ â„©@ܹ<á§`> µG²÷õ”‰ ±9vý» ,hʈŠàà-Ž,)ÁÔõÑÁ8•,‹€.QÍŠÞS6­£ü¢77Mj¼éƒ‹JæxËF½¢#­yÕs+kWxsò§œ][9¯:ßb4‡©{â]ñ‘±é©1“oûéÖ;$ºjd’Û™èNLÎJ0»²]ew.h¿ëôA©ýaqÙâߢn R.Áû›C>öRWBf·|…ÇÞÏÙÏIá”gÁ|‘ˆùî°Hµn·>¾;8õx\=á–ºLmÖ™âêèÑ7h³îÉ.ëÉFd÷dKùù‘¥¥ùù6 Žÿ‰.Ù•²+5Í=È^\R” —i®LµŸÄôŒÖð#ËRssSåµáFì-”Ö…[EÚÞ»BzM¤çãE7eæ¨ r2ñ™ÉxÝM½{L±ØÜ±ÆÞ+Mq™Âceè2ƒªigè%_ó`zaz¡Ù!þ;=™óvJ¹4˜ŒRîû`üÆ Mn8nÕó(‡n@}Œ6¿q/÷èN Í~êɶ³³lˆ¸}=šçz´°Ëûu çIvjh{ä}4OÌŸ–zå’ñçßß:fIã°“ gEMZ\]0~PbAíì³k *:¶4åMŸ42Ê “ƒÅd*¨œ>8Û“?q΂9 ¤ ç]?¿8&%-a`^JV‚)µjlÖHwNÙÀì‚Þ¥u36ÌÈ‹ˆKŽŠˆu%$õO0'¦:¢3Š“²¹| ünR¾B¤¦‘7©¤ï–¯z ή ù!_}¶{’êÌÚN$f^(åï9²Þëúok…<’jöÔÐá¡ÑWZ ì²$¹ÝEÉ–Þ]F$£r™õÖ¤ñæß{Œ6£^µŸ9~@RrV¼ÉŸEØëÇ"j–)oQy¤Áý(<¶¸[ž¶23ih·\á±Ù•XéÇX)¶Û\,.–ŠÅׄp³E_\œ7* _z=ŽÒ$eUÚ†4Ù“6)­9M±¦¥¤Éf5-MMê|ä‰0c~Iq6©6éPÞ¸â GfÄ~¹V¥¸üÐK”Í»óŒ³fôˆ:{Æ™=3ÎÄ·§T¼¥¥p˜Çú¿<íG†Û=hPðÈëQ„8•ø#U¿ÑŽÔ˜¢Â’Áʲ¨ì¬ÜöÁN»|JÁˆÛ—O±gŽ*(k_d3ÙMzcbåÌÅÃ^ÝœókóˆSJâÇ– jÊK‰° ¶ˆ±ÃFgTŸ^5aIMzIVYVTbZbD‚;6%=É•Üo€wíôw#Ó‹R‡xJŠÅºÖ`]_Ò- ^JW×Õä(Ý)‹ëQ¾Üî1öK­4•f:Ôˆ¬PüÁwÕžð¸qÅÚ«ZŒÜvOD­n|(Å&[Z&Ž›àR„ÿ»}„¶I᩾>,Œ‰µßühÅíî{ø V^2Æ Hvö7U\3}Þ†¦þE³¯˜U³r¸)© #£ Ñ|¨¤µdàØìèÈåÅ ‹Jœi&«QUVSë¸É×>кü±µU#†IŸm&½Þd3).¯8yî !§ÖZÓ÷»èj¼Í;umTL³ÙkÓ@¹/·Ÿ¸SÈ;ÈÍ1vËy"<“fÒõ¯N¬´ç–‰ ›#fŠpÁE±p¿p“édÕú¸ S:öz‡fo^A¢£ôIЉQvš’ û(J4ô¾eÖ¦œdQ ‹JèÎ(J1[­½¿KyfS*ö*®"oöö7ò‰bÔ¹Bs?ü½ÔjŽÔ¬&kZ¿Þ·{s£’‚ó ûA!ÜͲúíÄÔ“É$ÏòS²­;pð“Tk .^#[·Të1yrÇeŧWLJ&Yª­v¶8(l="V&ÛÿS˾b×^,½á^ŠÖ.+ˆ•×̉Ó3&šû¥—º f yƘ0 Å™kw]ý´Uµii!OHGF”T9æÈ¶E9'”š?iÒðù-ì y§¶;¶½á¶vËÍ3%X)Æ|£bQŒ˜˜—±[ª÷=ÙãÜÖhgu´6,³6l"Øïƒ~0þëúÇBmC9ÙĵèÐË;Õ0‹1,*>92:+Ó?aÚ®‘C†$Z’q&*+5éy FC˜Áž><çȾ?N|qá(·U1„ÍÑY˜}uà€üf_MŽÝ(òŽÞ(Ê=x+Ô<)oÿ`“Q2~aìË;Ø9XV´k€u¸„›ÀAC» ì×€q16±SãKƒMùÁ£«å‹ü¼ ÌÐ.³fdÛzfà︋†ÇùÿùiÿÆýCþ¡tÁ¥õ…Óª bÌj˜9Ü”íñ–¤ ÊŒÊQ[W;"£p溆¬‰žœ~aª¢ÌaáîÒš‚´B§Í=rbÝÄ‘n)yüÒ ™ÖظèÜœ$W´!>9!"¡Br¶31-Ç3µÌsÚø,sd´ÕëH‹2DÇEG$¸¢R²œ‰©9ž&¬RlàùRµ‹†Ò•¼JÙí–aÈ•+þ¬%7´5çvK)üûVóÓDÅßnKZ¾[ƒÖL¬iHk&’h©|C$EŽ¢ »……²KvBŒÞ<Ùƒ‰ñ„Q\¼¨ ‰Æ‹‰‚n&^ˆRßL§ •!qwó›ùÍ›7oÞξ™i&ÛpW¨,/(£çÛ5]—è¹øu‰.П®ÑŸÆ—ÇßÇé®Ç‚¶ñ0FrsØ‹\Ü/óÛd>†ùúWÑý1'ûªÃ±–`¯Þu~Ò a9á åæö;¨ÿrôj€ÔVIŸ§èÞŘ¿Âç‰ÜœK «±–P}w׸¢"\ãV¼5õ¡–Øæíîn©D’Î\àÿ\kÝ qápp½) î(<»CªwààäQÇ ïG_(í8”ÝØ‰òµÂPyÖ8pàÀ Ò/Ÿð €‹2ñxD/;Sp¹Õˆà>:àìU%ˆ,­Û!˰t–— óÂÂixÔSx¹aÓ:¨ÄØðB’Ѓp dñIÐÁ ìluö¬Ë.g?g¿‚m<…%AŠ…:!$D/×¾•ë-=e«XÊÛŽ Ü»À/ÌsîFþŒsò%Î%x ¬ÒYইŠØÁ¹Añ9ç"”‹8wADü¹ù爸çè«@šðnFÖŒâø8B¤ÁFY™ Ó,•Q¢!Ó!Š5 ÈàM …²1Ç:‹•TÌUÔžÅTAÍ$¶Ë ÎÊ4ÔИžŠ¹­¨&A ‚¹Švh­Í¤´5An²7§Âæ&¾AÂ|ɵٽ6ýOÏB=Ò™-ê !,iÌÚÿ 2™•,Ö§ŽÒ÷ÀØö£XšÁZ›=%ÕŽ.’xSS3é×FMÃ2Ò6Iæ´aʶfèQ’ÈdHJ·-’R-ÕœU•è@O_og{CRÎh#¦ÖØfd”ÂDœÍ"ªf«&‘‰©Ži–­šªBlSVÔ)Ùœ$­ÙVLïîÑt‚fÈ®ÙØ~ЖmÕ"²®ÄЀÁ:5ftÛÔT+z"Q4=нЉ³¹á¯˜J±È™A ý4¡ {ΠţÔúo#<·»ex‰ëÉ „ˆ«i î”…®=ìëeú­åÄú·‡w*ZBm1[Ò^¯ßÿHó·mß½¿*6­’5é ;å»þ»;Ìp endstream endobj 1 0 obj <>stream hÞ2S0P0W0´P°±Ñ÷+Í-Žq ‚bíì€"Áú.vv…7 endstream endobj 2 0 obj <>stream application/pdf wehart Microsoft PowerPoint - workflow-figures.pptx 2010-08-01T21:43:50-06:00 PScript5.dll Version 5.2.2 2010-08-01T21:43:50-06:00 Acrobat Distiller 9.2.0 (Windows) uuid:ead52df5-63a6-4b66-aa43-8ee77d448aa7 uuid:d2d3cdd6-d1ce-4112-a101-6150f6c2d79f endstream endobj 3 0 obj <>stream hÞ²P0P°±ÑwÎ/Í+Q0Ô÷ÎL)Ž64 Åê‡T¤ê$¦§ÛÙßú ­ endstream endobj 4 0 obj <>stream hÞ|̱nƒ@ €áWñ–»0¤TMEŠÂ ©Q²d¡`«'Œ|F×Ç/Cçìÿ÷ïáp(N‹=E]¢g§æ‹³Rg,SÓ¹f_a‰øeU¾mkÌð}ƒ¸ù¯VÕ~öʳÕùÜHã*¡Î«¼òÅE†×“VeXzRwêU¾:ƒ†£q¤°[wçiÞW¶@îÂke4h%‘¶Â“AIôg ’²‘¿¥˜Ï³ýúãñO€QmG endstream endobj 5 0 obj <>/Filter/FlateDecode/ID[<07FD6CCAE555F882D7665661F99F3ECC><6D5139D3180FAF458471B3B2CF327189>]/Info 9 0 R/Length 48/Root 11 0 R/Size 10/Type/XRef/W[1 2 1]>>stream hÞbb&Æ– L Œm@‚/ ÄêÂ@‰ì…@#`ú$ †u endstream endobj startxref 116 %%EOF pyutilib-6.0.0/doc/workflow/figures/workflow-figures.pptx000077500000000000000000001621761367314503500237210ustar00rootroot00000000000000PK!Úe=õJ [Content_Types].xml ¢( Ì—ßoÚ0Çß'õˆüZC»1:ú°uO݆4ú¸ÉÞÛ² ÿý.  €(@Ä^@&øîãûáï¥ÿ¸HU0ç¥Ñë„m€ŽM"õ$b/£ï­ < e4Dl ž=n>ôGK > ÝÚGlŠh¿pîã)¤Â‡Æ‚¦'cãR´tnEüWL€ßµÛ] ±…™ 6èÿ"'†ÂáO‘’n-r¯èÇg±43ôåÅ笳àka&#‰˜°VÉX ƒÏu²ÃÐ2㱌!1ñ,%Ï¡uàé;ÿ{ªÂ’£ÛÌ4?©wm¦Â#屈S±è4ÂTØ>*N+šûF8ª²±þÒÞ7†«JeµU¿/MTrT—éÓÈÔ½6Ó*kÍôÑQ™ZÜ5‰*¤ëxþy~r3UK…¼Õ1Íœ¿–ºLÍÜjÛLß`,f ƒ§ f¡Ñ,Lv´O¦™´æH¹öìq üΞ ½\éuH;s‘ôSiý:R{<ä M-«ñ¥ }Ëv*¤^âÔ¡ãü(£?tÐÌ’«§ŒÈê(¤eIÁ¡„MRß‹ŠW¿q©àâBZ2];+×JË¡ù´Ó>;Qõj%ƒšKxkdìÙ®›«‡+EeÓA±qp:Ãú*Ìvïéž¿ þÿÿPK!høt¡â _rels/.rels ¢( ¬’ÛJ1†ïß!Ì}7Û*"ÒloDèÈúc2»ÝH¦Ò¾½¡àaa-‚½œÓ?_òÏz³w£x§”mð –U ‚¼Æú^Ásû°¸‘½Á1xRp  ›æòbýD#rʃYŸ ÌñNʬr˜«É—J’C.aêeDý†=ÉU]ßÈôSš‰¦Øik®@´‡X6ÿG[:b4È(uH´ˆ©%¶å-¢ÅÔ+0A?–t>vT…ä<Ðê¼@<ìÜ‹G;Π|Õª×Hýo@Ë¿…®³šîƒÞ9ò'홼!sÚ4Œñ“HN.³ùÿÿPK!3Á7 ppt/slides/_rels/slide1.xml.rels„A«Â0„ï‚ÿ!ìݤ¾ƒŠ4íEáDÀ’lÛ`›„l|¼þ{s¬ xœ曺ýŸFñG‰]ð¶²AÞë|¯á~;o 8£·8Ofbh›õª¾Òˆ¹„xp‘E¡xÖ0äJ±hB–!’/NÒ„¹ÈÔ«ˆæ=©ŸªÚ©´d@óÆ«!]ìÄmŽ¥ù;;t3t æ9‘Ï*ÎÒ/Îá™ SOYƒ”Ë;/Å^–÷A5µz›Û¼ÿÿPK!3Á7 ppt/slides/_rels/slide3.xml.rels„A«Â0„ï‚ÿ!ìݤ¾ƒŠ4íEáDÀ’lÛ`›„l|¼þ{s¬ xœ曺ýŸFñG‰]ð¶²AÞë|¯á~;o 8£·8Ofbh›õª¾Òˆ¹„xp‘E¡xÖ0äJ±hB–!’/NÒ„¹ÈÔ«ˆæ=©ŸªÚ©´d@óÆ«!]ìÄmŽ¥ù;;t3t æ9‘Ï*ÎÒ/Îá™ SOYƒ”Ë;/Å^–÷A5µz›Û¼ÿÿPK!EÌF"Úppt/_rels/presentation.xml.rels ¢( ¬ÔQOƒ0àwÿ默NcVöbLö`b@4–¶éÕ)ÿÞ†édËR_úBsGz÷•kX­¿™ìÀ¢ÐŠ‘<ÍHªÖP#oÕãÕIÐqÕp©02’uyy±zÉß„½0˜ø* é3÷”bÝÃÀ1Õ”Ój;pçCÛQÃëwÞ-²lIí¼)j&›†»i|ÿj4¾óÿµuÛŠtý1€rgZPÇ·^Ý(ý)’ŠÛ#³d굄ž‡,bBPŠþSˆtZŠâ6&Âù)ÍSH§g21 DäÑOØ“™ì“?“ÙAÖ2&k'àóÙj3»«‡Th@71Æž ©â:&"pK¿zôG*¿ÿÿPK!3Á7 ppt/slides/_rels/slide2.xml.rels„A«Â0„ï‚ÿ!ìݤ¾ƒŠ4íEáDÀ’lÛ`›„l|¼þ{s¬ xœ曺ýŸFñG‰]ð¶²AÞë|¯á~;o 8£·8Ofbh›õª¾Òˆ¹„xp‘E¡xÖ0äJ±hB–!’/NÒ„¹ÈÔ«ˆæ=©ŸªÚ©´d@óÆ«!]ìÄmŽ¥ù;;t3t æ9‘Ï*ÎÒ/Îá™ SOYƒ”Ë;/Å^–÷A5µz›Û¼ÿÿPK!}Ãf¥ç ppt/presentation.xmlì—_o›0Àß'í; ¿N (¤j7UªÔIÑÒ~€+ ª1Èv²¤Ÿ~gp÷϶öqoàóýûùì³§û†{;”ªnE΂¯æ¡(Ú²w9»¹¾8I™§4ˆx+0gTìtùùÓ¢Ë:‰ …Mª™*ƒœm´î2ßWÅP_ÛɪV6 éWÞù¥„_d¾á~8™Ä~µ`V_¾G¿­ªºÀïm±mÈý`D"ïãP›ºSÖº÷Xs³x’‚®·· õE+´":lIi+^þ¥Q^–WJ¿ñê2ga%Q:#b'33Bsæ/þÔ]S—å`d;Ú¡Ñĉ#ž¾»¾££o×ÓúÁ+ö9›Q4™Ð‡œÅé,íô¡£åV…DÑÞ:­FeÕây:{R›‡é4!}”%V°åú÷z­— Èhlµ’öëçJzL…¡8¹Y÷ѹSøŽÍ~GEÉ)QÍsFV´gýà-(¤å€LuÅ9VökUhoý\Cû…ô¬¢åêÇÞšg¥¨ ï¥ÙT¡ƒ—–×åEÍyoÀÔ6~ãrð¥÷ÃÚ’ew–)HጄòLÖ@©TR& 2gΗFœ ‚B9‚7•)¿!Ú>U ÍØ¤ÏÐðk@^å,š%&‘æß—âMƒÐÒœi»e¤ùÂ~EÓ ´4£#Í`šñXœßꆡÅ9sp¦aJÇ÷X­NÃÐâŒ8Ã0¥âtqÒy{ ·ë‡Ç®ylMWâ\Þ›[õ6:úí/io¨ÕÑ…gµûæñxpÿŸmƲ°VMŸ÷™5bCÈÂJ° )ºt9u„E° ! kîÀŠgÉó&1Â"X†Pÿ¤ /îÛôÎpß5ËßÿÿPK!0‘i; éhppt/slides/slide2.xmlì]YoÛ8~_`ÿƒ ÷ÖÖå uŠ4Ûf tÛ iž)’{+K¥$Îþú¡xH6娮r(aÙ"G$5¿áŒß½_-cã&"ù"M¦¦õ¶oQ¤á"¹šš?¾z32¼ð“ÐÓ$ššwQn¾?úý·wÙ$Cz'ùÄŸšó¢È&½^Ì£¥Ÿ¿M³({³”,ý>’«^Hü[ ºŒ{v¿?è-ýEb²þd—þél¶¢?Òàz%EI„D±_ÀÈóù"Ë9µlj‰r C{׆t3 .âÿæÙwEx•Üœ’ì";#ôö×›3b,BX/ÓHü%,‹Ùc7X3ú1fpÑ[ë~Å)ù“ÕŒ,Þù˜›±šš°øwø?tò'Ѫ0‚òË@~Ì¿)ÚóŠÖ=þx(»Ü2)wÈguJÒëÌpíÌÎv‘Û/çhõƒ\×f*à|Ç–‹i1iÑÔHÈMêDÖ"ÏÊ…Ø|µ_„ó(þ¿Š#Ãë€Íadøbå+æ4rÊ&|íÅË[;Ñ¢AÃÈýIFòâ4J—^LM#3‘Uü›/yãIò&øužÆ‹ðÓ"Žé”Ìè$&ÆOÍË+ g=j­â侎ÅJÑÈ`Oà³rò𷸋ArðûóhœlÓÁR!âÈ¡UÞšûaTŽÏëÃ?>B>t:^J)Ï`f‚6#À[–D8ír¢¬=vf3X;ѹ¿m`egу>9Mdçå"I‰Š@ ³bO.Û— T.L6)VÒðÉ]Â_P(ñç$Ÿš®7´AF ú.¿¸d@V5/.ý< /(Ìà9Çñ(rÿºHË1eÁ‡h† ò,8+òraÄÊVïÏŠõvŽ|YÀî‡Ñì¼dzúPì%á™O|øÚˆAT¦f”¼ùqa—TC† RPfäËâ$Ž|[ñ- ÚÄgòY”ʹ?õ¹oúC&£e€‡á3‹£‹Â'Åw?ÿ‰² /þ§wä:m}'H¤¦ÖÄó ×àS b>;–\ÔY²½éƒîãMÕ Z‡fëâ ë’^'aÒÊ8¨4Àùzsˆ•qÀ¹Újd­Áp@ •qú.³ÂÀ6Üá&„[!ê“S“¤hgJÕ¤M7²uûóh&d«ù0’ëåI € ¶¥ˆé%tð“`ž‚z*øåIŸ˜ÿ¥¶6RÊé{WëÀv•¿ÐzŸ“ìºÈwTyb O%í^³´»íI;lú2¸O©¥y øê_¦Ãø ¤ýÛuÑ%qq[G¯&æTe_Òàgn$éÉ|æè8Ï 5z' ÀàA0û¿ç&ÓµÆnœGà²_SÌâ;[ÿ7üþd¹("Ø9,–S¼¹ïÓ[ÊÉš7¾ï–RaàÑ+§ñüŒúß]±ç€‰–°ŸôÚ‡%àîØC—] ¸ÆŒoè–€ß='KAq´°â¢çw…Ä3H\Šûi‰æƒJ­£Áì{A½Äkø›þòsíZߌKð_4¨cÂþD ‰»C» šó˜@±åç+QF7šA Ä%×õž5®)¾eدžo`î»D¼9\qò ìÒ ¸Å)P.!s ŠPBë1Å?ÞÑØ¬¨ t^‚ïŠ …ÄÍ4:Ž6“›Øñ‚Gƒau[ÄÕÏ7àq0BÔÈ´€+ ß5ï¾CÖø¸ t–!YÄ7Ú]Æ~ŸSˆõ fÝÂÇmˆE0ÇrSÞ) &ð°}Ìj<Ìsˆ|±˜w0µ¼k„¼ûñ°Ž!ä¶êtUýxÕã`äJ• 1rêµ ì™~z±Ç®º¡ý·ã®æÉcÞ¶<â"¢` öUßýqD\éåk×"޼Øt’RîÑi#5”!d¬Ý}«Îˆ¸"Ðm?Z¤»Ó"ާ8_õáénYñî„ȳ@˜÷_ „YÎа°¶íûä†ÔHŒ‡– Ñ~nˆ=x…ômF5ßf_œ¢qô§Ð°×­àtvH5}é ´„§JQ{ëq§ „}ØÑŸ\ݵ #ýjûRǾyÈb ÿÅÖã#[µÜÆh,\cáÝÇ»ûr¶ÄºATñ²}}J»"ïŽ7²D>µ–wš ý²qíÒa|±îŽÅ¾ì›GPUA8`ܱl2Déñq¥JÐÀ¸ÆŸ+0þÏŽË··…#Ò{dw;Šð6ˆý㋸­òòµˆkoOÄ•1‘Ê]Ïú‚¤(é±)n¥²ÃáÓÇ.$×QI¨DD™žUMBöâ<..’*¿É³ÒލֵÁì²n—`É*³£#ÚÀíxx£ n·ÀØÈîÆ,^dbvsã;öp ”›ªp–f|•–A¸ Æ—¡8%ãC2_ßsðZ¾`0q·ôÀÖ´¼@k¨š÷FtZÇc±ºz—§ã›S.=‰ °À£Œsð‰xHFôÎHÄÉ9*(ÔsN›YQ×!ÔuѬë:„t ‰íFšÁ«?¼ a+(uÒ%+ÂI÷SÊ]ô¶’„žÄ¥7Ï`†`—v°É©%a©LŽ<ëÀ³<«+5K¤ ‚·€3¶©î6Q³­ò.AêMy¯ƒÕTö÷(u]•÷íÒªß@C–5Ñò®å½ûòÞ±À³'Ëʽd½þ(Êhþà… •»N•¢n›Nºl¨m/OŽRKBU7*®‹Èo+ ¢zfI—÷…«/ÔÍØiŠf88[ê~%F &w³bñúU0Á³YwS‹OÑ)˜Äw•òCõkxýAÓ6¼~«i}&n€țևkÊõ®ÈnrËÙͳ¹¾7ò{ü ‡ÀÒcÊëô°cǧ¶läËhàôƒ‘j!ž^6iÒ±eÎWaõ½zb >Å!ˆÿ*‰-W.5_y¿bŒ’шXxùfåÄ–ç.Þ²lÐ1ó`’eõ.ÎLí3³‰N‚ÛßÊŠÈL5¡ŸË,™G?Ï“„[ÆçIaÝÉÔ¾¼b/=Z­’tSÇêNÓÃPOxü_Ý'`úýS<§€Œ]6Y&ÔD‚0:üÒuÅ|~}P{û4C1uö„l@y†'“c׈–|16_šº=ug3¬ìÜ[71ÞYö`wÎRÕy1O³B7@‚§ªïÌÛóâ “Oª»³èž†»Äÿ&ɯi9µýþЋTì…8¸¬0$Vµ¬.h vÆ‹Ç3ÜçMr)ÜTŸSþϨA™‡«’/Œ\ÙæÕ7³j¹§ÞAÖ×£xö‰ 5vSê§ÑÇ 𳕀U¦vœ~÷Ç…m]2ñÍ‹ŠI/«\TçI`~õН!Ð.:S÷âôΞýyÆ(hÅ¦Ç h9è‹],nF÷¬^_TAQ}ʉûññ—]Që´öÐ - ™SÊ£^CÀh0¬ ûèHrÞ&ÉÝ=>dŸàh&I¯tk_j—ì&âÈRZÆ{’–ñ V…ŽmiH¡eœÁpÀ–ñz~­BA6ÂYÖ24Cš“'ª&ÍHÏpÑdTˆP²mýs0²V}XéÍâ<ƒ¯¨vˆA^gO•8<¯pVÛ_zm£¸œ½w½ Ü­ð—Rï×4¿©Ê-EžœÃsq{¿›ÛýÝq{ÍØìeng¶îK0_·¸©N‰Ý’Ý¥ëØo±9“CùoYøoi¥Ùù5læøM™£5Y'``Xáû[áP6Añ[‡“é;c‡'„¦o „Zã[[kÿ½+þ`²˜W1<‡ùbjÃQ~Ÿq)•ëË­ñ‡º”OV9£ˆãSêŠ>®2øàP îûd²7˜ð†ÓbðûcbpèX†ˆ“£.:@~D@8ÈÏñð¡döwȇ@%„ÿX¿7 ÎxÙ‘Þ®ý-a½w ÂÁD ˆûC· ™¿­ÃƒH‡_¬ltCc± ªÉu ³de6Ø*rb°UZsßðøræ í6€8™”7€ø„ˆž3" ƒ–ã{Ä ³¥¢YžÐ.y¼k 33È8iL¡"àíšañtèC®k?­@ãã'é›&4®Õ7ÂaÞÞ96иŠqòh,  tó°ï1EWA\Ý‘Uwç l„=ù€@˜#ógVÙÝaæ°„Âj_6ù½ïyz-™×†ßëôŒ¯×x|ü~bà¸#sË” !À˜[bÞ”­²ox\+ <ÎŒV™òuÐN =ûoK§æÙÃÝŽ&wlx×Zù†Å ‹-v%Q*5Ò#’Çv›Ìww2,®ØdŒl oÄÀ ‹ƒË7}ZZühc`á]zQWCœÓár¡‹+µúÛä2ûbgi ÞÏ ËUº]öQV8aÂåuþ?“¨HÅb„]bž9Ïz‘C´#jŸK67ž°j%Ͱj ¥Í’yþ eÑ€¯kj|¯×§LvŠ™»=g\gµ«ú×ñ¼5 ¬Ô 7&Å^¢fA.€ÇnÆ2cé®WQ `Ñ?@7f‹ÅQ(º°š5 ukIJDº-ÓH©õsìS‚.?83)àÁÙ—-÷Æð»á÷Óç÷@ÍMÅÎL¯½ žãúb«W'LV83Û¤ÍÎô¹^[$‰:×ëØöEz¬!ý—#@פÈ!²\—k+H¨]§} ®ÖG†« WsÓo»=™«ÛœQîïC½dW£D}8õ]D êF¸;bïóþ1/ò™5ÄÑ» )¯#ö~¯/D{cg‡C»gˆ…RÊiñ™ÞÎîkûG²ÇÎ%;¤ªø¼/ Øú‹¿aRüänY57>dŒoÓà«©ø)ǧ‹I7£©jBcàKÁÿÿÿPK!š×¶ 9†ppt/slides/slide1.xmlì]Ûr›F¾ïLßá>µ8é4Q2©›¦I“Lœ>dÓ"`;öÛ÷ûwÙ]@‘jI¶¤ÍE hwÙ]þÓþÇ×o‰qeœ¥3Óúe`QdaœÞÌÌ¿¿ýþjleå§¡Ÿdi43£Ò|ûæçŸ^çÓ2 ôNË©?3o«*Ÿ^\”Ám´ðË_²­~ÍÂGîA8’?ÓrfºÞÈ.Tì…¸¸®/0$vµ¬®h v¸Å‡Çs¼ç]r‚íßUŸSüÍ©A™_ª’oŒÜÙæ¯ïæÕr;G}ƒ<¨£ùWèì¥Ô%JÃ/~á㱑=ff”¾úûÊ4®% ã¢b„Ê(Õeù˜_½ãk´ÎÔ»4ðµ?÷4âGË 04°†]l^Fï¬Þ|óË-Â|<üÏžª=Zû=h€öKDãPò¿>Ïà/¨ óÅcÜÇÝ-tO`3#Ä ú¹‰5’ì$»KÃ(4[±†Oâ+£!d¨NiÁކŒÉunÍd1BÖœC0šMŒ‘‘“fÄ^8EÒœCðÖ6Û9çXË5Œônq™ñCˆ+ª„]¢ƒŸ·¨R%./+ÜÕâU7“Qξ{7éÛ-Í—ÄîÏ4¿«Ê ©œÃ³!úd ¢w…èÃÁd(bq6ÐØ^ žôéOSN<lÿ|WºÛòÔ¯ø9DyPIh>Ýó#!Éá³àßÒH³Ë[ËÑ»2—%Ñ-!>Ȧ[(­‘g EA-0ò,)‚gKöoñkz]?ûß;ç÷§‹¸Špbˆ3âˆ:ï飤:òrI|Û£d‡'‰œAÄF\½çñ\œÔv$'\r Œm?jÕ’‘Æ*ó 4'‡U^V¹‡ÂªÉ€@H3,­û„ÞìäPKéxÃjëv/Ý‹,h¼‘0¨hY÷Y›Nµ”VE¡V[›²?Ô²\KË‚gl¬;5¬r ‰q—…†òbr Y°É°4Vi¬‚BZ&^¼Þ*;æDCj>yÑãäH=FíB£t¸÷T4m½_ý\ŽÎí¾ÂhW;¹#›yÅöÏžŒ¬—çB㸫ô»Á–[kl?2'qEËz(€æ9qÚ]íDc çU¶ËÚpÙcRF­ó;w: '@·Ã£–VñjïÉ`•+UºÊpâ*µîž½>µ9RÇRìà1š#·1œ¸ÒUN\å¦ö$ÉŒ¹…áDQÀU”µlð\±Ç®RtIwìF“k³k} x*Y¸µŽ>†Ôª 'KŠú„Ý*¿x¦ÑÑLj>vµá„7Í+i_Ç/#úØ]£O¯y _ièS—x:ú˜' ÑBÇ#êèãF&–}N\¥I]1œ€ìѵáDN–3Ôœ†™ôÈ 'n‡v$ ‰æÚpÒÌ7¤£!Šì%‘Õ1*£ÖNìd-Ãê°IzÚ&)Òq¶rj1P‹ÈÂÊŒGdÕŸ·ÑëaòÚ!Lû;aéI%˜e >F1pK¿·déÖ ‘ðI–~ËY"AÚË ‘ô:,ýØ ±zò$b×ÚÒ¯-ýÍ ?mé×–~œ¥eº[co!’¶¶ô‘¥ß[cé¯y _Ñ–~"É#VªSœ†íï¸òŒ{k,ý ;Btmé×–~méoÈYLÙÓ´(KCÔ¶åSpžÙ¢~ˆ×aé h¢ùþôP:Ï8Š+é’UuɪcTF­Sñ;,ý@·Ã£–¶ôëÉ£ ‘lªxƒ‡ô ‘”¸ç’.—«c¥¢ó}r}7.³4ElSVC¥î”=aœ®pòþP‰º” p’ž?겟¸”ÆêhÈ1Ú)õyÀ¯‚aÊpxÈœLyÉiø:»žc;c¯NUnM\ÇÂ5}]\s20Õ2ň5*XöW׸†1C®ÚQ¶è¥7aílä‡ÿ`¹óE‚2ª¨Ùh` üÅ—Õã⺈º&$uMRã;Òؘ-Cç&Ò ªÈùqò> ê1GùR¿(²ï´V¼rƒªaìN(²AÆCWoTnÙµ“·òŒ|€ö@¹¼èƒvy:[vu6“ Ù‚v˜Bz bùwí+G°=Oâü Qi¾;™Xì”VÒr“‡?Ù|Ûrœº•|*±*ÄD>(7J{Û ÿ8eÀIajð•HÕ øÐ\ö>…Ûïð=Ëu$Å>ÀwloÈÌŸšâ ^ïÎ(þHº_-þH9au>í{Ÿœ÷øŽc¹Då‰â;£ÒÝ/‰:cgŒ£¦¡E¢åK2ÕÙS|é»±øÊ‹£ð)íWàÃíj€ß!Ø7ɼ€ü–`ß‚öÉØ"Ðçì\$à^ªš«û3’o¤}uÚ•uµÚí~Á…û‚v^õ¹¦íŽg¯&‰¹Ž"îޘ锵,ú²<ó§úVD;ãWIHÚ› )þòóÏ÷qº…_¢Xç%{”Çé QÁVýþÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout9.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!i¢_!Ç,ppt/slideMasters/_rels/slideMaster1.xml.relsÄÕÝjà ðûÁÞAÎýb’¶é5½ƒÂ®F÷O>X¢¢v,o?) (ŽBÀ›€Šçüø+æxúzòÆvJ2È’ÊJ‰N6 >/o/; Öq)x¯$2Ñ©|~:~`ÏßdÛN[â«HË uN(µU‹·‰Ò(ýJ­ÌÀš†j^}ñiž¦5ÓPÎj’³``ÎÂ÷¿ŒÚwþ¿¶ªë®ÂWU]”îN jûNà;ÕÕù²Ü4è$ÉtÞN»ÄóÞ—­bÊV!Ù6¦l’eù’4ç¯Îò6Coß,äX”ñè­ÊC²lÉ€•3+bÊŠ`fqC ¦¶‰™Ú&˜šëã=­Y²­cÒÖ!Ù>¦lÿ'£³ßoù ÿÿPK!ÕÑ’ñ¾7-ppt/slideLayouts/_rels/slideLayout11.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7-ppt/slideLayouts/_rels/slideLayout10.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout2.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout3.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout7.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout6.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout5.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout4.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout1.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!ÕÑ’ñ¾7,ppt/slideLayouts/_rels/slideLayout8.xml.rels„Á Â0Dï‚ÿönÒz‘¦^DðàEô–dÛÛ$d£èß›cÁãì0ovšýkÅ“»à5Ô²AÞë|¯áv=®¶ 8£·8OÞİo—‹æB#æâÁE…âYÃsÜ)Åf  Y†H¾8]Hæ"S¯"š;ö¤ÖUµQi΀ö‹)NVC:ÙÄõKóvè:gèÌc"ŸT(¥3r¦T°˜zʤœßy.jYÞÕ6êknûÿÿPK!>Åñ” "ppt/slideLayouts/slideLayout10.xmlÌVÍrÚ0¾w¦ï qÏŽ Øz~B/ù›BzWl9öD¶\I¸ÐNgòZíãäIº’,R: ‡^ŒY¯>í~»ûI'§Ë‚¢šp‘³²ï´Ž|‘2fI^Þõ›ùÔí9HH\&˜²’ôÎéàý»“*49Ç+¶0JᾓIYEž'âŒX±Š”ð-e¼Àþò;/áø`Ôkûþ±Wà¼tšõ|—õ,Mó˜LX¼(H) 'Kˆ_dy%,Zµ Zʼn½z3$¹ª [ FΗÒ~¼KË@êñŒ&¨Ä湤Aè 8ç1¦hN–R»‰jÎ Q Êú¯fÕ5׫/ëkŽòD¡5(Ž×|hÜôßÜàÅ{¶üÎ"áh™òbp‚#`-ûo¥ž°GŠ1~²ÆÙÕß8;ÛâíÙ ‚õ¦P÷Êdô2¶MÇÒZge\1,=gñ½@%ƒûèŽzCßm‡Óé¤N&ÝQw=RB1XB–¯š¤Ç‡_~`ôÂ\.áU]Guý(¿ÀÕU­g.àÐäcmªàÊ­\Ÿ\†½ÂþÿÿPK!(]›•!ppt/slideLayouts/slideLayout3.xmlÌX]râF~OUî0¥<³HBHBeز $^Ûµx0–Píè'£@R©Úk%ÇÙ“äë‘ØK*”×Eüb‹™žî¯¿îžnéâý&“l-T•ùÐrÞÙy\$i¾ZŸ¦Ðb•æyÂe‘‹¡µ•õ~ôãeTÉä†o‹•fБWZK­Ë¨Û­â¥Èxõ®(E޽y¡2®ñS-º‰â¿Aw&»®mûÝŒ§¹ÕœW§œ/æó4ã"^e"×µ%$×À_-Ó²jµ•§h+•¨ Æœ~ IoKx[‰øÁ‹AµÆ’cà{<“ Ëy†…™ˆÉ8#A¡ÌnU>(!H._ÿ¬ÊYy¯Ì¡Ûõ½biBJšÃV·ÙhÄÌÏbxè>;¾h5ñh3WÙè‚G`ƒm†‚¶¥¿8Ä#±Ñ,®ãýj¼¼;"/'G¤»­ ØE¼ËÚ£oÝq[wR-sv^Õ¢GoŠøsÅò~’ûµ{ñíºUF>“úrÉjê5©jäêMÃG+_N[ ;&×í9=C‡çÙþÀ~FJ®‡EFÔ8=ßµƒ¾1Òj‚‘ZuéÍU‘l‰ÒGüGäx/ d©¦<’•žé­Dœñ¼–1.(#‰,àQ"æ±Tý>´`6Màc¸”Ùæ$ÂýT#Èæ(Á(‘œêQäO3Ôc¦¯¥à0Ôx§G×2?3]0‘¤š}à•Š Q½ÀHÚµ±aTŠ<¹çмCÍÁ2Xh½7„Pdþ=üà».…ʽ{Éc±,$йä$ª¥ó‹2Ø·P6Èé6q^”îÀö$‡ ^[%O¢oÛN4‘©‹ì”„x¬uKˆŒ«S ižà¦¡GŠéãêשAr&¸ëíªi2M¥$Ys›Šk©ØšKd߆® „3Íu½¶Éo'lBy {µ%³±Ë:“º.¥nÔë@ºO€ë„g„KÉm ïíá”ù©pý3Â%Œ \o×é¡8^òÌ$À²@6xûxC7¤ ¿=¼²Áëïñºnzß"^Ùà ð^ïôr;g>Èo¸ÇK`O¯·sâ% ÞÁ^¿¼Íz#õM|0E˜žOèqÉíš»qëå35:3TOf€—ôy¯íóc®Å“>ošê÷öùDc´Á°´ärÞöûº­Ñ l袇™a®ÓÌtÑN*íœfºê‘^LéQ·@HÀÿ]¤ç#Qx.oìòhŽÉŸfø?ÂÞõ$ì÷É`0îx“Þ¤syå\u<ÇwýIènèüi5ãlÊtš‰iºX)q·Ò©V½±sµYÒ£°ëàDZ÷±Òôº]¿ô´(h’<œé¼×˜éæZÕÁþuÅ,´ñþïÿˆ÷ë2ë·ÌÎ0á v»ÊŸñkÞG¾·–ðnÕG)639¦Ú·XRã±= Æ—ag<™ºÏs'+w0éØÁØ\Nú®=ïJª"sxù¢Júú察¾~ùû ɼ!Ô/üx¤/æGª¼¼[›ëCäá±Tâó]@Ý‹ŽösÊèÿÿPK!ØÎ¢¸yÒ !ppt/slideLayouts/slideLayout2.xmlÌVÛrÚ0}ïLÿAã>;¶¹5x€ —З&a ùÅ–±Yr%A¡Îä·ÚÏÉ—t%[$$t}ñEZížÝ=Rçb•S´$BfœuàÌwa36ï:·³±{î ©0‹1åŒt5‘ÎEïý»NJÆk¾P0˜ q×I•*BÏ“QJr,ÏxAÌ%\äXÁ¯˜{±Àß;§^Í÷[^Ž3æTëÅ>ëy’dñh‘¦JA(Và¿L³BZ´b´B 0fõ¶Kj]@´üŒ‘XÂoàô îhJcÄp³LQ‚€4äL’1ÅL¢MÙò“(¦ÅD˜u×ˉ@Y¬qªõŽWMTfæ—|x/–Ï-W‰È{hÕu gký„E8$+…¢r0zÒ›¶Qz¹ÃÚ³€›M!ÝEÑëpj6œ’Ž`UiŠaégÝKÄ8Ä©Ã/Ë®—LǬá‹•Ì+ÍleWN>¬½N Yj5àñZ~o3ˆC*ÕT­)1„€Û8pxýëÂ&̽BaçjH †Â¯ÈS½!Í¢{¤8"q¦Ð–Šdœ6Ȱ£ 9$añ ü岎‡°38m=„Ï’ÂY·DVÕ„&G$å4'jÇÑšÅP–ù0 @tI7Ôɰ.[C°Üb¸dÑP »¥ 〤NIÄ¡G)Yº¼aúøYš‰ýÑë: ùB¨toç‡ÂgÉNtP’“ÖvÃÖö+²U؆U«oÒ‹XA;ÿÍÇ4q@du±›¦6²¡Åå ú¡ó5ÇaLhô²·7ÃP¡Vn´¹Q›öÕPG‡>~~lÖ[Íf«åA³í6.Ç—î`ŒÝf½ÖŸ÷Û­~½õË©Ä0ÊT–“q6_r³ÐÇ TÐkÑ1=¢çž»Zm­zç^fà?µ¸£­O›é¦Íô˜s­žÏEÌTç±¹N”(“ýmì`ó}´ºi.6‰Ý&q3|X¾OËlË2;¥YLÐõ"¿{Áoó¸C¢<{ábÐ;)6ÒøŸ¶Ô° ÃöÐ ~Ímø—-wÔûn{4ׂ¡?òë£MKIÍ ƒ(ßÔI¿?<>ü9A#™[Ay]„O}µ47B*®pq³4‡*ܤ¡È‡f¨€»³ 0}2Ñö.Þû ÿÿPK!F³ß‰LA!ppt/slideLayouts/slideLayout1.xmlÌX]nÛ8~/°w ´Ïªõ/Eˆ]ØnÜ—4 êôŒDÛB©Ÿ%i¯Ýb^k÷8=ÉΔí¤)Fᛢ†Ãoæãpftùf[s²aBVm3tüמCXS´eÕ,‡ÎÇû™›9D*Ú””· :;&7£?^]v¹äå5ݵkE@G#s:tVJuù` ‹«©|Ýv¬w‹VÔTÁ£XJAÿÝ5ž— jZ5Ž]/^²¾],ª‚½m‹uÍe”Æ©ürUu²×Ö½D['˜5zõcHj×µªRœ9D‹‰ LøÎ,/æ¼$ ­aâ%ÈœW%Ó¯dw/C¡fóNtóîNè7›;Aª5Ø•ÎÀ¾°bú±1 ž,_öšh¾]ˆztIspÙàk‡¿°ˆæl«Ha&‹Ãl±º}F¶X]=#=è7ûMêÎXô½9AoŽq„¿·ÊˆRXzÝŸ$iZ°Í7æ7›^ÚŒê»1^/”ÐÚ¬¨y¯]Ò/‘Ú­=Ö½3’,Î<ã‘À½(ˆû%MÓ BôŽ¥žg$Ž­6ª»\m'm¹C¯>À¿f…æ\ª¹Úq¦½ >¡9 ‡à–SŒÖ¸ç1µšrF!¢,3j4åUñ‰¨–°²Rä=•Š ¢ô鑨ò@(`ÞªdMyGýðD3:æ°3¸£GCÃÏY {–æë³gp ¢äúÁ'Ž]ÏíË óÃÔO,ca–%p'T?ëb]¥ëÎçüB*ºšNƒ,ž¸Þ$ñÜ(ôc7ƒ+ÝÍü$ fW±7 ã}HIl°ò—"éÛ×ÿüöõ¿’nL‡CìãuÎÅ{ÚÝnt–‚pÈ¡X‡©>Uà¢ÔÑúýÿÿPK!ç;&á<;!ppt/slideMasters/slideMaster1.xmlì[ÛnÛH}_`ÿà>.4¯º òÀQ¬™NÆ{°Ï-²e1¦H.ÙrìY,˜?˜¿ØÝ·ý”|Éžê EÊ’-Olœ,²Y,vŸêª:Ud^|»H­^VIžlç»®mñ,Êã$»Ù¿\N:}ÛªËb–æÙw¼²¿?þóŸ^Ã*ß°JðÒ‚Ž¬²‘=¢UÑœ/Xõ]^ð ×fy¹`§åÕQ\²÷нHÜn7~Á†r|œ–Ö KGöôʱŽ_Ñ-ÖGtsU\–œÓQvóCY\ç%DooÎKè„JÛÊØø’yA‹ÉÓ bJqëö+£‰ ogå‚fx,ÌV¼£¿¸‰ ù­°"5­F£ùOd£ùéé#ó,­~(­J­hÃrºnhVt™ˆ”[ç)‹øž¨žÉ†sÎâÓ,–7 –¤êsI3¹ÓhÅ„¸}™Çwô´)~¼S›ç寶õ¾dÀ·úû’•ܶÒ×Y…98¾E y"!±­²yeÚ¼’-ã›;–e´ŽìH”æd,pNˆå‹‚‰³ì¢ˆH”fC8\Þþ•…K`c¾Í/æ¬à›0S²mµR’VâBÜ¥\¢€íµXazƒ éÝ ذ¤AF!Œg_.Âbœr†§ÅÄñ8M¢kKäaéH&wAfòñP‰c< ;Ì ‹Cµýt‚^íä„Mpi#}ª.¶ŽIûs{žÜBbl‚GË|ìÚAè|á¾/ˆ¯ÆÈòÒª ž Ý¡á|2bÃïvu¾ åYl¥ü†§;¨—Þòõ—ó¤Ü]»ÜÈOÐ>É—¥˜ïû$s9’õ4s¢¼=O“˜ø‰-3ÿëõøÿÿPK!Av/¤!ppt/slideLayouts/slideLayout4.xmlìXÝrÚ8¾ß™}÷ÚÅ6ÆO “Þ›6É,ô[oeË+ »³3}­íãôIz$Y„g!Mfz“›ÄÈŸ>é|GçÇ:{¿))Z. V ÿç Re,/ªÛ¡óižº±ƒ„ÄUŽ)«ÈÐÙá¼ýúËYšÀ[¶’8*‘ࡳ”²N:‘-I‰Å;V“ Þ-/±„Ÿü¶“s|Ü%ížuJ\TN3ŸŸ2Ÿ-EF&,[•¤’†„Š%ì_,‹ZX¶ú¶š4zöÃ-Ém ÖÊ;vuó§ƒ4ޝaÄwF`z6£9ªp ó;†Æ¬’@£_‰zÎ Q jý;¯gõ5×3.××¹bhf:æEÓ?+€ÁCç`ú­eÂÉfÁËÑN@ ´:à°­ú “pB6ef0»Í–W-Øl9mAw찃ݢàëÚXôØœÀš3/$%ÈßYe ¦~`Ùg*v*óyÙåÚ’)›}½D슪Á™—Z‹ ©Kn.X¾U†ßÀ=ˆ*äLn)Ñ‚À¶qäðä§XjR¹ŸfpªK9¦éoÄ“£1-²ÏH2DòB¢XH‘Ôv EyêHpNCIªüsüdz²'°2lÚî„O ÙµB6§ ]Sœ‘%£9l"x™¬âoˆLœ@8ÖOh«ä:8ea¯ñªšyžzÖúÚzÝÆ¤Ž]Ø zƒ¨«h™´ÆÍV“V¯©µéšú:lp’“…’Wí?ˆÍ¢ íƒl¸µÀv[°Þ>Ö>Æúö`€íÃZ`£cX lÿÖÃZ`ǰ ´nÂI9FGÌDÀ° ›F—:A:¸Äƒè2t¸¤>¸ÏèÉX•#JÖ„ž@¯£ìôóeÁOg×ñ ö”­¸\ž¼ùÐDäÉîH‹E+;T‘WÍkáÿå5­ ÔS[ žY.òšöŸ.*Óè‡ýšÑ–×¢0~KlPÞ[ò–ØvÐ[b;¡aëÙÄ6Á’<èÖ^˜ÕLœKèQú6í §Üñ¦¸µ½2 +ÔtÓu=QôÕTÓŽ5 ®Ê±8YÀ—ú¬ù§Û~·?q=?õÝ0&î…׋ÜñtÒ;xát:>ÿ×i:ü$“EIÒâvÅÉÕJ};Ai|ÜIC`ÖiYZŽâŽŸ€¾w_Ûa;ŠéuKXd=2¦> ö;s]v¼‚_/$7Îþk…9¬`ûô#úÏð÷ë*Û·ÊÎh‘t¹*oôí½ìËÇè W@Ý*ñ‘žágH¼ ©4§~œž»“xê†i¹ñ8œ¸ý‹(úƒI÷|ïBJ(+°ò‡"éÛ—ÿ~ûöåë+’ΜæÕM‰¾æ ü#®¯Ö:gÀÝò±ªá6H%€ÞC‡½]}ÿÿPK!t¾F¹ys!ppt/slideLayouts/slideLayout5.xmlìY]’›F~OUî@‘gY€ ÕJ®]ÉÊ‹½»ÉÁhE ‘VJ*U¾VrŸ$Ý3Œ@?جVUvUô²£îžéozš›·›8ÒÖ4ËC– tó¡k4ñY&OýãlÒòt-ç$ HÄ:з4×ßþé&íçQðžlÙŠkÀ‘ä}2Зœ§ýv;÷—4&ù–Ò~[°,&þÍžÚAFž;ŽÚ–a8현‰^<Ÿ5yž-¡OÇÌ_Å4á’$£á`¾ Ó\±¥MØÒŒæ@#žÞ7‰oSð–?³ÙföÌæ¿ëšgk6õ!øïO£@KH #§$ s–ˆ_òt–QŠ˜dýk–NÓÇL˜˜¬ˆ`Фõq yóQD äIj>E¡ÿIãL£Aȵ$ç4Ó¸ˆBŽÜ;‡©,(i<’Œ€{Ì Ò‡7ƒ‹Ê¸•¯{gvœóLjøtÉ¢,°.1O–+¬%5a5Ñ:X’v×…ëÒìvº¦ÙA“ÊÕi¶az .¸FNÏu„ÍI$Ü—KBEDͰFÉ@-æ’²:{Ådk1ÉÞ‹¼“oñíóÕ=¨˜0D®-ÿs [6Z:WnVÖ†¸µ`õ„Ê«F¬Æ1+R¡`f§dí™¶°  «é³"UÁj—¬fÇ57¢Èý WAÛ­Ðz–'l8—¹ Z§¤µ,Lx…µÈUкZ×îˆux®µÈUÐz%-r6Ÿ²±E®‚¶W¡uºî«¦ ¹„–TsB(¾VÝNºÄÛÏW8!pùžÂ£b¶R±K8äêž Õ€­Vm/ÜJ0»—$Z2&%·U&¼©î'8!õ2f™®í¹Ý¯ÈX§×5!9ÑDÇ„ U'êh§*ÕIRVp«Ä¤ªd˜B;¬VID+”d‡UÀª¼¯bqUî° X•̵X¬ÊÐZ¬V¥]-V«r©«€• ¢*_!’;ß~Œ Å\TÒŠý÷eÉ”ú, ´ˆ®it"AéE^¼€~¶ ³æìÅÎßXq&l•ñecãm™‘ÍéÃÅIv¨M.Zu•®Í«3añù¢&ëcY¡Àý±"”…Ɖh‹R¹±Æ9v×°À\¨Äêj5Óå»ÖjýZ«A½|­ÕzçÿX«9JÓNÕj¢4:_ÖŽ¥LèäÙRVW¯•Rv­×0æûõϵ^«éé|õÄsXP]ë5l¡ÉÓàal~ÔzÍUÚ6&œ^ò*ëµ€Cqÿ8jÊ3Uíy%e?Pu¿`p¿a §š÷7E›@‚äÙ§Z@O;Ô­;gÜsÇ-{ÒsZö¨ç¶zw¶ o4ÁI÷Öý­ÍÚBÆÃ˜N§UFV\G+Û ÂôúWó¡×6¡£oå‘ÌA¦ËVæÐu”mû cد­vN/R›/8TãÇû™ù6ê÷˜ïËF¶§";€j÷«x~ßW 2—àËPŸ ñ7Z<ß#ÄeJÙnÇ{w-Û±½–ݵìÖíx䵌Û[ÃöŒÛÎ;ÇÜ¥TŽLÀ˳2éËç~ùòùß $’hÄËÏYp‹ß¼Ä«(û@Ò‡µ8uç>H£‘Jáã @Kr¨…ÃÿÿÿPK!Í_˜Xõ!ppt/slideLayouts/slideLayout6.xmlÌVÛrÚ0}ïLÿA£>;¾!ú’¦$ Ø2x"K®$(¤Ó™üVû9ù’®d›\JgÒ }yµ{´çì®åþÙ¶`hC¥Ê`ÿÄÈòD¤9_ðÍõÔéb¤4á)a‚ÓÞQ…φ?ôËH±ô‚ìÄZ#Àà*"¼ÒºŒ\W%+Zu"JÊa/² åÒM%ùØsÏë¸É9®ãå[âE–å ‹d]P®+IÑ¿Zå¥jÐÊ· •’*€±Ñ/SÒ»Øê\3:ãl‡‘u•0úxì“K'®²nfG•×’R³â›Ï²\”si®6s‰òÔÔØ­7j7ûÈÁ î«ðeƒD¢m&‹aŸD Ú0”lg~!ˆDt«QR“'k²šðMV“Þnsd°?Ô°ªýI'hèT:ø{V•+Ð ‘Ü)Äð4ô+zÉÕ¦3œ |¹BÏ„¯ýªM«Gã¯@S+–Þž‹tgˆß¿5’ˆ)½Ð;F­ 6‰~@~FL_SîÜ, ¯ 3J ïkñô0fyr‡´@4Í5º$JS‰lÀdÔÑPœ’òtN$ùò Ùð#œ I7²’ðïB†c¢)š3’Е`)dCÓTå{ Â2 ]â[âVZS€whl„eæÛ&'QJ3£â¿7ƒMIŒ»­ÈÿÚ”Á\™)ùÞ ¼8&m'ìNGN+Ž=§t¦Ž?é&ãÑ8< Ç?pÝ0)H¦ó‚NóåZÒÙZãC%¯:ÂP}™j}´v]Þ)¾÷TgHÇx·Ò­¦ÒS!L‡=¯uëµÎ´¬ŠýuM$œÐÔ»™½wÏ”Ñb_Ø—"îÍÿVïã*Ûn”]°<¥èj]ܾҷ} }áîèƒÿ?)/nõÂóÖÈéÝs§Õ L€ïáÌ!1Ç Q^̉$@î9 ä#®× –Ç/;ôNgBhð÷©×á!¼.µìÌþº"vèýîû¤kŽ7á÷a• {e¬.(ºX57Ïô=>„¾ð¥è½ ¾UöíT2›…^˜¥Î0IÏ0‰"'J"Ï ‚ÙqÎN¼`”=Œ”2 r`ù_“t÷ëÃýÝï ’§î&€¥¹)ìÇžÉϤ½\Ãg‹Äp5B“§6ÔÂe¸û>¦ŒþrþÿÿPK!Kûþ!ppt/slideLayouts/slideLayout8.xmlÌX[’â6ýOUö r¾ØP S@C~zº»³a‹Æù[0Tªf[Érf%¹W²h`èÁ4]5ùcŽŽîó\Ù7ï7‰ k^”q–ö,ú®ež†Y§O=ëãlÒ,RJ–FLd)ïY[^Zïû?ÿt“wKݱm¶’8Ò²ËzÖRʼÛl–á’'¬|—å<…ÿY‘0 ?‹§fT°ÏÀˆ¦Ýjµ› ‹S«Z_ÔYŸ-qÈo³p•ðTj’‚ &Áþrç¥aËë°å/F­>4Insð6›ÿ>ÛXDÁŠ5Ü V<§"")KàÆ(K%0ϱ\’ËÑ…)óYÁ9¢Óõ¯E>Í µô~ýX8BªŠÂjVT0õ3\4–?&ÖÝ,Фú²éY¸-~Â"ÖåIB}3|¾.N`Ãåøºi6 v›BÎsíÑ·îØÆY,'t畆2Xz—…ŸJ’fà'º¯Ý ï׆ }Fú|Itø%RU8ý§Š‡Á—*¦ÆÐ]$\χÚRá°}§åÅÄiµ‡:ÁÈPÚ¶+ľǚ9ïÊÍ0‹¶Ñ9|CâX.3(Ô¹Ž³(åTn¤™uÅZP0ˆ0ñ$ X7â‹ßàVùgÏ“À¦¹q|‡‡ÃõD˜u!ðKÃFäiãã1‘#ÁÐW>ÉþHÄá'"3£X’¬”¼ *nж`²Kµ‡¢äiôÈ †Fí3c*Xv†øŸáRgûåœC»àQ°/3öuGP¿¦Hê'ßñ|ŠÍp*û¥:û^à9JA»¯J¹­ëÐDÂd_µÖ~ªª”eÚÁêÓ”{¸´«zݯŠ`k€uN`Ý}¬Ö=ÅjÛÙ`€õÎa °ísX¬k€ Îa °sX 8ÕC°’îY®ì)ÔTÕRåAOé¾QÍfKU¸´ñ”‡YÁ×\Ô W½uýlõÙUC\À>ÉVL¿ºÆ»X˜—ÐÇ‹“ì0æÞTÍ\£f3Lõ¾”©€ÀØ7£êUà 'H8Œ‚% Î p*‘j¨¡ä¨‹©ªx_¼õ½éF]Ç£ºÏŸGþÁxsÛÚj_-p$aÅ:bÄi§¼DÓæ«{8ªlîi=Ð)œ‰ˆ…NDy«¨ÌŒ®Åw §GYñu¨‹»’Z|Úx¤£u|Ú®KØùŽÖ¾ÀPêkxÀw¤ÇŸm`ÞkøŽ4Ûðù®[—Ûw¤ë’ÕNÈ¿GÚoøÚžÿº|ü?æt¶9M¨s_>WyF‰n™äo¯D‘üF‡¨>-àÓÆI!‚ö þyhwÑ*ð”FyÐú¡ñ•b,à! ”þ¶í!mnc4p܆{ë ÃñxÒðìÉÐ }Ÿ¶:[Õ3C!“qÂ'ñÓªà+©”êø(­4«ÚçÄÖ²4)<\ÒÖó0sÐз9m“éI–áÉ}ê¨9yíÔYÈB'û+`‡jîÐ3'ë‘ï·¬o";qÄÉý*™Å×Ãsȵñ…— @}2Ägfûñ®¥:ŽçíA§áŽƒ á¶Æ·`ä¶w ÏÐgƒ¿k©#˜‚—XÿwÒ×/ÿüòõË¿oÐHJ9õ[¸Ä—0*¢øÀò‡µ:eÀ['(ò‘º•Ã{&2BŸ!ÈaÞ[õÿÿÿPK!”:Ä,â»!ppt/slideLayouts/slideLayout9.xmlÄXÝrâ6¾ïLßAã^³ ÿã ì’ô&›0…}ÅÁ³òOeÁB;Ù×jgŸ¤çÈà,éR‡i¹#}:¿ß9öÕûm&ȆË*-ò‘Eß ,Âó¸HÒüyd}\ÜõB‹TŠå EÎGÖŽWÖûñ?\•Q%’{¶+ÖŠF^Eld­”*£~¿ŠW˜ xÒà9¼!uu…œ…‡’µÕ€‡ ž{À£N@±ÏS+eˆ(  wB‰wD”Ð?e€‚4D”08 \¹&#Jíü ´|ˆ( àðÐ÷‚ŽAA”ÓÄ…ð{†z…p  ÌdQ,u¼ µ.Lä&Z`uÓƒ©ôVÂrú_1±lIœîHÚتçÚ/¦˜†r²5y4žºóv‹’Â4ªúƒô­IÓÆ›É†¶ŠûY“7Ɇ¶ÈëídC[y}²^˜kZx šÞ˜¦…w¢iá]€gZxçÓŒNÓîó’†—ªÖ¼Ô…‰<ÃD7LñË3Q¢¾á!ZwK䟓D¤ùÏLuf’}.°Üëá$ÀþýÈ×GÓ®žRz8–o––ð„„O9¿œ©?po§½øô\?¼îM†·~oâøáM=‡ÁV3ð'à2•fü.}†‡ªÇµ²P—aÕª¿~´‡} O†tpˆ%¨ƒH¯4£ÚÒ=ýú&ÒwES÷q×q/Ñu–JÖÁþuÍ$œ`&áïŒÂ`ÎaŠÿâ}YÏƳs‘&œ<¬³§þÕ£ü[»:¼Áè“.þNoÿ?\¼/)ïzÒ;?ìÝ·^žZ ¤¨;ìù=¡Ïsìp²/© =˜ƒ•*éë—?úúå¯ ’ž\êW"p‰oPôT&äV>n4}Ã+#Hò©^*á%–%ˆDütÿ ÿÿPK!–ºÒÊÐé "ppt/slideLayouts/slideLayout11.xmlÌW]oÛ6}Ðÿ@hϪ>,Y®»¨ek/mÌîÞY‰Š„R¤FÒžÝa@ÿÖösúKvI‰N⸘Ӥè^dYº<ä=çÞCêâõ®¥hK„l8›:ÁKßA„¼lØÍÔy¿Î݉ƒ¤Â¬Ä”32uöD:¯g/~ºèRIË·xÏ7 “)ž:µR]êy²¨I‹åKÞï*.Z¬à¯¸ñJÿì–z¡ï½7ÌÆ‹sÆóªj ²àŦ%Lõ ‚P¬`ý²n:iѺsÐ:A$À˜Ñ÷—¤öd Ĩu£(yÃÊõÎA&^láMàÌ€‚bEKÄp ~ƒÐ¦À™xŒ¡5Ù)&»µ D`Û_D·ê®…}¹½¨)5Ú€âxË!Ìüe7ÞÑð‹„Ó]%ÚÙN´›: â^_aNa¨è·O‹úêDlQ/OD{vXÁaRпë3z˜NhÓ9"%8¤×Á€ñ–%bÖ<ôy—[‹ª“×ót5ê5QZqÑ€r½Dè>ÔÐdGKCµ]ÿ ñ8|ù=MaG“û\…~œ˜÷š±xq›I,LÒCw©ÚÍy¹×L€_TÍÔ!X'ßÃR©VjO‰ÑXÃ)¤¦X7aîû4Z«2J04â še´)>"Å)…Þa©ˆ@†hK€¼qÔÆIXyþõY³ŠS˜Öm×kRÐÌ~]ÇÑCu5]S\šÓ–ê ¡¬`ß$©&îHQh ¨Y[ç+Å ‹©ÿSÂŽýàÕD¿ÿ^ÂB½!º¥Ÿ(´¦Ûè,ï Ý‹i…‹Ò°õˆÚZ‘‚ƒMQ²%ô x#õ#à×u#ÎGõ­r6_9ßUŸ½øè±ðMuüôY[,²-¶ÀŠÜë,CÈS;«Tà*Ÿ`+Ä´r†ž2Þb\R;«¹¹k—¦Ÿ­IXS3ÎemL{Ôx0xkI*ð›Þb¡Bï†Ó;?<ª`ÕûàŸ‹y0òeâFq”»Q%î$óçn< óe8Y,²0ûËv‚(SMKòæf#ÈÕFo¶]Õ,ýëS«ÙÄ àø·-ËÑHÏ«tl•Î9×&~×EMu>UëJ‰^ìß7XÀ Vïÿ0Ñ¡÷ó2;¶Ì®hSt¹i?ñk6ï§ò ç]€>I±±ÆÿiKâ “Qîú‹IäFáxìΗ£Ø ý$Y.²dÍóCKIÍ ƒ,¿©“¾|þûç/Ÿÿy†F2‡“þÐ ·ú˜mNT¼ÃÝÕÖlðEž™G|Rh‚ÐÛa?QfÿÿÿPK!<¢ô  ppt/theme/theme1.xmlìYMoE¾#ñF{oc'vGuªØ±hÓF±[Ôãxw¼;õìÎjfœÄ7Ô‘qAâÆ•Z‰Kù5"(RÿïÌì®wâ5IJÚCã}Þïygöú㘡C"$åIÛ«_­yˆ$>h¶½{Ãþ• I…“3ž¶7#Ò»±õî;×ñ¦ŠHLÐ'r·½H©tseEú°ŒåUž’Þ¹ˆ±‚G®ߘ­¬Öjë+1¦‰‡Û»ã1õ j–ÞVμÇà1QR/øL 4kâPl0©k„œÉ.è³¶r~4$ÇÊC K/Ú^ÍüóV¶®¯àÍŒˆ©%´%º¾ù—ÑeÁdÕÈá¨Zï7Z×v þÀÔ"®×ëu{õ‚Ÿ`ßK­.ežþF½“ó,ìÏEÞÝZ³Öpñ%þk :·:N³•éb™ýÙXÀoÔÖÛ«Þ€,¾¹€ot¶»Ýuo@¿¾€ï_k­7\¼EŒ&“´h¿Ÿq/ cÎv+áߨeð9 ²¡È.-b̵,×bü‹>4aE¤f)c²¸‹ ªàM‚Koì’/–´,$}ASÕöÞO1TÄœßëß¾~ñ ½~ñôäÑó“G?œ<~|òè{ËË!ÜÅIX&|õõ'¿ù!úíÙW¯ž|V—eüÏß}ôÓŸV¡‚æ½üüé/ÏŸ¾üâã_¿yRßxT†iL$ºCŽÐÁ6ãWs2£F˜–)¶“Pâk)ü{*rÐwf˜á \‡¸¼/ ƒToN: "1UYÈËnE±Üãœu¸¨ôÂ--«äæá4 «…‹iw€ña•ì.Nœøö¦)´NZŲGÍ}†…C’…ô;>!¤Â_(uüºG}Á%+ô€¢¦•.Ò‘“Ms¢]C\fU B¼ßìÝGΪ¬Þ!‡.ª³ 凄9n¼‰§ ÇU,‡8fe‡ßÆ*ªRr0~ד "ÆQ/ RVÑÜ`o)è· {T‡}Íb)Tñ¼9/#wø¤á8­Âh•±ïÉ ¤(Fû\UÁ÷¸[!ú–¥á¾O‰î³»Á=:*ÍD¿™ KèÖNŽiò¶#Ÿ»#o ZY»§úð2ÜéîÛå" ÿþ滃§É>|_ÜÞöÞ·½×ûÏ÷Þeõ|ÞŽ;o²Ðõœcd3.ÇK§å1el fŒÜ–f`–°a}XÔtæ¤HŠÓSÁϬÁ;¸P`CƒWP "œÂ°]÷4“Pf¬C‰R.ág–+yk< ìÊ›úð`ûÄjvyM/çg„‚ÙvBsÍ­iç¶v-c f¿‰°ºVêÜÒêF5Óêi…ÉÃEÓ`±ð&L"æðò:œÕµh8¤`Fíw» ça1Q¸ÌÉ$‹‘¶{1Fu¤I;½AaÊzI`îÛ‚›kmPOO9ðGf²F<˜í “ÓLÚ½Ý&¸>oYeÈÑà8?+N·Õj?ÁäJ°КLçtAX9<»„^“Úù"Ä…‘ »CAl®õìœé6™¹ßô1Ô(­½b­6n2A_‹ƒïÃQa`XB³¶bB½õÿÿPK !>.ß'TTdocProps/thumbnail.jpegÿØÿàJFIF``ÿÛCÿÛCÿÀÀ"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?þþ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯™¾=þ×?fßx ÁßdøµªøËân‹ã¯ø/ÁŸ¿fÿÚ;ö—ñ–©áŸ†wÞÒüyâ{¿ þÍÿ >+ø‡Aðφ5_‰ÿt­GÄ>!Ót­u_h:l7Òß_EñŸøygìëÿDçöÿÿÅNÿÁSú èïú+àøygìëÿDçöÿÿÅNÿÁSú ëœÒ¿à«Ÿ²>»®ø§Âú&…ûnk&ð=Εgã_é_ðKŸø)Ö¡®ø>ó^Òmõí×Å:E§ì6¡áûgC»µÖt¨5k{Iu&æßQ³I¬æŽfý"¢¾ÿ‡–~οôNoÿüTïü7ÿ ÞøygìëÿDçöÿÿÅNÿÁSú èïú+óƒYÿ‚¬~É~Ô|'£ø‡Ãß¶þ…«ø÷Ä>ð.—¬ÿÁ-¿à§š^£ãOYøWÄÞ:¼ðÏ„ìo¿cø.|Gâ _ø/Æ>1¹Ñ´x¯5<+á?x†[eÒ4Ròן½ÿ‚Â~ÄZwü$Úþ×öð‡|@ðWÂ}·þ Ÿÿ+µÿ„WâŸÄ¯ø@?á]|4ñŸû$'öÄÂ×ø[ÿWƒu?²øÅ_ð²¼ý…¦ßÿÂcáßíÓú+óƒFÿ‚¬~É~#Ô|Y£ø{Ãß¶þ»«ø ÄÞñÖ—£Á-¿à§š¦£à¿^xWÃ>:³ðÏ‹,lcùî|9â ¯øÓÁÞ1¶Ñµˆ¬õü+âÏ ø†+fÒ5í.òëë¿€?¾~Óÿ ¼?ñ«à¯ˆ5/|;ñ6¥ã-LÔõ¯øßáî··ð÷Æþ#øoã}\ðGÄxGÇ^×ñÃÿþÉ_°¿ÃK讼Qû6|ø™áŸøˆ|Jýšþ!xkPðlju½#ĺfýâŸìkÍXÒÞûíïÙWÀ?´u?S|Ô4=b߯>&øsâojzÇ¿ügÕæÇà§ÃÏ|G†ÿBñ/ÁO‚¾ øS§ßøÿÁš¿Œ4ß | Ь¼¬^ø»\ñ$ ð­¨j:UïKñ«öÕýÿf½Mð§íûZ~Ìß¼Q¬é¿Û:G†þ5|yøYð¯_Õt=í¿µtÝÇ^*еí7í1Éoöë[im|ôx¼ß1JŽŠ´Õ)ò*”êÚœ§IóRs(N~ÊMFr§ÊQƒ«N…wž# …­í0ô¹¨ÕöÔãWÙÕ£ÌåjUâ¡^šS”TkF2œ#U$½¢£V½{ý_‰¡ìëÔü@Õ¾ ëúÄ/Ä¿ ?iïø)N¢è–$×­­~&Á)?à¼ß#Õ>#øª-&îþ _ÂÇÀžºøRž,Ñá%ê6ÚÖ¡¢è:ÝÇÂZ÷À/ ÙkW>8ôٛ⿆>|j|Uñ»þ _ñoÁWüa¡jß uïø$ÿüK]_âwŽu¯†Úö·ñRfñχ>&ü?±k[ŸkÚo†ü/¤ü)°>мY=®‰â+]RïÇú×ÄŸÑø{üËþ’Yûâd~οüñ¨ÿ‡±Á,¿é%Ÿ°þ&GìëÿϳòN„è{“Ã`kå”\¿yÉÄG ¸~Z¼ñqqÇVQ”¢êAÓÂTŒÕL x}1X¥Z5œ¥ øÜcR”©Åã°4)P£‰^ÍÆ^ÒJœêW¼šÄUÅc§YO븕Sæ/Úoö‘ý›i;ƒWvšÿüwà'þ|^ŸãOÃO‰¿à’ÿ·]÷ŠôŸß|ø½ð'V²½Ò~;Á6~7ü:Õô_áׯÿé×vš./íïî4ÍWJÔôëÝ:9áígáÿÀŸÂÇþ×ý¸¿à¿×ð¶þ?üý¨þ!ÆŸ|coÿ ÇoÙßþü)ߢÿÁ !þÊÿ„?þà_üS:'öoƒ¼Aÿ7üU>Öÿá&ñ‡ü$¯ßðö/ø%—ý$³öÿÄÈýùãQÿbÿ‚YÒK?`üLÙ×ÿž5>bý™?iÙ·öl·øËww¯ÿÁW~=øßãßÅè>4üKø—ñ§þ /ûuØø¯Vñ]Áß„?t›+-'àOügà‡Ã­#AÒ>|ð&ii§xÞþâþßSÕu]OQ½Ôd‘=óþ Mâm?Æ¿²Wˆ ñ µµÔpë^ñf…¢ø›ÃÚ’\éö“§j–wVpô?ðö/ø%—ý$³öÿÄÈýùãV?üËÄ:‹¿eox¯Âšæâ xŸöçÿ‚§ø‡Ã^%ðö§e­h!Ð5¯ø*í…©hÚæ‡¬é³ÜéÚ¶«i×6×úf§asqeeqÕ¬òÁ,r0è½Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@”_µíðölÿ‚þÅ>=ý¢þ7|!øà]Oö"ÿ‚øCMñ§Æ¯‰^ øWá=CÅš—Çø%®µ§x^ÇÄ~:Ö´-ïÄWú?‡µýZËD·¼“RºÓt=bú i-tËÙ`õïø{üËþ’Yûâd~οüñ«ïú(àø{üËþ’Yûâd~οüñ«ñ/^ýµ¿eüý¶õÿ‡?ðQ/ØKÃÿÛ·_ÃøoÄ^$ÿ‚¤Åû+Z_ü=Ò¿àžß°Ï„ü'ñGÂ^'ø-sâõý¥|ðŸâç†þ:iw²ÇÄ++à/Ä?k2_ˆZ¶•©i±}¿ú³¢…¤éMoF¾ñáëS¯ W½~œyNP­Oã¡V•h¤³R=*Q­F_á¯Jtg§Ã/v£÷*Ftª|©Õ¥)Ó—óãoø(§Š/¯¯?üÞ“þ ©ê?<âÛŸø,×ü›ÃÞ¶øðçHñǼ7ÿý–o|3¨|ðgŽ<¨x×ĺ}¯‰dÝO^›âׯ YøÊ OÃ6ž-ð§‡þÁ¬ø{â³>ñKÀÓ a¿Ù¥–É~ýåµåˆ‡ÖoV8¹ÊxjŽ„[QÅÐæ¡Q<<Ò¡(cq”çNTêR…ÄÅâ´9§*QÌp¸l%XÐP¥ìiáîja$ êañ\´°P–2úÓY~jª«WSøûXÿÁd?eÙÏÁŸ²Ïü“þ ¦x“ãÇ«ï‡ÿþ'|MøÃðßã·€~ |3Ò?gŸÿäñ׉|ðëö£ø :ÿÄ?…ÿþiZæ¹ñCú‡ˆ>(éíµ®_hz¥ùùâ_ø-_Å þOöü[þ‡¯ÿ¯ý¯f/ÙÃÂ_bøEâÿ cáÇødoøX´÷†¼ø+-ï—ð÷ö|ÿ†øŸÿ ¼gü$¾›þ“âöçÄ?yþ!ÿ…}ýMø·þE_Ø¿¬ÿéºæ¿bŸùÿà€Ÿö„ÚÿLßðHZ =öNÿ‚È~Ê:äÿ´gƒ?joø)'üSñ'ÁïV?þ|Nøeñ‡á¿ÀŸügøg«þÏ?>-Ç㯠x'â/íGñÖþhtˆ>"| ÕuÍ⇈´ ÿ|.ÕíÖ=\±×4-7èÿø$ψ<âߨûTñgÃ]gÃ>#øsâŸÛOþ }âO‡Þ"ðUö™ªx7_ð>»ÿ4ý¯5_ kžÔôY&ѵ/ êþ»ÓõêDÓiwºEÅÖŸ,–’ÂíÕÁ'å_ðM?û0ØßÿY×áÍ}ÿ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@| â?Û—ÅIñoã‡Âo„°ÇíwûFÙïÇžøañÇÿ ¼CûøcÀÖþ=ñ/Á… ðî‘íûf|ñî©&ðóãO€.õ-R?Å ÿiêWš^ªê3é—Æ¾ëóöø±ð³Æ_´¿ü#LðÄ¿‡þ+Ô|Iûmø;Æ^Óü7ã/k·ºÿ„4ø&oü#ÃZ犴[M/RºŸUðÞâ=BÃÃú®¹cúf­ßYéW—PßÜÃnàÿ ‘ûEÒ'oÿü8ßðK/þ™eðÙ´Wý"wöÿÿÃÿ²ÿé–WßôPçf¹û]þÑúž‹¬i°Á'ÿo´ŸPÒõ (^o‰ðKE‰e»´šÚVOø)Lޱ«È ”Ø(%QŽüýÐl¾5~É?¿àˆþºýš~+üuøŸðŸþ CûOüø‹ð³à—Šÿg[øcÅ>¶ÿ‚YhÞ%Ô%×¾9|wø%ðÓWðþ‡®ø>ÿE¹ºðïµJöêûM»Ñ´OH{íNÃú¯€>+ÿÊMb?û4ø(þ¬ÿø'}~'ìßû3Ä‹¿üñÚÒÕc‚ÒÄÁ%¬l­a@+{;+?ø),–v° Xííma†ÚÞ%H`Š8‘P;þÏömÿ¥s¿hü ÿ‚OôÊ«÷úŠüÿ†sý›é\ïÚÿà“ßý2ª?áœÿfßúW;ö€ÿÀŸø$÷ÿLª¿¨ Àøg?Ù·þ•Îý ?ð'þ =ÿÓ*£þÏömÿ¥s¿hü ÿ‚OôÊ«÷úŠþ|uo²ö‡¥jzÞ«ÿë~кf§ÞêºÏ™ÿ¤ŸìÖ}´·w“ù6ßðRY®&òmá’O*¥šM»"ܪŸ^ý”~~̾ý·¿g?ˆ¿²‡ÂMàÏÃÚ;þ ñ#ã,¾Ð4? \kVzßÅÏÙC\ðEç‹t}.öûMohšŒ/ì³ÝúéÏ©j–¶—ÓÁ;Ë/êÇïø_Á¾&kÞ1ñ&á=þ-WEþÙñ6±§h:WöÏŠaÿ„[ÃOöŽ©skgý§â?k:G‡t;íZ¾»ªéºFŸÆ¡}ko/âgìñ×àŽ­ñþ ›¤éþjZ®‹ÿ‰_ƒZÆ™§üBðæ¡¤ü_mOöÕ—áV§eo«Ésañ%´¨ßSºŽ/=ôifS þ„¨¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠùöáøÉñ3àgÀ(¼_ðv_Ú|IñGǯÙàW…õo‰~×üqà\~Ó¿µ¿ÀÿÙ¶ûź÷ƒ™¬jz¯íáƒçC=þ‰ûOèÞ2ý‘|bt¿†Ú­¶ãïiÞý¨ü5ðƒÆºÏ€üâK¡á_üBÑô ÿé~,µÕ<+uâüC£êÚm‘¥9S‹æœiʬ¡gPR”êÊ*íSŒa7)µË6Ò‹µrË•O–\޵,:Ÿ+ÄWrT()Zεg *T“ç¨ã%Ë•ÛþÏü7þ#öÿÅiþÑ_ý6*ùïÅž/ÿ‚ªxwö¢øû4ÙþÓŸðO½J‹ß?hﺌnàžŸ´n›…|=û<ø³önð=Ö•e ÅÿDÔßĺϊ¼CûLxY­Ö}_Ãv:Fáÿ_Éy¨ß;I¼ûWÀß¶ÿì¿ñ3Æ üà‰’x»Zø¿e¯Üø ûCð7Äkßßê>ðÄ^7Öü­|CÂ?ð€x3âU§‚'‡ÆÑü*ñ¯‰¼=ñ*ûÁ²Çâ½?—^uÔOûHü'ý¡$ý ~~Óÿ³‡†¾ |Eñ„´À­sáŸÆï‹>7øá­_Ÿ´?ŒfOÜø»JøàO¿´>©oâ k_³…¦ÁáËχ¦ëš_Œ5k™.ñ/ˆ¼9 ønÎÅn/5­[Ä~±Óุ״”¼á¾"þËß¶Äí#CÐµÏØcö5ÑtíêÞE>ÿ‚Ä~Üu}CL‡@ð熧ðÝÿ‰üÿÏÑ|T¾Õ´ox[Nñ›¦ëzwü$ÚV“q x‚mKÃ~&ñ–â>{OýŒií.ÿÃÚ—ìû(GyáoŠ7Æ-Ià¸ßðR›¨áñφu[𤷶×°öºÇ…<>ƒ§é¾ øq¬ÃðçÂmKÁ¾ð¦—áoZÑ5ü\Öô¡õÚË0x}k<½ÔÃ*ÁÆ¥¡õÈÑž.uc^~Æ¥l5 Qt©âç_ñTñ?UJUÞ<·“fÞ¬q4qN•Iá¥B:”jÑ„'NXåF¿Ô&±ÞÃûWx«þ ¡û1þË´§í'í;ûxñÿg¯€?þ8§Óþ ÛûEøqüdÿ ¾øÇ«áEñ ÿÁR¼BtñкÐÐ5Ã¥›Á|4}LÁö)ÿ.?aý#Tð—üㇿàŸß·ÿüã‡?nüjý±ÿiˆ¿ÿe¯ˆ?ôÿ…Þ$ø+âÙwᆃàoøD~ÁXõåð¾‹ñ¯^øûñâÊßë~$±½ºñLJ||m-üE£ßiV?q?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þŒßöÿÅ–~Ñ_ý)Úð®à©¿ôy°þ+OöŠÿé±T³Å_Ú½ÿjoÚgödý¨|]û<üG? ¾þÊ?¾|@øðcâOÀ¿í #öƒñŸígàOxsƾ ø‡ûA~Ñ{µë³:Þhúž…ãkk½3Ä-öÛºA¬ÿð±¿à©¿ôfÿ°þ,³öŠÿéN×~ɺÏÇísþ IûlÞþÑ¿~|/ñ²þÄ?ðMØ4Ÿ üøÑãOŽþ—‰ñãþ –ÖZ¦£ã_|ýœµh Kt𕆙i Õ.58á\ÿÁSèò?`üVŸíÿÓb¯1ý«~0xàíýû3übø•'‹ ð€¿à¿ðR½kÅ7~ øqñâψ´ý!iOø$­­Î§mà/„Þñ¿µ‹0\ ýjçEðΣ…¢[ê> ÖZÇCÒõ-FÓßäÿ‚ˆþöÚNŸ©ê?µÂ-PÔ£ªØx‡RÔ ðî“ig5÷é‡ÂOÚ3áÇ=gÇzÂÿêž"»øtþ}zòëÁ=ðχõM+ÇDÚ÷ƒ<[ðÿÅ^,ðƇá‹üY¤Û\Þxsâ7ÂÝcÆ>Ö’Úæ=?Äw[Í|]âo‚¿µïÃOŒµ>¹ð[àßì·ñ÷á‡íEñ¿áŸí|Ÿ?jÏŒŸ³_‹ü㯇¿ÿgpøf×Jøuû~ÒzoŠü<¯û3xKÇv:ôÞ)ðÅÛj Õü9©xjïL°†ûQ¹FQiJ.-Æ3JI¦á8©ÂI=ã8J3Œ¶”d¤›M38N4'Æò4$¤¹¡' ÆéµxN2„–ñ”\]šhá4Œ¿µgˆuí7ÂÚükþ ®xŸYÕ¼] iÑÿcOˆúž½ªë¿õ­?Ã~<ÑtÝ"Ëþ >¡}«x'ÄZ¶• x»Nµ·–óÃzÖ§§ézÌ6W×¶ÐI7ÿ‹µßÅßßxáoüþ ;ñ Æúkx¨_x3Áß°çÅ¿ø¶Þ/ÞøsNñ…ÛøoLÿ‚¼ÜëGOðÕïŒ|!m¬êIdÚ}„ž+ðÏÚ.Quý%¯3ÿñ'íuð×áÃO„¿¶í‹ÿ·Ó¿f_Û3â_Œ?eŒ>:ø»ûükøQðûá·†|Eû0þÑ`ñ&·âÁW`ÑÖï_×> é |5 ž!ð…ý—Šþ h~ ÑþÐ ügû-~Ü_ðFïˆß´ìyñSöaÿ‚\þËÚ…¾ x§ÅÞ0ý¦þþÖ~"ý‘¿l;¾ÿ‚¥]_xãâGÂmsö´ý£tø‡Áš~¯¦kßð‚|tеŸøZ+û{Oƒ¿×_ü,oø*oý¿ìÿ‹,ý¢¿úS´ÂÆÿ‚¦ÿÑ›þÀø²ÏÚ+ÿ¥;@ÃþÏü7þ#öÿÅiþÑ_ý6*î`ߌÿ><~ÎVÞ3øóÃñ{ÿk?¾:ºøG¡ø›Ã_ õ_öeý¬¾6þÍéâ? ø{Æ^*ñ¿‰ô];Å? ,üDúf±âÍvæÊïT¹€_4)' ÿ þ ›ÿFoûâË?h¯þ”ísßðJiüWuû%x‚çÇš_‡´O\~ÛßðT‰üg¢øG]Ô¼SáM#ÅrÿÁO?kùÒõ=RÞ×K}bÖkÈXó¿ðÙ´Wý"wöÿÿÃÿ²ÿé–Rå<*Y{Jj²§;.x,F¶¡-â«á1Œ-e•\=zÔ'ÍJ¬ã'Í.WgÈêáë8]òºØJôñXJÎ;:¸\U*Xœ=KsЯNjN5!.àïü¯öIøâÿ†~7øAàOø+Xø=¤üJÐþiö¿h}CÁz—ñŽëBÔþ*ZÜ|9Ö¾*ê_uÿøOüEá­Æ~)ŸÄžÖ.5oˆ:t_.f<Þ •¿µ§ím¯þÏþ$ð?ÃÏø3áWŠ?×4ÕŸÄz%ÇÄ}wþ)âMÃã>¥«Xë>'øòtm+ö£ðĶŸ™cg«Åá}S¾ð•œoð_Ãß ¼Z-|UiÅéŸ±Ž§iàß øRý€¿à¬úï‡<£, ѯnÿàÞkxÆSj6ŸÄïø?Døñ¥øGÁ¾0»Ñ´­#Âz=Ž…¢ZxÀ:&•c©|4ðoƒThQvÔð bÅO°ñ´›¡J*ŸÕ•I}r„åJŸ²ÅBŒ¦¹¨F\î3Ë*Õ¯US¦½Žh¬¨á£Eâ%í(Töô]YªËÙ,d£V³ysÆ~¾ÂÆÿ‚¦ÿÑ›þÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ‹,ý¢¿úSµñŸŽ(ø]ðKÀ¿¿goÚ³ágÇ_Ûÿà_íqiûHøãMýˆ¿hŸÙëWð–ûQÿÁ[þ)ø>Þ |ñwî¼EâþÅþ1è»%Ô´ïYø £ 4ë׆´±xV© åIЕz1œ•*Ò¢çQÑ•H(ÍÒu&é¹89ÊÜÎ(ʬèÒzq£ZTá*ÔcSÚÆ•YE:”ãW’ŸµŒ&ÜUNHs¥ÍÉÙ~œÿÂÆÿ‚¦ÿÑ›þÀø²ÏÚ+ÿ¥;^=û&ø‡ã¯ˆÿट¶ÍÇí ð³á·Â_Ù~Ä?ðMÛ má7Æ}{ã·‚uðT»Ý?Ä:¼Sðcàˆ¢¹šò÷SÑõVøk¦Ia{¢Íqg«é—Ö7òûü6GíÿHý¿ÿðãÁ,¿úe•Îþ˰|sñ÷í£ûU~ÑŸ¿eÏ‹_³ügû2þÅ?¼¥|gñ—ìÝâox¿ÄŸ¾(~ÝÞ<øªÛiÿ³ǯº.‹¡i¶´/€,l¥ñˆtGU½“S6zt–öJ¸š¤5ðÄoùJoìoÿfÿ,ÿÖŠÿ‚N×ßõðÄoùJoìoÿfÿ,ÿÖŠÿ‚NÐ9ñßÂ^ñ÷üƒö^ð/‹tÿío øÏþ ¿ÿEð¯‰t¿µÞØih!øóÿ¦Òu‹·i—6zŸÚôû»‹µX^ZÞÛùžm­Ä¢H¼ßÄ?ø"ÿücâÏÄ|[ø“ûý™õŸþØÿ·§û ÁãŸÚ7âWÁ߆ß|1ð—ই¡~ËŸ´mßÄno†ßü zÉ=ç…µMGZÔîô_ h~"mZº°ô_ølÚ+þ‘;ûÿáÆÿ‚YôË+óV_ þÕÞ'ø­ûZxÏ^ýà¦? 4/´†™ñSIoƒ??à·ºçŠþjß±¯ìƒû5üLø#ñ^Çãí‡ñMÑt_x—öa:ûøƒáUöƒñÛC½Ñáø‹àëó­Ù]èç)ϪJR„g‚ÃÉÊMºx*2¡‡öpmÉÓ§‡ÁCÙÑä…o«Ò§K ˆTᆩ•:T¨Ó© 4áJ*ž*¥:t¡qx‰Æ­h¾H¨ÆR«‰—=DåIVœåí19刧úB>)ÿÁPMãéÃöAÿ‚{B;hïd±ðS?ÚÞ%œÒË7ol?à”zÛK<Ãì‚'–cW/€ŠðTxúpýàžçPŽÚ;Ù,GüÏö…7‰g4²Á ÛÛø%ž¶ÒÏðÇ; ‰å†XÕËÆà~Høßö>ñŽšæóYÿ‚ÿÁTµOjºÆšº¯¼SÿüxÇÆ–ÿü9©øoWðGà êºïí'>Ÿ xÀ7>Ð ðž­w£ë¾%†XŽ5[YøÑ |8ø¯ðÿz_ÙKU¾ñÇ‚¾#ëßðO/ø+Š|gào‰ÿ~"éž"ñ.¿ÿÕu«Íá'Œüã_…ÿ /µÉi×-þx&÷Àz%¥…¶‡©èÞ8Ö#ñGŠüuâˆZ?…üg N÷²Ë~³l4qå ɫ֖]‡çÃ%Zœ`’ÆÕöuëKØBTã)àkSuédž«'‰“§ý °Ð•wG †ž\äáJ¼d±xzÍÍÏB…yRÅ:rŸ³ÆeÍá'R9…,/êÏü,oø*oý¿ìÿ‹,ý¢¿úS´ÂÆÿ‚¦ÿÑ›þÀø²ÏÚ+ÿ¥;_~ÛßÿjŠ~ø3}¨ÿÁ<à§? >|$øµâŒ?µTÿ ¿kسà7¼]ð/ó?í¤ÚxkÃ^7ý›¿à¨¾øŸs6—ñ»Ä~"j¾°ño†¬u¿øWŽâçZº‚ÇÂ>#?bÿµÂÏ|f¾Ó¿àž?ðSŸŠ¾-üZð¿ÆÙV‰¿µ‡ìYñçÇÞøâÙŸöxÒnü5â_þÒ?ðT_üO¶›TøÝáÏŒß4¯ _ø·Ä¶:'‡üy¤Gos¢ÝO}álÿÂÆÿ‚¦ÿÑ›þÀø²ÏÚ+ÿ¥;\÷üšÿÄZ¯ì•â SÅþ¶ð‹5/Û{þ ‘â Yë‘øžÏÃ"¼ÿ‚ž~×÷߇­|I †•ˆm´]JK6 r-3MVŠÙoã°³[oCÿ ‘ûEÒ'oÿü8ßðK/þ™enÿÁ;¼ ñGÀ_³MÕ§ÆO†ºßÁïøÛöšýºþ6Ý|3ñ/ˆ<âŸx?ô?íËûEüzð•âsáw‹ü}ðþï]ÿ…ñ#Â÷:Ä^ñ—ˆ´ë FâçNþÑ–âÒu@¸¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+àØßþN+þ Åÿgÿðãÿ]eÿÓ¯¿ë⯈?ðO_ÙWâgÄüYñ'„~"Øxóâv­£kþ?Õ|ûEþÒ_ l?ÿâkþÚÿý”÷ý|ñþR›ûÿÙ€ÁK?õ¢¿à“µâ?ø&ì—eáízò×Lý "¹´ÑµK›yGí­ûj“ðXÏ,Rÿ´))"+ÊÊHÁdWÊŸ±¯‰|Eã?‰¿ðEx¿]ÕüQâÏÿÁ?i/ø£ÄÞ Ônõ}{Ä^"×|AÿgÕ5­w[Õ¯åžûTÕõ}JêçPÔµÙæ»½¼¸šææY&•Ý€?pè¯Ãÿø'Ÿì-ðãìû|iø«{ûDøÇâ‡ÅïØûögø¡ñ#Å×ß¶í“i{âŸøÿà·‚¼WãÞZé¬4Ëk­sÄ:¶£©Ü[éÖ6v0ËtñÚZÛÛ¬p§Ø?ðìoÙþÿñ5ÿmþˆJûþŠøþû"Ð#ãÿþ&¿í¯ÿÑ Gü;öDÿ GÇÿüMÛ_ÿ¢€>ÿ¢¾ÿ‡c~ÈŸôøÿÿ‰¯ûkÿôBQÿÆý‘?èñÿÿ_ö×ÿè„ ý¬¿äÖ?iû7ÿŒ¿ú®¼GGì›ÿ&±û4Ù¿üÿÕuáÊùÓQÿ‚ZþÆš¾Ÿ}¤êÞøç©ézΩiºí›ûhÞéú†Ÿ{ Û^XßYÜþÐ2ÛÝÙÝÛË%½ÍµÄrC<2šIfhl¬m ¶ˆË,’L’;eˆÕQ@Q@Q@Q@Q@Q@Q@Q@~ÑŸ´gÇ_|uø!û;~Îß>ü^øƒñ{á/í ñ¦úûãOí ãÙóÁ¾ðoìùãÙ³ÀÚ½¥¦¯àoÙ³ö˜ÖüEâok´Ç†&Ó´é¼1áí*ÓJðö½ss¯=Ûéú}Ï3ÿ þ ›ÿFoûâË?h¯þ”íp_´§Å_…ÿÿࢿ²ŸÄïŒß<ðᯆ?àŸ¿ðQé¾Óµ ›]z]WMJ–íï­VQ{Ñ©(ûÑ¥8S«%¬iΤe:p¨ÖHBs„eg8ÂRŠj-¦Ó\—M{Oiìï§?²ö~דù½Ÿ¶¥í9oÉíió[ž7øçþ7ü7þŒßöÿÅ–~Ñ_ý)Úðß~ÙðQOxãöƒð=—ìaû èû6|OðGÁÏøŸÄßðRïzO…µ?ˆ^<øIðŸãN•¡xVäÿÁ/.5{ö¶ðwÆÿ†PÝÝêº.‰iyâ/&ƒ M­ÞXjBÓõ?Mñ„õľÑüQáÝ[Å m|aá½7ZÓoµÿ ·ˆl[TÐĺ=­ÌºŽ„Úæ˜­¨èãT·µ:ŠµÝžÜ+òÓ^Ѿ8üøÑûiÛÇû~Ò´ŸÃïÚoö˜ø;ûMx7Ç_³—cM ßéð÷öfýþ Oàoé_´×íAðÄ–Úô^6ý—oué®Ò|)é_³Á½cö^øÙÇO‡¿ðLø)­ç‰cøeâ†si׈à†–N¢¾6Õ~ë¾2ñί­øö¼ð_Ä][ÇÞ(Ö~èºÞ«¨xîãI¾Žc¤É¡ þÒüa¿y: l4'¯[%zò¡„qžÃN1QXŠUêaðÉâܨ*T1ôëJ‹­†ÄaÄ7MVXhºò†7NŒ¥j0¯€«BLn&wr øZ˜‡Fž–´qp8È*”ðõp8Êþ—ûh|Vÿ‚•x“À¾ý™õOÙ“öOøqâ¿Û?ƾ+ýŸ>üTøSÿ2ý ­uß…_ô€?¿iâ£u/ü÷BœiÒ?g}}âÓmá×í|Oâ ôø—AŸÁž ñ.¡¦ÿ9žÿ‚yþ×Ûþ"ñ_‡¼âO‰¿°¯ˆ¾Á->#xïÂÿðR¯>‡â'í%û`]~ÀW²Oíà/ ÉÿöÔô_ø öX_Úöq‹þ+³ws©€Þ—RÒüjÿ´¯ø[ßÓ×íâï~ÓÚ/´_‹_ðI/ø)î>øù~'ü>ñÂÿÚ¿öøãÏxèxÇ &×|?ñ'àü·áŸÄ9¯|ñ+Ç~Õ4ø¼ýþj?ð‘ÿhÁ&à·×ÿð˜ü@ðWÅ}·þ íá˯øJ¾)ü6ÿ„þ×Ä¿yÿð^)?·> xþGÂßøB¼g©ý«Ä~ÿ…kàì-JÃþßÿfƒ%ÿ‚RéŸðRïÙ‹ö|ñOìScð+öLøßâÿ؃Ç^ ýœ~%üZøÿý ¼5eã/[~ÌŸ³¿Å¯/Ã?ZÁ5t xßöoý¢>*~Ξ/‹Fø‚<#à3â­Rñ­OYÒ5Gð~#麬Rج±<’|Sû>ø»Åß³‹ãá/üKþ {‰ž>o‰ÿ|AñCö¯ý†þ?xóÆ>:>ð?ÃHuß|Iøùÿmø™ñQk/ü5ð'„´½>6“¤èžÓ,´Ë DI<ß\ÿ‚Sk¯ˆd¯kúï…5Ÿëzçí½ÿHÖ5ŸøŽ÷Ãz—ˆ|ªêðSÏÚþ÷P𦻨ø;\ñ?„/õŸÝÏ6‘ª^øWľ!ðÝÕõœóèzæ­¦IkpúAEPEPEPEPEPEPEPEPEPEPEPægíàM#âü+örøiâ JÏBø‡ÿÎÿ‚©x#Z»Ñæµ·ÕítŸüpÿ‚UhZÆ—=íž¡g£ ¥üÒYKwa{mÊÆóÚ\Äù_â¿üéû"ücøÛñ+ã·Š~4~Ö:w‰¾*|p¿ø÷â=Â3ø5á/ Øx»Rø}à ‹? I¢ü¶ñg…,ÛÂElÞ#ÑøKñÿFÕ¼A¤iº%áð–©g¥öõ‚Ö~ûþYû:ÿÑ9ý¿ÿñS¿ðTßþƒzÎT©ÍÕrŠn¾¦¶¯÷˜:¸¬6¦i;JœñY~ »‹ÿ—˜jnú4ôUjEPJM,6"¦*†ßºÄÕÁbrú•¡uîÔ– ‰Ãó-T+I«IFK½ý—¿aÿ‚ß²/ˆ>'ø›á=×ÄuOŒ:oÃOÁâßj÷‡d¿øY jžѵox-"°ðWõ=;Thõü.ð÷ƒ~i0ØéZo‚< áOƒJ\_þÙú¦ñ7âÂσ?²Gí9ûVkõ}Âÿõ¿‚‡ì±á ü<ñ·‰¼ áO‰Ú/um[öšý§¿gyußÜ|:ñׂügyiàk/Yhš'Šü>úõþ™w«ØÚOÎÃË?g_ú'?·ÿþ*wþ ›ÿÐo_¾2ñWÃÿk?xƒá¯í;áŸøÃöáð_Çï†ÇÆOø!·üçö‰²¼ðŒ°gìEð"ïâWÁý/Jø9ðÛUøûN|6ø•ðÇÚwŸŒúý§ˆn¼k}ªjÚgÎ¥XÆ¥I7'Wˆå…\MYN\õe^³›R¿ì—ü6GíÿHý¿ÿðãÁ,¿úe”Ãd~Ñ_ô‰ßÛÿÿ7üËÿ¦Y_þ6ñ7‹/ý±ì<5iáo|)ñ}Õ§ÂÏ¿‡¼#â»íGM½øŒ~ËÿÃd~Ñ_ô‰ßÛÿÿ7üËÿ¦Y\÷ü›_—Å_²Wˆÿâ XICC_PROFILE HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿÿîAdobed@ÿÛ„ÿÀÿÝÿÄ¢     u!"1A2# QBa$3Rqb‘%C¡±ð&4r ÁÑ5'áS6‚ñ’¢DTsEF7Gc(UVW²ÂÒâòdƒt“„e£³ÃÓã)8fóu*9:HIJXYZghijvwxyz…†‡ˆ‰Š”•–—˜™š¤¥¦§¨©ª´µ¶·¸¹ºÄÅÆÇÈÉÊÔÕÖרÙÚäåæçèéêôõö÷øùúm!1"AQ2aqB#‘R¡b3 ±$ÁÑCrðá‚4%’ScDñ¢²&5T6Ed' sƒ“FtÂÒâòUeuV7„…£³ÃÓãó)”¤´ÄÔäô•¥µÅÕåõ(GWf8v†–¦¶ÆÖæögw‡—§·Ç×ç÷HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÚ ?¿¯ûµ—ÿ0ÿÐë÷î½×ÿÙPK!X›Âªppt/presProps.xmlŒ;Â0 @w$îe§) Uý,ˆ™¥n)q";ünOÄG‚­£e½ç纻{'®@l6r]”RšÐ[y>V;)8iìµ |Ë®].êXEL:eôH"‹+ÝÈ)¥X)Åf¯¹0ï†@^§<Ò¨zÒ·|À;µ)Ë­òÚ¢üð4‡Ã` 샹øð–¸W O6ò×çØ~ÿøKRíÿÿPK!Øý¬¶ppt/tableStyles.xml ÌI‚0@Ὁwhþ}-CQ$ +wê*”!é@h£ãÝeùò’/Í?J¢—Xìd4ÿàº5ݤ{ƒc@ÖqÝqi´`° y¶ß¥3‹7ë÷·•NkÎN߀´)ÉðÁ9¥V;UšIèÊTÄAjÊ 7äÀ•â0L‚Šp‰¯ûæ•}Uœ²OE“®1LâíkÛ£éWдa`Úí;Ik0'½lñÛZô9Ì:eX¾e…Cö§š'qˆƒqo¯tÛZÎ’¤m8V𜠰t'òQÖ…¨&fG‰€sGØXŸ¬W$µ ‚WZÎ0Ê¡¶$P=?Vúº¥SexÉ%j2<™Ïá=ÏDaìÅÃøË#ˆÛZç9ÛÁ*œ®©Ì#­l†ã¨3×tÅÅ¢w<€xð‘?/éÞ½TŽÙ=kÜ a¤æŸko÷‰íeOÒ]kì6Át¯ðÆÃO$”†ç;M(üTDáh‹0{€Aä–u׫»òÿÿPK!!ëÛ,jœdocProps/core.xml ¢( „’Qkà …ßûÁ÷D“´]‘ÔÂ6ú0V´cco¢·,Ñ ®iÿýLÚf-ìQÏñóœ«Å|_WѬSFÏPšF*½¡×õ"ž¢Èy®%¯Œ†:€Csv{Sˆ† cáÅš¬Wà¢@ÒŽŠf†Jïб%ÔÜ%Á¡ƒ¸1¶æ>,í7\|ò-àŒ ®ÁsÉ=Ç0n":!¥Í—­z€*¨A{‡Ó$Å?^¶vè• g­ü¡ Nq/ÙRÅÁ½wj0¶m›´y#äOñûòyÕW•îf%±B ꕯ€­*%!J <ìtš°À½±ìÉ”:Z)eMÅ{ËYè\qç—á-6 äýµPrë ü[éÌvª{E–{˰×õÍw‚ŒBzl~VÞò‡Çõ±Œ¤$&yœMÖé„’;:N?ºTWç»nÇú”í_â4&Ùšä4ŸÐÑè‚x°>ñõbßÿÿPK!sœÓ×9CdocProps/app.xml ¢( œTÁn1½Wê?X{j` m‘q!! ±¤çaw«Æ^Ù. ýúήYµM÷4ž÷v<óf<âöe£ÙWÖô“v³•04™Í•Yõ“y:l|M˜`rÐÖ`?Ù¡OnåÇbêl.(ôŒBßOÖ!=Î}¶Æ ø&Á†¥utt+n—K•á½Í~nÐÞiµº_šóFq˜Äˆ½møß ¹ÍÊüüSº+(a)R@§jƒ²ûí‹à¯GñݺÜË›Á£%îŠB«  "Ç*sÖÛe`“*u6µÏè¦V™ ø1‘ä@O5U¿ «’åÄ4|æ ›­í3ûtÝ»ú,ø¢˜‚ƒ•ƒbíe—²;:Š™V9zy%øÞ6£%x4ÄHå9š=JZ¿6Å,ÒG.A{¤Ð‡!”½Ÿ‚r^Šmèm1 Ö1¯~Q÷» [€ÇRÕ~²§ÀR·¤ÅCeëÂ'‡ÖÏæsÁ‰•yÌ=¶ÕµìT2þHŒ±Rš3JþŸc·ß»’“¥*hô︂ÚD霥_:£ŽTשÂñŠÉ’zþ&xUv”;*0­N'xP㎚£/"ûQ>“ïðk,>ʵoÛ,¶é25Øc'•¿©u`7˜œÑvQÀ«·š=ÀÂ: ¡£Ý"xÍÊüðó"µ÷°žÜS§˜­ÁaN ¦Æ_bDCëtd°³Â¼æœåxŠ;Q¶;Í}Õs¯}å+®·Ÿü ÿÿPK-!Úe=õJ [Content_Types].xmlPK-!høt¡â ._rels/.relsPK-!3Á7 dppt/slides/_rels/slide1.xml.relsPK-!3Á7 cppt/slides/_rels/slide3.xml.relsPK-!EÌF"Úb ppt/_rels/presentation.xml.relsPK-!3Á7 É ppt/slides/_rels/slide2.xml.relsPK-!}Ãf¥ç È ppt/presentation.xmlPK-!0‘i; éhŸppt/slides/slide2.xmlPK-!B–J³E Ey ppt/slides/slide3.xmlPK-!š×¶ 9†…#ppt/slides/slide1.xmlPK-!ÕÑ’ñ¾7,n-ppt/slideLayouts/_rels/slideLayout9.xml.relsPK-!i¢_!Ç,v.ppt/slideMasters/_rels/slideMaster1.xml.relsPK-!ÕÑ’ñ¾7-Þ/ppt/slideLayouts/_rels/slideLayout11.xml.relsPK-!ÕÑ’ñ¾7-ç0ppt/slideLayouts/_rels/slideLayout10.xml.relsPK-!ÕÑ’ñ¾7,ð1ppt/slideLayouts/_rels/slideLayout2.xml.relsPK-!ÕÑ’ñ¾7,ø2ppt/slideLayouts/_rels/slideLayout3.xml.relsPK-!ÕÑ’ñ¾7,4ppt/slideLayouts/_rels/slideLayout7.xml.relsPK-!ÕÑ’ñ¾7,5ppt/slideLayouts/_rels/slideLayout6.xml.relsPK-!ÕÑ’ñ¾7,6ppt/slideLayouts/_rels/slideLayout5.xml.relsPK-!ÕÑ’ñ¾7,7ppt/slideLayouts/_rels/slideLayout4.xml.relsPK-!ÕÑ’ñ¾7, 8ppt/slideLayouts/_rels/slideLayout1.xml.relsPK-!ÕÑ’ñ¾7,(9ppt/slideLayouts/_rels/slideLayout8.xml.relsPK-!>Åñ” "0:ppt/slideLayouts/slideLayout10.xmlPK-!(]›•!>ppt/slideLayouts/slideLayout3.xmlPK-!ØÎ¢¸yÒ !ÞBppt/slideLayouts/slideLayout2.xmlPK-!F³ß‰LA!–Fppt/slideLayouts/slideLayout1.xmlPK-!ç;&á<;!!Kppt/slideMasters/slideMaster1.xmlPK-!Av/¤!ATppt/slideLayouts/slideLayout4.xmlPK-!t¾F¹ys!¯Xppt/slideLayouts/slideLayout5.xmlPK-!Í_˜Xõ!g^ppt/slideLayouts/slideLayout6.xmlPK-!K1ȸ£!­appt/slideLayouts/slideLayout7.xmlPK-!Kûþ!¤dppt/slideLayouts/slideLayout8.xmlPK-!”:Ä,â»!Þippt/slideLayouts/slideLayout9.xmlPK-!–ºÒÊÐé "ÿnppt/slideLayouts/slideLayout11.xmlPK-!<¢ô  sppt/theme/theme1.xmlPK- !>.ß'TTJzdocProps/thumbnail.jpegPK-!X›ÂªÎppt/presProps.xmlPK-!Øý¬¶XÏppt/tableStyles.xmlPK-!#¸¹…H5Ðppt/viewProps.xmlPK-!!ëÛ,jœéÑdocProps/core.xmlPK-!sœÓ×9CŠÔdocProps/app.xmlPK))o ù×pyutilib-6.0.0/doc/workflow/figures/workflow-overview.pdf000077500000000000000000001065131367314503500236720ustar00rootroot00000000000000%PDF-1.5 %âãÏÓ 10 0 obj <> endobj 25 0 obj <>/Filter/FlateDecode/ID[<3B11EF8F4823E941ADA746908EC14DFD>]/Index[10 24]/Info 9 0 R/Length 80/Prev 35870/Root 11 0 R/Size 34/Type/XRef/W[1 2 1]>>stream hÞbbd``b`ª ~@‚q ˆë $X"€s'ˆuÄ*±fƒˆÇ  Dd ® ¡vH¬•d`bd˜ 2Š7ñŸñê/€œ7  endstream endobj startxref 0 %%EOF 33 0 obj <>stream hÞb``àe``2`‚Ší ¨€ˆY8Åx¡˜a ƒ¤ÀJ¦«<9ÚvÖç“Ð.*Qåû¦ù›?Ô6°AŒ¬g |Fa€‹Á y endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream hÞ¤Tïo›0ýWîã¦)ólÀR…´tÝ– ´NŠòÁ%^b‰WJÿûÙfQÖm™"ò½w>¿;?A}À@ ˜ P¨zàa`D€G < ‚a¸ºBi[·}ÑÉJ¹`ðÝn _£ÝìÌma¤qÄmA\½‰ÈÚÆX¬,©«j1»d®äDç}[Ê,P~¡RíÌ2Šè.M9¨Ð1oi |Éᇬes ¨ˆ÷a1üST>wê— ÔvEvoô Þ©ìŸàÄÁ œÍß÷éEà”¾î6 xw±½ÕŸ ~Z¢ endstream endobj 14 0 obj <>stream H‰ìVË®EÝ÷WôÒÉ®êé×–(B°A#eX I;âÆ‰ø}Ω‡„ ‚‘í™:ÓU§Þ#?‰?Ç R’ÄÒâ±w]s|ûSÆ÷^|ß„ûÔ”Kl¢P›J8xòôÒâv‰bŸË†'_}'ñÕe·¿g|ž‡ÇÝåÌI?ry äŸ{½Q|èX ¨ŽØéVœè%øù¡ù#h(ƒÎ4{ÊKÜÎö쎩.Ži¶˜Ýü¶`"y;]QI™Ñˆò$va ]¯ò rjWÔKÊzµ½u'ÝÅ.# ³F‰—-¼6f2C†¿ë›|‹°{ú§÷»ÜyÚ‘‹ÙÙNÖ¶ç·¹†'ë “¸²€2âQ,Á&iiQ‹ ªõŒ£W(GîŠÐú{øþ°þøpìK‡ î-éáWÜk’ƒ<ü°~ž­·ÎþÙ›—ûþ,ŒQÇ_[´0н)[7Ê L∺ö‰Ô8sKšÒ#ÊWÄÀˆ¸(»i@t’íDØ‘mA!¥‚*3m«ÐðA`»ËÞYi©Þ¡‘ZöÓŽšÓ2  bD}d²mAÅ܃ëDyq…/ŒÅ’´˜AÁî$­Ó¨˜ÈBÓœ HjmÌH›ÒAœi ˜ÞÐ䎽Bi8I[ž*žé²ÇÞ¬–²Wõuj³í†m×ùô+ž©T‚š+=A¡ :$8™ßâ;à€yºÃ‘†v«AC€Y¼ê¬FKÍ{0™$`¹AMPë¼.WCXcäêTp0'lé½YãŠÉÅ&¦Äʱ²yÉhö’Ha1K>ë @¹‘mI Ù5ˆ:Èc²5ÝF¥bñ¨\ Ô»´¿=”mcø²{'ã^ÞöзoùxûÊàÌëìݾ~)g$í;|ýæ·÷ï.ë/\±ÇëíûÉ×'ÞJŸ×óózþ?×Óô~-G󵄷’Yl#¿}ÿî¿]Iþ“Èd´ŠÅfݯ$î“÷Ó3hR¹Ó4Å}<t›&ªõîu‘ïmÜ®¶' šS³Lܳ¿,þ!Àº° endstream endobj 15 0 obj <>stream H‰ìVK®7ÜÏ)¸ šÝü¯s‚¬|!Yè°ßýTus$N {c/AR×°?ÅêΈ̘JÈ­òïýøç¬€=&”,¾ÜÂã ú0·Þy@Ó„ÁËmO@7Oý8Þ™Ù-ð&9Îü÷Û߇tgæ«ÆlÒy.fs'³ÀLà6æ"3ÒœŒ»&Ý<õÎÌÄÌWŸÌ¦\™-2Š%¦[Iòb¶ ^nWšéLmÌòO5“ï4Ë»f×î4ó®™îšéNæÚÚ«fù§šÉwšå]³+™]³¼k¦»fºkv¥yÑì¯ãë¡»Œá 7h#¡Ãƒ¬fŠN0øüGør¤Ð§Æ”C…'Ú§ÏXøôçG ÷ öù¸±PᘰßÎUì>Žij¼!9?ŒýŠ´‘ QªÖ­û»]{?n±·8[ˆE—ïý0 ù÷8QŽÛbmÈNã~t=íìØNÔ­W+öêEz‰eƒ…ECÅÏícffz?ºõcù›ýdhåÙ„´þe«´›É³­v½ôAYøèø¯D…Û\ÄdjH, !LrþúDj6¼Ä)=€~#àG©¦ÑÉlÂΉ‹E É5pªk˜gc4¼”;/e¥Åº¡[òÕŽ šb™P1wƒ5³Ý+_9ΰ‹'à(£-%j¶Þ(Që´TÜHahâÔiT?X¸#7¹#qTldzƒÈC iØÉ;°XqMËâÞLKXÉUÅÍYm¶¼ÁXÐvö`°®øN¥ÔTY ì°A;ŠÏ îÓ Ž8´› ,“¸êT£Åæ=˜Ü$`~BgÈ&¨u^Ëi 2yŽ‘z¸©§B9‰ËêÍ—ÍÎ619T?JÐì„f—Ø£QòY䯮Ëİ=Xc您ƒ4&[ÓmT*ŸÎ•@½KëîU¶ôm¯ÎŒKÞË}ð®×ás>Ûü‰ÿ£gÛö>0÷÷¹¿\ÁûûÀØß®Úý}`üÿ>ð‹ïÛQijÏç9™§ÝÏyÚÙ]ìÔ¹ñ X¦ø1´Ð¨žQ·A½ùõÝ®>žæsÚ#–vBJ€“á¬Î‚ò*³†=ü+ÀmÑo endstream endobj 16 0 obj <>stream H‰ìV±Ž1í÷+\æâóØ^ÛÛ‚hèVºQ ˆã$’“ ÿ/ñÞŒ½Ià”(…çí™ñ¼7³Ü^üÒÜqzšjðsqû|Éî4ÕæáìCÄþØ]|ÊCSˆÃeñÙ@.BÐè÷0•æ›Á™[ê²ú…öœÕ.8UgCÙ‹ëpö­Ž³Ñ§fPÝD¦0ü S±…{RÈ;º‘n`ö7=LÓûé›ð'KtÉ}8éßNSZ°§„ŠdL bHJ±ú XýÜà€•kÑ/,¼Fû¸Ù¥{Z.vcK½!7„ô*ßÉÃ}3Sø…O©âSÙøÜ<÷Ý})Ÿ„©t> æÜk*%iI:Ÿ„ƒO)`­óI;o|²­m|2¶äOÁRâÆ'!jßýW¥­Ç®>ù,=]dóÐù\ê Ÿqö9+¥é^êkh+Ñ€J)€Qi—ÿHê86`ñWbQ´EíoÀ%ì…æà?±¿!–ÃB{µ]¸2‹•¹à$Œ­¢\{¡¿Ä’çͽ͟(Y;í!Þ86ÌJê$”NÄp’5ŽAë÷;—׬F&ì’¾Q.yÙÆ~æH1Ädf_¡& € ¬jDДI¶h…h7@ò•²Š’2êqC=§~Ê4‹QÔoÄÃ{ÀH^SÏ%‘«žd"Wï2 Aâ”2å„“û ®Æà¾F'TŸœŠúá•{Fy*Hɾ 6=`ãþÍž©ü·g½Õ#–á‘ñ^8\ƒË ¡Fzî¯s *@º¿hÔU~6îM–ª%O ¤šÔµ ¥£¤+í+Ø ÕÝ tc6Z ?PÕžîwˆÄ …è6²ÐÛ 8ó¤žé ãE˜~?¯ö–a¯ul«\EêÈÌ຦L¯×é~]qÔ­Ü£æø°$B•g,Å­'l}ABqð0}Ø­Ÿîö5û¶;c->î¾b…Þwéîãúnz»þ;i½L§öP.?3šmæ•AÉNo9Ø ¡.¨“ÂgD*z¦$QÐ\ætù $ê4<¢C%‰Þ… I3 \Ùü`¡šé†êH]Rü|…š/Áv+¿*Áç%rhp$§`_€(~¶QàrŸˆe“^Hìë8/êŠÉÚülºè£ª@ç½Øÿn c^|Ä3L-ÉùŠÂ£4Þar?ò— endstream endobj 17 0 obj <>stream H‰ìUKkA¾Ï¯èãFØNwU?¯Š½ˆ0ƒxÅ4Œ›ü¿ªê‰“½H@Avê›®ÇW¯žX}&ç)¹Ë)Ÿ‹ &…¦ÒųïÅEß›[ä€P­Vù(ró1 È!;(°/©¹Ø} —äÅa2©€Í7ª.rð%G1 øçJx_š¢žÄ´x¾ƒÆž˜ ïÅÛ£y‚Z ÕíÉ\!@ï‚`+ÑKÇ=«ÌEìØe’J>pá§°h…IÏM@I’•ØŠcÈfLžå ’Ð: Q*LJ%© e"‰½Ô•Ss¡C#ºxå «p>½Åïù<Î3ø»ù\ÎÄ»ôˆÊV\ªMº7/“©Ï‡i÷êêëíÍñdþ<½œ§ë‰SòàYܾV4­Rpß>NTªgy»LgÏÜ\×6ì òÙC¥3œ¾8"õ#BÊïx¸š®AFäè˜HÛ _Èã°èëé$#ÍWhj‹Rr>6+v®Ýù.¤0#±Já8*h25Z,Ò«¤FÉW›±…‹ˆ~E†« ×¹`M©sNŠÖÍÔ| vZñ‚‚OeŽP€Ötn‚0Bø,-‚œÌ!Jž<±°Lå®®œN LƒtYÛ~)óŒ¢pSÀŽ=! ©…¯('­Ø>ê¬Û?l%Åëqº`€8‰r› Ú±d¾‚Ü@-W«sØݸ¡6€95s-e¢ö;fT2£¶aFmÃlRÕV2TÃl˜­ÀÔG™™á¯˜Ùé³Üï3d Ô°23ãò02¦vŸfX]Ûh­Žú“‹JÄ ŠÑ6 ç>HÝéˆ\踃³ë3aB/ëÖ€‘<.WÄriÙ%ܵ a“&0î⊕\QÕn Û1h!† j¤":êٮĪýú*ß1õÓUÖgÜDÈÄG?ÄôÓ‡˜#¾lȃ¥ßáà>¡ ¡âÊÃê¿ÛÍNö5ù¶;≫z÷ÏìãŽNÞϯŸüMˆ”(<ìè_õ‰vßT° endstream endobj 18 0 obj <>stream H‰ìUËŽT9 Ý߯Èr醨Îs;#¬RI|@ „FTk˜†ÿŸsœÜÛÕ-X²C%Uù$±}ü,©±1‹£‡/›ôXSvÜp )æa€… wÈ)& ×M%ˆŽX2Ô çi@%¦RÔ\Á4XÔ2ÜTÐX3US”  J—# {À Gm#€L«bK ÐCÌt+- QéVÀ½†4¥Ô]ú¼I‰£ÂøÜx¡ ø«N¿2#•BPR¡'<0°C€ƒñy8×mÆ9öصyjª%|›€~k¬ÝÑ`€vÂÉP™IÈ;­-Q`IýYO-ì¥8Té¼VÜÍecž —˜²K1Yß ›Ðè•¥ ÛŠºn×–²Fã…è©V¦A‘4eR´è,ô™ReÕȾRžÞiqe7§í=>]¶×— ø‡Ë'ÞÑ:K¤YƒÉ,Þå¶Å”ùåºýñöáßïßÿ¼ü³½¹l_7Ë={k¨YÓþû¸imÑxzÛ>¼ 0ÝØX¨ˆg‡ÌGpñúïG„þ—ü<^¶¯ CY‚©²šŒq\o~|C8yv‘ÇKš^¡œC”>“]ИqZDgâ ³iv€Ìkæê^P6læÁ,ݸõli€Ï¦i¦i‰?a¦õ%39™­óiøîÒŸd´¥{pÇìÓ@{Æìi‹ RkÍ/ÎfÃGÍИ²/„ã¹D™b¡^¦UhíŽ[ç÷r™­ão¹Ç\À`hŸ€ûYPžÜœyHŸ·–¨¹÷Ä¡¸mÍÿ NnÇíàd8äÞÄãê;–tØÓ½ÏýP;w"aá•›d‡W_Œ”9}­L”çȰÌw¼Uî ‡n†sûB ‡o¡ãE*q®º‰ìŸzõa|QÍ•·—Õ|žEGRëY ‡X¾^ dB°ì ÊŸë*#å/§\ÏzœòìˆÓê}»Ü!V˜­5‹wÖóúƒz zؗ¬çiyÝVå®:êIhuÕ“ ä•S©³Á·ð¿´¬@ endstream endobj 19 0 obj <>stream H‰ÔVKŽ[7Ü¿Sp@ ¿M¾µO• x…Æ@2÷RÕݤž]À@ª²¿Õ$%3βÔ؃œ1 p‹™¸7Å-ÜÑ n~l*17е÷ŒRŒª›3ž%ˆù)öB§™$Ã%pSÌ/,'#"$]”TÁÆã¯ãŸCÂ_>ë9b*áþ©ÿûê®s§l‡Z i×ÅEƒõ;ûä¾9LFNŠl¿¶iUD0t ;ûÐ>MvmÖ„£ ; Ö¹@g úb' X•TSÏY1ñ|c7íÜC§tæx •³s0žf2õÓ2F¾×ºÞ©Ö{}«–‚÷GïÚÜûnn[ÙZýJ†+T¯D_|Í +—+³x¯ST·rÿ×F8nm«øLr­ f¸m%•Ks-•5ñÖ‚%›k»ò¥(ã0¹¦Jd«Êúc.[WMbÊV¼Å:·¶Ê‘Ì U(¤'ÑëVX«£ôž;jy­ü͵Ë\*6[ê B­ñÍ”°à“{ã“E-–m:iy³òJöyaˆ·¶-8x±’ä$~±âª~’Ü4ŽQsû7:&j,¹äg^¶pëГéqà6gJø~€d%¼ó ‚N°ÆÃ†%¢TÌ Ô88%«$7F}læ9ù^Ü5F€EýbÊWÀBqï‡çRy&=I’K]&!DzW}ÿ#üD{DN5ëæ¦ïXøóÛüâàïëþSM«ÚÒ¡,GC»KA|u²¹ø8’N Ÿe;䞦›ÍJ§V Ó£C¨ª:«:±úDŸExØÊÂxÕ0Ò‹ ½«Üv‘bAŒZÇÈB­Ñœ‚;ŸkXÐ^êÌô}¿â¡†/:tö/‘œLÁàõÀµ¬ïS™¿¶¨Ù‰³Þ$íFæ/ s`Ô5N¸¦Úø‰“&FjV2Cãõn*ÉE_êé fYmá"W¨‡û»Ûéaæ`Ó„`»«w6Kì†ç-Ùêà/¼Qgå‘áÏ…šì2.YÃw„ðŸs0 endstream endobj 20 0 obj <>stream H‰ŒVɪ$7¼×WèhJ–RûÕÆ 󅃙~Ìó³ÿß™Ruõ,`º3Z¹D.¥,‰.ûÑݧM¢¥Ir|Oâ’—2²_³;6ȱˆÀ"?ÄEß«Ô"´áb÷­Šó-$ÈÎgml¾à?ÉÔ®±‚I¡«ôq‹Å àsçL Zq#åîc!(¡0Øu A,c3eÌ€Ýwi.¦à+XM”ð[}튓L'4†°HLy§·)Fx2=4·‹¹B€1ˆ`ËèµÂãžTN,äâCVɇT@¸Â),zeÉGé(7²¢-C6cñ‰Q „>Øš¤Ò„U‘B Ö%س¦Â¶‘~¥lÑéq–7,áeûŸ·-ÔÕÉèlSD—µ ÿ¹}p¯Û/7š0([—guißۿ¿~þ÷Ÿ÷om¿ÝÌ1Ƭ8DÞ[C7›úL9cÆðï}ûðü×h&W‘èyþù×wÔäAùy?^Õ!ˆ¥ªEÝcb"ö ›ÿž§wÌXFÄTmî[æ”ð˜ÅY ±ªÖš• Õ¸¬©69 š¹f%33ü3;=™µñÌÌ¢L0ÂbÖÇ…ÙS{¦Ù—ë+33ü3;=™øÌÌ¢Èê˜j9ij °GÓÔžiöåšÌÞ\ÔÎF—pgHWÍã®ÿÝ·”ô¢Hb´ÍÈPà‰’ÇS9W×Á5ñûØj¦I'£)Êô‘â:0wŠÎP aÌŸÎ]X›p`p÷ù$}ÜŠ>½yëªÏÈòkg­{ ”š¥ù¬rÉ”ñ€Yߎ­àTTx@g¸Œ)B³óŽF‚IA¢â§…ðì3ã©XpÛ¢‡ÂÜ÷Ê{ÆBöÆxʤë·1„ ¾×¼½1ž»VJúf×X0Ì‘Õ+áZÜã,nigOvÞó«W_‚6;”®@;¾ðšf^¯Èâ=OQ:;÷ua¤òêâƒä:¯‘÷òê¤âšg/å:K lV¬ìŠWGá;uöTA=»ÊüíÞ?q³Õ{ªgî­Õ[Å ³Â +lä$QÒÙaÍŽ­ŸÜ‹î˜çÌ¿ìsÄõyƒÚœ­Žs•ã—” É=R­Ý§<˜ÔBѦ“–»¥'qŽÈš»?ô‡öb¨,)7r¿€¨Ë|B›ößè³0ßwØd‰^v°6ÐɼÞཨ1-Ü5QAÔ×$ˆ«G”‚˜$ß8µ%»½¡,49M]nK|ÏrÓ¯ð…Ì ›{l“‹¾%L’:$—¼ŽÇrÇ¢®_íàs3ÿßõ³vpÖýM‡uy|Y"}ÎS47/Ûc¿9÷ŸÑÐÑ endstream endobj 21 0 obj <>stream H‰ìVË®GÝ÷WôÒÉMwõ{K”l"¤‘XDYDû*7†ÿ眪Ç€H> hdOézžª²'ùˆ+ù‡é!ºè³‹;†Z Ãl>Y>'§bšÂÛyG9ÔæÕˆòtlÂÉuÙå3äÐvÔsˆ²Ûî@,ˆA ±dd¡Ö7|Ü{õLO×Ó_ú*ß2Ôð!®{º‹´‰Ñ¼Ý;÷׋Í=ß6¨úíφ?&VÊ ¥yÉ Ùlä*ö ¥“ûõ°ýþpì%ŒÃ÷äð÷Ò¡<ü¶½r?oîÉ•9`˜ÁWï!¡šèÿ~늤PùôâÞ<óØ‘b̾%ЙJopðü§+ºj£¢¿žÝR\­LÂrd|ÝÍÂÄW·BÔÆ¥PÀXb½G´ O°À¤J˜©{0“‚áñ%l¼‚$“Þ΄,Ð.R®€pÉ”’ 4lf8y Aj¡Þ!°í´ãÄPfp0#ÒÛÉIÒððu¦\̈‹˜ $«AŸƒÔ©®XH¡i = ¢0YQbn r‡ã (Éô†yè ÔpèN.õPñLÊʽ)—¢±úÞ¥ªk`³ˆiû( ÆMViª5VF‚BFv(p²¾bëb€uZÀ†tå ! À˜Œu²ÑB³L ˜oÐ2dD;/e1·Õ|ŒØýQÌÌI[FoÚ¸¬r։ɾr¬t^"š]BƒSXŒFÊg UÑ–Ž!›±„̃$â˜lM×Q©ØQ*W±.­aÛ˜~£lÑéqÑûÕÊ>­5¬˜žì_QÖòØN—owZ×bÙa©CŒà;}xùø×§×‡íOnïë_¿¬ßõûŸ®ßww ˆº[ÐåjEÿ‡®WÖõúåÓÇ»ýúv»ÊÐYÎM‹?&[ûæ¿fÓU[§ÌB°ÓæâJŸvÌ"vЙ°ªõn%tñè,µÌÕÌ5+Þ33Ãïef§·Ìúü23‹²ÀŒ{fcÞeö°dLíË4Çîš™=¹Úooåö†±¿wüצ—’ÏßCòçé¨ížØmÿY€¯uþí endstream endobj 22 0 obj <>stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 23 0 obj <>stream hÞì› |”Õ¹ÿŸó¾ïì“YBöÉ2Éd!$$„@Ø2d#„d4„MPÑH b«@£ˆûRÔªÕ¢e2"FEEënQ[­{­µ¸€FqW„ÌÿwÞgé­Ÿÿ½ýß{?&ùÍ÷œç¬ïóœ÷œKIQ­#•¦Ok,,:óšå_ÁòÔ:i[»Ë6èE¢À=DJëü˽Ù_žB$ƾ^Ô~êÒ[÷U Ì4ŒÈ2èÔ3V.ÚÒ;šh¤ Æ,^ضàý–mÍF}*] CÔ.Ûx"Wò™‹—.?÷Þën=ùÅDî Ï8k~%f ÿªLä7.m;·ÝMÊÑ>õ½g¶-]X²:ù ¢æ|"í³ö³:–cÞø4Ûeyû²…íî'¾¿“(ýS¢Ø Rµ,e'Èl¸ÞPŒY§2Õ—é!…̤8MŠªiª¢ÝBÊç~ò®¦È§¾Ñë%üü¨©Ä“¦›•l/ÑY¦î28ährdÓÍD}WÒáÏø¹‘¶Òýô=NÏÓ+ô•°R+]DÑ?h}I? &+’E.ý—}ú~iXJQê.2R£Ïéý{?}ýä+úùoaÙÜO­ÇZ¾ÃÏ÷ô@Ò¡#r‡Ž)9„­/ŒÝJE¨Ôw8uتKaÄžfav%Â)\°]b(qÿ¤Ä~œ2‹n‰ƒD öËx‘ ’„ûfŠHi"]dQ–8PâE‰OdЬHYœÞ2q mjÄQ7W çà;OˆB¤‡‹1BŒe° E¾ùÑ(¦³Â_3wÎìSfÍli45Îh˜>mjý”ºÉ“j'ÖTWUVLð—7vÌè²Q#KG Íœ•éËHKˆq»œQ6«Ål2pàʯöÕ´zƒÙ­A-ÛW[;Tæ}m0´ah zaª9ºNÐÛªWó]Óš‹Ž©éçšþšÂåKc‡æ{«}Þàî*Ÿ·GÌlhFzS•¯ÅìÕÓõzZËÖ3QȤ§£…·:aq•7(Z½ÕÁš‹»ª[«Ð_·ÍZé«\hšOÝV’6¤‚ƒ}íÝbðx¡'”ÁÕ£»qÜFÉaƒjVuÛ‚àô†æê*Ozz‹n£J½¯ ±2hÒûò.‘s¦‹½Ýù»º.éqѼÖ<ûß‚¶Sšƒju©Õ]]‚î¼`®¯*˜»jOya0ßWUÌ󡳺ˆ !Ëåóv}C˜¼¯÷Ó£-m‹1Ëõ ɤ|Ä7¡¼?M˜fˆçKO—s¹¸ÇOó ®khæ¼—æyBä/Ìk *­²dWIl@–¬ë/hÞêK—¡ªnü®Xœ\7Ï;4Þ׳ð‹roPÍn7±dÛÂ._Uû­©9è¯BÂßyÖêîa…¨ßÖŠ‡X"ÝÐÐ,ôµc|\¯ŒÁ’Æf½I¤Y0¦2ˆû^¤U°°ºJÎË[ÝÕZÅ”}ùš¤âð{Ý%^Ï}ÅTB-rÁ¸J%»º«yÁ¢`Z«gÖç"o³'=èoûZ|Í [d”|®`î{.]Qo…g;¦veùä¦,³·Yñ¨-2Z0xkðå«‹Â¥geD+Æz›…‡ú«a”H ™:ªdÔ¬ÊZY¤Ê¦•µžô–tþüSòDædÈ šèËÃÀœxœ:5®-'”ë­^XuÄêÔ™`¤·ãÏS‘¾ˆ ŒfÎÚþ"5 o.l ºÑM2Š Þ M÷6ûúZ|XCþéÍòÙ¤¯õøÖ5úêf6ëÑŽ¬’¦£r\>ŠsAJGqF©Ä¬Éóô‡UÏOÔóÙÚcŠ'õ{»Ì¾ºÆ.Ù¹/Ò!yñá¡Ù“Ú.]‚W³»›¯¦ÍçuykºÚzÂëæuuûý]íÕ­‹GË>|“tù›Çzô¹Îh^ãY%‡Š¦:Q×T14{OE·Ollèö‹3›Ľջ±©9¤¥²µ¢¥;eÍâzï×­Š´J£ÌxeFö4³^ßó Ÿh^ªé=?¿Gn3÷ÛÍïQØæê·)°ilóë6ùAÃÅØn«½ dxÎkYÜÕÚ"_.ŠC(ñ+‚Â7ž‚Šo|·PŒö Õ·°"hóUH{¹´—³Ý(í&, œ{pŽÜ“ºZ}ا° šÉ#x)ª²KoO8ÜÔœ¾ÛÓÛ’Ž¥v 4³9hÉÃÞoÈšŒz¥Zaž\7¿M΃Ͳ­)kÒü,ÛþQeRЂ,‘P£Fo#—#ÍGl@½ý:d‚ëZ‚-yrÐæ%-úrv©Ö7aç> Ùr Â–®h_‘þnâU°fm°`nÔØÌ²¬…d²cæó}(šßê…·5šßˆ¥Î{©Õօص셺¬žH!ÉÇR³lQÖ ¥âW¦mò•4d™ZZxòznC¤Ævm˜Qö®Œ4€wP4Iο0UYõqÙMCÍð‹ENZïÉ„â`TÖ¤6lþÜÞ‹oTc³Ü#l‘>žd«I>¹~W³šz¿õ­L?â34ß'¹0Éó 6µtkÎÊšo>Ö¥›»ºÌQÇoÀþ2G FüaMÄ'[WtöµYöIË‘­MsΉ—`ywþLK¯HiçÑ&m,M;ž 6Ú¤+…œRêG´ *?‚c¡z(uFì›Ô{Ð&‘&ýDvØ¥*ñ7pmR2Â3Ál° ª…¦B³ u°g@©Ús¨w'©ÊámZ+æ ©ót-SÏŽ¤WP¬¶–6ûÐwõq”-¡éÿRËXègºV± ä/@šuš¤ú,ž•ùòß’ýHÊè’Ÿ+íaŠ3ù)ïXi‹)]L®c¥¾BÅ¥JjÉúseØ~_JEëÕhæñ¤]Në¡ ´;)[JÝŒº›)3BoD)Ð0¨-¨l¸Ž* *¬/‹á#Zaxw@Hù•KMýZu©’Ik4¤ôx.£KõxvF´1šGÖ#îŒSŒwÓhõmo‰²ˆ"÷Á©ò®×ß2˜ÉjBV=Έ«)ÿˆ{œ•ã,ï©ýw/­Ìº>À¾ð<ÇwÍMê]Jõ¦¡èã4ý>k7·m)4 ¾™FÓLÓ¾Žü8ì'”„örm$ÓF}m¤G4ñÞ¡ŸÁý÷¡TÄr8Þ½ÉZeEî8òþ¢Ùa“j#U_/7Fî$¯C×FÖŠ¼wõß#^£x)Ä; ó×× ÖÇzí2¨ˆŒ¸¯ÑûI0¼&¢ý‡4[ý ÷—zÉZ¥ ~ üHÆJŒ{êàü‡ÏH_[ß`_-¢ýX3si”vö+yÞq†>Àýî4­-ÇÚ[Ní’‘3p…<×d?R¸ÃÄK)Úp?¯cãÌÈY5 ª9|žéw yΤ’Ežu{óˆÙ©T!÷ní|Ô‚²i˜Ñƒ¾¦#ÖdˆÇRÏG¼×Ñd£郸'- ÿ Ïfm¹ÕÛðla­^-¥Ü@B7H©÷SÔ(¥Y©ñy º\CKÕU#nñúšA·(>Zcè¦ó`;]·Gˆ-ˆÜótFlåqô÷8ÝÝO¬«èÚ~ªí¤¨å8›v‹võ Ø€|2òãp#¥ #eO¿#1„‘ËÌÈad3²Bñc€L†//WrF(~4ÎF/#‘ÊHa$3<Œ$F"#ψcÄò1< 6F3Ü ÃÉp0¢v†aeX¸O3ÃÄF#ÃÀÐ*CaéaFãã ãGÆÆŒïßéÊoõ'ß°ñkÆWŒ/_0ö3>g|Æèe|Êø„±±—ñ1ã#ïÃPœø€±'‡•%þÁx?7 ø;ã½P\%ð·P\ð.㯌wBqÕÀÛ¡¸à-Æ›Œ7¸ëׯqgáÎ^e¼Âø3wö'n÷2ã%Æ‹ŒÝŒ?2^àvÏs×Ï1žåÉ?ÃxšÇ{*W<É þÀ=Á³~œ;ÛÅxŒñ(ãÆNÆÃŒ‡¸ë¹ëîúîzã~Ævè>FˆÑÍÃÛ¿ç®ïeÜÃØÊøãîP,6\qW(vð[Æ¡ØzàŽPìTàöPì4à7¡ØÀm¡X?p+W¹…«lá*7s•›¸ìF®yç~Í5¯g\Ç ®e\Š\Íͯb\ɸ‚§t9×¼Œknf\Šm6qÍK3ºB1ÍÀ¯B1-ÀÆPÌ)À†PÌl`}(f2pQ(fp!—ý’kþ‚«\àßîwV§}î¨M{Ï>5í èqhô˜í¤´Ô ¡mÐï¡{¡{ ­Ðï »¡» ßBwBw@·C¿nƒn…n¶@7[§ýºººººº ººººÌ²8m3t)´ ºêç‡É·om(Z®¤åŒŽ[®¤eŒ³팳g2–2Î`œÎ81–1&ä’Í(cŒbŒd”2F0JÅŒ¢S.ËáŒaŒh†›áb8FT1èv†aeXf†)%#kôÏ?ƒz¡O¡O }Ð^DïoлÐ_¡w ·¡· 7…7 ×¡G¡G ÐÃÐCÐMðüVééuìéU!·\á+Ù9ç2Îa¬`t2*ì‡ ?£œ1ž1Ž9–ÃÄXÍÃ6rdgðè ŒéŒiŒ©ŒzÆFc2c£–1‘QèfT12é.kŸi\eS óMƒSc3‡'«‹rFžø¤d“Ùí°©m;t}RV¼ÕŸ•”œ%ûÊ:4;’=|@ÝßeP@n6æn2ö(WÝ—à6F÷„?ÞnsŠ)Ñ8Ì·ûSìJ(/OªïÍ+…OÚ=|˜§û?¬5|X‹t–/ÝÝïwz¿;Ò¥ö¬NKßΨÔâììâÔ¨¾V‡Õ`À—z™Åi5h·¥ä&Ú쵺¬F#¾´AöÄÜ”Ô!‰6[âB<'†÷ª+Ôש˜ü"—ç²Ä—ô(³¶SNîQªý.·/¾Šñ=öq°D”ȃÏbSJJ & Á5Îïy/C¨k26e(þŒé­ª3#-C±kZJOø=¿ÃŽçKIp‰ú”“Çá‰ýdÆíñÛë5J(ÔŸ¶¼7/ëfîœÙ³gÏÝëF:oöÙ½³Ï…½O–ºz‹Êà0¿ó¿y6ˆIVŒ\¼ÙÙ#FD±ŒGñˆ’åð¯Ék’–ؘ¸â¢Ò‘ꊘ¼!CsÝ#74ñœ“‡[¹ýœ“Ý9†•ÏŸRì²¹mFkrÍœ³Æ,¹º5ÿ»Öq'•&N,ÑRæp™L.ÇÄ1Y“ΨÚQ—Y:¤|HLrF²#);>-3Å—:(7°þ”·¢3‹ÓGùKKä¿N]‹Uù°¡JhGõ1®´b‘ÚñG>eÇ}C‡ÆY{”ü?ÅeØ ƒ'%׸§¦ÈµW^]V& _…ðØx…‹öHÏÛŽWMw?tŽ8¼L#/l¬[ð›c4 §>lK)œ[œmê{Ýž2,+kXнŸÂlŽIžUœfw:û~v[:Ö·A³¸¢Äk}ƒ­N¹¸ñ峺lF£Íe=ø…˜oÖ­6gÆ ¾7ú†Æ¤àù'…÷*_b]O¢½üüÒ¥àþÌ¢Ì"»§G©òÃZ(Ø3ÒfÖÜ#ý6Qï驨#Ý#ÝqαblOx¿ß#_̱{&x ¹“ã\r•Qœpiq_ú õp„’'ýЛ7Û]VVX8wvž«w6~á?x–^é;ï¿y´þ"£@ëß,yW-0FòÆØHpxE¦•/Ë_ÚX4«vXœ]3Û-¶< 4cDNLÖ¸ú†úqYEs64 ™æÏdÖTÕd7[²Ëê†ey]Ùã§5LŸ-R§,ŸšãŒOˆšŸâ‹5%¦&9’'¥æy“3òý3Ëý§ObŽu:cÓâ=1¦Ø„XG’/&mˆ79=ßß‚(]E¤ ñT@÷s”üQ–\a,Ì9BD‹aú«íTêýÄJ¹=Ê÷¥&ØÜ=áwï‡Ñ=æ¿Å7#×é6ƒKþuã76 8ª¨üΠ¼ÝOËž¢Ù/³ÇŸ;Xäbœ#†’#üœþpˆÍÍýÌžÍ `C.vãLæ€ôȬȪwë§XÐhsX•š6£©/^ŽOq³Ã.â ΄œ´ìÂó+§Í° 9Gž0úieS'wØ î!Ù iqóvÍ  DÁòã+¶„ø®¾ÛiÈ¢ñ":â;‡–/´#[xŸß*‹l©ڰe.ÙáUæõ–y°Þ‡¥éé?’<(óGÇ ]e ÒR&ÿðJ^/Æ<ñ2!ä~™×»[.MÖ=|ŽýSH§:jv˜•Sý¯YfÎìÈhGf$.ÇìÍFÞ’ä5D?Fwp8JˆóÆXŒ®Ä˜÷*g¸csÇ3«º Êe6¨Fkbå¼þ…×.ž0¥kÙµ¢Ïê¶OOÉM²™ãó}é…Y¾Øý5s§g¦ÉOLÍJ³'fħݲ| ųÖÔ–¯Ú´õìpü"vœº;»f1c÷€y¢°ÖÛÌþ ÍÃ{”çüQS³§ú³§NÍö«ÏCÊ^"øGVpÈSK¢žtT?,N¢1dsv¸Çà'®4âÐÒ~‡–ÊÿL0©1½ûÝ^¯aRc\Êãt߯Éÿ”à7œñ­Üb {Ë\º{õPº"¡}5¯7:–Bœ‡‡ìñGEwªÿþÉŽvÿ®‡]®ôˆMOñ>—û-Ç lªªî˜|aÏÒŠå-££-&Õ岟²hÂȦ1)¾ê%Û£¢íƒÍm?{ôÌqÞ¸¼ª‚’S&ÛÍv³¦-1ã笮sùüâÔÑ'—UQ7X¬n»fшAÉ©®O.5Oš'©°2whmq²).'-%+Æì)š˜—>&/1-ËkŠÉNMLs ÊÎLÌo\9e̢飪yÄô…¸™eâßcˆ¡!Ø¿Š¼á1¦aÊÆdar “C£„Mß$mr! ƒë Ò]=Ê©Ûs4†>¤X(.ü¥? …qž‚ݹ9pîv O™×#n÷§Ï°öß6áåâCyOâf*_àÂâÞ"\?eÌç蛂\šã9"'Od'‹—Èqˆì(qœ9éSùù#r4#ÃD>ˆ«Ñçë?²FŒx™Åá5NøDºº'6ºÃž:,;sxŠ­ÏíˆsšTS”U\aHÈ«(,®Í‹épÅ÷-Qú¶Š“Åòâûú/ûL‰…9ÞÂìŒAÊS–(‹f°¹l¿®\xèÞþÿ×ÎØú¥'tBÿï¥þù„þ7Hû&ã¹'tB'tB'tB'tB'ôï–i;‘¥ÈvQTÌ ýo)ò_}àCªL)©dT¬ú¡ÿGíU?S?W÷ÿ'»YðÏ „rÛÇä/£Ÿã4òãÛNf¬J¨‰Úètê‡a~8§î$Ý*„HùÉ¢Qÿåúý@½mLt¹þÞŠÄœHZ¥Aˆ—ˆÌnøM$mDzG$m¢5â9¹š5‹ìS©‰¤%+¿‹¤r(OGÒ*e+¯FÒÒ"i#e«ÞÿC®µ³4áñ> +ÁbzñRXÙ\‘@ˆXë&·I/·aw“ÊÎÿaÐ_ ½?D´¶ñÛM‘ b#Çî¼¾y,7Ì6;ãQÏÒMˆ©Be|{à$Ô!K†V—>stream hÞì›ytTŶÆwÓ;sBCºC“!Ì„AÒ„ $ cBÂ(“"`àˆ"*΄Nƒ½8+Žè½ŽàtQÁyDH¿¯ÎîDï}®ußï­õ¿þ¾Ú§Nuª:U;.$ADáÔ@:U–ÕsÎ̺DÞU5s«„ Œ´M™H¤-¨Y¼Èµûú}¿‰ADæé fÌýé§’0"K!Q›¶3æ\<½[RI3Q~"‘mÿÌiÕµìþ”hú«h¯ïLÂw…âÞÈZ”;Μ»hiæ´#ÇP^KµzÎüšjjw9|É›(¯[½tAºÐÃq¿õ]óªçN;}tÒ|¢êãD¦'Ì_¸ýÆOõKòú‚ºi _|v„(}êJºÉ*®!3ÙÌ[̽ÐëdVýUºR#i‘fMÓLºfÚNÚ×r]BÁŸ’2—‹øÍd¡V­·ii.¢mòš¾Ï!¿M~³õ6¢ÖëéÜŸÑ4›b<èJÚH×Óô.M¥Up[h;ÝM÷‘ž¤çémúüi½Ø<—Âô}d¡¢ÀÉÀ‰Ö»A zz6r=J1&×ÙHÀøê¼ØW­×ì­-–h 1î ×^Gô{q:pRË‘å@_YÖÖÀGw|k½­uwë=çA)§ 4‘&QUãùki&ÍÂÈ\Hsh.Í3Jópm>§£4µjPKú³µæÓPG‹¨žãÏø…Á’¼v‘Q®§%ø³”.¦et -§ÁÏ%Fd9®,3ÊKÁJº3s]n8¥YE«é ÌÚZKëþmiÝ×Hëiæù*ºú_ú¿+]ƒ?×ÒuX›èº‘nº¸…n=/ºÙˆßL·aÍÝm\»‘m†“W÷Ó3ô í¢Ýô1–555.Ó1\€1XŽ'\uNyü–œ­•xvùlÁ']Šøåçܱ88޲æ*ÔäVxd++Ήkð ìÏ>—n0žÿlôÜQùwQ5·ž32·%éÎþ+#mŸŸrT¥»žÝ6ß¿íLÝíFùº“îÂ\Üc8¥¹þºïöýÔD;ñç¬?ױ™óQ3ùiíÅL>Dû¨Åˆÿ»kߌûÏD¦GèQ¬Çévš§ðGECì‰`ô ãòSô7”e-.=CÏb‡z^¤—èz¥CÆçs(½J¯Óô¶‡{>Ççi@žaµS&Oš8a|e…·¼lLéèQ#KF/*VŸ—;tˆ'gðƒèŸÝ¯oŸ¬n™]ÓÓR;º;8c£ì‘á¡!mlV‹;± ®ùî‚*—/­ÊgJsfʲ»êsU>B¿¯ãsUÕ\¿¯éAÍéçÕôpMÏ™šÂîDƒ2»ºòÝ.ßËynW‹_Z¿1Ï]éò0|‰áMiF!…”ÜáÊOœ™çò‰*W¾¯`ñÌÆüª<´×’ëÎ’Ù•šCBaCá|éîÍ"}°0Œ–ž? çP¸üZŸžš_]ë]Z‘ŸçHI©4b”k´å³äú¬F[®Y²Ï´ÞÕÜõ@ã†;M­Ê«u×VO¬ðéÕ¸©QÏol\ã‹Êðuvçù:/û$<Í×Õ—ïËp£±â1g¾@øÌ©v·«ñGBçÝ'Žÿ>RŒXRí?’´òÏ ®+OèzˆçKI‘}Yßâ¡©(øJ+¸ì¢©?y²2*}Z•¼r@]‰óÊ+ êʙ۫Ü)rªò«‚ÏLô5LuevÅèSñ×]>=­jjÍL©ÕÓÝyyOŒ§:ø¬ùÍݳP¿º 1KCi…/˽ÀëÊpÉ9˜UVaܼ͛ëC"¼Ë—•Ÿ'ûåÊo¬ÊãʶܥS¯À‘æÞ.Çž^Ô›*e?|ñ¹˜”´üÆŠÚé>g•£ësº«Â‘âóTbø*ÝÓ*å,¹í¾ÎGðu)Æ7wáÙΫ­*Ë'·¦Ú\šC¯”³…€«pÁŽé2ŠrF‡rU©jø–` é~× zjn¡¼¤Ë[s )•)üóoºäöÉœê³Ó–3}âïù—]ãÚ²C]ùÓòÎéàï5;líÏû©É±~1î°Éé,T—ôT¼¹ˆihÆÉYLtùh´«Â=Í]éÆòŒ®Ï&ÇÚ˜ßâ2wqéø c¶ƒ«¤üw%¾žÍ%¥à²*h¹Xƒ5­Fy˜Q>S,<ïr‘ºìj´¹‹Ëeãî`ƒä„‡¶¤U¯ÏŽîW³»›» Úí²» «[ S›=žÆùU3È6ÜEµî²ŠA£¯c*V8–ɝЦbQ\>4³+öž¡Ín±¶´Ù#Ö–¯xØŽ¬vmy…_ZnÕÐÊæŽ¸Vñ0ò^ÕdTeÁ% ²¥1(ØŒúއ=D ÆU“0Ê5-‚Œ˜MÅÕ´h³«˜†˜‰c#&0I‰31ÄØnó]µrz–WÎl¬ª”/Åc*ñWø„{0ù4÷àf¡YÂ|!îiC}¡î¡2ž#ã9·È¸ CÄ ŽÜ“«Üا° *È!x)ê²IWK P^‘ò²ãDe –ÚD0¾Â×&{¿9u8ê “T!<Ì×PS-ûAÞ y¯5µ¨¦ËV5ˆ*E¾6h¡M°Ô(0î‘Ë7Õ`n0Æý (ø*}•òK+fUËÙî£B÷L;·iN“_”UÙíîi¼›xBR×Hiƒ¾QYG(âË*y¬aèy—jª\mÕ”a©ó^âàÈ4l‰¦´i!ŽàE’¥§††‡øÚtCƒø+}h7ùJšS­••Üy£´&Xßm÷…¢Giç eðŒ.ɾàïtUV}R6SÚBcÜK±³ÈN-YqÙžZTÍŸïEÄ­n¶É="4ØÆAŽZ哇aÜõÔò–À=î‹SÎùÉìê–‡ƒ\˜äx ›*Ïø&ddvµ 7¶ð?¿ÇË~FeЕSñ;6ÿ2òTÖ m’‘sLÕ¦ˆ³%ñ ";ÈýW±8/ILãi§)ªÿ”ã¸vœ6›äèÇh'ÈjA0\ŒïÔ æ0šp>¦Sh˜ñ[²f¢š)0šíz€Ñ`¸ñdÐÉtêm$«¶1pŸ)÷}’ÁeúÔ _@íL“i§åm´ÝåO°‚Tóß2б|M5¦ø.`ž _Ï”IÅó Ï”?£Ès1w ûÿ*¦Fê`M¦ ÎÇÔ‰º£­ä?ð ÒÖÐÈþW1O |$1™h‡þ"Íý3LÓh˜mZB=%zê6 /¬® ]Ag04ß¡Æ}—Óœ?°ñ¥´Á´•<â8íÇÐ$h!è¼` ¸ñ(hrÐm0‘68°AmíˆÁí³ ÿ};L;,´í¶€¥†Ÿî§éÿ-0hgºþ4¾ ˜šáOÀ3ù†Ž¢"&ð#øéL¹’Úé•VV¬Ç´ ÜÔÍ >èÿ€~šR,ƒ©ßùè/Q_}æì|fQ^›¡‡iây$ÿIÌÀ’ŘzÓ¼?ヌãTÙ:ŸÆ[Þ‚AÝ*Ó0ô¦jý7šôWÐ.¢TËÍ”j;L©¦&ø[‚~ÐyŒ:`ܲø<ÖG0þ»úmð¹ç´½êì5Ó ÆC©ÖtJÕRŸó1žõl1õ<`Ê ü*Þ¢+Ä[yÐHèxàu Ì@< lÑЦdZ+¾R£ßxYtÑÚZ,~£vÚiÚb©•ßõ;Fz{`«¡Ù˜ß3ê±AŒå%cîT;UÚ ´… ü §§P)ƒu›8­Êæ] ÚÚ"¾Eý]”¢R÷Sšé3J1Õÿ50Ö)Öb¬ïü5ÐÏMઠ^ JÀº ßt.úVê`n¡>ç£/Áž´:üÎTÄjh6ÕéÕT«/ÅZÝIyÚ§4Gih¡ÖBÃÄ“ÔQÛŒ9úœæˆªsGyŽ˜Œýl,ê~fo܇{ÄOÐî4T|Lnyv9õ¯©«¶gÜ•äÔúÑP­ûY=Ø$OíÓ6¢SÇ´±Œ¡¤OFìÔ60ã¼ØV0KP¾Üî5âÓ@•ÞíýˆX˜aÄ·ƒ•z'”‹Àì3m¬ÐÃPŽQFl'¸O»÷ß¶±ÏÁGr í)ð ê> Ž"ç0²Sc@qyÈ[àƒg)‘àÙVC—i—ºXüL«µ*_ ¬“9ˆ^†óu5 à¢õYy¦q¾Ðz›<›9_hů 1FpuTç=ƸŒÏð@¼qÎm½ ¹ ŸÃ8/[çIµÄà;qžZˆ®1¦ÉæÑ­¿ò™¨—g¡ö›qƸù,k}Mî­|nµ¾iÚKÓùÜj} gT¹q¥(uîèkh2Ÿ%òã ™@ÅÆy`ìÛ­·K5c¤ä¾n® 5ò|15fàì¯6ðà=í‰õxξî¨wÖ(ОÃ0×$C°-%‹Ö“6i=ÇÁ2iì+{ñ|Ó¡›±Ö5*Ñu¼;jO˜Cé¦hZŒû+1ÿõ$ÒM^º&È oîK^ó@òâ¹£Í÷Ñ&óuT+ÑÖs‚±’sÝW3Óæ3tĺÐ<‰1Ÿ%ô€1Ÿ ‚,Æu"ýœÜ±Ú2ßñ›e~$˜Ž–¹Þ™|ëcÒ-'ÁÛœ7Zõ³yœéWžg™§ªÜ ÏÉ´`_ØÄsmn‡:?‚:Zdùm$ÃI‘–D¨L¥I¦jšjµÁ_„ü.€û¿Cm¬¯èv#OŠ Ò óÝ@çäC]ÍKq7Ð8Ó:\[G7‚‚9ŽWæ/xÖÌ­0ÖËÒ`Nr˜\+2ïRyÄV¬Ù­È¹³ð!¼^LWážY¨w’æZÜÈwòQžB æUˆŸÐ…ú7È_zÂp¾O!§©à Ä.Œ8ÎS.ÆE®­ÃØ×Çš(Bž— ωsÏp´?9A±© k¯ 9UÎ4>ë书?„{)Žâ-ŘgÑÓ0œcéÁ³ªèrö<3r yÎ$Qˆ<ë‚{s¢þ:u0µ"޽kq‹©—q†5¿I[Ì­(§s9bOõXÛÑ·gà_¤lSYàWy6c¾õyx¶ X«wI´[Dˆv =!Ѥ+Àdƒ°¶«èhÖki΂)XÇ]äšÊõm¾’nDlƒŒ+Å­Jƒ± í!Z(5%!çKÂûT=„ö!΄ݢQ?%v¡Šr¦¶gÐO!ŸÖÁtù ö«~Šž<óÎÍ¥+À2mži×VÓXP¯y°¯zN>0ã_ÕC[·%`)XlòÑ…¦ œ¢ÙàqÖë}h½g’g“õg€sÃ:ˆÕòí–à÷Ïó”cÞI%x^½9¦=XGSx"ŒÜ©þa0å2è\ŒE|oý{œÕÛðþ>Žß·¡Þ6äi)Tdë…½âö÷±Æ£¨½iMÑ^ľ|œ¦‚R¬úÛо´R÷#gë‹ý /Öv‚] Ì.0 \jÀƒ\ŒÍFJÒ/Ã>¸ûáNJÓg¢û0E”…µQ¬ï§1èÏh°LSÁ0Ãèó6¬ŸmX¯¨ó‡þ¥ÿåþuÿ³þáý(¿ ‡ðQ±ö ÑÞ¥Tín¬‘iÎåžÚQÄ?Džò•BKµWiœØOU â?¹WÛJÙâGê¡¡AZÖåpŠÕ pO)uײ©ƒ6m• í¿Z¯9P¬ÇPžy ÀYjNj7Pž§‘3h˜y¸¼LÌ+(>g»Ìç m#©±‰Öç1_§p®Ÿ¢  d€ÉA_ ða®øºŒ•ëÙü9u5™©å š…¹¯ÖN ÿ;E6™oÈ<@ž™–iØ‹Ëi‚)ž†ã»Üž7ˆ ÝÖ1@iÈHºÙ’ßݦSº¿îjÑVïm“(†Ã¬Rære.S¦A™K•Y©Ì e–+s‰2Ë”¹X™¥Ê,Qf±2õÊ,Rf¡2)³@™ùÊÌSf®2s”¹P™ÙÊÌRf¦23”™®Ì4ej•©Qfª2ÕÊT)3E™ÉÊLRf¢2”¯L¥2ÊŒSf¬2^eÊ•)SfŒ2¥ÊŒVf”2#•)Qf„2ÅÊ W¦H™Be†)S L¾2yÊä*3T™!Êx”ÉQf°2(3H™Ê P¦¿2ÙÊôS¦¯2}”é­L/ez*ÓC™îÊd)ÓM™Leº*“¡Le:+“®L'eÒ”IU¦£2ne:(“¢ŒK§2ÉÊ´W¦2eÚ*“¤L¢2 ÊÄ+§L¬21ÊD+¥Œ]™He"” W&L™PeB”i£ŒM«2eÌʘ”ѕєÊPЈ€2­ÊœVæ”2¿)sR™_•ùE™Ÿ•ùI™•ùA™ï•ùN™o•ùF™¯•ùJ™ÊWæKe¾PæseŽ)óOe>SæSe>Qæce>Ræ¨2G”ùP™”y_™÷”yW™w”ù‡2WæmeÞRæ°2o*ó†2¯+óš2¯*óŠ2‡”yY™—”yQ™”y^™ç”yV™g”yZ™ƒÊüM™§”yR™Ê<¡ÌãÊ<¦Ì~eUæeV¦E™}Ê<¤ÌƒÊìUf2~eš•ñ)³[™]Ê< ÌNeš”¹_™û”¹W™{”¹[™»”¹S™;”¹]™ÊlWf›2·)³U™[•¹E™›•Ù¢ÌMÊlVæFenPf“2×+s2×*s2W+s•2•Ù Ìze•Y§ÌZeÖ(s¥2W(£Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡ÒQ§ŒÊ„ʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄJ{„J{„J{„Êv„Êv„Êv„Êv„Êv„Êv„Êv„Êv„ÊvDîi5û“;‘3û“ã —sé2òH—.eYéOƒ¬àÒr–KX–±\ìo?²Ôß>²„e1K=_[Ä¥…,u¼Èß~(dË|–y\e.Ë– ýíò!³Yf±Ìd™Á2Ýß.2Kµ,5,SYªYªX¦°Læû&qi"Ë–ñ,•,,ãXƲxYÊYÊXư”²ŒfÅ2’¥„eK1Ëp¿£RÄRèw ‡ c)ð;Š!ù~ÇHK.ËP¾6„ïó°äð}ƒY.`Ä5² àÛû³d³ôcéËÒ‡ëÍÒ‹[éÉÒƒ¥;7–ÅÒïËdéÊ’ÁÒ…¥3K:K'n:%•ÛìÈâféÀM§°¸ø>'K2K{–v,–¶þ¶#!I,‰þ¶£ ,ñŒc‰å` K4K_³³Dr0‚%œ%Œ¯…²„°´ák6+‹ÅŸ4bö'•BL,:5. 2DXZ*â4—N±üÆr’¯ýÊ¥_X~fù‰åGb9äbä{.}Çò-Ë7|ík.}År‚å8_û’å ~ÎrŒåŸ,Ÿq•O¹ô —>æÒG,GYŽðµY>ààû,ï±¼ËòWù—þÎò¶?aä-ÂXÈa–79øËë,¯±¼ÊU^a9ÄÁ—Y^by‘å®ò<Ës|–å–§Y²ük>Å¥'Y°<Á×gyŒƒûYey„åa–®¹K±<Ȳ—e?>â÷ÇO€4³øXv³ìby€e'KËýþxì×â>nå^–{øÚÝ,w±ÜÉrËí,;X¶³lãÆnãV¶²ÜÊ×na¹™e ËM|Ãf.ÝÈrË&¾v=·r˵|í–«Y®bÙȲk®çR#Ë:–µ,kX®ôÇUC®ðÇM…¬fY囹œå2œÒàÃf,.õÇõ…¬dYÁ·/çû.aYæ«…\Ì·/eY²˜¥žeËBnºŽo¿ˆe?®2Ÿ›Ç5ç²Ìa¹e6Ë,¾o&Ë îÙt¾}K-׬a™ÊRÍRÅ2…e2?ô$îÙD– üÐã¹éJþ¢ –qÜݱüE^n¥œ¥Œe K©?Öí•ß0Ê+—÷Hì*H‰?62‚«³ ÷Ç"/E\*dÆÁìJH¾?v $Ï{)$×Ûê.€ añ°ä° öGã|pi?ª2e€?J.þ,Ùþ¨a~þ¨ H_ÔxH¾Ö›¥—?ª+¤'×ìá’ÖÝ%ßÍ,–n|{&CW– n¬ Kgn,¥KKª?JŽRG7·ÙÛLáÆ\ÜŠ“%™ïkÏÒŽÅÁÒ–%ÉoŸIôÛ'Cüö)x–8–X––h¾!Šo°s0’%‚%œ%Œk†rͶa±±XY,\ÓÌ5MÔY4ÁBž@äT§¤5²Æy:²Öy þ7püŠØ/ˆý ~?‚ÿ|‡kߢü ø|N ~|‰k_ ü98þ >‹˜áü4b¦óð1øEìôCðxå÷ ï‚wÀ?ÀßÃ/t¾ÞÃùôpøç›áiÎ7Àëð¯…g8_¯€C¸þ2b/…Ïu¾ÿüóðÏ…Ïv>>ËùLøLçÓá3œqïßÐÞSàIà ÀçàqðXØEÎýauÎGÃ: [ä|´€}ˆ?ĵ½¸¶1?h>°;ôbç®ÐeÎB—;w†®p6…®tÞî÷‚{ÀÝà®ÐLçÐ;Àí¸gt{è…Îmð·Áo·Âß‚¶nF[[ÐÖMˆm7‚À&p=¸÷]‹ö® é¼:d”óªÎ!w97„Üã¼BOu®Ö³«D¶óroƒ÷²¦ï¥ÞÞ•M+¼¡+Dè ÇŠâ—¬hZñî O‰%d¹w™÷’¦eÞ‹½K¼K›–x7Õ{Mõ±õ‹êõêES½È«Ýë…FõözW½¶È[ç]ØT祺Ñu u¾:Ó@_Ý‘:êDHKàÀž:GrÔ³¼.Ü^p‘w¾wAÓ|ï¼és½³Ñ­YÙ3¼3›fx§g×z§5Õzk²§z«³«¼S²'y'7MòNÌïÐ4Þ[™]á‡úc³Ë½Þ¦roYv©wLS©wTöHïHÄK²‹½#šŠ½Ã³ ½EM…ÞaÙÞ|<2µ³·sµÓí²#Û¡'äC»;<Ž#Žo&røztd[g[­sd’È•$æ']štu’™øJ¢æIìܵ 2á•„¾N0Åx:w+ x{¼+^“Ï_R^`hNk>Ƴ–Ä»Ó "ãDdœ3NËwÆ Š:õM”÷„ý»)"#‘š'Õ##œšüD螈ý "Ãášü„ëñžpDd‹ÂF—D†:C5oNè¨PÍš“[à Íì^@ºp AÂÑm¨»WÄ9 ôýBþãY3 qMsyYFFq‹Æûl£'øÄZ_j™üô”Ž÷YÖúÈ;~BE³WU6 -·Ü+ÿA½Q¾bãFj?´Ø×¾¬Â¯oßÞ~he±¯AzÇðé U*3&/¬_˜‘±h2>&/\”aüEIÔËR† Ê¿ ¡,ÿÔeÊø·?\ 2e!~c‹2þOÿˆÿÛÝÿßðÓLòÿÐVS­¶ \. àR°¬ËÁ%`¸,KÀbP…à"°ÌóÀ\0\fƒY`&˜¦ƒi Ô€© ÚøGµÚ0LÁ0T‚ 0Œ^PÊÀP FƒQ`$(#@1Š@! @>ȹ`(<  €A` úƒlÐô}@oÐ ô=@wºLÐd€. 3H@Ht)Àœ ´í€´I $€xbA ˆQÀ"Aa „€6À¬ÀÌÀ4$€Oh@¢Z˜h§Á)ð8 ~¿€ŸÁOàGðø|¾߀¯ÁWà8¾_€ÏÁ1ðOðø|>£àø|ÞïwÁ;ààïàmð8 Þo€×ÁkàUð 8^/Á àyðx<žÁßÀSàIp<ýàQðx´€}à!ð Ø ö?h>°ì€  Üî÷‚{ÀÝà.p'¸Üv€í`¸ l·‚[ÀÍ` ¸ l7‚À&p=¸\ ®Wƒ«ÀF°¬`X Ö€+ÁT;¤AàýxÿÞ÷_àýxÿÞ÷_àýxÿÞ÷_àýxÿÞ÷_àýxÿEÀ °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€Àû/ðþ ¼ÿï¾À»/ðî ¼ûï¾À»/ðî ¼ûï¾À»ÿÿ'ÁôSùÿCðý$N™,3Lj]¨¿nŽ ¬ÔŸJh$MØOáXÓñ4@<ø`\^ž-Óú8Ö«F.¬xRÒ\O¤I ß×¶mŽ{_ËF=ª¿¸ïͱnÄ^žsúƒÓ‡²Np"ºÖ ‘õþÑŽÚ¿=Õ?«×Ñ7öè.¢R¢ b#4«5ÖâîÐMëÓ)­o¯^=k}z§¹;DhF¬wß~ƒõ^=“5=VEk²,ô×O×G¶h+Ý9c{™“ÛFƆ[ÌZ»ÄèÌA©ö² ©ƒºµ·êV‹n¶YÓû íP<'¿Ã;Ö¨öqñí£m¶èöñqí£¬§ß5GœüÎñ[®iÎo›tËÀ‰9õ›BlšÉbiINLê20¥hldŒÝcŠ·Y££ÂÒó&ž¾2®l£]\·uºiúÎÀIQaŽ¥8½/'aTÂîZÇöØE ô›=‘A 7ô§=a†Û }‡gHàÀ¾8QbcöRNŽÈÊ8jLPî“RÕÃGŸ>NTØbS’;ÄÚÚÄ¥$$¥ÄÚÚÚ¬f³5ÌfzG9’ÿ§ià„é˜9…b¨-÷´MDwbíèKl,:^Ä&¢ ±-Z/Ou§¬ä`Ç“ƒ‡—‡~%;žìxò£È>B(ItöG–¹[DF³y,åœÈÁ”sçßœ¤Bœ7ÖÞÝ49Íq±ÉšœuÓ±á×°éºÃëó†oú`ÓÕon̰ӄ›,¸iJç´ñ›ë.ºyrºvãÖSÍSÆÝýÓö-'wO{×÷÷Í{lýÈò Ψ;°¾¤üêý˜…-“úvýêI›<‘Ñvô1F~äô]bäÃà¡b‚œ˜àlÄ*¦Eüâq$‡ÚQ7Ô.?P;4UBåP…âú>òÈùK¶·‹'$sx—¤ŽEI#Ì#0q9Ñýåó«é³³ôÇ4â¥sfR>¾Åõ‡©ëÛ×P}»-Ú•˜äж%v+ê>xyŠI‰®«%º]B|{»uÄæ’ñ—ŒHI²…ÚL&|h‘%“ó:VxO¯W}µ-´®· µ-ñŽº`úº*¹"¶´nÒc„ºÐÔð ZJßàH„GB–÷FÚňà„È!IˆËp¡R†\3‰òr†ŽŒ-ÄÓ†âBúöI1™»·óCiÃEöQýa›Í%r=ä䜈Nè/²Þ²û¸üîñ!&K¨54#glv—¼žŽNžÑÞRO§Îc.Ó±p@ç8«®ëÖK›}‹²ºx:Ç¥{ÆxËÉ­‹wtcûþ˜*Ëœ&ë³zRo„ÔŽ¥Ï¦þDâÅ œ–™}`°aÐôÖ̆ŽL:Q>#S—ÞÎ:±“…ݽŸ~ó¹ÞžÅ~n5íèÄÞ³'¦Ô­õ4öì÷}“¥ž¯&ÔjÝRÿùð{Œ;« õf„"¬}hÿ;Ä;_Ä÷o}aõ¼!B„"Dˆ!ÂÚ©âc%í¤ ¦n¡„Ú$¡5x–ðÑ·iH™NHvR9«\^‹“}çGŒÆpmÁ©AŽÐ>rèùPµV{ÕR»W{ª$•.%£|¤— íoûLÑ¥†ŸÕ¨£ÓŸÐê-ö)_‡\£”r2ä1ðó!O€_ ¹NÇ”«"ºc†hS ¹B›Õs!W)¥þr ö_C¿òø³c;ølÜömoÞ¶òc{††‡ÊÛKf…Oy|%-ŒûÌæÁœí1“yö,÷Û³-x¦e6½CÌ%KÔ™åÇøÃÐ ›px€úû3°}f:V ¸²ƒi·ê·ýüª„Ííï0P¦í/Ѹ •*,⦯äùoËþ·A>8c&ý€qP‘= (¤;•ïOäÇÁâÛ/7ÝèŸlÞùu-¾¹öèÛ[Bþ2üÀxúÉs߸¢Ÿ‡jÔŸÐ 0³KÔÕ endstream endobj 1 0 obj <>stream hÞ2S0P0W0´P°±Ñ÷+Í-Žq ‚bíì€"Áú.vv…7 endstream endobj 2 0 obj <>stream application/pdf wehart Microsoft PowerPoint - workflow-figures.pptx 2010-08-01T21:43:03-06:00 PScript5.dll Version 5.2.2 2010-08-01T21:43:03-06:00 Acrobat Distiller 9.2.0 (Windows) uuid:c17a5113-8544-4cde-9700-3fc97e0dd017 uuid:4e795a9c-3e34-451a-8fcf-05825665e8ca endstream endobj 3 0 obj <>stream hÞ²P0P°±ÑwÎ/Í+Q0Ô÷ÎL)Ž64 Åê‡T¤ê$¦§ÛÙßú ­ endstream endobj 4 0 obj <>stream hÞ|Ì=oÂ@ €á¿â»!‰>!¡fEŠDÕ.,!qÀê)Ž|Ž®?¿˜»¿Ï{„Ó©¸Ìöu‰^­š/>”ZcëÖÈÕÇ KÄ=–U¹Yã:ÃÝ qõ®ÕÜ:åɶy|‘ÆEÂ6¯òÊWéÿŸ4*ýÜ‘ºK§òh jŽÆ!ÂaY ÜÝ7½¤x÷¾ød 䮼´QƒFi#<dD† )ø9+Å|šìןÏ O%G endstream endobj 5 0 obj <>/Filter/FlateDecode/ID[<3B11EF8F4823E941ADA746908EC14DFD>]/Info 9 0 R/Length 48/Root 11 0 R/Size 10/Type/XRef/W[1 2 1]>>stream hÞbb&Æê>&Æ6 Á—bõ‚a DÉc ‹H0ýŒ " endstream endobj startxref 116 %%EOF pyutilib-6.0.0/doc/workflow/lstanchors.pl000077500000000000000000000044311367314503500205260ustar00rootroot00000000000000#!/usr/bin/env perl $re = '^(.*?)(\\listing|\\autobreaklisting|\\scriptsizelisting|\\tinylisting)\{([^\}]*)\}\{([^\}]*)\}(\{[^\}]*\}\{[^\}]*\})?(.*)'; unless ( @ARGV ) { die "Usage: $0 target.tex ...\n"; } foreach $f ( @ARGV ) { unless ( -f $f and -r $f and -w $f ) { print "File '$f' does not appear to be a valid target. Skipping.\n"; next; } print "Updating $f\n"; &update_file($f); } exit 0; sub update_file($) { my($fname) = @_; open FILE, "<$fname" or die "Error opening TeX file $fname\n"; my(@lines) = (); foreach $line ( ) { unless ( $line =~ /$re/so ) { push @lines, $line; } else { print "Updating reference: $line"; my($front) = $1; my($cmd) = $2; my($file) = $3; my($anchor)= $4; my($firstlast) = $5; my($end) = $6; my($firstline) = -1; my($lastline) = -1; open REF, "<$file" or die("Error opening referenced file $file ". "while processing $fname\n"); my($lineno) = 0; # scan file for the anchor tags (start = '@anchor:', end = '@:anchor') while ( $_ = ) { ++$lineno; if ( /\@${anchor}:/ ) { if ( $firstline != -1 ) { die("Error: multiple starting tags found for anchor $anchor ". " in file $file while processing $fname"); } $firstline = $lineno+1; } if ( /\@:${anchor}$/ ) { if ( $lastline != -1 ) { die("Error: multiple ending tags found for anchor $anchor ". " in file $file while processing $fname"); } $lastline = $lineno-1; } } close REF; if ( $firstline == -1 ) { $firstline = 1; } if ( $lastline == -1 ) { $lastline = $lineno-1; } # form the modified line chomp($end); if ($anchor eq '') { my($tmp) = $lineno - 1; push @lines, "${front}${cmd}{$file}{$anchor}{1}{$lineno}$end\n"; } else { push @lines, "${front}${cmd}{$file}{$anchor}{$firstline}{$lastline}$end\n"; } } } close FILE; open FILE, ">$fname" or die "Error overwriting file $fname\n"; print FILE join '', @lines; close FILE; } pyutilib-6.0.0/doc/workflow/macros.tex000066400000000000000000000005601367314503500200130ustar00rootroot00000000000000\newcommand{\HLine}{$\mbox{ }$\hrulefill$\mbox{ }$} \newtheorem{Rem}{Remark} \def\Argmax{\mathop{\rm argmax}} \def\Argmin{\mathop{\rm argmin}} \def\Abs{\mathop{\rm abs}} \newcommand{\Gets}{:=} \newcommand\eg{e.g.\ } \newcommand\ie{i.e.\ } \newcommand{\code}[1]{\textmd{\texttt{#1}}} \def\pw{PW} \def\pwsp{PW\ } \newcommand{\todo}[1]{\textbf{\textit{TODO: #1}}} pyutilib-6.0.0/doc/workflow/snllineblk.eps000077500000000000000000001542121367314503500206620ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(TM) 6.0 %%AI8_CreatorVersion: 8.0.1 %%For: (Shannon Whitehead) (Sandia National Laboratories) %%Title: (snllineblk.eps) %%CreationDate: (5/5/00) (11:19 AM) %%BoundingBox: 178 243 419 281 %%HiResBoundingBox: 178.4834 243.4766 418.7407 280.0811 %%DocumentProcessColors: Black %%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 %%+ procset Adobe_ColorImage_AI6 1.1 0 %%+ procset Adobe_Illustrator_AI5 1.0 0 %AI5_FileFormat 2.0 %AI3_ColorUsage: Black&White %%CMYKCustomColor: 0 0.23 0.38 0 (PANTONE 473 CV) %%+ 1 0.51 0 0.305 (PANTONE 541 CV) %%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) %%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 %%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 30 31 582 761 %AI3_DocumentPreview: Macintosh_ColorPic %AI5_ArtSize: 612 792 %AI5_RulerUnits: 2 %AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI5_OpenToView: -270 804 1 1146 827 18 0 1 3 40 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:30 31 %%AI3_PaperRect:-30 761 582 -31 %%AI3_Margin:30 -31 -30 31 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_level2_AI5 1.2 0 %%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) %%Version: 1.2 0 %%CreationDate: (04/10/93) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_level2_AI5 26 dict dup begin put /packedarray where not { userdict begin /packedarray { array astore readonly } bind def /setpacking /pop load def /currentpacking false def end 0 } if pop userdict /defaultpacking currentpacking put true setpacking /initialize { Adobe_level2_AI5 begin } bind def /terminate { currentdict Adobe_level2_AI5 eq { end } if } bind def mark /setcustomcolor where not { /findcmykcustomcolor { (AI8_CMYK_CustomColor) 6 packedarray } bind def /findrgbcustomcolor { (AI8_RGB_CustomColor) 5 packedarray } bind def /setcustomcolor { exch aload pop dup (AI8_CMYK_CustomColor) eq { pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } { dup (AI8_RGB_CustomColor) eq { pop pop 3 { 1 exch sub 3 index mul 1 exch sub 3 1 roll } repeat 4 -1 roll pop setrgbcolor } { pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } ifelse } ifelse } def } if /setAIseparationgray { false setoverprint 0 setgray /setseparationgray where{ pop setseparationgray }{ /setcolorspace where{ pop [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace 1 exch sub setcolor }{ setgray }ifelse }ifelse } def /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put userdict /level2? systemdict /languagelevel known dup { pop systemdict /languagelevel get 2 ge } if put /level2ScreenFreq { begin 60 HalftoneType 1 eq { pop Frequency } if HalftoneType 2 eq { pop GrayFrequency } if HalftoneType 5 eq { pop Default level2ScreenFreq } if end } bind def userdict /currentScreenFreq level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put level2? not { /setcmykcolor where not { /setcmykcolor { exch .11 mul add exch .59 mul add exch .3 mul add 1 exch sub setgray } def } if /currentcmykcolor where not { /currentcmykcolor { 0 0 0 1 currentgray sub } def } if /setoverprint where not { /setoverprint /pop load def } if /selectfont where not { /selectfont { exch findfont exch dup type /arraytype eq { makefont } { scalefont } ifelse setfont } bind def } if /cshow where not { /cshow { [ 0 0 5 -1 roll aload pop ] cvx bind forall } bind def } if } if cleartomark /anyColor? { add add add 0 ne } bind def /testColor { gsave setcmykcolor currentcmykcolor grestore } bind def /testCMYKColorThrough { testColor anyColor? } bind def userdict /composite? 1 0 0 0 testCMYKColorThrough 0 1 0 0 testCMYKColorThrough 0 0 1 0 testCMYKColorThrough 0 0 0 1 testCMYKColorThrough and and and put composite? not { userdict begin gsave /cyan? 1 0 0 0 testCMYKColorThrough def /magenta? 0 1 0 0 testCMYKColorThrough def /yellow? 0 0 1 0 testCMYKColorThrough def /black? 0 0 0 1 testCMYKColorThrough def grestore /isCMYKSep? cyan? magenta? yellow? black? or or or def /customColor? isCMYKSep? not def end } if end defaultpacking setpacking %%EndResource %%BeginProcSet: Adobe_ColorImage_AI6 1.2 0 userdict /Adobe_ColorImage_AI6 known not { userdict /Adobe_ColorImage_AI6 50 dict put } if userdict /Adobe_ColorImage_AI6 get begin /initialize { Adobe_ColorImage_AI6 begin Adobe_ColorImage_AI6 { dup type /arraytype eq { dup xcheck { bind } if } if pop pop } forall } def /terminate { end } def currentdict /Adobe_ColorImage_AI6_Vars known not { /Adobe_ColorImage_AI6_Vars 40 dict def } if Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /_newproc null def /_proc1 null def /_proc2 null def /channelcount 0 def /sourcecount 0 def /sourcearray 4 array def /_ptispace null def /_ptiname null def /_pti0 0 def /_pti1 0 def /_ptiproc null def /_ptiscale 0 def /_pticomps 0 def /_ptibuf 0 string def /_gtigray 0 def /_cticmyk null def /_rtirgb null def /XIEnable true def /XIType 0 def /XIEncoding 0 def /XICompression 0 def /XIChannelCount 0 def /XIBitsPerPixel 0 def /XIImageHeight 0 def /XIImageWidth 0 def /XIImageMatrix null def /XIRowBytes 0 def /XIFile null def /XIBuffer1 null def /XIBuffer2 null def /XIDataProc null def /XIVersion 6 def /XIColorSpace /DeviceGray def /XIColorValues 0 def end currentdict /_colorimage known not { /colorimage where { /colorimage get /_colorimage exch def }{ /_colorimage null def } ifelse } if /_image systemdict /image get def /_currenttransfer systemdict /currenttransfer get def /FourEqual { 4 index ne { pop pop pop false }{ 4 index ne { pop pop false }{ 4 index ne { pop false }{ 4 index eq } ifelse } ifelse } ifelse } def /TestPlateIndex { Adobe_ColorImage_AI6_Vars begin /plateindex -1 def /setcmykcolor where { pop gsave 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub grestore 1 0 0 0 FourEqual { /plateindex 0 def }{ 0 1 0 0 FourEqual { /plateindex 1 def }{ 0 0 1 0 FourEqual { /plateindex 2 def }{ 0 0 0 1 FourEqual { /plateindex 3 def }{ 0 0 0 0 FourEqual { /plateindex 5 def } if } ifelse } ifelse } ifelse } ifelse pop pop pop pop } if plateindex end } def /concatprocs { /packedarray where { pop dup type /packedarraytype eq 2 index type /packedarraytype eq or }{ false } ifelse { /_proc2 exch cvlit def /_proc1 exch cvlit def _proc1 aload pop _proc2 aload pop _proc1 length _proc2 length add packedarray cvx }{ /_proc2 exch cvlit def /_proc1 exch cvlit def /_newproc _proc1 length _proc2 length add array def _newproc 0 _proc1 putinterval _newproc _proc1 length _proc2 putinterval _newproc cvx } ifelse } def /clrspaceissepn { type /arraytype eq } def /clrspacegetname { dup clrspaceissepn {dup length 2 sub get}{pop ()} ifelse } def /clrspacegetalt { aload pop pop pop colormake } def /clrspacegetcomps { dup /DeviceGray eq { pop 1 }{ dup /DeviceRGB eq { pop 3 }{ /DeviceCMYK eq { 4 }{ 1 } ifelse } ifelse } ifelse } def /clrspacemarksplate { dup /DeviceGray eq { pop plateindex 3 eq }{ dup /DeviceRGB eq { pop plateindex 5 ne }{ dup /DeviceCMYK eq { pop plateindex 5 ne }{ /findcmykcustomcolor where { pop dup length 2 sub get 0.1 0.1 0.1 0.1 5 -1 roll findcmykcustomcolor 1 setcustomcolor systemdict /currentgray get exec 1 ne }{ pop plateindex 5 ne } ifelse } ifelse } ifelse } ifelse } def /colormake { dup clrspacegetcomps exch 1 index 2 add 1 roll dup 1 eq {pop}{array astore} ifelse exch } def /colorexpand { dup clrspacegetname exch dup clrspaceissepn { clrspacegetalt exch 4 1 roll }{ 1 3 1 roll } ifelse } def /colortint { dup /DeviceGray eq { 3 1 roll 1 exch sub mul 1 exch sub exch }{ dup /DeviceRGB eq { 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch }{ dup /DeviceCMYK eq { 3 1 roll {1 index mul exch} forall pop 4 array astore exch }{ 3 1 roll mul exch } ifelse } ifelse } ifelse } def /colortocmyk { dup /DeviceGray eq { pop 1 exch sub 0 0 0 4 -1 roll 4 array astore }{ dup /DeviceRGB eq { pop aload pop _rgbtocmyk 4 array astore }{ dup /DeviceCMYK eq { pop }{ clrspacegetalt colortint colortocmyk } ifelse } ifelse } ifelse } def /makeimagedict { 7 dict begin /ImageType 1 def /Decode exch def /DataSource exch def /ImageMatrix exch def /BitsPerComponent exch def /Height exch def /Width exch def currentdict end } def /stringinvert { 0 1 2 index length 1 sub { dup 2 index exch get 255 exch sub 2 index 3 1 roll put } for } def /stringknockout { 0 1 2 index length 1 sub { 255 2 index 3 1 roll put } for } def /stringapply { 0 1 4 index length 1 sub { dup 4 index exch get 3 index 3 1 roll 3 index exec } for pop exch pop } def /WalkRGBString { 0 3 index dup length 1 sub 0 3 3 -1 roll { 3 getinterval {} forall 5 index exec 3 index } for 5 {pop} repeat } def /WalkCMYKString { 0 3 index dup length 1 sub 0 4 3 -1 roll { 4 getinterval {} forall 6 index exec 3 index } for 5 { pop } repeat } def /StuffRGBIntoGrayString { .11 mul exch .59 mul add exch .3 mul add cvi 3 copy put pop 1 add } def /StuffCMYKIntoGrayString { exch .11 mul add exch .59 mul add exch .3 mul add dup 255 gt { pop 255 } if 255 exch sub cvi 3 copy put pop 1 add } def /RGBToGrayImageProc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec dup length 3 idiv string dup 3 1 roll /StuffRGBIntoGrayString load exch WalkRGBString end } def /CMYKToGrayImageProc { Adobe_ColorImage_AI6_Vars begin sourcearray 0 get exec dup length 4 idiv string dup 3 1 roll /StuffCMYKIntoGrayString load exch WalkCMYKString end } def /SeparateCMYKImageProc { Adobe_ColorImage_AI6_Vars begin sourcecount 0 ne { sourcearray plateindex get exec }{ sourcearray 0 get exec dup length 4 idiv string 0 2 index plateindex 4 2 index length 1 sub { get 255 exch sub 3 copy put pop 1 add 2 index } for pop pop exch pop } ifelse end } def /ColorImageCompositeEmulator { pop true eq { Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat }{ Adobe_ColorImage_AI6_Vars /channelcount get 1 ne { Adobe_ColorImage_AI6_Vars begin sourcearray 0 3 -1 roll put channelcount 3 eq {/RGBToGrayImageProc}{/CMYKToGrayImageProc} ifelse load end } if image } ifelse } def /colorimage { Adobe_ColorImage_AI6_Vars begin /channelcount 1 index def /sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def 4 sourcecount add index end dup 8 eq exch 1 eq or not { /_colorimage load null ne { _colorimage }{ Adobe_ColorImage_AI6_Vars /sourcecount get 7 add { pop } repeat } ifelse }{ dup 3 eq TestPlateIndex dup -1 eq exch 5 eq or or { /_colorimage load null eq { ColorImageCompositeEmulator }{ dup 1 eq { pop pop image }{ Adobe_ColorImage_AI6_Vars /plateindex get 5 eq { gsave 0 _currenttransfer exec 1 _currenttransfer exec eq { 0 _currenttransfer exec 0.5 lt } { 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse { { pop 0 } } { { pop 1 } } ifelse systemdict /settransfer get exec } if _colorimage Adobe_ColorImage_AI6_Vars /plateindex get 5 eq { grestore } if } ifelse } ifelse }{ dup 1 eq { pop pop image }{ pop pop Adobe_ColorImage_AI6_Vars begin sourcecount -1 0 { exch sourcearray 3 1 roll put } for /SeparateCMYKImageProc load end systemdict /image get exec } ifelse } ifelse } ifelse } def /proctintimage { /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store /_pticomps _ptispace clrspacegetcomps store /_ptiscale _pti1 _pti0 sub store level2? { _ptiname length 0 gt version cvr 2012 ge and { [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace [_pti0 _pti1] makeimagedict _image }{ [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace [0 255] makeimagedict _image } ifelse }{ _pticomps 1 eq { { dup { 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put } stringapply } concatprocs _image }{ { dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse _ptibuf { exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc _pticomps 2 add -2 roll _pticomps 1 sub -1 0 { 1 index add 2 index exch 5 -1 roll 255 mul cvi put } for pop pop } stringapply } concatprocs false _pticomps /_colorimage load null eq {7 {pop} repeat}{_colorimage} ifelse } ifelse } ifelse } def /graytintimage { /_gtigray 5 -1 roll store {1 _gtigray sub mul 1 exch sub} 4 1 roll /DeviceGray proctintimage } def /cmyktintimage { /_cticmyk 5 -1 roll store {_cticmyk {1 index mul exch} forall pop} 4 1 roll /DeviceCMYK proctintimage } def /rgbtintimage { /_rtirgb 5 -1 roll store {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll /DeviceRGB proctintimage } def /tintimage { TestPlateIndex -1 eq { colorexpand 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll dup /DeviceGray eq { pop graytintimage }{ dup /DeviceRGB eq { pop rgbtintimage }{ pop cmyktintimage } ifelse } ifelse }{ dup clrspacemarksplate { plateindex 5 lt { colortocmyk plateindex get 1 exch sub exch {1 0}{0 1} ifelse () graytintimage }{ pop exch {0}{0 exch} ifelse 0 3 1 roll () graytintimage } ifelse }{ pop pop pop {pop 1} 0 1 () /DeviceGray proctintimage } ifelse } ifelse } def /XINullImage { } def /XIImageMask { XIImageWidth XIImageHeight false [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load imagemask } def /XIImageTint { 0 setgray XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load XIType 3 eq XIColorValues XIColorSpace tintimage } def /XIImage { 0 setgray XIImageWidth XIImageHeight XIBitsPerPixel [XIImageWidth 0 0 XIImageHeight neg 0 0] /XIDataProc load XIChannelCount 1 eq {image}{false XIChannelCount colorimage} ifelse } def /XG { pop pop } def /XF { 13 {pop} repeat } def /Xh { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def /XIImageHeight exch def /XIImageWidth exch def /XIImageMatrix exch def 0 0 moveto XIImageMatrix concat XIImageWidth XIImageHeight scale XIType 1 eq { /_lp /null ddef _fc /_lp /imagemask ddef } if /XIVersion 7 def end } def /XH { Adobe_ColorImage_AI6_Vars begin /XIVersion 6 def grestore end } def /XIEnable { Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put } def /XC { Adobe_ColorImage_AI6_Vars begin colormake /XIColorSpace exch def /XIColorValues exch def end } def /XI { Adobe_ColorImage_AI6_Vars begin gsave /XIType exch def cvi dup 256 idiv /XICompression exch store 256 mod /XIEncoding exch store pop pop /XIChannelCount exch def /XIBitsPerPixel exch def /XIImageHeight exch def /XIImageWidth exch def pop pop pop pop /XIImageMatrix exch def XIBitsPerPixel 1 eq { XIImageWidth 8 div ceiling cvi }{ XIImageWidth XIChannelCount mul } ifelse /XIRowBytes exch def XIEncoding 0 ne XIVersion 6 le and { currentfile 128 string readline pop pop } if XICompression 0 eq { /XIBuffer1 XIRowBytes string def XIEncoding 0 eq { {currentfile XIBuffer1 readhexstring pop} }{ {currentfile XIBuffer1 readstring pop} } ifelse }{ /XIBuffer1 256 string def /XIBuffer2 XIRowBytes string def {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} /ASCIIHexDecode filter /DCTDecode filter /XIFile exch def {XIFile XIBuffer2 readstring pop} } ifelse /XIDataProc exch def XIVersion 6 le { 0 0 moveto XIImageMatrix concat XIImageWidth XIImageHeight scale XIType 1 eq { /_lp /null ddef _fc /_lp /imagemask ddef } if } if XIEnable { XIType 1 eq { XIImageMask }{ XIType 2 eq XIType 3 eq or { XIImageTint }{ XIImage } ifelse } ifelse }{ XINullImage } ifelse grestore end } def end %%EndProcSet %%BeginResource: procset Adobe_Illustrator_AI5 1.1 0 %%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog) %%Version: 1.1 0 %%CreationDate: (3/7/1994) () %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin put /_eo false def /_lp /none def /_pf { } def /_ps { } def /_psf { } def /_pss { } def /_pjsf { } def /_pjss { } def /_pola 0 def /_doClip 0 def /cf currentflat def /_tm matrix def /_renderStart [ /e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 ] def /_renderEnd [ null null null null /i1 /i1 /i1 /i1 ] def /_render -1 def /_rise 0 def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [ 0 0 ] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fScl 0 def /_cnt 0 def /_hs 1 def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /_tDict 2 dict def /_wv 0 def /Tx { } def /Tj { } def /CRender { } def /_AI3_savepage { } def /_gf null def /_cf 4 array def /_if null def /_of false def /_fc { } def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc { } def /_pd 1 dict def /_ed 15 dict def /_pm matrix def /_fm null def /_fd null def /_fdd null def /_sm null def /_sd null def /_sdd null def /_i null def /discardSave null def /buffer 256 string def /beginString null def /endString null def /endStringLength null def /layerCnt 1 def /layerCount 1 def /perCent (%) 0 get def /perCentSeen? false def /newBuff null def /newBuffButFirst null def /newBuffLast null def /clipForward? false def end userdict /Adobe_Illustrator_AI5 known not { userdict /Adobe_Illustrator_AI5 91 dict put } if userdict /Adobe_Illustrator_AI5 get begin /initialize { Adobe_Illustrator_AI5 dup begin Adobe_Illustrator_AI5_vars begin discardDict { bind pop pop } forall dup /nc get begin { dup xcheck 1 index type /operatortype ne and { bind } if pop pop } forall end newpath } def /terminate { end end } def /_ null def /ddef { Adobe_Illustrator_AI5_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /sw { dup length exch stringwidth exch 5 -1 roll 3 index mul add 4 1 roll 3 1 roll mul add } def /swj { dup 4 1 roll dup length exch stringwidth exch 5 -1 roll 3 index mul add 4 1 roll 3 1 roll mul add 6 2 roll /_cnt 0 ddef { 1 index eq { /_cnt _cnt 1 add ddef } if } forall pop exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop } def /ss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def /jss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put gsave _sp eq { exch 6 index 6 index 6 index 5 -1 roll widthshow currentpoint } { false charpath currentpoint 4 index setmatrix stroke } ifelse grestore moveto 2 copy rmoveto } exch cshow 6 npop } def /sp { { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def /jsp { { 2 npop (0) exch 2 copy 0 exch put _sp eq { exch 5 index 5 index 5 index 5 -1 roll widthshow } { false charpath } ifelse 2 copy rmoveto } exch cshow 5 npop } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf { } def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /XR { 0 ne /_eo exch ddef } def /H { } def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq { _eo {eoclip} {clip} ifelse /_doClip 0 ddef } if newpath } { /CRender { N } ddef } ifelse } def /n { N } def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf } ifelse } { /CRender { F } ddef } ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps } ifelse } { /CRender { S } ddef } ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc /_doClip 0 ddef } { S } ifelse } { /CRender { B } ddef } ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type /stringtype eq { pop } if } if newpath } def /u { } def /U { } def /q { _pola 0 eq { gsave } if } def /Q { _pola 0 eq { grestore } if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq { CRender } if } def /D { pop } def /*w { } def /*W { } def /` { /_i save ddef clipForward? { nulldevice } if 6 1 roll 4 npop concat pop userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash /setstrokeadjust where {pop false setstrokeadjust} if newpath 0 setgray false setoverprint } def /~ { end _i restore } def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc _eo {eofill} {fill} ifelse } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /A { pop } def /annotatepage { userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse } def /XT { pop pop } def /discard { save /discardSave exch store discardDict begin /endString exch store gt38? { 2 add } if load stopped pop end discardSave restore } bind def userdict /discardDict 7 dict dup begin put /pre38Initialize { /endStringLength endString length store /newBuff buffer 0 endStringLength getinterval store /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store /newBuffLast newBuff endStringLength 1 sub 1 getinterval store } def /shiftBuffer { newBuff 0 newBuffButFirst putinterval newBuffLast 0 currentfile read not { stop } if put } def 0 { pre38Initialize mark currentfile newBuff readstring exch pop { { newBuff endString eq { cleartomark stop } if shiftBuffer } loop } { stop } ifelse } def 1 { pre38Initialize /beginString exch store mark currentfile newBuff readstring exch pop { { newBuff beginString eq { /layerCount dup load 1 add store } { newBuff endString eq { /layerCount dup load 1 sub store layerCount 0 eq { cleartomark stop } if } if } ifelse shiftBuffer } loop } if } def 2 { mark { currentfile buffer readline not { stop } if endString eq { cleartomark stop } if } loop } def 3 { /beginString exch store /layerCnt 1 store mark { currentfile buffer readline not { stop } if dup beginString eq { pop /layerCnt dup load 1 add store } { endString eq { layerCnt 1 eq { cleartomark stop } { /layerCnt dup load 1 sub store } ifelse } if } ifelse } loop } def end userdict /clipRenderOff 15 dict dup begin put { /n /N /s /S /f /F /b /B } { { _doClip 1 eq { /_doClip 0 ddef _eo {eoclip} {clip} ifelse } if newpath } def } forall /Tr /pop load def /Bb {} def /BB /pop load def /Bg {12 npop} def /Bm {6 npop} def /Bc /Bm load def /Bh {4 npop} def end /Lb { 4 npop 6 1 roll pop 4 1 roll pop pop pop 0 eq { 0 eq { (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard } { /clipForward? true def /Tx /pop load def /Tj /pop load def currentdict end clipRenderOff begin begin } ifelse } { 0 eq { save /discardSave exch store } if } ifelse } bind def /LB { discardSave dup null ne { restore } { pop clipForward? { currentdict end end begin /clipForward? false ddef } if } ifelse } bind def /Pb { pop pop 0 (%AI5_EndPalette) discard } bind def /Np { 0 (%AI5_End_NonPrinting--) discard } bind def /Ln /pop load def /Ap /pop load def /Ar { 72 exch div 0 dtransform dup mul exch dup mul add sqrt dup 1 lt { pop 1 } if setflat } def /Mb { q } def /Md { } def /MB { Q } def /nc 3 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end end setpacking %%EndResource %%EndProlog %%BeginSetup Adobe_level2_AI5 /initialize get exec Adobe_ColorImage_AI6 /initialize get exec Adobe_Illustrator_AI5 /initialize get exec %AI5_Begin_NonPrinting Np %AI3_BeginPattern: (Yellow Stripe) (Yellow Stripe) 8.4499 4.6 80.4499 76.6 [ %AI3_Tile (0 O 0 R 0 0.4 1 0 k 0 0.4 1 0 K ) @ ( %AI6_BeginPatternLayer 800 Ar 0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D 0 XR 8.1999 8.1999 m 80.6999 8.1999 L S 8.1999 22.6 m 80.6999 22.6 L S 8.1999 37.0001 m 80.6999 37.0001 L S 8.1999 51.3999 m 80.6999 51.3999 L S 8.1999 65.8 m 80.6999 65.8 L S 8.1999 15.3999 m 80.6999 15.3999 L S 8.1999 29.8 m 80.6999 29.8 L S 8.1999 44.1999 m 80.6999 44.1999 L S 8.1999 58.6 m 80.6999 58.6 L S 8.1999 73.0001 m 80.6999 73.0001 L S %AI6_EndPatternLayer ) & ] E %AI3_EndPattern %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np 3 Bn %AI5_BeginGradient: (Black & White) (Black & White) 0 2 Bd [ 0 0 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 1 %_Br [ 0 0 50 100 %_Bs 1 0 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Red & Yellow) (Red & Yellow) 0 2 Bd [ 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < FFFFFEFEFDFDFDFCFCFBFBFBFAFAF9F9F9F8F8F7F7F7F6F6F5F5F5F4F4F3F3F3F2F2F1F1F1F0F0EF EFEFEEEEEDEDEDECECEBEBEBEAEAE9E9E9E8E8E7E7E7E6E6E5E5E5E4E4E3E3E3E2E2E1E1E1E0E0DF DFDFDEDEDDDDDDDCDCDBDBDBDADAD9D9D9D8D8D7D7D7D6D6D5D5D5D4D4D3D3D3D2D2D1D1D1D0D0CF CFCFCECECDCDCDCCCCCBCBCBCACAC9C9C9C8C8C7C7C7C6C6C5C5C5C4C4C3C3C3C2C2C1C1C1C0C0BF BFBFBEBEBDBDBDBCBCBBBBBBBABAB9B9B9B8B8B7B7B7B6B6B5B5B5B4B4B3B3B3B2B2B1B1B1B0B0AF AFAFAEAEADADADACACABABABAAAAA9A9A9A8A8A7A7A7A6A6A5A5A5A4A4A3A3A3A2A2A1A1A1A0A09F 9F9F9E9E9D9D9D9C9C9B9B9B9A9A9999 > 0 1 %_Br [ 0 1 0.6 0 1 50 100 %_Bs 0 0 1 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow & Blue Radial) (Yellow & Blue Radial) 1 2 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A8A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666564646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_Bs 1 1 0 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb 1 1 1 1 k Pc 1 g Pc 0 g Pc 0 0 0 0 k Pc 0.75 g Pc 0.5 g Pc 0.25 g Pc 0 g Pc Bb 2 (Black & White) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0.25 0 0 0 k Pc 0.5 0 0 0 k Pc 0.75 0 0 0 k Pc 1 0 0 0 k Pc 0.25 0.25 0 0 k Pc 0.5 0.5 0 0 k Pc 0.75 0.75 0 0 k Pc 1 1 0 0 k Pc Bb 2 (Red & Yellow) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0.25 0 0 k Pc 0 0.5 0 0 k Pc 0 0.75 0 0 k Pc 0 1 0 0 k Pc 0 0.25 0.25 0 k Pc 0 0.5 0.5 0 k Pc 0 0.75 0.75 0 k Pc 0 1 1 0 k Pc Bb 0 0 0 0 Bh 2 (Yellow & Blue Radial) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0 0.25 0 k Pc 0 0 0.5 0 k Pc 0 0 0.75 0 k Pc 0 0 1 0 k Pc 0.25 0 0.25 0 k Pc 0.5 0 0.5 0 k Pc 0.75 0 0.75 0 k Pc 1 0 1 0 k Pc (Yellow Stripe) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc 0.25 0.125 0 0 k Pc 0.5 0.25 0 0 k Pc 0.75 0.375 0 0 k Pc 1 0.5 0 0 k Pc 0.125 0.25 0 0 k Pc 0.25 0.5 0 0 k Pc 0.375 0.75 0 0 k Pc 0.5 1 0 0 k Pc 0 0 0 0 k Pc 0 0.25 0.125 0 k Pc 0 0.5 0.25 0 k Pc 0 0.75 0.375 0 k Pc 0 1 0.5 0 k Pc 0 0.125 0.25 0 k Pc 0 0.25 0.5 0 k Pc 0 0.375 0.75 0 k Pc 0 0.5 1 0 k Pc 0 0 0 0 k Pc 0.125 0 0.25 0 k Pc 0.25 0 0.5 0 k Pc 0.375 0 0.75 0 k Pc 0.5 0 1 0 k Pc 0.25 0 0.125 0 k Pc 0.5 0 0.25 0 k Pc 0.75 0 0.375 0 k Pc 1 0 0.5 0 k Pc 0 0 0 0 k Pc 0.25 0.125 0.125 0 k Pc 0.5 0.25 0.25 0 k Pc 0.75 0.375 0.375 0 k Pc 1 0.5 0.5 0 k Pc 0.25 0.25 0.125 0 k Pc 0.5 0.5 0.25 0 k Pc 0.75 0.75 0.375 0 k Pc 1 1 0.5 0 k Pc 0 0 0 0 k Pc 0.125 0.25 0.125 0 k Pc 0.25 0.5 0.25 0 k Pc 0.375 0.75 0.375 0 k Pc 0.5 1 0.5 0 k Pc 0.125 0.25 0.25 0 k Pc 0.25 0.5 0.5 0 k Pc 0.375 0.75 0.75 0 k Pc 0.5 1 1 0 k Pc 0 0 0 0 k Pc 0.125 0.125 0.25 0 k Pc 0.25 0.25 0.5 0 k Pc 0.375 0.375 0.75 0 k Pc 0.5 0.5 1 0 k Pc 0.25 0.125 0.25 0 k Pc 0.5 0.25 0.5 0 k Pc 0.75 0.375 0.75 0 k Pc 1 0.5 1 0 k Pc 0 0.23 0.38 0 (PANTONE 473 CV) 0 x Pc 1 0.51 0 0.305 (PANTONE 541 CV) 0 x Pc PB %AI5_EndPalette %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 0 79 128 255 Lb (Layer 1) Ln 0 A u u u 0 O 0 g 800 Ar 0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D 0 XR 392.1587 259.1909 m 392.1616 258.791 392.1631 258.4092 392.1631 258.0791 c 392.1636 257.3091 392.1558 256.8057 392.1494 256.0293 c 392.1411 254.9805 391.8071 254.2759 390.6636 254.2563 c 389.5205 254.2363 389.1348 254.9541 389.1431 256.0034 c 389.1553 257.5264 389.168 258.9014 389.1636 260.6362 c 389.1602 262.3579 389.9941 262.5522 390.5205 262.561 c 391.4072 262.5767 392.1289 262.4219 392.146 260.7002 c 392.1509 260.2144 392.1558 259.689 392.1587 259.1909 C 394.4048 259.2397 L 394.3916 260.1152 394.3525 260.9395 394.2832 261.3379 c 393.9214 263.4272 392.3955 264.1426 390.52 264.1177 c 388.6445 264.0928 387.3438 263.3398 387.0376 261.2417 c 386.8818 260.1714 386.8687 256.562 387.1045 255.2422 c 387.3525 253.855 388.4365 252.6577 390.6719 252.6875 c 392.9072 252.7173 394.1133 253.832 394.272 255.4272 c 394.3486 256.1963 394.3999 257.1206 394.4087 258.23 c 394.4111 258.5596 394.4102 258.9033 394.4048 259.2397 C 392.1587 259.1909 L f U U u u 365.3804 259.1909 m 365.3828 258.791 365.3843 258.4092 365.3848 258.0791 c 365.3848 257.3091 365.3774 256.8057 365.3711 256.0293 c 365.3628 254.9805 365.0288 254.2759 363.8853 254.2563 c 362.7422 254.2363 362.3564 254.9541 362.3647 256.0034 c 362.377 257.5264 362.3896 258.9014 362.3853 260.6362 c 362.3813 262.3579 363.2158 262.5522 363.7422 262.561 c 364.6289 262.5767 365.3506 262.4219 365.3677 260.7002 c 365.3726 260.2144 365.377 259.689 365.3804 259.1909 C 367.6265 259.2397 L 367.6133 260.1152 367.5737 260.9395 367.5049 261.3379 c 367.1431 263.4272 365.6172 264.1426 363.7417 264.1177 c 361.8657 264.0928 360.5654 263.3398 360.2593 261.2417 c 360.103 260.1714 360.0898 256.562 360.3262 255.2422 c 360.5742 253.855 361.6582 252.6577 363.8936 252.6875 c 366.1289 252.7173 367.335 253.832 367.4932 255.4272 c 367.5698 256.1963 367.6211 257.1206 367.6299 258.23 c 367.6328 258.5596 367.6318 258.9033 367.6265 259.2397 C 365.3804 259.1909 L f U U u u u u 380.6807 257.7373 m 380.668 258.792 380.6577 259.8726 380.6577 260.7695 c 380.6577 262.8638 379.5527 264.1997 377.1758 264.1997 c 374.645 264.1997 373.54 262.9795 373.6558 260.7954 C 375.8652 260.7954 l 375.917 261.7847 375.7754 262.6836 377.0986 262.6836 c 378.4224 262.6836 378.3706 261.7847 378.4351 260.8081 c 378.4902 259.9746 378.4351 259.8315 y 376.5718 259.7676 375.4546 259.3818 v 374.3364 258.9966 373.4243 258.2129 373.4243 256.2212 c 373.4243 254.5 373.772 252.8311 376.0068 252.688 c 377.2144 252.6108 378.0366 253.3691 378.3838 253.7803 c 378.4995 253.7803 378.6152 252.8809 V 380.7607 252.8809 l 380.6724 254.9648 380.6768 257.1255 V 378.4644 257.0962 L 378.458 256.8721 378.4448 256.6455 378.4224 256.4395 c 378.3325 255.6177 378.0752 254.4609 376.752 254.4609 c 375.4287 254.4609 375.5186 255.8613 375.6729 256.9282 c 375.8271 257.9941 376.9063 258.2129 378.4482 258.29 c 378.4624 258.063 378.4678 257.7373 V F U 380.6807 257.7373 m 380.6787 257.5342 380.6772 257.3296 380.6768 257.1255 C 378.4644 257.0962 L 378.4712 257.3198 378.4712 257.5415 378.4678 257.7373 c F U U U u u u u 350.3286 257.7373 m 350.3154 258.792 350.3057 259.8726 350.3057 260.7695 c 350.3057 262.8638 349.2007 264.1997 346.8237 264.1997 c 344.293 264.1997 343.188 262.9795 343.3037 260.7954 C 345.5132 260.7954 l 345.5645 261.7847 345.4233 262.6836 346.7466 262.6836 c 348.0703 262.6836 348.0186 261.7847 348.083 260.8081 c 348.1377 259.9746 348.083 259.8315 y 346.2197 259.7676 345.1021 259.3818 v 343.9844 258.9966 343.0723 258.2129 343.0723 256.2212 c 343.0723 254.5 343.4199 252.8311 345.6543 252.688 c 346.8623 252.6108 347.6846 253.3691 348.0313 253.7803 c 348.147 253.7803 348.2627 252.8809 V 350.4082 252.8809 l 350.3203 254.9648 350.3247 257.1255 V 348.1123 257.0962 L 348.1055 256.8721 348.0923 256.6455 348.0703 256.4395 c 347.98 255.6177 347.7231 254.4609 346.3999 254.4609 c 345.0762 254.4609 345.1665 255.8613 345.3203 256.9282 c 345.4746 257.9941 346.5542 258.2129 348.0957 258.29 c 348.1099 258.063 348.1157 257.7373 V F U 350.3286 257.7373 m 350.3267 257.5342 350.3252 257.3296 350.3247 257.1255 C 348.1123 257.0962 L 348.1191 257.3198 348.1191 257.5415 348.1157 257.7373 c F U U U u u u u 326.3809 257.7373 m 326.3677 258.792 326.3574 259.8726 326.3574 260.7695 c 326.3574 262.8638 325.2529 264.1997 322.876 264.1997 c 320.3447 264.1997 319.2397 262.9795 319.3555 260.7954 C 321.5654 260.7954 l 321.6167 261.7847 321.4756 262.6836 322.7988 262.6836 c 324.1221 262.6836 324.0708 261.7847 324.1353 260.8081 c 324.1899 259.9746 324.1353 259.8315 y 322.272 259.7676 321.1543 259.3818 v 320.0366 258.9966 319.124 258.2129 319.124 256.2212 c 319.124 254.5 319.4722 252.8311 321.7065 252.688 c 322.9146 252.6108 323.7368 253.3691 324.0835 253.7803 c 324.1992 253.7803 324.3149 252.8809 V 326.4604 252.8809 l 326.3721 254.9648 326.377 257.1255 V 324.1646 257.0962 L 324.1577 256.8721 324.1445 256.6455 324.1221 256.4395 c 324.0322 255.6177 323.7754 254.4609 322.4521 254.4609 c 321.1284 254.4609 321.2188 255.8613 321.3726 256.9282 c 321.5269 257.9941 322.6064 258.2129 324.1479 258.29 c 324.1621 258.063 324.168 257.7373 V F U 326.3809 257.7373 m 326.3784 257.5342 326.3774 257.3296 326.377 257.1255 C 324.1646 257.0962 L 324.1709 257.3198 324.1714 257.5415 324.168 257.7373 c F U U U u u u u 292.6523 257.7373 m 292.6396 258.792 292.6294 259.8726 292.6294 260.7695 c 292.6294 262.8638 291.5249 264.1997 289.1479 264.1997 c 286.6167 264.1997 285.5117 262.9795 285.6274 260.7954 C 287.8369 260.7954 l 287.8887 261.7847 287.7471 262.6836 289.0708 262.6836 c 290.394 262.6836 290.3423 261.7847 290.4067 260.8081 c 290.4619 259.9746 290.4067 259.8315 y 288.5439 259.7676 287.4263 259.3818 v 286.3086 258.9966 285.396 258.2129 285.396 256.2212 c 285.396 254.5 285.7437 252.8311 287.9785 252.688 c 289.186 252.6108 290.0088 253.3691 290.3555 253.7803 c 290.4712 253.7803 290.5869 252.8809 V 292.7324 252.8809 l 292.644 254.9648 292.6489 257.1255 V 290.436 257.0962 L 290.4297 256.8721 290.4165 256.6455 290.394 256.4395 c 290.3042 255.6177 290.0469 254.4609 288.7236 254.4609 c 287.4004 254.4609 287.4902 255.8613 287.6445 256.9282 c 287.7988 257.9941 288.8779 258.2129 290.4199 258.29 c 290.4341 258.063 290.4395 257.7373 V F U 292.6523 257.7373 m 292.6504 257.5342 292.6489 257.3296 292.6489 257.1255 C 290.436 257.0962 L 290.4429 257.3198 290.4429 257.5415 290.4395 257.7373 c F U U U u u u u 268.1484 257.7373 m 268.1353 258.792 268.125 259.8726 268.125 260.7695 c 268.125 262.8638 267.0205 264.1997 264.6436 264.1997 c 262.1123 264.1997 261.0073 262.9795 261.123 260.7954 C 263.3325 260.7954 l 263.3843 261.7847 263.2427 262.6836 264.5664 262.6836 c 265.8896 262.6836 265.8379 261.7847 265.9023 260.8081 c 265.9575 259.9746 265.9023 259.8315 y 264.0396 259.7676 262.9219 259.3818 v 261.8042 258.9966 260.8916 258.2129 260.8916 256.2212 c 260.8916 254.5 261.2393 252.8311 263.4741 252.688 c 264.6816 252.6108 265.5044 253.3691 265.8511 253.7803 c 265.9668 253.7803 266.0825 252.8809 V 268.228 252.8809 l 268.1396 254.9648 268.1445 257.1255 V 265.9316 257.0962 L 265.9253 256.8721 265.9121 256.6455 265.8896 256.4395 c 265.7998 255.6177 265.5425 254.4609 264.2192 254.4609 c 262.896 254.4609 262.9858 255.8613 263.1401 256.9282 c 263.2944 257.9941 264.3735 258.2129 265.9155 258.29 c 265.9297 258.063 265.9351 257.7373 V F U 268.1484 257.7373 m 268.146 257.5342 268.1445 257.3296 268.1445 257.1255 C 265.9316 257.0962 L 265.9385 257.3198 265.9385 257.5415 265.9351 257.7373 c F U U U u u 307.6543 259.1909 m 307.6567 258.791 307.6582 258.4092 307.6582 258.0791 c 307.6587 257.3091 307.6509 256.8057 307.645 256.0293 c 307.6362 254.9805 307.3022 254.2759 306.1592 254.2563 c 305.0156 254.2363 304.6299 254.9541 304.6382 256.0034 c 304.6509 257.5264 304.6631 258.9014 304.6592 260.6362 c 304.6553 262.3579 305.4893 262.5522 306.0161 262.561 c 306.9023 262.5767 307.624 262.4219 307.6411 260.7002 c 307.6465 260.2144 307.6509 259.689 307.6543 259.1909 C 309.9004 259.2397 L 309.8872 260.1152 309.8477 260.9395 309.7783 261.3379 c 309.4165 263.4272 307.8911 264.1426 306.0156 264.1177 c 304.1396 264.0928 302.8389 263.3398 302.5327 261.2417 c 302.377 260.1714 302.3638 256.562 302.5996 255.2422 c 302.8477 253.855 303.9316 252.6577 306.167 252.6875 c 308.4023 252.7173 309.6084 253.832 309.7671 255.4272 c 309.8438 256.1963 309.895 257.1206 309.9038 258.23 c 309.9063 258.5596 309.9053 258.9033 309.9004 259.2397 C 307.6543 259.1909 L f U U 402.7383 264.0288 m 400.5024 264.0288 l 400.5024 252.8774 l 402.749 252.8774 l 402.7383 264.0288 l f 259.9766 264.0288 m 257.7407 264.0288 l 257.7407 252.8774 l 259.9873 252.8774 l 259.9766 264.0288 l f u u u u 239.207 257.7373 m 239.1943 258.792 239.1841 259.8726 239.1841 260.7695 c 239.1841 262.8638 238.0791 264.1997 235.7021 264.1997 c 233.1714 264.1997 232.0664 262.9795 232.1821 260.7954 C 234.3916 260.7954 l 234.4434 261.7847 234.3018 262.6836 235.6255 262.6836 c 236.9487 262.6836 236.897 261.7847 236.9614 260.8081 c 237.0161 259.9746 236.9614 259.8315 y 235.0986 259.7676 233.981 259.3818 v 232.8633 258.9966 231.9507 258.2129 231.9507 256.2212 c 231.9507 254.5 232.2983 252.8311 234.5332 252.688 c 235.7407 252.6108 236.5635 253.3691 236.9102 253.7803 c 237.0259 253.7803 237.1416 252.8809 V 239.2866 252.8809 l 239.1987 254.9648 239.2031 257.1255 V 236.9907 257.0962 L 236.9844 256.8721 236.9712 256.6455 236.9487 256.4395 c 236.8589 255.6177 236.6016 254.4609 235.2783 254.4609 c 233.9551 254.4609 234.0449 255.8613 234.1992 256.9282 c 234.3535 257.9941 235.4326 258.2129 236.9741 258.29 c 236.9888 258.063 236.9941 257.7373 V F U 239.207 257.7373 m 239.2051 257.5342 239.2036 257.3296 239.2031 257.1255 C 236.9907 257.0962 L 236.9976 257.3198 236.9976 257.5415 236.9941 257.7373 c F U U U 242.5732 264.0317 m 240.3247 264.0317 l 240.479 263.1196 240.479 261.3726 v 240.479 259.625 240.479 252.8799 y 242.7529 252.8799 L 242.7529 260.396 242.7529 261.1665 v 242.7529 261.9375 243.0488 262.7085 244.0894 262.7085 c 245.1299 262.7085 245.4639 261.873 245.4639 261.2183 c 245.4639 260.563 245.4639 252.8799 y 247.7446 252.8799 L 247.7446 259.9077 247.7446 260.9868 v 247.7446 263.3252 246.6592 264.2373 244.9116 264.2373 c 243.5112 264.2373 243.126 263.6978 242.6504 263.3252 c 242.6118 263.3511 242.5732 264.0317 v f u 254.0674 258.7856 m 254.0674 259.5234 254.0674 260.1426 254.0674 261.1494 c 254.0674 262.7686 252.6797 262.7168 252.5771 262.7168 c 251.2793 262.7168 251.1123 261.8174 251.1123 258.7085 c 251.1123 256.3184 250.9775 254.3462 252.5708 254.3462 c 254.1768 254.3462 254.0674 255.9331 254.0674 257.1924 c 254.0674 257.7817 254.0674 258.3706 254.0674 258.7856 C 256.3208 258.7598 L 256.3198 258.0903 256.3179 257.4473 256.3159 257.1152 c 256.3027 254.9307 256.4316 252.8774 y 254.2603 252.8774 L 254.2085 253.582 254.0928 253.8647 Y 253.605 253.415 253.0908 252.8369 251.9731 252.8369 c 249.0952 252.8369 249.0313 255.3164 248.9668 256.2544 c 248.9023 257.1924 248.8765 260.4854 248.9922 261.5864 c 249.0693 262.3188 249.6606 264.2402 251.8574 264.2588 c 253.3994 264.2715 253.7334 263.5518 254.1123 263.4624 c 254.1123 268.146 l 256.3286 268.146 l 256.3286 266.9155 256.3271 261.6851 256.3208 258.7598 C 254.0674 258.7856 L f U 278.6055 268.1602 m 274.9053 268.1602 l 274.9053 252.8755 l 277.1924 252.8755 l 277.1924 265.104 l 280.5073 252.8755 l 284.2588 252.8755 l 284.2588 268.1602 l 281.9717 268.1602 l 281.9717 256.1357 l 278.6055 268.1602 L f 296.54 262.4351 m 298.1714 262.4351 L 298.1714 264.0298 L 296.54 264.0298 L 296.54 265.6973 296.54 266.9189 Y 294.3813 266.0195 l 294.3813 265.2197 294.3813 264.0298 V 292.981 264.0298 L 292.981 262.4351 L 294.3813 262.4351 L 294.3813 259.5015 294.3813 255.7515 294.3813 255.2148 c 294.3813 254.3149 294.3813 252.8755 296.8223 252.8755 c 297.1953 252.8755 298.2358 252.8755 y 298.2358 254.3921 l 297.5161 254.3921 297.2593 254.3921 v 296.8994 254.3921 296.54 254.521 296.54 255.6128 c 296.54 256.2109 296.54 259.542 296.54 262.4351 C f 301.2476 264.0288 m 299.0122 264.0288 l 299.0122 252.8774 l 301.2583 252.8774 l 301.2476 264.0288 l f 301.2593 268.1636 m 299.0122 268.1636 l 299.0122 265.9087 l 301.2593 265.9087 l 301.2593 268.1636 l f 313.0493 264.0317 m 310.8013 264.0317 l 310.9556 263.1196 310.9556 261.3726 v 310.9556 259.625 310.9556 252.8677 y 313.2295 252.8677 L 313.2295 260.396 313.2295 261.1665 v 313.2295 261.9375 313.5249 262.7085 314.5654 262.7085 c 315.6064 262.7085 315.9404 261.873 315.9404 261.2183 c 315.9404 260.563 315.9404 252.8677 y 318.2207 252.8677 L 318.2207 259.9077 318.2207 260.9868 v 318.2207 263.3252 317.1353 264.2373 315.3877 264.2373 c 313.9873 264.2373 313.6021 263.6978 313.127 263.3252 c 313.0884 263.3511 313.0493 264.0317 v f 330.21 252.8779 m 330.21 268.1563 L 327.8462 268.1563 L 327.8462 252.8779 L 330.21 252.8779 L f 336.9893 252.8716 m 342.4854 252.8716 L 342.4854 254.749 L 339.4175 254.749 L 339.4175 268.1621 L 336.9893 268.1621 L 336.9893 252.8716 L f u 356.8613 257.0283 m 356.8545 257.5054 356.8374 258.0229 356.8374 258.564 c 356.8374 261.6729 356.7344 262.6108 355.437 262.6108 c 355.334 262.6108 353.9082 262.624 353.9082 261.0435 C 353.9082 256.7012 L 353.9082 256.123 353.7925 254.2407 355.4561 254.2407 c 356.7832 254.2407 356.8838 255.3979 356.8613 257.0283 C 359.0483 257.0771 L 359.0396 256.6675 359.0225 256.3271 358.9956 256.1099 c 358.8706 255.0801 358.7388 252.731 356.0024 252.731 c 354.8843 252.731 354.3193 253.3091 353.8311 253.7588 C 353.7153 253.4761 353.6641 252.8687 V 351.4668 252.8687 l 351.6597 253.7842 351.6597 255.5962 V 351.647 268.1616 L 353.8633 268.1616 l 353.8633 263.292 l 354.2422 263.3818 354.5762 264.127 356.1177 264.1143 c 358.3149 264.0957 358.8545 262.2129 358.9316 261.4805 c 359.021 260.6309 359.0796 258.4609 359.0483 257.0771 C 356.8613 257.0283 L f U 373.2896 264.1177 m 371.3848 264.1948 371.1533 262.6143 370.8613 262.6016 c 370.7939 263.5654 370.707 264.0317 v 368.5869 264.0317 l 368.7412 263.1924 368.7412 261.4453 v 368.7412 259.6978 368.7412 252.8677 y 371.0151 252.8677 L 371.0151 259.4541 371.0151 260.2246 v 371.0151 261.0854 371.3335 262.1777 373.0322 262.2417 C 373.2896 264.1177 L f 384.6948 262.4351 m 386.3262 262.4351 L 386.3262 264.0298 L 384.6948 264.0298 L 384.6948 265.6973 384.6948 266.9189 Y 382.5361 266.0195 l 382.5361 265.2197 382.5361 264.0298 V 381.1357 264.0298 L 381.1357 262.4351 L 382.5361 262.4351 L 382.5361 259.5015 382.5361 255.7515 382.5361 255.2148 c 382.5361 254.3149 382.5361 252.8755 384.9771 252.8755 c 385.3496 252.8755 386.3906 252.8755 y 386.3906 254.3921 l 385.6709 254.3921 385.4141 254.3921 v 385.0542 254.3921 384.6948 254.521 384.6948 255.6128 c 384.6948 256.2109 384.6948 259.542 384.6948 262.4351 C f 399.7983 264.1182 m 398.1245 264.0527 397.9009 262.6138 397.6221 262.6016 c 397.5547 263.5654 397.4678 264.0317 v 395.3481 264.0317 l 395.5024 263.1924 395.5024 261.4453 v 395.5024 259.6978 395.5024 252.8677 y 397.7764 252.8677 L 397.7764 259.4541 397.7764 260.2246 v 397.7764 261.0854 398.0942 262.1777 399.7935 262.2417 C 399.7983 264.1182 L f 402.7324 268.1577 m 400.498 268.1577 l 400.498 265.9023 l 402.7324 265.9023 l 402.7324 268.1577 l f u 407.2148 259.3755 m 405.9297 259.3755 L 405.9253 259.7822 405.9258 260.2134 405.9399 260.6729 c 405.9946 262.438 406.7524 262.562 407.3662 262.562 c 408.3071 262.562 408.8179 262.1895 408.8179 260.4678 c 408.8179 260.2798 408.8208 259.6245 408.7896 259.3755 C 407.2148 259.3755 L 407.2144 257.8403 L 411.0732 257.8457 L 411.0981 259.0347 411.0771 260.7373 410.9893 261.29 c 410.6553 263.3843 409.2417 264.1196 407.3662 264.1196 c 405.4902 264.1196 404.1797 263.3843 403.8457 261.29 c 403.6753 260.2217 403.7202 256.6694 403.9102 255.354 c 404.1108 253.9595 405.2881 252.688 407.3662 252.688 c 409.6016 252.688 410.7598 253.811 410.9248 255.4053 c 410.9668 255.8086 410.9795 255.9106 410.9961 256.3296 C 408.751 256.3179 L 408.7383 255.5479 408.7695 256.1875 408.7539 255.9131 c 408.6924 254.8657 408.5098 254.2554 407.3662 254.2554 c 406.2227 254.2554 406.0718 255.0894 406.0425 256.1572 c 406.0269 256.7417 406 257.2896 405.9766 257.8384 C 407.2144 257.8403 L 407.2148 259.3755 L f U 211.2568 258.0488 m 211.2979 259.894 211.2788 261.2896 211.2788 261.7544 c 211.2788 262.6768 211.3384 267.2515 210.8892 271.7358 c 210.6343 274.2793 209.7456 275.5757 206.7529 275.8647 c 202.2593 276.2988 197.7124 276.248 196.7803 276.248 c 195.9004 276.248 191.2998 276.3115 186.8071 275.8647 c 183.7637 275.5625 182.9141 274.1533 182.6709 271.7358 c 182.2183 267.2407 182.2813 262.6426 182.2813 261.7544 c 182.2813 260.8384 182.2012 256.2529 182.6709 251.7725 c 182.9409 249.1968 183.9351 247.9248 186.8071 247.6436 c 191.3003 247.2036 195.8667 247.2607 196.7803 247.2607 c 197.7124 247.2607 202.2603 247.1963 206.7529 247.6436 c 209.6772 247.9346 210.6279 249.2378 210.8892 251.7725 c 211.1187 253.9951 211.2163 256.2383 211.2568 258.0488 C 215.0732 258.0493 L 215.0347 256 214.9199 253.2671 214.6064 250.1675 c 214.291 247.0439 211.8652 244.3174 208.6499 243.9736 c 203.3965 243.4126 197.7466 243.4766 196.7803 243.4766 c 195.8667 243.4766 190.1577 243.396 184.9102 243.9736 c 181.5874 244.3398 179.2598 247.1782 178.9536 250.1675 c 178.3467 256.0908 178.4834 260.7998 178.4834 261.7544 c 178.4834 262.6768 178.3721 267.6929 178.9536 273.3408 c 179.2524 276.2441 181.6157 279.1377 184.9102 279.5347 c 190.1553 280.166 195.9004 280.0811 196.7803 280.0811 c 197.7124 280.0811 203.3188 280.1489 208.6499 279.5347 c 212.02 279.146 214.3267 276.1221 214.6064 273.3408 c 215.1763 267.6816 215.0767 262.6768 215.0767 261.7544 c 215.0767 261.3071 215.1094 259.9829 215.0732 258.0493 C 211.2568 258.0488 L f 200.0591 273.665 m 200.2915 268.6143 l 207.7437 268.6143 L 207.8638 268.6143 208 268.5977 208.291 268.6655 C 208.6328 260.7998 208.3594 258.3374 208.2222 253.2871 C 204.8037 253.082 L 204.9409 255.2661 204.9746 257.2339 204.9746 258.4282 C 203.7271 258.394 L 203.6587 258.394 203.6162 258.4023 203.5308 258.3599 C 203.3682 263.1372 L 200.4624 263.1372 l 200.9067 249.5332 L 197.6099 249.3965 195.6611 249.3965 192.6533 249.5332 C 193.1235 263.1372 l 190.1919 263.1372 L 190.0293 258.3599 L 189.9443 258.4023 189.9014 258.394 189.833 258.394 C 188.585 258.4282 L 188.585 257.2339 188.6191 255.2661 188.7559 253.082 C 185.3374 253.2871 L 185.2007 258.3374 184.9272 260.7998 185.269 268.6655 C 185.5596 268.5977 185.6963 268.6143 185.8164 268.6143 C 193.3115 268.6143 l 193.4053 271.4126 l 190.5337 271.2998 L 190.6021 271.5049 190.6362 271.6069 190.6362 271.7095 C 190.7559 273.6377 L 190.7559 273.7739 190.7388 273.8936 190.6704 274.064 C 194.0005 274.2026 196.3374 274.2808 200.1396 274.1426 C 200.0967 273.8784 200.0591 273.7505 200.0591 273.665 C f u 418.606 260.6797 m 418.606 261.9922 418.6924 264.1382 415.3247 264.1382 c 412.4419 264.1382 411.8975 262.2749 411.8975 261.2881 c 411.8975 260.6128 411.8813 259.9873 413.0254 258.9365 c 413.6572 258.3564 415.0171 257.4297 415.6323 256.9917 c 415.8257 256.854 416.5859 256.312 416.5859 255.355 c 416.5859 254.2427 415.5581 254.2388 415.3418 254.2388 c 414.5029 254.2388 413.9985 254.5654 413.9282 255.4058 c 413.9004 255.7354 413.874 256.0054 413.874 256.3223 c 411.7148 256.3223 l 411.5317 254.8657 412.1123 253.9741 v 412.751 252.9927 414.1689 252.688 415.4185 252.688 c 416.2842 252.688 417.3198 252.8628 417.9844 253.5273 c 418.5015 254.0444 418.7407 254.6118 418.7407 255.7202 c 418.7407 256.6465 418.6152 257.3916 417.2744 258.4404 c 416.791 258.8184 415.7627 259.5117 415.2148 259.8716 c 414.5605 260.3008 414.1069 260.7241 414.1069 261.46 c 414.1069 262.2739 414.4761 262.5708 415.29 262.5708 c 416.104 262.5708 416.3911 262.0605 416.3911 261.1777 c 416.3911 261.0566 416.4087 260.6758 y 418.606 260.6797 l f U u 231.1948 264.0239 m 231.1694 265.4063 231.1563 268.646 226.8755 268.646 c 222.5942 268.646 222.5298 265.4194 222.5298 264.6997 c 222.5298 263.6968 222.4141 262.0254 225.1782 260.4443 c 226.1626 259.8809 227.1074 259.3525 227.3896 259.1968 c 227.647 259.0557 229.0908 258.502 229.0352 256.6514 c 228.9707 254.5044 227.271 254.4561 227.0093 254.4561 c 226.0542 254.4561 224.9399 254.6699 224.7515 256.3687 c 224.7212 256.6392 224.6641 256.9648 224.6641 257.7573 c 222.1445 257.7573 l 222.0479 255.0659 223.25 253.8896 v 224.3271 252.8354 225.5381 252.6147 226.8237 252.6147 c 228.1094 252.6147 229.5493 252.8804 230.3701 253.7896 c 231.1626 254.668 231.4521 255.5313 231.4521 256.8315 c 231.4521 258.207 231.1304 259.7754 228.8164 261.1382 c 228.0771 261.5737 227.2866 261.9736 226.4639 262.4238 c 225.4438 262.9819 224.8955 263.7095 224.8955 264.8022 c 224.8955 266.0107 225.6157 266.8335 226.8237 266.8335 c 228.0322 266.8335 228.7266 266.1909 228.7266 264.8794 c 228.7266 264.6997 228.7524 264.0366 y 231.1948 264.0239 l f U 259.9912 268.1636 m 257.7441 268.1636 l 257.7441 265.9087 l 259.9912 265.9087 l 259.9912 268.1636 l f U LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI5 /terminate get exec Adobe_ColorImage_AI6 /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF pyutilib-6.0.0/doc/workflow/snllineblk.pdf000077500000000000000000000172501367314503500206440ustar00rootroot00000000000000%PDF-1.3 %Çì¢ 8 0 obj <> stream xœ\K®$9ŽÜç)â1úŽ1}…‡éF‘‹ž¨Û™Q¢ñ²€D-²ÈË%’FRýýçžñøßú÷ëçÿüø¯´Ç¿þïG|üûGŠ%>ë|ÄŸ3ÌÇOã´ôˆµ?g|™A–g˜é¢Ã³ã÷¯õ@yÄ’1b=QÛ#æñ µ]ðŠžiæýD‰çs„ŠÚA§gÇbRLM3‚®Ížˆõ™¢8Ðñ™«f¨%]²Þr±'° Œ(xs‰nëžÏ7wô†Ó~ËžùY;¹'Ìú¬‰O¶ÐÍö‹V FokŸ ûœãæÚ7&ìýBÚû®˜¢§g,åHªµçX\ºà ¯À&¶=ûãEN~B ±Çg¬\èJzbE‰¡‚ù™»ÍcÝ)`Y] Ä û{–ÔÖ¾Db¥z ´§Vð¦!ÒSNÑá™!É‘ D=Æx[T§lI7j¼Ò’ð@|H2á$ApJ®: êo*PÂc6H¾-ýc© G¯&¸IQÏŽ5&€ˆbÖó9Ù¦1>&Ûâ—‰I6QÊ^d ÐOh“*~¬ê–r„Z*4=×ïÑ,%çǧ¾¾æõãŸ?âèù9.#oYGF× GÎY8 l/‰C,.²À…£8êÐŒŽ£8J‡G ³,páHt«ŽÄá*ŽDO‡‘H¾Âadœè8Â"`íÍqÚ–°qÌ_¸1iWDÉ‘ír\82IdÇ‘KÊpô¡ އ%¥vÁHЂh¼¼8ŒDK¢FàÈÃlá%˜¡;Œö¶Žð,PÐGÀK¥l7Ž@'Y‘ãÿ dÇèðtÊÚ…ÃH3rÕ#¼#©ÌaLJÚ0ž²¼¨Ády°ŒL,Ž"“ct ‰ÎŽ##³ãÈèä@úTÃ×'hˆ£€}š 5CÇ?#ÏÝéùDV>4€ùvh˜G›ò›3!ÿL‡…àQ4žsÒaC•½9uLXN©×l®›•dJðŠY…ŠÙ‡p²8/r&í[Ì9~ê|ÛÉ4xÍ9æ2iJÉ9  ßkýNíàUaÄýÝ–UÚIäXýøä@UޱA6‹èE–ÒÑa;Ït½Ô„À­bQE:J£s‚æe›£ù¡:j¾.HâA~š7›9‰Qrb`T ÁâÁ^“nšn1`Ó!Û&«“ ð`å ‚Êã•Ûé76çõ#õsÓði­lº›Õֺ娀•Y/ãÐd2*šh ý í¢>\Wùya̘ӄwmŒúŽ˜šÁeBô,‹–ÍóÎ{D¯Oú·S¢/šð(ôjñz¤me‰+g&B8€¤æÊ±UÑsïËiÛeR„iy‘Ãõõ÷`£×†»Ï%]ƒï™íÏ…ICÆ3Q æªX»ø£,áøJÄ¡ìErï öN;ì³`/𣍲’TnØ7x¢y9†VãsŒƒûV³—ƒûFå÷ä´zpߨå|pßðƒüÁÆ}ì´”3€¤…9›€4ó‡=8Q ×½pÜrð/àz`ßPBºa߀we# öiH:°ßôýæhzº€ƒz¼ÙÃzŠº%G=VÞ”%,Ôk½9^¨×¹ûÅhµøP/2§qßlÆqnduÓüe“bõÇ4Å¡Y8×Bh] ç[7s¬|2B-”ƒìÒîÆp£Ä0 ܆à™Òlˆ·®„ÓZè56Âv½Ü¯Ö×áï´íoܨö'°JÝ~¤fÿ”â×ßI‘&»~høoWRF~w5✸.²öðM€oÎxAþwÇõRÆG\/ØÌ× \Â×KÌ ‡ß%׸^r{‹ë¶¡Pºà[°¡·¸ Ò™+®ƒw\×ïoq]œ×}ÀÁ÷/Moq½ C£Ù€—dqv¼@w\ßôøæh~ð×Kît­ ,–y#¼Ô~Çumšé \›œá¥å÷Ðý67À©ð+’}‚Ï/›”ú:¶IÎÉE󌰾µs Î¥^‘\[¹#y)å#’SÜÌè}¤xGò’óG$§]Ý‘¼”vGr[å‰äï´íÒ#¹‘ñó÷ðêãÝ…·€þ!̯¿æÉ½€þ»•€)q•Sç¤bÎ7}p¾9ç<¥ Å*öŒçaøaL#Ãt:@ˆP©ß@´í~œqÅá0ß7^j0>@ð.ªíô6éÌÀƒ DèäP‘é{ÄAú/­2ßôÀSq»‘F¶jÆBzèy‡™Ö¦Ò7'J2ó;ÒE6n¤SÚ£¤Gx¾o#»®õF:÷ÐOt¬0~#]Æ‘n¨pÌfʾèy[+ß"÷êÖ*ÎA>Izîü­®ƒ|rT˜ZÈçÖ¤¸…kî ½ø0)]\¨Ó–|PO¢ËÛ¨çA»£´èoÒ6Só$ËŸ­Ä»ÌâÿT†%Ä;½ÿ}“™Û(×:ÈÉ5oÄ“LÕ¿IÇûf,¸”S8pgy¨ä;¬Â„äþÁjýí‚û {ÎÚGåYíëä îka•Eª’ÚGCÐÊ…öÑéNà'ûñ€ rì;o'§2,´ûGû'g0ÍæheZ ÌÑΚR(ÉÑ>`|3´;íhwçϬ¼dGû@ßa˜íöˆíŽ4ШÚ¹ëïÌ{hŒ‹3ºãúD*ŸîÄýƒ!s™Í±.ƒ*w ÊwäxÛ)9©°“Žý»kËÁ>¨ûyRyæGc ¿Ãü@:9O2Oe f ï‡Åâ…wѤ°ÞGcPr¸ÈZðï´¶Äàeˆ×žkü¨)e4ÈÑäÿT”yÕ ùCä·ì¦YÂéånqº—»EŽSîvÚËÝâÌSîO¹›t©w¹›œÜN¹lkw¹; +ËŸrwÂyL¶¿ÊÝ©©`¹«Ý"Ç]í&§ÆSí&­Û®UîÖïó.w‹SO¹;áD7æ)w§vùÛÊ݉EœtÊÝ܃Ì.wkßñ.w‹ÓO¹{Kj•»?t²|†»sŒ¿^ì&­ó*vçØ–N±;G…N/v§9ì2p»×¦®bwbÂzjÝ ØÉóÔº 4ßµî´îv­›4%¾ŠÝ©¼Uº9—¼*Ý úÈéTº©ùÖ¯JwÆÊ!<¯tÃäŸax¥›;–ì½Ò-™”Sê&=ë)uC¤Jv­[t;µnÑõÔºo|}Ë*݉€’Y‚ü ¥œórÄß{žâðg~r®y8÷Àjúº{°¹;³ÙЯQ›sfâS£çÎ=çn,«õË5†áâážä°Z†â½Óð³"~ æv<¯4ý¯ˆ_ëºYÜ#à½,<[Äštâò+ïIc»B~mÌdŠlŽqx@¯<#Ôz…ü ¤–q’‚:`§ÀŸM×#~„Eôˆï#<âr*Ô'âWÖåâðk¡Œ²üŠhS)þSœö€ïN_YÆ øµ†é ø”u±’½~À_>¥:.8Ò]yÀç&S=ùÊ‹±Ø®€O A"qEüOŽL†’]!_6•ã§øÞ)3ÛqŠœ!ˆZÈ'Ýã©Ý¹¶<äS_UÒB~Å)1ÄÑ+jù ù¥kÝ#•rrüªÆ]Á£Õ|*xî?§“i•´õóßiíiŒóµéòj70VŒbÌ7Ù5ù*Ëi…#ÅüC[ÌÿíBð[Ïæà?¹– KwÎë§ñ$È0Àú`ÛdTY‡Û Þ×ý3ÝÏ„PþÂ+y‡r8/çD;Â:IÿßX:DÄ–­‹júð)ÈjëR:´5t^ŠÎ3l™3 q …ެ‡•ÿ3àZ6=ki÷²‡Ž'î‡ÓÁ£ 3‹Ãˆ™¤Û`¢¡¶i áɨ›–FB›3>R÷¡ ª¤x Å'ÄàÄ8Äaÿ©Ð_Pr‡xZ·bͨcsà:ܧÓÝr§»|èzƒ-axBÈAW¢ðŽ4Þ«JŠÑxΫÏ|Fd;àQ39]·Òœ“aÀȈä1'³ùŒ|8Ù;Âpš«â¥ïáø*ñd\œlfzÛLj@>G60ßpí|É OÀ°S°’v ²c£a†ÎR´ê¥F}ÑÕÎäQZ"'$s í£(aßAù/¬+Á9Ýašœ û•Ê>.LY²àÔ¦ìYÐݵÀrƒÄ$0„è4Á<®¦3B&ÂËEÜíaú ¸Z$¬°Ž²K|¥UÒ‘W{bZû,¾¬w4)*„Ò‘¢µ`^q:ü<¼©hxr>ÁÏiœ®}À;eš8’06U¬º€.>ËRº8UÇ$ÓG‚M~gd;‹‰Vµž7Vññ©Ò¯oQ÷ï©Y³À´ kÇÁŒH¯Ù9/çPmµPmìC ¬¾sRRÇ«’Lû5$†¦¶‘ïœó*ïÉÂùwóÛ\u*øX²¶AíØQ„'>žê‚|çåe„ÓJwzè;#Ñ1ºI©§²pxñYõÄ;ÇéÄ3y?ôz‡jÄóæ¼œs-u=õ|Yˆç=8´Á€nš'-{ÏâÀkD&‹ÞÒtQ)9Í'¨ÃzF¤Ôܶè¿~lçœi õy8Œo´µ -šoa.:¯¦¹Ý&ióždÛ0ï)TØ4²Uk{Óºï1²Üg“Èÿ÷ÙdsŽÒSu|rÊûÙÄg‚ã È×xȃwà¿O|üïÿpPfÜžW²µ»ÎßÉÆ'ôd›ÎÎ66}Ò çX¾±IC:Ý$Þšž–oñrFÜ5ôEzºq8–n€®VÌ´H…äÔ.=݈¹ÛÕ@Pv¶áÔN66ÃrE–ÒâµàÅØ‰†ÓžhlÎÎ Êênq§xEfÄI4°'ž ¯Œ&É3 Б·+'ÓöÆÉ4>µùK7VXôJ’:Dz•±[W&bÞ2%Èæìðÿ4ƒVPœórNŒ:“ÁêÅøÎ«3À­y¿sμ¼=gCTÞœ†ÝžóHQ”'‡ª£Ÿ]#aIv²éúTsÆ`O’t•õuÞR×ZÑï‹æÿÛ–옚Ê!$ší~~qxGí~~sVœsÝ!訧wÖæ´VÙu[ë#ØÐ[îg_ÛºÁνT‡¹ÜkqtkIݳîxÊ@…’g°‹¥Áζ4¢³f\ä ®6“%§¹Ì¦e¼B¶«(•{»­Ä2m=ZâÓ›F¨³œxYpè8.¶îJ[°ã­$ŒDæÙé—ýÎ3m'6“÷P‹Õw°6M%-©=4ØÁtݽ º˜„G‰v¥‰3™IG×㪨©û7˜åÍuwDyªi³¨ºT"¨7ŠÇ4`ضÉKc_ßÌ[&?­wlö`ñ3«ÁW•>>Ùj`ýM\)Öc“L;[³kíºóÞYZ³ôg8gD>ª9wíÐEQºö©b©ÑÜ}©Ùæ0N[NiÑÇUN&õr•ïŒM²Û[ÅáMw¸Ëb[Þph# K3l'Õ Õ ¦9ߥiý­\`½r¬Ä \V Îó©*ôù¢t_®—¦™Å­ÐÛHxû•œ¨Ô¯Ùt'l^.ÏÓò—sŠÞI×A§ Ž u…üÁy´]š[qÌòÉY}œAÅ–›tõ˜/ZÉ•`¥¹n·™Vïy‡—H$ k¢¤›}¢ÄK+{ÂêQàÙÍ:¦ø­ÕxÛ7pUPYæµh ‚m¿ù1¬g7YÍS´¾’C·ï¤Èaþ‘»àE†‘tw.ëÖYÕ(n^oÆôÍàþù#óجæUtx$GydÓ)$™òSß|Ñ¡ûª&9bÑ.3Òb KcáÉo°:Êlº*4ÉŒ½ÑYJä _A’›ù‰ …7¬.Ì'YÃf8Grq«B •‹.¶^o,’éœK8¿ó±iKSo?aDÒ}^£Å‰F+h0'6LĄ̑6°*Êá[(<ó±­¿XN5ÄÕ“ÂJ«Ó.&çtÓPI:¨*‡‰Ö¿ÑPÐÄJy‹AÃ[ÔŠ5³Í[Ú[`›-‰æ NœuïÍOš´´Út!mZß,HŠ›“Š+YliºÎ;ˆÅkÄ"r©Ô{õ°Hž6ût]Ÿmd‡Zôà}£4u:Æ#ÃTv ž`_v¶Ê2i¸äÐ×Å™µuµ¦b­Hrã ½<Ô¼-Ýg~(…ðÁŠøa—ŽÎÀ6 Mœ<Ï*j5 °R‰c?ò‰Äª!¥R€UžBêèGn‹V2n’Ý#1 ëÁ'o:èi Î;23d¸xÇL_kÆ¿tGXœ¼•RåÖ÷ÀX³‹¿86d]ͯ¾§umÎ!äè_ ÝÒôW0ª;»Òî$ Xp¡ á°v/ëÖÃöÀšH.v/Ît¡1.Ó®C1(gÄx0¸èc^›CA³xÌ ŠÖbª8¯È<Ýh ˆ0¹1±ÆŠx2NGÓg œ¨óäV¬J–Óú¦¯rƒ{ÔRÔ&ˆíΟ¶÷õÍAZ ƒd&Æ 4ËNhr¬ÏÚA ¾–F”ûg}á¶89ü?ª4œ “åOM¹gÎé(œ{®Ó®3r/z 1­Ä¿CÄwÔÔÍ–.¾¯ÑL%î G¼äëÛ=6ÍïCt=ªÈÍ»ª÷SðS:Ú·1´rµ6Ëܰú¬r;7”Ú°¼4÷d *ïß6cÀÀìv›g»¦*›ìÛHW^›æåXÎûØKX¬‚ùœ4ÍçÇ:‘öÚXO†wf»Þ ñ&ËÓ³•ûçõºjמSû¸)X[†t£Ì}R™ÀOæuTèª%߇ j©\#f¶¯ãZRž?íS»À/@´ÊªÎó,Èñ˜ZVé*®ûùMcßÉþpÄæ°òÈOÈ‹}«?åuy™$ ³„b‹²>Ì:t?Žew] 46 HY+og ¶må4Ýtb…û¶b1rÃxh}££áFóÍtý¹­ï¢ìâ]/˜NjEöW |ÀªÆL —PÛô°“¿žX€ÇI¤¸úò€È«l´øÄ"iÍV¨TÉ*³5•;7âqvÙðø£r-¥ù(¼y©u“È{ |#ѹ~g/¨Š P<¦qê²î4ç÷ðÆü`(ÛZ‚¡–n9öENµð)Ù׬[*ü Ý>àª:+dk_V¦®ÃÁê…‹«°Û-‹ãEL„d®vD®Qýo4hëSw¡ž¬±©"´”É8²Ó\K]éŒhìÕ'¤Ç„}Ý‘fÆcmœ´°`€ÁÚº5D3È:M@ÉòKÙíÈÆy}ã¦ØÊfaÀ~©éi `è\ÍÆ˜O°1A’š‡Ø1ƒT ÃÛ$¥`¹Øb`ýJÁÔ†VÈU!£ÕÌ®ée*ú(Ir f~ùufgûƒÓÙº÷øÀâTuiñùìsŽõÕ x*£6×_ƒ•ßyçÚ±Tê…q =ÓWsÛ³4O«ÉöUòˆT;S™ªXèt.-¨[Ö9¬óò Ù-O\6’œ-¦MÛªrJΩüðE³~U§#[šÌ¾6ÇP@º&k@VÍVÇ œê9¥7¹ï~u|Ýýþ7þûØ endstream endobj 9 0 obj 6549 endobj 7 0 obj <> /Contents 8 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 6 0 obj <> endobj 10 0 obj <> endobj 5 0 obj <>stream xœkhÙDÀ€ endstream endobj 4 0 obj <>stream xœc`Ù endstream endobj 2 0 obj <>endobj xref 0 11 0000000000 65535 f 0000006844 00000 n 0000007305 00000 n 0000006785 00000 n 0000007158 00000 n 0000007010 00000 n 0000006892 00000 n 0000006654 00000 n 0000000015 00000 n 0000006634 00000 n 0000006980 00000 n trailer << /Size 11 /Root 1 0 R /Info 2 0 R >> startxref 7550 %%EOF pyutilib-6.0.0/doc/workflow/workflow-disc.tex000066400000000000000000000040401367314503500213160ustar00rootroot00000000000000 \section{Discussion} \label{sec:disc} A major driver for the development of the \pwsp is the TEVA-SPOT Toolkit~\cite{SPOT}, which supports research on sensor placement optimization for water security applications. TEVA-SPOT uses the \pwsp task driver to define the \code{sptk} script, which can execute a variety of different workflows that represent different strategies for sensor placement optimization. The fact that \pwsp provides a self-contain facility for defining and executing workflows is particularly important for TEVA-SPOT. This code is targeted for distribution on desktop computers, and \pwsp provides a convenient mechanism for flexibly developing new sensor placement strategies that can be executed without a cumbersome workflow management system. Parallel execution of \pwsp workflows is a natural extension of the current capability, which would not require a signficant extension of the current class definitions and workflow syntax. Finally, here are some notes concerning the current status of development in \pw: \begin{itemize} \item \pwsp includes a variety of methods managing parsers used to initialize tasks. These methods were intended to simplify the setup of commands using workflows. However, these methods have not proven terribly useful in practice. Consequently, we could imagine deprecating this feature of \pwsp unless clear use cases arise. \item The \pwsp execution logic is simply a method of the \code{Workflow} class. It would be worth exploring how this could be generalized to (a) support threaded parallelism and (b) interface with third-party grid- or cloud- computing workflow engines. This would provide a nice extensibility of this capability while preserving the simple Pythonic interface that \pwsp provides. \item A preliminary resource class for files has been developed, but simple use-cases for this class have not been flushed out. \item Control flow tasks for looping and other more advanced capabilities are not currently provided, but these will probably be developed as the need arises. \end{itemize} pyutilib-6.0.0/doc/workflow/workflow-doc.tex000066400000000000000000000521111367314503500211430ustar00rootroot00000000000000\lstset{frame=single, basicstyle=\footnotesize , backgroundcolor=\color{white}, language=Python} \section{Managing Workflows} \label{chap:pw} \subsection{Overview} Figure~\ref{fig:overview} provides a graphical illustration of the components of a workflow. A \textit{workflow} is comprised of one or more computational steps, which we call a \textit{task} or \textit{component}. A task maps a set of input data into a set of output data. Input and output data are managed with \textit{port} objects, and tasks are linked together with \textit{connectors} that define a connection from an output port in one task to an input port for another. These connections form a directed acyclic graph (DAG), which defines how task executions need to be coordinated to correctly execute the entire workflow. \begin{figure}[htb] \center \includegraphics[height=5in]{figures/workflow-overview.pdf} %\includegraphics[height=5in,angle=-90]{figures/workflow-overview.pdf} \caption{A graphical illustration of a workflow with four tasks. Black lines between tasks represent connectors, and square boxes in the tasks represent the input and output ports.} \label{fig:overview} \end{figure} \subsection{A Simple Example} \label{sec:simple} The main goal of \pwsp is to support the definition of workflows in an intuitive manner using Python objects. There are two fundamental classes defined by \pwsp that are used to define a workflow: \code{Task} and \code{Workflow}. A user defines tasks by creating subclasses of the \code{Task} class. For example, the following task computes the sum of its two inputs: \listing{examples/example1.py}{class}{4}{15} The \code{Task} class defines the \code{inputs} and \code{outputs} attributes that are used to respectively declare input and output ports. These declarations must be included in the task constructor, since the inputs and outputs are treated as static task properties by \pw. The task computation is performed by the \code{execute} method, which must be defined by the user. Note that the input and output values are attributes of the task object. This simplifies the syntax for users developing task computations by allowing them to treat task data as they would in any other Python object. \pwsp initializes the value of these attributes before calling \code{execute}, and it interrogates the task afterwards to set the value of the output ports. The following Python code creates the \code{TaskA} object, creates a \code{Workflow} object, initializes the workflow with this task, and then executes the workflow with input values: \listing{examples/example1.py}{usage}{18}{21} Note that the workflow defines a functor, which is executed with keyword arguments that are mapped to the task inputs. This functor returns an \code{Options} object, which is a glorified Python dict class. The output of printing the workflow results is: \listing{examples/example1.txt}{}{1}{1} \subsection{Defining Connections} The previous example was a trivial illustration of the setup and execution of a workflow. In practice, workflows will be defined by constructing two or more tasks that are linked together. Suppose we wish to compute the expression: \[ z = 2*x+y. \] We can employ \code{TaskA} to perform the sum, and the following task to double the value of $x$: \listing{examples/example2.py}{class}{17}{27} The following Python code creates the \code{TaskA} and \code{TaskB} objects, links the output of B to the input of A, and then creates and executes a workflow: \listing{examples/example2.py}{usage}{31}{37} The connection between \code{TaskA} and \code{TaskB} is defined with the command \begin{qlisting} A.inputs.x = B.outputs.Z \end{qlisting} The syntax transparently creates a \code{Connector} object that connects the \code{Z} output of \code{TaskB} to the \code{x} input of \code{TaskA}. This greatly simplifies the declaration of connections when compared with other Python workflow packages. Note that this mechanism allows an output port to be connected to one or more input ports. The default setup of ports allows an input port to only connect to a single output port. (See Section~\ref{sec:multi-input} for further discussion.) As in our earlier example, the workflow is created by constructing a \code{Workflow} object and then adding tasks to it. Note, however, that in this example only \code{TaskA} was added. The \code{Workflow} object traverses the connections between tasks to identify all tasks connected to the task that is added. Consequently, only a single task in a workflow needs to be added to the \code{Workflow} object. Note that the functor defined by the workflow has a slightly different API in this example; it uses inputs \code{X} and \code{y}. To understand why, consider Figure~\ref{fig:example2}, which shows the workflow in this example. Tasks \code{TaskA} and \code{TaskB} are connected to each other, but also to a start and end task. The start and end tasks are constructed when a \code{Workflow} object loads the workflow. The start task contains outputs that correspond to every input port that is not connected to an output port. Similarly, the end task contains inputs that correspond to every output port that is not connect to an input port. In this way, the inputs and outputs of the workflow are automatically defined. \begin{figure}[htb] \center \includegraphics[height=5in]{figures/workflow-example2.pdf} %\includegraphics[height=5in,angle=-90]{figures/workflow-example2.pdf} \caption{An illustration of the workflow defined with tasks \code{TaskA} and \code{TaskB}.} \label{fig:example2} \end{figure} \begin{figure}[htb] \center \includegraphics[height=5in]{figures/workflow-example3.pdf} %\includegraphics[height=5in,angle=-90]{figures/workflow-example3.pdf} \caption{An illustration of the workflow defined with tasks \code{TaskA} and \code{TaskC}.} \label{fig:example3} \end{figure} To see further implications of this logic, suppose that \code{TaskC} is used instead of \code{TaskB}: \listing{examples/example3.py}{class}{17}{30} Figure~\ref{fig:example3} shows the workflow for this example. The setup and execution of this task does not change. However, the input \code{y} is now used by both tasks \code{TaskA} and \code{TaskC}. Further, the output \code{W} is now included in the final results. The output of printing the workflow results is: \listing{examples/example3.txt}{}{1}{2} Similarly, the following example uses \code{TaskD} instead of \code{TaskB}: \listing{examples/example3a.py}{class}{17}{31} The input \code{a} is a constant value that is not included in the outputs of the start task. However, this value can be set directly using the \code{TaskD} object. The output of printing the workflow results is: \listing{examples/example3a.txt}{}{1}{2} \subsection{Input Ports with Multiple Connections} \label{sec:multi-input} The \code{action} constructor option for the \code{Port} class defines how input connections are used to compute the input value. The default action is \code{store}, which indicates that the connector value is stored in the port. This behavior reflects the previous examples, and it is well-suited for workflows where there is a direct correspondence between output ports and input ports. However, contexts often arise in practice where a suite of tasks needs to be computed and their results are analyzed together. For example, consider \code{TaskD} which generalizes \code{TaskA} to sum an arbitrary number of inputs: \listing{examples/example5.py}{class}{5}{15} Note that the input port \code{x} is defined with the \code{append} action, which configures it to create a list of input values. The following example use \code{TaskD} to define a workflow with inputs from \code{TaskE}, which generates a random integer value: \listing{examples/example5.py}{usage}{19}{46} In this example, \code{TaskE} objects are created and connected to the \code{TaskD} object with the command: \begin{qlisting} D.inputs.x = E.outputs.Z \end{qlisting} The input \code{x} port is configured to append inputs to a list, and no special syntax is needed to indicate how the connections are configured between the \code{x} port and the \code{Z} ports. The \code{map} action can also be specified to define an input as a dictionary with keys that are the task ids from the connection that generated the values. For example, this can be used to associate data generated in different branches of a workflow. The following example uses this associate to define a dictionary, which is the final result: \listing{examples/example6.py}{ex}{4}{55} Tasks \code{TaskF1} and \code{TaskF2} simply map their inputs to outputs. Their outputs are connected to two inputs in \code{TaskG}, and these inputs are used to create a dictionary. The output of this computation is: \listing{examples/example6.log}{}{1}{2} Normally, an input port with the \code{store}, \code{append} or \code{map} action cannot be evaluated if any of the output ports connected to it is not in the \code{ready} state. However, the \code{store\_any}, \code{append\_any} and \code{map\_any} actions allow any or all of the inputs to be in a non-ready state. When the \code{store\_any} action is specified, the value is simply taken from the first connection that is in the \code{ready} state. When the \code{map\_any} action is specified, then a dictionary is formed from all connections that are in the \code{ready} state. Similarly, the \code{append\_any} action appends all values from connections inthe \code{ready} state. \subsection{Using Workflows as Tasks} A key feature of \pwsp is the ability to use workflows as components of other workflows. This is possible because \code{Workflow} is a subclass of \code{Task}. For example, consider the following workflows that are defined with \code{TaskA} and \code{TaskC}: \listing{examples/example4.py}{ex}{32}{46} Workflow \code{w1} is the workflow defined in the previous example. This object is used to define workflow \code{w2}, which uses \code{TaskA} to sum the outputs of \code{w1}: \code{W} and \code{z}. The output of executing \code{w2} is \listing{examples/example4.txt}{}{1}{1} \subsection{Initializing Port Values} Task ports are initialized through the execution of a workflow, and through the explicit specification of port values. The simplest way to specify port values is to define them directly. For example, consider the following variation of the example in Section~\ref{sec:simple}: \listing{examples/example1a.py}{ex}{17}{22} The workflow is constructed as before, but the values of ports \code{x} and \code{y} are defined explicitly, and the execution of the workflow does not specify these values. \pwsp also supports the initialization of port values with command-line options. The goal of this capability is to facilitate the use of PyUtilib in command-line applications, by allowing command-line options to be used to directly initialize a workflow. The following example is a simple extension of the example in Section~\ref{sec:simple}. \listing{examples/example1b.py}{ex}{4}{23} Some additional logic is added to the \code{TaskAA} class to specify the command-line options. In this example, the \code{set\_argument} method is used to initialize a workflow with a list of option strings. This syntax mimics the format of data provided by \code{sys.argv}. Again, the execution of the workflow does not specify these values. Note that port values specified in these ways are viewed as default values for the port. When a port value is computed from input connections, then the port value will be overriden if the input connections provide a non-trivial value. For example, if the port action is \code{store}, then the value will be overriden if the input connection has a value other than \code{None}. Similarly, if the port action is \code{append} or \code{map}, then the value will be overriden if one or more of the input connections are not None. Additionally, port values are redefined by the workflow keyword options. For example, in the following script we initialize input ports for \code{TaskAA}, which are then redefined when the workflow is executed: \listing{examples/example1c.py}{ex}{19}{23} The output of this script is \listing{examples/example1c.txt}{}{1}{1} which reflects the fact that the value of \code{y} was redefined by the workflow keyword option. \subsection{The Task Factory} \pwsp leverages the PyUtilib Component Architecture~\cite{PCA} to support the definition of a task factory. The \pwsp task factory allows users to create plugin tasks on the fly without requiring knowledge of where these tasks are defined. This capability exposes a variety of standard tasks that are defined in \pwsp, and it can be used to create tasks that are defined by third-party libraries in a standard manner. The \code{TaskFactory} object defined in \pwsp is a functor. This functor can be used to create a task that has been registered as a plugin. For example, the \code{Selection\_Task} class is registered with the string 'workflow.selection', and it can be instantiated as follows: \begin{qlisting} task = pyutilib.workflow.TaskFactory('workflow.selection') \end{qlisting} Section~\ref{sec:predefined} describes the predefined tasks that are provided with \pw. A plugin task is created as a subclass of the \code{TaskPlugin} class. This registers this task as a plugin with the PyUtilib Component Architecture. The only additional step required for a plugin task is to use the \code{alias} declaration to define the string that is used to create this task in the task factory. For example, the following code defines the task \code{PluginTaskA} that is registered with the string 'TaskA': \listing{examples/example_plugin.py}{class}{5}{18} Note that the only difference with the definition of \code{TaskA} is the specification of the base class and the \code{alias} declaration. The following Python code creates the \code{PluginTaskA} object, creates a \code{Workflow} object, initializes the workflow with this task, and then executes the workflow with input values: \listing{examples/example_plugin.py}{usage}{22}{25} This has the same logical steps as the example in Section~\ref{sec:simple}. The only difference is that the task is created by the task factory. \section{Control Flow Tasks} The basic functionality provided by \pwsp can be characterized as a data flow. Each task represents a transformation of data in input ports to data in output ports. These tasks are networked together in a data flow graph, in which tasks form a directed acyclic graph where data flows from the start task(s) to the final task(s). \pwsp extends this functionality by providing control flow logic. Tasks include special ports, input and output control ports that can be used to limit the execution of tasks. An output control port is connected to one or more input control ports. If an output control port is set to the \textit{ready} state, then the tasks connected to this with an input control port can be executed. Otherwise, these tasks are blocked until the output control port changes state. For example, the \code{Selection\_Task} class is a predefined task whose inputs are a dictionary, \code{data}, and an indexing value, \code{index}. This task returns \code{selection}, which is simply the value \code{data[index]}. This task can be used to switch the execution based on the indexed value. For example: \listing{examples/example9a.py}{code}{4}{25} This generates the following output: \listing{examples/example9a.txt}{}{1}{2} The \code{Switch\_Task} class is a predefined task that provides a similar functionality in this example. However, rather than switching the data value, this class switches the control flow for downstream tasks. For example: \listing{examples/example9b.py}{code}{4}{43} This generates the following output: \listing{examples/example9b.txt}{}{1}{4} The \code{Branch\_Task} class provides a simpler version of the same process executed by the \code{Switch\_Task} class. This class switches the control flow for two downstream tasks. For example: \listing{examples/example8.txt}{usage}{1}{1} Here, the branches for \code{TaskA} and \code{TaskB} are specified with a branch value that is a boolean. \section{Defining Task Resources} There are many contexts in which task execution is dependent on the availability of external resources. For example, data files may need to be available, a database may need to be unlocked, or a software license may need to be free. \pwsp allows these constraints on workflow execution to be represented with \code{Resource} objects that represent the state of a dependent resource. A resource may or may not be available, and the workflow can lock and unlock a resource as it employs it for execution. \pwsp defines the \code{ExecutableResource}, which allows a user to specify an executable that is automatically found by searching the \code{PATH} environment. If the specified executable is not found, then it is unavailable for execution in a workflow. This resource also includes a utility method for applying this executable with command-line arguments. The following example illustrates the use of this resource to define a task that lists all of the files in a specified directory: \listing{examples/example7.py}{ex}{15}{36} %Similarly, the \code{FileResource} allows a user to specify a file %whose availability can affect the flow-control of a workflow. %The following example illustrates the use of this A key role of resource objects is that they can limit the execution of tasks. The \code{availability} method in a resource object is queried to see if a resource can be allocated. The following example illustrates this functionality with a simple \code{BusyResource} class that is busy the first time it is queried: \listing{examples/example10.py}{ex}{1}{30} The first time that task \code{A} is queried, this resource is not available. Note that the \pwsp workflow execution process currently does not allow tasks to block indefinitely. If all tasks have blocked, then the workflow execution will immediately terminate. \section{Predefined Tasks} \label{sec:predefined} The following sections describe the task plugins that are defined by \pw, and we provide an example of how a task plugin is defined. \subsection{Selection Task} The \code{workflow.selection} task has the following inputs: \begin{itemize} \item \code{data}: a dictionary \item \code{index}: an index key in the dictionary \end{itemize} This task returns the value of the dictionary with the specified index key. Note that this task does not fail gracefully if the index key is not defined in the dictionary. An exception will occur that will terminate the execution of the workflow. \section{The Task Driver} The \pwsp task driver provides a facility for creating a command-line utility that can execute \pwsp plugin tasks. The task driver is inspired by command-line tools like \code{svn} that allow users to specify subcommands that have independent command-line arguments. The \pwsp task driver can be easily configured to execute different tasks and workflows as subcommands within a command-line application. Consider the following two task classes: \listing{examples/tasks_yz.py}{class}{5}{37} Note that these are plugin tasks that can be created with the \code{TaskFactory} functor. The \pwsp task driver can only execute tasks and workflows that are defined as plugins. Suppose that the \code{TaskZ} and \code{TasY} are defined in the file \code{task\_yz.py}. The following script creates a task driver, activates two these two tasks and illustrates the results of parsing two sets of command-line arguments: \listing{examples/example_driver1.py}{usage}{5}{12} However, the true value of the task driver is in the definition of a command-line utility. For example, the following script defines a command-line utility that can execute tasks \code{TaskZ} and \code{TaskY}: \listing{examples/driver1.py}{}{1}{8} This script creates the task driver and then parses the \code{sys.argv} command-line arguments. Suppose that this script is in the file \code{driver1.py}. Then the following command-line illustrates the execution of task \code{TaskZ}: \listing{examples/driver_1.sh}{code}{4}{4} which generates the following output: \listing{examples/driver_1.txt}{}{1}{1} The task driver constructor includes several options for declaring the script name and associated documentation that will be printed when the \code{--help} option is specified: \begin{itemize} \item {\bf prog} - The name of the script. \item {\bf description} - A short description of the script's functionality. \item {\bf epilog} - Additional documentation that is printed after the command-line options are described. \end{itemize} The following script uses these options to illustrate the help information that is printed by the task driver: \listing{examples/driver2.py}{}{1}{18} Suppose that this script is in the file \code{driver2.py}. Then the following command-line illustrates the execution with the \code{--help} option: \listing{examples/driver_3.sh}{code}{4}{4} which generates the following output: \listing{examples/driver_3.txt}{}{1}{20} Furthermore, the \code{--help} option can be used to print information about a specific subcommand. The command \listing{examples/driver_2.sh}{code}{4}{4} generates the following output: \listing{examples/driver_2.txt}{}{1}{6}{} pyutilib-6.0.0/doc/workflow/workflow-intro.tex000066400000000000000000000067671367314503500215510ustar00rootroot00000000000000 \section{Introduction} Scientific workflow is an increasingly popular strategy for managing complex scientific computation processes. Workflows allow scientists to automate data transformations, describe complex computational procedures, and parallelize these analyses. Scientific workflow systems are closely related to workflow models used in business process management systems. The key difference is that scientific workflows focus on the transformation of data through algorithms, whereas business workflows focus on scheduling and execution of tasks. Many of the workflow packages developed in Python are best described as business workflow systems. For example, packages like \code{django-workflows} and \code{zope.app.workflow} provide workflows for web content management. The following native Python workflow packages appear to be suitable for scientific workflows: \begin{itemize} \item \textit{Pyphant}: This is a framework for scientific data analysis. A computational analysis is defined by a graph of processing steps, which is managed with a workflow engine. \item \textit{Python Workflow Engine}: This is a simple workflow engine that was initially based on the workflow engine used in the ACE project. \item \textit{Spiff Workflow}: This package is designed around the workflow patterns defined at \code{http://www.workflowpatterns.com}. \item \textit{Ruffus}: This is a lightweight python module to run computational pipelines (See \code{http://www.ruffus.org.uk/}). \item \textit{PaPy}: A lightweight python package that manages parallel computational pipelines (see \url{http://muralab.org/PaPy/}) \end{itemize} Other packages like VisTrails~\cite{VisTrails} and Weaver~\cite{Weaver} also support the management of scientific workflows in Python, though they rely on external software packages to execute these workflows. This report describes the \code{pyutilib.workflow} (\pw) package, which supports the definition and execution of scientific workflows. The following key features of \pwsp that distinguish it from other Python workflow tools: \begin{itemize} \item \pwsp is a self-contained package that was designed to be used within other software applications. Although \pwsp depends on several other PyUtilib Python packages, it does not rely on external software packages to execute \pwsp workflows. \item \pwsp defines a workflow through the interaction of task objects, rather than an explicit definition of a workflow graph. For example, a connection between two tasks is created by setting an output in one task equal to an input in the other. \item a \pwsp workflow (or task) can be treated as a functor that executes with the given arguments and returns a dictionary of computed data. \item \pwsp tasks can be created as plugin components that can be dynamically created with a task factory. This supports the modular definition of tasks and workflows, and it allows the definition of workflows to be isolated from the definition of task classes. \item \pwsp workflows can be initialized with command-line arguments. Further, \pwsp includes a command-line driver that can executed named workflows using a subcommand syntax that is commonly used in command-line tools (e.g. \code{svn}). \end{itemize} The remainder of this manuscript provides a detailed description of the capabilities in \pw. We include many examples that illustrate how \pwsp objects interact to define and execute workflows, and we discuss the command-line driver that can execute workflows with values specified by command-line arguments. pyutilib-6.0.0/doc/workflow/workflow.pdf000066400000000000000000011233101367314503500203520ustar00rootroot00000000000000%PDF-1.5 %ÐÔÅØ 3 0 obj << /Length 994 /Filter /FlateDecode >> stream xÚ•UMoÛ8½ûWðHË‘”°—¦hÓÝŶ›E ôÐö@K²-T–\IŽãß’Nl'Y [Ã!‡3óÞÌ“áä㌿ò}7Ÿ½¹†HÎŒ‘šÌ—DŤ±Äè‚Yiȼ"_é'×¹UÓ­’TqIïʦîièÔ|ã"+ƒöKb Ú?@¥{ÜÝa£éÂ÷ö0­û(ï›i|Ÿÿ Þí™w.™Ò†¤2cÞ·‡ÝÔ´Í‚íáúeÛï£eNDÆTf$ZfD’*ͲB»/MÛ6n!š ¿–þé†)Úg¤`…ÁÑ1gÜfD3ytûsõ’§Tpà  –*€J‹pú®ÞNõ&‹$…ÿz~õUð+¹Hxá3ÞÜH@Æ…@J2ms’j˸ˆ÷_/ÆipåôÚòô‚Tˆ×ŒœI™G8’\Ñ:I3]ЪË¡ÁHó£jZ£`8-ÝÖ-響ǰÕ/Ãñ€ÈìÔ›°†ÉÜB$ÿG×y„žh«6c¿œˆenˆ‘l]‰ë‰ÖÔ­j`0—ŠÎ×d3â­`¡ S([1‚s;ÌÒÐíУò¾©0-Ô å²uãxܘÖnzf.ž‡¢ý´”î“≺–®Œªe?¡ª±[:ßFáª*õCê“áçYÔ%àzNÑ1ô\~Ús*ÀõÔs€ß e*£7HönƆ«—9Ë™ê79ÃF5G›f A¸ðéܸ¾–;^]rré³”AqžøØƒ‰Á1…o‰ +£Ž»±®ÂþÏG€ë°ºÀƆydÂìñ3ÉœÌ$Ÿ× ºqÛm‹õˆ ebß!ÊZIz]Áº‚è»3 uHĵíyx‘˜pðýݦ  èÊvç«9Ë< Y&©¿Æçqz_(”CíBAá9•ýf…˜¶ ↚jˆ4F3ß ž,!¯™ó*}À:E°”¯G{QaÃùoFÇ]à0ºZœ/þTøœÇäÍ`Xm'v6û>Ìg?gˆ'‚XÀIÂ$P‚”›Ù×ïœT >˜*r²÷§6DäðÃAÕ’»ÙñùSݪÎ5> stream xÚµXKÛ8¾çWø(cµÞ’sË,’Å.°Ø`Ó»}ÈÌ-Ó¶Ò²¤©t<¿~êEYv3ÓÀÈA=™1nèp¿âšÇ³d~lL|êñà$‰íˆ" :CϾâÂ;×ÔXõØj炲Ö5‰EÍ[¼zN@Ù•"Ê0K3ˆöÀW´m²¼Ù”l¯6Åa•ÆNyÏÃQuÖ§æ, ãl^øDlAÔœ dkÄâ4Øê¤Ý xF²€Ìê3€x²†R›wLÅx ¸ ™‹µ3lyÌë•áí4^ÖQÀA¤,¾b}F5¯!m€f(¯.èÛqȾFЕìó$AÌg@ìÅ]…?]wéð7õ¼±¢«ß©h¶{ÌÃ’ó½'¼®žTa§K#€õlÉ6 ¸ñ‘84 ‚÷}9.ÕWè>rü7`Ô‘3›®± ä?gž~T”;`—Ó^‹pw¥vŽ¿¯Jœû’$’ »íïpËßÞó,™Ež_tmÿz]}(]Á0’,•åQPY…e\,ôS”ÎI³l{‹dLäIJ_›ùŽd ÝŽWè“!Òe­;¹e‡†?;R”õÅšp{¥¯£µÃÛ»»ççç9è¸ÓÃCðÉk˜ÛŽrï~E% DÂ<‹ÿPþg %Ø„j™¼Ñ6MÃ2)Š(¡lEl'°UØ”ê,ŽœÓºÄM7¡ÐÒ‹’Ct\Üæòé ×`ÐÁvœ:îÜtN#‘ªÅ‡ú)Ê£OÚ›ilä%ßSÒ8í÷“ ûñNOw^ÝäpÂvÎà®ø5Ÿ)ò°éÿ!€SÏ>n#Šj¡˜|›bˆÉ¢ÕàÕ¥˜Y Ø䤱¢Lü)‚S°ÇÙ‰qk¡zíaG„[ÝÀ†Ýª Ã7™f¿¾’4ÌÊÙðDQ§ îV¨¥;Œ_O®Y±Ô“pE!Ô·×êø7€Âˆ´Ì2I_‘:§¯4ú_cî×PÌŽªieÁçìgìH‹*ÙµÂmœÝËŸc·²5=“Ì$ W?Zžc‚©ÛiÏq¥Þ…Û*¯ôTy1‡…Â¥?¸œŠ5.ÞŽ\cÆXKÏ•zúÂe.ÈJ¿¿Ø×@õ”ú”LÒ Xxéù*ãýfð$Žß¯Ê\ðÆR~!Ñd{SÉ"”²Çêâ𷜃á åaÛ<¾Z7ÄI¾°·èãYÝtcUà9(î(•”«Â” ¹\Z‚IêHÎ×HA’äE˜åå­âç:±£"°1ã7 OUsµú2S¿”‡W悹k ¡áZóËjȦÎÿxÐ^+‹??˹ >>¸RY¹Êµ1ÒÑ©1G_1ÒXÎYöcâ„¥goEâœùýFNd9°ôíŸSqÜèý§°’H8"B‹1ïÐí~ãJ>Õp&Ó/ˆ‚¸‰8®’£ LQlê\á€>ìa†ŽÞKEZH¾ñRÌl¼¿2ÃÐ65ÿ‚êË4Þµ2”ú·;r20141Z@ऑO‘â–!ŽTÛÉ¥x‡S"ÎÜB¸I–ÇhFwýìÎhfT–ûX‹¿ `aÙC¢¨–€•”· 1×Õ/zm²Åà7<óçäѯ™ˆ«‘׈+V„Ÿ/ÝÊ_œ 4wùŒU-a@¤ªNÄ0¡€¾@-_H –ŠÆ¨‚ (îˆkJv»VC[úŽúÐhå9•\Ðxÿ0€Nµ-Ruù‰JÊ‚~¢€7þŒJªÂ¾×éúr¸Í"5Ò2ãH€’|$ýò\#m=jú&öÃ!ÎÔø$_ð ¨VäJ3„{iáîÚO]mù°ÂA$%‡0<â ^¡™th…:/ЇɥVÆéI¾TF Á«3h»†lHçëN~]µ?×:X%È„9i•ñíÉÕš÷÷o~„ endstream endobj 22 0 obj << /Length 2651 /Filter /FlateDecode >> stream xÚ­[KÛȾϯ|Yiãéý`“rp’õbq°ø°»0h‘Ò0¦D…¤f,ÿúTuuó¡!Ç©ƒ‡ýüººêëªjRöÛ…·øùÎ;{þíáîÏï}¹ð})Å›E1)äB{!ó¤Z<$‹ß–¿{¾^ýñðÏfL »“  ºÌðW÷‚Ë:®¾TXÔËu¼§¶Ï«{¨¦TY—i\§ ‰+j<äÇmfG¯‹ÝÁL(öé~ÏÚªãú5ää´wÙ:Îó“V¦+Ù®öœÕ¸%ùÞ—LÊ€dW÷ÒFt*mâu]”0÷´ ý%[Ý\>p¹¤ÃßUn6%?6?Vë2;ÔÔ|( ·ž²ýŽÓ#Ië8Ë&"5šGg¤·FJ#Öñ!þœåÀÃÔe{ß×L©¨oƒxœ‹åÇUÈ ‹¹pT£ÊŽä=a F|w‡‘±Ïr §äù±ªK8ãT$ºPÅPžPDÉåÓu]¹• ûÓü¦…,èÙ:‹H¤â [‡5ÀW8EB4[HNCR*'Yµ>VUHPèT3®s„h¨!.Ž5ñDòF¨vd?ó¦Ï8,=­@q~>ÒŠt¡ÜAølMá‹¡S÷04>%4>Ű› 0=÷•DvÃ:"b‘´_»äjù¯xoÍ¡Z"Ù*Rø(~ƒ%h”[,1­¹Åb¾Eû÷NJ˧,}:b8Fš&¾Ï¶Çw õÒÇGÐ=uÄÔ±-ãÃ#kjmˆG'B“â7T$›j=’Z±é€ëá 'Dog5u7"½ˆJ;gñìt6¸kå1©¥›‘Ýïeà1ÃU×ü(p™‘T6*#¾- UYCi[pƱ6z0º¦ªNæˆ@gÈŠGš÷Œå”ʘøÐ„xh‹LŠÆš`<°9®˜ …ò @ÁÝ ­WÊ[¢aðv©u&™5M‚¿#q( CðÈ~$ú:ÜŬu1:WiMuT'…kP5%qS)£ÓSt¦j75°SâXÛ¹™Ë(Ñú¥E$‡…Sš¡í2à‘Ê”švxòR;ÖešçšsÞÁæØ¤³rPc<`žÇCt|.&ƒ^d}!„ —rCÑHƒÁ\ÉÃÄÆ•b‹1 j“ó ?ìw|…'&ÅÕ u#^«¡ùUæLÞiCš„kçZýL&i |Á©Ïò"“7ðÆXnp¬ ›Zp{²8o’Mn3YnQ„cË ¾Ü˜ãh†¨)$ƒÀÄ?­,ª‘Ý^5Svv¡'°³¬„1 ù¡o}Zçp„ÁájòTÄlç+s&@¢Ÿ1[yK=tâõÒt*­¨ÚèÈ$S¢8Fbb}ŸfF6Í‚g›ïFèt¬"’lOù}wèº(qCÏ l¨˜Ý{€ ]YiëÆOõòo6ˆø–  D.¬½£xök†Y •¢æ‚°D©-MbòxËmaœ+´ÑåÄ£û+Ô)‡õ,k¼Þ]FØMzç·ªØËíZÔÌŒ÷MõtŒ'—Ñ@3øsDJªRšÞU¾õNõ£YÛóÈC(òÆ‹¸qcè%Çà ¾˜ÌÆôlŽû$v÷£h´4šâ(—P_“¼xVkð´GÇnE›ö{V•+Ñe™ß_†ò%`JÆBY1§…îrè*Á}Ê úkoòá°/#L¾:! ¢“G>nïe—WQ‡õÍØó÷s¢²y Bw/D—®µN÷øãL Š(¯¼ yÌk¥zUMT7Öµ—!)}ƽ o†÷x‹ g¨Ý]áíÙ;…MáÞ6PºÙ¹àÛ,ãMê^'¸iÕq×+5¯wV\·Ìä6¬W†w>\÷}¸îÿôp÷¿;¼Þ{P ÁsxrÁµÏd-Ö»;l—R0* øêE™.6wÿi^8Wï)OtÁ~ûÃ[$Ð,ÀpñlFîàAç‹_y@paÐý Í÷^"hDþ%R,0aúCq#š#†ât ¯×…ÓnO'²‚’™ˆ³(tYǘ…^Z¦Å—Æb’8ãF¾j@*k«þΜ].Ý[c­9 jìu MÇ2\À­4€°Ž¯•­Š7£ŽëÁì__õóžÃ R•<ûÌž­÷eØ…)ÐëgßKj¸¯„óˆÕbÌ&ÖÕPãÄêïl2±æ(¨!à 44kÜ«Å1Ó«´³5Ô¸ñû;›lü9 j v MÇzéU|/` ù˜½($é†|ʧOøêþÓ't+UšoÞRóq¹­\ùÇ/ÏIu¡wápÕ3½K‹1›`WC¬¿³É›£ †7ÐÐt,C0v ÆÜ psšñ@ÅÞ¼yów¸N×åß‚0¨~Ÿ=°Žæ3ÝS‹1›=WC³§¿³É왣 Æâ7ÐÐt¬÷äØã+³IzÑ7˜â°«ÜÕwùæGÓÁÂgÄç1诖bØô•Êê4¾û±ÓõòF;;`?v"B(Ã;/@øþÇÎb´æ¿RÃÿ¯¢÷Ù]ÀÜÓrá~Y)z?]óþç;É endstream endobj 26 0 obj << /Length 1505 /Filter /FlateDecode >> stream xÚ­XKÛ6¾ï¯ÐQbF$E‰ ÐÃmŠöP¤è9$9h-zWl9Çýõ™áP¯¬œî®ƒ…-j8üæõqHoÜQðûUô?OßQÀƒT²H¥L¢`³»ú|Å”Ö"v““¡›ê—xÁË?v<øµ¾úþú©µ‡[{¼×7W/ßppÎ2¥Dp³ RH©˜Êà­Þ‡oÊ»®1«µT*ä¯Vë8“á5¾&á]“V<¼/7yE’²ªºÖ6¹-ë=-©·ôÌéq\‰4¬›O"®j½¼´÷4ÚÖ]C`6o?µlµVB„¯«|³:üDSU¹7-éß®Öc,áÐxÓnýêãÍŸúšÇ,Ž ©1‡Æ´ ÚtEnêýÞllÝ´/Hï ¤aû¹ËˆÒÐ+™s®u.€n¹§9‹ÉðzdÜM/˜³½Z¹Ç v–Þ¼Ñ$¬;{è¼î,jÈ™…\@0˜ð”)•AMc&"E!Þ€P†â¦Ó⊘ñTÂ2R½ÖŒB³Dð^kSå-F"“°0P·˜R/•‹bÁˆN˜ùåagÛ%3qÄ2Ç_§‡±/y,˜=¦¼,£¥,J“ÍÚ¦¼í¬ñž»8é%w|†Aך‡R“ u BmlùÅÑ©:9­EyÎôœJ…ô œH" •†®’"áC%QHÈTÉuÌ%V©5¤G@ÎIØ;- wèl(Zî™ÞÛÚT]a¼d J¯ÜK릀ـ €Üñ³éå/–¶E ˜æ!?1ßÓ-‘ U ÎN6‡mLn×Êý²Á4D¶7‡'wSû|7¶4m¿Ç€ð'¿}çX?|êðóRéO¥í\úË–&z+ÛºÙ9aîÓ{¢ù3\¸cô@RóÕl€Tgø'½±÷µ³X`?I ÁA—Ds÷dz¬,*‹Sý&+ú9ç$QPg,ÒržW«X(dsÄJ¥ ÿª­b%‘õ8íõ’ž¦(s%]I¡@ÖË“ðËJÅa^¡‹‚"Çr7ÀZŽ»Ë­Þ~g‚ ‚¢bƒ^ü/ì'盀ª•ó®¬zúíU‰±ôÈÂöDÍ3ÿJPD`Èž4…ñÛµ>”û;ày6ã…Šã"ª*:ÆÅ÷fçGõ„Þä…=TäO:ýy†0'’ÐÙ×UMЩ­bð$ k:Cz{{y5—ȸOd E~ûŽfÊ}i˼*ÿ3£IšñeÄÆKÜq,\£h½ƒ»åBLžtl.: ḯ0M û%å êùˆÝ÷dhë°GDæ (­ú3XØ4õ]î‡Ôçp@}Fùã0ËrÞ½fMÏÖ8L=.í9nHŽ™™AûÎí6‡|(þÝÆ›¶ó¶(ÅÚÖ3‚¡¨¯.Ž7¾[xík¤-½œiM<;ZOóë¥TKÉT<ŒaÖ•˜ÛÊt0ćý\ß¶U}\²¥‹"yÞÖ”ª.±Rã ½ÐÑðtX¼-¢œn‹®½•íx¦¼øî  5óTlgÇÛc øf‰@åÓ¾r10°ßn&—oÈ•Œâ€ÃeLéïØ(ï2“|ƒ°1Á.åãUŸpú÷˜‚tNÀÞŒ‚æ`“ ŽNs‚®‚yÁ”¥©ú­"¤,Éøcb™°„ë %Ðì7”HYœ¥OÏEŸÝYNÒH®–‰}‰Ëtæ¹|®B+3bœ÷Æc’;ç‹üd¨¯|­æ‘õuyllCµ.IÐP¯Ÿ¡çc¹ß·ð#cY"×Ëú%L@N\¿¹Æß˜*ü…®‘~ˆTþÃîXÄ#–¤ée,1.fÑ“¡Î³hÙ³YtI‚†Êÿ„ =ë<‹àÔpq,:ÎXt8u¶¬Ê[vôÇ%ëÏÍGS+Ó,…Ÿá—0k„¸”XOF:Ë«yXÏ¥Õ%Éé™ð²ól¨óœŠè;Ó‘åE„¹ÓûðàŸ6\Á©WTëãÙ Ù7×.ØÔ endstream endobj 19 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/workflow-overview.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 27 0 R /Matrix [0 -1 1 0 0 612] /BBox [0 0 612 792] /Resources << /ColorSpace << /Cs6 28 0 R >>/ExtGState << /GS1 29 0 R >>/Font << /TT2 30 0 R/TT4 31 0 R>> /ProcSet [ /PDF /Text ] >> /Length 2625 /Filter /FlateDecode >> stream xÚí\Mo$·½÷¯è£6À´Éâ÷ÕA$—`>9ƒØN,Qd#?õªH6{Ôšµly-{ÚÕðM“ÅÇ*Yüh=Lvþ×?ÎV~ÏüÍÿjç¯kùQâ—Óûé¡VYÌBOªìD~|­]ĶbË ¢<'TkUЗ,?(þÀbfq’3-ÆÏç{ùî~:-Ásâ´”8/žj‚ÿŸ'I²@|Ü5ä–À-C!¤K†`Mœ§D-}Çé%6”Üb¨•m€´…ZEM3 )Í*"þuž¾Ét?% ú5¿¤;äͿ›Lý´CMiÒ¨´;1Ûû®àÏo§Ïno¹È| Ú<Ÿ¬40ÚÅÇ™œeV·÷üè+V‡I3žÝþoúÛÍí?Þ’_òÍ#Æ…n¾áϰØûîï·žþpÛ-»šFúËhŽ”/MäÁ¢š`1b fÄj°hĉõš 7 }Î/Ŧ™Õ笀<ó/‚5X*v˜r“P–EX²(ƒf‹æeí0·«–µq ÊK4ú4ñd_Câ.Ê £i牬Tϲîö*€¸.î~!'ûÎB¡ˆ(4Ä£¨Y,`!1kA‹,¸ p‰/ÄÍ`2)²‘û«=é<Ù´þŽ|åE—œ2ªÕ¯'¤okã[ÿ`Q¯Õ–ÚL@MœÁ1;n`Aû¼ú€´S+ÌK¦$:ˆÌ‚¡±ªuh#.QmPÐH†®Ce#Xž|Kr' *#›4ŸHEq¥qYÔÅpNÒNzŒ›º•ôÃÆöKd¡\"G¨¼„ ÀêæV¡,sZ ÓâðÀ’“ L“¤«vO%ÃvÕýc¸ñì}7úö?ß÷øîößp±‡×}w‡O•÷<ÜóÓtOqÐÑ-sT·ä<ðJx¤üË÷ßý¼.‰HÂ@¢hìd¥¯ëoN_×§÷è@™Êp*Vk÷T¤7![Jª›ÍÄãj¶ T²©h¨ ~ö<3„£O¸¹‘›¹¹‘›¹ÑÈFn4r£-·ª5-øœÖôi×Z*[­UE)(¦i-—Ak+P2šm«BÓDÌ´àsÌôigVì–Y%#ÀªÌ¼±+³HášmKÓ4Ñ£=ŸÑ™}¢37êlkÀ‘¦uF£Îh$³5íVgîªÎì¹Qg[2£Îܨ3uF£Î¶47:ÃBˆ¸Û¹§.ß‚—¯PÔú¶ø‰ÃêG`$SαzñèˆpŽçˆpÞ¿æÀõ«ˆUŽxàÅñÀ0TŠ6„g']vEÆn/£Î c@MZ†*ÊA¥r©S‹õû1´{Jž–ÎØŒªkc/€G†H=ÚµšÚÙgîÀ-ÍS‹‘-¸Ï/²ÚîìÚÓÿˆá™!gŽ2”0!Xä¬ÃPÌz‰ÈÄ+…(ã/Ò2ùE^»Á CkËK–ŠxÿÜä[Phu[T\IŒ®ûMCÏ—SŸtÛ°kÏ­Ù»5ò/Ö`MXS¹(>ÎÕHßõtìéií]êØa£s©ñºEÏ;ö´È€¥öì’ëÓH‹Œ ª @«=‚¯:µQ»xµ'`³§lµjO¤}·'´‘s·'ê¶¾ÛÓòG¤nO@Ö}•ŸÄlµî´ÚÍñ¹Ú€ÙoºkÏ’6ö¤€˜&%/¡^Õ¯¢®¢Ť Ô”ZøƒFmÙŒËÐYõZ+À”.¾¬&T‡a¯ƒ…øj^mkk0ÅŸÐ#Q¢Ž¿=-wCVÉ£äIDz^Çì ªÑ—Ék2-^5±šTV© kômr·åhUaDœ|É®¼ôÁ)`HQ2LŽL“ôß =”`%P刑y³)ñ™ž) DF˜²DÂN Æˆ UN5/÷Lˆtç*—k…»ž§ÊEâ´JÒÁC»Î=¼rÝé2¼êA×Ë×…(J{ëÂ÷{™få<§áœì'sÚ[gjEÇ:sgq÷€ÍY9`óv÷€íÊÙškgk¯ÖµöÍ)>äã±,þ Ëbw±,žßÐÂØ ãmýïžÍQ– ħv6÷ì¹ÜÏ螎èpÏWwÏÃ9çrÎEuɞ˽ºK:/qEð»{]Ždæ>žóÈ\÷ºœ·ú-o ÈÙBÝÞrÎŒ@<®f«@ ›ï{]”¯1£xÉŒòÀŒòÀ¬©R²52ú00k@¤]f!]cÒ†Y([f•Œ‚d³Xf+P2šmKÓ4ÑwW"hË#èG‰ -ºÓA¿$‚¶>½0‚¦A“qoyŠžIú LÒ´¤?‰[M¿xýƽóðÍÃ7?^üŒmÍ_(~®Ü3ñs}Úâç?öø_ŸI *ÙŠ[ãçˆÃÕl¨dSÑC”ú ³¥Ì ¤3«ß«à¤JÉÖÈ äÀÀ¬6Ì~'²Çyìqû²c»ù8‘=Nd߆au*[WuꪴqUA<^¨§*râ¨Gåq–Ëe´.ÊzQÞš¤*íÉö@ÅùÑE;‚‹ºÕEÝ®ƒl_ó(fŒ4¹úŒM+Fd„ÄŒœAŽI“œ7sšÕ¨W˜ÎSˆÐ0£€Æq$’œ31_”CRn½X¯"RãÕŒAmW%˜NçËi•9¡>a’å·2Äxç±]{V ÁíZÍÉtYu(§»~œ. ©Û䄵Ùê¤j!7±xퟠåqDZß¶¹ÝiSÛÊ…HçMµâJ²=VgNÕ“àè«-OõM?U-#£}EÕ.¸Y”³3U› ˆÝªh¿N 'A{v¯Sh—åA¦Uä8¾‘®[XZÓWîAâãmËû¿¡ûž õÉëËmáñòû(êöîKà^„\¢Ç¬sõ½æ<.7ÖPŸôJܨ®ŠŠZ^¬¡vo”üðÕÔU÷‹æp¿ÃýŽ?E¶õ-\cþæQûKd{÷Cv¶òÕ­†ød«![ iÜjHãê~|ûßÇq«!Žkø8n5ÄíVC¾ºÕŸl5äq«aC&«ûñí©rã~Ks³ÕðÀ‹Œaøa´¸ãCÆcYRhŒé7/ Îÿ1MÆ endstream endobj 32 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /Length 2597 /N 3 >> stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 35 0 obj << /Filter /FlateDecode /Length 9580 /Length1 23924 >> stream hÞì› |”Õ¹ÿŸó¾ïì“YBöÉ2Éd!$$„@Ø2d#„d4„MPÑH b«@£ˆûRÔªÕ¢e2"FEEënQ[­{­µ¸€FqW„ÌÿwÞgé­Ÿÿ½ýß{?&ùÍ÷œç¬ïóœ÷œKIQ­#•¦Ok,,:óšå_ÁòÔ:i[»Ë6èE¢À=DJëü˽Ù_žB$ƾ^Ô~êÒ[÷U Ì4ŒÈ2èÔ3V.ÚÒ;šh¤ Æ,^ضàý–mÍF}*] CÔ.Ûx"Wò™‹—.?÷Þën=ùÅDî Ï8k~%f ÿªLä7.m;·ÝMÊÑ>õ½g¶-]X²:ù ¢æ|"í³ö³:–cÞø4Ûeyû²…íî'¾¿“(ýS¢Ø Rµ,e'Èl¸ÞPŒY§2Õ—é!…̤8MŠªiª¢ÝBÊç~ò®¦È§¾Ñë%üü¨©Ä“¦›•l/ÑY¦î28ährdÓÍD}WÒáÏø¹‘¶Òýô=NÏÓ+ô•°R+]DÑ?h}I? &+’E.ý—}ú~iXJQê.2R£Ïéý{?}ýä+úùoaÙÜO­ÇZ¾ÃÏ÷ô@Ò¡#r‡Ž)9„­/ŒÝJE¨Ôw8uتKaÄžfav%Â)\°]b(qÿ¤Ä~œ2‹n‰ƒD öËx‘ ’„ûfŠHi"]dQ–8PâE‰OdЬHYœÞ2q mjÄQ7W çà;OˆB¤‡‹1BŒe° E¾ùÑ(¦³Â_3wÎìSfÍli45Îh˜>mjý”ºÉ“j'ÖTWUVLð—7vÌè²Q#KG Íœ•éËHKˆq»œQ6«Ål2pàʯöÕ´zƒÙ­A-ÛW[;Tæ}m0´ah zaª9ºNÐÛªWó]Óš‹Ž©éçšþšÂåKc‡æ{«}Þàî*Ÿ·GÌlhFzS•¯ÅìÕÓõzZËÖ3QȤ§£…·:aq•7(Z½ÕÁš‹»ª[«Ð_·ÍZé«\hšOÝV’6¤‚ƒ}íÝbðx¡'”ÁÕ£»qÜFÉaƒjVuÛ‚àô†æê*Ozz‹n£J½¯ ±2hÒûò.‘s¦‹½Ýù»º.éqѼÖ<ûß‚¶Sšƒju©Õ]]‚î¼`®¯*˜»jOya0ßWUÌ󡳺ˆ !Ëåóv}C˜¼¯÷Ó£-m‹1Ëõ ɤ|Ä7¡¼?M˜fˆçKO—s¹¸ÇOó ®khæ¼—æyBä/Ìk *­²dWIl@–¬ë/hÞêK—¡ªnü®Xœ\7Ï;4Þ׳ð‹roPÍn7±dÛÂ._Uû­©9è¯BÂßyÖêîa…¨ßÖŠ‡X"ÝÐÐ,ôµc|\¯ŒÁ’Æf½I¤Y0¦2ˆû^¤U°°ºJÎË[ÝÕZÅ”}ùš¤âð{Ý%^Ï}ÅTB-rÁ¸J%»º«yÁ¢`Z«gÖç"o³'=èoûZ|Í [d”|®`î{.]Qo…g;¦veùä¦,³·Yñ¨-2Z0xkðå«‹Â¥geD+Æz›…‡ú«a”H ™:ªdÔ¬ÊZY¤Ê¦•µžô–tþüSòDædÈ šèËÃÀœxœ:5®-'”ë­^XuÄêÔ™`¤·ãÏS‘¾ˆ ŒfÎÚþ"5 o.l ºÑM2Š Þ M÷6ûúZ|XCþéÍòÙ¤¯õøÖ5úêf6ëÑŽ¬’¦£r\>ŠsAJGqF©Ä¬Éóô‡UÏOÔóÙÚcŠ'õ{»Ì¾ºÆ.Ù¹/Ò!yñá¡Ù“Ú.]‚W³»›¯¦ÍçuykºÚzÂëæuuûý]íÕ­‹GË>|“tù›Çzô¹Îh^ãY%‡Š¦:Q×T14{OE·Ollèö‹3›Ľջ±©9¤¥²µ¢¥;eÍâzï×­Š´J£ÌxeFö4³^ßó Ÿh^ªé=?¿Gn3÷ÛÍïQØæê·)°ilóë6ùAÃÅØn«½ dxÎkYÜÕÚ"_.ŠC(ñ+‚Â7ž‚Šo|·PŒö Õ·°"hóUH{¹´—³Ý(í&, œ{pŽÜ“ºZ}ا° šÉ#x)ª²KoO8ÜÔœ¾ÛÓÛ’Ž¥v 4³9hÉÃÞoÈšŒz¥Zaž\7¿M΃Ͳ­)kÒü,ÛþQeRЂ,‘P£Fo#—#ÍGl@½ý:d‚ëZ‚-yrÐæ%-úrv©Ö7aç> Ùr Â–®h_‘þnâU°fm°`nÔØÌ²¬…d²cæó}(šßê…·5šßˆ¥Î{©Õօص셺¬žH!ÉÇR³lQÖ ¥âW¦mò•4d™ZZxòznC¤Ævm˜Qö®Œ4€wP4Iο0UYõqÙMCÍð‹ENZïÉ„â`TÖ¤6lþÜÞ‹oTc³Ü#l‘>žd«I>¹~W³šz¿õ­L?â34ß'¹0Éó 6µtkÎÊšo>Ö¥›»ºÌQÇoÀþ2G FüaMÄ'[WtöµYöIË‘­MsΉ—`ywþLK¯HiçÑ&m,M;ž 6Ú¤+…œRêG´ *?‚c¡z(uFì›Ô{Ð&‘&ýDvØ¥*ñ7pmR2Â3Ál° ª…¦B³ u°g@©Ús¨w'©ÊámZ+æ ©ót-SÏŽ¤WP¬¶–6ûÐwõq”-¡éÿRËXègºV± ä/@šuš¤ú,ž•ùòß’ýHÊè’Ÿ+íaŠ3ù)ïXi‹)]L®c¥¾BÅ¥JjÉúseØ~_JEëÕhæñ¤]Në¡ ´;)[JÝŒº›)3BoD)Ð0¨-¨l¸Ž* *¬/‹á#Zaxw@Hù•KMýZu©’Ik4¤ôx.£KõxvF´1šGÖ#îŒSŒwÓhõmo‰²ˆ"÷Á©ò®×ß2˜ÉjBV=Έ«)ÿˆ{œ•ã,ï©ýw/­Ìº>À¾ð<ÇwÍMê]Jõ¦¡èã4ý>k7·m)4 ¾™FÓLÓ¾Žü8ì'”„örm$ÓF}m¤G4ñÞ¡ŸÁý÷¡TÄr8Þ½ÉZeEî8òþ¢Ùa“j#U_/7Fî$¯C×FÖŠ¼wõß#^£x)Ä; ó×× ÖÇzí2¨ˆŒ¸¯ÑûI0¼&¢ý‡4[ý ÷—zÉZ¥ ~ üHÆJŒ{êàü‡ÏH_[ß`_-¢ýX3si”vö+yÞq†>Àýî4­-ÇÚ[Ní’‘3p…<×d?R¸ÃÄK)Úp?¯cãÌÈY5 ª9|žéw yΤ’Ežu{óˆÙ©T!÷ní|Ô‚²i˜Ñƒ¾¦#ÖdˆÇRÏG¼×Ñd£郸'- ÿ Ïfm¹ÕÛðla­^-¥Ü@B7H©÷SÔ(¥Y©ñy º\CKÕU#nñúšA·(>Zcè¦ó`;]·Gˆ-ˆÜótFlåqô÷8ÝÝO¬«èÚ~ªí¤¨å8›v‹võ Ø€|2òãp#¥ #eO¿#1„‘ËÌÈad3²Bñc€L†//WrF(~4ÎF/#‘ÊHa$3<Œ$F"#ψcÄò1< 6F3Ü ÃÉp0¢v†aeX¸O3ÃÄF#ÃÀÐ*CaéaFãã ãGÆÆŒïßéÊoõ'ß°ñkÆWŒ/_0ö3>g|Æèe|Êø„±±—ñ1ã#ïÃPœø€±'‡•%þÁx?7 ø;ã½P\%ð·P\ð.㯌wBqÕÀÛ¡¸à-Æ›Œ7¸ëׯqgáÎ^e¼Âø3wö'n÷2ã%Æ‹ŒÝŒ?2^àvÏs×Ï1žåÉ?ÃxšÇ{*W<É þÀ=Á³~œ;ÛÅxŒñ(ãÆNÆÃŒ‡¸ë¹ëîúîzã~Ævè>FˆÑÍÃÛ¿ç®ïeÜÃØÊøãîP,6\qW(vð[Æ¡ØzàŽPìTàöPì4à7¡ØÀm¡X?p+W¹…«lá*7s•›¸ìF®yç~Í5¯g\Ç ®e\Š\Íͯb\ɸ‚§t9×¼Œknf\Šm6qÍK3ºB1ÍÀ¯B1-ÀÆPÌ)À†PÌl`}(f2pQ(fp!—ý’kþ‚«\àßîwV§}î¨M{Ï>5í èqhô˜í¤´Ô ¡mÐï¡{¡{ ­Ðï »¡» ßBwBw@·C¿nƒn…n¶@7[§ýºººººº ººººÌ²8m3t)´ ºêç‡É·om(Z®¤åŒŽ[®¤eŒ³팳g2–2Î`œÎ81–1&ä’Í(cŒbŒd”2F0JÅŒ¢S.ËáŒaŒh†›áb8FT1èv†aeXf†)%#kôÏ?ƒz¡O¡O }Ð^DïoлÐ_¡w ·¡· 7…7 ×¡G¡G ÐÃÐCÐMðüVééuìéU!·\á+Ù9ç2Îa¬`t2*ì‡ ?£œ1ž1Ž9–ÃÄXÍÃ6rdgðè ŒéŒiŒ©ŒzÆFc2c£–1‘QèfT12é.kŸi\eS óMƒSc3‡'«‹rFžø¤d“Ùí°©m;t}RV¼ÕŸ•”œ%ûÊ:4;’=|@ÝßeP@n6æn2ö(WÝ—à6F÷„?ÞnsŠ)Ñ8Ì·ûSìJ(/OªïÍ+…OÚ=|˜§û?¬5|X‹t–/ÝÝïwz¿;Ò¥ö¬NKßΨÔâììâÔ¨¾V‡Õ`À—z™Åi5h·¥ä&Ú쵺¬F#¾´AöÄÜ”Ô!‰6[âB<'†÷ª+Ôש˜ü"—ç²Ä—ô(³¶SNîQªý.·/¾Šñ=öq°D”ȃÏbSJJ & Á5Îïy/C¨k26e(þŒé­ª3#-C±kZJOø=¿ÃŽçKIp‰ú”“Çá‰ýdÆíñÛë5J(ÔŸ¶¼7/ëfîœÙ³gÏÝëF:oöÙ½³Ï…½O–ºz‹Êà0¿ó¿y6ˆIVŒ\¼ÙÙ#FD±ŒGñˆ’åð¯Ék’–ؘ¸â¢Ò‘ꊘ¼!CsÝ#74ñœ“‡[¹ýœ“Ý9†•ÏŸRì²¹mFkrÍœ³Æ,¹º5ÿ»Öq'•&N,ÑRæp™L.ÇÄ1Y“ΨÚQ—Y:¤|HLrF²#);>-3Å—:(7°þ”·¢3‹ÓGùKKä¿N]‹Uù°¡JhGõ1®´b‘ÚñG>eÇ}C‡ÆY{”ü?ÅeØ ƒ'%׸§¦ÈµW^]V& _…ðØx…‹öHÏÛŽWMw?tŽ8¼L#/l¬[ð›c4 §>lK)œ[œmê{Ýž2,+kXнŸÂlŽIžUœfw:û~v[:Ö·A³¸¢Äk}ƒ­N¹¸ñ峺lF£Íe=ø…˜oÖ­6gÆ ¾7ú†Æ¤àù'…÷*_b]O¢½üüÒ¥àþÌ¢Ì"»§G©òÃZ(Ø3ÒfÖÜ#ý6Qï驨#Ý#ÝqαblOx¿ß#_̱{&x ¹“ã\r•Qœpiq_ú õp„’'ýЛ7Û]VVX8wvž«w6~á?x–^é;ï¿y´þ"£@ëß,yW-0FòÆØHpxE¦•/Ë_ÚX4«vXœ]3Û-¶< 4cDNLÖ¸ú†úqYEs64 ™æÏdÖTÕd7[²Ëê†ey]Ùã§5LŸ-R§,ŸšãŒOˆšŸâ‹5%¦&9’'¥æy“3òý3Ëý§ObŽu:cÓâ=1¦Ø„XG’/&mˆ79=ßß‚(]E¤ ñT@÷s”üQ–\a,Ì9BD‹aú«íTêýÄJ¹=Ê÷¥&ØÜ=áwï‡Ñ=æ¿Å7#×é6ƒKþuã76 8ª¨üΠ¼ÝOËž¢Ù/³ÇŸ;Xäbœ#†’#üœþpˆÍÍýÌžÍ `C.vãLæ€ôȬȪwë§XÐhsX•š6£©/^ŽOq³Ã.â ΄œ´ìÂó+§Í° 9Gž0úieS'wØ î!Ù iqóvÍ  DÁòã+¶„ø®¾ÛiÈ¢ñ":â;‡–/´#[xŸß*‹l©ڰe.ÙáUæõ–y°Þ‡¥éé?’<(óGÇ ]e ÒR&ÿðJ^/Æ<ñ2!ä~™×»[.MÖ=|ŽýSH§:jv˜•Sý¯YfÎìÈhGf$.ÇìÍFÞ’ä5D?Fwp8JˆóÆXŒ®Ä˜÷*g¸csÇ3«º Êe6¨Fkbå¼þ…×.ž0¥kÙµ¢Ïê¶OOÉM²™ãó}é…Y¾Øý5s§g¦ÉOLÍJ³'fħݲ| ųÖÔ–¯Ú´õìpü"vœº;»f1c÷€y¢°ÖÛÌþ ÍÃ{”çüQS³§ú³§NÍö«ÏCÊ^"øGVpÈSK¢žtT?,N¢1dsv¸Çà'®4âÐÒ~‡–ÊÿL0©1½ûÝ^¯aRc\Êãt߯Éÿ”à7œñ­Üb {Ë\º{õPº"¡}5¯7:–Bœ‡‡ìñGEwªÿþÉŽvÿ®‡]®ôˆMOñ>—û-Ç lªªî˜|aÏÒŠå-££-&Õ岟²hÂȦ1)¾ê%Û£¢íƒÍm?{ôÌqÞ¸¼ª‚’S&ÛÍv³¦-1ã笮sùüâÔÑ'—UQ7X¬n»fшAÉ©®O.5Oš'©°2whmq²).'-%+Æì)š˜—>&/1-ËkŠÉNMLs ÊÎLÌo\9e̢飪yÄô…¸™eâßcˆ¡!Ø¿Š¼á1¦aÊÆdar “C£„Mß$mr! ƒë Ò]=Ê©Ûs4†>¤X(.ü¥? …qž‚ݹ9pîv O™×#n÷§Ï°öß6áåâCyOâf*_àÂâÞ"\?eÌç蛂\šã9"'Od'‹—Èqˆì(qœ9éSùù#r4#ÃD>ˆ«Ñçë?²FŒx™Åá5NøDºº'6ºÃž:,;sxŠ­ÏíˆsšTS”U\aHÈ«(,®Í‹épÅ÷-Qú¶Š“Åòâûú/ûL‰…9ÞÂìŒAÊS–(‹f°¹l¿®\xèÞþÿ×ÎØú¥'tBÿï¥þù„þ7Hû&ã¹'tB'tB'tB'tB'ôï–i;‘¥ÈvQTÌ ýo)ò_}àCªL)©dT¬ú¡ÿGíU?S?W÷ÿ'»YðÏ „rÛÇä/£Ÿã4òãÛNf¬J¨‰Úètê‡a~8§î$Ý*„HùÉ¢Qÿåúý@½mLt¹þÞŠÄœHZ¥Aˆ—ˆÌnøM$mDzG$m¢5â9¹š5‹ìS©‰¤%+¿‹¤r(OGÒ*e+¯FÒÒ"i#e«ÞÿC®µ³4áñ> +ÁbzñRXÙ\‘@ˆXë&·I/·aw“ÊÎÿaÐ_ ½?D´¶ñÛM‘ b#Çî¼¾y,7Ì6;ãQÏÒMˆ©Be|{à$Ô!K†V—> stream hÞì›ytTŶÆwÓ;sBCºC“!Ì„AÒ„ $ cBÂ(“"`àˆ"*΄Nƒ½8+Žè½ŽàtQÁyDH¿¯ÎîDï}®ußï­õ¿þ¾Ú§Nuª:U;.$ADáÔ@:U–ÕsÎ̺DÞU5s«„ Œ´M™H¤-¨Y¼Èµûú}¿‰ADæé fÌýé§’0"K!Q›¶3æ\<½[RI3Q~"‘mÿÌiÕµìþ”hú«h¯ïLÂw…âÞÈZ”;Μ»hiæ´#ÇP^KµzÎüšjjw9|É›(¯[½tAºÐÃq¿õ]óªçN;}tÒ|¢êãD¦'Ì_¸ýÆOõKòú‚ºi _|v„(}êJºÉ*®!3ÙÌ[̽ÐëdVýUºR#i‘fMÓLºfÚNÚ×r]BÁŸ’2—‹øÍd¡V­·ii.¢mòš¾Ï!¿M~³õ6¢ÖëéÜŸÑ4›b<èJÚH×Óô.M¥Up[h;ÝM÷‘ž¤çémúüi½Ø<—Âô}d¡¢ÀÉÀ‰Ö»A zz6r=J1&×ÙHÀøê¼ØW­×ì­-–h 1î ×^Gô{q:pRË‘å@_YÖÖÀGw|k½­uwë=çA)§ 4‘&QUãùki&ÍÂÈ\Hsh.Í3Jópm>§£4µjPKú³µæÓPG‹¨žãÏø…Á’¼v‘Q®§%ø³”.¦et -§ÁÏ%Fd9®,3ÊKÁJº3s]n8¥YE«é ÌÚZKëþmiÝ×Hëiæù*ºú_ú¿+]ƒ?×ÒuX›èº‘nº¸…n=/ºÙˆßL·aÍÝm\»‘m†“W÷Ó3ô í¢Ýô1–555.Ó1\€1XŽ'\uNyü–œ­•xvùlÁ']Šøåçܱ88޲æ*ÔäVxd++Ήkð ìÏ>—n0žÿlôÜQùwQ5·ž32·%éÎþ+#mŸŸrT¥»žÝ6ß¿íLÝíFùº“îÂ\Üc8¥¹þºïöýÔD;ñç¬?ױ™óQ3ùiíÅL>Dû¨Åˆÿ»kߌûÏD¦GèQ¬Çévš§ðGECì‰`ô ãòSô7”e-.=CÏb‡z^¤—èz¥CÆçs(½J¯Óô¶‡{>Ççi@žaµS&Oš8a|e…·¼lLéèQ#KF/*VŸ—;tˆ'gðƒèŸÝ¯oŸ¬n™]ÓÓR;º;8c£ì‘á¡!mlV‹;± ®ùî‚*—/­ÊgJsfʲ»êsU>B¿¯ãsUÕ\¿¯éAÍéçÕôpMÏ™šÂîDƒ2»ºòÝ.ßËynW‹_Z¿1Ï]éò0|‰áMiF!…”ÜáÊOœ™çò‰*W¾¯`ñÌÆüª<´×’ëÎ’Ù•šCBaCá|éîÍ"}°0Œ–ž? çP¸üZŸžš_]ë]Z‘ŸçHI©4b”k´å³äú¬F[®Y²Ï´ÞÕÜõ@ã†;M­Ê«u×VO¬ðéÕ¸©QÏol\ã‹Êðuvçù:/û$<Í×Õ—ïËp£±â1g¾@øÌ©v·«ñGBçÝ'Žÿ>RŒXRí?’´òÏ ®+OèzˆçKI‘}Yßâ¡©(øJ+¸ì¢©?y²2*}Z•¼r@]‰óÊ+ êʙ۫Ü)rªò«‚ÏLô5LuevÅèSñ×]>=­jjÍL©ÕÓÝyyOŒ§:ø¬ùÍݳP¿º 1KCi…/˽ÀëÊpÉ9˜UVaܼ͛ëC"¼Ë—•Ÿ'ûåÊo¬ÊãʶܥS¯À‘æÞ.Çž^Ô›*e?|ñ¹˜”´üÆŠÚé>g•£ësº«Â‘âóTbø*ÝÓ*å,¹í¾ÎGðu)Æ7wáÙΫ­*Ë'·¦Ú\šC¯”³…€«pÁŽé2ŠrF‡rU©jø–` é~× zjn¡¼¤Ë[s )•)üóoºäöÉœê³Ó–3}âïù—]ãÚ²C]ùÓòÎéàï5;líÏû©É±~1î°Éé,T—ôT¼¹ˆihÆÉYLtùh´«Â=Í]éÆòŒ®Ï&ÇÚ˜ßâ2wqéø c¶ƒ«¤üw%¾žÍ%¥à²*h¹Xƒ5­Fy˜Q>S,<ïr‘ºìj´¹‹Ëeãî`ƒä„‡¶¤U¯ÏŽîW³»›» Úí²» «[ S›=žÆùU3È6ÜEµî²ŠA£¯c*V8–ɝЦbQ\>4³+öž¡Ín±¶´Ù#Ö–¯xØŽ¬vmy…_ZnÕÐÊæŽ¸Vñ0ò^ÕdTeÁ% ²¥1(ØŒúއ=D ÆU“0Ê5-‚Œ˜MÅÕ´h³«˜†˜‰c#&0I‰31ÄØnó]µrz–WÎl¬ª”/Åc*ñWø„{0ù4÷àf¡YÂ|!îiC}¡î¡2ž#ã9·È¸ CÄ ŽÜ“«Üا° *È!x)ê²IWK P^‘ò²ãDe –ÚD0¾Â×&{¿9u8ê “T!<Ì×PS-ûAÞ y¯5µ¨¦ËV5ˆ*E¾6h¡M°Ô(0î‘Ë7Õ`n0Æý (ø*}•òK+fUËÙî£B÷L;·iN“_”UÙíîi¼›xBR×Hiƒ¾QYG(âË*y¬aèy—jª\mÕ”a©ó^âàÈ4l‰¦´i!ŽàE’¥§††‡øÚtCƒø+}h7ùJšS­••Üy£´&Xßm÷…¢Giç eðŒ.ɾàïtUV}R6SÚBcÜK±³ÈN-YqÙžZTÍŸïEÄ­n¶É="4ØÆAŽZ哇aÜõÔò–À=î‹SÎùÉìê–‡ƒ\˜äx ›*Ïø&ddvµ 7¶ð?¿ÇË~FeЕSñ;6ÿ2òTÖ m’‘sLÕ¦ˆ³%ñ ";ÈýW±8/ILãi§)ªÿ”ã¸vœ6›äèÇh'ÈjA0\ŒïÔ æ0šp>¦Sh˜ñ[²f¢š)0šíz€Ñ`¸ñdÐÉtêm$«¶1pŸ)÷}’ÁeúÔ _@íL“i§åm´ÝåO°‚Tóß2б|M5¦ø.`ž _Ï”IÅó Ï”?£Ès1w ûÿ*¦Fê`M¦ ÎÇÔ‰º£­ä?ð ÒÖÐÈþW1O |$1™h‡þ"Íý3LÓh˜mZB=%zê6 /¬® ]Ag04ß¡Æ}—Óœ?°ñ¥´Á´•<â8íÇÐ$h!è¼` ¸ñ(hrÐm0‘68°AmíˆÁí³ ÿ};L;,´í¶€¥†Ÿî§éÿ-0hgºþ4¾ ˜šáOÀ3ù†Ž¢"&ð#øéL¹’Úé•VV¬Ç´ ÜÔÍ >èÿ€~šR,ƒ©ßùè/Q_}æì|fQ^›¡‡iây$ÿIÌÀ’ŘzÓ¼?ヌãTÙ:ŸÆ[Þ‚AÝ*Ó0ô¦jý7šôWÐ.¢TËÍ”j;L©¦&ø[‚~ÐyŒ:`ܲø<ÖG0þ»úmð¹ç´½êì5Ó ÆC©ÖtJÕRŸó1žõl1õ<`Ê ü*Þ¢+Ä[yÐHèxàu Ì@< lÑЦdZ+¾R£ßxYtÑÚZ,~£vÚiÚb©•ßõ;Fz{`«¡Ù˜ß3ê±AŒå%cîT;UÚ ´… ü §§P)ƒu›8­Êæ] ÚÚ"¾Eý]”¢R÷Sšé3J1Õÿ50Ö)Öb¬ïü5ÐÏMઠ^ JÀº ßt.úVê`n¡>ç£/Áž´:üÎTÄjh6ÕéÕT«/ÅZÝIyÚ§4Gih¡ÖBÃÄ“ÔQÛŒ9úœæˆªsGyŽ˜Œýl,ê~fo܇{ÄOÐî4T|Lnyv9õ¯©«¶gÜ•äÔúÑP­ûY=Ø$OíÓ6¢SÇ´±Œ¡¤OFìÔ60ã¼ØV0KP¾Üî5âÓ@•ÞíýˆX˜aÄ·ƒ•z'”‹Àì3m¬ÐÃPŽQFl'¸O»÷ß¶±ÏÁGr í)ð ê> Ž"ç0²Sc@qyÈ[àƒg)‘àÙVC—i—ºXüL«µ*_ ¬“9ˆ^†óu5 à¢õYy¦q¾Ðz›<›9_hů 1FpuTç=ƸŒÏð@¼qÎm½ ¹ ŸÃ8/[çIµÄà;qžZˆ®1¦ÉæÑ­¿ò™¨—g¡ö›qƸù,k}Mî­|nµ¾iÚKÓùÜj} gT¹q¥(uîèkh2Ÿ%òã ™@ÅÆy`ìÛ­·K5c¤ä¾n® 5ò|15fàì¯6ðà=í‰õxξî¨wÖ(ОÃ0×$C°-%‹Ö“6i=ÇÁ2iì+{ñ|Ó¡›±Ö5*Ñu¼;jO˜Cé¦hZŒû+1ÿõ$ÒM^º&È oîK^ó@òâ¹£Í÷Ñ&óuT+ÑÖs‚±’sÝW3Óæ3tĺÐ<‰1Ÿ%ô€1Ÿ ‚,Æu"ýœÜ±Ú2ßñ›e~$˜Ž–¹Þ™|ëcÒ-'ÁÛœ7Zõ³yœéWžg™§ªÜ ÏÉ´`_ØÄsmn‡:?‚:Zdùm$ÃI‘–D¨L¥I¦jšjµÁ_„ü.€û¿Cm¬¯èv#OŠ Ò óÝ@çäC]ÍKq7Ð8Ó:\[G7‚‚9ŽWæ/xÖÌ­0ÖËÒ`Nr˜\+2ïRyÄV¬Ù­È¹³ð!¼^LWážY¨w’æZÜÈwòQžB æUˆŸÐ…ú7È_zÂp¾O!§©à Ä.Œ8ÎS.ÆE®­ÃØ×Çš(Bž— ωsÏp´?9A±© k¯ 9UÎ4>ë书?„{)Žâ-ŘgÑÓ0œcéÁ³ªèrö<3r yÎ$Qˆ<ë‚{s¢þ:u0µ"޽kq‹©—q†5¿I[Ì­(§s9bOõXÛÑ·gà_¤lSYàWy6c¾õyx¶ X«wI´[Dˆv =!Ѥ+Àdƒ°¶«èhÖki΂)XÇ]äšÊõm¾’nDlƒŒ+Å­Jƒ± í!Z(5%!çKÂûT=„ö!΄ݢQ?%v¡Šr¦¶gÐO!ŸÖÁtù ö«~Šž<óÎÍ¥+À2mži×VÓXP¯y°¯zN>0ã_ÕC[·%`)XlòÑ…¦ œ¢ÙàqÖë}h½g’g“õg€sÃ:ˆÕòí–à÷Ïó”cÞI%x^½9¦=XGSx"ŒÜ©þa0å2è\ŒE|oý{œÕÛðþ>Žß·¡Þ6äi)Tdë…½âö÷±Æ£¨½iMÑ^ľ|œ¦‚R¬úÛо´R÷#gë‹ý /Öv‚] Ì.0 \jÀƒ\ŒÍFJÒ/Ã>¸ûáNJÓg¢û0E”…µQ¬ï§1èÏh°LSÁ0Ãèó6¬ŸmX¯¨ó‡þ¥ÿåþuÿ³þáý(¿ ‡ðQ±ö ÑÞ¥Tín¬‘iÎåžÚQÄ?Džò•BKµWiœØOU â?¹WÛJÙâGê¡¡AZÖåpŠÕ pO)uײ©ƒ6m• í¿Z¯9P¬ÇPžy ÀYjNj7Pž§‘3h˜y¸¼LÌ+(>g»Ìç m#©±‰Öç1_§p®Ÿ¢  d€ÉA_ ða®øºŒ•ëÙü9u5™©å š…¹¯ÖN ÿ;E6™oÈ<@ž™–iØ‹Ëi‚)ž†ã»Üž7ˆ ÝÖ1@iÈHºÙ’ßݦSº¿îjÑVïm“(†Ã¬Rære.S¦A™K•Y©Ì e–+s‰2Ë”¹X™¥Ê,Qf±2õÊ,Rf¡2)³@™ùÊÌSf®2s”¹P™ÙÊÌRf¦23”™®Ì4ej•©Qfª2ÕÊT)3E™ÉÊLRf¢2”¯L¥2ÊŒSf¬2^eÊ•)SfŒ2¥ÊŒVf”2#•)Qf„2ÅÊ W¦H™Be†)S L¾2yÊä*3T™!Êx”ÉQf°2(3H™Ê P¦¿2ÙÊôS¦¯2}”é­L/ez*ÓC™îÊd)ÓM™Leº*“¡Le:+“®L'eÒ”IU¦£2ne:(“¢ŒK§2ÉÊ´W¦2eÚ*“¤L¢2 ÊÄ+§L¬21ÊD+¥Œ]™He"” W&L™PeB”i£ŒM«2eÌʘ”ѕєÊPЈ€2­ÊœVæ”2¿)sR™_•ùE™Ÿ•ùI™•ùA™ï•ùN™o•ùF™¯•ùJ™ÊWæKe¾PæseŽ)óOe>SæSe>Qæce>Ræ¨2G”ùP™”y_™÷”yW™w”ù‡2WæmeÞRæ°2o*ó†2¯+óš2¯*óŠ2‡”yY™—”yQ™”y^™ç”yV™g”yZ™ƒÊüM™§”yR™Ê<¡ÌãÊ<¦Ì~eUæeV¦E™}Ê<¤ÌƒÊìUf2~eš•ñ)³[™]Ê< ÌNeš”¹_™û”¹W™{”¹[™»”¹S™;”¹]™ÊlWf›2·)³U™[•¹E™›•Ù¢ÌMÊlVæFenPf“2×+s2×*s2W+s•2•Ù Ìze•Y§ÌZeÖ(s¥2W(£Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡Ò¡ÒQ§ŒÊ„ʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄJ{„J{„J{„Êv„Êv„Êv„Êv„Êv„Êv„Êv„Êv„ÊvDîi5û“;‘3û“ã —sé2òH—.eYéOƒ¬àÒr–KX–±\ìo?²Ôß>²„e1K=_[Ä¥…,u¼Èß~(dË|–y\e.Ë– ýíò!³Yf±Ìd™Á2Ýß.2Kµ,5,SYªYªX¦°Læû&qi"Ë–ñ,•,,ãXƲxYÊYÊXư”²ŒfÅ2’¥„eK1Ëp¿£RÄRèw ‡ c)ð;Š!ù~ÇHK.ËP¾6„ïó°äð}ƒY.`Ä5² àÛû³d³ôcéËÒ‡ëÍÒ‹[éÉÒƒ¥;7–ÅÒïËdéÊ’ÁÒ…¥3K:K'n:%•ÛìÈâféÀM§°¸ø>'K2K{–v,–¶þ¶#!I,‰þ¶£ ,ñŒc‰å` K4K_³³Dr0‚%œ%Œ¯…²„°´ák6+‹ÅŸ4bö'•BL,:5. 2DXZ*â4—N±üÆr’¯ýÊ¥_X~fù‰åGb9äbä{.}Çò-Ë7|ík.}År‚å8_û’å ~ÎrŒåŸ,Ÿq•O¹ô —>æÒG,GYŽðµY>ààû,ï±¼ËòWù—þÎò¶?aä-ÂXÈa–79øËë,¯±¼ÊU^a9ÄÁ—Y^by‘å®ò<Ës|–å–§Y²ük>Å¥'Y°<Á×gyŒƒûYey„åa–®¹K±<Ȳ—e?>â÷ÇO€4³øXv³ìby€e'KËýþxì×â>nå^–{øÚÝ,w±ÜÉrËí,;X¶³lãÆnãV¶²ÜÊ×na¹™e ËM|Ãf.ÝÈrË&¾v=·r˵|í–«Y®bÙȲk®çR#Ë:–µ,kX®ôÇUC®ðÇM…¬fY囹œå2œÒàÃf,.õÇõ…¬dYÁ·/çû.aYæ«…\Ì·/eY²˜¥žeËBnºŽo¿ˆe?®2Ÿ›Ç5ç²Ìa¹e6Ë,¾o&Ë îÙt¾}K-׬a™ÊRÍRÅ2…e2?ô$îÙD– üÐã¹éJþ¢ –qÜݱüE^n¥œ¥Œe K©?Öí•ß0Ê+—÷Hì*H‰?62‚«³ ÷Ç"/E\*dÆÁìJH¾?v $Ï{)$×Ûê.€ añ°ä° öGã|pi?ª2e€?J.þ,Ùþ¨a~þ¨ H_ÔxH¾Ö›¥—?ª+¤'×ìá’ÖÝ%ßÍ,–n|{&CW– n¬ Kgn,¥KKª?JŽRG7·ÙÛLáÆ\ÜŠ“%™ïkÏÒŽÅÁÒ–%ÉoŸIôÛ'Cüö)x–8–X––h¾!Šo°s0’%‚%œ%Œk†rͶa±±XY,\ÓÌ5MÔY4ÁBž@äT§¤5²Æy:²Öy þ7püŠØ/ˆý ~?‚ÿ|‡kߢü ø|N ~|‰k_ ü98þ >‹˜áü4b¦óð1øEìôCðxå÷ ï‚wÀ?ÀßÃ/t¾ÞÃùôpøç›áiÎ7Àëð¯…g8_¯€C¸þ2b/…Ïu¾ÿüóðÏ…Ïv>>ËùLøLçÓá3œqïßÐÞSàIà ÀçàqðXØEÎýauÎGÃ: [ä|´€}ˆ?ĵ½¸¶1?h>°;ôbç®ÐeÎB—;w†®p6…®tÞî÷‚{ÀÝà®ÐLçÐ;Àí¸gt{è…Îmð·Áo·Âß‚¶nF[[ÐÖMˆm7‚À&p=¸÷]‹ö® é¼:d”óªÎ!w97„Üã¼BOu®Ö³«D¶óroƒ÷²¦ï¥ÞÞ•M+¼¡+Dè ÇŠâ—¬hZñî O‰%d¹w™÷’¦eÞ‹½K¼K›–x7Õ{Mõ±õ‹êõêES½È«Ýë…FõözW½¶È[ç]ØT祺Ñu u¾:Ó@_Ý‘:êDHKàÀž:GrÔ³¼.Ü^p‘w¾wAÓ|ï¼és½³Ñ­YÙ3¼3›fx§g×z§5Õzk²§z«³«¼S²'y'7MòNÌïÐ4Þ[™]á‡úc³Ë½Þ¦roYv©wLS©wTöHïHÄK²‹½#šŠ½Ã³ ½EM…ÞaÙÞ|<2µ³·sµÓí²#Û¡'äC»;<Ž#Žo&røztd[g[­sd’È•$æ']štu’™øJ¢æIìܵ 2á•„¾N0Åx:w+ x{¼+^“Ï_R^`hNk>Ƴ–Ä»Ó "ãDdœ3NËwÆ Š:õM”÷„ý»)"#‘š'Õ##œšüD螈ý "Ãášü„ëñžpDd‹ÂF—D†:C5oNè¨PÍš“[à Íì^@ºp AÂÑm¨»WÄ9 ôýBþãY3 qMsyYFFq‹Æûl£'øÄZ_j™üô”Ž÷YÖúÈ;~BE³WU6 -·Ü+ÿA½Q¾bãFj?´Ø×¾¬Â¯oßÞ~he±¯AzÇðé U*3&/¬_˜‘±h2>&/\”aüEIÔËR† Ê¿ ¡,ÿÔeÊø·?\ 2e!~c‹2þOÿˆÿÛÝÿßðÓLòÿÐVS­¶ \. àR°¬ËÁ%`¸,KÀbP…à"°ÌóÀ\0\fƒY`&˜¦ƒi Ô€© ÚøGµÚ0LÁ0T‚ 0Œ^PÊÀP FƒQ`$(#@1Š@! @>ȹ`(<  €A` úƒlÐô}@oÐ ô=@wºLÐd€. 3H@Ht)Àœ ´í€´I $€xbA ˆQÀ"Aa „€6À¬ÀÌÀ4$€Oh@¢Z˜h§Á)ð8 ~¿€ŸÁOàGðø|¾߀¯ÁWà8¾_€ÏÁ1ðOðø|>£àø|ÞïwÁ;ààïàmð8 Þo€×ÁkàUð 8^/Á àyðx<žÁßÀSàIp<ýàQðx´€}à!ð Ø ö?h>°ì€  Üî÷‚{ÀÝà.p'¸Üv€í`¸ l·‚[ÀÍ` ¸ l7‚À&p=¸\ ®Wƒ«ÀF°¬`X Ö€+ÁT;¤AàýxÿÞ÷_àýxÿÞ÷_àýxÿÞ÷_àýxÿÞ÷_àýxÿEÀ °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€À °ì{€Àû/ðþ ¼ÿï¾À»/ðî ¼ûï¾À»/ðî ¼ûï¾À»ÿÿ'ÁôSùÿCðý$N™,3Lj]¨¿nŽ ¬ÔŸJh$MØOáXÓñ4@<ø`\^ž-Óú8Ö«F.¬xRÒ\O¤I ß×¶mŽ{_ËF=ª¿¸ïͱnÄ^žsúƒÓ‡²Np"ºÖ ‘õþÑŽÚ¿=Õ?«×Ñ7öè.¢R¢ b#4«5ÖâîÐMëÓ)­o¯^=k}z§¹;DhF¬wß~ƒõ^=“5=VEk²,ô×O×G¶h+Ý9c{™“ÛFƆ[ÌZ»ÄèÌA©ö² ©ƒºµ·êV‹n¶YÓû íP<'¿Ã;Ö¨öqñí£m¶èöñqí£¬§ß5GœüÎñ[®iÎo›tËÀ‰9õ›BlšÉbiINLê20¥hldŒÝcŠ·Y££ÂÒó&ž¾2®l£]\·uºiúÎÀIQaŽ¥8½/'aTÂîZÇöØE ô›=‘A 7ô§=a†Û }‡gHàÀ¾8QbcöRNŽÈÊ8jLPî“RÕÃGŸ>NTØbS’;ÄÚÚÄ¥$$¥ÄÚÚÚ¬f³5ÌfzG9’ÿ§ià„é˜9…b¨-÷´MDwbíèKl,:^Ä&¢ ±-Z/Ou§¬ä`Ç“ƒ‡—‡~%;žìxò£È>B(ItöG–¹[DF³y,åœÈÁ”sçßœ¤Bœ7ÖÞÝ49Íq±ÉšœuÓ±á×°éºÃëó†oú`ÓÕon̰ӄ›,¸iJç´ñ›ë.ºyrºvãÖSÍSÆÝýÓö-'wO{×÷÷Í{lýÈò Ψ;°¾¤üêý˜…-“úvýêI›<‘Ñvô1F~äô]bäÃà¡b‚œ˜àlÄ*¦Eüâq$‡ÚQ7Ô.?P;4UBåP…âú>òÈùK¶·‹'$sx—¤ŽEI#Ì#0q9Ñýåó«é³³ôÇ4â¥sfR>¾Åõ‡©ëÛ×P}»-Ú•˜äж%v+ê>xyŠI‰®«%º]B|{»uÄæ’ñ—ŒHI²…ÚL&|h‘%“ó:VxO¯W}µ-´®· µ-ñŽº`úº*¹"¶´nÒc„ºÐÔð ZJßàH„GB–÷FÚňà„È!IˆËp¡R†\3‰òr†ŽŒ-ÄÓ†âBúöI1™»·óCiÃEöQýa›Í%r=ä䜈Nè/²Þ²û¸üîñ!&K¨54#glv—¼žŽNžÑÞRO§Îc.Ó±p@ç8«®ëÖK›}‹²ºx:Ç¥{ÆxËÉ­‹wtcûþ˜*Ëœ&ë³zRo„ÔŽ¥Ï¦þDâÅ œ–™}`°aÐôÖ̆ŽL:Q>#S—ÞÎ:±“…ݽŸ~ó¹ÞžÅ~n5íèÄÞ³'¦Ô­õ4öì÷}“¥ž¯&ÔjÝRÿùð{Œ;« õf„"¬}hÿ;Ä;_Ä÷o}aõ¼!B„"Dˆ!ÂÚ©âc%í¤ ¦n¡„Ú$¡5x–ðÑ·iH™NHvR9«\^‹“}çGŒÆpmÁ©AŽÐ>rèùPµV{ÕR»W{ª$•.%£|¤— íoûLÑ¥†ŸÕ¨£ÓŸÐê-ö)_‡\£”r2ä1ðó!O€_ ¹NÇ”«"ºc†hS ¹B›Õs!W)¥þr ö_C¿òø³c;ølÜömoÞ¶òc{††‡ÊÛKf…Oy|%-ŒûÌæÁœí1“yö,÷Û³-x¦e6½CÌ%KÔ™åÇøÃÐ ›px€úû3°}f:V ¸²ƒi·ê·ýüª„Ííï0P¦í/Ѹ •*,⦯äùoËþ·A>8c&ý€qP‘= (¤;•ïOäÇÁâÛ/7ÝèŸlÞùu-¾¹öèÛ[Bþ2üÀxúÉs߸¢Ÿ‡jÔŸÐ 0³KÔÕ endstream endobj 39 0 obj << /Length 3070 /Filter /FlateDecode >> stream xÚ­\YÛ8~ϯ0ò2òlšË[R€<¤÷ÂÎÃHd2[îöƶz%9Nï¯ßâ¡Ë-¶-Rh MQÔGVÕ'²(²ˆ÷ ¼øÛ+l üøý/¤0ü‘EÂQŒé"Æq‘,VûW*Ÿ¢4I„ TˆE™/6¯þý2†À¬ñÛïx±†{¿,0bi²8é’{UÚ`îz3@´*F2%ç’q&‘$ÉÕ² ÊÃi˜‚OãY4äu{÷ê¥|‘¢TR¹¸Ût*Jæbq·^ü=–ÛC½¼TD§ÏXàïÈsùôŽAYþ~÷K+ã_î†Æc˜A8&­Æ9ƒV±üOb—®^`B æÓ@)G›Cã—Ìãø9@£žK ©žCtôñmDgÀgï¾6Ë|ªìÓ…L$Jbnlÿ¢Î—7,Ž£ú!«›”Í:-iå·Ï˜ˆbIÈÐùërø!¯Ìef~6Çê.J KqtzØ®ÔãææÖ–Íä«c¯mÛzIš"ßTñüÉVjKdåýqŸT^]õ Œo¼\Q²R5›ÈhŸ=>.o˜!ðDanÁTFV}3YÛÃã±®Ðò†3Ý=èfB¶•Å\”y},•y4;¨ºA­q_­tšR MÒMùçc½-à Sr`ʇÛ‚ÅWxÑxôŸ|U+½‘Ôê-ÑJ!VoІÌ\ÞïŠr«”¢)Ü0ÆP,« ûBÿë©~(ð•Ñz»Rfm¬vYe$ innÇ`ÓSPõª õöporê¦ø(# «Ì«ãN m«·{ )0ÂIE–Ö‹üp´ŽvQõýÃÜø„§mõ`rµÿ ¿«bΦ-j}J5%‹Whÿ­¡ Œ`=š4îW$â˜4½ËŸRDÓÖ§Ú•DÔäg£”‰¦ägŒÙX½ ’P­-ôc¼Bõ–Úm; ¢’4EÀŠLFoÇ n¨€æÃ\o æ¯Ë„6Ú\eÖ¡Ïáu( )F&" ¼QM}w`ì÷cµ1ޤlUÕXçѲh³)Êý™ç_÷oLJ¿5ƒ{›bgšt²3Ṵ̀Zãä±8~Ý m/£ïK˜ýd»cÞÎ@F´ÈŒ54}ÑЗŠV¢ËÓÃt¦=0χÇ)JpÈ€sÂå' Í€3YÎé—Š¥2È—ìa„ú’Ó¡œ¾ä™d¾¾d‚Z{Í !,çôƒËQõf«×Y¸0ޤêÒnÕ7ÊÇ'¯wÛ¯èCëfWœº¥>V^ž¥pN!aÌê0‚™5Êͬ¡dÞÌ QPˆ4äåîV8F±aÆï0‚?Êmü¡dÞÆQPk°4ä圢r®æ1¶[YçÓ©|ù²=lë/_T¿Rå»]üø9+ï«&ýó·Óºº²{¡ [Vk‚Ù5ÈÍ­¾LÞÌòWLË…`Íø"iN±¤Ï)*€L £ÚŸÑ¤zýú5L{a zTë./ó…¨%À©ÃæÌd(7k†’yó&DA­½gÐ?ÖHÔ°f£À »;êÕ IÔe¾aŽ’4Œn-D0Û¦"¹É6Ë›kÊié®o¨ˆ†Ä›vŠEÈ®}®sp°Ë\‘ë§?]E!–Rý %„C=ŒPM‡r²èL2_)¨1þòÇr3‰¥Ê™"=&™Uä!•>]I¥ƒr˜ÔBi*’›G±¼i œÖòáÚñ†rΘLr™½Ã¶ûd(·á‡’y[>DA­½fÐ?–sÆb :!g³0»3¨ñq®›k1#,Ü™F0&C¹y4”Ì›G! jm?ƒ†ü±Ü3/&1’Böf^v}IñI¯1¨DuÜ›D±9»c k&iŒ DH`‡Õam2”›hCɼ‰¢ –3hÈë‡'À‚¾Çói°¿þ¬3?^\wbj[ iÛ[ÌsÝI!¤T¬;]pyÝ) µ'ê⊽²IŠ„€ÖA‚õ6)0I›%ϤYò„¬v×¥$ѪЋ©ëÜ^–yVëí²’êîgl )fÀ±ôòâ­@8aM1µ;ÆIxëö2Vo3ªú¬Àb¢·TF†º½Ý2*Í&ƒIÞÚ ©„kkŸí8[ó×=oשŒÞ¿1·ìò².l—¼;õõï[‡Án:Í즃g{5./3 =E2Óæ£˜ïK‰Í—ò2Â/¥3Ú—rª.œóš2DYØðÛÃ~§C9‡ß3É|‡ß 5öšCCþXÎÅ`šJ”Ø/¤ïã®î$ÕŒáªO 4Qa“…F0‰&C¹I4”Ì›D! j ?ƒ†ü±Ü$­'ÒHÜ>cÑíõ,‚‰0£,ŒEF0‹&C¹Y4”Ì›E! j-?ƒ†ü±Ü,ŠA;xß|@ÿ1`Ómû5ôÓe.Ád˜É°¯Ÿ=Œ`.M†rsi(™7—BÔÚ ùc¹}˜ rØ‘tÁÆŸ å6þP2oã‡(¨5Ø òÇrw$ÜÆÖœÇóà_mâúñ‰±à¸îF0­&C¹i5”Ì›V! j©0ƒ†ü±Ü´b1ÂÜÆöžP¶^+Þ¼¿Ž8”h‹§Ã&Îd(7q†’y'DA­±gÐ?–›8T} JÇø8ù@JDˆ˜ç“JÌó“ŠB`$$¼÷ „ËŸTšÑš|ª.®;@}|L›pÏ68|Õp™k§T›Àoº“FÃhlœN Cq}ɤ(î ¹¿d*¬6òek? öb©LDRýp€²*ö{[ó‹„&©D¸77 "tÌ“Ð*(о¼!ú¡¯@¸Lè€f4„ž¬ §?MàN¦z¡ã×t(çøu&™ïø¤ Ö^3hÈË9~õ+Ä,3sý‚%Éd¦±˜ïûIòº_¸âm÷nDgð‰Š¸nô"R"žðÞèE¥Œª'slLöÃ\×ev¨³Òž&³{2Ùíâ•ê(›±á,V[_âfp±aÍE96‰‰.±·¢fðMЭ®Ö T¶mãk‚jýY²ö´˜OŽ(Ô®D³6§0›`Ê!¤ ÃÑñѼÎ{¢zi‹‰Tœ-í¹V3IÅ‹!›k³²›ÁÔÑp5÷—} îBS <{¬¤î•­•áÃQµÝ?îÌa:ö¶õ ÒÈìcÌÏ'µ‹”iÏ#²œÌ"%À©àæ%Q§Ù£yÔn'žò¡º¬ "DT¨@j•”jåXƒ¤+Ý!;×-cš[™>è››½ÏÕq>‚Òæ'!šSœ„¢”–òö¹9‰);l«½ÉÊš€][D«F5k»ÂÄ«vÔ¹D„Û®ö«9h Š`ÚhG»[p©W}á·8èû,Ò*á&]¥«C²­NŸQIã†Âu¾ÉŽ;[̆ïkÜM÷d¢Ÿ4×­p&X^Õ¬åsÔ×6v$à½8h¶t¾°|.z‹ÎÐÓl÷;»² „j-—ã®2¯¦Srë|~èœë8¢ˆ7ÑÔ¥MKË>½mBÿW8V:©òŠj§dM7¹ L܃N½Ý¸"e`Ôû?§ˆ endstream endobj 45 0 obj << /Length 1364 /Filter /FlateDecode >> stream xÚ•WYoäD~ϯð£GÊôº/ËSvaÑò€@ŒðàŒŒYÇÎÚ=„ù÷ÔeχEŠ»««ª«¾ºz’è>J¢ï¯ù~Ø\½û¤óHkUxo¢Í]”Êû"Ê’\%ÎG›*ú=¾Wk“¹¸éøÛï\ظ.‡¶©¦Öÿ”m} »ÜÅaW3ùie²¸¾ü‘h߯LV&J·C]†ºâÍ-2ä ïÆ0ì·¡éî™R®þÜüg§[ç”Érð‡lý®ºkû'a=óÍåòbâìoWkïâ¿êmõ]…RÑÚi§¬I£5|K™÷mn㲪È$››8”ã—‘É¡çoÔj&.þ±ˆ†-Òx×# Eý7ýä$ìÊ r¢>ìš‘• ¢Lî»ö°ì®ÌìÔì¹YòÝze­ŸØÈ’R®êJlÞ@Ø.A Tjü9$ÿ‰µU^ëE¬mšÄaXiˆ'X!pŒ5Zã N\@ü;ào XæÃ×A Ìãš"‚2TÜ3©©àCsw`JÙ¶çÜÇ;0ýè¤çã/ãLF“8®Ì; QÄ A ~šÎºø#Ø^Ý‹%?@ûš9)œ,Ã*FÈ©öÙ”F3“a·Å„8½«éZ±‚0!l6ÜDõìf"ú£ƒ ¡7‰Ò雪Ë*­ó…ˆ+Õ«Lç b‰€‘.,y%¤»}· ýÀ›ªŸùY1åý?\È\té;L·‘×%ƶ¹ßMá;³õ ñbâÍOŸyAÝîjDÖ'è…ý†]Ô5Ï3L‘"‹÷œá*z܇q ëÌ©ÂLþ¶²NT^ÌÕ.ëYÈ V“9‡%=©Ò~¾ kÜÙ¬r÷bmWAM¼€öO;F›ØiOíŠlàóOÍý~¨ym„ãi×lQjÇäqÇíŸPÈ¥žŠl)§Lí•Ï.ÑÄz(p¼¬¤êŠyò –Ü€lÇ_€Fhíþ-ÝÒ¥îu˜}z¦ëÃt1Jö¬õ C=“ëòˆLZ@i 8¡ýí³”íØŸ •¼…x Á3:W¹³çàq43è¼H¨Ñl>Í©óÓ!k¡e9ñÕ“äÔ;ñ<ÃyP×Âôģޖ'¶Õ*=ΆWz dæò‹Ú¾¬Äé^8©¼2>?÷üù#½v“ש›½†¥tß”ž Èʆg>}/3rÿ'Æa¨ÇGê·=a•Jtà‹†Õpà-•?/E`¾xÖ×È ]–ZõIî8Ã/gðÃ{6’ióàpfÒø—æ¡iáÙvÀbÇÌšº'2S˜I#A€$‚›!œP@¢t0f%£™õ±íÔ‰Çô¢˜ÌãåsÁ¶ÓŒMdÆj„‚‚ðÉÌ+;á”t ³6þÜMª'•üâ·'ÃBcršø“»(Ä%1Û<.y×ß!K:)È^Û©”Þ½ýCš->/ExtGState << /GS1 48 0 R >>/Font << /TT2 49 0 R/TT4 50 0 R>> /ProcSet [ /PDF /Text ] >> /Length 2408 /Filter /FlateDecode >> stream xÚí\K7¾÷¯è£&€:|?Ž› ²—…Y$؃¡ÝÄ»™1⌃}üú­¯ŠdSR2KÉØnرD²È*²ª¾"9~3èñŸã µôhø‘ Ѩñç DÓß»á›OÆ×ƒc6“²cІšeƒßPŧŸß‡q?jþs¿§o¾üZ?Ü—þ=Çï‡Û2dV“9²Mä·ÚX¬©`L#†ÕÂè{â?èþ†Ø Lì¸eœ”÷wüÝݰ¼£ÂvÊaœœ)ú·¸H ñq[);y’ PÎ Œ¥°¢©å[*O¡RÑNÊÔ¾•02ˆ2D)Ó,¸7©ÈÐýðŠ9ƒÓÝ5¦_Ús¹Í0Šø·ƒ*Ÿº©PRTÂí–—íESðg»áÓÝŽºŒ;(P§q«YÀ 'Fc5ÍjwGU? “R4önOÄîßÃw›¯ßÞh5¹ÍËŸßîn¢Ÿüæåý7Ûýyøb×Öt^Þ)ýÊ8ÌΤãÅq¿(R¼4R€Æô·¤Ñ˜I(ì67eGRœÕL¤‘~¬#Údp»‰$aЗXhë‰$V ³ÎˆJ²°Ð¶¬©“ï¨4%µ‘¾0$}¶DÚœD$Œ¡Àm?Íï[”004m7Ë,YÍd|fVÄ¡«š4©~2¼ iÌ ‰ñdH šL ´¼‘,ŠTƒ=´tœ<}g\™{`]RI‰V_ Úó®–­E&ÔAD¸Z$Õ„W#QK³#3äs²û…€œ2`𒉬ƒ@³ RiÑ:´¦ k!$‘¶‘2C,‚á•7®iûyá‘T·FXÑ9ƒ¢¾=ðÂY.[Þ1vôØV¼_-¶›1¥)@åÙ'¤n’ }Á˜ÊÒÙLÚ¡RÆÒDÞ*žL=#«Tü†Á²aúe‹z,PìÎÚMØó&'¬]gx†·ùêõO¿¼½¿Ùý &öæR~wÑq’?ZÍs5ÏÓ<Ù@{³LAÌ’ÚÀ*a‘–-ò/¿¼½®I]1H°u¶5ó”Ÿ`ØBKí¶PFãˆ>´…²–jÙ BdÞuh–²hBÓâwoœÒ¬ÂÍ„uóc§j²„jh°÷‚Žþz=íTÝÈÔÒÔ6Ýd}¨›¢&œvE7ŽfÕtÓbazAQ©²>§›á1H7›ÿ6µš§=UKUÖÓñ3ºjWsè³T<³ÓZÁó“Áó#×¹ÆÈœý_Èqúóçë®(îs _WKÆÑ"?hÀ÷lè‘–öƒ=ãÓOnÎ$mÆÉ™Š²k@z¦É¿K@Òk@:¦Òámãå$E»Çœ¤\ܳÄ(`C½äÙe—^jáÙMių›`¥Ú*„e³E3«Ê:ÀIvÛ\i&Da@Í ësŠ¢(³œ´]\7‚F<‹¼ã›·2Ž­Ê8ö«†Õ¸…%–¢.Î@¨äE.ìÄ=¸ ß÷e_<…ëÊçÛ…4¬aŒq„Ôó0mïÕÒ«Á)Ž5Iaûß Ž5ÚæVk3l€I¸H"±˜ìNA8$‡pÈÛ”ÄØ÷Ò£ŠYRöˆ²w\†9/”㪤÷VÛ¸&™ ,p¬ü5¦PÇÖ¸LJÁ‚ëtf èþ8¢  ÑÁ¢G[Ð$ JäøMŸ9ÈŠÖ"‡×B艱 uÚŠ@:È*RâR“k%ZO)“l™Ý ¹ÆVÖ˜m¡$¬¦å•ÔAAÛp—wŒ‰ê„¤bë±NBažâŨ}fß›§ñ{¸õtêðÁÖ£àŸmXj­·\ëC­#ŸòPëB>vÉ<^/¡Wóü˜/¡"½–·YÁè§šÎaFãÌãÞq½¸†Í:{înÛ©ã»mg»»mg»»íJðÅ-7«×ÙN¥žèîw+QÒ“»mÑ¢µyÏiQÚ¶ ƒÿ5Ý-d¼rþ€èÖç#Ñmr³è6ÙYôJ°LܬJ ÌØz½ÂÍfÑ2^ñêLC²±Ëyÿóp>_¤[¾Å¯ÒÍ·ø<íz‹$oñѬ]ÜcÚ¡ç[ü#QU‹¿,]{‚áºghWŒRk.¿æòk.ý\žàh8±àf×OÏåÑÕ-åò¥‚’òz¯óù?ú%é âWÿ‘ƒxöQÌÙá]Ä/:Äñé.ñ½ñ"CsÖããa|‡à¯I’þÂmœÒr ‹´È®ÁbýÕ¼âÅÈQ)ŸswKA»r ;'·”TµF´Øq”¤qÙ5V¦–BÚÇOÍC>ÔÞðË:¹€QĽN‚/ãWg¿éÕ¹£V¼êŽV¼êŽV*ÁqÆ«îh¹#ºó†JH8JêÜoÎJZ>8º‚r:§i9•åǦié±)Ç3§²¦OeÍA*kZ*ëúLÖõ‰¬i‰¬i‰¬éYsÈš>‘=óÆ´æ±nNc]ŸÅº.‰µ]kûÖv¬­ ¬=È_]Ÿ¾ºƒìÕvÉ«•ÜÕ¶ÔÕö™«W7ç­n!mõ±­ºk«^÷ÂÓ¡ÆÈ}M[]Ÿ¶J€ˆçó¤‰\ðÚ›“KhrÅr ýÅë¿ã éÿ -üòÊ­iÅHuBÍfTðŽÃ¯vãÅ{í_G>çÌÎÛß÷ uµ»wø 4½þ ÚïñZÄÃö$IÑ¿þbøâqñ9çãÿ²sW endstream endobj 51 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /Length 2597 /N 3 >> stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 54 0 obj << /Filter /FlateDecode /Length 10045 /Length1 24784 >> stream hÞäšy|ÓÅÖÿÏwIÒ&i“”îé’6mZè¾ÐR–6Ð…–RJi£-kKYU¤AAÜ€[ETÜ7ÔëzQI#bTTÜE½îûŠ»UܯÍó™ïI  ÷¹þîs¯ç§í'ï™3ËwæœùÎL’ˆ(ŒÖ’B“›ó O½bÙ°¼ µw.êè ²]GÔú‘|Uçòe×÷yÓ‰¤ÑDºŸæuÍ_tÓWãî"2ä…™ÊÊy™î;ŒD¥V"kÉ‚¹s>nÛöºº ý•,€!l·©eUȧ-X´ìô»¯ºédäÙÎ;eqg•=úÑøZä7,ê8½ËFòóh:ê;NíX4·ø¼ø DÓ õÛ®ÅK—aÜø™¶@”w-™Ûe{ì·¥|C•JŠš.ï"…è®ÖaÔILå%zP¦’-YQUEVo$ù;79ΠÀOC³ÃAøý]ÕÓI{ 7È.ÑQ¦ìÖ…‹§‰'n ØLG~ÎÆïu´•î£éQz–^¡%#µÓùô}B_Ñô»D’AŠ’¤¡ôû8W·ˆÂ”ݤ§"ÿÿ—wú¿DŒÂY6#£ºŽXüþþcm›ú^ЛȪµµÊÏÁº_ê÷+DÞ_"òòz‘ÖZì7Ü0°m`ËQÃé¢%ÔM§ÓJZEgÐjZCgѹ´ŽÖÓú |qÒÐ…´‘.¢Mt1]B—ÒfºŒ.§+èJºŠ®¦kèZøñzº>ç2‘¿¿Wh¥¢äfºî¤»À¿Ò-t+ÝNw ÿ7xÿ.º6¶pþnXn¤›`½ VQKضá×K½ä£{i;bÆù`®vÓº|ÑÜI»è!zqÜÈ>¦Ù„%˜ÿç5ùóqÚCOГô=MÏ`eB­OéKÔìGM®ÇuÞÕJ¿Ðzxm?¤}Rý,Éô;ù‘Ñ»B‹ÐÕZEôDtnÑü,â± y¡ÛÇænøønÄSäDúš@4îAÝ^x0è¿ã{í…@tØß»PGøB”ì øâ©@$D?nûœVæÓÚ=v¸×#å¾6È;ïòá§ô™æö—ñž¨±u„—EGûöc´eï‹¶Â>¸({ù/±;|O ~­Eâkúüpúó@y?}KßÑÏÚç~úûÉôò¿À²¹?ZµüŠßÐotijS+Ò«œmo¿–nÐÒªKË„!“’‚ŽêØU¯Ôî¨öÖ,_ÐSÝ^…þzMÆJgå\cN6õMHšòf:»z¥ÌrIKÈ™Õ#{q܆‰Çz•ôêŽ9ÞÉM­ÕUö””6ÍF•Z_^}¥× õåX(ÆL8z³w÷\Øg¥ÙíYæ9Î9Ó[½Jõ(Õ==ë½¶,ïPg•wèª}±˜ò\o¶³ªÚ›åDgõS?@òêÒ­NGÏÏ„Á;û¿9ÚÒ°èÓ­?“HŠ)vʃiÂØ0BÌ/%EŒå‚>7ÍFÆ»¶©•óšm÷‘;/«Í+·‹’ÝÁ’((Y,9ܼݙ"BUÝø[¾ Ö»v¶#'Þ×þÒñ‡r‡WqµÏî\ Ø1·ÇYUÅ~kiõº«pwæZÝ›Ÿ‡úí˜ÄBᆦVož³ËéÇ`pˆ,lnÕššy#+½¸ïZyóª«Ä¸Õ=íU<@Ñ—³©õ*òØ[ì°ß[DÅÔ&Æá®DP\Õ=­sæy“Ûís°>ç9Zí)^wÜ׿lÛ&¢ä´z‡~ˆÇ¥hOÔZanÇÔV37¤‡8Ze»Ò&¢ƒ£Îq£Q`E¸´¬ˆè¸ÑŽVÉNÁjxJ †HÕ2Jze­(RDÓÊZ{J[ ÿü7C²ƤK÷† êË Ãá1ñsþéи¶ÐPGõܪA<ªS]`€ÞŽ?NYø"ð`´ᬠ)éxsa“ÑfQŒuxi²£Õ9×ÙæÄrOns¾Öâ[ßì¬ošÚªE;°JZŽÊqùÎy)ÅÁŒ\‰5X“e†UË×ò‡³µÇ׋=!Îúæѹ3Ð!9ðaÒzW]Ç#"ŠñjÖ`wsÖt8VGMOGŸíìž^·»§«º}ÁHч³nN³¹u´]ë”ÖÕöUâQT/Õ·ŒËÉÆÞ3®×)mhêuKš§¶>€{«cCK«O–äÊöqm½i(k}×{·f•…UEÆ!2¢§)È„hõí¸‰Öj¥ªfÐò}i¶ M¢Î>™mÖ M†Me›[³‰)v\Œí¶Ú1G„ç̶=ímâå¢h„’Wr–“Wv–÷J²Þì5:çŽóšœã„½BØ+Ø®vÎ=8GìI=íNìSXP­d—x)*¢KGŸßßÒš²×Þß–‚¥6šÚê ÍÂÞ¯KŸ€zã…Úaï]ÛÙ!ÆAžVÑÖ^×Ù†eìU꼡è!4ÐjÔhmÄrD£NÄÔÚ¯EÆ»¶ÍÛ–%Úº°M[ÎV/Õ:G"ìܧÎ%”×Öá,ÔÞM¼ Æôõ¡5·²ÅŽ,ÖÆN2˜1òN'Š:Ûð¶JÍXê¼—íl™‹-QuÍÕd´ ILKI7…½¡¹è"mʯ¤.ÝÐÖÆƒ×rëðl«×„¹¹2ÐÞAQ þÖc¨¢ê£¢›¦>šâ<;‹´Ö“ÅÞ°ôºlþÜÞ‹sD°qˆØ#L>ö°Õ fn†ß•ô–>ÿíΕ)ƒ~r²âp “ì`aS[ϱï´¬œìc­aš¹§'$ìø Ø_!a‡ #¾Xñ÷dã-¡_ ËàµC ?’“^„å-|ïü“Òû_RϤêhj<žt&Ú¨)‘,BÊç´ªÄÑPäºöÊ]hGuv¡J|N¥rª*è« Zh4 Z {*”¤>ƒz·‘"߿ߦ¶c¬2[Óå´@z9E©kh£~}WG)ÐBšü/µ„…~&«ãð,H·鳑f$¨<¹³’!çáü/d,]]øg¥î¤hƒ›²Ž•º€RÔL²+å* (IPOÆ?+Ý&ÿÇBêZ§œ…ºõê“ÐF¨ž&ªšðg$o 8ýcJqê ƒÒ‹ÑÙÇ(`×ï8FO£€ý¨ú rù ¾¿:R¦‹¨šâ 3)ëÜ~¬´¹þQkÔzÿµÃÿ›ô+,ýê?Œ;¡Rh9´Z {´FUèdu$*›üï´Hy>HÔ å¥+äŠT:hþñ¬£Ô©ñ€ÿ ˆÇ¿ÒT–þa-vÁ~êå7i Ëÿx¢R@u,¿¤`^÷*Kí¢³dê?I1òàëd×Yq†lûsÒ¹)ÆÐeþ9aœ+ÑÌãØ4)ÏP´îr+ånìMÏâÝ8V¹T¢±…æá]õ(·Òdù*‘¦©rGÊOÑHé%J¯Ã^ô;M•VQ£tžÿ-y7Ò˱œ‚º¿A?S™ÖN´!p$– ÚÈ·bíÙÉ!ß ÝßÄÞ7ûÙyÐâÔ>8}"/øƒíc¥ñÀÞ§\«Ù®‚æc»š+Dþ"èRè Í~2´@iBÞ-‚6hö¿@‹”däÇC§j¶› UJ$ò Pšf»Ú"oÁxþ Ý¡Ù>†Þ—qǃîCÝOp߈‚ªµrÜiZ$ÔÂZ& û¡J!yÍÛåu=²Lóåìà}Å¿DÜA0¦êÊâ;ÄÀõâLãûÂÀ*q6ó}a`3îÚ=`7ÅÏ{e?5ðî·ˆ6âÜV£ â æór AP߉óT¿œVàœ¯Ó-ø‘ÏDÿrí,ŒÀ>N)|– ô‰½•Ï­§Ô_ÈÃçÖ€gÔí²‰Ty­„Hžà_ %jûÊ>ôýCyk= çBUÞn&‡ZNsÔiT£ŒÅ{žF²ÚIËZ eꮢqPÖW¨îsZ®{w@Hþ‹KUùI‹u‰œF«k8Þ+µiñ\Biñìh%b4›ŒƒîŒõwÒHå*ו¢, À}p’¸ëï[º2†‘Q‹3âjÈt3rœÅ=5x÷R;(DÓ§ØžåX㮹Qg@½‹¨Áƒ>NÒî³f}'l‹ Fø¦‘ H_EnœfŠG{±6hƒ¶6R‰xïÐÎàà}( ±,À»7Aõ¢, À§YÜ_T3lB¤hëåºÀä èÊÀZ÷®à=âuŠB¼ã1~m½`}¬S/† ©I{‘þ ­ŸXÝ`ÚF3”oqÙ Õ™ öP"ê'¤¯ÄsOAœÿðikëgì믴kfPïÀ~%λAg¸îSÜïN¢‘ê2¬½eÔ%8—‹sMô#„;L¤¾„"t÷ñ:ÖO œUuPÍ‘óL»cˆs&‰BÅYwxoþ 1›OãÄÞ­ž…ºQöåëíèk2ò+°&}ü,å,Ä{-MÐë‘>ˆ{Ò"ÿoâlVÇ’M¹s kõr!ùZú ºVH¹–BÍBª‘ZŸ¡K”™´HñP5⣭éát£ì¤Õº^:¶“5{€ˆÑœÀ=OcÀf—EÒAb]µAW©t‘¬TàlÚ+u)¥õÈ' ?w€QBÊAÿÏB†r:w°`û ó¼ìð;·ãXCòÕt=t"Τh¡ÜF‹ Ny] Íýgõqo>HíPt‚ú4MAÌND: *“ÞÇÙz­Ôaÿ×-' Ëÿ7ÚPÅÔßM7a¯\¨{œ uoax>?ˆï*;h4ì¤ëÀ)j+MDúN¨ y‘îĺˆB:Qù€r”-8ÿwx µ@:ýp* ™‰½â %*°–K)ër’ü>îk? Þ~ªÄþŸ¤|‰ï¨ãp~?Lyª›>Ë Ë VÈÅCíP ÔÆa ·ÊwÃ÷7R“r>¾¿¾‚÷¸‡f)/P+ÞƒtåUìOïbŸÜ‚{ôøb M†š!1ÞÙP54!ô‡ñUýéñ¥o|JÖ„ŽåíT.{qé'§ì£Jyîp×S.ò£‘.‘ßÀºyI»«ÔKOQ4þÒçzÚ¦Ë]”//C»n|O?‰ äU4Lî@ŸP’|*ÖùŸ­÷¦?WɦºõÐePe€S¡K¡8o„®§Qº¯¡/h”Þ€;\/U!]¥ë¢lÝkXk¨Lw&Õú“ƒT •B-P*ÔH7‰5̓ª!XÛPžîK|G,£Týv¼‡±% Ç;5 îâ ÎLý8ìó¡j*Á;w)´Ú!¤¿Ÿ–ëï—B‚4žA—ê]´ZG™½¡JŸü›/)1¹Oþ‡/) øÕ—” üÂø™ñ—ýȹß3ö3¾c|Ë5ûß°ñkÆWŒ/_0>g|Æø”±Ï— |¹ù#€}‰qÀ¾Ä<à}Æ{Œwïp•·9÷ãMƌׯ1^e¼Âx™ñwÆKŒ/ð ö2žg<Çx–û ×|šñãIÆŒ=ŒÇ1eìf<Â}>Ìxˆ»;2`ô1îgì`ÜÇØÎ¸—ácôú /c›/¡¸‡q7ã.ÆVÆß| ÀŒ;¸ÝíŒÛ·2naü•q37¿‰q#c ãÆõŒë¸ëk×pó«W1®d\Á¸œÛ]ÆØÌ¸”q ãbÆ&ÆEÜõFn~!ãFã/Œ Ü`=cã|ÆyŒsçøìÅÀÙŒµŒ³k«g2Î`¬b¬dœÎXÁXÎèf,c,e,aœÆèb,öÅNe,bœÂ8™qc!cc>cc.c£“1›ÑÁhgÌbÌdÌ`LgLcLe´ùâJVƉŒF £™1…ÑĘÌhdLb40&2êuŒZÆxF £šQŨdŒcŒe¸ŒrÆÆhÆ(ÆHF™/¶ Á(e”0†3ŠEŒBF#Ÿ‘ÇÈeä0²YŒaŒ¡ŒLFÃÅH÷ÅŒÒN_ŒXÉ©¾˜‘@ ŒdF#‘‘À°3âqŒXF #šÅOˆä' acÃÆ°2,ŒpFÃÌ01ŒŒPî3„a`£ž¡c¨ …!3$iüŒÆ!ÆAÆïŒŒßÿ`üª=VúE›‘ô3büÈøñ=c?ã;Æ·Œ~Æ7Œ¯_1¾d|ÁøœŸ÷™/Ú |ÊØç‹ÆÊ’>a|ì‹|ÄøÐ] |à‹®Þg¼Çx×] ¼ã‹®Þf¼Åx“»~ƒñ:wöwö*ãÆËÜÙß¹ÝKŒ/0ö2žg<Çížå®Ÿa<̓Šñ$?ï _ô8`7xœôúQîl7ãÆÃŒ‡»;r×p×}ÜõýÜõÆ}Œíü {>F/?ÖËØÆ¸‡»¾›qc+ãoŒ;}QØp¥;|QcÛ·ù¢€[}Q“€[|QÀ_}QS€›}Qnà&®r#WÙÂUnà*×sÙu\óZÎ]Ã5¯f\Å ®d\ዚ \ÎÍ/clf\ÊCº„k^Ì571.òE5¹æ…Œ =¾ÈVà/¾È6`ƒ/r:°Þ9X狜œï‹œœÇeçrÍs¸ÊÙîmà~KuòwáµÉš'%?= í†1ìƒz!/´ ººº Ú ý ºººº ººú+t3tt#´ºÁ¸ ùèjè*èJè èrè2h3t)t tqè‚äMÐEÐFèB¨O:Ë7D¼}k|b%-c,õÙÄJZÂ8ÑÅXÌ8•±ˆq ãdÆIŒÑŒQ>«ÀHFc£”QÂÎ(f1 }±, ùŒ†aeXáŒ0bÐ'™&†‘Êa|a"²z÷4ð[¨úúú úÑûzzzzzz QxzzzÚí„„®‡ç¯3 O¯eO¯òÙÄ _ÉÎ9±‚±œÑͨdŒc?Œe¸ŒrÆžr#’1„q?¶™#;…ŸÞĘÌhdLb40&2êuŒZÆxF £šQÅHe¤ðŒdF#‘‘À°3âqŒXžC #Ú}-x:ý€~Cÿý ýý ýýˆÈý}}}} íƒ>>†>B÷BÏCÏAÏBÏ@OCOAOBO@{ Ç¡>è~Dut´ººV‹ðjöñ™Œ…>[.°€1Ÿý11—1‡ÑɘÍè`´3f1f2f0¦3¦1¦2Ú­Œ'0<ŒF#—}œÃÈfd1†1†22 #ƒ’Æp2t •¡0d†Ä¯¹oýÐô<ú:ôô*ô ô2ôwè%èEèxøè|%=ù<%7ù\)7ùœÚµž³·®õœU»Ú³fëjiõ¨Õõ«Ój;pÆê­«ßY­?³v•猭«<êªÈU²qeí Ïé[WxL+$óòÚnOK÷¾îŸº•Èî–î9Ý˺/ë~Ã-ÝÛ»÷t+}þÝîˆî£jÖv_Ü-G¢\¦nÉ"Ì)ݦðšeµKË.Yâϊ߯Xð!óG\rܦ¸-qÛât-¡˜»"ÖFÈ]¶µ69ßæ¶½dûЦ’íF›lÙdÙbÙfQ-³,ßYüu›EÚþHø‹áîv¥1|VøâpÅ.,ŠÕž[Pc KË SFç…U„5†)›Â$wXna;,-£¦ÂÜhžeV¶˜%·Ù5´æ;£ß(»(ø.Ô*ûC%R$‡$‘d”xy»•\£ì’Ä¿±Ñ‘$]ÜÛÒœ•UßgðO©÷†Nžæ•6xӛŧ»iªW¿ÁKž©ÓZ{%颶^I®lñFŠp§åÏ߸‘ÇÕ{›[}Ê7&Žk«÷®i·[KûEšP¥-kæÒî¥K—e-ÍÂ4s),˺ñ§AÂ'ؽL”,[J¨’õO~–²–vÏêF[df.]*zíÎ9!ñ„ÿ»?ÒÿåÉÿ¯þÄΚIâ•¢¥Ê;ºpRÈ@eÔ@“¨e…I×S ”žÛ^U’cxY™Òs‚Wðz÷U³Û+œÃõ*M¶º Ã…r Uzÿ½'ñ±7¢,o¯”÷^ÿëýÖCOÚÊòú_í/È—l)6M‘á²Á ×;Ssåá®’¢¢Âryx±Ë™.k¶â’Òr¥¨0IV"ƒ–rYä%åƒJõ¡4yeʨ攕“<$$DIN K/rXêœ%™ñ:5D¯èB %㜞R_0Æf$$fÄÁÄðÐcºð?èÂ?Q­ú}—üEYkyš~e˜IÖ…†\Ÿ™•V0¦>̦ ·ÇÄ'BláÆaµ‡®ŽO1cÒãÒE_é‡FÁ#1þêãºHJ%}$¶Oë”æÿb»É"Mtöù¿p'‰Tº9ÌFÑRx´Ëdt¦É¡:%›Ó•ŽÓØä6‘YŠPÌæŒÄ4§3ÉMÎÔXCDâ”ÎC±1e#lE6xvÖÌEñ ý…R\ÞÌñ±{ ‹V¯ß³GŠÝ3s' ò±ÙÆ}"ñ?yZA~VV[zt4Ç-CI1„+ÎT—«¤Tâ`ÅœJŠÚkÖG((*K2«'ÄOQÇgåGêÍÒ&½ÕY^4ª&æLº_Z<;mX”N µ†Iê¡ð!&U3Ì©ži‹2)Š)zÈ“‡ÞÆzÜH¤–`e&Q -Aÿ&Ë›ï‹7EE™Hü7ÕlW‘ø¯Œ¦ø ÜIî-(0¤õ&ž†{Œ;ÔÚT+rÅâÆã6´`‚˜PVE¦×_&åõæõc‘F”a‘Ú{ÿÍn òÛ°°UgJªk¸­¸¤(.‰+=I‘Šse§Ó&–ù#IµÄU9£ë¬Iw¤ää¤HÕ+n=mtlneVéŒêÌ»bóëÆœ¿¹¬*'º2iäÔÚë.­/M–Ϋî:¡C\,Ýú£'ŸÕŸ%åÁ}eyyV±Pì;þ]¡éâý?Ö¡ÎÛ1ILÏh =´\øQ^nÔéŒá¡…ÒúP‹H[BVJ/‹ô|l&öž1.# ›i`)Ûƒ+Æ8°Ù›!13ÞœbJ/NÌâò¥ð»Ù@ù +5•<•Jú>ù²{cmúˆ "ðÅh»;±É¬íSbæ…RÞžC{Å›ûßÖ z$Åž5ã´þ§a³ÛS&ÞRìWv·åy4Ú+.—køðÀ…@Ä£hx1¯Ë€Eë7ÊÀ+5º¨°¤TY™5,g¨­tã ãWœ˜?fåö'Ú2ÆæWtN,²šl&½1¡fæâQ /oÏþµ}Ì %qã+†·å&‡[ køøQãÒëN©´´>­dXŰȄԄðxWLrZ¢3iÈPϺéoG¤¥Œp—‹¸Ö#®Ïëá|/£Ëq5ÙËvÊâò”'/q‡¤Ô˜Ê2ìjø°àúƒïêÜ¡±ŸuÛÝá º‰ÁÕ(6¹˜² I\Œ8¡ÿnÁmRxj° £cl7?Jq¹o¹¶ ”*Ïc‡&92ãLÕWNŸ·±-³hö¥³êW6%æ§§ç'˜”t–ŒÏŠŠZU_PTâH5YŒªj´˜:'Li\wo犇×ÕŽ%}b´šôz“Õx¨¸ª¶`ÊÜá#Nj.´¤–fŠ]t Þæº.*¦ÙìµG¨@nÇËmÆ'nòŽ{sr¢}òýîp7E§št™u 5¶‰<à ±¡asÄLÅñj=T¸O¸Ét¼jƒ\!y½ƒ³·.(Q‘zƒ$EG+;M‰…™C‹R" o˜µ)'šƒ”BB"S \éEÉf‹eàw)×lJÁ¾ SÅEåõL#Ÿ(F38÷ƒßKæÍj²¤xs '210ÿ—±ÒÙÝlؘz™äY>J²öù÷ßk’¬"àâ5²öI n“;g°¸´º¸à#Ê´hg‰ƒÂ*®¸ØYÿŸZ^!6íÅÒþ襨’^+/› ÒÒ ÌCÒÊ\ù³‡=cŒšìcœpuó´Õ ©©AOH‡ÆNžXSyh[ТœLÍŸ¦¡©aLzáÌõ-ÃÝÙCBTE1˜CB]eõù©…««¼±©±Ü%%M\6)Õ“èŒ2Ä%ŇÇgÆ'e9R³ÝS+Ü'OfŽˆ²X¢’cì©‘†¨Ø¨ðxgdò0GBJ¶» QŠñ#_¤öÒHÚÌQºßf 5”œ9âߥ巿ÿbßjbš¢ðÛíÏÒ(Ø¡8Ó`[¬ $ÑÒC$E¼‰.Ý)¬”]²»bôîÁÎLŒ'Œr1!&ž#Áh¼˜xólôì…(õÍtKÀðk€¸Û|3ß{óæíÌìÛ7íf{)œzÑœ‰T•Uìéw]æ{j~I²ôÇ‹ì«ñùßÉ·I¶ëñ ý‹“Ò=ì.E.î—åm²Ãv~ßl,iŇÍ‰ŽÆ+Zæôx(ÌÂòv Rº·ß°@ ‡–⤾Vò¼ž;g¡`À½:“V‘–:ÿ2æ8sܲ¿®%Ò‘X»ÑÛ+ù$éä™õ¶un†8·¸¾îž Þû[Cêvààèák:\ø¯;8öˆJåpP5²Áн¡¦Ý8pàÀ ²7£ðƒ‹1± ¼¢Ÿ?cp¸¡–×;Ø ƒ²]“ ò²a“®ÀËi[z Ì sÇaªÇðpà – Pƒ±á‡tÁe„k ㊃˜`‹h³m[q©ø©øèã1, ‚P!4!ºKx¹v[5,¬Û)ë}$XE©ì;) ÛÜ!aÖænäOlîE¾hs î +ì.pû˜O±Ûæ4ŠOm.BµøÎæ.ˆŠŸmîF¾js/D]Äæ8W7Ì$´á§Y?¨ÃõÑq…tȃ…º42&y)£FE¦A[RPÀ,êFa ÛL.Q¬)ZOc© eûÐfu*Z¨ÜŽbma/fIЂ`MÑkµ¸–õ&È ~å(L`mà$|,¥>[·æ÷56"ûb£!0„’ÊÇÀÎ?ˆLæ’ÉÏ©¡6a@ß0ƒJSØjñY2ëøè z€Ö¿b*Ë#g 5,v²Œa6ÐQVÔê¿ðÒfì–á9æ“g³inT6 )Ì=üífö.æBçòû›ÁΟP_ÁSÚ«w?°úu×7ÿ¯àšéû.=BÑWÞõÿ0ñò 6 endstream endobj 55 0 obj << /Filter /FlateDecode /Length 11031 /Length1 27444 >> stream hÞì›ytTźößÚ»§t¦ÎœÐî¤I„y ƒ¤!„ $ cB&1@Œ‚QDEÀYƒÐiT¢¢¢ÇyžÐã N=à¬G‘¤ïSûíBDϹ®u¿?¾»Ö ùõóÔ»kW×®]Û³Ž$ˆ(’I§ ãËzõ]0·¾‘÷AUÍÂêÅÑ#D5s‰´+k–-uï»æÀ/Db‘Ù>{ñœ…?ýTAdMÖa΂ fÛw|¾ˆ¨ ™(âÙ¹uÕµîûŒhþ)´7p.‘{Ãqot-Êç.\º¢GÝ‘c(o ŠY·à¼šjÊz§¨ôÊV¯Xœ%ôHÜ/ûã^T½°.ýãš™D³Ñ¾éñÅç-YŠ~ã§îgy}q}Ýâà—ŸãÞ4ô©s8é&«¸’Ìd3o7÷C¯SYõWé2l¤E›5M3éšii_{É}!…~JÊÜnBàW“…ÚIk$®Ä3°ÿ퉸t­ñü¿EÏ•ÿUãqÓ#s£Q’îìè¿ó×ѬÀÝø”£*Ý-ðìvþÌøÍ§ëî2Ê·Òmt;ÞņSÊ‘;à碌°¶ï¡fÚƒ¿ù3ë^º×xs~j¡í§ûð& ÔjÄÿÓµ?‹ïŧ#ÒCô0fÈ£t;Íø§" öX(ú¤ãòô7”e-.=MÏ`‡zž^ éz ¥—ÏgQz•^§7èm ÷}Ï6@ÞQµ3gLŸ6uJe…¯¼lbé„ñãJÆ)=ª° ?oäoîðs† 28gÐÀ½zöèž•™ÑÙ“îJŽqDG†ÛÃlV‹;± îžÂ*·?³ÊoÊôŒÝC–=ÕTŸ¨ò»*ü}¿»Ê¨æþ}M/jÎ>«¦—kzO×÷0Ö£»»Àãö¿”ïq·Š)¥ð[ò=•nÿ ×Þ”i"QHKÃî‚ä¹ùn¿¨rø —Ím*¨ÊG{-áö… UANÁSQ—Mº[ƒÁòŠ´—œ'*Ó0Õ¦)þ°lìýæŒ1¨7JR…ð(cMµìù*ä½ÖŒ¢šJL[Õ ªùÃÐBX¨Ô(4î‘Ó7ÕàÝà÷7¢ào¬ôWfË/­˜WiLg‡ŸF{†àµs›æLùE½*›b=}µ‰¥`ÏX/% }£² Ž8QÄ—Uò Y#Ðó.ÕT¹1Ú&ª)ÃTç½ÔîäH¶DSfݺHò±ôŒðH»?¬'įôá=å’4gX++¹óFi}¨¾ÛáG2ÏÊÐ \*’}ÁïztUV}\6SÚJ=+°³ÈN-YqÙ™QTÍŸïGÄ“£n¶É="<ÔÆ“µÊ'À¸ëå­Á;=¤ñÓ£»Grb’óALlªl:;àŸšÝ£»íìh¤nj²Eþù <^¶ÈÓ*ƒîœ¨ˆ¿±ùïHû¸S}Ú7‡= #gþ˜ªMQ¿•Ä+ˆì&Ï_Åâ ¾(1M¡=¦|ªþSŽãÚqÚf ’S¢£=  ¤…!jÀLpq(¾G¿—ö˜#hêÙ˜N¡=`Æ_Éš‰öh¦àht0è&€ñàBÄSAÓÕ¨·…¬Ú–àݦ,Üôéë³B~1u4Í =–·Ñv·?Á ÆRÍËxÆò5Õ˜Òñ]À< ¾ž)“Šç"$Ÿ.NÑgbN§{þ*¦&J·¦Ò9gcêB½ÑVêxŒ††è`èäø«˜§?–˜L´[þ¦:Ú æ›–S_‰Þˆºè «;DwÐŒ Åwëpß%´à¬@|m6í ¯8N»Åñ`4:t>0œx H69i·6œHܬ?‡¶vÄ`½öyȃ¾¦Ý Ú¿ê4ÛÁ ÃÏ÷Ðìÿ–‡´3[ ßL-ð'à™CÇSüütº\IõÊ`;+æãÚ n é6Ðò@o£4Ëpt6ú‹4P_‹wv6ó(?„ÍÐÃ4í,Rÿ$f`éŘúÓv¬Ÿ)!ÆÉªl=¦X>‚AÝ*Óf0ô§jýWšþWÐΧ Ë ”a;L¦føC~ØYŒ?‹Pܲì,6žE(þ»úaøŽ¼3Ú^ûÛ5Ó ÆGÖ,ÊП¤gc<ëÙnê¼×”üE¼E—Š·‚‹ ÑÐ)À êA˜ƒx Ø®¢KM©´A|<¢F¿ñ²è¦u4´XüJµ6Ún©•ßõ;ÆzKp‡¡9x¿gübÃˋƻSíTiÏÓv&ø t‘žF¥ æmZ°M•Í{´µ]|‹ú{)M{H=H™¦Ï)ÍÔð×ÀX§Y‹1¿ßùk Ÿ[Áå!½ ”€!¿õLô”nn¥g£/Çž´“Òÿ@Wª a54‡êõjªÕW`®î¡|í3Z 3t´ÖJ£ÄãÔYÛ†wô-5T-ÿŽò1ûÙ$ÔýÜ À¸÷ˆŸ ½i¤ø„<òíRré_Swm θËÈ¥ ¢‘Z9ö³°UžÚm6¢SÇ´IŒ¡¤ÏFìÔN0ç¬Ø0OQ¾Üî2âu JïŒö~D¬Ì1â»À½ ÊE`þé6Vë(Gƒ#¶Ü­]…û¯»ŒØàc 9†ö¸uG‘sÙÇ©‰ xyÈ[àeÏR"Á³­ƒ®Ô.2t™ø­Óú¨|%¸Qæ zÎ×u4„sˆög䙯ùBûÍòlæ|¡&'yÀµÔY÷ã2>ÉÆ=8·õfä&|ã¼l_$Õ‡ïÄyj!ºÒšÍçVû#8£Êóè(ŨsG_O3ø, •÷gÈT*6Îcßn¿Eª#%÷us­—ç‹©%8gµë´/æãÕ8ûz£Þ혣@{{ÀX\“ŒÀ~´‚,Z_Úªõ +A´±¯Ü‡ç› ݆¹®Q‰®cí¨=ae™biî¯ÄûŸ¦§nòÑ•!VƒDó@ò™‡’Ïk¾›¶š¯¦Z‰¶Ñx—vŒ•|×53m;MgÌû -’ﳄî5ÞçâËðŽº~FîXm™‹ïxžŠÍ2¿ Ê'È\ït¾õ é–“àmέúoyœé~Ï2OU¹ž“iž°•ßµ¹#êüêi©å;´‘ ÿOж$C½`M7UÓ,« þ|äwAÜÿr7Llcn|E·yR|ˆ.xßuF>Ôݼgp#M6mĵt¸6”ãødþ‚gÝ-Á»Æ|YÊIîóCsEæ]*Ø9»9w/<‡ç‹érÜ3õNÒB‹ùNÊ3)ɼ±càS:WÿùK_ø Î÷™ä2Õ¬@œáˆãü7åa\äÜ:Œ}ýÉð˜EÈó’ä9qæŽö‡#'(6•aî•!§*ÙÆg`½<×ôp/0%P¢E£8ó<ši…s,+tVõÝ~;ÏŒCž3)d—g]hoNÖ_§tS;âØ»1·›úgèHó›´ÝÜŽò²›Ë{lÂÜÞ‚¾= ÿå˜Ê‚¿È³ï;Y_„g ¹z»D»Qصé1‰~?] f|ˆ¹]E'@‹^K+qÌÄ<î&ç4xXÎoóetb›e\)ÞÑ­4ËÖ ¥àRS r¾¬‡êI$´p&ìMú)±åp”{hKp†ýòI`Nמ b¿è§èñÓkn!] VjKñLKiжŽ&Í‹}Õ‹øòƒ9ÿ®Úº,+À2“ŸÎ5ƒ|àÍçˆ'i“>€6™q&™q6YÿpnX‡±Zî¥}üýÙh¾rÍ{¨ÏK¸7×´ó( ãq ë!ÊÈ*àcP.ƒ.ÄXdÃ÷׿ÇY½ë÷Qüý¸õv"OK£"[?ì§°¿‚9CL[i¦ööåã4 ”b~¤ëoCÒ=€œm öƒ˜ÛQ4ìõ`pƒ:p.¨ ò06[(E¿ûàì‡{(SŸ‹~ÀQ/Ìbý MD&€- ÌCÀ£Ï;1vb¾¢Îú—õ—û×ûÏú‡õ1ZüŒÂOÅÚ½4B{2´;0G>¢©8—ûjGÿyÊ—T -Õ^¥Éâ UŠÿɽÚÊ?Rm" ÓŠ0/ÇP¼Vˆ{J©·–CéÚd´U‚¶ÿj½–`±Gùæ™g©9)¤=AxŽÆÌ¡Qæàðu1¯¦øœí2ŸmG£›f}ïëÎõS4Tl0#ä+ÖÞ_÷Ir>›¿ î&3 °¼AóðÈÿN‘Mæ2g¦¥{q9M5%Ò¬¹Àuà9ƒ(ÚgC”ÚÇÑ –üí6›²aº»U[w_X²³V™K”¹X™Fe.Rf2«•Y¥Ì…ʬTæeV(³\™eÊ4(³T™%Êœ¯ÌbeÎSf‘2 •Y Ì¹ÊÌWfž2s•™£ÌleꔩU¦F™YÊT+S¥ÌLef(3]™iÊLUfŠ2•ÊT(3Y™IÊø”)W¦L™‰Ê”*3A™ñÊŒS¦D™±Ê+3F™"eF+3J™Be ”ÉW&O™‘ÊŒPÆ«L®2Õ9G™aÊ Ufˆ2ƒ•ÉQf2• Leú)ÓW™>ÊôV¦—2=•é¡Lwe²•é¦LWe²”é¢L¦2ÊtVÆ£Lº2iʸ•q)“ªL'e:*ãT¦ƒ2)Ê$+“¤L¢2 ÊÄ+§L¬21Ê8”‰V&J™He"” WÆ®L˜26e¬ÊX”1+cRFWFSF(C!#‚Ê´+Ó¦Ì)e~Uæ¤2¿(ó³2ÿRæ'e~Tæe¾Wæ;e¾Uæe¾Væ+eN(s\™*ó¥2_(sL™(ó¹2Ÿ)ó©2Ÿ(ó±2G•9¢ÌGÊ|¨Ìʼ¯Ì{ʼ«Ì;Êü]™·•yK™Ãʼ©Ìʼ®ÌkʼªÌ+ʼ¬ÌKʼ¨Ì Ê<¯ÌsÊ<«Ì3Ê<­ÌSÊ<©Ìß”yB™Ç•9¤ÌcÊ<ªÌ#ÊTæaeRæAeZ•9 ÌÊܯÌ}ÊìW& L‹2~eö)³W™{•Ù£L³2÷(s·2w)s§2w(s»2·)s«2·(³[™]ÊìTæfev(s“27*sƒ2Û•¹^™mÊ\§ÌµÊlUæe®Væ*e®Tæ e.Wf‹2›•Ù¤L“2•Ù Ìze.SæReTÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#TÚ#ê•QùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPùPiPiPiPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽPÙŽÈÛ/ ²æ@êpræ@jä.]HiäÒE,k©Õ\ZÅr!ËJ– F@V:åA–³,ciàkK¹´„¥žƒç:„,f9eWYȲ€åÜ@ÇÈ|–y,sYæ°ÌṫÔq©–¥†eK5KËL–|ßt.Mc™Ê2…¥’¥‚e2Ë$K9KËD–R– ,ãYƱ”°Œe)fpAŠXFœc £X ÎbHAÀ9’Ï’Ç2’¯àû¼,¹|ßp–sX†qÍ¡,CøöÁ,9,ƒX² àÆú³ôãVú²ôaéÍõbéÉ÷õ`éÎ’ÍÒ¥+KKn:“%ƒÛìÌâaIç¦ÓXÜ|Ÿ‹%•¥KG'K‡@‡q–ä@‡ñ$–D&°Äs0Ž%–%†¯9X¢9ÅÉÁ×ÂYì,a|ÍÆbe±R&@Ì”Rˆ‰Eç Æ%ÁB†ˆ K»QE´qé˯,'ùÚ/\ú™å_,?±üH.‡üH.ƒ|Ï¥ïX¾eù†¯}Í¥¯XN°çkÿdù’ƒ_°cùËç\å3.}Ê¥O¸ô1ËQ–#|í#–9øËû,ï±¼ËUÞáÒßYÞ$M†¼Hš9Ìò&ß`yå5–W¹Ê+,/sð%–Y^`yž«<Çò,Ÿayšå)–'YþÆ5ŸàÒã,‡Xãk²<ÂÁƒ,³<Äò K+×<À¥Xîg¹e 1$N…´°øYö±ìe¹—eK3Ë=Dì×ânnå.–;ùÚ,·³ÜÆr+Ë-,»Yv±ìäÆnæVv°ÜÄ×nd¹e;Ëõ|Ã6.]Çr-ËV¾v ·r5ËU|íJ–+X.gÙ²™knâRËF– ,ëY. $TC. $Ì‚¬cYH˜ ¹„åâ@‚ÒHÀf,. $ „¬aYÍ·¯âû.dYH¨…\À·¯`YβŒ¥e)Ënºžo?Ÿeq ¡r7¶ˆk.dYÀr.Ë|–y|ß\–9ܳÙ|{K-׬a™ÅRÍRÅ2“e?ôtîÙ4–©üÐS¸éJþ¢ –ÉÜÝIüE>n¥œ¥Œe"Ki Þ ™ˆ—ß0>/§÷¸@üZHI ¾d,W)fˆG^ Џ4še ñk øõü@üE¼@|#dd ¶2‚ÅË’Ë2<‹ó]œÃ¥a˜JÈP–!95³äbFAb* 1S øZ–~˜î¾\³O F>Xï@Œ\›½Xzòí=øº³dscÝXºrcY,]X2Y21r”:³x¸Ítn3ss+.–T¾¯KG'K–”€c:$9à˜I 8fBYXâYâXbù†¾ÁÁÁh–(–H–®Î5í c±±XY,\ÓÌ5MÔY4ÁBÞ`ô,—¤=ºÆÕ]ë:ÿ+8 ~AìgÄþ~?‚ÿ|‡kߢü ø|N ~ü×¾Dù p ü|5ÇõYÔ\×§àð18ŠØèGàCðÊïCßï‚wÀß#Ïu½ÙÇõôpä×›‘™®7Àëð¯Ef»^¯€—qý%Ä^Œ\èzþyøçàŸœïz&ržëéȹ®§"縞ĽC{O€Ç7xŸGÁ#ç»FÔ»ŽXâz(b©ëAÐ  þ¸×îõýˆ@ ðƒ}á¸ö†¯tݾʵ'|µ«9|ëp7¸ Ü î·‡÷pݽ܂{vCw…ŸëÚ 3üpühë´µm]Ø6p¸l×€«qßUhïJû8×öñ®Ëís\[ì·»6Ûït]ªg¸Öé9®µ"Çu‰¯Ñwqs£ï"ßjßšæÕ¾ðÕ"|µsuñê W7¯~oµ·Äb_å[é»°y¥ïßrߊæå¾eÍ >SC|ÃÒý‡ÑÜ òDï¡Qƒ£ÁÝ G,õÕû–4×û¨~B}c½¿Þ4Ô_¤^£zao Ú_ïL-„zWÕG: Ï÷ç[Ü|žoÑì…¾ùèÖ¼œ9¾¹Ís|³sj}u͵¾šœY¾êœ*ßÌœé¾ÍÓ}Ór¦ø¦6OñUæTø&£þ¤œrŸ¯¹ÜW–Sê›Ø\êŸ3Î7ñ’œbߨæbߘœÑ¾¢æÑ¾Q9…¾<2utttwÔ²ã:¢'ä#{;½Î#Îoœ&rú‡œzltW­ktŠÈŸ"ÎK¹(åŠ=:ù•d͛ܵ{atÒ+I%}dŠó&uíYH‰ŽDw¢ž Ÿ-±¤¼ÐÐÜ|Ö>Œg-IôdF'ˆèW‚VàJs$æ›=á1Ç+-:ZDG£5o4ªGG¹¢4ùŒÒ½Q}FGº"5ùŒÔ½‘ˆÈ»DL(/Œw…k¾Üðñáš7<7¯ÐÞ£w!éÂ- D·¡î}"ÁU¨òÿPÊÀDP &€ñ`(cA1ŠÀh0 ‚òÀH0xA.ÎÃÀP0 9`€þ è ú€Þ è z€î t]Aè2Aè < ¤7pTÐ tNФ€dAˆq ĈQ D€p`aÀ¬ÀÌÀ4"ˆOh@¢Z˜hmàøœ¿€ŸÁ¿ÀOàGðø|¾߀¯ÁWà8þ ¾_€cààsðø|>GÁðø|ÞïwÁ;àïàmð8 Þo€×ÁkàUð x¼^/€çÁsàYð x<žO€ÇÁ!ðx<‚‡ÁCàAÐ €Àýà>°@ ðƒ}`/¸ìÍàp7¸ Ü î·ƒÛÀ­à°ì;ÁÍ`¸ ÜnÛÁõ`¸\ ¶‚kÀÕà*p%¸\¶€Í`hÁ°\.¥Úë_`ý ¬õ/°þÖ¿ÀúXÿë_`ý ¬õ/°þÖ¿ÀúXÿë_`ý‹z€=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øö=@`Øöõ/°þÖ¿ÀÚXûk_`í ¬}µ/°öÖ¾ÀÚXûÿwü~*ÿoþG?É3gÈ “ڗ诛£H'+ ¦GSR$æt" ÷ߟŸoëa}óU#7f¼ )iž7Ú¤EèÐ!×s`€e‹S„?Üï˵nÁ^žÛöaÛ˽Ú><;¸× Ñ냣u|ûrÌà^ý޾y´Oo“c¥Y­ñOzOm@—Ìýúõ® èŸéIÒŒXÿƒ†ëýú¦jz¼Š ×dY诟š¢o³hk<¹“ú™S;DÇGZÌZÇäØÃ2eS3†õìdÕ­Ýl³f ™^¼  ý]kL§„ÄN±6[l§Ä„N1Ö¶÷ÌQ'¿3GýšgZðëVÝ2tZngýz»M3Y,­©É)݆¦MŠŽs˜Âã1‰6klLDVþ´¶Ë:Ê6:&$p[m%HÓ÷OŠ s<%Є¹Iã“ö%éÔ<¶ß!J ßìi¤¡?í0ôØþpèC8<íÁCD‰Ý1Ñì£Ü\Ñ+û¨ñ‚úôžž¡>&ôô ¢ÂŸ–’œo KHKJI‹·u°EXÍfk„Íô®r$ÿKÓà Ó1sÅQZåퟌîÄ;Зøxt$>½ˆOFâ[µ~Þ07õ¦FÌÔPÇSC‡—‡~%;žêxêÃÈ>ì”"º¢Ë<­"»Å<‰rOäâ•sçßœ®Bœõ­ý{jò5'ħjò­›Ž¹æÃ­WÞ”?fë‡[¯xsKÁý]¦^¿xñõ3»fNÙVþ 3²´ëvœj™9ùŽŸvm?¹oæ¤Û¿¿{Ñ#›Æ•o~xNý¡M%åWÄ[è<©ÿ„·Ð‹z{;uí%ºö™É"3ItIY$ºNô„Çtšã3Æ87vðà\tmºñ“‘˜h1fb!¢tOzfæÀABàs ìo’r&¢ŽUèŸFšc»¦»;'„›Ú´`ŽH蜚–mŽÕíû"¬Ž,Ojf¢Ý"E¼Ù—ÞÉÕ%ÆÑîžØ!Ú¬ÛÂÃ4½­-,ª›£;$jeZn¢3Ú¤[#míŧ¶HÄ£œ‰mOÉÿ–r¨ü¯&°.»R‡–ô˜V‘¹ßYÑ¥Uti1—c¤ûâ·Ooc~¤¥gƒ;H¤©aN뛘 —˜€Ó·šÂ"ÃÚLܺ=6RóµìQa&SX”]{Õé2Ùc¢Úöj+bbGÇ9cmnOFdbŠ+A¿ÃãŒÇtw¹»8R:¤ÆŸš‘.ûµã¼KžúÒVot¬s!N~äöÝâä¤Áä‰ Mž¸Ð¬ Íú¸Ðä‰k?{©áÔ wDÊÔ·£J¸œ’á¸~€¼r¤:Z…Åkï1¦[J碔±æ±üòäp@šÉÜ»U˜Èã,rŒ Ûb.‘ë.7÷DlÒ`ÑëÍ£¿ I_9$jõuù“qà V­GkLb¢\úá~5WÏÈÊáí|Æ€Ä'8c­]Ç–”ö˜Õ49koB¿I^÷poa—ü•yÃ+u_,;¸v”#½¿§}¸-B>¾À¸èrÖ_Ðmxׄ±ëö5\\;,®k^ŸöÊ*†Õ®’ó©4xB{£UD/{#zç/¾¨x_±yDhÈF„†lDhRÿKM\¨ìi¸Tñ¾×Õ¹oç¾N9§œr:9åsÊùé”SÌùþz à!ï±oe±maxfw½‡½Ùìzq\O|Ö ±¤IšQ·iiÜЗp§Å­·íBjW¶S®r¾ñ€„B $U@Ë%!$®Šxj‘¼Rñâqøg½N#åT¹¼Î7óÏ?³³óÿó#Çë¤1YÎ_¦_Ï$`¾ òó2#§?užÕvi7hG4vTÕ¼ão :RÛ¼_4 c^ËdfÔy¬pBmˆnÊn’}ç4ϵâ^3Ã¥y»ÍwÙbÇBžù`hϽ;²WmÉzï\}®\·fó`0™Û5}y.™*Ü^ˆM®Ou ,Ë N^ŠŒä3kr©®Õ¹Âôî\+[f·%:}O,¬w«BÝÑ‘xbíêp¤ï’+LJ‹ù‹dw—*wzU-  Þ€Wf{’ëIdÍøt/z¿dsÏ¢õèúSH‹öÛ:ï·÷¢ßÞ‹~;KôÛÖÛO­WöuôÏG'Có¾É—1w\°6Š:ëPS/ƒ§ÞjF-®iŠk-u /¥UÂÁ ªy,s¤mæ°¨’TÚwi)º³Óí;Ä;½é»Ÿ‹²Ä¹;?Ýê‹õxD‡äà® ETEâãSµŒBbz·&œdòd ´n=FΙ½’Sr(~*÷C‹óìãìëÓÌ…!’¹’Ô‚’Ô‚’"È—T©3&©AþîÊi`?a[+a[+Pk95%¨ZÂ-/Û6Jÿ霓ôþ|Òåäcà¾/(Û­˜fÖ†Vò\2©±åg€áf’:çÀš•AGF—ìã‚;Ôå iüö‡­Ð%xˆXôe&³—ܾEð„ÁŸÝÒRD»yzÇøÁûö1‘V[øjçÞ‰øÕÓÌ\‹Cõ“‚˜Oß/È {rÀª”4UÇÅiìáN¹Ö}¶àÞË‹% skèQ‡Þ3Žðº(qa¡±ŸÐˆïȦò49çµ¥ø>¶Asã± õ#43ƒÁɬ?ZĽ;Y³ì ÉZ×Ï%ë QO†WE!Wt†suEzBq KØßøFÄz’„¢'wêCH€á`(îf¤Æw)ºì`—€ÆcP±YWðIü”¢wp,ïÇñN¨XÎåél졺‰@´?º‰¡Â+(ƒœ£Aœ b?Þô¢Œ(LRÂÝ4à¬ïÆuTsΜzÞ9ÅíDSTnšØ`ÃALz0郿^¶)먞H$qbmëD2¤Ó÷z=3t ?0ØM4†?&©lã Q­ZñHŒÙoy-BzbßxIÕ²GÁcœÛÉ^ßåWà4ÒÙ±fNë.x$¹’×ö$êC¿‚TÄ+wàË*-3пVÚ,1RÎ"Ì ÉNðæ¸cÊ>‹@$<53µðò#IÂ>‘Pç¶$àÑgxQNw9Qqâûw©:=¥0œK“ÊkÌá'ʼn¿TjBOoDñz*scoÜ m^ñjDñûºÕ…‡5ˆšÞô/ÆGÌ{ÿN°¬ ú†`m´ñß}ý¯÷/C”$îÂÁûópå’+à½6Úh£6Úh£6Úøs@ ýá"\ÄRŠY…xÆi};ƒþWf=õ³Þ[wý¶‰ðQÀ}õ~¿dQïàwñûÿD±ÿ¦‹CG ô#lCDy´]®EeàÖP;o[\„?ï¹…ö,~¶øêEq,âáÎá¸p^ÃbuM zni\ié}­Ö̃xM³HÁØ4ô6ÍýŒM èü*µ~N¢s2£6Qó˜M3HaNÚ4 ü·mšúS›æ^°iX@O#‚Q>#@mG&Úª¨:ª  '‚&€ª‚ÖhYŽ T¥¡g#š…AàD‡ ¯fµ ¨ }ÊŒœ€ûfaÌ>à™0´ÆP×á.:’Àµó˜ÖþV«ܺõÜ´C]E7¯²tÏʽ~—,tEek.º‚¦¡eZk Ïß TÑjÕ¬g–›±WPY&Á~hÍAoÝ’’ŽN?M³Ù²ÝÜ_­Ô*êd¢R=R©ëf¥œ&ggIÁ> stream xÚ­š[oÛ6Çßý)„¼TÎj–wŠöÐuK·¾ 3Тn,'Fl+³ì¥ùö;¤î¶eK¤ÄÖ…ú›ç~:f”ƒƒûFøÂ;W@1„… ˜ÄÁÝzôï‰(¢Üž¬mÚSÅ%ù7­Yð{2ú~U'¹ì$×ým:zsC¢€¤… Át,×c GæÁ×ðfy¿ßÆã £2doÇÎDøncöU¸\­öén;Û-“M6"Ydﻇ8ò<¦Q˜l¿a"’±=`Ïã1 á ßÄó|är÷_1PRâœBv=>VPHjÒE3‰$¸x¬!¨™†ö™†  Uý½(Ümx¢0 h¤g¤HE:Ò9m:ÊLM£}6¹f6Ö$÷—:1«,W‘yé[‘-/ƒŠ| á»–-vP85Ò’Js_i¨Šà‰½½ïV³4OY=ø†~zÙï–«åô Ul±Jž‘9gÈ[[ Ún~K–‚ù*éGV¥áMVo©v²š‘9“åcPIùkµ— ߢԳ¬TÞÉï-ÕžüfdÎÉ÷1¨Lعk—‚%h€”Fçee/²¢r{»Ü,w··¦®¤ñjñ:;|=ÛÞ§Åöõãó<íX^CBz–—JÛ°ÞRí„5#s&ÌÇ ’Šrײ„±¨NˆqœBDä«ô«««÷ÉÖâû»]²E°{™NÀTÏúTixÓÓ[ªžfdÎôøTf|‡ÜµNÔ§‚.MKÏé5êU®.óF5’BøñVixóÖ[ª·fdμùT22€CîZgxc QžW+Znžö»ÍcXuocÃØ«Ï¯º‘DR~ Þõjg¨“3AîÆ”9÷vÆUé ;” ©óì¼td ¤¸gª4¼ùé-ÕNP32g†| *s?€CîZgHÂ1V¯BÉ~w„Ò§n(ÍÒ^$U¾ õVj娖+F>æ™Àg©v†`Õ„˜RúÒ‘¡ˆ ˆù•£š†7E½¥Ú1jFæÌ‘AeöpÈ]«õ ‘E‘_îK ïÔ÷UjÏ|#,çÄ{˜SæÊßg©ÖGCD1Ä¥•©À!w­ö@D$©=ZÃ×Pœñdÿk6Òý:ÛHgòEt—gE„ øxϵN¥á Zo©vК‘9ƒæcP ǹkYñp„µϧŒ _sÄ̡Ͽط—Ë,1Ž0ñ,Z•†7K½¥ÚYjFæÌ’AeþpÈ]ë K ¼Â¤ÆÒ—Kô:ìF¦“0Œ$UÃ4VÔÄ+ŒBD¥GcE…ËÓ¨²ÝÓ‹Ãv˜E n{"g=Eš„,{K²î 4ÛÍú‡46ýCê¨,’m1r™_ÿœ­ŸV1O$ÕátL‡ü3Òx·Ê6M3P>Ú,¸²Æ%صK 9Ó…”mÍ“ñ>9¶=Iâ„pÄy^7ÉFÞ™Ù=Ì6÷fœÑðÏÄô>Ùâÿìëöµªóèàû|ª9‰H¸] |ç}G/§:“àæâe““5(nJ“`gŸÚæ*Øúa޾Û&šÄv[Ánk·aÂþ¥Ó¡ÛJˆËÍVRt굺j¶²ó»G4ÜoÁ³º}õ>,HˆŒf$˜P0%âÙõª1jÈÿ‰ZAÎ endstream endobj 42 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/workflow-example3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 60 0 R /Matrix [0 -1 1 0 0 612] /BBox [0 0 612 792] /Resources << /ColorSpace << /Cs6 61 0 R >>/ExtGState << /GS1 62 0 R >>/Font << /TT2 63 0 R/TT4 64 0 R>> /ProcSet [ /PDF /Text ] >> /Length 2824 /Filter /FlateDecode >> stream xÚí\Y·~Ÿ_Ñ»¦Í£x=:†8/àÄȃ0‰äÄ»‚å]!ǯO]ì&g{F+yÆØì6dï𲋬ƒÕÅ"‡6vøÇ°±Övðqئ„…äÌðËß7ˆñ¿ÛÍëß ï7fHÅÆÑ:lVµx_}s‡ýÝ`ùßÝ¿ùÃ÷vxw§Ï·ßnJœËƒ¥/­y‹´é=úIPÙÜ0†ý-u»Ùް°±n§ü¿á"Ò£›Šü#zˆÊ%])ì7ÉÕò –ÇXQò£qõÙ œt"PºÐ2Ž‚ŸFé8ü³ßüÈ”‰Òí&Y¾¶çò4BîÞaÁè§mzR$E#ÔnPL¯ñXc¨Ë‡"bSE0–†‡a‰ÈùJI“®a,6 8|oäÿ8’&ë Q»!˜zËÏ" ëB$eò°•‘#Ê¢·WÉÚ8†å1©Mø…3#С- ÈÔsµß8ËÝ#­*ƒpتFçùï?ºP˜1ô¨-ÚÎèX¬…8²46>!áÑ!8˜QÈ MECšÜoÐ,~ç@ÇY–X2"Õ76°m‰‚±ÂŪ™úµÂ© ‚ Ô6ð8:d° 6(€ø”ó˜]bDBcEê$8FÑA!&ú ÊI Ž5ï -RÙ¤aë„vP !|–z¬8ÏeÏã‡@fÅöbPÙ0F$ŠOäH"/!@q#Wô,Ʋ<ìFOÖ 0¹j›J@çƀ-éìu¤6~¤²ôNU¼Ý<À™ ޫĩ—Lª"m À’¨®IÑïw›¯v;а#gci(ì ,ÐÑçw·X÷n3ƒ²Úíìþµ¹úîýÏïï®wÿÜ|»›ûµÅ`g‡sr£_î3'½Û”¯És4žÕs~¶ç|u` ðÐ|E‡“¥³˜lᇫïï¯-ºš«7¿Üï®SÃÕ›»Ÿ®ÿºû#ÇyMcI³«Ó_þêô«3¯P~½×´·Ÿ<ý¡“8¹ßf"B~’qX§â:ƒ©xtŠE'S ÛÖwèÕŸ>Þ7³kanEÖƒÌóÖêGþÒ‹<}­µ·d¨=C&¤š LA«Áf¹'ç`w(Íj&¤‰Qdó!sÔ®rgØüù“ÌIßǘ“Ú‰¹b{æ”`A™ëgæÀüh³žS¨¤3WMتºÿ(_.Õ/†£ÂÉ“fàùž™©­ŽYµN ±Bô„y@€Áºø!ЕY©Sà”4åP«„.éӊПdœ‡TÄf´@±áV§©ÏðRKy#±N´k½É£Z¬!ßF˜¦Z`ŸOˆ¼8"K¨ˆO¶!³F¸’ J¤vÕ„ñ ÐSû›ãgYÔæÝŠb¦ØYk7äÝ4|Uí7u|È}èØÅ8ôœïÓ :öìeHÍX d„Þã¢_ôi…i*Š nôm&äß—ƒÈ¸6«UW‘·µ%uÒ“mÕ®D&ç7«˜Ïm6äo7À žÆXk 9a†ô–FHΚ¥Gh¦‘\·9‹y:Á@UL§"•p™„ Aˆw¯0Èûµ¶uônbÈdè0Tú–†Pû¶Ô±ʶëp ¾ctI¡>•N¡d¢Pzÿ²WÉ4aH¥RR¥ ¨"“Ç>©ÖÚl†¶"z9Ojô%Ðv}­jíÔJ‘µÃ׋èà«ÛÿüŒ=j¡¦2âœËXßý;`xæoÙ$šE!Á¢©ÌaIK¿&±VÀÇ’W.pòÊB’äÕv4 W›þpµ{s½M0æ«;üÄÓÕOøF{õMÍ\ŠÎœ“œ“ñkÎé9.tíÙºî-t—\’…¥ƒ>Ÿt¶wëâôŒyž¿zzú—7=ŸKFøìsËå"¹]»”±q‘'šÖRÆÆ¡½ºì%c£a—‰kžg5óFåéHf3$4 "TÒÂðÂhÁž­ ‡£ӌ֗f´tØl j¤©­%@ÓmmŸ_ª“VPNž)sÚ÷æ´¶2çMê˜Ó*ð¦2çJÃÜ „9iÖs+iŠØ°ç1Ø^LŸ]ÊJ‰F¬´ ›_ꬴfjDCÍ&i•Î 4¢éMfѼ½Ì¤\3Ik&iÍ$ýd’<À&ÿä>?“Dº¥L’§†hy„Óéih×t‘ӄ8Þc×UĺŠx‰KÐC 3ëx¦¢)i‚=8ØÓÆìáH²Yùß7GÏä gæ#ÏH‹»ÉÞ³œµ–¢>ÍYw“}àï!s $ °d¨Y0ºL¾²×…(l¦¤kÔw)vu4GØÕÚÊn0¡cW†>LÐåʰœ‘T†g K³žûX‰_ŒáuCäùoŠ?ˆkhG_3)®["¿&†Y3¡k ó‚3¡ù¨,ñL’ƒx´5á9@éOã]àö”ó§ËBÊl+œ´# ½¾¸lždÖnQ6”ÐÌ$š«¿\N*'FlŸ rõ¸.êd“FrÔã$êI¨{à½&€¨|3•5ÎqДC­ª]Ì㚘ÇÍ1[Žy$7b“†<’š(kmÔ€G²*}Ô$šˆÑC¤5 D°&l¢XG;T†) DÒàH§B tj[s*s”~â(GûNiJ;5 DGß1z˜Ûã¹]BŸÛÍìA§Q…Y%4L_°N @ä08š"ÙܲÙUZДƒVÉ; :¥Î0ðÑ”I­DâD,›ûP6÷‘lêÙÔÆ±© cSŦ&ˆÍM ›»6÷lîØÜǯ¹ _s½æ&xÍmìšÛÐ57z¥%8J‚?ø¥pu ŸŸÜ£GýbrO+0 A¿ãšá;ç!ŸøÀGûü¡¯çŸºÉU¹&#×@þe'#yi~‘Ž=òn“Ð~7¥$?ù`"Þd½`e½ðþç‘ßÉq-…Ðæ¾ÍBó`»æÇ7ÔxŒœW±zŒ—ûc¼fá…à"²´—VÿçH^õ؃d—› @[˜6„iÞbP Ùsj8ï*dhAh’ìt‹!C»Å°Ìg¦Íßî<Ñ'uö å)ï¿,{Såõû¿/.•3lÓœ“fQ*ÁZ=¦ÕѺ`D˳¤øÅ´ðj@“ äx۬þfêÏ6Éñð9õHKWVŸÀmì”Á(_¡¦PФ0& ýôé•Ó'[bw²¥ŽMkq¹ßžlA8ŸlA0Ÿl)ÐlA8l¡µU=ÙR|{²…~TÔœl)¶?Ù’û“-¹=Ù’Ú“-©9ÙÛ“-±=Ù—,}yRcMi<É”F¡Cd‡rŸŸÒ Ga)¥An?I œHgHËõŸÇ¦3 ô—÷l)äÑtÆ·ïÿF—õ´WõœtÖq½dg½Ùã-&†Çýä Ò©ËÒúŸ<-,,$T=rÉ„ppɹÓ%QËHèCÍê½ä4æ«/*ÔìØ%Ê¥OfÚ|÷`_ðLoŒ5T|ž¡â«ö¿|Lµÿù6ìzLoòä‚j6]ýB†Ý€4ßs0âñ{`ªý—fYÝ®¨/gùkXý¼Âê&CÉPªù|AP]dCœƒjhƒj© ¸Úñ'ÖÀúKnÇ<131]#b‰ˆãÓ ˆCÛ5½~¹ôzpØ>”Òßqw,Á>ü¼ ,$ endstream endobj 65 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /Length 2597 /N 3 >> stream hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.KnjmÍ {r2“8¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ333¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe “tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘ÎûçLg ù‹kâk Ѐ$È t!0VÀ87°ø`ֈɀ2A.Ø @Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2Dä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒÁíðø:|ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/Ÿæºp+¹/<jæý$.$…%µ&ã’£“Oñdx‰¼ž•”¬”TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ× E ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ùë7-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ Û¡öìö™ŽøŽ‘ÎðÎS+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊z»>yz¸¼°ð›÷„óû endstream endobj 68 0 obj << /Filter /FlateDecode /Length 11257 /Length1 27744 >> stream hÞì›ytTUºöß}Ω!U*sB…T%E!„0II!@H Æ„$DÀ(*ÀETœ5•%Îhã<ÏÝÚ*85ÚàØNHR÷9ç­ˆv_׺ßß]ëùåyö{öÞµÏ9{xÓ«%ADÔB*MšX‘;`ÁܦDþjêÖ.ŽNNèAT¿‰H¹¡nÙR÷ÞküL$F™ls7.üᇲp"óX¢°n .˜ócÃ~ôX”„N¿˜ÛP[ÿQñÞO‰ôBCæ"±Ç޶Qõ(÷˜»p銜†ÃGQ^O}é‚óêj)§ô Q…†òú…µ+÷jÚ[Qß½¨vaØÏ/BÛÆB"í‰Åç-YŠqãÓØC¿¾¸©aqð‹Ï¥aL=ì¤jq™ÈjÚfˆQ§²ª¯Òå YI‰2)Š¢©Š¶“”¯¼ä¾BŸ² ·›øE3S‰C–[”L7ÑýšzÀ©›þÍ–[ˆº®¥Ó?“h>-Áól¡Ëi3]KÓ{4›ÖÂm£t'ÝC~z‚ž£wèÿá§ëÓB W™b‰‚'‚Ç»î鯑kQŠÕÜ¿F‚Žà—gľìº6èèê0ÇÍh¡¼Žèw¢3xBÉ×ËÁ!zYYe´øÆrK×Þ®»Îxå4•¦ÑtšA5T‹û¯§¹4Oæ\Z@ i‘QZ„kø=¥Y¨U‡ZºÿµÖy´4ÑRj¦eø·~I¨¤_;ß(7Órü[AÐJºVÑêÐïåFd®¬4Ê+ÀºoæbºÄpR9²–.¥ËðÖÖÑzÚðKN¹VÚH›ðž¯ +ÿ­ßü›ÒUøw5]ƒù°…®£ëéÌ‹›èæ3¢[øt æÜƵëÙa8ýê#ô4ÝO{h/=`<Ë:<5~"ò¹Ì1žáb<ƒU¸Ãµ§˜ŸßòSOk î]¿·ÖЮ@ü’ÓZ, =G½æZÔä^ø=转>ãI\…{`ÿëqé:ãþžþTþST>›O{27%ÝýwþzÚŽ¸ ¿õ§ª»[áÙí0üéñ[NÕÝi”o£Û鼋» '•#wÂßEwcmßKm´ÿ~õ§;Ö=tŸñæüÔNÚGûñ& ÔaÄÿÓµ?Šï ŧ"ÒCô0fÈct;Í“ø'#"öx(zȈqùIú Êz-.=MÏ`‡zž^ éz ¥—ßÏ¢ô*½NoÐ;"î5ú¿;yÇÔÏš9cú´©ÕU¾ÊŠÉå“&N(_:®dì˜â¢Â‚Ñg{óG5rÄðayC‡ Îí›Ó§WfFOº+).Úa·…Y-fvbA}Š<Å5nf_ËôŒ›£—=µÔž¨ñ»*þm¿»Æ¨æþmM/jÎ9£¦—kzOÕ÷H™ÓÇ]äqû_*ô¸;ÄÔò*øÍ…žj·ÿ¸áË ¯e…ÒÒÐÂ]”4·Ðí5î"ñ²¹­E5…è¯Ýn+ð4ØrúP»Ík‡ó÷ò,n½F Ã(½Š†·ãŠÐ¿Ö¯fÕÖû'•W:ÓÒª}ùÍ~‹Ñ—{ž>fÚènïs°uS‡ƒf×d‡×{êk§WùÕZ4jU‹Z[×ù£³ýYžBÖÊO’pË þ>žÂ"¶•N>õÂoÊpxÜ­ßï9~ì·‘ÚPÄœáøžt«ßâ©Ç„ëÒƆâþÒÒô±lìðÒlü-åU\vÓlg€¼¹ÙÕ~¥F¿rP^‰÷éWZä•SÍk.wQkM!PïËS^õ nävîHƒ¨Z‡?¡/%³¨µª~ŽßUã¬Çüœã®r¦ù½Õx|Õžª†jý-yþ¬Ãøº4ãV¸·3jËÊú[2¬î*Å©Vëo w1~yFÄ^—QÔßèè‘î*á$Y ߪ¡»ßôƒ‚šQ0V¿¤êM Æ:ÓªÓøó†ä ɔᷞ֗Scâïù·CãÚú€²ÜE …§ ð7šB õöÇãTôgúb´°ê¯s¬¼¤f`å"¦ #¤¿Å$·Ÿ&¹«< žjæwR•~oú³6Þoi…§´|j•ñ¶C³¤ò7%¾žÇ%?¥á²,(˜ƒÅÙNùZò£|ª8öŒË%ò²»Õê)­hÕ;÷„:$7VnÚœYR»1/f–f1v7Oq­Çíp·Öv[f·¶{½­‹‹jæ×ûð”Ô·z*ªF:±N®Zí\©U •ŠÒÊÑ9}°÷Œn÷ˆõåí^±¾bjÕƒdµë+«ŠP jFW·÷Àµª‘÷z¨¢Gõ ^pë½§É(XúνD-ÆUÍåºAFÌ*c‚ê:Ž9dLALã˜×ˆé¼¤¤¹xÄØn‹ÜõúëYU=·µ¦Z_\”€W‰ážQäW<£Ú…b÷Û< £ývÏh=ž¯Çó9nÖãL ‘ ðpô=©µÆƒ} ªŠœ‚§¢ªwéî+«Ò^r¯NÃT›¦Vùò±÷›2Æ¡Þ„Çø[êjõq¯JokÉ(©«Æ´•¢J‰? =„…z@b£>Ѩï/Ðhß‚‚¿¥Ú_­iÕ¼jc:;ü4Ö3¯û4eê_”[Ýã`¬M,[Æ:]Â06ª¨âˆE|Y5?$K8F^çÁ¥º7ž¶Fu˜ê¼—ÚœiÀ–¨e6Øœ¡‹¤ß–ša°ùÃú¢CüèÞÞW_’¦ Ku5Þ(­ UÀw;üvŒ(ó´Gj€§ƒK%úXð³CÕ«>¡wSÞA“=+°³èƒ6z²à²?"£¤›?··#âÉ“­úaõqˆ£ýÎÃñÜՌʎà]ž ÒNûäôñ臃>1Éù &6U·žðOËÎéc=3a„[[­Ü€Ÿ—5â”êAwN TÄ_Äüw¤mÂÉþ]›ÂÐ#§´Z-ò×’x‘]äù³˜Áu´©´[+¤Ú?䮣­Zœ:êQÚ ŠBZ¢Ì‡â»Õûh·)œ¦‰výþJV4Ú­hÁqÐ^Ða ?˜&‚ O=µkPo3Y”ÍÁ{´^hÔ«³C~1¥h3i·ùôÝû°€ñT÷ß2‘1EuZ:¾ ˜fÃWÁ3ºâþÆ„ˆI§ÊŸQÔé˜ÒéÞ?‹ÖJé–T:ëL´žÔ}¥þŽÇiDˆn†þ‹ÓôàG:šF»Ôhá¡5Ð.0_[NtÔÔmÁXXÝ!ú€,0:ߥNB»KhÁïXø Ú¤m'¯8F»Ä±`4:ô>0œx4HÒœ´KE¤Œ nRŸCß@9l°Nù,ä¿ÆØÞ¢]f3ú¿úÛÀ ÃÏ÷Òœÿ–‡ô3G} ß´vøãðL‘¡©„ ~~8U®¦µ:ØÅŠù¸™v€›Cº4‡üïP;)Í<Іž‰ú" Q×âÉ<* a5ô-š~©30ç2Ú Ú†õ35ÄpŽ,[Σ©æ÷`P·FÛæƒAT«þB3þ Êù”a¾‘2¬oQ†ÖSÈ<ƒ‰gŠ›—Á†3ÅS? ßQpZßk½¦gL±”aéEê!|&ƽþžmÚ à}ZAðgñ6]&Þ.‚FA§7hU ñh°M=H—i©´^||+Dzâ!ô: ·’bh©ø…R”NÚf®×¿ë7L0ôÖàvCóð>~ËÄßÅF2æw'û©Qž§mLðgè"5ÊÌÛ´`§,›ö0èk›øõ÷PšrèúejŸQšÖüçÀ³N³”b~ÿíÏqnW„ôrP6„ü–ÓQ·Sº©ƒŸ‰º{ÒJÿYTÂbh5©µT¯®À\ÝM…ʧ´@™`èX¥ƒÆˆ'¨‡²ïèsZ ê¨V, þåb&ö³)¨û™A‘ÑmÄÐ~4Z|L½r¹Ô¯¨²gÜåäR†Òh¥ûY3Ø¢ŸÚV¢“G•)¿a|¤ÎFìäÐxFl;˜'‚(ßnwñP£ö@ß#V øN°Fí‰r ˜ªÕj8ÊQ Úˆí÷(Wëÿë=ØiÄ>)È1”'Áý¨û8‚œÃÈ>NNýÅËÈCÞ/3¸—2ÜۥЕÊE†.?Ò¥J™¯7è9ˆZóõRÎ9D×3ú™ÆùB×-úÙÌùBþLN6ò€ë¨‡<ïñŒ+ø &mpn«mÈMøÆyÙµHWs,¾ç©™è*Ó$šišÔõ3Ÿ‰Áfý,T~1Οe]¯é{+Ÿ[]ojûiŸ[]〉4Σ#-ÏuÍä³$8Bocœ!Ó¨Ô8Œ}»ëV]MxRú¾nª¢uúù¢µqö×x±N`>^ƒ³¯êÝ9 ”g±ŒÇ5³±­ ³2€¶(‚ÇÀJeì+ûqs [1×*SU¬¹', ^Z -Cûj¼ÿéj2©š® ±$˜†Ï4‚|¸ïÓ=´Åt Õë(ŒwióÒßõÅD[OÑó>H‹tŒ÷YF÷ïsqˆexG=I=-w¬5ÏÅwò» Ú‹Ü Û˜_Ò­Fž¢'Þw Ež–õ1­ÀÜBçhpm]® å8>=Á½îÒÁ»Æ|YÊIîóCsEÏ»d±sv;rî\܇ç‹vÚÌC½´ÐìA¾S„ò,J4­Eì(ø„ÎU¿Fþ2>ˆó}¹´:€ˆ3\qœÿZž‹>·Þ¾~(<æD ò¼Dýœ8ý Gÿ£”j˜{È©*p¦ñؤŸkêh ´xJ0+kšG³´18Çz…Ϊþ ÷¯ç™‘cèçL2Ùô³.´7'©¯SºÖ…8önÌÅmÚ@ã mz“¶™ºPG6S%bO‚˜Û›1¶§á_ <­"ø³~6ã}'©‹po!0WïÐQn6å&z\G½Ÿ.3 >ÀÜ®¡ã ]­§•8 fa÷Öç4xXŸß¦ËézÄ6éq©xGëA¶ÔP,[y€–‚ƒRµdä|ÉX!UI(âLØ+ZÕ“bÊv”s”%8C€zù$°Œ¢ëN±ŸÕ“ôÄ©5·.+•¥¸§¥4U¹”¦€fÅ‹}Õ‹ø8òƒÆW}Ý–ƒ`™æ§sµ³œ¤ùà,qˆ6ªƒi£ g’ g“åG€sÃ2’Õ|íÕÁߟ-¦Û)ß´›Êp¿„¶ùÚ>Ì£H<“X‘FîTÿ ‡rt!žE6ü õ;œÕ;°~Ãß;Poò´4*±Ä^qûûǘãÑÔ]ÛB³”°/£Ù ó#]}:„Ö¨älC° ÁÜŽ¤±`hÀ À¹ L6(À³ÙLÉêÅØ—`?ÜM™ê\ŒãžA åbn”ªÐdŒgØ Àl04cÞù³óu~7¾^z|ýþh|XcÅOÈ!üTªÜGg+ïQ†r'æÈ‡4 çòåâ"Où‚Ê¡åÊ«tŽx„j@Õÿ¤­²òÄ÷Ô_™L#•ÌËq§£M9õSò(]9}•¡ï?[¯=XªÆR¡iÀYjJ i_Pž£ 4ÆtÜ ^¢ž¦ÕT_„³]ÏçÆZ'ÐXĦ[žÃû:‰sý$5 Ì ùj€5„wÅ×}`Š>ŸMŸSÍDƒÍoÐ<¼ûZå8ò¿“dÕó =ÐÏLsöâJš¦%Ð8¬¹Áõà9ƒHÚk‰Ã¥Ú&Ðæ<üí6‡zÂTw‡réþ°$1f­4—Hs±4-Ò\$ÍiVK³Jš ¥Y)ÍÒ¬f¹4ˤi–f©4K¤9_šÅÒœ'Í"iJ³@šs¥™/Í“æSi>‘æci>’æˆ4‡¥ùPš¤y_š¿Kóž4ïJó7iþ*Í;Ò¼-Í[Ò¼)ÍÒ¼.ÍkÒ¼*Í+Ò¼,ÍKÒ¼(Í Ò·ÅrËH®9‚e87Æ’Ç2”eË`îlË@îeK–~ÜY.K_n—ÃÒ‡%›¥7KK/–žÜu&K÷ÙƒÅÃ’Î]§±¸¹‹%•¥;K ‹“¥[ ÛH2KR ÛDH"KãYâ8ËÃÍ×,QŒd‰` çkvK_³²XXÌäIS ¹¢±¨T¸$XÈdé2ªˆN.dù…å_û™K?±üÈòË÷¤JÈ¿Iï¸ô-Ë7,_󵯸ô%Ëq–c|íŸ,_pðs–£,ÿ`ùŒ«|Ê¥O¸ô1—>b9Âr˜¯}Èòßgù;Ë{,ïr•¿qé¯,ïϼHœy‹åM¾Áò:Ëk,¯r•WX^æàK,/²¼ÀòÃò4ËS,‡XþÂ5ŸäÒ,Yçk±<ÊÁGXfyˆåA–®y€K°ÜϲŸe_ !$Lƒ´³øYö²ìa¹e7K˽ì×âîån–»øÚ,w°ÜÎrË­,»Xv²ìàÎná^¶³ÜÌ×nb¹‘eË Ü`+—®g¹Že _»–{¹†åj¾vË•,W°lfÙÄ57r©•eËz–u,—âk!—âgC.eYˆŸ¹„åâ@¼ÒˆÇf,. ĬaYÍÍWq» YVâë!pó,ËY–±4³,eYÂ]7qóóYâë çqg‹¸æB–,ç²Ìg™Çíæ²4òÈæpó–z®YÇ2›¥–¥†eËL¾é<²é,Óø¦§r×ÕüEU,çðp§ðù¸—J– –É,å8/dR Nÿ†‰8}zOÄ­…”âr ã¹J)˸@òQÂ¥±,c8Xˆ[) Ä­ƒâ.‚âZ £1ųY¼,ù,£18ßÅY\ˆ®†Œ`ˆÖ§Æ0–¼@ôÈÐ@tdH z*d0_Ä20Ý2€köDë7Ö/­¯Í\–¾Ü<‡¿¡K6wÖ›%‹;ëÅÒ“%“%#­?¥,î3ûLãÎÜÜ‹‹%•ÛugIaq²tcI8f@’ޙĀc$%ž%Ž%–%†Ds£X"Y"X¹¦kÚ8Æbe±°˜¹¦‰kjTYÁBÞ`Ôl—NWT«3ªÞuþpüŒØOˆý~߃!þø×¾AùkðøGüø'®}òçà(øø,²Ñõiä\×'àcð8‚Øaè‡àð>ʇ¾Þ8×õND×Ûз"¸ÞŒÈt½^‡-"Ûõ*x¼Œë/!öbÄB× ðÏÃ?ÿlÄ|×3ó\OGÌu=Ñè:„¶AO‚'€7x¿GÃÏw=Þäz8|‰ë¡ð¥®A8€øà~\Ûkû €và{í¸öØWºî³¯rí¶¯vµÙ׸î÷€»Á]àNp‡=Çu;ô6p+Úì‚î´ŸëÚ üvp3üMèëFôµ }Ý€ØVp=¸lׂkÐîjôw•m‚ëJÛD×¶F×fÛ®M¶»\—©®KÕ<×Z‘çºÄ×⻸­Åw‘oµoMÛjŸ}µ°¯v®.]}áê¶Õï­ö–™m«|+}¶­ô]à[î[Ѷܷ¬­Ù§5Ç5/mVÿÕ,ÚšEa³è×,jv4»›Õð¥¾&ß’¶&5Mjjiò7i#üM‡›j¶ŽàÁ}MÎÔb¨wUS„£ø|ßy¾ÅmçùÍYè›aÍËkôÍmkôÍÉ«÷5´Õûêòfûjój|³òføf¶ÍðMÏ›ê›Ö6ÕWWå;õ§äUú|m•¾Š¼rßä¶rßļ ¾ ˆ—å•úÆ·•úÆåõ•´õÉ+öá–)Å‘âNQú&¤`$ä£û9½ÎÃί9ý΃N5&ª›«›’•, &&‹ó’/J¾2YJz%Iñ&eõ)ŽJ|%ñÃįµXobVßbJp$¸ÔxýÞÊ*‹ Í/dí?ظײOfqT¼ˆŠwÅ+E®xAч£¿ŽVãw¼âP¢¢DTT0JñF¡zT¤+RÑ#Uodÿ¡ÅQ®EÿŒP¼ˆè=ö ŸTYewÙ_¾}¢]ñÚó Š½öœ~Ť ·$ÕŠºûE¼«X}DèÿçY qU{eEvvi‡•&—ú­“¦ùÅzF…þÛ[>Õo^ï'ßÔiUíB\QÝ.”‚Jœþ¨7Ê—mÞLÝG—ú»WTÔ;»®.õ·èÞë5|P÷„*ÕÙ3—4/ÉÎ^:¿f.Yšmü $šõR¶Ô–,EYÿ×l”)û?~¸dÖ|–†bK³ÿWÄÿîáÿÿði'ý¿9;¨\JõÊZp ¸´€‹À°¬‚•à°,Ë@3X –€óÁbpX‚à\0ÌsA#˜@=¨³A­ñª¨Wf™`˜¦© TsÀà• Lå`˜&€20”‚q Œc@1(… Œg/È£ÀY`$†ƒa  CÀ`0 @Ð䂾 ôÙ 7Ƚ@O 2@àé ¸ ¤‚î 8A7 ’@"Hñ Ä‚  D‚ìÀ€X€˜€vv¿U ˆêb¢ t‚“àpü ~?‚À÷à_à;ð-ø| ¾_‚ãàø'ø|Ž‚€ÏÀ§àð1ø‡Á‡àð>ø;x¼ þþ Þoƒ·À›à ð:x ¼ ^/ƒ—À‹àðEï#%>žûê,Cš¾;xBT™â(ž&ÈOœ˜¸7Q¥ŽàÑ}Qýz_TH# ýa_¸¡G÷Ù¡áð´ˆe6Çd“òóEnöãõï7#CÞ|tèîãE•5.-9)=Ο–˜œgíf ·˜L–p«ö®t¤ÿ—¦ÁãÚQSÅROZåí—„áÄ90–¸8 $.£ˆKÂâ:”Þ07õ£ÌÔÐÀSC‡ÓýRxjhà©#û°Q²È DUx:Dv»i åÏÇ+çÁ¿9CÞ„8ãZõUô×—ªèo];:îÚ¶\óÖÆÂq[>Ørå››‹îï9í†Å‹o˜••9ukÓù7Îì¥\¿ýdû¬sîüaç¶{gM¹ã»{=ºqB妇›n,«¼ò¼…³‚'̇ñFRã¾Ì‘b@Gð'o=\ŒÏ r­ºé•+2F$C¤'é&+]$¹u“Ó_äô9=DŽG Ü{²§Ÿ]é>9Æg¼‘ü˜Äaùùxøˆìò_F¤ªßWOáQ¥ËÌ2D¿ÇD1Pðô•.!Ál1­Õ)Y©®ì”H­ëå„Ù-ËÖ'%Jíº×,¢3Ý®±Ex„ˆSÃâ2RSÒâÂT‘¥ˆîª9ÖÓ=Õã¦ÌÈè0M ‹ŽT_;™+½Ö–Ø-RS­‘ö_iÃíQVM³FÙyZaƒ7EvKÔÿëÌ~ÁêxB¹ÔÏÛ=+Wdõ™I"3QôL½HdMöØ£»OŽ–÷¾™oQè÷Šû*N»ÛS·(ÔO"L1Yéîñv­ëp×û¦ðø©i™Q¦QÛµ7ÜâèåIÍL°™E‚ˆ3ÙbÓ»»zFká]þQ Ý¢LªÕ¦¨aáÕÕ-A©PòœQšj‰°v¥ˆO¬ˆG::ŸÒïg„þß•`çÊ¢níéÑ"sŸ³<¼g‡èÙnªÄ\€ŸþýŒ”–ž9XŸ~CEšœˆiâãõMHÀ©[´°ˆ°N­›[µÅD(¾Î€-R²‘6åU§K³EGvîQVDÇŒuÆXÝžŒˆ„dW¼z§5Ú‡ ÁåîéHî–wrfº>®mxÎ;ÕçimñFÅ8°Zbõ_ùƒDïX}Yayņ–Wlh_ˆ í ±¡åÛ!~ò:SíÔµ;"ô_¨m·¡Š]_´v\?@^}'Iut³×–3®wr’äñ¦ñüòô•(7Ë0Ì`üÉ~Úž¢/D³%úw›L<¿×xu§5Ɣ쎱&õ-é7jU!ŠÉIîX‹9&%1¡»Ã2~kÙÔ Ç§%[íú”³[•¨²™…=ª|eD½ïTUÃìÖ徉gÍÙP£ïMÛº¶¨oá õ¦³¨å~lyiCl¡'a = ½¼?Ê!ÆÛBĦ?’Äøl7*eë»Wv’~9[ÙŠÍö_ìKlÇufw¹Ë%W«].I‰ZÑ\‘)JIQZŽ ­B[EɲåÊvÚØ.%Ò6Y4HÊu§FÒ^R @9$A=4Ä0’؉ -Ðß¡6zhím¹4?¹´hRDTß,—´ªIÚ®ÛrÉ7óÞ›ÙÙyoÞO‰\¶‘á.Æ[.‡fÔ´4? è%ˉLëàÆ8ö›·o©$ATROámôPóázÄâd·›D,ú·ƒËOëÙ3©·(ÄéR\dvî@ÿÒw÷¼ì<¤kãúTxσ©ñ{“ø½³o~ûÉ?¨Ž[¢hÞ½ÐÄêè¸f¿sqmï#¹1%’¨>}ðÈXî<±§›ëÔuÐV]×…Xf"3Ÿ¹¹˜±Lš*›4U6iÕ$ù,K1iÉìí¤Ç¿×}ÁD0!¨Ä¦TbN*11•اJLL½ _¡Íë6’µøù+ëMJˆþ!iû@Þ/]>#ÓI9)»Ç~7©Z"3îwkІÀ±.ŽÆbG¥u ¬ð($Ó„]Cûniž©g†Z eMšu™bf –º>xìÑ}ñÃ{ãnÃÚ9{ßÄ¡]½{jXß¿x@GZN8š¦9ËûGÒ±^=âêÑêa,î]™ µ¶yœAŸÒ!qª¦:#Ý¡¡Ÿ¿oüÐØp6½Sp¸$¡Õ-ɉs{ÜJ ÞîÑü½c_!gѵù!ušy íF÷½Ar ßÔy¿yýæYô›y´ß´Þ~b½B[Kÿz`ÚÛ²Þ6=ð:f.q†ÂÖ¯g¬é%qí§µ¨ÅÔLb­¡ŽÁá†Q-”NÙi˜#¡©ÓVI‹DÛ¦rº÷[­‹µÅú0§Ô|÷«À3ŽÖw’÷´;V oa¾æõK"ÏvgÊû(Q *2wƒHÈ‘;” Vµ=ÎÛx‹ØNä~rs~–~bÚº"™=L,(L,(lùÂqÆ0±#ˆÀ_Fº öã3µâ3µýG†S„¨ÅW÷rŸi£äßò:¯ô§Ãv‹'÷}Eœ3bšaXõò¢aR£[«¤áZ’ºåÀ²QcŒ$ úYÎáuµyevî)#tqN­ØÚ›Ž?´—súÀŸ|#¢}sqߨÉÇ–(=ŒmüiþxªûÈ"µVçýD æ“_`ÄÐ#º¬ ŠÏE‰:îŠâvî2 Cí¸ÍÜ]g¹1¨ÞKŠArÏ»xÄŽí‰ý‰øöx$M’sZnÄ÷Ñ ÙGcÄT%àdÆ›4Ýn§™¬iz›d­(·’uʪ„};«ßºÉØ]þNo·ŒyÜ^ý‹+aÍpÚ˜k¿†èS½ÝН~¼ST ÍÙ9œ¯>m_ÁÏ‹J C³6®z ÏCG3vgkõÑ¢ýyÐM-¼TväLª8¢âv½I"ŽˆT˜Ç$àìîÀž]DsìK{lJÚ–aæQ†ÈM8ˆI “>xwÑ5Y“J(õ×P£þRȉ»ÝNŽ<Ç$:4™bÏó]ý‘U îØáwòŒéXÙ¯ue¶úš$[§ˆG‡¾ÏÕ.B5ÒÚ²¥n(v x$¹’×Mú êCw½$Ä-´àÙDÚŒñ{xŠï†Z„zÅ3Ý ž@]²dÌZ"áµ£q3o-IBfEBœÛ,IÀ£o²VѺqÃ¥2Vц¿W½ )¤J¡»,p„W]Ã?°¶ð씢Ê\g—_t»=õ®nЬè–5±½­CÚxŠ“TT¿ðÝÿÅðÖíê—w>Ðïÿ=0W·òKÞ&4¡ ÿ{ÀVþ}À}ÿýb` Ý>°O}y–jÙ¹ ¼ß„&4¡ MhBšÐ„&|9@ùr'\NDŒÚXÊf|:ƒîÀ+¶Ï|j¬‚€öÂ[ŸxÌÀÇOã× ìçøøWw¢Øÿ¡‹Aç í@؆ ¥Ñ<:ŒŽ ¯¢Ut•Aßk ñ77aÎvcçÈØæ7?A^Ô…º±{°‡°Ž÷á…Ï1/ús÷&¢—ór{8ôW êk'ð1§‘ˆ7qðçLœüEçÐÃø*ñ†'kRIǨ“zÆÄ)$RWLœþÏLœümgß0qØíA/ %P^#€Í¡ZF%T=Ñ Ð•†R€•@s¤Í§Ø*ŠÂÈ$Z—†€w‚±²Aå¡ÏÃì³Ðæ`f î[9KÀ+ÀŒ‚1/}î"35˜¡AŸ‡u Æå *ÜŠñÜP§¡/¡ûWlܳýè‰J²£Uc-² -U0ö@ž°¬A•g®7fî ¸E‚e Ö`´bHIfG_Ðñøˆ6WX.ËÅ-U,)–²•Bq5ªM®¬h …“§*em!_Î—ÎæsÑý3³™©T_*»RX*>‹2;­PÖò…Ê©|IËj¥üÉB¹’/åsZ¥”ÍåOgK÷kE2²…<±ý~´ÂªËh‹«… ܰ’­äËZv5ƒŠÆ–‹k«•R!_ŽÞ³ÙfÐ,„Ò)X«ïSF´`˜ÊpÈ¡ÖÌuìÿÖhÍËdÑK#^  ÊÆ`Úñ£OŒ]ïÄùŸüpýxëØŸ‘Çj„©~pÞÈQ?¹û]þ“j™¿Ì=$_Ïä`À¹B endstream endobj 69 0 obj << /Filter /FlateDecode /Length 10036 /Length1 24752 >> stream hÞäšy\ÔÕþÿߟef`fÙ‡e``PvQÜDT„Ipq­LBÑ´4ÛÔK™­¶ší˵r˜Ì(­¬lÏê–íËm±ÅвýfÊ|_çóžQ4ï÷ö»ßû{|ÿø¯yžó>Ëçœ÷yÎ9S’DDZC MšXŸ_xƦ¥?Âò>Ôܺ¨¥-"Ó¾¨ÑG$_Ûºl©Óý}þt"i8‘î§ymóÝòÕè{‰ Dáý柾bÞˆw6 ¶ÙâÌm™óIÓ¶ÏÑÕYè¯d –ݦ‘(+G>}Á¢¥gÝwí-§!¿€È~áé‹[[¨´ìt¢±ý‘_¿¨å¬6;É/¡}#ê;ÏhY4×s~Ü:¢i¨¯~Û¶xÉRŒ?ÓªDy[ûÜ6û“ÿ¸“(õ¢è4RÔ yé(Lw®£Nf*¯Ò#2…‘l5ÈŠª*²z3ÉßyÈy6jëNÂï爵zIÚc¸Iv;‰¶ˆ2e·.BXn¦[`½VQKضá×G]ä§h;ÖŒó¡\7í¦ôø0Vs'í¢Gé1¬ãn¬ì“šMXBù^“?Ÿ¢=ô4=CÏÒsô<"ãEz‰öÒËôÊ¿UòôQ‹È½J£×kûè z“Þ¢wè=úþNÑ'ˆºoþPþ6j¼‹:k}ŒZŸÑÔìAM®ÇuÞ×J¿Ôz؇¶Ñ~)Œ~–dúH‰ÕÛ¤­ÐuÚ:ŠÕ«s»æg±Û+t×ѵ¹>¾ë)r"}}p5îGÝ.x0ä¿“{íåàê°¿w¡Žð…(ÙôųÁ•ýeñGKœ(qIéRF°,Fk´m jÄö©;@*–ã3[Ê“ò‘(Kƒ¤ÁR),¹È"?eG{*gÍœ1}ÚÔ¦FoCýäºI'ÔŽ¯W]5¶²¢|ÌèQž²‘#†Z:dpÉ ü¼ÜœþîŒtWZJ\”Ýfµ˜Œáa½ŽD9®Êf§ÏÝìSÝ®ªª\‘wµÀÐÒÇÐìsÂTy|Ÿ³Y«æ<¾¦5çPÓÃ5=GkJ6çpž›ã¬p9}{Ë]Înij]#ÒÊ]MN_–®ÕÒª[ËXIME gEÜ‚r§OjvVø*—-è¬h.G]&ãט¹ÆÜê2š4!åëïjë’ú”´„Ü¿bhŽ[‹x¬Oɨh™ã›T×XQîHMmÒl4Fë˧ã3h}9Š1ÓÅήœÝ—tÛhvs¶yŽkNËôFŸÒ‚FJEgç:Ÿ=Û7ÀUî°r¦<×—ã*¯ðe»ÐYÍä£|º ›ËÙù3að®žoŽ·´-ú ÛÏ$’bŠGÝ„òPš06ŒóKMc¹¸ÛC³‘ñ­©k伓f;üäÉÏnòÉÍ¢dw¨$Ú+JÖ„JŽ6ov¥Š¥ªhþ-[ç[3Û™›ïkøC¹Ó§¸›g·.l™Ûé*/g¿54ú<åHxZ‚s­è*ÈGý–fLb¡pC]£/ßÕæ‹ræ 08Å,¬oÔš›ù¢Æøpß ¶òåW”‹q9+:›Ëy€¢/W]ãÃTø¨«Øéx ˆŠ©IŒÃ3‹â®èlœ3Ï—Ò옃øœçlt¤ú<®S]p€ÁÞN>NYø"ø`´ËY*R2ðæÂ&£Í$V1Îé£IÎF×\W“ 1ä™Ô(æ&|­­oM½«¦nj£¶ÚÁ(i8.ÇåC8ç£T‡2òÄ`e¶#´¬Z~¬–?š­:¡¸:Tìì sÕÔwŠÎ]Áɉ7“Ö»«[.YŒW³»›«²Åå´9+;[ºkfwvy\Õs:]õÃÚX'7®r¬Ф©¦atnöžÑ].i}]—GZ_?µñaÜ[ëý²$iÝÔ•Ž²Æ‡q½÷hVYX…Qdœ"#zšŒL˜Vßñ°‡hVªj-ßÚ-‘f Ù$jí–Ùf ÙdØT¶y4›øÁ"Å-€‹±ÝV8çˆå9§iAgs“x¹(K‰?É'¹F’Ovì’d½ÙgtÍí3¹F {™°—±]/ìÎ=8GìIÍ.ìS¨FrHŠŠèÒÙ44¦îuô4¥"Ô¦CS}áÙØûuãPo¬P3Ìc}kZ[Ä8ÈÛ(Ú2ª[›¶¡Q¥ÚŽƒ= F¥ÖF„#µbm°€Zû5ÈøÖ4ùš²ÅC6iálóQ•k(–ûԹŃò›:#]…Ú»‰WÁ˜±N c£úF¶8ÅÚØI3FÞêBQk³ÞV©µ¡Î{©ÑÁ–¹ØU÷\MFG°Ä´” “Åè ÏC‡øiSžx%u†¦&¼–[¬€gÛ|&ŒÈÝÇ•ÁðŠªÅXð·CUŸÝÔuÓd×YØYÄ µž (öY2ª[°ùs{,®!¡Æab0ûØÃVƒ˜¹~W2ºw¹V¤öùÉÍq‰ÃA&9F`SSç‰ß´ìÜœ°­ÍÜÙf9yöW˜å(aÄk"þžl<û°µ·%ü+aéû£¶¨ÇrÒ+°¼ƒïRúâÀëBê9´ANO&‰6hJ"«òm€Êúp8T y¡Ž }ƒr/ÚÄSõd†]h ¾§Ñ9-0tƒåP4š­= JVŸG½;I‘ï lS›1VH™­©]93˜^FÑêjÚ ïEß'Q*´&ýKµ³ÐÏ$u4žéV!}Ò¬S•ç0wV ä:šÿ…Ì}¥+¥Kþ¬ÔcðPö‰RPªÚŸl'JyŠ‚JTÇ’ñÏJ·1ð‰:„Ö*/ÒÔ“I½œÖBç©w’[HÙˆº)=HgPIPT´¯UÑîFj<‰Öjz‚Še­•mf0l€FAõÐ\èlØã u1ê-$’nQuh ɇ5]¤X8­˜)G¦µú*”?{]½KÞ©ý,}bùú…ÔaËYS•Å4&( ÒÍŸM(,H‡z/]ø§5ˆúNÊ>Qª ¿ï%Ó´‘F£ñG{‚ŸÄ¦I_ÄRkhµÒDUA ë“®2¬‚¨JÁBÝõhTCãUû3’×S¼þIЧxõå>éÅ'è¼´ëwœ çNPÐ~\ýZŠ»ºOß_+ÓÅUAñ†™8wœ(m®Ôjµ&°Em ü&ýJ§I¿ÎÀVh0´ Z-= Z­*tš:”ÎM÷‚Z¤¼Ÿ%ê@…òer"E)-´Z¾xÖqjÕx(°Ic-Öã_i*Kÿ˜¶v¡~jä·i5+ð8EHÕ¬@¤P^·¥¶Ñ¹²õŸ¡XùKHðMrèl8C¶ý9é<kè„úÿ9aœ+NÐÌ“Ø4)ÏSŒîr(å>ìM/àÝ8QyT”¢±æá]õ*wÐ$ùq*‘¦©r9 ‡ÊÏÒPéUJ”oÄ^ô;M•VÒDéÂÀ;òn¤—a/8uƒ~¦R­hCàP.B;´‘ï@ì9È)ßÝ ß ÅÞ7ûÙ…ÐÍâÔ>Ü }*/øƒí¥ë½O¹A³] Í9Á¶ š+FþRè h“f? Z Ô!o…Aë5û_ EJ òc¡34Û-ÐJ% ùD(]³Ý m‘·`<·Awk¶O eÜ1ä'¡Q÷SÜ7¢¡ ­wšÃV µˤña?2FH^DóÀfy­F¯,Ó|9't_ ´‹;Æ´AÝBÙ|‡èÝ,Î4¾/ô®g3ßz¯ÄÝ`¢vØM ¡ó^9Hµ|†¬¢8·•'iœ8ƒù¼ì­ÔÃwâ<Õ/£å8ç«uí½?ò™X¦…‘Øç#(•ϲÞn±·ò¹Õû¬ú yùÜêõጚ¬GÉd;Ê•4…Ï’ÀXÑF;CVÒí<ÐöíÞu‚ºöuÝÛt†ú1êX­>‚=UhÞÓÉ4Yyã†ç”{°gCòWäÁû¼ZÓtÜG6’*£Éã« $m_Ù¾±(O#Ö£q.$SùÑ=áVrª#iŽ:*•QxÏÓIV[iiPK þºki4TŽø ×}AËtáÉÑÖRU~ÒÖºDN§UG5ï„´õl§KµõìjÖh6ûÜÇëï¡¡Ê{4R7eAïƒÄ]/tßÒ…‘ÑEFm±®†œ>÷8#¯³¸§†î^j …iú û ¼Ö¸knÐPïRª5ä¢Sµû¬Yß Û"h"|3‘&&"}-yp>˜uV(íEl$Òz-6RƒŠõÞ¡Á¡ûP2Ör Þ½qªeAï8õâþ¢šaj!E‹—ƒw’· k‚±"î]¡{Ä›+„õNÀøµxA|¬U/ƒ ©N{‘~“ÖOœî-0í?§Ê·¸¿¬×êŒS;) õ“àGÒÁsOGœÿði±õ3öõ7ƒ:ˆ˜™ECÔ»±_‰ó®Ï®û ÷»Si¨º±·”Úƒgà2q®‰~„p‡‰Ò—P¤îAŽcýÔàYU U;Ï´;†8g’)\œuG÷æß°fói´Ø»ÕsQw<ʾ¤½}MB~9bÒÏÏRÎÅz¯¡qz=Ò‡qOZøMœÍê(²+·bnA!V¯’o Ï¡„”i T/¤©ëó t¹2“)^ªÀºÅj1=ˆn–]´J×EçÀvšfk4'xÏÓ´9ä'ÐßtOˆˆ«&èš•6’•2œM{¥6å°´ùDäGà0LH9øYÈ0’.è+Ø~Ã<¯:úέÆ8VS‹|m†¦àL*ÊM´j•—ÓÐÜVO÷æÃÔ µ@§¨ÏÑd¬Ù¤“¡RéCœ­çÓ öÝ2¢°Qü£ åLý}t“öÊ…º§¨P÷öˆGáóÃø®²ƒ†ÃîDºœ¬6Òx¤ïÊ‘éVÄE4ÒIÊß)WÙ‚ó÷x‡·P¤Ó¢Ò°™Ø+S¢¡ ±<˜—äq_ûõÒìÿÉÊ|Góû1ÊW=T‹ôXôY ]5B^(j† :h41Ü(ßßßLuÊEøþú:ÞãNš¥¼Lx2”}ØŸÞÇ>¹÷è-ðÅšÕCb¼³¡ h,4Dèã+ÿÓãK?Ùø”|Ąޒäí4Röá>ÒC.ÙOcäý¸Ãm¦<ä‡#]"¿…¸yU»«ÔHÏR-4öÒçz>ÚfÈmT /E»|O?•Ê+)KnAŸS²|âüÏÖ{;§äÐÝ:è*hLS¡+ C8o„6Ó0Ý×З4LoÀ®‹Ê‘.×µQŽî ÄÃj*ÕC•†¬Éa*†C PTL׉ƒæAWÄ6”¯;€ïˆ¥”¦ßŽ÷pã=®ò.çÞa¼Íx‹ñ&ã Æ>ÆëŒ×c¼Êx…ñ2b/ã%Æ‹Œø±ÏsÍçÏ2ža<ÍØÃxŠñ$ã ÆnÆãÜçcŒGÙ¸‹±“ñãaF7ã!ÆƃŒíŒ~F—?±ð1¶ù‹€û÷1îeleüÕŸ8¸‡q7·»‹q'ãÆíŒÛ·ró[73¶0nblfÜÈ]ßÀ¸ž›_Ǹ–q cãjnwãJƌ˗162.å®7póK3:a¬çëk1.d\À8ßï(Îc¬aœËXÍXÅ8‡q6c%cã,ÆrÆ2Fc)c £q&£±ØŸ08ƒ±ˆq:ã4Æ©Œ…ŒŒùŒyŒ¹Œ9ŒVÆlF £™1‹1“1ƒ111•Ñä 42¦0Nax ŒzÆdFcc"c£–1žQÃǨfT1Æ2*ŒrÆÆhÆ(†‡QÆÉÁÎÆÊ(õÇ•Cƒ%ŒAŒbF£1QÀÈgä1r9ŒlFc£?#“áfdøc‡é —?VDrš?v(ÊF'#…‘ÌHb$2ŒF<#ŽˈaDó¢ø ýØɰ3l +#‚aa˜&†‘Î}†1 lÔ3t •¡0d†Ä R€ÑË8Â8ÌøqˆñãŒ_µÇJ¿h3’~fãOŒ?0¾gd|Çø–ÑÃø†ñ5ã+ÆÆ—Œ/øyŸûc\ÀgŒýþD–ô)ãÌàcÆGþ˜1Àßý1åÀ‡Œïûc*€÷ü1•À»Œwos×o1ÞäÎÞàÎö1^g¼ÆýÛ½Êx…ñ2c/ã%Æ‹ÜîîúyÆs<øgÏðóžöÇŒöpƒ§øAOò¨ŸàÎv3g<Æx”±‹±“ñwý0wÝÍ]?Ä]ï`<ÈØÎz€ágtñc}ŒmŒû¹ëû÷2¶2þʸÇ WºÛ= ¸‹q§?º¸Ã=¸Ý=¸Í=¸Õíná*7s•-\å&®²™Ënäš7pîz®yãZnp c“?zp57¿Šq%ã Òå\ó2®¹‘q©?ºØÀ5/a\ÌèôG5ñG5ëýQÓuþ¨ÀZÔ8à"Ô4àB.»€kžÏUÎólZ+R¾‹¨JùÈôô.ôVámè-è1èQh´zÚ Ïßhž^Þ^é·‹_ÁÎ9‹±œ±ŒÑÁÃÍ~Åð0Ê##xÊÑŒ(F?ÆÙüØz^ÙÉüô:Æ$ÆDÆF-c<£†1ŽQͨbŒeT2*åŒ4F*ÐÉHa$3’‰ #ψã9Ä2b<7€G ÃÐïÐ!è7,â? _¡_ Ÿ¡Ÿ ±r?@ßC_@ŸCŸAû¡O¡O ±‚{¡— ¡ ç¡ç g¡g §¡=ÐSP7ôVuô ´zºA[áUìãs ýö<`c>ûcc.c£•1›ÑÂhfÌbÌdÌ`LgLcLe41S§0¼ŒF>#}œËÈad3²ý™ 7#ƒ%ábè*CaÈ ‰_7òÜ  ^èKxôMè hô:ôô7èUèèexøaè"%#åB%/å)/åüª5Þó¶®ñž[µÊ»zë*¯iÕ°U5«Ó*pöª­«Þ[¥?§j¥÷ì­+½êʨ•²qEÕrïY[—{MË%ó²ªoCÇþŽŸ:”¨Ž†Ž9K;®ê؃áöŽí{:”îÀnOdÇa•k:.ë£P.S‡dæÔSDåÒªvï’­í^µ½¸]¶¿]zµ]’í’§}R»ŒZ´§÷¯µí1 •Ôîl/hWάZìmÛºØ{FÕ"ï+‹¤Ó0•S1¥…yó½ ¶Î÷ÎË›ã»uŽ·5o¶·%¯Ù;+o†wæÖÞéyS½Ó¶Nõ6å5z§ þ)y ^ïÖo}^wòÖ:ïļ Þ °×æÕxÇo­ñŽË«òVo­òNª’ÆæUz+”’J‘(mÉk’&«¦æ¤¶$¹-飤ƒIJ[âÁDù\‡dM87ac‚bŇÌñ)ñã·Äo‹×Yµ„bn‹\)·Ùרå»Çþªý#»Jö›í²u£u‹u›U™heýΰªÛ¬Ò¶ˆÇ#^‰ð4+#fE,ŽP¬¢Ø<y+­–K¾Ežo)³L´(-’Ç’WX鱤gV–™'šg™•-fÉcv¨üÎ0Ê# ¾ „Ëp‰É)I$Ù% ^Þ.E§T*»$ñolt$I—u5Ôgg×t“k|ᓦù¤õ¾Œzñé©›êÓ¯÷‘wê´Æ.Iº´©K’Ç4ø¢Ä?¸ÓòmØ@I£k|Iõ~åæ›“F7ÕøÖˆ´Ç£¥"M¨Ò”=sIÇ’%K³—dãš¹–¥øÓ áìX*J–.!TÉþ'?KXK:fu -23—,½vd‹œxÂÿÝéÿòäÿWâfÍ$ñJQïå=])d Rª¥ Ô°‹,ÒfŠ¥¡Ò‹ÛËËÃr !+“Sz‘Âð nöôSe‹ÃQ椿D©³W—.‘¨ìȇ<ƒ½‘¥ù{¥üzÞì±yÆ^šß³¯g`dOµkŠŠ ½Þ•–'Êt—Ž”»]i²f+.E-ÿ}—üeiãÈtý ‹IÖ…‡mîŸ>0qDÅjÑE8b aöcVUË‘ë2bÆØŒ„Ä ÑWÆ‘aðHlàú”.ŠÒÈM‹íÆÛø0¥¾Ün²Jã]Ý/=É"•a¶¸â,#EĸMFWš‘œªK²»Ü8=É™¥HÅlÎLJw¹’–r¥Å"“&Gzu^Š+++‹Œ-b/²Ã³³fÎ(J¨í)”âógÎHˆÛ[X´jÝž=RÜž™389°û‘ãøa<(ÿ“§ ,ÈÎnʈ‰áuËTR Š+Íí.,ñbÅ\JªÚeÖÇ XTšlV§ô&LV-Iƒ²óŠ£ôfi£ÞæY4¬2Ó®RzHZ<;=+Z§„Û,’z$¢ŸIÕÇf¹ÔsìÑ&E1Åô{æÈ»Øï'¾VÍ:¢òbö­?‘²“Ÿ¥Š“Z(•ÜÁ)ºÅ•ª_½ŠûÒCƒ â„©@ܹ<á§`> µG²÷õ”‰ ±9vý» ,hʈŠàà-Ž,)ÁÔõÑÁ8•,‹€.QÍŠÞS6­£ü¢77Mj¼éƒ‹JæxËF½¢#­yÕs+kWxsò§œ][9¯:ßb4‡©{â]ñ‘±é©1“oûéÖ;$ºjd’Û™èNLÎJ0»²]ew.h¿ëôA©ýaqÙâߢn R.Áû›C>öRWBf·|…ÇÞÏÙÏIá”gÁ|‘ˆùî°Hµn·>¾;8õx\=á–ºLmÖ™âêèÑ7h³îÉ.ëÉFd÷dKùù‘¥¥ùù6 Žÿ‰.Ù•²+5Í=È^\R” —i®LµŸÄôŒÖð#ËRssSåµáFì-”Ö…[EÚÞ»BzM¤çãE7eæ¨ r2ñ™ÉxÝM½{L±ØÜ±ÆÞ+Mq™Âceè2ƒªigè%_ó`zaz¡Ù!þ;=™óvJ¹4˜ŒRîû`üÆ Mn8nÕó(‡n@}Œ6¿q/÷èN Í~êɶ³³lˆ¸}=šçz´°Ëûu çIvjh{ä}4OÌŸ–zå’ñçßß:fIã°“ gEMZ\]0~PbAíì³k *:¶4åMŸ42Ê “ƒÅd*¨œ>8Û“?q΂9 ¤ ç]?¿8&%-a`^JV‚)µjlÖHwNÙÀì‚Þ¥u36ÌÈ‹ˆKŽŠˆu%$õO0'¦:¢3Š“²¹| ünR¾B¤¦‘7©¤ï–¯z ή ù!_}¶{’êÌÚN$f^(åï9²Þëúok…<’jöÔÐá¡ÑWZ ì²$¹ÝEÉ–Þ]F$£r™õÖ¤ñæß{Œ6£^µŸ9~@RrV¼ÉŸEØëÇ"j–)oQy¤Áý(<¶¸[ž¶23ih·\á±Ù•XéÇX)¶Û\,.–ŠÅׄp³E_\œ7* _z=ŽÒ$eUÚ†4Ù“6)­9M±¦¥¤Éf5-MMê|ä‰0c~Iq6©6éPÞ¸â GfÄ~¹V¥¸üÐK”Í»óŒ³fôˆ:{Æ™=3ÎÄ·§T¼¥¥p˜Çú¿<íG†Û=hPðÈëQ„8•ø#U¿ÑŽÔ˜¢Â’Áʲ¨ì¬ÜöÁN»|JÁˆÛ—O±gŽ*(k_d3ÙMzcbåÌÅÃ^ÝœókóˆSJâÇ– jÊK‰° ¶ˆ±ÃFgTŸ^5aIMzIVYVTbZbD‚;6%=É•Üo€wíôw#Ó‹R‡xJŠÅºÖ`]_Ò- ^JW×Õä(Ý)‹ëQ¾Üî1öK­4•f:Ôˆ¬PüÁwÕžð¸qÅÚ«ZŒÜvOD­n|(Å&[Z&Ž›àR„ÿ»}„¶I᩾>,Œ‰µßühÅíî{ø V^2Æ Hvö7U\3}Þ†¦þE³¯˜U³r¸)© #£ Ñ|¨¤µdàØìèÈåÅ ‹Jœi&«QUVSë¸É×>кü±µU#†IŸm&½Þd3).¯8yî !§ÖZÓ÷»èj¼Í;umTL³ÙkÓ@¹/·Ÿ¸SÈ;ÈÍ1vËy"<“fÒõ¯N¬´ç–‰ ›#fŠpÁE±p¿p“édÕú¸ S:öz‡fo^A¢£ôIЉQvš’ û(J4ô¾eÖ¦œdQ ‹JèÎ(J1[­½¿KyfS*ö*®"oöö7ò‰bÔ¹Bs?ü½ÔjŽÔ¬&kZ¿Þ·{s£’‚ó ûA!ÜͲúíÄÔ“É$ÏòS²­;pð“Tk .^#[·Të1yrÇeŧWLJ&Yª­v¶8(l="V&ÛÿS˾b×^,½á^ŠÖ.+ˆ•×̉Ó3&šû¥—º f yƘ0 Å™kw]ý´Uµii!OHGF”T9æÈ¶E9'”š?iÒðù-ì y§¶;¶½á¶vËÍ3%X)Æ|£bQŒ˜˜—±[ª÷=ÙãÜÖhgu´6,³6l"Øïƒ~0þëúÇBmC9ÙĵèÐË;Õ0‹1,*>92:+Ó?aÚ®‘C†$Z’q&*+5éy FC˜Áž><çȾ?N|qá(·U1„ÍÑY˜}uà€üf_MŽÝ(òŽÞ(Ê=x+Ô<)oÿ`“Q2~aìË;Ø9XV´k€u¸„›ÀAC» ì×€q16±SãKƒMùÁ£«å‹ü¼ ÌÐ.³fdÛzfà︋†ÇùÿùiÿÆýCþ¡tÁ¥õ…Óª bÌj˜9Ü”íñ–¤ ÊŒÊQ[W;"£p溆¬‰žœ~aª¢ÌaáîÒš‚´B§Í=rbÝÄ‘n)yüÒ ™ÖظèÜœ$W´!>9!"¡Br¶31-Ç3µÌsÚø,sd´ÕëH‹2DÇEG$¸¢R²œ‰©9ž&¬RlàùRµ‹†Ò•¼JÙí–aÈ•+þ¬%7´5çvK)üûVóÓDÅßnKZ¾[ƒÖL¬iHk&’h©|C$EŽ¢ »……²KvBŒÞ<Ùƒ‰ñ„Q\¼¨ ‰Æ‹‰‚n&^ˆRßL§ •!qwó›ùÍ›7oÞξ™i&ÛpW¨,/(£çÛ5]—è¹øu‰.П®ÑŸÆ—ÇßÇé®Ç‚¶ñ0FrsØ‹\Ü/óÛd>†ùúWÑý1'ûªÃ±–`¯Þu~Ò a9á åæö;¨ÿrôj€ÔVIŸ§èÞŘ¿Âç‰ÜœK «±–P}w׸¢"\ãV¼5õ¡–Øæíîn©D’Î\àÿ\kÝ qápp½) î(<»CªwààäQÇ ïG_(í8”ÝØ‰òµÂPyÖ8pàÀ Ò/Ÿð €‹2ñxD/;Sp¹Õˆà>:àìU%ˆ,­Û!˰t–— óÂÂixÔSx¹aÓ:¨ÄØðB’Ѓp dñIÐÁ ìluö¬Ë.g?g¿‚m<…%AŠ…:!$D/×¾•ë-=e«XÊÛŽ Ü»À/ÌsîFþŒsò%Î%x ¬ÒYইŠØÁ¹Añ9ç"”‹8wADü¹ù爸çè«@šðnFÖŒâø8B¤ÁFY™ Ó,•Q¢!Ó!Š5 ÈàM …²1Ç:‹•TÌUÔžÅTAÍ$¶Ë ÎÊ4ÔИžŠ¹­¨&A ‚¹Švh­Í¤´5An²7§Âæ&¾AÂ|ɵٽ6ýOÏB=Ò™-ê !,iÌÚÿ 2™•,Ö§ŽÒ÷ÀØö£XšÁZ›=%ÕŽ.’xSS3é×FMÃ2Ò6Iæ´aʶfèQ’ÈdHJ·-’R-ÕœU•è@O_og{CRÎh#¦ÖØfd”ÂDœÍ"ªf«&‘‰©Ži–­šªBlSVÔ)Ùœ$­ÙVLïîÑt‚fÈ®ÙØ~ЖmÕ"²®ÄЀÁ:5ftÛÔT+z"Q4=нЉ³¹á¯˜J±È™A ý4¡ {ΠţÔúo#<·»ex‰ëÉ „ˆ«i î”…®=ìëeú­åÄú·‡w*ZBm1[Ò^¯ßÿHó·mß½¿*6­’5é ;å»þ»;Ìp endstream endobj 72 0 obj << /Length 3000 /Filter /FlateDecode >> stream xÚ½\kã¶ý>¿ÂØ/ëIwX¾EØMÚ´ P4EHZ[žq×cO%ygg}/E=½æXâUŠ`£uÄ{îÑÕ½49tq· ‹¿]ÑzûõíÕ¿efÁ±JñÅíf‘ðEB ¡R-n׋_–‡cùx,¯»ýZ&ý–Âf8àTí~¬› À,1Z7-¶Åõ`l¹?\s³|òÛýjw\gëæÈmé²¼Ïü‰_)“ûtçÏæYqÜ•¹¾‘‚.o›6u«&‡?÷˜O–åvwùäÎò­ú=©ÑëŽrö\1 ŠQ½½ú/Pø-Œ$‚J ‰&íbõpåÎK)ˆ°bÿ7É"Ï›«·D78ÍñLQÑûå7ºXõïÍâ©jùÿ<ônñ Ÿé\æ%?ý!!Ú²1Rh¢ÁÇ_b(îºa1ÝPCúÂ3=ŒpojLß “§Cé•÷Õ‰e_ÆÚÖx EPã¯9ŠÇªb—k¬æÚE†"ËHb˜>ÿz,·‡ý…·º’L¢ '™-™ÉPaÉ -‹– † ÖÍ30õ¥dÕD9çÃËñ_´ÅÕò­ßÈËÊÑ’pƒ 6Z9“¡ÂÊZ­ A­·g`(+¬“ÔÁæó@9Œ]L%´¦Ä@‡fI%z`‘©„ÖŒP«©Ä„Ë©¢‡'rAGeÈZj’x_ÿ°}ØîÒ|÷|møò d.ë¬rM®—›Ãnwpùæ“ÏCáTö)}xÜÕ×EVœK­™åÀ€h2çÛ´øð—sùµDë6ßî‹2K×2á3À $¢X÷본”$mÞ~9ÖP ªf’o+_ –Àóò½Œ0B¾ñÝhå;•‹p&Ì51™ÖtèÓd¨ðÇihYôÇ CPë¯ŠÇ gÂð>/þu^íÒ¢ð_¦*®üJ}|>–ÛÝö=y‚Âx³;<w ®° 3“b‘iO‡VÖd¨°²†–E+ CP«†ŠÇ ‡ æ`«¥íüÉPaç-‹v>† Öa30Îy«MVÖÙÆ•wï¶ûmùî‹+E¶Û¼ñ§¿Jó»¢ÙÿêÃÓº^”¥À.¼ô0° ›T؉e± CÔ¨b†â±*… ÓWWDHgÐ^gÚ¯^½úæ)n~\•‡œÀáeñ@=O9.<õ0Ðâ™ Ïвhñ`j>CñXgÂS#ÔúwŒó)™­.ëM'„&È`Õa õ6*¬·¡eÑzÃÔjd†â±^Ð[B¡÷rsZ"Ûýã±,È:ƒœ;ÏœÄ^ÿôzœ”"Œœ: ´&C……4´,ZH‚ZçÏÀP<Ö BRT ^VÒóH%IA˜8%uh%M† +ihY´’0µÞŸ¡x¬”ä*/)}]èV.»J÷åÛÛü˜—`„Sd˜ê0Ðâš ×вhqaj1CñX/ˆK€ l_]~*ÆP^?ŽŒSÌ®qªÃ@Ki2TXJCË¢¥„!¨uÿ Åc½ %Ήö‚”~)%šn‘Q©Ã@Ki2TXJCË¢¥„!¨uÿ ÅcG$¥uŠâ(ç÷0°ÎŸtþ‰e±ÎGÔ8l†â±‚#’Òb¹=‘Ì>e«c™5%þ¸qGiüïj(uhM† ëhhY´Ž0µ¾Ÿ¡x¬ð¸£4šØDöàk”y=U?ï»âøàw›“+uš=fŒR&ŒH XZh“¡ÂBZ-4 A­8f`(+œøÈDÊú‰ÏpÚYuê§?T›g¿I/KJY"dìê0Ð’š –ÔвhIaje0CñX/HJ BµìIêç¤øWµÎ.Më‘J:Óüö+rRàÆ"&õŒ@¸<©ÑÎ×Ó¨7%MJF ¸ÇOìrß!®˜ÿ&|/›)^éùÅL%ýÅ0u^]³¥_eáO~¼Vj™îŽõ³Ëû´¾Ðܼ?”M·šUþÈ7+›^×µ_}°ià2ß œ×8¥û çúF2ºü»ŸgçtdÝn–¿qV-n4'ð6Ü0I¤¬GçËûj1Š’ý>»ÃUêV (±|$Pd¥¿¼ÞæÙªÜ=û£c=gË;äúw†hN!& 5f*Ÿ5¦iv€çæài`ŸbI½ÜεË]ÜþÆwðd¹KÕèY}ÇÉŠÇRE –$\ ©é–Áp=jŒ¤Š@ú=S˜èÀbã5PJJLœ¸Œ0"NÄw£S¹ÖÄàx—*èa`óéPÁ|àIJØ|EPã¯9ŠÇ NþVCJ&.ƒ†f5N2Z2“¡Â’Z- A­›g`(+8Œ"œ ?· †ÑË a„¶„ã&AthåLE g`V´n䴮Ƴ M‰áɹ0|Ä¡1½_IPiD,2’tÅiÄ„Ëi¢‡'rq¶ÞWC–(¤nê !$ÞÛœÈëõçò{Ÿ›&jùýµ€ä=¯RI8|ÚBJZíýòË­_Gßö{ÈrÝWé\ZL!Må„5ÓjnI¶Ûb¦B;&)Ñ´].³ê&BW¨Yª£Û·Ë?iCi=ŠHÝ®¤ù =÷Dnªß5è`꽃]gÕÒö¬ð¾¯óòêm¼W<ÂѪGPu"Í3Ó±¨ÖÍ»NêŒÞ=±aF¿jÆ.Ý~iRRPúݶr¥†au©ÖÙ&gùƒšVóÙUK\B=¡dcmÄf¡ÕEÊ6ÍÜš)¶ßoWŽƒû¦{ëí*-³¢évZžPórªòÚzC‰b'õ '›¢Ô÷¶Úwní÷«ú³v'ÝÆi·ª- ÒÜö¾º’ݧ®«·N$îN÷û$SЛºY‡”gÐêXøfõÚ/7±½L÷MÊa窂-ÛínŠã¶„^:ëèÐ,¯Of}Å;(îŠæ[Þg•VX%c¿kê¿Ã`])ï6®¦…¦«Ò®9”€5ûu¶_Õµé¥ÿ“ n7Ûû+Ý`0uÍCöëú©µÞà\׆T¦±„(ÐÃÀ¾¶œOªrÞTå<Üfœß«R7ûT±­ÝR·ÒuÅí¦ù¶pÔk彪 œrW™?zò† Öa30ª`*V.ß…‹P³cá¥Ã@+l2TXaCË¢†!¨UÅ Åc…'±„©môÊE¦$±7…£‡VÏd¨°z†–E«CPëñŠÇ Oá`ÊÅäÿqå"“À`‚›…ÖÃ@ëm2TXoCË¢õ†!¨ÕÈ Åc½ 7©«ñŠ× }jÖ ù‘À·¯ÓÇÇl¿7'Ÿ F(CƳ­¯ÉPa} -‹Ö† V30õ‚¾Üª¢òÂòŽÏ#¥Ä,¡ª: ´”&C…¥4´,ZJ‚Z÷ÏÀP> stream xÚ½\[oÛÈ~ϯòyaOçNr}i“݇E Éî"`$ÚV£‹+Êk§¿¾g.’²F"ç°‹19}œóoΜ!uDg÷3:ûëêÿ2øËàïàˆÂ?6Ë%É(ŸeT©òÙbóÆ´sRäÅŒ1R(5ÛW³»7ÿ8¡¨èbüò-áÚÏ3JD‘ÏžmÏéí0׳v '€:1ªŒè‚[&…&šåƒmS\A AŠgDÙ$ ¥cýùöÍŸ>Š|VBs=»½›1®ˆÆ¸œP©f·ËÙ/ó·oßþe·y|:TW7Š«ùáÁÔOw°»;º²ÚB÷šÀ'¯~»ý9ðáöµÐtÁ­‡1Bë``…6**´#ËR…†"¨Ç ¥cY¡qyBhºÐl´:««õù¯ÐOAa¿REí•8bgå$¨œé¼ Œé@º001ƒÿó,FW\ -XÜRí =9ÁÔ9÷yúÁ«è2B£¬×ACéÃ^Ë=Zj¬‚þ¹QAÓ?“¤`^ß™º€HRš#Û”»˜âÚ¯nx6ßíFšuA™à„*cŠÅ|ñ}z7f0p.š.«ÚÁ.«_)“ÛjéNŸW‡wk3†w*@ÏoPÊÇÇj»œ%™nz]û;‡YHè#tã¿`ÞWÛj^ªÛ¥óþÜ.wÀÚÆ®¶æPÝWûàeòãå ÇÑùTA®K r\“<“˜ wa@KFrc¹ˆæÏt” †KkZ tZ3*žÖô-KNk0MÀP:Öë´&PÙ pb£Áb]ÖµKgl¤1 Íã÷§Ãj½úJž!˜Ý­wÏÄ\2 ÎfËN–i”²:Xe‡Š*ëȲTe¡jÔ0CéXѰ¢€ªœãÂJíüÑPqç÷-Kv>† à° JÇ:±[¢š(3ó‘4saeYùM÷—/«íêðåK³QºvÍ?”ûûº9þáÛó²^2Er­p k1Ð  WXß²d…a ª˜€¡t¬øƒ•°¥à?Ûú°ZvûAOs”°Ã‰'@ µ3).žYÉÊAœg'*þGiies:¹!£âÔe¡)72”ÒZ ´ÔFCŵַ,Yl‚‚D&`(ëŒÞ”"JòÎsCÿÄyYAº½¯ŒÆÞ}z7LI’âTä>VÐ(˜¸zZk’•“JHð4’‘4œ3j‘‚@ÖQËîéðJ.ŸÊ…»W#(É´hÙŒ†ŠK§oY²|0×OÀP:V|ûÅìë ”ïÚõc‘âžï™•ìx9ÁWxv’¡âû.Vé£}WõR-žU“Î Ü]QI˜8µh †Šk¨oY²ˆ0×OÀP:Ö™ÝÍHÆÙñZ]œ° ª:X¡‡Š íȲT¡¡jÄ1CéXñŒGŠdZw2žÏ½÷êö]Ô†˜?«íÁ„0vm»}”ÉœÎqQ¬ƒ×h¨¸¸ú–%‹ CPÄ ¥cEs ©sÂ52²´h熊;¿oY²ó1‡MÀP:VôÍ–ÌÉ•,>ŠÔUµ´!„‹œyù°0¢4 FZ ´’FCŕԷ,YI‚‚÷'`(+®$MNGï{k“ýžˆÑÓ0 I J!£Q‹ÖÐh¨¸†ú–%kCPðû ¥cÅ5$3R4ߺ¹Ûí}–Ü$Ë!×¹·»4Fé°MšœHäWR;hM†ŠkªoY²¦0LÀP:Vt³/…"…L^¦Ã§DJÜè;h†Š‹¨oY²ˆ0ÇOÀP:V\D`#>0½o^N¼ôäô!<…þ|YL4‡!"#R‹Óh¨¸˜ú–%‹ CPÀ ¥cE7\¢M \$é``?*êü#ËR"¨qØ ¥cÅSJ ã>’<÷Èë÷ìÿòƒ)a|šãâJ-­ÑPqiõ-K–†  ‡ JÇŠJKä9aÚ§:Ϥ\Ú]üûaÂÉ8Ñ“Z ´pFCÅ…Ó·,Y8‚‚³'`(+.œLΤÿ¶Ï~µ=¸€dãΧŸü>ëbƒÐéƒÒ(ëWT;ѨYsG«eíl•·»ØôòÒ²¦» ö×à¨)Í^}¢[£„˜¼ÊÙܼQ2W«&»e>ñµ÷)ý ‘æä©®ìÏ€znµ3’ÃŒ¬ÿó…ѾŸ%l¾,¥ëÐ$§öE–í`ºƒDµ¯Üôt׿îË­«Iwç0nèyç=äQá<̰S‚.’A£2ÓäÍv'`U}Ò*dž™,Á®Ui¦©ŸçÎlÝQP§(¾#“œ›{s­û£æ‡ êvÚ‹cCœì«úi}¸œYs˜>TÓ¬¶°Äå–sØCó ±Ü@¸¼Ü"†Ñ,·£¹ˆ&ל™ÊÀ=ì``“ëñPÑäúȲÔäEPð× ¥cE“kAEg'Kæ?2lÍ<+ Â+;Xe‡Š*ëȲTe¡jÔ0CéXѰ€*–áÂJíüÑPqç÷-Kv>† à° JÇŠ¾‰g…ýŸÿkÉ<Ëá ]Z ´ÀFCÅÖ·,Y`‚‚(&`(+^ÔÁ²œäT%—Ì3Øïp O-Z=£¡âêé[–¬ AÁã0”ޝÔ`Z“\`å> stream xÚ½]oÛʆïó+„ÜÄ>H¶ûÍe_¤Eãâ\´(j iðÈò‰Yr%9ŽOqþ{‡_K®¬•¸3Û"@HQ›Wœw gIŠá³_g|výŠwKKËÇ?bæ4+¸œ\3mÜl~ÿªÞ.YéÊ™¬4f¶]Ìî^ýý´†áj¬ñé3ŸÝÂ{?Ï8S¥›=5#ïëÑ­æjö‘d©#{U0[ŠÃÈ´²Ì 796#5S¼¤ddÁtYdq¯õÇ›Wø(õ¬d¥•vvs7Ü2S'ß1®ÍìævöéâvqwùÎHs±ø±˜?îÿâ†ï«;XŠ÷—Ÿo~öñýùæ%G¶”M)4¨¥KE9:ˆ ËÉ >÷9ÂkáH¦tœecÃÑCµÛÇÅqf4­ìŒ4ȸ$KÅq #CãB1ȧ8ƒCx­è1ÇZÇLI¬ƒ9ùÉRñ䇑¡“O1È',ƒCx­—µ¢·¨L]­˜¯êbÑunªÝ·²>è<Å Ÿ° áµ¢½¬ÕŽI[ô²_¾,×Ëý—/}3û¶ÝüSµýuׯÿôíév7±¼(É YÐ4È„%KÅ #CF1ÈS‘Á!¼VC¤#].˜¢„n{ýúõŸ6ëÝ~û8ßo¶ ^ž§GrVÄú4héI–ŠÓF†¦‡bÏx‡ðZ'æHu¦Ÿ$íqXR¹:ÏLï V«AƒÌ[²Tœ·024oƒ<#ÂkàMH¦Áö†·&¶\?<îwìvm÷¶9¿óæÃ›·“P20Áw–VºFT”Ò¥¢(D†E‰dPŸþáµN Ä9Ó0÷?Ò÷jõfL°,9­.4È0%KÅa #CÃD1ÈÁ!¼V&ãhŽëÒæq¬0µÇ»1n¦áU€aFÐð4Èx%KÅñ #CãE1È#‘Á!¼Ö ¼ ˜*w¯ºX# ¶OƒÌrV––Ù A†,Y*Y2ŠAŒ áµ¢'šŒ.×Ä 3h“Ÿ,O~:ùƒ|Â28„׊žh2F2+]Ž‹¦FŒ;b4È%KÅ9 #CsD1Èç>ƒCx­G*Í™-dÂUS E¬;ƒ™—d©8/adh^(ùgp¯?èÅDA,ƒ9ùÉRñ䇑¡“O1È',ƒCx­èUS#,+¬ÓWeÁ¤Môïá`´hqÚíVv÷íÊæîà®3šrN@9Á¬¥Õ«‘™³d©8gadhÎ(y628„׊÷=Ê&õ=¿µ]µ‹ÿü~ [²B Õ A(Y*P ŠA>éÂk¨P¬»ãðn³m¡ù¶xîËÐè>°Žy¦`ñ‘ # 2JÉRq”ÂÈÐ(Q òéÏà^ëJZ3Q8ÀRRA-ú4æçpõ¹Ýð9(RÍÛÏíÛgÓ†9âÓFdÄ’¥âˆ…‘¡£ä±Èà^+:7S0ËwÄg#Œ4ÈÉO–Š'?Œ |ŠA>aÂkEoôP $UW^>Š ‚4?‘õmÒ %sÄÇ,Œ4È%KÅ9 #CsD1Èç>ƒCx­8GÐùèþ1 åKŽätŽ8¨Ÿ©0Ò s”,ç(Œ ÍÅ Ÿû áµâ ŠΖ£ë]O¦H–øB«F# *EéRQŠ"ÃRD2¨Ï|‡ðZqЏ`¦8ÃuIìG€ÓGá¯fTçir–qâƒFdš’¥â4…‘¡i¢ä Èà^+J“t%x¢hzŽÒô½ZªÐŒŸÍ0Ò •,*Œ Å A‡ðZq  Xš3åIz >œ§ÉJ&ˆO^iiJ–ŠÓF†¦‰b' ƒCx­8MÖgÊÓˆ¦IåÉp&ˆÏ_iJ–ŠF†Šb‡ ƒCx­è !©“Äç%Œ4ÈÉO–Š'?Œ |ŠA>aÂkÅ«‰¬è—ð‘—wÇþ³[™>+“–IC¬+ƒ­d©8Zadh´(y28„׊£%KæúG%<±êö¶ææz8B3I|þÁHƒ N²Tœ0248ƒ|²38„׊ƒ# æ\W“¶Ëõ¾-HMÝ©®ÞTþþVèm®D÷âÃÕðT—ºé¹’gISÐFIÁYɇ$´‚}V3øÛ1'OpâÅâ&´Ò­GvG0ÁOž[kÿ=©Ð»wV¡‡î¥Æ€z7 ½àÿ©@ÇÿjȘ‰Ò²Bt?-»¹tò¢Ú}k~Ûƒ‹ñ`%A\ƒT;´¹ºÑ D5gƈ~\µ¾=&&%Ub2*ÖÛ-ïVЙCb/z¥¹?i¹m·µ½{»¾ß´o÷}ûå;-‹‹›~°£]míÊ|³^/æûE³Ó³wB¨V4Óº»¯‘âb ŠO—Ò]tüç7ëÇÂv¦¹•oöõ±¨g…ñî¼mk'ÛÏýºØÕ»+xð‰m °ò¸[ô#»›oÕ%¼ìTíâvÙÜÏ^mŸë´×)^;Ô¾ÛúÓ­ßõŸ¼ÜuÆ0FšÎ˜îؼ¹£¬ªEa¼´ËÝû³C˜²QÊR0FbÈ‚!¬‚™¥"Œ ç a7ú‚‘ìEtF#tÁJÚ„f öÉJÑÖ! Û9PÌñ©¢»ƒ–ж ¨½ÝCÿöP«wço·`#´ßS4È´$KÅq #CóB1Èg9ƒCx­è­êB•Ìò®™8¸éÚÌ÷íjßaBÙm‘¿Ÿ?L¨ö9Nyƒö0 îôõ‘s‡‰ó øÝÒŸèÅ„¾Ò•P9jªÓý¯ëþºÙÞW«UÓkZ”ÐÑÀ’w]L» M]ÝOm»—OËý×v­¾ ýHC%Š’ ã|‡¸ßlS:ªc½LÔýˆêáaá;×°#¾¢·ÙÝ+hóJß×­ê!©˜ÔCŸG­¿ÃĦáÑ¡fïdýŇ½‚¬J‚£ ŒÿÕ6Í? endstream endobj 81 0 obj << /Length 2872 /Filter /FlateDecode >> stream xÚ­\]sÛ¸}÷¯à£4£ø‘™<¤™n§ûÒí¬Ûtº»ŒDÇldÑåU¼¿¾$E™0E€ E <Î9¼¸¤.Œ³¯ÎþzƒýöÏw7ú¨Œ¤… ÙÝ}¦h¦pŽ0ÙÝ6ûeU<=•ûíú·»oþrwó¿'âŒdk$…mK9Ï67¿ü†³-|÷c†Óyv²-3†¤6gí²Ÿoþ1vIBbœ\\wÿb. mó󶔢œå€æm}£ eÐ'Ú6z,žFº¯r$ÉBýÏ)bXÆôs¬ê}³¾eR®ŠÝ®^Sµ:™]kš¯^ÜN}ð×dµÛùc÷n{|€ƒ¥û\ퟞïX»c_Ö·€Ú5ðs»ûz{(‹í‹;Ú‹c‰L¿³[Â"ÀÌ-áˆsé:üù¡4ŒÀUË1ê4Ƽ_s¬åùB!I&5C ˜N"_$4³XBë)ò9rïSÊ^5OÀU¾*7Õ¯˜ðrû®«ýðûZpÐé¹tÍÝidÕTO»ß¶øfDt4áÕý¡~¼1Їæè¾ßÔû}ézâX'㬊£éXn¯h·{³U!¤F«v¤Nà>G“^,+þ-§Ôël®¸B.üÍ[ŒæšËL*œ•¢2Í9’<·XD°·U&(×òRæsö¬Ìj 3Õ Õ7,Üf[Ù“‹Ü`/CˆûúðXnfx—wJ+¼ñËÎ}ØL'wãŽ9im³Cé>Ø[”±ó¨g"¿F\%^i+Ôêçê±Ú0lNVÖá"x-,Pž÷\æÎ$¨Ã3)9Ü×*IiÎá&,–¬©û™«×747=uï·‰iŒTN½Hm¶ÒPÙߨÛ÷ê¦ÕÎE£6ˆÒàAAÒúHyyóÙvTfÐIÆ¥mwK±σ½ìÔµ§H¬M°«6Õþ+ôK‰Õçµæ0U|W‹z ¡æÔ¸/ ¿½3 Šæ[3Ö! —¢ˆHÏùG8…•‹f/nç¾,ŽÏÖ§°cçØþôÙmm4$m ƒÅ—jWÍùþt;#Áö¹ñ-NæË®Ãfîó…ßnêG'd½‡{¶Çfxñ®v‚ÇC½{¨œ ðð­¼Ú.ê×MS}Ù•îŸ47…éëˆÊâéÔû —½ßÕ§1ZL£¤3i{ÉÂ9©yvÚìŠÆ#‹·á¼»ï@ÃÑÒÇ}?‘SsGÓCÿaS—U˜a~/`+ß¹À”ÔT[Ë*ì95¡Ñ}msǬ³œMV s— Úól`ƒ#.°Á¡miÂí¦Ý=U¹Œ • Œrz>ÔÓ÷O(¤HÉÖ§Q,ˆ ]”{o™@Š<t0 1Èn„0ñNš8gŽsù+Üñð®²C™ÝChkSì§Ý€ ˜éÏÀBA{h4Gº£!©œÈaÍùø5‚²ñø ãI>‚!¨é†N醠 b¦šÏEË)ä¡ÜŽÌKD‘εW<¤ÐkezŒpo<¦ëNXäÙP#½òZ GÖêríØ:µRêôZ€¡x,›=Pži¤%Ì™&J¶ÁCêç1Óä·±áäW,0ü#oÞèÖE â“i.ê1’]4*ì¢áÈ¢]”BP§ü Åc…]œ0êó­O¯\ôézQ“z¦™¨ƒHöÐ\¤°…ÊvP9èéìDC…ícØ%ÓȽ™Aß>ú„êç£=þŸiáÒ"‘f£#ÙG³¡ÂFŽ,ÚI)uú/ÀP… N¯ŠÇ Ç ¬k/>¦£¥&|üûyçö_>°ÉHb*E˜bH3²LáÊXdá S2·„º•i€é²•øNô‚Ï$–áçeøLh¤÷f®^ë¬Îj´úš"ƺú¯«u"ƒòQW¬Ûêd=REçŽûâ-Sjnê·8öuªg§>Êß+S%öܸåwS¯nJËL!žâ®϶­¿€sùê¿åæè´_<7ßàÖƒ+—®šMæ ¼–q^ô9'‡›¢è® 2¼1r¨5¦oc âˆ\ªA}0»Ìô°-º¨?õ­²5Ñ×\»ŠH¶jžÝ_<ÉVþ‰ÕïŒÖ"ÐbBîÁˆÞÖ"¸ºRÆ1rͧKíd?°?Æ`L+í«o9#`‰³ï»!Ûmù½Ü@ò½ÿ:vMS»Œr©†µi%¢Xžù~2Xˆ4W Ë,6XR ‰”h9pE¸ŒïF/çrNŽÌš¦%G=Frr4*œ G¥ÔéµCñXáäîy¡üŠŸ¿?Ùúü÷“STk„YZ)ÅFªeæC-s1²XË$ÔʼCñX¯-C°D0 0 “åíuþЇˆÉ ja–<.2ôX‘ÓÈßþMfb:¸az:HèF¯ï<*F³çášÈž©$ˆ2Õ®–‘~µÌßöÕ±*vÕÝ¢™ŸÌB™úpt{ÿ²+dìB é%2w&)7K1n¹À+¿På`’6ε[÷`>Tí5Mfkõóׇv§tç»LR »ŠÉ19Er›×©9$¨<Ç6# ÇòûÓ®ÚTDZ%0Ã¥p›Â-¡â¹KÀ8Œ¯–;üûZG$ps—À™†vdÙøv¶³…_Âj˜T×6ëÖXÞ¿L\ÁíWkæXÿ<àŽ>”ƒùg‚mu€g ³ÈºTS˜5/įy‘o¬yQíš¹º¯/¼´+ÅèäÉ2gØlµ_-ÓÁwëÅìÁŸËv‰ìPD§WšPX4g Åœ,6è`¸")Agአß.èÌå"˜ƒ §Ñ´tg© Å|¨`Bq1²Ø„"‰ V¯%ŠÇ æ D3[—¼ÒÄü=¦Xš‹zŒd͆ »h8²h¥Ô)¿CñXa妙n_f-üË#‘ñÄ_Î0’­5*l­áÈ¢­•BPg‡ŠÇ [Ka„±â9Í«ò%æyÈ´·+gÉÆ™ 6ÎpdÑÆI!¨{†â±Âƹ­ù{kùÒâ´K{Ûr†‘l¡ÙPa Gm¡‚:Ù`(+l!.mßÐBÃÚ<6m!†‘‰Q¨ÇH¶Ðl¨°…†#‹¶P Aì 0¶ã¶¶ïÕàWe?æ‘•@§ÈRoíÎÀ"Ÿ  “)«á „é'è„nt*Ïåâò½Ý¿~3Œáʼdzʧs{èü'Ú¹Ö endstream endobj 84 0 obj << /Length 3202 /Filter /FlateDecode >> stream xÚµ\K“ã¶¾ï¯Pù²g!AWÍa“ŠSñÁåÔNÊ۵ŕ¨Öꑳ3ò¯O7|H¤$ÌawüØýõÇ&²ÍžfÑìŸï"û÷oïþú#U3JIÇlö¸š%l–DŠD"ž=.g¿ÍŸó»{ÑùëKæ»Ã×ß#ïpûÕô¥ù»ØmËêð²¨ò¥éÈô6ÿrw£óÕîÀ9ÿòR™!•ÿv‹y¶~É-ØneŽÝëcw‡ª¼ûãñ'°5iÛÊiBpDúfGt¼II 7"Û.ûP#BR7èxæ`^æÀ…Ø:ó·ýºXÕúx§èüâÌîyœ)ÓÙ=DÙrÏ™´þ#;oùâ¥*îÀó­éÑ 4Cd?ÿпÜ~KsÜvW™þÒp—/ŠÕÑì¨Ò‚9¾á„yI´©ÀeŸú˯8\ÁÈrg¶Ê—}+&ºËZ¨æÅ¶¨Šl]ü ¨YUO”õD5±4ÍNÈ¡ýZTÏÆÎÅn³Šî×ÅÖ"ïö†Þ YIB÷ò•­ Ó}öã©™`â*6Ù>ûR¬‹ IÿåøŸ †~1½ÅÖôv]À=ÙÕ´€)Û®&)\àÆÑŽX¯M\‹í“v)²ÎØ+ñ”îh1JGH¸ËÍt‚¹KÓmvóù²8ä Ô¨îÅ!5µÜtefܹÜ}.ûÀÑ®m°îÊß²Í~mвã…Ó¾Ugá¢ø«|[Z½ÈSåãþ llÆvà'p¤>ЦuüŽBn£Ûþñøî¿ï𲎠©ᑘI–”Í›wØ-'<å3ø_%³C>[½ûwŒkw°âˆ·°~û#š-aø xjöªnàŸA^Ï>ð¹1œ©Kæøè!!2¥· .‰„dvŽ34# 1# DšŒ¦ÂqÛ¡$‰ØLÒ˜¤2vb$U©ÍÃCñ9Kƒ1lÅ4æ ‡x4TU6T]Ï\Xnõ­VAu¸&`ÈKÏ9˜€{j*™Ä»kMQJôýV'»uVBb‹Y<Ìʯ?þÅÑþø¢s-y…Ä´Zï^ îƒ=ô‡‹—¾–V$HDÔUC k,Ò°®:nyË*€œZ áìxC &”8e$ŠÃJ #4îã¡â™oäƒrñš‚!¬ó„B#Ib ~L¤ &¡,ó•I'Ÿ?ã¤çógL(e¾^}0Ýßg‡§ÒmÿõuYÞ–Wb‘°´R#«k$а¶Ú>y+ËŸ˜Z ÁÌø"iMqÕÖ‹ è'RÙÉìwß}÷w÷Ø»;h^׋T„ ¦˜#X3£¡†UÓõÌ[7!Õñž€!¬žŒäÔ“P’p›’ú§3dT‚º®·X é­ÁÖÛh¨a½u=óÖ[AµF&`Èë‚Þâ”$‰ÍV(&Rl÷/UI–9̰9jìýÛûÛ”$a<0s5ÁJ 5¬¤®gÞJ !¨Žþ ùc]P’Hˆbô²’Ž7*‰3Â’ÀœÔ`+i4Ô°’ºžy+)„ :ú0äuAI<&J¶sR¶\~†»ÛË&ßVZG÷÷oïí­n™—ÕÃûºY÷ùC¡‡Ý 3&²ÀŒÕ`ël4԰κžyë,„ Z0äuAgŒ“”^–Ù±+³£ŸÌ"E¸ Lg F°ÌFC ˬ뙷ÌBª¥1CþXdfÇ5:Û½TgwÆ?o»3ŠTAy”Z¡R5(¥Ï|¥D ÿ ùc .V ø+bü#8ø£¡†ƒßõÌ;ø!Õ›€!¬ÁÅJ¡Z]Ô‹•滀Ü-ܶ$)¦¤£#XG£¡†uÔõÌ[G!Õ±Ÿ€!¬áJ‘H>6듸åvZól7Ê—ÙØ­Nöاº[–2…ŒH,óUƒ¬³ÑPÃ:ëzæ­³‚jmLÀ?Öð¼GHA(oÏ{þ4 z°î7³ý—V×ñº®„"q˜¿Œ`]†ÖU×3o]…Tka†ü±†'AÈ L* FpðGC ¿ë™wðCª6CþXƒŸ€;tNùø±“OšÏ@n{’º¤ba:j0‚u4jXG]ϼuBPû òÇÖS„I; zíÈèü¥Û¯vãviQF–„I«Á–Öh¨aiu=ó–VAµ&`ÈkXZTNmŠzÅ5EÔNL7('ŠH’&¥#X9£¡†•ÓõÌ[9!ÕÑž€!¬aåDàcì’)óê³ý€ô¾ôx nצx«õ%[>ˆ÷Ü$3®Q4,Aµ0Be6jPf'žùÊ,ˆ ')òÇ”O©ÙOLŶ2ºíþ†¦sÁ§ùJ¾ÁòüJ$K¾’¿áúWòf41GEtS±O(aœ›pÚmli Ü—°®ÓK¶6]ëÝS±°•:¶XF™úeëC”)•Éûê¤h ó3Æ]”™÷UKÁ$^UQçKîæÉYiR«†È¹€ ýå?<ÿkk ~>áŒò’êÙÔ£I[‹‚Î`Õô9zÜJ)Ä .¬¯ÎuA#±R3KÈò²PrQû"=aQIý&±ˆµ-)3o%ûØŒQu‘Û&¯žM½×Òxi¼]¡ôh’qO«+7]™ùãJ{`G·˜Oº",´c×EY™-S’Û`Øš+™*NŠ®Ê ’ΓŽÃr!][•ÒyyÜ♪ì Ûl¾)6Å¢4Û¦¾ ­v‡MV™N]b—Y•™½ûƒ6ö[¡e‹û¾˜"®¾âÀ(&Œ²:°Ç’Íßz›ÂHéFZÃ?>eÅË´RåÌc®NÏùÏcð›©ó¢³NýÒ+y Uî)[¹'O*÷ Wð…â½ÞÊ=» ÷ó×|¹DÛ‘OÜ2°X¦kðdŠHq]ƒ#ê3XÙ¨%•©·ÒHÆØÔÊ4÷öPS ߊ\ïuGgvÀ2_e/kkJ§øÚöú±ºZ —÷ýúœc½ÔjeR¶K ±Y»gšZˆ0xa–Ä—¦µ:ì6v?.}»!Û­©.Ó•z‰6̞ˈáôlqã“i¾ëµWWäa·°&èpoûŠä T~b%„Î4ØÓ°‚ÐZgúZ×…éÈÌŸín{Wã·ï,iÙˆ"§jþ#–ª"÷8º©³CŸ•<7£í1žÅÖßi {+tçznå.ÂjwÈû®@³ì¸fkgq…9ê4Áë80W“ mâ¡i‰o—BbãœxÝ­}l£9ªa³Qi?£–™©‘d,îè χ–m{“ÌI«‹Þm{éÀ•(i'¤ˆÎ?A¾\g,/f5Ep:M@èW‘½–’Ô]øúª‡¦ Žé¾“”uBÌöû¼.î&NªïÀvè¨K²’»eû> ªH6ñ¿‡§ uã l´Ǧ 5n5U¯à`O¨µ¯+»{k×Iþnv×@‹=“y%1å'•`:nå ÓaRa»ã<œ«?.—v¢æb ÐnÔ¢n®N¨= ì8äíBô$r÷D½m5õ—CÿWMÓÑÞ£–ÛÞãáž}wOQ1¤±:Wàa¶Ò÷ÃprÖw„9 èY½0ì+‡b_™Ýæ¦aú빋=Ô±t~@·Wýªc;”žÑ_™¬ÂÌ?mf  èë3Ì”gÓ´T3§HØ:ପÃ;•»yA„ŸùŸ%®Ë…ünRž¿!6¾ö_þpõY*xTjš‡µ˜çÓM9¡‰ xZ»áúÓZ€îim4ƒo´h¢HÄÃýZ¡«1ã¡WcN<ó] "¨Ž× ùc ®ÆàÍCÒtŠ7ZTJ%a«z-Œ`†ÖQ×3o…TÇ~†ü±†u$ñwdÄÿé…çXÊSTƒ,­ÑPÃÒêzæ-­‚j9LÀ?Ö°´âDú½Ñ¢‚*“Rƒ¬œÑPÃÊézæ­œ‚êhOÀ?Ö°rD í|Ô­ÛÞ`QéÅ» Y5Á² 5,«®gÞ² !¨– ùc ËŠs’Àq½o°Ž⦗X”I¢ZRaF ˜ïƒÐ]F¸ö`tá†#3ê@åâ¶÷X”2"™jÿè þ˜.¥9ýE¼Â.´ÔËø£`åuID\øD?ÿÕó•DtíW³®)â*À ‚ð6¢ÖÃX".è€G¡"A=hP¦ƒêŽ€ þ8dà endstream endobj 87 0 obj << /Length 3024 /Filter /FlateDecode >> stream xÚ­\KÛ8¾çWs‰=›æò©Ç9d›æ0›ÅôbI(¶º[·í±ätw~ýVñ¡‡Ûl[¤ ERÔGVÕÇb•L…Îngtö¯WÔ^\\ÿ‚…l–I’R>K©$Re³åý+lç$Ïòc$Wj¶/g7¯þó2†¢¢ññ3­àÞo3JDžÍtÏ{ìm0׳?z@˜UJ’œK&EB–],›â’šÇ)Hñ”ÈÓ˜îïöKð®jÀz‡}iZ?ŠÏæ±fk®õa‡g ÐQs4”Uq…J1·À–úNaaPN å]I·ËÜX‰3>'‹+É2£žJ-"ÅèGu‹ë¬+Åzm¬T›ú¡.÷µ}bkš–û²h,Ún}¸­6¦Œˆ¶ëÖ5¹QÑúOæÞCÕÜmiß—ª}µ¹H‘)¾mÌTÖåê5’YùáúpWîmŒQ»¢™ w»¥)("¡9(¢²]–Å®ø –lÐPÈÜLÍK°Â£µH]:,se…¸Ð£*ÇöÞœ 7˜°€û›UŒ>!‘› ÏÛu›Û©Ba°¢²9ê›5)áúÆv߬L¡²Ï/ Ûñ«&¢ÃÙ~škØÏÚM·¹‰dg'’÷–6N»Ú¯®Nɶ+öMÏÀ Ùûª´þ“j]Bµn £$]»/6›r¯—ýŒ¥D©|ä=åÂwº‰ÞûzÊ:Ûy ªcþ¯Ô^”¥‰¡ªg W­z¬×æZ˜ËÍaƒáÒÜ1ªk7c(tfŠ5 ”´Y°Ÿ1 ÊŽžŒä)JƒÊ$³ V&š:ÆY`å=2޷ÀÒíÈÓò¶ªX(+ÓäzZ@³vAˆ,aà'36ßÂ3{Ó·|,îwë8a€^Ç' $…¨+uZý£\ƒBÑWaŒ2ˆM>S‚ÁF}fÆMŸöC¤á¨2¯ŸI%™êÌÊî‚ØéÜ —뢶J›i•Kè‘çC÷¹ï)ù‰.ËЮln7·ºÑŽK÷xívºn›#µVº‹íæõKÿ…¬ì¦moŸ%zµàÑÛIä°Ï˜½h¶ÕN:'ýËÙpPQÐ|*§ {`á †sXˆááàçÃÁˆi¸pp´.¼o Ë<*ÕëaĦz㡼©Þ‘d¡©^”‚œ½¦ÐP8–÷퀢HЋéÞîé ƒMò¾åf½} ½}îUôu{£vÞ÷5´³³~A悤‚Oãz`~rÁ"üÂçýBÄ4:nŒÔÅei¢Ls¢„r;íÒæ°-(³+¬Êz¹¯ì62Ì“ùî(_K»°ŸBÚ0…þzƒù^­\·&ù#µwÐEåmZ€eÃi,é0I¹@te*zSK¨­ ZŒv§Æ&_#/ „sÖ?˜áO„‰"ƒp %„‹â`&v÷ÇXȶ4wnêm¡[B,˜a¨¦HLz–tjHÚ"qFB?“LŽ3ÉÌdƒ‰É$Ó.“ÄùBìzíP¶›õ“uµÒ©b±6ubgJ&Í*W'sE°&ÜLš÷&Íœí Õ(‡ÛÄ•ckN[…©ŒÀÈNÓź*ê“ñ™"4kƒøU &Ù.ßuñ6>ïÆÔ…6ÓšÅÐÙÍÕÆÚ½YbmX§RÅÚÖÒ¸(ŒèÜ&ýÅÔÝäÙ¾5ño£’y®t\ Ì2¡µ Ì¦È¹tQ®4 ›–:ãáMÕ)¡6Uû¤jIùleÈ”ٲݬ \ï<Ë2×Ùh‡©ìpý ë†Ðzü;«R!ôkËôƒ(ù³ œÀëó+¤Ô°Wªi6¨Xà%²Œ0%"6¨ ÎoPÓpÔh]xW‘ BYTÜÚAĆ­£‘¼QëP¬Ð 5F9­©âµ åXEŠ;_2Ȩ1VíùŒLO‡®¦F¨ç_®ß?Gñ«Ãˆ&Øh(?Æ’S,FA-1&ÐP8–ß·H|c—÷0¢?Êoü¡dÁÆQPk° 4ŽåýýS(N’̽XvŽd 2Ç ” Ö1¥ÎµÏ9ŸöjZ ÈÜe¤Oé0¢i5ÊO«¡dÁ´ŠQPK… 4Žå÷)\AŒéS:Œhã†ò(Y°ñcÔl …cù} ÏHš*—hÞ˜ åË—jS5_¾ ©ËõÍÓüs±¿­]ùço«úÂ… ÂE¤{é0¢6Êϰ¡dÁ ‹QPËŠ 4Ž¥&²>À¥°ûÍðPfO&üôÓO¿n7ýôO…P=OÊO#ÝS‡MžÑP~ò % &OŒ‚ZƒO ¡p¬îÉ‘‡J’%ê(æ$Od”·:Ë7Žg¢xÜÃF,߯Cyùv$Y(ߢä82…†Â±ü|ã9ÈÃìK:à©6»CSó¶ÔõãeA5OS"’¸ãÍ=Œh"†òi(Y0‘bÔ …c½@¤Œê~/2ééB&%ŠHé’:Œh&†ò3i(Y0“bÔZ …c½À¤$ï±h{hžÑèÇ…4R"ú{‹F4FCùi4”,˜F1 jM?†Â±¼Y>—,úˉF´ñGCù?”,Øø1 j 6†Â±¼Y>—øƒr~”å—åòД.l¾,—ç<'JF:‘#šG£¡ü<JÌ£µ¶Ÿ@CáXþ\•0!{Éü=ìF¥á“þé õáÞ¶7Gwl tIÞÏñÔ@ÎãˆÖaDm4”ŸhCÉ‚‰£ –h(ë… ‡3ÂÒ~à3üâK7=šòßzMOgOPp& § èž @üâ(üÅçOPDL£3ÿH]\vÄSJ(Í ~ߢ³‘TÙ£8¦¤›Ü™/lZUŸ(å¾Ü,mws.§×]}G¤N–¤Õà“ŠwžC[I÷éÌ®6çØÊ%ÎM. 7¬ñ’ƒ™}-jwvˆf€txÈÄ£‰wpñô³”^vÞÌ|<öü¼™9¿uL“ÉÑçæ¨ÇG´°éÃSs§«A¹w\KWõa³ÚT|‡)'"U—ÑJSqâ#> stream xÚ­\ÛnÜ8}ÏWóâölÌ/ºÈC2˜,v_f10™ »Õ¶¶ä•äi;‹ý÷­âM’-Ù-RbQ¤tÈ:uX,ª[×AüýM¨ŽŽÿRÿh ÂC$¡ q”ÛÛ7X/'<ãüM“ )‚ý›?1ç#°(äC°/_Ã`mÿ BLƒ£¼òþ+èCð'‡“FÉKêþð9BB⌞‚ xLbšN`D ‡‘ù #b Y²œ‹ð‰Ë>^¾ù匒R’E .÷A‚8 ‰ˆip¹ ¾l.oÊöü‚'Ùæ&×…î¦P…6¿Õ¥C}]nóƒ®îŠ;}é³[Їüöî OÊJ?Û®¬õ #Œœ_D‡®õuuuxT¥]ùgHyÑÕÖ`Øòîüë%Ø\PA„ˆÕøUÏ,ÞtyûK‰ºj¶M‘wÅN\CË£¾TÝ“Ø{âÍ>ßvuóxž² Án~ùÄâ€&„ÑH mÐ+ÏHƅꕟ_Pʢͯ`§›®©%7ÑæÓ¡>çlsTg—ç`&ôÑ*ȱ'’Å„¥Â8%p¤y[nUq_IæòCÙéñcõ]SãÙ_å­ʺTµ&›ý¡ê¶ye/ Z£oñΛ¼{‹¦üaБò¨»¼Ó%ðG${;‚×.6¿å B5K'ÜÒwMÑ^Ú¡?€”\º&¯Ú}ÝÜæZPWïÕQõË9ß”çtSébuwß©ö;iJÝÈ®~vŸA¼ï&îD$•×AºG¯)¦L© ÉýÿÔ0ªæ;–8–qõuzjð,–½cm®jXXÒ4¦¨ <¿nò»›·ÐoÈõMñæxSj%²¶ [cà²9¥ÆNÛ>n¨‹l‹i“4]#÷êI³oê[=9ÌÌj»¼éúIög…-ü¡ú²z4©$¤¨d¬Ð3ÌÞ gΪ(ÊÆBÍ2¬>t ºÙµê¼“Ñ Kz* *³[®ly83ÊêZUmk%B9Eñú‘+à\Æ6Fˆ€æšÊj{¸ß ¨E¥›b[æÝ›ÕÕ[iÙÅ”iF½ ¢%Ž~§ÊVŸPÞJ³úQbÝHéLÇ?(¥j^c•×X{ßY9bvy‹“¨3÷ªP<Ûû[j#'^‚†#‚n>@€“ó õP‡:Š”m#ny*6Š¢ZÊNe$N#¼®ÒzÅS9B8ÖU¡®«Uq[7…*ÖÔÍè-ÓI4žÎ1¥›ìUƒ$á ·æîdênÝQ;5AÚ›“T 7…^²a iÉ"¸[½ó(ÀŸ|÷8ò9#œfær˜W]1 £ˆ_õ=©‚ŽLPò7T©/8–Ý*寍îC/%FPP0‚’ZNc’Q1¦Ei§Ø¡Hx´ùß±l¥*´veµ(¢ïª€•y£CĬ’Ø• w6œb˽òVyx²R÷ÓåɌƊ¡Kû%®º.t¿H4Œ¢˜?ŸpÞ£ ™ˆMF±˜õž§ÉЕ*F,5®ü\tŽ—¾ùírÌ1Î …tX$?¤üå|³O“ªämÔ)’B€X‰MôüTlDFB˜nyÛ*ûdH‘\KÆÌbWÈ -×hPi¶ojô(VJAiéHYPm»R¥)*z;Å×ÍÀØó…hjìø†–]ôDqc'K¹Ô8ËjW<¨@gG`Óᾘ쟤àÌ@Ê['§hH’ÈNQ:£:IÆN45PjŠî¾©Ú©¾²”dÂF…v¨§ÝEáñSCU"ÊDÍÔ}ËéTÞ‚’ï0_–ÃÁù¡ÒøIî9òÕçÜ‘<|Y {¡„ˆˆÃÌìR£Œ¶*|@U¿A­^ d¢} AÊä7²þF_ªW¤ÚÀäöÖº])·™Vk³š×zÄ£ÊNlŒzb¿““ÔìDG“Uo!A§#è:;Ú˜ãŽVpJžyìhO@x}Gë1 ³£]ÌÅäC‡$d 1,½±qƒØjVæ9=÷L1?9Þ`¯51*í«±eÆ/§Úf½åCõ× ¹cɉζãjÕ•±PXK‡+[Ûq\ ?àvãîÊ¡¼"Ǻù¾?ÔGr©6"ôåÉ/•…O]õSVá­¬ÅPóÊ[æ¬,‚¬V`Èk6¬pÈRâÔ/¬ 0|¿jÖùO,su¾AÆak0äŽõ<¬ÐB:?&,a:=*ö*¨|ûVVe÷í›|ŒQöoUõÏysÝšòÏß»ö´ðÂSÈ0¹_x`x+l1Ô¼ÂÆ–9+̇ «ŠrÇ’ ãéPa }Æ‘K‰ýôÓO¿ÖUÛ5÷øð™Àéëê‰S’$‘Ÿzz oõ,†šWÏØ2gõød=¾CîXñɨ'a°]Ôj:Ç!‹ÂÕëz‹b’2?¹Yoµ-EšÛÈ,g­ycåáÏŽ3Ô B‹C"ÂÄ>ÀØõø‡ì H·›Åuöpvš„„ iì²z o-†šWÑØ2gùd¿CîX/(I¤DDìe%=ž¨$ÜxfNÂ[GK‘æe42ËYEäXÇû³ã õ‚„€‘Å ©OÆúq¢†X(;õQá­¢ÅPó2[æ¬#‚¬÷W`Èk~wf~޳Uœ¾fÞá½5ÎÎv%Ä:Ç“7œùýVœBéI~……öþVêý“䜲¥giDÂÔ/0 0¼…¶j^hcËœ…æCÇ ¹cÍ'7,MIœ “›JAïµÄ°êA•ÿ6¨z|]W '”{°Ã[W‹¡æu5¶ÌYW>Y-¬À;Öl¦ÃbJhâTz oç/†šwþØ2gçûd¶CîX³²Dëo@|…“釆ŸÔ·Ÿå>Ê6Øï­œ¶±b"#Œy†›Ã[q‹¡æ7¶ÌYq>Y•¬À;Ö¼â"FR-} Î~$šˆxBXì¶z o-†šÑØ2gùd¿CîXó"!I#¶>˜ç„#9}´Ï~F_«{YT˜jQî'ªÃ[T‹¡æE5¶ÌYT>Y!¬À;Ö¼¨XJ2%©ã++áºpz´¢œðþÅ77aõÞÂZ 5/¬±eÎÂò!ÈŠa†Ü±æ…Ecù-_%-’ïv¨›§ '¤D„ž©ÇðÎb¨yáŒ-sŽAÖÙ+0äŽ5»5£iF„ð‹ _ç/‡šuþË\ïEqØ ¹cÍF šqš·Hïš²êÔj$ùíö÷gù™þžÆã{†ºŒßÖÿ_h{GuÍÙÕÙ;ö¿“â Mпx3Àð–Üb¨yÉ-s–œAV&+0äŽ5/¹”’019Á×r»“SG$âžÁªÇðVÎb¨yåŒ-sVŽAÖÛ+0äŽ5¯œ8#”½¬®V Vø¶ ¡Ñ:ïÞôXŽ¯Þ <Þ¼yàõoÜÑ‹b§ý œŠÑI°xs]TE“wæíKûbø¾>Ô»æò=¬R›ù×_È¢"$áZ?12sUôÏDì#‹×NÐ…û0¬0–r1ŸÖÂF›zîiÞ+Åb¨ù•bl™óJáCõ× ¹cͯœÂQ‚ßïð©\ûú7,(ì ©ïF¨ÇðVÌb¨yÅŒ-sVŒAÖË+0äŽ5ûMJ3’˜Ðø#ož—†B¾Uï¥Ã[;‹¡æµ3¶ÌY;>Y¯À;Ö|´ ’$SáÆtÿì÷(#"Šƒ õwR1ºdöµ2~‹ endstream endobj 94 0 obj << /Length 2752 /Filter /FlateDecode >> stream xÚ½]o¹†ïó+¹‰¼Y~YÀIÑ´Ø›¢X dwaÈÖ8"K®$Çq~}9_œ¡lJÃs¸Å+e4zÍóžG‡¤ÆsL‹/-þù†vÌ=2÷ø_÷ŒºÿXa$))/J*‰T¦¸¹SçÄ[0F¬RŶ*nßü縆¢b¬ñÛ´X¸×~.(ÖOÍ™÷õÙ­æªøe$™Aê•Q•D[v™šhf&Ǧ¸$‚ZœAŠ—DÚ2‹Cp­—oþú‰Ë«¹..o F5Quò ¡R—‹â·Ù³sÅÕì¢}`”Ÿýqù³é—a²•îíŒÐ’y‡¥p£…û¿)cÞɼ‹‡ÕJ·Q½:^hßN_ ôÄœè!z)1àÄßD#èÁg½I·'×ù6–(e m41¥ló}yWÕv§–ãS]RX'ÔœôËÓrs×À#Z–N±tƒÇã­½¥cßȔ"BŽn¾ûÚ /ˆ„bŒî‡w³šïvgçB™Ù²{œ·ÛjqÆfÕï”ɵ{ÚÜ×¢í³»ù¾?qsÆËÙ·å¢rç‡"»åýr5ß¶ÿ¸}\ßì—›õ|µÜ×ïx®—³åºWt#p.Îã„såž8+¥nGZ}Ÿß?¬*rv.Ý{ÿÕü̧3nfÕ·úiµ}ïd¨žmçû»ªþ‰”׃¬Å©V†ú¼»åúK{ÈÖžµ˜ïçí¡ogJÎæ«ÇªÓj†ÔœÓûHU»¥›ÍºÑ~»YµœyªiíBê Æí¦'׳E{Îz·ßVóûöXmõ®ŽV¨Ù§3ÃfýÉ;Y]´¢„š2Ou‰«‹VÂ}°¢¼LP8]_Ãè L²Ñц0ÁQ‹‡‘vñ.]<D]<  òùÊà\ëåâ¡·H2R2âzåPWî¿SEž÷ËÕòš-vË uK4­q„ hÂ’¥â„…‘ Ãä©Èà\ë¸ÛhÈ:8EŒ-b¯ÏR$ ¸“¼)ë†ÊŠ·‘–·t©(o‘AyCÔ3’Ã!¸Vœ7e1¶+i5Ld¹~xÜïÈ¢rë¦mU3öîû»+· ÛíçëýÅåö±šFWiˆP¸j6Ò@Ó•,§+Œ LÆ OD‡àZGè2î<)ŽÓõünIZI‘ujÐ@“”,')Œ LÆ Ÿý ÁµŽ¤Ý13®S›Çý ”~LDIµß~¡P4Ð(%KÅQ #£„1ȧ?ƒCp­èNIî$‘udÐ@'?Y*žü02pò1ù„ep®ÝÁ)© -˃\õ½ºyÜWýzzÚ>M J”P8Ž 4GÉRqŽÂÈÀa ò¹Ïà\«áH˜×æ#! ã¼éíÛ·ßܻ٨jyj®ZÔOv÷í“ÍíÁ+Ý:Ƚó4hÌäUðAYªRœ² ,0ds<xwÀRGV<œ¦ËÑŠ'¼ ÞúÞ>ÿËèÐói \-ÔY¹ 4RÉRq¦ÂÈÀPa ò(dp®]þH+‰Æ]¼$°©OVŠf> šxŒ9}®2¸–Š^“Ö®ÊW/ˆ}Æ^“†“’áêÉH U²Tœª020Vƒ< ‚kÅëIII‰ÛJèÔ§*Å3„N<Ÿ+¼;`©è>J–.Àþ÷‡þ¬+aRb¨Ä±5h áJ–ŠÓFÆ c‡"ƒCp­øúWjîÞÈþW¤ÔĸŸŒâmÐ@ó–,ç-Œ ÌÆ ÏH‡àZGxS”8cŽ_«øÑ_ ›7¿oyñn·ßl««ùzâE )$1YÒ 4bÉRqÄÂÈÀˆa òXdp®u1aˆ4ìäEŒ÷£í|áixqg˜@V°AW²T¯020^ƒ<‚kÅW⌺pµeÐ@'?Y*žü02pò1ù„ep®_3çz–ëÂZB9®†Œ4°¥KE1:ˆ ŠÊ >õ9‚k™¢(w¦twQ<Ôßäe¸ÍÎËé[u&ó’,ç%Œ Ì Æ Ÿã Áµ¢sŽ(a wqj¤N~²T<ùadàäc ò Ëà\+ú¥²(ƒ «ƒ‹S¯ï×?¹]Ófûܬrý ÍM_wÓ¶OB Â4²Ö hÜ’¥â¸…‘qÃäÉà\+ޛ֤ìhûÀÜü}=Ó(RŒpŠ,Zƒš¢d©8Ead`Š0ùÌgp®§H9¬Ç¨ß_ï0?Ͱ„+d%4Ð %KÅ #3„1Èç=ƒCp­8C’#ºÛ ?’ùbqu½¯oîš™mÞóM+Gn€Ü"ËÑ F)Y*ŽR%ŒA>ý‚kÅQ”Ó5øÀ1³«wp¸;GhŒ’¥â…‘1ÂäSŸÁ!¸V#fˆå¶ÇèõY휟†ˆ¶7×£ 4Ð%KÅ! #C„1È'>ƒCp­8DTÛ79y1­]ûiOªGÜ2"‘ FX”Ò¥¢(DE ePŸþÁµ¢(q«í0|~1«}ž<«ñÒ‰l¶0Ò@S”,§(Œ LÆ Ÿù ÁµâA¨î Òg)4ÀÉmáú‹¨?NÓ¤K¢ÝFhš’¥â4…‘iÂä Èà\+NSÉë»7Ähâ)4)Eòw©Ghš’¥â4…‘iÂä Èà\+N“²„õžN|ùýk÷dú´'…sw“âHV²T­020Zƒ<‚kÅÑ’%a}O†§z^sóq8‚ì·0Ò@ƒ“,'Œ Æ Ÿì Áµ¢Wc9³îY5 tò“¥âÉ#'cOX‡àZñªÁá}‡„‡ír½og£·›=|÷k«§o7å´$%²9ÂH Q²T¢020Dƒ|â38׊CäNB¼€¨Y¹|«û·^ ×7ž/¶œaV‘Ùsa¤e*]*ÊÔAdP¦Põäp®eŠYKDßsá‰l«]µŸ¼fF#pÕh¤&'Y*NN˜ŒA>Û‚kÅÉq²o²›Ò®OOiÌíü îë F(U)NP „9>çxwÀRqzJEdß@!2—]§Íeu³m¦¨ÈÓû{$ìý]+h˽¿'(œîý†Ï|ªþ¸@é>üJnuÿ‡š¶ó\ϾTëj;ß7æyÙ5šwÇo7«UÛ3¾mgïµßžî ÏdØÇ G†œÐ<í8Òe,†ŒÓ È€Ó‘êEt‡Ì¾óÛH=ˆlß"Ï"Cç·Áµâ‚0„Šn9ìŠO¯ 8¾iÜHÍ ÏÖ4î 207> stream xÚ­\ߓ۶~÷_¡É‹u©@€3“»Mêä¥is3yp<žHùXSÔ•¤|¾þõÝÀ_:QNfL?b¿ý°ØÅQ¡«Ï+ºúÇ+j Ž Žÿ…3 ÿ±•$¢|QA„T«Íî¶s«xʼn¥\UÙjûê_ç1$ †>ÒU ÷~]QÄjõ¤{î°·Á,V¿ €:1ªˆ„1;¶L! ™ºÚ6É hìGäq´CîXïî^ýõg.V1‰C®î¶=EŠP!WwéêÃúŸM¾/ën>ÞýÚ™òÓÝKÉ„1×¾ò‘ÌÃW2ó¡&%sd™«d¼jݼCîX/%ÃhH$:?$`¢VÌÿnn%—ëÍ!Vg•P± UL ;~EcV𯊦˜™ö{6m”66NÀä9ó<}‰`s¡ÑKŒN.îÃè<— z´>hwRç:FÄDJ]$H̬Çï2t2t†]ÁºRÓé]•”›-†‘˜dD… % V·Ù¥C1ŽßȤ<1º¤þb‡7²„94l‡·)’º¾¹ ¢pýXíox´þš§™mIÌ®Ø:¿aëÝc‘Uؽn¸ZgU AÒ4ì·¦s¤˜§’]Ößò&3¯ŠÖÙ·lsh²ÔÜ¿Ç×>÷Ÿàô–1NÂP Ä{šÁÿþ”7'¹¥1¸`†”„÷£–PÓX" ÎSPˆbD-¹¹UARÉÁt!ã–pX³Ö5mÈìMMžî´Â¦Ú¦ïŸ”Iíž'Óa»¯ì#¦¼±7 ©éVÖM•%;Û ÜåçÅ×ð4Œu1"‚#V³o :ú‡Ë,P„|¡Öƒ¹0ÁHÀ}â×E€+—ó ºè5—ˆÉlÖ*¢È/5é1¼S“ÙPÓ©ÉØ2çÔć Î_ 0äŽ5™Í†ç£0˜›ÍB àœûI¦Çð–Ìl¨iÉŒ-s–ŒA›`Èk:›eQTÉ|¥³·ì²t('< ý¤ÓcxKg6Ô´tÆ–9KLJ ÎÝ 0äŽ5m¨$JΉ6¸bËXÅË$0ÇBÆ1¡‘òÈ ®@¸œBx £õìl.®¨€ ‘–@T¨¸ñòû¬ÊÞ@ÒθÍù©Zßc±Óe´Ø²5™æË´Xà]ªŒ õÛ“5楲햔éÉ‚ êù¾b½»«²c®uq’mrȱ…®Ih¼†ÔüÁÜOŽM3×_o¤X'ÅÊ¢Ì<Ò<$¹—׃Gc¨oð¦ÚYR3<˜Aq9“B—8÷Ÿ Š» `zv.‰,}äúÌËÏX'ÉõÝM ¯‡2D_ý;«÷‡ ê«SvS€ W²«ZÑt®Ãžì’ÒÖ`Šƒ¶øÈ¾5µ¹Ÿ—æøô·àe£€g¦ ÓÅ îoŸK3 ù…Z±L³Ë”ÆÜj»jíèÁèâS³š ©mç]bmÁ‹X€A…§Œ:”…- á þ“¥o°EjÛxÈñ•x¨÷ÛÇÿ„Œ{¡µÈ7YYÛ‹nxaÆg8<¶ãÐÛ*Ë€IÁÄú·?싊˜µ}¦ºí º¢3É›õ}ðx²4§¦J­¾ jÙ¡µ²-?;)Bêq"ìÇ…UöžÎ¬LSÓ¨§ì©XA|£vâ·såÔT‘Xìw!bï9þ'Û 18;ÅG`Gª£ ôª›¤±Õ»"pLÌ4³ÁÆL|T—áœK3~ZË耈®ß(ºm5W3ñµð¢±Ü7æ¤'0PG“Í(7LGXÝÁX%õNÃݾIJs¢µ©P›já(ˆœžšó¡xûçæ.tá!Ä6a\©³bûÆ4IXÝžÿå)­¯ /4 Jx†—Ã[a³¡¦6¶ÌYa>uªX€!w,­°@ Æ% ˜vCñ»ï¾û›Þ§9`ZJàò¢xẍR~ái€á+žùP“â9²ÌU<^µ_‚!w¬áÉŠ‡Ç’ˆÈ™§S2+Z]Ö[„à~Áj€á­·ÙPÓz[æ¬7‚:,À;Ö½©—E-7ÔÉËÇCS“4ƒœ»ÊPb¯¡ª~}”ˆđßÝ o)͆š–ÒØ2g)ùÔ¹†Ü±ÎH)bD†r ¥ý¡y!&ܺRM2$”û}ë=ÀðVÓl¨i5-sV“A`È댚d ¤ Ä”¤é§v3òtýÿòoFqµÖÛuš‚ÐÐ3‚õÞš› 5­¹±eΚó!¨ÓÉ ¹cMn à_/ó 8=†·ógCM;l™³ó}ê¶CîX“<@U|´1`?o3íëÊÎ)až¿k`xëh6Ô´ŽÆ–9ëȇ Î÷ 0äŽufá≄¬\Õ‰ÕˆT‡²UÛÖmÅþó6/²7‡ª‚Ö¿¼¶ WfLTîù븆·ðfCM ol™³ð|êIJCîXg„ý"„‡¹öèÃâ/jˆÅ!áÂïg  _ ͇šÔБe®ò"¨õû ¹cMkˆÅ1Qh?ܨlTÒ_%àþ!ûÇL‡¯qêÍk³Wpy•dpä±ßÞB› 5-´±eÎBó!¨Ç ¹c¤ë,2€+üfz¬HòÂJQY½òHÝTù#¶éEP·_µ⧈AàÊz o…͆šVØØ2g…ùÔ©b†Ü±Î„²H’˜‹c…Õûªé´tQA!¼\yƨÃ[A³¡¦4¶ÌYA>u^_€!w¬Éí&Ü3|ôÞΟ 5íü±eÎÎ÷!¨sØ ¹cM~~Ä$'”Ù¿â¾%ÑÝH×… WDž!¤ÇðVÑl¨i-sV‘Aç`ÈkZE‚*ío<ŸF*z¹}ý‡=¹^ZÀ d~¿`xKk6Ô´´Æ–9Kˇ N 0äŽ5--®£6@=á_GP7ï¯Ãßè0?áôÞ™ 5-œ±eÎÂñ!¨sö ¹cM ‡…Jû…I•—v‹HǨåû½Çô°Û=_ÞyÄÏ×ñÿÃ"±Ì×ô0ǯé!ˆ|¾¦¿áò×ôÃè?—‹ãߟùq@)(!Âßk1°Pû¹}üü;Ýa endstream endobj 100 0 obj << /Length 2581 /Filter /FlateDecode >> stream xÚ­\ko£Hýž_æËàVR[O-ÍJÝÒÎjçèg;«ÖjfwØø‘<îüû½E/Ç•˜º|H€‚:Ô=çøR€}ið5 Á?¯¨]~¼½úÛÏ, #©R<¸]IJ”Jƒ˜&„JÜ®‚ßË%Xø¸àq˜?ë –ûMnš÷kÛ’WûC¹l[ïa©Âÿå˺2-EeŽ«²º]3h,\f;Ó´)¶EmÚ`¯iË¿çËC]ìwãóÕYõX‘Å £Š…·p🷿@4ñ0š7áÜ0I¤ŒL8Ù_Y±Éî‹MQ?ÛN# bE@Psô6¯ö‹}µ¸pªbg–™^ÐAغ± [6aÛ£+³üvÈË"_™>õÞ4V¹íV¬ÍŽÌlŽ1rô^ÀæI˜ÛC73¬eVç+¢ nìÐGájj ‡ ×{ÝŽÅî«iÊ¿gÛ§M³_„Åfs¨êà*³·~(ìÚú°[À@´Цðlö‹úÁtÏLCU4ˆgÄ’’¨¶Ä~òËáDôµÞ¦/}Ù;&QÊÞê-ED¢F½ÓþŠëÓ§¾§W<&2§Çß2:â!¦<ˆ¤$‰Š[Y8I“Ô:Ë¥ÊK5z ÷h,¦Ž[ØÉPgFe5GÖjrilR‚:½f`È«¹tq¤$xÔ\¹ZŠÈÂä‚u¹ßBBæ*|z†KȦ¸'Ç}ù¸Þ즒վ¬Íú»W?ï±PE9ÎX=ÚX“¡ÜÆGæm, Af`ÈËU8%)\dPâ÷hñ'C¹ÅGæ->† N°òÇrgˆQ 1š‹èœ1œÄüA¬³÷oç˜e§€Ž²T¶Ôd(·¥Æ‘y[ CPgƒòÇræ•Æ„ \>``ÅŸåÿ$2_ñQµ‚ÍÁ?ÖË|ÂhD”þäSq›OVùÚd“»»bWÔww:“Tùf}mšwÙ6ÿé×ýEh‚Ë* ´±&C¹5ŽÌÛX‚:3ÌÀ?ÖcqE„ÔÁ%$Šã¬öAi¯KäÔbÚRo;*„qdªê1ÐŽš åvÔ82oGaê\0CþX¯8*ŽH 7棴gÈÝrØÕyiÒÓOfq"FXŒLL=ÚF“¡Ü6Gæm# Aô30äåžîÈ”p¦pâ÷hñ'C¹ÅGæ->† N°òÇrNw”â$¡üdºcÄoòáÅè‚ùˆ öbÔA }4Ém£QXÞ.BÓ gÇê•ˤ$‘±}Èo-tærôw³ I#SdJê1ÐVš åöÒ82o3aê,0CþXgü$%\ÓÀJH’ÚœôT;ûø‡ÿùüß®ÇÎzÓJLtR6ÒT$·FayÛAN§<žo¨W<Ä"’ŠØ95¾¹|nL é m¡ÉPn#ó6† NúòÇzÅGTB<¬½i¯åÎççlSåošG&)‘åkÉHNçŒÃò5†œVëØñ†rψd*åÑK×Ü–‡ LÀ¤kz ´m&C¹}3ŽÌÛ8‚:¹g`ÈËy7.#÷e)Nü-þd(·øãȼÅÇÔ 6CþXΗ™2J cÑ‹—™·YõøAß‹¿ø²Ñ».»;—J#ÓJvÖd(·³Æ‘y; CPç†òÇr§É€dZé1ÐâO†r‹?ŽÌ[| A`30äå|È'¥"œF—½Ó|—•_«výÝãqU]˜^xJ¢™^z ´Ã&C¹6ŽÌÛa‚:WÌÀ?Ö+3^!·ßJ?‘"“üö¶ÝX KdBë1Ðv› å¶Û82o»aê,2CþX¯Ø3ÂS5x¼SìžuEV9L›Êæ½Åß¼ÌIT‘X œ“z ´“&C¹4ŽÌÛI‚:õg`Èë'Ñ–#íõ']ÞjX«}¿È]"$†aÜ5ÀÀºk:”Ó]'‘ùº EPëˆ9òÇrκEÂH"q©e€2”[üqdÞâcê›!,ç¬[$ŠÈÓ/šŸÌM|¯.¢”$ 2‡ôhM†rÛh™·0uÒÏÀ?–û %bAdÜέõ3¡7ý¢b’ dÚé1Ð~™ åöË82o¿`ê4ž!,÷5nöÓ™,z ´ø“¡Üâ#óCP'Ø ùc9 C¾ *’ý¯ÃûovÏ/›¶ I(Çý n€vÑd(·‹Æ‘y»CP§ü ùc¹]$` 1‘lµº+?¥:ýi•6Ôe¦âœÐ÷óßÚT“¡Ü¦Gæm* Af`ÈËm*˜ÎDʦ¦ã(5½|`øÅ®\ž¯%Œ!óU¶Öd(·µÆ‘y[ CPg‡òÇr[‹ XÚ|uÔùJûæÃ›ÆÑ¥ܬÅ\ÍS)bæY)B#¤\"ªE\€ðvÅÄ0:}§rAß®ó€§n®“A©’¾~ˆT©­¢›ME›¦ f?çJŸ0ýÞ‚¥m1“çêÀjssÚW1шß 6åH®¡!å¶(‹>m_%Fضîöv,™®Òò×B©Ð~Ëž,nÁÃ_÷õËq·~úb*«°¦ WV9jDH™@ƒ2…dtA–Èç›|i5ÈáRƒŽgR¤L ç´é¡›ÂTÝyΦ›ˆÛN} YuRéTz]©yaž¶ÙΠǶô+²HA²UŒÅ§Ýâ“\—ˆ®¶Ó*«³sÃȈvõ¢ÞC†ʈ¦‹q±°0©ÊçѹàãC‰% É<kzŸ ®ÑÿÆd@& endstream endobj 103 0 obj << /Length 2602 /Filter /FlateDecode >> stream xÚ½œ[“›8ÇßûSPyI{v­E7S•‡½WíÃÖlmWmz.•"6îPqÛ^Àéö|ú=’¸ÉÝrf tþçÇAB=Dqô÷›øì÷Ow7ø¥$“’Ew›HeDp¥±"±ÑÝ:úéö瘦‹_îþÑï;¥ã ©8…M¦{¹[Ϻ?tSãn<&iÒõú~±\Þæ»Å’³¤Ý šéí×üUœºõö·ùRØ­ërAoWM¹ßåÕI%Z&1‰™Œ–LgVþîKY·{æõW»kU4ÇjW;‚Éí·…·ùöØ.î7¶s‡ŽÙÐôy*›/gê‹¥öª·D±>‹*é£Rì–˜aÓ”H™EK £îœþç¾=&2ÎÝRÐÒ‘˜u&ÝZïíÑÚ »}Ûw“—[»ê¡ÊWÅæ¸Ýžìr¹éÔÚ´CÓMš2†›õ®&«ÐítHZ@'İjÍ»´?жá-øßÛlÏ«â`ö2æ=•Ûm뾉kµ:V¿Ú·OSTå.oгDÏÅê8ˆÚD޶?é 쫯ŽÜëö±”²D'ƒQ)4¥q´äÉà$0CNKJ™ ´L E¼¦`é/UùmÁémQ½F~¶DÛxº]¬á°Ó—ÜdÙFb¶éó²­%ÐÚé<7vËY&aM^=á`º¤Qg ¼Å ¶Cª^I`WFܼèe“~ÝølC± E^—¶Œè¼ìt5x8V]=0y1VXWA^TíÀÚž[3 »®;'!Šá´¬í¶¼íüÂÃWbÒ¹»Täöü7ÝAwp Væ‡Ã¶\åºJ¼R…[±?ïw5œwÕY‰ßì 0h{Ž™ÈXÃùÅfµÍ뺨¿7N N οÞÝü÷F_(cXT‚ðXD.µ"fÑêñF¯‚žñþViTÑææ_ý…·Óé–1ó±ØO¿ÄѶW ¨¢'ÓóþXémôoP~98CÀ v÷ø¥@J’Œ^! xB8_JH¦‘!!YJD–N7¢³Ö1$‘%€FÚ凑Lemñ¥çEZFþÑ´šv8Þ O—zeT6Sg‘ui¹6¶.Y(ƒº|ÍáP¸–™3Áu?Ù€ž·0Ç0·äÜÖsJ/–f?˜‹ßœí?þËøp2ÕÏä jÙf»"z“íÛéå*`(ƒ_DQ6h )›,å§Ì,˜2ŒA=38®å/1)#’'¸äèäO–ò'ß,8ùƒú„ÍàP¸ÖËCã„Hü„PÖ–˜¾Àìå°ß»ZUAòm™×ºÒ¼75ç½.*o׸1– YS 4V“¥üX¹‘c…1¨Ga‡Âµü5E(¢AC%Ð@'²”?ùndÁÉÇÔ'l‡Âµü5E2Âh[SÖÅÆNZ>}*weóé“®#u±ÝüÞ®þn#ë®ýÝ×§u}å”EŸ"ËË &l²”Ÿ07²`Â0õTÌàP¸–!Œ«1aL.ôé&S‹Ø»wïôMsSW;"°ø6=`RJ‘õiÐ@Ó3YÊOY0=ƒúŒÏàP¸Ö+õ©£‡)’Mzœ»'2©\½Íeú_P¸õhÚ¦*ùas f aNÞ`©  Ñ~Û2¥)"åîplj².àv¾*ÌœúùÊùtKCƒ¢ÉR~ŠÜÈ‚1ÂÔ'‡Âµ.C»LÒé:’¸RDá@$°MVòbä†JÆœ.ñ3¸,åGð!‚‹Q¾^ÒÿŠówú åòù}{q[uóá}¿ØœŇÒt»°4!*C6h ›,ågÌ,2ŒA=38®u3¡ØeÎN.g§0ÎA2ì—@S6UÉ™V0csz,ðîK],QD²dØþؼ¸þzåÅPjkµjÐ@S4YÊ‘Y0GƒúìÏàP¸–÷1%”Ä,Ã%Ð@'²”?ùndÁÉÇÔ'l‡Âµ¼)¹àIrö˜²}“¤»í¿îa$g‰Sä•hÐ@s4YÊÏ‘Y0GƒúÜÏàP¸–ÿa$çŒ$ =Œ|<˜—‘Ì„æKÛ¨¶±ßœmiïä®ynÉiJ(E¬A Úd)?hndÁ a êá˜Á¡p­ ã‰Ï¯– -bzÕ³mÿn´êô6W±$4A°AÍÕd)?WndÁ\a êY˜Á¡p-ï,ˆeœ°WTFØäO—ò&ÿ,²Ðä£ ê6‡CáZÞwÌX–4“Þ1»Ÿç3¦(aWbFhÊ&Kù)s# ¦ cPOÆ …kùKL’û¡’?h “?YÊŸ|7²àäc ê6ƒCáZÞ-–2¢ºÿ…rÝ;f÷×=¼a2…‰Ça5h ±š,åÇÊ,+ŒA= 38®å¯)fÅ YS tò'Kù“ïFœ|ŒA}Âfp(\Ë_S„"Y*ÛwÌçDpdy4ЄM–òæFLÆ žŠ ×ò?Öa<%ÝKB¯˜1F‰H‘åiÐ@Ã3YÊY0<ƒú„ÏàP¸–ÿQ ƒß8ÿÇWÌà~ #²X hÞ&Kùys# æ cPÏÈ …k]àrB»ÏøÞúxݬšf)‘ îÿŽ4°$M—ò’tY(I(ƒºìÏáP¸Ö’bJÌÇ.‘tåýU f8’ 4I“¥ü$¹‘“„1¨Ïþ …kùI¢*#4Ë.¿ôÑ}ècЋ@4å$‘ÈŠ5h 9›,åçÌ,˜3ŒA=38®u³4%LˆËœÝ»œÝ‡q–Pó‹âlÐ@s6YÊÏ™Y0gƒz6fp(\ëg‰$Leo¼wvå¥"#)òÃ# 4J“¥ü(¹‘£„1¨Oÿ …ky]Rž’4CÖ‘AüÉRþ仑'cPŸ° ×ò>º¤‚žª9Þ;Ó•I!?Ý0Ò@s4YÊÏ‘Y0GƒúÜÏàP¸–ÿ%eÝ·~Û÷Î(åD!?æ0Ò@ƒ6YÊšY0hƒz8fp(\ëÂć‚f¢FŸ_¾wö±}b9ZuÿæçÇ(a´bžÏÄ??¦’Œ#¾?v…ÂÛ C cHÿD/^ÿ:ëÙTcBa”¶ÿ(B•ó]VÈïÿú !Á endstream endobj 106 0 obj << /Length 2875 /Filter /FlateDecode >> stream xÚµ\Ýoã¸Ï_¡·u€3Ë/QT}¸¢½÷Ð^qÚíÞb¡µ•D8Çv%y³Ù¿¾ÃQ’cÆ©>¡hê'ÎÌÃáNœüõŸýÿÓÝÍ~"2!åiJ“»û$£I†%Â(#Q‘Zp*¸O¯2G”µúŸKúd å}3%Ó(Ja}¸E3”e©¶ý4ƒe´ÐªF1JK`̥˪Í+ ëpµé ÙÍ_înþ{C '$a¹@Ú‹,G þožn>~ÂÉ~ü9Áˆå2yÖMŸ†D®nÛ%¿ÞüÓ–Ñsg‹¤Ì<öå;:^ä#Ã(str’®îA2+Øýa·3¤¨öÆ^ͦ®Ž­¡)Ká!˜mÆ¢á«Býce¡¢§ìª"[Á`š4]õ7µªá¥­°£[!éÞ ³œ†ß §¡®ÚíNM[wˆL“LÿR—Íi×ÚÚý©<u£å;¸[é¬óiÊÖ²^ß­Ýáé ž¼Þ3´âTeQ?œžÊ½Âj›?j“ðp<ÜÈô’#†y"88!”åU=ç ¬ÎÀÚLfI]&÷`ìÎCv8Ýõ,k À|4ÂÚÐèBwRÄüm"ªûñk„L3tgÀz ãkŒ”ªnä1ÝHa8ó<›¯‹N»#d'S.™t&¢(—¹J> ½¶LáïÅ4Ýñy6Ô…^Y[%ëì2U6g­9{- ¡p,íO)Or” *ô4Ô©&¸O»€êéx¨aöJij¼Ïç—ïoŽpM"OE}zŒhú̆òÓg,Y0}bäL¾€†Â±ü¾ Ðz¤ïè1¢?Êoü±dÁÆQ3Ø Çòû‚†ùEûþ¨h]ùŽ÷æßñåÔV»ê z†(ü~wxF*Üý³nøN1ü‘«î%ÍÁ´£Ä0l€˰ùP^†Iʰ(u¬XBCáX^†¥¹D„Ñ!ÃP]>TM[ÖŸÕ ¥hôN/¢ÞMc“¤ÖpQdrÑ\š‹ä§ÒH¬`&E(Ç?^;ÁP~IH–M Ñ‡‰4Ê0,Ò)õÑDš ågÒX²`*Å(È` …cycž4•HÈ8Û;ˆhÓÏEò[~$V°á#”ãl¯`(¿Qa}ȱ®övd݉ʴ”Ÿ‹ú¡Q¾ä£“~x·^{Ïôÿ—÷üݧiÞ… ”ÑHïÒcDSl6”ŸccÉ‚I£ G4ŽåçY ÷ÁÚ~Ï>h~ýÛòìÃ$ž©dXª’q,[&77 ÌÍ)„ôm„+¹¹ ×ssÝèé0SÓöŠRš#Â-5þvpùâr˜wλ”°XµõÉ–¾Þ¦|UìºK“ƒ–6‹­6^nÉJ%²3³÷UÔ4¶¸?»Ñî›Tmuر3“ò½E¯ u²ûåVR›gtõ“*êQbÚ¦ÝËoÅÓqW‚tûh)º ¾´|Ue3øºÜíè4æ²0ÿκ#ÇÝÑÝ.šèvц[MRØ´ü…Î2#úÚÎÎÚ¶ÉèßàÉÄh³èƒo³"eÛìzRžç1“~Žø°ÀÏóŒ4bàO@¸>ð#ºÑ üÙºð™\ªÛâVªŒØ`>”78“,4ˆR³× ÇòÆ\2'}”•Q»Kr!Á˰8õÑ<š åçÑX²`Å(ÈÙ~ …cùy”Q„YÄÞOâ2n­;ÀˆfÏl(?{Æ’³'FAÎâ h(Ë?qÐ:‹t=F´ñgCù?–,Øø1 r[@CáX~×Á%"ôÿ»µq?J³HïÒcDl6”Ÿ`cÉ‚ £ GŠ4Žå'脾ÜÖ§ é®zŒh6͆ò³i,Y0›bä°€†Â±ül)ȸØÇ‰È,ÿ#šM³¡ülK̦9, ¡p,o䣎­f„F€küùP^ãŸIjü(u[BCáX~W‚1¢y>-?)ÏÎr†Ø`×#*Ý6 L·)0dDºmÂõt[D7z«ÏÔÅ´<;S'Ì©=y÷X©2£}vÊýQp¸0)iU0it(™Ãà6‡׿·i»7%M¤Â¥ô¯4#Ë&v›—ñ¾^J§ 鼟¥¹U†Ç¶‘=ä®B°,}ë&X—×¥n/.œ: \Ù:½? ÚãP~゜GÜ+f€Ï~A€-ƒý)ç`›Ò=Ð>í|WªÎ”¡º©Nѯ(,˜ cã³ðî„=íö:”-õ.€Ò€ÞëP*º¼·rI@X‘,¿þ²ÇÌü=Sg¿9YÈ¡ô`¡Ef§yŒC¹Ž0Á¡„wÃ9”¹ºð‡`S&ãNE0¢CˆÙPþb,Yp£ g¯4Žå !˜:TŸÙÄëñ¥}T£!´‹Óׯ#è¢>(Ò_ÞóëN€ ”öQâœ@ê@$—1Nà:Â'Þ G„¹º˜UŠ$¶)µçÇj£âƒG3<”ûòÒ”s>›©9çÔOí„9s”ã…w ÀBé¡ÞsÍÓz\G˜@ðn8zÌÕ…wŽ 9x½4îå‰Fì1Ê;GœI:GD)¨³× ÇòÎV¬)³‹ŒÕš+¯SjÊH ¾).¬`DSf6”Ÿ2cÉ‚)£ gæ4Žõš2D½³£ŒZ—6¬ø>ÚÉ®Î4=ã…Â…Xà| $Ž & \Ÿ"ºá åðX@‡[sñ KusKÿ% ø§Òrú>íL&ÀÆN—R)9Ö̵kìõú±Ü/­Å9F’¸S|F=Y'9àYÉ”›J¥6Ê­ñÚ5Žû1„Q»Êql>Ü™ÝC}˜: H2ÒuãX<‰FÜ·Ö¦Ÿw]ôh-äÞè–ÆèížÃb˜pÕñmiž¤”x)©#‘HåYÿ´]|ÔçU4](£/Xyº“Ÿïlü¬??‹ñAÓ7…7Íaª0ÂæA–Çj籓ÚLÙ “ÕÛmezi®·vœ¼úÔ«ÎÁAI³þ›!Ù!C»¸oµpgd¡p–ú‚MhõÕ £¾b’¦‹£±kônGÞÖf iލHǬ0”ã¯>«ÁøàP.ü|2O.܇/ ²wAªþ`*û]ØzûQUÖC×´ÚƒËzêôÄÝá]õ“ìõ[S÷ÅâÂYcG¨KŸ¢¹¾è"D½ú¸Ð×.`“,‡œ±˜Lÿ„ë“lD7ºIv¶.¼‹.‚£ßí!bãçÙHÞðy,Vhô£g*¼Ø ³¡¼«-A»7@¯Ÿ¨ÌãO)ª¿œ^¤‡#ùèð ÿ¥dZ endstream endobj 110 0 obj << /Length 2769 /Filter /FlateDecode >> stream xÚÍœ]oÛȆïó+ØÜØ^D³3Ãùb€Üm ìEE|±iŠCÛÄÊ–JQë¸Eÿ{‡_3¤ì15ç Šn€•DS¯xÞóðÉ!Ín2šýí^™}eöõŸöµÿXfÑ”gš "¤É®î^µË9)L‘1F )³ºÌ®_ýú²†¤ùTãÓš}·û%£$/LöЭy×®Ýkn²ÉRÏl•&ª`Ç‘‰\ÅÌɱI.HN œA’k" Ä!¸ÖŸ/_ýüž‹¬ …â*»¼öB…Ì.¿gŸÎ«»Ý¶n.V’Ëóf½ÿ}ÿõñ__.qaýõò)>ªà]Þ0øL4°øÄKñ9Š ŠÊ 1å)‚kk‡2”H« tò£¥ÂÉŸGN>Æ —°Áµ‚µCY×Y.úÚñ½®þ(ë¾v¼ë_v‡¦ÚTßÈöþýz³} —¶¨ü¥[ñ3•tWooÞÝ=¶¯go– 2DÈBã5ЬEK…Y›Gf cã#Cp­§¬1ʈaÖnÍ ÓÅ[¹¿ª«]Smïß]ÞVû¸ñµ¹-û7“õúÛëq ·®ErX¹ó¥ÍOŽ,z^ b´TÄyd`19x8×zDE çCÕ+wÕÆ±™ŸßÛð«wÖq+Û­÷úõ럞ýo6!ˆ2›×@Ã-†m6ŒAÁµ:Øfô8‹ áj(zOëÜݶ ]Sþh–QÊ9Ñ\ãPòh”¢¥Â(Í#£„1È¥?Cp­0JÖ“œ e«¹]7Óù­Ü÷Å«íÝÝúþû´5’þÃß·M¹Ì§DkdÙòhÖ¢¥Â¬Í#³†1Èñ‘À!¸VxTHm•ÈBã5ÐÉ– '8ùƒ\Â8× Ɖ°®wL~½­ïÆ…þp|øc<Õ¿ß7uu3ïx»ºÜ—õåP—ª{ÿý¥Š$ EŒÂU¤‰Êx© ”G‘A¡D4‚”Â!¸VJJ‰¦‡ò¶Üì–q±¯ÅÕ°‰—h©0.óÈÀ¸` r)Nà\+ˆ‹4ÆJ5l{hv‡æOËÄhëd8b¼š˜h©01óÈÀÄ` rYNà\+LŒVDæCõ¥¢¤( ¯(Z* Ð<20@ƒ\Ò8× ¤¬ë&w§‹úSJó3P²[s8¥ô™J¶Œ”(Èšä5ÐHEK…‘šGF cà Cp­àõ)9QÜL¯Ïº¼©öMYmÏ{·aÎÚk2ÿ8;¦\jÊk iŠ– Ó4 LÆ G@‡àZaš%Jóhúx"M\–#k“×@Ó-¦i˜&ŒAŽ€Áµ‚§ˆ$Ë ÓÈRâ5ÐÉ– '8ùƒ\Â8× —¦ˆVC)ÙÕÕ}3;ͼ[×ûò뺾ٷ%e±–äTd’DáRävÃòÌþßè]a¼X8Ò^ºôÙÍ)^Vè¿OŸ* -+Œd=Õp Á7Ãe=Ö ztÛa㟷Ø&" I¤ ³#àÃa·»Xq}¾Ý—«\åÃiÃþ]uÁÎ÷ý‡þb~ÿ¾–µ§ûízÃ×?S&6eÍôô§Y!¬gùx ÝÇÉîqXy¶Šé®à¶?„8¿¼-Ý¿v½Ýl¶Üœ?t§+ÛEÜզºVª6›Ã~ÕþJ¶âRÙ2šg+&ˆï½kêuÓ^…ɹ¤­!åòêд´70´K*¨[é¹íAŸTfÜìÕj<Ûum熉q½mw“ÄÛÅMèœp™f?óZÀÝLØA·È1»Ù Ë»b3ÆÝ,ÖŠ`_Z^HT_h`ûj¼T°¯Eí«(ƒ\º8× öU¡1fì«ÍíxÛÓ¤ÎuŸ}Uxyg—š4QWˆAwwi{ùïÒpÂîß —óX/Nìª6Aš ]õᶺº°ch7å}ù\‹9î^mîNxŸÐ ri[ˆJ„‡ƒâ‘„ÚWË 'àß ‡G¬ávÀsbnŒ=Ñ@·ƒh©p;˜Gnƒ\¾8× ·ƒVRè¾öë›òípßXwËuÿþÓêöKÿîßݹ›7ÝùÀÿô‹!‹§qD»1yÄá5ЈEK…›GF cÃ"Cp­`}É K.÷^›úh¥`æçaA1gÌUwÀRáÂBs"sº-sûýb¹±MX会¹h©0tóÈÀÔa r¬$p®.7v¤ÝZÁsï$ЩU g~8ñs\®ð‚å&×é–tÃÚí¾j ÊzÓ—u}s¸+ï›ýÛåÒa‡ÇÔ K‡×@ó-h˜ ŒA.ï ‚k=…¨Ðv´®¬”µJcãgu?¾­†Ó¶ûe’$' 7ÑK 9ŠU c4 L—x¼;`©ç¦~©öJ@.%Ñl¨C;Ë J˜Fv,¯F%Z*ÌÊ<20,ƒ\Š8× óÒžŽSÌóòq™ngޝæ%Z*ÌË<20/ƒ\Ž8× Ý2E¸B ¯N~´T8ùóÈÀÉÇä–À!¸Vø —ÄH6½ 9Ä¥½S(„¼¡h©0BóÈÀa riOà\+|ˆK51Åp?ÁêöÍìZ_?¥êvûp|Æÿõ®Ü·'‰èƹŸåjyj1/8É%®tM4°ÜÅK¹;Š ÊÊ ‘•Áµ‚}‹›ö{¸¢3Ñ@'?Z*œüydàäc r Kà\+Ø·¸Ém85ñ…+C„À§'h€¢¥ÂÍ#„1È%=Cp­0@š“qº0úí­uÂàÍ3Ñ@“-&i˜$ŒA.û ‚k…IR”P-ÿW¸àÂ&9GV-¯f-Z*ÌÚ<20kƒ ‚k…yrN¤F¯N~´T8ùóÈÀÉÇä–À!¸V¸ÐXO˜ÿw¸àœÅ‘Ék ¡Œ– C9 %Æ R‡àZa(mŒœ¸àÔ¥p¸˜h q‰– ã2 Œ Æ —âÁµÂ¸0N¸q¸`…"šáž¡3ÑÀ/$æ(2(1(ƒÆ,§p®&†R‹<ÒoïÑfENòTó‡&bÀ[Æ[›:Ä-ã'(,ß2ŽØ ŸçH/N›QÀtAØø÷†Ÿj{$R·Ãò7«\ˆÐ<´‚Ù£-qÒ4´Bëù4´V˜ž_­‡7ߺÉeÿá°oŒÚwͶm'¶šþcuß~9uÿ}[ã†Ïý˾ŸsX^UítÁ«aá¡_Ù ‡Éz¬=l”l˜¬7\üo‡v¨(rÙNìgTŒ£ÉÅ]ÀxµÑ‰v/ݤÝѵÄìË 'ìðÍp»@¬ÁÁ³ãD“#Ûœ×@·¹h©p››Gnsƒ\¾8× ¶9& Ì,O¢ëOÇë&ü¦Ùõ½t×· J ºß²Â »>|3|ú#½8±ûYy>>5ð¥ tíí‹nvöt]zÊ4:Æ ’Kžˆ /¥‚Û†÷òˆ–¨XV8 øf8*b½7ªí×p#剺!DK…Â<2pCÀäò•À!¸V¸!0{ˆjÄËÓè&ÍÀϨû´Zýèßýæ— Ýãã—®0ŒWŸvx.¤ÊV¹ñ?Îéì;¶˜üNA;­ endstream endobj 113 0 obj << /Length 2521 /Filter /FlateDecode >> stream xÚµYY“Û¸~÷¯Ð#Ueq ÞÜ7DZ“¸RY§<gËñ†„FÈP$—‡5³¿>})SãiRS5@£ÑýõEy«»•·úË+Ï<<<ƒ‘b•†nâù«Ä Ý0JWùþÒ}7K³•nE«V­¶¯þù4È ¦<¾|õVÌ}Xyn¥«­ÜãjæY®>MX¾«©7ÎÄéÍ vc‘þá»E~è^v‚"?qÃ,y ]Îë¬ñãÌ'­_cü kÿ|Vgr³K•‚¬Á^BC—óúÓÍ«ŸÞûá*s³ØW7Û£Šb®xS¬¾8uÓ뺒åzù‘#Û»a¯ª¾ûyýõæÃx³w7 J=7 ¯ W#èÙ¬Î#h~³‹t‚F«¿€†.çõ=‚²Ä^ ¬BW!Ch³{ÍèÙlvªlxÜíêúîxtœÝ«®“wÊ€®*x tÿcÜÅ©eWF®#«q÷lVçq7¿ÙŸ»FA#V^@C—ó:»ÄwEbB×fóÀ¸ù÷A.ƒ+ƒÕ‘ÇÕ y6«ó ™ßìbÐ\£ ÑÐ/ ¡ËyMì¹¾oƒÕæ‘Aóë“  ¼D\?5pz°‚ÿirN'OXÜò:æÌ—Y&|’o÷¾g`ò#;ß³8¢äR!Žf}ž¼“n†¯Dâú" ÑÊ ¸·Ü(ŽÙÂÉz#øÏºË‡®ƒê-ýÓûÑ+|Üå­6~ìúiěެ7g/¡óߺå÷¢ÕßÖ~â(ó¾å‰’š2+/(ë 'ö½ñ‚¼C§@MA챚‚Xþˆ »{M­C35¯,Ô<VêÈ€L ²Ì `èñ]Óß/áÄOÝLÄ㪼ÕMÿgƤP<'—Ôè 7§KéÛ:ÂêZ+«œCˆ¼ä T‹ZO*p²§sµ²ëöÖG5.> –ÐT;Ùã(K7hlk@$MùÄ®oÁjwšô ïdPdeDÄl6  .‰ ¾E™ÔøÓ YM¤ÎVæ=Œˆ0"K³iéßtABEò£Såv“×|¬ÔÕÈJ—#´ˆBrŠÄZ\Ww†–”8`[ŒôeýÁ„f¯ÙÌîb”Þȶ×ùPʶÄs“|aô69êè, æw ‘ aåìÙ…2ì ¹‡öKõª8aVh°•¾ØùbŸ ·û¾n–(¯÷ €°í¬al4)Ÿ¤üÄ*? ª8aôΞUi JZ²WŒx ¡ÒÝž© `+ªŠøÛò‘'(8¦ÉH«Ôœ-È~‚º0òfh #aÀ„3ävHº%*¦,xê û]=˜ ’iù°GþfWÛÕ{³õ#‰s`ú^VвŒb-ÈÝ=v½Ú»x=ÏùHq±•e©JʰX$ã Ÿ½_˜¸ïg°é3<à)y}%û¡•%ÓÔCjÔ5ÚcÊÖ7qSàEÛ‰ç#A6òöèIh^Ïnc\xÞH R=”¿VuσVý6èVñ‹4!DßUèhR­¬¿’ ºÌæ¹ H(egâ[I‰}œ‰9®*FáNm¶hQ—Yó^W`2£â½S|»¬i £@ÁorÕšïæ^ñé½0ô‚ »©âå:'(úÁóãgþ&c+!HTá4Qm<ªÈpûqÔ‘œnše7¦°ÙBƒÀ#órà°o’ÁB›ÁRÊí‚¥Çɽã˜fv‘·°ÓÄÐ|Œ_ ·<„Í‚Ue©W†)žj/ÄLÒ©%|ÎÏ!ª,5kQUETŸcxBüN©·3‚eT?4sÃ@ …»Ø#†n´ï÷˜ëÈõ#篂hOS ¼^ÂcOWƒ¨èŸ*Ê&ˆ±˜×&¦Ár9œ²y“#4OB¨omà œ®|Àg`°J¦j³¶i!)ë\Q58oÁŸÀ‰M Gì Ä~˜sÞ•“ó/\CïÑÒÊâʬöŽn î¶ #—YgÕKÑ[•ª³žTB­Êá³ÁAvÖÑ„rŸvìk¼a,al¹2‹ß©SÖw mõÀu «|œ•2Ã2ãsv®,õcá&^b…ø Û–õa©4…VÊ£v>K ïü­ç3¦1ŽÆ\—:j,…R,`v\ø`ÑãÇÔÅÔCSÖ-›2‹§%~1vÍb Ž9_îT¥Zòj3Kþ—E`ˆÈ“ðO0yÚ¼XÞ­’…ÝÖ˜,Jõ8ìÃ݉×2Mh¡t$ÇT ð.Ð,îÆfdnu±á!78ˆÆz°4®ªL-/— @W:E°,4ußqý7šdXpdx¡K¨4ÉN%ÐIî¦u„©Ñ¡s¨™ex¢@O;]VÔ#´ßø&¶ËÂAØðñ° ÇÿÕ²§ÛÄ:õ´ÀŽÃ¦9ìvŒW+¡C©dûȸj=´$¥8¶<q$Â’{,nÍ´³ªøu’¡y¢xÍ^v;ô¼Âê.à$·±1ëxTÂFZª×m­SäOÆÈ”±ØšŠä“ÜÑÐíl~ƒ÷ÿßš¶¬­± çX¯ò;%oò­aPšOÜ …}5@ϬÚ×”p¶à†**³l„47¬¸Æ.fíÇ’³ØBÉ0q12èŒÇåšÍ5]–¦ÿmë[IY•ÖŽÑš·±·á°jŒ »Yùâ©q ;ÂéG¬ŸA·á7ÈÜÌþ°ò&_¹¯ê5Äô"K8· @à=?ø®õ Ytç `…az¸Ã^Š«äSóóC½«xôIk°®ä]¦¹ó± ¥ïi2Ó`ЄÂzŸÇ‹`×u3”½Þðç¤åêªRy_s[M¿¡,Õë²êŽ´¬uEpW¶Å Ä('Õ¶Ý©À-k…ÖPÄo1ÿ&¾‚ Ú›G÷¥¾uO$bá…n”v&á´×’Ïú‡4¿²r®MÈÜÉ›—·& JСܹùçäÇQ¯M°ãžÉåló#mœBkLº5µ;Ž­|8~[·ÍÈ$ůŒIćB¸«±%b¦”æ*UÌBÆ ¿V‰®nì ¾’/f‹Þݼúý÷l endstream endobj 116 0 obj << /Length 1042 /Filter /FlateDecode >> stream xÚ•VIs"7¾Ï¯àu•‘µöâ6L&.ì¸ ‰+5™ƒÜÈ r»›êV›"¿>O “©¹ÐÒ[ô–ïÓd°Á¯ŸHü^Ï?]~¦ù€R\HÉó—AÆÉ1r0_ ¾¢®į̂v› E^ æ%|§M2d*øy]i½pâݩ֚:˜”ÍÛZÕÎ`›ä ]$CÉ ziÚ ¶+|þÀ3Dc½ÿ7íìqÀI­Ûåö—.øÜ+kšZUÉ·ù-”2¤ ‘†”ïû²Ò ¢p–¢™.ûÖØ…—Œo¦6mýAÖ× í "±º´A2ž GÎÿ†ˆ„¢a!FÓ\B° ~ù™¥šaF¥pýƒ\x .B.úE·º.uçŒ÷?í:x±³b“ ëù3d¢αŸáÜhOü— /pßR¸³^n£úZ·^¾òÇh~×·­JÒ4*8º‰£hð°2UeÖ]ô›ž¨ît•žÜNz‹‡øÜDxJ(…î¹€¶;¼8gùxÏä¾³‡ßçWòð„:7ÛÜz])Ïl ÚÈ•µ5oæŸ8tœ¸ëÈ_½šhò²s_´¦~ l…ÝFYáºÔVÁSp²'‘d˜œÞŒjë=Ý»mgõ[X/tg–ç©O9–2=¡þÜníÇü ‡$õ:®f£û1#$ƒî<:Ì£‚~?¥ýnªža‘£ø÷iÄèäùI9ÅY*#K‹ÈRþ³,•qãrGÔ°óÔ‘PÛmTqØÏ $Æiøm*u~VdæüÿQ¦ÀŒï³™û/ËaüÀ¸«Ì³Ûû õ|qFÊÏÀre¼,mïú{™Hz$ô:ì÷ÐyÒð\`RÈÈšøØ<)28-N’žný§7Ï 5`:«;uðÚþpü쀧ÀwòØ?Íî0Uwö:3œÒý3_jššäP7ÝY¬¬]_]^n6üîÿÀ¹¸i—g»-2œŠì Ûß)|‡‹ Eₜɨ‘Ñdþé_3¯b endstream endobj 131 0 obj << /Length1 1478 /Length2 8518 /Length3 0 /Length 9504 /Filter /FlateDecode >> stream xÚ¶PZ6Œ»·´@qww+ÅÁ½¸{ñ¢-.Å­Xñâw×mqëG{ï}íÿg¾o2“œÝ}v÷<+gÂ@£¡Í&e±ÉCœ`l\ìœÂ5i.N'';''7ƒæúGÁ ‚º‚!NÂÿ‚€°',öTƒ8”Ý\<.~a.aNN7'§Ð?@T t[ÔØÊ'+ƒ ÄÙ ¶±…=åùç`²dp °þqH9‚ `K @ ³9>e´:´!–`Ìë¿B0‰ÚÂ`ÎÂì@GWvÔFœ™à†Ù´@® ¨;È ð›2@èú›;@Çìú—Ab óBA€'…Øääúäâæd‚ž²´•T¯œANUÿ°þ.€‹ë_áþöþìôÇhi qt:ylÖ`à•¼*;ÌÆ :Yý\!Oþ@w Øhñøsu @^J|bø7?WK(ØæÊî vøÍ‘ãw˜§2Ë9YÉ@AN0WŒß÷“CA–Ou÷âø»¹öN'Ÿ$k°“•õoVnκN`7’ìߘ'Æ¿u6 €““S€_r€<-m9~'Ðñrý1rýV?qðóq†8¬Ÿh€üÀÖ § W ;ƒºü|þÓðßÀ l X€lÀNÿŽþ¤Yÿ%?õ öq>€ó÷ç_'“§ ³‚89xýþ§Åš†*Z²j/ÿ¦ü/£´4ÄàÃÆÇ`ãæãpqñóž~ÿç_ø‡ý­ü÷íþ#¢’“5 ô‰§êýCÄýïÉ`ú{m˜ÿAò4Ï Ó¿Çߘ“Óòé‹ëÿy þ¸üÿÍþï(ÿ×ñÿßÉ»98ü±3ýøÿØŽ`¯¿Oóì{Ú 5ÈÓ†8ý/Tô×BKC¬þצ>mˆ”“ÿÊv•{‚¬4À0KÛ¿†èŸ.<w;4 ®à߀‹“ólO;giÿô¨¸>õê ô´RÿRÎÉbõ{÷¸Ÿú„B^O­’ø>\OKjòü3Ûv'ìÉðDÎ` büî(?€Cê·ê$$àþ[pXü[pXþKâââp@ÿC|Šãú"?€öGü¯ÛZºA¡O›ügžž¨ü#ÿy6@ O%ÆÂ,ÄR$Ä®6¤ýºFŠÂƒmgLlšaG?™ÍgúÉí5•¹:ûÍôR*u¨oyKŽéBr‘úÁ稥5¼5Y³íÎ÷Þ,Qkr§ c~‚¸¼èHª® ’MGr×÷ÁÅW/ȱ¾S™!ÏÅMG£€àÚ£WÁ³®¯li$lvGs·š_ó¾lŠ-V7Æ8¨ø+C¾EÎ )- Œ åÙ™'î׋Ëég¹ã¿¨•_bøÇò¼÷1\玻™ñ^©Ðáví"£'3$¥B¼x62Éè#½ÿV™dΧäCÌšØÜ;ÈøÁÅÞ¤=2Z RhH)›XV j'}W®‡eÔAÏr\Àø‚ºÍ'”¡DÁ:¹Šn¨Ä,‡pó@G¥doõòS÷ó®ãÝNߤxRa®Ø½1Çç—b›9þü÷7(åÀIUäTk¸UºEõWÄS£Úù~rZC®±õE>F}¿òÙ?\±Ù!Ú…û~€9¯ ÷bz ’hŒÝYhÔï'Ÿ~{xß™`;dÔPCxAÉ®îT¨7]ウªüÒlÍnº~öøÚ]e¡€úÈØ -CõLÓ%NT/IIj6”üðFØŽj¶ú‚ñP^¶IHN¯íý¤»}Ô¬™]ŽÒ×»¼Ó°œ%òNý#Ö+jÁ[2Ú3´I¼RE©EŽY qÚòw…9$°ã·C",“;|˜˜òòØÒúÛ·\¡ÚÏiûЏYŽ)P¾ŽšSÄ $´ýpÐ-'GmQ*8—0ò(G ß±Dg4Ü3/&›,ÍíX­ÁrµRÉH{AÜÌ⺻=5¤c%ôU¸^÷&tÑ(n˜HÿÖ¦–«íÞÕx?•ó]àÛs Ö¸)>Sæ½*‰>ÝGUî6º6§/Ð zßè_“:Ͼ©¢¦$›Lø”›ÿºåícWHõ h¬Ø^òÕ¸æ–>´Y®÷øiaß%_ó3H½¢ØÚN$ÎJ‚.Áö%ÿq9U Ân¼ÏÍ>ËÍêÉ·4²ILVmÍmîmwŒ/Jœ*ÉŒÍkM4£C‚…÷q6WZzøÈœ8-„ÂMÚϾ³q,–¼7~MÏOnô2HW.Š®¿9F-ÿÕ1öx-»ìý†jõf©ñˆäµ7ϋ〈üBθӖQ¢:_2¥žgÚš×’Ê®=rÔ"¤Ú3=JŠ‹·OÇs®Æ™_šH¾ 'Ýœùh¬äøšÀì²ôKRý#Ú%C®?!Í"†²ûœ+®_ú€Ë¬ÇîĺÏVسª1×±d|µ ôkFM¶ÏÎoö^D2Fe¨1Ö Ôã·à¿…®Ý!C©|ùRÕŠ›ùhëÞ°tTãvR/ŠÖÄŒ¥ÊÆÅÔ±¶©þ´¶{™’x<Üñ©ó üåQîP­'gÏ•-bùš›‘ä¢ßÆþíl0Æ•R¢ :+À®s×d·Ï½æÙ‚FTŠ~šd/×ýÚ¡ úƒŸU8;Hs¯nàB&!5àƒu©Êqƒ,¶Sµ­¡A8Ö²l£ï5c{~Äç {ñ}pN{ÏÂ1!gMÌ‘E‹[ҰÉIƒÖŒS½×ï®Ôû)Kì€6l…çÓXý¢–¥ý§ãϽµe›¬?ªÆ–ð#å¼õuQ#,›Lä :Ø|EþdŸdòšy ºp,øâ´U|m]@17¯Í¾7µ=àEo#3>£u³q*®.Wah¶á}¢¡–Ì^F´.;¶\´LÛO.²ß¬-Èémoñ¦AbÍM̽‘çȨg•SŒ ]¸•ï|­?Çñ¼Ã,¡b¾8ô.¿oáâ—ßÈXgb-nE²dѧñYÅêÀŠî£»›ÓÒ%G'¡®Œ[¶ð«¼;¢R#¼$øŠo}ØŸ±ö`v˜h<}j+^›ÞBvY7$ Ïš$woµ5¤Áâ?·'ŽÞŸ/¹GèÉÏKÙÚ„¤7V!¯ãe "Q£ d ž² töSEª+‘kº ñ"x·ýŠä»r Â8 2SÉæ®Y˜ ,¼Cý%z:ªËd³s1³ÊTdþŠ;-ºå¡ˆtÉÛ‚™s óË©Ž^O{5úµ™âiB´i¸QˆÀAz`s;-Žêž7Fý{(`»ë6‚¸E\¼S ”[Ì£™<Á–ù‚Ókrí[)inÝ…2š>€mm%‚BÀø.ô쌯j™Œ'6EŒ:îóX;Ù|+I nϬ¯‘VæÆGq¾ ¥X‚²hÓ–'žm•­Í–½ÞíÁ*p%ÌkÛA Nòá äh(è*$Ž© KßÊUWéZìÔäv:OÍw93ÑJùÚøu™N¹‚W n¯Þšzüe³-±ÃqÀÄ~°JP#ãþôLêTLlüzÐÛ6 ¸dÙqô¼`]UPþ3¹yÌû,ÝøÎB0p¢eÒ{6C­´æS}Lå³ùâÍg` ç¸õôhæèi)Vžÿö ×ÏLÌž¹øLTQ‘+ÖjÓiþ÷;Ö9¬]Îc%¾gUöíZ‚­ çÏÅÁ˜(AÓκìõ©JɶÛgû9æÕFÒò᫬ª _u)³Û÷ ê¥Aí,ô5ÔNÏ ÞEÏO=ú££î˜‡Ðtk]2ÞÇèØÚwdš(v-?“nCê£PlÚ©mÒÖ «ËØ4 Tºä„]í¶‘ïKÛ–™¾æ¸/ö[ærë:?³6ê×3>½"5šˆH33–ˆÓ‡} åi‰Åj ÝÕ¢¬t\é©ÊÍb®º,%Ì’‹3†êsauOO&ARÞOÀymÍF.0KDwH.ÚÄŒ+K8ä\\RBÎyMg'‡7q;'es)÷BX[EÍ]>•CÅYÏÊ iêÍÌÙ ‹ ñ,§m.ðo²HßmS.´ÎGåðTeàm¦0„,”Ñ#nU[{]âÉS {v|¦½BˆeêZzuʸ{• ¢õ Nµ Çã5¯ûSÝa³oŸ/!Eðö7Go‰ºÐêäEò¥J®‘Mî ‘Ÿ×^PX“yxyù*æû†éú‹:tŽÕ¾S!§cÁu⟸.͵̯ãšM¶÷Þ͈ËE÷¦E¹'i†Ùáæ>â“#$ÝVåð1¼³ D¤+ðoHÀL‹úòj„0™þ¸ Í•ùcØí‘ÇtÃv5Ó’†zÕ{$°¦4û£Ëœ½OòßÔêO2og¥x°£ ~¹0X¡b‹­ÉG™=¬\f÷å^.ì»…ó n5nmlXxƒÇÁŠû]݆/= ;ïa2‹ä´«Äø:bܮޢoÓŠ+„#UþyÝPôÆýeÙ0JµªÌv[êØËª%A„x·”7^Ñìž2S ý¹Œo:uKRýŒ•vÈ# Ô9÷Ã$Ê6X9]»K²¤ä¥Ã€$T¦¬äøÝìo©øb ´°Ì9–n?•ø  ™W ®áÆGoö.Ê?“eT}3âk6óÈ>T‘—ä<\×ÞIÐe±AÜRÅ’–6?Ùù¡Ëõìà6G(ja÷ÒÊg~3À« ÷]ö?uóßÑÄ·-·ïtçÕC.ʃ':x¦¢ß:–#ø½$% ‡‡ þæõ½é|"Û7õ&¿t*?Ì™döŸ‰úàr"`ÑT…¼Gp±e9¹ÿH¶!"oàä¤áToTÜSdg£Ø?"Û’#Oq¼üåó¸iǃF6 ,âwڙܧa,ßûäR .ÏE:#fÚÆ9vñãZùJ°TñfOð ÍÝM:X?–ÑJóå#SjÅÅÚñ¾Ï ž5FÑ'¼ËµÚ‰f¤ã¤ž„\§ÀÜŒê§5GGîäth(Iû¾S¯&¸xÈýúy]Q½pÌßZ®?‹F )ˆŽý­N‹ÁÓ1ˆ¢cö¼ïÄ_ÚvSl]¾¾`–۸ńu;`ú£$ÄT‚ã ¿ÇÒõZà~!vqÞ¼ó£³¶C3Ø÷Kô ÌÎíŠØBô†B@Mì&{J€Äuh©üÍ^ãd™7ï*Þ\h—‡Å‰¬¿sõ ª oq>ÏþÊ#‡³zpn*Õ‚He;,y>M>†Ôyÿëð¦ÇÏC-“ŸÎýýxE`!'»EiÚ–áVœ¤htÑ.ö›ËGo¯Y‡¯Ì¿hkKg*ùã[Á]+ºŽ©Œ´î"8K„4?æÀœ­=ïäua2QüW§K!ò7Ôèyž³¾`¼ÒwÛû ª¸^Ã:‹?Då–N7»\"õýeê n_“ýÛm±[1ÜbírŠÿú ²FÐßÔD¿ýÝt !Oœõu6;•üÝrJ|f.|ŠÂg’VB»VF¸b]Æ1íŠ2NÜÃ Š˜òtíÊQ›ã­æž»¨Œ£•I¤—¶‚ìá„4CÅõ‰¿xý_ö ç§ŸZÉŒÌæ‹\=Wèí¨) ,êï3¤“ªO"Í/­;¹ȵˆã"tj©–¡¿y T™—¤÷]կ̈ž>çÐP¯C1HåaáT¹Ø:è}Xîobö›F¬R>P³¡¢ç»ünÖaS.ãÊ-Ó Àª’“‹;óNm¬mlœ9o75‚wëg™‹¾ÒZþ¶¥‰„H‰ÚÀ2GãjÞ?²‰ Px€üñfÛô}ïÑ?Õt ³Õ«‹@"@/ÛâõkšW>Å(D°–y¶7PÎPÐ)*ê±Y"f/‘2†¸ôh'Y¡áKiIÀ[(ÿxæêÇbððy^åƒ]qÆOKg“ÿ AÑ.É­„îtžÆB»–îœð7 ©ðBêcgôÞþ ¦=ÝQ⎪ŸUÕ·„®¼"êºÉÂŽÑàÀ9f”qjÝ{fYv‰ÑY¸Y¡öœjk^­Kî²Ó¸Iƒ––l4ºç¸fZÞh†#nÌ.ë>€[‚Kœ 4Û-í㵬= ¢u|Ùá¾$OfA´éã^´d†Ù´žMѯÞë‰hÿYë,1—ìOM„ʽå²4†K3*²CS–ÝW‡L;¢¤ ¤ì9ûÔŠ-Ø<ŠÄp¡¥Êñ=ˆ×I©t_žÇk½l¶ÔÝ(§ÒÑÙ€gzÇLÝx/§bjµÄPßEûãQ;š]¥¯,—ÑWÀ%ÜcFál>ëöýº^ä¤z~Çü£ƒã¿ ·±RXÀzZLë2Ühçqm„$‡¹#^]`_Y Žéë—@éάJ½7‹œéÚÍð()¾9„Áõ9Á–#1‰W7ID™~ššÞBŸLéè õè—›ÎýRkFÖAãùÙÓŸë¢Æ½ÇKõD•üIñ“Ï f«y÷³ŽgÉT—ÛŽÕh˜¦rÞžjÝ}•igµ­ñÓšùűû=oÔxy·œ²^À˜‘P§ã{„ˆch&t’qP‘h' ÿá.«n* e5en¸nh UZO)`¼Mb´­T¬/%*Ù¼¿•%VÃ)QMp`‡C­3¬Pzô,?ˆSÝU•ïbnì Q•ú§[[<ÿ¬™û-†ê.ä½\us¿s½ Á÷1OÏ0áT5¯vžù\u§ÃÆ@)ì—–ýÆlhÅR¹RéÝ/àxÔp‡|Wj·V@E¥Îç]‰LU¸Òï¼Xl8RN{K*µX¢`B#»ÁËÞ}w•÷èdƒK•žýtJPh̸®Ëeü™ ÌeËMá¡—ÚÏ;ƒÛP˜iûÎÀâ5$ÚãAWÆ´ê¥M“lûŸßz´ëUO½ŽWÍí®¿¤kÍ5Šžn~Œ´Ì A9šÊ»I²lP»—½¨¶VU Y‰z „|ÚŠØt*¹¸$FŒXs¤»ç–}XydÈ?DD³¬Z¨ñ>×®möK-¼8xI)(é奩}ä6Œš2nàýøÎñ`Çsî<¬B[éê=‘d]· %•ùh ñÓ¡=8uD/@ßÊke‰O7¡nrß~ùˆóhòS»µÍV{E¥e;–¹™9ðyàÜmydjƒC³Å†ëEÍ£ü‘°’O½9#@Ûùqæ+V-|AzbÕëU›bDq¡Ò«‰QÞ2tÔš&X¸pŽÈcÝ ‡zQ·%p )u«‚ž)a׃¤žèv˜†Ä W+ˆÇܯó~½Ï®ëÙJIº–v˸Êð¨ð‘=oáOÂem´·~ "<¢o—‡DÓÚº¦cÑñçs¼ú_Ö´|’RÑè»ß-\áM(/;ôgYô^Å?W«„-βjŸÙ˜¡™™4äq†FU²) Ì\{×í¿TðMBË·6K‚šÈ)$.­]–²ãlŠÑgLÔœ ¥¡¹3ÕÈÖrÔŸ/ªZ”ãDÏYmž.hUŠ,)dIH•?ëéàn˜¦Ò¸¯}(œKÁ›;ŒöìÏ–‘l{ŒIVs5Šå—(y ˆ êžÇ¿ -Õ2*°¿¶é/ŽýEH{ƾ¥è,ÊE;$ç›s¼ÞH’ÊpàØ'Bñòêƒ"£•56¤Å‘ 06_Óíyt=\0Ù~vË šÑ}ûÅ[ÝÈl ÖÙ›6­Ÿj!¸aóÌKö(pYïöm”‡b›1–å“E0½öÇÌ·VƒVUñŸx+'L§Ùô„Ç2áCû6†Ñ.òYÌ,E]+õÅéÝ`~ÕüVgì´QŠÈ}|)—ew$O“Ø;¤™‹QÍŽ]ÌE{|Ù·+o%tƒÈÙ¾ÕµRÒÿÔâ®.£Ã ðòp¬á¦ò{ÉóÙûoÉìÝ5OÑdžçz(†§xü'åqH?éM"+øúº†¿´ª`[®ô}ERfúúíD§©MavèCþ=YÙ{U¥Ë³FyÛÛ šÂŸzisþ·êtÛð_ŽL \ħ¨=ÉÏMt§æyÂÂÕ‹­cðj±8ƒå,µbô¯–¾­§qù‰k~|ræÉ]+©ódå>ý¤=on¦gƨ¿äA1÷6gVVŠÝ{óšK·¯Cþ ®@¤„[¬&w]˜»ˆ<øÖ²-Œ“&‘¯&kDMœ&¿ÊÏ¥¸‰|·`ÇBE¬PŽg\ñ¼a,¢ë>¯S‘¢æ¯^! ™›`L=¢Ž–”>VÙ‰°ísJ~´ÿÕväŠC“Ñ< ?h\=pÜû .*ˆîv¢ûöŠ„†¼/§s‘xÁþ[‰ôP3j¬ùÎ-ž“P uî~ôšø&êM¦KKE?–“­}Eß›Aî·¨xŒâ-¬9—‹Gï{¶P„¬íÍÄÞ¡5åk x*÷Cœ´¾ÒD¾jsþyqºè›§0æRŸÌpºï§UE± > ±y nG& t‹¿-iô\Ãïø ‘ð=Uodžï$]Ím¶+‚GÌ´‡ï[çɸüŠÁ+¤d{íσ” {ÛÍü–äs™‡SÚaåÒhï±ÖáDý” ¢u¹Ì ™pYÖ £ÚïÒ0g·‘X¿‰Zé¬õ‰¸¦Ò#w˜WX×i¯W%jãLÛã—¸¦”]ئêòµ&vþ ×7qik’âxiÆl!8– -©—4ýô P,® ˆã`Ä3„_ÙúJÊÀcIº÷ˆ,Žž&ϺS%ÕÆ!9¸pøNàÍ*K£p+ÿÝ—8vc:M{¥ãbí¼e˜×ï1°h=(}4{°g¦‚•s¹+;MÓvã§. mz}ô}Ÿgö[8Z¾c?oºÑZ<¶©¬m÷o¯Ü(ÔUÆÜiëùÅ?iÕÔÁps_d=†Ô3f衾Å^òs'9ù‘À;`Ó=n¬³ÇX^ÇeémÒ@Áà÷hŽ×E’“GÔþ;níòÓ/4=EÜò—ÜwÝï2_F÷$~°»-GÖ?I¾x¿hbQkÝÂ{õÙ­ú|ØÂMEÞô™ ½)“Ô\]Ì読*»—~ÓÃ3R[Áð(tȲ±A‡^KUâGüAq&G„׆û+w³ƒ¿8«YÁ•2_2·U}šnÓ¼ÄeK‚x`8êzôêºÄÕöœvÁïzÔm1¶¢EË}¡cé1TÚC1½ ©9Z8@¶È–yG<_ÚR½Ð)„4y¼öQ ‘ð\ÊÊÚ'2™(ʉÁdŸÑ®HIJ9»É0’Üé3kZLïÓs¸Ù=%æzÙÎâ(ÌÿÉ$§C÷*d2=:+I˜ e€C­çGs£Ì˜1{Òyé–¿Ê ]?NI ËEÌœ°#&g¢·¼œ×ǯÕpña9çèÞ¹‹¯„.øP¯ÇðšÄ‡w{·‰ÇÅñ,Ý_%‡EH’„Hò÷´úÏÇ,öoŒÆ˜ÈwíB&JðÝxMâÁŠOÙG÷JÕR’!†¨L§#?dFÚ†iÙxFÑüà¬;Áº„ë§k‚Rp 6Ç15M Þ9ö7e̱ràÃÍîÐêÝ©WFjúlI§,F§›ŽÑªÏºœäp6Î9\P\kk»žÐJn?ØE“ZÝâÊ;doÆ´ñ¦¶¼_·ê^k?T\;¥Ýw”Û+ˆwùyT¼Š²XÕ ­ñÖ¼ßfmk§J¸°nÃVÍiù Æ]­ÄÐ%5ùl>xP‘#–`ÔJõç £¦Î’‰ÁÊã×@¯öñî6ï—Ò+û×3©ãÌüH~W^ï7A^x”ø_à¤/|-ÀÚe…ÊÕ>á úH™/¸ºâ‚HEQ'ºú1\öÍ…’߸«õHQdÀ;L^›ü Ü'í dßNÂ2ÊPðLÐûïŽ;`éÉP†îv+;Ù®K,^êSç>¥éU¾º‰«Iò‘¼ˆža¯Ï“*Þtn ÓžŠg1}MuûqÀ(‰I:Õoâ(qµ½Dÿrïsm†§ÎŽ)}XïÔû“ä¨ÐK_·_Û´Oæ¢è6x\XøF]²/þþÓŸ{æf|ÞÆC4h…ƒZ)¥Pù¨ÛÔi°®•˜€yÁh—¬ç¶æÓ_ºÅ/­Œ1LDtî˜õ燋֙½Gk½5‹^Cö¼B‚Ñ1¹ ÷ßÞ‰É;Èu±'SQ ·FËTšÕ›(J¦™oï­Qø¥$ål•DݨC¨wÐٮ˴޲~†}qÑ …‰FJ§Þr¾Ñíþ 0'r~Ït°‘y/—’µ”Ü,1à+¶¤DEGbGÒ]ëCEï«€»`ý"B)žqG×k-T–ïm'!§PiúâAŸ •&’‹[,zUómÕ—8xº8kU¿ÕB…掞„[©aAQ ‘gÄõÓ„ÃÜR“{]ŠäÌr½¼«‚ìÑBìvðúͰ܈êF»‘sFA•!Ú]ç/΃¤MÞHì¸ÛËC"VHi´ì6Šä?ÓªÑÀÖ!1ÙÏiÐ}÷hŠùY0+Si}Ïd%&¢Yв129w›o±øŽĺ]…D³¶æÆØÄ%#”#WãÕ=››qÈí/Ⱦ´uÍ»Ò*7Ç`íõ—Õp\)×ÝHÃnüG°íà‘šÞÈ#’߬‡˜` Ïj»ûZo­§çõ}Ͼ¯ze×?ê ǹ‘SzϨZÃõZ¥î­èIùý°7‹.‘ÿ¹x!K‰ßÃüFjÑÍ´Ùfu’af—ŸLŠ>.›ï§"R±–ëï€;N‚¤ß#f_²«teÝÍFi§Ž`&ÁC‡J§t¿f«™¡¯jÛADÚŒ‡Ëwð…ºç 5$sú¸e%Ë„uìÀôÖÈz­ü’¾üÔÛ[Ã"BÙ4ÒÅð2¼x\¦±pÑB ¬øÆ†À]‹@Œê1"þ‡h' endstream endobj 133 0 obj << /Length1 2097 /Length2 14669 /Length3 0 /Length 15925 /Filter /FlateDecode >> stream xÚ÷P\ÛÖ† ã<8iÜÝÝÝà 4®»»k<¸w Á5¸Kp Îeï#Ùçûÿª{‹*èg™ãsŒµJRuFQ3”ƒ½ #+ @\QL‡• ÀÂÂÎĆHI©aåb úÏ:"¥ìlå`Ï÷q0èò¶&tysTt°ȹÚXÙ¬\|¬Ü|,,6Þÿ8:€ù@7+3€"@ÎÁäŒH)îàè ¶²°tyÛç?4¦´V^^n†¿Ã¢v °•)Рt±Ù½íh ´¨;˜Z\<ÿ'€¥‹‹#3³»»;ÐΙÉl!DËp·r±¨œA`7à/É% èßÒ˜)–VÎÿ2¨;˜»¸Á ÀÛ‚­•)ÈÞù-ÄÕÞ ¼íP—U(;‚ìÿå¬ð/À¿ÀÊÄúßtÿŽþ+‘•ýßÁ@SS;G ½§•½ÀÜÊP–R`rñpaíÍþrÚ:;¼ÅÝ€V¶@“7‡¿K¤DUÀ7…ÿÖçl ¶rtqfr¶²ýK#ó_iÞŽYÒÞLÜÁÎdïâŒøW}V`éÛ¹{2ÿûrmìÜí½ÿCæVöfæÉ0sudÖ´·rrÉJüÛçm ñÏšÈÀÉÂÂÂÍÅ 9@¦–Ìm áéúÛÈú×ò›_oGG€ù› ¯•9èí¢·3Ð p»‚|½ÿiø_Bde˜Y™ºL@Vöˆ²¿-ƒÌÿÅo÷¶òè±¼µ+€å¯Ÿÿ~2xë03{[Ï?î_1³””¸˜¨ý¿%ÿ×(&æàðfäd0²q²XYÙyÜœ,ßÿÍóßøú¿WU€Vÿ®ŽåOFY{sï¿D¼Þ„¸ý»3hþ=6´€ÿÝAÉá­ŸAš?í¯ÏÂÉbúö‹õÿóüòÿ¯÷ÿÊòÿÚþÿ·")W[Û¿í4ÿrøÿ±í¬l=ÿíñÖÏ®.o³¡èð6!öÿ×Uô¯s°5û¿6YàÛ„ˆÚ[Øþ÷­œ¥¬<@f*V.¦–ÿj¢ÿÜÂ[r[+{Šƒ³Õ_#+ Ëÿ±½Íœ©ÍÛCÅùí®þ6ÞFê·”´7u0ûköØ8¹@0è‰ÈòÖ`lœœoÖ·!5yüÝÛf&{—·À›8_€¹ñ¯åâ0‹þµô/â0‹ÿ!³Äâ0Kþ—¸YÞÚð±˜eÿÐ[Å?ô§ü_ây‹SùClfµ?ô–Eýq˜5þÐ[šˆ À¬õ‡ÞöÓþ/ñ¾ð½ínú_úë„™Íþ¬fÐ?ð­ó?øYý߯ê Ýþáþׂíû_î®à¤{s°ø¾ ²ü¾)²ú¾•mó|;{Ûà› »?Èú&Ãþø&Ãá¿Èñæûö&ú‡ù­2Ç?æ·³s|<‡œë[iÿ(œõ­4ç?Âþ"èφœoîÎoO­?o9]þ˜ßÊq±ƒþ”ðÖ½Ì.îÿxSëú|Sëö|Sàþ{x‹þÇfloé=ÿoê¼þÆÿ SW0øí¥ñ÷£ëmjþÿ¡@ )âÒ¼ƒ)ˆõ·ö»Ñ?g(wµÓi½—À®¨ð©´ÕŸƒÖÁ·¢©Ã½è+Û’47"Ë$ÏÞÇ-õðá­Éªm>OF‰jS»mˆ‹“8…Ç¢uýDï5Dö|ž|´m [ »ä(s\yPUò1ïÜ¿K{Ôõ—ý ›ßUÝ«æ’Gz*›fŒÕŒÑ,ž¥Ì3ÉžÃ#ƒsa$B Ã8÷@›½¹ÁÈ™x%‘K¤GôýË^ä­»Áw?çµZ¡ÁæÜO¯‹G}ƒ16Eå-v&‡»à]ò5^.,ú«9‘á|“PЉ£–´kI ltbsïÐ(P¼ m{*,ÞTu‹RløÐV=§#·Ž»xú™Õ¨ÑYµsÿÇ+ºrö38XxÀÆåD…-<£/É–8ä†F®ó ü mk? Ÿ×ošº>éÕ_$q‘Í$ÏE¯ÇèrÒ Å}wá;1!mðEïZãã‰Æ$á09p„Õ’4‡Îøä‹öÐ@Æ«ä‡ÒØ)(yë±Úu¹./Ô×>¥/ǦÁˆ{÷"ÈP N»®!‹fez ©¸Lk>¹{˜QùÇ(r6õü½”ãþl1 á± EÈ ‡oÜÕ%@`aZd>5As¸Åuño"¾õS¥ÓH‡fÕbfI>S²e“§¡2†îŠhUå r ‰3Öìrvíä‚îH¦±É«.9&®…ªY"t |Åá_d B!`<ü ¥ Aì/iÈ[ÁäYBMºÖ=·–ùà ôéš/îÕ¯ÛˆOõ ;}“[ú›ÚJLâE4ZÓúgJ{{„¹½ÍìïQagE…/mÐ{JÃTš~—!uÆyš«{–lÎw™l¼ï3æu%rŒ¸UÙJ¨QrÏÓ*ºZ–ÆÍMIüXÊkíQ™6,öÅkj&íîžEÜa,ùá¥I7þ“˜½bßïv[¦È7ØkW•jn¾u~sœ)e ÛÔ£µ §À ïSMf†€®@×b&§üÏÙÌ:Èz¯§÷Òy,´ÝþàÉQ| ÕXæù8b(¥yܲZsϰó»¹Ú¯-Yj( Ÿy¿ÃêêfÙù˜â:„„×&ÉêÛ…)A„ùÙg¤íž ßæâ³èã?›+ gaçaRÛ•¿¿ú!,¯ŽŸÄeUv£ABóC†ÐŒP/ï‘~ê1¯ Fyb.2Õþ,‘>øŒ_Â<ò 6@£VÒú3æûÒtWæ…ã9f2é$ÑÊo]Œ@[÷Ò·ôóJ‚ý±(O ^/cäœ]c'Ýúv÷ÇW,Š¥- ]Æê´žªŒYíeù4džjäÓüæÆÕ_ôîÝžÛokfðäÜòç`]"tZŽóyzeG£?gš^¼š.…€e®øš{zÉÅ#‡Š(fŠ»¥I—¿Ì=»•¤oHPƒZ‘Ý/¯ß©jØwD3OÐz’¹Þ˜¡ß½Ô˜µïQßµ–da÷’í,“Ë@æ—ÔíÍûzNYMÅLÙóâ,®„šù¿‰~uP•íþdzçÎHFÏQG±V$4ÝR˜.H^‘§Ó†j—Œ¬v1f”ëHD2!úQ^p¥k^jž–ð-:þ»‡ÒIiþšãv¼3ô×ìi…€%å"K¡«œ‡Øë™ãÜ’l‚nˆe9þs9z};Ä$„rø\x#½6ø˜qóv¼dpJÈc‰é½ŽsÀ%—»·(š©€àZ•›oÖš „xÑ:Â4]”³è§_æòôו¬¤•±ÅÉêö÷…ýÛ~ä±þFïé ˆ¾4è[“bßË[}qM·“È×Ì;r#<éÔï!Q}o#­¤µ¸ÜM¸›vßÂÜнtU?*Ìí³(©9eÞ’þ¤ãvUPnÿ!hâ?îwúd´*÷îYVÁÁ»Œv»ÿ·Ì´éUç¾l ܶµ×Èä¢^ ”Æ€1ÓZør¶_‰Á”OžúŠõïÕyeÏUcÛç²Áæ×ÒņOúœœá©äÛKnØz¡'êi±÷qäwÔ‹ ëýì[2* tx¨ ¸(f/ŸVS‘ ]˜µ1='ºü»¾ã#\Up4«Ê{Ó. ŽC„jK´› µ9€Ž–u³—R ¬BAh"*I ¯&ñ>·äްd\]ò±¨ $*:£ë^&¨_stÃL§û¾žÐRâ*,Ê›+³¡­Vnmh”fë5ªëA¯`ÿœ˜KWdµòÏ [¡Vêo2'3Èk¼SAŒ)´÷]®µˆÝ®ôX¶õf7; ‡Í^¥¦ ÎáÉ8wrpz|°n?žB÷b„µ#•éZQj”`­ÎN̯̥f™‹…‘ ÆRÐŒÇIsWP¶ÄŽ\ n¼‚ô;p³`+ÖRÔ˜3À…ÇÇ8Š%i8sY RîþCg Nê8ƒKÿzÝn•qbÇ!ȸ……Ưàjá!•`È0Ú…djFèýˆ¦ØïË¢W~³Kûi@âïSg.çÅÛw“ AÅOçÎSç2f5ì¬HÝuº+*k$TK8Ë¥ª~h­è ö†÷Ø¡±ÖÙtÍV¥…ŸX¥ä¼>÷x‰æßI)¼lsù“‚paóJ(g/œàÊáPþÓ2™LöD5ê,Z. ¹œí‡z‰æ87µ\-MãYÑ`ÖÔe¥)«ŠìjÂæo&Û\ÕYHëa)J뜕zDÖÓ6/¶áªZí€5Ez;ù¦–As²fv¿‚ïÕü·iÜùÌÜ=•‚£Œûj”Q{öi„rb„"ö{¯\¢,‡½–ÝXjR¼59óÈÞ 4ùTéçë¡ þ|£×–]¿_oâ_­»÷áKr?ü¢L‚ÂÕ y]ŽÞrk ‚6VçÛ8æ“9ª Œ5£Ýùoñf•CÄ䎮 |ü­g?ô©±òzp *îkf£ss>˜çˆâ¡‹œ „0)ˆ1gC„Dta¾f’—“3ŠT…QT¬âþA²·øf‚B©-dY ÿ¹ä5‚ÌZ¶MÇúYL°x$Y]ÿ+{Ná‰ì€ô9})¤¦hdâÄ2ƒ0;F÷¶wÚù‡®W éU”`Ä6ùæã3Òpê°kn´I~3sòºtWÝ 9@Få·~©¾±ÉæöÅ-X°“v\8ù+ÁoÞ8,L1Mô£ã%î*¦\ÎÒm<±Æm5Y@F]/ O‹s›ŠÈã=«Å^ñq…SºMª`ZدF€.k{XluûªŒÞYU掺UÝMdºÀê°Ñ}Ú“üÙ,óªwô, ÒydÝ/Kty7c@w¶ŒÈ·{ dk-žÂ\YñÍÝݖΙÿ‚ òo ϶â¡ß¸Çs°Ô)Ý:­eÞv-÷¾=o¥ó¸hLRÀ¸å4ŽQøôÆ€ŸñêNÚW‚èƒü{Óy¡ÑÆ•úÌ= ý¹ú“g „ÔQzÈšc_=1VKòw_Yºµz\1ñ !OáLe£aHØvŽOO|[©µ&’û¹Z!¬ÓZç÷& ÁdáòR,f& @‚Ö_ø¯c9kæÒ†c6I4Þû}ã|+ˆ /kŒ ¹¦E‚ÔQÓÀ9aìÚœ§1ËáßÎô?òý£Œœ³¾ ¨ÃÍ> bº”xZAÖ^L_Z(ë/¥ØñŸ,ЋrŠÖ¢©ò}– ±çHØ YÇêç€]Í„Ö/ø[µˆ~0ê<ÄFt2šÊ0µ¹QÊš¾#±7Îp[Àž£eËLý™‘´CA~‚Âu?åýr†ðT¾¿UÕ¨/åv£ùK›©+Àö‘ÒVÏ¢~ý$Ԛ˯Ci{…,)ÉÐÆVüÛ™'Zë %á í$¥}£öœÔgef,Eô ÏJÿa¬Ù}¿+]§Ž“Òe+ÙüÐ@Н9â£YtÁeýeûi´×$V9.ºYiZ³v»‘Z3‰ËÊÉU7í´V/-ˆ—”ŒPrš¹zæ5:ܳÌL¡¦á8Ñš0 ¿-¹Ïxó9&ŽßyðòmÕmZ¿ØÝn²T®ãÈQ„’rL<.Û¶~·}UèkþžƒäYV–\s=Á‰6¥&Âìm~¬*~á[n6Ò0´pë·¸ ®;$­†æh{ΙJ¸i‹1W)ph: èRœ¡7¤fHG=å2bþ©ím¹8>|6Ì9•y4f½_§î;ýr"î…4å5׸µ9oû®d­ÎÏ+KÁÛITBmÚ’‚6šÏKI]NaÕ“ÐÚðË÷”Á$¢È„BbÚiI¿Iy]hQìØø 89?!?Þ-ª¾¢5·ž-ÃW2„`ØNÚŽpÎý‚–ÐJÓA@%ôÅo¥”±¬°[ónp¬+nÂû\uÜ2·‰8Ǥ/W J×Ï=Öù[ÊD%XK&«¯»…-±.yR—ž—{u»7TgÞWîªzôºQrIùN͈ô-›"HgÛvö ëÖŠö’æ²ÈvH%jÒDÕš0•õQ«yz3ï”BqK ^³åÑ£ø>|/#-ëÇUÃŽ:Û§^eºµéöPêý$¼KÁl’¿MiªV¶ißN C¼}™™Ç‹…ÅE²¢„æj¤‘}”ÉÚˆLBuJ *T2¤*v•õ¹¹¡g)m CâC‚L0ÃU‡?¯,ïåªÒt¿Q&“\xô'š<¿<”Šï ÉE›Ò# õ`Á‚x¿ýŒ”q£ëíÛw½F‚‡|Â3:Hݨû®¾gÜHia†â׿Ÿ`²} ¯=[~¬™ëv y›=¢”–Ë ˜Z½Û‡²j|Ú¯Ü4Ý.놥g¶ËòÂö ý͸—‹Ô©ûYSÛ´ ?‰y‰#ìß«Å`©OÁÿµÂ…PC­›K‘§Gâ—ó¤BŽóGïH‰zr¤»` o`©¾5…}ºÙHõø¸¼$rµcò.2p†øvÅHü=.$ë¼*êÓÈPRu…ƒ¬ë«€ÞÑp…/,w7åbkÆ~€ 3›l£M$ue±;´‰À˜X*Æ­Ï ÿÇ­D¤ª.Ûn)ïÅ2ìÛÏ{E¼ˆ˜Ô BÁ¶Ç„ºNN"5Æ8‘xXâÑ5§ ¨\øË>—šøßôØK½ïšÇv÷¼¯ê£ÞšÛ6»]¯›æ&}E²b;4á3U½<)‹Ë!mEQºùùÍÜìw*\œí”}¦¢û®ŽÀg$Ÿa”®»¼æó5w<6ò¶>ŸÑÉv®µ¼™ûš¢Yð…Ÿl„d\‘ÝõìE¦[edµ C¯^¦GYPàæúÇP‘¦ô 0¡nS7õ û(Ÿq‘(·x¼Ÿ½Ñ^z§¹ôލÖwƒ(‰53”ÎzÒwó,[t®ë°?½®Mvpk‚Òk>—ƒ?N|ý¦U“ÓHy5…oq9D ©Ce9Á•°¨Ü¹õ°1«ýƒ­Öpï.ÕKºúä `¥”;ý£üùÙÓ¼ÃHý•lIè‘ÉÂø–@ŒKzñyèX,•øiÈLç4¡ë&®EGÒ¢öóIhèH£Íè ÇÖVµ“ëÎÊ¡$$0IJ .€}6ãIúeuK‰gMÎÐýÞjptŸw•de _¾ -òðÃE&¡XIm“¬OQ*bŽßÜrVµ¹|©•G þÔ«Ç®¡€4Ãþ°Tçgwbƒ¨VÀXäß´ n“©=vN[Ž\~Ò-Þ­(c‚1xé1ÀÍ mͤôùd™ëÉ`—Ù®„±ÿ Ñ[÷@ígÀŸ|.nKc80› ׿êârˆM?©ž]ì>h!ìåžÓCŸÆD5¯/ö àÖÑËEF†„?4ÃЦæj“-y”¾‘c>C¢ð'Š#­ßòÍEÙ€Q”¯CmÒå»ÍÅïìAILtðÅ«’RÍ[ã‹VÁInR±T‡Çù±·ìÖòœ©Y`UÉSŽ·|VÏe`ø;å\v¬¯½"9Ø-”.SM gýr«‘ìŒ úØïGÆUåcØRƒÆ»…J¼uÒ~‚ôÀÀ<懅°6šzÄWÄ.è‘™W0o™eóÄÐÑV}Ç4%’¼ŸÀʨGú–«'P‰üBÕ—gÒþž"MÏèkPoeë‹{X¤¦^¢ÙþɱjgÆËšy}$üdƒ;ßê*ù(*•Áb+]WâÍÓ–¡bï´ç£´YËa1é7Jbù5ÇD†Ìm{Çb?m zç3mi®ªož¬ð&åXð:°òÒEßÈ¿ŸrOí³Ï1‚qÐÑ9ÈìQ~ˆ¦É]-a|€KÝ$ÁægòƒŒ—Ÿƒ]qÒý:É_ànâqÕ~ŒLúÒ«Íl—Ú;Ò5ðá“äF;«Ë–8®›"{´âÜ9½!×ïʼnߖ_ú;IëÕýe74š¿â=°y1Z"`—ÍV3ÕÁD˜T¹ù;69#¯k·Z½â>´*ï|nh±CoŸÁÅl¸|2 œÛG!ú(ävvN&ØRñ¾?䳂¨ÿ}5Ë…Y¼yÐj{ ž¹ý·TÔw„Ìø¢”ZÓ§¹— å/¦½º‹†UPMÖ™’¤{|aZÁ-üÒC­{†1AlæP–RFA´™Õ„< íéôR’n~yvL8ÇqQAF1\¸Yµ!L ¸ÊOÔ…P•Ò6ï˾¥7šWÁÃ,]ÌFø<™>xær£\}¬›eŠm9¶(G+†wÕ’b±ÏÕÒÖ owìëÇ8åÙƒ‚fÓ+éU5z0‡e·dT©EáÒ: …×L¸ fñÓRi\ýÈFXV–q™>#ØòHj6›ÖêZ¤‘VÉÒÄœ¥àÇ^ |÷iØ^R{Ĭ®Ñ‡ÁÎ{Z†qÑJ—R"À|ãÁÙ* ºŠIƒLÉÙå‚P ¬|ân¬õξë[ûÙJ¿¬‘,¡ƒUÑÐ׆ÍwáLô¡`aMËòö ïZIaû’<öF_QÌ‘A6©RÚ8%ðE:.Ÿ¹*èšú*i5N?Qu?$}¤Sdf­3k·W‰³«ª¶¤œpr4TPb§N;Ðßg¾º :ƒÿô£fq‡!÷à^SÊ:oÙ€²T%(LX¤<¹åᓇ§+©^ÓT+u¯—?ëÇB·YÜ K•S´¡W4ìCee ³ré@ç4ñ§^ª•ʘO[¢–Ëãë9â·þ²tüÖ*5ÏO˜g¿·‚64ØOá=Ÿ™‡óÜüB¬déQŸÁšôE¸üޘȚ5ä9¹S†…PMÍó2qÊȹWº¬ÎÓU¶Õéêd¡6Þ âÒº n³™˜s6…tG¥¢ðüè´}|ör¾ðšÊRGŠ]#jî] ŠÑ3LóF2)±;YðÔ#µJ/­Ü~OOB¹8DÆL/ÍþÌÂ…9Âö܆ñ ×áï*J¡Œ†Áâ ÎS$šfûüÉ-¢1`Ø®~[4›–"à—:Ùóõiœo¯üráçòVëy¤çzg3ô]'¶&ÓŒúàãåͪŒYÙ-® ñU£c_[íaÿpÒï3–„öŸÔȺ/óŒ$SÐIõûëL¶££ÓÌ–¤š>v˜-ugzŽÿ2g8!¤â¬µíHÝà2¶2Œ‰;:ŸjÁ²hÁ°z„¯x&(eÆ­ñÉ~-[³ë(Ïñ 娠úÁ<{h¸ ¨¢Nù¢Á}–Çùq0L[ ‰:<Ù:ûWÿagxJÕ9Žk;rEÊ é&ÆŠ·É2Åm’xá'Þ¬ß7øét˜_?)[âƒAw)Äc&\ãœì¶zg‚KŸŠB.’¤B!-=—àiW£…ûðJjù…ÔÄ×wnU{Jê÷s]'¢>êfÞ kô9†AU·«îê#9û¯Èe(¼oáÄ—ö$‰g ÃzCc½qc…ÖTñ6 t ¦pª÷a<¿lå†S=ynÚQз¨˜¡32"ìD‰å5`‰Òªû_Ê&õ ·&?TÄ[„zÃ{‚©±]#ÔàÞÈ0Ù±Eù$èQÝÖï¨lðfÐ샠1³¸æy>›x8«;.1#k’Ž®´Š/ùô›gªÙ?Œ¥ÞÑSjCpÿÜôÇgæŸ1?oÖ¹ ®sd„£~ %/ZaŸh4$¨ÜKpŠÜ+î3­ ÁŽœ4ÝbÁ{Ø:œÁž#[ÐWÜÏÝž-¸ÏŒêÙlÉ?ï}~›GjV —_æÞ-˜xú§Ä|O˜ »±ðcš—=”)òI( gÂ#ácÒg¢•Û7 êÈ“]˜1B,l ¿l¨A‚–upœczè[-*ÃÏî«_8< ¡´íÏ©ùåƒz2Z†± ý~ÌÚ,$ Ÿ`÷ñ6‘½`Ì€m‚ºnÇ|8ß­Á6”2.#šW[ßl(r´Æ10‘³e .•ÄàÃÑääê÷ɺ¨§KàKG[6–aœv~)“©È™‰ä>^žLœ§Édýâ¾ÖkÇOØ Æg»¾üÓ"þÕšÆPœVÙ/cFzÒTU|üvQhÊùXâ:º*ôëž\u:µîLÔ$Á­–¤?-†‘o¥øÏ0 ]Ì õYœÍà-ƒT,øÌ9’ȯk±²e m1騷Eçk^Å\?¾ËZ".èí¬úª¿º•=ã‘ë‡5>iºË oÔM!¦@oºRO é5¨¾Þ=Ùl¹r,ÿ0.ä\4ºXÇx$Š%ñÆä$z‰2Æä8Èi޼¢RpÿxUÚ¥ÐêïÐ/á%]þ9å&,5ò\/Mýü`Vpb!£‚Õ³!î…ËÙþ±Ð  Ó°ïM—?›l! X¨SÏÇstDúx÷$5ñ¡/M´mÀ8ã1Å)‡š¡o¸Á=óq‡ë}ƒN´—Ý ¦îÝu؈¦és*\¿™ëFüjôqíWt¦D ܹeú8÷âàÐþšG8,ƒ¡k¢òss}eé§rké&¡Ã)å5ÁÕD”PböjúÂU \*røçÉjGX{:´|¾Ãõ«ëð“ ľۼ<^Á™.µ¹Áaw›Çu ªó‘ö8$:˜'žo’TÓƒù¾ê%… ‰m"ÈKØ™·ˆ‹çÓ2Æ™¡çJD,²óÚ2~©Rµß?yªh?Œ ü\âkµü\‡•«Í™ uÃi<óMgWу@¦Ä¡[„d‚qá8<~ºÚq4ïœa8þô¼3ùôði‡=iÌ»~hÌĦ1(ßÂÔ|ôIx¾1ÂÉJKÖ< 7Hôn¦)ß•¤m?²¶ ×O(»ZÃrf\ —ßvç‹hVÿ„T ÊmO ÍÐZW—_jà$¬QGu3Ñ"S‘¶ÿjfÇØé:"KÖƒÔ[&ø0ºB(Jáèärœ‰aó‡GŒ4Õûxkˆ1·âôÀIŸ]އU­¹-âZàÏêÕÙTAaˆGÁ´É'}-åÍŸyïLr…ˆÒ,'½IÂKñˆÅÌzµ o°Ð¯G|)õ–{›k“vP‡*¦Åb1£HÒÓî*Ì‹ƒ~M[Y|‡Iw·ˆ¬þ›]nb]©šiHÝ |&eïû‰ïú®šÎ=QìSœú–7šVˆýŠ 3-)‘Ó;©¼cS g~²Á¼ëtüU^XQÈ… DDqe5Á4zß[jþ‰4sëå\‹Âê+µ3£¡HHC+™~ߟš*ˇ\¹•Zò¤ÎÚ¥¸\Ø‹]O«Kœ‡üt^Ù1¼Üwâ$Ï“ì¶{rúh8à…AL÷Rv¼ÞèÑubܵÄ~h¸nœx¨–¯Š|i¥q9D¢ 3Wlç%ÏêF‰àì—!^{ý­‹˜=Óûóš ÚR~jQ*IµY²Ù9-…ÄS)¨„ĵ5²ü,3¾ÓDŽÒ·Ë@ï:/à²ØßæW_A-ˆ@|!›ÊZ!ã‰Õvr*«G^þÄTˆ°#6x^Eç‰3ŽwæÙôÚÂâlj±ñ€`›Þ‘°â¢;3æUÙ~Ù4¹U+›™ÎÞè`äµîï¿v=/?-Cpã¢_È¡ïšT+ÿ:Öª ÙüBƒð-=\^bèw郆 ·iÞ… ½k„¼³ø¯Âœž—¼kù@¯:ŸFrÀ] 9È M*”éš^–+ÌÐ×ËÔã#îº=eŒV=‚e¢Ä÷Á(ÃÔ$¨Ï_{Føëž J¤LnìdÆl®ÛÎ…"Mk]Øä¿ëÑù› Ñq&±7ïùkjaß}''m ?þÖû«Ý\ëSúî`Í6MòÖ¸ëHÍì`…+•Wù¨?“'qÐe[¶Ä-ªGIQ7ŒStnB¡áR»×'¯¬5ÏËÜÛñçP˜'$³‡Ä¼Ð¯³j²gôùƒ»“K‹îí1Ü=¥Š–yÊÍñ’‘U±73ú›¶š'ÍÑø“%ÏLk•²÷¶1P–Û1>3™2ùzn”]èåoÿJcúè~²õ5«Qã âܧëv»)T™ÿt Ã8ZeÐ0r©šâ<À#V ¼ô}á±§±™ŽÎÓm=;e(ÁãÈ&ã9-Ú{¹HŸ¸ÎO=q|©+Å2¾ÂÇ ¼ŽWÄÑ*;@"5°’"”7àíu:¯Ó Û¬™Æìæ×ò0Êé{éÞª ‹¶ø)= Ìã³ÍìKOf±*ª$Ã=ŠiN뾓` DCöhŽzŠÏ8?¦á¿×ˆ|Ékˉ’„GÍæÔèYz‹ ¶™F’¦ÝuÉD?Á+14ÖdªÃÔ¶Dô»PWyçq©‘¸øKp‰EÓ°@Õ0P‰ü¹ÿº)úÉHNq@ø&çŒÑ/œÅVa»¯ ¶ätÝ-ù^ÑS ’‡KhÈ«¯ €ã½0…JhI™—ôÈweœ†² ýŠÏ?à#¨‘Ï·EÀ1[nY´ê–g·ÿ^gÉÁ’"©¼bت#M»1íÔ«lZbZ·I-ÓžiºeªDšº»ÇŸ¯€ëÚšs0اè!ÇŒ£…¾Ïõˆ:öÅÿ49}/÷.–æ7nw|ÇR¶’ó Ö̃žÜÏIíyöUÚ(‚Õtr¿öLçéÉŽ3 iÒûÂüÑTSÎF|àZD%³hCbåRøR(ï"rçé8¨šOšj‚Ñf§ý†'Šü™]ÕfC °æeÙjŠKŽŽ:f±X²+riÀÚxY0 Žpu·ÌM¼[˜Û~*î¨7FŸœ$Ú»õÁ;…ã“Q’smÕ¸9@âmˆB£¯Þ»wS”ý ?ëCª½T˜×Óÿ­’uûPþ]scç&Öè!hHzaµ÷’) ·³!ç$u°jP vàM?Šj Îiß`¨Òª—Xuât;öTÚeþzü÷u@‹“´Ÿ0cŽXÆb,",å$Ê 6µ*Ñ+ƒJÈfC,ü’‚ U—nÝÐî¯þmíBç¯ð¶ª¨òæÀÉJl2YW­U¦ÖcôG*»'•Šç¯×è[ªuÊÑT-gœ5šN\çëYz Ý”–¤Ñ.‚¾iƒLç7téïòÜF›Ð A•aýj½“¹c®ڽد«p's3¬¦YbñKY‹Rp5„H­Ä!g€&Nü ±x!Fù^qx–ˆò[vN`ƒ'ñ䞺œ7ª/ QÓúIË/ ý  AôÔ`!èIhU­à4UP\åA6Öê÷ëNÛ¨«ñ¡®õâZ¸áÚ–oãê—zêÈ`DMRl&…p)GIQªìàÓÛMlÆL‰ãí~-Žó‹éÞ|(Ù9@?ª`gÀ×1ùE<æî9Ñ…s÷"ÆNÉD½±OAìþÍzX[ÊB»³7‡r@аpøxW1×ȃvwÞ}zJs~sÕïe?Œí§Aé DÄ·â3ÆËeëÁQØ4Í-󼹦HT|%» W–¨Ä·ÿþY©2i£mt>žf®›ÇHÍý>¬/©rzîˆÍJóèˆ÷—¦é@j~Ò .óá‘;s—‰`‰ß É×›;s°óý+õÐÒ ^¸5´lb}Ã|uíÌ+²êbÆ®jõøÓù²¼‚p¶0o—üÙk²žÌn¡6Ìáèt%¾ËËâhba`¡¨“–M€ê½ÖÖÑÙ #6ï=e_A`„ì“rcŠ•[ ýóü—·UO‚_ìÏì+h±„›ëqËzü¼ý÷Á‰á?—;!?%!4ê~q”µ„‡bÞ•çö÷õæ¯ZÿépÛá„2©†ßÃßÿ3Ý™jÍi§^ „ñòþ²¡G‘¬>D‡õJW÷º“ÂèÜ@ úJ¡é£u(¶AoÛ´5˜ËóŽØ`/±“ð§É‚C³ HèNq*3½þ˜‘ø œŸ+„ ãÖ™ ËÀ”°w>_'Ô:ô½Ú¯›÷4I!¯ÏS Ìd –¥m÷0<(XÛ½ èjíèÃ’zKy>¿óâMÓ~Yùigµè~ÓAå°#›(öðÞ­|‚íØÐÄ(…Y,…_: ‡MÄÞt-ÒÀÞ…'«x˜ Ñ’jƒð%½G¡TœxVAu‡Í5ˆ55]ùótv^Ý’O¹„ðÇ÷ax_„‡b  p¢±ËŸßñ Éôo\ô‘š*'ŠJ°±¾|Kq¼ÅЍty7ªŠ|÷iû$ζ%ñ9M‡­ÆGIŸôÑ ˆ¡Ùœ€G /t¸uz_fk³f€[Aã eúò"¡jÏí#×m™H6âšòVTÃñŒ ;U*âW¿µZËv•ºßEôb€]ùio›-~î<,˜ñŒ]ÞnkÒu@+¢dc›@â0°|Û†/A)k¬XˆXÓnÍÙãÃä®Yê|Ó³y¼ "ÒIIçu¦z¿„æQ‰ÅYy؃1=J˜¶Žs,Í‚ÅØ#çáAªÀ,˜{ÿ#æ´¸‚žv^ª—Æ«rd‡^ä'„ØC „ókt³Ì0ƒ§Œ6hü€•R½•Mx"3ôÔ›}ªyÊÕµ¬¾ï¸¬&TðÅ¢&½Ìˆ ¹GÉô^/+>ýȬ3üÂö‡²¥ÆÄ¢8rŸöh¤~OíHú%&–Sùé%qA¿÷O:P-' ^œX¶TJS¡ÀÉÉ2ï ¿cûî°_gšÂm_îÒI_ü[¬§plâ`û rF]ÿ³y„`¤§ùIj)íƒÕòíKœÚâD½ Ãj9ø)Fe±àKmÓÉy6$•k…Ä¡#ýª+ÑC¾Ø ©Í˜4¹Û])$LªEëV¼T ,¹it`íxyMMý3_àªÚç«OW+’C[ë‘T›Èib½· ­‰ P9žr¢¿$^M7”Osm2…t“1Ä)žãÉ?œgýŠj}MÒíðˆqábGJ‹.»Â‚Ù]Nz¡ÓÊþ®’PÆgÛ¾Ù-Á(„0ôÎû€Nïú6I©orß·µJ‚c™N²ŒaäD¸AQ†•w¾=F¨Ô¨—½Éä§â9 Kk‘>•½š)ALhW˜UÑ‚[ØHâß½qtqÅÌ×ÃÎjQíE_DÜc©un‘Mê”” ?#ÑB7*:‘~׸"Ö2;â© hÂŽi# ón…ùä':êimLùDõƒpÍ/ˆËŽI´³‚S‡·™U,e4àÅ"{½]#\âQ´Ý?¯—AXÿãñD/ ¬+#¹Ù½J*LòŒÆ-É—òåš®”ÔQîF@6QF$ÐØ Òƒ7;N6bê0Õ·àÿ¦þ6‹•IàfŠ„¾u³Ì³<û|P¿' £:fKk‰êLf†JN¶nã`Öš%á}õ‘èçná­¥P þ|/Z[½›ŸX$éÖ-+ÔõŽ uB®Ïfž×6œŒ8|£„KtEÿÀ*1Í0úgI‘°@áÁéD¤LñܲÀ¤tûQð¯ ̹ZNøô"9iNX)vƒ‹ý,¹ö¥ÒêSz2e!Û§ƒM‹þbݲ"¶DþY_Çu»Š&C±¿Äg,I²G=Kž=WŠ&8×ËÔWJ_øë–Í` ¶î†ñHîb<|„ YBÓøjÄ›ð)Ù1÷bá~ûÊËàºs·|)å9ˆÿpÁ!­¬GÓ™{§Õ‹•m<°WáµòqªºŸuê"£{EAM+k ïû‡¾ÙtË¢F®Ûè‚öÑ•]19ˆV—š#o6O–XÇU¼¾tø>åôa»ñ™ Ö¿Ú±\І¦K͘#Fé¨Nô=TçÍ'“üïˆjGšÐPY 挩Ø?nRDá°t2÷°z¡ Û7\¦ðWæÆ¦žEŸI•Y“Š8÷bˆnN2!ŽxÖÁ’½TId˜¾wB/ò„`ÏÌ•P¢idsßc¾¯„OÅGæêÇüÑH‚¬4¬6,7S,ʬ1Uéïª[¨øî#ÌÎ*Šô4„Q„à«.tÇ4ÍÿXÈ¢•ëßã(†ï\ý¡ŽyÕ^³ ê¾OœP >øŽ£*ßNØ=øíý‡3wB}¦!ŨªžÞ^€ê,4Q9Î g5~»‡{ìÉ\lPS8Ú#í/ËBn"/CøØo¥êû4¹ü¤¬qO&u¶^2:™[»õ /ÉuAƒ®V'» ò.ðà•r.L¼jx&ØNÜ-ö”b‰¤®NAù2ŒxĺüííjƒŠJîï‘”õ$Ÿµ¨hµbé‘®àó|ãDƒÒr¨D÷ïäÞ©Ò±î¾ä~^Fó1'ñÅéWI£?3îÇvÖ°Gž´Cç˜í¨¿Eo3Æ\9^.ÿ0-š¯.€zâêç 0‰£BO©^φŭ˜¦I—;í!cK­Uq3%ÒŽ·Í_«™Âê=¾ÒÂÈÉ>Ó°›áóxHµzŸve³ñk|æ×à6ý¦|$¬”ŒI13"´Íráe)ýj~×­öY2…Üÿÿ˜VÄ`Ûh…)õîkfyås—šªŒµØ¼ÞÌеg•2²¿ÐšÄx‹Ê婚ÝÇ¡,’!®mÂïÔUÉÊ?- ×\ éœÁšh…Ñlv(ïC+iÍ‚ìÒy%¼¨‰lš¢Û$£ÓA¿ÜÉ‚ ñ5aG~}‰òÜ…"_Èü®ÿÔ8&Ž•Ã7É ËŽ$ÐQëÜù©ö0ö%õçµ–uÀ\ã—6GæÐðœÜžÞ¯ÐµTØ­þläðã4¾ð£ÍÓ†4j9¼×&¼7¸YŠ”(ÌfâU•ÂßÐf'W#©·AeBú{k¼ f5±'¯Ï`•®Ï.‹J;+Ø–Õçl~+›Odå §Úí¸øÄk!|Fïy¡i)lÁC¿» ø—ŠÓDAGH ·ØjÄ>¢ÉùÑ"›9ûÙŠøwçp@S”’ @e•m'Ø8±’®¹,p„bÝ|Öâr­Sl–(sуìŒ$¾V)ž Ãn¥-½ÖÙ§gD–VL) Zœ±Ûð8½V´œ˜·¥®¾B£–¶¶~÷ò4á;pfYœ=kšèô¢ßpX° 0¦È‡¯$s4;LòPä5̶áäk] 0·%°|M”‚½àÉúý’i zãWA`žEúϾ½µªôBÂuÑ!žÖ®zƒaˆ?”‰”à Ü•jhŒ¢qÉ +AÎñSUÍöä¯%×è]ü¡FAkW,M<¬YrVÒ‰ì÷ã' ñ½A¸‹í»«S#D{ÌdÇÚD 2fme(¥7V]Ø,H9–ÜH%Jíe¯ÈææêÎQrL ÝY'ìt¡…YE¤[4Ñпñ^£R Ëç)™íë²IötA• ÷à›ß÷íÍÖ˜ÙÐ1‘IP©ÛŸ —(ÿ?qçm endstream endobj 135 0 obj << /Length1 1878 /Length2 12047 /Length3 0 /Length 13212 /Filter /FlateDecode >> stream xÚ·P\[.Œw'XcÁÝÝ]‚;†n ñàÁÝÝ5¸w‚w'8 ‚÷GîÌÜÜ™ÿ¯z¯ºêôù–¯µ×·« …ª³8ÈÞ,coçÌÌÎÂ&T–Ôdg°±q²°±q ÓÐhBœmÀ+i´ÁŽN{;˜H:‚Î/2) ó‹¥²½@ÁÅÀÎ `ç`ç`cp°±ñÿÇÐÞQ t…€Ê,{;°2¤½ƒ‡#ÄÂÒù%Ñ^tfôv~~^¦¿Üâ¶`GˆÐ  t¶Û¾d4Ú4ìÍ `gÿ A'déìì ÀÊêææÆ´ub±w´¡g¸Aœ-ê`'°£+øÝ4@h þOo,È4MKˆÓ¿4öæÎn@G0àE`1Û9½ø¸ØÀŽ€—ô y%À[°Ý¿Œ•þeÀø÷tì,ì‡û·÷ï@»¿œffö¶@;ˆÀb¼•Qbqvwfí@¿ 6Nö/þ@W ÄhúbðWí@€Œ¸øÒâ¿t2s„88;±8Al~7Éú;ÌËœ¥í@’ö¶¶`;g'äßõIAÁf/ƒ÷`ýÏùZÛÙ»Ùyý Í!v ó߀\Xµì ï]ÀòRÿ6z!ÿ‘Y€Ül|¼\lð{ØÝÌ’õw Mð_Jößâ—.|¼ìæ/€} æà—?d/' +àìèöñú§â¿2;;1s˜‚- vÈ¢¿ˆÁæÿÂ/+àq°½l ;€í÷ïï7£—%ÙÛÙxü1ÿë”Y5Å%äŵÿÓóßZ {w€;€™ƒ› ÀÎÆË à}yñùï8Oà?Ýÿ%UBþ]Ý?ÊÛ™Û~gøÝÅËøþӉ뿗ƒîßÔ¡üw û—èþPÀ›ÍìåÁþÿL„¿\þÿöÿw”ÿ;þ·$›¿ èþmñÿ1ÚBl<þmò²Ô.Î/Q¶¡‰Ýÿšê€ÿEke0âbû¿Zygà QÄí,lþž%ÄIâ©BœÍ,ÿµIÿ9Š—ð6;°ª½ä÷Å`fgcûÝ õ̬_.§—û— èôÂCç¿Îö7¿0í¿K¶3³ý¦$7èèô@~Ù‡Äý²/ÜÝÿZx+‹½ó‹ à¥]€¹½#òïSæá°Šÿý ñX%þ ^«äÄ`•úƒø¬Ò#^«ÜÄ`Uøƒ^b*ýA/1•ÿF|lVÕ?è%ŠúÄ `Õøƒ^bjþA/Qtþ —ZôþFü/:à߈ëÅïåÞ²ý#ù=uVÐ? ;€üøâ`ùÇýe<––/wæ‹äðe.6à …Xÿaür/°Úÿ¾´èð'úËh^xaÿr^(Íêøø’ÌéðÅÃùð¥W—?ã%™Ç_ð¿vÄÌÅÑñe‰þböËýÿu‡ƒÁî`3äå{3Á «º Ž›Zqb7æïB¯NÒnt9˜'ŠÞ!:HÏo%hdg­(–Ë,÷³Ë¼³êV‘x“³¾xîõ­ž¼ÁƒëŠ™\懹iÜÂóô\¢×5 åF T¾NŠ™@‰ã”*i$æg$QÅ€ †7m]ßR¢ÛÜR^…à•®Ïµ¥YJø$üÚ‡Ûêέ¦Cšß¹/is·mcw¢ ÃSU2(…ºn‘Üj07G†V±úI{"?(¸|?¥qÆ’"‘âB¨Ñ^-@È-qý™íe*‹#ö4P΄óÝL`ÐÞк0쥖N?*ºo¤4ÀÅgX B<ñ*àLÕZÖhR°¥aNGö,ƒeôý÷ö<2˜Zp.s—+#An|¥ßÝdå7Qó ‚<t¹è Gð›—á"íšÄO ˆT`åØ,Åëì?ì WCX€Äô×}|ÊÀ!Ò=.’~1æâççû¾ô=øˆž@×Ǥ©ú¢Ò×_­dº¶šeܮ𞕤1“†wówÇËâ³Í„èðrµ=W¹;‚DGîÒ…¼44A'ã7T‹Ñú@ÄÊ©2뺫¨œÞ­Ï˜Af¸5‡ú8' •sBQN‘ Ã}ç¿„(õAA^oçY¯ÎF"l\#K@âii–XÒÆ±¶Øb+= jÞИf¾Žf‘r„ÁµŽÂÜ·¹¶©mˆ…H‚’ÑETWj_ÑéæÞ§aÏPð†èô¥Œ§/k{ÃO!‡È4ý#/Ý((ûõð”LšgZ…´Ÿhñwí³|¦1 cÑdN¯›f¡˯§ÜøXé,bŒƒfœÄ i$‹_Ž{÷)6w66ÖÉ¥c&»…ŸAú>wã N2Ýh+Ú#ð-Ëb9W7ý¿×p1<5 Ì¶Ñ™sÕ\óeäx­:x('ýÌNºpq©Mñ  ±ŒÕ3úfî{›L¸£sù]ÍBƒRÖJöäKÝé*æé±÷[K‡G% ž1³µUû°´­\Ü;)øÝ2p „K<œŠ7D/þÂê{=)ßíe¤,ß™ïS¦ìYK{o—ˆÕ.{kS×¶«™žsTæ*{n¨àÚ”‰ Éê’ësÉÜÉJòôîRȺ¤Ç0s(Í’n¡ŽJ‚›ÚWõ'É·ÒA¦Ê®Æ‘f tw炪TªDÁ¬nܤ >ŒL±ÉÈ¢´Å!i@ùã÷‰POLJÍ#g]cÆï}Öß>ħvÿ`, wÊýš°¦3˜2¹&_£|‡§£ÛªÞú£¤#‡APÕðªtl|v_Ç„ËtóîÛáôƒñÓ\7®jû 4«Iã÷ᜠ²ëj×Ô¨g®D0—‰6™e>Ÿ:­÷B?ø6”ZúuºåhÞ6[fLÔ@: ‘{ÊQì|7e¢Eþ†¯5óaéI‰ÁT. \ r½ÝØWýÉikÇAÆ©ÜHwZ]!?U®_ãn +d£ªV£0sœY”qî­9-ì>xÆ О\Oø*sÕÌÅ»JóM«~ÙÓTÒ,Q†®ö ‘3hènS¶²7UЏþàx¸!Jž‚©E:@DSxo)¸Ã&Ó°Í~L¸]Ëà\‰/›E‹”5º*3vŒn2Þ9"‹;j0¸tEC‰¥½|®…xl£iy“b$($&.°%ì0 bgx™¼Q S~%JN>FAZÌÃb¢ƒE}dkDü:=!NàñŸU²¢ˆ É¿žêE iO+Ô½@–LÜv… üÀUDœf§—øjÛúD×Ý ¨òúëBfÂ%‹ªé Ìg%;PK$5!䪪«€bèà#þÈ©,£©öDË›;­í‚GJ£ê…hìWEÊË#W&¡ÄÆ}ÉBˆ03ź[GG¼édðŸÕ+º}X¦¸ò6B‡”SdÌ\£Ä·z±/—Eñã´”¿Ì—$Eï-HïU³€æ°,H S³$ÀßÔãbVxôlÎŒ+#ß”&˜[a|·6©¯ Į̂Ÿœn5ñžMœcý °YîmoùT¹ŸÖ`'éëk.äÚð!ä4vg1_ÇurÈØVCÏnÒ‰§¡_mDßšè z¿cs’âª(‘37`vtÅÈø…yñÇpóMÆ"Žº F…ÿ™ÃahëW6Ýå3'W¸É±Ù^ýv;WŠ\ÙâÐøÑbäEñò·ŒU&E¤ÌüC'Ø(f:+õW• L“—ñÂä ÐÎb¯Çs¨;ªÑ‹œÈ,K!®(óÔ©â~È€³So•&Ö~8×DŸçvòíyæ=;FxZ² R K ™Å:d‚æmÒñ\jäÊXNbËÂi‘jœ7‡ôðä4hrSw*F?dÚÎk›m}ÈN¨z¯§¾\,y…9çSÇ£6¢?{.å §Àz_l v¯@SL”q÷˜¥¶³8—Ñ´=ï×;vH~¬„…*q!b/uú’­ßøí¦Ñe*…ÍÓ YSʨº•së¸ê¢ÕSÈ/ò¼æY$¨pcý5cƒoaEÆ1fi  ÷Âqº’–< }þ/¨Mè=Xt *o³’˜OYh)t ›£Óê¹”¬ëL_1™ð(! cª Ж×ZÁA+Æ1z¬µÀñÜœµJA-Éi¿-†}©Ds3·ïˆUEmp›D$Bæí¬¥e§ ”wñpNýâ­÷¡y#ú^Ô‹BîõÛ*‡1›_tb*s*Μþ¹BÓ­÷!€~\â Ð/yt‘úÚéhGš‘MͳǧŸ8Ã‘Ôæ?ˆ"êË8Þǻܹ}é¿©é ­wyEÜ£À0» ÆŠã1Á»Œ`@½ T ²…B”¨«ð0¯re9wa<ÞY¦¼/Ä÷ˆ²èŽSæÛÐŒçÌû}ƒ"buü0w’mdÄꀘ†f2Õp¿ê€m2ªÀHés™|ÝȰJBZ²+ÃEƒrªmºµ™C½ævÛ‘òaj!P`ùR²¡)Å‘@˲BKè‚p«×€ ñ#$gpOžMl3Ï6‚¯2°{ÔØüõ,šS÷û42¹Ru…OZgµÝ|µir@”t¼Öé•âªñŠ=îtåÌá6\/²ñ<6Ô3ÅTlæ”®ø%|ªÙ`yjÈeVöZø|þ÷ä|ãÖ!‰˜ÒWwQLè ?ÌlÔPó+×´‚Ê“ÍÚœ$‹+ª¤;^ ÀÐCÄåPÎÔº©sI$™ eÓßCï4âIܽšJ²R~¥•EÝ6ÅÞˆbÁyFi!£ àg~ŒÛšˆ|\á]œÈ)ÚJò 7Îe¦;¿ÛX·[å­+†EìDžRVIúñDÌbÚ­ ®Ñh‹ížWæ¼l=ýÒd_Ë¿¡¿ÂÎ!ù–‘H°soïsEü¾øÊ’yrº±¾iæ)"îmÉãäC¨J¨È!“ÚÅÚKd7ã‘é±AN›­2 z#\‘iœ|²òŠFÑök&TÖ‘a‚XË .Is¨¬…W2‘ÅÐKº ¹C\뎣Œ½W0ÖH;^#§¦Ð4ë¨UÆ’~Knv×K~!”ïžy?Ù’¸Ër¨Ù'®! PDÔh˜_*˜×è¹vì¤éÂ(ƒ‹L {OšCêå™"8ƒ5–εb‹zû¼5¿O vûŒXÿÐèÑûieú'0GVª{ø®ßc–€Þ´ax”OõÉ.„À"¼ûM‹~…Tàæ öб/)dü-y©,Â:ê&–ÜûUl×döÍÂEJÒ7F}EgN³ã1¸ñû\­}ʰEÒùöß¶z¿ñmˆëI}zúÆa ëW1[v·+Þ±ó@ÝQ©dУxÅÚn–—WÃø™ +mÚ ÙÏ3{~rv1z¦–b Ÿl'´¼ìÕ„üÎ(s‚ê]ÔýrúRm%G•´“}b¨lÃÞ¸ãmþ$φµ1ìxÇËhÅðŠª?,q‘¾î¥|°±ƒc›Ç0µ×xìU›Û–«I•““gÓe…PL­˜`…bt«‘f)±F$\bb¾‰S3Ò÷ wèäzâL'¶k?0Mxb‚ƇÍÉÓ´T8Õõ â4ÜŸ2& Õ¨:†œ¼:¯7¿%×^1-E‹Àô‚fNoQݲÃMºË¸Ÿ¼À¨ .»}³ö\è{>»ï;ê,ŒspøÑ[ØôNëªá\§ÌÁüÌ8–@¶#¯¨3Ëü•8ÌþÉ…'†L³¡br¿XVBbUÞ0Y˜Ö ô©ÀEŠ3]ÅáH¨¹QÀ–œ8çfµÅˆtS–ëÏ¢bž3ÜGÍdR!º|B@<ÜÝÇO%mvH›p íP‘°f©þÌ÷Ô&¬2,U6U0Áo‘i •¼Xel ø`߃_MLŠ‹ò$i÷:fg¯ÆÜØ?LQiý8cÚ+çÜ\²ÛU/ë܉¡À\ÇC-yÙ£,{Où]FeuÎ0íÈ¢<~'ån­áö:ô +ÄO,ΑõChÂFÙáŽiCXÝØªè—ǰ­ixÝ»Ÿ±LÈbÚ9;Ê ên)X$èN]¯rÁ–‹-µ-Ö"Ÿ)åo3¿Ê}cI/ÈßúöNþ†1Pî“…Æ$bÀ¼ÏÀñzðÒ{º^bäÜ+<ƪŸ®ÒýSËRô46¨¸‡×ßâ‹È#ÞIʯ1îVB=·œù‚:Y½fºÖ×µÐÂtB~²«MªfÑIæíÝ`CS"ì©q—Ú œ÷Ï.6”O+ÙÖš¾î.}´BÎ 5Ü+ùžùèSôÐÔðfräètݪ/hªYU‰ªr³ϽœzÁ8Ræ•(¢ì åpnöúRæì¬ŒQ¢Ê{¯'&‹T£‰ÆoD~~gÿy…ûœ2!ßiѵµÒöHÂMòÙÖ>áëúd¶•kJCômÀú3¥7|¿ÒL?ÌnxSŸºfBì¾ö‘el¬ ͵èûHâËÙïÈû¯ð@Iß¶6E¯Íöš¿½—ÇÙ•P•ö·I†’ŒJá¶k¶c¾ ÁFÑTˆÅêè/•aòñ¯ü®)þ~ªyôQü×ü«šõzµo0Üá²’õÊ! cÒgºÈ±:â4¼K(2¯?xlh—ÒZ©²ÏilÛà.”tžL¾·é«XHøgøCC‘`BkU9¼3Jm Þ(ö4€¥n¬ž°Ï)÷:™;§SýâU€ÄÞÓw#i¥òàQrÅcåaýÛ‰ð'aÿÓ„/Kó@Æ~Ç.#/øâ7ü8‹eÝ£B(<Ëó|¼€ÊHeŒWÁIW†gÛãxækþ¼†?׃#¯k~:´¥ºñi œ9‹«£—q 멽¸+©W¨n\™,kàƒ– Î 6ù$î=$¤n”ò–³´{él†²m[&ÌŒÑÑ2„»Ø\n𤹭a…<ŠDïAd¾ Ú|Ö#èœË¶¾ÆcžØCz[îV˜°§[ûÓËâÈ5?åãc´DÿIE!…ñrœ³#üçÊTShK[ ׊ֱËõ½¹œQg÷ ž[6ÍžîiáxãT:aÈŽH$}>R<ê ¬€æ¨‘†W°ÌÍ'äwøOdAM®éÅð¶Þ§ŽT«ÈÜçWtg¤¨ýôr í n÷²ˆÇpCÍfƵ7 1¿sÈôÿ.㞸œ _Lmu5«M”Úª ¯&?œè &b2Ynøú~£ð1›hhP¨›óö ;©È5±ÍF^ŽatDð‰Ž²Á„ïB× vïfÂÆÕGr«aÔ«2¾ã­c"Gx¯ÿ#¢œÞ[(j2¥‡µOþ©Ö‹gêõ‘xêœõO[«™ÉEI5u ½S¤‚"gµ÷;i£îôçÍݲk“žy®€ðÝ™ûy”sw“{JèÙQÍWkio™”ÔP¦q‚®¥)\ư6Ûu'uµ0g”Ʋi‰QK(A˜‘NuFÓsK^¯¦,|JÞ()2ËoÃêa7ÆEXŽpo²­yU9ö±%–®Æº0âMü¼ãœ¿3ec|ùD nŒ)‡íÒk™´ÄMg_.NíWàŽÏüÚZà÷ â=☧ýg‚@\66=ñ˜_,#²PâüµÖŒsz¸Å2™ö"Ím;ߊl˜³H>ø¢Íoó‘í¦ÔK~x€ºÆ D켘™à.¤Tü®%µ:TrC|8W˜-åZÍóJG¹¹¼7©±×5§ýÇcö6˜ÿ‹Ä7êr©UÝ.D|FäÙ}ô]ü—vP4[±ÌkÊ©4º¸ù×Ö¥aöZz ßf*E$^kË;·N«ü—Ÿ¥¦OÐbóU–ú‚¤2¾Ak¤h絇$=«‰»(‚iî%wÏš-ú_h$·Áož\¡Ñ<¯ù°¹’¥©á¾x¶¿sm ¹:–n˜ËJe[`"B´RR W,-©K+Œ8Ë«ïrÙµ{OOÐå£<cì­J1ÖšÏñéË4³€JGÁß'a6ºÏJÃK»*|™ýùÜû„uœÏ=eâ‚Êj7üR¡Þ¢½aeŸ#úéÙZò¨¸;œ(Ö¬N‘:aŽöº´.s§B͉µò¢Ê µRÈ„{6=¥L?S8"£3[ªÒ?ºo‹p—q’PrÞ²üú¸ ½Ä}Oq10y1¤’¹µï|ü ®K”K';‡pz3Îm)|îcuî1UŸ †UÝuV*5аU˜6Ó»kŽŸZíéüµ›öE§‹k4LÖŽcEÙ< 'h•ÅÌ©yÃwšÈ4é‰@¤ØƒÂ ÓKšø¸ó1}Pô¹YÆWñ3PÄÜí|£4.·¸ù8\†,¿ÁDr¬Úé W·C4CÕÉe¡ß4¼|"#„³1&pW*â9g#WSž|À•J§ÎGs¢ÿ(a ý^ä’21±ŒYêZÉ Æg»IìL§”&®Ú‚Òu^QÚ¿Ø· ¸3 tsøúë0VĬ’Xʾ#¦ ¨Oø½GWo?ŽTRM×c¶Úž9³7£ô2' ¸ÑÚ0†þš$çR®ƒ/“/žo—Ò\]Û­;1:|¯O‘¥¯0ïÅýD0՚Ȁ½sÕÆUšó~qf£\‚h~DÌâ™Ð›¼ÝÃÚ¢1›”öA=}G#o˜ï&Ï|Ùð<(àL0ZÈ£×îÒÌE¿´Ó[ð\rþS‡ªü]Žé‡¸/œ«s¥Æ‘¬o‹‘FO]ŠíÇG£éÏ÷ –Äñ¢,:#ˆÙM“uhM\²NµÓ´cšØ$](ŒdÆKùÑŽ{5&r-I£LÍ꣨~ØŽÙú¤SØaþ©!Êé…%ÐD¹¡œ:Á#Ýê!'$|½±ƒ¦ANŒoèí?†U»âˆu’w#žh—i ³›$°o:´¾ŸœTR¿ûµŒþñp¡Qwσz”èGÊ-1tÍÂk±:}ä…$$C’[³ô8í¹TÉf™° (:voû'fŸ‚v”5oƒ%bVô@¯þ•š‡Ø3"—vã÷?ô‰ßõš5O6»ȯ›×ž\73§ÔŒj¨0³xsŽ2h÷ò&}?xå{Ar[w}D@\unÂ+± ¾V« $‚¥ëä„od‚¦ºf‰¦– Ýíú$e] mè»UeØ¡í°ÿ²š»ù¾ª._¸6M‘˜lËü‘ç°ݵÒjVHÊú4} » 6ø^4àÎâ€NR7U:ðnüÄÒ±ŸÁR«·k¤ÝÑ„Ž!3uxeÚ9+ø §¾ˆO iWb–¬\±Ëð¾0¡ÚöyXTuAUe%õá¶žÝÝõÂ*m50§÷gÐñ¹ä‡2—^±v#Ê ÉÄfæEºéT³úŸ†D“«ºÌsWpî1rü”² ²#¢2'T!ROn¶ RC£,¨ÅpÇ0ð"§_Ñ8h¥³®6óêh^lÁùµï&Ä<¼G}ξY¿x•m5:jŒ)f}¿z 4iù.z–›FhDX:Š”¡ƒtŒ M½Ñ S Eõ;-䇈\%Pï¼v2Lm>ãpPüV-öŠ»h޳_xeÒÁºcç5 é)káJH°f W®>"bá ÃÖ‡²3S£üúÐ\—ƒ.þ¯­ÌZÏÈ(XòωÖ伟>3`xl.éo`käuˆbr 'ŒËæCðÿ÷Ü/—?ï‘aÃÍ[èä„#Ûî3|)•ì±ó ‡_×ú G#A[@koQÀá+>Þ"–ÇÂýòQr/wîÿ¹«%ßÐ$ =ó…úl ™§=È2œE¯0vwHT3]ÈášìÚ?Ûc†8ÉÑ* ¬÷e‚¯Ó! Ü'”m‚`S>\¡ëù›×ÀQ»ˆöÊ|ÍÌÒ±y¶Îd|¨˜Ø\‹@'÷A&9ÿ„Ý…a2*ß&Ügx$›.΀tÃûK`az1&CÔƒÍEĈ¦óð‡[ +–›fÑâ¾¥îo–g4.ÆAÕES°ŸUN{ IÆŽRum~¶æ¯Öï«Y_Ž#…)6Õ4#IzØ-t\·Be€ûhæÂOQ­`äWÒOÑ%5ÉÛ êCº¤|+Ð9$ë²1{êUU}à{"¢ÃªËºf*‹k1Ž­¾Œ´-¥|ipÆhB9ü™qf[iœÆéå¤îÂë‰?ÆQéÜÜsX”U׌(IfçG}7æÒÕ p­¾Èò¼¼E 4œ}À_o¼µLGkØ ºÏbƒQŠjªWÿÃ’‹Ì”Væ„^<(Ô—–þE ë«Á=›aŽ»®#oüÇv ð£l<Š dii<ñ¸Ù’Ÿ¼ÿù]…àþí³u•asÚ aBÔçØ:~ÃMž5*ÛkV"¾T ®"ž{5Q3 ®ÝuØ•Õú¦©ÆÃDÂqûÅæ|u_ÀcÕÀ‘—iPa–Ò¼¿WKs%[¾h³R¨:cwKдH¿€«€¡7¨Á±Y3m-Ú'ã¼8·2Ø)zËõÍéÄX†™›‘KÂL€´¹HXïÞ³Et,¸$b ,ç³öÈD^ÖÑ07‡áß±gÖÛd€,ÃUé´‚´Ì@Â'k}´Ó'^iS¢©q$Þ)§To©í Ó¼B}ÆŒÂ- çQÕ¤&_²¾eœšH¯Ã<Ÿg;kĵz/\©‰föÈs ×Lhbi8nñÇ?K¢Èõ9•<ÊíL¿<Bè90NجsÛí}Dê®OTÖœ·ÍóÑ™OÙ-ÜK — °Óç\@0Þ9k_íc¨TWË?s$©ÕÒœèiF hÐjxtZ¤ùøÚo2nd÷P_7âù”0‚ðè4Ö°µÐ Õ¨7ˆæ9¡q¬xèôû}/OX¤¿ èx¹ÝW¥%zŸ/·¡a{0»)àÜ9ŽÍM$¾`/±WÌ£p7¢6¿X×Ы¼š>‚®ko'w¤M™¿ö·†'QCÙ™aÆ©ÖÅs±6E¢©Í†Áç½¥§×æP¤ÿ@¼õiàA‚ ¹¦¾.|Æ& ¸¤;+yonãðËÂd$.”]OÊMo¯J ú5ÖYW%réWðÊ9tÃ&ŠlÔÆ¡Ô9YŸßDÈxfÝ£0@× .s"°8z6œjù”nY“6MR5µ–ˆìÕý:-ˆŠdFÄVǘå©+8 ±!”Báä=z–üõÙ­F7YRFì:ª%À£1çè ÿucªùe¹†G[ q®/’¤¾™'BRD\¬qÅÃ$tÒÞ v…Æ9Öµ"Ž«’øÑT½øÉÄÄ^X'•¿º­O¥ËDF&D9Hc{kz‹&Þç¾ O¤gáùøXC—å1Øæš#=C&¥ÁŽ«Äiïüz¢Ùÿ6Î2‰T(3ª iäy„ãh:$“ï$[۫Ε€:¼‹9F²êXÈ ôÔCFO᪚ë±æ­,Ü ¥Ë‰ß÷D›¶xµ²ðS…ø¬,S éÐÆÖÄWMšt€!¡O˜5̈ýŸ> ~JpšÎoÖ7}hq¡»~|r¿K•L›ŒRíþÒðúB3‰çBMÙ,ü€†˜*‚´Ñö®Ï½ÿ§ý5Ó~sòGÇaìןœÆ<†˜7´›íj(JJ†‘ú/æÕŸ²„$‡LfRÑ»eQY ;Jèÿ 6çDÔ²mÆÒ¡A‡Ò6ýj8êhú£{ =ÉàAËOÉGž½MÒ«"_×é.\6¥Ôþº“ÃPy<¦‰Sȯƒ¥b¤›N#:séׄ‚Ü3·v«ž¾/ÖÚ‚ÓT¢ë­¿ÝHTbö[Þ½OuÉ´“įß=ó®Rp–ÎÖ„Ú–î°¼€·¦yõ€–\~ÿ‰¬ˆÞÒ ÇöS¢î9‰;2L¤äíè”J¬CJáá Ô^™ø×æ,óí©u×á´´@Hš^ƒeÂF¼mTÞ'¶…D,d HÃè s°9£c°¡˜K²É…—£Z~V£³†5Ÿ7þyiF`Å-iÉUüïðÉ÷ã¡»ö¤Ö׿ØIêdï¾$uÇMDL¼?CIqœ>áy4žáxöÒ̸ËA¹6p\0$ü†!V¾gðJÈN ®[ÙÚm.•EVq”pøbYãœ5;w¨½ÌÇÝqGgÆç·i»ÝÏoóu1üö,è•Aí/è$%ñ-hÎÚ;¢¯YÖ¦ï5í’’×Z³ª„Z3m‹:»šâÞÔõÈ1'W"¦be<»×W¥Räï^"³bAæŠ1~Ü‘²Æ ÃÛäõ;Åáù“m¤À² -vòØÀ'Õõ¢ÎüŒ9¤$ãr:2/ ™…5Ô.¬ùôOê—£# b>® f™ñ ËS2–®S™Cwj«x,4t e· ›Ë4TôÌÿa\@%ƒÁ‹¯v­ü£ÖJ2Ù0\ÕQ!I£ à“ tS-ŽG ž€ ¤Åª;žŽ…Bà¡•ˆw/—*[†_’úÚaç… ]éȢƒ'Í¿•:Âc:cO~ùÏ3Ó “z§j¨4‚C 6fʈ­¤¼Ò™¥¹ÍŽ#.ÄÙÚb/'¶ gõ6¹W(ñ ÿ¾:ƒÆ/]±Èå˜6]Kä´ˆB ŒÎõm5UD»:-®Ûqqù,)4`­{‘UâoÁq°¦íW±Ù}·ìÚA‚²¯…€6ÿÅÆ±ã!\’¢$=“>…üÙ®3M!£ÅÛ0óøòWiÈ>:T¦²ëí±!v }¼6Úýù­ÍG¢ú]V–¤«‚#v[¾»0È+’' Z·?:œ˿‰Ž,äåäØ4¬œ©·w˜›bMµ¡Ò­sšFÞp5:µ xÎáR(:¿,bd#¨3 èœƒ‡xNó~œyÚéV}dQîm‘ гöúEsìÑéÔ›x²¥ñç¨[ÂÁ•#mv‡Õ`ƒšwÐÛñM¯Ÿƒ$¢~Ŷ?ìü Þv…•¸{O#·gwjéw\Úæ¯ÄÏ´æ×¸«Ý*¦\¢ œÏâ]…zÃFnßQ@Š»V>mPpûŸŸ¿|¢Dò<[aSËbN‘ ­u¦ÁØ›a×÷"—1IÛ$W`ïWÁ6o¥ù”ކDí׊?çÀ—Zœßáw=%\|&x¯é‹Ï4[&?÷:©÷C§1Ѽ¸Åh°¿MµYÉæÌî1:óÓ¢ÁY×]÷ÃňøŽ%+Ȉ,OùÞl¾9+u¨+¹}SsOfyhćý©´ÿÝ%InÕÈ™¬N=%EÉ+Êãðè:¬oÚ5×o)JaÜáŠ&‹PåÕùZ£VЩF8ivy}{ÚrBýJ_‰{Ô !H™KåýDüú9&³ˆP"{Àjý5ËZKcÚÀÊú^vM³Í<Ì:ö“ðÛøóÀ³¡¥ŠÙíu¡¯¡ufLU÷_Ê•LAÉø Èd#Ðì™ÖyZÐsõ¦¤D(I(ïB—wØbI>àÕÚG¡ë²]ä¤ýúBa~ܦ+RG1®ò‚Ó€H3ê…¸†yªÖ“E0gí‚\„µ-îsHÎé–«¸Q˜Zˆ'û/ºäS(bœ—BSY0,º;èbì’j¡ÏR%æÙV¬¹ë‡óW®ßHí¹¬eÙŒîél\&Œ|ÞÅú‘ÕwðÌÿõþfM9 *ÀLK,\ò.$çšÉ3üÿ#Ò£ endstream endobj 137 0 obj << /Length1 1808 /Length2 5657 /Length3 0 /Length 6766 /Filter /FlateDecode >> stream xÚv<Ôü?Ù"e%óƒdŸ;{d¯”ÙëÜwgœ•½÷Ì e&dVÈÈLVDȪ„l2KF~W߆ï÷ÿ<~¿Ç=×ó5žï÷ëõ~àb×ÕT„clj4VKÊZ0‹€À`ar..$Ö ñÇAÎeˆpuCbÐÒ§(Ê®(gSbqL- ¸îî@Dˆ¸4DB „Á`©ßDŒ«4 õ@Â-pƒF¸‘s)cœ½]‘vöX\¡ß?/‘’’ø(¢®H hA±ö®" êèc`HÖû_)x®Úc±ÎÒBBžžž (Ê „qµ“ã<‘X{à& áê€?DÚPâ·69``tûÇ£±ÅzB]Îà„„!Ðn¸w4á àÊúš€Ž3ýYó‚ðëtò'ݯè‰èŸÁP ƒr†¢½‘h;Àé„tÔ4AX/¬EáNn\<ÔŠt‚Úà?{‡jŠz'ñ—@7˜+ÒërC:ý)ô# îœUÑpe …@cÝÈô§‚tEÀpï-ôû~ÑO´Ïh‹DÃm»; ÝB#]Ü*¿H8ù_› ˆÁ` )á ¼`öB?Jx;#~:!?Ì8~>ÎgÀ'ᇴEà¾È}Ü ëêŽðó9íø7"‡@8†lvH4ùßì83ÂöŒW¤`ÆM ÿøüùe28íäý—þó–…ÔUôn¨éóÿÖüÇ«¤„ñ|pU…EDqq)@\Jðûwš?ð[üO«.ù«¹Sù4ж@ê ¸Ãû­Ãã×hðüZ^àß´1¸‰F<À,†áþ@þÏkð3äÿ7ý?²üï ðß–ÔÜœ~x~1þ…tòþEÁ´;·ZÜ’ ÿK5Bü³ÔZ8Òõ_¯Š[E´nÔ!¢ °è?v¤›Ò ×Ebaö?'ç÷màJ8!Ñ]ŒòÇÓƒ ƒÿãÃ-Ì÷¼¸áîì§ Û­—UEÃ0ðK(,&@]]¡Þä`Üœ ‹‰á·­p„×Ï„@h à$ú¶Wò7+.)ÿ0ýD’€ö$) üAR8&ôÆ!7ÜY!ÝÿRpá6‘ ûƒ~ˆ‚Ÿ‚@ñâ¦V×¥uŠ+a{ â(v§ ®9ûSP Bž‚¸NœNA\+§2ãVG} âZÁœ‚¸ºÎ…ŠãN&æoï"¸Ò.î,nsªgu=q ¹‚¸4ØSw˜î§ ®]¿Pן×Oø¯»†¹»ºâÄŸ[‰„ßøçë‹@x!`äc˜L¨CMhÓ~•"“§à§‘ñ[_NÜÙDÉãœðç@gÚµK˜Dóö$SsTtûìå*Ì´ðÙTã$<¥”šA$Ô4aÔg®E1®_Õ–¦Ø$åy½î`LŠeH¿¿¬ìÝuí3{Ù.9åWÔúẖ}ÓÅ%b&Ö²‚r2¥1^)úƒà kNþzÒÄ#=ÏUÀÁég¯·Ô}ã¾nz¶ví+My3µõèX§¥XÀH¸:9¶fӆɤDBúù«áûæ Ïñ[Š¢s¹wŠz¾Nh$ûsr’­0_*²‹ô^ÕŠ¿˜ÔZX”Ÿ¡¤9@Jnš6Eó¿Mföï£Ú13)YÒB3·Ê’ºÊZ•z]EæÄ ÃuA%ðÝ(ßqŠrgŠ ÷³Ç øH”ߨÙi[' FùÜbf)&bê¦wR/³ÏQDZ7KŠæJQ´F † ŸYšûªp^γÛ!µÔ-[xH{†7o^í÷*´3Ä™ú­§ksýW¼yñè¿ Üµ›ˆŠNýü’ÉÔ ýukâhÌ£‘à Ié~þÛåþ¨¾rp·ðM‰èˆÁE]G»¯÷aF/?Ï r5Rh/R”ùZ÷4MÚmÕ¢Ó(‰z4ñò—Ë©2ÝÝSÆ«]tð+öÊÂ>”¸ÜÇÐ @cמ¦îì‘Ór,òy$ë(Áûµß¼äLÈêÈÙ³ ÐnyMf+” ʀغß*ĬÒv¾+;Ù‡Ó`§ßÕžU?ë"½4m?ÑÌVU}4’CH¡Cøäy“ä…Dmµ]±¯ŸDwéjšKzšêg ÷«qotî5”ÿ³ì›¦Ïžß1TŽ 1¬ß¢Å;d‚¹ÔszÖ¿ÎE|W¶Nµ@q‰*•_C2ó© úR¬†Žxs†ªæPk[è&ó(ˆ»6, ©Æf>{±@¿«{†îÅX¸ª#m†þ6-ó ºaƇ1ãóÙ·š˜ì»ÎºÏîàS´YFÔ 'Œ¸ökʯ´lǤŸ¹zþ–æ(Ý©ë¶ DøQ©;nêÔÝjÑ“_ÕáŽÈ7ûš*ëš'KQ%êĉ•õkGt`È8ŸVáPVzŸú¾ÏL€yÅ¡P~kG«ŒÔ:p±}É0ü†»YgouSS…ÚR ú\cØt®Ó‹†‹4ac*ÅUÑ\Éæufe/H;b}µÇ&¼ß­¼©>οóQîr6†µƒ†ª*Ï:ŸÀ:òLøà®±UjG8\ Ÿ´8uØÇìÊå»eþAȇ;»!º‚²0U®xʈÀFYßvÿm TE [rÒh)2YÛQ†éY 9´¸»/AÏçgL!áÛ‡ƒŠaµ*B¡:BouK?—ÞýNÜ[µŠ!É“l&žªù#“ç¬c3<ã´ZÔä‹+ŒÄ¤'Ã?´³0FÛ~gÂ3¹_+—Í`-^Y5:Iº`J©ÂÀR•“ô‰Ý©|a‹º-­²U%¹>\¿¬néóê®|¨'´ýêQ`¼É—VîsjtQ>ÁE† êÜ©vÀæ×ëŽF+}T§… ÛÌ8ª¸ú½¾šŽ^ÿ°ò鮪8Íx •@ÀËú¦Û£›w ­ê5žs¿ÒÉAY_²ÔÍLd˜Ñ×KÙ²‘¨ŒÁwÛßÿœ|É7\äå-æbñ¶n9r–ÉnwìHÇì”òÉåÃhH§oY’ÆhFUyƒ®¤ðSŸ –+«%Ò¶ób"díFúbï!â-+oD7T|hLúì¾›¸ö~α¬ÜŸÖÍÂ?8fªõdðQ¸ºn­jš'§¤ÝµÐÈÛ´&Æ}еv`ö*³uøZ‡Ó÷Ùîc ²±Ì5×îC(+Yò•WÄßS¡¥ÏJ«iA”Vhò&Cƨ)o$ÍëÅ4^ãµ' -hX>¤yl8©O‘mÿ"ÊT„¾Ö<+7Êß…å„ 4ߢ€Èg‹`UŒ„¥°ã÷ÐÒÝIãä~᪕u¼)áÁt…@vÁíí°7ûÇéÚŽ-¥yÆÄðÞéP1Ù÷½\1AÛ„Vm…‚"¨Oáøx„S”ì»™ºž5º$Íã¢{![=Y:¼Û …wøO–爢•›·†Lm%h…A·W|塱Ÿè§ÏOòê,ØÙ§<`Q¤eLåàL±ã÷Dß®´´ axÄ–ˆGBq·¦uAÿ ¸ÀUr\Ãc3p/ Hºµ¥M@‡rÓ°å%Ò# (À¾äÙà(£[ܪ«Â-íDg…®ÆŠg9F3k완ø³ßÎ ¯‘¶äGI÷"ïûTÈAw+áï¾ÈÔéç» ØŠƒŒ˜ÇÓ.¾ö'‘´kæ ŒUV4~VñRF«ƒäyöj©Š£( ”óÝ«¨ºÝzjŠ,Ÿ{‘û´ÓüÚ–êùò uMjoôÇÞGŒd¢Šàëézró¬ôH©Õ³£!*"í…<:Ìç”S{.²&ÁGRš4å¼³|-ÚñYðê­Ö ‚ÅÐ!–aˆ±Mcá;¢E„‹Ñ먋ÚùóVæ¡ÇêÆFÜmBôKvgt%»Ïñù´‹»HÛ P«?…\½gp1W¢Ç ï½ÎgÃé(ØíŽ%=æš:¤–®ª\Q ßzóÈ1FøeYëä,¡~Ëô ÍÇõ&«Ma}·§8®~n(ö~éYLÚj¥é4SF$šåÄ<à§mI?às²TeRz®aþjöËÐ*ûž¸˜ýûE·_¼!Z¿Yý!¼€LÍê¶f~n€ÂEí©$AxvÒ™T†—q]ñÃÀƒD}F3¡²å¹’«^Pý¨™¤zI,:*Ok­?Ú[Ø&ìሧdíœ ñÞ­ßÞåþöÚÈ'‡ißÎPÎ^T ¤†¬k¾¼Î.k*ñ¼zïäFÿFGŒõƒ±ç,iÙDE…£ñÅNµKöt[ÝÅš)±'ˆ=ö¸;·rÎN³y×0ï"?­’#ï}¿–Ö›ÿðfÏŽTuv'¤…b6áXpúÙºÿ‘°‡kkpúö| BI rb‚¶±Kú‹öŒ éî;1ÀÄ;§ÓW%£¿’òÚëɺ¶7¹÷x¹gmúZ?ĤžY–Uot? ¼Pd9òÙôu-_=Ém?F~ G®‹Ü†¨Ô­6±ø Å^~¬Û+õj¤­4Ñ=Ÿá½0pò±Äœ[˜”õö#?"ë³Õã!“rvÖùQœd±¼RÒâî3¦¢ÇÍI{"^gò#dÞB:ï†]h°ÑjÌ-‡cøü¸Ð"Szê½Ù¨™št_9z[uš¦lå4«žz_´Léån>ј±ìžR§fY‰ü~Øò0bÜUjòé“z‚‚GÍïuFVNê¶ÈO}Û-&ך<ä¹Ëà“`¶ J"à!Z‘C|S²ÉxNX–ñð¶ó`ÜáÒöq©ÒÎj‚­Þ´´¸êÔ$êåêв×âmàåÏéM¼Y}å;+„P%ò¼³ÃÇC_â>'1=Ʀða÷„RÔÀŠH´Š¨ØÀ%…:¹6f‰\‰¹²OKïa¤Lç–_*}tfâÎØáx­»9Igëq?´X³ r/{°è&uRöÎù«C¥Ú‡¢ïÇý:U¹ƒ.Äác˜%%EñÆøŒ(³Æ!l÷³8}3m®†°÷<“`dx'žîðæÊ¾_pólšŒÏ8»=©'à~¦­ƒD’œÌ¸:\‹yÑ܉Çè&ôÛSšUÜ—îðóÅZ…^y}>­'€æ$¢;)tÕ}š# ‘#[‚zòÄϾôÑ1s•IX‰tHŽ y`«Eèæ˜Hêb7›ÝdåAìJbãxýî˜3bGêH‘ Ê›Ýí•z¬¢57KÒ˜)Oj-¹ qF¹ÐRÅ+½óÒ [ ˜Ûõ톆v“á¸JRRÉÛÑcùc ª&#‹dÚCaéÌçªpö›+äóSm׳ž¼÷Û9D LI¦ L÷›“¹#ý•¾… éT•_uÒÂx.i˜ÊyÇö“ÈpYX:¿}!}OÁÆ*ñ]­]?²‚é-ùÁäMûB‘dË96•â[`WHÿ·*«žTgÆ’¢Œwâ³ê¾S°¤ÓÇU·SáÙc¬¯u´ß¿ÜZ|à_(âðbÁ#ïÞGJnNË“‹ò甲6@ÓóÄz±¨ÛîCøô•7£;¹1û¡h•_mâ óçû@±Ýš5¿ï@R‹„ÌÊÖ­­“cijï"£iaJ´©X›瓦úfá›ésñÞW+nV_kI¢ó4,Øž¿×¿Óç9ËE¦¹ñ~£«V¥iži>W›¶f‰Fš&×…WB„Ÿ_ãR§I¾<׿C{3Ïy—΋‚›œˆ¼i]6®5=HUpôæõCâò˜êÒ–°; ’Íά2j Ìþg¿8¥6X]žË‹ W4WOâ §˜½U«D{•¼2ðªW‹¡“‘¦Á5wÙበVá\¯²e’eÜæ•’G£vžù\a–‘!~b›¢Ö'†j4Ç–)MR'}"&Y‹È™{ÄНBM*µõÀu¤þKb2 ã¸wŠše'„*úåmn¹¨ç$®,·>6Õ®Y°î½ÞÎgESÿ­0ꩶ硨·ßÙ×mâÔ‡º\É3ÆÖ· ÓÉ»íŠV§š!rÎkÖ*b_L©ÚÛT èm4cûóŸµTsÊ{³ØU{T×t¢­ «ì:-A×É(žIjûwC‰V´Áûö‰‚A:òŸ\Âne8vG™Ù>¥Þ\\ $)Û{xËœXÛv;’¸§Ôi{bõé˜Nû(ªfº!ƒ°}rV ý9Oí»ÍXØ<…·âÓ<ýÜ×CàVÒ½ã¢çz^å‘)ŸF¸MKR‡=!κ„p‰ <ÞÞ­ù´ŸZ]èóócÔ;2vu¬h”uú"EÅέKãÚ]‹Ö¤£‘†%Y+³Öé¢Í5KÇ#4[Ø•–Ym„;£ë:?bK^˜K·å†žÃIÕ¿1ªÍ¬Œ³ä-=~¦4nùU}Nî6š÷ðDNÂ^€ê•æÂ¢anÛe _¸Ì2…—{²Ö]üz4¸ó)EK=^ÓÛšrLÈ?ÐÈûá#«øƒ9J‰ƒ@VVlùïsl¬¥o=T!‘œj¾u–cŒHÀ7í>Õ”ÁŒä¶|wx¼KÀù¶ïy*®‘;ö˜7_â‡i+"—`×ÅöÒgôÖv¸â"ò®›$g®G3IžÀŒŽ”ãSƒÅ¥ {Àaø=”%­2‰whšµLðŒ¢ŽЖ £SUv\›‡ l¢ÆÖ2,6i×\ Sª~Ñ]%’ö&/Pò¤¾onxÃæ’‡(ˆ–8*$T5>Ï  ¸Zœ}í$,gŽâ5âܖ6ÁÙí[Våšß½# >{GùÇL#ô,1ËMjßùºtŸDè#N¾«l§—¼z^ó a23^7{bV0™ñÌr]hâEB@‹éÑœÖãœðÄ/k/1D±Ñ- ËW¸]Òï§ ˜òá²Gm-Wpøà£ùÚ=$Õ’é†öûùÙhÓ#+Ã6üŽëg}f¿¯24·X¶"z l¢ÜøÜ¿]Tè'æóÏ[ÊöKjÅ3:Íí“ú9æõÊJT9*þ²Û·É† XxÕ ƒ|ÞϯÒ&#OÈŒ&%×§;ý‹¿©‡—v.KÎxæŸn”¸ uÌ-d0:ðh!‹M™Ë˜K UþŠwÄf n}—qcukmC”ì+mk–§Í¹Qƒ'*x•¡jpám¹èYÊù‘–‹›w]vKîQÁC1Yºm9“ç^»'Ç”É ‹È¶—ô)‘ùRS¦®”éßõsûı¥\¤|¼¡Ä> °—RCÉgÑ:ªn&WN’¤Êw7ƒ ÃòBõvÙaŸ#SÛ 'cüˆ¾2)Ô}Š|SÝx‹GÄTŸ¬W)—ö¾,’ÚÅÄ™Ä;¾!1C‘îü¢›ŒƒeNrÐvAÁÎð CUû€¢ÙUÇÅÉ¥%W„”žµ¬g8 #pfFæÅx\кŒÔ-Ë •vÏ $æ©o«Þ&y{xʲ/½ÚžU)‚‘2ºà7 ¹ÙcpÜSóìR¶¢áÁ²AK&ëgíÊÙ f“¶}2IÆî€É‹ºYu‹†KÖœºa÷S,·¤=»?̶›áó”Ô̓Ìz9¿Üg3|ÕCaçìîÆrG†TóuBÝà°ûç˜êú¹ñx_‹]ãÜ-iVmÏú'i5ß.î{»ÿþËMÎ…;×áN÷ä/»æ.Ê Á;ƒ£WJ,?éÈÌ·r è^nš…_ˆJÊ›÷¹] [ËÏdÏ#™ýÂ]MeuÁ?òNT¿øü’LÓsh–µ—CÎ=©Ë‡úkXÅ•½ʱ¡ ¦g¢¿>î$²Ÿ“w•??°Y[ôkcfë=bw«@‰€‰Må`£P‰—iº=šTgð(àz—öL/(" ¸F=k×;¶oËüz|R¾-8À?ÔJ8±õIó½•$K‰\6à¿9ućÂÜæ2úFqÝ®š‚´Þes4g»«åjÏ@„{•O[&FËJWa¤l.)–Dðqš&UÞ÷X@!zˈÖN0~•H™ã=Êû}ã˜ËV4#>Ÿ]w9ÞçJY‡LÆz±>Qºî³÷×5¼ÅÉl…ñ2ï¼#,Å^çëŒ[Y•,^©ª¤è¼äð•¶É²èºe›¢Ù5V*ÐqH´ÅjJ²T)¥3±Ò¤í9Tò@„ýÊöˆj6¥xûž /ù·ù`¡¾4F*ñDþ¼s¬JAýµ[ÿä%ù endstream endobj 139 0 obj << /Length1 1465 /Length2 7591 /Length3 0 /Length 8579 /Filter /FlateDecode >> stream xÚ´TÔÛ6 ¢”ÒJÇPJÃÐ%"]Ò1 3Ä C H‡ H—4H‡ 4¢„tH )Ý4¼è½÷_ß·Öû®Yë7g÷~Î~öaeÔÒå–µFXA”p7‡O ¯®®äðñ ððññã³²êÁPôø¬/ H.þòHu«S¡nÕpÀsWPŠˆóñøùøÄþqD Å 7˜5@ð‡¸à³Ê#œ<‘0[(ê¶Î?G˜áúu„ a` BA!Ž·Á €. ƒ <ÿ+›$…rçåuwwç9ºð ¶Rì\w и@nkÀoÈ #äoh<ø¬=(Ìå/ƒ.ÂåBB· w¹ q…[C€Ûê]5€¦þ—³Ú_\€¿/äþ+ÝßÑ¿Áà‚A`0ÂÑ ÷„Ám60@SIåâ€àÖ¿A.ˆÛx沺uøÓ: $« Ý"üŸ  sB¹ð¸À~cäýæöšáÖòGGå‚ÿ»?¾½wOÞ¿‡kG¸Ã½þ‘l`pk›ß0¬]xõá0gWˆŠÂß>·*üël!(€Ÿ¨ˆ€¨0â €x€¡¼¿ èy:Aþ¿Õ·|¼œN›[˜ äößËä ®¯ÿ4ü·„¬a`À b ƒãÿ;û­bó—|;$Ì`ÂwK? €ï÷ï_'³[†Y#àžÿvÿ3b^ y5M%Yο!ÿË('‡ðxq ÜüB| ¿0@äöàóßyþuÿ ÿ£ÕÁþîŽïßUà6ˆÛ<¡¸½¾¸ýM ¶¿÷†ðß%4·„†ØþÍS>!>ðíøÿ¼BþÿÈÿ;Ëÿ•ÿÿÛ‘’«ƒÃ;Û_ÿ;Èæàù·Ç-¡]Q·Ë¡Ž¸]øÿº@þÚhuˆ5ÌÕñ­*(Ðí’ÈÂmo‰Î äáüKsQ‚y@¬µ`(0ô/2ý3Û08D áûýðÜFññýív÷Àö·‹ËíÌþ2\nõg¼¿eÈíªýwŠp0Âú÷Nò @H$Èÿ–·’À x»¼Ö?œðòÀ¨ÛÀ-f€ ‰ÿ{ÐB¢^§Ûé ¬ëÿ¨€ü|^ÿ^Ïÿù¼/ÿˆÿÕØ‰¼íôƒn»üGþóR@ 0þä,dWÔxZ!KãνÜ/yo7éÔŸ»?×Õ®8lñ3V7= ­Z¤4ù ¨dn×¢!ç|š1;~èµTÍðÑSð7ƒÒš-ƒÕÛ±›_˜?ÞyÐ2}ÆÈ2H£/@¶chÑE·âI[Û¶ë²y?©ú:ñÎýñÃB%‘çÁÍ­…ijä´b/¶tPuV]zËBG”OÞ/8F.¾1}¨‘¤*Ù|†ë^N<ßÙÝ5MòîK„ÿs·€å=–‰¢D­‚ Nù‹élÂË÷n›)¤^VÊdòäºêYŒ:”ø]òÙqu»”¦—Ì8†vi¯¡ïð7)‰š²SVó ¿Ä3¡¶@ÑÄ÷?˜Bmý¬%g”tüšëÆC»‡)N&ïÍw/9Üol`Kcö†–ø¾ê‘Õ°K*sódBÆÈ²¾‘r¸ƒùîŸÔ)%=2Ús’šƒÅõaÓï$XZ?U|¥Y[ÂolªÞÕží¼üaZ]­x "u°ïLÄ·Õ_–qï/ip‹Ã‰‹£X؉öæ5¯•~ ÅËH»;äBvº²q âì†"~ ç¹:·´jP³4Œf¯dâ%žæRÛ¢œj5eÇ'žQÃe˜'F#¬k¥ÜF‹eŠŸRMhˆÝfÞ“˜»|†31m=¬vºÐöžP [ÕÑ¿Ï]y‘jKïn}a ÝžâŽ26M7u)ç´rÆßüÎá!þŒû$Ì RTîý¡2©²Ãð½ƒôž`‰ü-Ü[“éõ}ÇkÝ©U вWvçÝë¸ôû9Ç©ùÓb-þè<ûý£=ÒRN,\ìj)¤Kä76›™éé*o1@%ÔšƒUXvªÎâu+‚•½ÔXy˜"u>¼BþÝ·M»ûýÔx>çÅ.Ô©ŽSþœ£l‹ˆXˆK¢œñ²:V  ’!ÿþ"ƒL 7nÒv€ÒÖž×W£Yè™–É_ŸSжÇoYgÈý†SØêónm{žoß÷Œ>“îוּfO¡ƒMªŒù-Ö…mIºsýÕ—Î7²!Uý¡ïÈ(¶q{`ÃÐK…_„{ZþûBN!â³ß_7š¨? q¥@e\¨_kGúÒ^ŠÈ1œn¼ijªÙ»Öòò¬¢áQþ\C®lAñPïmo‘Á¡‡³·ßi»]ó„ĈŸó9u3ZüY?·"õªÞÁè<šJ×IkÛÒ0‘Ïâ_U¤¤öeòY ºGмcÖ=0D h¿U“’»)d•»P¶MŸ6´oHY‡æqÔëÁ4Ãì&F§c2¿¥k@$ªŠH)’|1,ú«BŠÞͲ¿MÝy¸ròÊŒ´±öìYvКæÞÒ„’àF1kÝA>öéÜÝ{pøüâÓÚBݯÐÎf0hjùYñÆ—EÛ€«ý‹­•Z7Rà³¥j½ƒwÐT[xæMÍVv=ëL½Œk8Øž(|ðÃrTcípJ*­¼íyÖ 5ô@‰E$@ôÈ2ƒÅ´2/z¬»£ò¨æùa°ÏÀn["ç™߬ÒÂUì\?+T3¼ÎñŒdø¥JüÜC“áz*/bŽÁF¢OcTžpÌÌÚÆnýšI4®3­ jìE­§Uê`lï^LÀ¾KA55)ü\´Ðw¨úˆÊ}4Þ‘ŠÙê9Júå¨gß”t6äýÁÆõX­Ó©ӃPæSÅO— :ãm"sïhŽ =#¹âÉ—Ûð; wÑâv´b=ŒÓ£yhbÏä>U´:¶àÉ»è´cú̯‡ž€) ²^“ÐÌê7&í_ŒÉç“&ÀVrøÉ{ä˜ðà¡ÐnM ë×þüw$æ7í”nÔTÕªÎÜŽ¦Œ|"{«ýJ•.©úÆŒŒFñ¿½àò†õ_/tê¡™~Ô }°[ V¯Gà®óJ,϶%C…JäWý¤‹•`âzl¶XÃ@cç<ïE5ñüÎØºÒôÏO¼òƒô"âTTOÙˆ4=b Âl…Ÿ¦ºâqa¯æœOúm9jëðÉt,ÈXé©ÒT8$ׯ÷Œ}ˆ¿¤ñ¸3fþX»œ«@æI¡v1ÂI?Èã¸+ôÞt•µÃ¨úî˜l,(}5÷=W ksÑì£æ-{ôÕ5W–Œ,¤IFA×U¤Ëx èÍPã#3ÔkúÝú¯cÚ2•aÜ•¦–˜9â+Á‹,Vù¿>âïÑ{cj™|ÑGSï5ñ.òÈRuV E}Í(ÔP2ÿªh4AöÃe&Be¾5ªŸKo™¿ã÷ã 3EM®sG4ך}StÇhi›ùÒæ±™Õ¥j®ÐûY–ᤠp!_ê•Ô14óNs¦K` S]âMãåêõ·I\:C˜B·fü½Z&a½\é_ù…w q´et¾8¸ZaªÞ}0(Bü´þ;Ž×ð×GKhmÜã~3Ò¨0y‡>|¦1ŸÒÕÑ@j[²É¨ob(ˬ~rˆæsªc‚1z‚n×­+ÔÊKRHã#ÿ¶,£%:M¢½RTª¢”µøüôllLŽNf¼äsa¥¢²ªšýóóqâ7}ÔXÜ®…øqT}v8ã‚–= 3k8»Ñ²cÄé ¹ØG“ùqvw5®œ”˜u¾ÖõªòuS­ó±ewŽ–ž‘ƒÐ/a¨ÝD-°ÊúñÆþw˜P¹þhg[@)ù³S¯.‰Ï=YJêá~.÷‹Ý ció;dbk}W§lj#•ÄñwI@ÚOð Ùx"7âÁ†]òç;¿KÀi•e{UòÚÁ‘î‰yZ+êi|g~ºÏSyÍe¼DÙÖ²ŒBÁøžRÀÅ ׊™¬ÌT3Ë{†çѯw‡Î'—+=ràk;N¦5À!xÜ×(1Ö&3wv](—'¦ô-Çò»œ}ÓÎí{#À´iÓ6—›¹ Š¿Å|xwwº"þ:°à¸Š»®ß6¾É)ët3· çQ~¤ÐÛ*Aú]Û í·{m££0Ö^bG1ø‹?™ÆNÍ?),¶s¢ñ&<̦‘¡Õg&3úÚùAšCcæó©ÈG€Ò{ýp²Ï¯ÄüøŒR‘9ßRÔîqÛì>½qvD ´ŽÑwâÔáôž5抨ý_ë\û¼R¹Êãf'$B•aõ–ÃóžÄ¦¤Çbkâ±Eëm»ù,½}Ü$ý2£‡Q±,ȵÝóÊ…Þ¤¤¢éƒ]ý­Îý!Ø|Ù²#rç½úeääJîç–Å£7ò:sW“E%.¸.f*“»Ÿsnݘù?«ã¹NëùÀ!PÝdÓ?eI³Ù:+G“öVi›ÕM6Н2~|õ Ôd—Æ/TôZZŸ˜Å¶9ds ÷Œà?z®xàØ0ŒæÛA‹Ûòu9®µª#Õe]\ßZJ>0/+¢³)«êŽ!‹œÒyF;-fâWkföÑãG`Ha/AÛÝm¦p‚Àñ}eá@zí¾ùk÷ÖQþ"ã§øÕ¯TpÚlavÁËËšR¨åÃLošØYþû'wÔBs‹ŽÔÜ5i(Ý[?§ž: ¿²¬& ‰ EØûàXrk9H]öEäѼ½·J>™ðŠŽyΗ§Ñ¯™VÙÞ‹…Éjüí:W)ûÕì‰ÝD̲ù±ÅÁ2 ˜ÞæÜ}:ÇŸ~EP ¼Sq¡â±†M½Œ|ÎÇ¿·!«k jž°¨(žO+hßx%ä~F/ÿòûX‰ïŠ8ƒóµzÈhƒ…áÍÕ´í]mp\µB…&~ËÌ ÒIqü¾ÀŸ™–±§&‘“éÝ’Ÿƒ/T¤l%„ð|WÈ|‡1sF^¸¯Äâ^S,ÍÊ•×ÝjYD-õç¬Ý€‡Ÿ{÷d [ÎKYú¾øFã~Ŭ£vvõ“%z…ƒµÏjà¥Â:§9Ÿ"bóÙúñÿ󽌔ê|*©$¼mÔ&}¸u„‚£ò³çry¹A¸²ëË¢odM˜líâZ ~T“¶ßЉ¹‹ƒÇÙ PQ8¡/ÉVÞL°°H±ƒ`Yìö7Œ÷§‰5_l®³k‘{YxË‘GÑdÎÛ?æÝw2Ý zhPƒÞ%M_#n#ŵ`Ú°äO­èêûA=¯‡JÃ=^I_1i)?ÔLÇPôö|ùVuP.ã"á®ö6Kb”îļWþÖA»XÈc’¢ù×RÂ*Ÿ3OØoÖµìΧ26w±u^ËÕ±È1OТ¿"ÆÂžš_Íѥ»DùÊ+iI%ÄÚOvgŸ“À ¬]Tj“m­Ê¨?t{ØÐž‘Hí¡x© K¼þ®¯‡ñ:ËQŸ{² kÈáFæ9uHFXpÆõj#šŽœáÎxü :¬Ñ•†•ヌHÝrúÍ8_6ÑEûÇIõ \'Øg0«´@ÿ@˜+L ×ò="Éy}šåC4kqËqdØ5q ­í†(m× L«ìL´Øº7*/jšP¡P.H,¯ió®àO—Trˆ‚0–±ë ÌŠ˜—î­«ø¬bnõVN“®{ãžÑ€\Þw~åÒV*¼M‡¡ lk{˜ápØœP­®íØ]h*"hÜÆÏ©þ Õ&y/ÔcsÒ€{œV…i?¾Ÿ¯«˜·Ý~”ÜP í{5JêL˜÷Ó,5a§B^Ü=Êw§Çô!ŸÐ¼i«…¤ )&XT\1Ö‰4 PÉØ‡$T:û²o%­°-¼¢ódYΛ NÛóîpinËÉ+â2øØ¼dwÏ8ò“Òb ÔEAâYû5*7hI˼²00mhÊ)÷$îÞÁä##Éí7I óåÚ(Z.»ëòQ6aO Óš]vZ9§5 ¼5Òä³³bТÎ=Õò|=Å«ÜL¶77Äý}ö¤_qâ‚"‹d²ârHbö(_H 6Áüf¥˜A:c°o²¦2ìÏ&›·.wï»>ö ÷³HÃ.ÃÕÈBßµ·Q@Àl"‡KÛ›TuЃ½s察»dÞPÜæH–csMpPÏ#VZ%Æ+¢û…év‘•˜¯zålòSŒŽE¢üÐgB ¶²âúZCä[_ÏHTÌ*¤ÉœEXN˜â:¶«âolNO¨sg~ð,òÇ&cH¯§Wn'"[òË’±ïi‰6˜­]>ÙC«¨å¾Î_p\Åb¥h‰[%aòT¸¶°ùqÍé¹N÷1וîimæõÚÌã§Í†>Å'j¯­ÃçǼ’¼Z¥:ê´‹W†˜YÍüM6¹M]V2\_:ûðzŒ &°täPÒã27«1ÅwéÂ=mJÕˆL_ DÓÀ¨Ö3)ŽÎ: hGW $Z1v™\NÞl¿ÏÜŠ h£Û¡ìÑLjñ¶*sòàfãèxÆøâdÚߺ–±ÖOÂZ0S;mÌê×ý!îéظpfJD#ãs×Ì jÞ÷ õ¥¤棋vÈVjéÙFÂÌ»! 2µ0ù ûW&}pýd‚GY,ÉdŸ.äÞ÷Kšx»PÍ[¼Ÿ-,ržR¼ð~›ÍR_¥!>Bº¹÷Ióuùêe(¡[ÓÙÏkÝîY*/ÚÃ)nø8{ds]vüRB‡wKúÀ2*@c,Ÿ3&ž)¾Ñí‹Ä+ãé‚ÇZxi% Œº´QÉš|ÃD=Èvl_b÷ب”ýÈ5‹™š†"DϱKDœÎ² ϱ.ûCKÖE%jæòœø­o‚I>Þàz×ìžKtFRﬧ+«c´õoã©—½ CFgªØÜ˜»ÅBôLÔü%:»{˜DcôlR\`GÚK÷lƒ5ÉM>]òòÊ~2ãÁºà=N;'ò¡•&m\Ј|¥½ŸÏüŸgÚH^˜Ye™Õà€°˜rŒò³Àd‘:%ùf½ÜNcÐ"çîÄÕ2îäPŒs—I˜A¬ûžC§¤¦#[YŸì}A_±µQRÔu>„rB…ZâMöƒ»5GwX15ë…RjZ•Žg*š Sô^‹gÛ,_øòùÀ¿9Ÿ¥bõz™ûËLóÄÊ× èŠn‘z¥Çަ]a!h¹¤¬~™§ÆaÆ$½°‡*FAjµä‘ÂÂKKŠêßö]`Ô I¼#´z›¶MXY5ôÒ›hwXDLÙ2²ó‰«¹ONªRùÌÄx`—œš"ó ˆé»@‹@áœ7ùA­áò‘ÞW¯ëýwàJœ”ösSqçr1¥Ý›i:•?|òãš#ªÖY6%M÷Õ_Ìy3Ž÷•¼HËz¡ å¶Ú ×ToæmjÐH4K†ù„mik¯²¤Ëk§¾ñ¬1³V+f××ä^Aå/Gî3¿óu ±â”׌6÷R¯$Û˜¡¢4è®§’l<ÏßÐò´Ëèh—2ôP8"ØøàU±j/ vª'4%ù|5BZÓsù<ÆÎaÊ)J$Ö‡óýÑÛGwÝßttÉ !Ð[^Ëέ|usßóc°ƒ?4/õBGtJ¿à¿P/ÐiÀÆv±4Õ­5“Å(þFGiêºG]ë¶‚ ½Åö•€ ·ºE€ÐÅbû1ÝãÈÀúbn%T3à&36åF±NÚøÞ†hzÑÆ¸ý Æ£ A_)|ñ_T’|bTV¢2jN¥{z2>j–ŒùŸ•À1þo±JRãñ™vÞ”ÛÝϵªŸsû‰£‘©Ï£Ž5¼ÏÖRó¦:Eïû(NhîKòÝÍ]éy×b)ÍŸ„JäÌsñZ¸¯-‡p½œ÷°©Ü“ùȦÒ@ÎðFË 8.Œÿì$”£ n-AÝGb1÷¹×ºtºýÉìU‡lå=3œ‡½œ5}±Ëw´:z}­®’Üyµ`™˜Ø†–"åPó3˜ögSÑô* ¦œ»ÚH°½ÐÛ)õªµh •ÊxA ¹£ŒlÀS·kŒÕH#r`$µmÞvr­u%÷@žäaÕ-Eã ‡²ßÀ±à™–h¿~Ö[îC`>¡1–¾§èYe^â;^'öÀbsh#š“†cØy«fãÖ2êdû¾{Xà Þ}œ ô£j÷ÁdU¦‘¾72+µ9àH§r"\?ç‰%ˆÏh÷Às>Hm´_SF´æ¸/å(øÈIbðÙŽîÛ™ŸD ´³_ê ·8#ý~…ãl^FNñ%ÊEÂvçô¯k@L óñû0 ¬HÑ’^“˜e‰›§¶Ì…‚ŠD–xZ‹zHmV£'!ÚH ü1¶ëõC\è){Ù˜ª5(mýÃÂ{áû°:€®Çð"",ðÇg!ì“§3×ûñF€/?—ü³»ösË5{üî]â3ø…ßAN•f¶"òg£™ D?udnšœÝ·e}£êr_7 èk0Ö`±S ŸDœøÚ¯éÞ¯WëAÅÕeR®¿ í?mn(ã}…C{.£g¹ûPV¯æå§›ËT0Š‹Sž5Whn °È$SÜ]õJµ¨nV¿+•¾«ám·–ˆeŸEHÝoÝr2…TöQ‰KÖÙ¤.††éã›äÈŒrØ¡ü©`zá(ý¯Ï?Â_©äÅðDÃ9t;#¤ˆ²¦ð…/WtžÄåkî‚$F‡Ö±_eßUiÁØÝ„.l“Š+ß[zØ: ZwZV©[‰÷ÿ6a@¤5éFa4‹ÄëœU'&oÑüað‰±E¢kp íWO|*æ%ä¸;LDù"è‹S8 ó“’y86LÏì¹í˜4…i‚žu“ȯ»¨?Ò ói:O‹°¡¯¦ñ8ú‘*^ÄûÑ0úÝè7ÛGx0C9”á{*ÎÚ;Ï‘ì‘ÃŒú¨Hò•8‹ºÚhŒ"pŽ‹§»f^ÿ!×}3}Ëñ°û¢âˆŽ³µ™O²Ñ!Þ[êL%‹§:§ÞA|ÊbôÙJó¡…,3ÁÍåèTó¿Ñ}WJIä3×ÁÈÕ§A¤°ÆÝW¸Ú(k ì'zŽQV½?Ÿµòl"SÌéj«ZʵyZ¾WeæA^¯j>†M=ºËtw2}Ö¡âìnO΃ =ôÚ>$Ÿß¼ÚÛò¨+ý)þÉ^¯ç¿(YHÚ“,!œƒ>×{žÛmÑdWð‘Ƕo`‹hºà‡¸GfEŒŒ‡ž¿³¶¶×^;š\ëZ‡Û-f̲}ht~09¾Û†òJ‚–Óºcï¸ÿ|Ër endstream endobj 141 0 obj << /Length1 2104 /Length2 17225 /Length3 0 /Length 18493 /Filter /FlateDecode >> stream xÚŒùePœÛÖ cÁ%8„»‡àîîNcww  ¸»;'¸»»»»Ëeï#Ùçý¾ª{««ºŸ1e¬5æšs=?šŒH^‰NÀdY;Ð1Ñ3r„d™ŒŒ,ôŒŒÌðddÊæ–À›áÉTvöæ k®Ù ÞmÂïq2 k€¤£%€‰ÀÄÆÅÄÎÅÈ`fdäüO ÈŽ làdn ¡H‚¬öðdB W;sS3‡÷eþó 4¢0qr²Óþ°Ú™Xd Ì€Vï+X”@Fæ@×ÿ¡ ä1sp°áb`pvv¦7°²§Ù™~¥¢8›;˜ö@;' 1à/ÁY+à¿”ÑÓ”ÍÌíÿeW™88ØïKs# µý{†£µ1Ðð¾8@IB g´þW°ô¿hÿ® €‰žé¿tÿÎþ‹ÈÜúïd##•µ«¹µ)ÀÄÜ•¦wpq Xÿh`izÏ7p20·40|ø{çQ€Á»À˳7²3·q°§·7·üK"Ã_4ïU±6YY­ìáÿÚŸ°¹Ðè½ì® ÿ:ÙoÖ gk÷skc“¿D;Ú0¨X›Û:%„ÿòn‚ÿc3:XÙ9Y@[ÐÅÈŒá/zeWàßN¦¿Ìï <Ým@6“w@Osàû¼»½à`çôtÿ§ã<ÀØÜÈ`45·†ÿÃþnšü ¿¾¹ @‹ñ½÷˜Œ}þû¤óÞ^Æ kK×?áŸ/ƒ”º´„Í¿ÿ×'(r¸Ó}aÐ1³2˜þj2ö÷Ïÿ¥ùoþ#þo«¼ù¿7÷F k€ó_Þ‹÷Nÿn Ê àW½÷2@ù§õµYÞ¿˜þ?Àß)ÿÿúþ/–ÿ·Öÿ¿u´´üÛMù·ÿÿÇm`enéúï€÷Vvtx ÐûpXÿßP5à¿FYhlîhõ½ïã!`mjùß2šÛ‹š»åÍŒÌþÕCÿ9…wzKsk <ÈÞü¯Ë@÷~`ÿÇ÷>pFßÞ/û÷³úÛ|Ÿ§ÿ]RÄÚdü×à1³² ìì \áßþ±Ü™Þ'Ôèòwkè­Aï)€wyžü_'ÊÆ `øËô/Ä`üƒ8 ÂÿEìŒÑ?ˆÀ ñ½çIÿAì™?èEöâ0Èýq¼sÊÿAïœJЃòôΩö_ÄùŽ þ ÷ ÿ ÷Œþ‹¾¼³¼ßNV¢ÿª2ƒñ? €ø_ø^D†ñŸfƒÉø2ÿÏòtúCÀô—ÁòÙïØôð}?fv÷^}3W³÷‹÷OÄ»Íüð]ê·Àw­ÿdkõ¾ß ÿ z¿~@{};ýÃý.Åæû]¹Íû@‚þQ›¿ÄØþ¾oÞîð}§ö*ñNo´27Y‚þìõ¯ Ó?2½/ôò2½ tü|èôøÎêüâ¿ tù|èúGÁ{ªÐî_ŠÿgJŒíìÞ_ßcï#ôü÷» tÁ/Ì‚Œ¸,ªZî+ðœévFy§ÈvÔ©èÜìZ‘aâ¨*RýÖìnâ:?.o‰PÞð/¾¸5ÖÂ7Å*4?y<ëE+Nì4ÃÏcõŽå ÔôàÃ}¦Sæßõx±õPõýÙþ[’,ÓÖ‘Y>ýÞ¹[Ì¥¦§xi8hvGa·‚M á¹x’.Bå»¶oÁ4Y–aÚ 1´>,5Ú¹ ÊôÍíZÆØ¡d4 ¼çqKž»æ:säÃŒÛJ©2³};.)®&>ä Úð¹»à~¼$öœ{aÞrï¼K#OamÂ2ÝGú}æ” sÅpëú®*§á…6¦íÌ8@^/úvlUQ=†ž±fE³^8ºCË7 þ~›‰àJË­j‡‰EÂçEÎÉš7À4’†Ù‘OC‡ûS­íÊÀ`/Ý]PBÓý@ýàV‡§Z_ßgSg&j3­°å%®ü„Å#íj@ Œ´‹NqÏ yÜý.?1mæ22jr|èþ|ÊšéqéYVw.Û¶>:g錦ãÿæÏ&ûfø;áü<׌ED?5ˆ2+E¤#4k5ŠB»X7í_Ìp¾^†E/\äJ(³É:ÑGš÷EB¬kg®| LÛÏÕâ3‡þTµL¥ùkŽÑöq8ÝÈ~o¿ `7ç­ñþæmI‰ .æHõá¼Ì9Dp rC™= +´MÑ'£Ý^.IL "ÿnk¦ ÎäDYЉȪ> EM™÷qk¤=ÿÙ™¶XB˜Œ"oA¦Gê€'ØcAg^8¯ ·Ò‡+ô¦Þ‡¹ºUîž 1õãJ$Yêî$‰^ë@½êÅë'A<%åûl·u°®¹É‘-¢¡‰-RwË2í‚/Ý nÖïI–ÑäDs[>ÉWk¼”ßÃ^MÂVUœj?W¥L÷׎û‡¡I`ZY1¾Ž‹r‹(RW¥óh0ÞfcÓ-6ÝÒø £xËíµ«W1nxKxµÛ5ÀIׄùBTáÆwŸÙâ2&]IJ¬ûJð’Ãp·Í+Èf¦ÍMÀK3ƒaWi¥'£^oåyS}7 T÷ƒ5ÚG ‡Û♡Àè¯ŽŠ¿PD—gÉ"  ãªB¥@]@–D© ÿ°Ð]-$9 &éP FÞåÎýƒ­ žÄWu¼k¼ýhfV|/ö*œ¡hYtÎÔ™X”õg”ó…R©GÅ›/Hgto4aBßëOc‘lÒOóÕYmýÃ|êê€ÙùjfÀZÙl]]ee ß®>ß{ü‚Þpæ­¸¶+yž/L3øW¼c÷â`‹(HÜlI žvRŽL,OÉ*B`Ì“±jÅʪ'¦Þ¶¨ß•íί}q€/ŠT€#mͪtéL^Dw4UY‘.æv_ÈyˆÃÛO³M9üÒ"ñl&ûX;ë¾-‡@Nd‚”v2š±Âü`^—ßNÞO,s|hÕÍ_¯6T†“[fµlHƸøúQ?ù¦;+v-–Áä¦+Ͳ•L^„9‹‹@U€JIPša—§ë”½X(] gí.Í’»Ü}¨’¤i^ýƒµ(t 1l8X"X‡»â<(µ£[›r[OíÂPàÕ[Ê$ƒ ‡>;• †ºöú9ºÉu[fÿͧ$³J·õÎÀ!–_Žé(‹! Lô‚ðç/W’¤-#™¹q±Í—-H«Ò·&·±ï¢ÞÐph–Å%Ä’_ËPóª‚Qj‚Ÿ=÷T©~@-+õ/™ãÒfù®œ)¢a5`åµ6‹FôA·Ê§Ñï·JCMø¸ÜCåãèiª«† b÷]]+dV )Ë¿Ý8ùg>Àicl^?ùÛy›Å>6Ä:b]üø®Océþ ö¨p7ûCߛ哸š¼Ó„®Ê¦^eÆF¯f uñv_ZE” MŸ¡O·ûJñ0œo™ Ö¾ª*÷|VËHÈ2Z¹½\úº9m GÉ,ÿqWP i¯6ï:?±èú£”è½r–áSbt›ªo¤%¥¥iyGÚ¢ádYÄ QÃ~ñLüÌöÆËƒÁ&ìÊa/@ 禭j^CÁp Æ^÷ÛI¶½qdŠ5²[t,LYÎ^.×ìgét7\HÔób;„°¼ìb'Yá¶p1vNR ióWòXyS¼ kK6Wð`I¸(Q¹ºK)¸#ù‘\¹HœA§ XïÕIËlò½º{¹ZŠ…Q0µÅñòölF_)À+.f2ƒ9œù¤#œaú§N!x޾n7ñ¼™ pxWúK­L—ÆÍ&Dzâ4D1z­/9Jó̆Î?iŒE¹§²ÀO8fŸ…‡«Wzˆ“ˆ¼¶K¸iØm´s]pÑ46ÅàuWXEÊG–÷c1Ñ>gè-7Æ‹ÕÝmœøP ZÖ£Oœ2é/s8Ò_9Òœn-?^}å>§õv¨ ƒ5W¬eº@ö3&Úû¡Îö㢩1‰ºŒNï'¬L_­¢#ê\T]oêQ'ÒˆuHܼp lœ.;Òðƒ¢“nç{ éí9CI1­4„Ê„˜»ŠùIî 9ÀÆ¿ÉO‡KU‚gNqç´NÇZúŠ>RB#Ì—½ Ëç^ßÈ3~-í|:)ûø¼FÝÆÓ›Ÿ·Õƒ€^ ißžÏÉS'…$$¢¨zm¶Þ:ÐM†©;*š’oíÞœ@õ÷&-þÑJ<ÁÂÒr'Ï9Çy¬aÏ N¡¿UF€tl·¨öÀ%û3ï¸ß~ê¦ïg=!?´‰?bª.¾ÚJ 9óg´"K7„]Òifµ3ôjç•ÀÞc9N÷œb¹ü ôÁµ.jQ4†|}×âï Up!?µâ:ñD©‹—Í•±."öue·Æz92úþ¹AJdÊ5²MRìQ°4ŠI³ÇZvy)Ïý7=è'¶@Ï–ªùψyáwóÁò×ð£¢à*"ÙÇW¯ßϧ¤üÛgPÄ¿ST×}×TàE‘XXw ËÙ~‹Om×*¤bï&o{Î4µNC¬Â=Р˜^2èü¥ÜuA¡nç=½–Ä`­g))……KÏ_½—94ž _V'‹ï.%Z·¶t®û-ÅpµÓúÐ ëD_º"GvÉ W% ¼±Çý9ÍióLzm¹i7ûKì5S"©7º•ÀÛ©}FgïÕ¥µæ$uR3oÑÝ ýÍ9(Ãß=Úu–HHˆ0ÜÛ–^Í[ó×ñÁ.#¶5º¡M ©½|¢1)Ý„ömÅèt ¹4Ío(´KtDF¯”ZŽýGúîø_4&£}n®…Nþ„zÕ‚nåƒÁA×Ì|NÓ-°Ð‡W-7sÁ]êà9D¸3¹VðñKÁ8¦Î D0ð°÷ì;¢pü®J:^Ie– ÁÙƒÒX8Âø4'"Ƈýú0ÑŸ~ˆ+k§E"kZ!~&÷ò._|Ä31=aÔžk¹—Äf1>j ³^³.\=ïÞoˆkO•hAß3Å&±ÊÞsÛ|ef—l|¹ª³g€< ûeJy]ä‚©@‹ìðU«|“c$V̾§Á—‹P‘”S‡ ƒ<äÑʵœÊ¼7ÌiàÀ¢óV­0\º[QP_QÐÀò÷‘K^æœFW5«LAÔÚîéÆY zdsJžwáƒEnàzÏB‘çªþÏÓ#arµÏ>ýÅÛ³ ê¤Ðâk{(ùe-pÞý3ô Ÿ/øç­1Kìâ?ê][/ûvÂ"µÉ=o9È~ “F²ŽOàû ·Š¥«¸dŠS畎ÕÅ¡OP9~R(%¼zÎìþÕ±LXÝÿõç¾åo›è O%ÙÞSTíA¿Òêò."¸a”p)uo¸¶ $«,ø1\JjüE(ŹG›0—l!"‹ú~~S¦hßÖÕ7ht×Eè"øLÏ‘YŒô‰·…ˉ¿ÁŒDê=ü çÞ®½ôŽÞ”lpÊB®öÕY&']€)FY¢2ãóeMâ PÂyÁo>ªì¸à-ÃIƒK6(­õ¡ÃHð6 :°©×ÊP^FAÛÕ,éÏ[k¸[,é³xXB8á—ë7QHXf¾x¯WíÔ>gÝLÉw»ÿ̆©H<ãµ1Ø×Eð7;’û©ŸVš²esÿˆXÆáèºLjw¿rçoâidÛEÃÚáêEô²¢3“öˆwß~Œ¬B[ÞæIµkÎ%~™Ù&ؽDY®”ó=ÀUm{µ‡ÆúZ긿ÞM'ƲqÑíæŸ˜"®©M¥râ4ßF€4î¶¥‹³>$áJæ#«¼Ùð‹…§\ýh¯Å C2æ‹nŠ%àß|kNœù‡¯É˜ÿË·Eú£”›' Ÿ>+z4Š¥­NáæáK×gBöX¬lD›Y¡š²«ƒ:Ý_bެzb)0÷u LùO( ß§^×#†7Ïá׿„V1•Y‡è= õ´¦Ù5)6å4#Å,ì×á?“yП×l“ºåf-Îuî;j†Ú–°³=(d1ð[Ó@5w,õé\Ùîºl8;žDÓ°ûx€/|s˱hL£˜¹ˆp@E<¢+þA‹AµÙdPœ;Ðd¶9Æ©5]àø«´‡Ã)ƒ€Ú­,Ud Nºíl:ûKÎ_kÂ%϶Ï?ÇJ‚2þ­Åâ#«tA±D»Q§‡A;i´›ð&ºÊXççfšÖ—RM®Ñ³½î±ÜžT¦ß—u–Þ Àv¼>p}Ç{~ˆOP¥Ç„˜³Ë!ûµÉ½º‹lx§ é®OúçYhùýHaZ£aõ'Û†EÒs:?u|86 ÀCÌrÛ5¿”6ÀFó´¬ÜàÊ ÛñìñvAÙ=Sûõ&iÇ:Ø>2‘њٹ’O³Èí*ÞEL-¹¤ÄŽÜ¾¨APûyÿÙÅ>ùä‚À¾$"MÉnÈïÆfX´E4Þ›xÙ¬R6§j¥Oʨ¡$K8åÒ o_F N÷øRÀÆ(nﺼE±UŤgiiö°ì1KÅ^s×uŠlk» nÁ;÷ ”>LÐZ;{¾Ð"„hÊ6ˆ`Ž _WÜ!h D(~Ö¹uNßž³´LjÃÿšw8y}ÕØ`ÕÂõÒKqéˆð‡TI÷§P©ë ãGQ™ýÈ& M˜°·|ûõ™k@Uï bàëL>'µ£'ÖT6±û<&ì‹Ê¢[ïÅ€ã¶hª äðBnàüZá •È¿g•¼ÔGgªòsSô°!LÛi®uc ’¼ÆŠeÌ3Û>„¼Ô{]# ¼¤{Ôq™‡Âx0Änñã@óÒÍÞ#ÐÏ3§[z¦V =,ËǤxƪ¥ S€å,jö\ ¹›7zV«Æ¸~>öY2U{¹‹ ìó%–Ññ"ŽÏóŠôC›ÓDoŠÀžÝkfyûDù+î°¤S'­¡8ÜemàXœêê©ð‰Ï) µZË«<*ê\Ÿ¡ü—øŒhnÉÖ«àNd›—•X9ƒîý;jÀ#ŠÓ‰»f»SkL÷•ZV¶u ‹Ôz`¡—(«©Iß¡Kï÷©0þÇnêbÈÙ•ui¸åñä‘cÛ%p Káé3„øzÂÓYÀÙÜ´‡,/Q†_ÂR¥¾|¢ñ•¢Ã[QËSÚ‘)(£ðïÆê^~Ä®Ÿ9cž—gïÀ® 8ÑØV «@‘‰žÓIî ÝÌ EÓ¹`&ãQhÜÝôÚ…4ÓÝ Ø:>®ôÎé#Yìs7ηqžÀ34?$ÁrÚÅŽ¨¸[» y²)é\ñÊëm`ù†Ö)Z”mòdµ Âîä@¹/jrlÅôƽeŸø‰öæöt?•cïI!”/ Õs“9,Ï63|ØU¢iPë@Òj@Ï !~$1œb„'ô{@áŽ,&èO‚’M˜mÁl¿Þ6Ý?˜õÏ»‚ Õ‹³(XoîÀûlÓ#›ia ‘#ÁýêÉ3Ïðx}½Ô:¬ù‡’|¡ ')Ù ¨Ù,žŒÐ;M•lŽõÚÇÿNúYÜâ,ûü´nfxâej± :/\y‹ß¢!—NßRá»<‡Úo|h>§ïõ‰šu‰¾ˆìì «bCd0œí[IÊ,é_¾•]4£™_.ù7ˆ×´ã~…o¸‚½ ·Icr `(\·Îô‘ù°kž0)$|-jÝòöcÜHíýs;[}Œ}›g q’X+ïc=ð^ ¤~nS–çIÓ½¸Ž9a`tð`BþÍÀyËÜ •Šžš5£z ~Ñ‹ŽÐ2AqÕú0ªam{×v‡,d[,~vÖOKVƒ±éá«»ƒûl"IŒPg&›•Yrˆ§·¬³à Ï=Ó·êfî" žŸóëjÆg{ ½oqº úÇñ.Ñç_CÂ8vYJªä*RoƒÙ½Ù­YîNå©•_ G{×ESâ®ýx1ª\ È­UzªRƒ¹œ’† ]Èv 0#ÄÿªZéßž8…Ï{à@7c(ÇÒ\O¸_®Z­ýVovV-‘TaPÃZ_fÞËnTV ~*Í«Vþ$·.¯Er‘N+éôM¯lÛ1„„G _Õƒ8«†èÑ'±r-x-„/ý8ýÖ+riq‰ñƒoAåh‹jîïºÔŸz©Úñæ“$¨$‚»Üû²Åúo‚4D+Ôàº%Aè“wìLö.£®Þ¾dù°s˜Ä8lµ=6¾­©ÀpXT1P§v,Å­F‹¨ùŸ=‘…«±ý,™õEµ…oß 75öòöõ°m×´Œ‹Žt¯- ©´(>É+€™6$°¸1üÀYo]{¦²!3–½•ég ‚ü•z"%v¢±D $mšè£À7-’"Ÿ6rL¸~Ë Ýv½%ÛPäo‰ý"Mé÷²yýùEÉZ­ò-XÖ0Î "}¼[–´ôå:«|Ì ‚h:íDò0¶¤º[›²ÅÕÉ67«+Ï(f~ÛŨ:zÝ+‚ãVϼœô’˜U£ÁÖ¯Òµ;,yr»*W~‚ŠÙV/aYOk6ÎH«Ó^ù>Æ#6Wƒ!ý'x«)-Ä»‘ŸÇ¶~I¯Ýâc·+Qc©Oègêíô@@íkÜÄCê3{ÞñnâqT5g}o/¢té4!°õ u+ƒÄ3øÞÐ6uÓæM™¹ÝŠkL(–©'1H \Ï9`-Ò"8¾,_I=ò‹‹³2ùX=&J®€OÏÚäÎi†9:œå+:` 7vo¸¯ÂàÙÚ¨IûÙËÊÓ.'¯8NÈ^5ÁäC`miW¥+Dþ, |©ºatå–`D›ö„ $!œäôã°Ý¬%7ó0ËÀnÀý^ºý'~BÎÓáBP´-«hÔ:ô…ÆU ÷:ìÃ4ÖräC³u)E©›^ IaS S `7Äê ¡ÇÏ*(‘åqŽõ‘–$€d~:\‹ªYviïD‡OIEaãg€}˜M)V‚Ú” $”å ­²zù¼ yÉ”][~|H6¾u…>Á´/œšbCô—m551¡ˆ[%xž,$b-C/!«'ë·àx3‚öæ¸Ï¸Qyî€vHŽA}'èð¼Câhy²‡b¨…,°aAªÜ-[æ)Ãü™}Ú°èk#±îú aë3ý1˜F§-i‰AK;Ò‹½Ÿ¸"1ÒŸ4T/²›¾–€,§—6ë‘}³ZàãÇ÷ \ÓA¢N_Ó¢nôî{sn?¸z†îâ‹åØäÛ¼Üä£gü˜Ô×°™[Ñ×#,§L>âÿòÈI!C/(HB'gv_õ£ë‚uÉ· Îù '?Ž:><ŒºØa°'wÇM·ÊýJá‘úw„¡øÔ†;€â4¸.ø$.ˆØD1N©É±ô¦Æga•‰ã@ –xþÅbV^H1kúòšmODx¥pû4 ú°w˜ ®œVcŠis¥“ûVÉÂŒÍï záûQJêåŒ4õ˜êç’>ÙvÞ¤Üã+¦/¦; ´·ªHéTn CXXŸ¦ß`p‘Í¸Õ Â'qNÆÅ„M'мÒ9u£bò}ðá4V²ø%«ÅCÇïøZk¯‘éT–·ÝìKªm'é(µèòûTTÚ×c\-ö°p%Ö˜ºWn;ò±@Ö*¢E0ô××h†d9†v‘€ü8$Áq]ï Ȫ\-¤«7‘As# FmM¹(ƒ`Ó óT W=ž ~ÛHÙ}éFöí¶T‘žÙ€¤,gñV”}ƒ¡MWHÓQ~(“c·0Xz¢ƒ™_Ñì^§LgÏzR‚-X0?˜ÑbuFÄ&z\_iC:·9%¹zº19Z¾]^F Œ9‚´¡«?kÚ$&Ÿ09ÉŸjÓ…æ…Giô’§¯oz§¬ûÓÅž„GšFOÎB]¾²¹Hg`Š Zqkù`[\ĈO40lžÙÖ³yã¾Õ+àoæÐâBž•Ô,¼…}e& «4 µ&ÌM,?¸³¢èHÖ4Ó°,òå ds模5å%¼„§â¢ÉG;*úYg]Zŵ 4•癕©±¯/)¿Ü„9ì×…µm“®/Àz±§Í‘¾oº\iOÜ^ãØ®[öq“Ç‘–ÁËÉHP›>þ¼Ü@}D„…>*³øENå­{ÔOÑóµwÀòüG’0£ˆun–Òbá šƒOxÔ6ËCÂa|×o6Æð*Ü—bP>%¥ûC%¤ÊEA1c‹çÚÉ™õS‡ÌWÙïkËÈIüö]§Ûîð ¾ úŸ2FXZôy²À©ÔÄ¿ç8 «]™§^p$jE‚‰véÀfJ»5qe;E[Ò8¢>„Þý6m 7¢Ã £JGâ&óä ˆñøþ¶çxˆT*)æ]%àHmøI-T¿”˜Uþv‡=tùÁJÊ—³ÔVâ%Ä(Âd-£¾±/¾èw*_±B¢ÃÖ<ÿWŸ’³K[G‰aMKÐò¨gÍXäן£¬´{ôÒ8žWß“[ìx›ÔžVž’g;g2ïõ´}NH°C§_ÊÕò'N¦•–ˆŽöéå£ xTëåó.£žK±e¡<ÄDµâŠÂGoÍß7½¦»¾*¿`NŒÆ-z*%gXi·,ÐÛ¶˜HÜJ‡|GÍzg*Uƒ²wÒ'[zœÔkú®›KðG¯=´qYÁ¡vù$Ž.Rsw dFÃZi™Æ>íN³ÄÐw–¸ãËnk]`ص?TQ6VÑ)mîU—P™ÀÔw+ Àq"çH™ÚŠ“=x0Çjxá·DŸ™Ó#\. JÎÁ\ß›ºŽs[WJõ†Ï\$Y§ü2%=äf’RzÞ’©I úqûñ²òa_dñmŒös¬÷¼\X_¦îd¹W µUÚ"-!Äú3´ f}¤žÒ´A» ©Z¸¸/xe-jš’ûçšól¹\¹òwÒ28sL]óV½Ð¦çF0Lo´òÉòé³Á`HïüÎçõL­&jÛŒlSpùêÜ=Ç`y¹Ý8ÃÞP¿Uñèí€ï×L^@þäÞÁ§¥×OÚä¦UŒéÒY¯ ~…#Ÿ ¶Ž”–)Øêf3ﺓÄÊ<gÖB „þô ¤UÛ-<kAV+èÍK–u/çè”s^ôݤí% ¯e†úÚÙà PMm·tg“Õç¯{¼A_[×ñ‰æcl$z¬w¡ºdðÃåì-úºÜÙ'âÒ÷Gðp[Ä¡õ«TÉž#|s¸XÃq5²9‚ŽÐê!AäöIð~ûqÞºšÄª®àî¨dù°Î8RÃîñhÍê?SÛð#†Þ€J:Mv¥an çΕ‰%c¯…³&}¼f§ÚÓçw«;ý>o·Êw~ÔÁkéöDOÖÖ‚á?ø½e×–àyw#”)‚ª‰¹]/¦þ5ÏB.°ï%«#úN£Á÷W£æ§D<0E¶õØÁˆUÊë4R„pö3"ºŸ3·"o„åä'·qÜj R›aeª–Á©k6æ„Sûóø‹æ¥¯ ø67˜{P,ù9¥f¯ÅðHUý1q®çÆK2)A]Í»z– ˜ õ®~èÒÓ Þ^öäK&ܸÒUû °FUƒó&SDNû©›JY®å@Â€Š…³öz4Eä7Ë&ȉ»çyNÞK‰#RYíþضÅ'… ù H‹Ê! ±¦;¦çëȶ‡æ{-ert¥iþH{¿erËÑ&*LÿÐitVwC+9£ÎáP÷ƹG¦T‹¯ßÁ„™bÓM'¶“ÌkUºlM‚dË‹H¶ÃÄÚžÜNUm“äA»Ð:é‘%m!k‹îÓ3‚IOítf숫%%-¶£3î5M·­óq²Áº¥Éz¾ÚêEvnFô+d¦'ð&:JÖ#ÏÄrLØ··¸5ûfÆ>Q‚ùlΘGÁýö&þHW§°ÙQÓ³àïc;ûkÝ®{º$æC¥¤L‡Ú%)Ènº<‘ ¦h>¢@ )lg¬”*=öE ¶C`ÉLQF>DãU9¶ÁáÌ#R5y‘ÚÊÉty½µÄkšmúyÊòöÞþSÝ[œn‘ )²ý}u)„ôž¶Á¾wö¾¦/cëÁl¬eâ•UbÈNËÜ~´ †3|q‡‰!61‚q!Ñ TÃm†zŧªõ£OË‹P±DÎ9{VšÑ"§vË&F¢R\î”÷?¾×vó=n1ø]Ò‹†ެ!ªt™e‹§>¶ƹ )Ä¥@S»ÙöÆ`K¨´¥áÈ ˜`ÜIp¢ˆÖô™ ›±Šl†µþJ*€·–7êÏü¥0á]î¬ÜWuKX–]Û:Ö/ uzIM0’Òã:ОÞëÓå9¾B°:ëQzÃNÛŠ /CJBݯØÊÖHÃ>BhæîqEö‘óÚÜÛž¶NïÊ­®ÿFAbI+÷1 Þ‹1ioÖ kõ51DZ$žî¥xpoQ±êÄ«sH=¾ F¸=o8è= _Ÿ†iwQ·"gÞK ‰qÑDž«h&;‘nVr ìPñ<€½k%áYo™¹QËè’Uª vêTð)åìÒD&Ç)#¢_ëè„4këMu0ø1V‰k©¾‡Ï#×Z8î–ä`@â³¾çQ™¹"áÁˆ')5®®@Lùù*“yñ<®@R …q´H:Æ-Ü› Û7Ý2ôšâ÷fܯt^†•õÞaT[ñ²ø3ãûãƒüÂÊ{XÁEפÄäŠ@†€°^WôJxPé`jí†íƒOŠ«ídÔP­AÒà¹6À,o³%>ív>‚K¸œ¬ƒe²3âÂM:àáö'ôsQØfNïWÃ|Ö/n cÞ0a7íÂä Ý|B(ä„ ,¥ß1¹ºèè†eî?AJ%-úì¾µY°Фú¨TføÃÖ²Ë<–需tÕÌ&«<ñ´L¢6)*Í‹Í)Êà0ú‚ó‚² B/‹–0µƒu¶¤ÜdÃ_ÂÃ_ŽÈ²ãs˜º+Тë‚–45 w£†ÆÌ)â°Ó\†ù"a/”åOsãá¥üŘÅ&=’“ †Ï¶ìtbš§àüýj$¨`¿/s- †úþ”Ï´Lçbºò@óù¾ž.Ü+°f/WºT.ŸÈ®Ç¬(•ÈGâ.¡µK”a.Î4¬‡‰X[ÌóÅ1ij4ÇŠÅ PèçR/>TUù5,HÇ:¥l„HëÆ…+‰Ë&n›¹¢1õ8bH©hä÷gš""1*¹o¶ÈGkYôÙIqÍî柪–^Óœ¦95"N,ÐÝr8Ãré>VµëñÇÚi奉æŠÏ"nìUò²I9Bh¯Êö©£%×¥VÆÓžù- Ϊ{ãʧÏ#¼žÃ4æ[ò·ÙK±–ÖÇÇV‰ïEXU»iiŽ$©þk€ãÚí¾ŸÎ¥×#y¾çc7(x¦”ášÃÐgÔIQ­ûrþIðy`"&ܪN…uWaÊ÷fÑ+"§RÕIªÈ ê%áŸnJ—öƒ/Ò˜æHöfúÌÖÃr¼¹Žä\:ÚS’Juóìzç8M$Rù€Çe;ùüdw™ÐD"¶ÄY\%}økK²Ž0<”Ÿ÷~£6mVaØÓøˆÀô ¢h4#%áêr=úÕsŠ¡ùà]±ÔÕxU}ØVB7NN¸S7F4²§¼IÓ’¦ø?no3jMË—ë2þgŠÀå^Þ~+X’ÓȪI“J •qiDë—kÛ(yÇQxÎ…à.x"Àd¢Û2á^y8â'\F +6wKªk‹ÅêIc?\¤ÅsPúa7°ïwb7+ §É¨¬™&O¢I(×È@ŸïÄöž0˜Åütë’‘ìýhÌ^Þ%þAªLŠæ¢fãíÑ=´QŠ*TÒò"ÏæÂ¸ªÖëØx»hH^Ó¯R9ØT÷ç«"ƘŸ­Û •bñ_–—7Š•§¯¹.Õ7ÙäRoUŒ’;ù,ü,Ç|ÖÈT•²éâSiÇHAŒ‰qߦ‘YÒËŠ’aZyÃXâÓîOøz"}¹ŽùÄvÖ“O­6¥vðñçë1.ÇŒR®ìÀŽoy´oMªšeé?êU þBšêeÿJ7#‚þ•b¦S>NïðþSÙ#~ÔÁ  I¼wŸlZ.^Ì÷/f8‘L‘:Â:…vÇÛÞ­5u]êt4r,߸ T¶ƒ*˜0»z\çÚxyžZ·<>Nµ÷THŽÔú´¦°}Ke¼QCy™KZ´gpψpb\dV“´Î¿ïæÃ–Rú´)Ôu€3ž`¹»4’EW†D_W&KdgÜ­´áfd_ãÇ¢‹Aµ{uŒå×xvÞI£ åИYÙz=Š¥À«ù±ïïæíóãftÍÇ.uÞ/ÙÂm”sΊ ñ.ÑäËáJ5Kr·ðP9P‡JCDÖËmîâ;h4ºTÙ’B ÞÆŒ1#‚‡)ôC².b£¼\ù–« q5î´À)…צ¶Ÿl|ß÷VòÊwB¾ÁâÇ)ÉÅìåÎäœ^”¿ ”âÒ ¹,øí‰&‰¬¬±ßZÖ³a` Èïá±à~¼V[¯ž·Ê¬› ¹-õmö^ØW›’"„YÅ/>8bR/êlgA)Ø8þv£1“ÐyÄ!Ö9§ŠAks:7Ñòæte¯ … ûsŒ§òëÓŨzûq«û9Œrt.s"Lô»ø‚Éf×5‹Mv”!ä1Öç.ÎÁµ|y´oƒY~%,F`ÒoˆµJ+ù¼PÁm_ÇFí7 ™wÀÙ,ÿvÕl!‹+Â/`-¤Î ÿIÜ%³È _yUóz–c`SFíbÍŒÄ;¤ØrÛ¼ ˆR!âÆÛÜ£àj~ññ÷‚ÔK¶jOŠ8‚_hWe1èM‘t99µÚÿð­‡îršn†GO‘KCh©|/vÛãY€¼ÙvBÜz“naõH¥¿«çkÉ#ÛtÓ¦ÎÝrThc¯B}̱Oâ¦nj\ôÔI9C¹E7‡?˜’‡‰_9Eàâ˜ËÆèãg^úRœƒ¡çü!:ÜOOå`¼/IOKÆÈ9Â.ꇢó™ÒŒ9ƒDDXŒ!›Nx$ñ¾Qº‡PÉñó¿J(dÁ¥©J1£4)Úï´T¥qf¿fkŠšÖ<žË^Eš™£è(¸èÙ4ÑöFôM(©MÛËÖô(_Kp±ŽÍèÏæ³­ƒÃb“̤x>×? ½B`hK\]}äÉÍA<®Ì¤•~VƒéÌæSEÖö¿L>!¦s¼ë5 ?ôòÝà‰•7¡ˆa„,ÛŠÃ!ÀÁ™ þ1gùÙ‡‡V„ð´Ü™¦›ù#£#Í­öÐ޽VaÌŠó§áÍ´rè±ÑH1ãÉÏ¹Ž¨¦Ñ2F¾`ù…¢ °JÁå|¬T{讈J@o í½°ô¥z& 4#d7QV­ÄEÑV!yºv…ŽèÖ’”¸)áTT×ÝÀòÙ”ŸmâÛÕ ’ò³GïGµï\Š`[Å)ó„Ô(Ç”—tzàv¥OµnJâò[*…Þø´• †=øñ~¯¨Ž’òçEP,uO—ªœ{ÝJÏz_˜æžx¿©¸+A«`ɸÇÀ'»œ·\å¨Ûó:>ø+œ¯þN•Èo·YÀØýM «öí—åa¨ó ¬,È~.Ž‹›ªz—¶m¾;`ã„)¿0ÖënÇIöŒMs¯X —“Ø­\úv»×Ë)Å¢çåÔLcâ›s´ƒMä%ót]¡_wrÅù€ÕÛoÍ=ˆ%J8WåbÈŽ…+V§» žîz‰äáIŵ ŠY5CÁ %Ø9.k^z2Ūæ`Ã#÷Mñº†¦74Äï,ï8qí'Úá2ààk~”Éhh‹ŠŒXþFºúã òYWuÍÄyVÓžšû ãóVÿ̸ü0D2qËÞ#å’»s P¶ž·>5F pt¡2¢Õfùp&ïu«eؤqÔ‡[ÁøË9°-1ïÖ™8å<ðÕ$$>Ú>ûâ™)„Ó£Ö#fªuUâŒqAmÕ¢9-–Ÿi?w‰+®å½ ˆ<°ÁãQËPÇ=ñ“ƒÀE@æògùB€x2ŠG_pãß>?ò·ÚKˆY«ƒ5…Ï<+wt¸æFè­­ªõÓv5ùíÚ`š©_Õx•àG[1¾ÅWÝSNº)©\ù1n;8I‰ÔŸ$ª£hÖÛ¢h]šlE?bûjë)kØÍÇ›{Š üB`´ªzز(HÇÍÈõ4<ï©~HГ៣ö»%zDAÅb“ú’Eë†6WB oFp£Ÿ:;]i‰í‘†€QnJoø@p~ꇸ]!"ï,oÙ¸# ÏÿŒSâúñº°à BdFá &°žïRˆËÒb4; a8¾–.Û¬“U»„69Mâ «ù¥Ãùr·ëéæéÖy rÍHAiûk+ãmô)Á ׂ®›“DF· †ÉÖ/[]Ïáý )äÜ |f@íÙblò0ãOÛêШ_U rûk³¹v·8CNIŒ‹îÖ«ÒÓ¸÷m¯?õ› †Ëžd;&!»ÇEÕ”u~ØVÝáŨPD©ÑLÒ$Û†2Žôs±3Cƒ}»P$TåVHsŠ,þžÉÄ!gq<ý “èobt5°f^š»>É@QoXHÀã z°”h uç?ú*Uƒº@O²˜X“¾]WÁƒiÑ{)~ˆeÚí¿%Ãdé£È}ñæÄS‹ŽÉtÔ[Ô-l¢"¯•'u‚/©š§7¥ùRGn XÚÖUÜçj ç͹VÃqË?Ï'+í67ô€ Ö6Œ¤ömýòz^iÓu¢Ÿ ™hJhG³(0&=ˆ³¥¾3`Rka]Bµ±!)N¥Dûµ‚´Ôq"ðEàtäq§Ö™BßPt—*À¿²ð‰žú:ùÂ7÷ƒ÷k­‡j ß Šk% „Û4GÕÕKÎ÷b[ú¢P¢URÇ¡6œzÞjriHÉÉɬ²/7&_ןa©/Î%êÿçÔïªæ íØþ>Û0x©vJúÞ þõùç?fѢ㤶o ýsã-LuGØ1Zœ8‰Àn5oLIt7çD^²ßÀR÷™ŠÄ÷ú” 55ñW~ U&:§Ö!…§ Ÿ\Ldg@7äóéBüí±9ÚÜ0Áh &ñÔæÑÕ]¼¼ûrä+yù…8eÎàCüehùê[ÌAèkþA´¿N_Ù3IÌ óYUô3·NÓœËnäxð’#ÎÕ«±ËMïo¦I¶ý]yìoyÇЋðu•6‹ª%ôK­úöÛmª, ‘»?ùÖâWò?.>^¤:ˆ~Pó=¾íFRû- 7•™É„:;* l3Nç5<¦eèÂùQ‡"'Ô"§îj·,šæxÜ­?Úº„iÞ†w½3InÌiŠ [ê°•~žÐ «2m~ŽàNÎNåJú™2»;ˆFÊZ£s^Z¹4ÉØ¨TÁ>I¼Géœ@’}2vƾ‚â…S©åòŠe>þøÅ º1¯ÂlûŠËÕQÓxòm)/´õN ï‚d4_Äy. ØÑi(Œ›qÉA'…RÛɧxæìêH‹°E¨ó¨2=ë{ô’y! ƒåÉ…MD×ÄÑZS©þmuû@¡ÆC¼&}Æ­ØÐHE->Í÷]êÜ1Ò¨û—ÝwH¼Ù¯ t‡ãW86ÄQ‚¾¡žÔ*Bå×ÛËsÁÀT û$6¼,õê󣋨xЯ‡Ïd|^ã•0 ÁÈ»V¾•Q„_Ü÷\cæv*¸µÿ o¿Dü¦$bI攢ààœô4¶úÀ\>›…àcœ”dqU¨–ÝjÀ—sãµh¬1?j¡vœC^MIÜi߬xà‘ø©EYpBTã¦Òؤï˜×ë)4­[Ö=Œý…ôà[KçÆðZµè~áq=–ÑÅQ0>ü™›Š$á+ŒrE.%4ÓÊÒC‹û~‰‚š¢*I1Ae¯µ2Ž(oŽAˆrÞÄðjc©ãæzc‹”RüŠyÝ2N{¹no®ãµ±¯™Ë1?ÿÖv±Á•Â)Äè÷ßd[.¿*„ÃG¥æû[¨Ñ•îîÒœ„võ^qŽ$½Ð³Ì·‚5PÑ~jù•´aÜÑ*³PÉÃ=Ø»à\¥Qí¬­„q»ÈèŒA›Â#E‚šö>üNf·n»u0RüÖ•ØZ¥>Sãw«SÛJª›³ wŒ ;—>Н|{æÝ”…|©0©:caçËC e×Qû1Zåf£˜€ÒzOLD™+¡OÜå|Å4Ê3Œ¿ŠSÑÑÙ6Ï¢eØjm‡ç„N¤Òã|SêX’3ˆ½q.=‘~GÜ*-9î-±;sR"ÌŒúú)eÉ@k #¡Þ5aÄl%C_ìÄÙ† eä…d ÄY4Ó*d—ÞOõ„ûÊ­Çí‘wÅKÎ^?žf ðdÕ&ÞïÓúáê×Só\eвZÁRž¥øÆþ’)2A4úk5_âdÛË|{m…_üèÚ,¢Wé)^×Á–ˆa ±oUÉŒïHçjŠÈ–và‡b!”kJÁ7“&QuHQš2YÍóoÊ=ƒGJ$Eû”·Ž ì<>R÷ÞƒB*÷ß.ëi˜·Óœ1¦N7:ÈØ ¦·ÔØ É·Õô¢Ö£žD(Ó&ëTñ¾Ías/¿Ì·àÝ–Ž09FYÒibÿŸºEùž¼.®j—"‹GŒ±™ç¢£;Cª“‰ÜüÞdì þÇ¢gèso‡]w- -Ç^“ “$«7³ë›f]¾Í›tP!·¾5Ð=Ùµ&¿Äj>àÅ€+<eS¢×’l`{`!\Ÿív…¿H†, 4?€Á^ov‚¸ ¨‘³þYtÁiXí‹xfæÓ cí·"ËåÂ{âsñíâ;¡6厬¹˜±Y¢à3Ü?*Lfä Æ>_X :èwaÌ¿ÒB¶c+Á %wHYKüä‘ïãk#Ó,üûËïp¶GᡪÙn2¨N{NÑ_®5-ÉÄEŽœ ¾g­ÚPCµ~Ö'ïëumm½Fü6ŠZ¶ƒ!E·캤¸ë» Æf~.e‡Õ…µF"ŽIoJâ\¡Øª"åü6ˆ7#멯Ýå 8ʆùÜ1œä´d€IV×îm>mS¶öt$¿„‚4CÒx!>5„”±*,¦w£¦sÝMêʲ骾ð†ÏcÏ|)<¤Þœ:¤:m˜1Ó8aA#ÏŒåWÐ/3·ºj,ß÷¦€˜Gí&Í~Ø’ñ¥^~çîl^ûp»/Uª…âNË|DÍ]Шu·¹°b¢|>AÚé:V :;oh§–À´@N—L#wÕžåYhëm)ŠÂÐĶI}M‰IkyÎÎYŽÓí+ϻŖ]í’jåR°tá‰ý+F¥>ZëQCrÞq–î °FE©çFAùT©‘½Eº&pI]äó¯ÑRu_q/VÅÖ#Ï’7dè¨MÔßïÀ$hÚ5%4_0ú¸„Ü6°…ÿbÌêTPZÊuþ¶8Âß¡!Hu Zv¸5Ƹ¢èà°êÒ£¯šZ5¤[ ò¢,óQ®§Î°rp¥VÑ?5N¯z§.l¦u¦V/üPÓ;¶âÌÕÞ_u$—q¶œþ½ž¨?;…ÏqÂGÜb[œ–£)u ÍSéÓïÍhSxrê‰ÑÏœçM›G $QgŸYŽþ Š¥ã3~ Ë¾_{ÄÉÀ½¨—ïÐ4¹WS˺jà ½ m±þ¨|”WhªÁ8ùû^›ìŸüœðš@ŽlÁ EôAA™;Uèë SŠ1ÄO_ÙÓËkºsÔzëÜDá,$öþÖˆËsÔÛVÇËBª »>Ó8~éÚóÄ”£ÀQg’6º ¼QY·¥5PâŒbù6þ¬£»^Èh- j˜å1hçÄš}a^¼‡‘И>ú+×|ÏGmeñ e^*EÿlÛæ²z]òÔÆ/òþq9y0xÈåc3¤}«uSq »cùʯº<…õŽ”‹~\³ >2@skOΖõæ:™#—†],ùÁIòumÁ"‡ÐªÐ¨Ï—LžVÝåª2óG;u W3Sÿ`k6 5Gj°Dº0h8„]ô¬8$|,FÞÐÌת0©–iD–jCÕž#–)}Îw¯¡Ì©…:#<¿¢´’Ï)gGÅwÊè4õÑ!3Y25d•YRfA‚áe.ã¦(‰0ÁäÝbÝ» kLW;‚£÷Z¤tk×<h1·W0µ^9‹ËÓNÙ„îÿA'ÜÝ2VºÕ„TÄÛÁ$|zw"$l`ã³`… Ò’±ÔF¿µ'GÒc%²¢^S‰ƒ«Œ6üͬÃ_Ñ÷¡Uðƒíš¶Yà(C_M–~Ò8áz^$v:)¬Æ?E?ÓRÊÑÚjo’º1¦¨l_âŽóé\‚ž1rô:Gl‹X°Ú·ˆîùòt fš=Ûü_¾W«)â+Ø0/IíÃÙ4£Š6ò#Ö’Dz0¶›ÛÒê 8¨}«‹™qàk‘ú¬úÕ[îç|†¾ažc2ó™ø’†"ˆwæt\ë/î„$í.z¡x¨3_“…«˜„ú!&-Ð ¦ÛÀÈ–«‰+1 endstream endobj 143 0 obj << /Length1 2514 /Length2 18467 /Length3 0 /Length 19913 /Filter /FlateDecode >> stream xÚŒöPJ׊â NpîîîîN Øà îîîîÁÝ! ÜÝ5ÜCàΑïäœÿ½ª{kª˜Y[Öîµ{w7¤Êj "¦vÆ@I;3 #3/@LA•…ÀÌÌÆÈÌÌŠHA¡nélüÛŒH¡ tt²´ñþ+@Ìhä ¶‰9ƒãì@Y €…“—…‹—™ÀÊÌÌó¿@;G^€¸‘«¥)@ k:!RˆÙÙ{8Zš[8ƒËüï'€Ú„ÀÂÃÃEÿg:@Äèhib(9[mÁMŒljv&–@gÿPPó[8;Ûó21¹¹¹1Ù:1Ú9š ÒÐÜ,-ª@' £+Ðð‡`€¢‘-ð/eŒˆu K§¿ìjvfÎnFŽ@Ø`ci93\@¦@G¸8@MF dý,ÿW=àïÞXYþ¡û;û"KПÉF&&v¶öF K9ÀÌÒP’”gtvw¦Lÿ4²q²ç¹YÚƒþ\¹@RD`ø·<'GK{g'F'K›?$2ýAî²ÈTÌÎÖrvBüc}â–Ž@pÛ=˜þÚYkÈëo`f 25ûC„©‹=“ÈÒÁ(#þwØ„øÛftp033sñ°€ »‰ÓôêöÀ?,˜Á |¼ìíìf`@K3 ø ÑËÉÈpvtúxýÛñ_„ÈÂ0µ4qÍ-Aˆ¿ÙÁf Ù_¼ùŽ–î=fð챘ÿøüóK<^¦v ßáî/“¶²œ¬Š Ý_Šÿñ‰ŠÚ¹¼ØØ ¬,nn3Àç¿,ÿèÿŸö?­ÊF–¯ù7¡ ÈÌÀó—pïþ'Ãõï© þûÄÐþ[AÑ<Ê@õïÉÿÀÌÁlþÃòÿyþÿLùÿ7ö°ü¿Mþÿ]¤‹ÍŸnê?ýÿ?n#[K¿À“ìâ > và³ú¿¡ZÀ¿N²ÐÔÒÅöÿzeœÀ§CdnóO-$-ݦʖÎ&ÐÿvLoc *Û9Yþq×X˜™ÿ|ÞL¬Á÷‰x¯þtÁÇé¿%%@&v¦œ;VN€‘££‘"3x¼X98^,àj tÿs²LŒ ;gp ,Ï`fçˆøÇŽrr˜Dþ0ý…8L¢¿€Iì7â0‰ÿF<&‰3€Iò7b0IýF¬&é߈ À$ó±˜d#puùß\]á7WWüÀÕ•þAÜàêÊ¿¸žêo®§öë©ÿF`í¿¸ºæo®®õâ#£ß¼ã߬֨ÑÈÄ~TÌœÛÙþ±ÿuþq€oòâ“™ØÙ€÷ÿvö?,¶¶¿ þ1L¦ÿ‚à’Àß à…ÿSó¿ƒ ø0ýNwÅì7˜ý þá´üMÈötý]åÃo2Ž?Âí\ÿÅ0ÿ+°ø­Üf { è_`›å¿ X‚Õ¿ ¸ÝÖÿ‚àý[ ¸¶ÿ’îÍofp*|rþåkµû½p²ÝÜ`1ö¿Ý`2{ð+ úÏV²³ümýïF²ƒWm¾Âì~o ;¸ö6.Nÿâ[þlàò.vàûå?L,,àŽý«Ÿ,àöüæà'9m-ÿ;&Ä]ÿÕU0‰ø)ùM^àï"àË—ÉÙÂø¯É«uv³ûW¸{.ÿ‚àÆ»þ ‚×áö¯¡gÿ«+˜Þã_ÜWÏß}3yÿ*õŸ ÌÄÅÜXç?Ÿðíö?üç@ ;ÐqyÁ΄/ت!¸ë¡N„ÀaB`–b_+†ÁkÙ±Ûå >…¦6;pÓñN$e¤mmW‚úVx…ä—×I{|XG’JçOïç ªÓûˆKSï¾NŸˆ4!2¨ xÿrðÖ °†n‡ì‘¥ÈwpáFQ.Ä|pro¬X ]ØW9¨å”Cz®˜aˆÑˆþP6GQ`œ3KçÌ@ô†ãÂuîön#oò•D6Ñç4†­ÄKw‹5öqÞs½JÕé 9ž..ô-ÆØ4¥—èQª,΢ק’MDZ´ùwÝãÛ¶É,6GÔžûŠªŽÇW”“¼Ôx¸LÐX2Qћ҉¶e¤‰pì9k²›î2W\íÆNôJ‰–¯J6\ªH<û½OyžGðÔØ Ú´aªØ)$ ~Ž0"ȼFJ”ð¢}ó¡çœC&ë£ëXÍm<(†DíÝþ;æÙ nÇëê¤#kîÃ2s—²ž3á®Ç»´6X7&Yv_{ÆLmñ S(š›Žê:RòÄ‘è¢Þ5æ¹Üñ´ÀâǼOÉÎÌogkVFú¨ß°‚D“U{Ô9è†ø>ø}«B£âU¤¶:Ÿ;½A>.ö±*l{ÜåÔÔ6¯øFضlxì uháµVußõøçësý"f~Æ s5QTdE›dLÝ\¥xùóÙ‚Xž¦~¬Þ2¹ZXï3IÄÀàW¯þÀJ˜Å‚ý&^îO‡.(Án+fƒ4÷“Ô•Á*íþã~Ç!]–xÈ#|xº#Ê·Îm0»…Pï_ë—Öì‰YÔ4ë }â†xK¿lT]›2[ ,zùùñÛÂͳºýËK} Å1çøê ˜:|øDHÀ#háí;ùãzކŸMm÷mˆiO%”l?ÄŽ<±mÔmAÈ.¿K¾SÀµ¢¸kQKt.Z6£Ô@“¨Ë]÷ü¬8ñçlÖOƵ¨$…šÐUþ‘Öè3×_ʳþïùYdÞ+}ÜwZ/î–¼7w©ëßýñÎxËj•Î.ôá5)±àâçÛ<[åJwª§Ý8JVN/C{³ ÔœûÉg4øK˜_æ—D •“:á«®Q.‰ë…43?Íà¸ÏdiÏLì-KGå{3PÓ¸Öú„TÒ)ße±C èÌѤ½ÓáGت Paòpn/ÉpÁqïS‰gCM“‘h3]޶e>Ò}Ÿ4]×=NÅšy+4”h^fäÑr.RÚ0m°×ZawËó.“ƒñØ2….(ú³,¬{-2ooÑÁÚ乎êá¤ùÐ>oíÔ±ó±Æ¶'i…>U˜£ÐO!Z3’Íïøù»iêB‰©Þ¯=°Èè ë,_Ï#à•ÈÁ"¥;Áþ]ÙÜèF‘<šÜ‰ôÊ0½¸Î*¬L"ˆ~_°ç1¸·ØöÉmªy÷mW˜”CÌ]Ÿ0ã©R¶²Ê¸1S¦e^EÜiÇŠÈ·I×ÌIT¡q¥ýÕ +ùT{5!~hlùŸ ‘Ú”Æ(,WM³šc*­2b…¨p%á>µ¸M&ùѵC—ˆ½ÙÌOÕ4Æâ2رÎÊ-¿•å«2y‹¨ø%™öúírŒá—Òâ­eï¬Ä¹~âpâW“ñšÍÂ#”‘O6s~ÛIœ3™œ°z¬Ë›ÍSyñÄ$º[®7™;6]ÊÞ4šCm(¶‹•9D”]Fˆ‡UïndcûÒƒ?5$fÀzÄú-ã{{©Æp4厦‰¦ÅqYÉÜãÃà„ù§³¦áÿj4Šx.£@~MæbG~…ÀþÎNHØÅ(y'1̱ ²¯šÙ¥sOq×ö mŠC—Z`C'âM 4h‰k.˜Í‹§¥lg¿´_rÜqyÞæBçÇX fY _ª}‹Ý'³10€óYiapàî˜Þ¾n ×w¾”Âç·zGº)D:&™`ñl*cSïåò[swÂ×ò¥Tp I3%µ²§©®Hãvr|®žõ‡[Ø×hÆ^¤—$ô§] Š†Æ¬Š4"Ù·@Á RTCžÒ#¥¬†ÅŒ'Ü$÷óž¿·¥€Tïž´®Û~sìèR§#¬Šlu™Ð2¤ÂGUá&ºq“b3'òáëB2-k[³µCÇogý…œ¤±}}ëò…s']l!ŠPGý–Jõ&zßj"Ïn…H¡ä#ÿGq‘Ä«ôÒÌ4fx/t8›7» =ÂÞÛT)‹ˆ,Š56L^©c4_' ’àgÎüNF%.í§«7ÿNø9©å=açíÐhÁí‘8{œjŠ:jbí×”Ñ.–&H›J‘Z¹•HÎô7©©úI½ht™O[õ6 79±¯©RñN¦ØÖ ­iÕ‘[¨kÊõsûQ99T—ôz©%ªOEdIÙœxa´"…ß׊Æau_*†%œš§£m›L¦*.W‘ÃúÂg¯²UzÂ(Û R‡ÜköOÆÚ=Aé(=á¡ÖbŸêÌ´–S~q:DØÁÓ¦ÛÓ1Þ™[Ùèæ;[8ÄM±ñ²–8/_.{PHfºñß9œ£ü¨ë”dT˜EñÂ-ßæËa='Ö¹`ê(NÐɦ}Ý­Åä¤Ì'?ÍúÏäñý½=êýd4?èÆªŽQ}/ â6 ÷ˆ²=Œ{.ϳ~0GÊ.œçËØ™Nõ£¿*Z1¦{˜·.©Á êg7 £E³ú™³‘VKÛ×ìvv&ãÅ×S*üŒ;h¹Õ>¶ýnôË«ãú€J%‹IY‘¡ŒÌÆ.Aƒ2 ×¼ÙxZx*[ç¶Ù^SÅ÷çiEÉò³Fªîùý¤!Ϧ¤ÝªHÉY~á™Í´—ùp={<ù8j5ƒâ¦˜ÖKýø‰ÆäuOš—C¡Ωì>À„ iÅpÇéj™z¥VxNª­¼íIt›ÂF’Ð,Äà×PE¥ï¸+ïÝ F•Ôsßhî3tR·’Ê6·ê~öÐÞDèþDª_빸&¼ÈØâ_þˆÌñ#b’!.I\¾‰ã£ã²ôþqµƒy`Y-±ãaY Ú‘ùx­2ER”; Êô{Oê÷ü9‘_&'ƒé£“…Ï:¦ëÔÁ´¼¹v1¦†á……" OÊÆÁÑ¡  â„°ãZg˜Dý÷Í%_mÌ)GfŸÒªQR9L1§i•$8âßÖk¨[<á­Û¸öðt|¤|œÃ#·ËÊüzB„F7Fݦ‹0ßµ¢üS3*Qɾ`tÈÙD̰c>‡9+v Á¿†›£JG„zê81œE6‰¿3yV`$$a»mä€^ù¡öñ;Í·ìËDŸ}ät jéšM L64£8¿b0Kè~u¦þ……‰GSey ô(‘4VÏæq€ÐK ,¹E9^h¾§¹oº…Iz%~B‰+¿ väɱdnWO Ú@Ë_Œt*± ­ßoÕ¸ õÚ÷o7½Ž'õÿÚvnÎyG´ú…ô#  kvÀÔ±Á«äÙ9q—>iFøJŸn©%¡;RlÕ³ý„îs̬zªQÓ#wMHO9°rL@R÷ÿkuüÚÞT!‹¼h]å$Æ{Ù½Èæ‹/×/ý—mDö88ÌØã,ˆ íY ô9.]yq2£¢”³–O„BsVÎýT#ܼLÔÑ2¹Ry+ðp£Íœ‘C0xaéoùƒè ÊïÙî¹KVß›üj;yzö=ûe>“”~mqDJ)öh+Ú‹D¤²Ãi8éó™'@Ç0ÈóFß3aW­ÔŒÙc-¥¾AåÝbqJ¾Þ3L€Óü’rI)!• Ôb‚†‹²ð€…,¶š6”ÁÅÕÀ`8´LS[­àº ÿèû;ïÆJ§è äNmÒó÷ ÓÉ0½$7ô½àu°érlšÝœÉ}ÙÇÓd;V”]þõÎ ¨ðz¡·½¨PÄaî ñ2=ˆÝ7Õzä¦âêßuБgú­Z·“,½•%x܌ՠ:œEá=ã·2‡›H›3YÍ/ Šž±8?¡m­ŽÛ8¦“´_­&há³ ø‰m‚´ Ç.Yš!;ÙC@ rD½Jb ïEÊ·xpÌ9~h¸Qú4 ¼®äJø×õ®8sã ù(æÝ,ÈÄŠ''¦GôTf–ôÄãŽ@mÀú“éû@¶Hbõ ~IX–PÇd¶UµäG(ísd3zÇÀà¡„ÏîDÙ0säBÝnñWéòµ2ä9"T0ö0éEBuâê%ú+©ºËpž÷¥&‘J¨jó>;Á<-Ô^À+tö#êpóœô¸ õ·&­îÙOï,õ±¦]M…ÝZ3ÚÍ¢`Î>lø1“Úþ´lUŽqW·Ú}Ô¥¸ðÇëT–@ÍÂRdË0¡½Â@YQ³|¼œ"ÕR(xK¯=é÷MìHÔ!ù惾]ˆÜŸb¿‡tc ?Pûœfá>G¼SφSGRHËV®®4<·Ÿ /0ôŒöz¡ÊÊwGŽ8ǦËLDü†ÃÆï¼˜È£˜¹Ü;¶i##M”¿î”Ó/pîD­ÛƒÁ¹ó+f‘¨(§Y¬ë)—×Ëhˆq¢51¿^òµµ6sý$ƽ>:„úö-º½®pœzÐØWè²à|K.ûÖJÖ–”@ùÊF®†bû/o[ß™ Ò¨ê÷¾Z­èÙ†Ø ½?u/Jc¦‡q;²ól¼Êj]{#³ã¢(*Ju Ùx‹3¨©UMªÍ9ÌÔî¼fòóqzðÏÉüA½êÃÃñ£›ùËžÓrzøÜ½ lÄÁ ÎaÓP‘Ô[ðÅ8bW²ù4”›_l"(`vóÇzà3?ÀˆôôN]qÙ‹UåÉ—a”ÈŠ¶3ßÞ¡ßf©ú>Ù¾ròÅV#¸*ïÐ`JÕ>ïî+ãR 6˜éSÄ)9øÅµïïâÚ˜u‰XÃï`Ž,ä…l7“ø´‡œlmØ}…-¿Ö¢<üDûþqbÑ¿.3zá']ùH<ëåÇŒrÑOW˜sCB}±ã!}º#ÿ€éèŽà&XÚ ÑÇæš}æö®Ðû‚ÅãÃ/pv_IV¯c¯m;4ËéKÔõº®áŠ–Œ‚Ï©cW>/·NÐå3;lž¡§ò/íS¦Y¹ž*Ëu¤Eßf× ±_$ÏG"Ôð"bˆnù4(Ap È‹ÅwXÉÏ(D42TóvØ0M‡-ØØž`;Ƈžíï ßþÎtí=£ úÔÊ`M°U‹\ÎÇy ðä=˜×oî{å¯p©Ð«·¹¢¶ëZ~…› 0Çϰ‘@=uKjmë]¦óö³¿1]iÔ¶ÁŠ×v!Á*Ì•Bj'6fU€V¿Ý ..>lZª®j»s·‹¥I€Ô0R>¨bÀå{¤IÌn£dõAgôXM>«ó°àž+'•9Ö¶,ßè«{L»0gxni)Dª ÔÅ'A_ƒ ×ñƒf¬³³^bÞçbèbæHDŠ$s–¬›˜Œ?Üî5¸Ê¬ßŒ@µ"A¨`l`\ç@Š×Ï}¿þiýà”Zh!Ø’i’gS®\GíkE¡\Ú6<"ˆŠØ,¥e“"0-•‘¶×|ñXz³žPNÙiár AÙM,JŽ3GñËcòA™LŠšlyp§âñ×msèö)ìÈ—^¬”4ÏÂè¼4:²¤=‚6¬•¶  ÍéÈŒÄۼ橕¼{i÷ÈÔ®cõ†ñ™ÊH§x†~{µh¸Ê^±Æ†|^Ä@hw  œ¾ê¬—§X=tX‡‡R‡ÚãÝ–ú{ÃgC²%@ÂWë„lkV‘,Á}J ƒ†õ#(…1m"½UU¶í'V:Å Ó²WIN‰ÛD½sFÔ‚‰Y]EÅ@q¢Ý¾C \ìè"oŒ ¹CAŽ™(Fj¹í'ìYA:øÐ :öNyáOذ9±S¢ógz:$m]É·UD †ÏèÑ)É —ã ¤%e Þå·ªš Žœ¦äèV1÷•n5@ü¼Žê˜ÔŒ†ŒwWo¿$!â^û…çÝ5ÅXö-¨ ÏéU jΖÿ{УíÖ†RÔËr(®[Ÿ›’ ­âЊ5„»IdNÆ«fÑ\/O•tŸwëHñ$:ÛeáÄÕÕ¢ß|ÖMac€Z&Ý0Ž0%jwd‡iý/9ÆZ›¤…Š%öËØFýg̉fq]6që ÎYD ñä&{ø#1GÞ˺k"ôý¹S4¢=ˆ„#¬±­fèwÜ^Ä ¶bK­|­*Î/»9z5‘º›èV_3›¼u UØI†Äø±u“Kg8v{ûOâ!N× Ü“Ò•O9«0£ 7ÒiGíù‡l?2¬Î;«½Cúí¹/BH^Ð…fºB0[$$P€SЂ;œ¹r>f¬—nF úF‚‚V’#­õ!/ˆi¹i¿œºBZ¦ Ú®"‡á??kÆGq$AuÿüV<ÀG 7&¿R«qýañüÁŸÛcü[|ýVË˱À…¥Óê—hGꦷç@Tn*Íðö'Ýyf.î yì·CÔáÉa Ëd½IiòVšM= ñŒŸñš°uΟ“e¿ûRV-Në–&ÝmmáÀöæ ß,@óVøæ'p¤ÍH6CŠU)eÿÒFe$×gûMJòŒ@JO§åKC‚E×IbE¼¬Ý½ž÷-‘·ðÇáGã½M'nƒ*eÇLµøj it`#u+ÂÊÛ{Ìs)•ŸŸ ”AZuÖ¤ôcUgªçÔÀPŒ§‰P'¥ÈÌfÚÌ‘pÀ²|Eó3·ø©° 3½Î_¯a?‡`úüƒ¾:7 M.7áË].b9C0ÄÝ Eß]™7jÁreÈçoì׿‰÷g¦Öçµ?âi@™2J¦RJ=ØœA>ÒoI­´(vŸ¿ÿµ0­k ‡5¤x42[3 f¿h"/fÆ@â´]l*­—Ï¢Yäè×"Eæ“eÙ7Ý–rÏÛ\§D²QIS—¥Ò~š´ NQ™ë€Rb@ÉS;ºk?@ØÀ’­óÅhˆþÀˆ©ãUt‰”Ú‘þÑ’•a­<}õë81s顳¥ Eýíå Íø7ñí¾]Ü{ŠË¼zŽÓ¥Vñc…,©eZÊŽ"ö*Úéjò½j?¬Ü?cŒ`/äw˜ƒp¢…þ kz¨MQ8y<…4!,šøŠµõbåP¦ Z¸~fî<®ºñÕ_$…ÅŸ-|ÁÁÞ‘ªn¼QP©Õ#2êߥ_N €6úìÁƒÝ|φýI½ØUªØŒñŽÆT&Êsê̦©IÉ«òš˜Ä@¨ ‡ç3 –l™ &öv5*J¯§Ãv}Wˆ¨®”Ù²±»~3«Çç·G…îÁ’O‚?Ee<£¾>¨@ÙO‘…ΠìhÀ<4g¯ïv‘Í,—á{¶“Êk°3~©V®Çöi‰ eR^¥ØÑ³„¤¸ô1 U Q=FC@´J®i„7u¼ýi1B¤ˆJë¬R}¤Êh})c´Ç©t$]¸¤ƒ-<øXbÒ Ws¹óùœrÓÙMÛøç¯››ÖL·éŸýèŠë“«ˆ?°uŽ(ÙRg`EYó[ËêcºÎÊÓ‰ª Îï…Í.e³Ã È|†:¯íKÊL°7ÎqÈy èóš[ ó‹‹åÒ «¾ÅY ÉÒâ%ºp­HC5Š ¯%’gÑnœ÷$ò0€ë9b¬hÑbÛ ‡·^U’£s«n‡â¹VÏP@ GkÏ.- gÉKëÓAáM´XM &*Æéd’iWaÑþPp4–íç®tJõXth×ûé+[þz0G'©f!ÕX&&K²‘õÜù²Ì`Fiª(ÌËí¦.ÀàÀœ—éê›:S%_#¡e-DùÈ8%ú-à ý$Å7•ñ™ŠÇ·­£b» ®»Ø4|.ˆæGÔYf›¦dô¿ týöP„Ãön¶Rˆ‰= ›y `î(jòŸ2@@ ¦qt`ÙŸîÍ4ÇÙõªêÌtI› ¥:Ùd¯Îip}°My4=ù†?¢Ž ÙÜX—†î^„óè›äK¢é²y·Û ™ž«"Kþ“ȱ&QÁZòÛ^]I¹öZõ>¶ ]ŸòçmZ†½˜ÙoÆàôEûƒ¡ô‡ÔàõÔ%ÑCÙ`·{”%¼ jÐðæçCùÏÙ°ÛDm0ê/º‘)yó"Õ¢/Cnœr‘œr¨Þ@„QŠ>R›3µ­i!L¡Ÿsà´9-õ|¿Çq_™B£Ç»µ¥‹Yþ7v1]™1#†ûhίßÇÞwép¡š®$Øû­Óõw(! |ßµœ s»FüúåÁ|ËæÕ²´iaÑ•°WÒõ$C%Ì_eÈzÉãͱl ¢\d«GO«=R* +®ÁÇ×U·yôÇŽ”…oøÆ Þf¨wCZÙ¯Ãuä5á,”BˆêXŒÎ\Zv,F)ã€FãžW®Gl lÓd–|õ*šœKÃ~°#vYדz™|ÂØ3nË»ÏÁ ,®œŸ˜øÐÝݧ’žý"kCä5©ÞÈÕoãŠò.—ÒšÁá/>'©M¿xT“C¾Dªj°zæË°‰Ü\Ÿ¿>§\¾<—ÙªÎ~ª³àc‰#j×D¾•Þ¼,3cûÓEAsƒƒÚþaÉê' »á åiºý\ë1©«Z {Ng‡Í™@ÄlAPÖ­üáG•néŽþ(1_Š]ÿ¨ÑŸµ,¥åýé¼éé)Ã;[.çT÷‘wž'’5-µ’!§ù½£¡÷ÃúK84âHÞ¦¥âž£ðf9Ú2wJbB:læÕ ¢­¯ûæ#²Ôv*Ä¿àU]Ø2iW‹¡ñc £Ð8¹drÒØí^ßAt,:§¬ç2áˆ@RI2Þ Háô•Â(hg§¹‡Òm²×Wõ…%ãÄìØ$ýœ¬Š¦.\ü4YbÕmVywB\é‹·^ûйÈr"‘Á+GX-#ŠšÛ{¼gà5ã«´ºh¾Ð ,\‰qIÄR-ð·ŒÀ–ùL*Â$m ìÐTy,Wš•ζK…ú\› ;j¸kìó&òâw,Wà½dê¤@ÉŠÌ7t«6ÌØÊè×,¦ù[Lõ?W-œäáóÁGs³^PÖ†¿~\O"‘¬ $Ù(¥ È>³\kûÖ!ø“†%iõ¼“ØÁ'¸Ëôp%ra/\´‘!bê%9ŒôR©~/-t¯ÇÍX‰`tžö½œœþB¯¦õc;VÈ0 R£Ði8µúþ\ ÖÒ½cœ7ͬ;ïüÌè9„rÒý T2ÿáÓ¦¦PÇu¹¤K{ˆ†íêÚCb/fÇ8#jÓ1‘p2ÐáißÃ…>Rw²­-0ƶ3É¥·`NaÈÛ~&”«×m¬抭0$E!ÂßxdsfÌS—ÚÞÑÌ÷þüqNM†ï;Ú ¾›Ñ9ÄžÆnÞ™n\óÛ¯¿¼¶„0K‡Ä… i{[u3‚­÷•31š †äda0L¨ž/y¢‚ß·„Zvq£âY‚$6Ë<.e~ðìfÒ¡¸ßŇŖRÔ]¥ÛmCZèëëhž©]I¾ w‘úiÕŽ¬ÙôL#”î…b§Ѷ*øUXUãü-›ŽwÝtÓ²'S/E²–øc¸w&ÿÖ[„Òi]Ñ…öü ö–¡zìyr¸×Ú”c8²ƒSmâ•á ¢=´dK ÉøHiG!wÛf¾y?ÓŽ`ÚäËG+ÖM]ɾÉÜo èÔ¦ñ;7‹9?;‚~àÜ’6õ¦G†w|ß@Uhz‡7‹öãp·˜ÁáAep£Æ1úù¯·ÇKgåÎ$I1¬²—$³#ÅŒا¯6±ï6&ñ¯žCÈÑ©òcügü‚¹Þ4¤’fqUhø¡TL¤ÚºµFW/—ñK¾}Í4—¸)e<Κ·ìNQ_©bçìPUx©Ô/â ÏÕ@Ö}GìmÏ0bû¸£pfŽé8‹•K—&Æî£‚¤˜B1¶Í-'^žèy› S ÿyªd‰ˆ? 9öÃÁijG€#r{ƒƒýE®¼<é.ý0Ÿ4¹‚~ìëäm šñ€#wò?“ŽŒ3OÉŒOÕd/UÊPEýy HDºA{-Ž/Ö’ø¹éQ|Нe›´}ƒ‹hížû e{töøÛ/ÊÞÖ:«D3í‹2cAßTsên§#ûCÕ8•…È.àH½9ã­«²h&š\ ãáWLQmkTŽìÙmEi)[Ó¡PB&ÒJdÄâtÕ9Ý­òΘ,vÅ·Oh;RÂìNazÆ­úvϋݦ_ÙÔÝàBÛQÜéƒÐd Ë ‰k@ÖkU¥] ´²uñæxði«ékh.+r£ßEù}àµgjPÈqGÕ/šçß1DÝHÓ8Ý8¯5ÜY뮞L­©iaŸ¢50¥˜ç3uOiÍ‘K壯XY£ õî;ïNŒšSÞÓþ¼¦8ðø~SÉä,ý´|´½3AHÌ û.‹eå̓üŒ ÔV–Ö ïÌVnNÜR|”]N ùžÈØŒ‰¢êÃimŒâÙUywmBß.¶kõÅ0d»Ë`ë ™ÜcgEø-ùó&œÏ9]þ´ÉUVdÒ„öý&U4‡µ/Êù‚ŠðÛ ½÷=áRxê´?®5-µíËâá¹*æ&ŠäàKÆ$OÐÎ¥íô£Ñ€<ÏP A{ ×w—¬I:DºpQ<–ƒðŸO葚Z£Û”`=XàøjK¸­·ì–}Ž˜sq¥2§ž>à•¾!áóFNs›«¸(+Æb&ò+š+O]œžn]ΘVæ<3;?-I?º+¯?–|åÕòRZÕD¦Y.œKWßçsAÓ"ø)bÅcŸrÜ–ÚUCñ:°=í–ÅZ¤ªäˆ”âìØš•­ò-,&䂵JŒq\ fk•¼e)÷¥”}Wõã¯ÊØ«<Í JZŽˆ-é‰ ¯’V”9äš{ðù%…ãJˆÈ ›-Šù:<{ðϼE«Œ$ÕÕàbS7"«´ð¸ouï 礪'É85WHÆA¬PèW€£ÞU*íI…̼}?BÛš)ü6µüõ]ý¡‘%\¹É s£ÛÓ—¢åöÃÑZa¦[“¸“HÀŠŠ‰l6Tô“paÃyêõ„#?ãîiLmw™Á½-ݯæ!RXNX£´î|ý‹çõT*34+ìÇ™KäÏ_3*›ãÊ$5WV^²*äåi! "DiÕt;=¾æFû1ãfë=è¬7!2Ôì1£´4–]‚Ê:9ÓÕ±[ÈÜŸEµ<¢äG>ÊuëÞ;º-p[š Z«ó~~óž³=ùc@VÞJÒ˜ Sçb}-‰#ZR.$e¹âO»Ã`Ì£¼ùá|æ¹o`Û•<ÔtöIéÊÎÖ½pf$…=öWº£çS_£l•÷,…´Njžyá+Xì‰Ø5 Gh‡s¢ó÷°‘ú”@>jz”›h­¶¬œ<çůöÏAô–>$jÏ¢–C]ZR²n¤/LòÂó“=˜8RÝÌ¿ô–Fñ8Ýpî‡ÌãÎ7¯ÆúQl~à¿ ']r¼J‰‹QTŠX—,À2‹CÕÐà @ñhjuIÓ°Ml—»ã³‰&é<&Ô ‹Ù²ô4ÐçlR×>|É ™¼†ªœ~ÛX(ó¶y<ÓÅâ;• æþºÍÀçyµYå9£ÓàíÝ@¹¾.¤šÐ,þØ ØeíþÓ€áæxÛ÷ºÛÛû¯Éà ʀW*XuLÇ“Wþ`Ñ7pBÞö…ƒGoÅ ÎRnN/¯*°gʦ%èÑNË2«06 ßÕJGT<”ê£8˜ó-|+]*MœçùpÇâ‰ñ?qóâ {a» Ù–ÚÚD"%süþÝ ªVÓKòAòMìgj×øÝvM8ùò@-mh›-²ÞF¥5¹ù 5t\N+äc›GLZâ&7 ÿF;ö»Mîp÷Ó~|xkÞæ×™GkÜ¢ë\üWñôà#kÛŠœîòX!²½)kYgD≣»’qè£Ã~¹´W䊸z<÷}ÝÌÑ+š@a0Vµ„윾!ÜKq’É+BK£§Å­ô¼š´”YÊ Öß…¿¡Ò â?‚&áOä¯lߺš…ôˆÍ•à6~q·ê} ^ùt€Ñàc–ªŒ¸%bzÝ1²à?A…¢b!-?¤œä뜲ÛÕd*c 7jé—³¡Â[¬XÈ¡>¹n…õvö‹Ú»1ña«1o–”UÎ-YŽúÝìç,~íï>(Ôœ=qÜ›Ï0ÌøÔI™öKÓ3Ós KˆH”•Ym=„†V9êZÜâÃomO‘éhy%!Ï2´ûæ­"]aµÊ3„8ãèÞ<+ÕD²4(”¢f¸3°-^åi°–Ô腊ôV»÷ ;Z²ÞH.‹?[ùâb† )³å5(Ö™ÞL Ù>| xš[ä Ï[ð—ôS†Ú!Ôæí8œÙ Û¸H‘ï­âÿTîËuA„Ï?ÈMDi?%ÄBt¥»†$C ýr‰^nÑåœÕdMÌU…Dš‰aBsËz%ˆãż Göí»ß«)áÓ(:[FŽÊOÀQ€£Fv7ϹÓiËÒ ó'7³9ÎJ.DQ¬«uáœÒ·ýŠú¼EFHëß7ð=£Ë£(E^F`̓ƒ.ÒŒ°­?äo Ë­êâfɲf~×ZO`ñ £9¦º½H6 ÝÄ‘*zÔZF¹„^A:K6±_M¥”}ÀÆ„wýéÈÆX Î¸°A/´&ÏþÒe¶`•¸Îã¯ùŽWåg¶Cûcwd[ÚR®ª¢ÛØÚl¥¼Ãž=Å_ÜÖæl£Y.%ºQÆm&§¯\¶›¯óy:Ÿxºìññ¹VÂì¸*µ¸3Õ妮´­0 ¾qIÊs²p­5ÝÌjÓ öÞT­Ø½ÄDÅ~ `g{lšÎä¶}{”&OðÓCl-Z%xžEÙX>ñUäzU¿“}b| ¯Ö79±ÃgÑßÛÌ ªÅÞ \"Ÿm¿4x©£ßLf?îÅß[‹úÛ×úE°,x\‘5\lHé\a¦JÿªÅøü}ЦZnIÆ®p.ÁX´G‹¢’£s‹&^"ÿkñY€vì¾³ÈܨÈ9'R+>5Oi… BøVàs ¤ƒ²þ×wôs=Ò"\^•’Ðdy¬êsGr,Iýé†Co)θoáèrÙãpu+Ç~’Üùæû‹móÒ?K6­h]´AŽ2l&¦ÄIê‰Q2E>HÙ¹¤RãŽöHIÝ;F,ÅÄ=ª©Pì0-[\›:{(S3ÿ(à1˜ òíï^=¾,’‰vÕJ}å**‹#žÞUTûàœür,m߈ü†S½D§Í|áúµ‹½K´’X•ú×±`Öµ3µU“3‹ØÕ%í¢x„ç*2³“2ZجÂëåÏÕÕ¹»Âo!ã ‡Oržl ¼;+ål§íZøoÉî“êßQ÷c4*:@[´w§ú Öûmµâ’ ôK±\Tí[|Ì(È&çò} Tfï©WÅÉ0Û¯ýT2!Ö$ïMº,ÔÁÝ2m¼«-¤à¼W^€E¦•)dctT¯Ø;c;4N(õÏl YüD1œ‚¥ÓšŸdúÜâGHôÅŽ4{„®¦ëÉ©Z ãzÞ(›*s£OBÆ ò“*m‚\iény–Ë'SU˜Œ´ÆišnÁµoœmå«›¦Õ0*9¾fi¢Ÿ¢¿IÜRù}^®U Yrõ+Svš‹oá¼Öp=œ'ù4Æs0¸wØx¹D%\+Lz’,I<œbذ[œê0Ì :²³Ý«†»C$zÆÓ%wʪ‘/ÖHj_ÃÉ%‘ÜlI-o2Y¿ê޹dB@"Q/g[I“ Y“náÉŸ§+Q) !’…åßü 0E‰xªÚ·þ1ÁÔX̪’‰#€5†ËÎ mðýF+Æ|\ê`„½[ßRæ »8˜û¼:#h¥c‹õ僈À,ÊÌJò1Ù+&eùK´ÕÓeôd/”Y[Ô”NY8ô™Ñ€#&÷65ùSh&kFÚDéÏgu·êP|C^ºOÒé]1´Ø‰ƒç‹ÔÀzÑž"…€YDÆt=SCöuŸHÎ6XäÒ”üý6…HÆÈ©oN0F·ßýo}^謢Y™½ˆ›ÜX ­¼ú­‡ÚDæeÍîKÝÚn|Ó#ÔúÈcºÃA«’–ÁAãýÈh.}f–:}wº[Ðh³°BœéºÏV¨.9= «ú2çF\C҉Ʌ–…!£œÑ°›9ã…¾aeN…?h.$ÊŽ3»)Cγ| blùbÎëGD…'º¹\Ô5ë½D'óS?ªÞÙÈ1 ÷sOuP[+ŠÿG¬±#/wÒ±¿ŠÑZ¸2:œÕ ê·û])ν ætuû ³’j‚"ÁMdf9ϾÏÚª4²M!X7o~Gë;éþ9àvÄPÎ6˃¾“Ñö|Œg<,H$iPú¤ÿ%½õìMïl®íóˆM?‘–ö…uì|qVvÕζ õ=szÀ̩˃þ¦j7?Êäð†dÈ«‹ÃXÓ¯L„BÿDèsÔ.¦.ëÜTBwWc‹£´èèX[ª[$_!ù ù+ëW+â'þmŸÄÊ8Ø3Í{Åoâ&¹k+¡ÎXÝÉ>V­v_‘¼ÛÉ>­BÂUqG5ޒʈ|GÕ áÑe÷ ƒ'¶®Ý,OÅ6ŠÊÌÜøÖ÷5àÇKÇga|+ÈG4+m÷’z¸v뾉%甫úçÕôoÉR[Rø$îó§Ó+BdyرèíÖüÒFçK‘XĦþˆ\-?š÷cß/jå_ñšéË›aDm a3ö9 4b7(vhÍ5©Ã© ¹õM1[\Þ8¹Öcý„Þ›,ØþQ¡%ÚKòEó¹€psåI¹Bòs¹ÄºS)§4Hùm1¢Å\tÇÒkG2Â1¾ÇÎûÂ5ÁÃ:³Ë;¼O2óœÂƒûœ°<æÍÆÍ-â;êr'XÓ³–b ó R+ñk E>á©EÉטZ‚f„¾YcÖAIIÕØêdÏ~¹ØÁª±~éòÝóøÇû/²7†I9©‹Yš°…¡·õô™Ýlý–;ÄXŸ’ÔS ÞC”aB±¹Nà`>‡½³ì{]Ç_™s[xb=ÇkŸkÍ ]l}7m8Az‹ƒÂ˜îì¿©JÓ‰v#”r²§”óÄâì¤Ü¼olžý8 ׃­_tµHL”K éPp]œ><ê”-ðŸ*ëk÷úX¶ ø y¯©­eÿ¨/ªmQMÛw©VØ­ßÁ -Æ÷ôî!dOª§ ºó}¡ÊQVF½~Ÿby‘¦ÿT …¥ˆ,ƒÜÂ|Yf~±á­gaÉ É÷¹ÖsÌ¢ç©YËÕfÆk⪶ ¢±=M×åÔ¬³h?VÉ›Ä4“8ì–z6Ú›ÛµA*Ïù\W•t7ýn­Éž!LÄØÁ:`”loœ7¤Œ¹/'¸w•Ø,fqçuß?Ó:§:«~Ÿ÷}3´É”fMË1]Øßy*ÛE‘H^¿0F‡Ÿoð@a/{s«óYí‘ù±”èY¢èä;'¹º*¸FÔD¯—Gz^ta—çÚúì\#^ØT´Ð D3=æ›;"²ï%ÜzÆo­J™ÌœÔ2«1Ãb2(›/H`¨†T'\ÉðÞ™ž:1'!|GˆZ2z«Ð§èxuïš!sFj4ð@Š «ùÆŸú(åîÞŒ×nº%Ã’Kˆ¾ÇÐ)^ZË{OùŠ$×Ð V¾ŒÎQ|sº²dïÆž]H”‡“ ÉêzV¨¢sé>ÙˆDF–„£Ryÿ4ÞéQc#Í IY#KDûœ­À¸»[!žFˆ‰Z­¶ÖáÏ犌”×kÿG£Ï|U7žý/÷‡cOvh¿ø'zžtΛ/Dxoz;Ç‚w{Ôx¡ç ;¨‚h´ñO“‹·L†Èøø1…8± ª®t?®.CàbÚ±5¥s@þ ŽH,~fÆhŒY*ýªBiºOiÊ”NöaüˆW‰¡õÉ—Ùû%%tÉó\•Ìk±Ô8 ¡Úþíû¥®ÕÕÔ¡ÏådªÆ†-›Æä7Þ—n÷oˆéˆ:ìØÔÃÂÇÕ‡{GR¸âµEë×½Ýáu/8[ÜIÂŒÖ{§9ü6H±Æ€&ASg™f7!3²Hü]5’ Šƒ]+9Á!ªSÒÀ9è Íó<œo†rh1Ís6Ùñ¶.åIBÞD"zgbd… —8ŸÀMâÛÎ2ä®›j\½¼€ãvz·Æ$á±b{Ú—ÛMR—Üâ«8Ã’·öÕoºF1N36øîÌ<Î?„ËqF Äc}ozZRãí!×UŒ‰[*þ®évj™~| ÒD›ëˆøq½¢¶ž¯¹ec×cbÖŠpΞ´”ƒc®•õ‹l¿¤ú§UloRæfI)jz¯Iýwñéÿ' ôó-,¹ž3ìa”I†yÙØßR´ìYBDD§ÑÊuXrª¯J¿ëçQ"Nä盦rùO}qÜ!ï&¯DHC@–\v‘·*ÔB½}iÝôâC“Nxwïû¥$¨û5Õ) ¥¬ÑÕ£ IÙ ó5‘ñƒ#Pð™xv>ñèÙóSMqÑ!ººv:EOiv÷?†º­âL²Á=tä ÿ‹æÐÂoØšˆðÒ¢þJa3öØùô@McÄ/7R9ÉùnÊžX5¡êA[´·Ð*tcrêcǼv«Õ¨cìÑcRí4!rǵ/pç#q(™MËÀ»q“1º³‹G±iÀtì‹e¸†àßB©#þd'» þ–Ï2Nšgî/¦Ì¢g׸J"ü9k^ؽJƒ;>üó5>ØÎr=†•=Ù,FÓ:Tðf¿yø–*ìµ0Pw[Ã\Ü×9°C[ÐØR §/AqÍ4v\|׉¤áSo”ƒˆ«)¤ûªä´2~•ͬã2ó ËÛcõaôÖ<™àeOBºFS¦‰h8èú ½Žà˜úºMöáÛÊpƒy¼j EÝ&ÿ7“<âÀ³õE½ÀI1a†î5ökþÓCºësÿIK?Ø‚û-iòÙ6<¾|7r:6æpÎâgj ît™çœ3'7Qq RŒ-hUވϪ 1¢ ïRù¢éUwÂjjÈõwãïÓ.tQ@ S¥ãœz¬×v~(…}AòÙ \²ˆèÊ_–Ùr²Y5÷š hgæ¡vÜ2¥¤FìPܼþ½Íz÷ÈîzC¨4'C'ÇãÁB2¸¯t;÷¿ò…pTÝ‹DHrä&_¥(üÞ÷a‹I»s^Ì›‡xQÛÆGUrbTþ¡8£hø3€Ñ†,ýÀ÷±#8g+ÒòÊñW!ØTI3“¦ñª#ËYõSC•Šv•ìè":Bâÿ7#‰ÆÈp ¹¾ðƒ}±¡t'¥ì,õϾ¨‚]Ç­Ú¾^/¾†h±Xš*FçEÀPÚH‡~Lo®£!ÜAöü¢²\W³[yé&¤öêd‰MÝ5€Á ïÎ k4ôñ¹Â£‰J¶©ž_ ·³¨#SpÄîßLs'ø(»“×f‘ÖéÐ[ØÈŒ¿9n. ä®xéÖ q(ÀP;Û ÚŽÿ$ß©!–­u¼¯ÛíkÊS#·=Œï¾)’íaq°â_ÇOKÎ9Çt½£ÍöP W!ÇÿCöT–R]ß1CëÞ: ûyXô`Ó…¡nTW»ŸO›Iìx‘#—ÚàØ”"›xkùm€ Ó¥³Ü;"û—à7ˆÅ†xæïDLjd˜–R4U¹aG¡0ûLÇâçSÝÁˬ|Ö"F®zlõ©P&pñba–³Í àªT’]p_ØhðZYt,¼y˜6åè¸pÖç”UøÒqS}süüœB¿ÓÒÅW“/^Aƒ¯ìe°ÓÜ‘}ª÷@Õ§ ôóbŽŽÀïûsLc¢†—ŒÚÃk². Klcµ$Bç”iÂ߯a¨LB-g(h"zTå뀋BˆW¤àéC™,ËeúÄž6õ +30Ä9r‚Á̸ÿ†c-Z9‹_ÒŽFH Ù8ÊBõæ^“Í‚`C.£læ@ÃÞhç³’ÚªÖ­¯³š‚âuè0lA-eMóI¬ðm­eª§¬[^o}\ØŽÏ,ñÒ¶r7G]X˜‰rxù X6XÇu·]ý‘„ˆîî?ãË" Š’&;ÐÈHzHâl϶9Ób;¤ú‘+—Š”H,C„•)ù‘–=ºüðìyËî„—"²‰Rƽ¾«$ot¶LD æäø-£‚Kç·%¦'gS{&eõ(˜ϱé™ôv’¾eX,J\ö´èÙ³îÛ30ë9Äñ¥¶k—¾|ÖŒâh‚Õ¯NVÏš;쌻%ˆžf¾ü€æ27¼Ð=;?g;Gu ŒJýJæ$Úοì!è”GØ ¼(")ý>H×ìuB¥±Çµž ‰}{ öj3)S‡Çƒ$b÷±â?Ë-JÎä]éR-‘íB”Š"Ô¾a ¶¬ Æ}Z¯®€—oÒN, V¶ÄPͳá¤]>¡"…6¸É*Hð¨û”'=ÚêtMhb%|ÆQDuŠì:ó§— I∘ϑ¬oSøä0WQfqöƒÀ‚ˆþ;ž¾LRŠ™Ã4ÛRžNHþç[Þ²åo™Ø*]/oð¬Æ4Ë×½ÛÀñÄ >¶ßf˜²ß:Óaíßf𥂦•ñ ƒNÑhëaºûG|úräÓsÍ o`÷†·h.ˆm̓AY–\þ$z:“”*£È !š8†³ˆ´'¡ì·ç<¢»çëfuÆÓÎ¥ ØIòü‡µì’’±ÃïH£ü óí'ÚÅL/h¡èf£FÆ|­©½T瞈´X+púâûdÂ-œC—H¬4Ÿ=~°Õ)@ך}¦qU+†ƒÊÃÚ7ƒ¨ZgR>£ÒX¡´»wy“‹Ò‰äëWÞáM Xí‹éûM³|Ã"úIû:ÂH‰’fOV(?§‚m±<Jâ‡àùW#ÎýžeÙߦz¸ñ" jB…`lMïŠ[±ó2\ÖG6Ü[2” dÔf/v+&K°ÚÆMrbc4o Ù *S6…çºk® ¶B£eò3 í•{nBÂ5Ý€rzê1<&M Ñ~wz Æ.˜ofÉŒœ¸~–TÊõåèNÁýÌ¢xW]½ÏøÈÓ$žY™»úÐÃFü¶ËD2öue–ïÞ"E·70蘄½$~èá0o?)^•É €=¬ïq§pnÒJvy¾,ÈÍS©§ájî…ŽTcûݽõô‹"qÅY¾×ÛÙ3À/X<öO±sŠI¬ãÜr^ä«IºïPM¶Ïaä¡­îsä×)²ô5Õ¿t$¤½ó²ÿ¡Çîƒa%3Wî— ²>mÙý®jölx”Š p¹GhßZÆ÷¼ÑËÙÖ^^±?9n®|©Ò endstream endobj 145 0 obj << /Length1 1664 /Length2 10000 /Length3 0 /Length 11069 /Filter /FlateDecode >> stream xÚ¶PØ-JÁÝ%@ Þhpwwwi ‘nÜÝÝA<¸wîîBp'@xLfîÌÜûÕ{ÕUt¯-kŸuöÞ§ ~£¬Æ$b5IB!ÎL¬Ì,¼1UV. ;3 25µ:ØÙô—™Zäè†Bxÿ æ2q~¶‰›8?Ç)@!Y[+;€õ/+/ €……ç?PG^€¸‰+Ø À …B@NÈÔbP{G°¥•ós™ÿüКÑXyx¸§Dì@Ž`3@ÁÄÙ d÷\ÑÌÄ 5ƒœ=þ‹‚–ßÊÙÙžtssc6±sb†:Z Ò1ÜÀÎVUÈÑdøC0@ÑÄô§2fdj€ºØéO»ÔÂÙÍÄx6Ø‚Í@§ç ˆ9Èð\ &#P²Aþ –ÿ3€ð×ÝX™Yÿ¦û+û"0äw²‰™ÔÎÞâ†X,À¶ €’¤<³³»3#ÀbþG ‰­ô9ßÄÕlkbúðûä&I€É³À¿ä9™9‚í˜À¶HþAó|Ës1¨âì„üÇùÄÁŽ ³çk÷þÙYÔ âõ°CÌ-þaîbÔ€€\@2â…<›ÿ±Y‚œœ,,,\<œänfüƒ^ÝÃôÛÉú‡ùY—=Ô`ñ,ä¶=!{9™¸‚ÎŽ. ¯;þ!³²ÌÁfÎS%‚üû³dñ'~n¾#Ø Çò<{¬–?>ÿ2x/s(ÄÖãŸðßý*iŠ)(j0ü©øoŸ¨(ÔàÅÄÎ`bãdðpp¸8x>ÿÍò·þÿhÿmU6ÿu6–e PÏŸžïî?2\ÿš Ú¿6†ðߡϣ Ðþ3ùú,œ,fÏXÿŸçÿwÊÿߨÿÁò›üÿ=¤‹­ío7íoÿÿÇmb¶õø+ày’]œŸ·Bú¼ÿ Õý¹É s°‹ÝÿzeœMž·Cbiû÷5‚$Áî se°³™ÕŸ#ôŸ.<ÓÛ‚! e¨ø·ÀÄÊÂò?¾ç}3³y~Oœž{õÛz^§ÿ.)1ƒšÿ±wlœï&ŽŽ&È,ÏãÅÆÉ ðb}^PsûïÉ™!PççÀ³<€ÔùŽrq€ ˜~#nPùĪýƒž#µþF<ÏÈäÄšýXŸ§ú²€àà3«…í¿‚Ÿ±å¿ hõ/È þ+—幬Í?õù¼ÁçºÐÁg*ÇÁg*§Áw ó¿à³·ù™Êã7ü¯ë6sqt|~†~/Äs/þƒ¿y ;È yqjÆl]Üz[%BâÆ´;&0M½«•NÇäµèØæò!…®ò}àºãµHÊ×nÌ•m Ú+á%òG¯_êš“TZT'w[&ðûÇ ˆÔö‘"½fRÞó~tðÖ °ýò¢C–úƒƒ 7ºr>έ[¯”{m_éòHèÜ®Ê^å;9”‡Ò)¦hý€¢ê<ÓìYB xg&RDzìSwŒ™«ëiìÜñ'rÙdŸÃö^ºl±w³ž«åêlNDTDº„¤°WØ#“4^¢û©²ó^ÅŸ¢0›˜‡Ùòe³ #dßÐîú÷xYÉu!ˆ^oDÒ¸ƒBÛ†÷nü}àO=%[Åê£ö´Bt¤Ü»šíT^C“¿b1›½ÄÔ½îð¾u9’,ÊÄ›ú£°´¯}‰ŒÅsLÃE¦åÕÔÍ)÷atqW[(ìj?µÌ—è‹pìá®ÕÁÒA?XWžJ‘ZÊÿ€ùjY9ƒ«c5«k/MÐ8Êñ¼µ…;†Ý.ÿ6zNR]aë~\óc±‚ôËMÊùI]©¶d³³è7êUÚ›i7>–6<ÙÒØ‡hø W^@¯ð[ÁÛPÕ£;ÜÔnšm­Ùƒ+Ž€ýkz÷-«©ÖuްzR·T{´¡Dþqî¹SvM‚}×ÌÉÏ2dÌ!ЉÕpÉžƇõƒf­öè 3FõÚYrÓDã5æ!u x’w?±h;–Qåæ§+{(øÅüºS-:éÆ¿Ž!×ÒdlIõ˜"‰ÿÔNÊ?›Îïõôf-qy·‘ NŸ{¥˜TŸYÂòð|ªîø[ÖP„²Ó7>X;ËêÊÖ÷ýÇKîjqÉ—>ùT–ñÂ_! èY[&Ÿ_uºß³A«`¨[ »Æ¨d¶|ª?h|âæ¿l½Ý³üFÖ¦|Hujò 8ð,1 ¯€]µ½HÐïGyü˜”à)5x3y‡!àºÈ$ø{àÛW¸ !Ê 3Ã`Ô@–xp8¶­N‰ùÃÙ‚øtžL­è*“ _±+ÌäJÂÜâ$,*2߉0{V| sœÉËÃ0E¥7yÛî5¹¿[¼º„ß*oÛ~6²71o§á Þ•¤§‘ŒÛ‡¡ áû½ ¿Šjþ´8­JÉ6ƒP™ªñË>’»wX“QcNnoÆ“¥ ±•èy†¦(^V繊âD_}îÛ¤³(J…ø˜OÆEˆ.ÕƒµArÙ“çp¤­ù’£]^‹(«ùàí„ø•ä¾hÁöâN3¡/7’«2ZdA4yU Î÷Þ`Û0¦7œ@Ð&?V£Ö[à²0j7°êâéyòa¡}+‡7ׯ-pä0Þø5)Û'>åñFö¬3aogéWÄS¯'œ pmº4„sr¸,ØíõÄÑÇ%Èõžl1J«™tÇì~ˆI³ “H* ¢ \¨¿5¨n<žbI^ZªçQÃAÝ2šïŠJ˜•i»>FÇH(øøµ%¥Ø­HKG½{­?hÛÿØù͹÷Ì˜Õ =ãäㆶ•g™Ÿ;õG,«Ì#’5.kF%÷é°Æ«•tu—ð¦¥v¹•Ÿ·Ú2aâì} ŠÑüçRºJû§š¡-×ö+ã$ ®É÷Ò•þÙC­°0óVüºWL3ÑåK[.ÁYå~ÃICþŒd!ÑÅ2U¤Ç•Ý’6|¨7ª¤œsKÒåûúÞñGP¸;„›Šžÿ]úüþ ­÷,rÃâ¡êe(µKÁRÃ+ê³A'i;6·ð\ó=3LyŸ~uÂþªW²È¥«†Õ˜³àf®E“ÑbñZÛšùt’¼T#Z}9"Š£JdOiÕ² …~б%g´vÕ¡py½è­!¹–Q6E?zDß·xÚ5¥ìnמSåHv€·Å=ÔR'ÂãjS ºà¢ºÝj³Üøj iFUšƒ o¬ÄÁçu] ÷äê|Åzû¬íd³Û"2írqTXϪîáÖM[4¯`‡gÀª›'õý¿| †Gv`£yž(ß’Àë5–ä /¡Ø”'Èrr–UÁ[zÂrÅXJIW„‹ÑÄ.Nß/Õ…03åIóo!ŽaDp·ˆË®-êš.ÔúI͸(ѴÆ|íÓéߨÀê˜9@ó@hz ZÖ4”´[‰(8&øùó>º(Óf„ùúä~Wü-K1á*‡°¶€ÿ$»ÙyËÓ*wÍpÝ.¢ E÷­¥ä܇3\7Ï6¦¦§ý·°ô 0š„0ª[ì÷®tß~w‹QÙÁê;}’#T¨}oŽl:’ÑÖÅSý¢É%)ÂI]çÁJ¦`ÃÌ.ÄÀ|µ›ÿ3*.6NÅÄUéU\”À¯‚/×9._´ÇT¡3ÆEßÖ²?kÞÍ4¦Â z6˜r-æ<¾µþ&CÏAÞ…îsÜOnw·3/M°Ò kU¼UÔ(Û¡æмXJ a` +¥§SN[Ô+°°­£ŸS[…¹¸pk}¯“ˆŸh«¢5ãAÿ¢dÁ°ïY³äa}ÏäeïõÛ ¾bÖrVG«¾Íï§â7ìì‡$g•/ûã«DàʰYýE ÐQ}Eú]ƒ`€}ã iM€ BC ŽB‹¼àÔú¢𬱴ÀO>k¶sXX§MÚÆ ä¿msoØÅÐ~ËÌmR8Ӗߦè,I_̓J‚GÜ8t& “ÛÈïÌ k!֦ͪ“-ãÆÒÊ(Æ| ãɱƒ#Ý ;ÕÞ.²yäžàžÎÓDõB–Øv[­_ùŸ«©ÍÕQÈV‹Íô¬žËøÈwÆE¨éµWü´’Ë\ßO*æ •ï%=N>¨ˆJÃÉe.*§ àbɵM³ÖožªÉÜ3ºu)rùõ,k¦»ÇXmJŽ™ t\UĨ¶†ÚÀ‰„74×gO„¾Žóß©²øè­reMç½ö«ÜÔÿRç*êM¹pcŸTÿ°©±É&…7í7<(ó\ÉáJ'(e±bÅ8å–}2Ó–ø}×ÇwFl Z4r~TÞóo™ZFKaÞ«VC¹±NÁo¬í_1ì4v0Ã5óWç´«ü@^`é¾ Wè‘™à,Õû¢awȶS|ã ¼KÐÓN‹ ýž!㪒”Í”oXÿ¹“®5I@ßRù}ayrã™Ýa=&R=j¸^»eõDÒrEÄ9`É5Òvl¹ÂS'}Œ÷ީȬíD~7M ÏÙF÷I‰ˆaãóȽ(?Óˆ2GÐÅ'Žg…Çj³„G%;çù ÿŽWmH¬3ÎEg Þ½nœ_2êÍŽ¥áú0„ÑðNXM>®ª[e›1èwDºéÄmÛØ óIt$=ÝÊ…À ×\aï<ñŒN—º.k„)óa­¤ÝýBñ`Þíz‰9cA¬Y0K ß´ÁZ„ ˜¿H½I–«•`ŽíÅbl>K%œIËKß§Çò]´TœÔØÝ¥˜­Bb³Qvª‹èoÛ|­ã!”½Q<¼Ø®Pú€KäÊ´½dX)ú8ÅD‚И&$T§‰c[&¥G‘=*ÆGÕé—W _êüê¶^eê#6râgCèšzÙE§Åø]Óe¦ÙˆxL œ(âtþP,áÆ[IˆêM§¾²ÎÁ‹ñ×jŽmŠG5¾ø„kx3÷ª–Î| ¶©¨]¼%]S¾7,02Z+ªM1ý3œ˜Q7AF׳sí[l)‚#A§KØïj³³v®Š_by²„\µdÐÔ¥&kû–Mu꘯)J'7ú#¹¢¥» ÒŽWhàRça3¼NîÚíÖëëæŽgÚ…h°J5äÊ£œEŽ–H®<*  |}k&DjÛ 7ëŠvgæ¦Î7êi=ªÞ¶¤—Â'?Âk܇D5ǃ›[OÓm*4ê„uÈá°ÁɘÍl͉G±•ö-öõ+å3ÆY d‹?à&å¶7›D±/+ ð< ½Ó{™ÇÍ‘æzßšâï‚öµ«Š=xî(ß¿˜Ü·‹€'©)—Õ}+ôä2UÒÂø½]Y‹Å‚fëÆ¤ºPÎq9=8Ëõ0À¦ÝõÓIÑñ¾"»OÍ^ŒÄt¯ N¡NÿÚçf3Jú­¯d;¹(,Ù îsEü%,¢H`ïl²*^~P¦ï O[\¨˜Z‹BguóÕ7žà%ôýW¯d¥qÓp'ù‰¥”48¬Í+Zk͹¿Š¿ÞÕWÞw5–±oñ¦)7¤ *æq¥Ý¼d³,+í«P­á¬¶uH%n&j> š™ŸÙ|éÚ$Ûú…ÈûeÅ.Œi!=dÂåà3Ú{#¡œ.3WmF¤Q_ëðÚòüŸÂçp H‡ Î4¼3.E+‚0Ô$‚ÜÖ–_QY?­i¿eñøå¿#þª'Ï6ÞÚ8Ï€]Û]½y¤åÆö¡ îÅ“® øˆVQ€vô…Û{/˜hÖéK“O:Ÿ‚\”Á徜)òñTÞ]wì÷[©ë—ƒmqy³®ºIJ°ðÍ_-7_È~ǰˆþ~¡=ɶõèÀÓ`S·Qs"¡5w«¦R1 -oò7y{±Õ…ª†NÀr©ø¾x^L¨þˆ¢/j­iT½¹$?¿BÂæþ•w+ —ºË…©Vq¤¹ÙvÑS_@dÑÑrä!šrsòÐÌM媔؇^|Û‚d.•/Œ¶, šaÈÊÃdX˜´óõé?qŽß¬_ nu©È_Œ¼2ŸÿÈ*×W~µ’è¾üW1èU=;´.V5 &û-àÌ[S„¢é‡Ì‹ FÊËÙHyÕ à§¢0dëæÕú“àŸs(ö=Yqîë[îej1vncÖGÅÛ4~Œ³˜VõõÐä^AÆ:Ý[0¬<ãfC *ƨMˆB7RõB@ÜƒŠ Vª|Úׇ=‘ØÜFáákY×+FÀƒxgí•Ѭû—X5O`ÿ•[_šDLi$®Î&º­LÿÛüŒ4ß-«Ѝo‰5šŸå‚ôf54ø®J•ß±"m)ˆ$rý¶1ÔÈ‘Œ@ÞnOá"G‹±ò a^eâ˜ÊäŸä‰Q úçoßæ f§b“lª]_”r¾-Æ;Ítבggjf²¯@Ò§mªFÏ-/­ÊŽÇ¬vH¨å•Tœã‰TuP®Ó—!õup¯³ 7\^[Â+sè«&+PPûnQ~ï‹B|ùCéô(°@´¤G—¸96Ópà²SÅxL&º”p =ÙæŠ "S'+îO\£r”@ퟂ¿gÌ¡3å3™~{ED]Ãݶ‹Âjn¤ÿúô}û€ÙnˆìjÅ*á•éCF‡Úæ¬O˜' @j‹¡‰£gC¡1z*Ùã»eï^Ï@ÄNz×;ñº“û^× Ü¨Ö?"Ø´æn`Ö\$²F΃*ÊM?Mûä&CZ$Cãdœ÷\Ê«/äa-!ÃZsÊbø«Š®ëÙ…¶Î/Dy _Ä ÛØ¦AŠõ±ä|ÂÏó.‚Ýo*o ÈÍžú>9ÛqùJz;uç’Cs³_´èº9ø…üãˆöWû¤ÇüBˆ5JÍèXvÂrûÄñú#Ö/‰ò2}ñ6*3ÎùÀ£_wÝÅëTÜ,ŠíSÛ$K—›îJ)iec„ßÂúLt ‹’½1~8£;*h·x PBí>¹F\`XGÔÕ@x'@ßs>NÛ-W4¼4bžŽ˪C÷Ø"ïW£DŸlDòWÓá.ðÿ(”¶׌é#Ë£­9ÿ™o+FÎЭiÃû0ÊĕٔÜõO'{à%PôÚ˜¯&<«ñÖØn³ØU€ÄÄ>cçz H¥\ͧ"Žoþ J¥}ï{ðŠYÁG-Xäø&J’›ùv5š†ÕL(”2‹àM䊨|õå¯þ­E‚Çù0Þ¡WRÜŸuâÉ[?à pJgTeM1Ç2?ªgM×£öX[œO€Öt¨®ŠÚÞ²ËS `ò³l“EJk˜®§#Fs²§†¾‘ºçÝH·3¾ªè&Œ¤+l =ÈÕSÑ )͈֚ܳ'Ú?„èO:]?,Ó+;Ÿqrkœ®‰^à‡Vë°òô`äÎþtõÃðö¶+[«¹û9ne~)¼VzÍss­ œAQâ ÿVÂZÄœð£Á+c;J¤^ÍN«v/Í߀“"êÑQÂuq7œò'íë%«³¼÷½ê¶ê˜²Ú Í<m¤²¾i?9DÃÏKÒ=l ,ˆ—è|s*Þ¨à8;p*·tºœ¡\É®zŒT&3§™KŽÀ&=¥Ó"‘?fвgó Ü*/>s{(¿êýy†Ae¿ó ۹ߥ ‰ò|­1Õ™”i«0³f°(OõŶßA¼j;¥?G ”µÙúÎðÝhAŒ8á8y£½\!AÚgzPDF3T¥ê¥d1ˆÂÑÉ„×ËŸV–/¶ÒNkÔм Z’7G±yD.Éå…IÊ(™Ç‚Mšóß›½)zÑ—wÊR:OæÎ€ŸNfñ¨@qô«&‹ã@xn—¬U•þ^˜rr!á—nˆ§2®H)"\hîn¿AC€§[° ¬æ ä„{@ñäUóã˜Iëe“üÞVÞßÿV¦¼«Â7 Ø3aê!K8~“´}Üï­*—¦9_ˆDÙH5®V$ß‚aŽ{ëL¹r­Š$˜b(‡t¹Ñ«–#—ÍB(_º *ù´¥8OÚ­Ð+¨¥bçŠÙZ4­õ“2(0_ 2š…=l­jw2óÚŠæëž‚¤>ÌHŠÊ mŸFVí ,µ Êiç@ªÓÉSdd&Ól9®ööÌzú[tdsçºÇæö½D=þ£4‰d®çµ :s­¡¡t·Ë¯êÌö:Ú7GMù(Üð7Ø%ó}ø¤i â’pKÈcOtöëùžU€œ™jŒ^»ã¤%‰°ªÖy’k©H´1 z€äÛààþ‚œµ±@¦¯/?…Ðeß뻼ø8¶wëaãwr;pN“+W:sਆÍÑ«†8Þt5¸*`X­Ì>êP I2¼‡­(p{gCêݦßGnÁ{\¯[H7`¸*ŸœóJÙARHÁ`& ÒJžî¤ „QF¼¦%ÉÖÀ†âuIENIZríØÔ7†;5Á”_‚0‹¡õk_ˆ:7’Ð騤ËGµ’÷…Ýg cÌêu áV¾™Ÿ@~:‘޳·\çÌ·ÎhøÌ3éÂ?ôùz¿ØÅœE8!Bd£±@¢% B[Ü]TMÕü vRHŸ—.°øzÔŸ-;rÇ+2‘-²LQt„êv阞àGµ>Kø› U¯C…s‹P£sõ”7µ•<_Ú…?ÇÆ¤§S¤×ë>â$ž›óíôAÖ«/½×U-ޱÒW²Sf§äålÞ i0“¹Öô&È ðpE‰‹Ma¾¾Î½® ’´OŰCrúEfLË+;] ¦–Öñ¡9•‚nȼ³ž„C{M€e3 ÞUåUWófÝ&VãûLâKø®là@Ñi–"²d¿àkòC†÷°I*É%ÐÚyEܰkPaÈÁÏQ€"̱ªç¢WìÄWk¤'sª.§yc!˜µ Uÿ毇Š9·PYOD@…6@Ÿ’Ô°ïæ ”~8'ö?ÐfÜ«æŒ4E¦†¡~ôŸ›Üjó'Ø£JÈÛ™.¹‘›~Çt ¡õºÈóvÖü…í;QNs´é½P8!¾gÚ¾Ýlü!É5&ºßI“^> ,^ÉÙŽ™9ýQáµc¢FŲ`¿þ!žH ·ŒÊƒ÷udEYß©ÎÎGçþÈ¥™´»yGGG¶ü,+ º ´hê"öö'ÕGÊ_ì?»B½©xi,na–W×;ß› Îf$"uÎnK®ˆyÅc0lÇ+ë>Üã§2È"IèνU´ýX™yª—Ü£«[Í+·YÛÑdé( M>pï˹§þ! „ÜfT2äòéõ ì„.[izîçº;QzÄÍÍZ¾ž <'6#̰NÝ塸ƪ“7öªñöàÊärËLÂY×;hÔÉE; A Ã.:»ÎˆÈ˜G™•!¼ºP޳uë0I§äþ$HðO޶=”ÓÍÎqb«Ô‡wQ¼*þDÍ–G+!ÄE×¢„,+¯W–81›¸¶N7bJ0Õ‰P»YÆHTÒ"®g^º(!ëÜøù£«+¦¤“ö“´_X" Mbx |]É<ÃÖÓÎK»³Ó¸UuÊÍ?h‘¶£MI§ª˜U£™‰¹›Àh’X·.‰‹þÒž¢¹[ú¥ŸdS'sGÒТt™Ñ'%'A%½Pªíåÿ­¡í=™¢Çeb ±ÞD¶kX¯ æ^‡ÝÙž±²êiÕ¥UA bÖú൹'œ:͸B ®\ÊYb .yZÏI¿¦…ʉß2þ36‚DÊȶSô^$bÚSîüÁ •ø^kjWgÔuí}Db¹Øp‘D‹ÛðÔ_d×Ί^áĹ0-AM4/xi³Ë8Õ§ßQ Š?M1¦+ ¢±È½”ð&òR"Á©"º²ƒ'5bË뉒â~Î$@U±D-5bÀV½Õ GgÂ: ‰,³ì€à-¶^o³9ida!ºWìd÷=¦ÊÚ–¥".JZà4ÖlVà\â‘3<˘ÔÓ—m¯î\ÓÙ¼7Í>4Éa¹ïÜý‘åjÜi‹÷ªU^¬@mž¨ZŽjÐvíÎ;)H¥j™Åžúü:df`c–NÊÜô-,WÅêëo-ûW§".ªbíÖÃSíw¬UòhõcÝ?Ð?Ð)†téßÓ9>}WÜÚ÷ýÂ×3®fÊìÙTDPñ¾ƒ†xuêÂIÞ >çfHqñ¥&{&Rœ®÷[KÊoã=wf š©Ž1;'zJÙ,ªÍ­ÓªÙDsJKŸ(fs2…iHo3ç£#-«Ï²¸^ÀÖÒ– áÏÉL·­{Ó‰™ –ÒTL¬Zß‹ë¶ßkû,±åÝ\¹\]aQ}°à—º}‰Ûªnƒãn¶¡þ-ÚSÅjrN„GÍR”M»1ң̚nö´ã!~Ý“?†¤Gå)O“=B7ïﳆgK‘ /…9¥…9“)ôJé Â®%‹=k;túZ ëê£ï«:ñ¹QèFÞ￱“6úZ1{NQ\’_\†®œŽÃ.<_ë‚×yG…^Q˜²ôø¡&>Ò´Žé•¦¼‡€ãã6‹]²ó¼_â»-7mîÝ™8k)Zt«c‰åB€S>é㹟’E8\9Á”÷û ÕXa•þᇡv±(4ˆûÇ—28#´Êµ„.Qð º·×nóÅ®vXó¤{ÒhkŒš4‚‘„Õrz¹¼MóDíf|Æ޳xS°À‹|-G”3"îj»27FDoÀ©sÉîÂ#%G‹ˆ¯n»RˆSýƒ^‘ëµ8lQ" ÿÐ ¹¼—j +éÝ^äÌÑ—ÒQFÅ 5^D®O°c~Gdø"Íyã3YP‡{0qs±8uZjp×ÁPÂþ 2½³_¿6’/\WsâÈ……\}0«bßY@ž³9õù Ë ¸`ßXÆ‹˜Ëi_M;ÏÅÍäãŒÉ&~–ñŸ©ºÏ Ú\ÔšFS UáìŠN8Æi^_;HÇ®ŒHш*PçÓ/ »Õ´ñÒr\h ÉÊ™ˆÀ^BG"ö™Z9w’û4’²Ûýðì/Þyô,VžÌa»/*Šæ¿Ø¬tdmŠñrùH|¦éÃnźkgèûó»c #xè÷ làrfãß;1¶väYF Yƶµ¥b $›ØïNÁç·Ö¨¬iNLŸR]«ŽF:îEŸ†{ax1è^àHBüÑS‘ë®t±1E»n毲ý!Xv Ò´”Ö'êLÉX‚õÉž:~â°³Ub…€#š[PhØ…$2é01t¯›ÕK¢L í(ÇÍŸÐ$Ú}JžXÑÐP§FwNîÛ¨‡R ]D>9‘Sœ©VãØ œÉó-«àåOÛõå­»ƒç³¿+˜TðÓ £YB ^²[m¨Mö†Â"½‚}hÏ*<„q‚‹Ž<øþÕQ– Ø¢á¥‰Ã»·G(`€9|ƒÅ‚‹¤=xª/F³Žøƒ4Ó*ïȃé׈ʘ[9µ_-Â͈NÌa¥ú·T:øÓ¡LŶɴz”/7sæÇ5<ֈᰋ¶ïbÇÂ|8#¨Gv`r-É›ÞfMmæ ü ¡u/Ћù|°ùò•þbœ;Ê‘+ãÇHm„¾“ó.¨õ–€ýžoÅv'…þ1W kšŸä;T¾íuò*]#r24’’h8MÙl~ ‰°O®sñ¡ËJ»±‹µ'oF-Òh)gE§ªûݼg$üX#vÂmXÚîÇ’'BàébŠ!âãª)ØrŸù:#×%&=_ÊDà¶I(䖿׋ÄcÐQUªGû-ß`-P›þóâpöj©üêܱOû*^=ûç-jG?åõñM»Qn§ëû}næˆbÍžJc+ˆ¿T(­8ŠÃç\|Óýêôy@ùåè+wf™ÕŸˆœGTõ“^\th˜†ç"ûðÔ¢ùeJQjÓa¨ƒ9j[Ÿ»ÖJ×{ôæ@´z|ƒ‚/_l¸ÜíÍ(Ù~WþËNÚz¹hcG{ôt{%S2E'Oè3ýqÁσb/OùÍY³bÚ 'ÏyX QGp·XÀË.Ü·|uäLn%z¬Ø^Ó̯š¥/0'䱘;QqÈ ¸ÅâÝ+cygú ņúOc'k:ˆÏÛQHÞ„[÷RN_ }`+Ý…3.£o<2¤-÷ŠÒº¬=HÁ ´TGï²²ïãÓRsD"rõh6…ÆáÔj¸’¿n®æ’#BsßIXÐ× 0ÁbÎ8ý”:˳õ3¸¾Gž˜½ÏçÍ̸Ðpáõ'«D6m)1á¨Hx1€Â¤Ž÷ÂD8¢Ù0ÉÑq ë^ôÞê‡øÛÍî‹›¾È“U,Ýu¦È›Ú/óZ¤©ª¨Ø´—)û)·òf¬t”_¥ô&B€†Ô„˜ÅÖ!}›7Ó¢h±ÉÍž“Jª÷v¨ƒ3'åƒdá8Ë’ß|¨“‚Þ$¡fìd–ÄÞd4Þ›°G7VQø4Žnn×hÍÙóßvu_úK¡U¿—µÔ,!*ÄÔÕŠVK—&[¯÷ãaRˆ£ãa{ò½ÅHÿËûHFžûðЇkw ËÛ·.òB•Aà]Ôí“UüRW{]Û4sTk'Ò»)¶ú5À}F€X†Œ!áÅxNP#6žBí))«º¶õ¸&ã¹Õé½#`&‰9ì-}{KO˜«(/õØz”Õ"A §yéÅl³4ù?Ð|o— Î$­8x·èÃ*—3½/ÝIËáè÷Lõ÷Co½ÄŠœŸhüq'ï¿+ _~G¨ªÕ&Ķ´åm·Ì()¬ãÈ0¯¸ûcÑ{ráðº"}sIL8¤ð×Ff)ÄôÚc4ÓólA/T.ƒЏë¹ôiç„ ó+¤Õ¡ÇóåYI<‡s%á^Ä­"L›ñ] Í%G”m˜/¤¼‹#JÅ-E„Ušp¼ó‹”ã§1øº¯¨Â—÷ÑqvÖœ"Ý8Ù¢‚¸jÜu®5+˜ŠU€—xÌuë˜=þœwÎ]š?‹ÒÈÁô%~ZŸ^ à]2Ÿ|‘]ëH³‘îú–µ*íb!4 Ì»sh=ÈÁØžy¸µ¦$ÞÝܵàGæ*+Ù¹=º`ŽQRË8ÍÊMQïQ¶<¶!E5-0’MÚ ø¸áoñ¥˜Ç‡iˆðÛ&›}1Å8ÊO£%Òë!8ÊM} …©YEXÓmò¬%³jÉzIºßàu>xâ$©ÞáZ…¥¥s‚JÌ4—x9ŸCÅY"ùH—±…æÃÐJX²O¡7[$ |„,bE¬”¥bìXVyÛëòÙ|hÒ-°ÙÃÌgÜkTø…­t ;ÿJ£Õ⃼õ`ú›.¬¾‡ñ_Öƒf­ïpýê›\u½Ü‰ëmo|ƒÐ|B©öµfñ,½:‡îm“§½qÞa½^+©Òi·¼;·ú‰×§FåR(ôîôs6 ½ï4™µ’Í^0-KÖ>¡É‰8ìN ³Ô©p®ö× þ% M&/Çu½Rö‡Ï±±Œw–0 ·8º4‰íì’Ñj1€ÕͲ‚aÚÁ+ØE³ÉàBÂJãi9&}”lð¶û4®‚ 7ðkiCÓ! ŸÔ®5mü÷ Å‘ YbÔT^öJá÷5ÐÚ.*dWÖõÏ}a/˜Ñ„.êVm)âD,â~èixHåÁtÖ¥}êž:¨5£Î3¦ïäJ.Q ‹'¸ÉQcJ¸f%þ±% é{²d±Î¨$µR•…é«w·ø‰7T‰ø¶ ‚ Cî)rpTªÑÑ÷—¶P:ˆM2…2<ɳ‡M.œhŒ3ä[7J‘Š <ßGtv#æ ¤™Ç‹ÆÕr÷„pÓZYÎQ¡šHíÇË—‘ðª=<òk­P )ϼ¤£ÕwÀÁV˜‘ °›ûÑýg4‡ / ×&÷xz‚%âŸÒÐzÿïGuð endstream endobj 147 0 obj << /Length1 1427 /Length2 6229 /Length3 0 /Length 7205 /Filter /FlateDecode >> stream xÚx4ÜÝÖ¾ ZÔ(Ñ Ñë Ñ{'zoAÆ c3:ÑkDÑ{ô Q#ˆ JHôèâ›äÍ{ï}ïÿ¿Ö÷­Ykæwö~öÞç9ûÙgf «¾‘€¢=Òª†D @‚@)€²Ž‘E@a"cýÛNÄa õ@Á©ÿ@({@ÁhŒMŒÆuÀ}O8$‰IÄ¥€@€0(ù7é!P{Áì:‚€ûHEÄ¡Œtóõ€9:¡1uþ~pCx IIqþßáEW¨ FtÀh'¨+¦" !!0(Ú÷)¸eœÐh7)!!oooA°+Jéá(ÇÃð†¡†PÔà jøE  v…þ¡&HÄ0v‚¡þr!ÐÞ`(c€Ã P ≰‡z0ÕFšÚ=7(â/°ö_~ÀŸÃ€AÿJ÷'úW"âw0Aºº¾0„#À‡ôÔ´Ñ>h~aÿ †£˜x°Ûa¿·¨)À†ø¡ 074Jƒÿâ(ô+ æ˜UöÊHWW("úµ?˜‚9w_¡?ÍuA ½þ¯`{‡_4ì=Ý„L0wO¨¦Ê ÆDôo›# JЉ‰‚PwÔâ$ô«€±¯ô·ó·Ã!Ðß épÀЀ ˜"Ø @{xBýÿÓñϰ‡AÐ;¨# Aôïì3Ôá¯5¦ÿ0€#?øëõ¯'kŒÂ쑸ï¿á¿[,¤­¡j¨¯Ç÷‡ò¿œJJH€¿€°$@@R @bqqQ@à?óüëþfÿÛª†ýÙÝdÔD8 ’‘ÀœÞßD¼þ(ƒûÏØðþYA‰Ñ3Àýoù?Š!˜7Ðÿy~‡üÿ´ÿ+Ëÿ*ÿÿÞ‘š'þÛÏýàÿñƒ]apß?Œž=јÙÐAb&ñßP3è_­µ‡yºþ·W ÆÌˆ"£sÐ=Aཿì0”Ìj¯CCœþÒÒßÍÀÔ€ÃP}$ öëÞÁDÿåÃŒÄs· 0-ûí‚b&ëŸuU¤ý¯€=<À¾D`V¢fVí¡>¿%D ј†c ÀéAô«±"!0 ÆrÁôÁé—ó·$ ²Ãœf~™þQâéáËßâÀlèïõï; õBˆæß#!ÒáÎ/Ã;Îk¼>¿Å[^éŠI´ˆEsÎ>ówÒÆÏVŸrWzh_M;š¡?W9ù>€wï|ÌçAOnÈRºF>Ku`Mé@ `øûQ#”ÙIï8.ž³F±ŸdÀDöР׊+Åìýe„x¯Èæ‹¢«.Ô¦¥ä6ÀPrJΚ΀~¢˜×µýØ‚•}=bñ€<þ¶‡U¦§±¦ÉøöcXü™RGÝwß5«ø¬‘ÅÅ×¹ƒ"‡…Z}5bÕ‘”tT~÷YóF“‡è¨“rï7£°8•DO•ËÓÙèŠ]#9—pŠ/ý˜.lOñltÔU¹¥÷èM“g=Rô½l^ïÒ!£ízŽñw!Ú–ä'þÚ v%Ž{¬Ó‘Ìýx~. 3¯¾káZgYZvf¡ý¡)ÿQ˜ˆÍÆíùÃ'ÙI aë4Y¸ÄЧçJbúpf·Q³—2iJzJ}M]VçÏÑ»ü‚'Ï`•æ,)ˆã/-¯;Fz£ì{LÔS!‰æÙÛý[IÍš¢§ï(LyUÅÐuZ³Èn[ž„¼„é Ãü<\ýö.uiKɹ ¶S²cŠYcíM¬L]B ©ÅàirRJ—½r¦ªÄÞ<“ m‘M“>Z˜8¸¡b°“@^·vË ÷ûM›D;!a­ü.K§‡¥º\÷Ñ÷aMÛ‰—_”,¦BÄß/å+ý4 ²¥,{ô ßáÉø“ÍãÆý|sÅúhKxLj÷TКíó7L–ƒñŒ™¯&vú:¹Ò6}4/Nq(íFÔ¥†ØÂ‹á•M ¢mÊ‹ƒÔ1&Vƒ`íŽãÞ7MÇ߉AVgÒ÷ÖCÜl¾4êî»ý¨pWRÜ&ãš‹Y«Ö æ”ôÇ%Ž6 R!9‘¸Mžh ~Ärrh"Z‡Ëk} )ܶbÜKQ¡îvpÚǸHÙVÇ(tÈr†Sª&ñÃK_äã'!s=±×¾ŠÈGÛ›Öfî *¡:­xÑ÷–K"[( -fÞšë«h_ ¯Ù ·Þªn-Gj¤ùîøLÑQ oquwxÒ´#IÎO/ÌtY˜ ³USKv³Z¦±p¦®eÂYÔ®iiS`:^0«åÙ}+©ä‹‚“(Ÿ[JŠz¹ ½fa|ã´¹:Û»,õgpyFïR4Û^µMaÕ†u…kä:ù;Xi¸V…ÞðT<«æ­¸—Ó/lÒžRü´EO›Igu¿ù–9ä©À}·Íû¦”rú–ɳ\ÿ€µ“ƒ@°Ègµ28NZב„n~Ñ:YÃL±¬·zUºžõƒéÒÄO嶪0Sd}Æ‚W[ÞN²|o}*‹tjnìèG9þðÁµÒÊ®l•ߛҲïLîÞô2TN›+ÆÍ5Pq"¢#V°åÏ¢Í%ët¹MóÄy®oƒ]QŸå=ŸMYb¯9¬áç 9 óù‘È;²c4b¢¯Yïà¯5VþEA¼÷Ö¢¦£`WhÇ«'aܪ õÇs‹6‡^Âv–FXdÊm™%}®øûÏG‚¼’føÙØœLJuäë·åWRÜx߇‹{‘ÎÞ‘]С×ÔÉRŠt“EmDÒbŒ?×K8´Eè} J¢ÂZõxÂHª€âÓS¤„áêÄEɆ~Ï)޾úGMØP¨8}<–Y/ôÏÊZUJÝzxñjp>%ìÀ¥|ä»´Zk;ôbú…‚5„Y"¥A/îÎF·qC+úòž‹žìÝŸ• ïMÉeáü‹úHÕÇKw6\°ßeñ’ЏãX}`ÅÛ9»h›û2ýÙj3ËÞÌ÷ùèКBž–°ÞŒjå ïJ\]µáÉf5þÜ &9Â^©Ú›Ÿ¨_¡ é4b+Nø’véiƒeC¤(z˜%¦$K±Pè…XÈ2^#¨ÎJ¨ï`‹˜<+§´Â{+è=98¬?Î÷˜1FzãªsC /¬5Lšñ¯ Ñ-ÅÚwâ@}¯øzÀj]Ñ-¢ ]ÿ\eúa}l(¬\žm}üE~†Ÿ{÷Ð]OÉt"KºÖ‹öêµ-Å3üú¦^2Ñ`ƒ£¿ËjàvFØ“ÈpÖê!vÖÑ#]\o™þ¥{pÝkŽYÒ…Ø—"ž¦Q#Ù×Mš^exv âL· Ê:0 ·®ẔóSW–gã €.{³~©K+öd´ØPÿ ûFs«Ôuç;žáÎxÕ»s_Ší¹ªú>w3´6¿Æbp|‹Œšïfˆ›ûx‡Øu4¢Æò’¾¿P›TbüÕñüÈèQã8’j»*6G[£ø]›ÖÇ㣦<žÌ|÷<¾Ùˆ…oÚÀÛöâüœD”¶:oâ® (Ôão›â]1pçŽ×Mœ–£Ê†‹ÈìåëÌ©q)¹Ã,Â"úÏ\tÍ-^íªÍÉ|Q ¬OÿêR¿Ð‡¿l¸ËýafÜFxŽƒˆ­xyµãÞŽ7Föà†œ~½S~ÎàsuuxïSÊ€”„^,·÷ù%å3÷§ª6Bâß½œÇIÖÜžª>e¢ÙFÏEà\j@³#çõ•¾zéîm²©‹—ììáççY7‚ ï$¾ŠKå Ø¬å^o5ù¶«^VÕr`0£ò[òÈ·Ý•ý¡ÎæÏUqo4Ò\PÂÝMÛ—V¹Oç'ô±¾iÞoJ»Ï2< 5Fåóà=²ï+@Õ]·¦XzK£‹–#Å¡•¨*‚èú×+ts-Šë©­=hxWݘÆU–qˆjL§)B?†·áZžPâPÒ…åíò!Š–ù\Ä#NP–c{2Ñ·ÊdšûÒPÙg*ë¾};ÆïhSbp  »XÎþÚÙ×8ûIH_£©ëÐFÆ {éG庤£¤ý¹WmÙ7$ýn¶6ŽV^ êG?jKÈŒ¼YŠdâÝÍŒôŸÑ|\€t®1ÙÕ:¥ôq.h$äÇ{{Îgª}ÿòqŸf\E{ßÀG$ä¬I_<î8ìä’™°è\ƃ 쀄ÎIãòÅCâxUEïfØG}+BƧû[+WȱÿÄQ#ôsdˆæ}ŽlÚ¾éûN@÷GÈîÛâ·ÕÈC‰„-oÇÅ'n¹¼ JÒPÁ÷±ÑOÇz·ëˆµMc¿¾¾ó(*µJZìñzø‰¸£±îÇ“;ÇÝA>gêì×ù áÅ[ã‚­c·Þ¤6—Ýù8Þ¥ö6+R[—*K[ÝãÀzç ïhg… žÐ¦7^Œ¡D·Âüüãl?HK§BŸ.§¦kFÞâs9sÖ×®iÐo# cpR³k¶)Se/çO%޹ܙIº)ã{ž«ëINÅß*.ë,ÜÇFë6÷GÃ…_’·¸(jZGñÜÑ9' j2*ܸ¶HŸG4Ò‡>ÁÃËJ˜á,㵉gJ⺄(`‘­Ò^r6È, eœu1OÒïÖÞ¾Þš¯àK…V7É<òårÝAÉd™| ‘tcµíÂ.5èøp²ÎU¢›£Þ°¿r3SŽ{ ìí+gë†Ûˆ#s¹û~òó*»Á²ºç7:í$LOüÝïØYp˱ÍKð~yÜ5üÖ¥ÌWä¹{Žõ|£±ÖK’ â½Úzn]LÜÉH½mÿÌ_5™z¤¸ï±wÈ<ÝJ… ;µéʦ=:÷ÔÏ…ÝÅ…ÝúÞv 5îÄ¡¥à¢†¼]×,]ápôè‡ÈÓÓ 7¸Aͳƒ¬\»•2j!·£GÏSÜ»Ô&%pmÎ(R$w#¶) Þá_ºjÅûsúIËÌtçá…¸®YÁÄߌÓ4lç>ÿÆÅKsånl|qˆ–a˜‰s9"/v¥ãÉw8n­ÙM[Y-<÷½Ë½Vóãƒy)k‡s®µìÓzì°©TÉW5ãñx_uyß =ùÁQO‹ñ‰Ásö ö—²TôŸBgså·ìD <äÖ"ôé¤[3Œ3X¼:Œ}ôY_‹ó¤•ퟯdÞöp뤫Q9_å«QГwGC"PLè´]u®³Uåémn<¸Õ<§x?smY²) yêf¸[/rŠoéè´5Ö‡“¸zq6ÕŒœ)/ÑÅjÒ¶DÕ{ë{ú'Ñ :ÚÆkÏõóó <­./0yœQ§vbr®ÏÖ®5ÉWÙ1eѧ”Vr§Àì²µ¤]ð%{ns[h $ÆÁ¾8Ù“~8C½¹¡8A !ÕðâÙŠ…“(¥qµ]cÈ¿Å;lÈÐÆb2›Ž”Ÿè»ZÙ»t •ùCSzy·C|ßÉŒV*ý%5ÙöÐÞ¡A¥(¼ÓùÓu­9}§úGº V-¸š#¶[ÑÁÊÆ4~KS„›„2Óé©q—!7ÞÃ|+«‚Þßçê¸ZYdhHˆGŠÿ!èAY0Ū®°‹C!øéy_\äiùVá×ÊV÷qÖ‚™®Îô’ˆül“rCëïRftÒT^,‰ä™7ÍW¥o†+±$Æ”šS&ê¯hJËç³Eo5£hvpNM¬×_„%ËNšÇþ¼u•,Úð*6Ø#X-ç+[É»b§ŒÓõȆ¤=À èQWçj:(I»<ºñàøl.˜Q;{;¬@?…S&Ã>õT÷“Ör¼÷áhò ³t³'Û×zé‹Fié½^£—'Êêå»ï‡µ %«±‰™Öå6ñ°ù>jL‡éØF¦+'e·C¾¡¾.í†ù ï[¯ÌV°¾ñ¾Ó[ |œŒÞ ¥8(4]-¯ç«¢(n®ª~uÉ$[o‚ Í~ñ¾|ÐwóóH ¾q~œ²è¥º‡ãª ^?¹èö„¨Œ8΀ڄÆîX‚Gi‹êësy[$5x:^Ÿ—¹ï KÃÖ–$߯ ßvs¬Ç¬ °ß˜ÑFèÍ%ÑG»’ Æ=¯> 4´êº3‘‰Ô•q¾»Að“+t³¿TM9GúJ:…ì âNÐSÈ{n©9hBüiDä¥eÖ=f­hÇ(Üò/E½å›d” q¹ÆU©€.ð)Ç VÀC­ÀO…¯×=U"sSbH8ƒ¯ú%$¯Þ—¶oÚÑ{)Aø‚T»ù䉇EK¢9á’Çæ­úrÇcBMµM)ù^tê\"ž‘‰ÞdÔYXÙÕªøS¥ž¸\ˆ‹Ù…Kqay'ö¨y WØË=¦š\2ê^“Ò—³º ÚH{çÔ,©y”qÖ]úoé“h.ó4{jI>UñºÝu<‚,û8 ÿëÃ8×Ö§BQt·¿‘çµÏÆSÛÓ{Ñ=¶ÀŽÄ³H?ýÉât£<þšÅš¥Ú¯ÿT\MI;Þï¬O&¹zXÍ–Ó㘢û4nl`^/þXZÉÆ A¯v¼Åmêzž9¤¨¸ õòÏ”»AøÉ°ø«|ÆŽQ5(ŸÝb<5-еõ¨¹›owJoµZŠMÐF`¹ò/M: ˜YÞN Å»OËÕ\{6"[¶þÑ[÷óÓz0¼B*†ý\OtY=Ü»Ïv"F˪µ$31Êfóyò»£ûOI`ƒê ·´›ìÏȬ`Ž‹:jwFyt;d-–Pïû·í‡·GJÝ’3ý[–Ë4Åî(§k])ãy×>u¥Â¯ü8bôŽý…ÁæIeí㣤ŸLoÂO]%Lj-K979I±…¯«¦È½ h’~ˆK6@ìõƒãœåC±Õ.ä=žõ~(;–M=ÄÞùÉr%^¸oìÚËgFÊÓÞ ‰ÆÓÒזꥱ=[JÅs;¾Í½Hë9xÏ'.1ïÃ51ó—ÊäÝ*ZÌzøt=Q9ÜŽ ÞÖ%¦Y£½V[A¶ã@jß¿2Û)ŠxU­êåxMÕ06 ßð"&ò»ølܲt1 œ_¤²»{šsÃ*ÇÏw¨5‚ßÎw8$ÒÑûá{Ña‘/¯>â¤Ôò{ KU¾y¹vF£º…Ï¿5ž¢Õ¹ƒ¤ä¡¹2ýT$5Eo2/<Ù"7 Šž}ÂFÖm`Öö,Lïêd2鯞ß6AHË‘3$µÒ‚órùãÜÜ8eÂÎ–ì¶øíT Ú¬†Óó×[üŠ¢ˆÍeµØ4¡\ùË7±Y+$Ö`”`ƒ®Ð5EnZ€ø\\÷¢Êq;`MM_‚9}^ý‘1 ƒóÆSW‡·AF¼Õ­ÜI×oµÓ¸ßw6Ê)zSø ‘š ¤/Xîæ_pùÍѨîûsÜ‹Á¿e«~9–+‡ú¸ñÔRÛK®·ÀƒSœvúÕË'¤8Z¤ÏÁ‚sä½BtÔX±|o‡âuŠÖ#æ¯ÝƒW½‡ÜÛ_ßâ§–ìZÌÏØ´G<‹áÌ[t9^•§"€Ì¬h?xLcùj3÷+£æÎfBÃËjZ;'‘A¡ÍStHÎÙY?ï ‘‰'‹‹Ö8Ã5‚d•ˆ$ßÜznMãxÅÀ¢x4Å–J™¾|c`^؃LÍ> Ü›ayN5OkzÙc'Fõ=!þJbÓŒµg·º ”ßøÀ+¢æÌƒ!\,4"ÄPúmÄžS–ÅÊ êÂÑß´GmÝ¿‡ýµoln°jC“|²÷)uo/âÔÖc¿™©¸à_˜w¿ÚZ6äð…²¤áÓ2Ã?ŸbO¹j[´Ø85¤%D™‹h ìj[ âøÁ·—±ò©Š4úÞ&ÀžÉš{ðq3ò2›AÒðã™j  Àî^çzêë}¾âV‚Ü“mõA}I¬rTèÆðX8ö¯Ê_•ƒËÁŒÏ¼:Ö˜G*Gð¼%esLY¨‰Ï=eå.ÉPßÕ6”;½+L,&áõp «úüñ,\5•¥oöž±Þ,ïs´Qç^싺æÕô[>1¦R-³Òi ¤™¾à”ÙÇB„ÿ£¦Œ|¹÷6+VúåË»>ôÐë•àŠÇ99§"ÿŠÐï^ endstream endobj 149 0 obj << /Length1 1400 /Length2 6059 /Length3 0 /Length 7015 /Filter /FlateDecode >> stream xÚtT”kÛ.Ý(Ý1( !ÌÐ!!ÝH ÃCÌÀ0tw#!%%’*(%ˆ¤´¤„ ÝÝ-(ðº÷·ÿý³Ö9kÖzç}î|®û¾®—ƒM×€OÎa UFÀQ|ü I€‚–‰â‰88 a('è_f"#(Ò †€Kþ¯$ŒBÛÁ(tœPwwD%Ä$A € $ñw ) P{ÀlZüuêFÄ¡€pñFÂììQè6¿¸ Ü ±û¿ÓrÎP$ †´À({¨3º#ì0@@`P”÷¿JpIÙ£P.’@ §§'?ØÙ´“á¾ð„¡ìúP7(Òjø  v†þAÆOÄ0´‡¹ý± lQž`$€68Á P¸:ÃnEÐÍjš(üO°æŸ€û€¿fàøO¹¿²‚Á'ƒ!„³ î ƒÛlaNP€Ž²&?Ê u†Ûü ;¹!Ðù`0Ì lø}s0@YNFü ž sA¹ñ»Áœ~Aþ*ƒž²ÜFáì …£Üˆ~ÝO†„BÐc÷þÙ¬#á ÷ýë` ƒÛØþaãî|‡¹ºCÕÿ A›ˆþ±ÙAQ„¨¨°8ê €zAì¿Êz»@;~™Ñü}].[4¨?ÌŠþ#òu{@(¤;Ôß÷;þ}"ØÀ (€5Ô'ú§:Ú µýsF/ ó˜ÐÜ€~ýþóöM/ÜÉûŸðßû()ÈòþAüŸ¼< àË' à“¢bâ‚ÿ—ùÏþÿÛª †ýu9Ð?Õà¶€Ä èáýÃã/Zpý%nÀ¿;h#Ð\†¸þ¡¾9HA?þ¿ð;åÿÆû_Uþ_Ôÿï )»;9ývsýöÿn°3ÌÉû¯4•ÝQhYh!Ðâ€ÿwècè)kAm`îÎÿíUCÑòƒÛ¡)Î' Ìþc‡¹)ü 6º0Äþ‘þ^º‡ ÕE¸Á~}qÐY ÐùЪƒ8¢¿*nè…ývAÑ¢úw_%8aóK}‚"¢0 ö&¡I&("ð@ËÔêõ›ß ?B§Ðý¶$ѯµ €`74f˜›#z ö¿œDÿjqG"ÑòûÍt÷¿Ï¿µ…zA!D“ãȃ0‡ª°ÆïrŒž|«xó‹Íщ&Q"(Ή¾öšøÏUF\å­lÊéúÒu¿½Š÷cäÙû>èeþ);x.M5…¡Ô¹,À—ÿùâø“”ÅÁ`7$–½L¾Ÿ¤Ç|ÛÊ Çì^ÊãñŸábmBëo× ¯šÝÖM%¶΀â32¶4FT¼\nó6V¬ û"ª×Äœ,i–án¨öhè +–p.ßGá½l–Ù;;Û“ÝÕ™.tôR£ýhy%=•:[n_r7=uR¶z§¼È™Â«ÔÄ;ôEΜsØÎUcLLì ô g@ “CŸ, 3©s[}¨¦¡q¸_³GŠí§7Þ é[HÃT0¸G VÎÙô.éMj^k>ŒV©YŸHõ Ú›°çÄtÐõí¶q)äÍǺ¨ÞÒÖ¹ŒYXÿ”™èÒ |ª÷VDqØtÊ`Z³ŠÄOOtWøÕþxÍ\þ)§C㵉ç*‡Ûë˜Áãò^ògøLÛ³pßÝÃPZ7[Ô²¼TÕ:Šêk}Å ¡\´žrÉ7µ®UúBÞ˜ƒ»ßg˜^©Ùì}A§Ra°š1¿¶Î9Rfdx©™€âG<d„|”‰ã_Û•·nÖêô[}¤„YEl@ÕÁ_#A‹HÑ; ŒÇ÷üpÄ¥2,Åp·v3h6š)ü­¡ÄÁ§ÉÇua˜å>^jQm_ÈTÏÖ;¯ÅkBLë ¾ÚªO)hShz÷)À%²ä ͈¾˜ óòמ©ìÎÝžêOƒx˜­[D†óÝÁº¸†àx@>°ÏÝͼÉßðLÎ.tÙtZâO!œîµp:ßDrÓ‡ñš¨$ŒüWq|Æ3ðCÈ®~ÿ4\ÔÅþÛsSz[Ÿ#Ù^FbªIúKö(“‹Zu0Æõ¨·Ÿ¬åÙ~NÜÚÁÑÿ±€íaËùÇ0Òœdu*yòQÏ{ÂÞË^‘ù+39IÂzL¥ÒÓR‹—^/‹Õ)JA}ýÌ> @Û/=KA:ÃzKsÅïÍ_GEà¥dT«ŠwL oðRâ}+Æ'Ó]`š€¢~æÌ“üïNeÏõ‰5 Å™:Â\y¤Ý›>:ã&Öå¹%Fàªìxÿ€ø'—œ+‰*B\HSTJ Ö‘Ùfš{qÕ$YE‹S½­?UFIÞÅí蔨ÏálÍc–üìIBdXPó8a—¡ ÷Õ¾’ˆ˜æ‚ÃÒsë‘~Ë0YÛáMŽglå£+ßçMî(Ò°&ÑËŽ-ݪy¯Ø‹èúÿãÆËIH/&pß«ÎØV >µ 2Ä:àB5€ ˜6"«ŸŒqΙoåŸ3ó—:_»"jˆWÄãÑœ 0*tËËkT¾¨ø÷Î?h®7›öì›âíèÏ»yg븨sÆ›•àî×ÛÓá›-ý;lãÆ¢J÷¤6YR·Úœ 8¹÷Ô›É 2½YÈ­ÄéªH7ªßRO[u½šð¨Ü´=lÖ,Kýk“ž=a\.fºø»¥ðêÑú‡ øŠ´ê×SÓvø~=Ê•V†‹«Žû©”OÓ3rF²&â»"ÊïÆ°ö³ä|Þô²î´ 5 ~Høæs.á›;6JÓµ>÷øa K¬ wdÏ顨€áãJãßSx¶øGWi×ív'ÌݵçZýÆ¢åJýläIª'"›œòÞïüLnû\“*£ô%HtMK æÕâ†å¢ˆqT©÷¹#}½ï¯T=§›¹µY+‘ñ¶!™)k´ôÕÈÆ‹ŒŒÑ„ ÃYÊr·< {„+SNŠøîÒ0Œl¢›=ñ:•›ƒêÚz—‡yœMðzVø †Aæê2J/­£b•>Æ‚“O¼Q·ž}°aà!³´Œèä§ìõ|¾4c=;]ÛÅ0¤ßÁ~o­ÝF\z¸³?™Ã‰»W&Bâñ&Fò.ø<ʼº¢EZôÀ8´Ÿv1Qy—#pʆu#«ºL™mèáü>¾¿iŒ«ÍíÆÔ2oëÂðã6Ø¥[³ÆY—<ð·.íuSOM6´[ãåлþ«Œæ4cŸ¿û†P¦wá”]ñ×Qã‚ ì¦QjáÙñ!¤ÊšYìÔþòqÀãÃÞ1L!©v²·‘Š0Z”¹eDEÑM@h ðU^LRqÂÞ­¼âç‚`®<ü}#Á©FmÅÍï6´}îϵÅÂq$8ºŸú _Kè¿ÎÏq³cn¨}M_â#FК&;äp(‘&Iþ#£xˆU¼2ÄÁƹ“7ü.-±Ø6K»¿RSâè~Þ˜¼õè¬hLAY±h5òVÄ Ó/JÛ‡0Ws|‡%Ö…¯º}ܳEf]ÇêνΨ;.ÒyÄñ”Ë+õÞ>l/Fó1IdÚ™6ŽgކP¹s¾½ýG ´xŸ©éÜÉD3¬S«êY÷ú[éÀ瘸‘.éß‘¶,¤3³U=‰9ͨþ„Õ;n¹¶=J¿\)ÊßýÐÒáú¡‡"ê]¬JiH¦J³®”\ýéö„Úmç¹€ÇUË!/ÍCéúw˜åòß^¯=!¥)3ÿ Ÿm„’³qõlPDm×Fs|1‡)6\ÇöeùŽ"Ù×ân—OÇf‹GÉöo0¨›¤Ãå ±e žòŠxsâ×Ä-⨊ |dÇcòy{ ô‘t¬ç;£«$¥•±} P[4É mbºÉ%ul JZQd=ýöò¹4 RI@õ¹mktj©‰}[8“‡Œ÷šY/RNoo Ä(ˆí7–ÐÀøºö‰ñbÈô›õ¯±$sÙ<„Ï:-qôç£ L8°j´E>/EŠîŒZî4Û¦b—E"Íè] Tf¶yû‡ ÜÞ½ ê(l=/ß ÑvzC]BÇ¢xG¦3‰"ñ Óº…±7G¼bjL_*‘ñ¨©dË$Œ®š<Ÿ#´ö[‡L¥Ú$å¹)”‹Ã¤íŽc ³,eê7L•›Ä$švL Ú:WZ[æ‚Õ9ô„Kv,}¼RÉþ²Ë~Å–²u|X™Zk,žÙwv-µÆf% }k`ÍQ°“µ¤?»ô=9u·ÿæÅ1"œ´äÔ‚Ï"?»y‚·(ûäða”COܬó2æ¦v@Œ¤6ÆnÛÐwD$Î%à©#J…jÚs,ŠòHPçá}ц-]²1ýû÷Z§óó?ð’”t 1Ë‚ÈJ«‰#çât§qSބĪbZ?¸'ÂüõàôÝÇQÊÝ1‘69­ë»íó_°Þ}1À4°o[Ì(¨J.xÄ6¸ò)‡˜L ¬VOÕ-z­õ‡%¨ñ…±åY•ÚpU‘ŽËó"‘Ö|p)i„ü6G×7‰ÒO¶LÙæ¨¿M=x\¾È%ǩֈ¦×uÆ·ÁúBÃ1]Üé‹ÇÍLèV“¾äZ¯ú¬ü;6ÿA¨Ã3aºÏ¾{ç;ó¾Ó|‘޼ª:dû¸óWŠobŽtú%Uiö½ãdÞº–qáÎÎH0ãáŽ0s96ãÊ_ÆXÔ!ôGÎvçúÍ€•L ‚³$UGØ»Ž„Zµ¡ ¾ µ.¡ß0è˜Âʾ®‹<„zÖÅ1É^07žgMêø}¨z°ÜœÖÚ±à­<½³%pðšô@8Áxd_lì²ídï™Â`¨U»T×fAÍœ“ÙkÑ}|ä ÅR}Ñšµ ÿöÐéÑ!6Óo=Žía2|4ÒŒø/Ô>Sª¯ñéËñè>¬cso‰>¨Ýåîn÷ÀyM)xuÅîóÃ2<£%ñíƒÇ?‹eÙבÕRß©û”H;%5¥Ýiö ×ÔæOAÍ©•Á?7X»²W|¦º[6ÞŒ‹ ÆMµƒ<–õ̬êkXâ~žOurÇó6Hú]>}g NCT1º%xa ”¸ùäæG›ôÀ¬6'}Êí¾*JUc_‹sÚù'jLŽÑñU½ãù~aãJ5Xi¶Ón1D5E¶Òˆœô¦¥íH"¾g˜\ «2)…-¦­j™Ã^móö´í«yE^~[NIŽnŽãÒÙŸgÇN‹0V6\7Éz}‡“Ÿ)”ÙÄ÷ÌáÐônXaê.’³…aéVIøGMĶZc£¢Vö ^ËÓœïæÜ)LÙ'QãÓ‚ 9ù6{âŠÒÔ ‹@%ÀD°•ùVZ’ŸŒùœSkŽ…k ‹ž€‡–ŠÅÄ7Çþä?¿]ÌÂAãc™N÷ã“LiSµäOïdMrØTí=ìò—‹ÞiêýZ˜–véáú5äÅsª£>F»ÇÕË”ÉR,×d‡M/o¶u”ë ™7Vùbø¾ï¿DåBº8ž?ÆÖ—ÓÕ£m\¾Ê|¯K¨u!RØ4É2æƒNZ=fÃ%ûié½6½:ŒÒ3bÿ组à{ƒµÓù[Ü‚£ ²Ò·D;äkI§÷ò¨üêRµEîPîôé©“ß©GPóL^ä/'¬I€7Ö]ÒmÀb™*m‘² \L£Je•æåœ¦Ô–ë’Ôž@é‘æÝŽ+ü»§¤‹ÌN…ÆÕe?äõS³'d{?ô8#ËbÙ¦À/{Œß¢Ê³O›ÍÏ5˜ôƒë-…k';õGˆ} RØX¿pQÌÒðÓ†úÏMðÉ÷ò†õ·ÏeÞ,?ûÑ›º f løZ/¥%ö>h2¢ÇéYÛîØ‚Û †›d¿®S‡P?·7ï©ákqáJ첕¡NCQ²Ò’’ÛNgÙ£·µõly¼ïˆº,]ã8ÉÛëtÈì²:? oêFÖ^31ä±È•e’XpH¦¹u™cxµ+Â"D•…”_éH5–ò®©iØŒL¥I½¶îi­óÜ?ÚWWë:¬5û®X1„·(*œxZRÚÓž|V¸AUjÙr¯?sÃÚïþøðˆø ¶U9'‚ßQ¨I<æÔ‡›Á²ó}X::D§‰h¸'ô°Vî‹_5– |ìfŽþÚÁD(©Îø¡Ü²ü§¶aß57§;”ƒ‡çb€åAÇÞË$èÊ0ÅM¢^„v™²^VÐWzÌ,¢g{iñ<°æéÍ:¬Ðeñžª|ªi­rFg¬ˆV³’ü'Xbuª!¡ÀÍѼ7LÐgåÀÔ:HRŠÒ2Ë\¥$3A­&Ø >[mHjûmü8R“ø\!åî°ýs"Oùc‚Ûol2‘Cßü¾×øæ`ô®Šäë!f›w›·sduKÖ¡Q_Âr§ùùú†ÊVŸ8Uuµ|>*Ï¿~ŽAMu-5¨ŽµÍ§R2ÜñЇ å°q°¯ìàÔ"É}¸‚!7=ª©©™ßñFn~Ú°„N.´•Y²æ.¡Ì-+ÒkŸÎaÑgˆ]Ý?îQ´Q0É"ªQîÜRõxEU¸·@0P°ŒxjUÉ¡«®G^6Ê”ò”­Ût3ú‚”ÄÐé3#gÉpH#ô<Ƹý™è1¹ÜÝ|›±õJó ™Bˆd{c’ÁÉA™>׿õ!ÎîfÜ{ÊÿPŠ…H÷U<ˆç]g"cËŸvÐM–|øJ¿{)¼Œê#«Ã+Bÿ×Ô¼d‰ºo”ø ‚Š«Kƾ QÖg'®¡Be¹ªf Gœø?ýÉ#üÄ«y§ãõ:æ§jÂíI!çÃ&Ñ—çä†C~ý@ƺ»Çk'ÍÇžELºÚ®9«*sñî‚'„×Ïön\Ì&út¨UÛJ卑ªW3ÍëÿÌnÍ^3Æ¥å­e¤ÁÈyËO®Ü1®/pâSF„G0¢Ø#‰E»dW{ä[arä/rC!s¹'º?»NBÜ¥‘~ gêDRò­ó&¥˜%Ǭ¤¡#‚>z#ßÂâOÍÄïVò¦ˆyÁb<[EæFö¼òz¯ï±zÿò©1ô„x8m'ΗçhÞåE=â³WêÑšF[9¸öR¸Ç{ú J¸ptãeµ×â(ütk2÷³‡«†åRNë…ßBù´ãßµ ‚A|ÛØÅ¯l§2' »ÄÿS*žS]'ERŠ¿˜øèƒÄ”K &}QŠÛ>áTPDÍá7ï IÚ;“²s½ïWSèÈ}É™S[ øˆˆY¨lš 8‹,óJòLCí‘IèxDàôLœ4$F¨ùV.±f™Ó»Mönwz«¥&œíõ4¢oc÷(näß¶oñÙíÝ>ß/_é ‘X—p)º¹åc Ø’„[¨x•&IŸdfK„¨Éfµxpéåר[É‚Î7Cýe²Rº£…€"J|Øœ8,K™µ<ŒRP ¡¼'úY•Éý"M‰®§x†ã¢(Xþq áôwÀh¸`|Uë¶dú{¸äµ&i Væ-‚8)w¥tC÷®Ì¢½¨¸;lú,¥Öd%¼ŒÏêôƒ£µ™P8ÊëcŠ(ÉÙQù¬´s¶H” ¹µ ¹ÎšÞé¥8²?Á¹²1.ù‰.Çuÿx+œD§¢0Káïošê endstream endobj 151 0 obj << /Length1 1929 /Length2 13864 /Length3 0 /Length 15047 /Filter /FlateDecode >> stream xÚ÷PÚÒ€‹âî|pw×à.ÁÝ`pwœà.ÁÝÁ!¸»Kpw —½ìœÿ½ª{‹*˜¯eµ¬î5%é'UF3{ ¤½ #+ @LAM†• ÀÂÂÎĆ@I©r±þGŽ@©trÙÛñýa!æ4vy—‰»¼*ØÛd]m¬ìV.>Vn> ï íøâÆn 3€@ÖÞèŒ@)fïàé²°tyóŸSZ+//7Ãßî[ ÈÔØ `ìb ´}hjlPµ7]<ÿçK>ffwww&c[g&{' !Z€;ÈÅ t:¹Í• P4¶þ»4&J€š%Èù_ U{swc' à]`2Ú9¿»¸Ú™ïѪ2ò% Ý¿ŒåÿeÀøws¬L¬ÿ=îßÞ²ûÛÙØÔÔÞÖÁØÎdg0ÙJ’òL.. c;³¿ mœíßýÝŒA6Æ&ï§n Q¿WøïúœM@.ÎLÎ ›¿jdþë˜÷6KØ™‰ÙÛÚí\œþÊOä4}ï»'ó¿/×ÚÎÞÝÎû?d²33ÿ« 3Wfu;£+PFüß6ï"„d@' /èz˜Z2ÿ@ÍÓø·’õ/ñ{ ¾Þöó÷2€¾ sàûogc7 ÀÅÉèëý§â •`2u˜-@vÿœþ.šÿ‹ßïß äÐey?VË_?ÿý¤ÿ>aföv6žÿ˜ÿ}ÅÌê:Š¢âôÿ.ù¿JQQ{€7#;€‘“ÀÊÊÂàædøþï9ÿíÀªÿ[úÉôïìXþ9QÆÎÜÀû¯"Þ»÷ŸBÜþ=4ÿ^ZÀÿFP´Ÿg €æŸñ×cád1}ÿÅúÿy þvùÿ7ûòÿ:þÿ7#IW›¿õ4ÿ2øÿÑÛ‚l<ÿmñ>Ï®.ﻡ`ÿ¾!vÿ×Tø¯…Vš\mÿ¯VÆÅø}GDì,Þ眑•ƒ‰…ã_r³$Èhö äbjù¯YúÏe¼Ç°Ù?Ù;ƒþzwÞ½XXþî}õL­ßßç÷+û[|߬ÿ+agjoö× ²qrŒœŒ=XÞ猓àÍú¾«f@¿GÀÌdgïòîx¯Ñ`nï„ð×Årq˜Eþý‹xÌÿ%nv³Ì?ô®Sú/ñ°˜?ýClf•èÝOõâ0«ýC\fˆÀ¬ù_â}'ãˆÀlò½G7ý/q¾ëLímÞ›öÉ_½c6ûYÌÀ?ð=Aóð]iþþ¥ýƒïé›ÛüáûÎà{=–à{ÿðey¯Áú|OôÏ£Þ«°ý#÷œÿ(᯴ìÿÀ÷´þÀ÷¸Nà{\ç?ð½¯.à{®à{nà{î”ÿ×ó|ëõ7þϤ™º:9½?Æ? ïcøþûå=€¦Kóö¦üÁVuÁm÷5"ãlÈýW7pš;xnûÊAb×ìù‘‹"]³{‘Çl%oMÖZ8,Ö¿|Ò"ùp–Ú ÍM¶|&1å]Ùöä:;uŒØíÌ,pΨ ºßÏÐâ28^îÎeJ Pý¨º«´<‡¥nš@…i¥yÚ& 8|?¢R|Ò¨nWšÖJ™Õà#)Ÿ<Þx"4;ÁÆœ¸ü˜· ÿNßÏ‘³ôÕHÂaœA »º/&ØàþÆßP<Úï‘„d­÷kv) ¥K¤®H)·9B5là#܈G)[k¯Ì°öT¥É…}.–Ö)ŒíƒÍ tWüœ/•¶½Ì…Žž&–@Ê©ÔhÁ`úAdé'a¦ýÆÇسéìÖ«î‡ü 2¸¹"R%_·´?uÊÉa/½5÷ˆ^9îLiòvŠ|©g“‘øuò¢ù[N1§–Ž$Bé„RŠ…XÞÜÃdï´ÙC>H®Úb)Fv]Îéb‡ßù»$œ’ß›I/|©ÚW_$!6øð±©R„t/øå÷K_àÖ¼»ôù"„@`8¶ÝÃ6–ßG™Iú€£¡°¨”Šež¸›Äm'ˆê@[g'Pr,Ç(‹V‚ÅWÙmè |¿Fð§·Ô¨D^ô‹ éºpÚ2©Qv5‘ vS~k’M€Þ3YFÿE‹?6BohîT+”¦(w™·¶Žk°Ðwý~Á$˕ƠïYxÕä« ßãGÎKnÇyð,¬›¯T tƃÆÌÐsë<Ú öàbt®‰/ÐŽ»¿ Á‰Î0ÛY¤7H—R°RKBQ’ ¸µØŽ@Ø×M¸(œç°‡ñÉ,åÚè/™b7øÁWØ øY£JÒbkF|ïf‘ÿìÛÐ6¿Ú¹VãÇk4:|”»`=|߀²÷z.ü³5'‘#E½³æŠ•2v¢Q@Ño3"8ÏnÜß\š2ôФUùÕo\'¸Q ߆øû©€[iÞóc¢º ;6RF"! ¨çlBG¥Çl mv|¾‰å'“ÂMt•»Ý <‡Á‘좖ãŠ÷m_%K¿ùYñ€{ß=¡õìÏO1IÀë˜ë \~™õéëH^Â{Ä'+x¡*Í…"Û•ó;íä9‰e£šgøìç›'辑m¸ 5¨pVáªØ1x–-ãK–ÔÞèºî×ÅCûŸ… õJÞžœoÓ,´ÇoÇå^p´6Áð'¯ô-ìU.ÜýâÀe†@%mZ†¿E޹h{ kã0vÁ×D©lë4ÔoëVe‹Ó±"x›½¬]¸£ nÀìP™é]±©7M>;Q¨ÍqÀpW3­ÌbêEWɰÈZ ­Ó¦+ž­ÑÓ'«…|BZüŠ‚¼ £P,ö™db»/ie,4ñ¶þœXýäÉäyü6pŵ±Åºkλ Ên 5ì@’ÚÇÒÒP쫈ŸœpoñL÷ŠYïÒ–³ WÌüÅŠ€ãÈ¡1œº«gŒ­ã6盄¹PÇ{fnÕ›Óº°f{z-çñ:„¤Ô¡âÍÿCèËZö'J¤b“£¿±S áy×ü»E4n¼r®7‡¤0zd(u´L«dŽ+ˆ<ú1Ïž,´¿=;™7˜ºãïø¥T¶-û'ú­†ŠÊeªpÑÎàGyN¤Ãôãqf8ê‹$•Ììè•Çð1òÄ{ „½}ްRÎ9õ9ñBà.ígtž‹fõ-uzò%FhWr¡Þdùü7˜Ž×¯Ö~Ýe•òMähýbÁªÏ¡°«´FyIã#cÙûÑ%Ú2¤²w…æv|4óõçúR¬ÇídÈFZ‘Fˆ†Šºº--÷L¶¹JÞI)ò3b ÍÚŒÊ$hœgl|ó¤¥íYw†å½v²|v.Té=L ƒ¶ñé€ì¹B|£ X¹Qh’Š(íýáê…y¡°¶õo·ÕXbÔx'XúÏ«CT3×Fi_4ƒ4⯮Gp­+l©6"öšD·£„sÆ'2ƨæ5'âð™9µ ”ž"{Ð:/Œì : „¶íT’% £m¸ ˆÐ$Oî´íêíšœ(¸g`®’V}Û)}ºÔÅ£w žtæ˜ʃ{È¡‹X!¶W¥®Ä2}‹YPøbG[ðû×ägnˆ:enRó/×eNC©Ö fæ$Š_Ïæ{îõîìG“¹v:e†KnÈUÜõH Ä2޶ÏIÌ6/žîBéühËõÏubkÀxêÕâûÊ—ù¿åˆçn¤ûƒ> F«ôWphö\wŽ åˇê?^.œ@˜Ô‹øHlq¿DÁ––K±øa{€Û…„ëØˆ{^õr-_ÄÑìs¾kß~Úg•èåiz×~XæØ@¹¬ñ-Îtç/xÁ]êsäR߬=ýûPÅ­ö\¯ØÉÀ¹ZòSǦ‘‹Öp)v¶ÈAj«P@°•ÅòK;ðv~åçop‘¨Çj;ãÂoBP2O)z*e߇ó3x¢npP²~U& f¸¦opP»tFv¶ë(Ad)O·³Uüø2“£94…oÝ™›ý•(<á¾HauÃ=õí´dNG%Ó§ÃS.ª†˜ìrЖ¼Id™'Eß¾'RÛf·3û…ð?nk×®$O@ø¥2‚DŸ#oéèÍ:6µpU‚Geuஂ¢Š‡Ù%%‹^ÅhYéNT4Šë¬lɵ¾ü®—!òâe§âwSÄW Gš9/"9.à8Óó³‘-švj7 eàRW+ò¢9g X ÍOhÈõÀc$XvÇ‚ƒõõHÜ/G£…,¦æ&¹Pü`ž™9Â8“_ŽŸ5a…E hlÍþç .EE }V¯íž\»Wíƒò£ž½I^wéMqsL²]~B(ò.®~iŠxAã)äÍ5ªmaͬëðå 3”1}£ØW½t¹,Qµ’\4Ä›tÛÚóšXw ò­½³¸Vü2Å€ìi`tµHǾ­Ø ¥A÷xäæ[ˆO8 ‹!}¶EFĺoŸ[ âçßp=Ü­daÄêÀ#lSvdoûH60Ríü©OÔ-órå0'ÖÄàñ6Øo¾œ6-9G¸òÌ0ïß¡‹àIW ýqb­>^b:û;³áŽâ~£YB‘„)Ydæ¡wiË&„+;˜¬ÝùÔy^2Ø gøOkb×ÛS|ù~]¿43h2|‚ ¹’"¹$+tÔðÔŒ¯®7#Ã"&²\•× #nç\ןÂéÌ«]o©)ìÄi¡©às†Ë¬Ï–’¼ÁâøµuE|v͋ɋZ¨l(èÆ§‘à# ¢zDPj¾}™8‰ÛczÒÐJV2_1ÊÍ+¡Šë7…©ÄwyÎŽTеPyµ‹c¼4‰w>¢e ò>P·]¤Nµ+£ ÷·Ù`è­¦úP!‘“…¨' ‘wá '¯ÞM-kÃåÂgÙ¢ßÕ!"i¬Ò¬;„Ë3ÒÙ¶ªè}/ ˜[Œ ÷“jlœÅ~vÅK!Ë·ø­7Ê}ÇD|Ž}årCé$½ž³éEpñÍÒJÌ"!×–,Vl¯d7ôuÜ•ìóõu³lBÐ<¢Q’HOq1 iœå cfH´Þ’pð€£´¤ÅrS‹ÁDî•S©~¾ðìF?°¶·$f¹ƒg¾lïÖ¿‹£2`ð)°,>x€Ë–AÎeÉ`T´?uØð™d„Ø„VÔUþíhÜõÅIzúe¾FŠº¨)áR9“Šü¹²]¼×µÓY`ªëI¥AsÛæŽ 1Å´ æÙCúZç£<èù ܺýAI ñ4¤ƒª-½w(õȘuBø¥åµýW©ÿm{Á«‘WUï5í@ÿ¡‡Dó(ùH[À/h‚¸Ú—ÌGwÁîg‹åäMç3Spî'wü1…1Wh„ØYö°\Ê6ΜliÛºßLÏ)NL Ë¢?Õ÷E°w8?𞬳ΞúR\9’m~š?@Ë0I!¶§Ÿû:ö*ëìÆ8³-|¤Ç±òV©hû‰Nk?úw þ¯µ¼NÿVß1C K{KIcQnr9:t»ð»£$²cžú€ÁÖœìƒ/«Œ0Þ¹ŠÛW8ÉUü.fÈõtÆdQç^¨þ`VlÆ Ø¯J[µ´0¢òäH?¼aV¬DÕbˆØëxÕc2+]Z,¿³'úI©˜ü æ1âfJØÛ¨Á’Á5á‰Ó3Èñ D÷^}˜zU=ŽÎ…«P4¢VÐj<ÀQ䨙Ìwƒz}ÿŽ¥Æœ–W¢­Ï;é÷‡¡-äõ&à—ÁùÎÞÎÖªØgJ>6E¼bVñà².ø=tÇ«.%ÞPIðóNÓoŽ­%0äsÉ^ªöÔ{³A^¾FH£-,k¢xµÈ8h0¹rcB…L:ð¶°)'¥­•ÕÇ}ÚÆ¨Kf+Ï#B…j3?vwËWüv‘>{K 5´ë9{¿¸péC´µ·reá˜T`«©>RØìœB‡dÎÅ$/C¡Ì)¢`¯~» íÜ€ŽŒ'»ÍÍÝÿúÓbív¡ð:q œânöqõÌ3k~Ãï‘þ94(´?!–¡Àr"¹½ã«£×Ü‘Ë:”x\Òº$Šõ¹Ë«2Ê)ö¡ò±¨ *MÛ0G®Ð:ßgËÀ5·JÇÇî;™õ~‚.qºgnÍ’•Î@¯b©üå+çÒÅKÇ·]8=-n7Û|[ÈdZEëT°é#üÛ#4n4¨Q¾G5½›&IBt»ÍBȇ¹þ°ãN”(Ò°Ïw²ÁBJŠ:¹aÅÆ<idœàvx•¥IY3R¨Í¸•ƒg“(.#ÁÙb„1[>ö‡å8íd9Z4OKóz‹Â1˕»O"¨Ak+¦Ômª$긌Pq>)RõÝ<ƒ >ÌýdÄ­] Dr•ÑÖÝ2ˆÄ4ü.'AÀ”·‰¸À¿CPCcH׫•ÈyœGq ÿÑOå*¹Qxu­ëNVXžˆÄ´TZa¶"Ç®g°eȯÜñ1_ŽY«ÐîäBX­¨ˆÍÏÓkanÑûâ,KbÏH{0Ñ>óþ­f½½£¯<¸)Rª¨ÙìñÝ™•#±Qá¿׿›i14xp¦R/e*`Ŷ¡ÊþÔ.‡¸2_¡ìm»@ýüÅô*¨o“ÒÕß “k¢…¼æš;'/hNÝ éQ8²U3„èr¬NÂ̱E\£(ÅR¥’ÉÜl­6ÆÞ‰ÝÏf%ê9òî±)æÄǹ¯qc•ÜØó<é± tºÈWkë./TI¥ >:Ë!¼ËÓsîN×§ôº:ÝÙË ØB߆¶Úá:¨Ž¹±ô ŸÁfé‰î'`f^ ­”I!£ß±ªš:«Hél0€â¦ý½_ºb bŒ4ЖJ!°ŽÉm‡ŽÕ5 ò2…†oE[Ðlý»‡|ªÕk–mPàGQ™°üèçA´„¯XÐJN(Ão(nöÃl“Ê-¾&äî˜K"C˜Ônâ("%4Ÿ:´ŒV½ß4“=ˆ2öµs6;Tùn9¶”Îr¨×¤,‡ÞjfÛÛ.Ž,©j~8Ïê®üá_}øHÈYl¶ÆG½¥°–ÚÒúc¶8jÈ'›u—³*–Ã~È xKéžß¦`Й6" S¬5Ê>ÑÙ:ÜvæŒÈxyé ŒÓ¼Qù¨ÍŒè¥VS”•’BÒÞ.(#²xĤ±(MÚQb®ÆQ0ÇB7Ò½p«µñ¨pÈäÓRYFÅà´i¼ñßùF0Ii É'Á²2âÆ db4(ûšoYHX©aZSîGÕ±×ÑÅg†o”ÇÆÉbëËèÍ4qO±Ä6KÎw·¾Ä†[}#¬ˆOh§²ñôJ 5Á rߗŸÓ«ÚêpøåÌaçÖ\bHÁf^˜Ø¿¿[Û]|ûb¥ÜVMKE~@œõ Îñ-øwmgÆO“Úm¢·à»F¿³ð`ÞüÓÆô½š*…Ï–„F<-²-ĵ·ø¿Bò$vFDM¾ùD㎖6«7ÄOú€gt–ŽyXò~•ÓMgîßÝûÚP­Aæù<¨]Á¶x4qݱ?s„ÚÖáBµ¸š£ÈV<”õpã¥Çvx­OC9|ìÎoï28Êž-Ç+çðQ¯£P†üˆ}›²Ív¤[_ÜðCËê{"ÜÓÖ´"­¾g÷S²Ð+¸¾6—±€ƒÿJ<²ÿ*JW›Pd´IjQ‘Èü’š~z·(QÃ̈˓;æ4M•åR@ŽÔü£:Þõw€—¨45@wa‘|ð×U5ižGú‡‚éîçç$&RÎq¼g§ñÎt¥˜áÈÏ©Sñßõñ¿ÜýP>ÚĤ0  MTÌç´¨ ¢I€™%O*Ñ4»L’ÿLoûÔ½¥‰ú;ÝÊ‹ ÷»—¦!§ùˤ±WÝ<°O‰§‰IÿÛ˜ŽjÖÕüúe§¼ž5 î Õe[ɹ¯©­æKåütˆ7lçZböµ=ôî⡪°ÿ*N>Õù±›ä› Êa³&tá½· %([¥Í8èRSJ!ó¬!?zŒÑ„k¸®î¶U]aÝ(ÿ+fnXñ?ïjÙIfÈrÝóN ɺÈç€oVçôHŸ†¼‰Ô¾P±£~å«Uªá‰)ží\ÖgI8^G~AÐÙÉ$Æ:èɶ7&)ݯõRÉþbÒEÂÁ¾Z‚5îkÎûJÜpõ{!Ïd¨fh(ךilž§§Ró!&äãÍœºò··’¿<¡†»sMŽœv[!'ѳxlu_Ù jûÊBƒª»ÙÐÝga„„0£ØZs}Ëú¬°þȯb.p* M ü 7ø9W$oaà×c*J¨ÜA ª_æ1>»†§ùÒjìEü:4q[hFqÍ]|Ö§è°Ò}Ië"Ó™"­ÈT[q,Eéeø"óos”b¶`G$‚hà™‹;Ô¼vx_£ÛÀ§5ôpÆñ…ù2ÌQ‘ò<”|ˆ¹ÔV“Þ"‚œÄ鮇$Q z]qVã¿‘é“tÈÑTŸæaú$sõkØ¥ÙRS Aò –ÙœÇÈ2@$ïÆÙW+qAg.䳑£oÉA¡2P0°ê9p›Î×anÀÐÇV{Yç̳®§Â`å•ðc¨IpuÿžËÃ3´{3g'P©(Dþ²ºÚî ,‰Ýñë% %ڊݺ³B­\ƒÒèX`h>Ï‹ª+ÂÚ˜[.¹.ü}ÿàZ0ÇL§Ÿ»yÞ,v7TEÿÓÔ¹ŽcT`1âÂá†Aw üM€ƒtÿtyv=Wøbá$§Œ™s)lÎfárKÂÞPaÓE—dYâºÀÃ!Ò·E§©µ_–K<,nƒð¦2MôÈRܲGÁsËʾ B4×–ƒ“Þ'Š3ñè+›ñ0í¥x³X>+Èaš¡`×Ú˜Z¦¤è«$ÖkzÒ²¾—ÏÙÃràÚIç?°R¥oùßð˜EY·Š²/´]å³¢™'p›¥ŽÉ-–âŠ?[* ©¹ž¨nïÕ5¢Áç‡þNs&¼¨;8ÓïŒÎƒ´°Õ˜||qQ(u^̵=oàQ;¤ÝÏ…7:P' ŠRï h£€U¸Ø–{ŠZ,|ZÃ2Ì!.OI¢ xªôÓù²/äéPoIgXªVÒÿ)«i|Q„¦gU3)¡2Hȃúñ bÝÛÆ,ÊKkQ Þ…–ÜÕ’}Ãû |¹x¿¹Iaöîn×Xáºo~ ?©}Ѫ—H7ÉÙȯ¢“ÃN–ô”6oŽûÞ?†ÅÖmIŒ-8…¶ usà÷OÒ7(‘-j~9œF_J\P8_¸òË9Ÿk•øÉGl›ªiÍùŸæi»K;ɦ…ÃÎÃm£Ñ^ǵÐj(´—óG}”Ã4íg4ƒ*¡BÛCÃØ‚Æ«U XÊffÇíTÑB¶ÃºœzòLo†<„È‚G!Ð.ßüO-0-Ö©úîÏ ›zë%ç¦hç6î,1„Ú>@ú9)Šƒ®|àE2{Ý7X÷ô×?&Üd.¢ÇSë%–¡_šã¡jçüðG™Éàw—,ìtË“ž³ºÉT@~xÿÇB,?I—®ÔeÉ}`mÂ-}µ-–±,8nÉF–ŒañãW´3—SF‚Ïk•Ê,ŸÕ»ÁH‹Úq?‚ç6˜µmSxz¢á¹…CYè±d6½’iøÎÞl2uqœÓ‰¤ò{”Wa¿ÆL×9MÚZ¶évjà®IËÍK§”àµÝ-¥·ei JláŠncvbQ´S ‚Ư u9N;Ǩ”oˆ¸Ýºô‘ü;]“hF­ÔÒ« ¾@» “PŽëÀ‡Çtv£¯o3_£í#¤rw—àú|úíÆÛô„t©'‰¥½dÿ,hWIûr¾¹#¨´bPS Ý»$HyPQ¥ð'þ͇™ob]=*q*Må帊²TǪHÇIîö­ônž9ËØ"¸àÓšÚëm2c–Ó–Zß…??£n7i’&>^··óàÉ]J;²Êt¸à/^‹c&Öâ„Í/:ZY/n¢œŠ?ÆyÊ,%㺩´|ÐDhcÿ•‘!Ñò:á¶«‘H{Õ.>IOU«´ÁF… —…ôàµP«nœöÁ°ta}0î#?ä…Ÿ“.^èÇlF­¯Ï­…Ýàá÷ûÉà„Õ=ǹ‡Ái0Añ@$.” Ï×;µtŸ×vœ3ôöØþtò* d‚·i-9ðæÎÂ’M+—lv±_u˜A#U&hójþ>ýةΩ?yt6%ïhw€&Þ0Ðe®ˆY5´ÈHˆ×âÛvG+›¤œ]ëSOàÜaV·/Íh Ù¾ È^:|›—ï‚ W«û2Ž®Zï?/´d‘«¥ãž«’®ßÚaå}é>ëðÔÐfÞs„óo§ÙÉ7yÒ& .Dëʺ8î-¶ÔNÔã± Èo¤H #„ƒŒ_’¢ŽQÛK®Á¬?ƽ·xkòÇÊö®T<à—uо±§šÀ¢Yd pÜzðSfr ¨x}þœ­Ú‹dŸ,%ÏÒücQ½l€mBlÑ|ýÊïéʬt o‹3Ò&¸Æ&¾¤žÍ˜ÄuLú‚5ñ„­Dîd¡éUó*ý>I>âH8°«^\K…jNBáq1×ùtñxÔÛýÌaAMu1£Ò­òW±´šœ”< SaÚ:”ð™MxûGôiìO‰ÉU'$T݈”¡µxÁL#í ¶ÝÜÆÁcòƒ5CŸ-k5rk€Š9žSßÂEšM>kKkIo@Ì)Næ÷ì• !†®:¹ŽJoM&r8›*ž~¹`nw:apW”aaÕh©ÁIc£\ò¨øGvÞxn÷§jùÉ~›HªdÌqïyƒÊ%·4ZqKÓ"\·ß|6EʪAC‘ƒýýÊ~¿BBub~÷ª[1¹vÅÝ%öA= |U37Pw‘˜5TrCžÇ *ÊR2¬³°þâG¦Œ¢N2ŒÚPó ‹-ïx Ë»|X‚Åhß‘šÒ*“6àÉy£Çz3šáX°ÖäËÄÇÁïDÅzK£È^HÕï?Raàj=2½oÎNܺxi\¼…d6eûúT$ˆ¸˜J¶I]Áå9¶*¯¸åo•Gºa@ǽ“©œ'"¿ƒ©ÕÓ…¸Ú½6gC£ŽóvQˉ-¡'0ìëø±ï*Šøeå͇hA'«Lvf {5qb'6&¨+^×v5=v¸GÏ£òa3ŸýSê ]¸Œ·c,õXÐ÷úeïÕ-áþ˜.ÆŸ'üžª()üKE´šõR|86~‚ ¯åÚ-íx7ÐÝñ´çÔc[Íàé¶?þãîJ¥ •«=¾Ê|ëæw ŽtyèÔoƒõš´¥P®ÐnE:v—å&…%ôη­.ê(ׯ¾Ò/ÊHqÈïío/lõÈjì. õ† º]ÃŒ[5„ÈS~oÑá>×ç]ë¶T›þª˜ÜÈ /C‚?’uoñ=uÔµ âej<Íô l™ \xæÏ•=æWâ~y¬ÀåÌÎCâÄïý•;ö ôç-&ò6îbF 2÷²2•i¼oÈ’§ ]çÞM/c«ÎÆ¡e´cû«ì‡—ÝÃ\ºd–ûÎÕ S~¤eáfãéò¾ßªÃmS$Šo¤$Í’ß™‚¿ô_ýÅÇ0¡ë¶cˆç˜Y}LíÐú¨FìŠñ’Î?ú$Bײ(/Z8ŽB2 ?IC*ù/p\“3‡jOØÝÈù×§ï,Ý[r¶“([JwºÕ_λ¯¦uƒª8 Êf`öƒ•oÏšBîF0²o*ø×è˜ôßù}]í Ûçk}KW»ÄÄY?³HY;TïwDi¥•jÄe Q«M³ÈÛi–éCº/£& ‚Æ £XIÌ]²ƒÓû„f—MÖ+qfшŠöèAaÉ“ª0qŽlŽ;òåîµmÇ97²âŠçïÞÑ´×"L M€ÐNà>;VèÁ´ ga»]Å•»Æsá¤"ž—œÉ ƒfÂOïì ç‡è™RÄ|íÈwyÏ­kMäp¿g4E% c$ˆ’®Ìb=r´_¼è‡³XÒxøkÂD8XƒÀRï›è…l‹)ªÀ7+!*‹ä2m— ÞׇyÐT@A?ßÏó³iÝôÇÙjÖ¯ÕxÍ šAmŸÅ¼-ßkZÝ—b—Ï ` ¼|…/±uq˜O6L ÉžU?ú7Èv]wã(Bê˜WÛ~ôe5*4k ù<æºàòù_uø‘?nŠdájÑùÄâ {™1ãÅ<玈ǣá?–¥2=¦#“<ⲓm?/'m¨ÃÔì)kÛh®’gÔ¬Øë§>ŸJE‚«Ý }sê 9TðîF±:õêÇ.ôn‚·«Oå.%7P9éHW9Ô²´²°X&v]²7â5ÏA~[Lƒ<ÄÆ‹f Eöt¹§'OŒÛ±4 íÅê_ßä´õ ·)íGæs—øH0)þyîÎkAlðb^K­gf²š‘[Ýè2©>HÆ? ä‹ÁwPcƒsÐʼ»pÿÅ‘»Në{ú¶ö‘ýkŽ/ÞP¥T—í+œžõ‚´V¸HÕi|ÚDèÁƒ¢Ã5¡V‘kž…iPCÏFŸò‡gMd·I ø+æ/iÆ“ÌÌÔ¥‡¸ÂÁ%Èüø›“›U“º‚q¯jE”„¹v£ý!´Xÿ—&íÌø"ßñ©:¸h“œ9¹(³0Î×+‡´Ü™Æ±i»m3õOE$öÍVñ½|Ñž% ¦ÖT†¿inÂŒ,^Ï*øÁ¯ó‚×}µ•Ê´-I.ÈÚ¯ú[RN9ÐË.c'Ã\3Ÿ`ãeÓ Œ\>¥B "KŒæ4_8ÕÌ6º––­ÈÝã¤Ûô½æ“†mM‚ Rî<ÕSÂGòdýì+t]\¡ò…À¤¢AXL~&¾²üJÇÄ>£;Ù-—À—è$Ð}ut ÂïIÄÑF…ø‚Z=|\Ë=&F&7ÚÐbËU_µºïÉlyHëš>ÌÃÚáY¡Äðx·z«€àòX¢@÷íÁŠV+¥–7²ÏH”(\Ù,UÍ7$—&…=z¦§Aâ{­ù+%Ê †úh|Øq¼´ » ‚ã-ã]^y gŒ ¨*k1º×v^j¬12ˆ4H@Õœ³Îv%yÅNÐ'GÊ;Á¡E-hc¯«Hç#2]f8C2Ú/½…gŒ”­çUˆ†»ƒwS<ÕË©ïÿÔ3, ZZñ?¶T›f»±:©N§^­à Qƒá}w¹\èkG7@AøyÛۤߤÃe÷vHŒµãoCm˜+£Ï$’g}óÁÂG@‹™u\¯¢R—=B…Û‰/ƒÿÁIãñ&>ö0ò± Iº™é(˰þ•v”Ù¨ fGÒ¹±MñzaîÝ<&˜Eö†”X:òÁÄ—êx6N}}j†™Tþq2Á»sÛ>$¸ÝØù¡óߛ㺶 §ô‚ÿtÞ/;e‹bæ‹Uáx¾èÄxÈ‹8k+u‡¬ŒrW„ªO!‹ß×ÑÌ8ÛО5¶¾ O¬#pKÍ’0þ:œiG»Ñ†›§æÖ(`‰£ Hüªý’bv¦5ö|£O½ - i2ŠÙ/¼Õ*~4˜Á¨Q¨‚LkùÙå‘’¿Ì^Œ#æú¨!‘# D™#B ãÞRDþëUlÉz5‡ºÅërQ´¼×OÒÝ!"ÝA×ã)ONoQÍDƒ@$.ë·dïï¥¤Ì ì¾6˜pÓ%ÕгcÍP-è›Í±¼[ÊM´à¸Æõz!ž‚)Í–J?4}3~uæÃf´.ˆ_ôÍ YÔ¢CdØÂ9L¿iWz®¿£š:+¶pYÌCÀ2ñ&ÕДʼ“½¾òOÒTèt˜$¾êl²OvG †6»âC0`r‘ eîIøå¦€¹™ñ¹}Ñ3•ׂ$5\}Ùnч•6°Ý_éWÅôŸ®]o”™øŒM8^µTîò›£àŠäÃNô0„3sÉÎ(|ëÎŽ§°ñ-ù"êk#Ê‚ Cÿ` þ¹ …͈õ…‰2â˜ñR—_œÈMd|8ª¾\ʸ¢á"à‚„GE?týÄ5Œšbˆ^Õ³¯8™^ÚÚ¦(Ø‘ë㆛}¦o=ú÷TŠK‘É{Ýàð Ó ÐW,Ôq‡÷r‰¾tB0tVn`üD%8×'>ê… ¶à£Ù›¶ñLƒâç÷l´ýF‚jN w²`Ó{˜smýÝ|&çR»<»¼ã#rk(еʤK,S»|ƒD¢„>bäÂŽ^ܯ¡ßËEkEâÃÂŒ?o•@eÁî§V¤—q H+ö}Km‚«à‘Úž:5ˆÑ5­\ÃQ"Ül|Š˜R’½Ö-ÓKלV­ÇNNÜobóTÆ—{›!"’¾.™œË픳” 2òq·}†Î7ÉÛ¶ä 7nØO¿qëÀö  0t´ ²O§œ1¼/:w™å#M’N>I©ªÔÆ¡'Vå½y§£áRü·g6­8}×ô÷ŒÎY&,j?4-äfe¿PòºWÀwf:I»ŸàŬtb¡`‹1çRr[¥'Ãùl`xøŽÀ –Âá·mêÛ±Q€_6Bºh~Ú6/ßT0˜ë:õoËR· r0Y‰gÄ´ŸdJ_¬<?cãE+?”ÞöƒÉm1xÖ¼î ÷ûãJ­–Ìl›ÆHAä·µ°õ‰TW3lºyikpúGÜ¿-Ñ¢G/ºuÜô¸…åP¾z ÇÇý†YÐu¯{³ËÜílËíUS¸ Í'•!•Ò©Ž€Ì*ò5j]^Gæ€Û(פ´§î)êe©Ôˆqo®)&vþ) ¥D’PÞE厼ðeX.Ÿz)ÔÀÚT€¯C?@÷±enýô‹ ëÁ¢Z¸uÛDL!fÍA‡à°KQëód¾?2ÀÆÓºÇÂðw*–Æþ9ö3j«RQ.KØr üüÇ%áœÎ´/  Òàå’Å”oÜ`(QDZR®råq ýúŠû?¢‡ní3|:M‡É9F¿Ñ–jrËkÁ蜄.ÀSÀ ²%¹¡ËZ‡e +KÔ)êsi»›æ¥Í%qùXô(MÓÔåà »âNsÞ¾óŠ[ÃÒ~ßz3èG³‘ЦÌìÙD.Á)¿R *ƒ!8iðv®yÎ8Û mK-a¶Óo[.¢|zºI•ã'ÊYÚ{ã J«ét‚œ~üä XÄ endstream endobj 153 0 obj << /Length1 2545 /Length2 17664 /Length3 0 /Length 19129 /Filter /FlateDecode >> stream xÚŒ÷PèÖŠâ NÖÜ݃‚;ÁF‚Cãîîî܃»»»kp \oÏœ9“œÿ½ª{‹*`mYÛ¿ry%z!#k ˜µˆž™‰ "£¬ÌÌ`bbe`bbA$'W6Yÿ+G$ÿ´³7³¶âùÃBĨË>éƒÀ†2ÖVI 3+€™ƒ‡™“‡‰ ÀÂÄÄý_Ck;À'}G3#€ @ÒÚ hH.bmãbgfb Çùï¯*Cj377'Ýßî!K ™¡¾@Fd ´G4Ô·(YšA.ÿCAÅg Ùð02:991è[Ú3XÛ™ðSÓœÌ@¦E =ÐÎhø«d€¬¾%ðŸÒÉʦföÿQ(Yƒœô퀰ÀÂÌhevq°2ÚÀÑJÒ9 ÕŒ¥ÿc@ø§9fæéþñþ‹ÈÌêog}CCkK}+3+€±™ '&ÍrÑô­Œþ2Ô·°·ûë;ê›Yè€ þN] &¤ÐWøO}ö†vf6 {{3‹¿jdü‹ÜfQ+#kKK Èñ¯ü>™Ù Á}waüg¸æVÖNVnÿEÆfVFÆ•aä`èbefë”øô X„ø[fØ™˜˜¸XY@[ÐÙДñ¯Ê.6À¿•̉Á5x¸ÙXÛŒÁe=ÌŒàˆnöúŽ@ÈÎèáö§â"33ÀÈÌ0š˜Y!þf‹ÆÿÁàùÛ™94™ÀëÇ `úëëßß´ÁfdmeáòÛüï3JI‹ËÊIÓþSò¿Jaakg€=€ž…•ÀÎÊ ààæxü/Ë¿õÿ·ö¿¥òúfÿäöŸ„•±5€û?%€{÷ß2ÿÙ ªކð¿d­ÁÛ Pý^~-&v&Cð7æÿÏ'ð·Ëÿ¿Íÿ‹åÿuùÿoFbë©þcðÿ£×·4³pùÇ¼Í ðeÈXƒïÃêÿšªÿsÎ2@#3Ëÿ«•éƒ/DÈÊÄâßFšÙ‹™9äÍ@†¦oÌÇf·0³Ê[Û›ýõÞè™™˜þ|r†æà7Å<¬¿U@ðEýoDQ+Ck£¿N… og§ï‚ÈÞ/vv€3øF€Î¯6€‘ÁÊv€«ó[Û!þ5Rv£Ð_¢ÿ £ðoÄ `ù¸ŒŸ~#n£è¿ˆ“ À(ö1?ÿF,FñßÌ"ûYäþE\`ùßì§ø±•~#6£òo®Aå7g­úã©ýFàxêÿ"np<ßì§ÿ/bG×·¯™½ùï¢ÁaõA¿=ÀÜÿ"fpŠvú†@  1è1û?âÿœÂ¿ÎÌÿ›AÿcÏÍú¯üÿ8€s7ü±ƒcZ[€×æßŒÙþ’XZþ®á¯}b4ú‚C3€g üŸémÀGø_ øa/…¾å,àÎÿf[›9þAû—ÚÚÁî°‰Éï `½É_ŸœÀ?MÀ¹›þ®Ü1SS Õ`™Ù<,ó? ¸@p«þÈüD2þ¦b»Zoë=¸nëßÑÁÎÖÿ£gló[ &³”ZýÏÔØ˜ÿ‘þïÌØÀ=¶Þú÷ØÀݰ±p°ÿÝcpí¶Ö  ‘ÁçþGø¿|ÌÌ`ã?úÆ îÊo&ö¿Ðñ϶1ƒøí~A¦vÀ?¦®ädý‡¸;¿wÌø÷Ÿ ö†Öv¶ÜoÇ? 8[§?6LêüGuù‚Ûéú»`&W Ý2øŸ—ÍÐÁÜOÐß>àgï¿øï¿0€@g !âÒ¼µ!¯ÿ×jÿÖ»ïBøNô»ãgÈwU“©éÝ–ìÚPá¨+Ó}7ìn„†ºÑV·E©®—‰ŸÝŽ›jლãZÝŸtc§v['qú'òŽ…júè•÷ÜŸmÝ¿ø˜C7AvH’gÛ:p¡Êüsêýì\ÓW²28¿«°WÉ!…ôT2M¡®åS8Kžc1÷ŽDOø†ãÜùíìõÍ FÖÄ+±d -¢ÇIk¾›Æ&KäýœëZ™2‹}'žÆ;BèkŒÑ) 7áƒDIÜ·¢‚ð ™LÔ £}Äî#$§<šÒ¸LvKÜŸGÉ”ª37íÝ”†d«tL•1žÈ=À*#’ëQœ¸ùS½“êãa91“âþÖá,ÞGé¸%ú4Ëæ¬ËN¼•½ÔüšÚKw•Yh´eÁNi0b°fK—(~Ëû~ÀÕ÷AVÖêV£÷ó%,¼­ÃQÃ@Õ¼LMŘѾ R4 <5H‚ÀÔ6fá%˜ˆ† :Ûö§ws•w%ÿ¾¿,ö€ Bk?ñ`Ô&çÛ^on9P½&«{Ä9»ô¯&›þÅ—ÇE.øÕdÛOÒ}m­‘n«§zÕXqƒFNñøî þ(Ÿ%_]ÒÄ)Û5ÈüC– ReÆó¸"ò6#£ú5ÐFƒ#!óÞðqn¸UJÛ¬£÷Ü~¡&ÇÄøq`>¼Êêç’¢l÷$båÁÆß ñj7øÝ­Å·KEã•[´$k~ösŇ6îeþM=k<Ûö1Fß¼ž‡¨Î[‰QJîéÆÜÄ ej ƒÂÎÆŸ DŸœTyR¬é:pó…¥ÍÍ¥êÜà¹ß˜˜<ÑAZº—R´â{O¿C•Ô§É%» !ìpü°ZÏ©rbxè5ÖS_ AÙ…dÕ(ûv2eœ9ø´À徺òy"s}íL‹·YѪÿœ!KðF¥3±Ú8V63‰Ï&öô¦Ä]4ТžMò¦©ÛÿP¥ ¦kjp "À0¼aJôðéú+ýCÀÿÞ9ÇkW‡¼hA?„°>3çZÃþ5=» »Î}T‰“#8Œ(¼¨å&]~ô7>(ÌJGJF°WïvÕÉ~èQçu—_Oõ¾[à ÅùÙ‘€®t§ˆ¡=)&Q¡lî|žöÕÄ S<Îè b×ÖYi:Cø$TyžmGÉ?ŽW¿Î¡«3ݲ›N옡¶]Ú‡uEC`]ÓuÎàzH×䙊®Ëúå[íO¼l¸Z|6ÅCÒ(Bœ¼êɺ£ó¨¨(ÅÖ’I‘ª]ØMîªT÷þG“âÒC‚{AãœFr=¹{Ãþ¶ªaú1—x•«å¸™<ö¸äðŽD4¤2|£pDÉ.‡ [_¹e%´`“ûÙ#LçÖÞÒkÅ…ÞïHÌbwÑUšÈYQra= –”Wྠ¤ä%| `Æm¦{QâýÒ×èXìÍ”ÝpÞ“æŒx+O &’*àÇ;ÙŒMÃŽ›3Uc¾­á¥¼.š„­Õ)°}Ë7AuöËë¡‹ýs'’? M7Z\ ŸXÁ(‰Ö¢T™ÔȌ㻮£Ý¹œoo £á÷³|KLý6LSœ[r¾ËNöϨ°\šˆüÄRð)Åú`ƒè¡./¥é{ßL×>s+”|¦(?J /onÆw«ª ¹—²y¬ — Ž•ïOµºQv£ÑbRF#"^ÞÍ–ÍF®€eŠO²Á{=}‘>¯W«­BY^¿ÿ¯/ ·Ë¯ïƒa×ʶ7'ˆwoÔ^’Ô¿ïXÉŽUuÔœÎÄîýd¬HÛ`øQÞ êÕ¾tE-†‹ð%uvÒÒ2Ì;u…W´¼Rú¨W;]ܽ\)®û{UPàÃõ`|GáùÝamáîþ÷Ζþ·%û¨×Õø÷)Û€ÁÛ¢K%Tœûнs`ÞÏ®VHï7ÂêÊ&hÉ0pËpU8Ê9ÊúÉãÁ¾ÁY¥PÆØi³&Y-³/çjº´ xæj¡yT·¢»³mC¿…ïÙ1¥E®ò4 #ÅIJ Š»F4Äû²§¸‹Q˜_‡‚б œÚtû ¡ß0m¼cÍ×í°ìùÍx°á¥pqUã`|µõ ñ‚RAæ[Ë–À¦í×’‹jÄáÈãÔ™jÚÌú!Œ)ÂI»o[-Åâ“ñ"Üó–v°î=œvÕ¿>ß“ó]JÚ½Ôó­S•š|Öéî­­ñ¬t–?„Óñ–ÚZŸÅÃíÚTPø4Gz×O†%`ÜÀI”´œºáÞ«6²c}¼Ïú”N¹E«tç¼öÌr¾ãk‡Ž$`9 Žž%Ç›m¿1…@ä–¡ãÆpû¶8˜îÙíHz;!j¸×waÁ’‰ jN™….Ïý¦Io!«7Ûûyß³º ŸŠýPg»Q…_T"N–üQ˜yHíùŠEž^h Ù.'ÐsÑÇ‹¥è´Ñ4 ZΞ+@š©ºëîÍ;W!Áñ3*^ ŠRË(ô@êþÊÞƒ%ÏMAˆÚé½ä^m3ÛŒÕ!\ƒJ9Í–=ÆÀÈóø!–ï屓Ï@È#À'+å}¾´Ú¬Çþ##%”ñÄìETmGmLQ3$ö—I¸$Ùõgº„×Q=ÏGé¸ÃÔ†±«°ë¿S_9H!‘p ·EZ@1¬"CY_MàÔÍ9;"J5ø+ Œ1ið•¶^ÊèdZ‹Bý˜?‹GáS 6ÒJ¡èxl6xÓ" ¶oòY~nrŒp1aâæ/¬%%b>,8Õ*Ž—IÔ#+Ù£ K(7„ÏÍ:^b,êrˆ[Ì-ÈÜËÍnO˜lmÎÛœ!¦ì¬·Å‚kR]/öÓúüÎÁKlQzE£ÀbƒÛäfÒ/”•úÎçØDÈÝ4?Æpr [<ÃdvED®¾…TÄ_3M“Ú¥âÛ§+‰TìA}ìžvF~Ôœ}œÕá#¡/`&ûÎ.¿.ƒŽ.AÏÿ‚3/ñ‚9ÈèC:†$÷OЉ(è€U€‰>“ÈzCšatHÚ¢rìU1U+£@ Eu‡yèßrÇÔ}C]sv ë^ë5¬‚¢¬¿iãì@hOÜÓÏÝü³O‹uÇcÁtYhÙeÉÛ&æCÚP¢\˜ ÐÉY‹zúÁ²Œz6p…o÷Ç·YXÌ ‹@#TŒš½‚Ûî¼"ÚúvÛsj×(þªtP­"a¡r87! '!êzEûz’ºÂ•›D¦…³¶‡˜\È$¼C —ø4½Ò2·egûiñ2RxIúnÖRi{VS*þÖøNs&„—¬±]sî1Ší¶„è祔Åo÷ •æ­%æ¿hõ¯h›Í+› †EhênhÔéž| $¨È}‰gÏ«,¢”årz+LO+ÊãŽ:LêÝ8SrVìõ#N¿À‡wB9R¯Æù¶j¼qyvVLj`¿ifËO×û^Ãj˜°§(u¯;89J•_eÒ¿hýX€Ý øHv¢xßðšU÷²Zö[™E ½%Écøµ„µÀטQ6¶Ž‡UD$šWmØ‘”Ï g°FH€ûcÇl~ìÌ»A7¬‡™‘–Ðú é=+‡Œ¯wùl+Y_4G7i¾é‘nJ£™ê=†æfº §ž*ÝvJùøÒOnW7pF]篂øÆ .'s× ¸GíàÖßÕù¦ø‚êS†“É\'Kæs¾œ´UßuÏOÏòç®m3Ag¢_{Ëç Ç6¨Òjˆ õ§…Êe)ùx#3ÕzÏéGá6ûŽÏw6Ãí*ùW±'ÜÒ{p†ø¾™íÇY¢ïJ£Ám”©ˆrcl  MÞÐè«Ù¯À³“‹¡úüé½U2Ç61VkÔ7n³mö ôOϲ·ÕÄD”NÒÝ((»tÕ_I!Tk\dÆ ŒÓšòî (èæÅá+ýЦê[?kúœöbSÄËw:7ÖRH`¼KMy=΋2ûHõv$)ûÀ•ÇWÓJvôÀ?3¥]›³/aáXá"µôd>£Ií BovrÚá2…0ÌçN¬íqRûSoXR„I«Ž*Ì¢lKsÆQ—טÜx7ø.üŠ‹©'eîl}5£‰¦=Ól!¾ýŽ+3|ãËÃIPyýõ½eZ24r IeLk“3V/>Ÿ¦àçN)ÌÏl¼c«è5ûæ!ž,$·nѸ¾¬)¨Q®©5ámß²ê‡ãUûÖXn4Ÿ=Oí Y¡ç)g’äSãøsò—é”Þ»ïNÝK(Þ'ÁÇ=#5t‹ óÛᵪ=ea%£-ù¥U¬µ[ Lµ3f$c?è1a™‘ÌY,®Pû¶Ë;w“D5éØtã¥J³<_<ζì¤x˜íÈZ»À¨÷^bÖú¿Î¿‹×›t )ïJv(®¥<.ä(Nþê« ™ÿœç_à«2ªéZÂ6'µú²¢ ÜZ¢A:Wu;§9 픀AÖr¯l‰Ö’(³SWý0ôÒ*àn8žÙ>èž©¸…d¬{zè¼°9?õ3}ëýÍ÷ƒå2®Õ`ú=ß/¿è¢$ÎÜßLJ;NËÓ®Øåb)Wy?×?êò 7¨¥ò^.ö®„s –!\e]XŸLâkSÖ4Ö›’J2Yئ„ÊÀJæ‚ÿ{Òm* ª{¿¹=fÛ•ð4ÿ½Ó¢ôU!ÉF@d„)e±™†U$(,éz£bΓ?÷¨§Þ,PN$Ɖÿ)>/¼GI ýŲö£±åYɈŽúIŠSŸ'Vi1“æ¥{QW95·2¨“=…DY‘ä(\Øìøö©o,KEõbaa GбÞ>RàL:-+n„½„.»`øB3¶±à¯“*;³ûGµYO/ù"yqÚøêJÜÛtE·&}+$iw´Æ{^^HÉǯßà[dD¥÷ÇŽmþz©OXo5¬È½ƒ‘§tc<Û`yþ†”;§i_×®òeŸü’:ß)6ŒXÌKÞ˯Q™kµt[´»Ô>Ñ.â¿)…b}2,! UÀN4"`3·Îß À«ç‰Õ-”}‡mšƒ¤dmÚMM„Ñ#9Qˆžº0€dKEž÷ÕôøŽ{æ­tA­z'›¢tc×[uÄcCq‘Þ7h'UÝ@ }rÔEKõUÍ-\³™ä:ÓÇQîYö<Ϻ œ ý‡¼4l^Cf+/ŸÈ¶ÊŽT­¬¾¨Î=”{Æ4ãÁ4=1U N/…T¡@éÀ„²á%ÆOñÖñ¯çäU‚y)‹>FŠÝOî®È=ÜV©žÕ»”¿ò´Mx†žÞ =$ˆÁâ›qßÚ寚Š),ú£÷u¼¢KÉœ»zJY6¾JãœúÄÀg×äŠAª ÅMn…àÇŠ²Tcv‡•ño>Ü1Ao *éñ²ZJ72!ïZ™0`yîõbŒÐIéÉ¢}5º_A>-‚?T/?õz›xí‹ Y§=¡b´Üá]•Þ±‰:ÿt ­sêk% ¦j–wS”2`D+ ò©J?(¡Ôéf*ãÚ]=þd ?#ë6šb‹2<79{•Yx#²l¡K#´4I&iJ§"*¿Z$RÈdK¯F¨¸Îèî„…ÒÃ6ŸíŒÎ³/ØRóŽìžUþöÌp|r!+Ù#‘O䨏!yKBœµçžÅÍL„‘'3˹nL«p5î0ƒò"Øé¬éÖÞ#Š“¾iïû„ZÞÑýdÞMOðd¡:¯=_&Ú]ı«ÜqZŽÒ;_ˆ ˆi„%+«ÆíWUìÕ9øi9k;ç1$xÂMfЉò­D”òrí7×Çî$x¢µÇ³g^kñw´S3þBm¾„ͳgªÂK¦íðøÌñù¥Ô *Õ¨¨ÆŒ(¬D”ÞÉÇÖý²ž˜¡åd6å\¯2adOq:ÝØ“t”\q8ÖhöÒã|ÃOÈ ±æÍišªjò>›cAié¦ò\Îú¨rö(•ŒôËìS p¶· üû&.)A¿ÈM>šÊ‘'‰?(úI¨|Îñ‚i€È(Ú÷æ×ôUÙŠßTûUõ¨XTê²È,†J%|þýŃá;<‡mpŽÿµ{. *­Cé)¦žÉ7e摼-¾·˜,Bç{…)Ž£ücª|ɵ~W8ì&G…ÓU\hEo‡½ú|¶qo»>eÊYÀüÐ/Nÿ†•—íµD¾× 9]ÏŒã#ýÖ&?v‘GÕÍé¿Ý ;˜™v{EØ(Ûσ†ŠaÕ¹~ô·Lw h µêYÚS¥¿Š# ÃCölRST阕Nÿnw5¾B­ ·*±–·º4÷…£.ù>’n]VÖ¶e«„Ýr¶´×0:{¼2½qEKÃLÔ>ÞDtÌp|ÿÝIÄø@ž¨Q‹¼ .œŠ RDák';r0å›}5{¬u¡~5“ ˆ]í”°ßmœä7ˆ~@´X‹ô5¯,äx¥ë®¼øl ßàåìû'-ÜÄVkuEA³ì•ßèP Ÿ4ûñ§yÌG4µDY§¿©ç§©ßËb´f.ÕsÉŠ¥6Q¸¸Òa&rÁu 08ÐG‹ØPœ÷ïfÜ6• QZ ŠÌNÏc?¹8$å[¸¬¾œH5? ckÎ;ôiNä‹•wK¡hõŒò¦ÉJXŠ‘jw.Pù /³ƒ2hE»}>sù„¼Q¢ˆZê‘"$Ú®킽¿Èç:X¸ã–ÁÞ£r]F¦(&ð!6ʰ » Óuz1f=áB/ø…ÅÙį¦@äƒ5þÍ‹Á·ïå«¶Yßy&Lo?âhø§‹}™œL;LGÚµ«Šåheç7x!s°ÙÓ¶Ü¿ Âd'Z¨\–-ŠÚs™g‰òޤàFoò¾ÙíK›†å6ÁvʆÆzíæÕG®Ï'$a±tgaIÎ#ZÍâû©ÇǾw›¨ø!Ëbòœ[æËÄl*n‚Ჺ %Œ|*ã¯<G÷^ßÕÞ¦úGu©ÌÛ òÞDEHQw,æø¨÷Óíu0wo‰¥<‹Ü(¦Ø~¼½+¶ÇÀyñ!°‰¼èñ^:/²užtZ*V»º³š¼y‰†ï Ùèt¹%HÝ9‘ÿö:ä†ÿÚÿ«ûYSCÓª3'Píq§Wl÷£Ÿ©Æq3;,µ•2•âÙe¤½NÒöWîìâ¹81º{‚¹äü9½ˆÌà¶,~‰¾ˆÉü6²KÄ6˜(—ù¼©­cê:ÎÏòÎU)_« æ5’ó=}HÆw»Ì1J êåT£ŠÍ–|§ãMAj¥¥éà GMù;‚S O†p«³j½è†"VDÙ͘?‡Szp`+C:ø·!q dlFžQWd`5³Š¡U:Ò*hrñø{_0æ>ô•£öŒM´¹¡<¡{ÜJÚà%öÛ¬œ$ëqrKDßÛS—Ý98SŽŸÕhW×®&ƒšâÚ£È5îýÖC8ì‹öÚfZ%ÙäNyU€fÕ³I6± òºÍ¶ˆÇˆ~v$d"§ù7{Þ‘> müøjZ©=ËÏ [P¶v:ˆDduë†U¿˜(‡?áF#É_©´Þ¬#¾È ;n‹ÄD%‹,$$”ÿ4³LØ&yrêçFª|ød¡´DʱÁ:JT¿”‹pÖŠyVŸ¸ö®·áC¤.–{Ö;`a> ö HRCJ+ÄÆŸ‚he·éü’¢ L¥Ý Ã=¸÷%ÂÝ&[±×¯Â.iùÂâùH†~ÉX_§åz9€wì ¶õlØŽÆRìäóR˪;ô—ùRóQ"b†Zö<Îiãñ¾;ˆB=ì2”À|\ãâû%Ã:tÖMÃK4‹o=›™¶Þú4¨¯yWx—*sõò_4ìlƒ>¨v—‰Ï$i[láMáZ…s ¿v?ãÞ´êé‘Å5Jüz¬òZ§ØkÃQw*ØýY@u¬j½JruéÒ1NJõËÆ5Ö.†„çBÑW!4采›ëx»i·"…ð#Ü%ÊË»ûjç¯ñkQßíÄ¥Ékz/³"]µ¤2Sö¢rºi—ƒ¡\»íÜP“ÒÒÜ’ø¸k **d=ƒÜ-N:xòŽÖ®._š=SK¿Œ_°>m¤F{×ìo«÷ÇÈŽš^èëèm¯~A6÷æ÷éa{ÔÅ;Ç[ŒG…E%ü,üÈ#•BûY¸²üçÕJqÚ”ÉSÍüöc-öiÏ@h¼ÊÍTlÒ*®¥ÿý¡ášFÐ|ü'µð>;&9_ .˜&24'.Ö7õÃÄhF&jD ÂxLÎŽtiï >“å µÈç_2”»üïÕ„·>Õ`|އ¶tÛ¼´'öTeÞR“ŒA2¨;¼ÖSèpÛXPÇå^Áó…ºUöK”/Â59½³-_µÌiXŸn0IjúY }Ó¥ ³ÿ8¶¶3‹DÐ3wt§‡6ǰ~5ÙØwSžŠÑn00®ˆ<âæÒGÅUð„m½%Í4ý:§’Ð郵†3aŒ‚ÈQŸ¨fn$öðËhîLÓû´••iÚE¨éQQËÊD8)ozxéôQÓ+ÞO÷b?á!eì½?¥ú ]ñØyPîjú’eìöÌeý~žÞx½«ñÍR¹ëR¶ù¥a˜‰ÜàÀŬÕä†3=ï¸]³Å!YÉÚ|ÿ"¡“ƒÞšM.û<Ä-ï<‰.â·’æ˜`IfœW€àÉôl,ÅÎsnÏ`T4[Èú·L!_‚T”»y92¡P‡œïòˆê÷Kg\Që_¸A¡{nΰ$K ("¸p¢ÏCЩd‹m«!igoÞ¿}3••Ž«‡«ªhV”†èÙóPÛC"à‹ghlûæ‚)³=Ç„M/öõýb6Õ¹Òþ}º›1<éáV²±y(ü¬Þã†q-bÈŒÁ·GF ~¸…DM"ü2CæØ5†pÔ‘7ºk?zeh•ÇO‰oˆìeìVg­p MªÞAªy µÛÒA_ÍùZ–cÛ*v›•@øwžSÓ›"‚…ľéý$5Ÿ2gmW¤>¸È49P†‘@ÚOæ7â ¸*Ç“åñ2Õsa‰iÁ¡údÃ5[QimºX¡.Žt¹¢·# çAŠí û9qeÜż6~⥠⠋´ùË$„K\5±®ÔvÃPEê­K^ó‡AqÃ}Ë8ƒö÷Cu¬ymbâз3Äz<{"ï ƒ „1Z9O4ÃñÎ@$bËñQ“ÐÞ̹Øe©/ù" Àn˜Vmd\°ëåíQäžn†“ŠDÇv \›(¥iy*$»Z@Cþpø€Ô|Ç…IfÈëâí2yâL—Å r }ÐþL•+uþ©Éô[§[LÇÈ(¿½_µn#Ý£kW‘ÉM†T{nØH“+h"¤ :¶h#ž+®ÚìÈÛÎVö9L©æ!µ#TšMn5/Ù߆Iymî´¿­ë Ä5ï§\™|… ¢êóõVæÇÐÄd“¥pDºµÌkÐÉoµ’ø˜‡xÄüÚ Dà”MÆFn Qg2-Ÿ£Õ‹p»`¿ZzÇãã¼MJ£M6aM_{ËšÐ^fŸzÉò<ªUY·NUY~Âtó{.»z,w{õjC¯½H³F'´™KªMkÁ¹‘&Ÿýà«wGßë ˜Ïë­Ç2_X˜‡ ósŸéø O6í"d˽p&Ø?Ñ0^àpô8ˆå.³q©W Ñ´¢‘ár+›U:³8!ž%5̰ùät‘&xé_jG¹’5¿)•J *‘¿ñ§t+tÁgôâ—2$Œ#•d@û•›ÿ|•ª€sˆî¡z$0¾Õd­gÚ`Y`š@° df)3Ð pUßã¥ì@ç+@sÙšû0ZŃL9êý°ÛÙšÕ°.Æ,ϲ¼œÞй²‹ø“m7écþ)dE­ñ;Q±õJ¤Ö¸µ«­ÁTÍöÑìmÙjµöèÅòÃO͇O.À›i×¢YÝq*2Ⱦ»Äª‰å{.i˜;:4Ð{‹dQÖ¨]î£8·ƒwO•XÔ·W¸æ!…ËAoî?ssQ¤s¼ïQ]yJz0m‰˜Ë› 3àaÝ&á©ôµ2/Θ?žÁ—eë`Q²ðíO¡^Âù¢ Ã#¹ÇKšüм“Á&Í™/UÙœæ>‹[lúEBÀÇþf7Z4þ³*Q#-nòTÄ›«NóºÊ›¶Q‚ ( ³ÝŠâЮiqÌž§»Ö +’Íã$H´ L¬mr¸$2Q¡]Åj4ÈÛ¾ RêÙÕÛvt_é ô©ÝLõ] ¥a?f ùÁpÞöa”…B³6z‹•þ5Ö­Dw=TDmIý€Ü¶!ííŸsµr,ö÷驵ÚMÊ¥C*¶tÙD冤ü´‘;úÁ¢œª§î½§Ü‘MNzÃ÷FTpélOA"TN¿ í3wsü%¤ÁÒ'òÄâó¢2íÛò¡ñø|ºÅ¯N\]N¼©Óµ´¦¬lñAüÙÊŽÀ [7Û¢Òç‰\ã\í(óA‰Õ¼ ~ˆi¸W^:(t:"Q² ·sÇ Ð’Õ‡h1¶.—ú·Gõ¹òä{ i³Ñ¼àôKËœ‚¸qЉO XC³7…Le~b…bx˜'oäÑBWá Ãa I ñkADëìpst”êí‘Ï'|¨Z6gÉdyoó̰.±û2>£Þ»ùQhöãéÍ%þ`ß\¿9³`àKq+uØ™üþ¬ë!„@;»#eåãHè–Ñü&ÄÖÎ2ÌwŠ>Ï´lá[ÿóZ¥a‹mý…4ê-Iþ¢*Œî 'D¦ 3GÓúi5&À{eÚ!ÿ³eÛ~ŸìñL92¼·~?Ì„( R}%%`è 3È×WDTs[»s·‘÷¾›OÁq ¯Â¶CHBgYÑväj÷í¯Öy†$ÛÈ1­~ëïƒPx¦‡JÄ”Äö8Oé&oÓȇ_ãœWÅ;îhçr&Šèîß)Oµ«5ê5 ž2äÒý|ôaµš‡9 †Pɧõ¢”â1ÙS˜Ú9%’C7-%ÐÈ1¿Ôx ­&eºïÜuœ¾?…8Žl½&ñýA¨£;KhD¼Ð/qC]ŸàÖýöç¡1s Ùàýã´FWr¶ŠèÞ v'RÇ(P‰•x±Ö9õxù;ÑÂÄ`ˆzurß]·§*^^;—åè²Á9¨Ë‘>´o´Â84r¼ Šå¾}­ÆoÊvÚ%7B¾DWÒç¼û5v„"K Ó¯LMJU½Yÿ aâ£[ß»Y6AS¼½ŽîY.ì0ñÑîÞ„ÈìŠJì=ù¬¹1VçAÝJ˜J¨^Ò2c%gz§6¦Ëî5ùBá"zöBX©yÑ7Ä$zÇšÓàºÏþýËäs3L®J’\‹œl ì«áwgðƒ$ãêì·Ù4›Í÷Ò^¥ÌΟºÝ ¼£{e¥Ï¯¿´ÍiÊú>UwI¢sZ²³ÏAùb_O¤ÚPŠå"bù{³ÆÏQ$UÐ^6RU‰Ò ñ±›Û÷¿Î4+´£ý÷€Î¨Þ*ìCœ‰9/ײ‚½Ÿ/–?9‹©ÖŒ¸Ë5[yŸ>MI®í e˜ß¿„ð xS×S̱+<¢pÕË8…n4jÊ÷@×KIMëESZ@¡Dø<ϽßÝ_&¨`JÈ7o½c»ó¨ž-^dol=s¥­…~!4tIH#Öa,xdâDVøb´!¾ã¦ ­’@p._WÔíÈ}UcyŸéˆ´ü$”=X½Iî7‡Ö|'gËÅÜ™KÿEÒÚ9w,™à+sçnžI L5IÒŒ_+îÇüêWôäXIŒÛœ4“Ñêg/;úGR]~î™ù¡P\Ó1áŸ(,—ƒI]4ˆ$Y-˜õ,©XëÖxz²ÂóΕcK¢äGä44ó«¢Ãg>ž˜S’{Ú†´(+lPædÚSÍpåPo—MÌçf"…#7¯àü¤ÃÚÏüýcýŠ&Ý3Ð9hŠ!?`uí?áNGôÞþÊùŽjÙj{žÕjJì}~™•rˆm±µÃN^r‹§ÎR—í]˜îlº|¾86Þ:DÓ—Ë9Z6E²úH|”ê3Kï³¢ElëÚ8 ¢o˜£…ºa)ª¸Çý0JÀEK}xÎKÄr/±@YU.÷“ÍÁõe‘Þ¨4>KΊõ£x‚èÙö{Òâ]£2•—;z߃1ä³Í– P'5FG®Ú$¿ÊÝJÏg‘¹V G(ÄšÆ-Um0ý†Ú#!B_J°zŠ'ní³'\pîRÒ’×ë ŸKsþÿHóÈ@Üù¬$Ñ~_>«€ {]@³óEÞNÜ4ÅõB7sÖmF_=Ÿ¦ágKÉ3ÜËß–zÉúã\IL™ªë.2¦^Ã{L óèŽUÈðâ_†w‡F>ÖyYNŽœ+ý,}]8Z†1›ÅM×Y u;WðÃFñ~gpë‚A¹è“)"BÁ渔Þ ‰Ëãš¾2Í«#ô8/çÿ>Ç% 59‡_>’¸·ºcWó.™µªX¼£¯E0²ùÔÉÑøC[Æ*ý åÜ@cxÑiU«›×Ä,/éÍS!"Œauv*^MCh;’ ¬ö d¥C¢‹™iþý:dk‚pvÊ£>è‹3ËÈõa;èZz†±Ù3l|ÞäáÓ=o§éØ®úžm±ð; ~·ˆ›çŒ#[5ŒjYõÑ\ÂÁ ‘ÌÂFÌèØÛÏQ×µ 9¹Á½0®^¬¾áyµ©þx¸´¶ “ÓË‹aU %ÆñŽšÕØÆd.FÍçFþÍÒ#èÀKîì¡ <;¢³žh.8oŸ¾4„/qa‰m-LÀƒé·Ûøm°T·HìoCR¹Å¶aKÌë22Ы&^™H§^‡ˆ O»<;´(¼bég¤¢ø^jòÇ‹º³—Ëú”­”Pbe¬TOpñÓ·°jò.ˆ'(ƒV!ôr4CF¬‡´‡¾= ÞáL`x+‘01t.3°‘{V¥ÁoõNµ—JJdpç£4B#Û“w)CIˆ%MÓ–seiöuGQØdÞJû°n \õå'¶ëÊ`8Vºñ*:²[CŠiš‘FÓÜ—ö‰,_,ü/UÙèmoÃi¹ŽÌ09Z[ÃQͯßãKªÈqнªnˆ%Óžc¤´Ï|¤E4o9F/s~[É~{`þ…v6)|h&‡ÙŠÀðRUOmQúeõ¡u”ëhÎMäçFŸLÕW¼·-‡h!$FG©gaCcyíÊ›”TÔl¾ ©iJOÉUBF¾¸÷æÇD´ÔLËX†Òe![$KÒvô.Dñ!Š#<óØÙ… LøúßvÞÇ]I¯:+ãEöN²xpë¾ÔuTo£ÂÛf·èY‡@ êñQ±k‹~ûW Ä‹qw¬Öp¥æŸŸ­æî°§[VE+ÃÂæ~»r¹FëµyWŸöé= ‹B³¿¯®G’Fäž*ãFX¶ár!qT˜]´ ÆîyB^Òšxóv×y› èèuïDµ€;LæÊ¡á;6bÉÆ$Á›®úî¦}Ò×Òóîj5áÆ_ªÃYsê7 BFÇE"gªØiܼâz º2ÁüÙó"‰‹ŒRBGz²­uK$ S­8þð€“^Á +9*½Ñ’p'IÎ4/Ç:ÎöQ!ýÐ ›97‘]WܲyŽ„þ½)qRe4öŽ0%íÁ­èV9ØïoiEÍ\?&í[/s¥4aÑÙ×É!$µéŠâÅwH¼ ‡ƒó‚žîÙu¿À½oGóËøÉͱÁw ð]¤éT8–¬í¨½¿©hƒ¿7˜ Eõ¿qn‡É}í8ý _yµíÝ‘¡ý!ÑKèØl¦†ÏÓY„¼r_¬Z«µç›525E7ð.ñS³žª íZ{¶S³£Ùò©djÇ7Î!›«ÒI¬œއýr/±‚ôM8ËÌ;øçü´è™Y¸ ngÖÜêM‹ÑÔ;Zòsës‚~ ­|Úæ>¶ùL.bP;ôùÍ‹õäHåº~i4¯~…qëï3íõ¯«Ñ³¹£_*é:i3ÝpÉèUÑž&3% q ˹´ODj=•£aLÞ°ï ¨|Á0ýö¢f‰¿´è9ôމ;âß*¢ã:g½™“ÖèHÃK—QÊ•µ£ÙÒƒ•åp_»ṦX¹Ô;Gª^Žñ¨3Ý-{eø•’º/¾ÿ",n·Ggòõ Ø¤¤äH§ÔN¹íÔ&ߨ¡]24 ^…¾º˜áK_N–º²UÚ³Èö2ëØ>ˆý»µë¯íX»až¾ù_DL±ÛʱQQEnP§n˜ïßÛcgŽ(ŠäX‡Ú†"íŽ_óÅ¥ô7àû 1g™õÀÞ0àúhé.o½I>ëñs¶Ù‚ýºÐº{ž6n&ð"ërÀÕ±*±²6”‰&‰Þ¤ˆq3£V%‹«Œéàã∙ég€  ŒJUqŽ1µ¸sº²[ž|½@c :+]0gñÓ¢©žHë̹ÎWÎÿäÌVÀS|‘ïÒ?p£zv£ µÞÛŒå&¾Éܺox dI‡i{ºáiHnx]‹\[8¹š v95Ö÷¶q‚bîiÙ5†©ø¶2ÀéÝÆP þú÷´O ʸø­¸øB׋«ìJ|JCa‚_”7ðwS¨ A¸yz’äm0ú_ײ7è8®å¾¥uìøiñöàèçC\0%/‚§Õ¶mzñœ/áhi÷·Œò41ªh «™WjÄýçu[Cx? “w!ú„yÓn0R/„B¬Øs×7d3*‡ÚhèÏi¾{à’›äób½&ɘ#±UC%E\0~»~|8üY%Á%^ÀmÅø Ç YwB£¬ht\L§FU WÓX0'²ÄüoóPhžWU6ò^èÁß–{â’eá ÀBb4YC} °dN˜Cg‚w•§‰SÊV%ø-áöèR]†¦{1úštß)ü91Ò°Œ¼è•©µ¥w¤U%$GÑ7±>>‚~ãéAŒá–ÀÆ"È|€°š¡«NÄ‘Çz°Òëõ o"3ý4ŒPg¯AR­Q#UÐÉÈAtýˆµ>["øÐЬ} q’CÂzñ,‹±î}Ùh{Î%"Ç—PóUÀ4†&×Ä$o¾FïxnyjÇÖç`Š‘'íØ­•`k*˜'׉2YA-íÊl ÉR0 ¿.Vêêíä?O׈6h¬ßN·5cÖ—gb¼R½Øö²Žp.­†š]¶'“ç›jv¼q°ß«{âK˜¾´T*}ù$O£ãê¯R;$bõcLØ÷ 9g/0»ˆþ“$¨{Îg´ZSµò©GùNôhTKäòqÔ_’ô¾Õã©­ÎH–R÷b©ùP,y.ø ÿ?îön»´„É Ó)¥n^ôýˆKp¢àÒC?Rb«Òé̸í÷*§#×pDFw<Ý‹K`Úí™a·Àò¼†ZÜÑþÌñ¬Âñ/¬­\tØÃs´½P‘¾bøƒx*IÛL6Œ^+*€%ôºÛ7ñØÈ·imv6(G.øá<Ó`Ùi&"8=e‹ÚR•R›éï[Øñ’˜©Îì¡å/b݆~‚PÿYvkÁáñ2º‘s²³$Ä©fÒÁ'?uÌû #+˜ÆÒoŠrp>÷ìc@QMô‡óaÝû&x ˆÌóË`y5@V’‹^ogW¿ÃáE`/ $sFãD*8ÇÚ-‚Úĵêë&JàxWé&¼ô9Ù½Ì*Ô°…¾SbzDº÷n_Kåc’÷a_7ü —VÞ4xðÛ°$ïÛü¬ˆÙ Jizgâ~u:ÎcX _…ãâÎïŸ ‡”Šð ÉJ¥I ºˆl7ÁS·ŠT-¡J„”àeåè>󤉽­4ÐoWÐÛˆÐK^â3Œ«Ì°„YEº!‚^Iõó÷‡]èaffod=ú4{Â7lŠöp-ÂUC:˜½O@úªž>Üw ¼‹ôtÁå2‘S‚*Í­øéÙßD+‘,/qëù§g¥ÓÙTbýI²Ró+jÊ´N£Ú`iÛÐ$¿s«eCrQ‘Œ_?­å¶ÛÞ²¿N5cºx’(ò¡T2æeÙkÌBï"ÛÐIaûnâªÍq3 f6lÎÃÄ!¸… ±+¤c¬€Â~.r‹Aã¯ÙÆr Îó†”I€žã_U>¤Õh£ ÓAcXï!åÁ’ðìöà‡ýŠÐ2ºˆ`Ê-ÔkŒ‚7…wÛ2|¾Z *Fêü|ßи–—Û ÷×2ô ‰dŸóoé¨\ÔfrüÅÈ7RF£çÒ•Éû?\Ñê?Ãü;v-µAü¾­ x˨4ÕÑtª´|ãxCò{rS '®¡ÂÓȹB#]Ù—²g êÎ=àÄ´öPæ¡€$ÓN¾%<=ji 1VÓ{“AýL¥"´]nÛ¼EÖLÏ–£o‘%Ë]7m,Hÿê Ml§p±¨FÄü” ƒ‰,›2«¾ž X3Öÿ–‹é®3§!ä\¬‚!U5ÉõØ*=%ܬJ ZfµK k,òzŠ Í_©ó~p#°±… Iû|àaí@Up±3°B¤¾ftÅÖÊúü«V×ck½ìÄ4(5ì\Õ5Å+«Ííò#Ÿöû{<Û°®e#¿4¸¡äÖ¨kŸ*¥H¦B:Ï,úL|+ý Ñ[yžDƒûŽò‡RHº# ªÞµœEÞ"äÇ ípÅê >”Ãa¶?;;]À5¢[|ås†ûÃ{x»>ì6÷ÙÚ#X5G!KŒ• endstream endobj 155 0 obj << /Length1 2155 /Length2 8403 /Length3 0 /Length 9662 /Filter /FlateDecode >> stream xÚ¶T“ÿð (ÒÒ!9:6bH7ÒÝÈ€ÁF Æè.‘–’éFé’¥%D@:žé/ð÷ßsžçì¶ÏÕ×÷{]÷ ;³¶Ÿœ-ªŒpAñ ðƒÄ úú‚HˆÄggׇ£œ ÿÈñÙ ¡Hw8ÂEü $‚BË!(´¡ÂðÀà ¸'A ± Hq€"Än Ðà<@¸@ÝñÙ®>H¸= …ÎóÏO— 7@@Lìïow€œ3 ·¸4 (ÔÑâÐCØÀ¡(Ÿÿ„à’„¡P®â@ ——?ÄÙ´—ææxÁQ0€.ÔŠô„Ú~µ Є8CÿnŸ ƒ»ÿ¥ÐCØ¡¼ H(-p‚Û@]ÜÑ..¶P$ §ªÐr…ºüe¬þ—/àïÃð üîoï_à.¿!66gWˆ‹ÜÅ`w‚´”ÕùQÞ(^ÄÅö—!ÄÉö‡xBàNk´ÁïÒ!e9Ýáßý¹Û á®(w~w¸Ó¯¿Â YÉÅVáì uA¹ãÿªOŽ„Ú ÏÝø÷å:º ¼\üþ!;¸‹­Ý¯6l=\.p7¨ªâß6hþµÌŠ€A ¨ê€zÛÀ€¿èû¸B+~‰Ñ=ø¹"\vè6 p;(ú ßÏâ  п?ÿ%|€-ܰ†ÚÃ]𣑭ÅP»¿}ÿH¸7À „?è×çß_è ³E¸8ù\›ÿ¾b ª‰–‘²ÂÝ¿[þW)/ðøñ ø…„`Aa€ˆðß(ÿöÿOï¿¥Úøßµ®ã©ºØ!bµ€>»Úðü{.¸þ^nÀ3h"ÐÓ p]¿9 ²Aÿø^ß.ÿ“ÿ+Êÿuøÿ·"e'§ßz®¿ þ?zˆ3ÜÉço ô4{ Ð›¡@ï‡ËÿšAÿZg ¨-ÜÃùµª(zCä\ìþ=H¸»2Üj« GÙÀ~OÌ?×€Žîwj#Ü῞7>èt蕳qD?SÜÑ—õ[EoÔ3*¹Ø l­ž XA"!>ø ô| ‚Á?ôŽÚB½6Èï‚@¡]èîv$þ¯+€r¿D‘(M÷@…k¯I Tú—î@åkï_“ ¨rMè(š×„Ž¢õ/‰¢£h_ÚO÷š„@½kõ¯ ]§Ñ5¡3_:ƒÉ¿$†Î`zMh?È5¡ý¬¯ ݃5bãE¿/ìP×r¡åö¿ t"› ŒfƒpBßê?’_— ´ýÑ   º[»?ÆþD÷ û…Ñwóq…AÿŒŽ–Áÿ@ôE:üèNÿ@tuN ºtçk@úGdô3 ˆ¸Î¶E¿åþP£ w½V£óº¢×ñG§èâ‘ ºR÷kteîNwØè×çŠ| Ê ñ‡íáñ¢{ñüÑõy]£ ÚÛûD÷âó¢k÷ýÿÙ)$ýºùýØC/Ü?üûÝ…zCmð?M"l$Â*Û”ËÑyñ­ uïGâ­(Ýñüªª yz T3-×:±sºH¶)X|UçhLr´\ðψ§úTÝŒmg½Ìë?B&u¶é®î!¸¦ÖÒbj%äbkOµS¯Ûëu(;ÎMÍë¶·ú1ëÛ}IŽú·'¥°ÎÚ-~B¬¡¸QQ!B¬ðwrYïÞÊWÈO¼Wesß—úžÌ üí4£«_ü¥ûó+^LøRÝÆ‘«ÚaÖ†túz»­šÕ`œ}¥]‰æü Wèasx—µû€ö“BaZ;ýýºÍB-–ðdý÷Ê•á×o—Çdõu·î…óØ›%®òV—Ç}Ûø)X‹ûD›«YÒ„OéñH ¼ýÛÁãBVwÙ\U?ã–=NÆ¡É)ƒ.n¡r°ãwÝ6LáI{‡ÛùåØc—öϦýÏò\e³ܯª]þ@|€~°ïí³¶~XÊ=Ÿçóþ‚mm’²ÛaJ0>ÉÏŸÍšò”oW›ŸFH’F{Ó(ÑoqئfO†º)"YxÒµ¼¤bJF—éRt¨ìzµ/ʧ¦ë°ÕÌñœ#Ɖî¿"jÍÌöNœÙûðúÙÿp®þ‘å›qöúR¢ßÙÔÃU¨Ö1ëx.ñÇ:¼R­]†Ì‡-ü„Ÿi+l’¼¼sƒY´ö,ûKù3ã2ºÈaš<·È§0_7S‡BòçæU o±´Fó—ã¿Á(ºÍI `ïé¡„y9‹µl:çÚvÚäå¨t9«›š€6&ªyn—îFÖJžv»v}É 1gêY•ëJ ÚI£MêŸÝdDZ ®~Qѵöý|ºrBÇF{{š®;ÅEhk£ÏÛ¬UàpŽ8T’™³%»ûÕÎôÚwÉ ¥þ²×)Ýç)ªï=CÖßɽ, «ä<òù`”ò€¥Ò}¾lR{繬Hû«»âj*1`šy}î™ÂÓ}˜ÚáS™¶LE)õ¯7b%…“ú(0Mò"qe*ø<Ÿ}=|6©ë˜xâõýè°b·hÜÌsÀSLæ~P ÍÒŒNu)ƒ",U©'AtŠïÇPb~°ÅʈOòž@_Kixh §þ¾AŽÇÇUF:É'$D[GYnNýÜÚK¹ 4ÍCe±5~›™ˆw¯„d°.¿Æ–ÛÜ‰Q­»9Y¿þùc;襬XOmîÒ;õ¾Ç‹¹Tg‚+ßAðixØWì-6ä¶–;Q/™C¸Z!fæÀ3.‰qThpR~óÑ©ýG/')mí‚Qõäÿ¼®ý`áKüsa/Òq`Bü(Nkͱþ˜½;8ˆYmn§GŒ\ª,é§:ƒ7ŽT»€dœd4¯Õ1·“©ËX^tû꺵˜à&œîÓ–ÞÝRß '&æ2fj±‘Öù)¢>ò)#˜ÙÎTr쀉ò®;©¨ôŸô{z ¿°ŸBt°3\ kíÇ,ûúwŽŒð,ŸJ”CmŸ¾¬¶‘ç5+ÈÅÝTò-²üÎÏQÆŽäShxv$A¡Ìܲ‡ûÃe/;°À×ÂË›ˆŽ {ðî©z!i#‚¥”É­Fò±’àõrgÁ4Çx¦Uiã“Ù®ÞÖ­Æ"RPËî.n›£GÏ>‡Ùá-5<êÅÇùbèÒšÍõï«jð[q‘iÜŒÔÃÊüžÓ]dtÑá”–Ú¸ØFT#¦>vÛÅZ­<Éb”90à!ñ’ëëcÿ oªgN¯‡m¦PUhMÐjjºg(ëC]2B-è@²p»’ ©m'¯¹ótšú2ãD‚™»ñœit #´ãq2o_’ƒ…8QÚó6ßtÅ•¥)¦w–Bา¾jd÷RƇŒÎñ¬ÚÄWdE©”Ùšì½;Üo 7/ßÅV¿ë1¾Ò·kcBôXͯÉRîr.ȪÇ%溲½¸|à¤ÍçÕ8ù’)Í¿F C³TT–*Ó¡ÏÏ“÷g_t8C“Ÿ[Á[¼÷¤¯^•MìЇV3>S“Õ]Ì÷©ÚX[Éc­RÁ¯É§Ëº<4;¶j '%Ÿ50ÒÖÉF„öõÖZÑY)¨]É †®E‘±Bš}ª¿Þœç¬"¦GîÉ¿À¦ï_Ò]jt‰[0‘±ªOLÁ•ôóÅT`¬ƒÐ–7B<Û—˜4Xl¥l÷HÞŽá\9Ï‹ÝyMaΖ[ˆø1…%yùðsk)O‘Â\Û ¼JPå2·t§–¨9çGŽÙN¢þ':Úíš±?Wg¤m4C¨Í*(Uð tã쀓êàË—Io(od)Œ%î$ÏF<© q¡‡é}°¹%5ç–ø&†¤ö‡‚†ÖQ°ËMQ²–KZžæá*uwÅÙá"†`îG-n}7 p|wy¦«–åfGk9›øÖûj1@¥å*µ‹Øt=ƒ/ …TR‚vÁK%q$Á2bˆDÃPû=Á}šý³âüç©>,?>²O=H× ¯ïï-câ;•ÄS= ïU JÑ­NäFõ<¸µÝ¯‚¦[UŸñëÉÐ…ßð°FRŒŒÎÔp”|éiMÓ­?ÄžÐИ©¢´ Tƒ.K „? »?È,ŽººÙ†ÍÆïs¾CÝ«›fŒ‘6XM“ç$OtøÓ,]JÈ+} ÁQ“¢¼œ­Ðò7IÖÜTe*Fܶ¦,ªRÀݽg¬lx! dQ¨ŽÀQ#û‘o½»f0ýæÉ]“Òt·ú4ÿ7§÷ÂÀ­ÆtÜØ'Ü;%¼N_YžR4©˜W ²®”ýT;ž+š“zUƒ/ÖÃ],CØz×çõÁ;©ÖM–‹ò·ÖÌÁ‹µ÷ˆ–饚´Ý ÜŽe5ú/ÂqnÓK$o $æ °6‰%ÓTû†ãØg€iÀí ±±yáà¥æCZÌÅP×õ¸Ëgë¸D‚¥îù7_˜LM~Þ<­ª«GÍð˜Úb‚TãÇP6Ù£Üñ í¡'¤|tÇ¡¿vF>”¥ðWœ˜[ãæ]ÊvlÏ– Ú! ÷¾$En|y±ìoÐéùj †ÿ‚#Ü}ûP çN‘«Ò¬²uÁÝÎ)Ú¸§´¯¸]ÍÆQýìŸÛ=}fÍÙ+·îClª}MχñSƦÐ?€ÿPK…KlÀæîkSØ[Ç”AuÞ]`!r‹`<ý\¹#Ä))²°äKœ²5þ° ~ü0µ…\ »I"MUXtcU»…(¶'4Sèø¿Rò°âºEÖFOþ$‘JÎC7“”Ÿ5Së²îëý `‚ ‹]¦Ý^>Z°2ÇJáÃõÞÒÉM‚-==æEŽÒ“ŠæâxG®iëýjÞ(°Ù+vÆù7#ܯæ\ŸÝ¢G 3Ú¨rn3H4çŠ67x"ÿ“sµb¬ÿ§|ýÝ ª-2Ý×Û”3 ¬…Nù÷Kgz³XD|çõ„ ™¼¸-V7¦yžiØq5†eÜ6Y·íUÔ¾—`0?Êܵ%v·±Î~,üZÓ ¾·xÚVç&È¥Áq0êå<èbù#G[¥òš’Íöž‚}øA9Y ²zéöùÒMœ¡µ4h«dZ¦˜Ý÷>³²)GoB™c×V¬G%üßï·äV€Ó1?†Î¾å“ò4 ÎÛH™òVÜ+ 4yK¦Wp^{!rJÎÐcVº›&:B&êTr’xÑ@ó4ßwl7†ÙÅxÐ9†|o­•àY¥QûÕÄPh[qÀa‚Ä™¥¼æñX1†ï!OÆG¥¹Û—öÔ„ÇÕK©ZwNxJ˜­SÈEÞ#)¥?Q5C‹ÓHãL¢ Êͺo ›Þˆ˜»t»¨½äl€nrý¼ŒBH ”k¼ó䙿ÛF´·]¤×qA4¯pÛS(?µ9øg-On«í˜7Ós[9÷!åÒ)ƒÐ%íwyß%çŽ*jг0N{æIeµ.猸ú3w‹åÏrÚ^DµeaÊx\¼A¡jS|\†_fRúæßú`å×ï¾l”äS¼‘)¬û´¨»QÁæ&W\PÂ’w_’œ6`C #êÞUúa#1œÿas~Èôiâ ^‡’_ÿÎÙr€7ùÝ™UN ‘bÞGsH#~–³ R7[(žE–§hò`Cǹ‰¼œMÍ‚ì;UÖ:F±%Ô8ÌzU1…9ú•⮬ÿ.Þ„µ‘öqÚ 7Xë”±³Öqa€{.AÉ_ŸaT‡Ù4ðäk?ïʺˆäû™ç•6Æ„¨Àr>m&­kÜÅBި˦‘Ø+£xV.ß¶w£½ž~ESÖ«·‡ô{xÄÇÖ”ýÒª Ôþu¸W\R|Æ1 ÂX:&ùµISØéL)–Î@á7ÐÏÍ}?v3æiýfÁûQ¥Bâýé³ð>®Ÿü”úÇÝÁ‹ZM+úùÝj$X­í-þ§²¯úôðÏ‹ËÐ?I… Ï÷Þ·¾3ÉjIO»¢6rvt@r²“»•qú°ng—J¡(xwâ¹6«†ú“k`=Uáõðsù¥Í M•I±}¶G¥þªû_,˜y+J„NV¤fgö;Ñ›>uðªò—2ÓeÞ›ßÒ3f)àj›¨\_Æ­,ø¶­ãºdWÈøz«hI¬'uóðdT·¯æEÙ9ƒBAŒÒï•€SóþvÍhTÊÖKÊ5µXÁ ¾G‰ÑÎ$T…lÞ…ýqŸZ‰¿«ÐT|îÅÉ;·ÔÖQ˶!yÂw"‡ÔŒ£ñ×}êO6â¿x`ÍB+×Y3óæ}×R!m‚M=--ØHfÙ)׊Y7õ±V4ŠZ^ö¶dík/ÓÔ#q–dÓÖ~Níûµ¬ñþÄ‚Œ†‘BiuøÜI”ÙàjüOuà€ñ§6û†¥$;Ýà;Ï(QѼo츧ÕÕ­8—ùógˆ'LÁÏG«jþýû¹AªÄ¯S Ú&ß¶?Oç«ÕͰ"aK–Íæ̓ Ó¡Ý»é®V&Çëð¼“݃"¥µË›¢ ö¹}†–”IƒÏ·d’;¬_m:‚#»nûýbÍçÁÁÄۑ̄ýUýmÞ¯B6µ“/@¾ÎÃÇ!p@Ãø ϳÛ8ô;/· L9ŒG¹¨_­>H6—îz‘ï›_Ñÿ…„pÉûÖ¢@qRžÑ£Ì6“nzÆÒ¥ó[/yé¼›'ò#ÕÆÝ’ëðúhKSE—¯Þi|cجɈ)`ž—miUn6LZß<\«Ö Àlo~µÝ@.`°gšÁ×O1PFƒ³>ÃxØï =Cwo3ïÌ/e ¾ßŽÚô¥}Â0VÑiøŒ«¸þF›÷¸—̦ômw>BÚ·ÕQ‚Òúwl¹Qø Ñ÷Üaø„¦Å"…œ·KRaœŽwñ{úPŒüdÁ¤H¶#YAè¹toçhd7`odÚ#Äyówa‡Ï ÕÍΘò!lr­Æª¨¶íêDÕd\[®ÛÛüböö%œtèØhÃnMy&V¨j¾«·"B²6˜×t6B?/nm¯ºÁ· 2i5o⺩¥Ÿ®µžòIûæ$Êï„·4É%§¨Ær”)8ÃDâ‹dXD{eêÉHü&Ô^±³+˜”Ç£ÿý~Ôùý¡›ësõºlAaØ«ÛggXd°%žñ‘«údJD#e<Ûs†iž+_'Q³ðчËJƒø!WOE9ÔìÝkb/*‹»éΉõ^oqÜ••G/ë`‰™:nÞ+‰ܤäVÐÆ RƒòKá0aå{zª^¬x¯‘KS‚[‰4s¾­Ôçö˜Z?V11ܦ 2Ï%7TÈ->|ÕíÄÔ"åéâgR.­õµxGÀç}^ù§ ëO ÅûgO5„褚f3–_̤SÓ󀇸ӖÌðn4áÝX j•Â[·)J ’Š|t;{M1Ñ]Ê ð³¼³Ò ŽÉØ¡ÛIN@ ýãlïí½›yÇ‹½Æ]m4Š㊟–¥LÚ\Š?kÍŽwÛP‘ågÊä¬eßY·fßc íóß-ˆµî²½w+’,ÞYŠm”19oà è¯}*è~ÖüØf„ß¿ &åü%Ä÷¦NRø“óÛ2@æË¥%w*ÓŒôó%kàÑΫα'ÂOm Bõ„3œg†U­si²6³ø¡Klb'n}Õù-XžtÆ$õÅ·MXžZ*'2 *•Øú„áÏ_íE_´òÜ€ùH?È¡‘|óCÂ*  û|öànz!’Cn-½Š¨ÙÀ饰ÊYÁC,:†¯8îè_¹'S3àc §2«q!^–¿–ðïWµ? ä&Ô%(&÷±è²˜ßbƹ_îÛœ¢%³}¾G|ëh¬Î~ð;gMŽûŒR8«)ýr¾œ­yY$·ŽO—¾ö{Ÿ¥Wq‹Æ`G¸ròùÎ;9[ž›Ýê‰ØíY©&µ I­È§o¡=SIÕÏÛ“S7ˆ:Žs”à’_žö¬ ³®¯DÝ~Õ6-æŒYÜÆŠ ÆZ˜ ¾Å’ ù~ÇÔšý(C=ºŸA¯ƒÅœ‹³v—Ñ"Tcÿ5ɇ(ý§ ØMÒÉóvÞ>±ÑáÔ3f<ñÏ&íÉÏ)Ä¿X2©ÆÅq£v<á'øu?d-kùø\jRë6©?í4ÄL›ÚK8›¿{lÑ'1æ'ºÂ1ÏŠÏ[rW¨É¨Ï³´|ªâ¶B£ô¼îûõÓTå ¾ZŽVcÞ®z߀pД¬“‚ ME|S¬]ü*°Q>ŽôNÔ¾?ÏÒßd3<óÞZ’µ“/…[úòØAÊp@|òh°O\+Ša†@5F/H(–çæýò…oO.wΰEHí9£e&rû¼ü"<ÖAX9xž%§Ê¹Úþt:GÀúã‰]?£:¥œ³k2™œX©ë$„âî7æ%xôµA¡“o¬Ízkl 2}kÊŒ ‹m›bV*{Cçu*Z¥É¡opL¢£gª«³ÆE¯(¾XÕ2ù´³ª\‰DzSˆR´níð2mñCfGÞud´¦L¶ÄVcé¼êAþò +3¥ë¡™äÄ,Ñ'ƒôü&B¢L&‰ño«Û©’L68SÕ·[K §i†„AÞ9&Ö>”܉—C嵸¾†ªÓâæ¬Oh)ë?–6÷(ÊùõDzÿlÎ*y? ³Ó‘~˜„¯s5ý‘¯õÑã‹úF†ëqj<ߊXmö4‚7Ž©0¯½øñ Aq{3“MÛÙÒp›êð3yZÏÇPÊö^Þ•¢Øq*ÿ«“Œ\:ŽKŸRpš“¶Ò6ŽpÓ¢ìÔF^éBE7~à¾F GJ¶tÕí¶õÁ3«9Ö>XŠÇ×Éb6Èën^kòÚ‰ŽÑϳ?±ô^\ˆzlk¯%Ð>±eL-œ³ öô,":t%SS»šM¨a8݉^VŸa¡R›››ôÈ0öÏ¥«t¾¢ÄJ2Uïe¤·zjBi±!r‘½°ó¢G1'œë@k^êR˜žL’ŸJÍV9{eÆÆv³§;Óë‡u½Í«æ@®ò¸/ “ý ;êéùžüž¬…o ü×Ì^J4H[84ßx¿ b¿“Ã9îz5ýÎEñò³:±0Áóˆ*™}Êù:dÙ{w:Ë.’£i«öPÿ9ßÖ¤tò¤æ®ŸÈkúØ^|"'%«T@ä«þ»Œš§K˜=ÏcBTÆå%r–?z“òª<=„a‹-Œ? ¬l¥¶Ú" Ód=a+J呃&mORú1OŽË¨²“*oö_y¸ÇwÆ0ìî5ÁàwH Y<ש0¼s'ºe4Uצ§Å{”=͹®‹[½­ãÝfªæ"-)ýc ûàFÝqoÝÏаÀÏ'ë†7øcsÚ Éæ½…KéðT}=ï'(¿LQÔ<Ž˜¨pè>{èxt~uâßÄ~‘É9$¿ Û風ݹW¥S|TÌÙÁ«,"°(žhiêÇÇÿqú‚øHΑƒn0>#›ÿ)FF¿Ï#š*V‹ö1þÍG“€èÕs¹µ*³‘Šªçáý!!¶Iþào"ìæòÌ Ïë ’yC¾ W§á'Î}iIô¸ÃµÒÅéyE $ Éýž:gþŒiL#ªN<Õúе3Öu™ÓÇð$»hérÄ>Ûÿ(GÚõfG¿­HäãvÑ;gÿ¾å€û¡ñ™Ì­!øó½âÖQ5;7S lž Í­w‰ÝmÜË¢«Ú+x°H¯n%ßümJwßÔI¸ßÿ‚ä›CuõLöbqgŸç;q˳¥.—á’{sbÖFÅ©whS¼ïç¡GF¶»÷ ž5hI%[ ×·kòéMjç^½¥Ð´"uCêpÚiÒÃÎGõxgreºPìeÆ?KBãG DÅœæÞx˜M0þÄQpÖÝ ŸUÙq×¢Qxb*ˆuCÞñOÖWMÍ&™î¢Q]ð=§Qyª*@©Ãû“!ƒnABO†]'9×ê žÛWä3¹ùX2â}]²C´Í¬áØÑŽœ-`ùI)2ôZ5'Q4ˆS“ÈÃÁÁ±éQê¬~ÂLÑUEþÅTÍr”§ÔÓúuN[¼¹ï9\8É~JÎ@[Ýc3l  yÊ®âÝÝ cyÑ-Túˆ—ÌXoÃ"DRŽ.ó”098n“÷9ƒbzظ@óµÇ¦Ÿ'c?M9â÷µ»Â¬d­€Õ¹ zë+v’cûvéyá@}o¿¶+ý‘$J5N7Ê4ùê-—.­Þp/\„?ÛÌîÁ·Ñ×ÌÚCÙ¢wÿ¸ž endstream endobj 12 0 obj << /Type /ObjStm /N 100 /First 848 /Length 4219 /Filter /FlateDecode >> stream xÚí\[s7²~篘·ujKÂàœJm•.–­Ø²K±xõ@I#‰JTH*¶÷ן¯Cx“IQ¶w·R ! Ðè;ºCЪ( YD4¶PJÒ% #u¡Ê–˜°…S¡P¾ðA/Z<Å"zßÒXZ‡U…ÔVZÒ•±Ð¦ÁùB2‰ç@øU¡1D Æ °TYà2÷η Ñ ®0„¬}b|`©‘® Îc=þF…g (¥/\ ŽA×s dNá¯s-§AJC,ñÉê °f[ °e(¼DWéÂcÈC aýÕ…%$|Œ¶åH_„¤<æARYj ~ƒ)Ї΂niÍAÅÎão|€>"ࣖ­¨@t£ ¦°¤d”¹¬ÕI ËûX0Ø?þÁ˜÷€­øñÇBìa'š¡. ‹“s¥“nF<³–|äG~ŽT™¬™€d•u؇Z¦ØWåzæi˜›Ï}._Ãþ¤U(dêµÄš±ŠzˆU¶î†W½~ñäcuÕî~Õvz7»íaU<Ùý?UʲĆQÒ dm”îoeù·­<<:ëwn‡vó¼Û-ÞVývSm*@ôο„²ŸßUÀ´uÖﶇÅng0ìt»Š@Sÿ|ò®ssÞû8øç€?î »@xÐô w1,{«þa¯Ù6нþïÝÞÇ‹Îå]¿lÞÞ?ý@Ò~û;;ÛíAu^hv‰VÀëÃâ¢ÝTÔ;(dKmŽŠr³T#<ý4|v4„4-Ñ»­aj-ZvqøÓÖÖá‹¿ï´»Ó~gc»×=o‰§7g½óÎÍe! ÈÖÍ 3€[uúƒátÌ•œl·°B¡[]–—ílÝ™¡ãþ]E¬¤Õ-8^ àJ™-ÿ”kýGéiñœ™7¦GtŒ'sU¶½u0RÙ’ÚòzV[fF[~ym¡PÉ8¥¼¸Ž¶P~Œ[’[––žÇòo Îh7z[b/µoŸWË«!Ê ˜d¢¹ E“{Ýö%RŒJònóÆ.6 jŒ )k–68Íﵯ;ÝÏÅ“Z›?Ô£n…Ë&ÑÈ«öuµÀ[iúhد†gW…xÕë_·»ið]âeIKì±ælëæ{GÃêú-U ¹vÛ´ÄûZ@ãÂciÕZ­Dä%5àæh`Âù¾$¼Y(< „åeϲÉü2N”Þ¿>ýWu–ì_£rŠëd§3‡öëåó¼ÚøbFDð5ålž_;!;-–Ñ_;!ªøH 1Gô¢•_1!>{¾sø„èìLˆ·j&Ä»åC¼ÃÁÁ:Y'§p_²Ãd™„gµŸ›òšq:6"í!9ù“ùÊÙÝ^?õÙ™BA©ÇL}–#â׺é/i u¡³~ü®éКÙd0ÇWÿ‡Ó¡µó4;äD:œMH!kim˜ÎÖ-•+l|p®°å#åŠÑwÈÎ~Å\ñòÅÞÎúáй¯CüqR+Ïž>Ru~Ý JbÄïœA¿C¬ta6VNzë7Š•ß!Sº8OöŸüV™rùÃÓô±b2‹ÀCÕ:YÄϼYôå²ÈÃÄÉUåæÄäõZüOp÷…CáCyžÉÜÞ­Åó"í>"ÏAÎð×ó“¹ß L¼vžxðžÍ4ÏA}3ß~(Ï~†g»Ï!<Ê‹uù3~âZü/rŽì;‰¯e‹8ã?Q}e[¬ÏóŒÿÄÿ*ÿÁaF€ðX´ÀQ&¾Ë½Í{0ÿ³_¤–r=²ïêVšbŒÙ¯MË%¿¡+ýCÍ‘qºny e9+AXO‚om¥œõ")í¾½~°³®#ÏurèîÃýyá~>h7M¡½ß Eê[«Ð_§­qrŒ™j­Ò›n4"õf¤‹2XåƒÛ”¨Râ&]¦‘›¾ðRmÒ%9†4¥Åˆu³Áhêô&]à ˜K oZ_Ó(Iϸk Ž[lB˜9×0Ÿ‹3+š“DÜâÀk#¡wŠÅ³¤J«-„t†ÇN— ‚†q_í ;ldK·qî ŽCz£š`hvê¤aïHoîè:žÍ8²fäÖcžnêÑÁYKÞν4cêÍÆt¶jÙÎ>„Çf8½¢½éÎLâVSÏ1—ŽûÞR´HpÚ;ÞIÚ£ŽûÇ auc)=Ï“»jàb¾&qQ6²é)Þ©OZ5¶éë²yÁ™Z³ad¹|-w3²>4êj¬ÆóY/¸Ú"j¿9j5¯Õ†ö¸eOXÔ7kßð†ƒÿÈoÒ<êÓ@$pÕþTãæè„“¢˜ S¿2ül2ˆ øw?‡Ë´5ÆŒ3–@S¤J-='Y="Tɉպö"_zòhD=‚¦L`dd ÇZ‡¸M÷V'51åO¸ƒ ¬Hê9ÑLàá ÃEÖ¡Su7µ.4¶":¹6r‰¬a«÷0ÿM3³/NX=jÎÆUxÝ6ÍK|ÃýŠç’†R¿nÙßl°œGÿйß#Æ[›* jQkpC­Jjɳs¢*E7“ÊKŽlTwx^Cϱ¤Ú {=U›4¬²–ƒ>“iz9”æú2µŒ>ŸËØ[% ¨.Vã¹àó¸K*°j±—SØ´t‹]qål()PvT‚ÙLNÒÕóõ¯­±kª‰“Âkü6©S–jLÞŽJèFÐé^¦FV[#ëgÖãÑ ›ªGm ; 4Wp:2¾dl6 úÜ£×óAR4 ‚äÌÈu*Fbi¨Î¤Ì”ÔÁøc)¹â#вä?±.âè,ÁýTŒP‚ŽœêÛ#–2NÜú²9I¸¬o9cä§X#µ¬ûº¯(@k>ÑŠ4Z¯ãQWºñH´©2ç•cèA­ãÚ™,„ì@ûoìÞMo™V–oOå³5†?çaúðÑ$r1ÏG‘E-NŒ¶c¸”ºòCL°cTãÃÍèØSÏK—õˆüp‘xNQQßàX§q“ÄåËÔ¦’ÒE=NÍÞðÞäÕÓ)ïj†¢c´Yj^©x+b›D^¥GøÒÊ·"G'Ý׸ Š~ÂQ–nü`c˜x²×<šdަ—›‘FÓÒù2ð3©žWŒ¡ÒÜÈn|æk滩ŸZ¦G.% Ÿ^ÿjÿgZXÕD:—§–Þ"ĺU&ù¡å*.pœšßÒ†’Oäi%,ý`+Ž×íùEz©Dã5~n ½ñýR[ÃQ×40ùl)Ç<ßÏí2mÎ[jkYt:sP›F’ìÎRM_K =8úA …‰’¥Pô¶$AjE0Á9a  íPvçù+¯®ûÞY~÷’(Ô4¹–Þ¡ä#ôÞENhb¶Ÿ$ÌÉzy?·|ŸðN°µnØVõÚ'Ì얲£i y6I”úÜžd/u§/24—'~þíś݃¿ïl¿—ã{&¿¦±a_â C½OÆ÷>\4÷>‚Ëî}HšœÃBšì.…!Wí>½Ô}"¶D[œŠ3Ñ1Ì.~RËümò—äÚÛÛÙÞÚKr©ri’‹~ ¨ããÈUÆ{äÚ»â©Øûâ@¼‡â8ÇâñV¼ƒÌgâ\TâB\tðÿŸèuÅEï®/.Å•èˆßEW\‹Ñ½›JÜŠÛªßé³’ÕŸÕt>‰¡^õ«J ?öÄøS|ŸÄgñïI%êU”x¼µ½¿õJÜ9ÚYàÒÔÎA?þœP¢•SJÔݽñ*S –“ Ü®Uø\ü$^B‰#¾¿’{××mV╸ú|{¥t 5ÒÙ„¾†ÐÍçIØUtòl÷ç{GÐÉþññ"Hè„_.#ÐD—ù•”*¡ÇæžÝ ̵²A Lzqq¡^vÄ+è -Úƒ!„üλ‡ÔP}:붯áRÉ…F4VÆw½au~ÚkåOñiR/~½¼Úyùzo z9Ø_´á´ùŠr_Øpú¾ —+Æ.TL-æœ=W‘ëÅû—ûÏ ×›EñÑ”#±Ê¸ŽXåÖ¦]°ËA„vÀ+$i¤°Ùì^>P.ó­± ¤üQ•ëÎY¯Û»©ÃË0(U¿7¡O³R`~øâ§Ÿf}.r“âr áqÔi—*{âË~Z^͉Чâ´ß>û½v«‹á¨ßg-“ÞIYÓÚ¯þ¸kwÉóãúØÿ[ã¦cŒMBߣ25î%Zµn»w‹7qš˜g·{ÒÂ;®”^¿Ý9xõ ÛÑ/°£Nû"ú-.mG»ÀŽVçv,s;ð6Hy´b]wÇ™“\<…¸S߬ø_>úæð5>úuQ$P±Øˆô/ зæÞÛ“…7d—p¦\è¼£ˆÝ^‰Ó»n·š,˜ÌJñûh÷íÎÖ1‹·ÀžÒB:ª—hsú Cº¸”t“b­¾ùíé«í]ˆu¼8-¹QHo%'-é{BÎS„™&¼¼Íb7mܺ ¼˜òâ&}7éúãLj³+…â/Ÿ¿zý’ts¼0·¥J†nÀ¯QÉ,›ÙòP<‚߉÷¨ò~Ëëœö°ÉÕ8 בðqz\0¥@¢ô%ý:¦êÏËœ+ÆêQ¹5²S‚̓ôÝÍyÕœõúÕ}ñÚ®¯÷}ýŽ~!@Æ^°¸l¥K-ô2Ï®olû c7¦^"ã¦Ý² ™Î;-uÛƒ+Òö=g$» -ä?MA+óßÅL£'è"u}ßtòç0“¿{©Ø"ëLc%òÓ§Ýiòfšëzr¡ë=ÀôSeè4u·¼ìú†Ÿ® §ÉÏú]NÝf¢kµÿ¸7 endstream endobj 160 0 obj << /Producer (pdfTeX-1.40.12) /Creator (TeX) /CreationDate (D:20110905215944-06'00') /ModDate (D:20110905215944-06'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011/MacPorts 2011_1) kpathsea version 6.0.1) >> endobj 157 0 obj << /Type /ObjStm /N 10 /First 70 /Length 355 /Filter /FlateDecode >> stream xÚ’ßOÂ0€ßûWÜ»íõÇÚ%„D†D‚‘)AãÔ–G¶ñào×.ˆ04,¹özû¾ÞmˆÀ € ¸b @h (@1 *´c ÑVhÐ&TŒ¶/ÚãP¤Ó!4þÚ¤@ùgEèlûV¹mDB{I™Ö'@gý§è:¾Šîf M\u?-ß‹lSå…Å1{››ÏвŠÖI‚Ðqò³žgËj]ºÛÖ…ÝîêÇç›I¯oÕñy‹›º÷äÈùžÏׯ·“é¸ÖÇÈZôò¨uñK¯öôò|ýp1"¯oë>8ÔKu²ûðXŸ¬Ò’Ð(ßZY@ì¾HíªþQw”-Kxq#¶Iüí/ç‚p… ]k¯—À•ví±Zúà“†ù .¦7 =(>4ÉÐ÷Åøxy L5Œ†…ͬü°þbÖŸ¦ø[)0¦!êB”TÉG¾"µ»­ù¥µ endstream endobj 161 0 obj << /Type /XRef /Index [0 162] /Size 162 /W [1 3 1] /Root 159 0 R /Info 160 0 R /ID [<352B3180CDF01BB271D8ED1EC73EE1FD> <352B3180CDF01BB271D8ED1EC73EE1FD>] /Length 464 /Filter /FlateDecode >> stream xÚ%Ò9L”Aðÿ›oVŽåRÔEP@ñâÅÁðu=P©´ 2!!DH¬H`»Q!1A*c´214BbC¬hhh,hŒD¿÷¶ùå½™ÙÉÌ·cföÏ™eÌ¢Æô$$0=&äyÄ G þU%'='´ØÁ|‹6¸Ï Àâ/T·ËžQ}HrH,Ö­±t’A"d;É„Uµk6‹dÃêWÂC&¦5–K¢°±ïªý°×_ ŠT‹Hl2¦šO H!ÙAvÂÞÌiv‰Á>Ô…ÛÿHíWFŠa[ͺ¥®°›ì!{Iœ”Ñ÷úÅ>R W‡Çèר²ÌS­ åÀpêI%ð2¢ZES#ªGÈa éU‘£Àܪ”ÆZMŽŸkI-©fUëI°üIµ‘4?·T›È `}@õ9 üZÓöú?N“fàï3-9KÎÀù Õr.ç‹êÒJÚÈyÒN.ÒI.’Kä2¹BºH7\Aê»ôÀ5}Tº 7Ô¯t nþ¹Òu¸Å„Ò ¸^¥›j2•n!M=©^óR‚¥·J·¬*ÝSº ÿtS)?S¡ëó%&#ðïòÇ>ûÇþJP endstream endobj startxref 304120 %%EOF pyutilib-6.0.0/doc/workflow/workflow.tex000066400000000000000000000023151367314503500204010ustar00rootroot00000000000000% NOTES: % % TODO: should we stick with LaTeX documentation? It might make sense % to migrate to reStructured text, since that is a Python standard and % since it can generate LaTeX. We'll have to decide that sometime soon. \documentclass[12pt]{article} \usepackage{fullpage} \usepackage[authoryear]{natbib} \usepackage{listings} \usepackage{url} \usepackage[usenames]{color} \usepackage{graphicx} \bibpunct{[}{]}{,}{n}{}{} \include{macros} \include{example_macros} \widowpenalty=3000 \clubpenalty=3000 \begin{document} \title{Managing Scientific Workflows in Python with \code{pyutilib.workflow}} \author{William E.\ Hart\footnote{Sandia National Laboratories, Data Analysis and Informatics Department, PO Box 5800, Albuquerque, NM 87185; {\tt wehart@sandia.gov}} } \date{\today} \maketitle \begin{abstract} \input{abstract} \end{abstract} \lstset{language=Python} \definecolor{light-gray}{gray}{0.9} \lstset{backgroundcolor=\color{light-gray}} \lstset{aboveskip=1em,belowskip=1em,showspaces=false,showstringspaces=false} \newpage \input{workflow-intro} \input{workflow-doc} \input{workflow-disc} \section*{Acknowledgements} \input{acknow} \bibliographystyle{siam} \bibliography{coopr} \end{document} pyutilib-6.0.0/examples/000077500000000000000000000000001367314503500152035ustar00rootroot00000000000000pyutilib-6.0.0/examples/autotest/000077500000000000000000000000001367314503500170535ustar00rootroot00000000000000pyutilib-6.0.0/examples/autotest/LoremIpsum1.txt000066400000000000000000000106431367314503500217750ustar00rootroot00000000000000Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis congue odio et eros tempus imperdiet. Donec sed dignissim orci. Nulla tristique, enim at cursus consequat, ante arcu pulvinar justo, eu vestibulum urna ligula eu orci. Integer et nisi non ligula pharetra porttitor. Duis in augue turpis, eu hendrerit arcu. Donec molestie lobortis fermentum. Pellentesque hendrerit urna ut erat aliquam quis fringilla tortor consectetur. Mauris aliquet, dolor et blandit fermentum, turpis libero pulvinar nisl, at porta est lacus in odio. Donec tellus nisl, sollicitudin eu condimentum ac, interdum eu eros. Cras eget suscipit neque. Mauris id massa sed dolor tincidunt viverra a in mauris. Phasellus feugiat metus sit amet est rhoncus at mattis lorem tincidunt. Fusce iaculis neque eu elit fringilla faucibus tristique nunc porta. Curabitur blandit lacus ut elit sagittis quis interdum velit ornare. Aliquam ac nisl massa. Proin nec neque non ligula pharetra sodales ut ac nisi. Praesent a est turpis, a facilisis diam. Integer augue odio, aliquet nec porta a, ornare aliquam odio. Praesent et ante sem. Etiam nunc nisi, sagittis nec viverra sit amet, tempus a turpis. Pellentesque posuere odio massa. Praesent scelerisque porttitor feugiat. Nulla varius semper feugiat. Suspendisse accumsan volutpat urna vitae suscipit. Maecenas at ante dui. Ut leo urna, porta eu volutpat et, pulvinar vitae orci. Nam mattis, velit vitae luctus pretium, elit augue molestie leo, non consectetur nibh arcu vel justo. Pellentesque mi leo, malesuada vitae ornare eu, placerat a orci. Phasellus mattis libero non eros cursus id feugiat augue porta. Sed dolor justo, bibendum ut condimentum mollis, pretium et augue. Vestibulum sem erat, fringilla eget scelerisque in, faucibus sagittis arcu. Etiam turpis nisi, sollicitudin nec imperdiet id, porta vitae urna. Donec neque nulla, euismod vel feugiat sit amet, pharetra eget mauris. Vestibulum ac rhoncus urna. Duis lobortis tincidunt justo, id aliquet sapien scelerisque sit amet. Vestibulum a eros sapien, in ultrices tortor. Praesent non tortor augue, eu aliquam nibh. Nullam ac commodo lacus. Aenean viverra porttitor sem, in malesuada neque facilisis et. Nam elementum auctor tempus. Morbi consectetur, ipsum bibendum dictum rhoncus, dui enim consequat neque, sit amet rhoncus ipsum mi semper metus. Nulla in luctus urna. In adipiscing tempus lectus in aliquet. Etiam eu mi turpis, non suscipit ipsum. Curabitur molestie erat eu leo cursus rhoncus sed quis urna. Aenean suscipit ornare nibh, ac faucibus felis placerat sed. In odio eros, varius et dignissim nec, sollicitudin vitae nibh. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vitae nunc nulla. Praesent quis urna vitae sapien vulputate facilisis et sit amet lectus. Duis ac dolor dolor. Integer orci elit, bibendum at tincidunt sed, vulputate eget est. Curabitur aliquam sodales placerat. Nulla at commodo purus. Vivamus tincidunt elementum ullamcorper. Nunc porttitor pulvinar mauris eget fringilla. Vivamus mattis convallis est, non ultricies ante mattis eget. Aliquam imperdiet vestibulum nisl, ut imperdiet felis hendrerit eget. Etiam bibendum enim ut nunc condimentum tincidunt. Cras a dolor faucibus enim tempus aliquam in non lectus. Praesent ac mi orci, quis lobortis erat. Proin ac magna eget nibh ullamcorper commodo. Sed nec arcu nulla. Fusce tempus convallis nulla, sagittis viverra ante ullamcorper vitae. Vestibulum in elit a ante venenatis semper. Cras eu vestibulum nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mi turpis, semper in sollicitudin non, lobortis quis tortor. In hac habitasse platea dictumst. Vestibulum eu nibh lectus. Curabitur venenatis porttitor mi id venenatis. Cras neque metus, fringilla vulputate aliquet at, varius ac elit. In ante libero, placerat ut sodales in, porttitor eget odio. Sed tristique urna eget est accumsan in ornare nisl vestibulum. In tincidunt, sem eu blandit volutpat, sapien erat cursus odio, ac hendrerit lectus lectus in orci. Nulla est mauris, convallis nec auctor sed, tincidunt ut dolor. Nam id massa in risus facilisis egestas malesuada eget orci. Nulla luctus tortor at tortor ultricies rutrum. In leo enim, vehicula vel blandit ullamcorper, ornare eu erat. Sed fringilla mauris suscipit enim egestas euismod eu ac dolor. Praesent ut eros diam, ut rutrum urna. Duis quis rutrum mi. In feugiat erat non dui consequat ornare. Ut nibh metus, convallis ac facilisis sed, luctus quis justo. pyutilib-6.0.0/examples/autotest/README.txt000066400000000000000000000003501367314503500205470ustar00rootroot00000000000000 This directory contains a working pyutilib.autotest example that will execute on Linux platforms. example.yml - The YAML test configuration example.py - The test driver plugin autotest.py - The Python module that executes tests pyutilib-6.0.0/examples/autotest/autotest.py000066400000000000000000000013631367314503500213000ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # # # Tests driven by example1.yml # import os from os.path import abspath, dirname currdir = dirname(abspath(__file__))+os.sep import pyutilib.th as unittest import pyutilib.autotest pyutilib.autotest.create_test_suites(filename=currdir+'example1.yml', _globals=globals()) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/examples/autotest/example.py000066400000000000000000000025141367314503500210620ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # import pyutilib.autotest from pyutilib.component.core import alias import pyutilib.subprocess class ExampleTestDriver(pyutilib.autotest.TestDriverBase): """ This test driver executes a unix command and compares its output with a baseline value. """ alias('example') def run_test(self, testcase, name, options): """Execute a single test in the suite""" name = options.suite+'_'+name cmd = options.solver+' ' if not options.cat_options is None: cmd += options.cat_options+' ' cmd += options.file print( "Running test suite '%s' test '%s' command '%s'" % \ (options.suite, name, cmd)) pyutilib.subprocess.run(cmd, outfile=options.currdir+'test_'+name+".out") testcase.failUnlessFileEqualsBaseline( options.currdir+'test_'+name+".out", options.currdir+'test_'+name+".txt") pyutilib-6.0.0/examples/autotest/example1.yml000066400000000000000000000017671367314503500213250ustar00rootroot00000000000000driver: example python: - import example solvers: cat: cat2: name: cat cat_options: -n echo: problems: p1: file: README.txt p2: file: example.py p3: file: LoremIpsum1.txt suites: suite1: categories: - smoke - suite1 solvers: cat: cat2: echo: problems: p1: suite2: categories: - nightly - suite2 solvers: cat: cat2: echo: problems: p1: p2: p3: tests: - solver: cat problem: p1 - solver: cat2 problem: p2 - solver: echo problem: p3 suite3: categories: - suite3 solvers: cat: catx: solver: cat cat_options: -n problems: p1: pyutilib-6.0.0/examples/autotest/test_suite1_cat2_p1.txt000066400000000000000000000004401367314503500233740ustar00rootroot00000000000000 1 2 This directory contains a working pyutilib.autotest example that will 3 execute on Linux platforms. 4 5 example.yml - The YAML test configuration 6 example.py - The test driver plugin 7 autotest.py - The Python module that executes tests 8 pyutilib-6.0.0/examples/autotest/test_suite1_cat_p1.txt000066400000000000000000000003501367314503500233120ustar00rootroot00000000000000 This directory contains a working pyutilib.autotest example that will execute on Linux platforms. example.yml - The YAML test configuration example.py - The test driver plugin autotest.py - The Python module that executes tests pyutilib-6.0.0/examples/autotest/test_suite1_echo_p1.txt000066400000000000000000000000131367314503500234550ustar00rootroot00000000000000README.txt pyutilib-6.0.0/examples/autotest/test_suite2_cat2_p2.txt000066400000000000000000000031131367314503500233760ustar00rootroot00000000000000 1 # _________________________________________________________________________ 2 # 3 # PyUtilib: A Python utility library. 4 # Copyright (c) 2008 Sandia Corporation. 5 # This software is distributed under the BSD License. 6 # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 7 # the U.S. Government retains certain rights in this software. 8 # _________________________________________________________________________ 9 # 10 11 import pyutilib.autotest 12 from pyutilib.component.core import * 13 import pyutilib.subprocess 14 15 16 class ExampleTestDriver(pyutilib.autotest.TestDriverBase): 17 """ 18 This test driver executes a unix command and compares its output 19 with a baseline value. 20 """ 21 22 alias('example') 23 24 def run_test(self, testcase, name, options): 25 """Execute a single test in the suite""" 26 name = options.suite+'_'+name 27 cmd = options.solver+' ' 28 if not options.cat_options is None: 29 cmd += options.cat_options+' ' 30 cmd += options.file 31 print "Running test suite '%s' test '%s' command '%s'" % \ 32 (options.suite, name, cmd) 33 pyutilib.subprocess.run(cmd, outfile=options.currdir+'test_'+name+".out") 34 testcase.failUnlessFileEqualsBaseline( 35 options.currdir+'test_'+name+".out", 36 options.currdir+'test_'+name+".txt") 37 pyutilib-6.0.0/examples/autotest/test_suite2_cat_p1.txt000066400000000000000000000003501367314503500233130ustar00rootroot00000000000000 This directory contains a working pyutilib.autotest example that will execute on Linux platforms. example.yml - The YAML test configuration example.py - The test driver plugin autotest.py - The Python module that executes tests pyutilib-6.0.0/examples/autotest/test_suite2_echo_p3.txt000066400000000000000000000000201367314503500234560ustar00rootroot00000000000000LoremIpsum1.txt pyutilib-6.0.0/examples/autotest/test_suite3_cat_p1.txt000066400000000000000000000003501367314503500233140ustar00rootroot00000000000000 This directory contains a working pyutilib.autotest example that will execute on Linux platforms. example.yml - The YAML test configuration example.py - The test driver plugin autotest.py - The Python module that executes tests pyutilib-6.0.0/examples/autotest/test_suite3_catx_p1.txt000066400000000000000000000004401367314503500235040ustar00rootroot00000000000000 1 2 This directory contains a working pyutilib.autotest example that will 3 execute on Linux platforms. 4 5 example.yml - The YAML test configuration 6 example.py - The test driver plugin 7 autotest.py - The Python module that executes tests 8 pyutilib-6.0.0/examples/pyro/000077500000000000000000000000001367314503500161745ustar00rootroot00000000000000pyutilib-6.0.0/examples/pyro/README.txt000066400000000000000000000003701367314503500176720ustar00rootroot00000000000000To execute this example, do the following in four separate processes: P1) pyro-ns P2) dispatch_srvr P3) factor_srvr P4) factorize NOTE: These examples assume that Pyro is installed on your machine. pyutilib-6.0.0/examples/pyro/factor.py000066400000000000000000000013011367314503500200170ustar00rootroot00000000000000 import sys from math import sqrt import pyutilib.pyro if sys.version_info >= (3,0): xrange = range def factorize(n): def isPrime(n): return not [x for x in xrange(2,int(sqrt(n))+1) if n%x == 0] primes = [] candidates = xrange(2,n+1) candidate = 2 while not primes and candidate in candidates: if n%candidate == 0 and isPrime(candidate): primes = primes + [candidate] + factorize(n/candidate) candidate += 1 return primes class FactorWorker(pyutilib.pyro.TaskWorker): def process(self,data): print "factorizing",data,"-->", sys.stdout.flush() res = factorize(int(data)) print res return res pyutilib-6.0.0/examples/pyro/factor_srvr000077500000000000000000000003061367314503500204530ustar00rootroot00000000000000#!/usr/bin/env python import factor import pyutilib.pyro import sys if len(sys.argv) == 2: host=sys.argv[1] else: host=None pyutilib.pyro.TaskWorkerServer(factor.FactorWorker, host=host) pyutilib-6.0.0/examples/pyro/factorize000077500000000000000000000031021367314503500201040ustar00rootroot00000000000000#!/usr/bin/env python from pyutilib.pyro import Client, Task import random import sys NUMBER_OF_ITEMS = 40 numbers = {} def processResult(item): print "Got result: %s (from %s)" % (item, item.processedBy) numbers[item.data] = item.result def main(): if len(sys.argv) == 2: host=sys.argv[1] else: host=None client = Client(host=host) print "\nThis program will calculate Prime Factorials of a bunch of random numbers." print "The more workers you will start (on different cpus/cores/machines)," print "the faster you will get the complete list of results!\n" print "placing work items into dispatcher queue." for i in range(NUMBER_OF_ITEMS): number=random.randint(3211, 5000)*random.randint(177,3000)*37 numbers[number] = None item = Task(data=number) client.add_task(item) print "getting results from dispatcher queue." resultCount=0 while resultCount0: print "removing leftover results from the dispatcher" while True: result = client.get_result() if not result is None: processResult(result) print "\nComputed Prime Factorials follow:" for (number, factorials) in numbers.items(): print number,"-->",factorials if __name__=="__main__": main() pyutilib-6.0.0/install_jython.sh000077500000000000000000000015061367314503500167670ustar00rootroot00000000000000#!/bin/bash #export JYTHON=org.python:jython-installer:2.7.0 #export HOME=/Users/wehart/src/python27/src/pyutilib #export VIRTUAL_ENV=$HOME #printenv $HOME #jip install joda-time:joda-time:2.3 set -e #set -v pip install jip jip install $JYTHON # # Install Jython # NON_GROUP_ID=${JYTHON#*:} _JYTHON_BASENAME=${NON_GROUP_ID/:/-} export CLASSPATH=$VIRTUAL_ENV/javalib/* java -jar $VIRTUAL_ENV/javalib/${_JYTHON_BASENAME}.jar -s -d $HOME/jython # # Create virtual environment # # pip isn't available in 2.7.0, so we need to use an older version of virtualenv # pip install virtualenv==1.9.1 virtualenv --version virtualenv -p $HOME/jython/bin/jython $HOME/myvirtualenv $HOME/myvirtualenv/bin/pip install nose # # Install packages into the jython virtual environment # export PATH=$HOME/myvirtualenv/bin:$PATH #ls $HOME/myvirtualenv/bin pyutilib-6.0.0/pyutilib/000077500000000000000000000000001367314503500152265ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/__init__.py000066400000000000000000000006601367314503500173410ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # pyutilib-6.0.0/pyutilib/autotest/000077500000000000000000000000001367314503500170765ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/autotest/__init__.py000066400000000000000000000015621367314503500212130ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # __test__ = False import pyutilib.component.core pyutilib.component.core.PluginGlobals.add_env('pyutilib.autotest') from pyutilib.autotest.plugins import ITestDriver, TestDriverFactory, ITestParser, TestDriverBase from pyutilib.autotest.driver import run, main, create_test_suites import pyutilib.autotest.yaml_plugin import pyutilib.autotest.json_plugin import pyutilib.autotest.default_testdriver pyutilib.component.core.PluginGlobals.pop_env() pyutilib-6.0.0/pyutilib/autotest/default_testdriver.py000066400000000000000000000024711367314503500233530ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # import sys from pyutilib.component.core import Plugin, implements, alias from pyutilib.autotest import plugins class DefaultTestDriver(Plugin): """ This is the 'default' test driver, which simply prints the arguments being passed into a test. """ implements(plugins.ITestDriver) alias('default') def setUpClass(self, cls, options): """Set-up the class that defines the suite of tests""" def tearDownClass(self, cls, options): """Tear-down the class that defines the suite of tests""" def setUp(self, testcase, options): """Set-up a single test in the suite""" def tearDown(self, testcase, options): """Tear-down a single test in the suite""" sys.stdout.flush() def run_test(self, testcase, name, options): """Execute a single test in the suite""" print('run_test ' + name) print(options) pyutilib-6.0.0/pyutilib/autotest/driver.py000066400000000000000000000361331367314503500207510ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # __all__ = ['run', 'main', 'create_test_suites'] import sys import optparse import re import os from os.path import dirname, abspath import pyutilib.th as unittest from pyutilib.misc import Options from pyutilib.component.core import ExtensionPoint from pyutilib.autotest import plugins # GAH: Inside create_test_suite all options are (were) being cast to # str(). Although I'm not sure, I assume this is to wash out # unicode coming from json files in Python 2.x. However, we don't # want to cast numeric options in either case (which was # happening, e.g., tolerance). This is my quick hack to fix # things. Please fix if you have a better understanding of what # should be happening. try: unicode except: basestring = str def _str(x): if isinstance(x, basestring): return str(x) return x def validate_test_config(suite): if suite is None: raise IOError( "Empty suite indicates problem processing suite configuration") # tmp = set(suite.keys()) if not tmp.issubset( set(['python', 'solvers', 'problems', 'suites', 'driver'])): raise IOError("Unexpected test sections: " + str(suite.keys())) # if 'python' in suite: if not type(suite['python']) is list: raise IOError("Expected list of Python expressions") # if 'solvers' in suite: if not type(suite['solvers']) is dict: raise IOError("Expected dictionary of solvers") for key in suite['solvers']: if suite['solvers'][key] is None: suite['solvers'][key] = {} elif not type(suite['solvers'][key]) is dict: raise IOError( "Expected solvers to have a dictionary of options: %s" % str(suite)) # if 'problems' in suite: if not type(suite['problems']) is dict: raise IOError("Expected dictionary of problems") for key in suite['problems']: if suite['problems'][key] is None: suite['problems'][key] = {} elif not type(suite['problems'][key]) is dict: raise IOError( "Expected problems to have a dictionary of options") # if 'suites' in suite: if not type(suite['suites']) is dict: raise IOError("Expected dictionary of suites") for key in suite['suites']: if suite['suites'][key] is None: suite['suites'][key] = {} elif not type(suite['suites'][key]) is dict: raise IOError("Expected suites to have a dictionary of options") @unittest.nottest def create_test_suites(filename=None, config=None, _globals=None, options=None): if options is None: #pragma:nocover options = Options() # # Add categories specified by the PYUTILIB_AUTOTEST_CATEGORIES # or PYUTILIB_UNITTEST_CATEGORIES environments # if options is None or options.categories is None or len( options.categories) == 0: options.categories = set() if 'PYUTILIB_AUTOTEST_CATEGORIES' in os.environ: for cat in re.split(',', os.environ['PYUTILIB_AUTOTEST_CATEGORIES']): if cat != '': options.categories.add(cat.strip()) elif 'PYUTILIB_UNITTEST_CATEGORIES' in os.environ: for cat in re.split(',', os.environ['PYUTILIB_UNITTEST_CATEGORIES']): if cat != '': options.categories.add(cat.strip()) # if not filename is None: if options.currdir is None: options.currdir = dirname(abspath(filename)) + os.sep # ep = ExtensionPoint(plugins.ITestParser) ftype = os.path.splitext(filename)[1] if not ftype == '': ftype = ftype[1:] service = ep.service(ftype) if service is None: raise IOError( "Unknown file type. Cannot load test configuration from file '%s'" % filename) config = service.load_test_config(filename) #service.print_test_config(config) validate_test_config(config) # # Evaluate Python expressions # for item in config.get('python', []): try: exec(item, _globals) except Exception: err = sys.exc_info()[1] print("ERROR executing '%s'" % item) print(" Exception: %s" % str(err)) # # Create test driver, which is put in the global namespace # driver = plugins.TestDriverFactory(config['driver']) if driver is None: raise IOError("Unexpected test driver '%s'" % config['driver']) _globals["test_driver"] = driver # # Generate suite # for suite in config.get('suites', {}): create_test_suite(suite, config, _globals, options) @unittest.nottest def create_test_suite(suite, config, _globals, options): # # Skip suite creation if the options categores do not intersect with the list of test suite categories # if len(options.categories) > 0: flag = False for cat in options.categories: if cat in config['suites'][suite].get('categories', []): flag = True break if not flag: return # # Create test driver # if suite in _globals: raise IOError( "Cannot create suite '%s' since there is another symbol with that name in the global namespace!" % suite) def setUpClassFn(cls): options = cls._options[None] cls._test_driver.setUpClass(cls, options) _globals[suite] = type( str(suite), (unittest.TestCase,), {'setUpClass': classmethod(setUpClassFn)}) _globals[suite]._options[None] = options setattr(_globals[suite], '_test_driver', _globals['test_driver']) setattr(_globals[suite], 'suite_categories', config['suites'][suite].get( 'categories', [])) # # Create test functions # tests = [] if 'tests' in config['suites'][suite]: for item in config['suites'][suite]['tests']: tests.append((item['solver'], item['problem'], item)) else: for solver in config['suites'][suite]['solvers']: for problem in config['suites'][suite]['problems']: tests.append((solver, problem, {})) # for solver, problem, item in tests: ##sname = solver if options.testname_format is None: test_name = solver + "_" + problem else: test_name = options.testname_format % (solver, problem) # def fn(testcase, name, suite): options = testcase._options[suite, name] fn.test_driver.setUp(testcase, options) ans = fn.test_driver.run_test(testcase, name, options) fn.test_driver.tearDown(testcase, options) return ans fn.test_driver = _globals['test_driver'] # _options = Options() # problem_options = config['suites'][suite]['problems'][problem] if not problem_options is None and 'problem' in problem_options: _problem = problem_options['problem'] else: _problem = problem for attr, value in config['problems'].get(_problem, {}).items(): _options[attr] = _str(value) if not problem_options is None: for attr, value in problem_options.items(): _options[attr] = _str(value) # solver_options = config['suites'][suite]['solvers'][solver] if not solver_options is None and 'solver' in solver_options: _solver = solver_options['solver'] else: _solver = solver _name = _solver for attr, value in config['solvers'].get(_solver, {}).items(): _options[attr] = _str(value) if attr == 'name': _name = value if not solver_options is None: for attr, value in solver_options.items(): _options[attr] = _str(value) # for key in item: if key not in ['problem', 'solver']: _options[key] = _str(item[key]) # _options.solver = _str(_name) _options.problem = _str(_problem) _options.suite = _str(suite) _options.currdir = _str(options.currdir) # _globals[suite].add_fn_test( name=test_name, fn=fn, suite=suite, options=_options) def cleanup(_globals, suites): for suite in suites: del _globals[suite] def run(argv, _globals=None): # # Set sys.argv to the value specified by the user # sys.argv = argv # # Create the option parser # parser = optparse.OptionParser() parser.remove_option('-h') # parser.add_option( '-h', '--help', action='store_true', dest='help', default=False, help='Print command options') # parser.add_option( '-d', '--debug', action='store_true', dest='debug', default=False, help='Set debugging flag') # parser.add_option( '-v', '--verbose', action='store_true', dest='verbose', default=False, help='Verbose output') # parser.add_option( '-q', '--quiet', action='store_true', dest='quiet', default=False, help='Minimal output') # parser.add_option( '-f', '--failfast', action='store_true', dest='failfast', default=False, help='Stop on first failure') # parser.add_option( '-c', '--catch', action='store_true', dest='catch', default=False, help='Catch control-C and display results') # parser.add_option( '-b', '--buffer', action='store_true', dest='buffer', default=False, help='Buffer stdout and stderr durring test runs') # parser.add_option( '--cat', '--category', action='append', dest='categories', default=[], help='Define a list of categories that filter the execution of test suites') # parser.add_option( '--help-suites', action='store_true', dest='help_suites', default=False, help='Print the test suites that can be executed') # parser.add_option( '--help-tests', action='store', dest='help_tests', default=None, help='Print the tests in the specified test suite') # parser.add_option( '--help-categories', action='store_true', dest='help_categories', default=False, help='Print the test suite categories that can be specified') # # Parse the argument list and print help info if needed # _options, args = parser.parse_args(sys.argv) if _options.help: parser.print_help() print(""" Examples: %s - run all test suites %s MyTestCase.testSomething - run MyTestCase.testSomething %s MyTestCase - run all 'test*' test methods in MyTestCase """ % (args[0], args[0], args[0])) return # # If no value for _globals is specified, then we use the current context. # if _globals is None: _globals = globals() # # Setup and Options object and create test suites from the specified # configuration files. # options = Options() options.debug = _options.debug options.verbose = _options.verbose options.quiet = _options.quiet options.categories = _options.categories _argv = [] for arg in args[1:]: if os.path.exists(arg): create_test_suites(filename=arg, _globals=_globals, options=options) else: _argv.append(arg) # # Collect information about the test suites: suite names and categories # suites = [] categories = set() for key in _globals.keys(): if type(_globals[key]) is type and issubclass(_globals[key], unittest.TestCase): suites.append(key) for c in _globals[key].suite_categories: categories.add(c) # # Process the --help-tests option # if _options.help_tests and not _globals is None: suite = _globals.get(_options.help_tests, None) if not type(suite) is type: print("Test suite '%s' not found!" % str(_options.help_tests)) return cleanup(_globals, suites) tests = [] for item in dir(suite): if item.startswith('test'): tests.append(item) print("") if len(tests) > 0: print("Tests defined in test suite '%s':" % _options.help_tests) for tmp in sorted(tests): print(" " + tmp) else: print("No tests defined in test suite '%s':" % _options.help_tests) print("") return cleanup(_globals, suites) # # Process the --help-suites and --help-categories options # if (_options.help_suites or _options.help_categories) and not _globals is None: if _options.help_suites: print("") if len(suites) > 0: print("Test suites defined in '%s':" % os.path.basename(argv[0])) for suite in sorted(suites): print(" " + suite) else: print("No test suites defined in '%s'!" % os.path.basename(argv[0])) print("") if _options.help_categories: tmp = list(categories) print("") if len(tmp) > 0: print("Test suite categories defined in '%s':" % os.path.basename(argv[0])) for c in sorted(tmp): print(" " + c) else: print("No test suite categories defined in '%s':" % os.path.basename(argv[0])) print("") return cleanup(_globals, suites) # # Reset the value of sys.argv per the expectations of the unittest module # tmp = [args[0]] if _options.quiet: tmp.append('-q') if _options.verbose or _options.debug: tmp.append('-v') if _options.failfast: tmp.append('-f') if _options.catch: tmp.append('-c') if _options.buffer: tmp.append('-b') tmp += _argv sys.argv = tmp # # Execute the unittest main function to run tests # unittest.main(module=_globals['__name__']) cleanup(_globals, suites) def main(_globals=None): run(sys.argv, _globals=_globals) pyutilib-6.0.0/pyutilib/autotest/json_plugin.py000066400000000000000000000021171367314503500220000ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # try: import json json_available = True except: #pragma:nocover json_available = False from pyutilib.component.core import SingletonPlugin, implements from pyutilib.autotest import plugins class JsonTestParser(SingletonPlugin): implements(plugins.ITestParser) def __init__(self, **kwds): SingletonPlugin.__init__(self, **kwds) self.name = 'json' def load_test_config(self, filename): INPUT = open(filename, 'r') repn = json.load(INPUT) INPUT.close() return repn def print_test_config(self, repn): print(repn) #pragma:nocover def enabled(self): return json_available pyutilib-6.0.0/pyutilib/autotest/plugins.py000066400000000000000000000035761367314503500211440ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # __all__ = ['ITestDriver', 'TestDriverFactory', 'ITestParser', 'TestDriverBase'] from pyutilib.component.core import Interface, implements, Plugin, CreatePluginFactory class ITestParser(Interface): def load_test_config(self, filename): pass #pragma:nocover def print_test_config(self, repn): pass #pragma:nocover class ITestDriver(Interface): def setUpClass(self, cls, options): """Set-up the class that defines the suite of tests""" def tearDownClass(self, cls, options): """Tear-down the class that defines the suite of tests""" def setUp(self, testcase, options): """Set-up a single test in the suite""" def tearDown(self, testcase, options): """Tear-down a single test in the suite""" def run_test(self, testcase, name, options): """Execute a single test in the suite""" class TestDriverBase(Plugin): implements(ITestDriver) def setUpClass(self, cls, options): """Set-up the class that defines the suite of tests""" def tearDownClass(self, cls, options): """Tear-down the class that defines the suite of tests""" def setUp(self, testcase, options): """Set-up a single test in the suite""" def tearDown(self, testcase, options): """Tear-down a single test in the suite""" def run_test(self, testcase, name, options): """Execute a single test in the suite""" TestDriverFactory = CreatePluginFactory(ITestDriver) pyutilib-6.0.0/pyutilib/autotest/tests/000077500000000000000000000000001367314503500202405ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/autotest/tests/__init__.py000066400000000000000000000007201367314503500223500ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # """ pyutilib.autotest tests """ pyutilib-6.0.0/pyutilib/autotest/tests/example1.json000066400000000000000000000053241367314503500226530ustar00rootroot00000000000000{ "driver": "default", "solvers": { "s1": { "soption1": "s1_opt1" }, "s2": { "name": "solver2" }, "s3": { "soption1": "s3_opt1" } }, "problems": { "p1": { "option1": "p1_opt1", "option2": "p1_opt2" }, "p2": { "option1": "p2_opt1" }, "p3": { "option1": "p3_opt1", "option2": "p3_opt2" } }, "suites": { "suite1": { "categories": [ "x_nightly", "x_smoke", "x_suite1" ], "solvers": { "s1": {}, "s2": {} }, "problems": { "p1": {} } }, "suite1a": { "categories": [ "x_nightly", "x_suite1" ], "solvers": { "s1": {}, "s2": {} }, "problems": { "p2": {} } }, "suite2": { "categories": [ "x_nightly", "x_smoke", "x_suite2" ], "solvers": { "s1": { "soption1": "s1_option1" }, "s3": {} }, "problems": { "p1": {}, "p2": { "option2": "p2_option2" }, "p3": { "option2": "p3_option2" } } }, "suite3": { "categories": [ "x_nightly", "x_smoke", "x_suite3" ], "solvers": { "sx1": { "solver": "s1", "soption1": "s1_option1" }, "sx3": { "solver": "s3" } }, "problems": { "px1": { "problem": "p1" }, "px2": { "problem": "p2", "option2": "p2_option2" }, "px3": { "problem": "p3", "option2": "p3_option2" } }, "tests": [ { "solver": "sx1", "problem": "px1" }, { "solver": "sx3", "problem": "px2" } ] } } } pyutilib-6.0.0/pyutilib/autotest/tests/example1.yml000066400000000000000000000030601367314503500224760ustar00rootroot00000000000000driver: default solvers: s1: soption1: s1_opt1 s2: name: solver2 s3: soption1: s3_opt1 problems: p1: option1: p1_opt1 option2: p1_opt2 p2: option1: p2_opt1 p3: option1: p3_opt1 option2: p3_opt2 suites: suite1: categories: - x_nightly - x_smoke - x_suite1 solvers: s1: s2: problems: p1: suite1a: categories: - x_nightly - x_suite1 solvers: s1: s2: problems: p2: suite2: categories: - x_nightly - x_smoke - x_suite2 solvers: s1: soption1: s1_option1 s3: problems: p1: p2: option2: p2_option2 p3: option2: p3_option2 suite3: categories: - x_nightly - x_smoke - x_suite3 solvers: sx1: solver: s1 soption1: s1_option1 sx3: solver: s3 problems: px1: problem: p1 px2: problem: p2 option2: p2_option2 px3: problem: p3 option2: p3_option2 tests: - solver: sx1 problem: px1 - solver: sx3 problem: px2 pyutilib-6.0.0/pyutilib/autotest/tests/test1.txt000066400000000000000000000020361367314503500220420ustar00rootroot00000000000000Usage: autotest [options] Options: -h, --help Print command options -d, --debug Set debugging flag -v, --verbose Verbose output -q, --quiet Minimal output -f, --failfast Stop on first failure -c, --catch Catch control-C and display results -b, --buffer Buffer stdout and stderr durring test runs --cat=CATEGORIES, --category=CATEGORIES Define a list of categories that filter the execution of test suites --help-suites Print the test suites that can be executed --help-tests=HELP_TESTS Print the tests in the specified test suite --help-categories Print the test suite categories that can be specified Examples: autotest - run all test suites autotest MyTestCase.testSomething - run MyTestCase.testSomething autotest MyTestCase - run all 'test*' test methods in MyTestCase pyutilib-6.0.0/pyutilib/autotest/tests/test2.txt000066400000000000000000000001221367314503500220350ustar00rootroot00000000000000 Test suites defined in 'autotest': suite1 suite1a suite2 suite3 pyutilib-6.0.0/pyutilib/autotest/tests/test3.txt000066400000000000000000000001601367314503500220400ustar00rootroot00000000000000 Test suite categories defined in 'autotest': x_nightly x_smoke x_suite1 x_suite2 x_suite3 pyutilib-6.0.0/pyutilib/autotest/tests/test4.txt000066400000000000000000000001061367314503500220410ustar00rootroot00000000000000 Tests defined in test suite 'suite1': test_s1_p1 test_s2_p1 pyutilib-6.0.0/pyutilib/autotest/tests/test5.txt000066400000000000000000000050541367314503500220510ustar00rootroot00000000000000run_test s1_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's1' soption1: 's1_opt1' suite: 'suite1' .run_test s2_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' name: 'solver2' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 'solver2' suite: 'suite1' .run_test s1_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' problem: 'p2' solver: 's1' soption1: 's1_opt1' suite: 'suite1a' .run_test s2_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' name: 'solver2' option1: 'p2_opt1' problem: 'p2' solver: 'solver2' suite: 'suite1a' .run_test s1_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's1' soption1: 's1_option1' suite: 'suite2' .run_test s1_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' option2: 'p2_option2' problem: 'p2' solver: 's1' soption1: 's1_option1' suite: 'suite2' .run_test s1_p3 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p3_opt1' option2: 'p3_option2' problem: 'p3' solver: 's1' soption1: 's1_option1' suite: 'suite2' .run_test s3_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's3' soption1: 's3_opt1' suite: 'suite2' .run_test s3_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' option2: 'p2_option2' problem: 'p2' solver: 's3' soption1: 's3_opt1' suite: 'suite2' .run_test s3_p3 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p3_opt1' option2: 'p3_option2' problem: 'p3' solver: 's3' soption1: 's3_opt1' suite: 'suite2' .run_test sx1_px1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's1' soption1: 's1_option1' suite: 'suite3' .run_test sx3_px2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' option2: 'p2_option2' problem: 'p2' solver: 's3' soption1: 's3_opt1' suite: 'suite3' . ---------------------------------------------------------------------- Ran 12 tests in 0.001s OK pyutilib-6.0.0/pyutilib/autotest/tests/test6.txt000066400000000000000000000042001367314503500220420ustar00rootroot00000000000000run_test s1_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's1' soption1: 's1_opt1' suite: 'suite1' .run_test s2_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' name: 'solver2' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 'solver2' suite: 'suite1' .run_test s1_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' problem: 'p2' solver: 's1' soption1: 's1_opt1' suite: 'suite1a' .run_test s2_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' name: 'solver2' option1: 'p2_opt1' problem: 'p2' solver: 'solver2' suite: 'suite1a' .run_test s1_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's1' soption1: 's1_option1' suite: 'suite2' .run_test s1_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' option2: 'p2_option2' problem: 'p2' solver: 's1' soption1: 's1_option1' suite: 'suite2' .run_test s1_p3 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p3_opt1' option2: 'p3_option2' problem: 'p3' solver: 's1' soption1: 's1_option1' suite: 'suite2' .run_test s3_p1 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p1_opt1' option2: 'p1_opt2' problem: 'p1' solver: 's3' soption1: 's3_opt1' suite: 'suite2' .run_test s3_p2 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p2_opt1' option2: 'p2_option2' problem: 'p2' solver: 's3' soption1: 's3_opt1' suite: 'suite2' .run_test s3_p3 currdir: '/Users/wehart/home/mac/src/python/src/pyutilib.autotest/pyutilib/autotest/tests/' option1: 'p3_opt1' option2: 'p3_option2' problem: 'p3' solver: 's3' soption1: 's3_opt1' suite: 'suite2' . ---------------------------------------------------------------------- Ran 10 tests in 0.001s OK pyutilib-6.0.0/pyutilib/autotest/tests/test_driver.py000066400000000000000000000150031367314503500231430ustar00rootroot00000000000000# # Unit Tests for pyutilib.autotest # # import os import sys from os.path import abspath, dirname, join currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest from pyutilib.misc import setup_redirect, reset_redirect import pyutilib.autotest import pyutilib.subprocess from pyutilib.dev.entry_point import run_entry_point try: import yaml yaml_available = True except ImportError: yaml_available = False try: import json json_available = True except ImportError: json_available = False def filter(str): return 'currdir' in str or \ 'Ran' in str or \ 'UserWarning' in str def filter_t1(str): return 'options' in str or \ 'Options' in str or \ 'usage' in str or \ 'Usage' in str class TestYaml(pyutilib.th.TestCase): def setUp(self): if sys.platform.startswith('java'): self.skipTest("Skipping tests because running in Jython") self.t1 = os.environ.get('PYUTILIB_AUTOTEST_CATEGORIES', None) self.t2 = os.environ.get('PYUTILIB_UNITTEST_CATEGORIES', None) if not self.t1 is None: del os.environ['PYUTILIB_AUTOTEST_CATEGORIES'] if not self.t2 is None: del os.environ['PYUTILIB_UNITTEST_CATEGORIES'] def driver(self, *args): tmp = ['autotest'] tmp += list(args) pyutilib.autotest.run(tmp, {}) def tearDown(self): if not self.t1 is None: os.environ['PYUTILIB_AUTOTEST_CATEGORIES'] = self.t1 if not self.t2 is None: os.environ['PYUTILIB_UNITTEST_CATEGORIES'] = self.t2 def test1(self): # run --help setup_redirect(currdir + 'test1.out') self.driver('--help') reset_redirect() self.assertFileEqualsBaseline( currdir + 'test1.out', currdir + 'test1.txt', filter=filter_t1) def test2(self): # run --help-suites example1.yml setup_redirect(currdir + 'test2.out') self.driver('--help-suites', currdir + 'example1.yml') reset_redirect() self.assertFileEqualsBaseline(currdir + 'test2.out', currdir + 'test2.txt') def test3(self): # run --help-categories example1.yml setup_redirect(currdir + 'test3.out') self.driver('--help-categories', currdir + 'example1.yml') reset_redirect() self.assertFileEqualsBaseline(currdir + 'test3.out', currdir + 'test3.txt') def test4(self): # run --help-tests suite1 example1.yml setup_redirect(currdir + 'test4.out') self.driver('--help-tests', 'suite1', currdir + 'example1.yml') reset_redirect() self.assertFileEqualsBaseline(currdir + 'test4.out', currdir + 'test4.txt') def test5(self): # run example1.yml run_entry_point('PyUtilib','pyutilib_test_driver', [join(currdir,'example1.yml')], outfile=join(currdir,'test5.out')) self.assertFileEqualsBaseline( currdir + 'test5.out', currdir + 'test5.txt', filter=filter) def test6(self): # run --cat x_suite2 --cat x_suite1 example1.yml run_entry_point('PyUtilib', 'pyutilib_test_driver', [ '--cat', 'x_suite2', '--cat', 'x_suite1', join(currdir,'example1.yml') ], outfile=join(currdir,'test6.out')) self.assertFileEqualsBaseline( currdir + 'test6.out', currdir + 'test6.txt', filter=filter) class TestJson(pyutilib.th.TestCase): def setUp(self): if sys.platform.startswith('java'): self.skipTest("Skipping tests because running in Jython") if not json_available: self.skipTest("Skipping tests because JSON is not available") self.t1 = os.environ.get('PYUTILIB_AUTOTEST_CATEGORIES', None) self.t2 = os.environ.get('PYUTILIB_UNITTEST_CATEGORIES', None) if not self.t1 is None: del os.environ['PYUTILIB_AUTOTEST_CATEGORIES'] if not self.t2 is None: del os.environ['PYUTILIB_UNITTEST_CATEGORIES'] def driver(self, *args): tmp = ['autotest'] tmp += list(args) pyutilib.autotest.run(tmp, {}) def tearDown(self): if not self.t1 is None: os.environ['PYUTILIB_AUTOTEST_CATEGORIES'] = self.t1 if not self.t2 is None: os.environ['PYUTILIB_UNITTEST_CATEGORIES'] = self.t2 def test1(self): # run --help setup_redirect(currdir + 'test1.out') self.driver('--help') reset_redirect() self.assertFileEqualsBaseline( currdir + 'test1.out', currdir + 'test1.txt', filter=filter_t1) def test2(self): # run --help-suites example1.json setup_redirect(currdir + 'test2.out') self.driver('--help-suites', currdir + 'example1.json') reset_redirect() self.assertFileEqualsBaseline(currdir + 'test2.out', currdir + 'test2.txt') def test3(self): # run --help-categories example1.json setup_redirect(currdir + 'test3.out') self.driver('--help-categories', currdir + 'example1.json') reset_redirect() self.assertFileEqualsBaseline(currdir + 'test3.out', currdir + 'test3.txt') def test4(self): # run --help-tests suite1 example1.json setup_redirect(currdir + 'test4.out') self.driver('--help-tests', 'suite1', currdir + 'example1.json') reset_redirect() self.assertFileEqualsBaseline(currdir + 'test4.out', currdir + 'test4.txt') def test5(self): # run example1.json run_entry_point('PyUtilib','pyutilib_test_driver', [join(currdir,'example1.json')], outfile=join(currdir,'test5.out')) self.assertFileEqualsBaseline( currdir + 'test5.out', currdir + 'test5.txt', filter=filter) def test6(self): # run --cat x_suite2 --cat x_suite1 example1.json run_entry_point('PyUtilib', 'pyutilib_test_driver', [ '--cat', 'x_suite2', '--cat', 'x_suite1', join(currdir,'example1.json') ], outfile=join(currdir,'test6.out')) self.assertFileEqualsBaseline( currdir + 'test6.out', currdir + 'test6.txt', filter=filter) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/autotest/yaml_plugin.py000066400000000000000000000025651367314503500220000ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # try: import yaml using_yaml = True except ImportError: #pragma:nocover using_yaml = False from pyutilib.component.core import SingletonPlugin, implements from pyutilib.autotest import plugins import pyutilib.misc class YamlTestParser(SingletonPlugin): implements(plugins.ITestParser) def __init__(self, **kwds): SingletonPlugin.__init__(self, **kwds) self.name = 'yml' def load_test_config(self, filename): if using_yaml: INPUT = open(filename, 'r') repn = yaml.load(INPUT, yaml.SafeLoader) INPUT.close() return repn # # If PyYaml is not available, then we use a simple yaml parser # INPUT = open(filename, 'r') repn = pyutilib.misc.simple_yaml_parser(INPUT) INPUT.close() return repn def print_test_config(self, repn): print(repn) #pragma:nocover def enabled(self): return True pyutilib-6.0.0/pyutilib/common/000077500000000000000000000000001367314503500165165ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/common/__init__.py000066400000000000000000000010371367314503500206300ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # from pyutilib.common._exceptions import ConfigurationError, ApplicationError, BadDebuggingValue, WindowsError pyutilib-6.0.0/pyutilib/common/_exceptions.py000066400000000000000000000030231367314503500214060ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ import sys __all__ = ['ConfigurationError', 'ApplicationError', 'BadDebuggingValue'] class WindowsError_def(Exception): """ An exception used there is an error configuring a package. """ def __init__(self, *args, **kargs): Exception.__init__(self, *args, **kargs) #pragma:nocover if (sys.platform[0:3] != "win"): WindowsError = WindowsError_def else: WindowsError = WindowsError __all__.append("WindowsError") class ConfigurationError(Exception): """ An exception used there is an error configuring a package. """ def __init__(self, *args, **kargs): Exception.__init__(self, *args, **kargs) #pragma:nocover class ApplicationError(Exception): """ An exception used when an external application generates an error. """ def __init__(self, *args, **kargs): Exception.__init__(self, *args, **kargs) #pragma:nocover class BadDebuggingValue(Exception): """ An exception used when a bad debugging value is used. """ def __init__(self, *args, **kargs): Exception.__init__(self, *args, **kargs) #pragma:nocover pyutilib-6.0.0/pyutilib/component/000077500000000000000000000000001367314503500172305ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/component/__init__.py000066400000000000000000000012731367314503500213440ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # from . import core # # Import the 'pyutilib.component' plugins # core.PluginGlobals.add_env("pca") from . import config from . import executables from . import loader from . import app # # Remove the "pca" environment as the default # core.PluginGlobals.pop_env() pyutilib-6.0.0/pyutilib/component/app/000077500000000000000000000000001367314503500200105ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/component/app/__init__.py000066400000000000000000000011351367314503500221210ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ The pyutilib.component.app package defines application interfaces that simplify the use of the PyUtilib Component Architecture. """ from .simple import SimpleApplication pyutilib-6.0.0/pyutilib/component/app/simple.py000066400000000000000000000036251367314503500216610ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ This is a convenience class that configures the PyUtilib Component Architecture for a named application. This class registers and activates a variety of plugins that are commonly used in simple applications. """ import pyutilib.component.core import pyutilib.component.config import os class SimpleApplication(object): def __init__(self, name, filename=None): self.name = name if filename is None: self.filename = 'config.ini' else: self.filename = filename self.env = pyutilib.component.core.PluginGlobals.add_env(self.name) self.config = pyutilib.component.config.Configuration(filename) self._env_config = pyutilib.component.config.EnvironmentConfig(name) self._env_config.options.path = os.getcwd() self.logger = pyutilib.component.config.LoggingConfig(name) self._egg_plugin = pyutilib.component.core.PluginFactory( "EggLoader", namespace=name, env='pca') def configure(self, filename): """Load a configuration file, and update options""" self.config.load(filename) def save_configuration(self, filename): """Save a configuration file""" self.config.save(filename) def exit(self): """Perform cleanup operations""" self.logger.shutdown() def log(self, message): """Generate logging output""" self.logger.log(message) def flush(self): """Flush the log output""" self.logger.flush() pyutilib-6.0.0/pyutilib/component/app/tests/000077500000000000000000000000001367314503500211525ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/component/app/tests/__init__.py000066400000000000000000000000371367314503500232630ustar00rootroot00000000000000"""Test plugin applications""" pyutilib-6.0.0/pyutilib/component/app/tests/app1a.py000066400000000000000000000003471367314503500225320ustar00rootroot00000000000000import pyutilib.component.app import os import sys currdir = sys.argv[-1] + os.sep app = pyutilib.component.app.SimpleApplication("foo") app._env_config.options.path = "DEFAULT PATH HERE" app.config.save(currdir + "config1.out") pyutilib-6.0.0/pyutilib/component/app/tests/app1b.py000066400000000000000000000003351367314503500225300ustar00rootroot00000000000000import pyutilib.component.app import os import sys currdir = sys.argv[-1] + os.sep app = pyutilib.component.app.SimpleApplication("foo") app.config.load(currdir + "config1.txt") app.config.save(currdir + "config1.out") pyutilib-6.0.0/pyutilib/component/app/tests/app2.py000066400000000000000000000004141367314503500223650ustar00rootroot00000000000000import pyutilib.component.app import pyutilib.misc import os import sys currdir = sys.argv[-1] + os.sep app = pyutilib.component.app.SimpleApplication("foo") pyutilib.misc.setup_redirect(currdir + "summary.out") app.config.summarize() pyutilib.misc.reset_redirect() pyutilib-6.0.0/pyutilib/component/app/tests/app3.py000066400000000000000000000005211367314503500223650ustar00rootroot00000000000000import pyutilib.component.app import os import sys currdir = sys.argv[-1] + os.sep app = pyutilib.component.app.SimpleApplication("foo") app.config.load(currdir + "log1.ini") app.logger.log_dir = currdir app.logger.log_file = "app3.log" app.logger.reset_after_updates() app.env.load_services() app.log("test_app3 message") app.flush() pyutilib-6.0.0/pyutilib/component/app/tests/app4.py000066400000000000000000000004641367314503500223740ustar00rootroot00000000000000import os import sys import pyutilib.component.app currdir = sys.argv[-1] + os.sep app = pyutilib.component.app.SimpleApplication("foo") app.config.load(currdir + "log1.ini") #print type(app.logger.log_dir) app.logger.log_dir = currdir #print type(app.logger.log_dir) app.config.save(currdir + "tmp2.ini") pyutilib-6.0.0/pyutilib/component/app/tests/config1.txt000066400000000000000000000007131367314503500232420ustar00rootroot00000000000000; ; Note: the following configuration options have been omitted because their ; value is 'None': ; section='globals' option='tempdir' ; section='logging.foo' option='log_dir' ; section='logging.foo' option='log_format' ; ; [Services] Configuration_ConfigParser = True EggLoader.foo = True ImportLoader = True TempfileManager = True [foo] path = DEFAULT PATH HERE [logging.foo] log_file = foo.log log_level = WARN log_type = none timestamp = False pyutilib-6.0.0/pyutilib/component/app/tests/log1.ini000066400000000000000000000001051367314503500225110ustar00rootroot00000000000000[logging] log_file = foo.log log_level = DEBUG log_type = file pyutilib-6.0.0/pyutilib/component/app/tests/summary.txt000066400000000000000000000044231367314503500234130ustar00rootroot00000000000000[Services] Option: Configuration_ConfigParser Type: BoolOption Default: True Doc: Option that controls behavior of service Configuration_ConfigParser. Option: EggLoader.foo Type: BoolOption Default: True Doc: Option that controls behavior of service EggLoader.foo. Option: ImportLoader Type: BoolOption Default: True Doc: Option that controls behavior of service ImportLoader. Option: TempfileManager Type: BoolOption Default: True Doc: Option that controls behavior of service TempfileManager. [foo] Option: Type: DictOption Default: None (this dictionary consists of all values in this section) Doc: [globals] Option: tempdir Type: Option Default: None Doc: [logging.foo] Option: log_dir Type: Option Default: None Doc: The logging directory. The default directory is the application directory plus 'log'. Option: log_file Type: Option Default: foo.log Doc: If `log_type` is `file`, this should be a path to the log-file. Option: log_format Type: Option Default: None Doc: Custom logging format. If nothing is set, the following will be used: $(project)[$(env) $(module)] $(levelname): $(message) In addition to regular key names supported by the Python logger library library (see http://docs.python.org/lib/node422.html), one could use: - $(path)s the path for the current environment - $(basename)s the last path component of the current environment - $(app)s the name of the current application Note the usage of `$(...)s` instead of `%(...)s` as the latter form would be interpreted by the ConfigParser itself. Option: log_level Type: Option Default: WARN Doc: Level of verbosity in log. Should be one of (`CRITICAL`, `ERROR`, `WARN`, `INFO`, `DEBUG`). Option: log_type Type: Option Default: none Doc: Logging facility to use. Should be one of (`none`, `file`, `stderr`, `syslog`, `winlog`). Option: timestamp Type: Option Default: False Doc: Add timestamp to logging information. pyutilib-6.0.0/pyutilib/component/app/tests/test_simple.py000066400000000000000000000033111367314503500240520ustar00rootroot00000000000000# # Test simple applications # import os import sys from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.subprocess class Test(unittest.TestCase): def test_app1a(self): pyutilib.subprocess.run(sys.executable + " " + currdir + os.sep + "app1a.py " + currdir) self.assertFileEqualsBaseline(currdir + "config1.out", currdir + "config1.txt") def test_app1b(self): pyutilib.subprocess.run(sys.executable + " " + currdir + os.sep + "app1b.py " + currdir) self.assertFileEqualsBaseline(currdir + "config1.out", currdir + "config1.txt") def test_app2(self): pyutilib.subprocess.run(sys.executable + " " + currdir + os.sep + "app2.py " + currdir) self.assertFileEqualsBaseline(currdir + "summary.out", currdir + "summary.txt") def test_app3(self): pyutilib.subprocess.run(sys.executable + " " + currdir + os.sep + "app3.py " + currdir) if not os.path.exists(currdir + "app3.log"): self.fail("expected log file") else: os.remove(currdir + "app3.log") def test_app4(self): pyutilib.subprocess.run(sys.executable + " " + currdir + os.sep + "app4.py " + currdir) if not os.path.exists(currdir + "tmp2.ini"): self.fail("expected ini file") else: os.remove(currdir + "tmp2.ini") if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/component/config/000077500000000000000000000000001367314503500204755ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/component/config/__init__.py000066400000000000000000000024471367314503500226150ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ The pyutilib.component.config package includes utilities to configure the PyUtilib Component Architecture. This includes facilities for using configuration files, controlling logging, and specifying component options. """ from pyutilib.component.core import PluginGlobals PluginGlobals.add_env("pca") from pyutilib.component.config.env_config import EnvironmentConfig from pyutilib.component.config.options import ExecutableOption, declare_option, Option from pyutilib.component.config.managed_plugin import ManagedPlugin, ManagedSingletonPlugin from pyutilib.component.config.configuration import Configuration, ConfigurationError from pyutilib.component.config.logging_config import LoggingConfig from pyutilib.component.config.tempfiles import ITempfileManager, TempfileManagerPlugin, TempfileManager import pyutilib.component.config.plugin_ConfigParser PluginGlobals.pop_env() pyutilib-6.0.0/pyutilib/component/config/configuration.py000066400000000000000000000173531367314503500237270ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ This package defines the Configuration class, which provides a generic interface for reading/writing configuration files. This class uses a simple model for configuration data: section -> option -> value A key role of this class is to support initialization of Option objects. """ import os.path from pyutilib.component.core import PluginError, Interface, Plugin, ExtensionPoint, implements, IOptionDataProvider from pyutilib.component.config.options import IOption, IFileOption, IUpdatedOptionsAction class ConfigurationError(PluginError): """Exception raised when a value in the configuration file is not valid.""" class IConfiguration(Interface): """Define an interface for classes that are used by Configuration to read/write configuration data.""" def load(self, filename): """Returns a list of tuples: [ (section,option,value) ]""" def save(self, filename, config): """Save configuration information to the specified file.""" class Configuration(Plugin): """This class manages configuration data. Further, this configuration I/O is coordinated with Option objects. When configuration data is read in, associated Option plugins are populated. Similarly, when configuration data is writen, the configuration data is taken from Option data.""" def __init__(self, filename=None, parser="ConfigParser"): """Constructor. @param filename - The associated configuration file. @param parser - Specify the name of the parser used to read/write configuration files. """ self.parser_type = "Configuration_ConfigParser" self.filename = filename # # Define extension points # self.parsers = ExtensionPoint(IConfiguration) self.option_plugins = ExtensionPoint(IOption) self.option_data_plugin = ExtensionPoint(IOptionDataProvider) self.pathoption_plugins = ExtensionPoint(IFileOption) self.postconfig_actions = ExtensionPoint(IUpdatedOptionsAction) self.clear() def clear(self): """Clear local data.""" self.config = [] self.data = {} self.section = [] def __contains__(self, name): """Return whether the configuration contains a section of the given name. """ return name in self.data def __getitem__(self, name): """Return the configuration section with the specified name.""" if name not in self.data: raise ConfigurationError("No section " + name + " in data") return self.data[name] def sections(self): """Returns the names of all sections in the configuration data.""" return list(self.data.keys()) def load(self, filename=None): """Load configuration from a file.""" if len(self.parsers) == 0: #pragma:nocover raise ConfigurationError("No IConfiguration parsers are registered") if not filename is None: self.filename = filename if self.filename is None: raise ConfigurationError("Cannot load without a filename") for option in self.pathoption_plugins: option.set_dir(os.path.dirname(self.filename)) # # By default, we simply take the first parser # self.config = self.parsers.service(self.parser_type).load(self.filename) self.data = {} self.section = [] for (s, o, v) in self.config: if not s in self.data: self.section.append(s) self.data[s] = {} if not o in self.data[s]: self.data[s][o] = [] self.data[s][o].append(v) # # Iterate through all sections, in the order they were # loaded. Load data for extensions that match each section name. # for sec in self.section: # # Find the option_plugins that match this section # plugins = [] for plugin in self.option_plugins: if plugin.matches_section(sec): plugins.append(plugin) for option in self.data[sec]: flag = False for plugin in plugins: if plugin.matches_name(option): flag = plugin.load(option, self.data[sec][option]) or flag if not flag: raise ConfigurationError( "Problem loading file %r. Option %r in section %r is not recognized!" % (self.filename, option, sec)) # # Finalize the configuration process # for plugin in self.postconfig_actions: plugin.reset_after_updates() def save(self, filename=None): """Save configuration to a file.""" if not filename is None: self.filename = filename if self.filename is None: raise ConfigurationError("Cannot save without a filename") # # Setup the list of tuples # self.clear() self.data = self.option_data_plugin.service().get_data() self.section = list(self.data.keys()) self.section.sort() flag = False header = "\nNote: the following configuration options have been omitted because their\nvalue is 'None':\n" for sec in self.section: plugins = [] for plugin in self.option_plugins: if plugin.matches_section(sec): plugins.append(plugin) # options = list(self.data[sec].keys()) options.sort() for option in options: for plugin in plugins: if plugin.matches_name(option): if not self.data[sec][option] is None: val = self.data[sec][option] self.config.append((sec, option, val)) else: flag = True header = header + " section=%r option=%r\n" % ( sec, option) break if flag: header = header + "\n" else: header = None # # Write config file # self.parsers.service(self.parser_type).save(self.filename, self.config, header) def pprint(self): """Print a simple summary of the configuration data.""" text = "" for (s, o, v) in self.config: text += "[%s] %s = %s\n" % (s, o, v) print(text) def summarize(self): """Summarize options""" tmp = {} for option in self.option_plugins: tmp.setdefault(option.section, {})[option.name] = option keys = list(tmp.keys()) keys.sort() for key in keys: print("[" + key + "]") print("") okeys = list(tmp[key].keys()) okeys.sort() for okey in okeys: print(" Option: " + tmp[key][okey].name) print(" Type: " + tmp[key][okey].__class__.__name__) print(" Default: " + tmp[key][okey].default_str()) print(" Doc: " + tmp[key][okey].__doc__) print("") print("") pyutilib-6.0.0/pyutilib/component/config/env_config.py000066400000000000000000000057451367314503500231770ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """A plugin that supports configuration of environment options.""" import os.path import os import re import logging from pyutilib.component.core import Interface, IPluginLoadPath, Plugin, implements from pyutilib.component.config.options import DictOption, declare_option logger = logging.getLogger('pyutilib.component.core.pca') class IEnvironmentConfig(Interface): """Interface for environment configuration.""" def get_option(self, option): """Return the value of the specified option.""" def matches(self, namespace): """ Returns a tuple (flag,count). The flag is true if this environment is a parent of the specified namespace. If the flag is true, then the count is the number of levels in the namespace. """ class EnvironmentConfig(Plugin): """A plugin that supports configuration of environment options.""" implements(IEnvironmentConfig) implements(IPluginLoadPath) def __init__(self, namespace): self.namespace = namespace self.p = re.compile(namespace) declare_option("options", cls=DictOption, section=namespace) def get_option(self, option): try: return getattr(self.options, option) except AttributeError: return None def matches(self, namespace): if self.p.match(namespace) is None: return (False, 0) return (True, namespace.count('.') + 1) def get_load_path(self): ans = [] # # Look for load_path in the environment # try: ans.append( os.path.normcase(os.path.realpath(self.options.load_path))) except OptionError: pass except AttributeError: pass # # Look for the $HOME/.$name/plugin directory # if "HOME" in os.environ: dir = os.path.normcase( os.path.realpath( os.path.join(os.environ["HOME"], "." + self.namespace, "plugins"))) if os.path.exists(dir): ans.append(dir) # # Look for the $PLUGINPATH environment # if "PLUGINPATH" in os.environ: tmp = os.environ["PLUGINPATH"] if ';' in tmp: ans += tmp.split(';') elif ':' in tmp: ans += tmp.split(':') else: ans += re.split('[ \t]+', tmp) if __debug__ and logger.isEnabledFor(logging.DEBUG): logger.debug("Created load path: %s" % ans) return ans pyutilib-6.0.0/pyutilib/component/config/logging_config.py000066400000000000000000000156321367314503500240310ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """A plugin that supports global configuration of logging options for pyutilib.component.core.""" import sys import os.path import logging import logging.handlers as handlers from pyutilib.component.core import Plugin, implements, ExtensionPoint, PluginGlobals from pyutilib.component.config.env_config import IEnvironmentConfig from pyutilib.component.config.options import IUpdatedOptionsAction, declare_option class LoggingConfig(Plugin): """A plugin that supports global configuration of logging options.""" implements(IUpdatedOptionsAction) def __init__(self, namespace): """Initialize logging information for a specified namespace""" self._hdlr = None self.namespace = namespace self.env_plugins = ExtensionPoint(IEnvironmentConfig) if self.namespace == "": section = "logging" section_re = None else: section = "logging." + namespace section_re = "^logging$" # declare_option( "timestamp", section=section, section_re=section_re, default=False, doc="""Add timestamp to logging information.""") # declare_option( "log_dir", section=section, section_re=section_re, default=None, doc="""The logging directory. The default directory is the application directory plus 'log'.""") # declare_option( "log_type", section=section, section_re=section_re, default='none', doc="""Logging facility to use. Should be one of (`none`, `file`, `stderr`, `syslog`, `winlog`).""") # declare_option( "log_file", section=section, section_re=section_re, default=namespace + '.log', doc="""If `log_type` is `file`, this should be a path to the log-file.""") # declare_option( "log_level", section=section, section_re=section_re, default='WARN', doc="""Level of verbosity in log. Should be one of (`CRITICAL`, `ERROR`, `WARN`, `INFO`, `DEBUG`).""") # declare_option( "log_format", section=section, section_re=section_re, default=None, doc="""Custom logging format. If nothing is set, the following will be used: $(project)[$(env) $(module)] $(levelname): $(message) In addition to regular key names supported by the Python logger library library (see http://docs.python.org/lib/node422.html), one could use: - $(path)s the path for the current environment - $(basename)s the last path component of the current environment - $(app)s the name of the current application Note the usage of `$(...)s` instead of `%(...)s` as the latter form would be interpreted by the ConfigParser itself. """) def reset_after_updates(self): """ Configure the pyutilib.component logging facility. This will implicitly configure all of the environment-specific logging objects. """ sys.stdout.flush() logger = logging.getLogger('pyutilib.component.core.' + self.namespace) if not self._hdlr is None: logger.removeHandler(self._hdlr) # # Set logging level # level = self.log_level level = level.upper() if level in ('DEBUG', 'ALL'): logger.setLevel(logging.DEBUG) elif level == 'INFO': logger.setLevel(logging.INFO) elif level == 'ERROR': logger.setLevel(logging.ERROR) elif level == 'CRITICAL': logger.setLevel(logging.CRITICAL) else: logger.setLevel(logging.WARNING) # # Initialize the current path. Is there a rule to use for whic # environment will be used??? In practice, there is likely to be # only one environment. # if self.log_dir is None: path = None for plugin in self.env_plugins: (flag, count) = plugin.matches(self.namespace) tmp = plugin.get_option("path") if flag and not tmp is None: path = tmp break if path is None: path = os.getcwd() else: path = self.log_dir # # Setup the logging file # logtype = self.log_type.lower() if self.log_file is None: logfile = os.path.join(path, 'log') else: logfile = self.log_file if not os.path.isabs(logfile): logfile = os.path.join(path, logfile) # # Define the format # format = self.log_format if format is None: format = '[env=%(env)s where=%(module)s] %(levelname)s - %(message)s' if self.timestamp and logtype in ('file', 'stderr'): format = '%(asctime)s ' + format format = format.replace('$(', '%(') \ .replace('%(env)s', PluginGlobals.get_env().name) datefmt = '' if self.timestamp and self.log_type == 'stderr': datefmt = '%X' formatter = logging.Formatter(format, datefmt) # # Define the handler # if logtype == 'file': hdlr = logging.FileHandler(logfile) elif logtype in ('winlog', 'eventlog', 'nteventlog'): # Requires win32 extensions hdlr = handlers.NTEventLogHandler(logid, logtype='Application') elif logtype in ('syslog', 'unix'): hdlr = handlers.SysLogHandler('/dev/log') elif logtype in ('stderr'): hdlr = logging.StreamHandler(sys.stderr) else: hdlr = handlers.BufferingHandler(0) # Note: this _really_ throws away log events, as a `MemoryHandler` # would keep _all_ records in case there's no target handler (a bug?) self._hdlr = hdlr self._logtype = logtype self._logfile = logfile hdlr.setFormatter(formatter) logger.addHandler(hdlr) self._log = logger def flush(self): """Flush logging I/O""" self._hdlr.flush() def shutdown(self): # # Q: should this shutdown _all_ logging? # logging.shutdown() def log(self, message): self._log.info(message) pyutilib-6.0.0/pyutilib/component/config/managed_plugin.py000066400000000000000000000041501367314503500240210ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """Plugins that contain options that support configuration of their services.""" __all__ = ['ManagedPlugin', 'ManagedSingletonPlugin'] from pyutilib.component.core import Plugin, SingletonPlugin from pyutilib.component.config.options import declare_option, BoolOption class ManagedPlugin(Plugin): """A plugin that has an option supports configuration of this service.""" def __init__(self, **kwds): Plugin.__init__(self, **kwds) #super(ManagedPlugin,self).__init__(**kwds) declare_option( name=self.name, section="Services", local_name="enable", default=self._enable, cls=BoolOption, doc="Option that controls behavior of service %s." % self.name) def __del__(self): # JPW: There has to be a better way to determine/cache the name of the option created in the # constructor call. For example, declare_option might return the name of the created attribute. # In the mean time, I have hard-coded the (known) name. # clean up the attached BoolOption, which is a plugin - otherwise, a memory leak will result. self._enable.deactivate() class ManagedSingletonPlugin(SingletonPlugin): """A singleton plugin that has an option supports configuration of this service.""" def __init__(self, **kwds): Plugin.__init__(self, **kwds) #super(ManagedSingletonPlugin,self).__init__(**kwds) declare_option( name=self.name, section="Services", local_name="enable", default=self._enable, cls=BoolOption, doc="Option that controls behavior of service %s." % self.name) pyutilib-6.0.0/pyutilib/component/config/options.py000066400000000000000000000516101367314503500225450ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ The Option class provides a mechanism for application classes to transparently load configuration data. For example, the consider the following class declaration: class FOO(Option): declare_option("x", local_name="bar") def __init__(self): self.x = FOO.bar The FOO class contains a declaration 'bar', which is initialized by loading a Configuration object. """ import weakref import sys import re import os import os.path from pyutilib.component.core import PluginError, Interface, implements, Plugin, PluginGlobals, ExtensionPoint, IOptionDataProvider try: unicode except: basestring = str class OptionError(PluginError): """Exception raised when there is an error processing an option.""" class IOption(Interface): """An interface that supports the initialization of Option objects from a Configuration object.""" def matches_section(self, section): """Returns True if this option matches the section name.""" def matches_name(self, section): """Returns True if this option matches the option name.""" def load(self, option, value): """Loads this option, if it matches the option name. Returns True if the option is loaded, and False otherwise.""" def get_value(self): """Return the value of this option""" def default_str(self): """Return a string value that describes the default option value""" def reset(self): """Reset all options to their default values.""" class IUpdatedOptionsAction(Interface): """Define actions that are applied after options have been updated.""" def reset_after_updates(self): """Perform actions that use updated option data.""" class IFileOption(Interface): """An interface that supports the initialization of the directory for options that specify files. This is needed to correctly initialize relative paths for files.""" def set_dir(self, path): """Sets the directory of the configuration data file.""" class OptionData(Plugin): """ A class that is used to share option data between Option objects. This data in this class represents option data as section -> option -> data Note: this class does not currentl support the situation where an option is removed. This would require a backwards map from option names to the Option classes that declare them. """ implements(IOptionDataProvider, service=True) def __init__(self): """Constructor""" self.ignore_missing = False self.data = {} def get_data(self): """Get the class data""" return self.data def set(self, section, name, value): """Set the value of an option in a specified section""" if section not in self.data: self.data[section] = {} self.data[section][name] = value def get(self, section, name): """Get the value of an option in a specified section""" try: return self.data[section][name] except Exception: if self.ignore_missing: return None if section in self.data: raise OptionError( "Problem retrieving the value of option %r from section %r. Valid keys are %s" % (name, section, self.data[section].keys())) else: raise OptionError( "Problem retrieving the value of option %r from section %r. Undefined section." % (name, section)) def clear(self, keys=None): """Clears the data""" if keys is None: self.data = {} else: for key in keys: if not key in self.data: continue del self.data[key] class OptionPlugin(Plugin): """Manages the initialization of an Option.""" implements(IOption, service=True) def __init__(self): """ Declare an extension point for a data provider, and construct one if one hasn't already been provided. """ self.data = ExtensionPoint(IOptionDataProvider) if PluginGlobals._default_OptionData is None: PluginGlobals._default_OptionData = OptionData() # # This is a hack. We shouldn't need to test if len(self.data) is zero. # Somewhere in our tests, the weakref to the OptionData object is being # corrupted. Perhaps this is caused by 'nose' or 'import' logic? # if True and len(self.data) == 0: PluginGlobals.interface_services[IOptionDataProvider].add( PluginGlobals._default_OptionData._id) PluginGlobals.plugin_instances[ PluginGlobals._default_OptionData._id] = weakref.ref( PluginGlobals._default_OptionData) # if len(self.data) == 0: #if False: #print "ZZZ", ep.Xextensions() #print "HERE", PluginGlobals._default_OptionData._id, PluginGlobals._default_OptionData.ctr #print "HERE", PluginGlobals._default_OptionData #print "HERE - id", id(PluginGlobals._default_OptionData) #print "HERE", getattr(PluginGlobals._default_OptionData, '_HERE_', None) #print "HERE", PluginGlobals._default_OptionData.__interfaces__ #print "" #print "HERE", PluginGlobals.interface_services #print "HERE", PluginGlobals.plugin_instances.keys() #for exe_ in PluginGlobals._executables: #print exe_._id, exe_ #print "LEN", len(PluginGlobals.env) #for name_ in PluginGlobals.env: #env_ = PluginGlobals.env[name_] #print env_.name #print env_.nonsingleton_plugins #print [env_.singleton_services[cls_] for cls_ in env_.singleton_services] raise PluginError( "Problem constructing a global OptionData object %s" % self.name) def matches_section(self, section): """ This method returns true if the section name matches the option section, or if the option's section regular expression matches the section name. """ return (section == self.section) or (self.section_re != None and ( not self.section_p.match(section) is None)) def matches_name(self, name): """ This method returns true if the name matches the options' name. """ return (self.name == "") or (name == self.name) def convert(self, value, default): """Convert a value into a specific type. The default behavior is to take the list of values, and simply return the last one defined in the configuration.""" return value[-1] def get_value(self): """ Get the option value. """ return self.data.service().get(self.section, self.name) def set_value(self, _value_, raw=False): """ Set the option value. By default, the option is converted using the option-specific `convert` method, but the `raw` option can be specified to force the raw value to be inserted. """ if raw: self.data.service().set(self.section, self.name, _value_) else: if not type(_value_) is list or len(_value_) == 0: _value_ = [_value_] self.data.service().set(self.section, self.name, self.convert( _value_, self.default)) def load(self, _option_, _value_): """ Load an option value. This method assumes that the option value is provided in a list, which is the format used when interfacing with the Configure class. """ if type(_value_) is list and len(_value_) == 0: raise OptionError("Attempting to load option %r with empty data" % (self.name)) try: self.set_value(_value_) except OptionError: err = sys.exc_info()[1] raise OptionError("Error loading option %r: %s" % (str(_option_), str(err))) return True def reset(self): """Set option to its default value""" self.set_value(self.default, raw=True) def default_str(self): """Return a string value that describes the default option value""" return str(self.default) class Option(OptionPlugin): """Descriptor for configuration options. This class uses an OptionPlugin instance to support initialization of the option. However, the OptionPlugin instance is given a handle on the Option instance to perform this initialization. This allows for the explicit referencing of this object's data, as well as referencing the conversion routines that are specified in subclasses of Option. """ def __init__(self, name=None, **kwds): """Create the extension point. @param name: the name of the option @param section: the name of the configuration section this option belongs to @param default: the default value for the option @param doc: documentation of the option """ self.section = "globals" super(Option, self).__init__() self.section_re = None self.name = name self.default = None self.__doc__ = "" for (k, v) in kwds.items(): self._parse_option(k, v) if name is None: raise OptionError("The Option class requires a name") self.reset() def _parse_option(self, k, v): """Parse option""" if k == "section": self.section = v elif k == "section_re": self.section_re = v self.section_p = re.compile(v) elif k == "default": self.default = v elif k == "doc": self.__doc__ = v elif not k in ("local_name"): # # It's convenient to ignore several keywords, which are really used by # declare_option(). # raise OptionError("Unknown keyword: " + k) def __get__(self, instance, owner): raise PluginError( "The Option class cannot be used as a class decorator") def __set__(self, instance, value): raise PluginError( "The Option class cannot be used as a class decorator") def __repr__(self, simple=False): """Returns a string representation of the option name""" sec = " [" + self.section + "]" return '<%s%s %r>' % (self.__class__.__name__, sec, self.name) class VirtualOption(object): """ This class is the decorator that is used to declare an option. To use an option, each instance must declare an Option object. """ def __init__(self, name, option=None): self.name = name self.option = option def _get_option(self, instance): if not self.option is None: return self.option try: return getattr(instance, self.name) except AttributeError: raise PluginError( "Expected attribute %r in instance %r. The declare_option() method was not called in the constructor!" % (self.name, instance)) def __get__(self, instance, owner): """Returns the value of the option, accessed through the local instance.""" if owner is None: #pragma:nocover return self return self._get_option(instance).get_value() def __set__(self, instance, value): """Sets the value of the option""" self._get_option(instance).set_value(value) def __repr__(self, simple=False): """Returns a string representation of the option name""" return "" % self.name def declare_option(name, cls=Option, **kwds): if not issubclass(cls, Option): raise PluginError( "The 'cls' argument must specify an Option class type: %s" % cls) local_name = kwds.get("local_name", name) frame = sys._getframe(1) locals_ = frame.f_locals #print "HERE", locals_ is not frame.f_globals, '__module__' in locals_ if locals_ is not frame.f_globals: kwds["name"] = name option_ = cls(**kwds) if '__module__' in locals_: # # Class decorator. Initialize the VirtualOption, and then # create a locally-available Option instance. # locals_[local_name] = VirtualOption("_" + local_name, option_) else: # # Class constructor. If a VirtualOption does not exist in this # class, create it. Create an Option instance in this instance. # if not local_name in locals_["self"].__class__.__dict__: setattr(locals_["self"].__class__, local_name, VirtualOption("_" + local_name)) setattr(locals_["self"], "_" + local_name, option_) else: raise PluginError( "declare_option() can only be used in a class definition") class DictOption(Option): """ An option that supports an interface to _all_ options in a section. For example, consider the following class: class FOO(object): options = DictOption(section="bar") The `options` object will be populated by all data in the `bar` section. For example, if the values `a` and `b` are in this section, then they can be referenced as `foo.a` and `foo.b`. Similarly, data can be inserted into the `bar` section by specifying the value of attributes of options: options.c = 1 """ class SectionWrapper(object): """ A class that is used to manage attribute access to a DictOption instance. This class uses IOptionDataProvider extension points to directly access shared Option data. """ def __init__(self, section, ignore_missing=False): self._section_ = section ep = ExtensionPoint(IOptionDataProvider) ep.service().ignore_missing = ignore_missing self.__dict__["data"] = ep def __iter__(self): if not self._section_ in self.data.service().data: return {}.__iter__() return self.data.service().data[self._section_].__iter__() def __getitem__(self, name): return self.data.service().get(self._section_, name) def keys(self): if not self._section_ in self.data.service().data: return [] return self.data.service().data[self._section_].keys() def __getattr__(self, name): try: return self.__dict__[name] except: return self.data.service().get(self._section_, name) def __setattr__(self, name, value): if name[0] == "_": self.__dict__[name] = value else: self.data.service().set(self._section_, name, value) def __init__(self, **kwds): """Constructor.""" kwds["name"] = "" if 'ignore_missing' in kwds: ignore_missing = kwds['ignore_missing'] del kwds['ignore_missing'] else: ignore_missing = False super(DictOption, self).__init__(**kwds) self.default = DictOption.SectionWrapper( self.section, ignore_missing=ignore_missing) def get_value(self): """Returns the default value.""" return self.default def set_value(self, _value_, raw=False): """ If the value is a dictionary, then it is evaluated to populate corresponding data in the options data. NOTE: the raw option is ignored, but maintained for compatibility with the parent class. """ if not type(_value_) is dict: return for key in _value_: self.default.__setattr__(key, _value_[key]) def load(self, _option_, _value_): """ Data is loaded one option/value pair at a time, so this method circumvents the core logic of this class. """ self.data.service().set(self.section, _option_, _value_[-1]) return True def default_str(self): """Return a string value that describes the default option value""" return "None (this dictionary consists of all values in this section)" class BoolOption(Option): """A class that converts option data into boolean values.""" _TRUE_VALUES = ('yes', 'true', 'enabled', 'on', 'aye', '1', 1, True) def convert(self, value, default): """Conversion routine.""" val = value[-1] if isinstance(val, basestring): val = val.lower() in BoolOption._TRUE_VALUES return bool(val) class IntOption(Option): """A class that converts option data into integer values.""" def convert(self, value, default): """Conversion routine.""" val = value[-1] if not val: return 0 try: return int(val) except ValueError: raise OptionError('Expected integer, got %s' % repr(value)) except TypeError: raise OptionError('Expected string or integer type, got %s' % repr(value)) class FloatOption(Option): """A class that converts option data into float values.""" def convert(self, value, default): """Conversion routine.""" val = value[-1] if not val: return 0 try: return float(val) except ValueError: raise OptionError('Expected float, got %s' % repr(value)) except TypeError: raise OptionError('Expected string or float type, got %s' % repr(value)) class FileOption(Option): """A class that converts option data into a path. Relative paths are converted using the path for the configuration file.""" implements(IFileOption, service=True) implements(IUpdatedOptionsAction, service=True) def __init__(self, name, **kwds): """ Constructor. By default, the current working directory is the path used in this data. """ self.dir = None Option.__init__(self, name, **kwds) def _parse_option(self, k, v): """Parse options that are specific to the FileOption class""" if k == "directory": self.dir = v else: Option._parse_option(self, k, v) def convert(self, value, default): """Conversion routine.""" val = value[-1] if not val: if default is None: return None return os.path.normcase(os.path.realpath(default)) if not os.path.isabs(val): val = os.path.join(self.dir, val) return os.path.normcase(os.path.realpath(val)) else: return os.path.normcase(os.path.realpath(val)) def set_dir(self, path): """Sets the path of the configuration data file.""" self.dir = path def reset_after_updates(self): if self.dir is None: #pragma:nocover raise OptionError("FileOption must have a directory specified.") class ExecutableOption(FileOption): def convert(self, value, default): """Conversion routine.""" val = FileOption.convert(self, value, default) if val is None or not os.access(val, os.X_OK): raise OptionError( "ExecutableOption value %r is not a file that can be executed" % val) return val def convert(self, value, default): """Conversion routine.""" val = value[-1] if not val: if default is None: return None val = os.path.normcase(os.path.realpath(default)) elif os.path.isabs(val): val = os.path.normcase(os.path.realpath(val)) elif not self.dir is None: val = os.path.normcase( os.path.realpath(os.path.join(self.dir, val))) else: flag = False for path in os.environ.get("PATH", []).split(os.pathsep): if os.path.exists(os.path.join(path, val)): val = os.path.normcase( os.path.realpath(os.path.join(path, val))) flag = True break if not flag: return None # # Confirm that the executable can be solved # if val is None or not os.access(val, os.X_OK): raise OptionError( "ExecutableOption value %r is not a file that can be executed" % val) def reset_after_updates(self): pass pyutilib-6.0.0/pyutilib/component/config/plugin_ConfigParser.py000066400000000000000000000050001367314503500250020ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """A parser used by the Configuration class.""" __all__ = ['Configuration_ConfigParser'] import os.path try: from ordereddict import OrderedDict except: OrderedDict = dict from pyutilib.component.core import implements from pyutilib.component.config.configuration import ConfigurationError, IConfiguration from pyutilib.component.config.managed_plugin import ManagedSingletonPlugin from pyutilib.component.config.options import declare_option def _configParser(**kwds): try: import ConfigParser except ImportError: import configparser as ConfigParser # # Force the config file option manager to be case sensitive # ConfigParser.RawConfigParser.optionxform = str return ConfigParser.ConfigParser(**kwds) class Configuration_ConfigParser(ManagedSingletonPlugin): """A configuration parser that uses the ConfigParser package.""" implements(IConfiguration) def __init__(self, **kwds): kwds['name'] = 'Configuration_ConfigParser' ManagedSingletonPlugin.__init__(self, **kwds) def load(self, filename): """Returns a list of tuples: [ (section,option,value) ]""" parser = _configParser() if not os.path.exists(filename): raise ConfigurationError("File " + filename + " does not exist!") parser.read(filename) # # Collect data # data = [] for section in parser.sections(): for (option, value) in parser.items(section): data.append((section, option, value)) return data def save(self, filename, config, header=None): """Save configuration information to the specified file.""" parser = _configParser() for (section, option, value) in config: if not parser.has_section(section): parser.add_section(section) parser.set(section, option, str(value)) OUTPUT = open(filename, "w") if not header is None: for line in header.split("\n"): OUTPUT.write("; " + line + '\n') parser.write(OUTPUT) OUTPUT.close() pyutilib-6.0.0/pyutilib/component/config/tempfiles.py000066400000000000000000000157751367314503500230560ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """A plugin that manages temporary files.""" __all__ = ['ITempfileManager', 'TempfileManagerPlugin', 'TempfileManager'] import os import time import tempfile import logging import shutil from pyutilib.component.core import Interface, implements from pyutilib.component.config.managed_plugin import ManagedSingletonPlugin from pyutilib.component.config.options import declare_option deletion_errors_are_fatal = True class ITempfileManager(Interface): """Interface for managing temporary files.""" def create_tempfile(self, suffix=None, prefix=None, text=False, dir=None): """Return the absolute path of a temporary file that is guaranteed to be unique.""" def create_tempdir(self, suffix=None, prefix=None, dir=None): """Return the absolute path of a temporary directory that is guaranteed to be unique.""" def add_tempfile(self, filename): """Declare this file to be temporary.""" def clear_tempfiles(self, remove=True): """Delete all temporary files.""" def sequential_files(self, ctr=0): """Start generating sequential files, using the specified counter""" def unique_files(self): """Start generating unique files""" def push(self): """Push tempfiles onto a stack. This creates a new context for tempfiles.""" def pop(self, remove=True): """Pop tempfiles onto a stack. Tempfiles that are popped off the stack are deleted.""" class TempfileManagerPlugin(ManagedSingletonPlugin): """A plugin that manages temporary files.""" implements(ITempfileManager) def __init__(self, **kwds): if getattr(self, '_initialized', False) is True: return self._initialized = True # kwds['name'] = 'TempfileManager' ManagedSingletonPlugin.__init__(self, **kwds) self._tempfiles = [[]] declare_option("tempdir", default=None) self._ctr = -1 def create_tempfile(self, suffix=None, prefix=None, text=False, dir=None): """ Return the absolute path of a temporary filename that is guaranteed to be unique. This function generates the file and returns the filename. """ if suffix is None: suffix = '' if prefix is None: prefix = 'tmp' if dir is None: dir = self.tempdir ans = tempfile.mkstemp(suffix=suffix, prefix=prefix, text=text, dir=dir) ans = list(ans) if not os.path.isabs(ans[1]): #pragma:nocover fname = os.path.join(dir, ans[1]) else: fname = ans[1] os.close(ans[0]) if self._ctr >= 0: new_fname = os.path.join(dir, prefix + str(self._ctr) + suffix) # Delete any file having the sequential name and then # rename if os.path.exists(new_fname): os.remove(new_fname) shutil.move(fname, new_fname) fname = new_fname self._ctr += 1 self._tempfiles[-1].append(fname) return fname def create_tempdir(self, suffix=None, prefix=None, dir=None): """ Return the absolute path of a temporary directory that is guaranteed to be unique. This function generates the directory and returns the directory name. """ if suffix is None: suffix = '' if prefix is None: prefix = 'tmp' if dir is None: dir = self.tempdir dirname = tempfile.mkdtemp(suffix=suffix, prefix=prefix, dir=dir) if self._ctr >= 0: new_dirname = os.path.join(dir, prefix + str(self._ctr) + suffix) # Delete any directory having the sequential name and then # rename if os.path.exists(new_dirname): shutil.rmtree(new_dirname) shutil.move(dirname, new_dirname) dirname = new_dirname self._ctr += 1 self._tempfiles[-1].append(dirname) return dirname def add_tempfile(self, filename, exists=True): """Declare this file to be temporary.""" tmp = os.path.abspath(filename) if exists and not os.path.exists(tmp): raise IOError("Temporary file does not exist: " + tmp) self._tempfiles[-1].append(tmp) def clear_tempfiles(self, remove=True): """Delete all temporary files.""" while len(self._tempfiles) > 1: self.pop(remove) self.pop(remove) def sequential_files(self, ctr=0): """Start generating sequential files, using the specified counter""" self._ctr = ctr def unique_files(self): """Stop generating sequential files, using the specified counter""" self._ctr = -1 # # Support "with" statements, where the pop automatically # takes place on exit. # def push(self): self._tempfiles.append([]) return self def __exit__(self, type, value, traceback): self.pop(remove=True) def pop(self, remove=True): files = self._tempfiles.pop() if remove: for filename in files: if os.path.exists(filename): if os.path.isdir(filename): shutil.rmtree( filename, ignore_errors=not deletion_errors_are_fatal) else: try: os.remove(filename) except WindowsError: # Sometimes Windows doesn't release the # file lock immediately when the process # terminates. If we get an error, wait a # second and try again. try: time.sleep(1) os.remove(filename) except WindowsError: if deletion_errors_are_fatal: raise else: # Failure to delete a tempfile # should NOT be fatal logger = logging.getLogger( 'pyutilib.component.config') logger.warning("Unable to delete temporary " "file %s" % (filename,)) if len(self._tempfiles) == 0: self._tempfiles = [[]] # # This global class provides a convenient handle to this # singleton plugin # TempfileManager = TempfileManagerPlugin() pyutilib-6.0.0/pyutilib/component/config/tests/000077500000000000000000000000001367314503500216375ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/component/config/tests/__init__.py000066400000000000000000000006561367314503500237570ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ pyutilib-6.0.0/pyutilib/component/config/tests/config1.ini000066400000000000000000000001011367314503500236560ustar00rootroot00000000000000# COMMENT [globals] a = 1 b = /dev/null c = 1,2,3 [a.b] zz = 4.5 pyutilib-6.0.0/pyutilib/component/config/tests/config1.txt000066400000000000000000000004521367314503500237270ustar00rootroot00000000000000; ; Note: the following configuration options have been omitted because their ; value is 'None': ; section='globals' option='tempdir' ; ; [Services] Configuration_ConfigParser = True ImportLoader = True TempfileManager = True [a.b] zz = 4.5 [globals] a = 1 b = /dev/null c = 1,2,3 yy = foo pyutilib-6.0.0/pyutilib/component/config/tests/config2.ini000066400000000000000000000000721367314503500236660ustar00rootroot00000000000000# COMMENT [dummy] a = 1 b = 'c' cc = 1,2,3 [a.b] zz = 4.5 pyutilib-6.0.0/pyutilib/component/config/tests/config3.ini000066400000000000000000000000741367314503500236710ustar00rootroot00000000000000# COMMENT [globals] a = 1 b = 'c' cc = 1,2,3 [a.b] zz = 4.5 pyutilib-6.0.0/pyutilib/component/config/tests/config4.ini000066400000000000000000000001201367314503500236620ustar00rootroot00000000000000# COMMENT [globals] a = XX 1 b = /dev/null c = XX 1,2,3 [globals:more] xx = 4.5 pyutilib-6.0.0/pyutilib/component/config/tests/config4.txt000066400000000000000000000005071367314503500237330ustar00rootroot00000000000000; ; Note: the following configuration options have been omitted because their ; value is 'None': ; section='a.b' option='zz' ; section='globals' option='tempdir' ; ; [Services] Configuration_ConfigParser = True ImportLoader = True TempfileManager = True [globals] a = XX 1 b = /dev/null c = XX 1,2,3 xx = 4.5 yy = foo pyutilib-6.0.0/pyutilib/component/config/tests/log2.txt000066400000000000000000000003271367314503500232450ustar00rootroot00000000000000[Services] Configuration_ConfigParser = True [Services] ImportLoader = True [Services] TempfileManager = True [globals] a = XX 1 [globals] b = /dev/null [globals] c = XX 1,2,3 [globals] xx = 4.5 [globals] yy = foo pyutilib-6.0.0/pyutilib/component/config/tests/test_config.py000066400000000000000000000125171367314503500245230ustar00rootroot00000000000000# # Unit Tests for pyutilib.options.configuration # # import os import sys from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep from nose.tools import nottest from pyutilib.component.core import ExtensionPoint, Plugin, PluginGlobals from pyutilib.component.config.options import FileOption, declare_option from pyutilib.component.config import Configuration, ConfigurationError import pyutilib.th as unittest import pyutilib.misc def filter(line): return line.startswith( "; section='") or 'memmon' in line or 'valgrind' in line or '[executables]' in line or 'null' in line class Test(unittest.TestCase): class TMP(Plugin): def __init__(self): declare_option("a") declare_option("b", local_name="bb") declare_option("b") declare_option("c") declare_option("zz", section='a.b') declare_option("yy", default="foo") def setUp(self): PluginGlobals.add_env("testing.config") pyutilib.component.config.plugin_ConfigParser.Configuration_ConfigParser( name="Configuration_ConfigParser") self.tmp = Test.TMP() def tearDown(self): del self.tmp PluginGlobals.remove_env( "testing.config", cleanup=True, singleton=False) def test_init(self): """Test Configuration construction""" config = Configuration() def test_contains(self): """Test contains method""" config = Configuration() self.assertFalse("globals" in config) config.load(currdir + "config1.ini") self.assertTrue("globals" in config) def test_getitem(self): """Test getitem method""" config = Configuration() try: config["globals"] self.fail("expected error") except ConfigurationError: pass config.load(currdir + "config1.ini") keys = list(config["globals"].keys()) keys.sort() self.assertTrue(keys == ["a", "b", "c"]) def test_sections(self): """Test getitem method""" config = Configuration() config.load(currdir + "config1.ini") keys = list(config.sections()) keys.sort() def test_load1(self): """Test load method""" config = Configuration() try: config.load(None) self.fail("expected error") except ConfigurationError: pass def test_load2(self): """Test load method""" config = Configuration() try: config.load("__missing__") self.fail("expected error") except ConfigurationError: pass def test_load3(self): """Test load method""" config = Configuration() try: config.load(currdir + "config2.ini") config.pprint() self.fail("expected error") except ConfigurationError: pass def test_load4(self): """Test load method""" config = Configuration() try: config.load(currdir + "config3.ini") self.fail("expected error") except ConfigurationError: pass def test_load5(self): """Test load method""" PluginGlobals.add_env("testing.config_loading") class TMP2(Plugin): def __init__(self): declare_option("a") declare_option("b", cls=FileOption) declare_option("c") declare_option("xx", section_re='globals.*') config = Configuration() tmp2 = TMP2() config.load(currdir + "config4.ini") #config.pprint() if False and sys.platform == "win32": # # A hack, to ensure cross-platform portability of this test # e = ExtensionPoint(IFileOption) for ep in e.extensions(): ep.set_value("/dev/null", raw=True) #PluginGlobals.pprint() config.save(currdir + "config4.out") #print config self.assertFileEqualsBaseline( currdir + "config4.out", currdir + "config4.txt", filter=filter) pyutilib.misc.setup_redirect(currdir + "log2.out") config.pprint() pyutilib.misc.reset_redirect() self.assertFileEqualsBaseline( currdir + "log2.out", currdir + "log2.txt", filter=filter) PluginGlobals.remove_env( "testing.config_loading", cleanup=True, singleton=False) def test_save1(self): """Test save method""" config = Configuration() config.load(currdir + "config1.ini") # # A hack, to ensure cross-platform portability of this test # if False and sys.platform == "win32": e = ExtensionPoint(IFileOption) for ep in e.extensions(): if ep.enabled(): ep.set_value("/dev/null", raw=True) config.save(currdir + "config1.out") #PluginGlobals.pprint() self.assertFileEqualsBaseline( currdir + "config1.out", currdir + "config1.txt", filter=filter) def test_save2(self): """Test save method""" config = Configuration() try: config.save(None) self.fail("expected error") except ConfigurationError: pass if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/component/config/tests/test_options.py000066400000000000000000000244641367314503500247550ustar00rootroot00000000000000import os import re import sys from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import unittest from pyutilib.component.core import Interface, PluginGlobals, ExtensionPoint, implements, Plugin from pyutilib.component.config.options import Option, OptionError, IOption, declare_option, FileOption, IntOption, FloatOption, DictOption, BoolOption PluginGlobals.add_env("testing.options") class IDummyOption(Interface): """An interface that supports the initialization of the directory for options that specify files. This is needed to correctly initialize relative paths for files.""" class DummyOption1(Option): """A test class that converts option data into float values.""" implements(IDummyOption) def convert(self, value, default): """Conversion routine.""" val = value[-1] if not val: return 0 try: return float(val) except ValueError: raise OptionError('Expected float, got %s' % repr(value)) except TypeError: raise OptionError('Expected string or float type, got %s' % repr(value)) PluginGlobals.pop_env() class TestOption(unittest.TestCase): def setUp(self): PluginGlobals.add_env("testing.options") PluginGlobals.clear_global_data(keys=['globals', 'a.b']) def tearDown(self): PluginGlobals.remove_env( "testing.options", cleanup=True, singleton=False) def test_init1(self): """Test Option construction""" try: Option() self.fail("expected failure") except OptionError: pass try: Option(None) self.fail("expected failure") except OptionError: pass try: Option("name", x=None) self.fail("expected failure") except OptionError: pass def test_init2(self): """Test Option construction""" FOO = Option("foo") self.assertEqual(FOO.name, "foo") self.assertTrue(FOO.default is None) self.assertTrue(FOO.section == "globals") self.assertTrue(FOO.section_re == None) self.assertTrue(FOO.__doc__ == "") def test_init3(self): """Test Option construction""" FOO = Option( name="foo", default=1, section="a", doc="b", section_re="re") self.assertEqual(FOO.name, "foo") self.assertEqual(FOO.default, 1) self.assertTrue(FOO.get_value() == 1) self.assertEqual(FOO.section, "a") self.assertEqual(FOO.section_re, "re") self.assertEqual(FOO.__doc__, "b") def test_set_get1(self): """Test set/get values""" class TMP_set_get1(Plugin): ep = ExtensionPoint(IDummyOption) declare_option("foo", local_name="opt", default=4, cls=DummyOption1) obj = TMP_set_get1() self.assertTrue(obj.opt == 4) self.assertTrue(obj.opt / 2 == 2) obj.opt = 6 self.assertTrue(obj.opt / 2 == 3) # # Verify that the TMP instance has value 6 # for pt in obj.ep: self.assertEqual(pt.get_value(), 6) def test_set_get2(self): """Test validate global nature of set/get""" class TMP_set_get2(Plugin): ep = ExtensionPoint(IOption) declare_option("foo", local_name="o1", default=4) declare_option("foo", local_name="o2", default=4) obj = TMP_set_get2() self.assertEqual(type(obj.o1), int) self.assertTrue(obj.o1 / 2 == 2) obj.o1 = 6 self.assertTrue(obj.o1 / 2 == 3) self.assertTrue(obj.o2 / 2 == 3) def test_set_get3(self): """Test validate nature of set/get for instance-specific options""" class TMP_set_get3(Plugin): ep = ExtensionPoint(IOption) def __init__(self, section): declare_option("o1", section=section, default=4) obj1 = TMP_set_get3("sec1") obj2 = TMP_set_get3("sec1") obj3 = TMP_set_get3("sec2") self.assertEqual(type(obj1.o1), int) self.assertTrue(obj1.o1 / 2 == 2) self.assertTrue(obj2.o1 / 2 == 2) self.assertTrue(obj3.o1 / 2 == 2) obj1.o1 = 6 self.assertTrue(obj1.o1 / 2 == 3) self.assertTrue(obj2.o1 / 2 == 3) self.assertTrue(obj3.o1 / 2 == 2) def test_repr(self): """Test string repn""" ep = ExtensionPoint(IOption) class TMP_repr(Plugin): declare_option("o1", default=4) declare_option("o2", section="foo", default=4) obj = TMP_repr() if re.match("\ a b c HERE d e f pyutilib-6.0.0/pyutilib/misc/tests/test1.cfg000066400000000000000000000000571367314503500210460ustar00rootroot00000000000000[globals] help=will be ignored files=test2.cfg pyutilib-6.0.0/pyutilib/misc/tests/test_archivereader.py000066400000000000000000000351741367314503500235520ustar00rootroot00000000000000# # Unit Tests for misc/archivereader # # import os import fnmatch import posixpath import pyutilib.th as unittest from pyutilib.misc.archivereader import \ ArchiveReaderFactory, DirArchiveReader, FileArchiveReader, \ TarArchiveReader, ZipArchiveReader, BZ2FileArchiveReader, \ GzipFileArchiveReader, tarfile_available, zipfile_available, \ gzip_available, bz2_available currdir = os.path.dirname(os.path.abspath(__file__)) testdatadir = os.path.join(currdir, 'archivereader') class TestArchiveReaderFactory(unittest.TestCase): def test_ArchiveReaderFactory_dir(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'archive_flat')) self.assertTrue(isinstance(archive, DirArchiveReader)) @unittest.skipUnless(tarfile_available, "tarfile support is disabled") def test_ArchiveReaderFactory_tar(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'archive_flat.tar')) self.assertTrue(isinstance(archive, TarArchiveReader)) @unittest.skipUnless(tarfile_available, "tarfile support is disabled") def test_ArchiveReaderFactory_targz(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'archive_flat.tar.gz')) self.assertTrue(isinstance(archive, TarArchiveReader)) @unittest.skipUnless(tarfile_available, "tarfile support is disabled") def test_ArchiveReaderFactory_tgz(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'archive_flat.tgz')) self.assertTrue(isinstance(archive, TarArchiveReader)) @unittest.skipUnless(zipfile_available, "zipfile support is disabled") def test_ArchiveReaderFactory_zip(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'archive_flat.zip')) self.assertTrue(isinstance(archive, ZipArchiveReader)) def test_ArchiveReaderFactory_file(self): archive = ArchiveReaderFactory(os.path.join(testdatadir, 'fileC.txt')) self.assertTrue(isinstance(archive, FileArchiveReader)) @unittest.skipUnless(gzip_available, "gzip support is disabled") def test_ArchiveReaderFactory_gzip(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'fileC.txt.gz')) self.assertTrue(isinstance(archive, GzipFileArchiveReader)) @unittest.skipUnless(bz2_available, "bz2 support is disabled") def test_ArchiveReaderFactory_bzip2(self): archive = ArchiveReaderFactory( os.path.join(testdatadir, 'fileC.txt.bz2')) self.assertTrue(isinstance(archive, BZ2FileArchiveReader)) def test_ArchiveReaderFactory_nonexist(self): try: archive = ArchiveReaderFactory( os.path.join(testdatadir, '_does_not_exist_')) except IOError: pass else: self.fail( "ArchiveReaderFactory should raise exception with nonexistent archive") class _TestArchiveReaderBaseNested(object): archive_class = None archive_name = None archive_class_kwds = {} def setUp(self): self._a = None def tearDown(self): if self._a is not None: self._a.close() def test_default(self): a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name), **self.archive_class_kwds) tmpdir = a.extract('directory', recursive=True) self.assertEqual(os.path.exists(tmpdir), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), True) a.clear_extractions() self.assertEqual(os.path.exists(tmpdir), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), False) tmpdir = a.extract('directory', recursive=True) self.assertEqual(os.path.exists(tmpdir), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), True) a.clear_extractions() self.assertEqual(os.path.exists(tmpdir), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), False) tmpnames = a.extractall() for name in tmpnames: self.assertEqual(os.path.exists(name), True) names = [a.normalize_name(name).replace( a.normalize_name(a._workdir) + '/', '') for name in tmpnames] self.assertEqual( sorted(names), sorted(['directory', posixpath.join('directory', 'fileA.txt'), posixpath.join('directory', 'fileB.txt')])) a.clear_extractions() for name in tmpnames: self.assertEqual(os.path.exists(name), False) self.assertEqual( sorted(a.getnames()), sorted(['directory', posixpath.join('directory', 'fileA.txt'), posixpath.join('directory', 'fileB.txt')])) f = a.open(posixpath.join('directory', 'fileA.txt')) try: self.assertEqual(f.read().strip().decode(), 'this is fileA') finally: f.close() f = a.open(posixpath.join('directory', 'fileB.txt')) try: self.assertEqual(f.read().strip().decode(), 'this is fileB') finally: f.close() a.close() def test_maxdepth0(self): a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name), maxdepth=0, **self.archive_class_kwds) tmpdir = a.extract('directory', recursive=True) self.assertEqual(os.path.exists(tmpdir), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), False) a.clear_extractions() self.assertEqual(os.path.exists(tmpdir), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), False) tmpnames = a.extractall() for name in tmpnames: self.assertEqual(os.path.exists(name), True) names = [a.normalize_name(name).replace( a.normalize_name(a._workdir) + '/', '') for name in tmpnames] self.assertEqual(sorted(names), sorted(['directory'])) a.clear_extractions() for name in tmpnames: self.assertEqual(os.path.exists(name), False) self.assertEqual(sorted(a.getnames()), sorted(['directory'])) a.close() def test_maxdepth1(self): a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name), maxdepth=1, **self.archive_class_kwds) tmpdir = a.extract('directory', recursive=True) self.assertEqual(os.path.exists(tmpdir), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), True) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), True) a.clear_extractions() self.assertEqual(os.path.exists(tmpdir), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileA.txt')), False) self.assertEqual( os.path.exists(os.path.join(tmpdir, 'fileB.txt')), False) tmpnames = a.extractall() for name in tmpnames: self.assertEqual(os.path.exists(name), True) names = [a.normalize_name(name).replace( a.normalize_name(a._workdir) + '/', '') for name in tmpnames] self.assertEqual( sorted(names), sorted(['directory', posixpath.join('directory', 'fileA.txt'), posixpath.join('directory', 'fileB.txt')])) a.clear_extractions() for name in tmpnames: self.assertEqual(os.path.exists(name), False) self.assertEqual( sorted(a.getnames()), sorted(['directory', posixpath.join('directory', 'fileA.txt'), posixpath.join('directory', 'fileB.txt')])) f = a.open(posixpath.join('directory', 'fileA.txt')) try: self.assertEqual(f.read().strip().decode(), 'this is fileA') finally: f.close() f = a.open(posixpath.join('directory', 'fileB.txt')) try: self.assertEqual(f.read().strip().decode(), 'this is fileB') finally: f.close() a.close() def test_subdir_maxdepth0(self): a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name), subdir='directory', maxdepth=0, **self.archive_class_kwds) tmpnames = a.extractall() for name in tmpnames: self.assertEqual(os.path.exists(name), True) names = [a.normalize_name(name).replace( posixpath.join(a.normalize_name(a._workdir), a._subdir), '') for name in tmpnames] self.assertEqual(sorted(names), sorted(['fileA.txt', 'fileB.txt'])) a.clear_extractions() for name in tmpnames: self.assertEqual(os.path.exists(name), False) a.close() a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name), subdir='directory', maxdepth=0, **self.archive_class_kwds) self.assertEqual( sorted(a.getnames()), sorted(['fileA.txt', 'fileB.txt'])) f = a.open('fileA.txt') try: self.assertEqual(f.read().strip().decode(), 'this is fileA') finally: f.close() f = a.open('fileB.txt') try: self.assertEqual(f.read().strip().decode(), 'this is fileB') finally: f.close() a.close() def test_subdir_maxdepth1(self): a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name), subdir='directory', maxdepth=1, **self.archive_class_kwds) tmpnames = a.extractall() for name in tmpnames: self.assertEqual(os.path.exists(name), True) names = [a.normalize_name(name).replace( posixpath.join(a.normalize_name(a._workdir), a._subdir), '') for name in tmpnames] self.assertEqual(sorted(names), sorted(['fileA.txt', 'fileB.txt'])) a.clear_extractions() for name in tmpnames: self.assertEqual(os.path.exists(name), False) self.assertEqual( sorted(a.getnames()), sorted(['fileA.txt', 'fileB.txt'])) f = a.open('fileA.txt') try: self.assertEqual(f.read().strip().decode(), 'this is fileA') finally: f.close() f = a.open('fileB.txt') try: self.assertEqual(f.read().strip().decode(), 'this is fileB') finally: f.close() a.close() def dir_svn_junk_filter(x): return (fnmatch.fnmatch(x,"*.junk") or \ fnmatch.fnmatch(x,"*.svn*")) class TestDirArchiveReader(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = DirArchiveReader archive_name = 'archive_directory' archive_class_kwds = {'filter': dir_svn_junk_filter} class TestDirArchiveReaderWin(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = DirArchiveReader archive_name = 'win_archive_directory' archive_class_kwds = {'filter': dir_svn_junk_filter} @unittest.skipUnless(tarfile_available, "tarfile support is disabled") class TestTarArchiveReader1(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = TarArchiveReader archive_name = 'archive_directory.tgz' @unittest.skipUnless(tarfile_available, "tarfile support is disabled") class TestTarArchiveReader2(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = TarArchiveReader archive_name = 'archive_directory.tar.gz' @unittest.skipUnless(tarfile_available, "tarfile support is disabled") class TestTarArchiveReader3(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = TarArchiveReader archive_name = 'archive_directory.tar' @unittest.skipUnless(zipfile_available, "zipfile support is disabled") class TestZipArchiveReader(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = ZipArchiveReader archive_name = 'archive_directory.zip' @unittest.skipUnless(zipfile_available, "zipfile support is disabled") class TestZipArchiveReaderWin(_TestArchiveReaderBaseNested, unittest.TestCase): archive_class = ZipArchiveReader archive_name = 'win_archive_directory.zip' class _TestFileArchiveReaderBase(object): archive_class = None archive_name = None def setUp(self): self._a = None def tearDown(self): if self._a is not None: self._a.close() def test1(self): a = self._a = self.archive_class( os.path.join(testdatadir, self.archive_name)) f = a.open('fileC.txt') try: self.assertEqual(f.read().strip().decode(), 'this is fileC') finally: f.close() f = a.open() try: self.assertEqual(f.read().strip().decode(), 'this is fileC') finally: f.close() dst = a.extract() self.assertEqual(os.path.exists(dst), True) with open(dst, 'rb') as f: self.assertEqual(f.read().strip().decode(), 'this is fileC') a.clear_extractions() self.assertEqual(os.path.exists(dst), False) dst = a.extract('fileC.txt') self.assertEqual(os.path.exists(dst), True) with open(dst, 'rb') as f: self.assertEqual(f.read().strip().decode(), 'this is fileC') a.clear_extractions() self.assertEqual(os.path.exists(dst), False) a.close() @unittest.skipUnless(gzip_available, "gzip support is disabled") class TestGzipFileArchiveReader(_TestFileArchiveReaderBase, unittest.TestCase): archive_class = GzipFileArchiveReader archive_name = 'fileC.txt.gz' @unittest.skipUnless(bz2_available, "bz2 support is disabled") class TestBZ2FileArchiveReader(_TestFileArchiveReaderBase, unittest.TestCase): archive_class = BZ2FileArchiveReader archive_name = 'fileC.txt.bz2' class TestFileArchiveReader(_TestFileArchiveReaderBase, unittest.TestCase): archive_class = FileArchiveReader archive_name = 'fileC.txt' if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_config.py000066400000000000000000001662371367314503500222200ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ import sys import os import os.path import pickle import re currdir = os.path.dirname(os.path.abspath(__file__)) import pyutilib.th as unittest import pyutilib.misc.comparison from pyutilib.misc.config import ConfigValue, ConfigBlock, ConfigList, MarkImmutable from six import PY3, StringIO try: import yaml using_yaml = True if int(yaml.__version__.split('.')[0]) < 5: def yaml_load(arg): return yaml.load(arg) else: def yaml_load(arg): return yaml.load(arg, Loader=yaml.FullLoader) except ImportError: using_yaml = False # Utility to redirect display() to a string def _display(obj, *args): test = StringIO() obj.display(ostream=test, *args) return test.getvalue() class TestImmutableConfigValue(unittest.TestCase): def test_immutable_config_value(self): config = ConfigBlock() config.declare('a', ConfigValue(default=1, domain=int)) config.declare('b', ConfigValue(default=1, domain=int)) config.a = 2 config.b = 3 self.assertEqual(config.a, 2) self.assertEqual(config.b, 3) locker = MarkImmutable(config.get('a'), config.get('b')) with self.assertRaises(Exception): config.a = 4 with self.assertRaises(Exception): config.b = 5 config.a = 2 config.b = 3 self.assertEqual(config.a, 2) self.assertEqual(config.b, 3) locker.release_lock() config.a = 4 config.b = 5 self.assertEqual(config.a, 4) self.assertEqual(config.b, 5) with self.assertRaises(ValueError): locker = MarkImmutable(config.get('a'), config.b) self.assertEqual(type(config.get('a')), ConfigValue) config.a = 6 self.assertEqual(config.a, 6) config.declare('c', ConfigValue(default=-1, domain=int)) locker = MarkImmutable(config.get('a'), config.get('b')) config2 = config({'c': -2}) self.assertEqual(config2.a, 6) self.assertEqual(config2.b, 5) self.assertEqual(config2.c, -2) with self.assertRaises(Exception): config3 = config({'a': 1}) locker.release_lock() config3 = config({'a': 1}) self.assertEqual(config3.a, 1) class Test(unittest.TestCase): def setUp(self): # Save the original environment, then force a fixed column width # so tests do not fail on some platforms (notably, OSX) self.original_environ = dict(os.environ) os.environ["COLUMNS"] = "80" self.config = config = ConfigBlock( "Basic configuration for Flushing models", implicit=True) net = config.declare('network', ConfigBlock()) net.declare('epanet file', ConfigValue('Net3.inp', str, 'EPANET network inp file', None)).declare_as_argument(dest='epanet') sc = config.declare( 'scenario', ConfigBlock( "Single scenario block", implicit=True, implicit_domain=str)) sc.declare('scenario file', ConfigValue( 'Net3.tsg', str, 'Scenario generation file, see the TEVASIM documentation', """This is the (long) documentation for the 'scenario file' parameter. It contains multiple lines, and some internal formatting; like a bulleted list: - item 1 - item 2 """)).declare_as_argument(group='Scenario definition') sc.declare('merlion', ConfigValue( default=False, domain=bool, description='Water quality model', doc=""" This is the (long) documentation for the 'merlion' parameter. It contains multiple lines, but no apparent internal formatting; so the outputter should re-wrap everything.""" )).declare_as_argument(group='Scenario definition') sc.declare('detection', ConfigValue( # Note use of lambda for an "integer list domain" [1, 2, 3], lambda x: list(int(i) for i in x), 'Sensor placement list, epanetID', None)) config.declare('scenarios', ConfigList([], sc, "List of scenario blocks", None)) config.declare('nodes', ConfigList( [], ConfigValue(0, int, 'Node ID', None), "List of node IDs", None)) im = config.declare('impact', ConfigBlock()) im.declare('metric', ConfigValue( 'MC', str, 'Population or network based impact metric', None)) fl = config.declare('flushing', ConfigBlock()) n = fl.declare('flush nodes', ConfigBlock()) n.declare('feasible nodes', ConfigValue( 'ALL', str, 'ALL, NZD, NONE, list or filename', None)) n.declare('infeasible nodes', ConfigValue( 'NONE', str, 'ALL, NZD, NONE, list or filename', None)) n.declare('max nodes', ConfigValue(2, int, 'Maximum number of nodes to flush', None)) n.declare('rate', ConfigValue(600, float, 'Flushing rate [gallons/min]', None)) n.declare('response time', ConfigValue( 60, float, 'Time [min] between detection and flushing', None)) n.declare('duration', ConfigValue(600, float, 'Time [min] for flushing', None)) v = fl.declare('close valves', ConfigBlock()) v.declare('feasible pipes', ConfigValue( 'ALL', str, 'ALL, DIAM min max [inch], NONE, list or filename', None)) v.declare('infeasible pipes', ConfigValue( 'NONE', str, 'ALL, DIAM min max [inch], NONE, list or filename', None)) v.declare('max pipes', ConfigValue(2, int, 'Maximum number of pipes to close', None)) v.declare('response time', ConfigValue( 60, float, 'Time [min] between detection and closing valves', None)) self._reference = { 'network': { 'epanet file': 'Net3.inp' }, 'scenario': { 'detection': [1, 2, 3], 'scenario file': 'Net3.tsg', 'merlion': False }, 'scenarios': [], 'nodes': [], 'impact': { 'metric': 'MC' }, 'flushing': { 'close valves': { 'infeasible pipes': 'NONE', 'max pipes': 2, 'feasible pipes': 'ALL', 'response time': 60.0 }, 'flush nodes': { 'feasible nodes': 'ALL', 'max nodes': 2, 'infeasible nodes': 'NONE', 'rate': 600.0, 'duration': 600.0, 'response time': 60.0 }, }, } def tearDown(self): # Restore the original environment os.environ = self.original_environ # Utility method for generating and validating a template description def _validateTemplate(self, config, reference_template, **kwds): test = config.generate_yaml_template(**kwds) width = kwds.get('width', 80) indent = kwds.get('indent_spacing', 2) sys.stdout.write(test) for l in test.splitlines(): self.assertLessEqual(len(l), width) if l.strip().startswith("#"): continue self.assertEqual((len(l) - len(l.lstrip())) % indent, 0) self.assertEqual(test, reference_template) def test_template_default(self): reference_template = """# Basic configuration for Flushing models network: epanet file: Net3.inp # EPANET network inp file scenario: # Single scenario block scenario file: Net3.tsg # Scenario generation file, see the TEVASIM # documentation merlion: false # Water quality model detection: [1, 2, 3] # Sensor placement list, epanetID scenarios: [] # List of scenario blocks nodes: [] # List of node IDs impact: metric: MC # Population or network based impact metric flushing: flush nodes: feasible nodes: ALL # ALL, NZD, NONE, list or filename infeasible nodes: NONE # ALL, NZD, NONE, list or filename max nodes: 2 # Maximum number of nodes to flush rate: 600.0 # Flushing rate [gallons/min] response time: 60.0 # Time [min] between detection and flushing duration: 600.0 # Time [min] for flushing close valves: feasible pipes: ALL # ALL, DIAM min max [inch], NONE, list or filename infeasible pipes: NONE # ALL, DIAM min max [inch], NONE, list or filename max pipes: 2 # Maximum number of pipes to close response time: 60.0 # Time [min] between detection and closing valves """ self._validateTemplate(self.config, reference_template) def test_template_3space(self): reference_template = """# Basic configuration for Flushing models network: epanet file: Net3.inp # EPANET network inp file scenario: # Single scenario block scenario file: Net3.tsg # Scenario generation file, see the TEVASIM # documentation merlion: false # Water quality model detection: [1, 2, 3] # Sensor placement list, epanetID scenarios: [] # List of scenario blocks nodes: [] # List of node IDs impact: metric: MC # Population or network based impact metric flushing: flush nodes: feasible nodes: ALL # ALL, NZD, NONE, list or filename infeasible nodes: NONE # ALL, NZD, NONE, list or filename max nodes: 2 # Maximum number of nodes to flush rate: 600.0 # Flushing rate [gallons/min] response time: 60.0 # Time [min] between detection and flushing duration: 600.0 # Time [min] for flushing close valves: feasible pipes: ALL # ALL, DIAM min max [inch], NONE, list or # filename infeasible pipes: NONE # ALL, DIAM min max [inch], NONE, list or # filename max pipes: 2 # Maximum number of pipes to close response time: 60.0 # Time [min] between detection and closing # valves """ self._validateTemplate(self.config, reference_template, indent_spacing=3) def test_template_4space(self): reference_template = """# Basic configuration for Flushing models network: epanet file: Net3.inp # EPANET network inp file scenario: # Single scenario block scenario file: Net3.tsg # Scenario generation file, see the TEVASIM # documentation merlion: false # Water quality model detection: [1, 2, 3] # Sensor placement list, epanetID scenarios: [] # List of scenario blocks nodes: [] # List of node IDs impact: metric: MC # Population or network based impact metric flushing: flush nodes: feasible nodes: ALL # ALL, NZD, NONE, list or filename infeasible nodes: NONE # ALL, NZD, NONE, list or filename max nodes: 2 # Maximum number of nodes to flush rate: 600.0 # Flushing rate [gallons/min] response time: 60.0 # Time [min] between detection and flushing duration: 600.0 # Time [min] for flushing close valves: feasible pipes: ALL # ALL, DIAM min max [inch], NONE, list or # filename infeasible pipes: NONE # ALL, DIAM min max [inch], NONE, list or # filename max pipes: 2 # Maximum number of pipes to close response time: 60.0 # Time [min] between detection and closing # valves """ self._validateTemplate(self.config, reference_template, indent_spacing=4) def test_template_3space_narrow(self): reference_template = """# Basic configuration for Flushing models network: epanet file: Net3.inp # EPANET network inp file scenario: # Single scenario block scenario file: Net3.tsg # Scenario generation file, see the TEVASIM # documentation merlion: false # Water quality model detection: [1, 2, 3] # Sensor placement list, epanetID scenarios: [] # List of scenario blocks nodes: [] # List of node IDs impact: metric: MC # Population or network based impact metric flushing: flush nodes: feasible nodes: ALL # ALL, NZD, NONE, list or filename infeasible nodes: NONE # ALL, NZD, NONE, list or filename max nodes: 2 # Maximum number of nodes to flush rate: 600.0 # Flushing rate [gallons/min] response time: 60.0 # Time [min] between detection and # flushing duration: 600.0 # Time [min] for flushing close valves: feasible pipes: ALL # ALL, DIAM min max [inch], NONE, list or # filename infeasible pipes: NONE # ALL, DIAM min max [inch], NONE, list or # filename max pipes: 2 # Maximum number of pipes to close response time: 60.0 # Time [min] between detection and closing # valves """ self._validateTemplate(self.config, reference_template, indent_spacing=3, width=72) def test_display_default(self): reference = """network: epanet file: Net3.inp scenario: scenario file: Net3.tsg merlion: false detection: [1, 2, 3] scenarios: [] nodes: [] impact: metric: MC flushing: flush nodes: feasible nodes: ALL infeasible nodes: NONE max nodes: 2 rate: 600.0 response time: 60.0 duration: 600.0 close valves: feasible pipes: ALL infeasible pipes: NONE max pipes: 2 response time: 60.0 """ test = _display(self.config) sys.stdout.write(test) self.assertEqual(test, reference) def test_display_list(self): reference = """network: epanet file: Net3.inp scenario: scenario file: Net3.tsg merlion: false detection: [1, 2, 3] scenarios: - scenario file: Net3.tsg merlion: false detection: [1, 2, 3] - scenario file: Net3.tsg merlion: true detection: [] nodes: [] impact: metric: MC flushing: flush nodes: feasible nodes: ALL infeasible nodes: NONE max nodes: 2 rate: 600.0 response time: 60.0 duration: 600.0 close valves: feasible pipes: ALL infeasible pipes: NONE max pipes: 2 response time: 60.0 """ self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) test = _display(self.config) sys.stdout.write(test) self.assertEqual(test, reference) def test_display_userdata_default(self): test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, "") def test_display_userdata_list(self): self.config['scenarios'].append() test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, """scenarios: - """) def test_display_userdata_list_nonDefault(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, """scenarios: - - merlion: true detection: [] """) def test_display_userdata_block(self): self.config.add("foo", ConfigValue(0, int, None, None)) self.config.add("bar", ConfigBlock()) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, "") def test_display_userdata_block_nonDefault(self): self.config.add("foo", ConfigValue(0, int, None, None)) self.config.add("bar", ConfigBlock(implicit=True)) \ .add("baz", ConfigBlock()) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, "bar:\n") def test_unusedUserValues_default(self): test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, "") def test_unusedUserValues_scalar(self): self.config['scenario']['merlion'] = True test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, "scenario.merlion") def test_unusedUserValues_list(self): self.config['scenarios'].append() test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios scenarios[0]""") def test_unusedUserValues_list_nonDefault(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios scenarios[0] scenarios[1] scenarios[1].merlion scenarios[1].detection""") def test_unusedUserValues_list_nonDefault_listAccessed(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) for x in self.config['scenarios']: pass test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios[0] scenarios[1] scenarios[1].merlion scenarios[1].detection""") def test_unusedUserValues_list_nonDefault_itemAccessed(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) self.config['scenarios'][1]['merlion'] test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios[0] scenarios[1].detection""") def test_unusedUserValues_topBlock(self): self.config.add('foo', ConfigBlock()) test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, "") def test_unusedUserValues_subBlock(self): self.config['scenario'].add('foo', ConfigBlock()) test = '\n'.join(x.name(True) for x in self.config.unused_user_values()) sys.stdout.write(test) self.assertEqual(test, """scenario scenario.foo""") def test_UserValues_default(self): test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, "") def test_UserValues_scalar(self): self.config['scenario']['merlion'] = True test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, "scenario.merlion") def test_UserValues_list(self): self.config['scenarios'].append() test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios scenarios[0]""") def test_UserValues_list_nonDefault(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios scenarios[0] scenarios[1] scenarios[1].merlion scenarios[1].detection""") def test_UserValues_list_nonDefault_listAccessed(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) for x in self.config['scenarios']: pass test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios scenarios[0] scenarios[1] scenarios[1].merlion scenarios[1].detection""") def test_UserValues_list_nonDefault_itemAccessed(self): self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) self.config['scenarios'][1]['merlion'] test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, """scenarios scenarios[0] scenarios[1] scenarios[1].merlion scenarios[1].detection""") def test_UserValues_topBlock(self): self.config.add('foo', ConfigBlock()) test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, "") def test_UserValues_subBlock(self): self.config['scenario'].add('foo', ConfigBlock()) test = '\n'.join(x.name(True) for x in self.config.user_values()) sys.stdout.write(test) self.assertEqual(test, """scenario scenario.foo""") def test_parseDisplayAndValue_default(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") test = _display(self.config) sys.stdout.write(test) self.assertEqual(yaml_load(test), self.config.value()) def test_parseDisplayAndValue_list(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) test = _display(self.config) sys.stdout.write(test) self.assertEqual(yaml_load(test), self.config.value()) def test_parseDisplay_userdata_default(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(yaml_load(test), None) def test_parseDisplay_userdata_list(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") self.config['scenarios'].append() test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(yaml_load(test), {'scenarios': [None]}) def test_parseDisplay_userdata_list_nonDefault(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") self.config['scenarios'].append() self.config['scenarios'].append({'merlion': True, 'detection': []}) test = _display(self.config,'userdata') sys.stdout.write(test) self.assertEqual( yaml_load(test), {'scenarios': [None, {'merlion': True, 'detection': []}]}) def test_parseDisplay_userdata_block(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") self.config.add("foo", ConfigValue(0, int, None, None)) self.config.add("bar", ConfigBlock()) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(yaml_load(test), None) def test_parseDisplay_userdata_block_nonDefault(self): if not using_yaml: self.skipTest("Cannot execute test because PyYAML is not available") self.config.add("foo", ConfigValue(0, int, None, None)) self.config.add("bar", ConfigBlock(implicit=True)) \ .add("baz", ConfigBlock()) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(yaml_load(test), {'bar': None}) def test_value_ConfigValue(self): val = self.config['flushing']['flush nodes']['rate'] self.assertIs(type(val), float) self.assertEqual(val, 600.0) def test_value_ConfigList_empty(self): val = self.config['nodes'].value() self.assertIs(type(val), list) self.assertEqual(val, []) def test_value_ConfigList_simplePopulated(self): self.config['nodes'].append('1') self.config['nodes'].append(3) self.config['nodes'].append() val = self.config['nodes'].value() self.assertIs(type(val), list) self.assertEqual(len(val), 3) self.assertEqual(val, [1, 3, 0]) def test_value_ConfigList_complexPopulated(self): self.config['scenarios'].append() val = self.config['scenarios'].value() self.assertIs(type(val), list) self.assertEqual(len(val), 1) self.assertEqual(val, [{'detection': [1, 2, 3], 'merlion': False, 'scenario file': 'Net3.tsg'}]) def test_name(self): self.config['scenarios'].append() self.assertEqual(self.config.name(), "") self.assertEqual(self.config['scenarios'].name(), "scenarios") self.assertEqual(self.config['scenarios'][0].name(), "[0]") self.assertEqual(self.config['scenarios'][0].get('merlion').name(), "merlion") def test_name_fullyQualified(self): self.config['scenarios'].append() self.assertEqual(self.config.name(True), "") self.assertEqual(self.config['scenarios'].name(True), "scenarios") self.assertEqual(self.config['scenarios'][0].name(True), "scenarios[0]") self.assertEqual(self.config['scenarios'][0].get('merlion').name(True), "scenarios[0].merlion") def test_setValue_scalar(self): self.config['flushing']['flush nodes']['rate'] = 50 val = self.config['flushing']['flush nodes']['rate'] self.assertIs(type(val), float) self.assertEqual(val, 50.0) def test_setValue_scalar_badDomain(self): try: self.config['flushing']['flush nodes']['rate'] = 'a' except ValueError: pass except: raise else: self.fail('expected test to raise ValueError') val = self.config['flushing']['flush nodes']['rate'] self.assertIs(type(val), float) self.assertEqual(val, 600.0) def test_setValue_scalarList_empty(self): self.config['scenario']['detection'] = [] val = self.config['scenario']['detection'] self.assertIs(type(val), list) self.assertEqual(val, []) def test_setValue_scalarList_withvalue(self): self.config['scenario']['detection'] = [6] val = self.config['scenario']['detection'] self.assertIs(type(val), list) self.assertEqual(val, [6]) def test_setValue_scalarList_badDomain(self): try: self.config['scenario']['detection'] = 50 except ValueError: pass except: raise else: self.fail('expected test to raise ValueError') val = self.config['scenario']['detection'] self.assertIs(type(val), list) self.assertEqual(val, [1, 2, 3]) def test_setValue_scalarList_badSubDomain(self): try: self.config['scenario']['detection'] = [5.5, 'a'] except ValueError: pass except: raise else: self.fail('expected test to raise ValueError') val = self.config['scenario']['detection'] self.assertIs(type(val), list) self.assertEqual(val, [1, 2, 3]) def test_setValue_list_scalardomain_list(self): self.config['nodes'] = [5, 10] val = self.config['nodes'].value() self.assertIs(type(val), list) self.assertEqual(val, [5, 10]) def test_setValue_list_scalardomain_scalar(self): self.config['nodes'] = 10 val = self.config['nodes'].value() self.assertIs(type(val), list) self.assertEqual(val, [10]) def test_setValue_list_badSubDomain(self): try: self.config['nodes'] = [5, 'a'] except ValueError: pass except: raise else: self.fail('expected test to raise ValueError') val = self.config['nodes'].value() self.assertIs(type(val), list) self.assertEqual(val, []) def test_setValue_block_none(self): ref = self._reference['scenario'] self.config['scenario'] = None self.assertEqual(ref, self.config['scenario'].value()) self.config['scenario']['merlion'] = True ref['merlion'] = True self.assertEqual(ref, self.config['scenario'].value()) self.config['scenario'] = None self.assertEqual(ref, self.config['scenario'].value()) def test_setValue_block_empty(self): ref = self._reference['scenario'] self.config['scenario'] = {} self.assertEqual(ref, self.config['scenario'].value()) self.config['scenario']['merlion'] = True ref['merlion'] = True self.assertEqual(ref, self.config['scenario'].value()) self.config['scenario'] = {} self.assertEqual(ref, self.config['scenario'].value()) def test_setValue_block_simplevalue(self): _test = {'merlion': True, 'detection': [1]} ref = self._reference['scenario'] ref.update(_test) self.config['scenario'] = _test self.assertEqual(ref, self.config['scenario'].value()) def test_setItem_block_implicit(self): ref = self._reference ref['foo'] = 1 self.config['foo'] = 1 self.assertEqual(ref, self.config.value()) ref['bar'] = 1 self.config['bar'] = 1 self.assertEqual(ref, self.config.value()) def test_setItem_block_implicit_domain(self): ref = self._reference['scenario'] ref['foo'] = '1' self.config['scenario']['foo'] = 1 self.assertEqual(ref, self.config['scenario'].value()) ref['bar'] = '1' self.config['scenario']['bar'] = 1 self.assertEqual(ref, self.config['scenario'].value()) def test_setValue_block_noImplicit(self): _test = {'epanet file': 'no_file.inp', 'foo': 1} try: self.config['network'] = _test except ValueError: pass except: raise else: self.fail("Expected test to raise ValueError") self.assertEqual(self._reference, self.config.value()) def test_setValue_block_implicit(self): _test = {'scenario': {'merlion': True, 'detection': [1]}, 'foo': 1} ref = self._reference ref['scenario'].update(_test['scenario']) ref['foo'] = 1 self.config.set_value(_test) self.assertEqual(ref, self.config.value()) _test = {'scenario': {'merlion': True, 'detection': [1]}, 'bar': 1} ref['bar'] = 1 self.config.set_value(_test) self.assertEqual(ref, self.config.value()) def test_setValue_block_implicit_domain(self): _test = {'merlion': True, 'detection': [1], 'foo': 1} ref = self._reference['scenario'] ref.update(_test) ref['foo'] = '1' self.config['scenario'] = _test self.assertEqual(ref, self.config['scenario'].value()) _test = {'merlion': True, 'detection': [1], 'bar': '1'} ref['bar'] = '1' self.config['scenario'] = _test self.assertEqual(ref, self.config['scenario'].value()) def test_setValue_block_badDomain(self): _test = {'merlion': True, 'detection': ['a'], 'foo': 1, 'a': 1} try: self.config['scenario'] = _test except ValueError: pass except: raise else: self.fail('expected test to raise ValueError') self.assertEqual(self._reference, self.config.value()) try: self.config['scenario'] = [] except ValueError: pass except: raise else: self.fail('expected test to raise ValueError') self.assertEqual(self._reference, self.config.value()) def test_default_function(self): c = ConfigValue(default=lambda: 10, domain=int) self.assertEqual(c.value(), 10) c.set_value(5) self.assertEqual(c.value(), 5) c.reset() self.assertEqual(c.value(), 10) try: c = ConfigValue(default=lambda x: 10 * x, domain=int) except TypeError: pass else: self.fail("Expected type error") try: c = ConfigValue('a', domain=int) except ValueError: pass except: raise else: self.fail("Expected casting a to int to raise a value error") def test_getItem_setItem(self): # a freshly-initialized object should not be accessed self.assertFalse(self.config._userAccessed) self.assertFalse(self.config._data['scenario']._userAccessed) self.assertFalse(self.config._data['scenario']._data['detection']\ ._userAccessed) # Getting a ConfigValue should not access it self.assertFalse(self.config['scenario'].get('detection')._userAccessed) #... but should access the parent blocks traversed to get there self.assertTrue(self.config._userAccessed) self.assertTrue(self.config._data['scenario']._userAccessed) self.assertFalse(self.config._data['scenario']._data['detection']\ ._userAccessed) # a freshly-initialized object should not be set self.assertFalse(self.config._userSet) self.assertFalse(self.config._data['scenario']._userSet) self.assertFalse(self.config['scenario']._data['detection']._userSet) # setting a value should map it to the correct domain self.assertEqual(self.config['scenario']['detection'], [1, 2, 3]) self.config['scenario']['detection'] = [42.5] self.assertEqual(self.config['scenario']['detection'], [42]) # setting a ConfigValue should mark it as userSet, but NOT any parent blocks self.assertFalse(self.config._userSet) self.assertFalse(self.config._data['scenario']._userSet) self.assertTrue(self.config['scenario'].get('detection')._userSet) def test_delitem(self): config = ConfigBlock(implicit=True) config.declare('bar', ConfigValue()) self.assertEqual(sorted(config.keys()), ['bar']) config.foo = 5 self.assertEqual(sorted(config.keys()), ['bar', 'foo']) del config['foo'] self.assertEqual(sorted(config.keys()), ['bar']) del config['bar'] self.assertEqual(sorted(config.keys()), []) def test_generate_documentation(self): oFile = os.path.join(currdir, 'test_reference.out') OUTPUT = open(oFile, 'w') test = self.config.generate_documentation() OUTPUT.write(test) OUTPUT.close() #print(test) self.assertFalse( pyutilib.misc.comparison.compare_file(oFile, oFile[:-4] + '.txt')[ 0]) os.remove(oFile) def test_generate_custom_documentation(self): reference = \ """startBlock{} startItem{network} endItem{network} startBlock{network} startItem{epanet file} item{EPANET network inp file} endItem{epanet file} endBlock{network} startItem{scenario} item{Single scenario block} endItem{scenario} startBlock{scenario} startItem{scenario file} item{This is the (long) documentation for the 'scenario file' parameter. It contains multiple lines, and some internal formatting; like a bulleted list: - item 1 - item 2 } endItem{scenario file} startItem{merlion} item{This is the (long) documentation for the 'merlion' parameter. It contains multiple lines, but no apparent internal formatting; so the outputter should re-wrap everything.} endItem{merlion} startItem{detection} item{Sensor placement list, epanetID} endItem{detection} endBlock{scenario} startItem{scenarios} item{List of scenario blocks} endItem{scenarios} startBlock{scenarios} startItem{scenario file} item{This is the (long) documentation for the 'scenario file' parameter. It contains multiple lines, and some internal formatting; like a bulleted list: - item 1 - item 2 } endItem{scenario file} startItem{merlion} item{This is the (long) documentation for the 'merlion' parameter. It contains multiple lines, but no apparent internal formatting; so the outputter should re-wrap everything.} endItem{merlion} startItem{detection} item{Sensor placement list, epanetID} endItem{detection} endBlock{scenarios} startItem{nodes} item{List of node IDs} endItem{nodes} startItem{impact} endItem{impact} startBlock{impact} startItem{metric} item{Population or network based impact metric} endItem{metric} endBlock{impact} startItem{flushing} endItem{flushing} startBlock{flushing} startItem{flush nodes} endItem{flush nodes} startBlock{flush nodes} startItem{feasible nodes} item{ALL, NZD, NONE, list or filename} endItem{feasible nodes} startItem{infeasible nodes} item{ALL, NZD, NONE, list or filename} endItem{infeasible nodes} startItem{max nodes} item{Maximum number of nodes to flush} endItem{max nodes} startItem{rate} item{Flushing rate [gallons/min]} endItem{rate} startItem{response time} item{Time [min] between detection and flushing} endItem{response time} startItem{duration} item{Time [min] for flushing} endItem{duration} endBlock{flush nodes} startItem{close valves} endItem{close valves} startBlock{close valves} startItem{feasible pipes} item{ALL, DIAM min max [inch], NONE, list or filename} endItem{feasible pipes} startItem{infeasible pipes} item{ALL, DIAM min max [inch], NONE, list or filename} endItem{infeasible pipes} startItem{max pipes} item{Maximum number of pipes to close} endItem{max pipes} startItem{response time} item{Time [min] between detection and closing valves} endItem{response time} endBlock{close valves} endBlock{flushing} endBlock{} """ test = self.config.generate_documentation( block_start= "startBlock{%s}\n", block_end= "endBlock{%s}\n", item_start= "startItem{%s}\n", item_body= "item{%s}\n", item_end= "endItem{%s}\n", ) #print(test) self.assertEqual(test, reference) test = self.config.generate_documentation( block_start= "startBlock\n", block_end= "endBlock\n", item_start= "startItem\n", item_body= "item\n", item_end= "endItem\n", ) stripped_reference = re.sub('\{[^\}]*\}','',reference,flags=re.M) #print(test) self.assertEqual(test, stripped_reference) def test_block_get(self): self.assertTrue('scenario' in self.config) self.assertNotEquals( self.config.get('scenario', 'bogus').value(), 'bogus') self.assertFalse('fubar' in self.config) self.assertEquals( self.config.get('fubar', 'bogus').value(), 'bogus') cfg = ConfigBlock() cfg.declare('foo', ConfigValue(1, int)) self.assertEqual( cfg.get('foo', 5).value(), 1 ) self.assertEqual( len(cfg), 1 ) self.assertIs( cfg.get('bar'), None ) self.assertEqual( cfg.get('bar',None).value(), None ) self.assertEqual( len(cfg), 1 ) cfg = ConfigBlock(implicit=True) cfg.declare('foo', ConfigValue(1, int)) self.assertEqual( cfg.get('foo', 5).value(), 1 ) self.assertEqual( len(cfg), 1 ) self.assertEqual( cfg.get('bar', 5).value(), 5 ) self.assertEqual( len(cfg), 1 ) self.assertIs( cfg.get('baz'), None ) self.assertIs( cfg.get('baz', None).value(), None ) self.assertEqual( len(cfg), 1 ) cfg = ConfigBlock( implicit=True, implicit_domain=ConfigList(domain=str) ) cfg.declare('foo', ConfigValue(1, int)) self.assertEqual( cfg.get('foo', 5).value(), 1 ) self.assertEqual( len(cfg), 1 ) self.assertEqual( cfg.get('bar', [5]).value(), ['5'] ) self.assertEqual( len(cfg), 1 ) self.assertIs( cfg.get('baz'), None ) self.assertEqual( cfg.get('baz', None).value(), [] ) self.assertEqual( len(cfg), 1 ) def test_setdefault(self): cfg = ConfigBlock() cfg.declare('foo', ConfigValue(1, int)) self.assertEqual( cfg.setdefault('foo', 5).value(), 1 ) self.assertEqual( len(cfg), 1 ) self.assertRaisesRegexp(ValueError, '.*disallows implicit entries', cfg.setdefault, 'bar', 0) self.assertEqual( len(cfg), 1 ) cfg = ConfigBlock(implicit=True) cfg.declare('foo', ConfigValue(1, int)) self.assertEqual( cfg.setdefault('foo', 5).value(), 1 ) self.assertEqual( len(cfg), 1 ) self.assertEqual( cfg.setdefault('bar', 5).value(), 5 ) self.assertEqual( len(cfg), 2 ) self.assertEqual( cfg.setdefault('baz').value(), None ) self.assertEqual( len(cfg), 3 ) cfg = ConfigBlock( implicit=True, implicit_domain=ConfigList(domain=str) ) cfg.declare('foo', ConfigValue(1, int)) self.assertEqual( cfg.setdefault('foo', 5).value(), 1 ) self.assertEqual( len(cfg), 1 ) self.assertEqual( cfg.setdefault('bar', [5]).value(), ['5'] ) self.assertEqual( len(cfg), 2 ) self.assertEqual( cfg.setdefault('baz').value(), [] ) self.assertEqual( len(cfg), 3 ) def test_block_keys(self): ref = ['scenario file', 'merlion', 'detection'] # list of keys keys = self.config['scenario'].keys() # lists are independent self.assertFalse(keys is self.config['scenario'].keys()) if PY3: self.assertIsNot(type(keys), list) self.assertEqual(list(keys), ref) else: self.assertIs(type(keys), list) self.assertEqual(keys, ref) # keys iterator keyiter = self.config['scenario'].iterkeys() self.assertIsNot(type(keyiter), list) self.assertEqual(list(keyiter), ref) # iterators are independent self.assertFalse(keyiter is self.config['scenario'].iterkeys()) # default iterator keyiter = self.config['scenario'].__iter__() self.assertIsNot(type(keyiter), list) self.assertEqual(list(keyiter), ref) # iterators are independent self.assertFalse(keyiter is self.config['scenario'].__iter__()) def test_block_values(self): ref = ['Net3.tsg', False, [1, 2, 3]] # list of values values = self.config['scenario'].values() if PY3: self.assertIsNot(type(values), list) else: self.assertIs(type(values), list) self.assertEqual(list(values), ref) # lists are independent self.assertFalse(values is self.config['scenario'].values()) # values iterator valueiter = self.config['scenario'].itervalues() self.assertIsNot(type(valueiter), list) self.assertEqual(list(valueiter), ref) # iterators are independent self.assertFalse(valueiter is self.config['scenario'].itervalues()) def test_block_items(self): ref = [('scenario file', 'Net3.tsg'), ('merlion', False), ('detection', [1, 2, 3])] # list of items items = self.config['scenario'].items() if PY3: self.assertIsNot(type(items), list) else: self.assertIs(type(items), list) self.assertEqual(list(items), ref) # lists are independent self.assertFalse(items is self.config['scenario'].items()) # items iterator itemiter = self.config['scenario'].iteritems() self.assertIsNot(type(itemiter), list) self.assertEqual(list(itemiter), ref) # iterators are independent self.assertFalse(itemiter is self.config['scenario'].iteritems()) def test_value(self): #print(self.config.value()) self.assertEqual(self._reference, self.config.value()) def test_list_manipulation(self): self.assertEqual(len(self.config['scenarios']), 0) self.config['scenarios'].append() self.assertEqual(len(self.config['scenarios']), 1) self.config['scenarios'].append({'merlion': True, 'detection': []}) self.assertEqual(len(self.config['scenarios']), 2) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, """scenarios: - - merlion: true detection: [] """) self.config['scenarios'][0] = {'merlion': True, 'detection': []} self.assertEqual(len(self.config['scenarios']), 2) test = _display(self.config, 'userdata') sys.stdout.write(test) self.assertEqual(test, """scenarios: - merlion: true detection: [] - merlion: true detection: [] """) test = _display(self.config['scenarios']) sys.stdout.write(test) self.assertEqual(test, """- scenario file: Net3.tsg merlion: true detection: [] - scenario file: Net3.tsg merlion: true detection: [] """) def test_list_get(self): X = ConfigBlock(implicit=True) X.config = ConfigList() self.assertEqual(_display(X, 'userdata'), "") self.assertIs(X.config.get(0), None ) self.assertIs(X.config.get(0,None).value(), None ) self.assertRaisesRegexp( IndexError, '.*out of range', X.config.__getitem__, 0 ) # get() shouldn't change the userdata flag... self.assertEqual(_display(X, 'userdata'), "") X = ConfigBlock(implicit=True) X.config = ConfigList([42], int) self.assertEqual(_display(X, 'userdata'), "") val = X.config.get(0) self.assertEqual(val.value(), 42) self.assertIs(type(val), ConfigValue) # get() shouldn't change the userdata flag... self.assertEqual(_display(X, 'userdata'), "") val = X.config[0] self.assertIs(type(val), int) self.assertEqual(val, 42) # get() shouldn't change the userdata flag... self.assertEqual(_display(X, 'userdata'), "") self.assertIs(X.config.get(1), None ) self.assertRaisesRegexp( IndexError, '.*out of range', X.config.__getitem__, 1) # this should ONLY change the userSet flag on the item (and not # the list) X.config.get(0).set_value(20) self.assertEqual(_display(X, 'userdata'), " - 20\n") # this should ONLY change the userSet flag on the item (and not # the list) X = ConfigBlock(implicit=True) X.config = ConfigList([42], int) X.config[0] = 20 self.assertEqual(_display(X, 'userdata'), " - 20\n") # This should change both... X = ConfigBlock(implicit=True) X.config = ConfigList([42], int) X.config.append(20) self.assertEqual(_display(X, 'userdata'), "config:\n - 20\n") def test_implicit_entries(self): config = ConfigBlock() try: config['test'] = 5 self.fail( "Expected ConfigBlock to throw a ValueError for implicit declarations") except ValueError: self.assertEqual(sys.exc_info()[1].args, ( "Key 'test' not defined in Config Block '' and Block disallows implicit entries", )) config = ConfigBlock(implicit=True) config['implicit_1'] = 5 config.declare('formal', ConfigValue(42, int)) config['implicit_2'] = 5 self.assertEqual(3, len(config)) self.assertEqual(['implicit_1', 'formal', 'implicit_2'], list(config.iterkeys())) config.reset() self.assertEqual(1, len(config)) self.assertEqual(['formal'], list(config.iterkeys())) def test_argparse_help(self): try: import argparse except ImportError: self.skipTest("argparse not available") parser = argparse.ArgumentParser(prog='tester') self.config.initialize_argparse(parser) help = parser.format_help() #print(help) self.assertEqual( """usage: tester [-h] [--epanet-file EPANET] [--scenario-file STR] [--merlion] optional arguments: -h, --help show this help message and exit --epanet-file EPANET EPANET network inp file Scenario definition: --scenario-file STR Scenario generation file, see the TEVASIM documentation --merlion Water quality model """, help) def test_argparse_help_implicit_disable(self): self.config['scenario'].declare('epanet', ConfigValue( True, bool, 'Use EPANET as the Water quality model', None)).declare_as_argument(group='Scenario definition') try: import argparse except ImportError: self.skipTest("argparse not available") parser = argparse.ArgumentParser(prog='tester') self.config.initialize_argparse(parser) help = parser.format_help() #print(help) self.maxDiff = None self.assertEqual( """usage: tester [-h] [--epanet-file EPANET] [--scenario-file STR] [--merlion] [--disable-epanet] optional arguments: -h, --help show this help message and exit --epanet-file EPANET EPANET network inp file Scenario definition: --scenario-file STR Scenario generation file, see the TEVASIM documentation --merlion Water quality model --disable-epanet [DON'T] Use EPANET as the Water quality model """, help) def test_argparse_import(self): try: import argparse except ImportError: self.skipTest("argparse not available") parser = argparse.ArgumentParser(prog='tester') self.config.initialize_argparse(parser) args = parser.parse_args([]) self.assertEqual(0, len(vars(args))) leftovers = self.config.import_argparse(args) self.assertEqual(0, len(vars(args))) self.assertEqual([], [x.name(True) for x in self.config.user_values()]) args = parser.parse_args(['--merlion']) self.config.reset() self.assertFalse(self.config['scenario']['merlion']) self.assertEqual(1, len(vars(args))) leftovers = self.config.import_argparse(args) self.assertEqual(0, len(vars(args))) self.assertEqual(['scenario.merlion'], [x.name(True) for x in self.config.user_values()]) args = parser.parse_args(['--merlion', '--epanet-file', 'foo']) self.config.reset() self.assertFalse(self.config['scenario']['merlion']) self.assertEqual('Net3.inp', self.config['network']['epanet file']) self.assertEqual(2, len(vars(args))) leftovers = self.config.import_argparse(args) self.assertEqual(1, len(vars(args))) self.assertEqual(['network.epanet file', 'scenario.merlion'], [x.name(True) for x in self.config.user_values()]) self.assertTrue(self.config['scenario']['merlion']) self.assertEqual('foo', self.config['network']['epanet file']) def test_argparse_subparsers(self): try: import argparse except ImportError: self.skipTest("argparse not available") parser = argparse.ArgumentParser(prog='tester') subp = parser.add_subparsers(title="Subcommands").add_parser('flushing') # Declare an argument by passing in the name of the subparser self.config['flushing']['flush nodes'].get( 'duration').declare_as_argument(group='flushing') # Declare an argument by passing in the name of the subparser # and an implicit group self.config['flushing']['flush nodes'].get('feasible nodes') \ .declare_as_argument( group=('flushing','Node information') ) # Declare an argument by passing in the subparser and a group name self.config['flushing']['flush nodes'].get('infeasible nodes') \ .declare_as_argument( group=(subp,'Node information') ) self.config.initialize_argparse(parser) help = parser.format_help() #print(help) self.assertEqual( """usage: tester [-h] [--epanet-file EPANET] [--scenario-file STR] [--merlion] {flushing} ... optional arguments: -h, --help show this help message and exit --epanet-file EPANET EPANET network inp file Subcommands: {flushing} Scenario definition: --scenario-file STR Scenario generation file, see the TEVASIM documentation --merlion Water quality model """, help) help = subp.format_help() #print(help) self.assertEqual( """usage: tester flushing [-h] [--feasible-nodes STR] [--infeasible-nodes STR] [--duration FLOAT] optional arguments: -h, --help show this help message and exit --duration FLOAT Time [min] for flushing Node information: --feasible-nodes STR ALL, NZD, NONE, list or filename --infeasible-nodes STR ALL, NZD, NONE, list or filename """, help) def test_getattr_setattr(self): config = ConfigBlock() foo = config.declare( 'foo', ConfigBlock( implicit=True, implicit_domain=int)) foo.declare('explicit_bar', ConfigValue(0, int)) self.assertEqual(1, len(foo)) self.assertEqual(0, foo['explicit_bar']) self.assertEqual(0, foo.explicit_bar) foo.explicit_bar = 10 self.assertEqual(1, len(foo)) self.assertEqual(10, foo['explicit_bar']) self.assertEqual(10, foo.explicit_bar) foo.implicit_bar = 20 self.assertEqual(2, len(foo)) self.assertEqual(20, foo['implicit bar']) self.assertEqual(20, foo.implicit_bar) try: config.baz = 10 except ValueError: pass except: raise else: self.fail( "Expected implicit assignment to explicit block to raise ValueError") try: a = config.baz except AttributeError: pass except: raise else: self.fail( "Expected implicit assignment to explicit block to raise ValueError") def test_nonString_keys(self): config = ConfigBlock(implicit=True) config.declare(5, ConfigValue(50, int)) self.assertIn(5, config) self.assertIn('5', config) self.assertEqual(config[5], 50) self.assertEqual(config['5'], 50) self.assertEqual(config.get(5).value(), 50) self.assertEqual(config.get('5').value(), 50) config[5] = 500 self.assertIn(5, config) self.assertIn('5', config) self.assertEqual(config[5], 500) self.assertEqual(config['5'], 500) self.assertEqual(config.get(5).value(), 500) self.assertEqual(config.get('5').value(), 500) config[1] = 10 self.assertIn(1, config) self.assertIn('1', config) self.assertEqual(config[1], 10) self.assertEqual(config['1'], 10) self.assertEqual(config.get(1).value(), 10) self.assertEqual(config.get('1').value(), 10) self.assertEqual(_display(config), "5: 500\n1: 10\n") config.set_value({5:5000}) self.assertIn(1, config) self.assertIn('1', config) self.assertEqual(config[1], 10) self.assertEqual(config['1'], 10) self.assertEqual(config.get(1).value(), 10) self.assertEqual(config.get('1').value(), 10) self.assertIn(5, config) self.assertIn('5', config) self.assertEqual(config[5], 5000) self.assertEqual(config['5'], 5000) self.assertEqual(config.get(5).value(), 5000) self.assertEqual(config.get('5').value(), 5000) def test_pickle(self): # A simple test: pickle the default config and restore it. # calling other tests should still pass. pickle_str = pickle.dumps(self.config) self.config = None self.config = pickle.loads(pickle_str) self.test_display_list() def test_set_value(self): config = ConfigBlock() config.declare('a b', ConfigValue()) config.declare('a_c', ConfigValue()) config.declare('a d e', ConfigValue()) config.set_value({'a_b':10, 'a_c': 20, 'a_d_e': 30}) self.assertEqual(config.a_b, 10) self.assertEqual(config.a_c, 20) self.assertEqual(config.a_d_e, 30) def test_call_options(self): config = ConfigBlock(description="base description", doc="base doc", visibility=1, implicit=True) config.declare("a", ConfigValue(domain=int, doc="a doc", default=1)) config.declare("b", config.get("a")(2)) config.declare("c", config.get("a")(domain=float, doc="c doc")) config.d = 0 config.e = ConfigBlock(implicit=True) config.e.a = 0 reference_template = """# base description """ self._validateTemplate(config, reference_template) reference_template = """# base description a: 1 b: 2 c: 1.0 d: 0 e: a: 0 """ self._validateTemplate(config, reference_template, visibility=1) # Preserving implicit values should leave the copy the same as # the original implicit_copy = config(preserve_implicit=True) self._validateTemplate(config, reference_template, visibility=1) # Simple copies strip out the implicitly-declared values reference_template = """# base description a: 1 b: 2 c: 1.0 """ simple_copy = config() self._validateTemplate(simple_copy, reference_template, visibility=1) self.assertEqual(simple_copy._doc, "base doc") self.assertEqual(simple_copy._description, "base description") self.assertEqual(simple_copy._visibility, 1) mod_copy = config(description="new description", doc="new doc", visibility=0) reference_template = """# new description a: 1 b: 2 c: 1.0 """ self._validateTemplate(mod_copy, reference_template, visibility=0) self.assertEqual(mod_copy._doc, "new doc") self.assertEqual(mod_copy._description, "new description") self.assertEqual(mod_copy._visibility, 0) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_cross.py000066400000000000000000000026131367314503500220670ustar00rootroot00000000000000# # Unit Tests for util/math # # from os.path import abspath, dirname pkgdir = dirname(abspath(__file__)) + "/../.." import pyutilib.th as unittest import pyutilib.misc class CrossDebug(unittest.TestCase): def setUp(self): self.tmp = [(10, 22, 31), (10, 22, 32), (10, 22, 33), (10, 23, 31), (10, 23, 32), (10, 23, 33), (11, 22, 31), (11, 22, 32), (11, 22, 33), (11, 23, 31), (11, 23, 32), (11, 23, 33)] self.tmp.sort() self.ttmp = [(10, 22, 31), (10, 23, 32), (11, 22, 31), (11, 23, 32)] self.ttmp.sort() def test_cross1(self): # Apply the cross() method ans = pyutilib.misc.cross(((10, 11), (22, 23), (31, 32, 33))) ans.sort() self.assertEqual(ans, self.tmp) def test_cross2(self): # Apply the cross_iter() method ans = [] for item in pyutilib.misc.cross_iter((10, 11), (22, 23), (31, 32, 33)): ans.append(item) ans.sort() self.assertEqual(ans, self.tmp) def test_cross3(self): # Apply the flattened_cross_iter() method ans = [] for item in pyutilib.misc.flattened_cross_iter((10, 11), ((22, 31), (23, 32))): ans.append(item) ans.sort() self.assertEqual(ans, self.ttmp) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_factory.py000066400000000000000000000032431367314503500224050ustar00rootroot00000000000000# # Unit Tests for util/math # # from os.path import abspath, dirname pkgdir = dirname(abspath(__file__)) + "/../.." import pyutilib.th as unittest import pyutilib.misc class FactoryDebug(unittest.TestCase): class A(object): def __init__(self, *args, **kargs): pass class B(object): def __init__(self, *args, **kargs): pass def Afunc(*args, **kargs): return FactoryDebug.A(*args, **kargs) def Bfunc(*args, **kargs): return FactoryDebug.B(*args, **kargs) def setUp(self): self.factory = pyutilib.misc.Factory() self.factory.register("classA", self.Afunc, None, None) self.factory.register("classB", self.Bfunc, None, None) def test_kyes(self): self.assertEqual(self.factory.keys(), ["classA", "classB"]) def test_len(self): self.assertEqual(len(self.factory), 2) def test_iter(self): ans = {0: "classA", 1: "classB"} i = 0 for name in self.factory: self.assertEqual(name, ans[i]) i = i + 1 def test_getitem(self): self.assertEqual(self.factory[0], "classA") self.assertEqual(self.factory[1], "classB") def test_unregister(self): self.factory.unregister("classA") self.assertEqual(len(self.factory), 1) self.assertEqual(self.factory[0], "classB") def test_call(self): a = self.factory("classA") self.assertEqual(FactoryDebug.A, type(a)) b = self.factory("classB") self.assertEqual(FactoryDebug.B, type(b)) c = self.factory("classC") self.assertEqual(None, c) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_hierarchical_timer.py000066400000000000000000000024561367314503500245610ustar00rootroot00000000000000from pyutilib.misc.timing import HierarchicalTimer import pyutilib.th as unittest class TestHierarchicalTimer(unittest.TestCase): def test_hierarchical_timer(self): timer = HierarchicalTimer() timer.start('all') for i in range(10): timer.start('a') for i in range(5): timer.start('aa') timer.stop('aa') timer.start('ab') timer.stop('ab') timer.stop('a') timer.start('b') timer.stop('b') timer.start('a') with self.assertRaisesRegex(ValueError, 'all is not the currently active timer. The only timer that can currently be stopped is all.a'): timer.stop('all') timer.stop('a') timer.stop('all') a_percent = timer.get_relative_percent_time('all.a') aa_percent = timer.get_relative_percent_time('all.a.aa') aa_total_percent = timer.get_total_percent_time('all.a.aa') self.assertAlmostEqual(aa_total_percent, a_percent/100 * aa_percent/100 * 100) self.assertAlmostEqual(timer.get_num_calls('all.a'), 11) self.assertAlmostEqual(timer.get_num_calls('all.a.ab'), 10) self.assertAlmostEqual(timer.get_num_calls('all.a.aa'), 50) timer.get_total_time('all.b') print(timer) pyutilib-6.0.0/pyutilib/misc/tests/test_import.py000066400000000000000000000262501367314503500222530ustar00rootroot00000000000000# # Unit Tests for util/misc/import_file # # import os import sys from os.path import abspath, dirname pkgdir = dirname(abspath(__file__)) + os.sep + ".." + os.sep + ".." currdir = dirname(abspath(__file__)) + os.sep import pyutilib.misc import pyutilib.th as unittest import pyutilib.misc.comparison try: import runpy _runpy = True except: _runpy = False class TestRunFile(unittest.TestCase): def test_run_file1(self): pyutilib.misc.run_file( currdir + "import1.py", logfile=currdir + "import1.log") if not os.path.exists(currdir + "import1.log"): self.fail("test_run_file - failed to create logfile") self.assertFalse( pyutilib.misc.comparison.compare_file(currdir + "import1.log", currdir + "import1.txt")[0]) os.remove(currdir + "import1.log") def test_run_file2(self): pyutilib.misc.run_file( "import1.py", logfile=currdir + "import1.log", execdir=currdir) if not os.path.exists(currdir + "import1.log"): self.fail("test_run_file - failed to create logfile") self.assertFalse( pyutilib.misc.comparison.compare_file(currdir + "import1.log", currdir + "import1.txt")[0]) os.remove(currdir + "import1.log") def test_run_file3(self): try: pyutilib.misc.run_file( "import2.py", logfile=currdir + "import2.log", execdir=currdir) self.fail("test_run_file - expected type error in import2.py") except TypeError: pass self.assertFalse( pyutilib.misc.comparison.compare_file(currdir + "import2.log", currdir + "import2.txt")[0]) os.remove(currdir + "import2.log") def test_run_file_exception(self): orig_path = list(sys.path) with self.assertRaisesRegexp(RuntimeError, "raised from __main__"): pyutilib.misc.run_file( "import_main_exception.py", logfile=currdir + "import_main_exception.log", execdir=currdir) self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "import_main_exception.log", currdir + "import_main_exception.txt")[0]) os.remove(currdir + "import_main_exception.log") self.assertIsNot(orig_path, sys.path) self.assertEqual(orig_path, sys.path) class TestImportFile(unittest.TestCase): def setUp(self): self._mods = list(sys.modules.keys()) def tearDown(self): to_del = [m for m in sys.modules.keys() if m not in self._mods] for mod in to_del: del sys.modules[mod] def test_import_file_context1(self): pyutilib.misc.import_file(currdir + "import1.py") if "import1" in globals(): self.fail( "test_import_file - globals() should not be affected by import") def test_import_file_context2(self): import1 = pyutilib.misc.import_file(currdir + "import1.py") try: c = import1.a except: self.fail("test_import_file - could not access data in import.py") def test_import_file_context3(self): pyutilib.misc.import_file(currdir + "import1.py", context=globals()) if not "import1" in globals(): self.fail("test_import_file - failed to import the import1.py file") def test_import_exception(self): orig_path = list(sys.path) with self.assertRaisesRegexp(RuntimeError, "raised during import"): pyutilib.misc.import_file(currdir + "import_exception.py") self.assertIsNot(orig_path, sys.path) self.assertEqual(orig_path, sys.path) def test1(self): try: pyutilib.misc.import_file('tfile.py') except IOError: pass else: self.fail('File does not exist. Expected IOError.') def test2(self): try: pyutilib.misc.import_file('tfile') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test3(self): dirname = currdir + 'import_data' + os.sep + 'a' sys.path.insert(0, dirname) context = {} m = pyutilib.misc.import_file('tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') sys.path.remove(dirname) def test4(self): dirname = currdir + 'import_data' + os.sep + 'a' sys.path.insert(0, dirname) context = {} m = pyutilib.misc.import_file('tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') sys.path.remove(dirname) dirname = currdir + 'import_data' + os.sep + 'b' sys.path.insert(0, dirname) m = pyutilib.misc.import_file('tfile', context=context, name='junk') self.assertEqual(id(m), id(context['junk'])) self.assertEqual(m.f(), 'b') sys.path.remove(dirname) def test4a(self): dirname = currdir + 'import_data' + os.sep + 'a' sys.path.insert(0, dirname) context = {} m = pyutilib.misc.import_file('tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') sys.path.remove(dirname) dirname = currdir + 'import_data' + os.sep + 'b' sys.path.insert(0, dirname) m = pyutilib.misc.import_file('tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') sys.path.remove(dirname) def test5(self): dirname = currdir + 'import_data' + os.sep + 'a' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') def test6(self): dirname = currdir + 'import_data' + os.sep + 'a' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') dirname = currdir + 'import_data' + os.sep + 'b' + os.sep m = pyutilib.misc.import_file( dirname + 'tfile', context=context, name='junk') self.assertEqual(id(m), id(context['junk'])) self.assertEqual(m.f(), 'b') def test6a(self): dirname = currdir + 'import_data' + os.sep + 'a' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') dirname = currdir + 'import_data' + os.sep + 'b' + os.sep m = pyutilib.misc.import_file(dirname + 'tfile', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') def test7(self): dirname = currdir + 'import_data' + os.sep + 'a' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile.py', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') def test8(self): dirname = currdir + 'import_data' + os.sep + 'a' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile.py', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') dirname = currdir + 'import_data' + os.sep + 'b' + os.sep m = pyutilib.misc.import_file( dirname + 'tfile.py', context=context, name='junk') self.assertEqual(id(m), id(context['junk'])) self.assertEqual(m.f(), 'b') def test8a(self): dirname = currdir + 'import_data' + os.sep + 'a' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile.py', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') dirname = currdir + 'import_data' + os.sep + 'b' + os.sep m = pyutilib.misc.import_file(dirname + 'tfile.py', context=context) self.assertEqual(id(m), id(context['tfile'])) self.assertEqual(m.f(), 'a') def test9(self): try: pyutilib.misc.import_file('foo/bar') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test9a(self): try: pyutilib.misc.import_file('foo/bar', name='junk') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test10(self): try: pyutilib.misc.import_file('foo.bar') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test10a(self): try: pyutilib.misc.import_file('foo.bar', name='junk') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test11(self): try: pyutilib.misc.import_file('baz/foo.bar') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test11a(self): try: pyutilib.misc.import_file('baz/foo.bar', name='junk') except ImportError: pass else: self.fail('Module does not exist. Expected ImportError.') def test12(self): dirname = currdir + 'import_data' sys.path.insert(0, dirname) context = {} m = pyutilib.misc.import_file('tfile1.0', context=context) self.assertEqual(id(m), id(context['tfile1.0'])) self.assertEqual(m.f(), 'tfile1.0') sys.path.remove(dirname) def test12a(self): dirname = currdir + 'import_data' sys.path.insert(0, dirname) context = {} m = pyutilib.misc.import_file('tfile1.0', context=context, name='junk') self.assertEqual(id(m), id(context['junk'])) self.assertEqual(m.f(), 'tfile1.0') sys.path.remove(dirname) def test13(self): dirname = currdir + 'import_data' + os.sep context = {} m = pyutilib.misc.import_file(dirname + 'tfile1.0', context=context) self.assertEqual(id(m), id(context['tfile1.0'])) self.assertEqual(m.f(), 'tfile1.0') def test13a(self): dirname = currdir + 'import_data' + os.sep context = {} m = pyutilib.misc.import_file( dirname + 'tfile1.0', context=context, name='junk') self.assertEqual(id(m), id(context['junk'])) self.assertEqual(m.f(), 'tfile1.0') def test14(self): context = {} m = pyutilib.misc.import_file( 'pyutilib.misc.tests.import_data.a.tfile', context=context) self.assertEqual( id(m), id(context['pyutilib.misc.tests.import_data.a.tfile'])) self.assertEqual(m.f(), 'a') # Apply decorator explicitly TestRunFile = unittest.skipIf(not _runpy, "Cannot import 'runpy'")(TestRunFile) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_io.py000066400000000000000000000157301367314503500213510ustar00rootroot00000000000000# # Unit Tests for util/*_io # # import os import sys from os.path import abspath, dirname pkgdir = dirname(abspath(__file__)) + os.sep + ".." + os.sep + ".." currdir = dirname(abspath(__file__)) + os.sep import six import pyutilib.th as unittest import pyutilib.misc def filter1(str): return True def filter2(str): return "" def filter3(str): str = str.replace('THERE', 'HERE') str = str.replace('[4, 5, 6]', '[1,2,3]') return str class IODebug(unittest.TestCase): def test_redirect1(self): # Verify that IO redirection works pyutilib.misc.setup_redirect(currdir + "redirect_io.out") print("HERE") print([1, 2, 3]) # # Force a flush to ensure code coverage # sys.stdout.flush() pyutilib.misc.reset_redirect() self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io.out", currdir + "redirect_io1.txt")[0]) self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io.out", currdir + "redirect_io2.txt", filter=filter1)[0]) self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io.out", currdir + "redirect_io2.txt", filter=filter2)[0]) os.remove(currdir + "redirect_io.out") def test_redirect2(self): # Verify that IO redirection will create an empty file is no output is generated pyutilib.misc.setup_redirect(currdir + "redirect_io.out") pyutilib.misc.reset_redirect() if not os.path.exists(currdir + "redirect_io.out"): self.fail("Redirection did not create an empty file.") self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io.out", currdir + "redirect_io2.txt")[0]) os.remove(currdir + "redirect_io.out") def test_redirect3(self): # Verify that IO redirection can be nested pyutilib.misc.setup_redirect(currdir + "redirect_io1.out") print("HERE") pyutilib.misc.setup_redirect(currdir + "redirect_io3.out") print("THERE") print([4, 5, 6]) pyutilib.misc.reset_redirect() print([1, 2, 3]) # # Force a flush to ensure code coverage # sys.stdout.flush() pyutilib.misc.reset_redirect() self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io1.out", currdir + "redirect_io1.txt")[0]) os.remove(currdir + "redirect_io1.out") self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io3.out", currdir + "redirect_io3.txt")[0]) self.assertFalse( pyutilib.misc.comparison.compare_file( currdir + "redirect_io3.out", currdir + "redirect_io3.txt", filter=filter3)[0]) os.remove(currdir + "redirect_io3.out") def test_redirect4(self): # Verify that IO redirection works with file-like objects output = six.StringIO() pyutilib.misc.setup_redirect(output) print("HERE") print([1, 2, 3]) # # Force a flush to ensure code coverage # sys.stdout.flush() pyutilib.misc.reset_redirect() self.assertEqual(output.getvalue(), "HERE\n[1, 2, 3]\n") def test_format_io(self): # Test that formated IO looks correct. pyutilib.misc.setup_redirect(currdir + "format_io.out") print(pyutilib.misc.format_io(0.0)) print(pyutilib.misc.format_io(0)) print(pyutilib.misc.format_io(1e-1)) print(pyutilib.misc.format_io(1e+1)) print(pyutilib.misc.format_io(1e-9)) print(pyutilib.misc.format_io(1e+9)) print(pyutilib.misc.format_io(1e-99)) print(pyutilib.misc.format_io(1e+99)) print(pyutilib.misc.format_io(1e-100)) print(pyutilib.misc.format_io(1e+100)) print(pyutilib.misc.format_io(-1e-1)) print(pyutilib.misc.format_io(-1e+1)) print(pyutilib.misc.format_io(-1e-9)) print(pyutilib.misc.format_io(-1e+9)) print(pyutilib.misc.format_io(-1e-99)) print(pyutilib.misc.format_io(-1e+99)) print(pyutilib.misc.format_io(-1e-100)) print(pyutilib.misc.format_io(-1e+100)) print(pyutilib.misc.format_io('string')) pyutilib.misc.reset_redirect() self.assertFalse( pyutilib.misc.comparison.compare_file(currdir + "format_io.out", currdir + "format_io.txt")[0]) os.remove(currdir + "format_io.out") def test_format_float_err1(self): # Test that errors are generated for non floats try: pyutilib.misc.format_float('1') self.fail("Should have thrown a TypeError exception") except TypeError: pass def test_indenter_write(self): output = six.StringIO() indenter = pyutilib.misc.StreamIndenter(output, "X ") indenter.write("foo") self.assertEqual(output.getvalue(), "X foo") indenter.write("\n") self.assertEqual(output.getvalue(), "X foo\n") indenter.write("foo\n") self.assertEqual(output.getvalue(), "X foo\nX foo\n") indenter.write("") self.assertEqual(output.getvalue(), "X foo\nX foo\n") indenter.write("\n") self.assertEqual(output.getvalue(), "X foo\nX foo\nX\n") indenter.write("baz\nbin") self.assertEqual(output.getvalue(), "X foo\nX foo\nX\nX baz\nX bin") indenter.write("a\nb\n\nc\n") self.assertEqual(output.getvalue(), "X foo\nX foo\nX\nX baz\nX bina\nX b\nX\nX c\n") self.assertEqual(indenter.closed, False) indenter.close() self.assertEqual(indenter.closed, True) def test_indenter_writelines(self): output = six.StringIO() indenter = pyutilib.misc.StreamIndenter(output, "X") indenter.writelines(["foo"]) self.assertEqual(output.getvalue(), "Xfoo") indenter.writelines(["foo\n", "bar\n"]) self.assertEqual(output.getvalue(), "Xfoofoo\nXbar\n") indenter.writelines(["", ""]) self.assertEqual(output.getvalue(), "Xfoofoo\nXbar\n") self.assertEqual(indenter.closed, False) indenter.close() self.assertEqual(indenter.closed, True) def test_redirected_stdout(self): with pyutilib.misc.capture_output() as output: print("test1") print("test2") self.assertEqual(output.getvalue(), "test1\ntest2\n") def test_redirected_stdout_with_arg(self): stream = six.StringIO() stream.write("before\n") with pyutilib.misc.capture_output(stream) as output: print("test1") print("test2") self.assertEqual(output.getvalue(), "before\ntest1\ntest2\n") if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_json.py000066400000000000000000000106401367314503500217060ustar00rootroot00000000000000# # Unit Tests for json (in json_utils) # # import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc try: import json json_available = True except ImportError: json_available = False class Test(unittest.TestCase): def setUp(self): if not json_available: self.skipTest("Cannot execute test because JSON is not available.") def test1(self): # Verify that data 1 is not equal to data 2 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata1.jsn', currdir + 'jsondata2.jsn', exact=True) def test2(self): # Verify that data 1 is a subset of data 2 pyutilib.misc.compare_json_files( currdir + 'jsondata1.jsn', currdir + 'jsondata2.jsn', exact=False) def test3(self): # Verify that data 2 is not a subset of data 1 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata2.jsn', currdir + 'jsondata1.jsn', exact=True) def test4(self): # Verify check to confirm that YAML data has a different type self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata1.jsn', currdir + 'jsondata3.jsn', exact=True) def test5(self): # Verify that data 1 is not equal to data 1 pyutilib.misc.compare_json_files( currdir + 'jsondata1.jsn', currdir + 'jsondata1.jsn', exact=True) def test6(self): # Verify that data 1 is a subset of data 4 pyutilib.misc.compare_json_files( currdir + 'jsondata1.jsn', currdir + 'jsondata4.txt', output_begin='BEGIN', output_end='END', exact=False) def test7(self): # Verify that data 6 is a subset of data 5 pyutilib.misc.compare_json_files( currdir + 'jsondata6.jsn', currdir + 'jsondata5.jsn', exact=False) def test8(self): # Verify that data 5 is not a subset of data 6 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata5.jsn', currdir + 'jsondata6.jsn', exact=False) def test9(self): # Verify that data 7 is not a subset of data 5 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata7.jsn', currdir + 'jsondata5.jsn', exact=False) def test10(self): # Verify that data 6 is not equal to data 5 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata6.jsn', currdir + 'jsondata5.jsn', exact=True) def test11(self): # Verify that data 8 is not equal to data 5 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata8.jsn', currdir + 'jsondata5.jsn', exact=True) def test12(self): # Verify that data 9 is not a subset of data 1 self.assertRaises( IOError, pyutilib.misc.compare_json_files, currdir + 'jsondata9.jsn', currdir + 'jsondata1.jsn', exact=True) def test13(self): # Verify that data 10 is not a subset of data 1 self.assertRaises( ValueError, pyutilib.misc.compare_json_files, currdir + 'jsondata10.jsn', currdir + 'jsondata1.jsn', exact=True) def test14(self): # Verify that data 10 is a subset of data 1 with a loose tolerance pyutilib.misc.compare_json_files( currdir + 'jsondata10.jsn', currdir + 'jsondata1.jsn', tolerance=1.0, exact=True) def test15a(self): # Verify that compressed files can be compared pyutilib.misc.compare_json_files( currdir + 'jsondata2.jsn', currdir + 'jsondata2.jsn.gz', exact=True) def test15b(self): # Verify that compressed files can be compared pyutilib.misc.compare_json_files( currdir + 'jsondata2.jsn.gz', currdir + 'jsondata2.jsn', exact=True) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_log_config.py000066400000000000000000000170741367314503500230530ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ import logging import os from inspect import currentframe, getframeinfo from six import StringIO import pyutilib.misc import pyutilib.th as unittest from pyutilib.misc.log_config import LogHandler logger = logging.getLogger('pyutilib-testing') filename = getframeinfo(currentframe()).filename class TestLogging(unittest.TestCase): def setUp(self): self.stream = StringIO() def tearDown(self): logger.removeHandler(self.handler) def test_simple_log(self): # Testing positional base, configurable verbosity self.handler = LogHandler( os.path.dirname(__file__), stream = self.stream, verbosity=lambda: logger.isEnabledFor(logging.DEBUG)) logger.addHandler(self.handler) logger.setLevel(logging.WARNING) logger.info("(info)") self.assertEqual(self.stream.getvalue(), "") logger.warn("(warn)") ans = "WARNING: (warn)\n" self.assertEqual(self.stream.getvalue(), ans) logger.setLevel(logging.DEBUG) logger.warn("(warn)") lineno = getframeinfo(currentframe()).lineno - 1 ans += 'WARNING: "[base]%stest_log_config.py", %d, test_simple_log\n' \ ' (warn)\n' % (os.path.sep, lineno,) self.assertEqual(self.stream.getvalue(), ans) def test_alternate_base(self): self.handler = LogHandler( base = 'log_config', stream = self.stream) logger.addHandler(self.handler) logger.setLevel(logging.WARNING) logger.info("(info)") self.assertEqual(self.stream.getvalue(), "") logger.warn("(warn)") lineno = getframeinfo(currentframe()).lineno - 1 ans = 'WARNING: "%s", %d, test_alternate_base\n' \ ' (warn)\n' % (filename, lineno,) self.assertEqual(self.stream.getvalue(), ans) def test_no_base(self): self.handler = LogHandler( stream = self.stream) logger.addHandler(self.handler) logger.setLevel(logging.WARNING) logger.info("(info)") self.assertEqual(self.stream.getvalue(), "") logger.warn("(warn)") lineno = getframeinfo(currentframe()).lineno - 1 ans = 'WARNING: "%s", %d, test_no_base\n' \ ' (warn)\n' % (filename, lineno,) self.assertEqual(self.stream.getvalue(), ans) def test_no_message(self): self.handler = LogHandler( os.path.dirname(__file__), stream = self.stream, verbosity=lambda: logger.isEnabledFor(logging.DEBUG)) logger.addHandler(self.handler) logger.setLevel(logging.WARNING) logger.info("") self.assertEqual(self.stream.getvalue(), "") logger.warn("") ans = "WARNING\n" self.assertEqual(self.stream.getvalue(), ans) logger.setLevel(logging.DEBUG) logger.warn("") lineno = getframeinfo(currentframe()).lineno - 1 ans += 'WARNING: "[base]%stest_log_config.py", %d, test_no_message\n' \ % (os.path.sep, lineno,) self.assertEqual(self.stream.getvalue(), ans) def test_numbered_level(self): testname ='test_numbered_level' self.handler = LogHandler( os.path.dirname(__file__), stream = self.stream, verbosity=lambda: logger.isEnabledFor(logging.DEBUG)) logger.addHandler(self.handler) logger.setLevel(logging.WARNING) logger.log(45, "(hi)") ans = "Level 45: (hi)\n" self.assertEqual(self.stream.getvalue(), ans) logger.log(45, "") ans += "Level 45\n" self.assertEqual(self.stream.getvalue(), ans) logger.setLevel(logging.DEBUG) logger.log(45, "(hi)") lineno = getframeinfo(currentframe()).lineno - 1 ans += 'Level 45: "[base]%stest_log_config.py", %d, %s\n' \ ' (hi)\n' % (os.path.sep, lineno, testname) self.assertEqual(self.stream.getvalue(), ans) logger.log(45, "") lineno = getframeinfo(currentframe()).lineno - 1 ans += 'Level 45: "[base]%stest_log_config.py", %d, %s\n' \ % (os.path.sep, lineno, testname) self.assertEqual(self.stream.getvalue(), ans) def test_long_messages(self): self.handler = LogHandler( os.path.dirname(__file__), stream = self.stream, verbosity=lambda: logger.isEnabledFor(logging.DEBUG)) logger.addHandler(self.handler) msg = ("This is a long message\n\n" "With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2 ") logger.setLevel(logging.WARNING) logger.warn(msg) ans = ( "WARNING: This is a long message\n\n" " With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2\n" ) self.assertEqual(self.stream.getvalue(), ans) logger.setLevel(logging.DEBUG) logger.info(msg) lineno = getframeinfo(currentframe()).lineno - 1 ans += ( 'INFO: "[base]%stest_log_config.py", %d, test_long_messages\n' " This is a long message\n\n" " With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2\n" % (os.path.sep, lineno,)) self.assertEqual(self.stream.getvalue(), ans) # test trailing newline msg += "\n" logger.setLevel(logging.WARNING) logger.warn(msg) ans += ( "WARNING: This is a long message\n\n" " With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2\n" ) self.assertEqual(self.stream.getvalue(), ans) logger.setLevel(logging.DEBUG) logger.info(msg) lineno = getframeinfo(currentframe()).lineno - 1 ans += ( 'INFO: "[base]%stest_log_config.py", %d, test_long_messages\n' " This is a long message\n\n" " With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2\n" % (os.path.sep, lineno,)) self.assertEqual(self.stream.getvalue(), ans) # test initial and final blank lines msg = "\n" + msg + "\n\n" logger.setLevel(logging.WARNING) logger.warn(msg) ans += ( "WARNING: This is a long message\n\n" " With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2\n" ) self.assertEqual(self.stream.getvalue(), ans) logger.setLevel(logging.DEBUG) logger.info(msg) lineno = getframeinfo(currentframe()).lineno - 1 ans += ( 'INFO: "[base]%stest_log_config.py", %d, test_long_messages\n' " This is a long message\n\n" " With some kind of internal formatting\n" " - including a bulleted list\n" " - list 2\n" % (os.path.sep, lineno,)) self.assertEqual(self.stream.getvalue(), ans) pyutilib-6.0.0/pyutilib/misc/tests/test_method.py000066400000000000000000000020451367314503500222150ustar00rootroot00000000000000# # Unit Tests for util/method # # import pyutilib.th as unittest import pyutilib.misc class MethodDebug(unittest.TestCase): def test_add_method(self): # Verify that we can add a method to a class class A(object): def __init__(self): pass def foo(self, x): return (x,) a = A() pyutilib.misc.add_method(a, foo) self.assertEqual(a.foo("a"), ("a",)) pyutilib.misc.add_method(a, foo, "bar") self.assertEqual(a.bar("b"), ("b",)) def test_add_method_by_name(self): # Verify that we can add a method to a class class A(object): def __init__(self): pass def foo(self, x): return (x,) a = A() pyutilib.misc.add_method_by_name(a, "foo", locals=locals()) self.assertEqual(a.foo("a"), ("a",)) pyutilib.misc.add_method_by_name(a, "foo", "bar", locals=locals()) self.assertEqual(a.bar("b"), ("b",)) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_misc.py000066400000000000000000000477711367314503500217070ustar00rootroot00000000000000# # Unit Tests for util/misc # # import pickle import sys import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc import pyutilib.misc.comparison class Test(unittest.TestCase): def test_tostr(self): # Verify that tostr() generates a string str = pyutilib.misc.tostr([0.0, 1]) self.assertEqual(str, "0.0 1") str = pyutilib.misc.tostr([]) self.assertEqual(str, "") def test_flatten_tuple1(self): # Verify that flatten_tuple() flattens a normal tuple tmp = (1, "2", 3.0) ans = pyutilib.misc.flatten_tuple(tmp) self.assertEqual(ans, tmp) def test_flatten_tuple2(self): # Verify that flatten_tuple() flattens a nested tuple tmp = (1, "2", (4, ("5.0", (6))), 3.0) ans = pyutilib.misc.flatten_tuple(tmp) target = (1, "2", 4, "5.0", 6, 3.0) self.assertEqual(ans, target) def test_flatten_tuple3(self): # Verify that flatten_tuple() returns a non-tuple tmp = [1, "2", 3.0] ans = pyutilib.misc.flatten_tuple(tmp) self.assertEqual(ans, tmp) def test_flatten_tuple4(self): # Verify that flatten_tuple() removes empty tuples tmp = ((), 1, (), "2", ((), 4, ((), "5.0", (6), ()), ()), 3.0, ()) ans = pyutilib.misc.flatten_tuple(tmp) target = (1, "2", 4, "5.0", 6, 3.0) self.assertEqual(ans, target) def test_flatten_tuple5(self): # Verify that flatten_tuple() can collapse to a single empty tuple self.assertEqual((1, 2, 3, 4, 5), pyutilib.misc.flatten_tuple(( (), 1, (), 2, ((), 3, ((), 4, ()), ()), 5, ()))) self.assertEqual((), pyutilib.misc.flatten_tuple(((((), ()), ()), ()))) self.assertEqual((), pyutilib.misc.flatten_tuple(((), ((), ((),))))) def test_flatten_list1(self): # Verify that flatten_list() flattens a normal list tmp = [1, "2", 3.0] ans = pyutilib.misc.flatten_list(tmp) self.assertEqual(ans, tmp) def test_flatten_list2(self): # Verify that flatten_list() flattens a nested list tmp = [1, "2", [4, ["5.0", [6]]], 3.0] ans = pyutilib.misc.flatten_list(tmp) target = [1, "2", 4, "5.0", 6, 3.0] self.assertEqual(ans, target) def test_flatten_list3(self): # Verify that flatten_list() returns a non-list tmp = (1, "2", 3.0) ans = pyutilib.misc.flatten_list(tmp) self.assertEqual(ans, tmp) def test_flatten_list4(self): # Verify that flatten_list() removes empty lists tmp = [[], 1, [], "2", [[], 4, [[], "5.0", [6], []], []], 3.0, []] ans = pyutilib.misc.flatten_list(tmp) target = [1, "2", 4, "5.0", 6, 3.0] self.assertEqual(ans, target) def test_flatten_list5(self): # Verify that flatten_list() can collapse to a single empty list self.assertEqual([1, 2, 3, 4, 5], pyutilib.misc.flatten_list( [[], 1, [], 2, [[], 3, [[], 4, []], []], 5, []])) self.assertEqual([], pyutilib.misc.flatten_list([[[[], []], []], []])) self.assertEqual([], pyutilib.misc.flatten_list([[], [[], [[],]]])) def test_Bunch(self): a = 1 b = "b" tmp = pyutilib.misc.Bunch(a=a, b=b) self.assertEqual(tmp.a, a) self.assertEqual(tmp.b, b) def test_Container1(self): opt = pyutilib.misc.Container('a=None c=d e="1 2 3"', foo=1, bar='x') self.assertEqual(opt.ll, None) self.assertEqual(opt.a, None) self.assertEqual(opt.c, 'd') self.assertEqual(opt.e, '1 2 3') self.assertEqual(opt.foo, 1) self.assertEqual(opt.bar, 'x') self.assertEqual(opt['bar'], 'x') opt.xx = 1 opt['yy'] = 2 self.assertEqual( set(opt.keys()), set(['a', 'bar', 'c', 'foo', 'e', 'xx', 'yy'])) opt.x = pyutilib.misc.Container(a=1, b=2) self.assertEqual( set(opt.keys()), set( ['a', 'bar', 'c', 'foo', 'e', 'xx', 'yy', 'x'])) self.assertEqual( repr(opt), "Container(a = None, bar = 'x', c = 'd', e = '1 2 3', foo = 1, x = Container(a = 1, b = 2), xx = 1, yy = 2)") self.assertEqual( str(opt), """a: None bar: 'x' c: 'd' e: '1 2 3' foo: 1 x: a: 1 b: 2 xx: 1 yy: 2""") opt._name_ = 'CONTAINER' self.assertEqual( set(opt.keys()), set( ['a', 'bar', 'c', 'foo', 'e', 'xx', 'yy', 'x'])) self.assertEqual( repr(opt), "Container(a = None, bar = 'x', c = 'd', e = '1 2 3', foo = 1, x = Container(a = 1, b = 2), xx = 1, yy = 2)") self.assertEqual( str(opt), """a: None bar: 'x' c: 'd' e: '1 2 3' foo: 1 x: a: 1 b: 2 xx: 1 yy: 2""") def test_Container2(self): o1 = pyutilib.misc.Container('a=None c=d e="1 2 3"', foo=1, bar='x') s = pickle.dumps(o1) o2 = pickle.loads(s) self.assertEqual(o1, o2) def test_flatten1(self): # Test that flatten works correctly self.assertEqual("abc", pyutilib.misc.flatten("abc")) self.assertEqual(1, pyutilib.misc.flatten(1)) self.assertEqual([1, 2, 3], pyutilib.misc.flatten((1, 2, 3))) self.assertEqual([1, 2, 3], pyutilib.misc.flatten([1, 2, 3])) self.assertEqual([1, 2, 3, 4], pyutilib.misc.flatten((1, 2, [3, 4]))) self.assertEqual([1, 2, 'abc'], pyutilib.misc.flatten((1, 2, 'abc'))) self.assertEqual([1, 2, 'abc'], pyutilib.misc.flatten((1, 2, ('abc',)))) a = [0, 9, 8] self.assertEqual([1, 2, 0, 9, 8], pyutilib.misc.flatten((1, 2, a))) self.assertEqual([1, 2, 3, 4, 5], pyutilib.misc.flatten( [[], 1, [], 2, [[], 3, [[], 4, []], []], 5, []])) self.assertEqual([], pyutilib.misc.flatten([[[[], []], []], []])) self.assertEqual([], pyutilib.misc.flatten([[], [[], [[],]]])) def test_quote_split(self): ans = pyutilib.misc.quote_split("[ ]+", "a bb ccc") self.assertEqual(ans, ["a", "bb", "ccc"]) ans = pyutilib.misc.quote_split("[ ]+", "") self.assertEqual(ans, [""]) ans = pyutilib.misc.quote_split("[ ]+", 'a "bb ccc"') self.assertEqual(ans, ["a", "\"bb ccc\""]) ans = pyutilib.misc.quote_split("[ ]+", "a 'bb ccc'") self.assertEqual(ans, ["a", "'bb ccc'"]) ans = pyutilib.misc.quote_split("[ ]+", "a X\"bb ccc\"Y") self.assertEqual(ans, ["a", "X\"bb ccc\"Y"]) ans = pyutilib.misc.quote_split("[ ]+", "a X'bb ccc'Y") self.assertEqual(ans, ["a", "X'bb ccc'Y"]) ans = pyutilib.misc.quote_split("[ ]+", "a X'bb ccc'Y A") self.assertEqual(ans, ["a", "X'bb ccc'Y", "A"]) try: ans = pyutilib.misc.quote_split("[ ]+", 'a "bb ccc') self.fail( "test_quote_split - failed to detect unterminated quotation") except ValueError: pass ans = pyutilib.misc.quote_split("a bb\\\" ccc") self.assertEqual(ans, ["a", "bb\\\"", "ccc"]) self.assertRaises(ValueError, pyutilib.misc.quote_split, ("a bb\\\\\" ccc")) ans = pyutilib.misc.quote_split("a \"bb ccc\"") self.assertEqual(ans, ["a", "\"bb ccc\""]) ans = pyutilib.misc.quote_split("a 'bb \" ccc'") self.assertEqual(ans, ["a", "'bb \" ccc'"]) ans = pyutilib.misc.quote_split("a \"bb ' ccc\"") self.assertEqual(ans, ["a", "\"bb ' ccc\""]) ans = pyutilib.misc.quote_split("a \"bb \\\\\\\" ccc\"") self.assertEqual(ans, ["a", "\"bb \\\\\\\" ccc\""]) ans = pyutilib.misc.quote_split('b', "abbbccc") self.assertEqual(ans, ["a", '', '', 'ccc']) ans = pyutilib.misc.quote_split('b+', "abbbccc") self.assertEqual(ans, ["a", 'ccc']) ans = pyutilib.misc.quote_split(' ', "a b\ c") self.assertEqual(ans, ["a", 'b\ c']) def test_tuplize(self): ans = pyutilib.misc.tuplize([0, 1, 2, 3, 4, 5], 2, "a") self.assertEqual(ans, [(0, 1), (2, 3), (4, 5)]) try: ans = pyutilib.misc.tuplize([0, 1, 2, 3, 4, 5, 6], 2, "a") self.fail("test_tuplize failed to detect bad list length") except ValueError: pass def test_rmtree(self): if os.path.exists(".test_misc"): pyutilib.misc.rmtree(".test_misc") os.makedirs(".test_misc/a/b/c") OUTPUT = open(".test_misc/a/file", "w") OUTPUT.write("HERE\n") OUTPUT.close() pyutilib.misc.rmtree(".test_misc") if os.path.exists(".test_misc"): self.fail("test_rmtree failed to delete .test_misc dir") def test_search_file(self): # Test that search_file works ans = pyutilib.misc.search_file("foobar") self.assertEqual(ans, None) path = sys.path + [currdir] ans = pyutilib.misc.search_file("test1.cfg", search_path=path) self.assertEqual(ans, abspath(currdir + "test1.cfg")) ans = pyutilib.misc.search_file("test1.cfg", search_path=currdir) self.assertEqual(ans, abspath(currdir + "test1.cfg")) ans = pyutilib.misc.search_file( "test1", implicitExt=".cfg", search_path=path) self.assertEqual(ans, abspath(currdir + "test1.cfg")) def test_search_file2(self): # Test that search_file works with an empty PATH environment tmp = os.environ["PATH"] del os.environ["PATH"] ans = pyutilib.misc.search_file("_cd_") os.environ["PATH"] = tmp self.assertEqual(ans, None) def test_search_file3(self): # Test that search_file works with a validation function def validate_ls(filename): if filename.endswith('ls'): return False return True tmp = os.environ["PATH"] del os.environ["PATH"] ans = pyutilib.misc.search_file("ls", validate=validate_ls) os.environ["PATH"] = tmp self.assertEqual(ans, None) def test_file_compare1(self): # Test that file comparison works [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp1.txt", currdir + "filecmp1.txt") if flag: self.fail( "test_file_compare1 - found differences in filecmp1.txt at line " + str(lineno)) [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp1.txt", currdir + "filecmp2.txt") if flag: self.fail( "test_file_compare1 - found differences between filecmp1.txt filecmp2.txt at line " + str(lineno)) [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp1.txt", currdir + "filecmp3.txt") if not flag or lineno != 4: self.fail("test_file_compare1 - expected difference at line 4") [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp1.txt", currdir + "filecmp4.txt") if not flag or lineno != 3: self.fail("test_file_compare1 - expected difference at line 3") try: [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "foo.txt", currdir + "bar.txt") self.fail("test_file_compare1 - should have failed to find foo.txt") except IOError: pass try: [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp1.txt", currdir + "bar.txt") self.fail("test_file_compare1 - should have failed to find bar.txt") except IOError: pass def test_file_compare1a(self): # Test that file comparison works without numeric values [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp1.txt", currdir + "filecmp1.txt") if flag: self.fail( "test_file_compare1a - found differences in filecmp1.txt at line " + str(lineno)) [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp1.txt", currdir + "filecmp2.txt") if flag: self.fail( "test_file_compare1a - found differences between filecmp1.txt filecmp2.txt at line " + str(lineno)) [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp1.txt", currdir + "filecmp3.txt") if not flag or lineno != 4: self.fail("test_file_compare1a - expected difference at line 4", ", got %s, %s" % (flag, lineno)) [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp1.txt", currdir + "filecmp4.txt") if not flag or lineno != 3: self.fail("test_file_compare1a - expected difference at line 3" ", got %s, %s" % (flag, lineno)) try: [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "foo.txt", currdir + "bar.txt") self.fail( "test_file_compare1a - should have failed to find foo.txt") except IOError: pass try: [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp1.txt", currdir + "bar.txt") self.fail( "test_file_compare1a - should have failed to find bar.txt") except IOError: pass def test_file_compare1b(self): # Test that file comparison works with numeric values [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp6.txt", currdir + "filecmp7.txt") if not flag: self.fail( "test_file_compare1b - expected differences in filecmp6.txt and filecmp7.txt at line 1") # # [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp6.txt", currdir + "filecmp7.txt") if flag: self.fail( "test_file_compare1b - unexpected differences in filecmp6.txt and filecmp7.txt at line %d" % lineno) # [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp6.txt", currdir + "filecmp8.txt") if not flag: self.fail( "test_file_compare1b - expected differences in filecmp6.txt and filecmp8.txt at line 1") # [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp6.txt", currdir + "filecmp8.txt", tolerance=1e-2) if flag: self.fail( "test_file_compare1b - unexpected differences in filecmp6.txt and filecmp8.txt at line %d" % lineno) # [flag, lineno, diffstr ] = pyutilib.misc.compare_file_with_numeric_values( currdir + "filecmp10.txt", currdir + "filecmp11.txt", tolerance=1e-2) if flag: self.fail( "test_file_compare1b - unexpected differences in filecmp10.txt and filecmp11.txt at line %d" % lineno) # # [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp6.txt", currdir + "filecmp7.txt", tolerance=0.0) if flag: self.fail( "test_file_compare1b - unexpected differences in filecmp6.txt and filecmp7.txt at line %d" % lineno) # [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp6.txt", currdir + "filecmp8.txt", tolerance=0.0) if not flag: self.fail( "test_file_compare1b - expected differences in filecmp6.txt and filecmp8.txt at line 1") # [flag, lineno, diffstr] = pyutilib.misc.compare_file( currdir + "filecmp6.txt", currdir + "filecmp8.txt", tolerance=1e-2) if flag: self.fail( "test_file_compare1b - unexpected differences in filecmp6.txt and filecmp8.txt at line %d" % lineno) def test_file_compare2(self): # Test that large file comparison works flag = pyutilib.misc.compare_large_file(currdir + "filecmp1.txt", currdir + "filecmp1.txt") if flag: self.fail("test_file_compare2 - found differences in filecmp1.txt") flag = pyutilib.misc.compare_large_file(currdir + "filecmp1.txt", currdir + "filecmp2.txt") if flag: self.fail( "test_file_compare2 - found differences between filecmp1.txt filecmp2.txt") flag = pyutilib.misc.compare_large_file( currdir + "filecmp2.txt", currdir + "filecmp3.txt", bufSize=7) if not flag: self.fail( "test_file_compare2 - found differences between filecmp1.txt filecmp2.txt") flag = pyutilib.misc.compare_large_file(currdir + "filecmp1.txt", currdir + "filecmp3.txt") if not flag: self.fail("test_file_compare2 - expected difference") flag = pyutilib.misc.compare_large_file(currdir + "filecmp1.txt", currdir + "filecmp4.txt") if not flag: self.fail("test_file_compare2 - expected difference") try: flag = pyutilib.misc.compare_large_file(currdir + "foo.txt", currdir + "bar.txt") self.fail("test_file_compare2 - should have failed to find foo.txt") except IOError: pass try: flag = pyutilib.misc.compare_large_file(currdir + "filecmp1.txt", currdir + "bar.txt") self.fail("test_file_compare1 - should have failed to find bar.txt") except IOError: pass def test_remove_chars(self): # Test the remove_chars_in_list works a = pyutilib.misc.comparison.remove_chars_in_list("", "") self.assertEqual(a, "") a = pyutilib.misc.comparison.remove_chars_in_list("abcde", "") self.assertEqual(a, "abcde") a = pyutilib.misc.comparison.remove_chars_in_list("abcde", "ace") self.assertEqual(a, "bd") def test_get_desired_chars_from_file(self): # Test that get_desired_chars_from_file works INPUT = open(currdir + "filecmp5.txt", "r") a = pyutilib.misc.comparison.get_desired_chars_from_file(INPUT, 3, "b,d") self.assertEqual(a, "ace") INPUT.close() INPUT = open(currdir + "filecmp5.txt", "r") a = pyutilib.misc.comparison.get_desired_chars_from_file(INPUT, 100) self.assertEqual(a, "abcde\nfghij\n") INPUT.close() def test_sort_index1(self): # Test that sort_index returns the correct value for a sorted array ans = pyutilib.misc.sort_index(range(0, 10)) self.assertEqual(ans, list(range(0, 10))) def test_sort_index2(self): # Test that sort_index returns an array that can be used to sort the data data = [4, 2, 6, 8, 1, 9, 3, 10, 7, 5] ans = pyutilib.misc.sort_index(data) sorted = [] for i in range(0, len(data)): sorted.append(data[ans[i]]) data.sort() self.assertEqual(data, sorted) def test_create_hardlink(self): orig = currdir + "import1.txt" link = currdir + "import1.txt.hardlink" try: os.remove(link) except OSError: pass self.assertTrue(os.path.exists(orig)) self.assertTrue(not os.path.exists(link)) pyutilib.misc.create_hardlink(orig, link) self.assertTrue(os.path.exists(link)) self.assertTrue(os.path.isfile(link)) os.remove(link) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_reference.txt000066400000000000000000000055121367314503500230640ustar00rootroot00000000000000\begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{network}]\hfill \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{epanet file}]\hfill \\EPANET network inp file \end{description} \item[{scenario}]\hfill \\Single scenario block \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{scenario file}]\hfill \\This is the (long) documentation for the 'scenario file' parameter. It contains multiple lines, and some internal formatting; like a bulleted list: - item 1 - item 2 \item[{merlion}]\hfill \\This is the (long) documentation for the 'merlion' parameter. It contains multiple lines, but no apparent internal formatting; so the outputter should re-wrap everything. \item[{detection}]\hfill \\Sensor placement list, epanetID \end{description} \item[{scenarios}]\hfill \\List of scenario blocks \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{scenario file}]\hfill \\This is the (long) documentation for the 'scenario file' parameter. It contains multiple lines, and some internal formatting; like a bulleted list: - item 1 - item 2 \item[{merlion}]\hfill \\This is the (long) documentation for the 'merlion' parameter. It contains multiple lines, but no apparent internal formatting; so the outputter should re-wrap everything. \item[{detection}]\hfill \\Sensor placement list, epanetID \end{description} \item[{nodes}]\hfill \\List of node IDs \item[{impact}]\hfill \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{metric}]\hfill \\Population or network based impact metric \end{description} \item[{flushing}]\hfill \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{flush nodes}]\hfill \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{feasible nodes}]\hfill \\ALL, NZD, NONE, list or filename \item[{infeasible nodes}]\hfill \\ALL, NZD, NONE, list or filename \item[{max nodes}]\hfill \\Maximum number of nodes to flush \item[{rate}]\hfill \\Flushing rate [gallons/min] \item[{response time}]\hfill \\Time [min] between detection and flushing \item[{duration}]\hfill \\Time [min] for flushing \end{description} \item[{close valves}]\hfill \begin{description}[topsep=0pt,parsep=0.5em,itemsep=-0.4em] \item[{feasible pipes}]\hfill \\ALL, DIAM min max [inch], NONE, list or filename \item[{infeasible pipes}]\hfill \\ALL, DIAM min max [inch], NONE, list or filename \item[{max pipes}]\hfill \\Maximum number of pipes to close \item[{response time}]\hfill \\Time [min] between detection and closing valves \end{description} \end{description} \end{description} pyutilib-6.0.0/pyutilib/misc/tests/test_singleton.py000066400000000000000000000014361367314503500227420ustar00rootroot00000000000000# # Unit Tests for util/singleton # # import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc class A(pyutilib.misc.MonoState): def __init__(self): self.state = True class B(pyutilib.misc.Singleton): def __init__(self): self.state = True class SingletonDebug(unittest.TestCase): def test_A(self): # Verify that MonoState generates one global state a1 = A() a2 = A() self.assertNotEqual(a1, a2) self.assertEqual(a1.__dict__, a2.__dict__) def test_B(self): # Verify that Singleton generates one instance b1 = B() b2 = B() self.assertEqual(b1, b2) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_smap.py000066400000000000000000000104461367314503500217010ustar00rootroot00000000000000# # Unit Tests for SparseMapping # # import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc class Test(unittest.TestCase): def test1(self): # Validate behavior for empty sparse map smap = pyutilib.misc.SparseMapping() self.assertEqual(len(smap), 0) def test2(self): # Validate behavior for sparse map with specified values smap = pyutilib.misc.SparseMapping(a=1, b=2) self.assertEqual(len(smap), 2) self.assertTrue('a' in smap) data = [key for key in smap] self.assertEqual(sorted(data), ['a', 'b']) try: smap['c'] self.fail("Expected KeyError") except KeyError: pass self.assertEqual(smap['a'], 1) try: del smap['c'] self.fail("Expected KeyError") except KeyError: pass del smap['b'] self.assertEqual(len(smap), 1) smap['b'] = 3 self.assertEqual(smap['b'], 3) def test3(self): # Validate behavior for sparse map with specified values and domain smap = pyutilib.misc.SparseMapping(a=1, b=2, index=['a', 'b', 'z']) self.assertEqual(len(smap), 2) self.assertTrue('a' in smap) data = [key for key in smap] self.assertEqual(sorted(data), ['a', 'b']) try: smap['c'] self.fail("Expected KeyError") except KeyError: pass self.assertEqual(smap['a'], 1) try: del smap['c'] self.fail("Expected KeyError") except KeyError: pass del smap['b'] self.assertEqual(len(smap), 1) smap['b'] = 3 self.assertEqual(len(smap), 2) self.assertEqual(smap['b'], 3) def test4(self): # Validate behavior for sparse map with specified values and domain and default value smap = pyutilib.misc.SparseMapping( a=1, b=2, index=['a', 'b', 'z'], default=0) self.assertEqual(len(smap), 3) self.assertTrue('a' in smap) data = [key for key in smap] self.assertEqual(sorted(data), ['a', 'b', 'z']) try: smap['c'] self.fail("Expected KeyError") except KeyError: pass self.assertEqual(smap['a'], 1) try: del smap['c'] self.fail("Expected KeyError") except KeyError: pass del smap['b'] self.assertEqual(len(smap), 3) smap['b'] = 3 self.assertEqual(len(smap), 3) self.assertEqual(smap['b'], 3) self.assertEqual(smap['z'], 0) def test6(self): # Validate behavior for sparse map with specified values and default value smap = pyutilib.misc.SparseMapping(a=1, b=2, default=0) self.assertEqual(len(smap), 2) self.assertTrue('a' in smap) data = [key for key in smap] self.assertEqual(sorted(data), ['a', 'b']) self.assertEqual(smap['c'], 0) self.assertEqual(smap['a'], 1) try: del smap['c'] self.fail("Expected KeyError") except KeyError: pass del smap['b'] self.assertEqual(len(smap), 1) smap['b'] = 3 self.assertEqual(len(smap), 2) self.assertEqual(smap['b'], 3) self.assertEqual(smap['z'], 0) def test5(self): # Validate behavior for sparse map with specified values and 'within' option smap = pyutilib.misc.SparseMapping(a=1, b=2, within=range(10)) self.assertEqual(len(smap), 2) self.assertTrue('a' in smap) data = [key for key in smap] self.assertEqual(sorted(data), ['a', 'b']) try: smap['c'] self.fail("Expected KeyError") except KeyError: pass self.assertEqual(smap['a'], 1) try: del smap['c'] self.fail("Expected KeyError") except KeyError: pass del smap['b'] self.assertEqual(len(smap), 1) try: smap['b'] = -1 self.fail("Expected ValueError") except ValueError: pass smap['b'] = 3 self.assertEqual(smap['b'], 3) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_visitor.py000066400000000000000000000077751367314503500224530ustar00rootroot00000000000000import pyutilib.misc import pyutilib.th as unittest from pyutilib.misc.visitor import SimpleVisitor, ValueVisitor class Node(object): def __init__(self): self.children = [] self.num = 0 def __str__(self): #pragma: no cover return str(self.num) class CountVisitor(SimpleVisitor): def __init__(self): self.count = 0 def visit(self, node): self.count += 1 node.num = self.count def finalize(self): return self.count class CollectVisitor(SimpleVisitor): def __init__(self): self.ans = [] def visit(self, node): self.ans.append(node.num) def finalize(self): return self.ans class SumVisitor(ValueVisitor): def __init__(self): self.count = 0 def visit(self, node, values): if values is None or len(values) == 0: self.count = node.num else: self.count = node.num + sum(values) return self.count def finalize(self, ans): return self.count class Test(unittest.TestCase): def setUp(self): root = Node() root.children = [Node(), Node(), Node()] root.children[0].children = [Node(), Node(), Node()] root.children[0].children[0].children = [Node(), Node(), Node()] root.children[0].children[1].children = [Node(), Node(), Node()] root.children[0].children[2].children = [Node(), Node(), Node()] root.children[1].children = [Node(), Node(), Node()] root.children[1].children[0].children = [Node(), Node(), Node()] root.children[1].children[1].children = [Node(), Node(), Node()] root.children[1].children[2].children = [Node(), Node(), Node()] root.children[2].children = [Node(), Node(), Node()] root.children[2].children[0].children = [Node(), Node(), Node()] root.children[2].children[1].children = [Node(), Node(), Node()] root.children[2].children[2].children = [Node(), Node(), Node()] cvisitor = CountVisitor() cvisitor.bfs(root) self.root = root def test_bfs(self): visitor = CollectVisitor() ans = visitor.bfs(self.root) self.assertEqual(ans, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]) def test_dfs_preorder(self): visitor = CollectVisitor() ans = visitor.dfs(self.root) self.assertEqual(ans, [1,2,5,14,15,16,6,17,18,19,7,20,21,22,3,8,23,24,25,9,26,27,28,10,29,30,31,4,11,32,33,34,12,35,36,37,13,38,39,40]) def test_dfs_inorder(self): visitor = CollectVisitor() ans = visitor.dfs_inorder(self.root) self.assertEqual(ans, [14,5,15,5,16,2,17,6,18,6,19,2,20,7,21,7,22,1,23,8,24,8,25,3,26,9,27,9,28,3,29,10,30,10,31,1,32,11,33,11,34,4,35,12,36,12,37,4,38,13,39,13,40]) def test_dfs_postorder(self): visitor = CollectVisitor() ans = visitor.dfs_postorder(self.root) self.assertEqual(ans, [14,15,16,5,17,18,19,6,20,21,22,7,2,23,24,25,8,26,27,28,9,29,30,31,10,3,32,33,34,11,35,36,37,12,38,39,40,13,4,1]) def test_retval_dfs_postorder_tree(self): visitor = SumVisitor() ans = visitor.dfs_postorder_deque(self.root) self.assertEqual(ans, 820) visitor = SumVisitor() ans = visitor.dfs_postorder_stack(self.root) self.assertEqual(ans, 820) def test_retval_dfs_postorder_trivial(self): root = Node() root.num = 1 visitor = SumVisitor() ans = visitor.dfs_postorder_deque(root) self.assertEqual(ans, 1) visitor = SumVisitor() ans = visitor.dfs_postorder_stack(root) self.assertEqual(ans, 1) def test_count_bfs(self): cvisitor = CountVisitor() ans = cvisitor.bfs(self.root) self.assertEqual(ans,40) def test_count_xbfs(self): cvisitor = CountVisitor() ans = cvisitor.xbfs(self.root) self.assertEqual(ans,40) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_xml.py000066400000000000000000000106201367314503500215330ustar00rootroot00000000000000# # Unit Tests for xml_utils # # import os from os.path import abspath, dirname pkgdir = dirname(abspath(__file__)) currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc from xml.dom import minidom class XMLDebug(unittest.TestCase): def setUp(self): self.doc = minidom.parse(pkgdir + "/test.xml") self.node = self.doc.documentElement def tearDown(self): self.doc = None self.node = None def test_get_text(self): # Verify that we can get XML text str = pyutilib.misc.get_xml_text(self.node) target = "a b c\n \n d e f" self.assertEqual(target, str) def test_escape(self): source = "&'<>\"" str = pyutilib.misc.escape(source) target = "&'<>\"" self.assertEqual(target, str) class Test(unittest.TestCase): def test1(self): # Verify that data 1 is not equal to data 2 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata1.xml', currdir + 'xmldata2.xml', exact=True) def test2(self): # Verify that data 1 is a subset of data 2 pyutilib.misc.compare_xml_files( currdir + 'xmldata1.xml', currdir + 'xmldata2.xml', exact=False) def test3(self): # Verify that data 2 is not a subset of data 1 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata2.xml', currdir + 'xmldata1.xml', exact=True) def test4(self): # Verify check to confirm that YAML data has a different type self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata1.xml', currdir + 'xmldata3.xml', exact=True) def test5(self): # Verify that data 1 is not equal to data 1 pyutilib.misc.compare_xml_files( currdir + 'xmldata1.xml', currdir + 'xmldata1.xml', exact=True) def test6(self): # Verify that data 1 is a subset of data 4 pyutilib.misc.compare_xml_files( currdir + 'xmldata1.xml', currdir + 'xmldata4.txt', output_begin='BEGIN', output_end='END', exact=False) def test7(self): # Verify that data 6 is a subset of data 5 pyutilib.misc.compare_xml_files( currdir + 'xmldata6.xml', currdir + 'xmldata5.xml', exact=False) def test8(self): # Verify that data 5 is not a subset of data 6 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata5.xml', currdir + 'xmldata6.xml', exact=False) def test9(self): # Verify that data 7 is not a subset of data 5 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata7.xml', currdir + 'xmldata5.xml', exact=False) def test10(self): # Verify that data 6 is not equal to data 5 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata6.xml', currdir + 'xmldata5.xml', exact=True) def test11(self): # Verify that data 8 is not equal to data 5 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata8.xml', currdir + 'xmldata5.xml', exact=True) def test12(self): # Verify that data 9 is not a subset of data 1 self.assertRaises( IOError, pyutilib.misc.compare_xml_files, currdir + 'xmldata9.xml', currdir + 'xmldata1.xml', exact=True) def test13(self): # Verify that data 10 is not a subset of data 1 self.assertRaises( ValueError, pyutilib.misc.compare_xml_files, currdir + 'xmldata10.xml', currdir + 'xmldata1.xml', exact=True) def test14(self): # Verify that data 10 is a subset of data 1 with a loose tolerance pyutilib.misc.compare_xml_files( currdir + 'xmldata10.xml', currdir + 'xmldata1.xml', tolerance=1.0, exact=True) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/test_yaml.py000066400000000000000000000155301367314503500217020ustar00rootroot00000000000000# # Unit Tests for yaml_utils # # import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc try: import yaml using_yaml = True except ImportError: using_yaml = False class Test(unittest.TestCase): def setUp(self): if not using_yaml: self.skipTest("Cannot execute test because YAML is not available.") def test1(self): # Verify that data 1 is not equal to data 2 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata1.yml', currdir + 'yamldata2.yml', exact=True) def test2(self): # Verify that data 1 is a subset of data 2 pyutilib.misc.compare_yaml_files( currdir + 'yamldata1.yml', currdir + 'yamldata2.yml', exact=False) def test3(self): # Verify that data 2 is not a subset of data 1 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata2.yml', currdir + 'yamldata1.yml', exact=True) def test4(self): # Verify check to confirm that YAML data has a different type self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata1.yml', currdir + 'yamldata3.yml', exact=True) def test5(self): # Verify that data 1 is not equal to data 1 pyutilib.misc.compare_yaml_files( currdir + 'yamldata1.yml', currdir + 'yamldata1.yml', exact=True) def test6(self): # Verify that data 1 is a subset of data 4 pyutilib.misc.compare_yaml_files( currdir + 'yamldata1.yml', currdir + 'yamldata4.txt', output_begin='BEGIN', output_end='END', exact=False) def test7(self): # Verify that data 6 is a subset of data 5 pyutilib.misc.compare_yaml_files( currdir + 'yamldata6.yml', currdir + 'yamldata5.yml', exact=False) def test8(self): # Verify that data 5 is not a subset of data 6 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata5.yml', currdir + 'yamldata6.yml', exact=False) def test9(self): # Verify that data 7 is not a subset of data 5 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata7.yml', currdir + 'yamldata5.yml', exact=False) def test10(self): # Verify that data 6 is not equal to data 5 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata6.yml', currdir + 'yamldata5.yml', exact=True) def test11(self): # Verify that data 8 is not equal to data 5 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata8.yml', currdir + 'yamldata5.yml', exact=True) def test12(self): # Verify that data 9 is not a subset of data 1 self.assertRaises( IOError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata9.yml', currdir + 'yamldata1.yml', exact=True) def test13(self): # Verify that data 10 is not a subset of data 1 self.assertRaises( ValueError, pyutilib.misc.compare_yaml_files, currdir + 'yamldata10.yml', currdir + 'yamldata1.yml', exact=True) def test14(self): # Verify that data 10 is a subset of data 1 with a loose tolerance pyutilib.misc.compare_yaml_files( currdir + 'yamldata10.yml', currdir + 'yamldata1.yml', tolerance=1.0, exact=True) def test15a(self): # Verify that compressed files can be compared pyutilib.misc.compare_yaml_files( currdir + 'yamldata14.yml', currdir + 'yamldata14.yml.gz', exact=True) def test15b(self): # Verify that compressed files can be compared pyutilib.misc.compare_yaml_files( currdir + 'yamldata14.yml.gz', currdir + 'yamldata14.yml', exact=True) class TestSimple(unittest.TestCase): def test1(self): # Parse yamldata1.yml self.assertEqual({ 'a': {'b': 1, 'c': 1.3}, 'd': {'e': 'the rain in spain', 'f': 'is mostly on the plain'} }, pyutilib.misc.simple_yaml_parser(currdir + 'yamldata1.yml')) def test2(self): # Parse yamldata2.yml self.assertEqual({ 'a': {'b': 1, 'c': 1.3}, 'd': {'e': 'the rain in spain', 'f': 'is mostly on the plain'}, 'g': 'again' }, pyutilib.misc.simple_yaml_parser(currdir + 'yamldata2.yml')) def test3(self): # Parse yamldata3.yml self.assertEqual( ['a', 'b', 'c'], pyutilib.misc.simple_yaml_parser(currdir + 'yamldata3.yml')) def test5(self): # Parse yamldata5.yml self.assertEqual( {'a': ['b', 1, {'c': 'ccc', 'e': 'eee', 'd': 'ddd'}, 1.3], 'g': 'again'}, pyutilib.misc.simple_yaml_parser(currdir + 'yamldata5.yml')) def test6(self): # Parse yamldata6.yml self.assertEqual( {'a': [1, {'c': 'ccc', 'e': 'eee', 'd': 'ddd'}, 1.3], 'g': 'again'}, pyutilib.misc.simple_yaml_parser(currdir + 'yamldata6.yml')) def test7(self): # Parse yamldata7.yml self.assertEqual( {'a': [1, {'c': 'ccc', 'e': 'eee', 'd': 'ddd'}, 1.3, 'x', 'y'], 'g': 'again'}, pyutilib.misc.simple_yaml_parser(currdir + 'yamldata7.yml')) def test11(self): # Parse yamldata11.yml self.assertEqual( ['a', ['b', 'c', ['d', 'e'], 'f', 'g'], 'h'], pyutilib.misc.simple_yaml_parser(currdir + 'yamldata11.yml')) def test12(self): # Parse yamldata12.yml self.assertEqual( ['a', {'X': ['b', ['d', 'e'], 'f', 'g'], 'Y': 'FOO'}, 'h'], pyutilib.misc.simple_yaml_parser(currdir + 'yamldata12.yml')) def test13(self): # Parse yamldata13.yml pyutilib.misc.simple_yaml_parser(currdir + 'yamldata13.yml').keys() def test14(self): # Parse yamldata14.yml pyutilib.misc.simple_yaml_parser(currdir + 'yamldata14.yml').keys() if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/misc/tests/xmldata1.xml000066400000000000000000000002101367314503500215510ustar00rootroot00000000000000 the rain in spain is mostly on the plain pyutilib-6.0.0/pyutilib/misc/tests/xmldata10.xml000066400000000000000000000002101367314503500216310ustar00rootroot00000000000000 the rain in spain is mostly on the plain pyutilib-6.0.0/pyutilib/misc/tests/xmldata11.xml000066400000000000000000000001751367314503500216440ustar00rootroot00000000000000 <_>a <_> <_>b <_>c <_> <_>d <_>e <_>f <_>g <_>h pyutilib-6.0.0/pyutilib/misc/tests/xmldata12.xml000066400000000000000000000002501367314503500216370ustar00rootroot00000000000000 <_>a <_> <_>b <_> <_>d <_>e <_>f <_>g FOO <_>h pyutilib-6.0.0/pyutilib/misc/tests/xmldata2.xml000066400000000000000000000002251367314503500215600ustar00rootroot00000000000000 the rain in spain is mostly on the plain again pyutilib-6.0.0/pyutilib/misc/tests/xmldata3.xml000066400000000000000000000000361367314503500215610ustar00rootroot00000000000000 pyutilib-6.0.0/pyutilib/misc/tests/xmldata4.txt000066400000000000000000000002371367314503500216040ustar00rootroot00000000000000BEGIN the rain in spain is mostly on the plain again END pyutilib-6.0.0/pyutilib/misc/tests/xmldata5.xml000066400000000000000000000002301367314503500215570ustar00rootroot00000000000000 <_>b <_>1 <_> ccc ddd eee <_>1.3 again pyutilib-6.0.0/pyutilib/misc/tests/xmldata6.xml000066400000000000000000000002131367314503500215610ustar00rootroot00000000000000 <_>1 <_> ccc ddd eee <_>1.3 again pyutilib-6.0.0/pyutilib/misc/tests/xmldata7.xml000066400000000000000000000002451367314503500215670ustar00rootroot00000000000000 <_>1 <_> ccc ddd eee <_>1.3 <_>x <_>y again pyutilib-6.0.0/pyutilib/misc/tests/xmldata8.xml000066400000000000000000000002301367314503500215620ustar00rootroot00000000000000 <_>1 <_> ccc ddd eee <_>1.3 <_>y again pyutilib-6.0.0/pyutilib/misc/tests/xmldata9.xml000066400000000000000000000002101367314503500215610ustar00rootroot00000000000000 the rain in spain is mostly on the plain pyutilib-6.0.0/pyutilib/misc/tests/yamldata1.yml000066400000000000000000000001211367314503500217150ustar00rootroot00000000000000--- a: b: 1 c: 1.3 d: e: the rain in spain f: is mostly on the plain ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata10.yml000066400000000000000000000001211367314503500217750ustar00rootroot00000000000000--- a: b: 1 c: 1.4 d: e: the rain in spain f: is mostly on the plain ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata11.yml000066400000000000000000000000661367314503500220060ustar00rootroot00000000000000- a - - b - c - - d - e - f - g - h pyutilib-6.0.0/pyutilib/misc/tests/yamldata12.yml000066400000000000000000000001121367314503500217770ustar00rootroot00000000000000- a - X: - b - - d - e - f - g Y: FOO - h pyutilib-6.0.0/pyutilib/misc/tests/yamldata13.yml000066400000000000000000000007671367314503500220200ustar00rootroot00000000000000python: - import coopr.opt driver: coopr.pyomo solvers: glpk: cplex: pico: cbc: asl_pico: name: "_asl:PICO" gurobi: problems: diet1: files: diet1.py diet1.dat suites: lp_smoke: categories: - integration - nightly - smoke solvers: glpk: cplex: pico: cbc: gurobi: problems: diet1: tolerance: 1e-5 pyutilib-6.0.0/pyutilib/misc/tests/yamldata14.yml000066400000000000000000000131501367314503500220070ustar00rootroot00000000000000driver: coopr.test_solvers solvers: cbc: cbc_asl: name: cbc solver_io: nl # coliny: name: '_asl:coliny' # cplex: cplex_asl: name: cplex solver_io: nl cplex_direct: name: cplex solver_io: python # glpk: glpk_direct: name: glpk solver_io: python glpk_openopt: name: 'openopt:glpk' # ipopt: name: '_asl:ipopt' # pico: pico_asl: name: pico solver_io: nl # gurobi: gurobi_asl: name: gurobi solver_io: nl gurobi_direct: name: gurobi solver_io: python # ralg: name: 'openopt:ralg' # amsg2p: name: 'openopt:amsg2p' # scipy_lbfgsb: name: 'openopt:scipy_lbfgsb' # scipy_tnc: name: 'openopt:scipy_tnc' # bobyqa: name: 'openopt:bobyqa' # interalg: name: 'openopt:interalg' # scipy_cobyla: name: 'openopt:scipy_cobyla' # scipy_slsqp: name: 'openopt:scipy_slsqp' # sqlcp: name: 'openopt:sqlcp' # gsubg: name: 'openopt:gsubg' # lincher: name: 'openopt:lincher' # de: name: 'openopt:de' # galileo: name: 'openopt:galileo' # pswarm: name: 'openopt:pswarm' problems: diet1: files: diet1.py diet1.dat baseline: diet1.yml tests: lp_feasible lp_bounds lp_unique1: files: lp_unique1.py baseline: lp_unique1.yml tests: lp_feasible lp_unique_dual lp_bounds lp_basic: files: lp_basic.py baseline: lp_basic.yml tests: lp_feasible lp_bounds simple1a: files: simple1a.py baseline: simple1a.yml tests: lp_feasible lp_bounds simple1b: files: simple1b.py baseline: simple1b.yml tests: lp_feasible lp_bounds infeasible1a: files: infeasible1a.py tests: lp_infeasible infeasible1b: files: infeasible1b.py tests: lp_infeasible unbounded1a: files: unbounded1a.py tests: lp_unbounded unbounded1b: files: unbounded1b.py tests: lp_unbounded constant1a: files: constant1a.py baseline: constant1a.yml tests: lp_constant lp_bounds constant1b: files: constant1b.py baseline: constant1b.yml tests: lp_constant lp_bounds mip_infeasible1a: files: mip_infeasible1a.py tests: mip_infeasible mip_unique1: files: mip_unique1.py baseline: mip_unique1.yml tests: mip_feasible mip_unique mip_unbounded1a: files: mip_unbounded1a.py tests: mip_unbounded mip_constant1a: files: mip_constant1a.py baseline: mip_constant1a.yml tests: mip_constant sos1: files: sos1.py baseline: sos1.yml tests: mip_feasible mip_unique sos2: files: sos2.py baseline: sos2.yml tests: mip_feasible mip_unique multidimen_sos1: files: multidimen_sos1.py baseline: multidimen_sos1.yml tests: mip_feasible mip_unique multidimen_sos2: files: multidimen_sos2.py baseline: multidimen_sos2.yml tests: mip_feasible mip_unique suites: mip: solvers: cbc: cbc_asl: cplex: cplex_asl: cplex_direct: glpk: glpk_direct: glpk_openopt: pico: pico_asl: gurobi: gurobi_direct: problems: mip_unbounded1a: mip_unique1: mip_infeasible1a: mip_constant1a: sos1: sos2: multidimen_sos1: multidimen_sos2: lp: solvers: cbc: cbc_asl: cplex: cplex_asl: cplex_direct: glpk: glpk_direct: glpk_openopt: pico: pico_asl: gurobi: gurobi_direct: problems: diet1: abstol: 1e-5 lp_unique1: lp_basic: simple1a: simple1b: infeasible1a: infeasible1b: unbounded1a: unbounded1b: constant1a: constant1b: lp_convex: solvers: ipopt: ralg: problems: diet1: abstol: 1e-5 tests: lp_feasible infeasible1a: tests: lp_infeasible infeasible1b: tests: lp_infeasible unbounded1a: tests: lp_unbounded unbounded1b: tests: lp_unbounded constant1a: tests: lp_constant constant1b: tests: lp_constant lp_other: solvers: ralg: amsg2p: scipy_lbfgsb: scipy_tnc: interalg: scipy_cobyla: scipy_slsqp: sqlcp: gsubg: lincher: de: galileo: pswarm: problems: simple1a: tests: lp_feasible simple1b: tests: lp_feasible pyutilib-6.0.0/pyutilib/misc/tests/yamldata14.yml.gz000066400000000000000000000016361367314503500224340ustar00rootroot00000000000000‹¬$uRyamldata14.ymlíXÉŽÜ ½û+ZÊ¡OiZÊÅ?c›éAÁànìIúïCy£X ;Î5uÂõ^-e´OñÅŸå¥Ñº¾ Ü •ÑÒªLQ,ƒ²¸XiX³ ªÚÈùDÕ/A½ifÃJèò¢ä¤ý6›j)Ô+´¼NîfìŠÙ½ä¿K7LF w6lÅ“7ÃaÛþ5|j…2¹Ëþg¹wíx›¬uÏ•î#óëª.ƒèSì©„¹½ht¹Rýî:Ýǧf¢D㔫É8[L‰r‘ÖQùŸµ¼“å— îÌýÖ“ôƦý«’ìãni†I±ñ šKËÀfL³×£&mfØk5ðlVBœ\cI:&ÅÆFš]LÄñL²ÉŠéw32zbŠév›h>í–E,86i9Én¹—J-…äšNfƽ_ÎüªŸi1Ã×¢èm»KÞ-»i+øðîŒ>¬WSÎã zë_Ë ­‡ÆjÃíôx¹Ñ^ÜPؼW'²¯>xm„ c¦GÕšbAF%#'Â;ÜæŒŒÃÏôªkgc]‹†ÌeB3™Ìøß—ÁˆÎnÿïu:ðŠR7üt`– Ìv³…ZjÖ˜ü;Zè—˜f÷;ª)yÞRé"BÆëÆ œ¹"Âa§Vf¨Õ@%êpjY#³°++XØÍ˜˜’ÃwÃgûŠß ¼tT BU\Ÿ·ÈnYˆ@ÍS¨)gûwœÊa§!RnŠ~f¯‰|Nnžš Óæ]I¢¸€»`gÊi od¸[&ÜíÜêr­è¸ªè‰$²Âíßó!*Žås®>öª7 K.‹µ]JÞ%p•í2ˆþaRº œ§"˜ÑEÄ]½°†¤Æ·+w-š8 |ïñuQ@ÿ8· ¹M80ØÇV ½ƒ®hjsñ»yÑÜ{ªùcð¶4€ü¿þîàúÇúUjf-ËË;ÿþÃS‡ñE‹Aâ3+Ò2_K÷Sú¼BvnòÔBõ%>’¬ç|«ûÂíl¬à±Ä¿öžª;HT{âä|°’ ÁÑ%áƒõA®NÂ…¼ˆ=ì'‘ö@­wÂw¼ˆì÷Àök éÁ»ø';ÈoðEh2M>ú8Ä{щ`9|aqHð|2þãHð2M6|äÁÏ“]øZ¾G¤˜ôVrä—Ho99ëâ&•“hpyutilib-6.0.0/pyutilib/misc/tests/yamldata2.yml000066400000000000000000000001321367314503500217200ustar00rootroot00000000000000--- a: b: 1 c: 1.3 d: e: the rain in spain f: is mostly on the plain g: again ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata3.yml000066400000000000000000000000241367314503500217210ustar00rootroot00000000000000--- - a - b - c ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata4.txt000066400000000000000000000001341367314503500217420ustar00rootroot00000000000000BEGIN a: b: 1 c: 1.3 d: e: the rain in spain f: is mostly on the plain g: again END pyutilib-6.0.0/pyutilib/misc/tests/yamldata5.yml000066400000000000000000000001151367314503500217240ustar00rootroot00000000000000--- a: - b - 1 - c: ccc d: ddd e: eee - 1.3 g: again ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata6.yml000066400000000000000000000001101367314503500217200ustar00rootroot00000000000000--- a: - 1 - c: ccc d: ddd e: eee - 1.3 g: again ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata7.yml000066400000000000000000000001241367314503500217260ustar00rootroot00000000000000--- a: - 1 - c: ccc d: ddd e: eee - 1.3 - x - y g: again ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata8.yml000066400000000000000000000001111367314503500217230ustar00rootroot00000000000000--- a: - 1 - c: ccc d: ddd e: eee - 1.3 - y g: again ... pyutilib-6.0.0/pyutilib/misc/tests/yamldata9.yml000066400000000000000000000001211367314503500217250ustar00rootroot00000000000000--- a: b: 1 c: 1.3 x: e: the rain in spain f: is mostly on the plain ... pyutilib-6.0.0/pyutilib/misc/timing.py000066400000000000000000000433721367314503500200330ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # import sys import time import traceback __all__ = ('TicTocTimer', 'tic', 'toc') # # Setup the timer # if sys.version_info >= (3,3): # perf_counter is guaranteed to be monotonic and the most accurate timer _time_source = time.perf_counter else: # On old Pythons, clock() is more accurate than time() on Windows # (.35us vs 15ms), but time() is more accurate than clock() on Linux # (1ns vs 1us). It is unfortunate that time() is not monotonic, but # since the TicTocTimer is used for (potentially very accurate) # timers, we will sacrifice monotonicity on Linux for resolution. if sys.platform.startswith('win'): _time_source = time.clock else: _time_source = time.time class TicTocTimer(object): """A class to calculate and report elapsed time. Examples: >>> from pyutilib.misc.timing import TicTocTimer >>> timer = TicTocTimer() >>> timer.tic('starting timer') # starts the elapsed time timer (from 0) >>> # ... do task 1 >>> timer.toc('task 1') # prints the elapsed time for task 1 If no ostream or logger is provided, then output is printed to sys.stdout Args: ostream (FILE): an optional output stream to print the timing information logger (Logger): an optional output stream using the python logging package. Note: timing logged using logger.info """ def __init__(self, ostream=None, logger=None): self._lastTime = self._loadTime = _time_source() self._ostream = ostream self._logger = logger self._start_count = 0 self._cumul = 0 def tic(self, msg=None, ostream=None, logger=None): """Reset the tic/toc delta timer. This resets the reference time from which the next delta time is calculated to the current time. Args: msg (str): The message to print out. If :const:`None` (default), then prints out "Resetting the tic/toc delta timer"; if it evaluates to :const:`False` (:const:`0`, :const:`False`, :const:`""`) then no message is printed. ostream (FILE): an optional output stream (overrides the ostream provided when the class was constructed). logger (Logger): an optional output stream using the python logging package (overrides the ostream provided when the class was constructed). Note: timing logged using logger.info """ self._lastTime = _time_source() if msg is None: msg = "Resetting the tic/toc delta timer" if msg: self.toc(msg=msg, delta=False, ostream=ostream, logger=logger) def toc(self, msg=None, delta=True, ostream=None, logger=None): """Print out the elapsed time. This resets the reference time from which the next delta time is calculated to the current time. Args: msg (str): The message to print out. If :const:`None` (default), then print out the file name, line number, and function that called this method; if it evaluates to :const:`False` (:const:`0`, :const:`False`, :const:`""`) then no message is printed. delta (bool): print out the elapsed wall clock time since the last call to :meth:`tic` or :meth:`toc` (:const:`True` (default)) or since the module was first loaded (:const:`False`). ostream (FILE): an optional output stream (overrides the ostream provided when the class was constructed). logger (Logger): an optional output stream using the python logging package (overrides the ostream provided when the class was constructed). Note: timing logged using logger.info """ if msg is None: msg = 'File "%s", line %s in %s' % \ traceback.extract_stack(limit=2)[0][:3] now = _time_source() if self._start_count or self._lastTime is None: ans = self._cumul if self._lastTime: ans += _time_source() - self._lastTime if msg: msg = "[%8.2f|%4d] %s\n" % (ans, self._start_count, msg) elif delta: ans = now - self._lastTime self._lastTime = now if msg: msg = "[+%7.2f] %s\n" % (ans, msg) else: ans = now - self._loadTime if msg: msg = "[%8.2f] %s\n" % (ans, msg) if msg: if ostream is None: ostream = self._ostream if ostream is None and logger is None: ostream = sys.stdout if ostream is not None: ostream.write(msg) if logger is None: logger = self._logger if logger is not None: logger.info(msg) return ans def stop(self): try: delta = _time_source() - self._lastTime except TypeError: if self._lastTime is None: raise RuntimeError( "Stopping a TicTocTimer that was already stopped") raise self._cumul += delta self._lastTime = None return delta def start(self): if self._lastTime: self.stop() self._start_count += 1 self._lastTime = _time_source() _globalTimer = TicTocTimer() tic = _globalTimer.tic toc = _globalTimer.toc class _HierarchicalHelper(object): def __init__(self): self.tic_toc = TicTocTimer() self.timers = dict() self.total_time = 0 self.n_calls = 0 def start(self): self.n_calls += 1 self.tic_toc.start() def stop(self): self.total_time += self.tic_toc.stop() def to_str(self, indent, stage_identifier_lengths): s = '' if len(self.timers) > 0: underline = indent + '-' * (sum(stage_identifier_lengths) + 36) + '\n' s += underline name_formatter = '{name:<' + str(sum(stage_identifier_lengths)) + '}' other_time = self.total_time sub_stage_identifier_lengths = stage_identifier_lengths[1:] for name, timer in self.timers.items(): if self.total_time > 0: _percent = timer.total_time / self.total_time * 100 else: _percent = float('nan') s += indent s += ( name_formatter + '{ncalls:>9d} {cumtime:>9.3f} ' '{percall:>9.3f} {percent:>6.1f}\n' ).format( name=name, ncalls=timer.n_calls, cumtime=timer.total_time, percall=timer.total_time/timer.n_calls, percent=_percent ) s += timer.to_str( indent=indent + ' '*stage_identifier_lengths[0], stage_identifier_lengths=sub_stage_identifier_lengths) other_time -= timer.total_time if self.total_time > 0: _percent = other_time / self.total_time * 100 else: _percent = float('nan') s += indent s += ( name_formatter + '{ncalls:>9} {cumtime:>9.3f} ' '{percall:>9} {percent:>6.1f}\n' ).format( name='other', ncalls='n/a', cumtime=other_time, percall='n/a', percent=_percent ) s += underline.replace('-', '=') return s class HierarchicalTimer(object): """A class for hierarchical timing. Examples -------- >>> import time >>> from pyutilib.misc.timing import HierarchicalTimer >>> timer = HierarchicalTimer() >>> timer.start('all') >>> time.sleep(0.2) >>> for i in range(10): ... timer.start('a') ... time.sleep(0.1) ... for i in range(5): ... timer.start('aa') ... time.sleep(0.01) ... timer.stop('aa') ... timer.start('ab') ... timer.stop('ab') ... timer.stop('a') ... >>> for i in range(10): ... timer.start('b') ... time.sleep(0.02) ... timer.stop('b') ... >>> timer.stop('all') >>> print(timer) Identifier ncalls cumtime percall % --------------------------------------------------- all 1 2.248 2.248 100.0 ---------------------------------------------- a 10 1.787 0.179 79.5 ----------------------------------------- aa 50 0.733 0.015 41.0 ab 10 0.000 0.000 0.0 other n/a 1.055 n/a 59.0 ========================================= b 10 0.248 0.025 11.0 other n/a 0.213 n/a 9.5 ============================================== =================================================== The columns are: ncalls : The number of times the timer was started and stopped cumtime: The cumulative time (in seconds) the timer was active (started but not stopped) percall: cumtime (in seconds) / ncalls % : This is cumtime of the timer divided by cumtime of the parent timer times 100 >>> print('a total time: %f' % timer.get_total_time('all.a')) a total time: 1.902037 >>> print('ab num calls: %d' % timer.get_num_calls('all.a.ab')) ab num calls: 10 >>> print('aa %% time: %f' % timer.get_relative_percent_time('all.a.aa')) aa % time: 44.144148 >>> print('aa %% total: %f' % timer.get_total_percent_time('all.a.aa')) aa % total: 35.976058 Internal Workings ----------------- The HierarchicalTimer use a stack to track which timers are active at any point in time. Additionally, each timer has a dictionary of timers for its children timers. Consider >>> timer = HierarchicalTimer() >>> timer.start('all') >>> timer.start('a') >>> timer.start('aa') After the above code is run, self.stack will be ['all', 'a', 'aa'] and self.timers will have one key, 'all' and one value which will be a _HierarchicalHelper. The _HierarchicalHelper has its own timers dictionary: {'a': _HierarchicalHelper} and so on. This way, we can easily access any timer with something that looks like the stack. The logic is recursive (although the code is not). """ def __init__(self): self.stack = list() self.timers = dict() def _get_timer(self, identifier, should_exist=False): """ This method gets the timer associated with the current state of self.stack and the specified identifier. Parameters ---------- identifier: str The name of the timer should_exist: bool The should_exist is True, and the timer does not already exist, an error will be raised. If should_exist is False, and the timer does not already exist, a new timer will be made. Returns ------- timer: _HierarchicalHelper """ parent = self._get_timer_from_stack(self.stack) if identifier in parent.timers: return parent.timers[identifier] else: if should_exist: raise RuntimeError( 'Could not find timer {0}'.format( '.'.join(self.stack + [identifier]))) parent.timers[identifier] = _HierarchicalHelper() return parent.timers[identifier] def start(self, identifier): """ Start incrementing the timer identified with identifier Parameters ---------- identifier: str The name of the timer """ timer = self._get_timer(identifier) timer.start() self.stack.append(identifier) def stop(self, identifier): """ Stop incrementing the timer identified with identifier Parameters ---------- identifier: str The name of the timer """ if identifier != self.stack[-1]: raise ValueError( str(identifier) + ' is not the currently active timer. ' 'The only timer that can currently be stopped is ' + '.'.join(self.stack)) self.stack.pop() timer = self._get_timer(identifier, should_exist=True) timer.stop() def _get_identifier_len(self): stage_timers = list(self.timers.items()) stage_lengths = list() while len(stage_timers) > 0: new_stage_timers = list() max_len = 0 for identifier, timer in stage_timers: new_stage_timers.extend(timer.timers.items()) if len(identifier) > max_len: max_len = len(identifier) stage_lengths.append(max(max_len, len('other'))) stage_timers = new_stage_timers return stage_lengths def __str__(self): stage_identifier_lengths = self._get_identifier_len() name_formatter = '{name:<' + str(sum(stage_identifier_lengths)) + '}' s = ( name_formatter + '{ncalls:>9} {cumtime:>9} ' '{percall:>9} {percent:>6}\n').format( name='Identifier', ncalls='ncalls', cumtime='cumtime', percall='percall', percent='%') underline = '-' * (sum(stage_identifier_lengths) + 36) + '\n' s += underline sub_stage_identifier_lengths = stage_identifier_lengths[1:] for name, timer in self.timers.items(): s += ( name_formatter + '{ncalls:>9d} {cumtime:>9.3f} ' '{percall:>9.3f} {percent:>6.1f}\n').format( name=name, ncalls=timer.n_calls, cumtime=timer.total_time, percall=timer.total_time/timer.n_calls, percent=self.get_total_percent_time(name)) s += timer.to_str( indent=' '*stage_identifier_lengths[0], stage_identifier_lengths=sub_stage_identifier_lengths) s += underline.replace('-', '=') return s def reset(self): """ Completely reset the timer. """ self.stack = list() self.timers = dict() def _get_timer_from_stack(self, stack): """ This method gets the timer associated with stack. Parameters ---------- stack: list of str A list of identifiers. Returns ------- timer: _HierarchicalHelper """ tmp = self for i in stack: tmp = tmp.timers[i] return tmp def get_total_time(self, identifier): """ Parameters ---------- identifier: str The full name of the timer including parent timers separated with dots. Returns ------- total_time: float The total time spent with the specified timer active. """ stack = identifier.split('.') timer = self._get_timer_from_stack(stack) return timer.total_time def get_num_calls(self, identifier): """ Parameters ---------- identifier: str The full name of the timer including parent timers separated with dots. Returns ------- num_calss: int The number of times start was called for the specified timer. """ stack = identifier.split('.') timer = self._get_timer_from_stack(stack) return timer.n_calls def get_relative_percent_time(self, identifier): """ Parameters ---------- identifier: str The full name of the timer including parent timers separated with dots. Returns ------- percent_time: float The percent of time spent in the specified timer relative to the timer's immediate parent. """ stack = identifier.split('.') timer = self._get_timer_from_stack(stack) parent = self._get_timer_from_stack(stack[:-1]) if parent is self: return self.get_total_percent_time(identifier) else: if parent.total_time > 0: return timer.total_time / parent.total_time * 100 else: return float('nan') def get_total_percent_time(self, identifier): """ Parameters ---------- identifier: str The full name of the timer including parent timers separated with dots. Returns ------- percent_time: float The percent of time spent in the specified timer relative to the total time in all timers. """ stack = identifier.split('.') timer = self._get_timer_from_stack(stack) total_time = 0 for _timer in self.timers.values(): total_time += _timer.total_time if total_time > 0: return timer.total_time / total_time * 100 else: return float('nan') pyutilib-6.0.0/pyutilib/misc/twzzle.py000066400000000000000000000037511367314503500201000ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # # Class to encapsulate a progress indicator __all__ = ['progress'] import sys import time import unittest class progressException(Exception): 'Error to raise for any recursive problem.' class progress: def __init__(self, period=1): self._twissler = ["|", "/", "-", "\\", "|"] self._state = 0 self._period = period self._ctr = period def getStart(self): sys.stdout.write('\t[ ') # include 2 spaces for the twissler sys.stdout.flush() def getStart(self, text): sys.stdout.write('\t %s [ ' % (text)) # include 2 spaces for the twissler sys.stdout.flush() def moveOn(self): try: self._ctr += 1 if self._ctr <= self._period: return self._ctr = 1 self._state += 1 if self._state >= 5: self._state = 1 sys.stdout.write( chr(8) + chr(8) + self._twissler[self._state] + ']') sys.stdout.flush() except: raise progressException('failed to progress') class TestCase(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testProgress(self): p = progress() p.getStart("HERE") for a in range(0, 10, 1): p.moveOn() time.sleep(0.2) if __name__ == '__main__': widgetTestSuite = unittest.TestSuite() widgetTestSuite.addTest(TestCase("testProgress")) runner = unittest.TextTestRunner() runner.run(widgetTestSuite) pyutilib-6.0.0/pyutilib/misc/visitor.py000066400000000000000000000255641367314503500202460ustar00rootroot00000000000000from collections import deque class SimpleVisitor(object): def visit(self, node): #pragma: no cover """ Visit a node in a tree and perform some operation on it. This method should be over-written by a user that is creating a sub-class. Args: node: a node in a tree Returns: nothing """ pass def children(self, node): """ Return the children for a node in a tree. This method has a default implementation, but this implementation will likely be redefined to reflect the tree data structures used for a specific application. Args: node: a node in a tree Returns: A list of children of the specified node. """ return node.children def is_leaf(self, node): """ Return :const:`True` if the node has no children. Args: node: a node in a tree Returns: :const:`True` if this node has no children, and :const:`False` otherwise """ return len(node.children) == 0 def finalize(self): #pragma: no cover """ Return the "final value" of the search. The default implementation returns :const:`None`, because the traditional visitor pattern does not return a value. Returns: The final value after the search. Default is :const:`None`. """ pass def bfs(self, node): """ Perform breadth-first search starting at a node. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ dq = deque([node]) while dq: current = dq.popleft() self.visit(current) if not self.is_leaf(current): dq.extend(self.children(current)) return self.finalize() def xbfs(self, node): """ Perform breadth-first search starting at a node, except that leaf nodes are immediately visited. Immediately visiting leaf nodes eliminates storing and retrieving leaf nodes, which is an expense that may not be necessary if the search order can be changed from the standard BFS. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ dq = deque([node]) while dq: current = dq.popleft() self.visit(current) for c in self.children(current): if self.is_leaf(c): self.visit(c) else: dq.append(c) return self.finalize() def dfs_preorder(self, node): """ Perform depth-first search starting at a node, where nodes are visited before their children. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ dq = deque([node]) while dq: current = dq.pop() self.visit(current) if not self.is_leaf(current): for c in reversed(self.children(current)): dq.append(c) return self.finalize() dfs = dfs_preorder def dfs_postorder(self, node): """ Perform depth-first search starting at a node, where nodes are visited after their children. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ expanded = set() dq = deque([node]) while dq: current = dq[-1] if id(current) in expanded: dq.pop() self.visit(current) else: for c in reversed(self.children(current)): dq.append(c) expanded.add(id(current)) return self.finalize() def dfs_inorder(self, node): """ Perform depth-first search starting at a root node for a binary tree, where a node is visited after the left child and before the right child. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ expanded = set() dq = deque([node]) while dq: current = dq.pop() if id(current) in expanded or self.is_leaf(current): self.visit(current) else: first = True for c in reversed(self.children(current)): if first: first = False else: dq.append(current) dq.append(c) expanded.add(id(current)) return self.finalize() class ValueVisitor(object): def visit(self, node, values): #pragma: no cover """ Visit a node in a tree and compute its value using the values of its children. This method should be over-written by a user that is creating a sub-class. Args: node: a node in a tree values: a list of values of this node's children Returns: The *value* for this node, which is computed using :attr:`values` """ pass def children(self, node): """ Return the children for a node in a tree. This method has a default implementation, but this implementation will likely be redefined to reflect the tree data structures used for a specific application. Args: node: a node in a tree Returns: A list of children of the specified node. """ return node.children def is_leaf(self, node): """ Return :const:`True` if the node has no children. Args: node: a node in a tree Returns: :const:`True` if this node has no children, and :const:`False` otherwise """ return len(node.children) == 0 def finalize(self, ans): #pragma: no cover """ Return the "final value" of the search. The default implementation returns the value of the initial node (aka the root node), because this visitor pattern computes and returns value for each node to enable the computation of this value. Args: ans: The final value computed by the search method. Returns: The final value after the search. Defaults to simply returning :attr:`ans`. """ return ans def visiting_potential_leaf(self, node): """ Visit a node and return its value if it is a leaf. Args: node: a node in a tree Returns: A tuple: ``(flag, value)``. If ``flag`` is False, then the node is not a leaf and ``value`` is :const:`None`. Otherwise, ``value`` is used to compute the value of the parent node. """ # # This default implementation relise on the is_leaf() and visit() # methods. While this provides a simple implementation, # in practice a more efficient implementation would # ignore the is_leaf() method and implement this # method separately for a specific application. # if not self.is_leaf(node): return False, None return True, self.visit(node, None) def dfs_postorder_deque(self, node): """ Perform depth-first search starting at a node, where nodes are visited after their children. This method uses a deque to manage the set of nodes that need to be explored. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ flag, value = self.visiting_potential_leaf(node) if flag: return value _values = [[]] expanded = set() dq = deque([node]) while dq: current = dq[-1] if id(current) in expanded: dq.pop() values = _values.pop() _values[-1].append( self.visit(current, values) ) continue flag, value = self.visiting_potential_leaf(current) if flag: _values[-1].append(value) dq.pop() else: for c in reversed(self.children(current)): dq.append(c) expanded.add(id(current)) _values.append( [] ) return self.finalize(_values[-1][0]) def dfs_postorder_stack(self, node): """ Perform depth-first search starting at a node, where nodes are visited after their children. This method uses a stack to manage the set of nodes that need to be explored. Args: node: a node in a tree Returns: The value of the :func:`finalize` method. """ flag, value = self.visiting_potential_leaf(node) if flag: return value _stack = [ (node, self.children(node), 0, len(self.children(node)), [])] # # Iterate until the stack is empty # # Note: 1 is faster than True for Python 2.x # while 1: # # Get the top of the stack # _obj Current expression object # _argList The arguments for this expression objet # _idx The current argument being considered # _len The number of arguments # _obj, _argList, _idx, _len, _result = _stack.pop() # # Iterate through the arguments # while _idx < _len: _sub = _argList[_idx] _idx += 1 flag, value = self.visiting_potential_leaf(_sub) if flag: _result.append( value ) else: # # Push an expression onto the stack # _stack.append( (_obj, _argList, _idx, _len, _result) ) _obj = _sub _argList = self.children(_sub) _idx = 0 _len = len(_argList) _result = [] # # Process the current node # ans = self.visit(_obj, _result) if _stack: # # "return" the recursion by putting the return value on the end of the results stack # _stack[-1][-1].append( ans ) else: return self.finalize(ans) pyutilib-6.0.0/pyutilib/misc/xml_utils.py000066400000000000000000000047751367314503500205700ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['get_xml_text', 'escape', 'compare_xml_files'] from xml.dom import Node import sys def get_xml_text(node): nodetext = "" for child in node.childNodes: if child.nodeType == Node.TEXT_NODE: nodetext = nodetext + child.nodeValue nodetext = str(nodetext) return nodetext.strip() if sys.version_info < (3, 0): _identitymap = "".join([chr(n) for n in range(256)]) _delchars = _identitymap[:9] + chr(11) + chr(12) + _identitymap[ 14:31] + chr(124) def escape(s): """Replace special characters '&', "'", '<', '>' and '"' by XML entities.""" s = s.replace("&", "&") # Must be done first! s = s.replace("<", "<") s = s.replace(">", ">") s = s.translate(_identitymap, _delchars) return s else: _tmap = {} for n in range(256): if n < 9 or (n >= 14 and n < 31) or n in (11, 12, 124): _tmap[chr(n)] = None def escape(s): """Replace special characters '&', "'", '<', '>' and '"' by XML entities.""" s = s.replace("&", "&") # Must be done first! s = s.replace("<", "<") s = s.replace(">", ">") s = s.translate(_tmap) return s def compare_xml_files(baseline_fname, output_fname, tolerance=0.0, baseline_begin='', baseline_end='', output_begin='', output_end=None, exact=True): from pyutilib.misc.pyyaml_util import extract_subtext, compare_repn from pyutilib.misc.xmltodict import parse # INPUT = open(baseline_fname, 'r') baseline = extract_subtext( INPUT, begin_str=baseline_begin, end_str=baseline_end) INPUT.close() # INPUT = open(output_fname, 'r') output = extract_subtext(INPUT, begin_str=output_begin, end_str=output_end) INPUT.close() # baseline_repn = parse(baseline) output_repn = parse(output) return compare_repn( baseline_repn, output_repn, tolerance=tolerance, exact=exact) pyutilib-6.0.0/pyutilib/misc/xmltodict.py000066400000000000000000000144671367314503500205560ustar00rootroot00000000000000""" Copyright (C) 2012 Martin Blech and individual contributors. 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. """ from xml.parsers import expat from xml.sax.saxutils import XMLGenerator from xml.sax.xmlreader import AttributesImpl try: # pragma no cover from cStringIO import StringIO except ImportError: # pragma no cover try: from StringIO import StringIO except ImportError: from io import StringIO try: # pragma no cover #OrderedDict = dict from collections import OrderedDict except ImportError: # pragma no cover from ordereddict import OrderedDict try: # pragma no cover _basestring = basestring except NameError: # pragma no cover _basestring = str try: # pragma no cover _unicode = unicode except NameError: # pragma no cover _unicode = str from pyutilib.misc.pyyaml_util import yaml_eval __author__ = 'Martin Blech' __version__ = '0.2' __license__ = 'MIT' class ParsingInterrupted(Exception): pass class _DictSAXHandler: def __init__(self, item_depth=0, item_callback=lambda *args: True, xml_attribs=True, attr_prefix='@', cdata_key='#text', force_cdata=False, cdata_separator=''): self.path = [] self.stack = [] self.data = None self.item = None self.item_depth = item_depth self.xml_attribs = xml_attribs self.item_callback = item_callback self.attr_prefix = attr_prefix self.cdata_key = cdata_key self.force_cdata = force_cdata self.cdata_separator = cdata_separator def startElement(self, name, attrs): self.path.append((name, attrs or None)) if len(self.path) > self.item_depth: self.stack.append((self.item, self.data)) attrs = OrderedDict((self.attr_prefix + key, yaml_eval(value)) for (key, value) in attrs.items()) self.item = self.xml_attribs and attrs or None self.data = None def endElement(self, name): if len(self.path) == self.item_depth: item = self.item if item is None: item = self.data should_continue = self.item_callback(self.path, item) if not should_continue: raise ParsingInterrupted() if len(self.stack): item, data = self.item, self.data self.item, self.data = self.stack.pop() if data and self.force_cdata and item is None: item = OrderedDict() if item is not None: if data: item[self.cdata_key] = data self.push_data(name, item) else: self.push_data(name, data) else: self.item = self.data = None self.path.pop() def characters(self, data): if data.strip(): if not self.data: self.data = data else: self.data += self.cdata_separator + data def push_data(self, key, data): if self.item is None: self.item = OrderedDict() try: value = self.item[key] if isinstance(value, list): value.append(data) else: self.item[key] = [value, yaml_eval(data)] except KeyError: self.item[key] = yaml_eval(data) def parse(xml_input, *args, **kwargs): """Parse the given XML input and convert it into a dictionary. `xml_input` can either be a `string` or a file-like object. If `xml_attribs` is `True`, element attributes are put in the dictionary among regular child elements, using `@` as a prefix to avoid collisions. If set to `False`, they are just ignored. Simple example:: >>> doc = xmltodict.parse(\"\"\" ... ... 1 ... 2 ... ... \"\"\") >>> doc['a']['@prop'] u'x' >>> doc['a']['b'] [u'1', u'2'] If `item_depth` is `0`, the function returns a dictionary for the root element (default behavior). Otherwise, it calls `item_callback` every time an item at the specified depth is found and returns `None` in the end (streaming mode). The callback function receives two parameters: the `path` from the document root to the item (name-attribs pairs), and the `item` (dict). If the callback's return value is false-ish, parsing will be stopped with the :class:`ParsingInterrupted` exception. Streaming example:: >>> def handle(path, item): ... print 'path:%s item:%s' % (path, item) ... return True ... >>> xmltodict.parse(\"\"\" ... ... 1 ... 2 ... \"\"\", item_depth=2, item_callback=handle) path:[(u'a', {u'prop': u'x'}), (u'b', None)] item:1 path:[(u'a', {u'prop': u'x'}), (u'b', None)] item:2 """ handler = _DictSAXHandler(*args, **kwargs) parser = expat.ParserCreate() parser.StartElementHandler = handler.startElement parser.EndElementHandler = handler.endElement parser.CharacterDataHandler = handler.characters if hasattr(xml_input, 'read'): parser.ParseFile(xml_input) else: parser.Parse(xml_input, True) return handler.item pyutilib-6.0.0/pyutilib/ply/000077500000000000000000000000001367314503500160325ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/ply/__init__.py000066400000000000000000000010141367314503500201370ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ from pyutilib.ply.ply import ply_init, t_newline, t_ignore, t_COMMENT, _find_column, p_error pyutilib-6.0.0/pyutilib/ply/ply.py000066400000000000000000000032341367314503500172120ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['ply_init', 't_newline', 't_ignore', 't_COMMENT', '_find_column', 'p_error'] # # Utility functions that are used with PLY # def ply_init(data): global _parsedata _parsedata = data global _init _init = True def t_newline(t): r'[\n]+' global _init if _init: t.lexer.lineno = len(t.value) _init = False else: t.lexer.lineno += len(t.value) # Ignore space and tab t_ignore = " \t\r" # Discard comments def t_COMMENT(t): r'\#[^\n]*' pass # Tokens in comments are discarded. # # Compute column. # input is the input text string # token is a token instance # def _find_column(input, token): i = token.lexpos while i > 0: if input[i] == '\n': break i -= 1 column = (token.lexpos - i) + 1 return column def p_error(p): if p is None: tmp = "Syntax error at end of file." else: tmp = "Syntax error at token " if p.type == "": tmp = tmp + "''" else: tmp = tmp + str(p.type) tmp = tmp + " with value '" + str(p.value) + "'" tmp = tmp + " in line " + str(p.lineno) tmp = tmp + " at column " + str(_find_column(_parsedata, p)) raise IOError(tmp) pyutilib-6.0.0/pyutilib/pyro/000077500000000000000000000000001367314503500162175ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/pyro/__init__.py000066400000000000000000000072151367314503500203350ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ Python modules that use Pyro to manage a generic task queue. These modules were adapted from Pyro's distributed2 example. """ from pyutilib.pyro.util import get_nameserver, get_dispatchers, shutdown_pyro_components, using_pyro3, using_pyro4, Pyro from pyutilib.pyro.task import Task, TaskProcessingError from pyutilib.pyro.client import Client from pyutilib.pyro.worker import TaskWorker, MultiTaskWorker, TaskWorkerServer from pyutilib.pyro.dispatcher import Dispatcher, DispatcherServer from pyutilib.pyro.nameserver import start_ns, start_nsc # # Pyro3 License # # #Pyro Software License (MIT license): # #Pyro is Copyright (c) by Irmen de Jong. # #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. # #This is the "MIT Software License" which is Open #Source Initiative (OSI) certified, and GPL-compatible. See #http://www.opensource.org/licenses/mit-license.php (it strongly resembles #the modified BSD license). # # # Pyro4 License # # #Pyro - Python Remote Objects #Software License, copyright, and disclaimer # # Pyro is Copyright (c) by Irmen de Jong (irmen@razorvine.net). # # 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. # # #This is the "MIT Software License" which is OSI-certified, and GPL-compatible. #See http://www.opensource.org/licenses/mit-license.php pyutilib-6.0.0/pyutilib/pyro/client.py000066400000000000000000000142771367314503500200620ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['Client'] import sys import os, socket import time from six import iteritems import pyutilib.pyro.util from pyutilib.pyro.util import get_nameserver, using_pyro3, using_pyro4 from pyutilib.pyro.util import Pyro as _pyro if sys.version_info >= (3, 0): xrange = range import queue as Queue else: import Queue class Client(object): def __init__(self, group=":PyUtilibServer", type=None, host=None, port=None, num_dispatcher_tries=30, caller_name="Client", dispatcher=None): if _pyro is None: raise ImportError("Pyro or Pyro4 is not available") self.type = type self.id = 0 # Deprecated in Pyro3 # Removed in Pyro4 if using_pyro3: _pyro.core.initClient() self.ns = None self.CLIENTNAME = "%d@%s" % (os.getpid(), socket.gethostname()) self.dispatcher = None if dispatcher is None: self.ns = get_nameserver( host=host, port=port, caller_name=caller_name) if self.ns is None: raise RuntimeError("Client failed to locate Pyro name " "server on the network!") print('Client attempting to find Pyro dispatcher object...') self.URI = None cumulative_sleep_time = 0.0 for i in xrange(0, num_dispatcher_tries): dispatchers = pyutilib.pyro.util.get_dispatchers(ns=self.ns) for (name, uri) in dispatchers: self.URI = uri print("Dispatcher Object URI: " + str(self.URI)) break if self.URI is not None: break sleep_interval = 10.0 print("Client failed to find dispatcher object from name " "server after %d attempts and %5.2f seconds - trying " "again in %5.2f seconds." % (i + 1, cumulative_sleep_time, sleep_interval)) time.sleep(sleep_interval) cumulative_sleep_time += sleep_interval if self.URI is None: print('Client could not find dispatcher object - giving up') raise SystemExit # connect to the dispatcher if using_pyro3: self.dispatcher = _pyro.core.getProxyForURI(self.URI) else: self.dispatcher = _pyro.Proxy(self.URI) print("Connection to dispatch server established after %d " "attempts and %5.2f seconds - this is client: %s" % (i + 1, cumulative_sleep_time, self.CLIENTNAME)) # There is no need to retain the proxy connection to the # nameserver, so free up resources on the nameserver thread if using_pyro4: self.ns._pyroRelease() else: self.ns._release() else: assert port is None assert host is None self.dispatcher = dispatcher if using_pyro4: self.URI = self.dispatcher._pyroUri else: self.URI = self.dispatcher.URI print('Client assigned dispatcher with URI=%s' % (self.URI)) def close(self): if self.dispatcher is not None: if using_pyro4: self.dispatcher._pyroRelease() else: self.dispatcher._release() def clear_queue(self, override_type=None, verbose=False): task_type = override_type if (override_type is not None) else self.type if verbose: print("Clearing all tasks and results for " "type=" + str(task_type)) self.dispatcher.clear_queue(type=task_type) def add_tasks(self, tasks, verbose=False): for task_type in tasks: for task in tasks[task_type]: if task['id'] is None: self.id += 1 task['client'] = self.CLIENTNAME if verbose: print("Adding task " + str(task['id']) + " to dispatcher " "queue with type=" + str(task_type) + " - in bulk") self.dispatcher.add_tasks(tasks) def add_task(self, task, override_type=None, verbose=False): task_type = override_type if (override_type is not None) else self.type if task['id'] is None: self.id += 1 task['client'] = self.CLIENTNAME if verbose: print("Adding task " + str(task['id']) + " to dispatcher " "queue with type=" + str(task_type) + " - individually") self.dispatcher.add_task(task, type=task_type) def get_result(self, override_type=None, block=True, timeout=5): task_type = override_type if (override_type is not None) else self.type return self.dispatcher.get_result( type=task_type, block=block, timeout=timeout) def get_results(self, override_type=None, block=True, timeout=5): task_type = override_type if (override_type is not None) else self.type return self.dispatcher.get_results( [(task_type, block, timeout)])[task_type] def get_results_all_queues(self): return self.dispatcher.get_results_all_queues() def num_tasks(self, override_type=None): task_type = override_type if (override_type is not None) else self.type return self.dispatcher.num_tasks(type=task_type) def num_results(self, override_type=None): task_type = override_type if (override_type is not None) else self.type return self.dispatcher.num_results(type=override_type) def queues_with_results(self): return self.dispatcher.queues_with_results() pyutilib-6.0.0/pyutilib/pyro/dispatch_srvr.py000077500000000000000000000071761367314503500214620ustar00rootroot00000000000000#!/usr/bin/env python import sys from optparse import OptionParser import socket import pyutilib.pyro from pyutilib.pyro import Pyro as _pyro def main(): parser = OptionParser() parser.add_option( "--verbose", dest="verbose", help="Activate verbose output.", action="store_true", default=False) parser.add_option( "--max-allowed-connections", dest="max_allowed_connections", help=("Set the maximum number of proxy connections allowed to " "be made to this dispatcher. By default, the environment " "variable PYUTILIB_PYRO_MAXCONNECTIONS is used if present; " "otherwise, the default settings for Pyro or Pyro4 are used."), type="int", default=None) parser.add_option( "--worker-limit", dest="worker_limit", help=( "Set the maximum number of workers allowed to register " "with this dispatcher. By default, no limit is enforced. Note that " "whether or not this option is set, the maximum number of possible " "worker connections might be limited by other default Pyro settings " "(see --max-allowed-connections)."), type="int", default=None) parser.add_option( "--daemon-host", dest="daemon_host", metavar="HOST", help=("Hostname that the dispatcher daemon should bind on. " "The default is the current hostname."), default=socket.gethostname()) parser.add_option( "--daemon-port", dest="daemon_port", metavar="PORT", help="Port that the dispatcher daemon should bind on", type="int", default=0) parser.add_option( "-n", "--host", dest="nameserver_host", metavar="HOST", help="Hostname that the nameserver is bound on", default=None) parser.add_option( "-p", "--port", dest="nameserver_port", metavar="PORT", help="Port that the nameserver is bound on", type="int", default=None) parser.add_option( "--allow-multiple-dispatchers", dest="allow_multiple_dispatchers", help="Allow multiple dispatchers to run under the default nameserver group", default=False, action="store_true") options, args = parser.parse_args() # Handle the old syntax which was purly argument driven # e.g., verbose = False if len(args) == 2: nameserver_host = sys.argv[1] if nameserver_host == "None": nameserver_host = None verbose = bool(sys.argv[2]) print( "DEPRECATION WARNING: dispatch_srvr is now option driven (see dispatch_srvr --help)") elif len(args) == 1: nameserver_host = sys.argv[1] if nameserver_host == "None": nameserver_host = None print( "DEPRECATION WARNING: dispatch_srvr is now option driven (see dispatch_srvr --help)") else: nameserver_host = options.nameserver_host verbose = options.verbose if _pyro is None: raise ImportError("Pyro or Pyro4 is not available") return pyutilib.pyro.DispatcherServer( daemon_host=options.daemon_host, daemon_port=options.daemon_port, nameserver_host=nameserver_host, nameserver_port=options.nameserver_port, verbose=verbose, max_allowed_connections=options.max_allowed_connections, worker_limit=options.worker_limit, clear_group=not options.allow_multiple_dispatchers) if __name__ == '__main__': main() pyutilib-6.0.0/pyutilib/pyro/dispatcher.py000066400000000000000000000324731367314503500207300ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['Dispatcher', 'DispatcherServer'] import os import sys import uuid from collections import defaultdict from pyutilib.pyro.util import get_nameserver, using_pyro3, using_pyro4 from pyutilib.pyro.util import Pyro as _pyro from pyutilib.pyro.util import set_maxconnections, get_dispatchers if sys.version_info >= (3, 0): import queue as Queue else: import Queue from six import iteritems if using_pyro3: base = _pyro.core.ObjBase oneway = lambda method: method expose = lambda obj: obj elif using_pyro4: base = object oneway = _pyro.oneway expose = _pyro.expose else: base = object oneway = lambda method: method expose = lambda obj: obj def _clear_queue_threadsafe(q): while not q.empty(): try: q.get(False) except Queue.Empty: continue q.task_done() class Dispatcher(base): def __init__(self, **kwds): if _pyro is None: raise ImportError("Pyro or Pyro4 is not available") if using_pyro3: _pyro.core.ObjBase.__init__(self) self._task_queue = defaultdict(Queue.Queue) self._result_queue = defaultdict(Queue.Queue) self._verbose = kwds.pop("verbose", False) self._registered_workers = set() self._acquired_workers = set() self._worker_limit = kwds.pop("worker_limit", None) if self._verbose: print("Verbose output enabled...") # # One-way methods (Pyro4 only) # @oneway def release_acquired_workers(self, names): names = set(names) if not names.issubset(self._registered_workers): raise ValueError("List contains one or more worker names that " "were not registered") self._acquired_workers.difference_update(names) @oneway def unregister_worker(self, name): if name not in self._registered_workers: raise ValueError("Worker name '%s' has not been registered") if self._verbose: print("Unregistering worker with name: %s" % (name)) self._registered_workers.remove(name) @oneway def shutdown(self): print("Dispatcher received request to shut down - initiating...") if using_pyro3: self.getDaemon().shutdown() else: self._pyroDaemon.shutdown() @oneway def add_task(self, task, type=None): if self._verbose: print("Received request to add task=; queue type=" + str(type)) self._task_queue[type].put(task) # process a set of tasks in one shot - the input # is a dictionary from queue type (including None) # to a list of tasks to be added to that queue. @oneway def add_tasks(self, tasks): if self._verbose: print("Received request to add bulk task set. Task ids=%s" % (dict( (task_type, [task['id'] for task in tasks[task_type]]) for task_type in tasks))) for task_type in tasks: task_queue = self._task_queue[task_type] for task in tasks[task_type]: task_queue.put(task) @oneway def add_result(self, result, type=None): if self._verbose: print("Received request to add result with " "result=" + str(result) + "; queue type=" + str(type)) self._result_queue[type].put(result) # process a set of results in one shot - the input # is a dictionary from queue type (including None) # to a list of results to be added to that queue. @oneway def add_results(self, results): if self._verbose: print("Received request to add bulk result set for task ids=%s" % (dict((result_type, [result['id'] for result in results[result_type]]) for result_type in results))) for result_type in results: result_queue = self._result_queue[result_type] for result in results[result_type]: result_queue.put(result) # # Methods that do not return anything but are # not marked oneway for Pyro4 to avoid race conditions # def clear_queue(self, type=None): if self._verbose: print("Received request to clear task and result " "queues for queue type=" + str(type)) try: _clear_queue_threadsafe(self._task_queue[type]) except KeyError: pass try: _clear_queue_threadsafe(self._result_queue[type]) except KeyError: pass def clear_queues(self, types): for type in types: self.clear_queue(type=type) def clear_all_queues(self): self._task_queue = defaultdict(Queue.Queue) self._result_queue = defaultdict(Queue.Queue) def clear_task_queue(self, type=None): if self._verbose: print("Received request to clear task " "queue for queue type=" + str(type)) try: _clear_queue_threadsafe(self._task_queue[type]) except KeyError: pass def clear_task_queues(self, types): for type in types: self.clear_task_queue(type=type) def clear_all_task_queues(self): self._task_queue = defaultdict(Queue.Queue) def clear_result_queue(self, type=None): if self._verbose: print("Received request to clear result " "queue for queue type=" + str(type)) try: _clear_queue_threadsafe(self._result_queue[type]) except KeyError: pass def clear_result_queues(self, types): for type in types: self.clear_result_queue(type=type) def clear_all_result_queues(self): self._result_queue = defaultdict(Queue.Queue) # # Methods that do return something, so can't # be marked as oneway for Pyro4 # def acquire_available_workers(self): worker_names = self._registered_workers - self._acquired_workers self._acquired_workers.update(worker_names) return worker_names def register_worker(self, name): if name in self._registered_workers: raise ValueError("Worker name '%s' has already been registered") if (self._worker_limit is None) or \ (len(self._registered_workers) < self._worker_limit): self._registered_workers.add(name) if self._verbose: print("Registering worker %s with name: %s" % (len(self._registered_workers), name)) return True return False def get_task(self, type=None, block=True, timeout=5): if self._verbose: print("Received request to get a task from " "queue type=" + str(type) + "; block=" + str(block) + "; timeout=" + str(timeout) + " seconds") try: task = self._task_queue[type].get(block=block, timeout=timeout) return task except Queue.Empty: return None def get_tasks(self, type_block_timeout_list): if self._verbose: print("Received request to get tasks in bulk. " "Queue request types=" + str(type_block_timeout_list)) ret = {} for type, block, timeout in type_block_timeout_list: task_list = [] try: task_list.append(self._task_queue[type].get(block=block, timeout=timeout)) except Queue.Empty: pass else: while self._task_queue[type].qsize(): try: task_list.append(self._task_queue[type].get( block=block, timeout=timeout)) except Queue.Empty: pass if len(task_list) > 0: ret.setdefault(type, []).extend(task_list) return ret def get_result(self, type=None, block=True, timeout=5): if self._verbose: print("Received request to get a result from " "queue type=" + str(type) + "; block=" + str(block) + "; timeout=" + str(timeout)) try: return self._result_queue[type].get(block=block, timeout=timeout) except Queue.Empty: return None def get_results(self, type_block_timeout_list): if self._verbose: print("Received request to get results in bulk. " "Queue request types=" + str(type_block_timeout_list)) ret = {} for type_name, block, timeout in type_block_timeout_list: result_list = [] try: result_list.append(self._result_queue[type_name].get( block=block, timeout=timeout)) except Queue.Empty: pass else: while self._result_queue[type_name].qsize(): try: result_list.append(self._result_queue[type_name].get( block=block, timeout=timeout)) except Queue.Empty: pass if len(result_list) > 0: ret.setdefault(type_name, []).extend(result_list) return ret def num_tasks(self, type=None): if self._verbose: print("Received request for number of tasks in " "queue with type=" + str(type)) return self._task_queue[type].qsize() def num_results(self, type=None): if self._verbose: print("Received request for number of results in " "queue with type=" + str(type)) return self._result_queue[type].qsize() def queues_with_results(self): if self._verbose: print("Received request for the set of queues with results") results = [] # # Iterate over a copy of the contents of the queue, since # the queue may change while iterating. # for queue_name, result_queue in list(self._result_queue.items()): if result_queue.qsize() > 0: results.append(queue_name) return results def get_results_all_queues(self): if self._verbose: print("Received request to obtain all available " "results from all queues") results = [] # # Iterate over a copy of the contents of the queue, since # the queue may change while iterating. # for queue_name, result_queue in list(self._result_queue.items()): while result_queue.qsize() > 0: try: results.append(result_queue.get(block=False, timeout=0)) except Queue.Empty: pass return results Dispatcher = expose(Dispatcher) def DispatcherServer(group=":PyUtilibServer", daemon_host=None, daemon_port=0, nameserver_host=None, nameserver_port=None, verbose=False, max_allowed_connections=None, worker_limit=None, clear_group=True): set_maxconnections(max_allowed_connections=max_allowed_connections) # # main program # ns = get_nameserver( host=nameserver_host, port=nameserver_port, caller_name="Dispatcher") if clear_group: for name, uri in get_dispatchers(group=group, ns=ns): print("Multiple dispatchers not allowed.") print("dispatch_srvr is shutting down...") return 1 if using_pyro3: daemon = _pyro.core.Daemon(host=daemon_host, port=daemon_port) daemon.useNameServer(ns) else: daemon = _pyro.Daemon(host=daemon_host, port=daemon_port) if using_pyro3: try: ns.createGroup(group) except _pyro.errors.NamingError: pass try: ns.createGroup(group + ".dispatcher") except _pyro.errors.NamingError: pass if clear_group: try: ns.unregister(group + ".dispatcher") except _pyro.errors.NamingError: pass else: if clear_group: try: ns.remove(group + ".dispatcher") except _pyro.errors.NamingError: pass disp = Dispatcher(verbose=verbose, worker_limit=worker_limit) proxy_name = group + ".dispatcher." + str(uuid.uuid4()) if using_pyro3: uri = daemon.connect(disp, proxy_name) else: uri = daemon.register(disp, proxy_name) ns.register(proxy_name, uri) # There is no need to retain the proxy connection to the # nameserver, so free up resources on the nameserver thread if using_pyro4: ns._pyroRelease() else: ns._release() print("Dispatcher is ready.") return daemon.requestLoop() pyutilib-6.0.0/pyutilib/pyro/nameserver.py000066400000000000000000000026501367314503500207430ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ('start_ns', 'start_nsc') import sys import socket from pyutilib.pyro.util import set_maxconnections, Pyro, using_pyro4 def start_ns(max_allowed_connections=None): if Pyro is not None: set_maxconnections(max_allowed_connections=max_allowed_connections) args = [] for val in sys.argv[1:]: if val.startswith("-n") or val.startswith("--host"): args = list(sys.argv[1:]) break else: # execute when no break occurs args = list(sys.argv[1:]) args.append("-n") args.append(str(socket.gethostname())) Pyro.naming.main(args) else: raise ImportError("Pyro or Pyro4 is not installed") def start_nsc(): if Pyro is not None: if using_pyro4: import Pyro4 import Pyro4.nsc else: import Pyro import Pyro.nsc Pyro.nsc.main(sys.argv[1:]) else: raise ImportError("Pyro or Pyro4 is not installed") pyutilib-6.0.0/pyutilib/pyro/task.py000066400000000000000000000057001367314503500175350ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ('Task', 'TaskProcessingError') from pyutilib.pyro.util import using_pyro4 # # Task returns a native Python data type. This provides more # more flexibility in the choice of serialization schemes than # a user-defined class. Also, the default serializer used by Pyro4 # ('serpent') does not support most user defined classes. The # serializer can be set to 'pickle' by the user if they need # this functionality (see: Pyro4 docs). # def Task(id=None, data=None, generateResponse=True): return {'id': id, 'data': data, 'result': None, 'generateResponse': generateResponse, 'processedBy': None, 'client': None, 'type': None} # # A simple yet identifiable type that indicates # when an exception is encountered during task # processing by a worker. We provide custome # serialization hooks # class TaskProcessingError(Exception): def __init__(self, message): super(TaskProcessingError, self).__init__(message) # # register the special serialization hooks because # the default Pyro4 serializer (Serpent) can not deal # with custom classes # # # Note: We can use this same mechanism to allow Task to be # re-implemented as a custom class. HOWEVER, # TaskProcessingError is designed to be returned on the result # "slot" of Task, and when I've attempted to register # (de)serialization hooks for both Task and TaskProcessingError, # the end result is that the TaskProcessingError # de-serialization hook never gets called (leaving it in its # serialized dict form on the deserialized Task object). This # defeats the purpose of creating a TaskProcessingError type. # Perhaps there is a way around this, but for now I am giving # priority to having an error type that can be transmitted # for all serializers in both Pyro and Pyro4 (over making # Task a class again). # if using_pyro4: import Pyro4 from Pyro4.util import SerializerBase # register hooks for TaskProcessingError def TaskProcessingError_to_dict(obj): return {"__class__": "pyutilib.pyro.task.TaskProcessingError", "message": obj.args[0]} def dict_to_TaskProcessingError(classname, d): return TaskProcessingError(d['message']) SerializerBase.register_class_to_dict(TaskProcessingError, TaskProcessingError_to_dict) SerializerBase.register_dict_to_class( "pyutilib.pyro.task.TaskProcessingError", dict_to_TaskProcessingError) pyutilib-6.0.0/pyutilib/pyro/util.py000066400000000000000000000273561367314503500175630ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ('get_nameserver', 'get_dispatchers', 'shutdown_pyro_components') import os import sys import time import random import socket # For now, default to using Pyro3 if available # otherwise, check for Pyro4 Pyro = None using_pyro3 = False using_pyro4 = False try: import Pyro import Pyro.core import Pyro.naming using_pyro3 = True using_pyro4 = False except: try: import Pyro4 import Pyro4.naming #Pyro4.config.SERIALIZERS_ACCEPTED.add('pickle') #Pyro4.config.SERIALIZER = 'pickle' Pyro = Pyro4 using_pyro3 = False using_pyro4 = True except: Pyro = None using_pyro3 = False using_pyro4 = False _pyro = Pyro if sys.version_info >= (3, 0): xrange = range import queue as Queue else: import Queue _connection_problem = None if using_pyro3: _connection_problem = _pyro.errors.ProtocolError elif using_pyro4: _connection_problem = _pyro.errors.TimeoutError def get_nameserver(host=None, port=None, num_retries=30, caller_name="Unknown"): if _pyro is None: raise ImportError("Pyro or Pyro4 is not available") timeout_upper_bound = 5.0 if not host is None: os.environ['PYRO_NS_HOSTNAME'] = host elif 'PYRO_NS_HOSTNAME' in os.environ: host = os.environ['PYRO_NS_HOSTNAME'] # Deprecated in Pyro3 # Removed in Pyro4 if using_pyro3: _pyro.core.initServer() ns = None for i in xrange(0, num_retries + 1): try: if using_pyro3: ns = _pyro.naming.NameServerLocator().getNS( host=host, port=port) else: ns = _pyro.locateNS(host=host, port=port) break except _pyro.errors.NamingError: pass except _connection_problem: # this can occur if the server is too busy. pass # we originally had a single sleep timeout value, hardcoded to 1 second. # the problem with this approach is that if a large number of concurrent # processes fail, then they will all re-attempt at roughly the same # time. causing more contention than is necessary / desirable. by randomizing # the sleep interval, we are hoping to distribute the number of clients # attempting to connect to the name server at any given time. # TBD: we should eventually read the timeout upper bound from an enviornment # variable - to support cases with a very large (hundreds to thousands) # number of clients. if i < num_retries: sleep_interval = random.uniform(1.0, timeout_upper_bound) print("%s failed to locate name server after %d attempts - " "trying again in %5.2f seconds." % (caller_name, i + 1, sleep_interval)) time.sleep(sleep_interval) if ns is None: print("%s could not locate nameserver (attempts=%d)" % (caller_name, num_retries + 1)) raise SystemExit return ns def get_dispatchers(group=":PyUtilibServer", host=None, port=None, num_dispatcher_tries=30, min_dispatchers=1, caller_name=None, ns=None): if ns is None: ns = get_nameserver(host=host, port=port, caller_name=caller_name) else: assert caller_name is None assert host is None assert port is None if ns is None: raise RuntimeError("Failed to locate Pyro name " "server on the network!") cumulative_sleep_time = 0.0 dispatchers = [] for i in xrange(0, num_dispatcher_tries): ns_entries = None if using_pyro3: for (name, uri) in ns.flatlist(): if name.startswith(":PyUtilibServer.dispatcher."): if (name, uri) not in dispatchers: dispatchers.append((name, uri)) elif using_pyro4: for name in ns.list(prefix=":PyUtilibServer.dispatcher."): uri = ns.lookup(name) if (name, uri) not in dispatchers: dispatchers.append((name, uri)) if len(dispatchers) >= min_dispatchers: break return dispatchers # # a utility for shutting down Pyro-related components, which at the # moment is restricted to the name server and any dispatchers. the # mip servers will come down once their dispatcher is shut down. # NOTE: this is a utility that should eventually become part of # pyutilib.pyro, but because is prototype, I'm keeping it # here for now. # def shutdown_pyro_components(host=None, port=None, num_retries=30, ns=None, caller_name="Unknown"): if _pyro is None: raise ImportError("Pyro or Pyro4 is not available") if ns is None: ns = get_nameserver(host=host, port=port, num_retries=num_retries, caller_name=caller_name) if ns is None: print("***WARNING - Could not locate name server " "- Pyro components will not be shut down") return if using_pyro3: ns_entries = ns.flatlist() for (name, uri) in ns_entries: if name.startswith(":PyUtilibServer.dispatcher."): try: ns.unregister(name) proxy = _pyro.core.getProxyForURI(uri) proxy.shutdown() except: pass for (name, uri) in ns_entries: if name == ":Pyro.NameServer": try: proxy = _pyro.core.getProxyForURI(uri) proxy._shutdown() proxy._release() except: pass elif using_pyro4: for name in ns.list(prefix=":PyUtilibServer.dispatcher."): try: uri = ns.lookup(name) ns.remove(name) proxy = _pyro.Proxy(uri) proxy.shutdown() proxy._pyroRelease() except: pass print("") print("*** NameServer must be shutdown manually when using Pyro4 ***") print("") def set_maxconnections(max_allowed_connections=None): # # **NOTE: For some reason with Pyro3 we need to add 1 to this # option in order to to get behavior that makes sense # and matches behavior with Pyro4. For instance, # running a dispatcher with a single client and a single # server requires PYRO_MAXCONNECTIONS=3 with Pyro3 and # requires THREADPOOL_SIZE=2 with Pyro4. # if max_allowed_connections is None: max_pyro_connections_envname = "PYUTILIB_PYRO_MAXCONNECTIONS" if max_pyro_connections_envname in os.environ: new_val = int(os.environ[max_pyro_connections_envname]) print("Overriding %s default for maximum number of proxy " "connections to %s, based on specification provided by " "%s environment variable." % ("Pyro" if using_pyro3 else "Pyro4", new_val, max_pyro_connections_envname)) if using_pyro3: _pyro.config.PYRO_MAXCONNECTIONS = new_val + 1 else: _pyro.config.THREADPOOL_SIZE = new_val else: print("Overriding %s default for maximum number of proxy " "connections to %s, based on specification provided by " "max_allowed_connections keyword" % ("Pyro" if using_pyro3 else "Pyro4", max_allowed_connections)) if using_pyro3: _pyro.config.PYRO_MAXCONNECTIONS = max_allowed_connections + 1 else: _pyro.config.THREADPOOL_SIZE = max_allowed_connections def bind_port(sock, host="127.0.0.1"): """Bind the socket to a free port and return the port number. Relies on ephemeral ports in order to ensure we are using an unbound port. This is important as many tests may be running simultaneously, especially in a buildbot environment. This method raises an exception if the sock.family is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR or SO_REUSEPORT set on it. Tests should *never* set these socket options for TCP/IP sockets. The only case for setting these options is testing multicasting via multiple UDP sockets. Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. on Windows), it will be set on the socket. This will prevent anyone else from bind()'ing to our host/port for the duration of the test. This code is copied from the stdlib's test.test_support module. """ if sock.family in (socket.AF_INET, socket.AF_INET6 ) and sock.type == socket.SOCK_STREAM: if hasattr(socket, "SO_EXCLUSIVEADDRUSE"): sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) if sock.family == socket.AF_INET: if host == 'localhost': sock.bind(('127.0.0.1', 0)) else: sock.bind((host, 0)) elif sock.family == socket.AF_INET6: if host == 'localhost': sock.bind(('::1', 0, 0, 0)) else: sock.bind((host, 0, 0, 0)) else: raise CommunicationError("unsupported socket family: " + sock.family) return sock.getsockname()[1] """ if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: if hasattr(socket, 'SO_REUSEADDR'): if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: raise TestFailed("tests should never set the SO_REUSEADDR " "socket option on TCP/IP sockets!") if hasattr(socket, 'SO_REUSEPORT'): try: if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: raise TestFailed("tests should never set the SO_REUSEPORT " "socket option on TCP/IP sockets!") except OSError: # Python's socket module was compiled using modern # headers thus defining SO_REUSEPORT but this process # is running under an older kernel that does not # support SO_REUSEPORT. pass if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) sock.bind((host, 0)) port = sock.getsockname()[1] return port """ def find_unused_port(family=socket.AF_INET, socktype=socket.SOCK_STREAM): """Returns an unused port that should be suitable for binding. This is achieved by creating a temporary socket with the same family and type as the 'sock' parameter (default is AF_INET, SOCK_STREAM), and binding it to the specified host address (defaults to 0.0.0.0) with the port set to 0, eliciting an unused ephemeral port from the OS. The temporary socket is then closed and deleted, and the ephemeral port is returned. This code is copied from the stdlib's test.test_support module. """ tempsock = socket.socket(family, socktype) port = bind_port(tempsock) tempsock.close() del tempsock return port pyutilib-6.0.0/pyutilib/pyro/worker.py000066400000000000000000000374611367314503500201150ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['TaskWorker', 'MultiTaskWorker', 'TaskWorkerServer'] import sys import os import socket import time import itertools import random from pyutilib.pyro.util import get_nameserver, using_pyro3, using_pyro4 from pyutilib.pyro.util import Pyro as _pyro from pyutilib.pyro.util import get_dispatchers, _connection_problem from six import advance_iterator, iteritems, itervalues from six.moves import xrange # # With Pyro3 we check for a different set of errors # in the run loop so that we don't ignore shutdown # requests from the dispatcher # _worker_connection_problem = None if using_pyro3: _worker_connection_problem = (_pyro.errors.TimeoutError, _pyro.errors.ConnectionDeniedError) elif using_pyro4: _worker_connection_problem = _pyro.errors.TimeoutError _worker_task_return_queue_unset = object() class TaskWorkerBase(object): def __init__(self, group=":PyUtilibServer", host=None, port=None, num_dispatcher_tries=30, caller_name="Task Worker", verbose=False, name=None): self._verbose = verbose # A worker can set this flag # if an error occurs during processing self._worker_error = False self._worker_shutdown = False self._worker_task_return_queue = _worker_task_return_queue_unset # sets whether or not multiple tasks should # be gathered from the worker queue during # each request for work self._bulk_task_collection = False if _pyro is None: raise ImportError("Pyro or Pyro4 is not available") # Deprecated in Pyro3 # Removed in Pyro4 if using_pyro3: _pyro.core.initClient() if name is None: self.WORKERNAME = "Worker_%d@%s" % (os.getpid(), socket.gethostname()) else: self.WORKERNAME = name self.ns = get_nameserver(host=host, port=port, caller_name=caller_name) if self.ns is None: raise RuntimeError("TaskWorkerBase failed to locate " "Pyro name server on the network!") print('Worker attempting to find Pyro dispatcher object...') cumulative_sleep_time = 0.0 self.dispatcher = None for i in xrange(0, num_dispatcher_tries): dispatchers = get_dispatchers(group=group, ns=self.ns) random.shuffle(dispatchers) for name, uri in dispatchers: try: if using_pyro3: self.dispatcher = _pyro.core.getProxyForURI(uri) else: self.dispatcher = _pyro.Proxy(uri) self.dispatcher._pyroTimeout = 10 if not self.dispatcher.register_worker(self.WORKERNAME): if using_pyro4: self.dispatcher._pyroRelease() else: self.dispatcher._release() self.dispatcher = None else: break except _connection_problem: self.dispatcher = None if self.dispatcher is not None: if using_pyro4: self.dispatcher._pyroTimeout = None break sleep_interval = random.uniform(5.0, 15.0) print("Worker failed to find dispatcher object from " "name server after %d attempts and %5.2f seconds " "- trying again in %5.2f seconds." % (i + 1, cumulative_sleep_time, sleep_interval)) time.sleep(sleep_interval) cumulative_sleep_time += sleep_interval if self.dispatcher is None: raise RuntimeError( "Worker could not find dispatcher object - giving up") # There is no need to retain the proxy connection to the # nameserver, so free up resources on the nameserver thread URI = None if using_pyro4: self.ns._pyroRelease() URI = self.dispatcher._pyroUri else: self.ns._release() URI = self.dispatcher.URI print("Connection to dispatch server %s established " "after %d attempts and %5.2f seconds - " "this is worker: %s" % (URI, i + 1, cumulative_sleep_time, self.WORKERNAME)) # Do not release the connection to the dispatcher # We use this functionality to distribute workers across # multiple dispatchers based off of denied connections def close(self): if self.dispatcher is not None: self.dispatcher.unregister_worker(self.WORKERNAME) if using_pyro4: self.dispatcher._pyroRelease() else: self.dispatcher._release() self.dispather = None def run(self): raise NotImplementedError #pragma:nocover class TaskWorker(TaskWorkerBase): def __init__(self, type=None, block=True, timeout=None, *args, **kwds): self.type = type self.block = block self.timeout = timeout # Indicates whether or not we assume that all task # ids are contiguous and process them as such self._contiguous_task_processing = False self._next_processing_id = None TaskWorkerBase.__init__(self, *args, **kwds) def run(self): print("Listening for work from dispatcher...") while 1: self._worker_error = False self._worker_shutdown = False try: tasks = None if self._bulk_task_collection: tasks_ = self.dispatcher.get_tasks( ((self.type, self.block, self.timeout),)) assert len(tasks_) == 1 assert self.type in tasks_ tasks = tasks_[self.type] else: tasks = (self.dispatcher.get_task( type=self.type, block=self.block, timeout=self.timeout),) assert tasks is not None except _worker_connection_problem as e: x = sys.exc_info()[1] # this can happen if the dispatcher is overloaded print("***WARNING: Connection to dispatcher server " "denied\n - exception type: " + str(type(e)) + "\n - message: " + str(x)) print("A potential remedy may be to increase " "PYUTILIB_PYRO_MAXCONNECTIONS in your shell " "environment.") # sleep for a bit longer than normal, for obvious reasons sleep_interval = random.uniform(0.05, 0.15) time.sleep(sleep_interval) else: if len(tasks) > 0: if self._verbose: print("Collected %s task(s) from queue %s" % (len(tasks), self.type)) results = {} # process tasks in order of increasing id for task in sorted(tasks, key=lambda x: x['id']): if self._verbose: print("Processing task with id=%s from queue %s" % (task['id'], self.type)) if self._contiguous_task_processing: # TODO: add code to skip tasks until the next contiguous # task arrives if self._next_processing_id is None: self._next_processing_id = task['id'] if self._next_processing_id != task['id']: raise RuntimeError("Got task with id=%s, expected id=%s" % (task['id'], self._next_processing_id)) self._next_processing_id += 1 self._worker_task_return_queue = \ _worker_task_return_queue_unset self._current_task_client = task['client'] task['result'] = self.process(task['data']) task['processedBy'] = self.WORKERNAME return_type_name = self._worker_task_return_queue if return_type_name is _worker_task_return_queue_unset: return_type_name = self.type if self._worker_error: if return_type_name not in results: results[return_type_name] = [] task['processedBy'] = self.WORKERNAME results[return_type_name].append(task) print( "Task worker reported error during processing " "of task with id=%s. Any remaining tasks in " "local queue will be ignored." % (task['id'])) break if self._worker_shutdown: self.close() return if task['generateResponse']: if return_type_name not in results: results[return_type_name] = [] results[return_type_name].append(task) if self._worker_error: break if len(results): self.dispatcher.add_results(results) class MultiTaskWorker(TaskWorkerBase): def __init__(self, type_default=None, block_default=True, timeout_default=5, *args, **kwds): TaskWorkerBase.__init__(self, *args, **kwds) # # **NOTE: For this class 'type' is # a tuple (type, blocking, timeout, local) # self._num_types = 0 self._type_cycle = None self.push_request_type(type_default, block_default, timeout_default) # Called by the run() method to get the next work type to request, # moves index to the next location in the cycle def _get_request_type(self): new = None try: new = advance_iterator(self._type_cycle) except StopIteration: raise RuntimeError("MultiTaskWorker has no work request types!") return new def current_type_order(self): """ return the full work type list, starting from the current location in the cycle. """ if self._num_types == 0: return [] type_list = [] for cnt in xrange(self._num_types): type_list.append(advance_iterator(self._type_cycle)) return type_list def cycle_type_order(self): advance_iterator(self._type_cycle) def num_request_types(self): return self._num_types def clear_request_types(self): self._type_cycle = itertools.cycle([]) self._num_types = 0 def push_request_type(self, type_name, block, timeout): """ add a request type to the end relative to the current cycle location """ self._type_cycle = itertools.cycle(self.current_type_order() + \ [(type_name, block, timeout)]) self._num_types += 1 def pop_request_type(self): """ delete the last type request relative to the current cycle location """ new_type_list = self.current_type_order() el = new_type_list.pop() self._type_cycle = itertools.cycle(new_type_list) self._num_types -= 1 return el def run(self): print("Listening for work from dispatcher...") while 1: self._worker_error = False self._worker_shutdown = False try: tasks = self.dispatcher.get_tasks(self.current_type_order()) except _worker_connection_problem as e: x = sys.exc_info()[1] # this can happen if the dispatcher is overloaded print("***WARNING: Connection to dispatcher server " "denied\n - exception type: " + str(type(e)) + "\n - message: " + str(x)) print("A potential remedy may be to increase " "PYUTILIB_PYRO_MAXCONNECTIONS in your shell " "environment.") # sleep for a bit longer than normal, for obvious reasons sleep_interval = random.uniform(0.05, 0.15) time.sleep(sleep_interval) else: if len(tasks) > 0: if self._verbose: print("Collected %s task(s) from %s queue(s)" % (sum(len(_tl) for _tl in itervalues(tasks)), len(tasks))) results = {} # process tasks by type in order of increasing id for type_name, type_tasks in iteritems(tasks): type_results = results[type_name] = [] for task in sorted(type_tasks, key=lambda x: x['id']): self._worker_task_return_queue = \ _worker_task_return_queue_unset self._current_task_client = task['client'] task['result'] = self.process(task['data']) task['processedBy'] = self.WORKERNAME return_type_name = self._worker_task_return_queue if return_type_name is _worker_task_return_queue_unset: return_type_name = type_name if self._worker_error: if return_type_name not in results: results[return_type_name] = [] results[return_type_name].append(task) print( "Task worker reported error during processing " "of task with id=%s. Any remaining tasks in " "local queue will be ignored." % (task['id'])) break if self._worker_shutdown: self.close() return if task['generateResponse']: if return_type_name not in results: results[return_type_name] = [] results[return_type_name].append(task) if self._worker_error: break if len(results): self.dispatcher.add_results(results) def TaskWorkerServer(cls, **kwds): worker = cls(**kwds) if worker.ns is None: return try: worker.run() except _pyro.errors.ConnectionClosedError: print("Lost connection to dispatch server. " "Shutting down...") except: worker.close() raise pyutilib-6.0.0/pyutilib/services/000077500000000000000000000000001367314503500170515ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/services/__init__.py000066400000000000000000000010221367314503500211550ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ from pyutilib.services.services import registered_executable, register_executable, TempfileManager pyutilib-6.0.0/pyutilib/services/services.py000066400000000000000000000035511367314503500212520ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['registered_executable', 'register_executable', 'TempfileManager'] from pyutilib.component.core import ExtensionPoint, PluginGlobals from pyutilib.component.config import TempfileManager from pyutilib.component.executables import IExternalExecutable, ExternalExecutable """ Test if an exectuable is registered, using the IExternalExecutable extension point. If 'name' is None, then return a list of the names of all registered executables that are enabled. If either this executable is not registered or it is disabled, then None is returned. """ def registered_executable(name=None): ep = ExtensionPoint(IExternalExecutable) if name is None: return filter(lambda x: x.name, ep.extensions()) return ep.service(name) """ Register an executable, using the IExternalExecutable extension point. If this executable has been registered, then do not reregister it (even if it is disabled). """ def register_executable(name, validate=None): ep = ExtensionPoint(IExternalExecutable) if len(ep(name, all=True)) == 0: PluginGlobals.add_env("pca") PluginGlobals._executables.append( ExternalExecutable( name=name, validate=validate)) PluginGlobals.pop_env() else: # # If the executable is being 'registered', then we search for it # again, since the user environment may have changed. # list(ep(name, all=True))[0].find_executable() pyutilib-6.0.0/pyutilib/subprocess/000077500000000000000000000000001367314503500174165ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/subprocess/GlobalData.py000066400000000000000000000010631367314503500217620ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ debug = False current_process = None signal_handler_busy = None DEFINE_SIGNAL_HANDLERS_DEFAULT = True original_signal_handlers = {} pyutilib-6.0.0/pyutilib/subprocess/__init__.py000066400000000000000000000012351367314503500215300ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # from pyutilib.component.core import PluginGlobals PluginGlobals.add_env("pyutilib") from pyutilib.subprocess.processmngr import subprocess, SubprocessMngr, run_command, timer, signal_handler, run, PIPE, STDOUT PluginGlobals.pop_env() pyutilib-6.0.0/pyutilib/subprocess/processmngr.py000066400000000000000000000732761367314503500223510ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['subprocess', 'SubprocessMngr', 'run_command', 'timer', 'signal_handler', 'run', 'PIPE', 'STDOUT'] from pyutilib.subprocess import GlobalData import time import signal import os import sys import tempfile import subprocess from six import itervalues from threading import Thread _mswindows = sys.platform.startswith('win') if _mswindows: import ctypes # Note: on many python interpreters, WindowsError is only defined on # Windows. Since we want to trap it below, we will declare a local # Exception type that is WindowsError if WindowsError is defined, # otherwise it is a bogus Exception class. try: WindowsError() _WindowsError = WindowsError except NameError: class _WindowsError(Exception): pass _peek_available = True try: if _mswindows: from msvcrt import get_osfhandle from win32pipe import PeekNamedPipe from win32file import ReadFile else: from select import select except: _peek_available = False import pyutilib.services from pyutilib.common import ApplicationError from pyutilib.misc import quote_split try: unicode except: basestring = unicode = str if sys.platform.startswith('java'): PIPE = None STDOUT = None else: PIPE = subprocess.PIPE STDOUT = subprocess.STDOUT if sys.version_info[0:2] >= (3, 0): def bytes_cast(x): if not x is None: if isinstance(x, basestring) is True: return x.encode() # Encode string to bytes type else: # lets assume its of type bytes return x else: return x else: bytes_cast = lambda x: x # Do nothing # # Setup the timer # if sys.version_info >= (3,3): # perf_counter is guaranteed to be monotonic and the most accurate timer timer = time.perf_counter else: # On old Pythons, clock() is more accurate than time() on Windows # (.35us vs 15ms), but time() is more accurate than clock() on Linux # (1ns vs 1us). However, since we are only worring about process # timeouts here, we will stick with strictly monotonic timers timer = time.clock def kill_process(process, sig=signal.SIGTERM, verbose=False): """ Kill a process given a process ID """ pid = process.pid if GlobalData.debug or verbose: print("Killing process %d with signal %d" % (pid, sig)) if _mswindows: PROCESS_TERMINATE = 1 handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, pid) ctypes.windll.kernel32.TerminateProcess(handle, -1) ctypes.windll.kernel32.CloseHandle(handle) else: # # Kill process and all its children # pgid = os.getpgid(pid) if pgid == -1: print(" ERROR: invalid pid %d" % pid) sys.exit(1) os.killpg(pgid, signal.SIGTERM) process.terminate() # # This is a hack. The Popen.__del__ method references # the 'os' package, and when a process is interupted this # package is deleted before Popen. I can't figure out why # _del_ is being called when Python closes down, though. HOWEVER, # we can hard-ware Popen.__del__ to return immediately by telling it # that it did not create a child process! # if not GlobalData.current_process is None: GlobalData.current_process._child_created = False GlobalData.current_process = None GlobalData.pid = None GlobalData.signal_handler_busy = False # # A signal handler that passes on the signal to the child process. # def verbose_signal_handler(signum, frame): c = frame.f_code print(' Signal handler called from ', c.co_filename, c.co_name, frame.f_lineno) print(" Waiting...",) signal_handler(signum, frame, True) def signal_handler(signum, frame, verbose=False): if GlobalData.signal_handler_busy: print("") print(" Signal handler is busy. Aborting.") sys.exit(-signum) if GlobalData.current_process is None: print(" Signal", signum, "recieved, but no process queued") print(" Exiting now") sys.exit(-signum) if GlobalData.current_process is not None and\ GlobalData.current_process.pid is not None and\ GlobalData.current_process.poll() is None: GlobalData.signal_handler_busy = True kill_process(GlobalData.current_process, signum) if verbose: print(" Signaled process", GlobalData.current_process.pid, "with signal", signum) endtime = timer() + 1.0 while timer() < endtime: status = GlobalData.current_process.poll() if status is None: break time.sleep(0.1) #GlobalData.current_process.wait() status = GlobalData.current_process.poll() if status is not None: GlobalData.signal_handler_busy = False if verbose: print("Done.") raise OSError("Interrupted by signal " + repr(signum)) else: raise OSError("Problem terminating process" + repr( GlobalData.current_process.pid)) GlobalData.current_process = None # Restore the original signal handlers (because the subprocess is # now defunct, and we shouldn't return here) for _sig in list(GlobalData.original_signal_handlers): signal.signal(_sig, GlobalData.original_signal_handlers.pop(_sig)) # If there was originally a signal handler, then we should trigger # it, too orig_handler = signal.getsignal(signum) if hasattr(orig_handler, '__call__'): orig_handler(signum, frame) raise OSError("Interrupted by signal " + repr(signum)) # # A function used to read in data from a shell command, and push it into a pipe. # def _stream_reader(args): unbuffer = args[0] stream = args[1] output = tuple(x for x in args[2:] if x is not None) def write(x): success = True for s in output: try: s.write(x) except ValueError: success = False return success def flush(): for s in output: try: s.flush() except ValueError: pass raw_stderr = sys.__stderr__ if raw_stderr is None: raw_stderr = sys.stderr try: encoding = stream.encoding except: encoding = None if encoding is None: try: encoding = raw_stderr.encoding except: pass if encoding is None: encoding = 'utf-8' buf = "" data = None while True: new_data = os.read(stream, 1) if not new_data: break if data: data += new_data else: data = new_data char = data.decode(encoding) if char.encode(encoding) != data: continue data = "" if unbuffer == 1: writeOK = write(char) buf += char if char[-1] != "\n": continue if unbuffer: if unbuffer != 1: writeOK = write(buf) flush() else: writeOK = write(buf) if writeOK: buf = "" writeOK = True if buf: writeOK &= write(buf) if data: writeOK &= write(data.decode(encoding)) flush() if not writeOK and raw_stderr is not None: raw_stderr.write(""" ERROR: pyutilib.subprocess: output stream closed before all subprocess output was written to it. The following was left in the subprocess buffer: '%s' """ % (buf,)) if data: raw_stderr.write( """The following undecoded unicode output was also present: '%s' """ % (data,)) # # A function used to read in data from two independent streams and push # each to 1+ output pipes. Managing this in a single thread allows our # code output to be more predictible (and better formatted) when the # output streams happen to point to the same place (e.g., file or # terminal). This function requires the ability to "peek" or "select" # the next stream that is ready to be read from. # # For platforms that do not support select / peek, see the # _pseudo_merged_reader. # def _merged_reader(*args): class StreamData(object): __slots__ = ('read', 'output', 'unbuffer', 'buf', 'data') def __init__(self, *args): if _mswindows: self.read = get_osfhandle(args[1]) else: self.read = args[1] self.unbuffer = args[0] self.output = tuple(x for x in args[2:] if x is not None) self.buf = "" self.data = None def write(self, x): success = True for s in self.output: try: s.write(x) except ValueError: success = False return success def flush(self): for s in self.output: try: s.flush() except ValueError: pass raw_stderr = sys.__stderr__ if raw_stderr is None: # There are cases, e.g., in Anaconda, where there is no stdout # for the original process because, for example, it was started # in a windowing environment. raw_stderr = sys.stderr try: encoding = stream.encoding except: encoding = None if encoding is None: try: encoding = raw_stderr.encoding except: pass if encoding is None: encoding = 'utf-8' streams = {} for s in args: tmp = StreamData(*s) streams[tmp.read] = tmp handles = sorted(streams.keys(), key=lambda x: -1 * streams[x].unbuffer) noop = [] while handles: if _mswindows: new_data = None for h in handles: try: numAvail = PeekNamedPipe(h, 0)[1] if numAvail == 0: continue result, new_data = ReadFile(h, 1, None) except: handles.remove(h) new_data = None if new_data is None: continue else: h = select(handles, noop, noop)[0] if not h: break h = h[0] new_data = os.read(h, 1) if not new_data: handles.remove(h) continue s = streams[h] if s.data is None: s.data = new_data else: s.data += new_data char = s.data.decode(encoding) if char.encode(encoding) != s.data: continue s.data = None if s.unbuffer: writeOK = s.write(char) s.buf += char if char[-1] != "\n": continue if s.unbuffer: s.flush() else: writeOK = s.write(s.buf) if writeOK: s.buf = "" writeOK = True for s in itervalues(streams): if s.buf: writeOK &= s.write(s.buf) if s.data: writeOK &= s.write(s.data.decode(encoding)) s.flush() if not writeOK and raw_stderr is not None: raw_stderr.write(""" ERROR: pyutilib.subprocess: output stream closed before all subprocess output was written to it. The following was left in the subprocess buffer: '%s' """ % (buf,)) if data: raw_stderr.write( """The following undecoded unicode output was also present: '%s' """ % (data,)) # # A mock-up of the _merged_reader for platforms (or installations) that # lack working select/peek implementations. Note that this function # does not guarantee determinism (and on many platforms is exceedingly # nondeterministic). However, it does change the flushing rules to # better maintain output line integrity (at the cost of performance). # def _pseudo_merged_reader(*args): _threads = [] for arg in args: _threads.append(Thread(target=_stream_reader, args=((2,) + arg[1:],))) _threads[-1].daemon = True _threads[-1].start() for th in _threads: th.join() # # Execute the command as a subprocess that we can send signals to. # After this is finished, we can get the output from this command from # the process.stdout file descriptor. # def run_command(cmd, outfile=None, cwd=None, ostream=None, stdin=None, stdout=None, stderr=None, valgrind=False, valgrind_log=None, valgrind_options=None, memmon=False, env=None, define_signal_handlers=None, debug=False, verbose=True, timelimit=None, tee=None, ignore_output=False, shell=False, thread_reader=None): # # Set the define_signal_handlers based on the global default flag. # if define_signal_handlers is None: define_signal_handlers = GlobalData.DEFINE_SIGNAL_HANDLERS_DEFAULT # # Move to the specified working directory # if cwd is not None: oldpwd = os.getcwd() os.chdir(cwd) cmd_type = type(cmd) if cmd_type is list: # make a private copy of the list _cmd = cmd[:] elif cmd_type is tuple: _cmd = list(cmd) else: _cmd = quote_split(cmd.strip()) # # Setup memmoon # if memmon: memmon = pyutilib.services.registered_executable("memmon") if memmon is None: raise IOError("Unable to find the 'memmon' executable") _cmd.insert(0, memmon.get_path()) # # Setup valgrind # if valgrind: # # The valgrind_log option specifies a logfile that is used to store # valgrind output. # valgrind_cmd = pyutilib.services.registered_executable("valgrind") if valgrind_cmd is None: raise IOError("Unable to find the 'valgrind' executable") valgrind_cmd = [valgrind_cmd.get_path()] if valgrind_options is None: valgrind_cmd.extend( ("-v", "--tool=memcheck", "--trace-children=yes")) elif type(valgrind_options) in (list, tuple): valgrind_cmd.extend(valgrind_options) else: valgrind_cmd.extend(quote_split(valgrind_options.strip())) if valgrind_log is not None: valgrind_cmd.append("--log-file-exactly=" + valgrind_log.strip()) _cmd = valgrind_cmd + _cmd # # Redirect stdout and stderr # tmpfile = None if ostream is not None: stdout_arg = stderr_arg = ostream if outfile is not None or stdout is not None or stderr is not None: raise ValueError("subprocess.run_command(): ostream, outfile, and " "{stdout, stderr} options are mutually exclusive") output = "Output printed to specified ostream" elif outfile is not None: stdout_arg = stderr_arg = open(outfile, "w") if stdout is not None or stderr is not None: raise ValueError("subprocess.run_command(): outfile and " "{stdout, stderr} options are mutually exclusive") output = "Output printed to file '%s'" % outfile elif not (stdout is None and stderr is None): stdout_arg = stdout stderr_arg = stderr output = "Output printed to specified stdout and stderr streams" else: # Create a temporary file. The mode is w+, which means that we # can read and write. # NOTE: the default mode is w+b, but writing to the binary mode # seems to cause problems in the _stream_reader function on Python # 3.x. stdout_arg = stderr_arg = tmpfile = tempfile.TemporaryFile(mode='w+') output = "" if stdout_arg is stderr_arg: try: if not tee or (not tee[0] and not tee[1]): stderr_arg = STDOUT except: pass # # Setup the default environment # if env is None: env = os.environ.copy() # # Setup signal handler # if define_signal_handlers: handler = verbose_signal_handler if verbose else signal_handler if sys.platform[0:3] != "win" and sys.platform[0:4] != 'java': GlobalData.original_signal_handlers[signal.SIGHUP] \ = signal.signal(signal.SIGHUP, handler) GlobalData.original_signal_handlers[signal.SIGINT] \ = signal.signal(signal.SIGINT, handler) GlobalData.original_signal_handlers[signal.SIGTERM] \ = signal.signal(signal.SIGTERM, handler) rc = -1 if debug: print("Executing command %s" % (_cmd,)) try: try: simpleCase = not tee if stdout_arg is not None: stdout_arg.fileno() if stderr_arg is not None: stderr_arg.fileno() except: simpleCase = False out_th = [] th = None GlobalData.signal_handler_busy = False if simpleCase: # # Redirect IO to the stdout_arg/stderr_arg files # process = SubprocessMngr( _cmd, stdin=stdin, stdout=stdout_arg, stderr=stderr_arg, env=env, shell=shell) GlobalData.current_process = process.process rc = process.wait(timelimit) GlobalData.current_process = None else: # # Aggressively wait for output from the process, and # send this to both the stdout/stdarg value, as well # as doing a normal 'print' # out_fd = [] for fid in (0, 1): if fid == 0: s, raw = stdout_arg, sys.stdout else: s, raw = stderr_arg, sys.stderr try: tee_fid = tee[fid] except: tee_fid = tee if s is None or s is STDOUT: out_fd.append(s) elif not tee_fid: # This catches using StringIO as an output buffer: # Python's subprocess requires the stream objects to # have a "fileno()" attribute, which StringIO does # not have. We will mock things up by putting a # pipe in between the subprocess and the StringIO # buffer. # #if hasattr(s, 'fileno'): # # Update: in Python 3, StringIO declares a fileno() # method, but that method throws an exception. So, # we can't just check for the attribute: we *must* # call the method and see if we get an exception. try: s.fileno() out_fd.append(s) except: r, w = os.pipe() out_fd.append(w) out_th.append(((fid, r, s), r, w)) #th = Thread(target=thread_reader, args=(r,None,s,fid)) #out_th.append((th, r, w)) else: r, w = os.pipe() out_fd.append(w) out_th.append(((fid, r, raw, s), r, w)) #th = Thread( target=thread_reader, args=(r,raw,s,fid) ) #out_th.append((th, r, w)) # process = SubprocessMngr( _cmd, stdin=stdin, stdout=out_fd[0], stderr=out_fd[1], env=env, shell=shell) GlobalData.current_process = process.process GlobalData.signal_handler_busy = False # # Create a thread to read in stdout and stderr data # if out_th: if thread_reader is not None: reader = thread_reader elif len(out_th) == 1: reader = _stream_reader elif _peek_available: reader = _merged_reader else: reader = _pseudo_merged_reader th = Thread(target=reader, args=[x[0] for x in out_th]) th.daemon = True th.start() # # Wait for process to finish # rc = process.wait(timelimit) GlobalData.current_process = None out_fd = None except _WindowsError: err = sys.exc_info()[1] raise ApplicationError( "Could not execute the command: '%s'\n\tError message: %s" % (' '.join(_cmd), err)) except OSError: # # Ignore IOErrors, which are caused by interupts # pass finally: # restore the previous signal handlers, if necessary for _sig in list(GlobalData.original_signal_handlers): signal.signal(_sig, GlobalData.original_signal_handlers.pop(_sig)) # # Flush stdout/stderr. Some platforms (notably Matlab, which # replaces stdout with a MexPrinter) have stdout/stderr that do not # implement flush() See https://github.com/Pyomo/pyomo/issues/156 # try: sys.stdout.flush() except AttributeError: pass try: sys.stderr.flush() except AttributeError: pass if out_th: # # 'Closing' the PIPE to send EOF to the reader. # for p in out_th: os.close(p[2]) if th is not None: # Note, there is a condition where the subprocess can die # very quickly (raising an OSError) before the reader # threads have a chance to be set up. Testing for None # avoids joining a thread that doesn't exist. th.join() for p in out_th: os.close(p[1]) if th is not None: del th if outfile is not None: stdout_arg.close() elif tmpfile is not None and not ignore_output: tmpfile.seek(0) output = "".join(tmpfile.readlines()) tmpfile.close() # # Move back from the specified working directory # if cwd is not None: os.chdir(oldpwd) # # Return the output # return [rc, output] # Create an alias for run_command run = run_command class SubprocessMngr(object): def __init__(self, cmd, stdin=None, stdout=None, stderr=None, env=None, bufsize=0, shell=False): """ Setup and launch a subprocess """ self.process = None # # By default, stderr is mapped to stdout # #if stderr is None: # stderr=subprocess.STDOUT self.stdin = stdin if stdin is None: stdin_arg = None else: stdin_arg = subprocess.PIPE # # We would *really* like to deal with commands in execve form # if type(cmd) not in (list, tuple): cmd = quote_split(cmd.strip()) # # Launch subprocess using a subprocess.Popen object # if _mswindows: # # Launch without console on MSWindows # startupinfo = subprocess.STARTUPINFO() #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW self.process = subprocess.Popen( cmd, stdin=stdin_arg, stdout=stdout, stderr=stderr, startupinfo=startupinfo, env=env, bufsize=bufsize, shell=shell) elif getattr(subprocess, 'jython', False): # # Launch from Jython # self.process = subprocess.Popen( cmd, stdin=stdin_arg, stdout=stdout, stderr=stderr, env=env, bufsize=bufsize, shell=shell) else: # # Launch on *nix # self.process = subprocess.Popen( cmd, stdin=stdin_arg, stdout=stdout, stderr=stderr, preexec_fn=os.setsid, env=env, bufsize=bufsize, shell=shell) def X__del__(self): """ Cleanup temporary file descriptor and delete that file. """ if False and self.process is not None: try: if self.process.poll() is None: self.kill() except OSError: # # It should be OK to ignore this exception. Although poll() returns # None when the process is still active, there is a race condition # here. Between running poll() and running kill() the process # may have terminated. # pass if self.process is not None: try: del self.process except: pass self.process = None def wait(self, timelimit=None): """ Wait for the subprocess to terminate. Terminate if a specified timelimit has passed. """ if timelimit is None: # *Py3k: bytes_cast does no conversion for python 2.*, casts to bytes for 3.* self.process.communicate(input=bytes_cast(self.stdin)) return self.process.returncode else: # # Wait timelimit seconds and then force a termination # # Sleep every 1/10th of a second to avoid wasting CPU time # if timelimit <= 0: raise ValueError("'timeout' must be a positive number") endtime = timer() + timelimit # This might be dangerous: we *could* deadlock if the input # is large... if self.stdin is not None: # *Py3k: bytes_cast does no conversion for python 2.*, casts to bytes for 3.* self.process.stdin.write(bytes_cast(self.stdin)) while timer() < endtime: status = self.process.poll() if status is not None: return status time.sleep(0.1) # # Check one last time before killing the process # status = self.process.poll() if status is not None: return status # # If we're here, then kill the process and return an error # returncode. # try: self.kill() return -1 except OSError: # # The process may have stopped before we called 'kill()' # so check the status one last time. # status = self.process.poll() if status is not None: return status else: raise OSError("Could not kill process " + repr( self.process.pid)) def stdout(self): return self.process.stdout def send_signal(self, sig): """ Send a signal to a subprocess """ os.signal(self.process, sig) def kill(self, sig=signal.SIGTERM): """ Kill the subprocess and its children """ kill_process(self.process, sig) self.process.terminate() self.process.wait() del self.process self.process = None if __name__ == "__main__": #pragma:nocover #GlobalData.debug=True print("Z") stime = timer() foo = run_command("./dummy", tee=True, timelimit=10) print("A") print("Ran for " + repr(timer() - stime) + " seconds") print(foo) sys.exit(0) if not _mswindows: foo = SubprocessMngr("ls *py") foo.wait() print("") foo = SubprocessMngr("ls *py", stdout=subprocess.PIPE) foo.wait() for line in foo.process.stdout: print(line,) print("") foo = None [rc, output] = run_command("ls *py") print(output) print("") [rc, output] = run_command("ls *py", outfile="tmp") INPUT = open("tmp", 'r') for line in INPUT: print(line,) INPUT.close() print("") print("X") [rc, output] = run_command( "python -c \"while True: print '.'\"", timelimit=2) print("Y") #[rc,output] = run_command("python -c \"while True: print '.'\"") [rc, output] = run_command( "python -c \"while True: print '.'\"", verbose=False) print("Y-end") else: foo = SubprocessMngr("cmd /C \"dir\"") foo.wait() print("") print("Z") stime = timer() foo = run_command("python -c \"while True: pass\"", timelimit=10) print("A") print("Ran for " + repr(timer() - stime) + " seconds") pyutilib.services.register_executable("valgrind") pyutilib.services.register_executable("memmon") pyutilib-6.0.0/pyutilib/subprocess/tests/000077500000000000000000000000001367314503500205605ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/subprocess/tests/__init__.py000066400000000000000000000006601367314503500226730ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # pyutilib-6.0.0/pyutilib/subprocess/tests/tee_script.py000066400000000000000000000005531367314503500232760ustar00rootroot00000000000000import sys import time # Write ERR first so that the output is deterministic sys.stderr.write("Tee Script: ERR\n") sys.stdout.write("Tee Script: OUT\n") # sleep just enough so that the STDERR thread should finish flushing its # buffer before the process terminates (at which point the order in # which the buffers are flushed is somewhat random). time.sleep(0.5) pyutilib-6.0.0/pyutilib/subprocess/tests/test_subprocess.py000066400000000000000000000213101367314503500243560ustar00rootroot00000000000000import sys import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.services from pyutilib.subprocess import subprocess, SubprocessMngr, timer from pyutilib.subprocess.processmngr import _peek_available import six _mswindows = (sys.platform == 'win32') try: import __pypy__ is_pypy = True except: is_pypy = False pyutilib.services.register_executable("memmon") global_memmon = pyutilib.services.registered_executable('memmon') pyutilib.services.register_executable("valgrind") global_valgrind = pyutilib.services.registered_executable('valgrind') class Test(unittest.TestCase): def test_foo(self): if not _mswindows: foo = SubprocessMngr( "ls *py > /tmp/.pyutilib", stdout=subprocess.PIPE, shell=True) foo.wait() print("") if os.path.exists("/tmp/.pyutilib"): os.remove("/tmp/.pyutilib") else: foo = SubprocessMngr("cmd /C \"dir\" > C:/tmp", shell=True) foo.wait() print("") @unittest.skipIf(is_pypy, "Cannot launch python in this test with pypy") def test_timeout(self): targetTime = 2 stime = timer() # On MS Windows, do not run this in a shell. If so, MS Windows has difficulty # killing the process after the timelimit print("Subprocess python process") sys.stdout.flush() if ' ' in sys.executable: foo = SubprocessMngr( "'" + sys.executable + "' -q -c \"while True: pass\"", shell=False) else: foo = SubprocessMngr( sys.executable + " -q -c \"while True: pass\"", shell=False) foo.wait(targetTime) runTime = timer() - stime print("Ran for %f seconds" % (runTime,)) # # timeout should be accurate to 1/10 second # self.assertTrue(runTime <= targetTime + 0.1) @unittest.skipIf(_mswindows, "Cannot test the use of 'memmon' on MS Windows") @unittest.skipIf(sys.platform == 'darwin', "Cannot test the use of 'memmon' on Darwin") @unittest.skipIf(not global_memmon, "The 'memmon' executable is not available.") def test_memmon(self): pyutilib.services.register_executable('ls') pyutilib.subprocess.run( pyutilib.services.registered_executable('ls').get_path() + ' *.py', memmon=True, outfile=currdir + 'ls.out') INPUT = open(currdir + 'ls.out', 'r') flag = False for line in INPUT: flag = line.startswith('memmon:') if flag: break INPUT.close() if not flag: self.fail( "Failed to properly execute 'memmon' with the 'ls' command") os.remove(currdir + 'ls.out') @unittest.skipIf(_mswindows, "Cannot test the use of 'valgrind' on MS Windows") @unittest.skipIf(not global_valgrind, "The 'valgrind' executable is not available.") def test_valgrind(self): pyutilib.services.register_executable('ls') pyutilib.subprocess.run( pyutilib.services.registered_executable('ls').get_path() + ' *.py', valgrind=True, outfile=currdir + 'valgrind.out') INPUT = open(currdir + 'valgrind.out', 'r') flag = False for line in INPUT: flag = 'Memcheck' in line if flag: break INPUT.close() if not flag: self.fail( "Failed to properly execute 'valgrind' with the 'ls' command") os.remove(currdir + 'valgrind.out') def test_outputfile(self): pyutilib.subprocess.run([sys.executable, currdir + "tee_script.py"], outfile=currdir + 'tee.out') INPUT = open(currdir + 'tee.out') output = INPUT.read() INPUT.close() os.remove(currdir + 'tee.out') if _peek_available: self.assertEqual( sorted(output.splitlines()), ["Tee Script: ERR", "Tee Script: OUT"]) else: sys.stderr.write("BEGIN OUTPUT:\n" + output + "END OUTPUT\n") self.assertTrue(output.splitlines() in (["Tee Script: ERR", "Tee Script: OUT"], ["Tee Script: OUT", "Tee Script: ERR"])) def test_ostream_stringio(self): script_out = six.StringIO() output = pyutilib.subprocess.run( [sys.executable, currdir + "tee_script.py"], ostream=script_out) if _peek_available: self.assertEqual( sorted(script_out.getvalue().splitlines()), ["Tee Script: ERR", "Tee Script: OUT"]) else: sys.stderr.write("BEGIN OUTPUT:\n" + script_out.getvalue() + "END OUTPUT\n") self.assertTrue(script_out.getvalue().splitlines() in (["Tee Script: ERR", "Tee Script: OUT"], ["Tee Script: OUT", "Tee Script: ERR"])) @unittest.category("fragile") def test_tee(self): stream_out = six.StringIO() script_out = six.StringIO() pyutilib.misc.setup_redirect(stream_out) output = pyutilib.subprocess.run( [sys.executable, currdir + "tee_script.py"], ostream=script_out, tee=True) pyutilib.misc.reset_redirect() # The following is only deterministic if Peek/Select is available if _peek_available: self.assertEqual( sorted(stream_out.getvalue().splitlines()), ["Tee Script: ERR", "Tee Script: OUT"]) self.assertEqual( sorted(script_out.getvalue().splitlines()), ["Tee Script: ERR", "Tee Script: OUT"]) else: sys.stderr.write("BEGIN OUTPUT1:\n" + stream_out.getvalue() + "END OUTPUT1\n") sys.stderr.write("BEGIN OUTPUT2:\n" + script_out.getvalue() + "END OUTPUT2\n") self.assertTrue(stream_out.getvalue().splitlines() in (["Tee Script: ERR", "Tee Script: OUT"], ["Tee Script: OUT", "Tee Script: ERR"])) self.assertTrue(script_out.getvalue().splitlines() in (["Tee Script: ERR", "Tee Script: OUT"], ["Tee Script: OUT", "Tee Script: ERR"])) @unittest.category("fragile") def test_tee_stdout(self): stream_out = six.StringIO() script_out = six.StringIO() pyutilib.misc.setup_redirect(stream_out) output = pyutilib.subprocess.run( [sys.executable, currdir + "tee_script.py"], ostream=script_out, tee=(True, False)) pyutilib.misc.reset_redirect() self.assertEqual(stream_out.getvalue().splitlines(), ["Tee Script: OUT"]) # The following is only deterministic if Peek/Select is available if _peek_available: self.assertEqual( sorted(script_out.getvalue().splitlines()), ["Tee Script: ERR", "Tee Script: OUT"]) else: sys.stderr.write("BEGIN OUTPUT:\n" + script_out.getvalue() + "END OUTPUT\n") self.assertTrue(script_out.getvalue().splitlines() in (["Tee Script: ERR", "Tee Script: OUT"], ["Tee Script: OUT", "Tee Script: ERR"])) @unittest.category("fragile") def test_tee_stderr(self): stream_out = six.StringIO() script_out = six.StringIO() pyutilib.misc.setup_redirect(stream_out) output = pyutilib.subprocess.run( [sys.executable, currdir + "tee_script.py"], ostream=script_out, tee=(False, True)) pyutilib.misc.reset_redirect() self.assertEqual(stream_out.getvalue().splitlines(), ["Tee Script: ERR"]) # The following is only deterministic if Peek/Select is available if _peek_available: self.assertEqual( sorted(script_out.getvalue().splitlines()), ["Tee Script: ERR", "Tee Script: OUT"]) else: sys.stderr.write("BEGIN OUTPUT:\n" + script_out.getvalue() + "END OUTPUT\n") self.assertTrue(script_out.getvalue().splitlines() in (["Tee Script: ERR", "Tee Script: OUT"], ["Tee Script: OUT", "Tee Script: ERR"])) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/th/000077500000000000000000000000001367314503500156415ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/th/__init__.py000066400000000000000000000020371367314503500177540ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ from pyutilib.th.pyunit import TestCase, TestResult, TestSuite, TextTestRunner, main, nottest, category try: from pyutilib.th.pyunit import skip, skipIf, skipUnless, expectedFailure, SkipTest except: pass try: import pyutilib.th.nose_testdata except ImportError: pass try: import pyutilib.th.nose_gc except ImportError: pass try: import pyutilib.th.nose_timeout except ImportError: pass mock_available = False try: from unittest import mock mock_available = True except ImportError: try: import mock mock_available = True except ImportError: pass pyutilib-6.0.0/pyutilib/th/nose_gc.py000066400000000000000000000010211367314503500176220ustar00rootroot00000000000000"""This module defines a nose plugin to forceably run the Python garbage collector before and after every test. Use the following command-line option with nosetests :: nosetests --with-forced-gc """ from gc import collect from nose.plugins.base import Plugin class ForcedGC(Plugin): """Force calls to the Python garbage collector before and after each test.""" name = 'forced-gc' score = 5000 # Run early def beforeTest(self, test): collect() def afterTest(self, test): collect() pyutilib-6.0.0/pyutilib/th/nose_testdata.py000066400000000000000000000123751367314503500210600ustar00rootroot00000000000000"""This module defines a nose plugin that allows the user to archive test data. Use the following command-line option with nosetests :: nosetests --with-testdata By default, a file named testdata.csv will be written to the working directory. If you need to change the name or location of the file, you can set the ``--testdata-file`` option. Here is an abbreviated version of what the CSV file might look like:: classname,name,time pyutilib.th.tests.test_pyunit.Tester,test_fail,0.00291109085083 pyutilib.th.tests.test_pyunit.Tester,test_pass,5.57899475098e-05 pyutilib.th.tests.test_pyunit.Tester2,test_pass,0.000113964080811 pyutilib.th.tests.test_pyunit.Tester3,test_fail,7.60555267334e-05 """ import os import re from time import time from nose.plugins.base import Plugin from six import text_type # Invalid CSV characters, control characters 0-31 sans \t, \n and \r CONTROL_CHARACTERS = re.compile(r"[\000-\010\013\014\016-\037]") def csv_safe(value): """Replaces invalid CSV characters with '?'.""" return CONTROL_CHARACTERS.sub('?', value).replace(',', '_') class TestData(Plugin): """This plugin archives test data in standard CSV format.""" name = 'testdata' score = 2000 encoding = 'UTF-8' report_file = None datakeys = set() def _timeTaken(self): if hasattr(self, '_timer'): taken = time() - self._timer else: # test died before it ran (probably error in setup()) # or success/failure added before test started probably # due to custom TestResult munging taken = 0.0 return taken def _quoteattr(self, attr): """Escape a CSV attribute. Value can be unicode.""" attr = csv_safe(attr) if isinstance(attr, text_type): attr = attr.encode(self.encoding) return attr def options(self, parser, env): """Sets additional command line options.""" Plugin.options(self, parser, env) parser.add_option( '--testdata-file', action='store', dest='testdata_file', metavar="FILE", default=env.get('NOSE_TESTDATA_FILE', 'testdata.csv'), help=("Path to CSV file to store the test data. " "Default is testdata.csv in the working directory " "[NOSE_TESTDATA_FILE]")) parser.add_option( '--testdata-table', action='store_true', dest='testdata_table', default=env.get('NOSE_TESTDATA_TABLE', False), help=( "If this option is specified, then the CSV file is " " formatted as a table. By default, the format is a sparse list. " )) def configure(self, options, config): """Configures the testdata plugin.""" Plugin.configure(self, options, config) self.config = config self.reportdata = [] if options.testdata_table: self.format = 'table' else: self.format = 'sparse' if self.enabled: self.report_file = open(options.testdata_file, 'w') self.datakeys.add('time') def report(self, stream): """Writes a CSV file with test data. """ if not os.environ.get('HUDSON_URL', None) is None: colprefix = 'job,build,node,' prefix = "%s,%s,%s," % (os.environ['JOB_NAME'], os.environ['BUILD_NUMBER'], os.environ['NODE_NAME']) else: colprefix = '' prefix = '' if self.format == 'table': keys = ['classname', 'name'] + sorted(list(self.datakeys)) self.report_file.write(colprefix + ','.join( map(self._quoteattr, keys)) + '\n') for data in self.reportdata: tmp = [] for key in keys: tmp.append(str(data[2].get(key, ''))) self.report_file.write(prefix + ','.join(tmp) + '\n') self.report_file.close() else: self.report_file.write(colprefix + 'classname,name,dataname,value\n') for data in self.reportdata: for key in data[2]: self.report_file.write(prefix) self.report_file.write(str(data[0]) + ',' + str(data[1])) self.report_file.write(',' + str(key) + ',' + str(data[2][ key])) self.report_file.write('\n') if self.config.verbosity > 1: stream.writeln("-" * 70) stream.writeln("CSV: %s" % self.report_file.name) def startTest(self, test): """Initializes a timer before starting a test.""" self._timer = time() test.test.testdata = {} def addSuccess(self, test, capt=None): """Add success output to test data file. """ taken = self._timeTaken() id = test.id() for key in test.test.testdata: self.datakeys.add(key) classname = self._quoteattr('.'.join(id.split('.')[:-1])) name = self._quoteattr(id.split('.')[-1]) test.test.testdata['time'] = taken self.reportdata.append((classname, name, test.test.testdata)) pyutilib-6.0.0/pyutilib/th/nose_timeout.py000066400000000000000000000045401367314503500207300ustar00rootroot00000000000000"""This module defines a nose plugin to terminate a test after a specified number of seconds. Use the following command-line option with nosetests :: nosetests --test-timeout=### """ __all__ = ['Timeout', 'TestTimeout'] import os import signal from nose.plugins.base import Plugin try: from psutil import Process _psutil_avail = True except ImportError: _psutil_avail = False except NotImplementedError: _psutil_avail = False class Timeout(Exception): pass class TestTimeout(Plugin): """Kill tests if they exceed the specified timeout.""" name = 'timeout' score = 5000 # Run early def options(self, parser, env): """Register command-line options.""" parser.add_option( "--test-timeout", action="store", default=env.get('NOSE_TEST_TIMEOUT', 0), dest="test_timeout", metavar="SECONDS", help="A per-test timeout (in seconds). " "[NOSE_TEST_TIMEOUT]") def configure(self, options, config): self.timeout = int(options.test_timeout) self.enabled = self.timeout > 0 if self.enabled and not _psutil_avail: self.enabled = False raise ImportError( "The nose Timeout plugin requires the psutil package.") def startTest(self, test): signal.signal(signal.SIGALRM, self._killTest) signal.alarm(self.timeout) def stopTest(self, test): signal.alarm(0) def _all_children(self, p): ans = p.get_children() i = 0 while i < len(ans): ans.extend(self._all_children(ans[i])) i += 1 return ans def _killTest(self, signum, frame): for p in self._all_children(Process(os.getpid())): try: p.kill() except: pass hour = int(self.timeout / 3600) min = int(self.timeout / 60) - hour * 60 sec = self.timeout % 60 txt = "" if hour: txt = "%d hour%s" % (hour, hour > 1 and "s" or "") if min: if txt: txt += ", " txt += "%d minute%s" % (min, min > 1 and "s" or "") if sec: if txt: txt += ", " txt += "%d second%s" % (sec, sec > 1 and "s" or "") raise Timeout("Test exceeded timeout (%s)" % txt) pyutilib-6.0.0/pyutilib/th/pyunit.py000066400000000000000000000444161367314503500175540ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['TestCase', 'TestResult', 'TestSuite', 'TextTestRunner', 'main', 'nottest', 'category'] from inspect import getfile import stat import os import sys import filecmp import re import unittest using_unittest2 = True main = unittest.main from six import iteritems, itervalues, PY2 # # Defer the pyutilib.misc import until it is actually needed. If we # import it here, then PyUtilib's test coverage will report all # "module-level" lines as uncovered because they were executed before # the nose coverage plugin was watching things. # #import pyutilib.misc if using_unittest2: __all__.extend( ['skip', 'skipIf', 'skipUnless', 'expectedFailure', 'SkipTest']) skip = unittest.skip skipIf = unittest.skipIf skipUnless = unittest.skipUnless expectedFailure = unittest.expectedFailure SkipTest = unittest.SkipTest import subprocess TextTestRunner = unittest.TextTestRunner TestResult = unittest.TestResult TestSuite = unittest.TestSuite try: from nose.tools import nottest except ImportError: def nottest(func): """Decorator to mark a function or method as *not* a test""" func.__test__ = False return func def _category_to_tuple(_cat): _cat = str(_cat).lower().strip() if _cat.endswith('=0') or _cat.endswith('=1'): _val = int(_cat[-1]) _cat = _cat[:-2] else: _val = 1 if _cat and _cat[0] in '!~-': _val = 1 - _val _cat = _cat[1:] return _cat, _val def category(*args, **kwargs): # Get the set of categories for this test _categories = {} for cat in args: _cat, _val = _category_to_tuple(cat) if not _cat: continue _categories[_cat] = _val # Note: we used to try and short-circuit the nosetest test selection # and return test skips for tests that couldn't/wouldn't be run. # However, this code was unreliable, as categories could be set by # both decorating the TestCase (class) and the function. As a # result, we will just rely on nosetest to do the right thing. def _id(func): if hasattr(func, '__mro__') and TestCase in func.__mro__: # @category() called on a TestCase class if len(_categories) > (1 if 'fragile' in _categories else 0): for c,v in iteritems(func.unspecified_categories): setattr(func, c, v) _categories.setdefault(c, v) default_updates = {} for c,v in iteritems(_categories): if c in func.unspecified_categories: default_updates[c] = v setattr(func, c, v) if default_updates: for fcn in itervalues(func.__dict__): if hasattr(fcn, '_categories'): for c,v in iteritems(default_updates): if c not in fcn._categories: setattr(fcn, c, v) else: # This is a (currently unbound) method definition if len(_categories) > (1 if 'fragile' in _categories else 0): for c,v in iteritems(TestCase.unspecified_categories): setattr(func, c, v) for c,v in iteritems(_categories): setattr(func, c, v) setattr(func, '_categories', _categories) return func return _id #@nottest def _run_import_baseline_test(self, cwd=None, module=None, outfile=None, baseline=None, filter=None, tolerance=None, exact=False, forceskip=False): if forceskip: if forceskip is True: self.skipTest("A forced test skip") else: self.skipTest(str(forceskip)) if cwd is None: cwd = os.path.dirname(os.path.abspath(getfile(self.__class__))) oldpwd = os.getcwd() os.chdir(cwd) sys.path.insert(0, cwd) # try: import pyutilib.misc pyutilib.misc.setup_redirect(outfile) pyutilib.misc.import_file(module + ".py", clear_cache=True) pyutilib.misc.reset_redirect() # if baseline.endswith('.json'): self.assertMatchesJsonBaseline( outfile, baseline, tolerance=tolerance, exact=exact) elif baseline.endswith('.yml'): self.assertMatchesYamlBaseline( outfile, baseline, tolerance=tolerance, exact=exact) elif baseline.endswith('.xml'): self.assertMatchesXmlBaseline( outfile, baseline, tolerance=tolerance, exact=exact) else: self.assertFileEqualsBaseline( outfile, baseline, filter=filter, tolerance=tolerance) finally: os.chdir(oldpwd) sys.path.remove(cwd) #@nottest def _run_cmd_baseline_test(self, cwd=None, cmd=None, outfile=None, baseline=None, filter=None, cmdfile=None, tolerance=None, exact=False, forceskip=False): if forceskip: if forceskip is True: self.skipTest("A forced test skip") else: self.skipTest(str(forceskip)) if cwd is None: cwd = os.path.dirname(os.path.abspath(getfile(self.__class__))) oldpwd = os.getcwd() os.chdir(cwd) if type(cmd) in (list, tuple): useShell = False else: useShell = True cmd = cmd.strip() try: OUTPUT = open(outfile, "w") proc = subprocess.Popen( cmd, shell=useShell, stdout=OUTPUT, stderr=subprocess.STDOUT) proc.wait() OUTPUT.close() if cmdfile is not None: OUTPUT = open(cmdfile, 'w') OUTPUT.write("#!/bin/sh\n") OUTPUT.write("# Baseline test command\n") OUTPUT.write("# cwd %s\n" % cwd) OUTPUT.write("# outfile %s\n" % outfile) OUTPUT.write("# baseline %s\n" % baseline) OUTPUT.write(cmd + '\n') OUTPUT.close() os.chmod(cmdfile, stat.S_IREAD | stat.S_IWRITE | stat.S_IEXEC) if baseline.endswith('.json'): self.assertMatchesJsonBaseline( outfile, baseline, tolerance=tolerance, exact=exact) elif baseline.endswith('.yml'): self.assertMatchesYamlBaseline( outfile, baseline, tolerance=tolerance, exact=exact) elif baseline.endswith('.xml'): self.assertMatchesXmlBaseline( outfile, baseline, tolerance=tolerance, exact=exact) else: self.assertFileEqualsBaseline( outfile, baseline, filter=filter, tolerance=tolerance) if not cmdfile is None: os.remove(cmdfile) finally: OUTPUT.close() os.chdir(oldpwd) #@nottest def _run_fn_baseline_test(self, fn=None, name=None, baseline=None, filter=None, tolerance=None): files = fn(name) self.assertFileEqualsBaseline( files[0], baseline, filter=filter, tolerance=tolerance) for file in files[1:]: os.remove(file) #@nottest def _run_fn_test(self, fn, name, suite): if suite is None: explanation = fn(self, name) else: explanation = fn(self, name, suite) if not explanation is None and explanation != "": self.fail(explanation) class TestCase(unittest.TestCase): # Dictionary of options that may be used by function tests. _options = {} # A "bogus" category that we can use to check if TestCase came from # pyutilib or from unittest pyutilib_th = 1 # The default test categories are 'smoke' and 'nightly' and 'expensive' smoke = 1 nightly = 1 expensive = 0 fragile = 0 _default_categories = True # If someone specifies a category, these are the default values of # the default categories if the category() decorator omits them. unspecified_categories = { 'smoke':0, 'nightly':0, 'expensive':0, 'fragile':0 } if PY2: # Compatibility shim: assertRaisesRegexp was renamed to # assertRaisesRegex in Python 3.2 assertRaisesRegex = unittest.TestCase.assertRaisesRegexp assertRegex = unittest.TestCase.assertRegexpMatches def __init__(self, methodName='runTest'): unittest.TestCase.__init__(self, methodName) @staticmethod def parse_categories(category_string): return tuple( tuple(_category_to_tuple(_cat) for _cat in _set.split(',')) for _set in category_string.split() ) @staticmethod def categories_to_string(categories): return ' '.join(','.join("%s=%s" % y for y in x) for x in categories) def get_options(self, name, suite=None): return self._options[suite, name] @nottest def recordTestData(self, name, value): """A method for recording data associated with a test. This method is only meaningful when running this TestCase with 'nose', using the TestData plugin. """ tmp = getattr(self, 'testdata', None) if not tmp is None: tmp[name] = value def shortDescription(self): # Disable nose's use of test docstrings for the test description. return None def assertMatchesXmlBaseline(self, testfile, baseline, delete=True, tolerance=0.0, exact=False): try: import pyutilib.misc pyutilib.misc.compare_xml_files( baseline, testfile, tolerance=tolerance, exact=exact) if delete: os.remove(testfile) except Exception: err = sys.exc_info()[1] self.fail("XML testfile does not match the baseline:\n testfile=" + testfile + "\n baseline=" + baseline + "\n" + str( err)) def assertMatchesYamlBaseline(self, testfile, baseline, delete=True, tolerance=0.0, exact=False): try: import pyutilib.misc pyutilib.misc.compare_yaml_files( baseline, testfile, tolerance=tolerance, exact=exact) if delete: os.remove(testfile) except Exception: err = sys.exc_info()[1] self.fail("YAML testfile does not match the baseline:\n testfile=" + testfile + "\n baseline=" + baseline + "\n" + str( err)) def assertMatchesJsonBaseline(self, testfile, baseline, delete=True, tolerance=0.0, exact=False): try: import pyutilib.misc pyutilib.misc.compare_json_files( baseline, testfile, tolerance=tolerance, exact=exact) if delete: os.remove(testfile) except Exception: err = sys.exc_info()[1] self.fail("JSON testfile does not match the baseline:\n testfile=" + testfile + "\n baseline=" + baseline + "\n" + str( err)) def assertFileEqualsBaseline(self, testfile, baseline, filter=None, delete=True, tolerance=None): import pyutilib.misc [flag, lineno, diffs] = pyutilib.misc.compare_file( testfile, baseline, filter=filter, tolerance=tolerance) if not flag: if delete: os.remove(testfile) else: #pragma:nocover self.fail("Unexpected output difference at line " + str( lineno) + ":\n testfile=" + testfile + "\n baseline=" + baseline + "\nDiffs:\n" + diffs) return [flag, lineno] def assertFileEqualsLargeBaseline(self, testfile, baseline, delete=True): import pyutilib.misc flag = pyutilib.misc.compare_large_file(testfile, baseline) if not flag: if delete: os.remove(testfile) else: #pragma:nocover self.fail("Unexpected output difference:\n testfile=" + testfile + "\n baseline=" + baseline) return flag def assertFileEqualsBinaryFile(self, testfile, baseline, delete=True): theSame = filecmp.cmp(testfile, baseline) if theSame: if delete: os.remove(testfile) else: #pragma:nocover self.fail("Unexpected output difference:\n testfile=" + testfile + "\n baseline=" + baseline) return theSame @nottest def add_fn_test(cls, name=None, suite=None, fn=None, options=None): if fn is None: print("ERROR: must specify the 'fn' option to define the test") return if name is None: print("ERROR: must specify the 'name' option to define the test") return tmp = name.replace("/", "_") tmp = tmp.replace("\\", "_") tmp = tmp.replace(".", "_") func = lambda self, c1=fn, c2=name, c3=suite: _run_fn_test(self, c1, c2, c3) func.__name__ = "test_" + str(tmp) func.__doc__ = "function test: "+func.__name__+ \ " ("+str(cls.__module__)+'.'+str(cls.__name__)+")" setattr(cls, "test_" + tmp, func) cls._options[suite, name] = options add_fn_test = classmethod(add_fn_test) @nottest def add_baseline_test(cls, name=None, cmd=None, fn=None, baseline=None, filter=None, cwd=None, cmdfile=None, tolerance=None, outfile=None, exact=False, forceskip=False): if cmd is None and fn is None: print( "ERROR: must specify either the 'cmd' or 'fn' option to define how the output file is generated") return if name is None: print("ERROR: must specify the test name") return if baseline is None: baseline = os.path.abspath(name + ".txt") tmp = name.replace("/", "_") tmp = tmp.replace("\\", "_") tmp = tmp.replace(".", "_") if outfile is None: (dirname, basename) = os.path.split(baseline) if '.' in basename: outfile = os.path.join(dirname, basename.rpartition('.')[0] + '.out') else: outfile = baseline + '.out' # # Create an explicit function so we can assign it a __name__ attribute. # This is needed by the 'nose' package # if fn is None: func = lambda self,c1=cwd,c2=cmd,c3=os.path.abspath(outfile),c4=baseline,c5=filter,c6=cmdfile,c7=tolerance,c8=exact,c9=forceskip: _run_cmd_baseline_test(self,cwd=c1,cmd=c2,outfile=c3,baseline=c4,filter=c5,cmdfile=c6,tolerance=c7,exact=c8,forceskip=c9) else: func = lambda self,c1=fn,c2=name,c3=baseline,c4=filter,c5=tolerance,c6=forceskip: _run_fn_baseline_test(self,fn=c1,name=c2,baseline=c3,filter=c4,tolerance=c5,forceskip=c6) func.__name__ = "test_" + tmp func.__doc__ = "baseline test: "+func.__name__+ \ " ("+str(cls.__module__)+'.'+str(cls.__name__)+")" if fn is None and not cmdfile is None: func.__doc__ += " Command archived in " + os.path.abspath(cmdfile) setattr(cls, "test_" + tmp, func) add_baseline_test = classmethod(add_baseline_test) @nottest def add_import_test(cls, module=None, name=None, cwd=None, baseline=None, filter=None, tolerance=None, outfile=None): if module is None and name is None: print("ERROR: must specify the module that is imported") return if module is None: module = name if name is None: print("ERROR: must specify test name") return if baseline is None: baseline = name + ".txt" tmp = name.replace("/", "_") tmp = tmp.replace("\\", "_") tmp = tmp.replace(".", "_") if outfile is None: (dirname, basename) = os.path.split(baseline) if '.' in basename: outfile = os.path.join(dirname, basename.rpartition('.')[0] + '.out') else: outfile = baseline + '.out' # # Create an explicit function so we can assign it a __name__ attribute. # This is needed by the 'nose' package # func = lambda self,c1=cwd,c2=module,c3=outfile,c4=baseline,c5=filter,c6=tolerance: _run_import_baseline_test(self,cwd=c1,module=c2,outfile=c3,baseline=c4,filter=c5,tolerance=c6) func.__name__ = "test_" + tmp func.__doc__ = "import test: " + func.__name__ setattr(cls, "test_" + tmp, func) add_import_test = classmethod(add_import_test) pyutilib-6.0.0/pyutilib/th/runtests.py000066400000000000000000000172551367314503500201140ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ import sys try: import nose import nose.plugins except ImportError: print("This testing utility requires the 'nose' Python testing tool") sys.exit(1) try: import nosexunit import nosexunit.plugin nose_xunit_installed = True except ImportError: nose_xunit_installed = False try: import coverage import nose.plugins.cover coverage_installed = True except ImportError: coverage_installed = False import re import logging import os import os.path import glob import copy from optparse import OptionParser # Ignore exceptions that occur during a logging statement logging.raiseExceptions = 0 class UnwantedPackagePlugin(nose.plugins.Plugin): enabled = True name = "unwanted-package" def __init__(self, unwanted): self.unwanted = unwanted def configure(self, options, conf): pass def wantDirectory(self, dirname): want = None if os.path.basename(dirname) in self.unwanted: want = False return want def generate_options(package, packages, subpackages, filter, options, testdir, xunitdir, dirname): if not type(packages) is list: tmp = [packages] else: tmp = packages newargs = [] if options.xunit: newargs = ['--with-xunit', '--xunit-file', xunitdir + os.sep + 'TEST-' + package + '.xml'] #if coverage_installed: #newargs = newargs + ['--source-folder', '.'] if coverage_installed: newargs = newargs + ['--with-coverage', '--cover-erase', '--cover-inclusive', '--cover-package', package] if options.filtering or options.filtering_all: for item in filter: newargs.append('--cover-filter=' + item) if len(tmp) > 0: for item in subpackages: if not item in tmp: newargs.append('--cover-filter=' + package + '.' + item) if options.verbose: newargs = newargs + ['--verbosity=3'] newargs = newargs + ['--where', dirname] return newargs def main(argv, package, subpackages, filter, testdir, dirname="test"): parser = OptionParser() parser.add_option( "--no-xunit", help="Disable generation of XUnit XML summary", action="store_false", dest="xunit", default=True) parser.add_option( "-v", "--verbose", help="Provide verbose output", action="store_true", dest="verbose", default=False) parser.add_option( "-f", "--filter", help="Enable filtering of coverage tests with a customized nose installation", action="store_true", dest="filtering", default=False) parser.add_option( "-F", "--filter-all", help="Apply nose to all packages, filtering each coverage test", action="store_true", dest="filtering_all", default=False) parser.usage = "runtests [options] [...]" parser.description = "A utility to run Pyomo tests. A particular feature of this tool is the ability to filter coverage information, using a customized installation of the nose utility." parser.epilog = """The customized nose utility that supports filtering can be obtained from Bill Hart (wehart@sandia.gov).""" # # Process argv list # (options, args) = parser.parse_args(args=argv) # # Preprocess arguments, to eliminate trailing '/' or '\\' characters, which a user # might add using tab completion. # for i in range(0, len(args)): if args[i][-1] == os.sep: args[i] = args[i][:-1] # # Verify that the arguments are valid subpackages # unwanted = copy.copy(subpackages) for arg in args[1:]: if not arg in subpackages: print("ERROR: no subpackage '" + arg) sys.exit(1) unwanted.remove(arg) if unwanted == subpackages: unwanted = [] # # Remove coverage files from previous 'runtests' executions # coverage_file = testdir + os.sep + dirname + os.sep + ".coverage" if os.path.exists(coverage_file): os.remove(coverage_file) os.environ["COVERAGE_FILE"] = coverage_file #for file in glob.glob("*/.coverage"): #os.remove(file) #for file in glob.glob("*/*/.coverage"): #os.remove(file) # # Remove XML files from previous 'runtests' executions # xunitdir = testdir + os.sep + dirname + os.sep + "xunit" if os.path.exists(xunitdir): for file in glob.glob(xunitdir + os.sep + "TEST*.xml"): os.remove(file) else: os.mkdir(xunitdir) plugins = [UnwantedPackagePlugin(unwanted)] #if nose_xunit_installed and options.xunit: #plugins.append(nosexunit.plugin.NoseXUnit()) #if coverage_installed: #plugins.append(nose.plugins.cover.Coverage()) #plugins.append(nose.plugins.xunit.Xunit()) if not options.filtering_all: newargs = ['runtests'] + generate_options( package, args[1:], subpackages, filter, options, testdir, xunitdir, dirname) + args[1:] os.chdir(testdir) if options.verbose: print("Nose Arguments:", newargs) print("Test Dir:", testdir) if len(args) > 1: print("Test Packages:",) for arg in args[1:]: print(arg,) print("") if len(unwanted) > 1: print("Ignored Packages:", unwanted) sys.argv = newargs nose.run(argv=newargs, addplugins=plugins) else: if len(args[1:]) == 0: arglist = subpackages else: arglist = args[1:] for arg in arglist: newargs = ['runtests'] + generate_options(arg, options) + [arg] print("Package Coverage Tests: " + arg) tmp = sys.stdout os.chdir(testdir) if options.verbose: print("Nose Arguments:", newargs) print("Test Dir:", testdir) if len(args) > 1: print("Test Packages:",) for arg in args[1:]: print(arg,) print("") if len(unwanted) > 1: print("Ignored Packages:", unwanted) nose.run(argv=newargs, addplugins=plugins) sys.stdout = tmp # # Rename xUnit files and insert the package information # if os.path.exists(xunitdir): p = re.compile('^.*TEST-(.+)\.xml') for file in glob.glob(xunitdir + os.sep + "TEST-*.xml"): oldname = p.match(file).group(1) if oldname == "test": suffix = "" else: suffix = "." + oldname FILE = open(file, "r") text0 = "".join(FILE.readlines()) FILE.close() ptmp = re.compile("testsuite name=\"nosetests\"") text1 = ptmp.sub("testsuite name=\"" + package + "\"", text0) #ptmp = re.compile("classname=\""+oldname) #text2 = ptmp.sub("classname=\""+package+suffix, text1) #FILE = open(xunitdir+os.sep+"TEST-"+package+suffix+".xml","w") FILE = open(file, "w") FILE.write(text1) FILE.close() #os.remove(file) pyutilib-6.0.0/pyutilib/th/tests/000077500000000000000000000000001367314503500170035ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/th/tests/__init__.py000066400000000000000000000000241367314503500211100ustar00rootroot00000000000000# pyutilib.th tests pyutilib-6.0.0/pyutilib/th/tests/file1.txt000066400000000000000000000000131367314503500205360ustar00rootroot00000000000000Test file1 pyutilib-6.0.0/pyutilib/th/tests/file1.txt.gz000066400000000000000000000000511367314503500211570ustar00rootroot00000000000000‹:Â/Mfile1.txt I-.QHËÌI5ä?ßLé pyutilib-6.0.0/pyutilib/th/tests/file1.zip000066400000000000000000000002411367314503500205240ustar00rootroot00000000000000PK 7£->?ßLé file1.txtUT :Â/M:Â/MUxîkîkTest file1 PK 7£->?ßLé ´file1.txtUT:Â/MUxPKDGpyutilib-6.0.0/pyutilib/th/tests/file2.txt000066400000000000000000000000131367314503500205370ustar00rootroot00000000000000Test file2 pyutilib-6.0.0/pyutilib/th/tests/file2.txt.gz000066400000000000000000000000511367314503500211600ustar00rootroot00000000000000‹4Â/Mfile2.txt I-.QHËÌI5âüŒa pyutilib-6.0.0/pyutilib/th/tests/file2.zip000066400000000000000000000002411367314503500205250ustar00rootroot00000000000000PK 4£->üŒa file2.txtUT 4Â/M4Â/MUxîkîkTest file2 PK 4£->üŒa ´file2.txtUT4Â/MUxPKDGpyutilib-6.0.0/pyutilib/th/tests/file3.zip000066400000000000000000000004541367314503500205340ustar00rootroot00000000000000PK 7£->?ßLé file1.txtUT :Â/M:Â/MUxîkîkTest file1 PK 4£->üŒa file2.txtUT 4Â/M4Â/MUxîkîkTest file2 PK 7£->?ßLé ´file1.txtUT:Â/MUxPK 4£->üŒa ´Gfile2.txtUT4Â/MUxPKˆŽpyutilib-6.0.0/pyutilib/th/tests/test_misc.py000066400000000000000000000134651367314503500213600ustar00rootroot00000000000000import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest class Tester(unittest.TestCase): def test1(self): self.assertFileEqualsBaseline( currdir + 'file1.txt', currdir + 'file1.txt', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.txt', currdir + 'file2.txt', delete=False) @unittest.expectedFailure def test2(self): self.assertFileEqualsBaseline( currdir + 'file1.txt', currdir + 'file2.txt', delete=False) def test3(self): self.assertFileEqualsBaseline( currdir + 'file1.txt', currdir + 'file1.zip', delete=False) self.assertFileEqualsBaseline( currdir + 'file1.zip', currdir + 'file1.txt', delete=False) self.assertFileEqualsBaseline( currdir + 'file1.zip', currdir + 'file1.zip', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.txt', currdir + 'file2.zip', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.zip', currdir + 'file2.txt', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.zip', currdir + 'file2.zip', delete=False) def test3gz(self): self.assertFileEqualsBaseline( currdir + 'file1.txt', currdir + 'file1.txt.gz', delete=False) self.assertFileEqualsBaseline( currdir + 'file1.txt.gz', currdir + 'file1.txt', delete=False) self.assertFileEqualsBaseline( currdir + 'file1.txt.gz', currdir + 'file1.txt.gz', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.txt', currdir + 'file2.txt.gz', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.txt.gz', currdir + 'file2.txt', delete=False) self.assertFileEqualsBaseline( currdir + 'file2.txt.gz', currdir + 'file2.txt.gz', delete=False) @unittest.expectedFailure def test4(self): self.assertFileEqualsBaseline( currdir + 'file1.txt', currdir + 'file3.zip', delete=False) @unittest.expectedFailure def test5(self): self.assertFileEqualsBaseline( currdir + 'file3.zip', currdir + 'file1.txt', delete=False) @unittest.expectedFailure def test6(self): self.assertFileEqualsBaseline( currdir + 'file1.zip', currdir + 'file3.txt', delete=False) @unittest.expectedFailure def test7(self): self.assertFileEqualsBaseline( currdir + 'file3.zip', currdir + 'file3.zip', delete=False) @unittest.expectedFailure def test8(self): self.assertFileEqualsBaseline( currdir + 'file1.zip', currdir + 'file2.zip', delete=False) @unittest.expectedFailure def test8gz(self): self.assertFileEqualsBaseline( currdir + 'file1.txt.gz', currdir + 'file2.txt.gz', delete=False) class TesterL(unittest.TestCase): def test1(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.txt', currdir + 'file1.txt', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.txt', currdir + 'file2.txt', delete=False) @unittest.expectedFailure def test2(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.txt', currdir + 'file2.txt', delete=False) def test3(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.txt', currdir + 'file1.zip', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file1.zip', currdir + 'file1.txt', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file1.zip', currdir + 'file1.zip', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.txt', currdir + 'file2.zip', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.zip', currdir + 'file2.txt', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.zip', currdir + 'file2.zip', delete=False) def test3gz(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.txt', currdir + 'file1.txt.gz', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file1.txt.gz', currdir + 'file1.txt', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file1.txt.gz', currdir + 'file1.txt.gz', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.txt', currdir + 'file2.txt.gz', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.txt.gz', currdir + 'file2.txt', delete=False) self.assertFileEqualsLargeBaseline( currdir + 'file2.txt.gz', currdir + 'file2.txt.gz', delete=False) @unittest.expectedFailure def test4(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.txt', currdir + 'file3.zip', delete=False) @unittest.expectedFailure def test5(self): self.assertFileEqualsLargeBaseline( currdir + 'file3.zip', currdir + 'file1.txt', delete=False) @unittest.expectedFailure def test6(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.zip', currdir + 'file3.txt', delete=False) @unittest.expectedFailure def test7(self): self.assertFileEqualsLargeBaseline( currdir + 'file3.zip', currdir + 'file3.zip', delete=False) @unittest.expectedFailure def test8(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.zip', currdir + 'file2.zip', delete=False) @unittest.expectedFailure def test8gz(self): self.assertFileEqualsLargeBaseline( currdir + 'file1.txt.gz', currdir + 'file2.txt.gz', delete=False) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/th/tests/test_pyunit.py000066400000000000000000000150441367314503500217500ustar00rootroot00000000000000import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest class TestNoCategory(unittest.TestCase): def test_noCategory(self): self.assertRaises( AttributeError, getattr, self.test_noCategory, 'smoke') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'nightly') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'expensive') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'fragile') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'custom') @unittest.category('smoke') def test_smoke(self): self.assertEqual(self.test_smoke.smoke, 1) self.assertEqual(self.test_smoke.nightly, 0) self.assertEqual(self.test_smoke.expensive, 0) self.assertEqual(self.test_smoke.fragile, 0) self.assertRaises( AttributeError, getattr, self.test_smoke, 'custom') @unittest.category('expensive') def test_expensive(self): self.assertEqual(self.test_expensive.smoke, 0) self.assertEqual(self.test_expensive.nightly, 0) self.assertEqual(self.test_expensive.expensive, 1) self.assertEqual(self.test_expensive.fragile, 0) self.assertRaises( AttributeError, getattr, self.test_expensive, 'custom') @unittest.category('!expensive') def test_notExpensive(self): self.assertEqual(self.test_notExpensive.smoke, 0) self.assertEqual(self.test_notExpensive.nightly, 0) self.assertEqual(self.test_notExpensive.expensive, 0) self.assertEqual(self.test_notExpensive.fragile, 0) self.assertRaises( AttributeError, getattr, self.test_notExpensive, 'custom') @unittest.category('fragile') def test_fragile(self): self.assertRaises( AttributeError, getattr, self.test_noCategory, 'smoke') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'nightly') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'expensive') self.assertEqual(self.test_fragile.fragile, 1) self.assertRaises( AttributeError, getattr, self.test_notExpensive, 'custom') @unittest.category('fragile','smoke') def test_fragile_smoke(self): self.assertEqual(self.test_fragile_smoke.smoke, 1) self.assertEqual(self.test_fragile_smoke.nightly, 0) self.assertEqual(self.test_fragile_smoke.expensive, 0) self.assertEqual(self.test_fragile_smoke.fragile, 1) self.assertRaises( AttributeError, getattr, self.test_notExpensive, 'custom') @unittest.category('custom') def test_custom(self): self.assertEqual(self.test_custom.smoke, 0) self.assertEqual(self.test_custom.nightly, 0) self.assertEqual(self.test_custom.expensive, 0) self.assertEqual(self.test_custom.fragile, 0) self.assertEqual(self.test_custom.custom, 1) @unittest.category('custom','smoke') def test_multi(self): self.assertEqual(self.test_multi.smoke, 1) self.assertEqual(self.test_multi.nightly, 0) self.assertEqual(self.test_multi.expensive, 0) self.assertEqual(self.test_multi.fragile, 0) self.assertEqual(self.test_multi.custom, 1) @unittest.category('expensive') class TestExpensive(unittest.TestCase): def test_noCategory(self): self.assertRaises( AttributeError, getattr, self.test_noCategory, 'smoke') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'nightly') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'expensive') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'fragile') self.assertRaises( AttributeError, getattr, self.test_noCategory, 'custom') @unittest.category('smoke') def test_smoke(self): self.assertEqual(self.test_smoke.smoke, 1) self.assertEqual(self.test_smoke.nightly, 0) self.assertEqual(self.test_smoke.expensive, 1) self.assertEqual(self.test_smoke.fragile, 0) self.assertRaises( AttributeError, getattr, self.test_smoke, 'custom') @unittest.category('expensive') def test_expensive(self): self.assertEqual(self.test_expensive.smoke, 0) self.assertEqual(self.test_expensive.nightly, 0) self.assertEqual(self.test_expensive.expensive, 1) self.assertEqual(self.test_expensive.fragile, 0) self.assertRaises( AttributeError, getattr, self.test_expensive, 'custom') @unittest.category('!expensive') def test_notExpensive(self): self.assertEqual(self.test_notExpensive.smoke, 0) self.assertEqual(self.test_notExpensive.nightly, 0) self.assertEqual(self.test_notExpensive.expensive, 0) self.assertEqual(self.test_notExpensive.fragile, 0) self.assertRaises( AttributeError, getattr, self.test_notExpensive, 'custom') @unittest.category('fragile') def test_fragile(self): self.assertEqual(self.test_fragile.smoke, 0) self.assertEqual(self.test_fragile.nightly, 0) self.assertEqual(self.test_fragile.expensive, 1) self.assertEqual(self.test_fragile.fragile, 1) self.assertRaises( AttributeError, getattr, self.test_notExpensive, 'custom') @unittest.category('fragile','smoke') def test_fragile_smoke(self): self.assertEqual(self.test_fragile_smoke.smoke, 1) self.assertEqual(self.test_fragile_smoke.nightly, 0) self.assertEqual(self.test_fragile_smoke.expensive, 1) self.assertEqual(self.test_fragile_smoke.fragile, 1) self.assertRaises( AttributeError, getattr, self.test_notExpensive, 'custom') @unittest.category('custom') def test_custom(self): self.assertEqual(self.test_custom.smoke, 0) self.assertEqual(self.test_custom.nightly, 0) self.assertEqual(self.test_custom.expensive, 1) self.assertEqual(self.test_custom.fragile, 0) self.assertEqual(self.test_custom.custom, 1) @unittest.category('custom','smoke') def test_multi(self): self.assertEqual(self.test_multi.smoke, 1) self.assertEqual(self.test_multi.nightly, 0) self.assertEqual(self.test_multi.expensive, 1) self.assertEqual(self.test_multi.fragile, 0) self.assertEqual(self.test_multi.custom, 1) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/workflow/000077500000000000000000000000001367314503500171005ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/workflow/__init__.py000066400000000000000000000021351367314503500212120ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ import pyutilib.component.core pyutilib.component.core.PluginGlobals.add_env("pyutilib.workflow") from pyutilib.workflow.resource import Resource from pyutilib.workflow.task import Task, EmptyTask, Component, Port, Ports, InputPorts, OutputPorts, Connector from pyutilib.workflow.workflow import Workflow from pyutilib.workflow.file import FileResource from pyutilib.workflow.executable import ExecutableResource from pyutilib.workflow.tasks import TaskPlugin, TaskFactory, WorkflowPlugin from pyutilib.workflow.driver import TaskDriver from pyutilib.workflow.functor import functor_api, IFunctorTask, FunctorAPIFactory, FunctorAPIData pyutilib.component.core.PluginGlobals.pop_env() pyutilib-6.0.0/pyutilib/workflow/driver.py000066400000000000000000000044011367314503500207440ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['TaskDriver'] import argparse from pyutilib.misc import Options from pyutilib.workflow import tasks class TaskDriver(object): def __init__(self, **kwargs): if not 'formatter_class' in kwargs: kwargs['formatter_class'] = argparse.RawDescriptionHelpFormatter self.parser = argparse.ArgumentParser(**kwargs) #self.parser.add_argument('--help-commands', dest='help_commands', action='store_true', default=False, help="Print a list of available subcommands") self.subparsers = self.parser.add_subparsers( help='Sub-commands', dest='subparser_name') self.wf = {} def register_task(self, wf, name=None, help=''): if name is None: name = wf ans = tasks.TaskFactory( wf, parser=self.subparsers.add_parser( name, help=help)) if ans is None: raise ValueError( "Unknown workflow task '%s'\n Available tasks: %s" % (wf, ' '.join(tasks.TaskFactory().services()))) ans._parser.set_defaults(subparser_name=name) ans.set_arguments() self.wf[name] = ans def print_help(self): self.parser.print_help() #pragma:nocover def parse_args(self, args=None): # # Call the parser to parse the arguments # if args is None: # sys.argv arguments ret = self.parser.parse_args() else: # args arguments ret = self.parser.parse_args(args) # # Set options, based on the parser return value. # The parser options are passed into the workflow. # opt = Options() for key in dir(ret): if key[0] != '_' and key != 'subparser_name': opt[key] = getattr(ret, key) return self.wf[ret.subparser_name](opt) pyutilib-6.0.0/pyutilib/workflow/executable.py000066400000000000000000000027671367314503500216070ustar00rootroot00000000000000__all__ = ['ExecutableResource'] import os.path from pyutilib.workflow import resource import pyutilib.services import pyutilib.subprocess # TODO: add support for logging class ExecutableResource(resource.Resource): def __init__(self, name=None, executable=None): resource.Resource.__init__(self) if name is None and not executable is None: name = os.path.basename(executable) if executable is None: executable = name self.register(name, executable) def register(self, name, executable): self.filename = executable if name is None: # TBD: when is this branch executed? self.description = "Executable" + self.id self.name = self.description else: self.description = "Executable_" + name self.name = name pyutilib.services.register_executable(executable) def run(self, args, logfile=None, debug=False): executable = pyutilib.services.registered_executable(self.filename) if executable is None: # TBD: tests generating this error do not cause global exceptions in a workflow ... raise IOError("Cannot find executable '%s'" % self.filename) cmd = executable.get_path() + " " + args if debug: print("Running... %s" % cmd) pyutilib.subprocess.run(cmd, outfile=logfile) def available(self): return not pyutilib.services.registered_executable( self.filename) is None pyutilib-6.0.0/pyutilib/workflow/file.py000066400000000000000000000005561367314503500203770ustar00rootroot00000000000000__all__ = ['FileResource'] import os.path from pyutilib.workflow import resource class FileResource(resource.Resource): def __init__(self, name=None): resource.Resource.__init__(self) self.filename = name if name is None: self.name = "File" + self.id else: self.name = "File_" + os.path.basename(name) pyutilib-6.0.0/pyutilib/workflow/functor.py000066400000000000000000000327631367314503500211450ustar00rootroot00000000000000""" Defining a Functor-specific task class """ __all__ = ['functor_api', 'IFunctorTask', 'FunctorAPIFactory', 'FunctorAPIData'] import inspect import logging from pyutilib.workflow.tasks import TaskPlugin import pyutilib.component.core import pyutilib.misc logger = logging.getLogger('pyutilib.workflow') class FunctorAPIData(dict): """ A generalization of pyutilib.misc.Bunch. This class counts access to attributes, and it generates errors for undefined attributes. """ def __init__(self, **kw): dict.__init__(self, kw) self.__dict__.update(kw) self._declared_ = set() self.clean() def clean(self): self._dirty_ = set() def unused(self): for k, v in self.__dict__.items(): if not k in self._dirty_: yield k def declare(self, args): if type(args) in (list, tuple, set): self._declared_.update(args) else: self._declared_.add(args) def update(self, d): self.__dict__.update(d) def __setitem__(self, name, val): self.__setattr__(name, val) def __getitem__(self, name): return self.__getattr__(name) def __setattr__(self, name, val): if name[0] != '_': if len(self._declared_) > 0 and not name in self._declared_: raise AttributeError("Undeclared attribute '%s'" % name) self._dirty_.add(name) dict.__setitem__(self, name, val) self.__dict__[name] = val def __getattr__(self, name): if len(self._declared_) > 0 and not name in self._declared_: raise AttributeError("Undeclared attribute '%s'" % name) try: self._dirty_.add(name) return dict.__getitem__(self, name) except: if name[0] == '_': raise AttributeError("Unknown attribute %s" % name) return None def __repr__(self): return dict.__repr__(self) def __str__(self, nesting=0, indent=''): attrs = [] indentation = indent + " " * nesting for k, v in self.__dict__.items(): if not k.startswith("_"): text = [indentation, k, ":"] if isinstance(v, FunctorAPIData): text.append('\n') text.append(v.__str__(nesting + 1)) else: text.append(' ' + str(v)) attrs.append("".join(text)) attrs.sort() return "\n".join(attrs) class IFunctorTask(pyutilib.component.core.Interface): """Interface for Functor tasks""" FunctorAPIFactory = pyutilib.component.core.CreatePluginFactory(IFunctorTask) class FunctorTask(TaskPlugin): def __init__(self, *args, **kwargs): self._fn = kwargs.pop('fn', None) # TaskPlugin.__init__(self, *args, **kwargs) def execute(self, debug=False): if self._fn is None: #pragma:nocover raise RuntimeError( "This is a bad definition of a FunctorTask. The '_fn' method is not defined") # # Process data # data = self._kwds.get('data', None) if not data is None and type(data) is dict: _data = FunctorAPIData() _data.update(data) self._kwds['data'] = _data data = self._kwds.get('data', None) # # Test nested data # def nested_lookup(kwds, lookup): lookups = lookup.split('.') obj = kwds[lookups[0]] if not data is None and lookups[0] == 'data': data.declare(lookups[1]) for key in lookups[1:]: #print key, obj obj = obj[key] if obj is None: raise ValueError for name in self._nested_requirements: try: nested_lookup(self._kwds, name) except ValueError: raise RuntimeError("None value found for nested attribute '%s'" % name) except: raise RuntimeError( "Failed to verify existence of nested attribute '%s'" % name) # # Call _fn # if 'data' in self._kwargs: data = self._kwds.get('data', None) retval = self._fn(**self._kwds) else: data = self._kwds.pop('data') retval = self._fn(data, **self._kwds) # # Process retval # if retval is None or id(data) == id(retval): self._retval = FunctorAPIData(data=data) elif isinstance(retval, FunctorAPIData): if not id(data) == id(retval): retval.data = data self._retval = retval elif isinstance(retval, dict): self._retval = FunctorAPIData() self._retval.update(retval) else: raise RuntimeError( "A Functor task function must return either None, a FunctorAPIData object, or an instance of dict.") def _call_start(self): self.reset() def _call_init(self, *options, **kwds): if not 'data' in kwds: if len(options) > 0: if len(options) > 1: raise RuntimeError( "A FunctorTask instance can only be executed with a single non-keyword argument") kwds['data'] = options[0] #options = options[1:] elif not self.inputs.data.optional: raise RuntimeError( "A FunctorTask instance must be executed with at 'data' argument") self._kwds = kwds return TaskPlugin._call_init(self, **kwds) def _call_fini(self, *options, **kwds): for key in self._retval: if not key in self.outputs: raise RuntimeError( "Cannot return value '%s' that is not a predefined output of a Functor task" % key) setattr(self, key, self._retval[key]) TaskPlugin._call_fini(self, *options, **kwds) return self._retval # # Decorate functions that are Functor tasks # def functor_api(fn=None, implements=None, outputs=None, namespace=None): def my_decorator(fn): if fn is None: #pragma:nocover logger.error("Error applying decorator. No function value!") return if namespace is None: _alias = fn.__name__ else: _alias = namespace + '.' + fn.__name__ _name = _alias.replace('_', '.') argspec = inspect.getargspec(fn) if not argspec.varargs is None: logger.error( "Attempting to declare Functor task with function '%s' that contains variable arguments" % _alias) return #pragma:nocover if not argspec.keywords is None: logger.error( "Attempting to declare Functor task with function '%s' that contains variable keyword arguments" % _alias) return #pragma:nocover if _alias in FunctorAPIFactory.services(): logger.error( "Cannot define API %s, since this API name is already defined" % _alias) return #pragma:nocover class TaskMeta(pyutilib.component.core.PluginMeta): def __new__(cls, name, bases, d): return pyutilib.component.core.PluginMeta.__new__( cls, "FunctorTask_" + str(_name), bases, d) class FunctorTask_tmp(FunctorTask): __metaclass__ = TaskMeta pyutilib.component.core.alias(_alias) pyutilib.component.core.implements(IFunctorTask) def __init__(self, *args, **kwargs): kwargs['fn'] = fn FunctorTask.__init__(self, *args, **kwargs) if not fn is None: if len(argspec.args) == 0: nargs = 0 elif argspec.defaults is None: nargs = len(argspec.args) else: nargs = len(argspec.args) - len(argspec.defaults) self._kwargs = argspec.args[nargs:] if nargs != 1 and 'data' not in self._kwargs: logger.error("Functor '%s' must have a 'data argument" % _alias) if argspec.defaults is None: _defaults = {} else: _defaults = dict( zip(argspec.args[nargs:], argspec.defaults)) # docinfo = parse_docstring(fn) # if 'data' in docinfo['optional']: self.inputs.declare( 'data', doc='A container of labeled data.', optional=True) else: self.inputs.declare( 'data', doc='A container of labeled data.') for name in argspec.args[nargs:]: if name in docinfo['optional']: self.inputs.declare( name, optional=True, default=_defaults[name], doc=docinfo['optional'][name]) elif name in docinfo['required']: self.inputs.declare( name, doc=docinfo['required'][name]) elif name != 'data': logger.error( "Argument '%s' is not specified in the docstring!" % name) # self.outputs.declare( 'data', doc='A container of labeled data.') if outputs is None: _outputs = list(docinfo['return'].keys()) else: _outputs = outputs for name in _outputs: if name in docinfo['return']: self.outputs.declare( name, doc=docinfo['return'][name]) else: logger.error( "Return value '%s' is not specified in the docstring!" % name) # self._nested_requirements = [] for name in docinfo['required']: if '.' in name: self._nested_requirements.append(name) # # Error check keys for docinfo # for name in docinfo['required']: if '.' in name: continue if not name in self.inputs: logger.error( "Unexpected name '%s' in list of required inputs for functor '%s'" % (name, _alias)) for name in docinfo['optional']: if not name in self.inputs: logger.error( "Unexpected name '%s' in list of optional inputs for functor '%s'" % (name, _alias)) for name in docinfo['return']: if not name in self.outputs: logger.error( "Unexpected name '%s' in list of outputs for functor '%s'" % (name, _alias)) # self.__help__ = fn.__doc__ self.__doc__ = fn.__doc__ self.__short_doc__ = docinfo['short_doc'].strip() self.__long_doc__ = docinfo['long_doc'].strip() self.__namespace__ = namespace return FunctorTask_tmp() if fn is None: return my_decorator return my_decorator(fn) def parse_docstring(fn): """Parse a function docstring for information about the function arguments and return values""" retval = {} retval['short_doc'] = "" retval['long_doc'] = None retval['required'] = {} retval['optional'] = {} retval['return'] = {} curr = None doc = inspect.getdoc(fn) if doc is None: retval['long_doc'] = '' return retval for line in doc.split('\n'): line = line.strip() if line == 'Required:' or line == 'Required Arguments:': curr = 'required' elif line == 'Optional:' or line == 'Optimal Arguments:': curr = 'optional' elif line == 'Return Values:' or line == 'Return:' or line == 'Returned:': curr = 'return' elif curr is None: if retval['long_doc'] is None: if line == '': retval['long_doc'] = '' else: retval['short_doc'] += line retval['short_doc'] += '\n' else: retval['long_doc'] += line retval['long_doc'] += '\n' elif ':' in line: name, desc = line.split(':', 1) retval[curr][name.strip()] = desc.strip() + '\n' else: retval[curr][name.strip()] += line + '\n' if retval['long_doc'] is None: retval['long_doc'] = '' return retval pyutilib-6.0.0/pyutilib/workflow/globals.py000066400000000000000000000012071367314503500210750ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['unique_id', 'reset_id_counter'] def unique_id(): unique_id.counter += 1 return unique_id.counter unique_id.counter = 0 def reset_id_counter(): global unique_id unique_id.counter = 0 pyutilib-6.0.0/pyutilib/workflow/resource.py000066400000000000000000000024701367314503500213040ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['Resource'] from pyutilib.workflow import globals class Resource(object): def __init__(self, id=None, name=None): if not id is None: # TBD: does this ever happen? self.id = id else: self.id = globals.unique_id() if name is None: self.description = "Resource" + str(self.id) self.name = self.description else: # TBD: does this ever happen? self.description = name self.name = name self._busy = False def available(self): return not self._busy #pragma:nocover def lock(self): self._busy = True #pragma:nocover def unlock(self): self._busy = False #pragma:nocover def __repr__(self): return str(self) #pragma:nocover def __str__(self): return "%s" % str(self.name) #pragma:nocover pyutilib-6.0.0/pyutilib/workflow/task.py000066400000000000000000000530271367314503500204230ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """Definitions for workflow task objects.""" __all__ = ['Task', 'EmptyTask', 'Component', 'Port', 'Ports', 'InputPorts', 'OutputPorts', 'Connector', 'DirectConnector'] import argparse import pprint import weakref from pyutilib.misc import Options from pyutilib.workflow import globals class Task(object): """ A Task object represents a single action in a workflow. """ def __init__(self, id=None, name=None, parser=None): """Constructor.""" if not id is None: self.id = id else: self.id = globals.unique_id() if name is None: self.name = "Task" + str(self.id) else: self.name = name self.inputs = InputPorts(self) self.inputs.set_name(self.name + "-inputs") self.outputs = OutputPorts(self) self.outputs.set_name(self.name + "-outputs") self._resources = {} self._predecessors = [] self._create_parser(parser) self.input_controls = InputPorts(self) self.input_controls.set_name(self.name + '-input-controls') self.output_controls = OutputPorts(self) self.output_controls.set_name(self.name + '-output-controls') self.debug = False def add_resource(self, resource): """Add a resource that is required for this task to execute.""" self._resources[resource.name] = resource def resource(self, name): """Return the specified resource object.""" return self._resources[name] def next_tasks(self): """Return the set of tasks that succeed this task in the workflow.""" return set(t.to_port.task() for name in self.outputs for t in self.outputs[name].output_connections) | set( t.to_port.task() for name in self.output_controls for t in self.output_controls[name].output_connections) def prev_tasks(self): """Return the set of tasks that precede this task in the workflow.""" return set([task for name in self.inputs for task in self.inputs[name].from_tasks() if task.id != NoTask.id]) | set( task for task in self._predecessors) | set( [task for name in self.input_controls for task in self.input_controls[name].from_tasks() if task.id != NoTask.id]) def next_task_ids(self): """Return the set of ids for tasks that succeed this task in the workflow.""" return set(task.id for task in self.next_tasks()) def prev_task_ids(self): """Return the set of ids for tasks that precede this task in the workflow.""" return set(task.id for task in self.prev_tasks()) def execute(self, debug=False): """Execute this task.""" raise ValueError( "There is no default execution for an abstract Task object! Task=%s" % self._name()) #pragma:nocover def busy_resources(self): """Return the list of resources that this task is waiting for.""" return [name for name in self._resources if not self._resources[name].available()] def ready(self): if self.busy(): return False for name in self.inputs: #print "XYZ",self.name, name, self.inputs[name].ready(),self.inputs[name]._ready #for connection in self.inputs[name].input_connections: #print "XYZ",self.name, name,connection.from_port._ready, connection.ready(), len(connection.from_port.input_connections), connection.from_port.task.name if not self.inputs[name].ready(): #print "FALSE - input", name #print self.inputs[name] return False for name in self.input_controls: if not self.input_controls[name].ready(): #print "FALSE - control", name return False return True def busy(self): """Return the list of resources that this task is waiting for.""" return len(self.busy_resources()) def __call__(self, *options, **kwds): """Setup inputs and output parameters and execute this task. Copy the inputs into this Task's dictionary, then execute the task, then copy the outputs out of the dictionary. """ self._call_init(*options, **kwds) self.execute() return self._call_fini(*options, **kwds) def _call_init(self, *options, **kwds): self._call_start() busy = self.busy_resources() if len(busy) > 0: raise IOError("Cannot execute task %s. Busy resources: %s" % (self.name, str(busy))) # Set inputs for opt in options: self._set_inputs(opt) self._set_inputs(kwds) # for name, res in self._resources.items(): res.lock() for i in self.outputs: #print "z",i,getattr(self.outputs,i).get_value() setattr(self, i, None) for i in self.inputs: #print "OIUOX",i,self.inputs[i].get_value(),str(self.inputs[i]) # TODO: validate that non-optional inputs have a value other than None self.inputs[i].compute_value() setattr(self, i, self.inputs[i].get_value()) def _call_fini(self, *options, **kwds): for i in self.outputs: #print "Z",i,getattr(self.outputs,i).get_value() # TODO: validate that non-optional outputs have a value other than None self.outputs[i].set_value(getattr(self, i)) for name, res in self._resources.items(): res.unlock() self._call_finish() self.set_ready() # opt = Options() for i in self.outputs: setattr(opt, i, getattr(self.outputs, i).get_value()) return opt def set_options(self, args): """Use a list of command-line options to initialize this task.""" [self.options, args] = self._parser.parse_known_args(args) tmp = {} for action in self._parser._actions: try: val = getattr(self.options, action.dest) tmp[action.dest] = val except: pass self._set_inputs(tmp) def _call_start(self): """This method is executed when the task is started.""" pass def _call_finish(self): """This method is executed when the task is finished.""" pass def _set_inputs(self, options): """Set the inputs from a dictionary.""" for key in options: self.inputs[key].set_value(options[key]) def set_arguments(self, parser=None): if parser is None: return for arg in self._parser_arg: args = arg[0] kwargs = arg[1] self._parser.add_argument(*args, **kwargs) def add_argument(self, *args, **kwargs): self._parser_arg.append([args, kwargs]) self._parser.add_argument(*args, **kwargs) def _create_parser(self, parser=None): """Create the OptionParser object and populate it with option groups.""" if parser is None: self._parser = argparse.ArgumentParser() else: self._parser = parser self._parser_arg = [] self._parser_group = {} self._create_parser_groups() for key in self._parser_group: self._parser.add_argument_group(self._parser_group[key]) def _create_parser_groups(self): """This method is called by the _create_parser method to setup the parser groups that are registered for this task.""" def _repn_(self): tmp = {} tmp['A_TYPE'] = 'Task' tmp['Name'] = self.name tmp['Id'] = self.id tmp['Inputs'] = self.inputs._repn_() tmp['Outputs'] = self.outputs._repn_() tmp['InputControls'] = self.input_controls._repn_() tmp['OutputControls'] = self.output_controls._repn_() return tmp #def __repr__(self): #"""Return a string representation for this task.""" #return pprint.pformat(self._repn_(), 2) def __str__(self): """Return a string representation for this task.""" return pprint.pformat(self._repn_(), 2) def _name(self): return "%s prev: %s next: %s resources: %s" % ( str(self.name), str(sorted(list(self.prev_task_ids()))), str(sorted(list(self.next_task_ids()))), str(sorted(self._resources.keys()))) def reset(self): #print "RESETING "+self.name for i in self.outputs: self.outputs[i].reset() for i in self.output_controls: self.output_controls[i].reset() def set_ready(self): for i in self.outputs: self.outputs[i].set_ready() class Component(Task): """ Alias for the Task class. """ def __init__(self, *args, **kwds): """Constructor.""" Task.__init__(self, *args, **kwds) #pragma:nocover class EmptyTask(Task): def __call__(self, *args, **kwds): """Empty task execution.""" # # An empty task maintains no option parser # def set_options(self, args): """Empty task initialization.""" def set_arguments(self, *args, **kwds): #pragma:nocover raise NotImplementedError #pragma:nocover def add_argument(self, *args, **kwds): #pragma:nocover raise NotImplementedError #pragma:nocover def _create_parser(self, *args, **kwds): self._parser = None self._parser_arg = [] self._parser_group = {} def _create_parser_groups(self): #pragma:nocover raise NotImplementedError #pragma:nocover def define_connection(cls, from_port, to_port): """Define a connection by constructing the specified class.""" # TODO: Generate a warning if required input is connect to an optional output # # Raise an exception if the port action is store and there already exists a connection. # if to_port.action == 'store' and len(to_port.input_connections) == 1: raise ValueError( "Cannot connect to task %s port %s from task %s port %s. This port is already connected from task %s port %s" % (to_port.task().name, to_port.name, from_port.task().name, from_port.name, to_port.input_connections[0].from_port.task().name, to_port.input_connections[0].from_port.name)) # #print 'connecting',from_port.task.id, to_port.task.id connector = cls(from_port=from_port, to_port=to_port) to_port.input_connections.append(connector) from_port.output_connections.append(connector) class Port(object): """A class that represents an input or output port on a task.""" def __init__(self, name, task, optional=False, value=None, action=None, constant=False, default=None, doc=None): """Constructor.""" self.name = name # tasks are stored as weak refs, to prevent issues with cyclic dependencies and the garbage collector. self.task = weakref.ref(task) if action is None: self.action = 'store' else: self.action = action self.optional = optional self.constant = constant self.input_connections = [] self.output_connections = [] self.set_value(value) self._ready = False self.default = default self.doc = doc def reset(self): self._ready = False self.value = None def connect(self, port): """Define a connection with the specified port.""" define_connection(DirectConnector, from_port=port, to_port=self) def from_tasks(self): """Return the id of the preceding task.""" return [c.from_port.task() for c in self.input_connections if c.from_port.task() != None] def get_value(self): """Get the value of this port.""" if self.value is None: return self.default return self.value def set_value(self, value): """Set the value of this port.""" self.value = value def compute_value(self): """Compute the value from the input connections.""" #print 'X',self.name, self.action, len(self.input_connections) if self.action == 'store': if len(self.input_connections) == 1: val = self.input_connections[0].get_value() if not val is None: self.value = val elif self.action == 'store_any': for connection in self.input_connections: if not connection.ready(): continue val = connection.get_value() if not val is None: self.value = val break elif self.action in ['append', 'append_any']: tmp = [] for connection in self.input_connections: val = connection.get_value() if not val is None: tmp.append(val) if len(tmp) > 0: self.value = tmp elif self.action in ['map', 'map_any']: tmp = {} for connection in self.input_connections: val = connection.get_value() if not val is None: tmp[connection.from_port.task().id] = val if len(tmp) > 0: self.value = tmp self.validate() def validate(self): if self.action in ['store', 'store_any']: if not self.optional and self.get_value() is None: raise ValueError( "Task %s Port %s requires a nontrivial value. Value specified is None." % (str(self.task().id), self.name)) # elif self.action in ['append', 'append_any']: if not self.optional and self.get_value() is None: raise ValueError( "Task %s Port %s requires a nontrivial value. All input connections have value None." % (str(self.task().id), self.name)) # elif self.action in ['map', 'map_any']: if not self.optional and self.get_value() is None: raise ValueError( "Task %s Port %s requires a nontrivial value. All input connections have value None." % (str(self.task().id), self.name)) def _repn_(self): tmp = {} tmp['A_TYPE'] = 'Port' tmp['Name'] = self.name tmp['Task'] = str(self.task().id) tmp['Optional'] = str(self.optional) tmp['Constant'] = str(self.constant) tmp['Value'] = str(self.value) tmp['Ready'] = str(self.ready()) tmp['Action'] = self.action tmp['Connections'] = {} tmp['Connections']['Inputs'] = [] for c in self.input_connections: tmp['Connections']['Inputs'].append(repr(c)) tmp['Connections']['Outputs'] = [] for c in self.output_connections: tmp['Connections']['Outputs'].append(repr(c)) return tmp def __repr__(self): return str(self) #pragma:nocover def __str__(self, indentation=""): return pprint.pformat(self._repn_(), 2) #pragma:nocover def ready(self): if not self.get_value() is None: return True if len(self.input_connections) == 0: return self._ready if self.action == 'store': return self.input_connections[0].ready() elif self.action in ['append_any', 'map_any', 'store_any']: for connection in self.input_connections: if connection.ready(): return True return False elif self.action in ['append', 'map']: for connection in self.input_connections: if not connection.ready(): return False return True # # We should never get here. # raise IOError( "WARNING: unknown action: " + self.action) #pragma:nocover def set_ready(self): self._ready = True class Ports(dict): """A class that specifies a set of ports.""" def __init__(self, task): """Constructor.""" self._name_ = 'Ports' # tasks are stored as weak refs, to prevent issues with cyclic dependencies and the garbage collector. self._task = weakref.ref(task) self._inputs = False self._outputs = False def set_name(self, name): """Set the name of this class instance.""" self._name_ = name def declare(self, name, optional=False, action=None, constant=False, default=None, doc=None): """Declare a port.""" port = Port( name, self._task(), optional=optional, action=action, constant=constant, default=default, doc=doc) setattr(self, name, port) return port def __setitem__(self, name, val): """Overload this operator to set an attribute with the specified name.""" self.__setattr__(name, val) def __getitem__(self, name): """Overload this operator to get the attribute with the specified name.""" return self.__getattr__(name) def __setattr__(self, name, val): """Overload this operator to setup a connection.""" # # Directly set attributes whose names begin with '_' # if name[0] == '_': self.__dict__[name] = val return # # Declare a port # if not name in self.__dict__: if not isinstance(val, Port): raise TypeError( "Error declaring port '%s' without a Port object" % name) dict.__setitem__(self, name, val) self.__dict__[name] = val # # Create a connection to another port # else: if not isinstance(val, Port): self.__dict__[name].set_value(val) else: self.__dict__[name].connect(val) def __getattr__(self, name): """Overload this operator to setup a connection.""" try: return self.__dict__.__getitem__(name) except: raise AttributeError("Unknown attribute '%s'" % name) def _repn_(self): tmp = {} tmp['A_TYPE'] = 'Port' for k, v in self.__dict__.items(): if not k.startswith("_"): tmp[k] = v._repn_() tmp['Name'] = self._name_ if self._inputs: tmp['Mode'] = 'inputs' if self._outputs: tmp['Mode'] = 'outputs' # JPW: a port can't really exist independently of a task - we should check # this in the constructor. if self._task is not None: tmp['Owner'] = self._task()._name() return tmp def __repr__(self): #pragma:nocover """Return a string representation of these connections.""" attrs = sorted("%s = %r" % (k, v) for k, v in self.__dict__.items() if not k.startswith("_")) return "%s(%s)" % (self.__class__.__name__, ", ".join(attrs)) def __str__(self, nesting=1, indent='', print_name=True): return pprint.pformat(self._repn_(), 2, width=150) class InputPorts(Ports): """A class that is used to manage set of input ports.""" def __init__(self, task): """Constructor.""" Ports.__init__(self, task) self._inputs = True class OutputPorts(Ports): """A class that is used to manage set of output ports.""" def __init__(self, task): """Constructor.""" Ports.__init__(self, task) self._outputs = True class Connector(object): def __init__(self, from_port=None, to_port=None): """Constructor.""" if from_port is None: self.from_port = NoTask #pragma:nocover else: self.from_port = from_port if to_port is None: self.to_port = NoTask #pragma:nocover else: self.to_port = to_port def get_value(self): raise ValueError( "There is no value to get in an abstract Connector object!") #pragma:nocover def ready(self): return self.from_port.ready() def __repr__(self): """Return a string representation for this connection.""" return str(self) def __str__(self): """Return a string representation for this connection.""" return "%s: from=(%s) to=(%s) %s" % ( str(self.__class__.__name__), str(self.from_port.task().id), str(self.to_port.task().id), self.ready()) class DirectConnector(Connector): def __init__(self, from_port=None, to_port=None): Connector.__init__(self, from_port=from_port, to_port=to_port) def get_value(self): if self.ready(): return self.from_port.get_value() return None # A task instance that represents no task. NoTask = EmptyTask(id=0) pyutilib-6.0.0/pyutilib/workflow/tasks.py000066400000000000000000000061261367314503500206040ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ __all__ = ['TaskPlugin', 'TaskFactory', 'WorkflowPlugin'] from pyutilib.workflow import task from pyutilib.workflow import workflow from pyutilib.component.core import Plugin, implements, Interface, CreatePluginFactory, alias class IWorkflowTask(Interface): pass TaskFactory = CreatePluginFactory(IWorkflowTask) class TaskPlugin(Plugin, task.Task): implements(IWorkflowTask) def __init__(self, *args, **kwds): #pragma:nocover Plugin.__init__(self, *args, **kwds) task.Task.__init__(self, *args, **kwds) def __repr__(self): return task.Task.__repr__(self) #pragma:nocover class WorkflowPlugin(Plugin, workflow.Workflow): implements(IWorkflowTask) def __init__(self, *args, **kwds): #pragma:nocover Plugin.__init__(self, *args, **kwds) workflow.Workflow.__init__(self, *args, **kwds) def __repr__(self): #pragma:nocover return workflow.Workflow.__repr__(self) class Selection_Task(TaskPlugin): alias('workflow.selection') def __init__(self, *args, **kwds): TaskPlugin.__init__(self, *args, **kwds) # self.inputs.declare('index') self.inputs.declare('data') # self.outputs.declare('selection') def execute(self): self.selection = self.data[self.index] class Switch_Task(TaskPlugin): alias('workflow.switch') def __init__(self, *args, **kwds): TaskPlugin.__init__(self, *args, **kwds) self._branches = {} self.inputs.declare('value') def add_branch(self, value, task): self._branches[value] = 'task' + str(task.id) self.output_controls.declare(self._branches[value]) task.input_controls.declare('task' + str(self.id)) setattr(task.input_controls, 'task' + str(self.id), self.output_controls[self._branches[value]]) def execute(self): flag = False for key in self._branches: if self.value == key: self.output_controls[self._branches[key]].set_ready() flag = True else: self.output_controls[self._branches[key]].reset() if not flag: raise ValueError( "Branch condition has value '%s' but no branch is indexed with that value.\n Valid branch indices: %s" % (str(self.value), sorted(self._branches.keys()))) def __repr__(self): return TaskPlugin.__repr__(self) #pragma:nocover class IfThen_Task(Switch_Task): alias('workflow.branch') def __init__(self, *args, **kwds): Switch_Task.__init__(self, *args, **kwds) def __repr__(self): return Switch_Task.__repr__(self) #pragma:nocover pyutilib-6.0.0/pyutilib/workflow/tests/000077500000000000000000000000001367314503500202425ustar00rootroot00000000000000pyutilib-6.0.0/pyutilib/workflow/tests/__init__.py000066400000000000000000000000321367314503500223460ustar00rootroot00000000000000# pyutilib.workflow tests pyutilib-6.0.0/pyutilib/workflow/tests/test1.txt000066400000000000000000000000651367314503500220440ustar00rootroot00000000000000a: 1 aa: here is more b: [1, 2] c: x: 1 y: 2 pyutilib-6.0.0/pyutilib/workflow/tests/test2.txt000066400000000000000000000001021367314503500220350ustar00rootroot00000000000000{"a": 1, "aa": "here is more", "c": {"y": 2, "x": 1}, "b": [1, 2]}pyutilib-6.0.0/pyutilib/workflow/tests/test3.txt000066400000000000000000000021001367314503500220360ustar00rootroot00000000000000{ 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task1-inputs', 'Owner': 'Task1 prev: [2] next: [] resources: []', 'x': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(2) to=(1) False'], 'Outputs': []}, 'Constant': 'False', 'Name': 'x', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}, 'y': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'y', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}} { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task1-outputs', 'Owner': 'Task1 prev: [2] next: [] resources: []', 'z': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'z', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}} pyutilib-6.0.0/pyutilib/workflow/tests/test4.txt000066400000000000000000000036221367314503500220510ustar00rootroot00000000000000{ 'A_TYPE': 'Task', 'Id': 1, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task1-input-controls', 'Owner': 'Task1 prev: [] next: [] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task1-inputs', 'Owner': 'Task1 prev: [] next: [] resources: []', 'x': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'x', 'Optional': 'False', 'Ready': 'True', 'Task': '1', 'Value': '2'}, 'y': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'y', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}}, 'Name': 'Task1', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task1-output-controls', 'Owner': 'Task1 prev: [] next: [] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task1-outputs', 'Owner': 'Task1 prev: [] next: [] resources: []', 'z': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'z', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}}} pyutilib-6.0.0/pyutilib/workflow/tests/test5b.txt000066400000000000000000000271701367314503500222200ustar00rootroot00000000000000Workflow Task4: { 'A_TYPE': 'Task', 'Id': 4, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task4-input-controls', 'Owner': 'Workflow Task4:\nTask5 prev: [] next: [2, 3] resources: []\nTask2 prev: [5] next: [1] resources: []\nTask3 prev: [5] next: [1] resources: []\nTask1 prev: [2, 3] next: [6] resources: []\nTask6 prev: [1] next: [] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task4-inputs', 'Owner': 'Workflow Task4:\nTask5 prev: [] next: [2, 3] resources: []\nTask2 prev: [5] next: [1] resources: []\nTask3 prev: [5] next: [1] resources: []\nTask1 prev: [2, 3] next: [6] resources: []\nTask6 prev: [1] next: [] resources: []', 'a': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'a', 'Optional': 'True', 'Ready': 'False', 'Task': '4', 'Value': 'None'}, 'i': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'i', 'Optional': 'True', 'Ready': 'False', 'Task': '4', 'Value': 'None'}}, 'Name': 'Task4', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task4-output-controls', 'Owner': 'Workflow Task4:\nTask5 prev: [] next: [2, 3] resources: []\nTask2 prev: [5] next: [1] resources: []\nTask3 prev: [5] next: [1] resources: []\nTask1 prev: [2, 3] next: [6] resources: []\nTask6 prev: [1] next: [] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task4-outputs', 'Owner': 'Workflow Task4:\nTask5 prev: [] next: [2, 3] resources: []\nTask2 prev: [5] next: [1] resources: []\nTask3 prev: [5] next: [1] resources: []\nTask1 prev: [2, 3] next: [6] resources: []\nTask6 prev: [1] next: [] resources: []', 'z': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'z', 'Optional': 'False', 'Ready': 'True', 'Task': '4', 'Value': '334'}}} { 'A_TYPE': 'Task', 'Id': 5, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task5-input-controls', 'Owner': 'Task5 prev: [] next: [2, 3] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task5-inputs', 'Owner': 'Task5 prev: [] next: [2, 3] resources: []'}, 'Name': 'Task5', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task5-output-controls', 'Owner': 'Task5 prev: [] next: [2, 3] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task5-outputs', 'Owner': 'Task5 prev: [] next: [2, 3] resources: []', 'a': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': [ 'DirectConnector: from=(5) to=(2) False']}, 'Constant': 'False', 'Name': 'a', 'Optional': 'False', 'Ready': 'False', 'Task': '5', 'Value': 'None'}, 'i': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': [ 'DirectConnector: from=(5) to=(3) False', 'DirectConnector: from=(5) to=(2) False']}, 'Constant': 'False', 'Name': 'i', 'Optional': 'False', 'Ready': 'False', 'Task': '5', 'Value': 'None'}}} { 'A_TYPE': 'Task', 'Id': 2, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task2-input-controls', 'Owner': 'Task2 prev: [5] next: [1] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task2-inputs', 'Owner': 'Task2 prev: [5] next: [1] resources: []', 'a': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(5) to=(2) False'], 'Outputs': []}, 'Constant': 'False', 'Name': 'a', 'Optional': 'False', 'Ready': 'True', 'Task': '2', 'Value': '2'}, 'i': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(5) to=(2) False'], 'Outputs': []}, 'Constant': 'False', 'Name': 'i', 'Optional': 'False', 'Ready': 'True', 'Task': '2', 'Value': '3'}}, 'Name': 'Task2', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task2-output-controls', 'Owner': 'Task2 prev: [5] next: [1] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task2-outputs', 'Owner': 'Task2 prev: [5] next: [1] resources: []', 'b': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': [ 'DirectConnector: from=(2) to=(1) True']}, 'Constant': 'False', 'Name': 'b', 'Optional': 'False', 'Ready': 'True', 'Task': '2', 'Value': '304'}}} { 'A_TYPE': 'Task', 'Id': 3, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task3-input-controls', 'Owner': 'Task3 prev: [5] next: [1] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task3-inputs', 'Owner': 'Task3 prev: [5] next: [1] resources: []', 'i': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(5) to=(3) False'], 'Outputs': []}, 'Constant': 'False', 'Name': 'i', 'Optional': 'False', 'Ready': 'True', 'Task': '3', 'Value': '3'}}, 'Name': 'Task3', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task3-output-controls', 'Owner': 'Task3 prev: [5] next: [1] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task3-outputs', 'Owner': 'Task3 prev: [5] next: [1] resources: []', 'o': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': [ 'DirectConnector: from=(3) to=(1) True']}, 'Constant': 'False', 'Name': 'o', 'Optional': 'False', 'Ready': 'True', 'Task': '3', 'Value': '30'}}} { 'A_TYPE': 'Task', 'Id': 1, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task1-input-controls', 'Owner': 'Task1 prev: [2, 3] next: [6] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task1-inputs', 'Owner': 'Task1 prev: [2, 3] next: [6] resources: []', 'x': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(2) to=(1) True'], 'Outputs': []}, 'Constant': 'False', 'Name': 'x', 'Optional': 'False', 'Ready': 'True', 'Task': '1', 'Value': '304'}, 'y': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(3) to=(1) True'], 'Outputs': []}, 'Constant': 'False', 'Name': 'y', 'Optional': 'False', 'Ready': 'True', 'Task': '1', 'Value': '30'}}, 'Name': 'Task1', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task1-output-controls', 'Owner': 'Task1 prev: [2, 3] next: [6] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task1-outputs', 'Owner': 'Task1 prev: [2, 3] next: [6] resources: []', 'z': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': [ 'DirectConnector: from=(1) to=(6) True']}, 'Constant': 'False', 'Name': 'z', 'Optional': 'False', 'Ready': 'True', 'Task': '1', 'Value': '334'}}} { 'A_TYPE': 'Task', 'Id': 6, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task6-input-controls', 'Owner': 'Task6 prev: [1] next: [] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'Task6-inputs', 'Owner': 'Task6 prev: [1] next: [] resources: []', 'z': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(1) to=(6) True'], 'Outputs': []}, 'Constant': 'False', 'Name': 'z', 'Optional': 'False', 'Ready': 'True', 'Task': '6', 'Value': '334'}}, 'Name': 'Task6', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task6-output-controls', 'Owner': 'Task6 prev: [1] next: [] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'Task6-outputs', 'Owner': 'Task6 prev: [1] next: [] resources: []'}} pyutilib-6.0.0/pyutilib/workflow/tests/test_core.py000066400000000000000000000411351367314503500226070ustar00rootroot00000000000000import os import sys from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.workflow import pyutilib.workflow.globals class DummyResource(pyutilib.workflow.Resource): def __init__(self, name=None): pyutilib.workflow.Resource.__init__(self) def available(self): return False class TaskA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x') self.inputs.declare('y') self.outputs.declare('z') def execute(self): self.z = self.x + self.y class TaskAA1(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='append') self.outputs.declare('z') def execute(self): self.z = sum(self.x) class TaskAA2(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='map') self.outputs.declare('z') def execute(self): self.z = sum(self.x.keys()) class TaskAA3(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('x', action='map_any') self.outputs.declare('z') def execute(self): self.z = sum(self.x.keys()) class TaskB(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('a') self.inputs.declare('i') self.outputs.declare('b') def execute(self): self.b = 100 * self.i + 2 * self.a class TaskAAA(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('a', optional=True) self.outputs.declare('a', self.inputs.a) def execute(self): pass class TaskBB(TaskB): def __init__(self, *args, **kwds): TaskB.__init__(self, *args, **kwds) def _create_parser(self, parser=None): pyutilib.workflow.Task._create_parser(self, parser) self.add_argument("--a", dest="a", type=int) self.add_argument("--i", dest="i", type=int) class TaskC(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('i') self.outputs.declare('o') def execute(self): self.o = 10 * self.i class TaskCC(TaskC): def __init__(self, *args, **kwds): TaskC.__init__(self, *args, **kwds) def _create_parser(self, parser=None): pyutilib.workflow.Task._create_parser(self, parser) self.add_argument("--i", dest="i", type=int) class TaskD(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('i') self.outputs.declare('o') self.outputs.declare('z') def execute(self): self.o = 10 * self.i self.z = -999 class TaskE(pyutilib.workflow.Task): def __init__(self, *args, **kwds): pyutilib.workflow.Task.__init__(self, *args, **kwds) self.inputs.declare('I') self.outputs.declare('O') def execute(self): self.O = self.I class Test(unittest.TestCase): def test1(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() B = TaskB() C = TaskC() # Establish connections A.inputs.x = B.outputs.b A.inputs.y = C.outputs.o # Create workflow w = pyutilib.workflow.Workflow() w.add(A) w.add( A) # This is redundant, but it double-checks the logic for adding tasks # # Print workflow # ##print "..." self.assertEqual(str(w),\ """Workflow Task4: Task5 prev: [] next: [2, 3] resources: [] Task2 prev: [5] next: [1] resources: [] Task3 prev: [5] next: [1] resources: [] Task1 prev: [2, 3] next: [6] resources: [] Task6 prev: [1] next: [] resources: []""") self.assertEqual(w(i=3, a=2), {'z': 334}) def test1c(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() E1 = TaskE() E2 = TaskE() C = TaskC() # Establish connections A.inputs.x = E1.outputs.O A.inputs.y = E2.outputs.O E1.inputs.I = C.outputs.o E2.inputs.I = C.outputs.o # Create workflow w = pyutilib.workflow.Workflow() w.add(A) # # Print workflow # ##print "..." self.assertEqual(str(w),\ """Workflow Task5: Task6 prev: [] next: [4] resources: [] Task4 prev: [6] next: [2, 3] resources: [] Task2 prev: [4] next: [1] resources: [] Task3 prev: [4] next: [1] resources: [] Task1 prev: [2, 3] next: [7] resources: [] Task7 prev: [1] next: [] resources: []""") self.assertEqual(w(i=3), {'z': 60}) def test1b(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() B = TaskB() C = TaskC() # Establish connections A.inputs.x = B.outputs.b A.inputs.y = C.outputs.o # Create workflow w = pyutilib.workflow.Workflow() w.add(A, loadall=False) self.assertEqual( str(w), "Workflow Task4:\nTask5 prev: [] next: [] resources: []") def test1a(self): pyutilib.workflow.globals.reset_id_counter() # Create workflow w = pyutilib.workflow.Workflow() self.assertEqual( str(w), "Workflow Task1:\nTask2 prev: [] next: [] resources: []") w.add(pyutilib.workflow.task.NoTask) self.assertEqual( str(w), "Workflow Task1:\nTask2 prev: [] next: [] resources: []") @unittest.skipIf(sys.version_info >= (3, 0), "There is a slight (space) formatting differences in different Python version... Skipping test.") # yapf: disable def test2(self): # Do we really want to be testing pformat output? I think we might # actually want to override __cmp__ in the workflow.Task code and instead # use that. pyutilib.workflow.globals.reset_id_counter() A = TaskA(name="A") B = TaskB() A.inputs.x = B.outputs.b base = """{ 'A_TYPE': 'Task', 'Id': 1, 'InputControls': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'A-input-controls', 'Owner': 'A prev: [2] next: [] resources: []'}, 'Inputs': { 'A_TYPE': 'Port', 'Mode': 'inputs', 'Name': 'A-inputs', 'Owner': 'A prev: [2] next: [] resources: []', 'x': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [ 'DirectConnector: from=(2) to=(1) False'], 'Outputs': []}, 'Constant': 'False', 'Name': 'x', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}, 'y': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'y', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}}, 'Name': 'A', 'OutputControls': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'A-output-controls', 'Owner': 'A prev: [2] next: [] resources: []'}, 'Outputs': { 'A_TYPE': 'Port', 'Mode': 'outputs', 'Name': 'A-outputs', 'Owner': 'A prev: [2] next: [] resources: []', 'z': { 'A_TYPE': 'Port', 'Action': 'store', 'Connections': { 'Inputs': [], 'Outputs': []}, 'Constant': 'False', 'Name': 'z', 'Optional': 'False', 'Ready': 'False', 'Task': '1', 'Value': 'None'}}}""" self.assertEqual(str(A), base) def test3(self): # Do we really want to be testing pformat output? I think we might # actually want to override __cmp__ in the workflow.Task code and instead # use that. pyutilib.workflow.globals.reset_id_counter() A = TaskA() B = TaskB() A.inputs.x = B.outputs.b OUTPUT = open(currdir + 'test3.out', 'w') OUTPUT.write(str(A.inputs) + '\n') OUTPUT.write(str(A.outputs) + '\n') OUTPUT.close() self.assertFileEqualsBaseline(currdir + 'test3.out', currdir + 'test3.txt') def test4(self): # Do we really want to be testing pformat output? I think we might # actually want to override __cmp__ in the workflow.Task code and instead # use that. pyutilib.workflow.globals.reset_id_counter() A = TaskA() A.inputs['x'] = 2 self.assertEqual(A.inputs['x'].get_value(), 2) OUTPUT = open(currdir + 'test4.out', 'w') OUTPUT.write(str(A) + '\n') OUTPUT.close() self.assertFileEqualsBaseline(currdir + 'test4.out', currdir + 'test4.txt') def test5(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() B = TaskB() C = TaskC() # Establish connections A.inputs.x = B.outputs.b A.inputs.y = C.outputs.o # Create workflow w = pyutilib.workflow.Workflow() w.add(A) w.set_options(['--i=3', '--a=2']) try: w() self.fail("Expected ValueError because the inputs are not defined") except ValueError: pass def test5a(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() B = TaskBB() C = TaskCC() # Establish connections A.inputs.x = B.outputs.b A.inputs.y = C.outputs.o # Create workflow w = pyutilib.workflow.Workflow() w.add(A) w.set_options(['--i=3', '--a=2']) self.assertEqual(w(), {'z': 334}) # This doesn't work, since we can't merge options that aren't # in groups. The soln is to move to argparse, but I'll save that for later #w.print_help() def test5b(self): # Do we really want to be testing pformat output? I think we might # actually want to override __cmp__ in the workflow.Task code and instead # use that. self.skipTest("This test is not portable to different Python version") pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() B = TaskBB() C = TaskCC() # Establish connections A.inputs.x = B.outputs.b A.inputs.y = C.outputs.o # Create workflow w = pyutilib.workflow.Workflow() w.add(A) w.set_options(['--i=3', '--a=2']) w() OUTPUT = open(currdir + 'test5b.out', 'w') OUTPUT.write(str(w) + '\n') OUTPUT.close() self.assertFileEqualsBaseline(currdir + 'test5b.out', currdir + 'test5b.txt') def test_error1(self): pyutilib.workflow.globals.reset_id_counter() A = TaskA() try: A.inputs['inputs'] = 2 self.fail( "Expected ValueError because we're using the reserved 'inputs' attribute name") except TypeError: pass def test_error2(self): pyutilib.workflow.globals.reset_id_counter() A = TaskA() try: print(A.inputs._foo) self.fail("Should have generated error for unknown attribute _foo") except AttributeError: pass def test_error3(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskA() B = TaskB() D = TaskD() # Establish connections A.inputs.x = B.outputs.b A.inputs.y = D.outputs.o # Create workflow w = pyutilib.workflow.Workflow() try: w.add(A) self.fail( "Expected ValueError because there are multiple outputs with the same name") except ValueError: pass def test_error4(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskAA1() B = TaskAAA() C = TaskAAA() # Establish connections A.inputs.x = B.outputs.a A.inputs.x = C.outputs.a # Create workflow w = pyutilib.workflow.Workflow() w.add(A) try: w() self.fail("Expected ValueError because inputs are None") except ValueError: pass def test_error5(self): pyutilib.workflow.globals.reset_id_counter() # Define tasks A = TaskAA2() B = TaskAAA() C = TaskAAA() # Establish connections A.inputs.x = B.outputs.a A.inputs.x = C.outputs.a # Create workflow w = pyutilib.workflow.Workflow() w.add(A) try: w() self.fail("Expected ValueError because inputs are None") except ValueError: pass def test_error6(self): driver = pyutilib.workflow.TaskDriver() try: driver.register_task('_foo_') self.fail("Expected ValueError because '_foo_' task is not defined") except ValueError: pass def test_error7(self): A1 = TaskA() A2 = TaskA() A3 = TaskA() A3.inputs.x = A1.outputs.z try: A3.inputs.x = A2.outputs.z self.fail( "Expected ValueError because we're connecting two outputs to an input with action 'store'") except: pass def test_error8(self): A1 = TaskAA1() A2 = TaskAA1() A2.inputs.x = A1.outputs.z try: A2.inputs.x.validate() self.fail( "Expected ValueError because the 'x' input does not have a nontrivial value") except: pass self.assertFalse(A2.ready()) def test_error9(self): A1 = TaskAA2() A2 = TaskAA2() A2.inputs.x = A1.outputs.z try: A2.inputs.x.validate() self.fail( "Expected ValueError because the 'x' input does not have a nontrivial value") except: pass self.assertFalse(A2.ready()) def test_error10(self): A1 = TaskAA3() A2 = TaskAA3() A3 = TaskAA3() A2.inputs.x = A1.outputs.z A2.inputs.x = A3.outputs.z try: A2.inputs.x.validate() self.fail( "Expected ValueError because the 'x' input does not have a nontrivial value") except: pass self.assertFalse(A2.ready()) A1.outputs.z = 1 self.assertTrue(A2.ready()) def test_error11(self): A1 = TaskA() A1.add_resource(DummyResource()) try: A1() self.fail("Expected IOError because resource is busy.") except IOError: pass def test_driver1(self): driver = pyutilib.workflow.TaskDriver() driver.register_task('workflow.selection') try: driver.parse_args(['-h']) self.fail("Expected system exit because of bad options") except SystemExit: pass try: driver.parse_args(['foo']) self.fail("Expected error because bad subcommand is specified") except SystemExit: pass try: driver.parse_args(['workflow.selection']) self.fail("Expected error because task input is not defined") except ValueError: pass def test_driver2(self): driver = pyutilib.workflow.TaskDriver() driver.register_task('workflow.selection') try: # Set sys.argv and then parse arguments sys.argv = ['foo', '-h'] driver.parse_args() self.fail("Expected system exit because of bad options") except SystemExit: pass if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/workflow/tests/test_doc.py000066400000000000000000000007251367314503500224240ustar00rootroot00000000000000# Imports import sys import os from os.path import dirname, abspath, abspath import pyutilib.th as unittest currdir = dirname(abspath(__file__)) + os.sep datadir = os.sep.join([dirname(dirname(dirname(dirname(abspath(__file__))))), 'doc', 'workflow', 'examples']) + os.sep sys.path.insert(0, datadir) try: from test_example import * finally: sys.path.remove(datadir) # Execute the tests if __name__ == '__main__': unittest.main() pyutilib-6.0.0/pyutilib/workflow/tests/test_task.py000066400000000000000000000542531367314503500226260ustar00rootroot00000000000000import logging import os from os.path import abspath, dirname currdir = dirname(abspath(__file__)) + os.sep import pyutilib.th as unittest import pyutilib.misc from pyutilib.workflow import * try: import json json_available = True except: json_available = False class Handler(logging.StreamHandler): def emit(self, record): raise RuntimeError(str(record)) handler = Handler() logger = logging.getLogger('pyutilib.workflow') class TestData(unittest.TestCase): def test1(self): # Print FunctorAPIData string data = FunctorAPIData() data.a = 1 data.b = [1, 2] data.c = FunctorAPIData() data.c.x = 1 data.c.y = 2 data.aa = 'here is more' data.clean() pyutilib.misc.setup_redirect(currdir + 'test1.out') print(data) pyutilib.misc.reset_redirect() self.assertFileEqualsBaseline(currdir + 'test1.out', currdir + 'test1.txt') self.assertEquals(len(data._dirty_), 0) @unittest.skipIf(not json_available, "JSON not available") def test2(self): # Print FunctorAPIData representation data = FunctorAPIData() data.a = 1 data.b = [1, 2] data.c = FunctorAPIData() data.c.x = 1 data.c.y = 2 data['aa'] = 'here is more' data.clean() FILE = open(currdir + 'test2.out', 'w') json.dump(data, FILE) FILE.close() self.assertMatchesJsonBaseline(currdir + 'test2.out', currdir + 'test2.txt') self.assertEquals(len(data._dirty_), 0) @unittest.expectedFailure def test_err1(self): # Unknown attribute data = FunctorAPIData() data._x @unittest.expectedFailure def test_err2(self): # Undeclared attribute data = FunctorAPIData() data.declare('a') data.x @unittest.expectedFailure def test_err3(self): # Undeclared attribute data = FunctorAPIData() data.declare(['a']) data.x class TestAPI(unittest.TestCase): @classmethod def setUpClass(cls): # Disable the pyutilib.workflow logging handler if len(logger.handlers) > 0: cls._handler = logger.handlers[0] logger.removeHandler(cls._handler) else: cls._handler = None logger.addHandler(handler) @classmethod def tearDownClass(cls): # Re-enable the pyutilib.workflow logging handler logger.removeHandler(handler) if not cls._handler is None: logger.addHandler(cls._handler) def test1(self): # Simple test: no keyword arguments or return values @functor_api def test1(data): # Required: # data: input data data.a = 2 data.b[0] = 2 # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test1(options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test1(data=options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) # self.assertTrue('test1' in FunctorAPIFactory.services()) def test1a(self): """Simple test: no keyword arguments or return values""" @functor_api def test1a(data): """ Required: data: input data Return: data: output data """ data.a = 2 data.b[0] = 2 # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test1a(options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test1a(data=options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test1b(self): """Simple test: data keyword argument, no return values""" @functor_api def test1b(data=None): data.a = 2 data.b[0] = 2 # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test1b(options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test1b(data=options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test2(self): """Simple test: no keyword arguments, returning data""" @functor_api def test2(data): data.a = 2 data.b[0] = 2 return data # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test2(options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test2(data=options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test2a(self): """Simple test: no keyword arguments, returning data""" @functor_api def test2a(data): """ Required: data: input data Return: data: output data """ data.a = 2 data.b[0] = 2 return data # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test2a(options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test2a(data=options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test3(self): """Simple test: keyword arguments, no return values""" @functor_api def test3(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer """ data.a = y data.b[0] = x # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test3(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test3(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test3a(self): """Simple test: keyword arguments, no return values""" @functor_api def test3a(x=1, y=2, data=None): """ Required: data: input data x: integer Optional: y: integer """ data.a = y data.b[0] = x # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test3a(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test3a(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test4(self): """Simple test: keyword arguments, simple return value""" @functor_api def test4(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer Return: data: output data """ data.a = y data.b[0] = x return data # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test4(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test4(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test5(self): """Simple test: keyword arguments, non-data return values""" @functor_api(outputs=('z')) def test5(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer Return: data: output data z: integer """ data.a = y data.b[0] = x return FunctorAPIData(z=x) # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test5(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test5(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) self.assertEquals(retval.z, 2) def test6(self): """Simple test: keyword arguments, non-data return values with data""" @functor_api(outputs=('z')) def test6(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer Return: data: output data z: integer """ data.a = y data.b[0] = x return FunctorAPIData(data=data, z=x) # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test6(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test6(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) self.assertEquals(retval.z, 2) def test5a(self): """Outputs specified in docstring: keyword arguments, non-data return values""" @functor_api def test5a(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer Return: data: output data z: integer """ data.a = y data.b[0] = x return FunctorAPIData(z=x) # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test5a(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test5a(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) self.assertEquals(retval.z, 2) def test6a(self): """Outputs specified in docstring: keyword arguments, non-data return values with data""" @functor_api def test6a(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer Return: data: output data z: integer """ data.a = y data.b[0] = x return FunctorAPIData(data=data, z=x) # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test6a(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test6a(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) self.assertEquals(retval.z, 2) def test7a(self): """Test with dict data""" @functor_api def test7a(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer """ data.a = y data.b[0] = x # options = {} options['a'] = 1 options['b'] = [1, 2] retval = test7a(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test7a(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test7b(self): """Test with dict data and return a dictionary""" @functor_api def test7b(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer """ data.a = y data.b[0] = x return {'data': data} # options = {} options['a'] = 1 options['b'] = [1, 2] retval = test7b(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test7b(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) def test7c(self): """Test with dict data and return a dictionary""" @functor_api def test7c(data, x=1, y=2): """ Required: data: input data x: integer Optional: y: integer Return: z: integer """ data.a = y data.b[0] = x return {'data': data, 'z': x} # options = {} options['a'] = 1 options['b'] = [1, 2] retval = test7c(options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test7c(data=options, x=2) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) self.assertEquals(retval.z, 2) def test8(self): """Simple test with required nested data""" @functor_api def test8(data): """ Required: data: input data data.foo.bar: """ data.foo.foo = 3 #data.a = 2 #data.b[0] = 2 # options = FunctorAPIData() options.foo = FunctorAPIData() options.foo.bar = 1 options.a = 1 options.b = [1, 2] retval = test8(options) self.assertEquals(retval.data.a, 1) self.assertEquals(retval.data.b, [1, 2]) self.assertEquals(retval.data.foo.foo, 3) #retval = test8(data=options) #self.assertEquals(retval.data.a, 2) #self.assertEquals(retval.data.b, [2,2]) def test9(self): """Simple test: no keyword arguments or return values""" @functor_api def test9(data): """ This is the short documentation. This is the long documentation. Required: data: multiline description of input data object data.a: More data """ data.a = 2 data.b[0] = 2 # options = FunctorAPIData() options.a = 1 options.b = [1, 2] retval = test9(options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) retval = test9(data=options) self.assertEquals(retval.data.a, 2) self.assertEquals(retval.data.b, [2, 2]) # self.assertTrue('test1' in FunctorAPIFactory.services()) self.assertEquals(test9.__short_doc__, 'This is the\nshort\ndocumentation.') self.assertEquals(test9.__long_doc__, 'This\n\nis\n\nthe\n\nlong documentation.') @unittest.expectedFailure def test10(self): """Simple test: no keyword arguments or return values""" @functor_api def test10(data=None, x=1): """ Required: x: Optional: data: """ return FunctorAPIData(z=2 * x) # retval = test10(x=3) self.assertEquals(retval.z, 6) @unittest.expectedFailure def test_err1(self): """Expect an error when variable length arguments are supported""" @functor_api def err1(*args): pass @unittest.expectedFailure def test_err2(self): """Expect an error when variable length keyword arguments are supported""" @functor_api def err2(**kwargs): pass @unittest.expectedFailure def test_err3(self): """Expect an error when return value is not None or Options()""" @functor_api def err3(data): return 1 f(FunctorAPIData()) @unittest.expectedFailure def test_err4(self): """Expect an error when no data argument is specified""" @functor_api def err4(data): data.a = 2 data.b[0] = 2 test1() @unittest.expectedFailure def test_err5(self): """Expect an error when an unspecified return value is given""" @functor_api def err5(data): return FunctorAPIData(z=None) f(FunctorAPIData()) @unittest.expectedFailure def test_err6(self): """Expect an error when no data argument is specified""" @functor_api def err6(): pass f(FunctorAPIData()) @unittest.expectedFailure def test_err7a(self): """Argument missing from docstring""" @functor_api def err7a(data, x=1, y=2): """ Optional: y: integer """ pass @unittest.expectedFailure def test_err7b(self): """Argument missing from docstring""" @functor_api def err7b(data, x=1, y=2): """ Required: x: integer """ pass @unittest.expectedFailure def test_err7c(self): """Argument missing from docstring""" @functor_api(outputs=('z')) def err7c(data, x=1, y=2): """ Required: x: integer Optional: y: integer """ return FunctorAPIData(z=1) @unittest.expectedFailure def test_err7A(self): """Unexpected required argument""" @functor_api def err7A(data, x=1, y=2): """ Required: x: integer bad: integer Optional: y: integer """ pass @unittest.expectedFailure def test_err7B(self): """Argument missing from docstring""" @functor_api def err7B(data, x=1, y=2): """ Required: x: integer Optional: y: integer bad: integer """ pass @unittest.expectedFailure def test_err7C(self): """Argument missing from docstring""" @functor_api(outputs=('z')) def err7C(data, x=1, y=2): """ Required: x: integer Optional: y: integer Return: z: integer bad: integer """ return FunctorAPIData(z=1) @unittest.expectedFailure def test_err8a(self): """Missing nested value""" @functor_api def err8a(data): """ Required: data.x: integer """ pass err8a(FunctorAPIData()) @unittest.expectedFailure def test_err8b(self): """Nested value with None value""" @functor_api def err8b(data): """ Required: data.x: integer """ pass err8b(FunctorAPIData(data=FunctorAPIData())) @unittest.expectedFailure def test_err8c(self): """Nested value with None value""" @functor_api def err8c(data): """ Required: data.x.y: integer """ pass err8c(FunctorAPIData(x={})) @unittest.expectedFailure def test_err9(self): """Redefinied test functions""" @functor_api def err9(data): pass @functor_api def err9(data): pass @unittest.expectedFailure def test_err10(self): """Simple test with required nested data""" @functor_api def err10(data): """ Required: data: input data data.foo.bar: """ data.foo.foo = 3 data.a = 2 # options = FunctorAPIData() options.foo = FunctorAPIData() options.foo.bar = 1 options.a = 1 options.b = [1, 2] retval = err10(options) self.assertEquals(retval.data.a, 1) self.assertEquals(retval.data.b, [1, 2]) self.assertEquals(retval.data.foo.foo, 3) @unittest.expectedFailure def test_err10a(self): """Expect an error when the same functor is defined twice""" @functor_api def err10a(data): pass @functor_api def err10a(data): pass @unittest.expectedFailure def test_err10b(self): """Expect an error when the same functor is defined twice""" @functor_api(namespace='foo') def err10b(data): pass @functor_api(namespace='foo') def err10b(data): pass @unittest.expectedFailure def test_err11(self): """Expect an error when 'data' is not defined when it is required""" @functor_api def err11(data=None, x=1): """ Required: data: x: """ err11(x=2) @unittest.expectedFailure def test_err12(self): """Expect an error when multiple data options are provided""" @functor_api def err12(data): pass err12({}, {}) @unittest.expectedFailure def test_err13(self): """Expect an error when returning something other than None, FunctorAPIData or a dict object""" @functor_api def err13(data): return set() err13({}) if __name__ == "__main__": unittest.main() pyutilib-6.0.0/pyutilib/workflow/workflow.py000066400000000000000000000241061367314503500213270ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ # Q: When passing options, these values do not initialize the startup task. # Is this a bug? # TODO: only set option values for variables that show up in a workflow's inputs # TODO: add graceful management of exceptions # show the task tree, etc... __all__ = ['Workflow'] import argparse from collections import deque from six import iterkeys from pyutilib.workflow.task import Task, EmptyTask, NoTask from pyutilib.misc import Options try: from collections import OrderedDict except: from ordereddict import OrderedDict def _collect_parser_groups(t): for key in t._parser_group: # # NOTE: we are changing the properties of the group # instances here. This is OK _only_ because we are # printing the help info and then terminating. # # FIXME: The 'parser' object is not defined in the lines below raise NotImplementedError("") #t._parser_group[key].parser = parser #parser.add_argument_group(t._parser_group[key]) def _set_arguments(t): for arg in t._parser_arg: args = arg[0] kwargs = arg[1] try: t._parser.add_argument(*args, **kwargs) except argparse.ArgumentError: pass class Workflow(Task): def __init__(self, id=None, name=None, parser=None): Task.__init__(self, id=id, name=name, parser=None) self._tasks = {} self._start_task = EmptyTask() self._final_task = EmptyTask() self.add(self._start_task) self.add(self._final_task) def add(self, task, loadall=True): if self.debug: print("ADDING", task.id) #pragma:nocover if task.id == NoTask.id: return if task.id in self._tasks: return self._tasks[task.id] = task if not loadall: return for name in task.inputs: for t in task.inputs[name].from_tasks(): self.add(t) if len(task.inputs[name].from_tasks()) > 0: continue if not task.inputs[name].constant: # # Constant input values are not added to the start task # if not name in self._start_task.outputs: self._start_task.outputs.declare(name) self.inputs.declare(name, optional=True) # TODO: this is a bit of a hack... val = getattr(task.inputs, name).get_value() try: setattr(task.inputs, name, getattr(self._start_task.outputs, name)) except ValueError: # TBD: when do we get this exception? pass getattr(self.inputs, name).set_value(val) for name in task.output_controls: for c in task.output_controls[name].output_connections: self.add(c.to_port.task()) # for name in task.outputs: if len(task.outputs[name].output_connections) > 0: for c in task.outputs[name].output_connections: self.add(c.to_port.task()) else: if name in self._final_task.inputs: raise ValueError( "Cannot declare a workplan with multiple output values that share the same name: %s" % name) self.outputs.declare(name) self._final_task.inputs.declare(name) setattr(self._final_task.inputs, name, task.outputs[name]) def _call_init(self, *options, **kwds): Task._call_init(self, *options, **kwds) for i in self.inputs: val = self.inputs[i].get_value() if val is not None: self._start_task.outputs[i].set_value(val) self._start_task.outputs[i].set_ready() # # TBD: this appears to be redundant # #for key in kwds: # if key not in self._start_task.outputs: # raise ValueError, "Cannot specify value for option %s. Valid option names are %s" % (key, self._start_task.outputs.keys()) # self._start_task.outputs[key].set_value( kwds[key] ) def _call_fini(self, *options, **kwds): ans = Options() for key in self._final_task.inputs: self._final_task.inputs[key].compute_value() ans[key] = self._final_task.inputs[key].get_value() getattr(self.outputs, key).set_value(ans[key]) for key in self.outputs: self.outputs[key].set_ready() return ans def set_options(self, args): self._dfs_([self._start_task.id], lambda t: t.set_options(args)) def options(self): return self._start_task.outputs.keys() def print_help(self): parser = argparse.ArgumentParser() self._dfs_([self._start_task.id], _collect_parser_groups) parser.print_help() def set_arguments(self, parser=None): if parser is None: parser = self._parser self._dfs_([self._start_task.id], _set_arguments) def reset(self): return self._dfs_([self._start_task.id], lambda t: t.reset()) def execute(self): #return self._dfs_([self._start_task.id], lambda t: t.__call__()) if self.debug: #pragma:nocover print(self.name, '---------------') print(self.name, '---------------') print(self.name, ' STARTING') print(self.name, '---------------') print(self.name, '---------------') # queued = set([self._start_task.id]) queue = deque([self._start_task]) waiting = OrderedDict() while len(queue) + len(waiting) > 0: for id in list(iterkeys(waiting)): t = waiting[id] if not t.id in queued and t.ready(): # if self.debug: #pragma:nocover print(self.name, "WAITING: ", t.id, " not queued and task ready") print(self.name, "Waiting task", t.name, t.id, t.ready()) # queue.append(t) queued.add(t.id) del waiting[t.id] if len(queue) == 0: break # TBD: should we sleep and add a timelimit before raising this exception? #if len(waiting) == 0: # break #print self.name, "ERROR", waiting.keys() #raise RuntimeError, "Workflow failed to terminate normally. All available tasks are blocked." task = queue.popleft() # if self.debug: #pragma:nocover print(self.name, "TASK ", str(task)) print(self.name, "QUEUE ", queued) print(self.name, "WAITING", waiting.keys()) print(self.name, "Executing Task " + task.name, task.next_task_ids()) # queued.remove(task.id) task() for t in task.next_tasks(): if t.id in queued: continue if t.ready(): # if self.debug: #pragma:nocover print(self.name, "NEXT: ", t.id, " not queued and task ready") print(self.name, "Scheduling task", t.name, t.id, t.ready()) # queue.append(t) queued.add(t.id) if t.id in waiting: del waiting[t.id] else: if not t.id in waiting: waiting[t.id] = t # if self.debug: #pragma:nocover print(self.name, "NEXT: ", t.id, " not queued and task NOT ready") print(self.name, "Ignoring task", t.name, t.id, t.ready()) if self.debug: #pragma:nocover print(self.name, "FINAL QUEUE ", queued) print(self.name, "FINAL WAITING", waiting.keys()) print(self.name, '---------------') print(self.name, " LOOP") print(self.name, '---------------') if self.debug: #pragma:nocover print(self.name, '---------------') def __str__(self): return "\n".join(["Workflow %s:" % self.name] + self._dfs_( [self._start_task.id], lambda t: t._name())) def __repr__(self): return "Workflow %s:\n" % self.name + Task.__repr__( self) + '\n' + "\n".join( self._dfs_([self._start_task.id], lambda t: str(t))) def _dfs_(self, indices, fn, touched=None): if touched is None: touched = set() ans = [] for i in indices: if i in touched: # With this design, this condition should never be triggered # TODO: verify that this is an O(n) search algorithm; I think it's # O(n^2) continue #pragma:nocover ok = True task = self._tasks[i] for j in task.prev_task_ids(): if (j == NoTask.id) or (j in touched): continue ok = False break if not ok: continue tmp = fn(task) if tmp is not None: ans.append(tmp) touched.add(i) ans = ans + self._dfs_(task.next_task_ids(), fn, touched) return ans pyutilib-6.0.0/setup.cfg000066400000000000000000000000321367314503500152010ustar00rootroot00000000000000[bdist_wheel] universal=1 pyutilib-6.0.0/setup.py000066400000000000000000000064671367314503500151140ustar00rootroot00000000000000# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ """ Setup for PyUtilib package """ import os from setuptools import setup, find_packages def read(*rnames): with open(os.path.join(os.path.dirname(__file__), *rnames)) as README: # Strip all leading badges up to, but not including the COIN-OR # badge so that they do not appear in the PyPI description while True: line = README.readline() if 'COIN-OR' in line: break if line.strip() and '[![' not in line: break return line + README.read() requires=[ 'nose', 'six' ] setup(name="PyUtilib", version='6.0.0', maintainer='William E. Hart', maintainer_email='wehart@sandia.gov', url = 'https://github.com/PyUtilib/pyutilib', license = 'BSD', platforms = ["any"], python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', description = 'PyUtilib: A collection of Python utilities', long_description = read('README.md'), long_description_content_type='text/markdown', classifiers = [ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: End Users/Desktop', 'License :: OSI Approved :: BSD License', 'Natural Language :: English', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', 'Operating System :: Unix', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: Jython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Scientific/Engineering :: Mathematics', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Utilities'], packages=find_packages(), keywords=['utility'], install_requires=requires, entry_points=""" [nose.plugins.0.10] nose.testdata = pyutilib.th.nose_testdata:TestData nose.forcedgc = pyutilib.th.nose_gc:ForcedGC nose.timeout = pyutilib.th.nose_timeout:TestTimeout [console_scripts] test.pyutilib = pyutilib.dev.runtests:runPyUtilibTests lbin = pyutilib.dev.lbin:main lpython = pyutilib.dev.lpython:main pypi_downloads = pyutilib.dev.pypi_downloads:main replaceCopyright = pyutilib.dev.replaceCopyright:main checkCopyright = pyutilib.dev.checkCopyright:main pyutilib_test_driver = pyutilib.autotest.driver:main dispatch_srvr=pyutilib.pyro.dispatch_srvr:main """ )