pax_global_header00006660000000000000000000000064135317007320014513gustar00rootroot0000000000000052 comment=2e240cfdf041e61faa5997e9a3a35963014f8b66 hug-2.6.0/000077500000000000000000000000001353170073200123035ustar00rootroot00000000000000hug-2.6.0/.bumpversion.cfg000066400000000000000000000002011353170073200154040ustar00rootroot00000000000000[bumpversion] current_version = 2.6.0 [bumpversion:file:.env] [bumpversion:file:setup.py] [bumpversion:file:hug/_version.py] hug-2.6.0/.coveragerc000066400000000000000000000005601353170073200144250ustar00rootroot00000000000000[report] include = hug/*.py omit = hug/development_runner.py exclude_lines = def hug def serve def _start_api sys.stdout.buffer.write class Socket pragma: no cover except ImportError: if MARSHMALLOW_MAJOR_VERSION is None or MARSHMALLOW_MAJOR_VERSION == 2: hug-2.6.0/.editorconfig000066400000000000000000000001541353170073200147600ustar00rootroot00000000000000root = true [*.py] max_line_length = 100 indent_style = space indent_size = 4 ignore_frosted_errors = E103 hug-2.6.0/.env000066400000000000000000000065151353170073200131030ustar00rootroot00000000000000#!/bin/bash OPEN_PROJECT_NAME="hug" if [ "$PROJECT_NAME" = "$OPEN_PROJECT_NAME" ]; then return fi if [ ! -f ".env" ]; then return fi export PROJECT_NAME=$OPEN_PROJECT_NAME export PROJECT_DIR="$PWD" export PROJECT_VERSION="2.6.0" if [ ! -d "venv" ]; then if ! hash pyvenv 2>/dev/null; then function pyvenv() { if hash python3.7 2>/dev/null; then python3.7 -m venv $@ elif hash pyvenv-3.6 2>/dev/null; then pyvenv-3.6 $@ elif hash pyvenv-3.5 2>/dev/null; then pyvenv-3.5 $@ elif hash pyvenv-3.4 2>/dev/null; then pyvenv-3.4 $@ elif hash pyvenv-3.3 2>/dev/null; then pyvenv-3.3 $@ elif hash pyvenv-3.2 2>/dev/null; then pyvenv-3.2 $@ else python3 -m venv $@ fi } fi echo "Making venv for $PROJECT_NAME" pyvenv venv . venv/bin/activate pip install -r requirements/development.txt python setup.py install fi . venv/bin/activate # Let's make sure this is a hubflow enabled repo yes | git hf init >/dev/null 2>/dev/null # Quick directory switching alias root="cd $PROJECT_DIR" alias project="root; cd $PROJECT_NAME" alias tests="root; cd tests" alias examples="root; cd examples" alias requirements="root; cd requirements" alias run_tests="_test" function open { (root $CODE_EDITOR hug/*.py setup.py tests/*.py examples/*.py examples/*/*.py README.md tox.ini .gitignore CHANGELOG.md setup.cfg .editorconfig .env .coveragerc .travis.yml requirements/*.txt) } function clean { (root isort hug/*.py setup.py tests/*.py black -l 100 hug) } function check { (root frosted hug/*.py) } function _test { (root tox) } function coverage { (root $BROWSER htmlcov/index.html) } function load { (root python setup.py install) } function unload { (root pip uninstall hug) } function install { (root sudo python setup.py install) } function update { (root pip install -r requirements/development.txt -U) } function distribute { (root pip install pypandoc python -c "import pypandoc; pypandoc.convert('README.md', 'rst')" || exit 1 python setup.py sdist upload) } function version() { echo $PROJECT_VERSION } function new_version() { (root if [ -z "$1" ]; then echo "You must supply a new version to replace the old version with" return fi sed -i "s/$PROJECT_VERSION/$1/" .env setup.py hug/_version.py) export PROJECT_VERSION=$1 } function new_version_patch() { (root bumpversion --allow-dirty patch) } function new_version_minor() { (root bumpversion --allow-dirty minor) } function new_version_major() { (root bumpversion --allow-dirty major) } function leave { export PROJECT_NAME="" export PROJECT_DIR="" unalias root unalias project unalias tests unalias examples unalias requirements unalias test unset -f _start unset -f _end unset -f open unset -f clean unset -f _test unset -f coverage unset -f load unset -f unload unset -f install unset -f update unset -f distribute unset -f version unset -f new_version unset -f leave deactivate } hug-2.6.0/.github/000077500000000000000000000000001353170073200136435ustar00rootroot00000000000000hug-2.6.0/.github/FUNDING.yml000066400000000000000000000000251353170073200154550ustar00rootroot00000000000000tidelift: "pypi/hug" hug-2.6.0/.gitignore000066400000000000000000000012731353170073200142760ustar00rootroot00000000000000*.py[cod] .DS_Store # C extensions *.so # Packages *.egg *.egg-info build eggs .eggs parts var sdist develop-eggs .installed.cfg lib lib64 MANIFEST # Installer logs pip-log.txt npm-debug.log pip-selfcheck.json # Unit test / coverage reports .coverage .tox nosetests.xml htmlcov .cache .pytest_cache # Translations *.mo # Mr Developer .mr.developer.cfg .project .pydevproject # SQLite test_exp_framework # npm node_modules/ # dolphin .directory libpeerconnection.log # setuptools dist # IDE Files atlassian-ide-plugin.xml .idea/ *.swp *.kate-swp .ropeproject/ # Python3 Venv Files .venv/ bin/ include/ lib/ lib64 pyvenv.cfg share/ venv/ # Cython *.c # Emacs backup *~ # VSCode /.vscode hug-2.6.0/.isort.cfg000066400000000000000000000001621353170073200142010ustar00rootroot00000000000000[settings] multi_line_output=3 include_trailing_comma=True force_grid_wrap=0 use_parentheses=True line_length=100 hug-2.6.0/.travis.yml000066400000000000000000000041701353170073200144160ustar00rootroot00000000000000dist: xenial language: python cache: pip matrix: include: - os: linux sudo: required python: 3.5 - os: linux sudo: required python: 3.6 - os: linux sudo: required python: 3.7 env: TOXENV=py37-marshmallow2 - os: linux sudo: required python: pypy3.5-6.0 env: TOXENV=pypy3-marshmallow2 - os: linux sudo: required python: 3.7 env: TOXENV=py37-marshmallow3 - os: linux sudo: required python: 3.7 env: TOXENV=py37-black - os: linux sudo: required python: 3.7 env: TOXENV=py37-flake8 - os: linux sudo: required python: 3.7 env: TOXENV=py37-bandit - os: linux sudo: required python: 3.7 env: TOXENV=py37-vulture - os: linux sudo: required python: 3.7 env: TOXENV=py37-isort - os: linux sudo: required python: 3.7 env: TOXENV=py37-safety - os: linux sudo: required python: pypy3.5-6.0 env: TOXENV=pypy3-marshmallow3 - os: osx language: generic env: TOXENV=py36-marshmallow2 - os: osx language: generic env: TOXENV=py36-marshmallow3 before_install: - "./scripts/before_install.sh" install: - source ./scripts/install.sh - pip install tox tox-travis coveralls script: tox after_success: coveralls deploy: provider: pypi user: timothycrosley distributions: sdist bdist_wheel skip_existing: true on: tags: false branch: master condition: "$TOXENV = py37-marshmallow2" password: secure: Zb8jwvUzsiXNxU+J0cuP/7ZIUfsw9qoENAlIEI5qyly8MFyHTM/HvdriQJM0IFCKiOSU4PnCtkL6Yt+M4oA7QrjsMrxxDo2ekZq2EbsxjTNxzXnnyetTYh94AbQfZyzliMyeccJe4iZJdoJqYG92BwK0cDyRV/jSsIL6ibkZgjKuBP7WAKbZcUVDwOgL4wEfKztTnQcAYUCmweoEGt8r0HP1PXvb0jt5Rou3qwMpISZpBYU01z38h23wtOi8jylSvYu/LiFdV8fKslAgDyDUhRdbj9DMBVBlvYT8dlWNpnrpphortJ6H+G82NbFT53qtV75CrB1j/wGik1HQwUYfhfDFP1RYgdXfHeKYEMWiokp+mX3O9uv/AoArAX5Q4auFBR8VG3BB6H96BtNQk5x/Lax7eWMZI0yzsGuJtWiDyeI5Ah5EBOs89bX+tlIhYDH5jm44ekmkKJJlRiiry1k2oSqQL35sLI3S68vqzo0vswsMhLq0/dGhdUxf1FH9jJHHbSxSV3HRSk045w9OYpLC2GULytSO9IBOFFOaTJqb8MXFZwyb9wqZbQxELBrfH3VocVq85E1ZJUT4hsDkODNfe6LAeaDmdl8V1T8d+KAs62pX+4BHDED+LmHI/7Ha/bf6MkXloJERKg3ocpjr69QADc3x3zuyArQ2ab1ncrer+yk= hug-2.6.0/ACKNOWLEDGEMENTS.md000066400000000000000000000046041353170073200151630ustar00rootroot00000000000000Core Developers =================== - Timothy Edmund Crosley (@timothycrosley) - Brandon Hoffman (@BrandonHoffman) - Jason Tyler (@jay-tyler) - Fabian Kochem (@vortec) Notable Bug Reporters =================== - Michael Buckner (@michaelbuckner) - Carl Neuhaus (@carlneuhaus) - Eirik Rye (@eirikrye) - Matteo Bertini (@naufraghi) - Erwin Haasnoot (@ErwinHaasnoot) - Aris Pikeas (@pikeas) Code Contributors =================== - Kostas Dizas (@kostasdizas) - Ali-Akber Saifee (@alisaifee) - @arpesenti - Eirik Rye (@eirikrye) - Matteo Bertini (@naufraghi) - Trevor Scheitrum (@trevorscheitrum) - Ian Wagner (@ianthetechie) - Erwin Haasnoot (@ErwinHaasnoot) - Kirk Leon Guerrero (@kirklg) - Ergo_ (@johnlam) - Rodrigue Cloutier (@rodcloutier) - KhanhIceTea (@khanhicetea) - Prashant Sinha (@PrashntS) - Alan Lu (@cag) - Soloman Weng (@soloman1124) - Evan Owen (@thatGuy0923) - Gemedet (@gemedet) - Garrett Squire (@gsquire) - Haïkel Guémar (@hguemar) - Eshin Kunishima (@mikoim) - Mike Adams (@mikeadamz) - Michal Bultrowicz (@butla) - Bogdan (@spock) - @banteg - Philip Bjorge (@philipbjorge) - Daniel Metz (@danielmmetz) - Alessandro Amici (@alexamici) - Trevor Bekolay (@tbekolay) - Elijah Wilson (@tizz98) - Chelsea Dole (@chelseadole) - Antti Kaihola (@akaihola) - Christopher Goes (@GhostOfGoes) - Stanislav (@atmo) - Lordran (@xzycn) - Stephan Fitzpatrick (@knowsuchagency) - Edvard Majakari (@EdvardM) Documenters =================== - Timothy Cyrus (@tcyrus) - M.Yasoob Ullah Khalid (@yasoob) - Lionel Montrieux (@lmontrieux) - Ian Wagner (@ianthetechie) - Andrew Murray (@radarhere) - Tim (@timlyo) - Sven-Hendrik Haase (@svenstaro) - Matt Caldwell (@mattcaldwell) - berdario (@berdario) - Cory Taylor (@coryandrewtaylor) - James C. (@JamesMCo) - Ally Weir (@allyjweir) - Steven Loria (@sloria) - Patrick Abeya (@wombat2k) - Ergo_ (@johnlam) - Adeel Khan (@adeel) - Benjamin Williams (@benjaminjosephw) - @gdw2 - Thierry Colsenet (@ThierryCols) - Shawn Q Jackson (@gt50) - Bernhard E. Reiter (@bernhardreiter) - Adam McCarthy (@mccajm) - Sobolev Nikita (@sobolevn) - Chris (@ckhrysze) - Amanda Crosley (@waddlelikeaduck) - Chelsea Dole (@chelseadole) - Joshua Crowgey (@jcrowgey) - Antti Kaihola (@akaihola) - Simon Ince (@Simon-Ince) - Edvard Majakari (@EdvardM) -------------------------------------------- A sincere thanks to everyone who has helped make hug the great Python3 project it is today! ~Timothy Crosley hug-2.6.0/ARCHITECTURE.md000066400000000000000000000261771353170073200145240ustar00rootroot00000000000000The guiding thought behind the architecture =========================================== hug is the cleanest way to create HTTP REST APIs on Python 3. It consistently benchmarks among the top 3 performing web frameworks for Python, handily beating out Flask and Django. For almost every common Web API task the code written to accomplish it in hug is a small fraction of what is required in other Frameworks. However, it's important to note, hug is not a Web API Framework. OK--that certainly is a function it performs. And exceptionally well at that. But at its core, hug is a framework for exposing idiomatically correct and standard internal Python APIs externally. A framework to allow developers and architects to define logic and structure once, and then cleanly expose it over other means. Currently, this means that you can expose existing Python functions / APIs over HTTP and CLI in addition to standard Python. However, as time goes on more interfaces will be supported. The architecture and implementation decisions that have gone into hug have and will continue to support this goal. This central concept also frees hug to rely on the fastest and best of breed components for every interface it supports: - [Falcon](https://github.com/falconry/falcon) is leveraged when exposing to HTTP for its impressive performance at this task - [Argparse](https://docs.python.org/3/library/argparse.html) is leveraged when exposing to CLI for the clean consistent interaction it enables from the command line What this looks like in practice - an illustrative example =========================================== Let's say I have a very simple Python API I've built to add 2 numbers together. I call my invention `addition`. Trust me, this is legit. It's trademarked and everything: ```python """A simple API to enable adding two numbers together""" def add(number_1, number_2): """Returns the result of adding number_1 to number_2""" return number_1 + number_2 ``` It works, it's well documented, and it's clean. Several people are already importing and using my Python module for their math needs. However, there's a great injustice! I'm lazy, and I don't want to open a Python interpreter etc to access my function. Here's how I modify it to expose it via the command line: ```python """A simple API to enable adding two numbers together""" import hug @hug.cli() def add(number_1: hug.types.number, number_2: hug.types.number): """Returns the result of adding number_1 to number_2""" return number_1 + number_2 if __name__ == '__main__': add.interface.cli() ``` Yay! Now I can just do my math from the command line using: ```add.py $NUMBER_1 $NUMBER_2```. And even better, if I miss an argument it lets me know what it is and how to fix my error. The thing I immediately notice, is that my new command line interface works, it's well documented, and it's clean. Just like the original. However, users are not satisfied. I keep updating my API and they don't want to have to install a new copy every time. They demand a Web API so they can always be pointing to my latest and greatest without restarting their apps and APIs. No problem. I'll just expose it over HTTP as well: ```python """A simple API to enable adding two numbers together""" import hug @hug.get() # <-- This is the only additional line @hug.cli() def add(number_1: hug.types.number, number_2: hug.types.number): """Returns the result of adding number_1 to number_2""" return number_1 + number_2 if __name__ == '__main__': add.interface.cli() ``` That's it. I then run my new service via `hug -f add.py` and can see it running on `http://localhost:8000/`. The default page shows me documentation that points me toward `http://localhost:8000/add?number_1=1&number_2=2` to perform my first addition. The thing I immediately notice, is that my new web interface works, it's well documented, and it's clean. Just like the original. Even better, after all of this, people hitting the API via Python didn't have to change anything. All my original unit tests continue to pass and my code coverage remains at 100%. It turns out, the problems and thoughts that go into defining a clean well documented API for internal use greatly mirror those that are required to expose an API for external use. hug recognizes this and enables cleanly reusing the documentation, requirements, and structure of internal APIs for external use. This also encourages easier to use and well documented internal APIs: a major win/win. What happened internally as I exposed my API to new interfaces? =========================================== A few things happen when you wrapped that first function for external use, with hug.cli(): - hug created a singleton hug.API object on your module to keep track of all interfaces that exist within the module - This is referable by `__hug__` or `hug.API(__name__)` - a new `hug.interface.CLI()` object was created and attached to `add.interface.cli` - This interface fully encapsulates the logic needed to expose `add` as a command line tool - NOTE: all supported ways to expose a function via hug can be found in `hug/interface.py` - the original Python `add` function is returned unmodified (with exception to the `.interface.cli` property addition) Then when I extended my API to run as HTTP service the same basic pattern was followed: - hug saw that the singleton already existed - a new `hug.interface.HTTP()` object was created and attached to `add.interface.http` - This interface encapsulates the logic needed to expose the `add` command as an HTTP service - The new HTTP interface handler is registered to the API singleton - the original Python `add` function is returned unmodified (with exception to the `.interface.http` property addition) At the end of this, I have 2 interface objects attached to my original function: `add.cli` and `add.http`. Which is consistent with what I want to accomplish, one Python API with 2 additional external interfaces. When I start the service via the command line, I call the `add.cli` interface directly which executes the code producing a command line tool to interact with the add function. When I run `hug -f add.py` the hug runner looks for the `__hug__` singleton object and then looks for all registered HTTP interfaces, creating a Falcon WSGI API from them. It then uses this new Falcon API to directly handle incoming HTTP requests. Where does the code live for these core pieces? =========================================== While hug has a lot of modules that enable it to provide a great depth of functionality, everything accomplished above, and that is core to hug, lives in only a few: - `hug/api.py`: Defines the hug per-module singleton object that keeps track of all registered interfaces, alongside the associated per interface APIs (HTTPInterfaceAPI, CLIInterfaceAPI) - `hug/routing.py`: holds all the data and settings that should be passed to newly created interfaces, and creates the interfaces from that data. - This directly is what powers `hug.get`, `hug.cli`, and all other function to interface routers - Can be seen as a Factory for creating new interfaces - `hug/interface.py`: Defines the actual interfaces that manage external interaction with your function (CLI and HTTP). These 3 modules define the core functionality of hug, and any API that uses hug will inevitably utilize these modules. Develop a good handling on just these and you'll be in great shape to contribute to hug, and think of new ways to improve the Framework. Beyond these there is one additional internal utility library that enables hug to do its magic: `hug/introspect.py`. This module provides utility functions that enable hugs routers to determine what arguments a function takes and in what form. Enabling interfaces to improve upon internal functions =========================================== hug provides several mechanisms to enable your exposed interfaces to have additional capabilities not defined by the base Python function. Enforced type annotations -- hug interfaces automatically enforce the type annotations that you set on functions ```python def add(number_1:hug.types.number, number_2:hug.types.number): ``` - These types are simply called with the data which is passed into that field, if an exception is raised then it's seen as invalid. - All of hug's custom types used for enforcing annotations are defined in `hug/types.py`. Directives -- hug interfaces allow replacing Python function parameters with dynamically-pulled data via directives. ```python def add(number_1:hug.types.number, number_2:hug.types.number, hug_timer=2): ``` - In this example `hug_timer` is a directive, when calling via a hug interface `hug_timer` is replaced with a timer that contains the starting time. - All of hug's built-in directives are defined in `hug/directives.py`. Requires -- hug requirements allow you to specify requirements that must be met only for specified interfaces. ```python @hug.get(requires=hug.authentication.basic(hug.authentication.verify('User1', 'mypassword'))) ``` - Causes the HTTP method to only successfully call the Python function if User1 is logged in. - require functions currently highly focused on authentication and all existing require functions are defined in `hug/authentication.py`. Transformations -- hug transformations enable changing the result of a function but only for the specified interface. ```python @hug.get(transform=str) ``` - The above would cause the method to return a stringed result, while the original Python function would still return an int. - All of hug's built in transformations are defined in `hug/transform.py`. Input/Output formats -- hug provides an extensive number of built-in input and output formats. ```python @hug.get(output_format=hug.output_format.json) ``` - These formats define how data should be sent to your API function and how it will be returned. - All of hugs built-in output formats are found in `hug/output_format.py`. - All of hugs built-in input formats are found in `hug/input_format.py`. - The default `output_formatting` is JSON. Switching from using a hug API over one interface to another =========================================== hug does its best to also solve the other side of the coin: that is how APIs are used. While native Python will always be the fastest, HTTP can provide attractive auto updating and clear responsibility separation benefits. You can interact with hug APIs via hug.use.[interface] if the ability to switch between these is a high priority for you. The code that enables this is found in `hug/use.py` and should be kept in mind if working on adding an additional interface for hug, or changing how hug calls functions. Feel free to update or request more info :) =========================================== I tried my best to highlight where important functionality in the hug project lives via this Architecture document, as well as explain the reasoning behind it. However, this document is certainly not complete! If you encounter anything you would like to be expanded upon or explained in detail here, please either let me know or modify the document so everyone can get a good walkthrough of hug's architecture. Thanks! I hope you have found this guide useful :) ~Timothy hug-2.6.0/CHANGELOG.md000066400000000000000000000543201353170073200141200ustar00rootroot00000000000000Install the latest =================== To install the latest version of hug simply run: ```bash pip3 install hug --upgrade ``` Ideally, within a virtual environment. Changelog ========= ### 2.6.0 - August 29, 2019 - Improved CLI multiple behaviour with empty defaults - Improved CLI type output for built-in types - Improved MultiCLI base documentation ### 2.5.6 - June 20, 2019 - Fixed issue #815: map_params() causes api documentation to lose param type information - Improved project testing: restoring 100% coverage ### 2.5.5 - June 13, 2019 - Fixed issue #808: Problems with command line invocation via hug CLI - Fixed issue #647: Support for arbitrary URL complexity when using CORS middleware - Fixed issue #805: Added documentation for `map_params` feature - Added initial automated code cleaning and linting partially satisfying [HOPE-8 -- Style Guideline for Hug](https://github.com/hugapi/HOPE/blob/master/all/HOPE-8--Style-Guide-for-Hug-Code.md#hope-8----style-guide-for-hug-code) - Implemented [HOPE-20 -- The Zen of Hug](https://github.com/hugapi/HOPE/blob/master/all/HOPE-20--The-Zen-of-Hug.md) ### 2.5.4 hotfix - May 19, 2019 - Fix issue #798 - Development runner `TypeError` when executing cli ### 2.5.3 hotfix - May 15, 2019 - Fixed issue #794 - Restore support for versions of Marshmallow pre-2.17.0 ### 2.5.2 hotfix - May 10, 2019 - Fixed issue #790 - Set Falcon defaults to pre 2.0.0 version to avoid breaking changes for Hug users until a Hug 3.0.0 release. The new default Falcon behaviour can be defaulted before hand by setting `__hug__.future = True`. ### 2.5.1 hotfix - May 9, 2019 - Fixed issue #784 - POST requests broken on 2.5.0 - Optimizations and simplification of async support, taking advantadge of Python3.4 deprecation. - Fix issue #785: Empty query params are not ignored on 2.5.0 - Added support for modifying falcon API directly on startup - Initial `black` formatting of code base, in preperation for CI enforced code formatting ### 2.5.0 - May 4, 2019 - Updated to latest Falcon: 2.0.0 - Added support for Marshmallow 3 - Added support for `args` decorator parameter to optionally specify type transformations separate from annotations - Added support for tests to provide a custom host parameter - Breaking Changes: - Deprecated support for Python 3.4 ### 2.4.9 - TBD - Add the ability to invoke the hug development server as a Python module e.g. `python -m hug` - Corrected the documentation for the `--without-cython` install option ### 2.4.8 - April 7, 2019 - Fixed issue #762 - HTTP errors crash with selectable output types - Fixed MacOS testing via travis - added testing accross all the same Python versions tested on Linux ### 2.4.7 - March 28, 2019 - Fixed API documentation with selectable output types ### 2.4.6 - March 25, 2019 - Fixed issue #753 - 404 not found does not respect default output format. - Documented the `--without-cython` option in `CONTRIBUTING.md` - Extended documentation for output formats ### 2.4.4 - March 21, 2019 - Added the ability to change the default output format for CLI endpoints both at the API and global level. - Added the ablity to extend CLI APIs in addition to HTTP APIs issue #744. - Added optional built-in API aware testing for CLI commands. - Add unit test for `extend_api()` with CLI commands - Fix running tests using `python setup.py test` - Fix issue #749 extending API with mixed GET/POST methods - Documented the `multiple_files` example - Added the `--without-cython` option to `setup.py` ### 2.4.3 [hotfix] - March 17, 2019 - Fix issue #737 - latest hug release breaks meinheld worker setup ### 2.4.2 - March 16, 2019 - Python 3.7 support improvements - No longer test against Python 3.4 - aimed for full deprecation in Hug 3.0.0 - Improved interoperability with the latest Falcon release - Documentation improvements - Fixed bug in auto reload ### 2.4.1 - Sep 17, 2018 - Fixed issue #631: Added support for Python 3.7 - Fixed issue #665: Fixed problem with hug.types.json - Fixed issue #679: Return docs for marshmallow schema instead of for dump method ### 2.4.0 - Jan 31, 2018 - Updated Falcon requirement to 1.4.1 - Fixed issue #590: Textual output formats should have explicitly defined charsets by default - Fixed issue #596: Host argument for development runner - Fixed issue #563: Added middleware to handle CORS requests - Implemented issue #612: Add support for numpy types in JSON output by default - Implemented improved class based directives with cleanup support (see: https://github.com/timothycrosley/hug/pull/603) - Support ujson if installed - Implement issue #579: Allow silencing intro message when running hug from command line - Implemented issue #531: Allow exit value to alter status code for CLI tools - Updated documentation generation to use hug's JSON outputter for consistency ### 2.3.2 - Sep 28, 2017 - Implemented Issue #540: Add support for remapping parameters - Updated Falcon requirement to 1.3.0 - Fixed issue #552: Version ignored in class based routes - Fixed issue #555: Gracefully handle digit only version strings - Fixed issue #519: Exceptions are now correctly inserted into the current API using `extend_api` - Breaking Changes: - Fixed issue #539: Allow JSON output to include non-ascii (UTF8) characters by default. ### 2.3.1 - Aug 26, 2017 - Fixed issue #500 & 504: Added support for automatic reload on Windows & enabled intuitive use of pdb within autoreloader - Implemented improved way to retrieve list of urls and handlers for issue #462 - Implemented support for Python typing module style sub types - Updated to allow -m parameter load modules on current directory - Improved hug.test decode behaviour - Added built in handlers for CORS support: - directive `hug.directives.cors` - Improved routing support - Added allow origins middleware ### 2.3.0 - May 4, 2017 - Falcon requirement upgraded to 1.2.0 - Enables filtering documentation according to a `base_url` - Fixed a vulnerability in the static file router that allows files in parent directory to be accessed - Fixed issue #392: Enable posting self in JSON data structure - Fixed issue #418: Ensure version passed is a number - Fixed issue #399: Multiple ints not working correctly for CLI interface - Fixed issue #461: Enable async startup methods running in parallel - Fixed issue #412: None type return for file output format - Fixed issue #464: Class based routing now inherit templated parameters - Fixed issue #346: Enable using async routes within threaded server - Implemented issue #437: Added support for anonymous APIs - Added support for exporting timedeltas to JSON as seconds - Added support for endpoint-specific input formatters: ```python def my_input_formatter(data): return ('Results', hug.input_format.json(data)) @hug.get(inputs={'application/json': my_input_formatter}) def foo(): pass ``` - Adds support for passing in a custom scheme in hug.test - Adds str() and repr() support to hug_timer directive - Added support for moduleless APIs - Improved argparser usage message - Implemented feature #427: Allow custom argument deserialization together with standard type annotation - Improvements to exception handling. - Added support for request / response in a single generator based middleware function - Automatic reload support for development runner - Added support for passing `params` dictionary and `query_string` arguments into hug.test.http command for more direct modification of test inputs - Added support for manual specifying the scheme used in hug.test calls - Improved output formats, enabling nested request / response dependent formatters - Breaking Changes - Sub output formatters functions now need to accept response & request or **kwargs - Fixed issue #432: Improved ease of sub classing simple types - causes type extensions of types that dont take to __init__ arguments, to automatically return an instanciated type, beaking existing usage that had to instanciate after the fact - Fixed issue #405: cli and http @hug.startup() differs, not executed for cli, this also means that startup handlers are given an instance of the API and not of the interface. ### 2.2.0 - Oct 16, 2016 - Defaults asyncio event loop to uvloop automatically if it is installed - Added support for making endpoints `private` to enforce lack of automatic documentation creation for them. - Added HTTP method named (get, post, etc) routers to the API router to be consistent with documentation - Added smart handling of empty JSON content (issue #300) - Added ability to have explicitly unversioned API endpoints using `versions=False` - Added support for providing a different base URL when extending an API - Added support for sinks when extending API - Added support for object based CLI handlers - Added support for excluding exceptions from being handled - Added support for **kwarg handling within CLI interfaces - Allows custom decorators to access parameters like request and response, without putting them in the original functions' parameter list - Fixed not found handlers not being imported when extending an API - Fixed API extending support of extra features like input_format - Fixed issue with API directive not working with extension feature - Fixed nested async calls so that they reuse the same loop - Fixed TypeError being raised incorrectly when no content-type is specified (issue #330) - Fixed issues with multi-part requests (issue #329) - Fixed documentation output to exclude `api_version` and `body` - Fixed an issue passing None where a text value was required (issue #341) ### 2.1.2 - May 18, 2016 - Fixed an issue with sharing exception handlers across multiple modules (Thanks @soloman1124) - Fixed how single direction (response / request) middlewares are bounded to work when code is Cython compiled ### 2.1.1 - May 17, 2016 - Hot-fix release to ensure input formats don't die with unexpected parameters ### 2.1.0 - May 17, 2016 - Updated base Falcon requirement to the latest: 1.0.0 - Added native support for using asyncio methods (Thanks @rodcloutier!) - Added improved support for `application/x-www-form-urlencoded` forms (thanks @cag!) - Added initial support for `multipart/form-data` - Added support for getting URL from hug function - Added support for using `hug.local()` on methods in addition to functions - Added a default mime-type for static file endpoints (`application/octet-stream`) - Added initial `hug.API(__name__).context` dictionary as a safe place to store global per-thread state (such as database connections) - Added support for manually specifying API object for all decorators (including middleware / startup) to enable easier plugin interaction - Added support for selectively removing requirements per endpoint - Added conditional output format based on Accept request header, as detailed in issue #277 - Added support for dynamically creating named modules from API names - Improved how `hug.test` deals with non JSON content types - Fixed issues with certain non-standard content-type values causing an exception - Fixed a bug producing documentation when versioning is used, and there are no routes that apply accros versions - Fixed a bug in the `hug_documentation` directive - Breaking Changes - Input formats no longer get passed `encoding` but instead get passed `charset` along side all other set content type parameters ### 2.0.7 - Mar 25, 2016 - Added convenience `put_post` router to enable easier usage of the common `@hug.get('url/', ('PUT', 'POST"))` pattern - When passing lists or tuples to the hug http testing methods, they will now correctly be handled as multiple values ### 2.0.5 - 2.0.6 - Mar 25, 2016 - Adds built-in support for token based authentication ### 2.0.4 - Mar 22, 2016 - Fixes documentation on PyPI website ### 2.0.3 - Mar 22, 2016 - Fixes hug.use module on Windows ### 2.0.2 - Mar 18, 2016 - Work-around bug that was keeping hug from working on Windows machines - Introduced a delete method to the abstract hug store module ### 2.0.1 - Mar 18, 2016 - Add in-memory data / session store for testing - Default hug.use.HTTP to communicate over JSON body ### 2.0.0 - Mar 17, 2016 - Adds the concept of chain-able routing decorators - Adds built-in static file handling support via a `@hug.static` decorator (thanks @BrandonHoffman!) - Adds a directive to enable directly accessing the user object from any API call (thanks @ianthetechie) - Adds the concept of seamless micro-services via the hug.use module, enable switching between HTTP and local without code change - Adds built-in support for 'X-Api-Key' header based authentication via `authentication.api_key` - Adds support for running arbitrary python functions at runtime via a `@hug.startup` decorator - Adds support for smarter handling of html output types - Adds a UUID type - Adds support for explicit API creation / referencing using `hug.api(__name__)` - Adds a logging middleware to simplify the process of logging all requests with hug - Adds a `middleware_class` class decorator, to enable quickly registering middleware classes - Adds `smart_redirection` allowing API functions to return other endpoints - Adds support for class based handlers - Adds support for automatically handling exceptions - Adds support for automatically outputting images with `save` method that don't take a format. - Added extended support for delimited fields, enabling use of custom delimiters - Added support for running different transformers based on content_type - Added support for outputting a different response output type based on the response content_type - Added support for running different transformations and outputting different content_types based on path suffix - Added support for automatically supporting a set of suffixes at the end of a URL - Added support for automatically adding headers based on route match - Added support for quickly adding cache header based on route match - Added support for quickly adding allow origin header based on route match - Added support for quickly re-routing to defined 404 handler - Added support for length based types (`length`, `shorter_than`, and `longer_than`) - Added support for easily extending hugs JSON outputter with support for custom types - Added support for a custom final pass validation function - Added support for defining routes separate from handlers - Added support for raising on validation errors - to enable overall exception handlers to catch them - Added support for multiple transformers on an endpoint via `transform.all` - Added support for applying type annotations and directives locally with @hug.local() - Added support for a base_url by doing `hug.API(__name__).http.base_url = '/base_url'` - Added support for automatically running CLI commands from hug command line runner - Added requirements to documentation - Updated all default output formats to gracefully handle error dictionaries - Documentation generation was moved to API instances to enable easier customization - Now correctly identifies and handles custom encodings - Improved integration with Falcon so that primary elements (like status codes) can be imported directly from hug - Added the ability to specify a transformer for validation errors per request handler, via `on_invalid` decorator argument - Added the ability to specify an output format specific to validation errors per request handler, via `output_invalid` decorator argument - Changed transform functions to get ran on output of validation errors by default - Automatically works around a bug in uwsgi when returning byte streams - Refactored how interfaces are built to be more reasuable, and more easily introspected - Refactored how the built in annotation types are built to be more easily built upon - Updated type.string to fail if a list is passed in - Removed 'cli_behaviour' from types, instead moving the responsibility of per-type behavior to the CLI interface - Fixed a bug that leaked annotation provided directives to the produced documentation - Fully re-factored hug's type system for easier extensibility - Breaking Changes - directives are no longer automatically applied to local function calls, '@hug.local' must be used to apply them - cli_behaviour has been removed as a type feature - however common sense inheritance of base types should easily replace it's usage - documentation module has been removed, in favor of documentation being generated by the api object and individual interfaces - API singleton now has sub-apis for each interface in use (IE hug.API(__name__).http and hug.API(__name__).cli) - run module has been removed, with the functionality moved to hug.API(__name__).http.server() and the terminal functionality being moved to hug.development_runner.hug ### 1.9.9 - Dec 15, 2015 - Hug's json serializer will now automatically convert decimal.Decimal objects during serializationkw - Added `in_range`, `greater_than`, and `less_than` types to allow easily limiting values entered into an API ### 1.9.8 - Dec 1, 2015 - Hug's json serializer will now automatically convert returned (non-list) iterables into json lists ### 1.9.7 - Dec 1, 2015 - Fixed a bug (issue #115) that caused the command line argument for not auto generating documentation `-nd` to fail ### 1.9.6 - Nov 25, 2015 - Fixed a bug (issue #112) that caused non-versioned endpoints not to show up in auto-generated documentation, when versioned endpoints are present ### 1.9.5 - Nov 20, 2015 - Improved cli output, to output nothing if None is returned ### 1.9.3 - Nov 18, 2015 - Enabled `hug.types.multiple` to be exposed as nargs `*` - Fixed a bug that caused a CLI argument when adding an argument starting with `help` - Fixed a bug that caused CLI arguments that used `hug.types.multiple` to be parsed as nested lists ### 1.9.2 - Nov 18, 2015 - Improved boolean type behavior on CLIs ### 1.9.1 - Nov 14, 2015 - Fixes a bug that caused hug cli clients to occasionally incorrectly require additional arguments - Added support for automatically converting non utf8 bytes to base64 during json output ### 1.9.0 - Nov 10, 2015 - Added initial built-in support for video output formats (Thanks @arpesenti!) - Added built-in automatic support for range-requests when streaming files (such as videos) - Output formatting functions are now called, even if a stream is returned. - Input formatting functions now need to be responsible for dealing with text encoding and streaming - Added additional default input format for `text/plain` and a few other common text based formats - If no input format is available, but the body parameter is requested - the body stream is now returned - Added support for a generic `file` output formatter that automatically determines the content type for the file ### 1.8.2 - Nov 9, 2015 - Drastically improved hug performance when dealing with a large number of requests in wsgi mode ### 1.8.1 - Nov 5, 2015 - Added `json` as a built in hug type to handle urlencoded json data in a request - Added `multi` as a built in hug type that will allow a single field to be one of multiple types ### 1.8.0 - Nov 4, 2015 - Added a `middleware` module make it easier to bundle generally useful middlewares going forward - Added a generic / reusable `SessionMiddleware` (Thanks @vortec!) ### 1.7.1 - Nov 4, 2015 - Fix a bug that caused error messages sourced from exceptions to be double quoted ### 1.7.0 - Nov 3, 2015 - Auto supply `response` and `request` to output transformations and formats when they are taken as arguments - Improved the `smart_boolean` type even further, to allow 0, 1, t, f strings as input - Enabled normal boolean type to easily work with cli apps, by having it interact via 'store_true' ### 1.6.5 - Nov 2, 2015 - Fixed a small spelling error on the `smart_boolean` type ### 1.6.2 - Nov 2, 2015 - Added a `mapping` type that allows users to quikly map string values to Python types - Added a `smart_boolean` type that respects explicit true/false in string values ### 1.6.1 - Oct 30, 2015 - Added support for overriding parameters via decorator to ease use of **kwargs - Added built-in boolean type support - Improved testing environment ### 1.6.0 - Oct 13, 2015 - Adds support for attaching hug routes to method calls - Hug is now compiled using Cython (when it is available) for an additional performance boost ### 1.5.1 - Oct 1, 2015 - Added built-in support for serializing sets ### 1.5.0 - Sep 30, 2015 - Added built-in support for outputting svg images - Added support for rendering images from pygal graphs, or other image framworks that support `render`, automatically - Added support for marshmallow powered output transformations - Added support for marshmallow schema powered input types - Added support for using individual marshmallow fields directly as input types - Added support for attaching directives to specific named parameters, allowing directives to be used multiple times in a single API call - Added support for attaching named directives using only the text name of the directive ### 1.4.0 - Sep 14, 2015 - Added *args support to hug.cli - Added built-in html output support - Added multi-api composition example to examples folder - Fixed issue #70: error when composing two API modules into a single one without directives - Fixed issue #73: README file is incorrectly formatted on PYPI ### 1.3.1 - Sep 8, 2015 - Fixed string only annotations causing exceptions when used in conjunction with `hug.cli` - Fixed return of image file not correctly able to set stream len information / not correctly returning with PIL images - Added examples of image loading with hug ### 1.3.0 - Sep 8, 2015 - Started keeping a log of all changes between releases - Added support for quickly exposing functions as cli clients with `hug.cli` decorator - Added support for quickly serving up development APIs from withing the module using: `if __name__ == '__main__': __hug__.serve()` - Added support for documentation only type annotations, simply by passing just a string in as the type annotation - Added support for `requires` argument to limit execution of functions based on a given criteria - Added automatic documentation of output type transformations - Added initial built-in authentication support - Added built-in support for outputting common image file types - Added support for returning streams within hugged functions - `hug.types.decimal` renamed to `hug.types.float_number` and `hug.types.decimal` type added that returns python Decimal - `hug.types.accept` wrapper added, that makes it easy to customize doc strings and error handling for any preexisting type converter hug-2.6.0/CODING_STANDARD.md000066400000000000000000000017541353170073200150570ustar00rootroot00000000000000Coding Standard ========= Any submission to this project should closely follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) coding guidelines with the exceptions: 1. Lines can be up to 100 characters long. 2. Single letter or otherwise nondescript variable names are prohibited. Standards for new hug modules ========= New modules added to the hug project should all live directly within the `hug/` directory without nesting. If the modules are meant only for internal use within hug they should be prefixed with a leading underscore. For example, `def _internal_function`. Modules should contain a doc string at the top that gives a general explanation of the purpose and then restates the project's use of the MIT license. There should be a `tests/test_$MODULE_NAME.py` file created to correspond to every new module that contains test coverage for the module. Ideally, tests should be 1:1 (one test object per code object, one test method per code method) to the extent cleanly possible. hug-2.6.0/CONTRIBUTING.md000066400000000000000000000115671353170073200145460ustar00rootroot00000000000000Contributing to hug ========= Looking for a growing and useful open source project to contribute to? Want your contributions to be warmly welcomed and acknowledged? Want a free project t-shirt to show you're a contributor? Welcome! You have found the right place. hug is growing quickly and needs awesome contributors like *you* to help the project reach its full potential. From reporting issues, writing documentation, implementing new features, fixing bugs and creating logos to providing additional usage examples - any contribution you can provide will be greatly appreciated and acknowledged. Getting hug set up for local development ========= The first step when contributing to any project is getting it set up on your local machine. hug aims to make this as simple as possible. Account Requirements: - [A valid GitHub account](https://github.com/join) Base System Requirements: - Python3.5+ - Python3-venv (included with most Python3 installations but some Ubuntu systems require that it be installed separately) - bash or a bash compatible shell (should be auto-installed on Linux / Mac) - [autoenv](https://github.com/kennethreitz/autoenv) (optional) Once you have verified that you system matches the base requirements you can start to get the project working by following these steps: 1. [Fork the project on GitHub](https://github.com/timothycrosley/hug/fork). 2. Clone your fork to your local file system: `git clone https://github.com/$GITHUB_ACCOUNT/hug.git` 3. `cd hug` - If you have autoenv set-up correctly, simply press Y and then wait for the environment to be set up for you. - If you don't have autoenv set-up, run `source .env` to set up the local environment. You will need to run this script every time you want to work on the project - though it will not cause the entire set up process to re-occur. 4. Run `test` to verify your everything is set up correctly. If the tests all pass, you have successfully set up hug for local development! If not, you can ask for help diagnosing the error [here](https://gitter.im/timothycrosley/hug). At step 3, you can skip using autoenv and the `.env` script, and create your development virtul environment manually instead using e.g. [`python3 -m venv`](https://docs.python.org/3/library/venv.html) or `mkvirtualenv` (from [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)). Install dependencies by running `pip install -r requirements/release.txt`, and optional build or development dependencies by running `pip install -r requirements/build.txt` or `pip install -r requirements/build.txt`. Install Hug itself with `pip install .` or `pip install -e .` (for editable mode). This will compile all modules with [Cython](https://cython.org/) if it's installed in the environment. You can skip Cython compilation using `pip install --install-option=--without-cython .` (this works with `-e` as well). Making a contribution ========= Congrats! You're now ready to make a contribution! Use the following as a guide to help you reach a successful pull-request: 1. Check the [issues page](https://github.com/timothycrosley/hug/issues) on GitHub to see if the task you want to complete is listed there. - If it's listed there, write a comment letting others know you are working on it. - If it's not listed in GitHub issues, go ahead and log a new issue. Then add a comment letting everyone know you have it under control. - If you're not sure if it's something that is good for the main hug project and want immediate feedback, you can discuss it [here](https://gitter.im/timothycrosley/hug). 2. Create an issue branch for your local work `git checkout -b issue/$ISSUE-NUMBER`. 3. Do your magic here. 4. Run `clean` to automatically sort your imports according to pep-8 guidelines. 5. Ensure your code matches hug's latest coding standards defined [here](https://github.com/timothycrosley/hug/blob/develop/CODING_STANDARD.md). It's important to focus to focus on making your code efficient as hug is used as a base framework for several performance critical APIs. 7. Submit a pull request to the main project repository via GitHub. Thanks for the contribution! It will quickly get reviewed, and, once accepted, will result in your name being added to the ACKNOWLEDGEMENTS.md list :). Getting a free t-shirt ========= ![hug t-shirt](https://raw.github.com/timothycrosley/hug/develop/artwork/t-shirt.png) Once you have finished contributing to the project, send your mailing address and shirt size to timothy.crosley@gmail.com, with the title hug Shirt for @$GITHUB_USER_NAME. When the project has reached 100 contributors, I will be sending every one of the original hundred contributors a t-shirt to commemorate their awesome work. Thank you! ========= I can not tell you how thankful I am for the hard work done by hug contributors like you. hug could not be the exciting and useful framework it is today without your help. Thank you! ~Timothy Crosley hug-2.6.0/EXTENDING.md000066400000000000000000000061201353170073200141510ustar00rootroot00000000000000Building hug extensions ========= Want to extend hug to tackle new problems? Integrate a new form of authentication? Add new useful types? Awesome! Here are some guidlines to help you get going and make a world class hug extension that you will be proud to have showcased to all hug users. How are extensions built? ========= hug extensions should be built like any other python project and uploaded to PYPI. What makes a hug extension a *hug* extension is simply it's name and the fact it contains within its Python code utilities and classes that extend hugs capabilties. Naming your extension ========= All hug extensions should be prefixed with `hug_` for easy disscovery on PYPI. Additionally, there are a few more exact prefixes that can be optionally be added to help steer users to what your extensions accomplishes: - `hug_types_` should be used if your extensions is used primarily to add new types to hug (for example: hug_types_numpy). - `hug_authentication_` if your extension is used primarily to add a new authentication type to hug (for example: hug_authentication_oath2) - `hug_output_format_` if your extension is used primarily to add a new output format to hug (for example: hug_output_format_svg) - `hug_input_format_` if your extension is used primarily to add a new input format to hug (for example: hug_input_format_html) - `hug_validate_` if your extension is used primarily to add a new overall validator to hug (for example: hug_validate_no_null). - `hug_transform_` if your extension is used primarily to add a new hug transformer (for example: hug_transform_add_time) - `hug_middleware_` if your extension is used primarily to add a middleware to hug (for example: hug_middleware_redis_session) For any more complex or general use case that doesn't fit into these predefined categories or combines many of them, it is perfectly suitable to simply prefix your extension with `hug_`. For example: hug_geo could combine hug types, hug input formats, and hug output formats making it a good use case for a simply prefixed extension. Building Recommendations ========= Ideally, hug extensions should be built in the same manner as hug itself. This means 100% test coverage using pytest, decent performance, pep8 compliance, and built in optional compiling with Cython. None of this is strictly required, but will help give users of your extension faith that it wont slow things down or break their setup unexpectedly. Registering your extension ========= Once you have finished developing and testing your extension, you can help increase others ability to discover it by registering it. The first place an extension should be registered is on PYPI, just like any other Python Package. In addition to that you can add your extension to the list of extensions on hug's [github wiki](https://github.com/timothycrosley/hug/wiki/Hug-Extensions). Thank you ========= A sincere thanks to anyone that takes the time to develop and register an extension for hug. You are helping to make hug a more complete eco-system for everyuser out there, and paving the way for a solid foundation into the future. Thanks! ~Timothy Crosley hug-2.6.0/FAQ.md000066400000000000000000000065741353170073200132500ustar00rootroot00000000000000# Frequently Asked Questions about Hug For more examples, check out Hug's [documentation](https://github.com/timothycrosley/hug/tree/develop/documentation) and [examples](https://github.com/timothycrosley/hug/tree/develop/examples) Github directories, and its [website](http://www.hug.rest/). ## General Questions Q: *Can I use Hug with a web framework -- Django for example?* A: You can use Hug alongside Django or the web framework of your choice, but it does have drawbacks. You would need to run hug on a separate, hug-exclusive server. You can also [mount Hug as a WSGI app](https://pythonhosted.org/django-wsgi/embedded-apps.html), embedded within your normal Django app. Q: *Is Hug compatabile with Python 2?* A: Python 2 is not supported by Hug. However, if you need to account for backwards compatability, there are workarounds. For example, you can wrap the decorators: ```Python def my_get_fn(func, *args, **kwargs): if 'hug' in globals(): return hug.get(func, *args, **kwargs) return func ``` ## Technical Questions Q: *I need to ensure the security of my data. Can Hug be used over HTTPS?* A: Not directly, but you can utilize [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) with nginx to transmit sensitive data. HTTPS is not part of the standard WSGI application layer, so you must use a WSGI HTTP server (such as uWSGI) to run in production. With this setup, Nginx handles SSL connections, and transfers requests to uWSGI. Q: *How can I serve static files from a directory using Hug?* A: For a static HTML page, you can just set the proper output format as: `output=hug.output_format.html`. To see other examples, check out the [html_serve](https://github.com/timothycrosley/hug/blob/develop/examples/html_serve.py) example, the [image_serve](https://github.com/timothycrosley/hug/blob/develop/examples/image_serve.py) example, and the more general [static_serve](https://github.com/timothycrosley/hug/blob/develop/examples/static_serve.py) example within `hug/examples`. Most basic examples will use a format that looks something like this: ```Python @hug.static('/static') def my_static_dirs():  return('/home/www/path-to-static-dir') ``` Q: *Does Hug support autoreloading?* A: Hug supports any WSGI server that uses autoreloading, for example Gunicorn and uWSGI. The scripts for initializing autoreload for them are, respectively: Gunicorn: `gunicorn --reload app:__hug_wsgi__` uWSGI: `--py-autoreload 1 --http :8000 -w app:__hug_wsgi__` Q: *How can I access a list of my routes?* A: You can access a list of your routes by using the routes object on the HTTP API: `__hug_wsgi__.http.routes` It will return to you a structure of "base_url -> url -> HTTP method -> Version -> Python Handler". Therefore, for example, if you have no base_url set and you want to see the list of all URLS, you could run: `__hug_wsgi__.http.routes[''].keys()` Q: *How can I configure a unique 404 route?* A: By default, Hug will call `documentation_404()` if no HTTP route is found. However, if you want to configure other options (such as routing to a directiory, or routing everything else to a landing page) you can use the `@hug.sink('/')` decorator to create a "catch-all" route: ```Python import hug @hug.sink('/all') def my_sink(request): return request.path.replace('/all', '') ``` For more information, check out the ROUTING.md file within the `hug/documentation` directory. hug-2.6.0/LICENSE000066400000000000000000000020601353170073200133060ustar00rootroot00000000000000MIT License Copyright (c) 2016 Timothy Crosley 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. hug-2.6.0/MANIFEST.in000066400000000000000000000000341353170073200140360ustar00rootroot00000000000000include LICENSE include *.mdhug-2.6.0/Pipfile000066400000000000000000000002121353170073200136110ustar00rootroot00000000000000[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] [dev-packages] [requires] python_version = "3.7" hug-2.6.0/README.md000066400000000000000000000355161353170073200135740ustar00rootroot00000000000000[![HUG](https://raw.github.com/hugapi/hug/develop/artwork/logo.png)](http://hug.rest) =================== [![PyPI version](https://badge.fury.io/py/hug.svg)](http://badge.fury.io/py/hug) [![Build Status](https://travis-ci.org/hugapi/hug.svg?branch=develop)](https://travis-ci.org/hugapi/hug) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/0h7ynsqrbaxs7hfm/branch/master?svg=true)](https://ci.appveyor.com/project/TimothyCrosley/hug) [![Coverage Status](https://coveralls.io/repos/hugapi/hug/badge.svg?branch=develop&service=github)](https://coveralls.io/github/hugapi/hug?branch=master) [![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://pypi.python.org/pypi/hug/) [![Join the chat at https://gitter.im/timothycrosley/hug](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/timothycrosley/hug?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) NOTE: For more in-depth documentation visit [hug's website](http://www.hug.rest) hug aims to make developing Python driven APIs as simple as possible, but no simpler. As a result, it drastically simplifies Python API development. hug's Design Objectives: - Make developing a Python driven API as succinct as a written definition. - The framework should encourage code that self-documents. - It should be fast. A developer should never feel the need to look somewhere else for performance reasons. - Writing tests for APIs written on-top of hug should be easy and intuitive. - Magic done once, in an API framework, is better than pushing the problem set to the user of the API framework. - Be the basis for next generation Python APIs, embracing the latest technology. As a result of these goals, hug is Python 3+ only and built upon [Falcon's](https://github.com/falconry/falcon) high performance HTTP library [![HUG Hello World Example](https://raw.github.com/hugapi/hug/develop/artwork/example.gif)](https://github.com/hugapi/hug/blob/develop/examples/hello_world.py) Supporting hug development =================== [Get professionally supported hug with the Tidelift Subscription](https://tidelift.com/subscription/pkg/pypi-hug?utm_source=pypi-hug&utm_medium=referral&utm_campaign=readme) Professional support for hug is available as part of the [Tidelift Subscription](https://tidelift.com/subscription/pkg/pypi-hug?utm_source=pypi-hug&utm_medium=referral&utm_campaign=readme). Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools. Installing hug =================== Installing hug is as simple as: ```bash pip3 install hug --upgrade ``` Ideally, within a [virtual environment](http://docs.python-guide.org/en/latest/dev/virtualenvs/). Getting Started =================== Build an example API with a simple endpoint in just a few lines. ```py # filename: happy_birthday.py """A basic (single function) API written using hug""" import hug @hug.get('/happy_birthday') def happy_birthday(name, age:hug.types.number=1):    """Says happy birthday to a user""" return "Happy {age} Birthday {name}!".format(**locals()) ``` To run, from the command line type: ```bash hug -f happy_birthday.py ``` You can access the example in your browser at: `localhost:8000/happy_birthday?name=hug&age=1`. Then check out the documentation for your API at `localhost:8000/documentation` Parameters can also be encoded in the URL (check out [`happy_birthday.py`](examples/happy_birthday.py) for the whole example). ```py @hug.get('/greet/{event}') def greet(event: str): """Greets appropriately (from http://blog.ketchum.com/how-to-write-10-common-holiday-greetings/) """ greetings = "Happy" if event == "Christmas": greetings = "Merry" if event == "Kwanzaa": greetings = "Joyous" if event == "wishes": greetings = "Warm" return "{greetings} {event}!".format(**locals()) ``` Which, once you are running the server as above, you can use this way: ``` curl http://localhost:8000/greet/wishes "Warm wishes!" ``` Versioning with hug =================== ```py # filename: versioning_example.py """A simple example of a hug API call with versioning""" import hug @hug.get('/echo', versions=1) def echo(text): return text @hug.get('/echo', versions=range(2, 5)) def echo(text): return "Echo: {text}".format(**locals()) ``` To run the example: ```bash hug -f versioning_example.py ``` Then you can access the example from `localhost:8000/v1/echo?text=Hi` / `localhost:8000/v2/echo?text=Hi` Or access the documentation for your API from `localhost:8000` Note: versioning in hug automatically supports both the version header as well as direct URL based specification. Testing hug APIs =================== hug's `http` method decorators don't modify your original functions. This makes testing hug APIs as simple as testing any other Python functions. Additionally, this means interacting with your API functions in other Python code is as straight forward as calling Python only API functions. hug makes it easy to test the full Python stack of your API by using the `hug.test` module: ```python import hug import happy_birthday hug.test.get(happy_birthday, 'happy_birthday', {'name': 'Timothy', 'age': 25}) # Returns a Response object ``` You can use this `Response` object for test assertions (check out [`test_happy_birthday.py`](examples/test_happy_birthday.py) ): ```python def tests_happy_birthday(): response = hug.test.get(happy_birthday, 'happy_birthday', {'name': 'Timothy', 'age': 25}) assert response.status == HTTP_200 assert response.data is not None ``` Running hug with other WSGI based servers =================== hug exposes a `__hug_wsgi__` magic method on every API module automatically. Running your hug based API on any standard wsgi server should be as simple as pointing it to `module_name`: `__hug_wsgi__`. For Example: ```bash uwsgi --http 0.0.0.0:8000 --wsgi-file examples/hello_world.py --callable __hug_wsgi__ ``` To run the hello world hug example API. Building Blocks of a hug API =================== When building an API using the hug framework you'll use the following concepts: **METHOD Decorators** `get`, `post`, `update`, etc HTTP method decorators that expose your Python function as an API while keeping your Python method unchanged ```py @hug.get() # <- Is the hug METHOD decorator def hello_world(): return "Hello" ``` hug uses the structure of the function you decorate to automatically generate documentation for users of your API. hug always passes a request, response, and api_version variable to your function if they are defined params in your function definition. **Type Annotations** functions that optionally are attached to your methods arguments to specify how the argument is validated and converted into a Python type ```py @hug.get() def math(number_1:int, number_2:int): #The :int after both arguments is the Type Annotation return number_1 + number_2 ``` Type annotations also feed into `hug`'s automatic documentation generation to let users of your API know what data to supply. **Directives** functions that get executed with the request / response data based on being requested as an argument in your api_function. These apply as input parameters only, and can not be applied currently as output formats or transformations. ```py @hug.get() def test_time(hug_timer): return {'time_taken': float(hug_timer)} ``` Directives may be accessed via an argument with a `hug_` prefix, or by using Python 3 type annotations. The latter is the more modern approach, and is recommended. Directives declared in a module can be accessed by using their fully qualified name as the type annotation (ex: `module.directive_name`). Aside from the obvious input transformation use case, directives can be used to pipe data into your API functions, even if they are not present in the request query string, POST body, etc. For an example of how to use directives in this way, see the authentication example in the examples folder. Adding your own directives is straight forward: ```py @hug.directive() def square(value=1, **kwargs): '''Returns passed in parameter multiplied by itself''' return value * value @hug.get() @hug.local() def tester(value: square=10): return value tester() == 100 ``` For completeness, here is an example of accessing the directive via the magic name approach: ```py @hug.directive() def multiply(value=1, **kwargs): '''Returns passed in parameter multiplied by itself''' return value * value @hug.get() @hug.local() def tester(hug_multiply=10): return hug_multiply tester() == 100 ``` **Output Formatters** a function that takes the output of your API function and formats it for transport to the user of the API. ```py @hug.default_output_format() def my_output_formatter(data): return "STRING:{0}".format(data) @hug.get(output=hug.output_format.json) def hello(): return {'hello': 'world'} ``` as shown, you can easily change the output format for both an entire API as well as an individual API call **Input Formatters** a function that takes the body of data given from a user of your API and formats it for handling. ```py @hug.default_input_format("application/json") def my_input_formatter(data): return ('Results', hug.input_format.json(data)) ``` Input formatters are mapped based on the `content_type` of the request data, and only perform basic parsing. More detailed parsing should be done by the Type Annotations present on your `api_function` **Middleware** functions that get called for every request a hug API processes ```py @hug.request_middleware() def process_data(request, response): request.env['SERVER_NAME'] = 'changed' @hug.response_middleware() def process_data(request, response, resource): response.set_header('MyHeader', 'Value') ``` You can also easily add any Falcon style middleware using: ```py __hug__.http.add_middleware(MiddlewareObject()) ``` **Parameter mapping** can be used to override inferred parameter names, eg. for reserved keywords: ```py import marshmallow.fields as fields ... @hug.get('/foo', map_params={'from': 'from_date'}) # API call uses 'from' def get_foo_by_date(from_date: fields.DateTime()): return find_foo(from_date) ``` Input formatters are mapped based on the `content_type` of the request data, and only perform basic parsing. More detailed parsing should be done by the Type Annotations present on your `api_function` Splitting APIs over multiple files =================== hug enables you to organize large projects in any manner you see fit. You can import any module that contains hug decorated functions (request handling, directives, type handlers, etc) and extend your base API with that module. For example: `something.py` ```py import hug @hug.get('/') def say_hi(): return 'hello from something' ``` Can be imported into the main API file: `__init__.py` ```py import hug from . import something @hug.get('/') def say_hi(): return "Hi from root" @hug.extend_api('/something') def something_api(): return [something] ``` Or alternatively - for cases like this - where only one module is being included per a URL route: ```py #alternatively hug.API(__name__).extend(something, '/something') ``` Configuring hug 404 =================== By default, hug returns an auto generated API spec when a user tries to access an endpoint that isn't defined. If you would not like to return this spec you can turn off 404 documentation: From the command line application: ```bash hug -nd -f {file} #nd flag tells hug not to generate documentation on 404 ``` Additionally, you can easily create a custom 404 handler using the `hug.not_found` decorator: ```py @hug.not_found() def not_found_handler(): return "Not Found" ``` This decorator works in the same manner as the hug HTTP method decorators, and is even version aware: ```py @hug.not_found(versions=1) def not_found_handler(): return "" @hug.not_found(versions=2) def not_found_handler(): return "Not Found" ``` Asyncio support =============== When using the `get` and `cli` method decorator on coroutines, hug will schedule the execution of the coroutine. Using asyncio coroutine decorator ```py @hug.get() @asyncio.coroutine def hello_world(): return "Hello" ``` Using Python 3.5 async keyword. ```py @hug.get() async def hello_world(): return "Hello" ``` NOTE: Hug is running on top Falcon which is not an asynchronous server. Even if using asyncio, requests will still be processed synchronously. Using Docker =================== If you like to develop in Docker and keep your system clean, you can do that but you'll need to first install [Docker Compose](https://docs.docker.com/compose/install/). Once you've done that, you'll need to `cd` into the `docker` directory and run the web server (Gunicorn) specified in `./docker/gunicorn/Dockerfile`, after which you can preview the output of your API in the browser on your host machine. ```bash $ cd ./docker # This will run Gunicorn on port 8000 of the Docker container. $ docker-compose up gunicorn # From the host machine, find your Dockers IP address. # For Windows & Mac: $ docker-machine ip default # For Linux: $ ifconfig docker0 | grep 'inet' | cut -d: -f2 | awk '{ print $1}' | head -n1 ``` By default, the IP is 172.17.0.1. Assuming that's the IP you see, as well, you would then go to `http://172.17.0.1:8000/` in your browser to view your API. You can also log into a Docker container that you can consider your work space. This workspace has Python and Pip installed so you can use those tools within Docker. If you need to test the CLI interface, for example, you would use this. ```bash $ docker-compose run workspace bash ``` On your Docker `workspace` container, the `./docker/templates` directory on your host computer is mounted to `/src` in the Docker container. This is specified under `services` > `app` of `./docker/docker-compose.yml`. ```bash bash-4.3# cd /src bash-4.3# tree . ├── __init__.py └── handlers ├── birthday.py └── hello.py 1 directory, 3 files ``` Security contact information =================== hug takes security and quality seriously. This focus is why we depend only on thoroughly tested components and utilize static analysis tools (such as bandit and safety) to verify the security of our code base. If you find or encounter any potential security issues, please let us know right away so we can resolve them. To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. Why hug? =================== HUG simply stands for Hopefully Useful Guide. This represents the project's goal to help guide developers into creating well written and intuitive APIs. -------------------------------------------- Thanks and I hope you find *this* hug helpful as you develop your next Python API! ~Timothy Crosley hug-2.6.0/SECURITY.md000066400000000000000000000013251353170073200140750ustar00rootroot00000000000000# Security Policy hug takes security and quality seriously. This focus is why we depend only on thoroughly tested components and utilize static analysis tools (such as bandit and safety) to verify the security of our code base. If you find or encounter any potential security issues, please let us know right away so we can resolve them. ## Supported Versions | Version | Supported | | ------- | ------------------ | | 2.5.6 | :white_check_mark: | Currently, only the latest version of hug will receive security fixes. ## Reporting a Vulnerability To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. hug-2.6.0/appveyor.yml000066400000000000000000000024231353170073200146740ustar00rootroot00000000000000environment: # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the # /E:ON and /V:ON options are not enabled in the batch script intepreter # See: http://stackoverflow.com/a/13751649/163740 CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd" TOX_ENV: "pywin" matrix: - PYTHON: "C:\\Python35-x64" PYTHON_VERSION: "3.5.1" PYTHON_ARCH: "64" install: # Download setup scripts and unzip - ps: "wget https://github.com/cloudify-cosmo/appveyor-utils/archive/master.zip -OutFile ./master.zip" - "7z e master.zip */appveyor/* -oappveyor" # Install Python (from the official .msi of http://python.org) and pip when # not already installed. - "powershell ./appveyor/install.ps1" # Prepend newly installed Python to the PATH of this build (this cannot be # done from inside the powershell script as it would require to restart # the parent CMD process). - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" # Check that we have the expected version and architecture for Python - "python --version" - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" build: false # Not a C# project, build stuff at the test step instead. before_test: - "%CMD_IN_ENV% pip install tox" test_script: - "%CMD_IN_ENV% tox -e %TOX_ENV%" hug-2.6.0/artwork/000077500000000000000000000000001353170073200137745ustar00rootroot00000000000000hug-2.6.0/artwork/example.gif000066400000000000000000017002421353170073200161240ustar00rootroot00000000000000GIF89a  $/;"#  %"!'$#%%%(%$+('-*)1.-30/532854:87;98R&&u((zUUUB<;UUEC4CAAHEDKHFMKJQNMSPOVSRXUTZXV][Y`]\c`_hfdqnlrpnusrxtqxuszvsxvt{xv{zz++;;UUUUUUHHTTUU***ԨVV*ԾA»Ľľžžſſƿƿ¿¿9! NETSCAPE2.0!5,D*\ȰÇ#JH!'N2jܨPFIR$)RRJŲeKU0a͛d9Ϟn Q]ZWIZlUfX6+Ц{lYlhbƶ۷ny.ݻwʼn+Ƿo_sCG0u[xǐL˘3_ǹyBMӨE^ʰEܸqbĆ >gίoxӕ .[mjӚ-;v,Xh]mm5eŦN)Ӥt5:?wy檘0]Wid@z?#'(h]}~#DJ{5zPR9vRUuUuLsa57r$qŽ%]o~&XnݦXmYlLfE)eOV)|]y[و2Nctӱu١]'^,ɢa+WaKH4 Gi(d馜v駠*ꨤjꩨZ*&\ꫯv"+HZ(넼⫯! ,"-R˳"m//b ̶X̷Ƅ+t9cXͺZnrě 7ҫ\|9 0_Bf`xZ6ÏYW_sc ,v/jU/fְќk.[+J-0bTHx,-% ^넺X$k'v}^dmh)^{=kXENJ/l!N -l L46r5,+Eƅal:bz꧛w :zs )0,3xv3҆XI+wޫ5z5ܶv`o*66~Ea!*6 k)ا)wޔ ZEC G-ng8^8En,ܻ,7/i_ӗ1;`MZIadWBr,!ނ9nF, GOSR<<z?!fO{_(VWS# d` ,}ڂ, ȏ3Ah6, m$Xժ.^~BD C+3 F@:Y#ЂQ6 ⊷89qqˬa HXÁED^:0i,)_ZI;%$+xCeqh#&1[ˣМ,(DL^fEU-Z9GPS)`:-dg<iJH ?AK,PZ,a xB Ѐ %nILU9xahX \(N!!Q~QgY"(NbYDkJ|0/_|7 9)m0 >)EỹB$o1YKEGD?8L]&r) g6`Wp\` pf/P 8tFQq !t)oyvP_S *r7WrI;o=`7oW MpPo8PG/p|@204(q,h pQ`Yw 2x Lpa /P27 ' ~- ) -Gz63$`z'{'kw"8{,BA{Gwwӗ8}|x}}'"~G~W" ~ (>~4',Aw")!X{}p X SPY*2oqv#8R@TYp]SPZ~/vo'T`-s&o,QHP8)@AG'w+[dH~G`GwXq {. w{4 e8 8^P4zG-xv822tYvy'fa܇kky'x‹z>'8!hԳw( Ӹp&pqvJ-[(y 80r  Gy@Xv$ZwRLr` G`FR o^@\Y`d)GT`aG$D Ji)zSpQ  S0y_!(ciei{koɗ":j1& ' '~tkYOMi~b=Q(̘ wٙ/o8Ѝs@5t O@QЍ0P8*|[@'0IZ~,IWtGKW vT LI{_0 YS@aqsRЍ a Kg$]}Щ#!P^^&6`h ( ꠫'aydY-"ϰ0꺮 ʡ11*35~@CQ)KzM OQ p& IO# PG@JV u۹:F.op" 0 dW OoAe `2FG@eW Z@~P@/Y$@)`( ;v_ ' p ˵ J*15 &` TP{` f0 r!cŘں|-8Z!bnˢkBXQz 4گCQ >(E J ;[{؛ڻ۽;[*~}4N%+?U\v7x3,7G,E37%4U-4kIl 0<{<\Ű"|I 4ft5fW҃`樂MUE` v*+@B^༭߰ ௭~Ὅn^&~(*N .02>4^#n:<>8?>D^F~}NPHLR~XZ^T[`b].c~hj]ֽpr>Mt~xynz~_>^?~`芾茾0 ~阞dn]m~ꨞmB0; ^~;0C>^N P읮Ҏ>~^ؾ܎h^ ?^.n__ڦ~N?ž .(͝*.,2?48O6<;@?DC_HGLKPOToS_X^Y0>`.nb_po_.vz~_N^\/陿_衿sd_q^rOa?h.`nȿXN_N>֟F>6.//^f_$XA .dC%NXE5nG!E$Y2aC LK1eΤYM9uieOA%ZQIJSQNZ*ƦWnWaf[YiծH[qΥm]y]&\8)`É/fX;B%O\yA5o9.fϡE&-@f뒠cuݛ!h62oɕR`ѥO|u['_ުxկ.3{d~}9p@\ǾTtpB ZB;lMArD9S'RqVT%hqlG C 4!TrIdI(r2J*"rˣK02L2ˤiL3TS$sYM87*839 yeRf\yfd淦Qgҹg9hh::iZi=jAM랚Elsj 9mkZ;nwnm;ocڻoI;p?p5bWq#hq+h-ל!7|!e CߚĊI\5>[Yo;ҷa<>lwaws܍ߜ䕷y5>wizǭ^rQ;vk??p;-HxS@M]6u͂64 LkGHBi%T!X1*`HCMC A 3RAO;˒f5щx ۋ6&ŕ"bE`(HFi<_F7q|(@G} x\x2?qdt0? hEllݶ")I^bd8Ʌ}%GRTRJWz,i)K[ګ%R^ &Rb+Lfx=4Lk$6Ml~Z8ENs : i5v Iz ̧Od@YNJMPa=Du%5XtWE3Zq{i"QzS'}$T)bLSڴT8)xSR="@P*CU*K=TT^Z5NFMVdT|zuMFXTULMk?w\Vy}^WL~l[05#Pʵ(2Jm%K%ʖLfäzJ-H[Z.ZRjZF }li$HmTꈴ] .HΈM.x\ƕte\=v!~B[ Rz[&BÅlތ"(s;?~\`Q`Vτ)lDTa+ qXԑ9qe_bؿ0NOi ?9ֱ~xc,#d#I^ϒ\"?;N2yr *krvZ._G8 3x\f-G9Ŭf7/q!@f󞽣g?wЁr Acк3 =Ѯ']A_z90iOGԡtIݛAԻIjWZG?l aH?!Ø pk[@"^ ^5W`](l~t20{خBG=4aݏ=@ʵ+2~@ }}~4A 0 _S.!n% hBrXLAxЏdw)@ 7ϹBf(4X6q \!<@uӜ'nu#sؼu` `ݵYGd=|p ,z>K os| 5$n?yHok\@ 2c#[٥/@,ԫ>*~g_Q)j3D_ӧ~}g_~}_'~_g~_?__ @@,?L@\@l@|@@ Kd d@ @@Կ L@A,A q8Ə?$!:, H*,!, H! ,H^Dxp  AD /2`b1 |CD)ɐWl#)#Rfi2cʀ! , K^DxP@(MȐŁE\H ShaJGL%M eIѡŊ!,X^DxP@(b)/@0!)2 ؂ 09@)XrHde G ߔ*]/ !,N^DxP@(bBJ@0!&/hrB`JFD%E"Q#G):!,E^DxP@(bBSL@"â)M@1F@ʇ)R%KS*! ,1 H(\Ç^(Ł B|(C&pcDA\)P!<ɲfK/cG:}!G!Dt!n!Xlot$=D I*dHkupБC[pE Vl;4c* Ձ'L&;%w!5ņ̓J1?EL5tbơo ާ6VT*{yg*ȊUF/']-Tg'@uo6I (|M/2 ! ,-0^DxP@(bB+RĸQaF 5PdI!,4L^DxtqD/NI1qĄS.܂$FXZjC5gP@>O!,;M^DxP@(b)bA`F)~ȒP `KHpK@i%LB !,Ba^DxP@(bBP؂(&"- i”,MTǐ#K2Q#GWJJ&27 %I*5 ! ,M H*\HÇJH"ć3jxƏ vɑ&SDŎ.cJd)A6s ĩ&Ϟ2u)tʢFkzYKRM>UTU^mu+ת^Uv kr,ِf~LV#۶(w.úv!,%'H*\ȰA#Bŋ3jȱǏ!,4s^DxP@!Ctŀ 6D>rA;p$a"gnб#˕!K ( lX@DџW x;6 !, 4E^Dx#tqD/>XPF# $&|"1Dɔ$W„(Ž oD! ,4E^DxP@(Fȸ"F=fh#ď$M2402$Ō\23cI):! ,4Q^DxP@(bF2`рƌ!b`ő%7ܘ2$C AZL%B>~G(р!,4;^DxP@(bB+RĸQaF$x#$ 4rJ/=B ! ,&4Q^DxP@(bF2`рƌ!b`ő%7ܘ2$C AZL%B>~G(р!,-4H^DxP@(bBF2~Ѐƌ ,~0A"34 ,ztI"*?tSŀ!,44H^DxP@1b!D-20^p4+`J-3dI XPF# $&|"1Dɔ$W„(Ž oD!,&CH^DxP@(bBF2~Ѐƌ ,~0A"34 ,ztI"*?tSŀ!,-CH^Dx zQHD! Ƃ3ZHM^D(ɔ|HQ j*Dr'ǀ! ,4CH^Dx zQHD! Ƃ3ZHM^D(ɔ|HQ j*Dr'ǀ!,;CG^DxP@(bBF2~@Ə ,~0qAF$ 8 qdI?fT`FVb@!,BCU^Dxp( 2L(E )D, @-%A𘲢 ."2@bOE3!I,BCSH\80!B_3P!CVh+xqcË!Ҥƕ.ds&Ɔ"Qfɞ+y ҟѣ!,BCHA/z1Ȱ„@)0""A M0и@, ҡFq (2`2"AC@ HR҂I]@̚ 8@)N9r'&F*Q6 ((ST Lp@!4,C[ H*\ 4Hń!^ȱÌ=9dH(S4eJ.cz)E6s2ĩA> *'Ѣ:"tS^J4TU}^V]s~ +v+Y'O^{v%Ȏl}1ܴjך._~ ,#!,R=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !,&R=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !$,-R=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !,4RP^DxP@@B^TX\b|8@ C`D@DWVɰ΂)bta@! ,;RE^DxP@(bB$1NdcPc2I["ȈR%Ɛq*!,BRV^DxP@(HB@E` a@$ǎKx`"C<(2Nrִ0gH* ! ,IRH^DxP@(bH2"@9"$1jP ,z1L%YFt('Ā!,PR0^DxP@(bB+RĸQaF 5PdI!,WRE^Dx$tqD/>XPF$$&| "1Dɔ$W„(Ž oD!,^RH^DxP@(bB H2ƌ,@"3Dd,ztI"*CtSŀ! ,eRH^Dx0 zID! Ƃ3ZHM^D(ɔQ !j*Dr'ǀ!,lRH^Dx0 zID! Ƃ3ZHM^D(ɔQ !j*Dr'ǀ!4,sRG^DxP@(bB H2@Ə,@QCF$ 8 qdI?f`FVb@!,zR=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !,R=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !$,R=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !,R H*\ȰÇ H@ċ3jȱ"E CD(Shʗ0cl)M4o܉1'ϟ@ JТHwMTҦPU>JUԪX5^ʵ`t1,Xh#mõbEw݂uużzun]8 v:dٵ*Lv2宖/gͬyd@!,aE^DxP@(bBSL@"â)M@1F@ʇ)R%KS*! ,&aT^DxP@(bB2L0!%/ 8"-a(00EAY(@$EX(!N! ,-aL^DxP@xD!Fe˔) &0"Ë&x$Ƃh2J`)!̖ E!,4aM^DxP@(b)bA`F)~ȒP `KHpK@i%LB !,;aE^DxP@(bBSL@"â)M@1F@ʇ)R%KS*! , a0 H(\Ç^JxB)jhQ!F&Ir ?Y$ʏ^DLdL"H#ܙєu$9Rg:EhJe]z΁2{ڬj%UX W`e)lС8u1l\Rx]z|_apD`)ށ[`LplSq*z91_&ScS!,Ia0^DxP@(bB+RĸQaF 5PdI!",Pa=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !,WaF^DxP@/ A Hh#č/f8Qǒ=2qĐ*4eK t1 !,^aH^DxP@(bB H2ƌ,@"3Dd,ztI"*CtSŀ! ,eaH^Dx0 zID! Ƃ3ZHM^D(ɔQ !j*Dr'ǀ! ,laH^Dx0 zID! Ƃ3ZHM^D(ɔQ !j*Dr'ǀ!2,saG^DxP@(bB H2@Ə,@QCF$ 8 qdI?f`FVb@!+,zaF^DxP@R@!D-2XE;BLAF89r  4)cȘ  1 !?,a=^DxP@F@!D-2XEB8ЈСǍ!&LQJ/Yt 1 !>,a H*\ȰÇ Hŋ3jHqƏ Cرȓ(S^,iR˗0Ifș6s|sϟ{S(ѣ4"]R)ӧ"BQ*իbzыׯ^س zEڰm|+.ݺqewپ~u0᫆OM)K!,R x HA&П‡:hŋ'FqǏC<ذcG' .\qK,%Fd1fɗ*%hɚ:YZ3Ρ%g$TЊD\4TOj k˯[z,̛Z! ,pIDxP@(bB+RĸQaF 5PdIS\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˗X x0a#f ( 6ɇ saS"\̉Q3>!, X^DxP@() bLjXLbpXЄ),%,h2e,t E +Rth1 !,Y^DxP@(lyŁEMX H#(P"-;ZDI E@ƍ2) s(σ&i@!:, @*\ȰÇ#JHŋ3jH! ~l1ɉS"\#Qlx` %kdy0ŋ5 hX (/ P@:Bx*CV54 e#xX@IY MyiE 2+ŧ2!j0Ox%pYEUo -SUC;}ႌ>Hv'KdbH k;861O)Ĕ-hw J&rΡK.úlqa3&gmpu}^(Q* 0HLMX8C9,ȥPw_YXTEic)S?8]uX8cA;jEL MBPO@Mxq]  ).z< tQ2%]{P7&ه}j]Ax#CblTm P %V0i@ dQj@2(!Ý cjbavП*haY0XP_J8? Yy9 L M 0l`qm]ؕtUAU\2@kq !.`g~ f,^)A?Ȱ)0?@a.;na0³gXwUP Q!m0AYRӱg{[,.PT.k4B#!"s @P+?e/`AA, BhB|A6k\["H^ݗ6/lP MKT2z:)~@XBۊ~H/e'D0+#Bº@@<#'M ~N^|..V>\y: ~͘^9GG`%n1`4&)p:E `]p>lUA4(C!JQZb|CDZzGcGߵh&jyw:PgR9ӥeJֲ"` D|Q &60Mh"r/cL-(Q&VL`V`ԕ=%e򝃜()AT Ac.t;@ҤR>#] 3SyCZ")N1z}UD# 5O[X93 N,̄@R XlْdR t&&!b̃ WNG܋"0dyLALb3'>+22iMZ IPȳ@-BЇ D'JQLjQcধi8DK0QCb=M]a/͕u8LQ8zu%])ґ~O +SA>NSF2V:t{]#Rї~=wzWG||o;euc?o}S>vc^WկAw"чM?rWx;wsgBLry~iu xwi7x887'G釁@~H~dWPxg L2L6{W7z<@B8DX6hs'~FQ=ׄ9X}tNKs(gݷ~5X4xCg#.r0~Oe(e}VW8$'1tg׀h}ghm肀hryx/h|hqTx[g(yq O' %xqgnxyx|J8H؋:E'ArXzׁkGȅ+߇wqxQ8~'gԷ牛zoȂxSȊ|xyOx}iu{o7HhiHxHWg8"0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TIW%gzX)rZH^b9dYfyhjlٖn E}p U]9v9Q|ٗ~9YyrXLuʴYyٙ瘤Iyٚ9YyYWɚ9Yyșʹٜ )IyؙڹٝٚXy깞ٞ9E8yٟ:ZJyIIy:Zzzi : :":$Z&z(*{ʠ/:¹4Z6z8:O! ,%M^DxP@(b)bA`F)~ȒP `KHpK@i%LB !,%a^DxP@(bBP؂(&"- i”,MTǐ#K2Q#GWJJ&27 %I*5 ! ,%0^DxP@(bB+RĸQaF 5PdI! ,%4^DxP@(bB+Rĸ?&28cIM"$0 !,%K^Dxp ,["04(p'&`‰L7eD=fD#C-WL!LYԨP͞!,%0^DxP@(bB+RĸQaF 5PdI!,%L^DxtqD/NI1qĄS.܂$FXZjC5gP@>O!,%T^DxP@(bB2L0!%/ 8"-a(00EAY(@$EX(!N!,%K^Dx,J2L@CD)ZPF=^,Ȍ"9"xʃ`9@[@M!, %K^Dx,J2L@CD)ZPF=^,Ȍ"9"xʃ`9@[@M!",%8^DxP@(bB+RĸQaF "rF4 F!,%2DxP@(bB+RĸQaF 5oaG=B !,%N^DxP@(bBJ@0!&/hrB`JFD%E"Q#G):! ,%8^DxP@(bB+RĸQaF "rF4 F! ,"%X^DxP@(b)/@0!)2 ؂ 09@)XrHde G ߔ*]/ !-,)%e^DxP@(X|") LdA,V"2HC-@-8sF`BL௪ի!,%4 H*\ȰÇ#JHŋ@Ə CIɓ;rDɲ˗0cTQ͛8s⸣Ax?$GҨ 0STyeY_v%\ega9&hfi¹q)gx{yꧠکhJ衏6(2jbJ馒Fz養^D4a[ jk*[ +믷K+ kk2ڬRm{vkNnn+.ߦ[.讛L)Qtvo/k\< #p CpWLgsܰl!<L0*\2L6]QS `z H4I/OO]uP;-5VouT{6W5b=lsotm7x r]ws߭w߄=, EjɐB/uy螃n:食^:멯z몿>{N{'3/7_[=Cgo>ٟClAM `Ao??׿4 2 \'( * `1A B !9zP< ;($a UBp6aB-; C,hD0qDl"E%:W,J["XE1rq`L#x6eH9ڱxTG8ޱ|d(@D! H@*r̕撘, eK ,RL*As%|\IX"Ė̥Z^0ɖ2!$K0CK]S,KIJfř1IjZ̦6nz K99Iʏ3':Ozg;QO|ӟg8JЂ%BmfЅ?A$JĢ5(pDr!(OB ҏV#AiFWҖ0LgJӚ8ͩNwӜf--QPGEHR @HAPW*VOUXZ kVNJ)QIRegTjRTlI:׉)w\Z׽&ĭZ1I/!li&˕S y?%ZIk* KmHSr,xHթvpH4ֳ6ĬSUpV0Yfb-kZECTMm5Cۄ @=䟑>q >YlmL'hB{/ e>B0%a2\Rq?!,g$APԦ h63/Nz"6 [SL^now=>.L"qo迋ټ* j[w&wW1ođnC6˚Ȕ9wBnkss ao{sS a.pOq/eQ_R )73GD9Zyp¨) H!2Ԝ#ιO@鹉G|n:mhkGޑ{]NYr KNܚg]^mvbO-*wCWۅOvRȬjZͭ%OmyVW>ꏇ.f!H7G,+tD$϶ =CI}P/z)|Ӿ='iT~vg=cM+5SLyc yG%J?2Կ#爨;[ڭk>JvlvudClNmPH VoۦtEtPt*bM7Rm6o\u;=?6cV^Qoq%qeAp%WPVxXZM ][qAfb8wkLoH$uwy_S-wJ7x=gld/sLtFu5\ba(ԅb$wvGd8Sxx!B a‹Qx9y80G?G~I=3͘ѨϗՄ6}wwf|ʧ{g{̧5{}XZjSihJ   i\5mNNBp#%')9p9sUofZ,hHu;Ԓ/qRnh5iؔS1N9TYVyՅX)dhP_ٕmAq=ц6q0k 'go!_ {V(/T+:$#QSlnk9cY_)=uHwIa< 9wdex2X]Ĉ9yy z?xKXĎZXgh(|L!}%{8 99jej֏j !~w>S>G;IPY\hـ8Q+6\flC:+y'Ue'5m3*ae%&X4HDHExT7BTL)L=*TT EBJL `X\QJSڤ#q@ĥVqh)dYJejki q at٦_{9I{ $Y$8bLbcƠYq?N4cYruHbm vQᪧr2wx>ɫ ! ى0|ǬaXة}9}z,!a: ɐz Ũ(XE!3f7wo^4(.H);;6*+"(F.0 CU6K`qX;27Z^JLecZraObLhWgvJs_a[];eyѧ)m$~)zuaz\l@+ѩaR& xzu9v::akkv( !)ij+JiIgA)-ᬼj JNj}k;ں L[ZQZe+v.1zR+JۯI ˁ;/\ l(@x Ax1ԛp-{*,. 9 1|K@)<K;; |q(ۿL"C|l ȇȄ5|"%,L IuI·RϜwA 2; WyƐ ѣ!LlΖ1V9"Mȅ(=ҞΈ1>8:<#->-_NDN^@%S%4]E^PL)0[LHbIMN[^@?JXK_FfycM'cl6Jch-`x,Qg6b=֨yG[=P0PP>#P]N@aحl/d7Sr hym 1P~ ?i Qd00SMM`I&/PN۳]?ܺ`ب6]]ڢ5}Vn]-89ķQQf Seggmۖl}tXͅQv֝u=0zqӜG1#pڜ%eN0^Mֺ>?jvpg{Q~*Xc"n$]Pyxa8>2`f=i邍%|0]8耞}nD$ }JDJ92A.iЍZ\ 떗m> |Gv/>^N%Q乾6}9/:k*M- =T"~ o^N5Jd]fګ=4_.O#=ۧ* 8䎓­Pt]߬caӤE(h&%]c}~ڽh-eK u`[p' =d^?M}-٦Xʗ̲O.>DŸQ]Ij:]`pjsPO%H#:\tp4of60D&Qt]dCFJL#X RL``"aA ^G!E$YdHP.LK1elRL9u49`K>xŋL :o[pȱRI+X[d֭[F }[׮IsȽo])QBL`9PKDRPIpz)Gg/EekرeϦmp,^ނ7^L@+1;;z &;ڱ:wkExU[^ P" 8-p@@-2*c3l hB{> 3pC;t 0/,= g2ª2h!|Zp0 Gbti)盏J  `)D{ﷷ*| ,Oo}ݷO$ ( T`7> `hAR̠7V!AR \ 1 Cr 1|?h8CP0!wh7a (D#KTb$>QQXD+f[DE&NыaH1B1b31pD(3я$!)A"M4d"E>d% IKZtd&=Ove)#S2d+1JWrr%*k W2-u)K_Ral B.Lgl&5IjJ3ؼRnNS8iMt3Tg;Np3'Vlc-6lg5Y~V%md+ Zn6j[ӎv}-mc[\cQ M. [ rk&e.q\N׺v7xk.{{Uo{׽ݯ|XokW>޻H`@. BO7?8KLb&NqA/v1i|cx:qcc;&"yF^';RNl*7ʹE#-\AXA"%f4+ifsf8Yss|gɭ RkdQ;5N}WZ&X5ms\`vqdV7A3kH"SC.p,[sA$f&.HIr;92nBJLM8LLXMP M9 -S\Cx 2m󕰌fZG~2CdMBc_Z[yRl>qkGcSqRxOTONYPqZ ],Ga*LWs9NwƎrF/Ed~[՜, yDP >`A{toAL H2yp;4Lh.AB=]ڌwH{}{r[n>˧1AL% ۀ 7 N8!`00=#p3+C!ЀH p ?CY; D ;lp??@X:A[ $Fþ ="1.# B3wc!eA C<(s:M@`Aˀ|@'*\\3|ASq$,,H& 6;T#[ $4)B$x X:6< 4@@,69@O4;ADE?DKCd,V̾S4 >:⻀bdt CP?H[ 3γa􇩛CGO:හ蹏P^Ds{G8hG)[ Pz4EH}$z+lzs8훵>JыЍ& մ5?áѸ;Ktѷl LP}W pL#- $NS64M69TɐR䒪hTkgœIAO3OH lRgPeIxV4VuK3(ThUd+mGIRdK=PLWWxXXXXX YY-Y=YMY]YmY}YYYYYYYYY ZZ-Z=ZMZ]ZmZ}ZZZuZNy8O&IEWx=3[} 5;=>~ӓ܈M[pW-mk=d—ET %Ў9Keȋ/ @5\ǀ ˰SԾK ̻2ǣҪl8*5G-`4h=@KQ,ݲ؁2%'d|L0E#tk>8u 3}[PP`Qq^(UFU+l^9DAIW[ _Nt81t`NM)4R] V5?_>_/%_M;`x YLȒ-vEW+%ʇ xەItBSG؂ ⻍⦓p&CWXFY˦LW]\OY̋,3cDMc5^܋P! Wa<.[Xыc}b?LVA&4 C>dM-d~udc6dd/dNOd eQR.e9eTvU^eieWXeeZ[ee]^e !, P ,pӇP ~{x@È /Z#B98.F 061aҁ@_@!,^ @P*\ȰÇ#JtHċ3jܘ"Ǐ Clqɓ(%Lɲ%˕.cs͛ks`@y JТHMMT#@BKӫP Xf|!bJYp86]V˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+Z@`޻:w޷nv}z!,.lbG*\ȰÇHŋJȱG?I`Ȓ(SVz!,2@G*\HP #Jpŋ b"Ǐ =!I"O~Lr#˖_œ(sfĚ6̩p'ϟ@ JѣH*]ʴӧPJJիXjʵׯ (_?}NC߁lt.ܻr׶}o/Z̝K2F<`V'\ .%˃HEQW|O L!#k2f Bvm!U, C @PAC*]ʴӧPbϛ7Rjʵׯ`?FhQ)a ۷pʝKݻx˷߿ LÈeQ.(Le/k̹ϠC zĥENc㏴װM۸s=ȶ +УKNسkνËOӫ.D:{{[O}>(h& 6F(Vhfl($?j0(4h8<@)DiH&TVi%(Wv`)dif"E7A /ytΉbsթ|矀68XĒ,*褔(Phv駠*ꨤjꩨꪬ꫰*무j뭰pU N&læ+bl*V?l'v+ /C+ɼlz@j cc š+ƶ' 7: %|cOp7`b` %Dˢ0l8s86!-F {& I,bW\w`-dmhlp-tmp@ ~f/ ;֋7U_ioOgw砇޶2L!@$C謷zP 8 5/; 8X< @/=O_w/o觯\or `G yÛ ,,APEp)Xz GHBK @Jx3@`@/\p^v, Av %x?:@'=ܡ8XL%pObc #EBq[C )?wL"F:򑐌$'IJZ̤&7IFG F0tL*W \ vLxp  A%Ȅ#?n|A @2E & vf5Chr0"p|s =IV @JЂv/H2 ?ΠD+0@8H3 B &$ %TJI S0\a RLMIjӞ 254 T2Q{z& @(U\UNhMZֶp\J׺xͫ^ي 5pM[+Cʄ&4a 2XhY~ Bf;rv^0f`~@-lpRmuU @j0׹[lsKZͮvz xK譮 鍯|Kv˝fonI .7ku h@u;[40lq A~ }[ķ50g,_l@w6)&Mhid&oh 61t@R6B6`0(X󙍰Yd6,YM?d#YP7hA9J怕 (x'MJ[Ҙδ7N{ӠG4!_ HVհ5!,0A # V0f% b l%o!H-(# la [n!l)tŀb[[ Mw[b7|NH>4;u `CT6{ BNs&OW0gN8ϹwN ЇN}!5?y#7ԧN[XϺul`!^`@=bNxϻމNv $ bC9ރO;񐏼'O[ϼ7{GOқ/|q=@ϽwOO;ЏO[{X}_ OOOϿ8}K`] ؀(x؁ "8$X&x(*,؂.0-hLu~H&i>ZpsNP0~P/`\%&\#YP^ -PAlQS^p^P-`YPɀJ`) h'[lhrt mA=`~}^0~#0JJ&@uʆX0>Y߆M $+\xSa@(0S01+`h *8OM@\kPX/@Z  +:eg *$ZPP0؞/ʢzzApxAР}QHYj:ʀ'A/ڕNJx&#0[:x[0:lhQc6O] إQ ȀO#]&8)ɏ@ h/zx7ZmgxRo9Y` k Y0Y;hYOh٤ *@戎ZG ^ T [XxG,XЪ L׀&cڙ :T Z xjә :$kwJvڀbd ZYڃv˃cJ|۷xl[2>YGi (k^xLG]z Ф)ʀ#`[0LSZìꥴQHcx" z9ۙ]KhȨN[ɸIe j88(ڻXp8~;nhX4$[P Rf˾M)`&QC J6M7:,ڕM*M(*SG *@K ,쀺N˼wmFi[ j1T QPR@7PP^.X[k 9$(1 Ĵh #Tp pPQYeL y@N^pFȮH )@2Z@ʦ\p \K p rD켃bS`p ZN /QQ/ N`ڼ!{{h^Ό||̀^]ǽ=` [>$^&~ٻ.JS3⿽8]Sx@B>䁧(~HJļJ' gT^VNZYp^bN ` b~hndn p p>tJuz|.ddUN>^Nlg劾>^~阞难NN@ SAi ~S TkYm{ {p` Ǝ/Ξ"0i &0ڎT.N^~^.b0 ^c^پ|p[ 8P&x/OY_Ph ^g\a^~60>4_68: >oApg1JZ 쁐p~儰`/@ 0`RO1`~P( 1# apoh K`\Yi\PPsi~ .?o1PNАNXG # į^ a@~@0h2& `/8 /[ 0oY>+XRس S.dCEF4nCG!EXI)UdK1eΤYM9uOs/o>GSoxtGA@c^Ԧ#X.d~֓ `y GHA(L W*4q@4! ^a: faXhCC]o8?z` # hL6px̣>α~ I;oF0v`(cĖFьb(6)!O\c$H7R\ V򕰌,HY̥.w^32}Ӟ@JЂtFH9DtfҜl(2P.} t*4[h@6!=JWҖ0g9cJӗr47NwӎFҧ< PQA=\bE1vH=FPUb0*E%:nSXJֲtfMZֶp\JW =ȫ^׾ `KMb:d'KZͬf7YC{hGKҚMjWֺlgKͭnw pK\[Hr:ЍtKZͮvz xKMz^Z|Kͯ~n L/;'L [p}߫ G|`(NW0==pa8po@,!HNr3Y Y?yQV -Kx ||,f/cqZ8,\nn1,5E2ǗІt=_F+-x#%`XB} A|@\ @  w '* SZNiK?#4f[|&7 `BZ0-HM؂nH M`U0/vB&/.)l >0 [CXgpzG\_#P$B|Ph@ /x@H`-H` _\Q$-\R'p0ta P ͅ@ &x0dP؂_ y(` &éx@ w[ %@ < 4 N.p [PeNsTЂNyrk!@^` P~& +ON( & \(A X].i'v}`/{ [Ї0P@ 0ha|~{ǀ}.TM(%xA+ Paߒwz%xAGiPP7_p{[p-wy#t\G.S`W[@ sgf7h&_'8Z*a'Ty8/Wi`x8`(75x#0ss|PFs)PzLyi(Q6O7~EU_Oj#]w{& ) 8tCEr-\a7uxy)8]p/e%zvhvZ`)p,/qviZf^ }NH_T 5n(gGpi_,X`ys Ȇc\}Z 'w\X>7*Pz7@g)''_ 5mxUtFpH`FsRzxdXWFmaGX` v~ {X_Rv iupc]`7eWz#`[0J`k~-hxo7 |87pr#''AH{0_&БjF(pɇJPaCvzٗ~aHIP@(~ްSpO@O@mY(oS)Pj&QGSIp\ `N Ɨ9`Up1t%7 )v13, 0Z@'\~ 4t/ f'`g@)_iO_Z iZ;*f\Pph\%G T**yMpc =*1w-W3&bZf_\"~Kw p p|iCg٣{lɗ~Px~pljcSʦy_f'__[@f`@qzF8d|j]@_]꧍a0ge&[s|`Sy+Fg`ƺu,Ȱ : }=zJbHƬgjbZYP``{; d#f{0]vczePp~26R֯ p⺰Rp`uQ0jp&ְǂ.x&f"[_/p8_/8d$z(سI߰  FD W { B@TW`b;d[f{hjl۶npr;t[p0 &,0A  0v;[{sPKA[bPbӶk{ պ;/ {r: 0#  kK;`˹{Kڻ۽ 00 p ?tސ 0Aà@ۿk;< |  ka3~ P|( ,MgikB-F=p]=w]ׂo]؀mYr~8VMqqZS\, }ɥMЦڨGډڰڲ-ҳ=ڪ۴۶ں}ڸۿ۵-ܽ =ܷM]ܴ]Ê-ƌ0//鰘p罘 FpWwM߱߫N~  > n^n~^"> pR!Nn-/.5⸝]e@qS`~e [pHvmS~V^X>tMWY^NcJb[_ѹ; }xx z9=M-%N>67>.霮>5>~/r~e)ei?Nq>*;^Oȩ;.nN^ƾ^ЎnB-[~0 g@ e~ȽŬ~nݎ_/O n >"!H.£[0Q_n\ & )_(021O3r0̚X}5PuHJLNUP?T_~u=Nqq-LVb?d_fhlX|PZ|{qO{0eJm?_u[,?_o[Ju?_b5?_Zp?_ȟe?_֏[ڿ%JP?_J$XA .dC%NXE#G!E$YI)UdK1eΤYM9uOA[QI.eSQNZUYnWaŎ%[YiU[qΥ[]ye_&\aky9'1)O\e̙57/oy!yiԩUfig(l!/d`A .xpMl?msѥOQ[#`Jɖwq~|I_@qG NRp@Џ%j(%| t?CqD P(Ypp 8@?dX:&jH#{H R{,2)"rK.U֣\1Y6LKpw4Tr%wn5]dw5j{⍅)dUK5SמE"ӭ U#գX@ =A=zWA+9dguvhmI!8TE94KYC]ƨacV $*aE )):ߟna?)D`-Y3B(LH(Wut9XL: %YAQ%xo}-٫/l (?N8*an;aN&]?1@Ԃ(җ:@$uagDŽ遲g}&s鋟\cO&t0lLTw|)+ cw0A,ޡ`Ͻ@jې!-F# CIS.dN>im#s6 di ] (R/ig 0TRLYbR0cZ0$CZ;TE0&Ϋ+87u1!0 % R޺P q2?أ98 q&s .OW4TxCs 1I9Eꚗ1/Iq&R94 4*[2zԨC"bpX앲 c5|ܠ53hyzR( `RAj>[Rq'mf ?}P`{I}]#4QQ^1 f2Fpgwsb5OҢh.{ER(];ѫB|kf #[+5zԹc\E624 %Sȍ S@'2L+j92Ԇ*4.o 5 2 S$0W4GQX)퐇H &.sƒ5^md"eQdX."UEK>P0i/SM]S~%z4h)-EIƼ.Q?rWZ ΋uʓP)5l/xNS.5u!&vZ+usa=u{&yo,d Jq 9sK^{] u!,EҼޅ36)P WO~/< hrZr)L0YT{fb:X[T6+ό]ǧ,:Jf89+a"K,m Kg8ZG3Vl*>7%gJ]GZq~-}iL#5t=i &uM}SիfujXZ֭ëg}k\Z׻u}k`[&v}ld'[f=D[7mlK;viK$0EE+mⶹ}o|[wo\'x ~p'\ gxp~^x)E؃=^\#x*>,??3@+'@c@ @ @ @@@ AA,ADP ?īǹM +2U!t$1o"oȞXA? Pu{g]kU/ȣIVnlOx"؂xVzR{eMYˤXN%KX̐OW(LOtX%G}2UHKGEʙMuXtiEYE)Y,M5VQMڦPQnUY}שUڨQ@̴9 ՘EFXRaPdԦ@L+)KdӞDR@Ғ-Ke$ٳ=+JMpZڜW02J=JU)\ңW]tEZU[tL]YUԕUO~-R'9 \aVcM̴M\aKݥۦw͇-L[=-[8UWZ-΢X?Z߿]W_ߞ^M\SύJM4ӯLT۔ӧ`JYt [НJ^5R=(}L^}=_,N ZuQKEa] 1Q a ָL>_Aҟ}Կ_(5]2vNK.N a,a^_Z-e#Q5V%jEaߌN6y[V`<[T'~}ܼܦa&\=b54>a=a\_dtj2#b?xC\YweaVbղL -S9 QJ&~U>=K⸵݅C.KEQ޽}>$[~deO2gQc^|_haZgO[ֽn\U&"6`Mx[b]K'TҝߢWJ5xޗFa̓ԱD2yϖhڢf}hd,~Płߘ[؋fуfUh߽nh%X/fӣO})O,0Ws5buuLtWEj%WCePhn=!Xd,mֆ].J%cn>΍95Է.\#6Z%祰ٗ-@ϻ^X`n6&㣎ϐkfFl#ʽ.J%'̴ܵZՍ}=<R,gޔT4ETL;aΆ ;Pk[QtW5%[W2ݓMl= !̞Tr6Q Q(Um ѩ,ikFU6q$w6ѵVbHѱlrgvPǐl iqt/Ɏۺ.d6p6K-p,f~g5J J>0zis21P5 pt1H?sKm I  /+?/ FW o!*VGL1XtZNJRLX  &hՑ)hʖԑ,xIBtpm3a7!i DHour׏PwQѢ١'Jl?"l.ڮb C%|;˭RaҗHx/h/wn$tg &C6,&B -JSoR$(פ(A(B':&ƥ!:;7uWI!r!BCԙ0zJ"!Zy?Dxz&_:qz?/Ä!NzI;zaGz:;+-)"=3!Z2qݹ2-'|O{ч/өc٤]1a\vrvO(S{0:,vA01Jt7-A}嗋 2_~O <lɳX4s ~_{)o7jl.F? 7Ǣ{~H 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ*hKf\i&Μ:w'РB{ФJ2m)ԨRn,z(լZr+ذU]**,ڴjײm6ղoҭk.޼&4/fĊ3nXႏ'SlV6s3ТIm4jQ75زg.M6ܺ7S8~8+8;8K>9[~9k>߀9s!, @*\ȰaBBѡʼn1ZȱG5~Id&S\ɲ˗0cʜIfC,!V$I= M9NHDX4)Ҧ#bT%ՊW;f֭%J=s,ONӪ]KJUʝK݌hu#߸(fỈ(ǐLOl9ϠCyӨS^ 4jװ;K- vf֬uޮgݜi>[x}\y͝KN멓u~8ޟwу_ϾßO˧/?7?XhX ? g x.`J^^`r!jxf8!$a+(4h<#c?iH&L6PF)TV$DXjid%fb6gR&^N_rfpixS%O#:ێ N^ɨ!(fBgfN(?nn_Q~Vd*%z'鮼Qrj&@` QrRVn-~Y覫#1~.D /j) o< ׋+%; C,slqS| %<)l<+7ל/13xFn8E;xgK.g騧ꬷ.촳.D+PB/o<4G/Wogw/o觯s|o L:'H. `1@ v GHBz(L W0 gHC8̡qB0?D`8Da&:PhC2$X̢Ea\ H2hLdn"F:Qxc @@c# ո.$ b!ArqT!#5N%%J1$(0RnғL*WVV$ Z `}e&1,1ULc^L%4ILg"ǜ&.MlRSߴ6Ir v\>&t'>|g<:P*;І:D'JъJ%doxŨEGJRv hB;OҒB*5)Jc҆t3iKeӚN<)P7Ӡꔦ>MRԦ:5\TJժJaAUGbUSW:V^aEYͺVmZJ׺xͫ^WuSU@Ec \6^dDv^c RֲfŶִleSKY͎Uievk_ p2&r:׷"Am\UDJupW=w[^u{ ׾ov7݀Lx;΂Kΰ7{V.K{ y#< 0 Șa |8;&mc9Cr#yF2*[Xβ L2:޲L2`6c X|󝳬g< |7? :χ.s hFЏv=J[ҕ6N{X3)P{ԝF5ESzӪ?Oָεw^u- @&H= X ׵=mkmc6qmN;6w s{nwη~sZi{Fo g8!nk%p9kgw6|<-ep Y>s7ǹЇNC;NDi$8{`..hO~v#pNxϻG p?@;񐏼'O[|8{GOқOWֻ.ol#J@À b=D^;ЏO[WD {OOo`d #a8lYp) `Sp28XxG "8$[#x%,؂.0284X6x2x/  hbÀQp#  `&8XVxXZ\؅^`bxh"xcl؆n00 p C( ɀ Mà@68XXV{"hH&a & ؈Za ,p~ ؋8 xhM@&$/` h,P*@ X:hJ38PpY 0H嘌[^Љ&(S# ZЏX"(&P4,pGp5,4ؑ*Z0~@0)1)3i579ɒ/ٓ()wИ 86TؔTP$  -- $"XX0 08'P2PNN0 [)>9.Y#Y`fVz5I"a#RMpZpM#PYM0(trXp0[y{قO,[XɆ~9iy;h00VxG@ @ / @҈  `H퉍Q LipNP0[1PZ0\#YP^` - YN/0ق/0-9 9ay8PH &pa\[ٟ bVpXZ:h00lZ٦p vIQ`^`$}^ X^Z}~ Z+[0}T̙)0#ZaJ``\Pz\a1ʂ%@I20* @2{  ^")`_:Jpa0jJ q)9ֹI:Iڐ 8د 7pUb [s4/p^@/^}\*QN{I#0ڊspP )L`Q! /G:$`@I f98\Z`X/|T)8g#(%k)#TX )8]p;(l3Z KKU8鏙jԅ @yTO gOk !S80k^ .;T JG0 ,Xp z$Ź}!h20Dۊ 7 @ "K$! nOK@knhJ0W(nK)!X2#ە ̜TxL0G{ dO96XWJ۫ j7 [+70# 9 "˾{ &!Lp殤kOJab ;f)L {_1LP@(U1 M j!T t?B?D_F9>Om/S%OK#o8N_NaJ\R\HpBr_vx 7MSO0oeObO~NX@oiK/iy/?U]_VOocO5gW/`Oof?Q?Y?ȟ>/ʏ?ПͿ/1/___P /ٿO[_A$XA .dC%NXEG!E$YI)UdːaΤYM9uӧO?%ZQI.SQNZ*QWnWH%[YiՎU[qdkcscԺebaÉ/cȑ%OFXFĔ5Z3dΟE&]rfQkFkpC{mmvlܹno'^qɕ/gsѥO^uٵowy'_yկg{ӏ_}8p@ 4@TpAA#pB +B 3p {CCqDK4DSTqE[tEcqF''=rqG{G rH" @TrI&tI(rJ*J,rK.K9L2tŏ2TsM6qLt ĕ=mXWAcf4\$GWQXq;RKSPCҞrD5TTSUu?$amr $IҏYԕE=ɱYwa?0BqUlVH1%ӏaf7Yo?wsUd,Nqk=|VK="N3w]ԋ-pa#xb+b3-c5ydK6yd?d[ve)&pa(lV)x knb %fxgq:瘳zk닉% 6lV{mvm{nn{o&{@€@1|] 0qēL{KxT϶UsoSW}u[_]{}vkvs}wgO{}x7x䓇wy>wZo d{^cکޏw^dLy@w4q_mޗ~pv` x@&P d`T={:풡QP~^ ._q܍p da ]B37JPpC hW}(aVZ qExxg7J]"!bQZXxF4z2Tc'7q=(G</~7<$/[E:ޑ={!TA:HqvFIP$e)MyJTRdF)&e-myK\撕^ K]S$f1y܍/LhFSӤf5H@4rSK>Zg9yS. /LW=L}i::Иt=MZMӣ&CRZկ=WjXgciK:gk][QEyt~9g;ОjcvMng&msno[񦷸n|{w}o}n#|>8pn회4QH3j-?|yK.r <&_952WyO~9}>sBy͉~t'H_it?]Aw:գnZ:׳^L{͡u FQ\w6 ?.{=|aw>W|xC^'< yO>5y΃'MΣ^/=O~o=_oyCj~fC_?Ư"?woKۇ>}_?}_/?ϟ~?_o@?̿Eޫ8{8a,of 3qm>@ A\AdAlA|AĞAA$A#A$\ d!t"#lB*|*+y@D@+C2>LC3C1$CC2Tw`5tC8|C934C=C>l=>?@A4BCEC@lDBtDDE][WޕY=Y={ӹZ_VBE3mһm^2-νXN-s5Z55۞Sb4٨֒׏ճ+]5Yu\=ӻ|[`WM#QYLmݼUU}Mad6W}٪MRv^.ZV~a%4 OuN?U_koEb)Ϋ}`&N@c\\eվV'[5ҘS#Wb#כ5c#m8nb54U?Mb% m}_ac\UFn?bfճةX4b-F^X>N NYSeV?Kճ-ZK~XA#PR>S3Q^u1^}Y0E΂Eҏ) eFؼ]OTce5dmvD&\b5-^XBV=ma=?bwYub^R~_S/֘e ]d!.vfxNXdGf4~هdlW\lU f8<>Ui5kh U2 i\ cndj оi`]jqNUdDFgk}mVջV3Ib5ʎv-xn7fI&WC{h3U-VcieU_nnd|kF-Sv4/D&i?OUTo)]-FSIS%R(QlV@mS,mV^^_^PnV VQk=T3c.51Yfq,Pڮͳ$O]#ffօNmo-dNo+U,a$Z4^=kޘm>lEE=+EFpkִmկaV=#U4?:N7[([_NqS ZA4S\uVȲY4ڹi4mqh[QeveIWUv4Cng~N}ٚEUGފ&e=s nhuok^3u_N3bmmwefx]^oA|?uk}քx/L=vxve}rGVhUKgwU{oR0^4G3<ؼi_˓Z4.w{E-{?{O{_{o{DUyFMB?"˓5z_ӞvؼJZ|BH_8{ɟ|ʯ|˿||3WTq%mm'S}ةG{ޖR_*H߆|~/~?~O~/|#/{%h/}Z.T}Dzߧ+{׫tB5X2*>=Y7̠|*,W~{~3{ ObA\o蠿K}lKvlhXGe^i&Μ:w'РB-j(ҤJ2m)ԨR iRB M2\$oV8֏,xɕU)nHs*޼z/+p`݄3!k:!!!of[3Afӥt3nCun5زgӮm;aI/c^l ? 8 x * : 6Zx!a1y!\%蜉)bű"18#5x#9#=#A 9$;rb z3#]G(ˆ I7h)2[j؇Ȉ"$y&i&m&qy &ђ*:i#I"&ޘ7f$服:(J:)ZaiP`M:;9L:R*]~;߀%߄ƄI,1 &"j1SjL:8~8+8;8K>9[~9k9{9衋>:饛~:ꩫ:뭻:>;~;;; ?<`5]{;5}=oje~]?iR-䕿]wT}T[w?TTo~6h: ^b>>5>`l> .=ɟ2@P~~ ¤ρ1z܌5?JA&S)BmBZkXNRnԴfO˘Ed[H[>tZѨ@VBWlġ.uRa4dٰU.G QZ{}+Jq}bP(BK```|)%g njLs%kZvwGJ.شֿ&(ɦk#rc:A|, B^˺g5T!{HZMhڸuMP{ڰ6cw`bӖ? un Fmtw{'^ ͹oAޘ-'01[Ȕ ܐ;'{ Ma8G&?9S򕳼.9c.Ӽ69s>9Ѓ.F?:ғ3N:ԣ.SV:ֳs ؑp0 ~!NX׍=)HO ia!³ "÷&r̽&oɫ.fG}r0a={! oH~7!'yWK''9i's}_db~y!??Py,|#'{5I}pƸ@!]^ A^M^޹=uA]qڕ^͟?؟^0Ax_  A r v%EX`\?|@^䥞!5 .!] a AI:N alfaa`M ^] ҟ])bbv"$81! ?)`IbM&z"˥!a"ڞ"Ÿ-~__/ nb D#!1aC PM&`0b2`7B!፞^걞u`m/>$^4@* c^ )6]^;>"^7 d-^qcC~#aIM c$S26TN%UVU^%VfVn%WvW~%XZ%:Be!,= @*\ȰaB41b3j8 D?7ȉ'-n\aG/])qf˛,+܉'B@c. O;DʴMPJJ*NV ֯"0oE/T[^/}SVן^|e80"/ǐ#Kn)#u~)/hanٴڸKeN2R+R+ NسkuËO~:xf͗^ݯWo?y_v_x8w%wfvv $h(`A҈-{3ʸ8#c?D#.䏏E%V#":eShLfyN5b\F)a^OBY&'oBtix9"9矀*蠄jh0gB*餔(]N馟z Qj*J*ʪzGk,:(l6+VkfK7j$(zk䞫n+k櫯k쯭l 7G,qcgw ,$l(,0,4l8笳X@-DmH'L]NMG-CcTw`-u,Pmhc kgܶ>-tם0}|߀.n>VxG.J(0TwcypQ_餛.z뇳쪯#N{/>O'~3/k`DO,k/ 'p`L=A{`.Ll (hA * _=A(D `'o-L`B7! k(C?T_8HLDcMb HB!@.f,O `#8*ꏊVd?, ` A wģ{xH;q\)HHQr̤&7Nc (GIRL*WV򕧬")7 > JY&%,Ib\a*D&)PR35YMiN+rzL:v'+ g(Sg=:PTv DA uJ# DEiQgH*ҏz$meJ/`fRtiLgӛ<}NqNT>eQҦ:P*AXXͪVծz` XJ֭AW]ZnʄXi+]Z־ `*#\0`Z6U"X&ֱc'z hGKZ nMjWֺ}-ζͭnW{[r mT+\* p[7mmowK]NW׭vK]%pUw]؎7 8ou+eozݻ^ͯ~~iLv@ #\.حAk_Z 5aZ#Z kصnY[S xqueV6-U|@rnO"HN&;P0|L2.{`L2hN5 msγ>πm7ЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨN-mUհgMZָεw=VF`NlQЎMj[ζm#Mr6vMz9~N< w'NO\5o3<{X r<#wS*GYp[.|9ЇNH7#;PԧN[XϺַ0`N{gzڵ Mow} r;^=;K{;x;񐏼'OZȼ7{GOқC6usa~Po^@w{gz a摯3O>/7_ ϷM}_>zOIN0 #N\|Ǩ~ Wi)9'ɘgyٙyh)(zya7[Кp0z u~Г?yy(L-0Z  [ 77 Y#Z#/ppW0SMyZO,[p||iZP ؈J* Ƞ~yڠD [#p p & {p$@/ @V  `َ-Z?'S]P$\%&\#YPwəy..DYN/0z/0a^{YpKا p2)"j'\[@*Z`VpڜZ#P0>ZJz$w,Ȱ : ^`$p ^@Xʣ>tQǚ*ɗy0}T)0#(?iZpJ0*0C8O0M@pPPW/'@ ˰њK2pXPʫZyj>))0Vpa0J :{<+Y0&EH/؂M/Қ&`'#0psP{PI)0/p6Q6O-Rɷ7GyO#]I۸&`8`>)`]yX`)Xk-\aJZJT )8]?ۻP@/ *0UOм- TۣƹO-*G{6ZG-y, Z! tg2Py 97?5y @NiyS*0@T@M?:*,yLЂ]е7#z 60+ɛz눕 +7 {7P#5'y\H,a'!$,Y;J-ɜ/Lz5,!98F(K,RTX0ROů $9XRi+NT0 LKM6M7g{w8ǠM z,KL G *kR̝*P S\Z 8S% S ~1 Sp(: G0КpA/~lY渧0ԁ ^zG~Gzt}w硧w} 䂞~00 p K. ɀ  0݁0 p `)r~ (DY}z4X7h)*31{+hɄG&a ( M~a@Ȁ ,@!wzvthzڮ w(7j옇HOnk~`m,P*@E{h(7؈~*؋0ߌ:{-?9XP ` gʦLzT/VUWyS\ fﭝyUp֠\mȖ#j{m9{CzIIz{?Yia?_9Foo_/?_//ӿݏo?ٯ?`0A$XA .d0NXE5nG!EThD"I)UV\"0d1AcMOܙOA%ZIIpaK\mAUYnի@_Ŋ\0S je[q ݏxG"Hi;%=HxnAÇ/ffعreKjP+iԩqD]Xkzik!у&`fώ{f[hOtpW|q{vq!ئ)q=Μf5s7qKYRW}uU X}]Giv{׽uw~x7xW~ykO܂y_S>v^'>7O|'_}~?w~F X0~{xh 0t` ~P#$a MxBP(Ԡ=@d| mxCb;yHpp~}C$*;w&00byxDaa0ArbF8Qs" Q{cG@%8H>,! 92td"H@Rr$9ILR$e)MyJڣYd$*X%mte-m @Wm #DL0, D0xD9"#$"0d69dq"6Lq2S 2KxS#*yS`.iE_@G E@.ԡ( # ъbݨFzT|pRT'm?&`a-})L]R6)KwӞ*!<]JZT&UKejSTBQZժEjTRB ( XԲ b=+ZjV%r[Uծsk]׿U%la {XĦ4CcX:{p0L},g%K΂mc=kb6Umk]ZVkOZ6umk[." Ltp WEnr7ensi[0`W.wk]W%oyX}òeo{ݻto}{_Wo_X&p |`'X fp`7""|a gXp=aX#&1'\bX+fq]bX=m|cX;q},bGfrdXe e,YreKGl/|f'yfFsf,sN3|g;l,ױ~do;؋Da!5mwU7.аՖE׮5[8cwtƲ~Bxow]~߻e%/4~񋰼1/tr_ t_05& ?,i/v 0K#W"iwuS_WHǒm=~y?$Cgo,ѯ=|ك8o3kw_6?gK?H(Ӡ??J@[a0|Z@ÄK@o,@?p/\ d"Z@6@4@ AAAA B!B܃-A#$B%\B&lB'|B!L"!C4S?ݯ:SAT9 TB=TD%SCMTFmT[#4IIuTK4H52C5JK;TPUR6Q2bsfKRm.;UWUY5Xt7Uյ[YU'T5aUc==Ve]JVf}Vh1gVjքKVkVm=i3Vpn2 Ws]q2;WÄ;`<ՃmPKl=d<ҴDd;rtxu͹Av2l}X@2촣{tp*>>o;E? p/EY=tUop>:KYBك>XS;x?Z?X$\4sژ5 ցTY+֏!X=;p#d0$K;u/ýmH[j[۩կ[g#WoHt5C> Z۹:[j$o[8\\ ]]-]=]M]]]m]}]؍]ٝ]ڭ]۽]]]]] ^^-^=^M^]^m^%]-"\}^E_^-^_}_u^h)_)^Ս^݂8(_ԅ`݂ڕ]>]/( 8aE`(%_u֭/-) a^,_%x`] ``"b&b(]#.`]>] F ] /,^5]8&v]M.a,51<5bНb?]\'>@b?@v69^dam_56_CF-Fe^O>ނFm" J^1dhWe`La=^^Ode^``Nύdi~fZ扫*_U.ld"g>&4d~aBnd%]ba8vfCceNekmdfታa]exc~vg&-CRdf@bGF`56h>.ei_m1PGce6SfGރ1aE>i/+!nB&6_cYf .ᘞi\ada^ݬOlvi4v`iim뭆ތ^`r4lk8랆啦^]fd^ k_lV<_8_꜆Eimk]&j.gm]h~gBe/l߬]``a&]```m`nh_na&\Ub_iFm6n-kܲgnaoic%n)PgeǮgEoclφ8elo}\V_W>lo6`.U.&!mmovޞ{qFe W4p͆iuo` UVU>hϖ{)f\/hnn둞 /pkXl2r dV!h1d$ņ=&!$r g=rM#\oC&oe4Mw񞛸D>mftG>/ds~q-6 p?ݭеlE_Zrrr0wgt.kI_2eZU]Lgbg[d}c^qlts%_q6ntWw;vfosvVεqGvpu;Knyt"9Oqvaptopm/igtr\xVӦIo+8vxvC`eu G /xcko>Bi_Uo=/vmuU7&Of b{umso,Qp=q\/]x73ivfV` m5&߈x:veii·$k >{zƦvï^{/5&oHÒgꝂc<Of_Cw:l N=j/h{6h7n-faV}R|ѵl.|a+{hudՎxQ']^}tdFJ.g[oWăE *$8%!S!ŌR"zhߔx0dKCzӟ$bƅU,Q!C07.U ԟϐcn AL1S$YBiS^<@9S =uΕ*W Łq0E/qW#AvɗH!H!V:CA5زgӎϞ?s7‡/n8ʗ=KzI~ZtMd;ۺwo<׳o{:^˘moQ2&qElba,wo J8!Zx!ySQDh`m-Ex"-"18#5x#9#=#A 9$Ey$I*$M:$QJ9%UZy%Yj%]z%a9p))%g&_q9'uy'y'vrI :(z(*(:(J:)jg2l):*z*:*:+z+i x g*iq;,*,ڬسB˨kz-"{.骻m.;/{/// <0|0 +0 ;0K<1[|1k1{1!<2%|2)2-21<35|393=3A =4E}4I+4M;4QK=5U[}5Yk5]bpB MqfDoh;)\r]alǭrfFxC(zo~#8qhsMkGm^o/>W]9rn=㟗GgB.l9p9{'^/uc^1-%o&"?z*|hAx 7 gC#ʯ|7ݡ{] ]@s-sLǾrwEKZ0b}B^1+(HQvce CX$&Ҍ#Wi\FFJ>Ґ"LjH"P$SIDDؽVre{yB2e$A_ʒbL>BRm|!g(Cl Ld>)>YRzf09^Ώb GKb|1HOySD">ρil Sa@)P0Lh;qX0M4ς !4)Lt: jGPZњTgVQӔ E(MMt®<*(J7*u$D39ՏԨB9K=0&V::!&YS/%P?ǭ3cKJE|~}=TU$]]JUd}({,bRaVtyT\);Ej:]-ݩcp %)+۔NӨL( MrOo_aŒ޵}^<)2J.CA9tSY;%h33xQj]KnOm'wAFl*Uhto\ZrUbs{P6uH} VS;%&t:,)8izccz 8ϫs#N=F;[YI<1cN~2,)SV2-s^2,1f>3Ӭ5n~3,9ӹv3=~3-AІ>4E3ю~4#-ISҖ43MsӞ4C-j9!5aTؔ$%~uzV VWֶ^3S hdXCB @+~qr "Ԇ6#m  B-nl/;#מv-oxCŰl ^H-YHCn~8#~.s8C.򑓼&?9Sg7(9<戞9kI!Ůwi?-7w@hE7( '=D?I2\1Ĩ'SU:3q_4 o-]^}CXs{Lx*Dn^y6 [|<#/S<3szx`2.)9_o?qKD_@K D-]@DD%eEd$OO$@, ARXK-FRS ScB#UcDT"d!dFNDv6ZC.b,&%*yu,Je*FGHFe-NB+6/g@bZvR?%+d0†NJHn@ >FnIe]4e`DD daᯅ\{ء]PH^?i.fM@!,tN @*\ȰÇ#.bŁ f8PG-ɋ7\ɲ˗0cʜI͛8%r@PGMxHD.EUTIJU)ϯ`ÊKٳX}賭P3ʝaFM WܿEWfܷk+^̸'@˘3k̹C}YП\_Ϯ)#@-p6kԩI^M4n~m9ȓ+_μУKNz@kνÃ+wgW?O,࿏/;'@-_}@ɇ }D`} ynǟUv ($h("0(4hc?=Ӎ{.{+{G/Wxg A(ν΁u,YZ6*d7٣hS{іlgKv>njҦշ P{ a@m(W#@+sRW-*q 6& ^}kxXw煯zͻ[Η|K_l}N780́,,7OFLx%"l,X$~1;L+81-lֱLc#|"6L ^d*7VV2,o`2hNl`2p>p9'bx8{6@.,A8[0B3Z~1gJy6p C=jVYթvaZZִw^sMbNvPlf+Ўi[6Mmm{MrN`( rӻw~NpO;Xϸ7{ GN(OW0gN8y큎=@ЇNHOҗ;PԋAխ{`N\o pNxϻw{ ;񐏼'O[?D {GOқOG?paoaO>[oa>h ^||ރ~Wz7}cϾOG?`]؃W~z h~  z 7Xh~w||z|wG\~Zp)(Xz聽ׁ1(~_@x|y9ȁ׃;y@zC(:Gh>zEMxPRh8~@7Pz^Dž'#Za^fjȆ0`~XHwXz\{Y@~({X~@xȈ舶wzhVWX,z{|PhGg{Gǁ[@}H}䗌xz̨|Ψ5xHzh؍XHGy{x莙/Ўy`JYh}}X(WZ(P H-y-Z|pOБx]H$ȒZp2PP2zhzN0 `(a0g~PLYN}P WM)Z1\9zXyy[v}m|h0M0[~#RMpZpMd#/pYyM08'`zXp0[ui{a9zO,[Xw_p皰i~ /zy~yz_Y~^ɕ3(~ay$@2PM @V/L& ",@Pp8' SP/И\%p7^0/[y.OcQS@Y|[-#Z'y$pa%cy&pa\#J96P @Z`'0) p/`0UY0/ zoS9~[azcz^z~ezgzip*~ɹyHzu~9&pJX Z^KPl/z^/2hpSa@)~-0#ZJ`\Ny/S@"ZaJz%fy8p[Yjz2@PPyG-#G.SYz[@ ~|燯zZ~7 K9'\`j^\ :&+[TS\psP9yL@$Q `Zz/pIyy$p8IyP98\AZ˵$k)0%yX'#jZ )X]p [{y x+ZPX` ; *A8З|-* .yT $Gy,kKʫ/MM+|mg2ʳFU Z{e븉Qy }ٻa#QK+#;y[;9 0z)ayR@[@Ywz]7;6X\JpL;ʧf(7 K7#@ Gڻ&0 *x x;T\V|/p!Lb  X[Dܗ] $9Xi+N@T0 )Kl6PM Np /Q^RpQ0YV`V|p,.02>4^6~8:<>@/' ȁ&R>T^V~XZ\^} 20P Q { 0rZz|~>02@ ÐapG0 `[ q) `S?Wy壮^Nn!P^~븞뺾P  ~PQAp< # b `eP.>^~.s>!sN~^~ _?S0 `hP ɀ  0 p ..o:o5/N3FEFLAQOZ\^_[0e) /Ȁ ,1/9?\/JXW _Y/o~tU>JpZy_q.xO??ï?nJ_q!A .dC%N bE5nG!E$YIXR˄0Sr@ÐLAASZQI.eiL-FEHC?\X"W[\%0Ҭg!Z۪3=H] -ߺ&haL1%z8߷JlC\4G˧U# El:1WoL;s5 Ip}]swOߝiMs59n>_^پb{᳝|o~}o3pDt#T 8+ɸ,KC8MC %G&BQXc)źVl*5 ƐwH*RFϽM)#\jȬN =-3EM95H#tRJ+RL3tSN;T 6 ՟&TJOTO[u5SV-uTWe Y5X_tHtUXISc!MV[{YSY]XjZlv[nڇw\r5\tUw]vu]x߅(^z^|w_~x` 6`Vxava#xb+b3xc;cCy!%dS[vecyfkeoԁy^9}Xh/&࣋8iviv:g>hꆿ.Xl&lV{m{n~{{oo\.|p'q?|r 1o-!4}s ?uW7}tc}vk=|cw{w$7xW~ywy裗~z꫷y?c?vcxW~?1y?DYç|W_~ɯ$` x@0;N | (] = z+hޅXDyBxa i0zC;xD$&Qˇ;| ,R+FqvQchA/z/[#mDc@F 1;v8A7n#$> !'8ZdAR-G  FTRS\WRe-7KTc.E\D0y)L`Ҙe1Yf6ӖӤ%dSf7,p$6-4ALg9NrSg=)usJg6O}S5g@iP&TBЇB[(MV4ZEш }h4 R&4(LjҔ^t.=iFc*ST;iO홌WAC%jQ:@I=jSTFUSjUzUfU[jWz@ ^5XjVZU=D\zWU{>Vl ¾cPb+X" ld){Yfլc%V6%-f9[т%iKZئ6udkBq- yb-nw,s:ut{]fWnwW-,&\1Xv]ox]ʊ/{Woe;7/|Mb!?XWY 6ݰ:<!~M|bXŀuӱX3qm|cX;q}0l|d$'YKfrd(/YQr|e,gY[沍e0Yc&s|f~Qa<7 6΁q[g;Y{$΂,k"ИUhH?}Dž#=]J6ӂt`; O_Ӗ>1% _S%l5jհa-j\cvrkQߨ, _a{o=g++]Xfc֖vm:޸hAnȢ.,7sVu ;淓7w ~p<2Fp/>ܛElþ="]ĕK`L;\ؼfme˜極s<;nρ~}E1ѱG~a/{޾qO>~*}o?!zҞmik}b_׿mZg?f/VOw]77*~?t/[}~gR+9S0#43Z{C?C@ DADB,DCut0L4|0(,1u 29XS+R !a`&Lca-]mȝacý>6cH =p[tEe۷Jf&%" N_6]XeZd[^Х_eE~j&&݂R`>f]ueI`ofއj+njfNVaMk&`HQcH'\qeJyg)Efevg cnb7BgS[Y^MQVt[\hNh@≎}葖~J\ѝegw`\^]rF\06]nhUYݕpޞ>i>liV০I g?d^YHigH)eiʽ{6g"aNkIjK[6^6>ܿE \ku꣎{k^-JõgԭfMiʙ.n[g&l\(~ǎ~h)v]8dFcVd]_hUjB淎m.mlngnnmU=gN`nkm^ڎnhFj˞n~앾퍎IImvnnÝdOIoPΔNl?mk .]O2Nf`mo>ffF/Nj_ h!cIvieGfRd&okwWoJĔ(.pNn$f&\p9ҥsO^L_e>jwl;kWl@~spet[tt~o]L'q bɭib.VZr6ḽt6ЮI7bFm}dfQnw.gYFs5l1og֝a&vh^iO'luݭ^d,ݧf)h,ǔ^$[Ny&qQk)>>xEVwkx~c>v/wŵm(g6ev=OfVmwoN pJ nL^\ gu F4GC.NbJ\<.#'iFHK9磇}~G^cv{T]VN\$"hBGSgO|@v[d_1{ۡFLg2gpMM}y]d=maw:&LJ}IݗƂ1\l">]MtW`<0~4~FsE^NQN{?O_o:M,Ij' *?,XB 2laB #Jh"ƌ(V(P#Ȑ"GbH"ē*WlraJ&azy BY`26aV I>ɤH"xh_؏X G%af@r~%^ؑ!>ǥ|K>_))&)a꩝F:%{&=jcI~h+Թ~ 骖ގ~i(Vf) v 9*iVd+m,.JXomv~-nLwӰYxp~rޛ0/ KFz'or,)_1!\ZwjWirPJ~E[e^Bgc J`Y[;Y,uM7|]1v¼v̢-Mtf[\3{씐 ]S[gw'Ku *.3N)g`Iv8n-<.U1l:뭻:K"e{; ߎ񶛎|?>髿>>?????(< 2| #( R 3 r C(&!(!F<"%2N|"()RV"-r^"(1f<#Ө5n|#(9ұv#=~# )A<$"E2|$$#)IR$&3Mr$(C)Q<%*SU|%,c)YҲ%.s]򲗾%0)a<&2e2|&4)iRּ&6mr&8)q<':өu|'<)yҳ'>}lo,AYLy/|aL=fE%zQqmfF?*|d?HyIR4.})W'>6)Nsӝ>)P*ԡF=*Rԥ2N}*T*թRV*VխruhBE2,B"4 _:1x` ]_p2X8kZֱkm +ÆS$XZd )NWlSkz:~+X ؟0V"b}?zRPWt _\wK(mAjVy,a ׊5}?6Zu r3\Uuk*[*׷5@P\Wm-{[վovߎOQ _# \V/SqZXdM؂Xmv Jpv'^/jAl`$X[S^V1] v% wu dcֆX}Y 1d=&,fx>%/ipr<(X}+]hpǭ/rzh.ze[&y g*'vn^=O6hU]}f-/yð}b#aTg~ Y&WԞN1X55S-eY|fsk=\nw8ukx! 3 z .ǰۯ +Ak6dlu xW<^ \kXڭyO9 (pp5.~O:؅.?De=η };<οC{!fAj7dWhe\"MlnB~{CX`Pc <#/SM웰4z=wz(m=gm:Z<:09D|$C^C4īd:3$U=9gJ|QnڕtwqߪVg,ƹrsڪ2)[ƴuTJTWB}|UD_^$Lu͵0 ʄĆUly bࣨtWR ~`Fw%H 4Mj̦ LyTЍG܌E`ED^D`l`y 8˲0K߆mF\}MK˅! bԬͭ򞘨 D veb!~$Nx|N1`l&N_x n# 0,b/"00#1Vc"cA(K`3"#=#Z8#3B#B܃66vcAt7r#88n85bQ@!,aW @*\ȰÇ#JHŋ3jȱǏ CIɓ\ɲ˗0cʜI͛8cɳϟ@ Jщ XʴӧPJJU?,Jjʵׯ`Êz5ҲcӪ]˶۷pʝKݯ ˷߿ LX?+^̸ǐ#/>엲˘3k̹ϠCMq^S^ͺװcԳU}7m߱[Nqٽ'yr zسkνËOBopw}cϞ<H|AW tQ߂ 6F(^vxm$h(;0(4h3R|'/|G/ǯ^gw/䗯r0 `_Ѕ-\ c` \ qؾ,0~>T_.`E! a8Љ!ehD!Vq}Ad_M.z` H phL6p5~@ &#4ޱr  02 /8!?FAL%HG>,d" HAU F>R4,gIZ̥.w^ 0gya 4.9 !hd3)lL#2g)gFT.Fv~ @JЁA E Ѐn|" ~J MA3*s hD9Q~Nr& FPGEъִ7mN Ґ@ PJԢHMRԦ:B'Tө-ﲪ? \IQDU up\J׺x]TГӫZukYS*XobЪv5B#VMkfzYucҚMjWW2൰lgKac6}o}\aҖ5n"]no{vp ^6׻Mz|Ke=رLN\f'L +8Ű7{ GL(p#0gL8αw .>汐L"8/F&;PL*[X1".{`L2hN6pL:xγ>πf3"BЈNF;ѐ=Iy ``4,N{ӠGM;Wh4/ghY,HPAif[S{z {Be{v Xe"Y8p 9 Yh6Y@mHocA hBx𖷺4=oFxp+ 9qn <c,p5%`ſ 0Q2(x0OrZ-fH`'?* oNsk_ƺ-a ]g=]?NvZNh{Nꉗ]3͇~d&F{xyInu6_` Ї@! -  (lAGHPDPa6h"/?lN YJ0'<->/W_12<~k7\~-wNO}^e.gx`FrL ްSpIPZ$`Z@y  `m$@ZZ' SP`I/`1 {&_#aX`ZxPQS{e^^ oY Vr86K o8P}o&@JǁZ`@&Vp @7e) p/`0UPk/ t|~ȉ'g~c6hpHVgx(Xh'j{`6rFr̸ +|]qJP- ^`$*?e&@oa2[2%`z+$]fCS'|`wy`P[P`dV/@v^&@qIȍ'HrPPe`|^v~#)J#@ݘG.S T(g˷uwgA9B)fv GJ9gL9oNyoSyxI)WiHYؕebf}ʦqG0Ж2~\8~)[{$0)`|^ ``З)(o/ QY0#0Z_-M$]FΦOOs/@-I'0]q/P[%eXDw 9/ \Nȅ䖂JT]0\ggaPvxgƟ))JgJwv^j^jsq{ СðwrZ#+t ^ X#`|̆P{/[,PxGpr}J TYAMmEe yi.e&`s]&xK|^ t7,z3e `&i*2ix00T@Z 63zv_y^fgZШl]&xFzgz JiVj9nwi'Oe &5m]6XyY%sz]&N^Ley8[0n~ * /JV)gx"x7#'eg t>+Gv [ Zp:#gɖ} $jg f!e#g%[wvK+-2[h0hf8f7f_ȁ׉20 RpLO=Xys @7X2+N0qEJ/p|{}#7,P,[8?jeZf\@ SJ@Ks۸ pR\6 P06vR0Me,P#m+S~fpZ p iƻ[uFǻE3zVGofRp1@p!\XpqUp1@+Jx ~'\`  / v^p_֧I 9f[)@2Z $l\pپ10H&yTY**pMl맵+xLNqKj@fS||}'\{h@v/|ׅ[]XƚW{xxeu a` vLĺe{fBe`pX@ZhMwke\ɖ϶{on}~+kĬʮliQP@߰ ] XD ɰiܸʉFı Yx0 p縷Z|) `Spjihg;| ÀQ`Fri <00 p - ɀ  ΁0 p `!gJgC]]AJNPR=T]VT`6p)PW~ 4|pr=t]v}xz|~׀؂=؄]؆}؈i~ЖDka,P*@Ѿ/֮ٞ٠ڢ=ڤ]ڦ}ڨ=`Rڮڰ۲=۴]۴ڭpP=A0Im`ܬMݶ}=ݓܫm]-]*=]Mߍ߬Y>ۭ}~].}ǽ>=&~(*+J >.=8^ ]B>M>>T^VnK~mp/#p $};淍vN\ KY>$>܂~C; ~=`%]qnInnm~>MP>ݾ}薋 [p6>NQ N.{خ^ 0j͌`^¾y.U7~L~^_,n3/?_ _&()*g4_68,oa9B?D_>`LNCPUX[TZO^AnEgOj/orR?CnMNmiNq5.Q?|_z随O{oޙ~F^ܴ" nn_nwOrBӏ~ҏB_r,`5ot^xΏFXpAA.dA %N!/^G!E$YI)UvK1eΤYM9uز:$ZQ5\s(ѥB\F:TϧU]jU+צPbݚfX\eR%k[qΥ[fy_&\/ ]e^=BקȔ.|gv2ӚCwռֱGPvgگs 뾾u]qɕ/gޜcѥO@. zᘁnN_g߻^uoɮ+/?>_[@tSpAt9pBތB 1P7.CCqDK$lCSqG{G rH"4H$u'I&tI(rJ*J,rK.K#g24L4TsM6tM8sN:NO@tPB 59'O?9GEOH'R=+tSN;SPCuT3yGE$-33Y%UMW_XgV\su]?V`uWd7ß{1{~rm#x~Xp ΁* r!H$a MHBPK=s1 #99twhB C"S!=Lgm8o3XX`jYűpqK7ø{8vc6V1&n%"PM8e+S3"v^1Y~fcoZb1srvsXCϊ$$qڑ}֤cjD'ZыfthHGZғt-}iLgZӛt=iPZԣ&uM}jTZիfu]jXZֳum}k\u}k`[؋v}ld'[fvlhG[Ӧv}mlg[vmp[&w}ntƼ'o){w]y[wM QxA'x ~p'\ gxp; <x=q#'yM~r\+gy]r"%m~so- C v>/B:q~[Břq"өr S׺ԝ=y7A'}G(_=Sҷ}i/z=}{_'~o7!}|7a[S>}у_ܿ~}_7~_[J@,@<@@\@l@|RS@@ @ `1 @@@60|x6Q_"GXNQ۩[ޤ^M٤L͏SMdfdOvNx ̄I4`LMOׄTlǫPa4%IX=XH>F(Fbbɜ[cv&jhŔv~ug1΍Ɖ.y onlFvok鎱'l~oNo^O7p ?~pٶpop /Ow1qpܦfo o>Ůp!q GqNqm-ppr"o*7n,qpF_qЮ'glws r6 nr-?pOp? 8 x * : J8!Zx!j!z!!8"%x")"-"18#5x#9#=#A 9$Ey$I*$M:$QJ9%UZy%Yj%]z%a9&ey&i&m&q9'uy'y'}' :(z(*(:(J:)Zz)j)z):*z***:+z+1F@1E$Ԅf!lEcxkE.Dd-BX [ lP{8TAE(qѱ͂&mBMmL&m;B6d0LX,[л+خ\mSOc1 S.Kqۦ[ 4Բ,#k3)KV;2A? 3.[녽34uMl+qc(?ᅶE12K#쏶XAMoo0]k7t` /rl\y u|CNyC\+3{tۢ^˥c ]Kbف\ձ_޹+/BXK:-@: *'f;2æO|w/(O1?N>c/`ƭq ى0ۆgl)l}2GI~kà&4!tRG@\"]+a= ah]-?졇2 YςV-% 45`Eo Wq-n;0Q8s턾C 6 >v#BG.Wnn5` Xj9йy飣~z詳韻;^;:~O<7G?;/O=k=3W?9/oo5;?L:'Ha`t̠7 (AGH(L W@0.28̡wDH"HL&:PH*ZX̢.z` H2QŸ `m|#:st> 9m<L"F:򑐌d#qFIZ\d&/Nzd"E RL*WV򕰌,gIZ6e-e"b"1f:Ќ4)M|,"̦6nz 8IrL:vyNz @JЂMBІTPD'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ~XNwӞ@ PJԢHMRԦ:PTJժZXͪVծ&UdX1;-YjVTn*\ٺַq]rկ^:Mb2d؀d'KZͬf7z hGKҚMjWֺlgK6n%,|`o'+\rhZЍtKZ7d z xKrW /0z]7썯|7/yLN,2'L [ΰ7GL(NW\0gL8αw@L"HN&;P}lvXβ.{^L2hN6pL:xγg.?[MBЈN)'(ѐ'MJ[Ҙδ7N{ӠGMRԨ.t"VհgMZ8D`^MbNf;ЎMj[֫6{.muMzپG{x0}&8;͝o3X"1 x!|B)@A [GVo~yˁ-^C6y),9]>ϼ!u';Px" la6.`X{a>hA *>vWgaG{׻s.}ox-|`;^S FpE\=|a-x10l ,!K@ p-h[ X .WW䲆|=@Ck' `H_mϾG`c PZ3þ@`l!ׂ@?PZpM>/M&}h0|Hn\a^jX|ƁOS0z~fݗ:<o߇pY0&p@ / @V&pZpLQ $xtNPm]Pw\%&\#YP^.OQS0|vS-k؀JP0ǂ8P^j&pa\[ZȅaVpZ#PZ0jhV=ڸhl?o P/a`$0M L|Lp` z^Z6[jPɰTXS01+ {ggZpK@r/p{\P[P@V/P&@(z4iH ^ $1jpV)|# |0G.X2P+I$r~ .sp&0jYp&t)h^|M& 20*T[0 pxqZ@M0v/Q ]Pn/ {j- k$HIjs78\zZ`ȩ/`Az\-y{|K}8* -@}-$[@ )8,hkk'qt9o/p8~|+0j/G}80ɠ^ F{thwG@zpX`v|J1'hf)Q yzZ@Zv)z+HQj 8jր0TbjH}(צr:Wq}߰   #KjM~ *zZRHR+ zvPn]`7:j#`[08JP.GjI x"yQ8/pOR&ڝ&]rjN:ZgJawvJZnv oYo0 p&JN) `S @O9X4$[S) {&QISIph `N hx P/Q*hC>Zk\@*Kp{> ױG *ωiR6N20  83Rk2S纶l۶֖q ~Y07 @0u`!WY+'q, PZ@'\ !/q^`' (jT3XFkx20B0\aG ]jx*MPnbd?pn껾jS0 `aRpސ à~{wxXa`{PȖ_Ǭj. bk[:``#5GhK{ r |xap+ɬ+gj_PpZ|jɾZ\jpnT`py0]/)P~  qQ& ŀȂo_n(i~PyVM/ J@ƦZ+hln*kl77kʃ˲t o0WyXb`xoFj|̮pԖ2 8Lų|,u{oUp Nh/<pPPtnitBwar&jKWkKLlYβf|P\ EtDj=VV  hP Hxw#xl^*}\k/mʆ)^@j),Ұl"vDxFMHf`0r1ʮ}}&$HrLs[Y q^jmpfFv}xz|~ À ׊t]wx ُMvؖ}ٔ]y-ُwu؈F|-٤Mڕ٫-Aٯڋ=۝ٴ}۸ۺۼ۾=]}ܺ-pgy ڈumv}ݵ=گM֭Mխۭ=]ȭ0ruȀ=֍=ĝ}ܝN~$^&~(*੍*n࿋Jz]ڛ8 ^ᠽ७|۽ƭ䕭Rn.+~XZ\   7$.jpr>t>_oP維y~w~~ ^~阞ُ~>^~^ܝٟn߭>^>Z⵾}뫽jnsnYڞ#^> M>Ǿٹ~N>.nN>ޚ!.۰] o N%>= M.ۖ1ٴm6/5:?8>ož!(/~ONnY>/Fi~K?PMx-" ??Gہ}-`O| o oLr>S_ox.fOO%?(~-߮ۻd/袿?=~hw)n?o/o/]OۯߟF0eGf2d?db=$XA .dC%NXEF`G!E$YI)UdKaΤYM9uӧO?%z1ǣ\ZSQr UYnWaŎ%[Yiծ*-VY]y_櫷aĉ/fcȑ%OO2?YgСY>L.jɗ\ dX6ڧ#[6m~x=<ļ}<=ę'uٵo1aŏ_uկӞaÇ|~|O~O>sl@coAt|yA?zd 0C5 01?`18چ9,Dq@= d|Gı!gG|O'_rJ*ƺ%1 7te1K,D)tM,5 $m&9M9O?4<,TP> CQ@4NJ+T2/PbSN;SPCuTRK5TNUUT,&^uSM7V9U[WW`vPPbYy=6Yb_=6 \)Uf?6m=hp5[r5\tUWmb ]xw^z^|}wK._8ށ =׏ELj/8k{x3c߄-Q.d}UnecXb!y?dbmyYhuf{is6izjj}ckk{l6A{ck)ҏ綇ko~$m:o|p 7܏1A?_Dq#ǻ7C}tK7tF}u[@\g}_eZw-1߽i}kouMr߷~>ѧwҵly7UG_@vק;1QΟdٲqmNc^臾/ ]:H:Ƣ ȶ r-۠:x~#$a >pvrUBP3a mX&@ ]C }h6e.?$bxD$&ap/ / *Q[bE01lSA͈) 8v,QscxG<8B22lh JЃ D :O-~8#,7ul(ǻk  /iٸwЛr-[)|ӟ4<*zS`SjCKZRrk{׶rOE"5 n\)[N wU\W5uݫ]zf}k6wu+` RR,ö%@^V!۽ʹox{]M?ТVx57i` c[ln?[LL\KföKɠ ed:a^7ՠvf]Ž~D:Jxyћۥow@w+ \,N;G/XpVw{sLm`{ǹ nib߾S]1j6Qr8Ǡc ylJF;Q~ MNdvy\^'udy(r,6|lg3۝Zl~;'B! q^)`53/r ڏpJyKOieKkkhuӚu o 6 TFӪ2Ȍ^0^q5c쯱06}QҲRndܭ &f6 7Ds  nx)]x[7+o\'ݿR"k ! pR>\>q8L6^x ;Nq#'K,\+gyUÜ2wym~s:y}s]<Ѝ<>p?.:(W=Zүnuߜ\ؿw8]g{v=ƥ~wWJ|{p;ax> @=oއ>_"z[ ~뛞?~__ z@2 4?L|>@둈D؃Da>@@kB(A|=pDAlA Aۃ@ BAtdCk@ DADB,DCGmYPXpOoKlt5T XT=FY"_VF'v۶b>F^lT_e_W^5b Fa_y]_ѝM/[Y[bւco]؇ucnЍ`WO-c,V`la&2UGW~a}%M\5٨}Y;\`On٣YnؓVލ[L~b\nZ d^F[?6eGc8`beO=[FޤT=Sn`Se&[ZOeNgl6at>TRCo cz=ނ^bPy̜N^cإXmH&G5TJ=lDfZ]e-( sffA.ؓYVfakZc"\blmVa~%Gg^tdzTFDܶg^T`dXwEaWoػ]ƈ"h^׍jZTuY*nlEf\EimZZEJ\4F6_k^fenfeyF߅g^nEf~FƂ]TOnjMUJll^koPu\,Vmݘ}nhJEׅ) ]4沖l}G .ݘn&b&]C j}ibfef_-lэPyonnUϥ:~`n5 }`f؈J8fEGӶxbfGǑǽW~^}fVdj``wNnt]>p<gaZN۪5\q[]?TfiemT4&o Vr&[\}㲵Z W^EZB^Vonlǽ#ofkMh'ڨdlLqoW?a܎nz4td[XAqlH@WtAjET,DvԔ=lt|immq$WF0JF@ouAt-tkuTV,X0u|u^u`gO_vb/vvcOveWNd_vgvڜthvjévlvmvnvovpwqwr/ws?wtOwu_wvowwwxMۚMKmz={|}'~'ʂ<{ xh_zWxՕr,xxWxsxI}xFaLplu.d?CFD{mP aWAQz$q(n6"%xb Xeaŕf|/uyU>¸|/"{%"xi=3U?@X"~ w73~X7~S8 76W&ix6'R&$z()aGra(Huy2#Q y}X{VZbYiJj,(OՙMfyzw&z,O@}(uG[fVj꣟˖]R#>ⶕFKn^/peIh{!jfi^/D, v֋/b/|覺V+}"j$,n2mϖ|kҼ0rbg#+4M;4QK=uƢX[qIS5a=6e0nli|6u}7yߍuK۹7~8+8;8K>9[~9k9{9衋>:饛~:ꩫ:뭻:>;~;;; ?<<+<;>髿>>?????(< 2| #( R 3 r C(&!(!F<"%2N|"()RV"-r^"(1f<#Ө5n|#(9ұv#=~# )A<$"E2|$$#)IR$&3Mr$(C)Q<%*SU|%,c)YҲ%.s]򲗾%0)a<&2e2|&4)iRּ&6" x\y1x` \7=M3'Xm)"s ؂P칇$EPBn™z` =N4 4CBoÞ J?a!A=zDئ:=)(K)ΔTgC-Z iASq;KғS+=HDA*Rɓ'eOx lSг^x'Tm*QVd*=YX7:Wl6jV=zU|ZjTWU25 =HW OFTD=u=ȓ~5gwjͶeibɷ}9iNrB!')YY6v}x~-8;*ףv|u(<]KQzm՚nnqIWzba&mo B tRVԫO{m*>I+^e\ VFB .TTB`ڷa gY=rwM'a`ra[* bM\^0ĊT\[eԡDCtyQ. D9+U^X{c@AFduJp5wo BnZbt^GAІ>4E3ю~4#-ISҖ4AFkt@LwnӼս$IGg"\u:تUej'"k8ScA`4-Q hyUq&4k^܄7bSd~h [:+OQ,dnQ'*}7IbZ;ޕΠe,dU;ՠ*7]mp!\͜M=ZinܼaX _8.>+EiWcHd"(q$|RNG2[fv`s3~FA.Q& cT).aujj6==!b$(HÙ"&c_d:G2".1D.tϨd᮹ؓmnl:rMzAKW/;|F !, uD`A "T%B#FE 51ď HO"ldƄ5$eD0Jl%K4Hu?*'_y N҆Z˶-[JB8ןwBxBT^ExիÈa)Vc%V!MP9Ь8snF:ӏ?Zk/"dEtUQrBYZm?du"Iem#`4vjf}z h)k֜(me<#AGHW|w7v8%K C+rb2a/ ;n3H:'HAPT7g !̱(d.AD|u gH[wC@,~BH"~a&0*HE JqwPD%`E2h!fK,pH:x̣> ط4fL$F1[$'IJZl"bI"O!G¾ sl#*WV򕰌,x>R% v]㗿0Øb2_T-9ʑv&nz UHr"2@|:v6s%x8]L@^H>l## &`׶?,"Ɓd&T~ z_w @`Aqc(@Oذ :XtQ VN{Lza&xU]qa Tv/d)E|^MbG , Bm, PV>Άvj_;w45 e˛~6=p71_2uPxaO (& 7 m#`e/ h6K/;F6l, 7mem| x<r/k6ҡ | #78pG(ַ{`NhO~Ž& TL(P k8Nw=z9@pOS 0 YK+6ݼl0 o| m_oG]~y~ a4A e}هO< ^3'9g/}ٵz! O _ sMpJ8p[ 's hh `2pFPaG&xh&LW7^\MA_a2L[ \q58X8^ЅZ& 0 hK؀@BQSF0wg (\A`m؈8Xx؉ 075M#`F#0|`Hw8|8~aƈ{{O8J8HtȅȘ$h%H PX8Ihӈ(((ȍ؋ 7ظhtx8a8F`[ؐ9Yyّ  d`&p8|NJsf07'ܸ?F/# @Bi&b0O8Ըpq# /b8hpX & gA090))ؒԸȨRYiGaUYpOhG)ٙ9Y$FYMb)xJeMɚ I'ٛ)/da]Ɣ;/ ֩HלAiɹٝɛa05ApṚй҉Y\țAaPiYKfɛ칓ʞb[bP,ڢ.02:4Z6z8:<ڣ>@@9 sHy IyTڢLbФU\ڥ^`b:QJdhjl0emr:tZvzhmxڦF~Lʦ}:ڨ:Zkj*A`]tjYYڪZzګj==pȚʺڬ:Zzؚںڭ:Zz蚮*2@{0z;K K  P۱ ";$[&{(*"+ },[P6\`:a}6s[D{6[aд{P|0E[CkUC\H\9^0jBl+d~cn{j9[i_;x;[{۸;붊X` ZsZaaۺ e_{з{5 ^hgeKs ǫ|ۺҋsOۼ۽~ ^[ޛ껾۾;[{]@F U`hs\۴\~  [tkۺ;+\h`۴',˼\[a[A'r|JLk{T ?ݻ} ܺ|Z`}ļ kQ<gj}ap|~ǀȂξYa͹O0ɢ{  ``{,/{#ǍC0'K T@p%@8`X@ pPݣJ ;'P2@i~/bN0IQ`̠ͯ Cٝd[dr 棛{ סށ<nMN4^X@) 8@c_S #=8pP > |Ϭ[Vha#T0M"Z8Pp&/@ z[P0`R=2|3yXZ@bŢ X9~ǵi)jNl ~_>֌ SK^"?$_N,/N*J60/½M#/V*6P@]  `$/_#@\PPS]ˮ29/1J[ J `Sxe Y-?A01b^6*P&pa]~ r}/ pg %#K$TRܳ _?o<ÕLL xn?/](0'$t  ( 3K8pX`B BA'NDaċ ZZh,^\x^hI$J-*Vق”>a%C)#bhY Z.(AB10KM(pqxQ {Ԃ $xEM( P3&qTزD%qd G¸0e\"k[]m pwn'^qɕ/gy*+{0" :xQREntG@ߥWE, ܂@JXDQWP?-^8 `Kȴbp J1&(Ђ%J! @x^JƄފH"! `H FH .@p#_0A' {R؃JP0R.A"@-``IR@.`1( ="AUtQFuQHO-b & /Tӻ&-#0xS@HJI` p`A(HaWŞ) @!Fʱ0.*$b.HM-824Xh €m[ *F*,!BH *EEŠA/p8! `ͮԢoKE-`@PH//1G>>-R ňafsygH" +V0:) g!ڊ0ibڊ"hˋ&8KA` F'XV{PJ0-IkSb"#4 o-& V ."P7LQ<l@?EvOqcT0x~x7xu‰p^ ?|^'8h^ {-@ *I@L 6aurٵ`([h`QpBT0$A l D p Ph ₆^ ! (&sJ Q,@.dON6B18 2HZjW.@ ; X<0Qc$cw6$ R`c#ࠊAF85uF@/C p.~D E"@5b93p03ND ja 4 PxqvR0 Ԅ0$-eYB*r@(brn҂TmdWY) 0V0c=yO|SB p@)DAR b% g@ZЃ&z @ {&{@*F*7<.A&Kj!  ^Z.CHKzҡN[]Yd{xַ^ڃFc*zwjn&Y[<['| #Z_xGw|^yc<;x͇ɽu&&{`~GS+`)L0T8 L,d ^xG}櫿铞ٷ>}k_??=/ ۰w]{?\X+?u6Wۃ =9?8@ 4 5 @@@$4TԸt@DAdAAAA| "DB +?3?;C<8\?9C>C:;<@(<2Ջ?*c8FڣCc4=c34S9L&$B'LET\ESTVd%tXE#ZE%WYE]E`EaEbO=PMP]PmP}PP P P P P PPP QQ-Q=QMQFuQQQ=QQQQQ u QQ#% E PR'}R(R)R*U!mRMP-R R1S2-S3=8\S6mS7}S8S9S:S;SS?S@ TATB-T{E]TFmTG}THTITJTKTLTMTNTOTP UQUR-US=UTMUU]UVmLETWUYUZU[U\U]U^U_UXUaVb-Vc=VdMVe]Vf}DmNEm؆QTiEjm=nioprWlEm]qms%tVyWzW{V/%W~WW XX-X=XMX]XmX}XXXXXXX&b݆a-Y=YMY]Y5E؃Y-ٗYYYYYY]Y Z-Z=ZMZ]ZmZ}Z]Z/}ZZZZ [ {X=[Z5[Y۴}[-m۲۹[[[[[ \\-\=\MbZm\}\ȍ\ɝ\ʭ\˽\\\V\ ]]-]=]M]νT*8V՝]ڭ]۽]]ݝ&mJ}#0V=^M^]^mu %󂷭08M^^#_^-_^u^]_m_}_E#_"?HJ%^ɛT~>`N_]`n`~`‚߳z%IU$(=#HLYa6P}@aaa>^/ߙ0_ [naZ99E2^.1=1b1xb1@(~;6)c3fݰ]uc6c9N])ֱ`(Z(-Š-@n]Y*a4F@od?dKdIVMnNOF[LQ~RL>eMNP.JLcYe͝ߗ*YCVDV0c41G>]EVe[jV[lfkmh[o&nfjfievnge?_xg u!`bVF`~݆svgEheh~h.\[czZS[{`F$_hYna~aE@HM{/֑iZ䜮.&ڢ.}鱅鈎j:@Ɓ=ڷ!ZEYn_`Y%8c6ٍKjܕkkk zbd&ڶa8U[쵞YGn%@xe}TlKlͶ[Ϧ6e>Nlem툖_m e Yho; kҽ[Lp.gfso&fInnnw_yZ((쭅BhNY_*nف&6MXooo^5m"$no#*)Y PohNhosphC&@oFl'_o%mk6cOq$Or%6 k?x=ǎ!I=r%%/s3?sԽ`!ZOY/8/oZ1]2?>7?pA/@tBBBO^utEgFZHIZIGsM86-9s=M?uTO=w\S]Ns\Du.]aWuckuRGqat~t. j\ioXսvuVcwd0F.r/?ed0(w0ty9a,w}w~wwxw0-@x~xwY}wpw:*z*IaL*Bf:^pXj^* ;,~ǪYYziiš.K-.lHծa+{.骻jrkNbV;-z*̐ڽæF̮;pg'j~r#sm2'q164+mBo?+>D¤^2 wO*5%RՇ7jr~th*=6b}^MmmluNEў)mm޻bEMMÔ͐`n X`{L:`:o~9Ɲk'ζu;Ȼv(<SE/0 +@׻8/RU0K'룋lsj^^kˆovw6})`ڗD|"@|G/H\,( Jh !j\ЛS=oz  ў 9GmcAE4cln\,X'L4!8.UE)#Ø"4>Q(b#E8oޥw|L_Ɍ ר8z(IHjǑ̏$+IL^RjzvPfGىE:ar$cNZR4"HC゘OW2_”O1K_(Xf0Iiә4&iKg_7q=u#؟ !2*Ҏ;MOPъORx)3U;劇 C; DA{tЄarhv "JTE%A1Q6.&HCaST+9؝@ЎftRJW?R_M87t<-]LCJI]rLMSEJQUzU:uԦ*ֱfA7QJw3UuKUt<+T׼n(CnJYQ'-G]c#FbIŤ$YВ,jSKjmAkzkM+VmT-p+򶸖p2WX}6B)Vu]r쒮w;톨\1v+Xma1P7~G-! 60d/X0|3jx>Y#ч;=2 <Xm\+&6X6U: vbK_+w!jǰ Vw<ɿc&<<(KyBIݍ5T!Mێe?C;XU)t}~p>sVa Qtgyٳ oy[NTiqц'kHKq>sx. 9J-tjQ߲ ij{GXԔ+SARz쵩EEYӚҬ&3SdhT65־6mo "xE6Ím,x` 6y6w}|w r ?8&$chw#.S8+^cV70W @j;)_9@aƷ#^ny &Xrc'w3S6ƋPf7ճs?z=k^skO_ϋ{ X ` tv^3Ʒpol?/ԝrCcw=y 67}8_=ĭy|6Uyٛ}j?\ MЃ\kϧ{O^~|מr{hՍ}ԇ?$9í~g-= v\[@(i[4Hم[mAH^޹m]᝞_ uy[m ~fv1ڭaޭ] <][_ ` 2N= 5(] F- _UaJB% қwp fM=!.b!nŞќy@I ^u5"&jzUB_&F^ *UU.r՝&C"Zb>a:&,!~Ba!#9Y ؀mJݻMe޶c蕛c8^,]%&1"3 d=4Ac- /ZBR#Ϲ"D FŸ ߭]!!95c?}Icb&"?eAHD*9$P " N:n`2<=d raS @^KbFA)Ңr$JJ%ŝQe)Ij?!#Nu`Y2cd$ɤ-_XR!NeePN&ejv`e:rY :$Ja8]$ &%E&>\-W5ZXҥiM%;֢ .\ iL z"lHǵu&!-_mRjVvubUj^T{mQbfwg}^Nhݹ$o6ABΦk uJ5M2趵!ݦj$ WR ''vصɑ`rơ~~\)B- ^1A}͜YC 8_cH9'U|^[~r^u$FzߵihL^ߜ^_}#)uI ߣ'))Sޑ ~*_>^h;fi:^UR؍)*ieBX+2y'ǩ$}vu gi Ek2b̂b[u3,u3WO6v3cC6A5gB6Dtodk7g{y kxWwz7{miS`#6F\#3Yvv~#th7xscwt7gqS4D~xxDdv;7Km{U}7xs8c;uwwvu94(WU3z6yX|';ct_3t}4s839/t7Sny.Ӹ︂7Wywk84wSkGv+z9l?4w`999K\+c%x_7]Sk9jmb[7wT74cv6X#}'\˭FgT+6C;h}3/[Wx}g{co;~ϻZ:5Z{ko3s_k{8'_C+9sr{r[<<{Bk b|8ȧʯ<˷˿<Ǽ<׼<<<=='/=7?=GO=W_=go=w=؇؏=ٟٗ=ڧگ=۷ۿ=ǽ=׽===>>'/>7?>GO>W_>go>w>臾>闾>ꧾ>뷾>Ǿ>׾>>>??'/?7??GO?W_?go?w󷫺92Q#bwr[&C+SS?[˿*D"Mş"IE(& #zHaƏLQÏ E&σɕ3iִygN;yhPC5ziRK6ujTExpa-UJ,TT%pJ˕/Gzhbâ v$EXp` 6|qbEPb@xʵIH]xaf\܌U5ujիYvvuAIޏܦD`EěHh&SʍW~{vۭSCtܺf^[KX|ʪ]r~f09犈eANܬ%)@,E=K @j9.L ?@$B M++ƒbyo'4$\&}!z^~%-5ޘ=EM>U^]nҏl9DYun gY̙&&2'uRz%rfw::)gZ룻n뛉h.:gN韙k&[f׮?ykn{>j{o[6zG-g[p=qg.tQaumuIg<=eu}o_tV~xכ_xzɍoMg|jCv_\䅧>#G|)wvEop(?ukor[H%pߝ@8z΂{2!Nx;1 iXC9yCAXD#ITD'>QXE+^YE/~aXF3iTF7qXG;yG? YHCT"HG>$)YIK^&9IO~(IYJS,JW,iYK[.yJ,)PLcT2Lg>є4iL,L0Mo~g3m T:Np䜡YO{>O3Ћ$}dLؤZpD *REG,V~YI34)* *TFCDEAJ:Ė\T6q2 4^Hz Qjy˜3bMR B~L!JÈ+^0ǐ#K|˘3k̹ϚMztӨS^ͺװc˞MuۢAͻweZ/bBS\b%-&s脩[? , &PC^1;2I`a1 U,BO#H` T'B $ ^0 ^T{LX r UR%UQ2@J2T4E%x : O@K"YhGHBBgNH &(M,Qf #STrS)tܝ|z۟*蠄'n}&x6ZT2H /p hPJH{FNP؈E:i O K*B| [хF(MpDL DŽ8Zb],5 }ȴՂ1 vPR!B TBBJ;lEX(  &kE&(};HD SPAXR pa ,2ȍܢ(١.4l͑-H} 1G |t1"Q;G83C5 P7JήR@j!  p \@P[ ů r!)t1 &Qׂ xP4QÃ"REYx / UJc,g abC?f }B">J ݲBru6ajz7? t>ڲ>}(CO~)LR,]Px74t K̥F\{@T0D]`KT-A  ,! J0 I4h!rh<` |a5?w{K"HD6#@և,l|Ȥ&-d!%7N~0.&DÔlOLap 0 ~h/р=0 *0 0CA'B()@a@(p M i,# 0UG8A X S`#-aO@%s @ Jr B~xЀK]J08!ч̑Bu\R`|0_% Ҋ+2"BB8mpGt# ?d{@4Џ(B%QTfa N5PPT>x*V:DÁT?h {Td( =t 7qLH#hD>1Uu(fG. С*W{@:<[`؎40q5lk>!1ָN4 GdI@07.Qb0@4LJG.|Ar@1YjzJo0X! ^ 1 \0ia(48kIÀ?^=.!B(:105BK `ĀCCmwdOZ7%zS<0-~L*[مQSB! V#Y SW/HU^9 i^sa2V#fBAz/t lN x‡/ ~FY.1hh ;n 3 ш@˜-H \pS=")~3*Q ]?.thg1+BC x)F,}@k/tk1V djxe<]Nwʭ$3 Cɜx1>=jjjaݕ=%^q4h:hHk9 <".e' $0B:%h} \BLgvFzkv]91;CւI/ 7K͢㭡\n^8~l۽y4+=9!ߦ!kNwف„ b1p\w C qF{(oJ1hi_'zD}COqaӀ[4Uz|!sz9@`# {^MPu p0&n+. ۘ{0 :.?.{ Ð۝NR>T^V~XZN`]q . 0Pu۱f3 @nLh~܁ۗL~y=^O᏾>^~ ^M.X*S0JpNꩾn~갾>-1P뺾Ʈ[>ɾŎ^묎NӮ׮X~.~^Xp^?_ Nܛ r,rfx#IB~ߋr0OB24,>fዀ>0oJ;;pBB/I9>pN0`>/BZ>Drng/r/]tx?M/muO[vk?_S%'Ǝp{ \7 ~ nvⰿO0 m+0 P ?  p}0~riOƯ]SРo S`@E1^t臡Ƃ\bɃ zbAd#1F9uOA%ZQI 3eSQNիTbu˜nذ` 6h&~ni6@rګXs"&L1/2\ҕۋhx.E1 (/CG%ƾ%zc=0doyB6 컋^n"DLG%ȜW& &}p0´wŏ'_ѦZկu}UYj6$`L72&s0- ڦ;biXZ( * j  hCC:G ċ1 SZ4,jv;oI&tI()*RZ/')W~4B4Iyg\+Ҷ30G0l"}{H!+l\ǂ0TBO$@MG?]H QR:G$CPAЂ,LJ`vXbl%tR+0cKh d9ћoM09l6pQiwA"x卋02KF?Upv%q/DTV[v޻yGT b0 [=X1YbJZY}1LtLNG66,gz0P%"(/^C-rZ6#>"h~o/(Wqxh$*Q'CV ms2[ۖ{na )eʩ z0V "|r XkoL6 С0R(tEmBw}vk7nÏ=o#rڃp "0H=9"~.kk9uIF!GL?\v{{iiN9ar5y0=a CŀA , a M( c8bZßP;a7,op$1^ , l\8 >/q_b%/VQxF4Qk )m# H0bQZBظÅh>-Kڵ66FRd%%G?mȓ-ر x <唀HER $b˂X"%0K_R' f-˃ '42kfӒӤf5F8 tO)~L@s qNr3,5yO|3@fq`D*Ap ryL\`50`OxB(SS#%)ʼn7"&`wchDp$$( QѰC%jQ6a፽KX< jUSAWiWyβG%kYzVNMfL1b4VZVsUv+ˠ3h%la {N ir"J!kĦV5lc-ȀwJx&ur Y`Kh-z6%k\S}k *Mtjj1(.h?un{^{> i~-x^ pP^q ls{`'ؚݔ7 8>P|a g8 pJaU#&qE; &>abX?0p8n\yuE.`#!W,tr2CgsZŰ^s,ysQWqtO=Xϝ.YB:n<^O˹3y0Kww g|x[ 4Z@ o69l?o҇_U?z׳=[O}g{^'_{'=?g[_ί>}{}~5`o X(?<@L@$@ @ @ @ @,$@4AtAA|dAAA&h, B!B",B#TFd9D>DD|EDKDJtDI\aU EQQ$(*4\V4VW|XlEZWD[]\E^^F_Ea'x313,@MTSFmTK }/0PhS7UM>(S+,T;+ 12-.2EESMU@#ZUGեP*zQReRb5&uPQaYB=U,Ђ%W5WVփW]-WMkV?uN' VxUwmVJ %2.'++Hk=y&!(1JAXsmX9,OTcmW=VfTu ,W-WʏTtX=EQzeYw-;X=TR-pZ3EYZ =ZMZ]ZmZ}ڥ=2,M8]TZ MZ [[ۤ IZڭ}[=[[[u4*4\\[=%0\I!E\ƍ[˽\ܦ[\= MZ F*Y)Q]baݚpՑ]uе}] ^^-^=^M^]^m^zl ,^^^^^^ )[ _=_M_]_m_E^`!_zz____"000_.`>`N}$%`F ` ` ` n`hzߣ``a.aV_aJ&%aaaU`m&^`a!b".aH%gBb޺݃"(b0N+b--N`4~+^c# h/~c"vb%6\Za_ߍ)f+ (H"bedG6-(85-Vd1<,"(Puc6dA"@ee嫈cXcc@dIFZ[\H^)~ZU.eWdU,X1+c>gd&h_XfceeceZb_a~[2./XZFXgQcSR-b /GN: b6o>Z.d %e4[iU"qVE"c:eVZQFcM^iESdi,ec(Xh ~d )e6e%&`h,{dhGe92Nj oveufvg\jxagz I{io-pnc䭾Oh~聶k3l݃jbNjgv6:v"N&(g:Vdi^g+hImmNgVlWXmEmNh†fmV+n1hR &dKd&,Ŷ g.k?6k agZڵF&= bZY斎mX~ft.d F+~ivodj6lxjPjngoPVm?ePpvpN4v6ڨXc VmUf4Ɗ8d7l-mdb g|Fjj(n޾&jthp.r)W1~b,4vcjfh?T5p~䡎j~q&,s3o 'j:j5޶jѶes~nMFgUo%"of%ec/p)u4o0/ps^ Op 7T.qb7mPfwg/jSztc_hM46 jZr?gvfh{iG4hGgf^jF,sSj~.y+ E,Þ `È'Rh"ƌ7rB?",Iɔ*Wlrfnذ` w'РBy XPEKҢfl2fҬZr:%ذaaʤiNjײmԋ{Z˘PnQ2fѠE0#Yx1R<5o3V1Ma /\mrƇ{9ڷs߾-aj>s_>כd oGƟ/>|[.H{aG ɼ| .h璀T~+Mx~u!"8҈x")"-"1'y)=>ds$ |l#m_ 4%V(!.y_B%hR&#q9'uy'4ffy[G&mcfKdHA*҇衅)(:**&]N:c}:^Kb,eRi;#%.j,GɊb)*骻.Zo8H Ȍo %alҤ~H{coelZ|1k޻|j#"^̆T6홼,,|3|'73}Do|4I+nQK=5U[96]{5am[2ni6mQ1u}7y7s?7 >8߅+8㍳};>9[.-J~9{yV9襛~:p"驻:쎯x{:;); _u(><+_['?=kQ^=R׮*㫿~_?x>hӿ?'z  | #J`G( rѠC(Bp&Ԣ hA s"5v^T9A7jRwq.iMg z,5%E6^j'IXїrԣ<(D'zӠ)3RQ~ԛ4=;ԦQQTVCƓeO֯vB O2AejDҌլcUkUS|ڵj\ؤ񩇵O׺k9mjXnĮwV:b# ׹n޴*Y)Rj0ukg[׾*hIOz62,GKj2Q:WRʔm_#d7;.oC[įbUNA1^t/!Awg$Q啦F9J$V8ş0{up`=vw/`yu{Osup< bNA;PA~NY2B&$b?xxLrTЋ$׬<6g+@ʗe|T@Z <:i(_O„$CG"GfyϷ좾P*m4X,>+ю&ISzl43KkӞf ?-Q%Ԥ>5?bTYc-kzֶFuoOz׾t-lG{Vs&{Ύf-F{Faf{`-{V`ϭ{_-o{^o{^-p|]p%|\.qE|_\/EG:8q؃Lr|y\؃O1s;\>{8ѓ^:}J:tC9խuc[2Ed?Z̎kEl{kUt;܎kD|s?Kȏ+o'?|_k}.{_L0:MBDDHR L\PElU,`j0EkP.DjX ADjІBF2&a]A6AAbiQ4ElLF?` 2Qi TTHh`2THR E$nvh!S!!]\h!ra 2!A!A ExAСFA_ b`!%ZP!n_RDzSk`% #RC@D'z_ VU`,_-Ebdc"- 0n#22.534FcM#55^ce67v}#8Z/m9N^:N׭c##:c??c@=fXAAJZB~B"]CC:]DDcE~@cFF#=v]dHd쑤IZ$@d}$B$LJdҹ$C$ʤNdM$PޤPiPN>CsM"h%e-%Z4S"SUVDS|R:  i /UZABXBe?(y'HNv]PEKvǍdj܎Bd>h O) )"i))2(EBi) bzNr~eiIv陆ii))Ai٩ۛ)))&)*j>9V]*nuj*J** Ϊժ檭*ʚ*%+z.6*FkN+^fv+)+km|+jkۻFj*rdb㾶h+,+"k*2:B,ŞټFn,Jlzle<:,ʦʮ,˶˾,Ƭ,llށl,--&.mb"R ɂ$2^-fn` FLT-זٞ-*,٦-ƭ.ڲ-^mέ-֭ݢ.^.bW2N:YP.&^.EAt2nϦ.в~.ކ: ٖnҪخ#.T.mк/ o2o떮nmFo2~o"횯Ϣ"nF V/Vo.om6/,ov/ZV/&0/6pү+Z2 ;0kdn#oc0+pт p /0? t^p/s0'pc #/w0'mh4p.R1cC1zog w11n1. C#A!1qW.$rR&. G #Sns-߮'ch r֞馲*+ʲr--rϮ/hh,4G4W5_36g6o37w73883993::3;;3<dz<3=׳=CA3?35O=?3@@4AA4B'BdH:34[>/4EWE_4FgFo4GwGc\N@DGG4JJ4KKt7CAH;4AAN4O4PP5QQ5R'R/5S7S?5TGTO5UWU_5VgVo5WwWW;ty8M|Y;tZ5[[5\ǵ\5]׵]5^^5__5``6aa6b'b/[ׄyDYZd3e_6fgfo6gwg6hhv_;ME YXW6i6lǶl6m׶m6n˶cN@jn nq7r'r/7s7s?7tGtO7uWu_7vgvo7www7xx7ynowqy7|Ƿ|7}׷}7~~7[iszx8'/87?8GO8W_8go8w88/xzxAǸ8׸8縎8gxCvj#@x/?9GO9W_9go9w9999;yy9繞99::'/:7?:GO:W_:g:9yj:::s:{:"纮::;;'/;7?;GO;W_;g;{ߺ;;;_Ժ!A绾;;<<'/<7?>'7;O>W_>go>w>臾>闾>ꧾ>뷾>~C>ľ>>>D>/?7??GO?W#c?????ǿ?׿?? 0@ 6tbD)VxcF9vdH#I4yeJ+'t9K3iִygN;yhPC5ziRK6ujTB9kV[vlXcɖZ*L3kٶun\sֵ{o^{p` 6|qbŋ7vwǓ)W|sf͛9wtȡI6}ujիYv7r2b^׶}wʲwpÅ'~xr˕7gytӥW~ݺ3^lK|xɗ7}zٷw~|׷~ӽQ <\|%#bwؐ=EM<U\]|eqm$ў%} "<$\&|$#" {,ܒ.02<4\6|8((<ܓ>@B =D]B!, Hn &J 303쥑 EHɓ(;Zɲ%!bʜy(͛Sg@iPѣH*]ʴӧHJgϫjI+D+2PUC[IkG†OҦd|;ԌR \K]g^ժ'Jd:yĊf)RB',gRI?,2YŸ( Z?k&⹸'G> :4r{f鐣.L2\'}4#d¹#^59btMv C<qC}4 w2x&ySi'vaiș8Y_IDbA (Po D4f#HMdI&)XPFW)ITM^[ZYTdd A#mUB6 @mUhj6Ma's sX$J! 'F=^IabT23 A^t 9߼?pZA9Y]xak ={Fm`6 Ր< Z ~4:. @Jo ga'X)1ڭ!*U+)bV ƗA6F[Pڑ$EkDJtdA y\+Zx6k$(rVVYq< E(Gv^D@k@gO.K1[L꼳@^MhvEQ}-_o=P[^0pz,j6W&nL ,}!Ezt-Q'),7QAKkB[]Ʈߤ.^X{!w*a}ZgAaԺ4 K!鯧+3oK۪q۱BW?YWhC6 7`pI@!ۛ@7 v$},w6Q/RIsPP{ AŔK+γ9ٍu XoP ${ȟo~H/ B"@"&VJ嶆1M_`֫0$a ,s/;MF' 81 iGr9$$(Ŏ~@ H/I`^C"c43G42MTqӼ1nzO42dmR0J3í",H< w 4<oR8̀MBꣁ* (r)ъZr юz )4Q(MJm0LeJҙ8ͩB0T@ Pڐ I 5>0=4kOGmX鏣C l…p@Բ65*A$tZ mkFJuh `Qj@ LRq0- 6@DVįb%+aGKӰ^إewlbm ]Zyhpi;AHr٪W2 B؊Z %ѭ?@ X⢤pK $js dpUQ;= h{п d$jl['~sHܧ `r 6ZE_{Ot8-Bৠb,и }1wV&Dn!JB/dP>-z$Df1#_{[&ILo!{k"Y#not7zȗGYN'wyNN"pbzwz~ȻOO;񐏼'O[ϼ7 }1?@DO;~~!mt-?>Oȧ%98Y`9?iS;"MO9I1 Srɗ13v9 ٚ%A H<6NVl2i^٘YiI铛ى͙S QYy1 QI As )*0 bv7+y@  q韸5 0 , "ꓢ9f) yAМvI7ZP9*-J/i5 IJ" Qٙ e{'@!y PT _׹":y_i{Ipyʞg3{p",2g駀I.! U:SJDϵ@X@ft&jh A0Uj` 1JꛁjLɉ=:>͚+8@9I X$3DԊRCrTPDKJP) 1QPᚮ" ! #zʌðԯ;+s Z+[&kaa+ͳ I$Z a`K': q K2{q'7۠NA#h0d0c1r@ @!bsh0U+]+h@mdr@8 z/|NDݪ2 +˸H qD1A UB[Y@j˹>K(;L@7ŴٺJ3J9RKt 1 Lқ{K;+a蛾˻]b+r[[I<<,ڷ#˿L~ L|̿| ",&|(* AB5La00L/AA|;\BlkD|N ~ nN#.Zݒ?_ 㘉354.29;=BDnG.UNInYK]MP.^W~[_fnop5<ʾKVq >N腮>.Nn^.顎~ꤎꦞꬾ鰾^~>n뻎렂"B\aZ]{w9/NZΓ׮ޞΣ..Nn.>~n^_CeQ[+>J2O$^bǾwe}>R^/ >-6/R PXXP7_fLH)02C*OT_WLYUo6!bO +ЙHHb4"|$?>1AIc>^R`qb:A?/C?>l'#o% ȺAAj_${;ɮn#[e[p[y_PE{ a֏!؏[Ϸ_O!_w_vOf$XA RC%NXѢD3^G!E$YI)/rC (PY &9u숳OA%ZQ!Y))8Z" ^݊ ׯ^H6)DӮ+0-B㞥[]y.2̋Q:g01\abA^gHgСmi`BNddZvC٪n=;OHڟia\ΛB۞8yFmĢsK1Dկl NsЄ%ևBb⻨<2bo"!rl9 J@H@Bqāk*P$2hi Er ƂZtPBS4%ғ"jG/|T;I2R:S*"@S-UXI򴂆 . ]}hM] 6O;65UMW["2"+J֡0b[fEqm55kShZ1sCde^#7.&GS06 s$T&DYD<$l[٬2o_ehU웘9@Is#I:Cġ3'<(wbs$L rv8:At =zauU]I&*F$F+JI9Os0rbjLRxiOCS *O7T5HRj->EiJ) fX=2 ^'^Y+F緷Hz׸5U-JL0X`F"X.АHKA<{l! 4,_ZJ0K 䴋XpDK>Hj[[V%my[!n=~O5Ŕb&.P\CB]`)XL݌źX'x!R^i.%zGD =?1w ~ ƅ8i ׿yIL$$t RvY ! y8#چHb7)YLbbqm|͸8qW8D # Y*2~Z~$#|Д|e4ËiD_~$.Ș)B͒Y"j^5f,D'Fdl!bg?39OY"NL-( A!`8T8!}G(=KԤ$=EZhC8HMbjC:#QdT՗ PnR{H6#~Zאۭ{+srSd؃`ۏ% #mb츝]hSҴ`kC ._(\DG# Fjbe#UBoE&ފSF7`25A9HZNTsߺ^-bs<-s<zэ^b]Kqa CSaeb[ѿeh`20h6\{D,$\z?I z &# "-z@p@8@s.ظAb82=T@Ƴ*H Q0\0 AB „x9t j?&<%Kž3$k'|BB,\A-B/D ($̐:`ۿ/0*kкxC4\5C ;CÝDĎ Ľ2!k+:C19T,hti$[CƄ8G`GpoKGJ?u^,zz2~5qG@ɫ@pH ȇHD4)Lj;Ṡ0Dgb?@LGGKNĈ̋'ˡlsiMMPStZI\] ݴ 2QƤrFdz=I|FL4N"ƆNΉώdH xlB:XOOO+@G<ϊHσO~LP$pNt8ˌHHjЎL HP ЁgIZNCȟ#QT'DԌOIWQQtQt,Q"*+\"] dR(y(R\;R4/RWrR%$32K1])-d$3ìSALpLBl;=? TFQ$lSv2JdԏD@LHDIu62UMմRDOTՃMUQ%ԝNMߴaD~V"x#U"LvG=Xiψdox-& eM~޳H_^aBTnMfF-NfP[e-dj⯸ ԱfHa(a^F*0N5!^gKXcaxfXg}Aghh. hN@hnh`hh΀hhh_1UFh i.i։Ni\5&͝ni?Ziigi6 鎶i.jj\EV(ڧ`ګLiޒ=L݄h^7r.5@!u˶N]Ԃ&ddȈ*b~){dTz3aXT"< OV?.dFOaX頙Φg)}:^I obNKiK%aHHB1 n@Y-{֛{j؆}1E"F^k<^(Do@2s*tP^ԆpmAp/rmd@@oVS+P #4p ;! bc"S^qqqqqAj/r $/9A).r&?'rX mr+wL./01.s?Hs5q6 7:ss<o=>@t&tCqDOt?B"gt[ ZrI9J )stNiOw.Qo uSiTOu^uVGiWuuBuY'Zuu^h_uvaWhb/v>vdhe_vEAvivDkvmClwpo/hwsTo?wrgtw_wuGwwyo{wzwv;=T|TDTԄWxgxxx/xox/7yWupZEZ͚Ցy[yyyY z'zzy_zzwzzzNcB9VD֝2KV?oauO{{{{G{|{?|7g8Jco>l|||}'oV?GWg}/}wا}Ӈ_}ݯ}ܟo6wt/%tmt}q=u%WO~~~~_~~~?/g_2O#W/Hb L&p`!B :É+nŌAvqǔ(WlieȘ%e%͛0grO=uYa2m)ԨRRj*֬Z: Ô (w@L/jm۵q ݼt _};a ^رƒS~vw+ v *`T XeT: Zx!j!z! "%ؔ@ۄL-u"18#5xV#W= 9$Ey$I*aEܒQJ9%UZy%5[Yz%a9& nde&mfg'uy'yb%gz' *%Pz(*h(J:)Rz)jjz)F٩z*$*l:+*++髰{,",*J;^T7S!S#if nC-yBɸ{&JʋԹR-?A{0PAt[L{U%{J:\ 0U#%P GEZps+ qU hqȶE<1j*GB\mcOSΕXΈ|P0+uZH?\MLu2 M |`'yCa3AxTj9n$9"i TtF?UTqn} rT@.rjM\+*j3#qD˱ {e$X6ȃ0*  l #&O4ƨ8+^2;62`%odqb?tGR;7/m%-[XLtR^_~Q&6:>=lo|m\v gmZIw\"/3Ri tLpb8v:S4C`&F5A.}PFȣlȔa\2&=6ZQ%W&։(酴\Bb0OT6:-*R**NJ=HF C|*VqjHRO2fuV!j F@Jdv-*B(#螼e{Yh&Bb V<^m+V˖eU^yN5|T @7BE[ 0Y /y,pwN >*BTgӅ`xl]}Jhʉ%S[Z־1Z;ob]r.*ٵ$^1`ίy)ɸpJ6M(FWLn%̔ +ĢbzA1˔ Anj۰m۷Iƺls czuj[ d^%?'k/ձSȉ4Yք ia\6̑B1Gk5Dh^,9[R3!;V~snd@Tt hC#zю~4S I+ZҔ-MYӜ= QXԤ>uyMUUլ~5V] Y'UִMm]cT׼u} a?O>l(d3;NtgK9/u6-Z.j >wmM\.zuFHN-{8gUp{'Zx d83)+88q0| ?/??ӯ?/ӿ?? q_! . 6> FN V^ ڟ?h o)` `S|@z_  Ap@ ao>!|XBJRa*n&tX|!Xp!ơ!֡!!!  "!!""&"."#6#>"$Bbt|!f"l'z Y\b'bX)"**"++",Ƣ,"-֢-".."//"00#11#S'*#43j4ƈ2 7vT#88#99#::#;;#<ƣ<#=֣=#>>#??#@5# Z\#B&B.$C6C>$DFDN$EVE^$FfFn$GvG~$HH$II$JJ:$A$G@ƤL$M֤M$NN$OOʤK$L$QQ%R&R.%S6ScPd#TSVU^%VfVn%Wv%:FeT"%YY%ZZ%[[%\ƥ\%]֥]%^^%__%``X&b&b.&c6c>&dFdN&eVbaZ&gvg~&hh&ii%fb?ik&lƦl&m&\fjm&oo&pp&q'r&r.'s6s>'tFtN'uVu^'vfvn'wvw~'xx'yygw'z'{{'|Ƨ|'}֧}'~'!g~'(t (6>(FN(nV(fn(v~r‚((V(ƨΨ((樎())&.)6>)FN)V^)fn)v~)鑮B))Ʃ)֩)橞))**&.*6*FN*V^*fn*vi4$C4x***j4*Ϊ*ު**++ԁ>+FN+V^+fn+v~+++ +ҫ+֫+櫾++^$.,6>,FN,V^,fn,v~,ȆȎ,J?0dʮ,˶˾,Ƭ,֬,,ެ-&.-6>-FN-V^-fn-v~-:?Hٞ-ڦڮ-۶۾-ƭ-֭-m@!,"= ~G_ ?%TbpI„N6hF8r1!'9r)PK_& 2J2sܩϟ@ JѣH*=ijӧ"I:5իXBׯ`*J,Ghn*շfQ'`Wg]WX0)%9+<|$袬F@!CX@ t1܂ j &29_TTZMuߞ>j?JӷT۶5yϫGkV<[S߹ݮ-q,p [0} d $eIbf tEu@8 EdOA%pѤ"(6mP Qx!$ 8ߏIGmW{Y!z9Y))G>і;4S ? lNɔ@L\?tHuk\b"NO0@c<N:N )PDjiY)㑪Sgމ:F!~ZP~4t`ԝrgB{YХmꏉ5?::A&D?揢)A#aB mB>s3 6 +\nB#kvg꒭t SwR"Y7bRCL#T/ Mұ%ٲ$ld P]e1Y.ãMa)fT CEAdE^DJ& 4;qd*muʑ'U܉tGq|m+eel<jAsYO,A.l{J-;zNO.²@~|E'餓g$ԙ,t?^|1vBȖ<rm͒̇-SP܈HV&-x5^T@Qja}< ԯ>LWHe\$o Dn'G$(0!Ks/P 6XɅ <@d8c/6_xNv/ # b_L#&@ Ă- K.Բoyfz Bnńv^@N@F>Zh0_w_(N>~8dAA _8 Y9H. 滣?@F0xa;?vcgI@ #'iOLư\P%/ ]8EPq]S$A%`,2,3d`"5&Mm0k $HrqPS8>b'@Y&J#W@|%O-ܜSp}&gDwRG>O3ir !vPELALgJSNMls4*tA 9iΦĉ AHPGp C:U9~kl#+F Q$ ;urA |$jVʐ=' L:b=N!X4s c7I>vjmͬ,_5&?o3?#&9[& c\GJBbH0\o*e8Q6=*I[OR0Oƴ oY;ٜ7'`fER҃p[YWNi @B|k|%4,5Qngi_S˝kJ 礤spBz؆aeyW KeS:cu,_2L"Y#812eTW edM闍L2̪BO6p惰yxۘ>9uMBЈF;ѐTʢhGҘδ7mҜGMjRa^ ;2հB U[@F$fR4A I|.0j[ m>`a ;BLn{ i³wexvzޱDMo 7Ƚo#lf;Ҧ6'N;Z߻M8tZxo0Lp{GyA:0p@(w?|ΞW4=!{~̧Nu|2( n.;KX:Ћ|Fo9a.uYUܽp/@]%Ǹ;po4>.zT~qɡ͑ gA -1UÙ|ڧ)! B! A $AJJ%ۀ g A!4 :ғp*Ap 6!gz੮*1! ^A!:::@:8z:A`0ғ:Zzگ۬{?r'qɚ㺥Ȁ`ˎ9  9`Vzz*@À9DKJ:^& P=P:Z: 0l۶npr;tKxۧk4˳귱MUJ{*k߰zjz J*JA۴:zZ lޠkdHu;[{͊ȩl7 } { [{0 Ꙉڽ^zc(Ѿ銲k۴ A[z KK%[:kl K ̻ްڹ,۲02Oήb=d]f}X{U =ap^)2h]v}x3< lҸLr4(ΆpA}`rz؎ؐڹ*Z֒֕ @,٤]ڦ}gMAO ~plo!z-ua-s=mlsD܆EרmC6 [^\JQ}ȬM-vwma@ ޭ29"M%#V0N:<!L}8gݙm!Ý9T^V>&6܍!s0b0{0d0c0v"dNr@e{d0h 3ކc %S~>nb/${.bFDq..Tc Q ^>~OGpR^^nXNd̢3ʾ'Z+B \Qڍ.ڎ~NNnn>߾n~N?q*/?GhdUcO "&,?&%0.?+(Ю-O/<qP9Xs:OoNT/Q_UVX^`a?[__/hOgcmiql?fwok/u|p/!)6Ե l׍ϻ/O&k/Oo?_o/Oo?8}0_؟ڿ;fߊzi++oٳϠ@!,xp`Å2(a‹)f1Ǎ5Zq$H!UdI&erYʗ3mfKJ.c茔W!_n+ c2׬^OYµxh6hVzi}Y]yj^$_^7e[f9ꭷvk *D7*ϞyKd.Yn{Ekڗީwep}[WtWx+/ ev!Hiѓ2t[wnr2lݓt+:zq# /Wy/gs f}Թީ_*{O8fXj^ydg.~lvG -bPn` ]Bb GA:7DƳme^`? 6@FQSbB_eQCZs2ۥKѣxF4uXOT0@ zP&nUhCPvhE-zQLhG1ӣ:=Gz҈tHJRԥ3J#RoZ'Ι~c=PiԟJEň+aKT,6U[Wsrp%c ͚TsM7q攜+|Μq+|J֛N''c啰̒,_s*:%K;20vv-kd*VZc)v9mA֥ltlo6L{YĎ6jT+/繢LkswX,gi T]іPv:$NHI`>۬fK!Eb)6MJZL^7)PxiBhjtWhVnC[w UBC&ҭ6xI [Ղw.v\^%6ȉŪE3貯8aةjj1,dܫ d8]m`-6Tt} 圎!miQI7Ne2JWЃa6ml;+ΔUj+a8C6cIdzUcVsR>CV|]}@YЧ\խp iZZN ^zg 0cmZbՎ)D-,i\]+]z͆,-/EӘv-o=^ 5ڄJɔ\czÂxӧ8o+ nnNuCȡ}rSNru7!^m*NHEp?[X/0U+m=K8iY_cwR{ @?{:yo۶d3[vM.tXDVư z7ߎ%:O9طn0:? 20/bc ?Ts0ZcҾ; ۧSk@) +laq?4< (!:kQ)qia5|1XJ D`=Pcs[qEQQBeQh1\-E\]$U#QΆR'ZLݪ[/M6ҕԽ=?J6ӳB~4,9S]]=S UG]Ԡhmm9F\˵[LHTK-5UU}ݞ^]4fޓ6]Y-YVijl(=˼QPmt֦J9p<۬Tt]RWMWga M5naMv]uana!aa FaZmY X%&Nb\b""#͡.Z4Z}ףZc(f )5݌)t㬥;Z; >6~(<0E=BDиdHdidd([4[]T#tп- ɕQUU^emWdK b.a.-/ c6fdfb>fV]/f:MU&}]"a] 3 rrTt~55魊v^cj> Hi~QQEuX_i_j9_yN%Ze-&tbhT&h6``hYXhBb`a\WO`v$\Juu5iVWiJWמv}L(\X-j&!>v~Njj]jj^j#榯>($j%iŞn'&뫞ևhYbk&c46c3YlRZQcfKvkk dgl@=H\f;l<\LۤDLDG. dhqmmgmnIO:'fuܮdWլR6QWMeXDZ.[feVmƎ$MRzf(%o*5mm]nf]ަooo֤=.g3=w&x_qIgKZ!Ih!p6hZlvjha斆g6)vohi \ni.?i`͜N͟ >#V%gW)(cبr.cr0s2sY4'4o.7's2s멞VU;iq >*mkLCnY&l&JjIljtlY ol5udlcN>DVnF[KdGsu%vM"e `vvln}\F-lWr v&pd^fO_AnvRNw?yzrAulo+ g7fUxxwxNpxsW_wlpxg8h oKVwh*,_piv?q_'`E!qgzګ>Bhvi}zovOo"׭_$gHXO--W{&s{J{(?(vs&=w6{{{u>׋<?W|>\qODgC@k|t%ѷ/c+4}O}/c{7|!QuEu>}5 d'栺NԆNg~v~,e~Y!m4l~c/L'ERo7(Y.nm/„ 2l!Ĉ'Rh"ƌ C8p PBoPl%̘2gҬ_@'u)΃<ӨPTiϤQN)֬ZfH&\+w!-ܦm]8@Ww I޼~7o‰b]bȆ O[2~rdI1l4ԩ]Z-!k5cFH{vځn V޻xqU3o˜Æ;qRسUË[9z;%wap~#ܯ>Հ`~6` 7!(A'gb@+!0 u؞ٕԉ#&$?'VH!(1Pp5 Y?Z nA&iՓQ6@2iYjхeX]Kn9&ey&ie`6K9'uy'yto' :(_y(:(j(uT]IiSr)fFCb4***ʊht^V'Edꬽ+J{,*lEĆf8uδ:E2 +vKۊ;.Κmz5c)#{./˯0 + ;0oVruw{cwK|2ʴbx+[s;Ks8353A -C}4Ғ4M;OK=5lRܧ[zU{QBd}6v~< ŝt^Ad=ߐց&x v6 da&Dxiv!=2PCN7wn9cw~ S~7]m۽CB%}"UЇx&~APBHS?W Lڏ޽K}ɉ'bςzs+@l#NRǹ$EF:MZ#n"|<;VӁp~_DfvGجb퀏ٽ8#H`㾃 D@sK>"OlHF:>dCt0&;NG!mY#X`9$WC9NNtCGnHYΨ(!$$hCǹ. AnWB$ِшX:xDIL1>̥BhoNK>pj]6uAsf5Idޑl';L\/D]p7@J aRp!YlGe Չr/6;DZ.or4 ϕ .8}"ĘO*x $rPhtCENӇ26jцo<*B<8!sJ!(-J z+: bO? D\'q]G=vCj@5RLCн쫛-/'uDTԾJ> ekc+[i-ns ӗ-p۔6=" rQR.lF ;xe1Ew5άZykf/~D_7V+`0Q,׃,a0X#Ѕ]W|0J*aS a;A͈@`ep%:)zS6>jq-cǡ,ye 4ь3-ّ錱ܿL2U$1u0d2[L5cPi9N)gp!|]u#ޔɸUtByzFȚd0c&|*NF_hXcrrZ}WM;$ԤCp[1FkKD ~ F./ \GJ J r^5Cy.zv1zE~n(W _X2S] EwE(*Nfزy'1r>LƤ+.s~9]q4 z#08{>9u`n8bMXhx.y,8ת8ם!"7@|FoyDwB/+a qBNY;gTӓ-,lgܲ=XϪ/¤h2a@$t~32TZ.ϊ  W ÓQ0֝Gf!r-;ڃb &_+e1;%Rznel?A&P>V?wӏVz } RF y%uXܟ6V ~ DoYJ~ r q`lmi `Ҡ` P MѠ„ . a !j")Da>a!Jz, a^i!a_ " " "">4B"%^Wa%fbH&vp8Y"b)(* +b*,"-b--b.-"..#/"1c11.#,2, c3F34b5B4*5Rc6:5v6j#8fK%Ο{F:c;R<`=#;;#>c>@@#AA&d@"B*$@>?F?NdA6EB$E2$FVFjDrGzdF:dHH^dIIvI+< -D}MENRO$NdMe dPQPP&%SO"S%TNSVTZRFeVRUvVbReSrWzXjYeZX%ZYeYZ[%Y.E%LF``a&`&T-c &cfcBc"fe*&efej&fngv&hNgfhJiF&j^&iifkr&k&lhfifmmn&o&d UMd $LRUT$'sr>gsJEt"sNUHguf'vn'uruv'x~x.v'yzy'tx'zzZgz|'}|}g}ZgxXYqbeFo@JqXirT^f)~)v阂iii隢)雺))i鈝9$.H>ȠF*"&*.HB:ȤB^*bf*nj*jꨢjFjV*ƪʪjauD\)bI*j( NI^&k"*2:k6+FkNf+n+v~+r+Jk^빪kj뺺k+R'# ѽ:$Io+,&lw6 F,@VPfl`vlpdž,Ȗ쌐ɦ,z1ʶ얠Ƭfl\ЬV,m]mK&-F -L|^ꥸE6. ۝4CD-DɝrDwqAv/Pa/D0C QhRw&IY{D7DDݮ=(/)W8|#|wO7&%'S0R7f}rz.t st NToSͱWw`"/y.\3!e(!\VMޏ| Qe232o71w 1՝n8:9G4]y_s0yW`Eq.yt'֔ _)ƍbݠ;WCIŝC⽿|̳m|͋|ˋ||Iϣm?`'/=7?=GO=WЋ;Џu=؇؏=ٗ/|֟ۿ=ǽ܋=}i=WRٽI}>~=wY>7>#~#;>WC~[>wc~ {>闾~>w>>ڬ~>AXWܧo>A~>!@@?_[w[?;P{APG:{={=Kw}%wAqʽ? SaB}Tp!D{$tXq wa dH#I4yeJ+YtfL3iִygN;y9=~Ё /q*!E1JZԩX'gXcɖ5{mZkٲ :ѤK!^ZnUbP+W RhoQ[ŋ7vrdɎ$(RL/^‚%mP02ށki׶}wnݺxYfK &ΗQ ÜtCo.G`.nɗ7|ߙv~| ~۪^\Ab* -5ܐ=\M41U\],)5`#q̑} "<$\&|(*,ܒ.qoq.<4\6|8̂2Cԓ>@B =G( 8(O>J-L5/.RM=TU]V]}Xe*FTzuסx`b=d]f}hjlݖn[;1Z=t]v}2rɈ|ݗ~5ΨN~%-5ޘ=EM>U^CMJz &Cnuޙ}蠅]~` C 駥ꪭ묵ޚ뮽>^~ F-!`N ?_%-5ߜ=E|T@o]em/nQW`2x?_襟ꭿߞ)8?V}H域ߟ X@ T@>>)  C9A~!IXB)T YB1 iXC9yC^ H$6C#ITD'>QqD Q{E/~aXF3iTF7qXG;yLd YHCT"HGBHK^&9IO~Vd$'LdT*YJW,iYK[.yK_0YLc,)pJ,є4YMk^6Mo~8YNsT:Nw͔"O{>O@)O" {8BP>D)ZQ^F9Q~!HIZR)U)HЕ1LiZS9NyJEAPZTIUR/2QTZU^USU~aXЭiUZVfo\ZW5[^W` [XUbX>d)[Y^f9Y 6mh:ZӞUjYZ׾li[[ny[p[\ⶴUr\>ѕt[]^[v]~ow[^Uz^|[_jh > \` V`?)\a _0A$(!I\b)VYb1if ycA\ Y’d'?Q\e+_Ye/[=03iW>p:q\g;yg?Ё!,G!솰.!t?k3"\QP A=:|oNRSW V"$D͛8s$tϟ@ SѣHS"ZʴӧJXjMʵׯ2͚٧hӂ] vV#*1hJ,_Y +6UCpG0ᣂ`$cWmAM",Qb Nm0IKb(ddW&IA/')yxҝȓ$ʼPп,ծc_ν{CٻZJ<"+譶?J{6D珡-mۢߠA8 ~6%b9VP Ʌ+1f.!A5d^fl!F zX]):5܋v'?7T遧XڥwT5R7D5?L"OMAиAHJX}e@1$#AG%5$ Ely!X%tQfW,*0Iݐ8"ZF1JjQsjЈEtFz@gרfA~bX^"UJkJHgU6byH1+c!t[j$*FdhGշFݶ`ʅCkkNZA[j1ojPRj?ήY{3A8aaCfAAD9ˢ +U*asrnb+@?H W,˄\~_F_}XssCm!+T)_%AET]hSגa3AhTP^}!5B%\]X1¿?O& Wev2~}9+ bxpT[|<0! AN/v@jV[ZQ+Me?Ē&Ar!ćr"A0Fp$"HK#I9| sSSNli"1c G?\qC$;D&x|)MIʊZt)5%*aT zF8h^,H ;.^Ag/|B#I@0M܃W3ELk֌Ѧ(H|s @ QEB [h(K !V3p*x5E׾fd/G҂!RI'm*9&O]Tzq2c3$ 1Vִj56 &ک N6%g@cl髅,HV2vI,AP!sGQ2.ZE`9*X9lC`̶D(˿f:3gM/ 7yL:TL2U M`Z3;}Uf]q%fOa8n4 Uv׻ӈW08αwc׸@L"K:&;Ɉ1L*[x5‘.{`27pl9aNfc-o6 d6xs_|4+5hֳMB`%H2/ ?A R-2c >ȡ  Hu VͣN 3t &  R/cZ?`y xA `jTζ,dѸ&Hj^CL00:#5O]T@ηx7$i_HU`%h$ޥ7Aoy%tƹq~{ ADnk{O6QPAo{~F8~7<'_&ZWr3W-`]9ߕwR_??vŞ|we((1{W{F~H=g{{w!|~"oHq#x(-V秂.0B,(}a1:<6Է@B}P~&8JL{`H؂ A7&9ׅ ?gXx$ ]>3 2Mx9q /qq Ȁ o0! @- @@ H ( 9Ax [q (%:p衉 FAcjXuq (x] XF  Ќ`x n0%э 8bzVi*XPHSY([p!X!hY[GA1 y1 (*|P } Ȱ,N,’ze-Y^/)~ @0Y7Y^C{ps:LٔB?)VT2/ MEC=Nye^XaiKSY)MՖa>)3qSk={p ei٘9Yy L)](V Vh 6)9IyG x ]țyu`F w7d xɰ 隡ٝiШ$iC!ٝ)ع h5řGRhI0o>ZI yȟԹ0H`wx K0I z 6tÀ I٢GZHZ)*4 yQz ȅ͸ ^Ɇ0 J i0ɠݨ`Y6ZХ) !*pZ'ʦtyd !+jjKJ)ZyxshAmߧ*d*Ma6iD:uj ڠv(Xe Xso SԸ'aL~GydZțbm(k*JX/qIB zz[*dJ *&M*R| {*R(J_ﰱzhp'80%1 x*{*KP,K[C: K<; >@*Z(Tjߐʣ[ڬX+VCMM89v k4A#ƧVjdJs۰~pT[w+!|\Ak/оS*}*k\!|dF $#~a4\GESQط<'zI^*$<Ç+AAy!̹4|^ ޛ+q!`VܾDF^,{ðNT<qgL[,_#ɺL+mFmQolr鸸o|J=<}`m*f&iB0 ǐ\ʃoz}C"Wl)Ȟiʸὁ0NɗvٔRigC,uX"̈K.a ି@L <ʀ,̒,|;ȭ=]} =]} =tD{@rs)=,r`'' ss0s 1+}dd`=:-hrpUPR=T]V}XZ\^`b=d]f}hjlnpmՃ9c8c @{]rx}0x-7y8b {@h@؃l|𻚽ٜٞ٠ڢ=ڤ]ڦ}ڨڪڬڮڰWNm8O<ʼK\EMܻ]ܺm;-?=ύ-֭}"Mۍ}8 C.;nsDG^LNHnQMU.WNO[VJbcd~fakSprqNG\zz2S^~芾>锾x^'$М>N^~n뭎N>긾®NƞȾ첮^> *Ǭv [JN .N>^~ ?/_Oo#%$y`+fE|Z9/=?/AߡCoEDIJL@/K?V_XWY^`bO\__?[dikm]s/fOwolH]1c3oX\J /Oߦ/o?/Ooɏ?Q}\Lz-SxZzd⎳ 6ڬO/O%$ A&\x Ç"ʼn -f#D!AHrɏ%U\K1=XSdKŚOAtP$eiS1Lէ>A$еCB{%[Yiծe[qm٢@]ڶަ!ojTMU+W[e̙5o3g26Ǵh[-p랰'^D=*&ä9j뇯/gsѥO e^}(ҵľşoQ`I2ϧ_} "~0;(4 4HBП +pC3ʨ=0<]KG1 6Cd2+ljx' G"43-Yk( j\2/' H4L2TsʹLK&M60*dO@tPd':J./Ң*|FRL3մ)C7/܂CMRaSTSUu";euDT._V\sU]5YO˄'cJ֟eEىhTyv`k[pwܴtJ\K:[]mbu޷%wі9t".=S؆zXYx@nc;cCydK6d?-U؋[veUϘkf뛙R?sgfThVXi^izgt{jj0,,i6gY0m^v{6Z>} +^xo{+)fv};5n߲`$+ي!ʘ18[Aih?'|y&=ݠ3t˽nNOw znjڞpNj%FVj}'ڂW}(~z{zutOىP`.gQHPwe@ۃA8. LH)؏/^SR'e]Ųu)y`Ҹ$C@*'0 e z$BD_!81!| Ń#6/lI0,AQtsĺ؝eer:y1cB rPa>#߲DZP6iSHO(sdg6No>Sʴ|r,^DZ II~a =3eH.u )"ƅiA)ɖ9 J+iL:%ZgM]b&K񎗔q&$OuBVt&,u\_ټ;ΌQ heN/.40rPDHC>I.~^Tk:@6~TUuN\!6҉'2 Lbt4MI@^Pg+>n DP,5!RT'ԡfGE;uDKkq0jrHy"BxgǥjwUWU?Nu%{c]P* becKǞ8,%[[X]Y-a]ұKCj[ %@f˔-&mZF'=Z\|u\\\w(e37\]W4 YB[{\jYėʦdɯ?+ %>kK] πF9uN~ծjId*o"ӑY(tkPBa."Hlc X:Wӂ-41!bdɼqU~ء9_ 2+Q[*1d:f.93<2Yd\opVsS{g@WV}hD͌3thHGrxfxd3Y:h6s8xk NF=R->uZX=Wߴ9&t*['׷CU-vRV[iQTg[͵N`[V紵~6.s]7lx}nl7Rod;3Vy9Eq >|f#s-IiM7ٽxv3vO!+Ok<+-1oJç).Ï }w<) [~֜Gg҇ۖSO:ͦ򽷽[z׹]*$oع`;jO;kjw-ozBwٵZ^yenI|B~ڟn=1ozΏ>/|8VbS|P}oI~ߔ7-~[/bc ՗e? drMeG/h7%C \0SLÏC44ó3f3W@\@ D @Š9@@k Y0lxx4LA<;K+K X{"l#l$L%񵱐§i¦ag36.\6'4A!`J*bajY }k7~7{C~K < ß2#h4{,[80Ț! GDDH\ K,ėA2+IJst UdE[ŦhX|EOCP:ę.Ŭ ,E2;.^E]ĵ4 gA j;Fkħqqx H[8ܓ 8ďc>hHH{l Swy:{264n"ATcDTD(̙FfH ! IJ<ʤI\ʋT4݁Jtԧ:s4AMʤHNt$<˗JKXSGhBpKY[KJB5˟BBgS.D -dL=̷ßCz̠̥L̟!Db9DU3S{Ms9͓M͛MM Q,EͰEߢ:YD:ΦcΟ \F]F/,HdĔnLOm\O;l;;j4|O͜G"0fp< AǠGGE=z {tmǞhΘ1!;MscLH˨؋G<чLQȵpщQOlHlL8L *?-+!2 $}<& CܼM)Р .ҹR1-H#S3MSACS TS@C8ՌHSQ EUž@ўYٜQ+;ZDZFdUڔ#!(?ZZKҟxҤXҖʢ8TŚ-[S5][ը}[Rŏ6M%:M=m%< ܺ۲ [Ԅ(T\22WܠTHTEI= %ڰU M+$-fn&b">bt^o.g#%t_ݷ`CxI3W{ɣsc8^_1~~25.m_Xݬ͇eSTvת;F`hhvֻM[n3d#X}}iiJCF5Pf6A jfa=xea frgr狁j$ )~ Y63/Hj|n?~^k5-&Vg7~cNVꦐh.p J^l1kfl~Ȯl?F OĝITU/SY\6mA3rm&|jܮnpmZ)߶3Im}nAn}Цn3Nm eb%vj6~F(hk>nFmooƖopOlO0pmpn ZF8w vX{О0 +oH*xIC H#5d_NtX _7rqCJ7 #ar!;'$d̽(+O߄b*!nUhs\C#/;O*8@6Go34G8+(K3.5w)^M#Gdt100b/IHA B.{6Iu [V]q^w7prP:㉯µP!Tv<+lXvy HV9gqlcv:Z:vd fSR_{g ? {Q&?0bWd`xvψ?0z?,}:B5)TuR)"Nh X`ߤjjC2(*:yڝw|20Hߋmf?ANr Tثڱvjtk]h* I+daw㘹ث^@kZ" lL|0 +0L0K<S|1k<{1!ձm'Z$KY 35[岔l;L8=4Ek,4*,J+m4Q_\+㪊Zk-5a;Db-6i %r))=)u6kڽ7}z*;ʹ߉ قs5 C╯g[9]vz>:K覫:>{ýqʴ;{3><ٮ:<xKz?XþN~}[S=݁>>7޸?9]o{@[Z f Qc rH`<( #! S . _(bd}rۆpX!wB<"h$2qNXD)*M 4E-VWbF,qf#.m F9p,=W:  H`,$gE2| )IH2t%3YMb'5Qғ,%)OI\%(aJY-SW%wb1y ek0b3i&"Lgˆñ?YhbS&8m<7͙Ntf:NxSd7)|'=Oⓠ4>*Ђ =(=[Լb3"@nT ݏG;%~ %(HGғt$}KcjRT()NoӖ攧;UiOS էF-*RTG]MԤNAjSJUbU+m2'jÔh2Bdj[يָҵp\W⵮s+`*X5`ػ.vE,dJc3[Xj,fAƊ iG;YJ8(JVѣG,6Ko n;\2WurRӵr[]bWٽ.w ~=otӻ]wUow+|ٛ_޷laa сbE*8X0 `?n0/\ [p=bOx&.11|bx+vq5,cǘ,1qr(w r824c`[re.Ye3f4yg~9Yus: #zNH8=%zlMacn;Ac昰 !NRX$* \h0-3,5B澘'~v$d_ۻ6g3_Aΐt7]u(\ɰ;le"yNTk ~t WO(}#75BbZ"LG-;n׶JԿJVAa/o2s7i;_ݻ\ª}D64§E}~0= mMl&⼃d S _!%H؝ Ȉ%6_f$ r^[Q_[ ^ sPp̠^=k!~$ hLs^[v`xQ} "0JAd C\̡T́H d*f`EF6aDefJhZ52fYIb(Ƥ&if f&ml&nRi*D|&AfOXdngC ݪ4dD8jLt*q."r6\U^aM,7PDF^(ά[|'Ub$2_n rJ9+NdvH*aI%bE&dh5hQ&ޛ| o4q\a"膶5rb_$"ph܋1~3&[rFㆺVq\ďf A. 4_FoTi&ݦyb>Ț&gfN[2Ė&n#IJ&x!sn0O%$=")ҩLVe*Jc6\*20%(YCLF^phiޛXBadm S*bvjɡ+k&+ 6w0F+m@V`Pf+}vw`kq뵒iV?+o+Rœ+y֫JŽV+Db\lT l®P.,6LlVlM Y&~lK`,ρ,PflɦD,ة2BlAlc, v@ ll ?- -"."S6m2N.IVRnzEvrKv+~s-P y>{33S563AA4B'B/4C7C?4DG4;K4kEAHFo4GwG4HHHSEI4KK4LǴL4M״M4NN4OO4PP5QQ5R'O[4Scd(5TGTO5UWU_5VgVo5WwuREc`xY5ZZ5[[5\S45S75L5__5``6aa6b'b/6c7c?6dGdO6eWe_6fgfo6g'Xxng6ii6jj6kk6lwg@Fl6nn6oo6p_l6q'r/7s7s?7tGtO7uWu_7vgvo7www7xx7yy7zz?ܵqS,6}׷}7~~7788'/87?8GO88|_|Wo8w88x_{/8Ǹ8׸x}cx츏899'/97?9GO9W_9go9_y#x9999׹9繞9'y9::?$y7?:GO:$0zgo:w:C::z::Ǻ:׺:纮::;;'/;7?;z$AW_;go;w;o;;;{7xC;绾ӻ7{<<''/>7?>GO>W_>go>w>臾C?d;ꧾ! ,Q#~!/q?E"P% $#C^DУ˗&!t SfI`M%OxXJׯ`~JٳhӪ%۷\ɝKwڻx˷_u0iocN3;&K'7˦ S'!iFsK.i0|ݲ#AN>ZП B<*];5dS NB:bM̽;^Å 콼轏'<9Ig󐥼On[涵Ԉ MuJPPɤZB)Ej3Fa tTf!mZgbi@𵘖{ٴ{.hxXa0w"CT^ĜMm5p7:MH[%Pv]JMxAR.avdK8FanYSh"|+ x:衈&V]<_Fd} D֐h45iӓ"4Wd]硜m%R U**mg ہYzb}j^$ad-JW>,-wrelyMr4"Si+*,/aU(r'@Ŋe׶,NHe1/08-ϒgO*lIU;z ͒?`bΫÛD%.y23qJ*#KsI hkxC?G!.FH0:,sF^20Xi2Y\fmq#6qW8ESkl!!l~ع&kh0}{?UoN[m~Y~fM2LWIR>)pB!]TB28\fYSN/J #.0/D&CIqh$ aǴT#@tXM7" VL'l4;)r% ܓ)mM,4#͊Z镾0/,K?۹Kx)BҳD&,%*9{2Ch?sǗ$H :D0aCde I[ղg]Ӛ&ƮiYoEص&}kYzٯ>c a3{ڼƵ]mm7mMkWm^;=hC̾W=u>6=n|\&»n{7|o{&wjO\ős-g^8ē\s=81AJN9Gs8n#;'HϷ }8zֹ?=_׫Ng_bpezұv'ݡ`םx'o=5<Ot«m_y[}xEn|R`{ɾ{OOz^wY/|FGk|7_t>U\||3>_쵏x>yzG}G|yvۧ||8>0W^$0N IZ 4xقx`u.4!^!%4'K"D%2&H ߰f 6!~#(.*ÁÂ$4za1؂J688::8UWx(a(|[_Z=T^X92؆qZ]h6wj6 xtɀ&43w/P% x.P !UrЃ!k[16?"Wi! A4wTuݕDdȰ'(N8]x-([[61f&Ψ+@qXf"MZ&xXxHh8x#s{)$p 41w80TmbGH'1  H@yȐhe c ёHؑX؈'Qhiy 9h\^:U3 .J b4Yy 1IQ&[1 àxA 'IUI knID'qiwMi^qY4y Y4qg3^ ȗ{=IiP6ibY EƏ36 i鐐ij!I}0%yiyD(I2<0"IIg=Hc)Ec4 o 5X8Y2 xc ِfᕧəFIڡ AzI٠yQX)9X 6_eahS6} D%tu3YH8N%D|e`6Qe7:N9ViBGХ^jEWK"|PAcdϥv녗DZmUq~LgJI+skJ/w|qRgTکzt:*U~'Q:JaRRzSڪZU8jZ4\66ʪi!gMKg\K:ֺY#ǚVZndҤdʯ[GJh4m|;6*I86؈؎ؐ}-ُMّٕٗMٛ ڝMڡmڣ]ڪ}ګڬڮۖ=ۜMۢmۭۨ۰ۗ Yz2Z6Q}ʭ̍ ϝMmm۝}ڝ-M=؝]-M}]P I >^ސ  ^N. "#%$&(.0^1~2^4~ n9' *s+=YF.HNGIMKL>R^PWN[nY_.aeh>fjgprst~vd{fX8,}pc{c~:I3'#J蕾~ꦞ꨾꣮>.~뽮>..'TMҎ{XH6>xy""Nb@BNV}מ=X^}MZWB=9U/h%W!5^\*B^^YWue o$$,׸]ۂq8-D恝(jA}"_BcˆN!ONX(UK_\?bpa/d)ftoruy?n#w6ql_i΃UIV":?z!{a_#opV/z#z!a?s4oi?Ojige?U_h?V&6RjٹДOٿ/M6 agYe"~вߘ_(H _)E?[ $XA .dC%NXE rCF!s%I{PTHҠK1e|(M9uYGPTbph1/KӛH{ep*ȫ=#.5J@ȡهE[q"鯣NH['栍 i!NLDd:.H>cQj9炆9g|W& gRZwf^fw.W:#-ޓi:{ZjV!5c7z[ ny2xQWn= 7\3#o &qa9*q RFa%/ o\b2H[wݭ_}vk+va=ww7x!>yw^"y꫷vKDKaozfE?ZnC7^_~^~5*{O `Bg!%ҢCwyn}.$9Ixp:Lg$FcđltSNdbE`%Z\ =g 'ED"y`]d]CY f\*'ѣLG #M8NdgK# ȮPd(C HaRI"$CH)S$H3* ٤zo|#ǰ!l;Hvٝ^.䗍 &F9LSk42_CE}4'5퇅i0$Jʉs{fb{keIs5 "t#V𘴂.deBCP8T}h#!NDhG_ΏC?\ER4YJ]R>1iMk:Si\Os1-ٞK5PfSPZCF$L N< F CҺ BpY>5RZJ1O 9>İDZmDu%x^UP5a9~H0v&]gG+YPR˗i#Jj۞$|$j&tqL^enr\WIr%J $ٮoiڐvollG]2%ʤ{׫^׻ZP& /BžV$(՛CB`x>̖!i atV?E8H:~!C>(fq T"2vqkcX}dT|TGm'd(TԨ,UՕ~\?0# _('V &qsV:9#pWfy~l5¡E-bhF˱awdi@D2ی6VB>2ԙɦZ7m05[V׸-ukqu. ]d+D+M\h3Ǔu3l" agC,- 2̈́$ÍqώEulsYnaS W'9K#|IeYpq$d?cbzrI%;9\e9AArܒ2xşSs<.[Gj/A'ze2t']EYmR_T|{srq~u\%t~1?v3!c'wɂrվ$3Fg#nW=3C{?#g"{k5zq=w4_43KMoc$ پE}u'z'^H/OoC+cJ#@@@<[@28  <=@c981eBr9{sA AA{AA@A@=!:@B ČLxB8麑S*\BiB["; /;;!åBCkP4;B,D3ƒ;<=>D&D[q;C3=ąE<˼D= P@ $ S ˈU /4XVLE _l`EBT;r>{eh6kĮlmܶn ):E͠?_?aBGQDžaG0GcY2=0X E7{T|tD4FtH|E2ȉ8CIdEEjŒӺRډQHSDŇ4HH,A4*[$G2- ql8ITI)0əJY){JzD%LI) ˺kBJJW ×٬3C7;Cɶ䟷K9TJ<Ư@f;J8Kd~\āLǹąGSR@TSB=Tf1TD]TWQTQFQITpԓQs9P5D͹"Q'*4X3%:ՄwZeL)MR U\Xp P rIajdXyUX]b<x[-\}] TqU`U.PXMe[юd`d=$'r k}w |MmEnoup'v]4WId`t0cWSV8 &؅]+wؕW XMȂU5axX-{g5QLΆ@->g=RJTYtoc1Q]8~cIN mUMY-Y5Ms-:YUVeuY} ,eM\!!-`!U9uNZ H` T`2 Aa%39Q~qc?Q}a1Ba õ-Eָ,*Yo8^r+Sb&; 1ӰtVA]:!csA`phkc׹)&rPc2f~h)haqhhhhdhgEfQ捎fߑ>ˌ`IaiFǗ.MfdiBdjiY"j&駎jh>+F謦~jhޗV.kV9k}Hkvk|kWqik~kglI&ck~l`ʮl l̶`l.V~Ծ;ՖՖK֎m؞׮m׾mmmmn.nٶ¥R¤+Ì}3nnn&L~nno^F~&fonSl4MooL7L_poNgw>p p p  pcgl4Нɥ]qoq;P/PqGqr?!Gr#X̵dN-1*rr,)*r-+r1s2-2r5Gs367Os6_3s7rX[nf O?ls@AB tE'DgtAotCtDtJ_HtGICtItLtNtR#q:kdsw{u^zXuwu[u\'&YVu]_`uW^c7b'v_OvfGeviwivjvTVr!7$von"'7w"?r_wuotwngwxwtwwq6w \Ax/x~wWxgA_x7xxxxK 6nByñTWylyΞyOyay_z^?Mz^o}zWZK?j_误ɰ豏Բ7޴_i{:OC^xYgRjuV>W\z_\X]L݊8Mƅ O|X| K[Xx =GeLfu)]}Ej%e sp>K{`Q}0cW҇{boȨt Mʉ%WPhV7Gu':^q{~N[ &&K,h „ 2l!Ĉ'Rh"ƌ7rp ?4\TФI0 ddt0e˃d2vgXq 4y)A\lHmrNLcά2T]&@d)̧ҭk.޼z ҟH$U( 2.07#Pa:&_B=c og1tزgӮm6 ՂH n Ƙ1nlCD]Z;GX*ߝw==qaN1CVf1Pw\D"!d[ ZAGA,&@IGր%I]}18#5H}5AVvᆮ)d %S3PQ07PS d$d!IQha&YtEU6OKby'}Fco1h~z(*(Jo-ˋNUQr)jУEzf*ʪg:++W뭾 ;,{,!Gc:,: ,Diwp]d>AJ;.[YWR"vB{/ꫛ:e%A$ v)V qbp?X{:?N0md[IXNɸpyfƕA&oS/3A'rC$DZ:-B;ͯ"$gYk{AZZ&rb piO=2cȵ5q˭צ& DE=AT'$s~8mC[-!:taŒgR~?ɊY8ǽx &v]/‡mMns_hۙ7As5+4_>?>???ġ_Z #HfY FAf$-Z SBd_+|! wư6\ QxQ9[(>qC<"gT%N()&T"b,r"ܴ1 d<# b0ZE8ʱRD<걏=YC@ *$!A3W{pH#'+M "gHItQ'dCPYMj BT9TAt$)s/1Yӕ28e҆d-āD ÄQFm qfAIq&%7'/@93p䜷T'>0ӈ gT.^H+—z^yӝc>)P*ԡF=*Rԥ2N}*T*թRV*Vխr^jLsSf=+ZӪֵn}+\*׹J)Y׽~+`+ F 3򔰎},d#+R=@ 5΂H>0 !umk_+Ҷ-ns򶷾-p+=.r2}.t+]`i[03~0#, S03 s >o}x&>1S.~1c,cՀ.PcF>2%3N~2,)SV2-s^2,1KYB5n~3,9ӹv3lf4~>9І>4E3ю~4#-ISҖ43MsӞ4C-QԦ>=聨ծ~5c-YӺֶ5s]׾5-a>6e~6-iS־6msC-q>7ӭuf7-yӻ7}|7.&835%S8ƹm g8C. o|&?9Sy|.9c.sco69s>9Ѓ.F?:ғ3N:ԣ.SV:ֳ^LR^:.f?;Ӯl;.ӽv;nt;/}'3~o</S~򖃯/Sֿ>s>/_B.|B꛷>$4 !, 9/oQ pɄ 28i1&'cOATŏ?h3ߡA'!,1"f$İa02I$LjȱǏ CIɓ(S\Q˗0cʜI͛7-ɳOK J4H"dI%H4QeҨ*QՄ5j_NRMͤQJM6vn\rzꔒҿdJuXVjRK>ŁF{9ib QQZ,(K:eڗE'۸sdɛcFLc /)Z$⯷=VdIOK{^~"`UZX2f9%~qEXWGmu| dqYDi☀*Xja4B /c,4J*l!%5rDDP9yDiSx,%AFpPxH$2ȕX"`)ddh$>DI"!S5( $rNUK fIZ!TZeUU TWsw=PcmD8V&}/4R#l! /DZ lFyRcQO&G$D+pDzf܎*ZoT&pJ_Oi q:(YISBʠ'Ug"5|TYBo )o"&u.MHG/X#-F$;eø=+nݒDE1F}H^$D^Diw57͐"aGȗN4M(r0Y.ljI#{N})S N4v\v77SzmIXh H_C*7M%D(E#ЅM@IJOZɎ.,ְTH8lx4"h@E tEX4e#- }CCsuI**F kwVwRBqCRb6u'v`Ԧ]wR 1QP/_؀"?U곟$>1$A (j ^;j#\&I( HDC ?pa XD,laT#IXhD"4` 0# r2dhxa{$ Cx@P&PTڋ&1yH]Gda aC&BQ}/AK4#G3$<. bI`a Ad"ٽ@a(3j1LDü *iAI0g!Mb:P""NfZxHFđ؜I$zHG +eMZFM|"sH{{h"-|@|`qO$$SlHM>ãFj C>`f)Fh\?aȃ!)69EQhU<6 JB7u{vEP%]8@H¨hC"W ɔFr-Sѫ Ŵ$-6[O X>IT3޳) weawB"&AX1GHpu|w^6+JZx \p";1ysTXQrO?d|t fzC!kNxN`#JpDF %=;V偭XKVkh-ۆt*$tTԐ.\%vyYeHG!G+Z "ܢv!= bcJѹĜڣv4,* ν.?iQ%'Lwd4H8U"Qhr͸n8k%v{Z:voWvKG: }{w 񐏼'O[ϼ7{G01 cc00 w=&vw311KyϽqo~06@ #?_ݻ"foL{1 }80f2lW>`oWȞېxt~tx{G Ȁx XyHxOGz؁ "tW&x(*,؂.#hx6x8:2xv>@^׀HJL؄&h3(QȃVxXZ(yUׅb8dXfDjl؆n2ygxxzzr8\x~y^}aЈ%G䷇)X g8wG8X`,xxh^$},ȋ`$`)w8Pg3d8KxؘڈwyLXPP`0X(K~`~@&p)&@,@ i&ُL"!Y&y(*,ْ.0294Y6y8:;I<1.Yُ討} PpS282) a9eydi8pGivّ0HBI9Yy0 Di@KDPa`a@dI`/@8T),rXap{0[0YٜaY8M`J,Pw8IM|Yd y9Yɓy2(ILǏ YN98J`){;[@^0pE/ y99y,b,0{(14 )@ < HMpzIPLiwHyْMSVzXZz)٥&[ P:O xhVS00 ,Xp~ `eZ``X``TYE`PࠜZ9p >)djS@+G߰KZ7`Z^:Z*]ګL0 €i IJp:)j^z: P&a@ ސ ~a&` ^0*3X`UI)E&|?*0 nz B/pẙƚ*,+:/ F@j0 K 0Ȱp,PШ  z #H*) piibKJ9jQk`x(Pب[8^ ۳Kx,O*hUJZ&ۺ듯۲[11 xdp 0 pp M *sР80)DV@TY#yi#jщ~@&hh Jd0ؼ 8й ppP I: P[-*[X * t;ĦkwIL$#Ĺ{T\VS1xI[Тe ڰDà#0,0#X#+ @0i[0a0&>b j20  K$\ \P ea1[tF@Ig,xIJKkL\լQz:PϚ :` < 0LB۸ y~l@ , \Ȁ Ð9  }/=KKT ҁṕp|; Ѷ{GEO ,MY۹}B5`P5[ ֋ nJiZ0'~|* k؝ڠ K̠MHDL$~>| y=ݱT ߚ1N( l`D0ΦK l=⥝@|d'vtuw.վRAlBMۮ#B|LS>>|>z騍Ēꊞ貾ꨎꔎk뵾}~`FA^~^_l>n>^vcvN ސ_qm>NN_>k`{ _&(Ϩ˱./(Q'f3e7Yv"4:BE[;?>WA6v5TOidK+{*QғIUD(ȫDB)uW6ܶhُd͢e[_}[W6F[@8(K%8_uFyre̒3oٳ˟EWOlBWv^ j7W ]Zw!h;%n@CN\0E& :@o)UsFl cϧ_}=٪kW"5#[oͷ &„&Abam'WI̾͟Kγ",⃯?sqG{G'EQoěo:kB2$drfF3 !̯4  $*jo,/ ,  >dt)M)RC3S?- > tE'SAxaQg&`x&fmeU@yivizjjz#k{l&f!k3ZD/pqhm@vY[B!W^zBf.fd߉E)xAd11||0u*25пo\M6R_O_QoxA=z'}El79^tVxL,W~}w}~~ݭ@^#X$Cc V@ن` ^#M q 0a,7tChx d ڃxh=>gJG4uj.t\G=W沆4Y`gLot;"sLQӤf5yMlf}}M,LW?A" @q2/xI>>Ѿ$ /c0Hô׹,?<2BH4[!B1c,( @k 佩7[7{A7|C8<5K++A*k+5L?BD;AS?k,6DQ[B3˴E dsB6Q0ד=ܓY$C{?!C6C_E`,"7çC!DF[6&X>FmE` !1=EscBO3%!q3ԓvs<=h=yA+ FlHwH&=AI *F? IaI[0Y[s??ق6Nlwܿɗ"B07Mvct37t7l7r37;n[^|HJw Hfʻ)=2Ĩ!I4DFy X0k s?HMR% FQ'}Ҩ e,%R,RkR(R/)R1S2E5.R40-S6mS7esəك>>Ft2?&SS:Tll2;? ?%V!U<=V4VMClVmVnVoVp WqWr-Ws=WtMWu]WvmWw}WxWne3yWzZV}W~WW !Y-X=XMX]XmϠ*9qSؿ扐X؋՜YXMًؒ}YEY}YYYmYY ٛ ZړY-ڣ٤Y%ZuڋY]کڪmڦZڭ-ڗU [[OWnՇ@pf=GUUa[=x[۾ۇ[[\5ܻ[}U\\[E\\Mܺ}ɥ[m̭\U\-\u\ܻ\[M]=E5]\]u]\ڥ\ԝ]]U]]-m\x8Jc^<_ (=_"_}_u_e_5߁_M__i_~d R݃K^`MF`f ~` n` aa>aNaFVna ~aaaafav ֨>"a%Fb Vb#.M6b`,b..b0_ C)D뛵L4f5&67Vc5:4cNdF^dGFGcIdJ@dLFINdKPMVQ6RdQN>ihyeXeYe`qb)eRؘ!]^_`b]fcNcVfdfffhfbjegfnnfogpgg.f>gkgsNgrFgm^wvoyguvfgzg}.;{Sem:hBDRЪNh~hnh6舦苶hhhhhF镮h~iiiiNi!.5%نX1Bj>^v6^jjj꯾k&kjFkNVvnkfk^k~빾븮kklkl.6l^l~mV1[Ʃawll~&&ƍFNmmm6ئV~vmnmm޶mnNn^n~nn-&*.6oQfoqo~op/?popppp p 'p 7 _w79)lTqo1+qr̶qq6g*q!r" /r$Or%#_1ʣ'\(G)_r,riۆ+#/01?/r4Ose?` l=סssVs=&sAtB#[BOtE_9t>ctHtIՑGtLtAw=z,ҝP|`QSgS/uQguR_uX?1TwuWuMuTu`vtOKi:RvbvAvqvaeK7v޲Kvvv\!82wkOwstuowwwSvwy+s@w|w eps8wr/xC?x_KxMO-JxxqC)t硍xW*je*yf/9Cyd/h)9*/ؙew_GvЁ"ڃC7Q&yy`"RԱyz_#!y s9#рAI+H3KySwp|}yL7Ù"y`|q@1\~Q_y:BzG5'}1ӗ#+7/*OΫ#}ҟA{:s {͛ /~|,PD) ͿlرIza~92~1E-*h ‚IPÈ'.*RbD6ѠƏ"= 1ȏJ.lGebܧϥGLDRPFD`aKASE?+q…WX4| oJ1X5%b*̇)WP^uA{U.2K؟+.qܽfNXu!E-\IauU]17)l[-6Ie&Y6|= %b%Bn 5FD^8U[?u\VNTۅ9g@ ""Oj>cu0A-ɱUv'Z Qh|&ρ3fOg ֯haֶ7ަ}ImZ4HPӞ\1sg29.ޛc3+WĮG4zQ^Њ:$m[XE#uAl|Ԉ%kn_֪ene[O,VrO_AO{{?ėH2uG=nl&M- ZWƔkd(a@UI"܈.}a Pb9S A!yfҷ 0j%LA; Sxn1{䓝YD2$z“pȡ"l#tF?"okbӺ4="N|qq` >&Pb(3#Ҕ\b%ؾTʰ~kJ| }fjNK.#>,I=P)t$MBf_l|R*PtMYB$4#nT AeC(d0#ijSFs&ɩ/S\"r(GCQt*6AěDH B KO)٨=`hJbt5 ʘ18?meҘU$:T?i nsC+i x5:imRN-ܪb%tTRZzӒI_*Z6MS^6Bq| ]ճ.$lb]ToL*@*$rQA)=$>y`rz:$i\Jfa}nN&` h^TK U'&,ג81BX!S.c1e;2@e" fA=?%p8DPvuYf_ BJ_67e+M~&7!>8"-ԇ5$B7"~ݜie!d E3ю(X-ISҖ43Ms4C-jwԦ>5SUՔc|a YDw׎N3mM-\ Ճ5ee3N5jW0jo`dۖƶ` D涴ӭuh$wk jwa$c᷿oJ{ =37 2p8ȡ oJ">R?אַe1 d,"jytr!/gF~szϊ^!:ֳuIG0YpE*6"!숫 zD^8ړ ﱖOHY'4 2nwԅ41yLl' AL4|;?򴷼E}/;}Ft$yA(kvm#vA|\nwaHE?/_ rҷ^2Tϳ4=Lu[EKC=\A8 A|E e á6Zz`MI  Z߰HYL>dP|4]4h}IxF(!)\!AIZ A0a `K BK 9ޙaZaq,B!!i1QL]H8ԦeE0":"HN"% v\NӤMwb%"**2%&b@Vqb*j!bBTWBD\"00#\ٚɜQNdKw"WLD1f6n%]DlC SDEQ 7#;H@c"N8FLDF\ d[[!)dCY19Q$FBdE Ec|yH˘"dU[-K.L~L$$LzGdNOGH [ .AVE=S:-IdRI\-ZWDXXMW~Y~eYX"eQ%OMm!Y7UJ]\^\Kd\Ued^feVEg\Nri"iR\Q_ƽf}mD>kF`l"i\q.]ۍDrq*Zsr"qFgaT'vNj[kwQ]]yygx"{'yHxz^)rG,(̍8e@>Jv夹gDf N(mf:@mߺ(Q(_Y)ďn )2醦[w2| fP0XD 8D\``f6˙)`"aeQ ZƁB"iiHi** ꡎ`*jJi]DĤ>^N|U*U6 \Ubj"&.$ڬ>[*hpHjjrR\LAB1SHA\@r5@ \`Hl SEP,kIrQ0A?\Gkա[|N,NdPTF@~+6bnl+zܫ  [Q rl Ȁ ? /B K{tlSklR=:b AbHbŎ-FFDSFSO+.;k:Zky ,Q빲l0l'Gk+G*rHҊD";KOƤE1R3YH`(o)3[F[[~Z~\bD;%sJ6^7/[c3#хjމ_:*?&fC;DDgfidjzf>cpF ZuBgvDsLkMJw}'OO5%w^Ut'hA( u'P5]*VkGdh[,2WwuXt}*%=[(6i6)bD^(.i_4}r F8!4)=u%** Ghv6zh6ÀIOlA?[Aб0;+]5!TzFDk_b[+kf2r%qs'ivj/ DrALvUqΩ1lEqlRxlzZ[}5_nCs\%;\~sZNľ?A'DȅA k{KDcav^`53FT4FKFf7EʣHj"s4!zH4IuީbH:L+';M{B}ADH|UTk`5QQ78zKhr}3kXϽ'hYrou1WWZg#[\&\)ڨOD>)aW>_[>`57 >>;*Ft~VfeSVNvTZvi/*޾{6if;D~:/Bn%o3_jG]_BS*b?Bvwt/?E~pz?swQ<׿j6tWF)ĥaXaB 6tbD)VxcF9vd}B4Ypϋ LLY'BLMȴ%$OhPC5ziҡ#*! RikK?X^85{mZkٶuFέK7-,JJ"PgObɾmjqdɓ)W 4mx nNM0FQбi׶}7]JKq|d"$l8)'7P '{E\_yȋg{oH?~? 7(8/*+RȋÅ& +r%E D JDX\1DCzqFpDa41 "6?8ED#m5².+!- / 0@T3MI{ z3N蔓;+3O8 E](A1*9N!%Gҋ5.'.A50G5TN TiX坄htg]E_yXb;WdwU fwuVWhq=f۞"Z*9Xns{EHNo૷͎-h_q{M߅8ߊXMu݈A۔V0bjŸ|i"m@͆ C>X" ~@a0^d,fmRâfDP<0)T$\Ht]8#ވy8αNEgfɬ.0$G ^@IJ̭AKtI?ݹnv#$CvxI6lew{B*6"5ʭT=R4+gYJ吣9 |Yq& 2-F&-LSO?>៥N-ǹ0t,ܺ(ψ%ge%?^ Я®˱x|Oz"0%L/" ,$,IF . F@`#p R@ޏm4TI ()z%p!# |-빴Z˸й$P + ,"pV% ȝ^RM4Ib" 4F$ d@c,-"x0D $#D{;L7èP)"P2.,!IH" "`b-j,L44*B0:"/IVqD*m"Q-() j,|Q2@!OcDB4&d5!jL` Z bl9$m0B#}Bw e>E!LI"4 B+dnԋqQ6q"bTR!!4@"'?v'zR‒r +byJw))s.ʴk.<2QE a[q/;z)Ρr%GP)bn~2"/~ S}( f5*. `%V2,O2D$q Y8d%)J E%qQ"11g6l1M.,R%,kb06+Cr `k 2 ql :e"d6;!B+B;<; <Ѣ<۳3"/s~=ﳀ3".?ق@G?#B`/@@TAf@At64)!)- .~ CmB-6^t0H="D`D`C;B=OBF.DaT!~@ B |t# ( Hr."FJ#T" @ B B4J#KT1 8T &I E+"LI'bG,FkFnN CHI1B ~ |4NOMJ9J#BK@$KtT  QE F۔" uNNuF,pG1tKcCoR3WSqHHu!WTQTC'YOTt B W9t:AZLqX~,/ 'j\M uS.5Lה 5ZGtIP9TIGWuZ5B \KuD4!THTODHuH(dTL @ KM`9 Hd]TI U@ FbL1e[$ ^ d/DS4R;tX4M=U`}NLʈNv">m/&EUfb"hqxPBKu\cc!J6S@!K5To3FqXs7CCWiIr6JQw`5HvPWWkE}vNmNy+nxCFEpt{;H"P$q{ba t\w!/Brs6HVoyvTw"!lcuXx\C8WrUsC$P^"rSVQ1Cesϵt6;]T^E8!^X^JK`ivqt8xo!UD'^#9M5RXYxgOVISR;0sGtDfK֑ B "u\ن6sU6K9RR5ImcE._~ 5i9K؎ NtEWZ{IT6 x~Cy CG_ uK/5H LdU[[[GvL]YLl_I_[7ԀX _sς!Sv4e%\wCZGKڤOSZW[ڥ_Z 9ϡ@Eπ$ڂc<&!haDXx'ztB}!_ZQxQho?,dwpp4(?~{9L"Onp"J_#'L ._-dnd**. ҿB4F /6E"„E <0… :|1ĉ+Z1ƍ;z2dED. &.+aB?ϋt I(c23BC& mcO -)V^uXK.$8`A&D Zv7L2P/T [u@[+ɥ=$#AȼO$١M%hϑ"7 өB`r :jz6tɐj)CpQ #M\pW@*1H4/\{ (D&:kh8)2#A*b^O(c:6"кyߞE碏N]ɵM9|{j/w[R5%~Y~V;1+)"R2L+YjjdLv"7@,|#I?̱?Hy/\G@zG4uJ.3{xLj`.a0$PV~Aa C4"L!P( )P"CU? n-ˑRrYć~P C>&R,BXaB)DE ET2a`8ņdх !24aC.† 1aF¸ń@L h.& + C:NCȇʒD0щCyBO#ģd(F9&Ďك'@<2#CbiQ +>d"FE>"1! _(QG_AX #OI [ p 6I!T]HH02N$S8""}HCH UVI5-tV֨1Р]'RԠiDEr.ldI!*QI)-yё2.I_jQHq3d( ПRQ^I?_zs%4kڷihTٕRfDs O(` = xق T|2aذҗB[ ݃ke.!a>ZYUmsBF5؍bd FrӪsKL+xEɚ/ @=EAޓ^ba M{|"COcM,9]&TđEbvE/겣Zb˥Ha w-#a4rGydν&"iLfN /ڤ0J{' ܓ(x5BFBO*bg]GblƅaO8;!56OhxEs2@CL}Vꒃԣ=S.Nvw!g$~x\yȣ o }]_zDQyPs 6^&f2 gJ6oR&\ _g.\)mT׉gMRq3Q/mKӓR 57G:4D.#PN7(G6,)MٿBTe(ܻP%JF&COEC4_p/0?y4m﹞cMrf$fat$V\$E SH&QER#FxdC$Q=%Q!v,9lAG-!%I$nJF-h`JQUEd i-J@USdwgGTIab*TFm e%HhC.14g4{#M.:q!}Ao;VX@GT`y^'ms6~OW}x7A~7D}wȉX(dH##(8p\o"m!!(aUAW7ՋiQUuWrQOh;ʈxEr{cc(;VSp,zMq&8RAoefN#[4' !tfqA&[!r, Z{tEXvtZR[)T%axi@h06uTb.ifPz2 \1xr&q2'T2Pl>.y&4arir%<9ySYMCW+$EH.-VvdgeY[z5[E{bd[TP쵋(htF>17GJ+&D{IasTkHh[҈dxqP_q&+A!&WaH>6RBB.1i Tb&+_g_Vq ^wvфcDv۹%x!arklgBRetM^`Mv&0ky7?ed.4&t!Q&HGuI!hVqb.ut)hCnzSGEIyM[Iׄ7z!2f& iZd'8 m4$IhvHm5Gq١d $hk`'F&zbg_<pEoST<ʟkjvz1#"!b@.xpWo'RSoo {dٹi[zJH֙vZeHiJ)xd0*1:VY-c#{ɏh&ҢD)2mrA,/4vCvY#D@$oτU`9)a稗ꚪų"NZszE~;ZKs) q,".1r ,)+Z$Bj*!C7z0iiaFas :5Iy%wq#tɚ!mnS9{D>+aSkXkJ-ℴqHS`fi iMrd2}Ia[vV"E6˶V}[[ +v ˶˸븑+ ђ[H% !+#[+ +;[ {Kk˻k{ŋ˫ Kk[{ěܻ۽;ҫ[iȹx$C;3@,K%+K"; K[ՔPs <,L5\/|,X@Ll=, m }m]] l9C͎LɏB0-2#4M6=*/1357)BIJ LK MO-UMWNSVXa=bdfh ceg5}#[۠8 1"טzw=~]؂ ؄؆؈؇ يٍ=ٌ]0 ٟm٠ٔMژ]ڎ}ڗڦګڪ ۢڲڱڷ=ڵMۯ۶ۼ۳ܺ=۾}ڣ9u Fr)Bݖcҝ}ӭݍ ߽mS-M]m}m N > . n$U[ײ2 S!^$&">*#/^0~21T3n:9.?A=^BCnJ4~OPSQnTNW^X\YRc^ɐ܋ChA=o >ϲr1){yx#~Nk艮>eNc(镎N(>^NQN>p.꩞ͤ>QHaN6az1N쨞tA1N2N'ծ{Qn;paz~Ni5Q / v>QC*4 //5ፎ%.a$Us/d": *>1q?.w6 :`+b17Bo#D q*R*r> P*J<I_:udL/2E=:a@b`@B6~8C# c2<b$P512 =%2|obO={o)l#0oo8O2=w}w`@r 0 @cCCA$a)>#*Rz]kt#iF cBd<UTU^Śu%1,H?S+{ |ԣI@A"Rd~ ;pXΣz4BhĄ[[˯= *p[HIy=\#ǼPs1j,}i$&dL޾Iwoiת]tխ_Ǟ];vD?#mh/t el\oO=zd_z~hʲ X8Lol袹Ioa.0m6{ӈD0/)<,.ư2SѼ 3ܮG2H!$ҩn8 ѭ¬( :mF;mƪ৴.S]łHFQopG|S{]w@K[ēͧsG'oqmtԝ/ ө[}=ww/Nۃw'xrMày矇>z=)«*uz?|}m+ \  H |lr],!48JY`)|I_ĺ"RΠ⨒o`5XxGH1]3I W2d cL1m"HFۄXP0qP8 [#&#oObGAd#-H d% SbBpnVRI(RȨ+f&(E>яbcfRibR ?F(mL@"T/(N3r)єD%U*b ]2F` wtmlBJM yśLe49MҀK֡8mabFYF F!ܨR3hk;9Ozt)`MH"t_|sK*x|R:Qg&3G$4rˌ,G{vԣhL-I@M͕*|~[rHDs. jdhRQ}KjT:N)TUڮRك" լg]Wrլխo ծwk5(կ=sְE,n&ֱ\r [%Yv6lhEŎִ-+hQZ2,@ Z6p`[Gze};\-nr{.׹ ߑpA׺=ޑoK׼kyջ^/ c׾rF׿? l_:` pTa W(p5 oEl-U m1Ubsv˜H8BmK^ ! dyKkMX,ޏ/Xc1js07v7#*:"Hao.%Bawn17˽+Jw2  ~r6DF:qCD ‘$-K^B/zc Tz&M=r[K,fֵƭh^C0ыT$&sPęN Ip&7:' S |?u[k֌T ږkrOiWZ]͆'f3:j$5ѽL-bFIFTbȵ)DPX4;)zHM8Rl#NiMFRo2(1K-kYRm rW)&3M#G/Pn8,{,8*bi"=CPlmÉV|RbRGGOȥ*O|K鰹X59oe[;[=Oz>㬇=T]u_Oܗ~Ge?'~(|7'AO{~?~䉟ѿܩ'?ɟo2#Dd   l0l9DTdt !$"B4$T%d&t'()*B'D+-./01$CD}Ї}(5d6t7\B49L:;<=>?@AB$C4DDETFdDFD0r5JKL4}rOPQ$R4SDTTUdVtWXEVD0{HJ\])܇#`a$b4cDdTedftghh4z^lm}np̟!,g(Z"FAH$_jȱǏ CIɓ(S<ɨ%F0cʜ ӑ͛8sɳG@DѣH*'$D{uӇK:ԩ Nv ӨS!Dj@~dɪP#>Q$ I7`R@S?3> QR ]ՏIւ%GQj=Ms+)KMiG?(Q叒9x9$B}j='2]2ZI' )E'?"P]Ͽؑx݁]PK5 QMALEI%@a%T%6?\Ȉ4b[~E d_AB8c:^SoysQ #_Xi eYRIؘ%~QMM Ō k2)~SE"Cv &`'#q4Ȧhi"~|1jꩨD ʤ;-8ԃ6!Q%dQAFF!SY XJu |b\4KE`G!Ex&-QH"{+$UTs0k!s1D"t5!GĀD&6q#!!w"Z0,(1,묵zIQPI[/$HRB $oFknQ[TBҴ#L;7#E,ZvgD!C"6{ЙTD9/z3\**\pi7Esy&!,K31enWS!t9F3< n@p +z%?iF.sIL:RBI(s& QM, WI| "KH2DIej}l %<b2Eau,tIcIJq6{x_Q@ѫ|E_A L{Cl`, 8H%  [+6%JLV&5p!L! ОH9Ю!IY"AS p?|S@G8q?<BN!'8OPј!fJ(P*H! HHBh'  UB}D+&A M沄 Rb,Vbo,&7oEicKТlDLiQ+u N"+*яV()@QRBȅ&dQ|#h=1 QH$aPcH=0@@W]> )P! |6t.dJ*PHɓ,I=s򐥈F!օ'C(Dc(zF(SKJrw\+Ǡh*:w5u;J*!3Dm{kst+H|/}胇yH9+Z@qzZi>ĨQQ'y;Zs{y,+@|sa̐!Ȩ>PWcK%3֊pGJ33I"ib?=DhWp:ڛ);:$1hɹ}yl(& S" ڲ,z nIrN*Sz"aêƵsdwzב6Nǭl.wY?/m9.C2gi7B]4:I/si 7; hjkSr;`Ǯv}h=b_|zMەB~fSG{2\S#y|}e z1D}!lN*/䵛>NܷdOWG< _wGO@~E{C OO_<t dH4b1z|?  0 0wp 1 ~à! X' g  wH Cˇ}W}ڗ}W~g}PR8TXVxXh|ޗ\؅R^b8dXfxhIl؆GhtXvxxQz؇~8Xx7 q}ш؈8XxdS{^Љව.x(}ъkXxm(L ~pwQM0}2}~ϸ8X~ڨM ۸0蘎zd`ꨎ#@&p@0٨#؏9X iww9Y|R(0刐!َ"Ip/p h/05y496a*p .ɐH9۸YAiR9TYE8~0y \ɕM0@&i&#hp} , 8#٨l NIEɒH//I ɕn,i#])$ٕZP)\)P*ɕVy|Y / ݸ锽y !@'x ٙ/9'Ɏιqy }/p8}/ɞ~&`X 39yڛyѕ0i ڠ 9 )S` YZ@m!zx )P Im # p)sИ! @ ) WYڛ^i:X'zh Zݨ2JЕEѩY(ʀ}#`y J0)`#0 1ް 혏َp ԕmIѹW* ޠǹ JЙp ajګTQp:0 L x 9X'ʎ0 Y /pٕޠ٨p8IɟU:  ip)k3 ׀z /ɜy {{$[&"s P E4NIqPP hJPB X {C#39:& iYڣ  tȰ +[ЪpqەnڕPXxpz #{[{)wڛ. y p *j0){q 0 {9(#ݠXyz/y`/9pj//Y^k,zJZٍy|{)Ȱ @ -יð N !\q @ #q 8pɐ [$̰l뺹 wj P! $|P딮0+3I )'9 \iP`l󫡰i맫[flA𭍀 ܰP@ p [@uހ \CL| ǢƋ‹L ɰKʌę Ɇ<č*lɒoȿ L<p ʗUX{G͹2gl{  L͸G,|ɗ<7\L[L,l,| m=, ѹ7|$ ,<+ѝIȂ<ѸR;" `BLu\B xܻ + Q.0Ù˩Bϼl)yǁLjԋPiyMǠ֌'l | <ٔ]ٖ}ٜ٘ٚٞ٠ڢ=ڤ]ڦ}ڨڪڬ]aYWq.[G}iӍQ|mK 4x_I[ {H Ήݱz sbJȠ 82lB{ ~}1 ]Ό و.>" >.͋$* ] ^1~ )6#>0^*l=匌 ZTZ\^nӹd.Ȱm zleȱ`Av~a>e>{ xnhn>>~芮 {~NP~8难^n H@GNa9pn뱾qnPľn>n>ݸލ^ʎͮϾӞ~n>6ɾ.ꯎ.O.n>^~n>nﲎNNq: !#o%'?) ?4>8o;,?O0"o$o_J>P2On6&.{|sLpu{{LJwyO*gx_pK|/y}qo  7*7?_go~q/{o|{뾿z|`ȼ P|2/k=_2权pM~o|1.=2 OL$XA .dC%NXE 5L"X%Zs%Sm/ b„ca]z'N L2X@#&]"E© 1m+WaŎ%[YiV'\:kO&o~4T"&.u[ud-cŒJpM 7 2EQD=!թU=E@-.:!j[Z"p`=W^[uٵo>$L+^߆y 3C:Nd"o=,  DB)p.t CS(PC ĂH|Ld(qFk2@*.I 1DDY3L$;Lo&ĺ^|\y)6'MҴmIӕ9iJ'LIM;SPBL'|b51i8cDՔOM'69К޹S鄴OizMoSZkV\suW^{W`vXb5Xdo-ȕb J<'s\ɿ.K.W,(FRLl6[S'UKUn&`tU~&{<7h+r3|seSjd>srEſaM )n%HI(RwxRj3ymvaTT>q%rV~)&^p\3ߑz޳նMPP$ "&n F4.1:؍n)1) YA K8/_ n`9^B n$Є^ x-K & { ˞?nbO>"gm+opb 0c񡛀(D xw:0*.1MC*a/Q{c @BR B)"y?Xx/iK:(+H nEmN]a?:IOrT((XSK`S?z"@4r2',3iMk*$f6y P M\NBJL@ap61aFVp&  (& D ۤ>)U3AJs˙XNPٙ>p]LRZL0Ujk]ZrHfIIV2JF/ے5!<R A"(("uE԰%d>RdvbBMop E{i=@ե} kc_X@9'X,a`o0-' R@aץ+J(j ލ pbImSqۼ=u7 O"QLo)XSc[\ JVn /m[^Cw %q@8KF 6KGH Q2 C/mJXAU(WYғ4F&l9dskfFL@L @ >dz#B*d$L&B/B0(r0CC>L?LR.GTDA2ZDLDMDNDODP EQER,ESGIIIɝ܆c(EhDBĴ@D>Tʣ|DILJlJ,JJʥJʪʬʚJʧKDʫ Kl@ DJJTK˺LKK˷`NR`~`N' 69*øD`>a^i&Ѐdaa` `j ٕ F"a$v-Oj~i9'()֕*,Nb..c1VCc3>/<( _4nc7=7c:Vc&_A?>]"af!Dd#)v"!Nx4Q^>Z[dL" Y%8YQ ?IeE5[ e@P eLe%Z fS^ʙ0p9,{ @H+f)eQe+b)4 :f(fQfSrq"r&g8Jd(\ex(d>fӤ:TJ;gFfNfH\q|N%ޥQ~)}άY b=i%f_>phgנgh]]HۜQYh.脮ئFNʹhƙ֜>3]1f:3<~ ^%b6 v6MJ[*kSB!>&>~fg+L{r!*i" c%Vi'k`グe6/ޕޮնϖim]N۶Mfc mbnm޾/5Krk8SZ #YbxF[(e,gQmyjG+(:Ng*^i4*'kO1h6op2?9iG#ql1֔^ϖ1L߶l m/i6@q;pr6prN>i~OS[T[cp譴po!QpЮ0a_dnj 'W/d+sdWjyⓃ^1Le%pCPȞ gmBi't\YrUt6;oKtOtxtF`O&uW(>tdwTjM6iWY'vBC13_4->;`ve.(ep[r@eDg|竉+[kLR_m["iN%/w֬<<^!|leyj'mm&fl%N:!oufm]_ݗ' bOgxnyv̚|/&ʪz3<aO%rϏF~wΞPLbq?tʱ1lm',oCh$N."-Cg#sij|uYJ ׶Ēri\G%7 is%ywUgC-FP _DJXg*h3݄)Z(q%[C+F#{zZZ'9Ԃ=tdDEG:^[">Y可u'2JQehT X$ey& 67'uy'yQ ' :(z(*((J:'Zz)j)zj裟J& P+XZ([%d*j޺++ulQA"k6`B$2,j-:J+J{.&7b,ł?N> 4n>E/DnA ˮ+[|1(p\.2r#+2۰̲؃/2t3&9,2(r>.=(tL+]PE1U[}'K s<5Nʮ=L6,ѹ9kfʶAxc7}'ٗ2vC㲥x]xO>L,c+UG~rR>;h :\I%NL2K~U:ϳԷ[n,?'+$?eyck%\BE.M@i+pJ\@Lg UP6+`g \ T'pTKδG24ilQ۟f4KA 1!W+&dKC"DLV"u"} r¶Jp| -%l"J޸6±vX.g!!cSFNTH< s$##)IIt)NNXٸi2=G@?g<%*S *Bև}zM6X—%0 $qgHGl3*njiRdD>037AY)qs$8?PG!jhx'A)*POdwv#(5Ѕ- lK=EySԚܱ(jb!IҐjrX QIR4Mt_"O/<`A8SەUAMujDĪª04c5e֧SSk`ຼoLngk)ՉP;,t+۲!#]a帧Bhld3k:˖bg]vD_ nJW:A0Ӛbeh;НijA Ёnon}6QKHǺ墎7{.ru kW:js=rW'^@wq/ǫ6Pm} Y--|+׳ZW6m:oR)%Z#춊Tһ AmTߛS;%pH7}O†uASZ1^(W\@FCv< kAMUЀU&ԕ hAdT0[6b,1S ("q?\15g&ϧCguS}u_>kS 97Lp󋀭S [v@HXRÉwMmL\\1O86gkD7S>LC6nL!ޖ5 @2xBv~Ǻ Ye6<~f>o#S(^.kC`<,li }?)pb71Aސs` ||&֋x By 8{p9y{_ؘB? Euy8|ߎ6;eNsyf苮)HvGM:'nR$9 +| _ꃟ& פmmp` mQ |%کQyM@=_aI}ű (^D\5]~8aƺGPXЇ?[JlTKTIIaJHa`רD 8UDxC$S ڮ8@H"UռXUYWզU!ZD![U#q f1eWc)+rdɢY"'j kIP״MDKiYϹ0 ` Bc//~yU6Zy1WJaEѤw}W9^W7I6r6#< ;ى=W}Y4b'FAK)"!c؉Y@$X`d@vb5^ rG6C(I*YJ$8"ٙYY$VF@& y(ZFdpvPGa$$1Q""PjK}TZW!XVnYXrZO^OJaFPEipQv)ePGZ%`fJ[}ĥG^:J\8f`FdTG* h{ h@=(5[b"bgeA)feNk &ّ:`Di B(&O \Vp&r&gf]@bd_]&'E域Z=*x`k ԦɛoZufqJg Lx0'TL|B@gbn{zvr'}&W J # c8#@I#BS@12r((rey)D\Fgp]h:hvb/F)QF}SBFhKaL)bӐ ʒDh R(X ZAl} 'qfg{(e 10v}$!FDV&ީXPbBi jBY@̔*JY 򤖥YNΤlL$ܬ*ƊVBѢAXTV&I.ʡ9B(ZG5WVmW^mZZ%ZnYPnFlL"ٶmmg~KTdmݺ*uDd5i!&nk¾ۼ?P=X*'lJ \jt. ή,tC뮮f*'o:)z [V.FHh %dh4hoqozh z2ήzU=VnbZN#ɓaگa ɒޯoŀ乮g FS8"OzKlS)* 鞖g3 %h]ڇb+-^ ٧BU被 *V 1ډQ#+o'onnqnz΍Vm7cޢXFqF{(WQZkkokmqc^@! ""D"Gk{ CBf$NT,Vx򞀲m򀑲H,DSmLT0S,,H,,r},N,23,0Ӯ>rbe.#4p 0 >3k҂תers ~.s*ڶ3<;3-=sA3>3?ێ>3<t@3C gTZgEQ AHE}ĝT4BBoK&X(߮G_JDTɮ@e 2I4h$Ok/{ڛa\pᇭMgDh@^F.MGDD=h hIDL{zT `1q˵tԯQ'8iP n.]tk4tV_XS~2igagۉIi']_,lL0&5{bqCρ~% *X"pblqa`(х KdqǓJH. OvIvwwtw+33$V4;Tsl#^cD* ^.흳u+4 bcm04%&4 pɃIɅ{njsڼVvѕF eCXJ6zhRxA؆A7}4\5[cZ톟TB('cݛ͙]Zh(Ӵ( Cqf~PHɓe##Qǜ˫$&yEtp6I lYڙW].hTFh8~z~d8`bE2dsv?f {MZv'5 6X݁9 ;n oċ 0ĤA bD)Vx#C1ŏ1q )$HL# \d̗&[¬IsJ.ehPCO4CK%sjSP%qpaJEĥIEp F$`S /V:p%XTK֬D!SR*rm% ym5_Η2ʎ ztΚIv6i@m}ۣ]J!nAxZ#(78i`2VÈ}R cD@!q_YwѫW~}A/Y=~_?@3\G%WaA0P! Ұ /0C7C#П=T,,",Βʩ r:zF2l+rO"4I =hJq%o 2KŸԲ/LL -ӄL3tK4ㄳ6e’ל ĄvW r%N uyh5 <" $oVHa蠅])ڟ~ꨥZO~i=CVꮽ5'2[ײN"~ޖ6koΛ&j\h __qo%r7-UV5),>"T)+.^}_T{S*hoI؁RA>"f/uח"!à!ozǨ}Q_RHx3/{AaZǾHS&.!!<^F)_>=vSV2:HRia5( g,\H4/z:#h%GΜ"@1 vNa y@: se)`OċS^shdJ*4d6%y1-$\ #X ~)rD?^F&y `\EJ#i/SѭIpֶ#hJ*e+ԪnЫ ZW%B5LoHO&Ht_OŗS tekZEK%"&?Q-HE1o1BBMXYbǥ_iSv& ̈́2 1jJDQET7 5?d5N.6, J0fwQxɇʒ\f%amT߱{nB$qoy#>]T5ki]1!:O'} ўh4ߌ [F2۬وc{αO4aɒ EH:Lܔ'{\f3iVf7qe=%Mm(qJ>e|C%|h"0bdDX Qoiq; tL 4(KC"7%dZ*uahDstFnq])ςB?azד17a$V#$+4Dm))fVH!dL$ 0z IKdkC6mk9jܪ)fm][↷o6c?jH[UO3.rKs"2Kۣٶ N2ك# ䷇ WzsTC%Cx+n:OW"?ͭ|H?ևH]!|^oO1gW~~̻}˂JlV*mbA02X ^/$"O ^.(N"@H$c-pqc"fD$L?GbC$nӰMHnUӸV" 0 cm|ZNюFLҨam>7$>s8[#.&*R9d]x9L@+#:b B)!IX AW';"O,jZЦ!ܳzJ0\Es?mp!Z+(` S+yR |%X  f;9TX&) `Irrsb]Zz\rd(g \jIt6af*{eUecVeF"fm6/d |jAfvf𑲎%v}̶)6,+ShVYPV$7!"h"?*FgkքvmbllBmRUv7c0W:dFs\.` 8\ƈs%Rv}m#WֵjZ+~ rV*b FjoCȖ+i-VkwwWj ijrsjo֌BBvSd|xkwiy5weadNZ;d/B ;vz8,e,}2d/Z leo?oi{z87E7:X)״ qM0+tTw|a{lr`"QWfƒGxy g]8rv}VoZ\V+T/9ù|R9,60_غ#ւ mE ok):,",Wiwwu 8aG W:X!|)HP ©l%X8و W~@F.!,11;|ca+S7CC`o=v:*iwJ9x%{t "lgV!ט qF*f9q#`#Ԛ]&qgeVxk‚vgMv[ fFp$TvY6$xq XكuXذnz\XjyDK0wY1Mm9"u;8Y˙סA9l[O #qRXIr `.9$00̩vw6԰|>9xl+:8;X!`|䗐X ٚWYm!BvcrMXiD]hy ]^\*T1BnHwqw㗞܇#lih%4ګt!bxomضY#7UxW*x8)Ebۆ+ )gz|l [-B`t7ږK8z]vbSF\~Vf}4{+Ie|S ~{m[f1{yyZ6CH¹ ~냉?8zLW[|sGX_%f{Z .``kT(ab8uTsE]D%b.0HchaF?-"WAsBdJb$N>KRJiUA#&$\ebedḮfn gu)gvމgz9| hJt!h>BTP:Uz)&i)*b*ʪ zjꬨ뭺ںK,֊,.[l:;6;V -F-+6j;;[/+/\d p[p ?̯C,So|1[1 <wr*2Aۤ3. cODx=\A-3 ]JtL?tX\pј ]uYCu]}X5\5`Ͷn6o7s]7w~ͷeK͑vV0,67G>CNy\.oy虏n[yꢗN:欿z읷>;:۾;;:{+?׾~?/~~?ǹ'ʄ \k'Bpc:0t=vpz$A8B P'4a )ԱOSe {)v/@C!&Jax'"щLbӅ>dHqV\0Rc#83qjlcE21h#;qy=}6jXʸ"+8|d$ hJRR&1I^Re'AiPJTr,k[2\/U T Ӗ &19\3D1LgFͤ2krLd_qHZqR ʹsTl:NrӜ <9tsutWSZ=Ǯ|_dҽu[vaɴ eX2HgY1E6-iMJ8%6mk EZ/嵴b %ֶmp뤸ȷ-n$Ǹm.{TGE1 1]Iw$IH Cty$m# 2lJ^F8bbH:A_{Ѕ y}9vdf /s@D Q/{d$FҊZX6Eċ #)H:bof0"G\L8 IcD%rVt G:awU$G2V'ȇ7&C̋Ѥtܷ"LU 73~a4p[L!3efйz^^4Mm(xj@g˘htl NP9G) K[y 23d@ՋWkLw97alzi`7H2 m "(s]aRk*tAuD =Dc!jE]3HWeRǛsXc8,wUdn(p:r.Y?댛D!QZ\sqsab6ȐMMʶ'KLPʻk DZ-nI46um_|$5犔EtArpE}̹t.čճnu1VlOI@,uLc5ֳs}:׭kwEN\[ f]fqpqqT+>ߪkV;u& izCT`η}(Şo4/mqPI=Mg4%sG~U/_a_$:Wܩߺ/M]sw~7SgpfBp6^؃lΖ|eWW;iV^GC'yG3&l~_"(VzkЀ&xl,88%.0x4 pG'^f6{gwvkmfj Y`4v6f|fF`e 8t4^E je8][laf 'lw}w5eS䧄#_f\_6Eֵv\baÓ_7'H("X^cW3b0Z'6.Ȋ(uG(Z}BǏ{Bwp9v=k J5x'z8=I~w9Zg{tQVn.icRxy6 =Y3mylw~sYrwd鐩)渕wljaTIe8Vw3m? ైa~ީF_ȉ@&Yթc&oi_&pp9v~IT`qW Q8@I8e& `!z\h%'J\&j-*J@.JV0A5u9?zZ0\@J%֣EeI꤄eUj[0jYzM][XaJ\*e&0fʦ$~PTm*d:wWu{[| S:&#`jY*姓jPysJkEijl%*تjz:U:SJ;ūŊʬ جъ^ .K"x ៯V;Y`ʧ{'ۺw9{ffgw2Yjn才|%_ƎH h#YhV8hKcՅLi.爫'F%A3ņהʏw 2K6x+&ё]|Ȯ(hKGg"7vqsl UsX:ۥ'S7mvnw)CWoে6.Wxd\1waEu7N}qx+Fh|& 8Hɀ$pfK@%G cZS7]g4j REYT8t*„f=h:sSw.ٻy|;*.SyҚU7r+[r% K,$=1 l")Le.R #l# <$Ÿ˚- ',R9=? ,C\ElIKOQ,ŖKU̵W[L] a̬cLjgLi&o q,sLulwy{} ȁ,ȃLȅlȇȉȋȍȏ ɑ,ɓLɕlɗəɛɝɟ ʡ,ʣLʥlʧʓʩʯ ˱,ˉPˬ˷˹˻˽ ̿,LlŌǬ 0׌٬d ,Ll ,Lϔ` -Mm  - M|l!, HPࡃtըa6‹3jȱǏ CIGD\ɲ˗0cʜI͛8U*ɳϟQGQR(D !ErR%&_r1QJIhg(i‡ .~QDN4JUWݼl䌢=J8e P[YhRJib=VqIr) >=#oU0xAˋ=|9iJ90~ВУDic3Р%ӫ_Ͼ{(˟O~Ǐ*2V%2!C d"Lb T&$X 4!)0H8 0 .|"N,9 ^P" [4X|"Y/"Q6 P@`#6|/??8s)H8-m 8 D{Sh7IL ~@$hh'>ja0$' 00ބA|^C`~!ûj N-|*Aw&I!1CP}H"B۵flE_CT?Ǚ})" dJx0BZ)V#@ E,!^XX' ! _hl )p~~ T\e*^$']y-7B"$JDp?$8d ,X0" c )`_ 0@B0Kй9Dg2&Q VB.@ i5BSBUF=h:AL CI;Pq%pKHOH)ap0"FZrb(F"^SwB% JRp4"H6 {c"pH82xV{u'm]+jMأ҄ˍ@hQ|P+jRe7$1eBaߥH.Cak|E:LvQCT]u<^6] ~:J:WGG|7'MDL9Vy:j퐪,* Ho-ɅNzI/rc!ix-2Y$nx,amҰ+#!vL&S'}?!SGu47r-6߼9/ Ɛ6tF#m?xa{万x|I\ >Gm-Uf ¡O?/[g(܏_}d~_?~?_w7w ؀8Xx( @i! pW/*h  Ђ۠2 ` ,xBA/ Jx`!@!hޠg3X4 Ѓw'ȁ؈PXx؈uXx ؉x8؋8ĸxȘʸ،P88ɠ|ljθ؍(P'8 OXw Yȇ8XHᘏ؏SO@ȆĈHi8 !& P "0*2)11{Г)0@)D 8+yR9TY2YFZ\ٕ^`a Q)$i&Y-Ki I`p)0 Q)8 |i~ eX@pV X Niljd yRy' 90~9 yb@~ry> ɚ 0 ^ȩ9+ ~)ٝ7i Yy虞깞f ~Y' ٛ閱p1P>)^pybp k )`Pk zÐ 9 &:)% @-X/j~94Z6z)%ߐ'9- H,)&!68[ I9 -00&kd  9+z;ڝJy ڐ`"12*0ꕘC? ^ȢCZ* iDPR!h8 j/xP /&x8jj6v :@ɘꝁ=X9}ڭ*^P * !i ^8`` a>iv jvʩ<١`{ PC8(#0 2Yʂ!9 ۅ`E/`"ǚ *M|d@R;T{P Z  `۰0U۽ k ]ɀ ȐF `y&i_h&zi* %#ɰJYA۵ɵ P\+ 4+I k; 4  ;* *٢: ;MR.= ~~\M =$N%>]$( >!n16)n>/nℭ%0"N(.7'>..>->8}:ZnL^]QSJ>X~O9ik.`NZޟY HK.N  虮琮^~{Ni [n9飞 0^=0Mnʾn>^~؞KN>p~UL>^>=?_ ?_A@PP !_` ?))/ 5#_ 4428 o#&, 41?Ko$) >AO:IK/$(/M_0/d_QH ??CoFl'/uw^}/e_h?k%5qtO|//JPS/[Y]oa~_gjo/Z:_DHoo_@LouX[_o??\$R\ 'Jtuݰ'bNj'ѣFOz1A"e|ʕ7ԹeΝ3En\.3Ddj8U+&bgӥTP0K* (Ųyzs.&Lnk.]lm WؿuM9i_‰EfagRd>{1Yw&&S푴XZ{mom>8 uUZ2wjɚ9dg&U:X%'\oZ'_yկg{ez^m1f<7'=*NuR"H|CsĖ.1ķ>y|sEl7 Pd%-yILfRg`#xE2H8”X!E2)ai!p,] a{:X#7Gՙ6R|dx<4Vszcؽcxƃ#48MUzׄ_Gm ۽_Dh_WVĎt,pHf!7!Jz}m"厒yVP2D6xYP׸H9þcҡP,6Y([Ա5 7/n./HA>p|L,Oh W|Y&.m<=Hw}n0l_XG(L'L#6l&HAM0CkZX BY0QZJ1 O# [J r\~J?ab> XSr?)p(]! 1XP2, QhN jZ#*2%-b J0)A݋ga~Q#6KN bc s}eTZիpa !7CnLY/BB D2e :6[<㋲G r~ъ֟k=3" En%[è?m(fu}o|_ΰ>\: ~,@ k+hY !zt#@d y.#ێ=wXA{zn"k\X *KgzӝWy5.ssp{n&>êIn?s uo04$v/VFp+Im'(?ÒO=NO|=yʃ]LzGð5u#ES^äE$Bpvhsn8O_{<%x~%3!Zy0pv?m ;&QysN<@,@$+P\YD @[=DY@(ҕ=ຮ;AII[ϙ8e¾3.[Aq˼#&K y?KcABOSB;<@(B)\5 T@TYZ@ @IP5bң3, \ %daI9;C9A3&CPK:t3 Ska8ǃ5GHd!%!1K)DNĿBð0 D5U!CӘ($,A!ɰL ;!rZ$74;&#&P63B3OK9CF=0B&" DEda?ء)7|BO|GxMoS$=[cE9[1;^$ȗf4O>QókS4j HPDЀ+R#=R$MR%]R&mR'}R(R)R*R+R,R-R.R/R0 S1S2]m@ M).lS7}S8S9S:S;SS?S@ TATB-TC=TDM==ӔG@Ԇ?>@@A>MmMI?NTS?8UN탌GTIU@PPUNTPTMmVb-Vc=VdMVe]VfmVg}VhViVjViAUūEjSVnOsSLפAu}AUs-?qmWϐWxWCxsWt{JVK>|XuXX~-X|%פWo=XU>TWXXnXUWq}E،׃Uou|W(הYwEזY5eoYٜe٢ ؍-Zo%X XوX9T~J%WHiD۪ٞ֫5۬m|ZWYP۬WWWD~-DqES@VVtXqmE-\5õ\ulE…\\`u\̵\%]HmՅ\]}\5U] q]mۭ]] -]5\XEeu]ۍ]^5E^\5U;fY_m_}\S:::-u_߂к>>=`F`ֺ?p >F ``E`@`{a` &$`fY~naO aaO>aan[_}b(b)/ě\b-b.b/b0c1N,Bb4Nc5^c6nc7~c8c9c:c;cLNGVeL^eWneXeT~eYfZQ\eS^Y]_&fR z+c29Cghi.iDhfnofon.gp&s6gqVmFuNgx~gyngvf{gz|{v}~g|h}&h~hghRfTc2g#)wh3hHhi^nifvi陖iiijjjiii.>Njjj3.2%"԰#n!'Ak6&k>k~N븮kkkk^뾆k>lFlNl^lǖkkŎ~lnl.̞˶ll~jfo2ѧdֆvֆێmږܞmmm&n6fnnn~nvnm>nnn6Fo.VoF1(oU#ool O?pOpO4poppcK$ pp,K)L"pV3qqoqQ@0I*Lqzzhq 'щ r#?r$$%@Lr'r(6r*r+O2j+r.Gl<*#>37sIBs(R2'sq8s6s_s99Os8r?BCsB/t0g5ҧZt廙r{ttC[r-_m/t6ZP+QRSUtWϷ%WuZQ%&u] ]r"u`TEFvdOvypeovg?@fvi[1Jrl;vo$kՆo?t#Lw{bJ;gVwwFwcv*)IP4xCp_2}<rK4Mi9D_CTV:P)@yz,x4WwjſȟQC{ &lME+kܿ=?֯E<#Cs)PB:H}h< >?Cpym^~wFX'^=4OL?l0-qaF TF6̉Hl ERK h2\u{-+hXQDH.J#B1F"3?*dc ٣u٧Y%l KؒWwp!)/dN~;&(J&iAXh_uUJFd䁟чh}B}fG )hr vo&x :ABwN6S;<-6>uM'S Qz(XŦABg,A^ulkFkjPGAdHu u{4̶`:z*P}]L;fNJ茄Z=_-+Ӂ2r:~زy]b2kVQl*i1ˮ  X U"6G! mj􊥭VY-]6zkvv5OK #wals"44(gU0Q_OoDjCGr7m<Б/]jVrdjc\D^"Bz{H8 bUP,~+'M0}|5jz*)Fl^Ÿӥ{%Ծ9F}]ҕ䲅=f2- wYRq*-6G>g_L6@^oK`zWd W'?aezdz ƳܨZn: \ 0I *~ xLLz"sVdUeWC 5I"PGq| `j,Bpa  {zvhw2}=r&'YI>MY#!JEvv2Z,!l BÉ\#b@N.gt0@ERz8I1k *Fe讂яzfY#Ma+sN/ձ? |TٮYLxL^IM3{uz}?ȰTޮQtˍr(Hyґ&=)JSҕ.}iK5 әҴ3mӝ>)P*AF>kD)-KKRHD-H>Fg?6lR+;Ԏmk]KΎV-ns۱%Uu9K 7h6=sa$WDnu1 F!r1bۏW2/w݆w}/|S]!ZF;:]Ї:t+G͇a/3 =}F*CDEՇ>l 1F;bm bt ;ADR1[\ڸK6heSVpoWis:)qQ,f?P;wXle9/xߨ]dphɰRu6r񡯬E3Y^oiĥ%`F[tQlJaOPB UunW)Bp]MCשn5-a$:cLxZF+7hVԸ y$| -hpWuH1mJ!C]yӻ޾HMeIr6jBdv 3(I K-.3wCSepeViuz3+4`N3Ӽ6JO:7. 7D>| 48?:ғ4\0]Ts$Dps46jhIng00х\VEhݤRunTbu %<4#~o|Hon-%vÐXAooyvE? zvUhs_{KiY:UZ#_v~O_!\CEmAORA Ֆt5?ks:Wؑ[խ֩{w-Dx-mDBD HM`1*W*Vԅ]ȅU ♂!y=  aBO A`!iy aaM2*aԔHؓe!Xkp)mUxĎgJ2C>ï!!6Yn6Y,mՑYHaBA$G b!b)!:Da Nap5D&Tه 2X hr( &"^Z\H bb,,".."0-Jb`CX"HۯH1I'jS(D,7]cvEcI5Ȭ%Ac !":T;E$=Z@O 䰠N)]H$HbẕHHbJ IdY 8@Y ( @t?D p)?NOS@P]R C,>D-$apMi@ȤZe}QH`V #\  ApEYP@: y-VMڵ WUJAԥ?P@FdiElȕ %j戹%D! IcFDԊj^QH8[XRle*4Cl l]Y`FtpjFt.. I&N͈ufO<imfDxAkEgfhEBp_|WDڅ %N'8?q}wneyFZt T {·`_B4vg}}gs [24&Zn(fEfhT>?DnxGAըJElfDV^@qgQ~֋h2Z+]eiƨN ʐ`fV^Hpyv W0f^MhI {RY@l~(A}e,%HJv`V\jLr!aʗ1ffdWjONSQR')ߘ ŐFĕUNHY APUFBWDh~vf I[^@k^fkAXOY!`.BliD e}߼v߽T&ȾzkePN`"h7vkucZVzj`V\xmnl~ + [[ .V*2a:!˂B!>¬BmFp! >N-"HRX#=vb|nӉ-TcF,KdnH&W=zZ[z_vnIoI!o(~L.dl|DoIQH8 aon/TUPoVhݐvi&Hiv/K}o ^48 (SRS"E0e a0_TbD9NRanLa M0'Vf~` NlRܴD"sVG 03Z Su$kyY؉F" #HVuiWMDND٠RD^1?8qBR!Z^CtVާqr[?.I*i8@p U6DE +G6D'Cqk[12^2+!UM#RCOzc{HmpGxpiּٚU!-tkV35_sVG+6_!{u,k.""8 <-G0%y*_FOFI Z#$W7" RAg`ǂ.t"WB/`A?t8;8 U@N,ˮb?לJl4IլtE&KUmnm?(!.4=ƀ#JRuAbUGa;zMUNͭY*n)BDƵ0\#uֵ]5߆X]-V9jtaab6I Jca VZ>h__tA.^pnwK'UG&6LK6I1htqEx!wq7V7J;7v`@j5T?fycv"ܤ2kmh|] wYD|o~b[NeVC 0~?wT[;הF8Շ=[Ck*W5K, x \JKeM117K1g '! /!xxM 9 r!?xzGu]C88@w|>D1i{]mo+S+H22W,rР2+yhCDWH˧ 漫#֞7c>3g68GV֢ː5_i_D&ȇ$kk×G tLBC:VzvKtDS,Ţxq/yMVr|t8D1jI4˴4>II{twUWD|6)AA(xsO{O{ 5yAumؚUquGUW;zutNn50l;vۧul6(d wJvqӣːnC=gΏׇItWu=;٧=۷<Žݛ}ߣ = 6[;2߽~_)|}s;=&Q[YՍ3)q77gI=Wٺ/.pObTDxA-iTԒ3JDS\E :MB}lӬaE9 /{CxΖcXRhfp?,kF\Bh@-IY =MOaѢ̅?{38AϏ?>cF9foXdAxǐ#4K2avٲ$˚o gΟC5ziRG]ܙ,߷azTQv%y!K'? Z{ŢҘpE=„]5L1]OG{|Q6:je u۳c+=_7~yrMnӗcڳ;Î-xI/*#`]Sbå b,'!ҒɎ3**:A/j*“2hC:ÇB|hğJDZџIQmGS*FzHĢ:>2Zo,J*0."c(-OL6o!t*HTCތ9NjM8I0BA6Jŷ ~!(A)T YBЅ1 iXC 0!bQav("Idz)"27E%ZY=C'\?,"e<MCbq͟辥ԱOS((>9}BQY"LjH_8#+(8Ak4N9$&EyɗP2܊b5E+gI5;1k3&iXpzSb5Ǭ2mL ә)&*SƓN:Ӌ6GeLv <Zp=`lEb rTkk*(`0AfEHF# D-" ]TCEE3QaTDD*L.qy~ɀT"Jo C;`"RQyڣRT$S;1ժSHqHRU~ڈX T 0;2.rJJ%\. GT&WQkrTwQ.oe˱R? YF6]cZDj"DR; @(yj5^K72IR Ȣ4]W3 ).rqܟfG4\sv]RjȈE*Q RrʒZ6!byԔ^$"#[Qz_zqWry֥cV?ɁLa '82*톻P;4 զI3h_qtL BmA^;%`'e (HNC u%8EbxQ ٽ.Eʻ2 emriYs_zkc_9f 'lC)d2щcBbjl$"b6jT5מնb "SЅMYjWѯ?vˮ׹nuu}&Zˍ3k QHlg?;i^1 ֶ8nۅiV7ϝr7~w׉a%F~ /(3Lİ~wEz]nġbQ 6>(4 ZJ+p(f>OPK!cL XgCA8T^;9]qt\?C~+RoAQ_"Y /k!YC ҽ<]>h1'Y˷t;5`3/"d~vwdn=nuh"r~v3Ljշx]p w>]p$4 ~-cbN *pn !>/:llbɚ$`xp %|y>O#(9$zV;3 2FOb -\qK d@d-.!v k0s3N o IP NO@ Q,.b o}-Jo "/ #qK`!Q1 nF*xF!2ע 7bO!3A 0Ȅ"\.rO: 0F x}yya 4HaYO`1N?#q.  &(nP!"!0  gQMX/L60y2r,bY. TOz3O"Y'"Ho29)٤(Clqr~4mqy-2NS00 01S1113r~ ͨ /iS050V9jAVb3ɉ^06g{$6 TS].V%6(V>{hs5A 99*:rs#99&A:6eHs3S2c/ڮg[C43aFejZ)c`3S83<γ99=9>w4Mf?E4+j?9"@ !B35г::2@;>CA#<2gqmF:vvFBbDy|&%nT!4Z.CqS7BHI^p2?7K:G6%hDYr $EQTP8H_t/whpmMm4yj'Nb=>A>)%GH4K!9:n*JC=7>[T24PD;Ty^[b[[/IwgRSuD! 5d>rl;4$>v5(58ӳ8SB 86tJ7Q2dK3Rc"vMkS5p7qbi,rWy[#yWzy5z{W#7Òd|7#7׭}×|;+r!'}W{ח"I~WyD5WOF_M׀/@q؁(X'xW07]"?Wȃmho( (J8W8,8CV,#L`ggYeMKz{؈a͜BPR "'"bH L`O[O  W$&@ 0. I4;X*[lovB/ؐ!3,☋X " U;d-"L`"PGYFK xX!"bj $S1gt`sڡI9bIQp0؋" (m^/ !":YՐB L4SHL.fdt+pkE z`8]]eQtF5ʕ_QIѪOanE+gڴ];|6[)͊Z$޺*(#TC7IV5HV.=[2@48HD{;ל*aۊSSzriR;V#$ WVd׺\hAº(H@[:A/pS:b!vC/8u[~:Apu;ۑ,x3hk>W u;?n9TwR|£ž :~{L4z<)ܑ(б'3}Ojƭ(Ǎ#߆"" GX.pBXY޹PT%"yH z@YB9BbnFd|&ɼb <鎜`<#\>p }K.c(W.U2ˣ890C%' XΉc.β&j]l(7U≜˼aЭIy1()mQ#"qLN%K"V+>+>@$b"*>j?< \7f"\ov > X}Ք̭=Ĥq<&"ƀ })߼.+h`>"0=.";"̡ n.;.&!<Ƅ%M |/ڕeM;F/#dY ciccL d̝]bz}-J"Ki{Ҁ+fGODeWv 肰9?!F@-".9-}]>]o|bb>78.rW^b{C.|陇4")@k."]K07=! @HDdX̞^]>1_`n,X*ar 9npC!?R]ݼ]R2T)S!8 Xb ,߰@!AW lxE 2cĐ q8FbFL]uXHRfY1D#{ 4СDg4ҥL:uaV 0 L DpӞE Zf̚y;ЃłcU<GOf,sۜ;4â>l'_c_n .卖7HShI5h2SD}nhOkm6B!%ۨ O,s5# : >&{\rDt73: PdʷUh<7^,{͍]sih+mn5p@uw~ xu-xx/~4?yONWyoy?^yĩꢯLrT2lVAYuOnj]rԟ?\TÎ|ߠ'/=׼Sq:S7o|l.P2  ]'/TYA[%KYy !&J 8@&?d@ Z,Gީ0ŚtQK"p/+5+ɸxBI++w&!#h0\YRЏ4R (J*ExĄ<Ϣ3 J ZĤUSzS4D%OѤLE!ģ(NBWIG[ a\g FQł{Y=cτ81;x,q9V/Q逦d&2B Ś LHDp$+ͥ]sz[r8fY'1RK p^?°YK"ҸT~cۚ򒓀io,&"/21 o\Ȇ=FʦE͋>'V~sNT!2(iIS )+"h@ -Y`Ҙ g0y@ȴidz65 CGT%=7%B(u@Q+ (>$NfmxEBD|j[ ̄@A*f n.gid#2U$4]0=poSʺF % Ȃʔw#t6P(S].x?,jC 4 ā5S\xP18ǹ;H ☹XpU'+g6^rT*U "Aِ 89yWܼ0^.3ylj 8vos<<빒>F>1dc mAZ ^0hD3Zёv4'-GSӖ޴3}Ow{9}Rzժnu_iX:ִ;}T׼u{]:jcfYh$cV;=Pl7{ #ޛ-m|6nt{fs𦷼n{[*  }x#| o3x+>[|x9qK\9G.wh)K7t9͇as|:@|^s\A9wnt#J?g=Tgzէnc}Ez׹.=dnvl?ݞvmWn]cH>rf-7^+#gx?! Ry_@9ϋ>w%z˧^}Gң~=mz^o=//:QO~?k>k~?_g??'Ggw Ȁ((~mb(s>Ё "X$&(X*؂,.8 +89x:;=/ȃBD12IȄCNP؄ETV8GxZFU|3 rk(}jȆio8muHw(yȇzv臃(@X X(H}8x(舡HxX8CE#7 sh>x؋8hŨ͘(x0ڱȍh؍(H税Ȏ؎8(hHx؏Шxem֐i9iyyxS $'ɑ(i)ɒ+~W02ْ4i9;9:ٓ<@9BYDy?AC9*0uOi?Wy,CFZ)7c^CltVfɖm)8uq)sytiw{ɗq } f7a-x&H9.)iť SFi,y8 l$)7Y]雰xSIsәũy0% ٜn㘻יӉ6)?靂LAx@wMPx?3OQ=╩!h }߉A0tx?qfȟ :>`| }2 *2NYUZb;ړ)$ч1|ۀ H2)35zZ ;0g ) IJ߀ h S"w9*SJJ!m>80*߹<^֟iI$~F`iȟ7ӖyZz! ɐZ&ZE|/ggFusj7*mct*HZmqnj*ڟa)k 4sx(r>9mB꧃mJqZڬ9J?r{K(fz *z18 ʣ7w*3w>p2{ Qhʨe2ʯ ~*6s~V[ :BЮ~umimǺmm,K=&Vwگ6!A }(ˋEUN # 5mŸm!m^)bRf)ˋ-K;ɬ7Ѳi5!X;;ʷ?Jh*?`Jʤa!8w ˢxw_Ǜ`f@30|67gz€ Ӷ hސ> -ګ96F~n:ANp ZmY;(k/Cj*B鰺0~J}ޫw&9J0Ų˳TƿڞjiXZ9?1Sg$89.xJ Ƹc>19:ˠ< @9:?\Z9<̚@ĺ9͟y,Y7ӞlVU[wCai;[xm&J}&1S+>/ʭ̷rȋS5,ј3\ɫ#1YW\1jJ̢ Zw<4=;8ڷ-L ~gjΣFIzx[5: NLK=; pp/ # ~@i-e(.#3r0J,N9Nc6ޝ:ヹI?NeㆹE\$K[fQNJ6UvY啵]e)an@ gj,aqCrnbN8~{t灮Q %>~i锔,u镞9o疮#30$꧎9_꫾5>>.nunANsSŎ=CQI= :6ۿ:ڞy ;c5!H 2 M>򚺶iG>5}߫:>, w{>"h݆{[]C},/ "ZEl٪U ܮ]&+kJe,:umwތ:ڈ+Kث?20ME[DU/hWdM87 ͭՊ֮ 1L@x0B >QD-^ĘQF=~RH%MDRʊ&DRL5męSN=}L2@ETRM>P¢Q^ŚUV]J Xe͞EVW\uJ5X]}xf[ FXqb/?Y䨍RƜYf-wZBFMZj֭t[l^aƝ[y\8GÍG>xr͝^\tꑣWǞ]۽orx'~^z4ӷ_߰~~/@p@@dP80B BB /0C 7C?1DG$DOD1EWdE_1FgFKFwG2H!$H#1G$dI'2J) 'K+K/1K1$L3D3M5dM7߄3N9礳N9 G%O?T䱧PCE4QEeQG4RI'RK/4I Ǟ=5TQG {A5UUWeU(W_5VYgV[o5W]wV Ta%Xe0 !, HP ma&‹3jȱǏ CIɓ(S\˗0cʜ9C{Dx'!/] t(0*ybYH͹[=>} 4bʞ{QK l!P儿[ŦȠ  Q1*LYzsJE~F)LPIZe":EY] [bifsލҟ fEӠ@YL>hRKN/Ν$QGJIj$)M4ZFb_,iBI M.uR"^N#2xE gá`%l;abBZ.5a‡ (2[Z2(rćU]|&d1X$Phv M'?owF&0|?`A g[o@@]ˍw. fADs] =2! ˆHAtj c @ 8(0|XH0` FY`Q\bE/U.)Ofx &@ `@!Pv$"&^  ->A?o ů"c.q? !N.ý.ta Nа.8a aH qV􁄵-yzP$%\1Wb."-9y@Ȳ:&7rBO$`!,{(WAlD g% ,"q%=C+H!nAnpK P%p%b^ {% >|<)\-&"t@! 4HA"$8g9СSURWqo:$y)H3!h'LAH-3\VS$6J>ĂaH2Uތ 6̈́P3#|>J 3bs&~h`'Cc'h( q !Yr}h!IBJB A@͒ lA q?Q:qoچe+Hpۦv9CAw~,euIi&U{H<3>>ʩxCSQyO!OS~w=Lԗs'}x{NO;lWO[Ͼo}{O?շOϿXx  XxHsFz[ 'G$(ַXxw0284Xv%"y};( طy8H7w/XNP PVhS 0Wxpfx00 p hg.#UA w8zx}X ggI_B8(Rx|`hPYЅ[jh鰊U8np &`p&# d!p8؍苶hhp(X؏vi( @Spp1or8 0䱇S@p|ǃĈ {Ð;:ɓ;ٓ) (PNYI8؎)ZɓdMW^wj9ٖn8SIz< ) xِr 8 `  p&,`À@Jĸ ېq pF<ٔp IiY^|WgH{Yy{I{%QyȩPv9 X }`{Dy[ ~0#`I    ʜ qz!A@l "j࠵*zyI`()ɞ<8ɐxOڜH`t y Gq@d0mȓ0p8 & z9|RТٜՙĹ#r:7xc %*; ^0P epOp0Q y[pGȠ^>:py?:MEĢ>j-Q,pri)tzؚp찜p 0 ٧P 0DPх: eA8p~ j- Ԃ րր  i `NɀM ] ~&> N-)Ng,.1NN.7F⾰T^pyѰɰ$ °ɐX_ hѐ`P [^g e €Zw^a.aN`^lqm>s.^n`~sz an.o萞戾y a娞R[ >ɀ븾.^N..쳮n^n .쾾n.~>>پٞ?Nn.n/~.N>*_^0G1w\ƞaҡi{l.K."' 04M6"0dN.\3M*|O(4tKd ,=M3tPD߄1BLKDsPF!@LO6 MlL*Z%4Nu\eAL_ռvU[\q͗i{uX]n58VmUZ$& oRJn#;{wrNG<ιy9vK;"KbYdad^EbdLzl1qeXzjW&ەɶEzon;ŵ[Qa.ٛp3|s;sC}tK7tSW}u"o[.#f+3A wtJ\-a/o>^ч{^ޟ>||}oG}y|{w@_(/C|O~+=AP#$a MxBP+da ]B\H|&: 4 T:bp~cȽ?AQ{(CLfRd'=IP24,{X?+e2d|hA;z1DJE,Ďd2}$=Z$hA zP&T ! at#D X2>%7m㈱E4AҊ2@Fa鍉ީ(9BtPS-JLσʓ2PXaP2F\1Hwr@~3;=>qFz]OoR}*jzv{T+gNomc?.1T%la {؅:|PYdxi{f&xt1YM|GE% 9foVd mLTn%MF;0 T㌏C<ȿѭ*_%{\=t F"l s= "Vo .QQV#UpEàGx2% T&SP,Tϊ"va]uK{d >w 7V`t$Z{d$'YKa=抰u)x+\*Sym7q'm` ӶT1n &irXú#B\4mTtxṗY~LcӘJiZ|ܥN\ 5|/xq$dXZֳ/e.Ḿu {&vg&lMEpUPא=F`;"GJp ׶?ǥn Xhw]&|smnu ~pcָaXixxBr\ l]q1 `P`41^0pQvd~Cz9mAs>DxqǦDz:>NwA0 g{vu)D@`Bf+ޛ=Lw&\\,oxQh <%Vy-{*Ѻ;qILw904D{LJ\ʂ:K<.HJ01ȩ.IW..Eȋdt;Ļt`D @/C ˹:I'L6L57pd|{LhL} }p>LL:JJPFhR4ͩHLx=pE(KPELh˙۔?0TL"ּM4MՔ?3+DHf< .Ӏػ$5ήC8|#ID5 =PL/Qhv>LMP R M0ұ4). ?=K֋ʼyɳt6T@ HL=OO]s .9W&9TҜC#S]P)RmC sEQy30mP`MMX5=QR9S9+Qщ4P%SXC?7UJSG}TA֙TY,͜W# QUR=ʤ1TU]U{"J}UXݜW@b!VU]Ճ XU`ҘUb-Vc5+ VeSc}VhVdXGp֩qDBDXDVrp=BVnnpmvp-WrmuWk}trqWw]Wk?X}XXXXXXXXX YY-Y=YMY]YmY}pBON.YH6Y.4 WE咁Y0064ٟ5xP?.1@91(BZ19Z.!416Q=ڮ-[P[(ZZ2@۩ګڭZ0[[E[u[4[0Zۼ%[Zܰ.9ܴ][d\ܹ [E[\ھ}[.[=ݺ=[][[m]ܳ 4Mݵ^ܲͅM=ݶוeܻ޽\ _\E^m^\]ե^]^^%]5=__7R7.`~ Jv NR .a ` a`0~aaaaaaaaa b!b".b#W9a'^ n'*++b)..,)&c//46c,^1~c7c436;c5=0c6<dA.@f?&Cc>^d9-vFfdH~ANdCbXJf3dPeQeR.eS>eTNeU^eVNe+aU Y@ee[N\\]^a6be~ebfdvff~f`fe>h]dfofpeno&pfigjjVj~gvgm>gxgs Kgy.|uzgwgzF*neNh^hnh6W&ehe_hZhWKh[h[igYh.\fiVi[niiijj[&.j^ji頞꣦ꤾinjj狮jVEj>뫞~kkk&RHkkkkllNl^l6lǖ.lʾllŮm>6l.FmцmҖmՎvmܦ׾mm` Znn.n>nNnn~1j nInnn.o6o>oNonvoooooop?o?W%knu9 Epp p p?qOW_qoq'qqqqqqqr "G!r#Or"_#&"$-ϟ._0s.1=*s55's6s73o9:4gGHotJKWtKO,rXIQ/uQ?uL'uTtSOVgUtWLuXu\u]u^u_W\u`wnvb_vgveovhvihiGjk_pkvmvnvqwropgwsrg/1v%*wwyw%+z/ ߪ{w~qux/xOx_D%wM/5gxxrx%K'NJ'78xy,{x!vk/ywr (yy$Ğz zOz7ydɥzN@k*Iz'zz/{NB{'{z~{{P"2G(_v"| |O|y/r|Q|8|3z|ЏV}/\r(@7}o}*rds}ٟ}xڿ}ܗ{d}!%?$}g!O?~珡G*1"B|}&~~?8>I~npzjRM\LwX\ұ=.+hA2l!BA|("B~0rt(ł[$R0?0,'Ҥo;. <ؓ6 ߍ`͐;^dR-YeS9S*B5X*w0m떣DdTɲu8հgeT +bQ? f !z7ٺj0YJ$ҋ mziެ<gL,'@ϒBvs|_ *c/K>t1R/:ƿW=m+Y}%j-F~.&+[IDG9OR NtXQ@;~`R7%Mze THRQ—4WM4+IhDMXSdkDݼ M{t/J0ƣn(NM$f 05AUJNdF 9"Rfj)M6]4A'M`Ri?h:9oNdCIp^eMLi|҅1hmDP%"Q>DbRTDgM[HAkEXNYQfgE(aO WqҍxS%xxOՊgc";ZDZyvO*"ewi,)t򘥮~(;-Cۦ7歺5Uְ )Nˆ,LJf,u=Nאo&|B6rM2|H1MQ%թpPP}QS瀉*B,OCRXKMIXQH ӎVK72c#揻6p{أnA)) L_{_EZ^Ax]ԗ`:lm^$fy)PB;zA+D6iR½TզidT)2$UȺ^E?>z~{ښMuIОEsD^ҨCdU>0D4m,jEٶ=KG{ G5e߳de*Oʇ}tv@$$2LZI#lW2OEިoi^]"qZCbLHe.$Glɑ&AWsE"\KC JD)mVTa- ]T;6hE&ɩ4g" ~餣E@)bIJ+z SQ  <єWp:ZT23jJ iR#jWŽ($#NXeiXn L9HaR4O>zi򑚄B3Ӭ5Wl~3՚oѓj|Z!:ls,AІVMf{όA+9юn%iJ+Ӟ4CD~3FOX'>"6F3h'a갼:'₝jU[>6fRGv1V3}lc9 swpЮOmu-Ҟ n(7l'i!RٷB~fή"t%k 4U 照73;d_·9Z4D~`>n*6yyg,϶ȣ9Qn˜F?:q0-jLD"bМ]\(:fMI;wdkfĂm?xB0v:}wV,iZpg1؎C/{r_gIh͂28+v_׺* wX : 쿲ݓqL/k9)d,?XE9eU 9S Mg S@ >[0 1`GT&.C؝`,oStDxPA}a_y]y!2!90g\X< a-Y^Z R ""!!"6"$:"Z睚٬ya''"֬Y$I>D+Ƣu̢M.b%%Rټ]YټME^2mI=Vٶq5jGtp68c"r#:c:bc//Nŭ-1Rc=Z<<@!AF@ZGBΙ6A#=3vDY Ez176 @KT#?-q|%X2ONaYpee5QDRaTͰ tDRT5(?8@ C&aY&j"E*j[ZGee[eXf%gf&hY!Sԥg4e_%Geqb(qmaY4JPq?au,R:B)'C>$iib 8C8RHѤUNUJͧC;A HhD'FhlLX|&Rl :!@;E=ft.(Z\zG%݇ h(h\_xxJĆD cǪ} HV  RR 0L<ߌ4.gf`D_F LxhdUJ @P:)_k7\6шl&%N)ET郩FA)F07AL|+DƕjԖ~(F,~ ;iBH*{fR=CSCLljADR*E(jMvD܍&U!ҪRiir镆"PbA8j4AI$jDS&'Aru'䝫BiBUM]~Ć v~'EALi @ hOu"+%DJ|ئȖ''?r&.-FJvDVj}_N)Z^nv.REVFO2nf '4^D,UR1*5&8Z:jJ7:7.䚮;:n;Zv!j"MR9mdQ&zUMFKK:DH͉I\9ofJ/C~$yE>.BWou/1_&#i^tHpGPg~f#p)0*FTMf}3"3g0W ^ sypɭDj?M(&]]&:q6BWFDcss[9=3,@3E9)%B]).:jt*M?⥹OEZ/{,%w4ʒFĀ |2a!) Nu.XOnZ5[[`B$G򋖘^D[DX&{tE  &"0V+5R//6JvF6eJp[5FoY))=Q Ft:4C3DC l/-E6h?u ]g]șdmodX-PbuupvPtwO6ChC$N:S,ɰh %|ϰ|c{p|+^~7o0b"d*b۶//n"CH0w CĄ%}74tXO-BqfL0Blxls˸m6nW WW'xE7 NĨ.y Ld-E\B~"K~4ZwyyjPlo _gd- {q݃9H0@]2Ct'sDUŹ7{Y3 ]?-KwntjYUQ-351kvظE8yc=I9H9DR75L"*[Y?{-I:]tS(/7C:{u"2{[;㴴{[ķGzJkCL,VC|#<Zo8k~Ҹ> `<|n㼐{>>s46~({?3cY*ZJYԘfR.JKs_Wl>IHFbnq"٣/˻/;)~E%PaAd߹ dJc:H;[$ș1I.E=oOʙczr4e>{P{'uUT:U׮$ņ v,ϲ֦U[pʵ{o^{so|Q5|Xe. џ8`w(,'odLU: 'l&ʑm&j)=Yv8qW{ \6ͥ3;} ګCn9xܹG7}zC=SW>TŌA+Y L&=DIo\l! {424|&&T'`cd0*6{˥/<ﺣ0KGGnH<$=ΟP |oJ%/h#kw2[:a\0k#n*Ωwvc*H'ֆʧ:=l$8IBS4={yRG!}'RytRN#2SO)RQ5P\V-U$M W1wg)SMK)fIv:Ou J(rUh5LJ*.tsx南M^y1+~ۗpuf:ʄ WaMׁ.0@߀BƥH0¶㩆#Lx E*=|2-̯wn/9缈美4y~z0# ,R(wba39N{)mЦJ5A_vXmʏEL03NNJiz|r%ϋ67έtĤkTZ7gRHKRp2Cp2/ )8@QHodi MBD[8B&_~2su+7ˡ*W|E]~KNϫ__Zبqe dla<o{ࢨĂU\z.k.&$ThB"D WCƤ]oH&401>%GTD'^NÑxK^E/~VJbXF3iTƸF7qF:"qyTy8HpVSd HC>|$)q 3 92a1 .RF^JO*Ovt,˻]C,Xf4)jڂ&wLӚ)c/D2ϣNseӞ>A f3%ɨHX#CA kLMi)F#Et5?gљ ҹTSAK;EH4sJƈ~$x NSeBnR'Y#erT%%GKf'^XUR9]cVq*IP"@"? ?@M,xڠ@!&Cp5\A+4,Q:,V9ЂVE*G&ҧn WRTLd2SR  d whBx׺}щ$7Ⱥ٭_Zf.Dxg$񚷼%z-*E4>m`}# 'd0M8g%vy6hw y2ʑ,I+pě: U T r0 ~{Ěj+46HQ|TI[-YQV)ʮkaZVc%G0b2RbAxrIi(evծ<ˁofD.6c(_G%xpYHf2fr; #LRBթv UխkZVyS@սd-{]lc\ qFf7V/)fi71olnVϳ2VȝWXHvܼ-ni2MLZPT ^{ 7_8fL +{;*8Û%07e)$8_ؔ`Afߡ|ZB7Q!r&=8⏬55y:µ7;")O 3ms.G~@t'(OΑ!yg^*4 @ˀ.xHC&Ň: /'@מC be qa}t;<785!|pd|4R98`|!r)2 ;G <9=tcL\?U-Uhb#'l!/O%FJp>,P6,fM6c@bB"f4$(BNN<NN NzbNF _> H9S8j먢2B%NN`J\I`:'h[㤎#oc 7!Xt4P'ovp ^P{Ogf#2P °&nCT !d6. b U&fZ%%(BA_ofe#Bj1Qf4q $C^%*/'0$6O M'`Qp.peba PhqIBW &{N!a Q\ANo!&)JP ^nꪎ7,7C"R !'7yXq]dH*/u2'|%W-#J18b )!Q!{r,U(}V-RZ200.!lЈ112#S2'2+2/33S/ #/ `^$%eb"@>ufݺݸ ~4g<= B47K=>)?35_f<=@=CSAA( U-G#=C*~T@*3_e+N4\4jT?fF;TF'#_Fd0-:E093<,MSbTs0ȳJT˭I4hR$[?3 UB L=F!4RӭJ3f4KFS8UJظ4Q$^U]Q;0RjRRsUiM99&E6tEI(E[UIqY"J#?[TqW P\Wi\{HBBdXG*3?ђtTVNDOMOc?]iRSCӋ`7ھUT\bUfGU5 4S=Qd8 Qcc Pybs7EKXiQdQ_\VLT^;*faT&gVh3hiv;[hiv/6pj\Qi_ kj|vkV;֌̖mmÈL,mۖn;lBS[okhVvՈo pWq q+ Wrq'r/*7X-8sCU4+" VR^FJtcUHPW/VpUB2dwÈvL06#aM ̶tkM w"$dԲw׉~Bc4c`f#^Lr dv1+r a^$1bwmnB{[{4|#WpWc+~bi&pqVWF ށRyK x DX7[j&ث7L&0X?A:AXD؀ƄlWM. ؅+`8h L|:@e wz &CtLjt5D Cyp]s>St&bsWKO| 3t8W!(F"⨌8LWuX T>uH(O._I‰t"x0ex+y_y2aψo $&+h5ڞZc@U[CMʘN"t@*uS,8Y݈XeT"0sOQOxPfw +Lx c.B MN8,t\C%X?"D\P[dCd|ue'<¨0C3*Xa`-[Ƹg7"Z{prV@Jí|L|%&OAWZ5:t#Eg/ Q|%aZ7d e SA⻇c\:.; r|\~cĄ{!BMF@@zApY/D~bp<#BCJZ \مcEW+%@$Eә=ѹo[)ݲ~d%{e8YpO';C1<ۉBUB 3HF2cbL=:& MJũ{߁n|Ze""eqIkYKcc[%ceW7C\nѺۆޤX>M#,#~Y` ۾d,[%%E%]7bͧ2E={·gn^[|{q,Xb9B}QIb#ěu"7]'H$E^5֏(7?bu84^)m nj>|?w*[JAbv{ ÄQ#;Q$a~:=c|Sdu# (L‿wD t; Hp%"0ȑ#΢Ya1KY,xH#M t͗{L8uDSnY!㪓ә-5lΪ,%"L;1\4,/,ĴͨΟ9YMڔfߺ=؟Wj4,7a1ÒDu#;ۗ r[6aشk۾;}vu < :Ie:E.l0;g 0&KL ZLlXۡ204g?,|Z[R4A~@5cugS3e7R VEZ!$ $@)_\NHG+u^Ƙgq>(o@Id#cJF.ɤNHdp~EIOVee?ryI&nBfjf|`[p$7(Eg3LnoY噀 :h"!)磒f^ifIz霠&4jj骮 kJkLjkk%Kl,%lF6,:m mpi[ n׵]`~.+w[mmgP KZ0EE 1^/ۖ]Or-RE]4Z2 r-<<^qPܛ+xsJvES( ;3/nYW2r24QM]nLi0˜eǝ?/\t8LDsEixΉx@_4CLDE@qUku{yvZZ_QQ~R+_N>S8b,hd!ɔx?o2zKRQ ^R@0AYM5.lpl;HwAA:s1r/K뤥 n?#Y`Ua`# zTUwpI Aa>#;;^` g- ǜTUQ I;4@,B;Vb`BB4A8c``vAeR|`;L}0)HPx0e܁!f̆h ތ=xH.J _2 EXfDuVd)_=zY%u{,c .c#W#s;^P.Edh0̤nQ&9i reJ%;}3-l b;t0C qd ^k:$2%1H< HOd0ƈ1M &@#-x&7/Sli,DMR@2/3}L ȔXPZd#2 S4d&Dٗuj2W_hcVFYҸ.ɝ A%R5eKF5P"&XN5cXKL L I-6JbbC pDzL+(v-o ַ-qFv%Ds[\!Can4nw]ûxɻ7moyՖz~[_.} x &0`?X #La W} ]8Iu bؾ(VqY,B)k|+lw>r$Y:f2 &GR2 d$O9Ne0YVr|f2ckV #&!If6csQ4τtlD#z{nHZю+=iFy3Ecԣ5 uRթ65]V֬>5o=\˚Xwmk]دva+N6hӖ]l_۶lm[6m[nj wXΰ}o^ ~+ xqHHn4mQG?jyINjVyY#Xo~r<<߹_s\?9e+=Fgzҝ7]Ozԋ^u_\:Q㌧iSq=]wLgXݾv=!q]v;ѹ}߻ 'o<_wGw'g'M?ş^Ůex=m_{R-u ?=o^gGүa ؏x+ˏ??߲g_"n&4%Y+](B)U1] Y8CUg߲WrHShb㸔"4{'x$F98ƕAxja=?iҏe7דb阓E-uDfו Ic('P}nvƔeXv5F#J vck yqYa񘍢hwq{9;)g)v93NJ"ԙ)1Zi_)6T)SdhyɝnIpV4%7iJX $'A= v>PȞ Yٟ]9Kƙ)9<ƙyٟB9Yb ڞ:1耡9^ً١IՖ$(Egh"d9h9y-4٣ %j)!yq3I1yeƜF鐅"Yd1ɜ,a*(b5vAz(9^3!ٛ(AikipsWJȉx撦©2:j=.Z,ht&8Gl,BM|11i$SɵS ;TyvS,}B+S=Y2:I*|]JS$H]vLg΁ *Y; 09ILyl\=2Wvͳߌ Q+̷#v ܖ #퟼,(;?:"k]ܹC #+ы+{إ[5tUiȒjWk8t}@rT-U̪DZ\-E`5fַ">ompMAn]y w=zf"׃aׂ؍}؎ؐ-ٔƖmǘٍٝh!VM[lڧ}ũSڭį H,۳=ĵm>۹û4ۿ-'LŽՙf|˽ M Ÿ -Mm -Mm}ٍ .Nn .Nn!.<') /1.3N5n79;=?>1+nGIn-jMOQ.SNUnWY[]a.cNeng[!,GAʠ?_i񓰢ŋ3jȱǏ CIɓ(SD 4`z%- 4 'ZbRMlʤ9u 2G9?1(Ra (p$AHtЉ-s ) <ƒ _HXj /8@&>xǢ&CW)T"QH% /.U2HEhJ@:E~4Yɻ" wK-X EУKN)2 R ~ҠF A&Q}wKZ4؄أ ahB]0 \ Ą {\ ,LA )1.!_pZ$X"Z1 X| )521`1KcMrA'dI(I 1,G(@!|"fؕiftÚ=w?[Asĝ|" C߅1hEO67TGYMYE~H>J{dQk} qK0)$&"$ c!$ SEa"0)B9DK,BhEIu!5pm2EM&@  䅼nZG R|',[$UD:A @qe[ƒ(|:ǨR ]X  xTLė2 1H b `ЈWrBRp!- BT4N/?O  rK⭹5ESKPQxE|*!nx.RGSB A{̋A811TiMW~y"_ .xL $`"|AE68`#$1j D[@ rrA{PZR'D `1M-4P\2`,97vEQ'X*@! #%F^qbJ@PhLbCL@)# п萇0 b~b@@IxXEh *a@R]ϲDB@ R #($9Ml(-! VC 0A rq ˅@\@8NjHKحU\ /H [C谅&H '̈.%YΉ"!t8,- I\8]&IN=#ҬeI&D"ǀ|#ܰv"OBTOyYG# xXB ͅ=AHH7&ŷ#khMa}T!H#}CnFK!T*C9\ ',{H@Jt$Ț,r6bY@{Q`C-l%^ ق'HOfH:5i$tvrD&&J"wtL\ؒqc8 C9$r6}ѐvM܉ib<~Iy qscju<vޅpIg*^&% E3LRoWhW:Ϝ.L旯Kw@(vR00W}ZO{{B}BK#yO x }w '~p~X@ m(yshuH{S7587H{G=8oho$zH{Gy-U`  %[~$q&w}z@q@r1w')hyzH74茓gX0y q@yш؍o= Иpzxz8xO  Xp-y  @Zf8r`xO@jxz[ԏH{Xh}YLQȉ BЈ߸,ْR0ٌ  ר`y~. ~p ( qHr'-0y~u py!8aGRi~.R){(ymiTiz0R7nisٖw&ق@针+Q{hprHZ zp ?iypȐh8}ސ)yT {8{1Pn門O7hIy䷊m"ag@؃w{ ڰ ސUmIT~}b})~ $vBS}P p }D9 z8XזʼnmGz㈡'v~D/ڹi-ڢ94w㙈Y{7y::yKJVY~١(Gjyj Ajt X )YnhGI{P؜G(~nɧezOJP:G:Rڡu*yw&)8 ,ڦZɦ{w*i*QJꪰʪ*!ڪ* :ʫ*ZȪʬNJʺÚ *jԚڭÊڈֺjѺڮZڬٚZ :ګ*zGBj Vi :ZXڨ (~z9}|Й۲ kX.ڝkʦ榒+:K; @HEKQٌJ j9-[2C |ٌX{~@CnmRloB[vt`{{h}['׷z;yU |@;G+}Ky |Kz;[g!Bۺ{HP ڐIx5pڐ [;5>˼ۻK+׫۫ɻy ;*UIU[k˻UKk諼5۾[but+,\||y\Lo*S&02<4\l :KyI?\DC|PNlI(7I;ElA-@RC6.;^.%DADHJX~Nn^Y_`_N:.anfi~WP:: -}ޒ)ؽ?z9^z~盩x+~>ލ޼w~9@:yz~a0 dP.0   >n>p(NHY뷞.ܾHy >~ N܎@h ~~?_ ~ ޣ#H)?#8!^x/$$-@CyOIʨ,K{ ڜDhuIyH? z?xp =O{Rb*Z~_OɌd_fhjlnp?|i tϞi@vU Q|zP8 'I'܀ 0򐞧 w/w ߰~ y@XQOC/qR {wMpJ+X7!#ZLʲF'q?_؟ڿG ޠ+_ڋ?mf/A ~7L?{=}'wF!1II2bƇ,-jqǖetS'Ş%W -ӦL3SQNZUYnWa;}#ڷs ӄ.wŏ'_ydmݽ޽m2nKΚduF{[1aKmn!%Лdy m.mak4l"ImL'p oʒm"G!FxȲHH5Lm$4Q$l%5N#e DKPKJIM썩|3LN"KB ! MC u+Bf-h4C)tK@CN]!kRK%DR.P1y"$מH' "":e: \% _{R@D"X*vZjZ>!:A5FJUTdK\dM׋=V]q߅PL4|^N˚RpE&|]xFғ f-KfG T'c ʴ^AC^)qVcvfkf'\6c9&az%fxW]q00& }Ac!&z5 ]F %Rn(*' c^}&բ(r% .'宒3gC}tұ"kX8buc騹v eXu=Glװ{G87c_r5ԟɢp@vt"ڃӈL՟),"zh?"?[ H~AMt$` x%uZӈ17%uc84IiMZol,dpBNQ0v*Wt3x@C:ku>uUwi SYQ8+u{G$r>V4_C$/rαE9Qkd#ǩ 1j].bbzG/acbZ/ DCzEE:x "{G4 QHBޱ$ >>2ǣ( 0w$(ƒk< "e{f8F|pi|Cѧ~}O~s}O~W~_>>JU @@,@<@L@\@l@|@@ @ @ !r7$,ALDKT|AAAA l4"$!6XRDsJE(RX@SASB=AMTCUT=eT>]THmH}TITJT@LMBOTDPTS-UTUPUUQuSeWuTUXURUB:9^U_U` VaVb-Vc=` ]`Vp7gihmVjjVknm WmWor%Wh=WuMWvuuvxWtW{{wW~y5~|%؁X-X5X} + édXXXXXXX يև É4ሡUٔp٘YٚY}ٖYٙYY١٠%Z5ڢYMZ}ڞZڣmZZ]ZZڭڬuگ۰ڱ5۲ZZ(YP[ڴ=[E[۵۹[ۻ \ܺ-\[\\=\ō\ݑp[7z͵Νυ]] ]M]]Ue}]ٍ]\ص5]^%^-^=^ue^um^^ݕ4>Հ_(_l@_m______<y`_NAp8ҁP` `^`aݰ >a" Fanazaaaa~%aa&"$^b$nb8qb&~b*b "",b/F[ќ3&8`/~6arcHc+; :=c?6 9cAߛbBNdE9^dG~䰛`HdKfdMdNdPn)OΙ>n<eTQƙV+IeYD6feo^(WHg_s _FcyF~g=ꩊQ֜anf0kN@Oeih:I脦 a?!t5ୂWu2Y1 *ҘR^i)==`i bh)g"Hkn ljjkF0t02U]#f#VfbnQ.'7" "8+&Ha8l.n.#N!|f&m. K`n35tvlb>l؎hUm lF6mOV톞oʾV+r{vmĦ=p2hlذצnn#qpF6[9*{y-ЇL l`nƲ޳U~=kنoj[F\#epgY goӐX8땑mOLi> ͑1mnZꟆpi.3 kZ)A n qnV61tFn_) Wn230^*1o 5rw1 a/#gpP3 Y-ogcA. +jfm3?!|PY;M#f'!$s{ ߉dn+" i\a4 ǰ`q@2EwmU&[uIGi}Wv)K2dw%8s N.&Fjf_(+f2'3' LljriZo{8;[r6{"k?bQpg7+qx3Ci07#zqu )hw)h09_ }v"v'r tZ3jIfZVmz6Vx?v{_y wv-&!IZzas+G"{ݷUodkP|ω0FF|0w_+h@$a  "tߘ{m{bE},X))d8aK{8dr`L0A%̄5H<2]C@ S?F=x)%Λ;= eɞ::MT,ښ89 ֵVK XHǏXm(RhKtҋVnÍX|Y0ÍJ75\bt[483f \bIYfĉ)_JmvUMPqsg[.Hnw1~rwdMnZEۻ)MuEUUCowVmuIRSp}~OY^lcG ֗N?2@}r@̡A4c,%Pn1Dad'  %Ǔ[t\MQ iڵ :NQT9Sh`eupZK:ddk\g%,8dɥZz)j)v):*z**.*Z7D9+++,=C>t=2tk1=R[,N[,;.ZOAѮۮMR'/~-. <0&B /02lqm6mpI$ 0z\0-*r [h{>v[t>\5s'go?L'rMuMw9mi 32_O^"OgCط4k ƷhZWe)%#D Ee*hs PYm#yϼ 4ni6q-ZE!҂<65\jֵS؆7E + Xw3ki^e1\o;-fQ{~0؂RF,n 򖷐=2Nղ2ǰ&F`r3HWA]Ivکϻog] -LP"^#ȵ.ȘjT~˫RєyG -8T yk`=H{/ƗyofbT& vX tU k|xS5ly|L!z{#ÛH $y2k(,?s@^d#w!P'#`JeSG#Ϩ[40x.rX p@>\ L'r/ 8YN8?-oD/CyFb?Ӻ֯ޭ|-4$ѷO.e.P@R/$*r!ܷ)hZF6;I;8Hxf0$D ؑp4YN6C}uWp>.47xO*9o%=fx[CL|ʾm۾+n_CݛV$Ctrm-A^o+Q7pc;R[+COi{ƥV 5(&!̻K-ͦf.,hj{f Ǧ-oU dp0U|Kk';.k(d-p2}h0Y.PBT?tg{*!*)4Vmb>yb ^V )BpYԣ|nsr4ί)NQs<~Y_ߋ@;QJOVqϐUkOX} gq^Iq] C͍h9b>a=2V0jUrv^輠g ~`  e񹠹VmUoVo!n߬)t= )WiW2X:!I_ÄR~[`nB؄qW]!FYYIl\ ]M q!VBS!L&"&P'ؐY L$E,"F,⟙Ư]h\Ѣ0c̘VY]F1Y0ZxP#6f K H?P3f FZ6;1?p@ eCL fv4:E:i`<#B׬4Y"bC\c. 1DyI[d}]BbMh?e 7DDLDFnIA NUhMPPzQe@_Rx`TDKބe,uTY@򆄰%_/ՓJ؟Y>Y[eAV[cԥ1eAe4Uʇod :D@5jQN{1JETmLvKi&hF gI%_D։9Mf!EcC4fO ]b& Y?U"AUZ>LZrN :gsT" 8Eg=]槐ȔLd&Svr]am^9V{|6V`{ }v_j kNG` LDr^>hˋq$Va$a!Ph~ ?p'!I!XT HVG(-!臒Ka苀 4'L͡%*Єd!JXh4LҎh#JG9.yV m^g!v⏩)>J|bb镦KvR)ʝ"#B֠)ğUT.yιG^*. ö939j^Ua\/b)?C(VԹD,z4JcNLa #CDYfMGFkk})TY`%)+c@CNF~ʞS)kW+ %ʡR5~I jkth^B_5,.\&Ē\JJ뾶|&ċb N+iJhIiLigd̶_͒h,ǺHC l,Ce]8끶F,,Du&XQLmuVz itbgn؞_>Mf]j|`}ڧ{Zl~m'{;vlIäl&jJFh 1-^b;a.a6z\*Ux-z!N:XRObn:˔%+:+˖*-ٌɨo:.&i/ڮaoe,IQO醂/u/ iilnO2Cԯ/Rhp0n `x!%^F",*0[nF%KX.!$Gd0Pl0yp؂еZyޱ\DjnapUl$VRk|+f#3ZmCFVْ ؃풅Lm.|؜{8q$ EȖ*AOTV,[2>i2c2JyoO )cOR_1NTJ;$mNY}ӯYA "e ^$IXj ^TLaDˆNsް̎,]JslR3iZ1Jho)ZA$\[o}$cUɓ1ɔNm)0sS8sR`w|"*k1zxg꘳C ([4Dk:F<$+)!u%5jh3<J 4KbT޲L0,nFF@=jP7Јk+@3 4\KbCr(Hkp.`nuu h0 EbabANI?{l`-eleE,w20@/"ofGi(nh'*DRsja;?lT7..'BܛAPm|3^|oɜq4MF̐E *P{fgfu;tv2by7Om̬,wru}w~}R#jixђ |L0Bc&lwZS8_888o8ˊw8ʵ50P~80Eސ x8O^vW.rV9 S//e+ʂLR\^r&ooi_OwWo6[x7|4{f4k!6&'Ϲ94r]\-Nũ qC}V:o:-A`d :Ct'׮:9a'NyNaC=7mʜvlj:;;4d&dwZx,iwN7ȳO=-)|@Knc=`rK:_Xȿ2̷ xxVhsd*~N39"9^3S[7RCϐ~T`cT'[|Re9wthjE+igҫu7QǨe><5^A=SpDy;8mq3X eH@%}n(> E'߯~%@+>ঐN9J泧@ZD?"D͏m +4/0ડEL^Lڐ ‘69#h0kР ɘ\&djiJ{4+2* 8$R1񲪖*Lz(IΉB<l-M+CBBm;lp,r2L5ݔӰtK(-M$#U*QV-2"$Hzh$M4EVZӅlD4DIu*EZ&-H:p%qb>,X%y1Xl03V1$1>5܍=m̋ymРF'tJb= C(OIC_1 ydb@I<G9vrfJ8BWV2t)hR?"dD6$+"P\H(4# 5GυSlf>͙jĩW1LZmVE*کYU 9j*U&5(F݇ 2VV$+޴{#$G.$&a u:ɣYiG).k\[9UWR#s-i%?5i^KWrҥE\fE)F$lKJv] 9IG4iZ^]+uii]~m w_]y iEB|'7|~ѻo \`sG?P?.H!xK/eKJ!1Z8,.#VRb1>X91ucx5O"$ȀҋhpO|RSЩ%$)p4I ]1+Rf7sꆄѪVY}<{u AC^ך S4-_!xe[@]-լA]]Cməlt^F FܞQh$-)uIGC炄e 1M C^q KA}EiHTOw9rHqf'Hgu-l:a󻮛\%,I<]oD =0SUK(8DikzZ6ɨ*֝uhY,k+oJ9X%QK䙦wUWK;_b5<ǥ_yƋ!)=YH__B՘;c5C?rݼiw*(/%/ɖ^ӧWauVJ}ޑ$ |53l?1=ҥ9 ͦ:,C)|;C]0^yt[ك/qt.4VybRN N 1+-h6Eyfy+daa))w5vZ1qa K?eC0F~ꌃ~ެ1:`!+!f RJo+g lj]e6#X*h-*oD?M}RIjoEN#^{5p|u$tp rɇr 3tQvsCtKWtSWuttWu_r[vG ,,vgte7-Xu%kNbKOV1Owuxw ?#W |--!3|ע+nLidf ej1CF9ϜbtTB-Qy,59(#r!`!Ö a]}Kw|їCMp0b$%C6r4p&P>*XPL(aB!4:ct 8:#NxNv|YTt1􋫘pV|QU{:wyg!1TϒN ubAP m$("Lr>po1P0P&]D6+9N B8*+mwB88~N?-(_S6t$:PM~uN$Y77$~;w{#Ida˘[UW94GT+ BE$\9AaȢ{W'̮V:9ȂHHQY6^V#'aV3:9jPs 嘎t1LA}b $tf4M*uӑC T[&5 Tiԟ.H/٠qpkvr&Zwb98{CkCX3o=czb.Uq[ m4\Cd2(A,sL.R :f?8$(Zv&FYy?^;~EIM>Y>]~=>[^Q~_s@$~^Q^闞S7L)G߯~볾^^=ɾ^^> ~ _ m__;?=$?CQWY'S?]goe_iS,t"5HO???$}'_?__?ߟ_?ž <0… :|1ĉ +ō;zDOǑ$K<2ʕ,[J̘ϥ̙4k*h_Ll4pީD"~ 9l/}7͜;{ޫXoHǟK>:k輁J ;2W]ݼ{L?Ϳ?6-;·E={sq>~=>H ]xZ_(P&A:mB 65aGtG? qVI4xؐ>S>JR2z3b8c'J@>G56 !Nj0%KKP]9dYx`H1#X"NaYބKR=`ِT*jGXhb觚!`ZPFi&CW>%mjR(:^:ZLjzfxNzxa}n~ u@ʬa뉕~NTrb4֭;Bkpj%.Rhc}\v+mbĢR[i{+Yo6K`nN(vd# ҸkPlydvu ܰ9Y7ȳA7pǴ(F*1O z1!6r˝.s}NlCc˲yz,tߺ{c;ikpI.ՎogWv]PȌ>Zky3:mcvq;7bt%ewr*teCF<0LwfgJ^/-VB3::~s"~֜py½DAB$5Hj!o NB QaEU*4Iɀƒ6xM~a',fɂ.6( բ,~s";y/DLEnN{R z(+S:;J_88JqX9Ȕ&ɣh1:rčDI~S%r$D*BJz+:"yU D"FFr$pI4V&&XBS-dJӡFȵmЁ)I: 8 UHD-IG`t5rS(u$bic;'6I%mfMoc[ SFA mSfn3B!ψNI㛴$^FK(q&  3kv(Hm遴I=iOSS\$Y;LKT(5OS>sQc(6cZprW6M9٩SiO[uOG-kt͔&8a&X&3IT^A]E-ob J]{;ھwՍ\H.@3ѯk xY+% Eijpk WLz8".uHl#*noX21jhl{ÊԱ%~dRd1Q$ɟ#LtAT=&ɣpԨeH 9>%3`hZ1=/C>QXv &rL.\ yP f~nsH!Y~yZLGwj(%Zrb9egVi*pL?5Хs. 8%7RKg:pvCsrBT;NjZzT iPi,@c&Vd }3[t(VG7lo=er<|G > ox#>m_<Ǐ=:+c;y>E=n}~o_~o~ /+o~SKԯk/ϏǽE(H~h Ȁ hh'Hh(ɤȁ!(#H%h')+Ȃ(h].r1(3H+-9;ȃ=?A(CHEhG胪5ȄMO|PHUz!, hd@bP @ KHŋ3jȱǏ CIɓ(Sq$ [pIA@~r]"$@ZF,ZdB ͘fƐny {X< $B#Ȃ=dbS/D"a0plcP( XpO4$Ba% JhBBA ß,}% 8.dbI ("E۸s,ҰET*DbQУKNO%/n)Z$] RHQ`hDڹ{WᏑ\"w(h  I hBءB)D^!^ dADB_H ⊁(/L1u/ !DGp"PG#eZQ&8BT4 U@sXG{ǚ~&DYtix -_IQ TpA ib UU~q P%@I a U t> d)!_xrP"BBX N,B_\(B<)̦ `$BR$Bh D#0lyWc-EIǼȸﮫ/E?5i-\ !z?)  R?'TB Ya$#S8/آ?dE P@G %*Y\ IBV# 9 0b S4,q%7 d}p Qp [!!v; d7=]a{Сta{rI]>-ႚDF /Oesu u~4x^ ^#_dz!dKyD hؐ#aTBA_<ۚQ# J ][dV!LK)_l0|F{|赦aiZG@Эpp3 xlmp w Ƀ X0/H#!  (3BDŽ(|E l,|\/.h'! 40E*// &[Z6BQkfC HpD* XW#XH !G (Pِ~\A3Km\(@%[~sDa Z@А%D r!E@U*Dae\.Ybr#+)&BmGȂB9]>zr $? ("Ї@,Vh`ч,G}x&`5jvDh>!9D DE6Aj"s"(dzm"$I0VvhG ֐$X2#&( QRΖLiAȴnFw@N`8!pS5O~ʠjDC=()G^`2WFvS FBscoN RZfJ[*‚"]d=Vn+YA^7z6լFhG{ggKBԯl+f#+Vf.q[T̽tK].ׂ W}{֫c-{N#--iW]|Kͯ~LN`!臄SȚ'smp gx' W#Q8[X2>1_ SX N&;PLXβ.{`>`*hN6/9pL:knγ>MB(3F;ѐ^'MJ[Ñδ7N;X`c~˦.@.UнgMZ>vkz8?læ^ (zdMj 6nc Bݖcwax#FƝ&\"kϽ|={HĭM[i·w|Vu$G, 0o#D[ 6w[-D`)җ+ G>AoObϛ.nD@؋Zׅ6L|# ͮ;߼xd~(r^z$Èy xho3|آۀ;"QG%{>zy>w1˭4G@avcmG^  ЗIYck&u o0}npmw &6`%~(*(es.kP~6M 5n@PN.vQnr3MP`NRp5PߠwsWx2kw8M0ke.6h/x8/D}j q+|؇|6t~S481k bpMmXpgu k_wwz`\zxk kM0؆hȆg(tkЃ'xd`0( ngkp{vn?7 SDnM2 |MX0 DM@B:DZFz1|СL ٔMR]tX*X񅜯.ڢ-j}Hzhjlڦnp8*=9 Yɧz~Zw9'Ș(ڛ,*Bgfzɨ*:_ʞʩ,%j*z*ꩶ:J d jZZꩲjzԘ0p ` ZyJ筠 ֚պZzڮ&zԘʯ溰ꉆg` zP&{(*,۲. /;.۱6{{H;J@@B;D[F{H@L۴wHǐV{XZ :^`b;d[f{h&K&ۉa/p۠t[v{xz|۷~I˶{,s;R ;[{˯` `ѲzV{.˺;[|GJh70#qGnp[Kk@yțK;kvkmk1&k.XѾ;j Z8k;_F7+ %j [N;` t&ͻ;;Ŗ:٫R3*0*Lޘ ɀ <Ȑ ; ۰> =ʍg]*= [PPW~ n9&Ѓ$SGgmr 8Xm}sƃIP| 1i6B~7E5GNKpU(Q^V~XN>@h&p Maxrp5rqcni8Fm9poJ;jbt^`6!o/'#lT~ꨞ!]FD5p,ɐi}8ސjݶ>/7խξnծ & `]'avME5 J@u:X-Or/|{2  ~(&a)(_m'0Y9&՝(ϖ=Owwņv7xl7v6xnw!(xwДn쾃.IO}U8z@prэ N8SPa \x>q>!v 6p57&54f!#[?o/oS0|4aQxwJvv5Jp?}?oN/mc Fbn?؟ڿtS ~ ?8~p>ot2.sإ\:oXѢ??ӝ+A{#I}T]IIR7}"ԄYRIt9Q -L<\ꥧ̒^ˇE ɔ)dV3:%%D$ Y]y_&\aĉ/fx_^hO0~0mkعa~Dt zƚ\U#g/fwf[ nCnJJ*MeJJ+o[DO@tP(:i8TyHtћwTg{Amu ]7ҙO_lQR<;g8b"P=?%rio=&Wpoʃ*˥|UaI`Gh6n1Q⒒R$= Uw]vu]xƟo W_}c 4Hf 8ۗaLMUaXbXw$\s5hWM$(0ݧeebvKxJY>{TOp0Ͼs褍&a6^zkmloQ{ijlf/#X.59ƛn4DŽ`"/)[mfq,MrNoiLf$.\l 1v饔}f*)gZ & & #N<$ix(Bx╟ΒRbz~{ \|˟nWro:o?m:( ^P p2A E\v@ kt$iB! PݨA,„($ )Bq$P_=P;#O# 1Dyyh9)n~7<,THE0Qc?f k:b4Q65 H8>kDj4;:c_2!:&c~m{Ɉ*U[ U&\mIզԩIqalUTj\ ָʕT5RWVkÃka {X&Velco,Ge-{YfVlg=YІV%miM{ZԦVemk]ZVmm9VmoEH%nq{\&Wens\FWӥnu{]fWnw ]Ƣ-0; :5,;^(F/`Q_:5y ׽}o.L_XV5~ϻ7}_^p=aX#&qM|bX+fq]bX3qm|cO,|c{w#/sTwGHq>o{G=ۃǭo[/})_|?oޯ϶ܽ7g|~_BOO_ @@,@<@<@Xk@|@@ @ @ @ @ @@~ ~܇, C?C@ DADB,DCyMNM]*)s=W@SE[ץn WbR\$d1"Ќ2ԒUx\PUUYuEMauԢ ڋ=_z x],5G'S\Vq_ _u̽f܅[ߺYWj΍`,[֣'hTR4t"HK\Қ@M]_M"hj)E^`aMPtPg% }RMWZhb(E,SWSXctMW-ּ@! ީMY`&Q >0P*+']xccCuB+@}X`L N/~"pbY9d &  xh )8ĺ8A&AI5J UV8"}߽P^}]S).fa~*b=Rnn P.l&~fc1_#% 3Ӌ(b7N hPraR,ػSvՋm0V 8E=Fڋt>[ e0>"xZЙZ?퐇ON`uvS/]Sbnf#BvhX~=T.[]ܽM] >e!"\X=d}KdUowRlSx~g Jg=MjNҹ)e= W v郦 oPX1 e?%VȦ dk5b92 6`e].f /Л6dƎhއX^+Y\F  Ѱ-C] 6V⡬C-5q9JҪi,\_Me Fzo W ܵzb?bu%tD`P|ĸ{c틿 8Uo/eaŹ|o| ɷ<, 6ODχ?F=Wɔ~H}Z FxȇXhTOfTz'~ / U'7١^3,Qd NTAçC%}䷏Al!Ă %6dHТB#r#Ȑ"G,i$ʔ*Wl%̎O@9 9p ρt=Dnas ]mnjiĶ0S;qoI0}(2-#J#v}*7%n2Ӝ몳Z#o4P2*,&ja lf?2}q Vlin%{tygSS}[W[%Fs ]HEqgo[ܳ_nu/-Ut@n̋/6,?Sg_ 7s\~?Ne A͍7~HE>{@SGi; ?;!Ql M.}(M}L@aOA6@C SBdq*@8%6O>ܧX\r6,0ч7f3iDu@DX}\G*"X"HP:;BCK| #z@b'1ltc8?#)I$X}"aX 寎L4E ?ZWM1?7'Hm!1SQƴ oT)LQ{淏a~ +QY% $_!,(#FgRqE|6`Ek;&>ɒd~8x'g(yJ"OZ9V&0;@@6r Z'rDψ\`Εitx>O4>; D s,):.vd;!XtO9WhSHY&K[kֳo]1-kc11hj}aߺ%d*eT { ©VTJT/iVi!:ӲÄU=Zc8imUBӭvbNcRW%[{Ҙq69iKf[o#KʭT=!XꖱMlg—gf]Al,UK_%Ltru};s #HyrY 0\\٭n<)uqل_0 lp0?!y3Y BQ0"S+olXC2B:9C A-{{W2L#ŌĨc=&jAq$۰y.pEԒ4ǸPe6<~Xȅ>.Dn4Irz&=x{t(i?Kz!A?ؒDHq@#6NO0:k.d}Ү nFpܛC!9cIJnBʺA6b4O8o`9IK^ˑۭsuT\E7ጲx6ddž>T Bhyϟd龕&[/Ʈw=g{{4'BsN|S;q̾A(+|0p=mef?ÁwSk?:$C<ġB`O0F+ w}/s!.uG,,M.>5ڜEe.zm;Sw8'&m`b|gkO_Iyδ^0gf/zo)~/hz/l3{wJwksx;U~=O]fF톒 9yWM`µО-nw4mIF0ďq nXqF)THDGĜ$ ` a# BA Bq_ȑfp 0H WRBDZ^WٍI_%Xa^MaDx ]_up!q  h\M\Q09>\<~΅7,B,B *+D})W]bȢUH\g4'>D m"DR 8ݙZ;",-I%^ԤGZbH? `V3*cI0#zIY!==nZMRCN!4d,d`c^S"%ifT&oi@fL582 \*ĨN DkSp&{? _ƜDPDh^MSO& AhPGo_$>%%#r hX(_YOȇ('3 zPr~HtZzZGP8(rTN`e!zDl^ihCfOftf"J@<"*bJL(-N-cڇ0S'C>L:!@2ӂۇazjCG< XEMYD'UG΢LΝJ&M_K^cV*.BI.HyH>tWhG{l~*Fa`'AM\fXBEbENF>WZD>ήe$r;ЪL7?Gl(hl*h:2*aʧ(Y!Z^p"qJ$Cƅ9&3wB;,iV-8pK1:G\vaf˶nMȩCCzD,xVjɺݬ^ɪlˮ k3'qP}vI0/v_Swvk/5? ل+]_&|P(-d柪d-b*=u6̎ 0 V )"mV+*`}Dm2nk{Ω@-h0;|-SbZkn皫Z%W2mbD[NҌVF V۲..eznn&~IgLm~a'=Zn/"]//y8\zc/) e\qf fXe!. o+!% E_$p(đmoHT]t  -Ʈ0"0cpqpHĦMQIg_PMlQN ٙeR0D2dh*0`˦lvG2* 8Ӆ` ZDReUqT 1p6XNp+;k]G( ȖA~ȵ:DѠM4Ǟy+wj*_c236f̊ GWA* "@ꇀ*ewZ-ך񌜠J襤N@,/l9g8 2/v2L7-4eBPuގSY7HB2G3Zg +a/vev fTcOndO S6qk1s2nZhϤc6kj0>s{`ul`?CmvkKXt 6afQtbk86|iosԙ>,Y?DtHp+pk ~.wr;v}T}s@`Jܷh7sND6{|7뉊AɅcU)j{M@X2@DT6ćFn>Ìc@8_XMv>( D>87򄒗# $8x39{2lskAgxiD,|ÒwC48|ؗ7 ̲Cs?248oz Dȟ +(D7^=N`C]Ă}xP{685$ǢkCT!]؜Hv ĥd{7lC {i0N$n}`^Nu>M8Vvg A8Ew%qO4:ښ{{G7h"Sp_X98;A78P=iyw?t?(÷߄cl95zYC.u|9s;ħѱEN=uqkÌ[z 5x9@:w<}7~;gjչɳ6d;(o9ADx<{}Y=xQ>lGCqLNT"D?:~C4@TCsǣw7+D79TNȽO~867y[/ xg;;x~ (IcUgل;>x3 s@h<7.9Ap|O7>_#-^?w?&П\XP`?IDOCm<>14yeJ+YtfL3iִygΔْɠ?%'uhSSVzkVNynoB^^4{mZkٶun\sֵl^{˰bFp`3>yŽŬ2͢,M4ϝ!O>Zd֨%V|Oy֐ s.S4M^rl(>tɗW|^_cϩ'ϼy},_.Ï; P3N?$sCOBޫ 3N9T@F$;A+qHG uTHd[m0V6rE'S؆6&ӫʟ!\S&Aq@\F' \+_l:mnPeQL4}t*ã$cI?,@O/ctAL!]E1PPXWrURuCI㜔OMq_L1BY|/c%hkrBYU!5[\lXמ .LF<5(]`==m]}i`}-%^MRX-"Ƙ}b&E6*]&d)~GmgFcb/ $砅:RȒ#馝h"eЧ}檱´zGS~លKßVk<&% ( ӱih'M2|dw<-07{e Z|})?T$ ~q/.@(ŞQ"'j}D!?r߇ԑwAuqT(xWzh Y=X4/H{d}zi}o!kJx~ z0% Q3o] AvoG7o1@PJaA:o!! n `I%eX ҐQ0}0$ $#X@`Kgp>)#yI [VZ[~@A";ԕqIt C/Q]r.v-D=BH@PA1%K+֙X2K" Jhr"&r6&B9yJ^D:Qe=77UqNJ 7RjN@Yyfmy'J)'斮ys鰠9hF's2F4Q v^Efɰ:tXw")ER)"hJ}Qa@t}RZQq'suGgCe2EX D*}u&_ bY}֗OK\f*(":5 BưL" Cܪ#hML8+ā?r6'g,C4K֔&_ ː"S%{(CX"[o,jDѕd@S:zï+m,32^eEj ܒv.·%7J7~&EH! ۔%MFm]JL>p@,U@O G[dxMqk o5J+|HzG7E,iɊK i?"GZzEHXVxbmq"!/md#[ϘV2yMlCٱٵt E"eD.rv1#[-nː8 j͛[4 0Jg + _:ZE$9=oX!3RzAF p =̷vux3Y,bqF6(M~MZ9}<-Ƅ[+=d%f/m8-jMe0!> 1i[nZ.,zY\Ŵ+@,RXZ̤|Qv"#m u埦NҢgI 2~ȭ*tg~{d?-lóA\mU*ѽXX͆mˍ|`loP ` эo[X׏Ɓ-HFo\i^g=%4 ېl7~ӭ7w^f7M`γ;ꦏƑe/zu&ܥs-J r ~[1g]s~;w{G#}c"w>R5Srz~ސ;^yQ׼$P۶^kjn޺ /-lfBধ̮Ne2HM BtDPvRԊ>'Ѻ\Kwfq!36K1 bB!^ +d~v&R:ʪ & 6'TBp3C2q'ށHsGG H~-Ks,Ψp5uxT&J1EqIoJV&1t)ґLLM}1v8Ҩ@;nFSj<HUs h0R ,** Ni8/3TdTTJP&4!HS aVhOI4qL,''XyRSR;uZ )P'5a`*tӦbCMUH@Q)?n^! P0!>LҘΪ`}$toPsSS;bMbB/vUmc;mu"]˘jC~ϑTTz UQYo̼.5JOI_ #q$a vaGoլR5/K(u"Cٌ\[u!4s)Vs ,F+-O"%&.v{:k") h[[ i%F/ECP*3=xIq-{  xmzcSRM`Wdr,H@n|Vy|oLwbr@XXly#%8U3n#@băMDiQO؄S;J8xITVe?cmxs8wXk8؇X _J׉WxA8ᄌ1XGx؍؎8xِ Øo UFjW*/٣2P&Y{ 7W,?ٓG9OEyU9MQe_]y[9uwٖyM1wIŘYMǙYٚYٛ1 2YxY9Cu9癊ѹ9ٞy95١: +ڢ/3Z75(3#\|9Gڤk?QqE{YcOڥsuzkoڦ}UzKe Z,Z ZZ%jB)D9:#":ߺڭڮњzA::S`W58y.{İeH ;t(7zg+!3X;CDK[&6(ˀM5SZg۲?H:Hh[k{[X.wx5i(L۹[Fe'ۺmG;m[%u·3s7a&`[G۾Fk»n'+$/(^)[tB?9EC;8_+(=@pbH.ٜCj]:e5Ȩ?ݣDKT)/w]ݥE|jt^EË}vmĢ~ݟ@==]An|SEeUE1@W}RݙΗ}~\=1SI/R߅E\˷I]C,\ɋع\>9I3HMFn:Xu|UH|~慦~NBG$郞ilBd>7sf귾`6!̉r+>׾UTc?8ŌRU8ɔ+[n:?,;{ :t4Gլ[fKzfUȯk۾;غ{ =ɲջ:{ۿ{>. ?_XY>!\ H`^!Vea"HbK!b*4?Jc"f6t8ȣ}:d(dFNGJ.Y\L> mNFIegeZ^~Iٔ`I&]bQj`ɔZ&G yzWVEq66'H 94(F螊קyRxiQwjiHVzyBA Jjʨ]Gjhj:y睇nTk ,^fF*iC:˲J+zHuK .]ʚiF k :-^Bbnf ,yVK[[j q:l.L.ƥnf|pɮk*'.;ꛯR̸>g7:(B[v&NtJ;XM”R4Z7EOo ]vj/kf۰M7r\w[ޝ~߂W3Y䖧صחob՜砏n褟騯ꬿϞ*(C' 7˗?WҋwVO/SO~柏~~Oߏ p,*p lJp/ jp?p$, OP *l _C zm4 op< q5 c$*q#(JqT&jq\ba0qd,}!, H A, (xʠÇ#JHŋ3jȱǏ C:/KX%@#$@MCF "‰6j@ ,!`#\44J߅* B P̱eeoؓ$QySU,B?T$ğL˒.k̹ϠC[&ğ,R寑DOg˂_JH )Tj ,[ (- &[+o\Ò vX_־un;wh& 6FI1O~0XP`TV U8P~@@AD#$@U D@IWou eQ 9gG@QwD @+'Uל?0e~if|I&jp)g :tNHSmS,TycI1tkH td!sS[kMI]A42@ oUU5)[DvZOY^&P)X*P7s sX&)н7hJ㬈*WVO^!(VT*^dwART gpB#`T9E $$D@zFeA?L,SW*ҶrEF'PA[ euSTksaNa̦ 1F,4 l0 : 3AL0 {r%'(XAyCS4?Tzk?aPA9>){Zt-,? UR󷜝ign+pe+[LBD-@& 2 #Fe],VU'mhivy^: fo.u,]o-:oMje;\ZouD ]AvY3$XG9\Gt2H7CB3{A6kn3Z"5쁛|~q-%Z>P';wWyp7_l&>q;";T3H4|(G۪~.9A>r89]s߼=yysF7Ϗs뾜9ԋ>tfHDKqC9kNAQ @˕ [F[XD{鐯HVE+\L{%U[ɖ*eq6na#:Qb%;JX5 b D5+ t DA۷~9YkA{M0˴P˴[+k %JHg+ItDD! Xy`jBڳ{i(e @ L{ &p K {ƛހTkސ[ [0ĵ3t0 _BkBLS_JCTQJY lS _j;\铙 @@  ( $ g:)l(F# 8Ȑ , *lV 5UZܙ4bC\j XA< ˭ȩř{|췂L<ʣ ,v,=7* <͆ *O* [SbܹUХZڟ[^\Jp =[3Z^ZƜ}Ѫ `pM]!!"`a}\(M ,Ҧ(M=)=(l5LU JO VLPېQm\O0_bb ?-)@i-h<A;M|rՀ؂=؄]؄~gm؂ Fx֎Mإ ٗ נ` `  h °  ڥ-PۮM` ڷ- p M ܶ۹ڪۭڱ=۱ݸmګۯ]]ʿۗ)m ݍ=݌p}X]~L ɰ N ~ >n~N \O.y ^mp @ -ǀ ? PCuK:?~'䯨6B>.WNb cb>d^f~hjlnpr>t^vF@ h|X:^.=ˁNa1aȐiNɞo4~^N<.^ꤾ~n랞 鰞>^~Ȟʾ>^>쟞n꡾>>ߎn>.N__O  "?$_&(*, y^ 0/0O ŀ 66^ P @E0FP EoG?78aqTx$ā EB%1A N8Nj3:l+H 9_Њht RQsEt(THZhDb굪QFj%(bjŪ%Kuֳy -հv *P~]mWF7*YqkrTZVhfѥzYhڳnzWa[ӾjZN3:)l?BO:咇;=wŏ'_yկg{ϧ_}Up@ 4@TpAtA#pB +B 3pC;PA>qDK4DSTqE[tECqFkFsqG{rH"4H$PF%tI(rJ*dJ,rK./sL24+TsM6t҄sN:sO>O tPB 5tO*B "PH#teX(SPCR &("HFTV[u-RG uW^{T '|d_Uv:ǟf| Ğ.Yn˨jY4[vuWIgoLaw_מE 67L`vD#DL0dsc c!$uB)L0^ RӐcyfd}YwIaR6w^ffXF{9`hKoY=hnWKNw&11tV{evwǞozvEؖmn:}yG- bvHoчndX0a|s|G Fc|Hj^4E sXϽ>tJ9P(G}?0)p0ax'*Zqz~go?y tG^By7!1I(4 ;dܟ#PἦGɨQAN?P@ 2E  z(6DLT^$ Ưгv`c~i+"b84ѯ0 7xY09yEHC#oMC销>wCه#y0*¤P(A1r8;zr}3J'KG* $- 2 .!W %;D#Uli2C&!RIg(*$* )d#8?Z(I/#`0]H?},0i4h 8HY)7D}X3FQP8H#& |# )3qC.S\h((gы(3"*zj3~LA6T=^s#"Tzo*J!M0xGUK9}x(d OCk J%"9f8&/Zvڳ?/VTvY6, J5=~ﴗ%gkU FfurEm[.JWeSK:' A֥osP충,$:޺vэnE<Hܧg;XtV.owgH$ en5*l?n7‡+hޮ uzެjSpfY`ʟQ*jiPfI[V"Hq}XN%Ju\! q\m&OXX>y@d~V59~bcmZ#gÈD,Z?khK@ Ds @[ K=9"f+I+AC#*@|A# d$9o౬LBa8 ڛrSB) pI0$B/tB3=;C5L4\C76|C9D8t1C<SkS+<Dö;;"DGDCCI:RyDL<2>Ĥp;ORXAKz{;9yQ#zLEDEUTX)Q 1GBp}#iEEm^а_7IۏaO 2 Dj+tj,zF{̑هG f{9 <:^'Z H# GD+E(j)Y97:BB vJZb-ŨyJJ"N?m:vD=B}AGՐw@*E% TZ}TԛQT+0P PDU0 tUVDQ=͔#RT0áP\]}},zvV B-V^ Q~`eG]3(lYwAQe| 1faƭdh),w0+J2ef歩e?|#j^f.#U[r6oq͸v*TvgPKRҠct}hA|hnghh0h8)\~>ihN>Li!9'H0IY? fiYA<M%I,*{e(\NMi|Ꝟ Ajm`8W" [J\(T\TRYiqj=RmPۏ{h^"m2xB9`0|ϊBjB&OO<£ںj59宲A$ em ;krk)g?kA6l護3;Nخ(u&hxծ'[<&ݚc@!$#3el3d &I\Y o&U.Ԛa7`BxﰴPq뮮 moon3fB$5|譠>gdT䎟& ~8qt13mv]62ߒ3j۹2>n&k/v)̎Sppۊj&7i@Eh棲N<"J>)tsorLsPS8'co=`s1j۶tissLK9У@0ve xF3S? tWjYqޏ/dvj6%gGi5ovlvmG*vpw'wswsItt?uvwjoywyww%)w6x)4DnWxclx\'xcxFygPOfGyOϕwyΘvyN|ޯj P`[%FcNWQEzPQzG (Ex.4hLω_+)z46Fvmg{w{e'}y{FLajAb9e7|"-| .%gF%^|]s|۽{zE-AOЇaS|w>$ڗdeuׇCcvZ`|.6KN7" x^yw~o>OWw'ƨBf#iab+h „ 2l!Ĉ h"ƌ7rT"ȎCn؍A( \ٯ$]NRȜ I>YgI="–.%iB~6uiӎFQRH`ǒ-Y]$/P)ƵْLwmگeRw`h3p90苟C.]J/|뷨e:JhJ~w_zhف *(JD<6nÂ{DGD\jVDRQ5@y`z+zm^SUr2EHXxA? At]ө%4Ne#a ۙD myٕU?%(ϝ(X-*g^YYE!hg\jWj)P!TL+q:2Q&^5']r*qť&<)V2^uP:^՚_f&)҇z*$Қ>ld(^P2VH]꧴{(EF ,|piUL[-p.Y׃$Nڴ E2fiv+E{+yVUЫ&oUR<Р Q[T3v9"zSMlAwn$nڭJ _ĭM5̪檼RMgřj2Է}_ԠA9!WgX?5\c_-jck5ήP K@Vά*d?9&:i GQ:5wA:}|)(L\MҰ$e ?L^Nj6,fHСNID{JrKxWr8 dT Tq$8Hr(Mrפ(ZS.lϰ C+,DC%F$g %)R(e"-rqMRx`QhF˭n|&ȱ =~(A*˅&EB(mJv񪅆(`@`LIDwւt^ɇgFvnIXxjԫ?z{[FMrM9I):vM63`\bXǂ] [ $Ctk朮?EѧvN RL&Y, }ZE;mBqjmL9ʌ1IDTӞN Q SUƐ4c-k*ڎ5s͹Z5:b5>v-Ge#ή5iS@̆ n]ms;Ҕv-n7Y}6;~΢Mxӻޞ4o`[77.pZ#|S\}<]*t\M)6.mw\MS/(*Y ü昖d99σ~IB?0#d3Rꁹ+uE[,sa^W;.]do;{o;Ku=~_(o?y\%:<3Ի]e%K-?4Md:cI]}EῚ'=",Rҿ&|sڮ?{to_t2g?[ƿy>;~?]&`_)>FV`Y e NE` ݛ ` `٠R|`Fa .!&UD0!Fc_VY!_n4q2~n!!!!^a*!  !"&-"#ƞ#>E$%V]"&z&nbu'N(")&)"ᥢ*+"޽",ҝ,"բ-.""//0N1c#22.c534FcM#55^ce67v}#8R8#ĕ9::ۅ!;.:cŎ<#>>#??#@@$AA$B&B.$C6C>$DFDN$EVE^$FfFn$GvG~$HH$II$JJ$KK$LƤL$M֤M$Nd$OO$HBb%QQeB N"%S6S>e!, HAB LHȠÇ#JHŋ3jȱǏ C:1pAI 00@aq&dA@?ȓK1C3Ҧ$t"Peƣ\ڰh V`ÊCH %˶۷pʝR";Ъ?E}@Ha@?PPֈT g-"`AJНM۸sۢJ!DoAjq(A7>DlP@~"@R)f3Bbx{˟_p=/jhJgPEFC\0T@PW#TGJJЁe'O,l-ae(Zd?$A. `E$b#F)UAXcEONTViXf9{GYlp dJ7:teXAPAy$KL4#E/LTg=AAj饘rTXAqeЦřa _ h@בw.U*뭸檥민Uk챹j"F+Vkfv+k覫+k,&GA cpGlQE)CqF̛l"_2' t쏃|@\HA4A~=/74)[dPXz\w=WM-C;_gyt^`S4u??DAY- o.GtK4w؆ @+n.>q7;Pzvt$YZNl 9]ngo|B@++/Wϼ4o1O}_(5p~W>r0\5x vWづ$ZHb{!f@P8< 'ʰE(DQ7<" qN")NE#Z̡YD>q`ʸD6bэiT Dцct IBL"F:򑐌$'IJZ̤&7-q (GIRL*Wʰk,9)YrtH.oˆMof/ٱ)HmyYIx#2CX+ѼI΍dS?4Ϋ fVO$>"o)[?"ςӞzAfO-jXzЊ^WRhA4J"8;W'.JLei\L4h$8y6ޔ+ C%ètITDP*+"-VF ӧiT +6tUU |ûM/vI[}"2;hꖽ=^p{׾vHj@,,@>TCdba,0i`Ex $&0qE8HMa#8Ƅ `md\4ޑwyp1&L`tgH\@H'&2*K;w#]!<=Y0=e·>*onjf8OY4jkA7}, NsY Y\χo.$#^0 cNm{?# gm1zvnWے JP&GMѶoN: TwoRκ>rb+,2-VۃAָ(OW0gNg6Ϲwf.=ї;Pԧ>X-muR͝[7erұݒDTdž7rov{inܜXM^;Ox h}]kq}gO.q=˽c{7Xx ؀RO{耳hw}R~}W|c1xH4u' D1Z2BݸT#ksDe6x8/ *TZ.Sҥ^*.`dZfzQqc—kʦWePrAgՔRSSע?;ZnBƎEx>Qy} وOGy.79oaǃh9&ZªJ9qqmZOQcXj3rHzv zȚʺڬJWfg-uӊ+S#ʔ6X*sS{:Y:}硌XgTz_7%=Jv)Cꭚix &h%Ziʩ!NXH1z;J~zTSh{%夨ׅ';*X [ :@;.p;ȲznNPR;T[V+xZknڵ`b;zd{hjl۶nkqs[ix+yK-p}ta[{,۸;OS۹{);{;e X/[k%ۻ[Q;;[{+» I[{K;n!, H>H0Ç#JHŋ3jȱǏ 'J0(!KB%GR3@h ) XȲ`ф+~߈%l`ã!jZЎ>S&NiȵٳhӪ]˖kG@|+pOD/(38/~kC)T1m#K>fFHϠCMdXOO[<& #h6"P:M>)Ë Aq.4?CFpV /cID?Fރ큘?gThP!]v EuC 4"At!ATJ kEIt:$:!P}@A(x7Ђi`q!EqqKMXlf wPN4 gDPWE8QhAgS؝& 8%IaiPC@b"jrmѧ*무Fd֪A[f<*k&6F+Vkfv+k覫+k>S$F'|1 G,eAS? elW$(C;P\&c *=1L Ӡ" @T\rAMBP-5ET7ʵA]jc-7YxKIJW s[ d È=sDŕ; `nN騧ꬷ밫x׾-n/o'7G/Wogw//o.Ҡy@rz~??WO @0#(uP#Ȅ22T0][H',ad*Wip|(!\C^'] ]uoysD& MK!n$ɘdeDN L <`G*I2f 6Ei!sCSI1ohH60YŬFTMAh93oؓKB.,BÂrLYJYm $tWZ9*w9,Nė*$/'sL2f:Ќ4IjZ̦6nz 8IrL:vOny]KJЂMB"hC' JH?aьz"GG (%IORz"+eiK?S5MST= O'TVC5 Dz.:BjƠ=5BDQ@US]iD\^[t 4/  W[kWZ5YXpWz~`A혇OaňZok"?+~8@S@QTnbl<[=vI mDO}{-d˦VWǝm˒\ bJc!{Pp]q-MT׾ Č}Ӈzac\f!62+YǁV" |-`̷EhCڈ>!G,z ׄ&CdB1Ӈc>t#U=0A!xǍs|lc>2_"/~c't?&[yX2b9R&s4oX3B<2:߹|'`gp(΁W E>hqAJS8*wDŞN>^,(i2h#D>!S׺>Ml_GNf;ЎMZH\Ǜ ZxVc8*N\:xd5xnWuVX_<"M^s?qXu =v uKx_.cө5J}Ẽ- /xU'3U!V{Uui9aϐv=r|OyBm]L2vTĚ~{xGOқCsoODG}ۍG[z/J}߼R ҫn_zHho긿bri}1]o˿0#/:@xHndU6Dn /׀8X-x}'y>QEX~f\Xȓ~'8J,7E(JH< Sy.w72+SՁEMyՇb8dxhjl؆n=Gx*m2t8^;G|vX*x᱇q"0Z'gO`qXӈ##g]tg9Z2"~rqycYq~U,G`!𳊓؊X'8V h 7.a[GoRgRb|X,xx؍?|ja6ד13D8hU2p\1(rwg9|SJᅃoo/5X3ohx9tC$Er꧑| 0$ g1 yb3ȑC(R'BWS> 5HLQ9TYVyXy,<[ـ]/r&_$53hY9L?np+ji.sx=uYwI.{9YyR3B:)8Yss7bә 5NNIb6i19Yyy›.qz}XI~0#'E Gɜk}d׉BC靖#Dӝz)AhYEG7 rkxؘ'wr+$,ܘrY=)9nӞ +޲-":$ZD&/!Nohg!-Z/h99@A\eokcaAPoĉR;*B^6Lj6| ZSL/j]QڔrUr6G[Q_Za@V}զ9EiZf@1j&ǃ+),mèUgkc:-74 [.{*قHw&J/:Z(iʘ4j#=9DF$FjraȅlD 0˩ZwH#SX3Z!2\#)5XzKqx zg9:s>yvz')oJ-z{jXSH(V'k#"c: I5P?9: K'|Ó;ZLdu21J{A*܂Uj}TJ,aRO[V N4{Z>P[`x b[f{hl۶npr;t+v{z۷T귂K,|[;;K+{ 5۹ *[ -ۺˀ[{(u {Bp[{țԻۼ!, H*\ȰÇ#JHŋ3jh "v,8£5ld 7ҟ%x_ 7$8!ѣH*]ʴӧPJj&A *ĚR!L. ruǂ&bj=8!1 Jݻx˷µ 1@  رA,ڇ( Z9@ e B@p~෵װc˞M;!`epφm đr°Q9p1sքuh[Oν'pC <\_禅xCo  hi'ށ& bd^BeN]@`yC} =Dt$pd 0(Tی8dm;,FDnkw{Զ.A2u.&0F+F!\tWZqpF!0@54rZ,0,s= %,ps>= ]A<|tG]4N 5:#}uR?uV=Z=5; u`-vQ+}#?Gޡ~d4Ȉ@/ {(!ǜR \gGWa~D:0goaȇ=#7~ xPl\>F? d֘uAɏYoFUWhAo7Zwe{ 6g^|j:}NZLۇW/)} 6'HϾ;ma}Z_W_&8uw?RiHxs} ؀xAiF+WwmTǁTYH$hBtǂ'nm&|wn"#x+()(zXF@GG+>s7ȄNXAF~%W؅^$b8dXfxhE[jBl؆f"@Nph/6+tpJAr|k[HmKXVR# FU(?p"~r8|0xjhq12=b8%!}N[pBX$،(R\sHyӨ2f@ݘ0f.X+r k`EAV׊BC/xwZS䔁0wBԧ(SX`D I/X!)'68|P!)r0+~`YZْ}X)Y0v<0 y2ǔJI'NR9TYVyXZG?\1^AbYt}AhٖnMuѕpy(trYKzٗ~9ny٘'yFeٙRb%7TPrgY&op MblXMy$FV)/ptLB!Vk؛S20Fr,?h#y,Ygn1H9D釪%Kɏi%i*UXS(~̧q5TC$Ǚtч j%YjrAJ%ڡ ": $%v2+ʢ~YSyo7t&p'Lٟ6*G&:1|*~.|ƤJ]q)1IjUbYFjQ(WL"֥hʎpN'Z\.'B/J,tzڨQډ1nU QZjNuxaS#0ZWrI z>Xsb\V):0HYq񦬙%j㊄I}OH BpǮѪ0Xf.X9.s(OҮ*p%hKwz[˰Yj i|QPA+&Ii[ɲ2;4[ 6:p<%ZB[F{舴L۴NPzR[VX\`;"df{|j۶npr;T;vw#lʷ~{/{&;IQ/۸;[{۹;[{ۺ;0+wG!,H HП , џ\hʯ`m{CY}e%,?-/_ݰ~Nd] d77FlpOd{pa>k59nho8CD)b=ejE0.\j+ !3"A !,M" oA,X CiHqA"8`˖,'|&͚0ot Lm9SOCNܣ@Lҁ)H:^P$ hl~UЁ/ ¢awn۳Ad2,> 0ηO|~C|4sr͝+-ڏ=MX>{7|"58źp =?+?{`JG}峧>Oz@!,R) d1A*D„? [HQ )lX?p2GR~Ra 2|QFwt'ӃKkr*UVVtJT(ɮ`JqK (|5q B.)AͮA-zKfb˚l }5Ä"ɱ4@MX1^B}< 0ݒExAm߾m;{m{.ݶX1{xN8w{};J?oϧ/߻[ LF;72 -Os,L>]6Q SN2aM,~5EgaG("X0TShWha@!,\%௠"@_? 44((' A C`†b)c D(6ⴹgϘtH!L~P"$t_>%tX@_|2LX _@^\c!Ђ 蛉v]Do&D`KҐBqAbiy )nX2d8]>۾}ۖH{.ݶX1x;{}KJ? Χ/;[ L7)SGĢ|G G|/(٦ot)8^h@]a?}J 0E@7?'"X0ԇP8Qx`@!,]- G C-|H‰+^ĘF~H%OrƖ.=dr&M6KJ̙gM8gΝ0<ǃ"`j{"JdZ ؗO oa ( (=@7Тw,4z^]Lܴ~0){0]Z7"x4&΋0]HÒ!v/~۷mQq8tޥ3&/~g/o]pGoIg{ؖS6>}ב0(#\`#Y(>8~as_I}J 0EtW`I"X0HUH{W`@!,n$ G X*Ç"A)ZƇ=~DRȂ%ML#˖_f)Ú]SL8P"$it_>%Y@_|2.K_|`dMZ􎅆|q7#-Ipk0ojGatiXR>]˘/t!>~#+KlX测"ݶo߶ּǁލӽ{n[,ǘLH|v%ÁΧ/a[ L6%VGĢ|?@pdz_PM菁xQw=}7DMD}^aJ`1X`bI+~q "$x!,| G C 2|H…+^ĘF~hBLG,`XU7<$9`_>%5y`}ɸ.!Q d{"< 5Тw,4;{S~31bl]Dk&-K=L.-KC _hX1 ^B}."wÒ!&/im߾m#=y|EYot.ݻb dE#y7Үd8բ?+Χ/߻[ Lf`kߘ  o ,p$˗n%}L  ;=7fMD@݀{`1X`" }yh+~q ("=q!, Hp>} W@}-Ztɛ=} 6B4ĺȯI P=4=LCpa;5ij̷mNa[HShC~ɰSTիeWbɰn-iZؚ{=?o·, loe˗Tx.L+?{`Jt2߃ًf~P`v8#'xy@!, 篠? ܧ> goۢE+oX (!ǁa `˷mOMa租w)/_Q~l| N(V zͺiWn=`RM_ցEyUڎ1Utp 8pᒽ߹tX C̗J 㷯!, (П*G~ #"l8ċdxQÌ"VǏCf_ '+6<ȯE(S%B;C(߁dv.DџKwmI=HUePɅ 8ZYo n;,om^J S>,Zm8(@v gW.*'زY(Y㝽o쥋-Y@K -7b< bE:ld1-oo\ 6;a.l:Ls|Xfπ!BIt Z>7 I7^D C:ψE^|D 7Q"P `Dua\H0%?crae 2ZX!ecefD!,( HHPxC"{XE}JP4Dčз=JO}8q  _|BTKwmPZ}Ȑ㡂BCaD- 74"P `tbDxI/\/q;qFaHcOpae rYT=9?DO>tOvuERiSb+Q@!,  /b \pa?a Ѱ"A~-wb~H}<.@@PTIP%;@Aɶ}RVG@@$kr2B [o0QAݶ(t0Ò @nAK1tɞ>Wedwod8^o߶ /m @I7]kX2Gc*}7 LzKkSMs:x')8e.ޖn=!}Έj7}PLLKO?|'v7("P `%;0 %u>CZ "OTR>Wߊ4ŵ !, HЋ /b\Ȑ!0hHџ+o*2;O$~//P\ G? d% IS! nJ&lA~)x mw[ap)ӝ<5ݶt0Ò }oۆd0)v=}>&+E8^ےxe~uҶaۼ%zX,Tt[Xrn mnݧ~j?oGqækv:'麾)\kCK&p9{x>PPn|E2_>D_KPD7Ə>a2 `0&;0 %Fcmad R>?0-O"ayNW~S@!, H*\ȰÇ#JHE/jȱǏ CIɓ(S&O%E,ElIpm.spfA㉐Na9HQ?곉sS`CPP{3&`SWF=v%LB:PDJqm͛I'?{3u.|QTZ|u[yf>}f*'K,03T+a،^y DL@ilbt.X 4\ݺuJzGi}Yn\bI>{37uOmP3nfuX?A=7NV7օ@dЇئ?/hbz@iYicJeSw6W|XR鏕XQz`^QHQEDli*QpBAW-8AzGْ wLpn.@\h[JӦ#AYQ>ŒuH>?fScى7lVt;q7Phm{ha{ϙI#DFe=f?sŦ꣞e">XLWsTfxkq5xmMӫLr, grDE@1>O  >Pɞ%jY㱔>=rL9L^\ְEXDҎ)VB+L|<9:7A=s82yǮ7G?@:3E2M !7G/׎R7|3 &l\D2Z_Mk"sI:`@ QB)9? &0 L\1 6 hz Gh*P,P"p{|#Hat!wP&6K\bF2ab\H*Z&%K`"ۆDL@QWLFetߠ0l:2q>S|ᄌPb,0򑐌ވKq2&cD} (G9,^,܆7XVLCR 7Xj@/|L2@~c{0d9La 8}hk^" sp) 8Iz-~b@>iςtz?acD'@F!,G*\ȰÇ#JHŋÇǏ CI(S\ɲ%H\Z $͘$o&&TZiGHR*)I:yztR݄86Z5Q?m wh]aBȴ-J;?=LJWqNd[%kMid㢀I[xbp^硼j/4DB\h X"L.*AjϔO+0#5b$=xUMOd=u_L WY ah|9?ڵX~)m6^ht{mbo& xm<^2А۹j\i?iϦ0q|-nc6To0Yb[i/[EɨOKQI)uW-dmhlg SD<_ #Qv m=!,G*\ȰÇ#JHŋȱǏ C9q#ɓ(S\ң?--|Ir&̂3cH_)Xf.AlzjCfE84-ѥN| R wL}L9=Ͻ#chmS͗+粗TThaz6+j@^6y ꠟ ԭ 1V߱bՕvwmk+;qle'dص bYwSWcR5v_!}|EVr/FYV"`j\OmdpeVcTb?%Kq5y/a!)^FYe2S WYE i&%$h&?r'Mو1`6-aׅ YRDJh"$͒)r1wuLe4 ugeJcIv"^*QuVVIPaJʶ訟/I#L/Gq78؉/V=iDK5`G5T59\˂Pݨ[j H́Vzm FީuyZp. Za^|YAG9k5kW3Zd(ѕfp(~#Dr3sT˶;=u};E-5QPOTXg\w`-d-B&T5{d=]Z-tNuN!A,F*\ȰÇ#JHŋ ȱǏ CIq ɓ(S\?--|Ir&̂ M6 9τG &"bެ9[Ν*yka6cIiTU6պlۮieKѭܻ'^Hק?>3A7!Fwڸ 2xS01A@"/m9 /6=Jz悮Y+'ٗEMڳI|䃊%KKfm~^Uǖ_/F6zѓ+e2:ubIy7]xr"RU'Qj!Rށ~Ԇ]|]cf8AM̈́7`}$zOV&{Mv߄tU,Y ȕ`qe%Z(Ց##f>fPtT>"HdS֘隒E ˁz&vӢx_gZ\Ucka0Y)~׀YiXi=[\ډndC9e0S6̑q WLٔ{/vV-gUzG~SW3ߊnEOa~^ɆQqruڤK(e雠Au]5da(hvg%1} &æ ,3O f8<@-D]t RPG-uA)ݒ?';\Q@! ,9⯠*\ȰG:087DǏ ^hC4y0bHZYPK4 jxeL,s2"KeB$TL9;F͊, yp[ruu؂a׶AhB{bAm JW+߉SVeע6Մx+DVZqWbjEhj|lM3%=75x.hKoL, A 3ÛR{[M+ظԵfJ8`ONDMeen d<͈ɚ}oGxqvGdNTE^PAQE@KRMUbqbf0ry1)1a|AfyZfAuDE Ij&!Mdr@mvn&*,&{Wnqe2p &2A y0% Lg7 yunx!]ϳ LE5мjrc[gԅ fҾ`kg@\/{e>Vr=gCMyFٜsu6ji~V)4QP,T`DjguX؈1WY'l-8MJZT! -n' RwG.WnP@!, `",H 0A ~@j/ Cj,/P>|xKNXg1xNrbdao>{ߐ0.,_ml6/4.ف01w,JL*i=~ }{#`҇>TRfmx !,s H`\ȰÇ#Jo>˸Ǐ CIɓ(S\ɲ˗0cʌ0̛!{>JѣH*]ʴS5m>ʵׯ`ÊKv$B~QˮjBZKݻxzE떟߿zspP"i80"Bi('˘3k ~9? EPE?qI |sͻo=o{No @`?[kνo /\E@' G@οހNۤ^u$|QuhfhY@8\H @>1" 4hR!X4! C?LvAe76P4>CQf\BIeCu)dhilp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬꪠaJ;Zڣ2ӫ[LXD,ވM#lkXB돶va ),0-^-ArN #(60@XsTSn[0=k/EP(D3i_Ʊ&h,< 0X2řZ!"8L3L[0StfN: < ̩3~@> Mam8ۗ:r#/`riKChDGh3@,x;J\B Mi68.: (ו;rC0 *y;x;d}X~o>E=Zk-̾~c7㹏AGteI/]J:X0~y{֧Sp|͂`3Nan\A% { gx8d M@ H"HL&:PH*ZX̢.z` H2hL6pH:o H'=o ȷe$"%?2Nr$$'I#IRR$&7!Mr$(GK1%*WV򕰌,gIP.T%Xnu9ŗCK;T0)0f$4fDME*T lBŗHZVrKoĜD3Iiŝ 8iȒSϼg/ys'?˩O\sL5ÙO}. )(6 qLDQS-4JN%5 GMjětYMkғ&-jas68{oR-C=@\>\WOy+6jBϟ겢OeWVL*ElԛVzպ5@]TRkZ:ӺӪiCczֽ2VF ׿NVcm+fJן⵭~,^Xľ՝ͬiKYNv` >ڈmZbђVM%*I{ӭշ+TaS֞kbW|jW7+VF=Y{K^*wjd)RZn^P6׽U/v?:~׸/>}b%0JzT>0K xe^8Y/ܴ71}_wZǡsTk[CsŢ]i{w-#0_@اRja)i-:U& an3YmHOrZVַ}7UjYȮ&5qXs.K;hsuuhq^+-n'l3̕6;[E{hvcimpxO hN1²\7Nn;v\|Lwwr^pa.CW7?lEˡ'M]^o{O}z.ӞZ /{xG7|.\n߫cO>ϙ_[^?7dǧfgudJwZ[*X8ouqQsQj-tb { e5k%R ZBNso|*H$8YUa~炮tksXf7'(X]&wO=+Wd!VMfeXaրw5XGh{7w^>(8XVWEi Ζjm(~Mvׇ~8Xx&Ϧx瀉DgvOzz)QDXs\Z8F.9hyeiXJZ?Dwxh~x9xd؂h}f҅z WWlSdrї҈Evx(}ۘEx8=.؎8jxFuH(H؅8E&MHIFhR} FceT`(OyvB08t{ّLtԐG^k8h,đ6F옓<ٓ>@B~̵oC @Vsi!MG-Fy,NtapxRtxun#PAP_c)xluhIոMj7ewjH6y9'j XtsFIq'Zv}Pqwid9vqXf4}g7P^XeFf%s(AȀqG|ytFXB8%߷s1cy|]q9&R;ٝęz7䙞깞ٞu /8PF@Y2yig4ǟ-ՁzyXtJ؋zǝ'gVJ(_vI')*ZPyvrUFT_2 * u,x j=),ɤz3#IocXB,٥^`b:dZf:[jTglڦnpߙD(vzxz tq{}:zꡅ:exڨZ'zکI:ʩw /p/ G9,1zpPpnzZ[wpPZu  j䚨p ?p :zS Mp0Zrj0 [qJ{fzʬ!గۀ |1MkJ -wFWuIY: 9*Od;:wOKFnl,we'זyQfuҖIzחcLj8YxUQxɚ_Vf":yyؙ=թ&Qd9;ȗ /~(8 L6j֭]jFA(RN^tGKHH"L+E@.pY҉@}(xqDwwgalc[`cE ǁPbcݍsͻ7;q#/^)Z?xP#u<˂/V-o~ƟFZhAJ.HPZ0_?@h (qGEHH Z@ȉ){4 S(b K si]w)b1!mrȇ8p,|U+"VpPF)TVi%oڈ 1!d1HUhȀCH`~BJh5}vN2) ZUab( w4#q9]|& %!|ZZN#H(}t5aB#QtŁ0 HRWVkf-EY Zv$s4&5gz=~T)P& G Do IP b0L "_^e*צ(".jU/-<._Ŭ+f>Lo,ĘH  F*Pb@&A6[".wrmn(@ > )@(p ; %#2AZ%(o~ +RfZˢE*BPD @}cq~icxSh%J(x@( 13Kc q@# sM})ŐC` }Z!9F>"s7$JRȅ)F B4=|h@J+n& D#Lƙ̦6MEg@ѕ$V `Wb7vR& SÇ>~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJW҈b0BKgJӚV 3)djӞ=(؃@MRS} EJժt N%* )X`(Vәy5hMkCTUp@VUxk>պU :ZW "a :Q[_ZZ|Ee/B hҚMjWֺlgKͭnw pKMr:Ѝn6J@ bȐF``7xRtbAd/Dq`G叕RNFX(ﰇW_`[ؠMH wx 0 |~A:l}*3];L:o#)H+Lfn20F: (eXWue o9d^kPF7FWoްG ( 7NS;RԨNWVհgMZָεw^MbNf;>U-b![A^m `? mRs+$a7D}mp7"nr[ SPBIG pĢ 'pG)t;F@,^$ Ao*2/qe@?-0fc? $Bi(>М 6ȷ?} ` A_֣r{A>c rΝu7?^/`A VT? "&P@d8߃4pO= $ / ~w|a|!,q ' B/L 'K=Y%,h0e!8?(.<\o\,+Oli!0!H%t(_4 &°h( ,%KPX$˔aA z_ /1y(^<:Տ .APc 2Rߑ&u8I(9B?_T@DF#h+ )|~h%d4 ?/2( AV$z8FH`4r!/"uȟWR GL`RH|ʋAVXd$P:p&|EEBP_($҂Lܰ?B#-~("^A]|T P h%rC[aK(ȋME\=H88!)f兊I, T5 T]\E *0EP84GDŕ\`Aa&h؀ż X'@E g e=( PD~9Q!8B?|eCGO \EP6@G8  -LNiьs%Vs\9Z\XDŖ_d -3 xqU^dkd`3QdyYA5qqwCʘ)m2E?!]P1/qTPmpRhM`r G\0Y* M+E"bR"K#Z|alBaUGd!.ŵywaG/dPnm _ EKM^T Wn\Ḇq R P8SūA%E ] [LF IET ?~d| ?tPd\JD1AlP6 I!Cgf-E@|L P} tT '8%P%IxA ^`A \П.҄ 0 R0*! I_Y @ !G"'P9|xL(pa,_b8! @'$%`SGZ,/d0H 8N 0a ,hB,-B Pep6J@*FvRb+qlX= Dt8) vb;O4XFPa{CAF/i-?@Q{4+t>9roTEu {AA7!IJZd ,r<=ֱJlB a ?SF(׍uCT*dr#F%zh6Uy,!Q#(X:!(LLgJӚ8) S-@ WFt&QԦ:PW#pSR9΁6b6JV!,q cxGGŗF0d;?/^b d4YP|†Me?I7E[41ղBТE)jK 4ęA2H`#%72\bBBB ~R¥?*/lYFhEF[Tdye\NK(aYHp $C!@~s!/((@[UiH i,h@(IN8ߠ-.gbk䯏(pHĄɖ,gX"4xAͫ ~ MONA1nCh  a ,!*AJYl&-$APYL6rHZ d2 c6S~8a a@"[4R"WM@)xqBa…)T~[DaBcR0F0Xh by;AH@)qP.']Q{'B )(V%%"*@4G$z% gCEE %?Eq2yx*Ȋ rEEn AE X$R08OV\I Y~t6QL+TM41|7@䂟~M*\?l1 YF b)hA3`*%`w5 TdP8qEh"$ap|^ظ>~Y!,aS-MqM,"(2 DvX?1#P` J'(<4q7w:MQ|脢KXB,=Qo(6\@:(^ K"A2f|L(e@,CƒR˅8~G4HZ2?F^,9=ur˙A@8Xg =vODNb vXwVau&H|!TF"a`-1 }@ !HP eTVvZ4Ja|f#JO`ĩ@?\^jh[l G!`!/Rh@J#/ZXJA] G "A]X([)sM(ZhShZ00IxaT O !..|?9EXGc0[HU+)s3lQ  L"PV{O  $6PpSCPBmxqK驯yլ6DGw+x\7J\,Ȏw|,H g$~wGXq>VK./b<(C [R0L>LHG*K~?u,ч,~ 4c 7B rP4HVDO@ \^T. Ÿ0bZ~a!$ rNhz` H1j.QFI :x̣0QEI8XM` !,{ H*\ȰÇ#JH"K ($ {^ '%J(EF$qcGS򷇁>} II a : F#Eʈ@0@DL@6Ÿ@/ZO@ij!  #a˥+ 8 X9Q${yEL8۶0" /`q۸sm;n)m[!RJYF(RE2!@=-o: R A#/08(2HŠX ^RAnp]<@e&4QR,,8-r9sX!|rA6BKa$ ",۔TViq?^TԖ-\KW3gZ%V+P0SxR6)8G;`[|4a[)0V;iT@Y4EmrNeC c0!xQNzQ D:Tf#r(ue&24`5aIyF+mAqc$\?g@>Mj~fN=4fq(}ɀ!\\N)@1!hNLO`\hE T\^(a,QhM]Z0S@FX9_т]vmB1"& )96 *|ÀPe/_#0zN:HMA3|l5!A\g| PD.DXQ 4q|=@ 4fMx ܮE NH"*Bְ@  {ȗA`x@R$ T  ,\#0"T`< aogȳ g>@qQ Љ?̨4pTNp_";>ATE豏|>1%G>4Ac7)F2я 9D<֨nGfp]fD {C]X1@'5cG@Q/Te9vM )4JtL: S!_@lpw'hqs3ۦ>JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`~?>3{3j19v3903 J`⽂4A0½3A(D  :J ZpCxzEf .`=h 齵 z`e0}^a9"d4aPĴ AXR~h[e0aڋ fv?+7q̶5tF,  6f;{|߮}P#G>4-` @ ` IK2 (aw1h~xG2{%F,L `k8#X0u.ko@!,/ G*\ȰÇ#JxP@3jȱ~,zIIE\ɲeɔ*]ʜI!̘5slyΟ@7цC]4RP:MjЩOje֯.Kvزh_vM˶ٶp1Kںx7޾+ Lˆ+^ BL VdA2)3qi d{h;{L>mE{'aB_satiQXRXͿ^X1y_B}ȃ5?,a{/bm70U;lwB: je;c7"~aU8>SL1x'B7χȰ`"W#T# p 8$O(> T SN2aR.7S4AQy?:#&P|U:ړc!, G*\ȰÇ#F8Pŋ3jō CG(Shʗ0atM3+ɳdN= %У)D԰QP% C&j8b})MXf,/P>%|Q_ d{{@pEXhwPb ~-_6yFatiXR85wcӅ]aɐ xQ3|۷oۦ4ۛKnX1x[޷O>ES ! 2,H>P8\6(>xY SN2aO2.7S41?j#&0:9oڃa!,# " H`A 0\Ȱ?SrHP"$kدcłSBÎ? ,/P>-J d{Qx@gEXhWPP<>muףFЗUkʆatiXRiBbv )񫻵 aɐ {tQw۷o d{.ݶXn1xdm+smW {yK)i}h#cabQȼ @pdL_ZPMMB?co]gG )MD?}f?E#&HC~\R@9=(a]7qDbbA!,7 Qɟ0A %B2%˧7 Oƅw/AweEXh`̖ӠOn&aB_F21]J(N"@/&.ǯaɐ ߢ/}߷mkqon:m޷d8clw;lK)x>XXOXHO% 4 Kv } G )M"P槐Ӌ / !,8 `X .Jd7`_>%e@d\x@콸`/`.zBC>؃h7#~j joEE0o){0](UIC.YL\1]HBÒ!/}۷mt_. tޥ1&/ҽh/owؖS{>}0(~#\`#Yl_)^h@]akD%4X~a/2bL.ޞ+?~.IuMm_0 !Z,: Qɟ0A %B2%˧7 Oƅw/AweEXh`̖ӠOn&aB_F21]J(N"@/&.ǯaɐ ߢ/}߷mkqon:m޷d8clw;lK)x>XXOXHO% 4 Kv } G )M"P槐Ӌ / !,: )Dϟ V!C˧· Oƅw ȟwEXhȗ򀽖7E-J6„awiXR<5],.t!>~KlXX"ؗݶoϮK-UL&^2on]pG&;lK)Þ"f/>}0t., JCh y@{t9ˏSD.a s*NS~a@!,H)D䯠*\ȰC8ŋ!Ə 1ؗO o!SLX@_|2.[I3e|{q^͟  *mx^NLHM6„>u&L!WŎe].t!>~p'aɐ KtQ;[Xam߾m[wRnwmB3M`wؕ ~|VH?nSxmrӷ E^\#\`#Y>lAMB?$s@gAQ7S4ApXPrw`1X`Bb8XA~\R %bvhW!&`&XQ>(c HdC)ZJf]qVP@!,B)D䯠*\ȰÇ#J|`X3jȱ#DH汤ɓ(ؗO o)cʜ)@d\xGϞ d{?*x@hEXhȷՇ }WÊu٧F7R0ai, )غKX1]B}*FwX2d?]žŘ=۶ȃ8D޽K-V]L&^3M;wٕ ~A|azK?[}v#cabQ 򱾠d~%;M,~(MD|v-#`{ =%e v\Ǡ(,0(4h8<@)DiH&T?L*IM:S?@)eJPZyIYjeG]zFa9DeyCi&CmfBqf9gCuygyRB}'BJghhA>gBg]!,Y)D䯠*\ȰÇ#JHŋLq Ǐ CIrP"$+ɲ˗0=ؗO o1s3d}ɸѣH(%JL-zBC>`Êex^SL:[e՚l }oՉ&Li!޽D.cLab?Ř3Od<,a.bӨ26Б8`i޽K-`L&^M<3wڕ ~A|{ao[}#cabQ> dHU SN2a|FxrLD(;^z`1X`,$=%hNs7@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈Ϣ(RՏ?F:գZzjz:8 Jj:+~4l,F.{kNK-^+!,t|W/)D䯠*\ȰÇ Lq ŋ3.JdCyp|J(|#ɲq˛8 (J@ޱАӌDĈO:+d#LJV!{0]Z4c].t!>~s ٰHEx/ֺ۾}vXX;ݻtbdE:O뾳޷îd8#5QSŵ7FĢ| 򁾠d>q~%;^7[G )M"%-#`w =%%Tr ǟfMt!Qz!N("$x"#"8#x## # "A")$9Y"M:IeJ^yZFie&f fFIfzicXO@!,s|)Dϟ V!C˧· Oƅw ȟwEXhȗ򀽖7E-J6„awiXR<5],.t!>~KlXX"ؗݶoϮK-UL&^2on]pG&;lK)Þ"f/>}0t., JCh y@{t9ˏSD.a s*NS~a@!,suQɟ  V‡A!)͢q=RZ􎅆| r7#pioљF7=L.-KC !x+0]HwÒ!u/6`8w6tbMdE+7|n)0e>  d>xwyuX~ $d~Y&ˈX0گt{%dO.Gm<Ç/~w!!,tl )D䯠Lq !DH}PV_}ɸb|{q(-zBC>쥔Ĉs.*3 "p"4H0=]B}KlV"gu۷on tޥ)&/Y}g/of]p{wK)!VxXXoXHo% 4 Kv } s&EXFIvsϥ{yyӫ_Ͼ={wp}!,tk)D䯠Lq !DH|J(|诀@d\x1@^\EXh0ELyp@(g?L.-KC Śi"LRWpX2dê]ž۾}v=h{.ݶGMH^>{ºK{vK)È~cO`d,L,ʷo ,p$gm~%;޾~&ʯEXF j~Wwk !,oh)D䯠 V‡!ĄSB[~ ( >,/P {/.S @@ޱАf\fbDO?-Z3|D`KpҐ"*ҩbŴ"LRwÒ!F0/|۷m(ҷ޽KM?/}|J?3'C8|m)0eW.ӗ =8c|A6}lE~%;nј&'-o6EXF hm ζ'{xQRA$?!,fd)D䯠 V‡ !ċ˧7 OƅwY _@^\Oʋ\Z􎅆|j|x˝Lj3(Q{L6„PÄҢ4Abu )kdȆݹ(‹}eϾ6m8`J tޥ+&/ҕ|u%Á{m"O_ö2l~}ާ/42&|{ ,p$7m4 Kv =A~MB?co_~ߔ&o>}@~7ʏK# =V/ !,W])D䯠0A,#%BؗO o3( BF,/P {/.S@@ޱАas= Q袧80OÄ"4zu)ӄZ"LRg+wÒ!/յ{0o߶uA M]mb2"ig_W20{xK)}J#cabQ>@pd._PM?MB?Pco_Y줿&V;ud=%YgoM C!v4IY fg4XA!,KW)D䯠0A,%B ؗO o#( B*,/P {/.S@@ޱА`s=Q袧80OR Ä"4зt)Dbu )+/aɐ csQEv۷o*]ҽ-WL&^wו ~ 6@r>}%R`0"zXX/p#\`#Yt.(٦o񟁦xwIgz?bQ`J~Y7EXFy~\B=g^H*Q4t\qVP@!,>Q)D䯠0A,!%B ؗO o1( BB,/P {/.S@@ޱА`s= Q袧80OÄ"4Bbu )+!aɐ csQ5v۷o Ц{.ݶX_1x`m+\|KaX3EM>}0(_`?G G|/(٦o.~xwHwo(A0I֯ |#`~|{%]B?^R<蠄t MJy!B!,4J)D䯠 V‡!ċ˧7 Oƅw (~#ㅆn/YˏSDKSzo`1 w?,z=nFA}kL Dٳzɡēu?!,'>)8㯠 `‡ ćSŃ'Ǐ ދ P;2Тw,`<`o&4`sQF =L.-KC 3i"LLݰdȆug4ˆ-e}MmL{Pkwm5|u%c=ŋ!O_wu2L=ާ/22&wZXHO%//44@{CˏSDco8q~[/7¢ &3ʏKg.ڞAϏp͇P:RLip qA!,#;)8㯠LACAA)hE'BǏ ދ }<2Тw,.\Jf=6Ѐ CL6b+Ä"bi0jXwbD_2d0/kmmE6 +VA޽K0&,;{}J&X q>}R`0}bC >}0(>F G|/(٦@SpЀϻd ~c[zG߁=`l(`A!,"9)8䯠LA@!8} S`}Ɉc|{qR(-z&5\̈́Ws.hQ#bD`K*5 wbV Kl֢"o߶ҽ˻*&, ^>{ `ӗa[ 4si7DV -[FG2/(٦_@SpЀϻdׯoh${ ",H`ݯ`\}RWB#x>X؃i\`#Y>p=MddL";lإD<Ś7 S=P68a[X ea*K?!πHA&8C .葂!,-)8䯠`Q‡ċSBŇ' DXb<2Тw,4){,m~3aۻ.Zj3وFك&LٌĞ-`"x,&0]аǏۄc%C6ER}{po߶E2 Mw4ݶXZ1x9oj]W2[=ӗ-歶7/~ "y>{ߐUmXHm&2r".ف-mǽ=<~„hdǣڶht"{@Pa\2 6ؠA@_{,"2~ $R2 C\s!Q2#ļxы48̌6ڈ?.K1UV.RP@!,*" HA{*\PÇEԇE1ȱ#aodIJ,IAX!W,̙˜))8h(I˧1v,/P>\iu5_ ^\5֞[8DYޱЀC.p]{g~3a`5 % (&{]Z9$w0abӅ^#paɐ _{d'o`[F P7X]bċEؑ~tuKGm}+2 %$`} %7~y; EP2̃<aS@(b =죏= {"6pM`GX:z p 8$Oz5 G{4!C EN2l2Qn#difBhFNф&hXs#IfBPh~B 2e2 0$FM2шy"~ P:&gIJn CLB{*무!-뮼%R@!,*c H`a)\P?JLŋ Q⢍ 0?N\rB Qs0%O8SbОEMОS>.U8uOVuɓӲdѦ-˖-u.u.;f֭k޿]Wp\ȥ;w۹)Nxoߺa޼fo-4ﳷNNs,Xަ۷ri7nۂomoܐ̰sرo ۏÃȕ€!,*1 $ &W<@J߾3jo[ C ɓ'M\ ˗2M7qN|xy=>mɴӧPjH{VEǕ+zRY;RΒDKVXwަ%L_{,È ǎݹoy휷tإcwY)r~OdoLF}?/=˖?wwy 2!,*/ H`AL)\ȰCzHѡq Ǐ CsodŒP6,RɅRd8$|7Cx/B; Jt<G]ʴS(Nz&c:, uk֬ZrMm˶w R|VmMʝKw.(f!,,)8X䯠LA! |J(诀@dP1@^\EXh@^@аᢟ8ѳ 0]Z3 EE.cpX2dì\m߾m ߞӽ{nI&^*^>{º &ӗ-b>}6 .,_ 8۶Kv`ˢdv/a&\JtX0֠me"?aYX5taȎ!CF_@!,,)8XϟӞ =˧ā OW ȟ*` F.T831}Pp^GA!{&'(@ޱhs{5~3a6=-_#ۚ=L.-K o[!<.[Lca[~ ?@ExaWm߾x{Xc1x(9{zgcW2-1t {mؖP o+ň=qM ,p$˗ni BKv`ˢdڷ-&&`B7.BA??$#`2 m%4T #`Ga &_!,*qH`A%^ðÇL ?3Z܈1/`dI(AbĒϤK(!K19=!H/) 1'J SHjLjŌNQFV2i Pf')J(f݃,ش%]X֩Kw * a&1Z߆cʀ2⿓V͐}xanӨh0Od0A!۸xٲe p EQ{28ޘ /_Fo ٻӫ_ !,L3 H~3ȰÇ#TPŋRLj mH@"[Ҥˎ,c\Ř1Ѵ>t Q?*yP6TѤ~jϬ yYcӪ]˶۷pʝKݻ/˷o_LJ*2Wx)^̸1oIc#`ϖ RpU]ԩU'ۃK{sٲ=46xE{2JFl؞ ) 7H!t#RP1 J+g=7bP^/)60@X^n Ts.mc %5H_>ݳ !}x,|"yx;b@~MH; ᇼc|5•X69dv:^Z7$饒@C vy;JhB,F@sVFInÎdi;)7}NXf4)!Ϥ&E):=ߤ?M:jg;4 P Q:W:i7 `gy?X&}y͸Å a|ϙg ,dQYG!; & (/9ߐ7|s7s7"sq$L6\Hw}06`]ބM-D [|L7N+!,r H*\ȰÇ#JHŋ3j(\z"Ћ '%J\S( FH@L1’0!c S#J>ĩ3|(0)fϟ+Z2BA>G|@.til^%i`DZ9^lضL0TӨS^ͺװc>رh Y1O#%: &ڥ6Бu1!OSR|lg)"%G-L^}G.9SYz0V|!auޙbhBEbVRQꪬ꫰r$Dl}:'s4Qq]20![HDviB G(&Ħ@tgX[#}Ɵj$fؑvch*g\|1*aPw ,m A / ^|M &<z P $Hb\0E E K0?364Q A;7J\,r.zJ,H gh_>a@Owmc'H ވ4>A#)4}L#Ї"9{pEAGR!(L8GH}p(H;D#L9V򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrXH:5~c!;IzJ ;L  xS@L|=I@PZ|P{<$p D(FWRZNaH(f:O)mv)P HM*(_zИ泦jէ4VzdjSvx>0 ç]>*x͜XSJr}ؤ+? պ#Ǡӱ&)X[X $ec%KҮ|(fqBaִͭPz%0lxխrշ̍tIYt.5z xKMz|Kͯ~LN;0KUϓRXX(idC8(v=! )04o4#0P bX)2AL/0@^,=\̄H0 cx#pGծ67`'(p;,dxcBRs\-5 rlF0ʠnlcX6a@`A 8Pao\=h77|w 28Ut#?w=?.0K_os1(pSwqqXWkc7Wx' |6}x-f1WQX~؁t(}kǀ(xP0{58h#pz>@B8DuW7b a]#XPtY8Ѓ cXgT~nH>0PDWIpz{ߠ )GuXPYxMH;lPIV 1jEMPq "8%1 xk1 8c X~XP.[X˂ȈH( ~nQDp X9PP`#p;q8(9b Cȋ !#8،5bA;’ᒭPr0@{ X _81@P&p:1{P0e,Ѓ/s )R8/h0JГo 0J@X]ɉVq #Py領Rbx& bxc+n YA U jɖ Ĩa1q9[@e[YƵpfYy陠hZ,v,p&e9g)arQȌk)PqcSTIhqQǙ!IyYyk)9yMXAc~@w8~p-*$jRdQj ([cU!^9X n(N 0 {( (a9/0` a0~p %/p 8Q e)a\:#w_8NXgjisZ9ך2aL٧~{pf{ iQiV_*PM  `Pp[/p+#,!90Y:ҩip/p P0Iɨʫy _[ [p)4Ɗʺ* ѭedfZ芞\jhOpf>:`Ȳ2Y#HD+2 y`rHNUZѥC^ aTJ 0Esʔ 1{ʧ K{0mG*1QEX@u(8   Q&g^ %;Pt H@8sꚅ4&jz苣 pq /;k"{`;;Qy]&;|k;]&J뱀Ȼ+b&k([k*+q;khp[GψDѳ<  G;O9&UWG<q&i czigM{WGf(1{& j0$kAeب\jKX0P9\ij'O.M gOjh#[𐻽E^P`Bz 'iM)!VRnHX3\q7]&G|zH9I0Z LH#ͳS-nQXz;0 5qAP T&u˒ Yb_)NY PE¾#ʬ1ߐ&`ƗL^mV, vofLNۡE5 νT7{k, ?m/-M*/ˆL {0֎?Y髼(nVpzchM.U?ERjљ,`p_vxo^Iy/zX֫DY7Yp%O9,{j0!Oox9筼Z#pPe0# A[jJ R'R sڄp.POx[reOʨ섵]m=̋ofϗ?Og R ?M D7,B$&; G0yo,%UJ1eΤYM9uOA%ZQI.AC0ˇ E /<2tD / 3`ʥL EI? Sy_&\ӈ PC/6P2 `+M2۾)CcM/fkرeϦ][HYuM&^qɕ/%̷@Bdѷ&ŏ'_y|D,c}#س|,!{=Rx122ƏtrTRK]paQ.x*JaB!3P"a  2`{H-. $ >:Q7VBc(O4>bN4^|С0q jLh!8`2L?a.D@r %@ \mH,E`BY@c慂}@W_sټ-x灔pǐyے.̊h: Zj% =d&O0C-:w{ngۂ1R zhhib.#h3?Hr(Al*:mPJ0n{tK+T.C u?LD[|%Ƞ|dit꫷~( ^b +u=m5' p1/. viɇ`f@vO5+d<x.fwA fp&SB@5HEA^B\\ _܄ȰO Y(91`,F6V2ps&A Df6D(.4bxESMBXbE0Qc$cxF4QkMh"JN S^CQ{$զVr&7pHPIv0@>FR8cIp3 '!(Dc=A&yJT2 %!d'A8`f (X l&Le3Y w .0+]dM`A 1#ɱDH KLe ]"&/H3y nbr(p.ʼn_2p1i >-z} C6`/JN8ZPL  3iy*&&GBJt(X*ZS&u6N4$HF23.iBOUSdo 5Q`9( c0gM9V600fžI;ސ%:!2¤I_iWfVLlyGnVJ>I{emk]ZVmmm)8`mok[LFҩ=Ùa2%7`ʝ T.l~)`»Kܞ8eoka RIBEbbm;Nw/HW P BGo8- @uʗCT)} \y Q&],Z@X|Cqb o1}ː%J]XES6n}Vt`+0VP@bHWU, s(?,"wKpg5Dt&t_#Z.ƂnyhHGZғt-}iLg҂DheYӣ.L~%% .pZ&>emJRz( y@{h"zv ulZUq=X4>^pʖ7D*fQɶ)KD.R䚫q%e;$*@"NA[<+ɀ@F%!fhf= U$Z;9ໜD)W`&0'ʙ1T(]6H E|rd­c+1+j!Ԅy^֪+_2%nv?yE_]Cɺ?0l pBzH6R\ yzGr>uh ip[kJ·]x? GGK^%~ܒd+P08K{ه'?N^p Ӟ!nJhW F%*NceA8?';+/㟭*@,@W6hl;ˇ}P4Z ,`/ Ț,(ڇ؃X؃˷샾)Hd*@Ӈ4q:L/P|0rÉm!\?2Ĕ8Ï6.هk P )VCR?*_z9[@BJ$ LjyزJĚ,@x-PlŜA t Ȉ@WE\E]E^$ } fEcd i =u;;6JD5KbD $K ~( %clk0F"@*<˿̛P(X?8}0AtKnjKx'?Z;=HɘA B[,ɭL   ,9@"C3tMNɎHKz?@ ˒a&s+ ! r#S 4~ HLDB5CuC{l*.N*BCGHcQo8Q - 4:.K,e@NHAE<x71CʗWNe [e؂L -Ӓ/e^e`fa1$CbN,enf`fgffi棠fkffmfoggq.g{/s^gCfYSvfpx6gp0n68|:~h.h>hNȭRQFX蕀h.~@/>*h4isD2W>DE1j(p~iV6liӚִ)6vA* NҘ㭡e0g;:BZk3Lg?HM߰Q{Û>J4kK - =X&kRd<V KCW=*.\+*ZaZA( - VQC˝J>3#[G3f8nLnE= >oWLhfoPtooo&?/@fSQ} yʈ Pۚ j0hIMrIFG CtHBqՈ?2TohgB ;D,8EuU p۝N92} V d8{Y}$_ rk4!_zB0Rn /}K'C e " 2:(ސhH3s0F=a\}`0H!<p(sYDs5U 6>恑ߐh*Z*DAb|rJǒB=A*A!ji:G&![/êUܑTDE@?W`2IAz;0esuF8(cO6Q?< ,gzj*q/JE/xM_!؇K@ڃW-ؒH>jV Mg }cBea5Ѽ8xzΫ?& ODwYBC`KT]E ^ |'r|裫&\H%^\=LiHqn3=K~="[5E)0BPYD2+L xLн;S w10(~W -|}H4"C|v'X+\ Sp%zUcg2QV@(WD֚|ⴏibYe p ^(_8 x}8@D2t!hѨ2eFeN0!. 70yQU38NKΪI ۽oGi|D.N;o7/Ƌq.[;ݯ/?|$"ȁn:B 8@GB Lؕٙ] ,B6И^Q5ID Q@E}OP@ݦ Cӣm_% @r0%D@9тoنpP[Z7ɝ\ױR 1!SxX(q%I5ȁ)7 %J`"̑q!"$NvJD[E*նP(")D>⍗L&Ft"Q}D7.(@@`"EqbUمA/.#3"(4Bc:5#5V5^#6f6bc6~#8\@8#:V :;M#<#=cD=>#@@f"d $B&BʙhB>$D#>F$EV<ʣEfFn#F~$H2#9cHIb7I$KK$LƤL$M֤Mޤe4AP@O$Uك%QT)Q&RT-S>eGTN%UJPUn%Wʋ ȆtXe\eV%ZfHZ[JFS\Υ|]\ %_N`_`&aa&b&b1i,&d0]dVfMefKig XgGG iC@9j@&j&mch&n&$g&od do;"e qcc:q.'s6s>'tFtNd#uf'%i'x+'yN"'zGUz] |{ c'~|T~f(m\QcwV.(fubV^(fnh6fr(d]Ma(]uJݦHɦhE&((()&&.'2)FrF)fI@!, H*\ȰÇ#JHŋ3jŒ`h?hH+5’/τhB=_jBDŽ@7pTŧ XO?Mx>Kۓ!*;# $$Ԡh\*3LjtT$|`/v[߈0bQuH 08!\r-)}\^\p? ?Sȅ!w$$@-`H 2((  [ rwJ@H }E)TViXfeC\z`tXWy 0A^ }ѡV$™I0 S@vęTa(nQN ]d\7ęb^a)!|u@x!C}xi|)`! bcWɰJɇ X[VkfJ% ^\=PYLX)x}S.hX0Z*!^8?K$q,Ї~8œ=3͂^t(!h\P@^$1L [CL> TnGlO[+?+ $oAQzv+TWmX$E b oz^ф  V)[[~aaixa/G H1후3@/NIe`Eo޼.UցATA7 7 tl]ڞEXWcT]l*`j|dLO?Qgmgpa "9%2i ՙ?pA=" (Ÿp`   #hV1|ßLBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ o? &>qTotBRL"7ާBc׸!9NȎ},8;.GcHi KdT1R. ^,e+f _6sAe23dQ3BbQDDTc.7yh汓mLf?_@1m4S!1EƟiM#p~HZнC {l.3SLWz^3u,l@]X$]N'ꁜ A]k3$ЋrmnX"t3D=GGd LW:Έ2o4CjƊη?v|."G{ ,D@D)"oz'&7}Pnr ap +ڽG ?c92.Ozo30>3EC Ms+TVz7]s:6ul,z&s>mOIî7>vNG}i7>hSіqS|j'yu]~7s)_xxߵ<[Ġ/OrHy?f% &Fp2#86s>ۣ]ln^v88 kRf`cY:1lwHG}~)Zbe/+g\!le7rWJm$we}dgj}lttE #fgv}w'ame 'tt^0f'lWeз2j{Ft Xz7blS7~ePyq +#ւEm8j)FHbPll#6Fbe@b`Xp)6F(u[(iη{0r-#Ppk) '||P|q|7KHj6#gu@c@phFvGi#f]0}cp ~0f~if[(uVi(v6{R&o@e{ЉyuqNz{ ' a{ qE\׃6n P 0V؊kti7huWfWg(n]7xOKX@ h ]6GbT'ct7Ygh(enW 1[ gݸŶt?g i\ye'GIv56tvoxXweL׉W#)@SpS0b)fb{6 7Gh}X7qt䏂 yh{y!h}7&~w~DȐmĈuxA茒DwHwŨb)f_s0YcFg}#FzxwFi cK؄w|Yo総ctטW}7m hp[9w,m Y9Hx(ywdV[DIhL陠uy{fdFh[iheݩ/p՗rk&4[``)Ƌ Yg8ۧ;(UWEp Yhً'6nGG{Fw)f5xcnfC\f;Ij@*$ecPڨ is?tʞ6miu& vZTꦍ7F'B1Iv sq r$Qf{(W{^p2P4{hxf|2JE }ʏȞɍ f(bp#YتLfF'קkefDXZ0٧'fb\z Hhw~ tttKp`luNg/i{gQ(?ʧ#il**zJ~(v y7嗚:juPt ZMgl9lzHhv}:l6A'FB{`{Ag & 8Xu>_h7ztY*/+T:ib k [)w]ALGفf ) g46Tezc;=&#Λφ6+yz7ɸ!k*gOp j|̫᩸Hg"8,k0'cvA {(P׌4;\'qQF { )vP1㇄IHP'$p~F&ֹPtelÙ 2z#ffrW e|JP&L?0a练'.88Ё)vCl!ڲi7(EcptZu$8(^eosp 4f9ǙiЧ';8ۿGU|p^3S`.:yy}Y* qmpw ',ˋIƠa^:szj<|Xb6t]6qhehjf^ܧL Mbiqַ\79mz&eشVAЫhLj Ȧִ:V pbוz|g,۵HL=RGOd{R\V=&?kڻՉexzzg0qA|emևevʏTvggbe"jH@rM׍xۮr(AhKG p:ۜa]؃؏ Wm-f.=Ymy飿Њ;w:{ܷXKu~-cG -Yv w̺=i=x6Y)IT ֜wp}P~ ]8sMXAg:cg9r.2 bzw q7r6qq|%tuÐAo0Y)]eCHE+VJTnAQ.TS^/za0o*Qr =6ɻog.f0k=tt #{VjTlrn-[Few[b{ex]v2 f^;λq^x69W.!PNA8SM#ֈːآv80Mpɬq0mn{P|#(n{FM輎S+:h++z&`ko g{;?;폈Pp&r'p2prt0;/,i y~b_r0sPo;L/%6 /SxXrzr[@M0bJo s=-d"*5ߠi~bdP#Op T]R02qrʑbVo)Ү 3gB#`b~/`/Wi>MFޥB $5#p qr:?s, /1{5P _=(dx,_?7? ~,0B,rK.K0uS"Sܵ\x`uggS=h/z6TSʧ-h%xc;x"#Ú>C Y$}ήVNz'}j$[؏6h1C8@bvSre$;bA_Rvmݱ禧J-~wk~!~u|8][{r+32?8'W h0RÜ% ܤ⠻S+-}w޵'siG~L~BbAebdu?=|x({{怾@?th6./VL;ܤt0['PT Ldu Nu@$) ^Gl)QNF@P z\j*2294p3l:FC 4ƙU&4X2@Xh,G>BmX͖![fz=bpO}^L`"E/I|^w2IdG<00[E -OCZԢB%J"1 Qͱd(u*-'$Mb"]#zRӂmBCQC6.Y B9R-,ӸS&=$TQ .oQҊS=EHE7]DA+BvO,U/B4C]B[-}.uWDQE-N=O S0]Ry"QD[AP S`]Ea1UR ['1L%PihSAő+w@%5,2/UQ) qIn5ch}%3i O Wkɇ% 9V_=H-sd ҏH$V$ V}@{ e`YrMYyFYX؁* ~U ?mXPYxs=Չ@ehYWV@E؇ ڈW=؏ M퉡 ڄiV$Wn-[WqV10Іk $$Hܔeܔ0YElؓE\{8ܔ=\\e?|8ڥmi] PڅUX ٘ܔqe?0 Wm 7>;26mXE%ZXZۨ^ޏqUi5XE?PM ҵZ`__ X@߬MPE|X 5 $8إ-[xآ]@nߥ]_am_ŕw^ޅV~!^"֚Ї5 6ĝ(N M٧b&fb-b Zݥ ]rbn`ʥ5a^];*a0&0_ՉXC_b0.'N3Vb(dݕE?X6E8ׯ]X:vX]mJWc݇]Av%? B\C[D^(䵝 N[c9%`Zd-|E bu{ =ga\fZK_fdfLcvN eߪ.h*cnXv-gtVYn`]x]] ^26ۨV禵bg d$B|ǍX@V$膷evk~iMٴޔ^tІffNq9Pnf(fh&鑍ްYei㦶ޤnjiFW_dj6 mj~j$EiFm}`[ eK^#hce3F,Y,-݌nV\ml`@`YUm5Ҏή^ah _V݇nɞl4 , g&.]Mo^ono~ooooo-oE"Sn7o/3SOZOoCQIup /LZ p=pBpq?q_qWb~[e#9P/Svw,2/RFSCeW [< r)lQ q6)a@0TS.V5 %p1EpHDsMa3G#sfXOX?[t^6$t?RjUIW /WlLw0trCXe?s8uT7q89!HVW Q#G!Z\"ȋO2!I(GR"̓-QꄹgO"',j(ҤJ2m)ԙ/ 1`A 4 *R LW`0Zb,L,̺l) lqԈ/{.93H6%ّΎ~&}t2gKW$u:W9eme6YuОAzwʗ3o> \P J"C(4Qk_(L ۖb:.]bm=G SQi,&k=R J[NQO 8ZkhbI.!MXۉx#9hQcPFT&$hm->$fH$$mQ[Wh 9 &ۈ(nYӚ9Vp-'}@z8\D~|'ÓIHfTfB)qadxV#vRzg6%L)2v' xY%O"h.aL-bhJ $&N! %m^,pnAB9fj Y^mb;Һ,/b.cGV֮FY丹N.;K/NJ`Ïv81N1Gn0 :&;35|s\=3|dE}4ItJBjU[mܵSD JQD7}6Pc 5Fmϔ6s(-;0E5]/۽"dߍPm&v>}K6ΕۣTFa9PURWzuvۭNʥܫg۝^ѺSK?pǧ;@1r=>{EG~E|ʞWF:9~k>!O) ضq@z S rkB &!wa MX7v8= $HQ׍!qcDE؆MۛXnC?*; :wmC"3˽!iY$W63ZqW?(ܡ튢XbTxFMPtwl->QrcQи}Xq|@\F*,Ems!1UEK¶а?KL `UL)c |ɼ(|ma'@."}b@C[%7n-{J3wpEƶF-T$FƂm66-/-6.6n޸ p|K%S1DNsRtC1\w*Fn=к0M[O Bt||*Tg+\B}` .ļÉ@ Q&8*zc'EvD~kؒjlS"PkCl++iDzC)['GS |}\ھ 5DSUt_ ?)E)Bg6-Eց.CqK!^Շ2c-,Z_2RH:DF4r "ެ|D;G犋w6b'k+q7r@zqhCӎ m\0^Q{ dPZrMxiQK֖/f[8EHqp.7tY !wSt/8qm[%VWpkbܒ pen6n 0gؕmHh f<GDsFhsP$QhlIqVPӶ~okR6rwY "]=6D"MX+ig`8q!;q^ubh; .&w?H -ǦݛmuF]| ۉ"IAҽq8wE ^EiOmVlvJg,;uX)S4[de5ZȎd{ ^ .qfI=1;_'hsD7C0-}*,,L8{ =!.8Q1?s~ա78F6)Q9$4R%Epvz @myHm7lEioѲ7j[gߺ{+=jEdFr; ۸]ڍAYu 1RrbWفr@V|%]IQE-S*i ʰ GMlM( IHǢJlpI !!^Rx N~ {@LMP4aS0LjA0aKÄ {8!C7VDߨLȀ "4BMhhKb @FdأtWP sO-"++MៀM+."K -1#2/"#+Ib2F4N͈3R#6f6n#7j"U%.u9⎌xPTG;͊5=icS=ES8A䍨̣rR0?&G>@&ǂcsD"G~[ |`YX[ BP@`rPxLrLN΅Ȁyt08; v֪1OE#uYx"V&QX1\r$H֥]$R@X8,rX @\\Q ` XLEQ N5&bD2qV >@]%/PM^iMSa=< X]NW~"Eڃjڃ|(Z(s_ Nㄍ"66XrX֔E(ڥBN~q?(Bg:l i.BVaDc;RTw]| sYǓa?TXm:_mVR7viy zz@="*PcL(t"R@yG[_$&0%P\:`TKۃ^RritRިf)U訒΍繖+:^j@__*a*e@E.@@"XEf" ,B\@'Z[d܅1S?XܹQ,kF~M%g`er"Uv+ Em"쬗ʫeӌd $dB ý L^@GbRwOŰvBHy @5> ̜>\VVnp:` e9RmDZ\\6G^c; `4Zհv)|莮~E(  mTn\nuuR= pz.+͍r[@+z+1R./M4/V^/fn/vVD/no1=/Ư^#|ȯo^ ª,b/㮯d7OcR@<>_0/Fb)0cp^0 0 0po0 p2c 03/k011'.?soA_1>>@A"7V삱[O1?W+@l1#Ȁ1SlM ɀ"ǰ/2$pG%/'l%wClqt' ?)2++2,2,f,ײ-2W.r2B1ǫ0#V1732' Q3OC825gZs(q1k38$4 98r"3;8cs;󼎳˳=s#7SVp=2)@{$*@4B'B71CG+DWt+R4E Ew2 LG4T14E 14K?J+JL_K#Lt`tE4PW OrnPu C/!S2HM?5U? DtUgoVw*4I{XFX5ZZ5[[Sh?õ]0]uͤ@"5` u`{b |.6d߈>$ӏDeHc?+eovT 6gr 6h6TQ6j2ujvQȵ4k϶?!,v 4ߒ{mX%(4^T7E=$.Y0,`4H[Z6` %/IA,\|@'KeXXpLSɈZEŗ@Qh 4Zp9*/ΈU"c)GزH%\dǼ܀@1H:E[*CQ$yZ&].$i ?$ )" Ƌ&Ai2͞LIJ/ޟ-Go4dIEQ(VTHD_JEaLp!pр]"UЇ{dPQJxPD Pg X("RTQ0)ETG 2E*U!E Kz6@ֆ\JnQlUd1,%4l"Q-ӐisH9 ɐ RQ_V[E!(!lxTXB?}D|B0)l j0Q8B֊2*ɇvO*G珩G P`>ԛ?D*D+/p1#HM5}ϮلnOhqT PvᕻM$9 z_JN!1-x  ~/@AD`qJԊ kN!€8a {d{pD ;E0`aN!Il - EW~Q Oxѕbm1K*dFÚX)=SǕJKpQK8!fD\bhA8OW ![ " |hGY0h Rp6ąHv/. s)AE8 LH *pa\G{24yB % I)h$ p5" '@a" PXӂQ=*U\ 0" ݉ r1NXpTLA\"˽ ?*E S ? ez`>0H{CW"zؘYa{ GÑHQAOl!{G GQA4иdQųhXH) E8$/tC:= @D9ƈ'.,GiD*dO9a(??]H6rSE/|`,TP $ ?C aY@eDKōKøJd₁ &/A1AXLtDh@<1H?X`aO@._A$?LHhx(TIXݿħH 'gA#2`hɋ0aH!D\ a< i Q  Ò|2 "(!pTBAH%2~! dAs!&h0BO)B>]M LO' 2QDfX)`yOS`Ugp X!}-!h S, O |awmiO'd!F)d`iU " ~ ƜqV#ĉ^K0Hn [%@C s1FT0`q l,t? Q0D Y6 fՒ(r>GaaO B`fo/LaO>V{@S)Z,+qT Tz T=G KR {^h4 a3 Z‡Rpq4 TLԩ?_E/p ]`C[R+rCG PEKA¾=U d4 @ ,"lH ͭBPfp.hXt>_=7\.Ӂ$%d(Pyca(&d (6O%88&4v|A_AC hB ` b?4AVG$N(H4b*`H&N@  2-a{HAZ2?8"4Z?|0! cHCG"{db;Z  0 -CWć$f|Cp ?aGv'4’|LPd>$(Й>Fq-c䤮ić;|2 ;0vOm`G#/C "{4e>F1{"vnQxD>| ;Ҕ 8IrӔtYNsf9@ g< ~)Q '= "DB=h@!,'F H*\ȰÇ#JHŋ3jD(,Hr /RZ/XD(\S( 9@ o }⇂0!C` Sժ/4Ґ% HrhǷ.!` $M /Nt|CKH@+Є?:ݞzmض*)װc˞M۸ , =Hѡ@)j?ˇv5t7p>&68Eev) !8j^=@Ȉ-<0@8?KR,,GHvx\ S0b K<HDU&t!-Ġ?,Há/@)D n-eiE H@AyWl $& quqB &\[nQv?M)P @ w@` e@uhUQRe\[]C꫰*!O Qu~ӄ5y\"CH ?2Da?I@-JpD\TE0Hn)ޚkp\`Db)`݈F\dBq!@-tA 3L$lu!!yFh@JrX2`<Uq]Sŭ="A]X XkY tAp ~+TT( C  Ă@.Hd͡`l!a' ]tjFE~8ʠ.#wESC  LЄ"PWAy\(:=@ uIbp(Aۉ= t2Ss5lÍ<`ފ)i,‚"Pp?M$>hp;dM28藹mc$`Hz!JR}У%x>ic?T|#DKgB :R|HD!EAPG%T zp*} -)<@opO 4TD _#ba7lHK† rpч@\:𑐌$'+5D$ ; (GIJXr @d|.,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LcڬMqSjt= 3)?BM20,"PRZ DT@ծst&2z,"d@\oY|t/w<]W/ ~bE9,&2Z"6d`Hh/Kf"V `-l9bb L VtH2qە,"rMVo|c]"X,zG:mb0 X }TA\Way;$l7G4!֥}o2X0=`m4 Gw/`^@X  PHaŰjÀL "gD߈+`6 @p&4a a`&["]&j{.;$ !,'G H*\ȰÇ#JHŋ3jLhG0\z⣄,%:ʢaѢIL$tjأ~xGE@0lG3,Sq@?QHV.%T,p z+ >@, d@g$`DEL_$|4b@ [ѥigLȋ.JPIvžK#`:/t7ʞM۸s]P-bC!: 3G(REOG L=To *ߖ 0h N@ BrR)!@ŶX!?&@4yqW5a U |`<О+ LLX)?g@>Mp鑪&; R0%x4ՙ%Eq}A^ P rA!;U#`[t#% 8婝Zy GJ@Ղ]jrN5nqkb?f8)~H,0H8h@J؆E~ U 0*VwDaڅ?& A#opAP#EG0[pAXG>y sH@!NchxA{|[]BH^xlY4Al6@̈"!APc0)@LC4GQc*TĹC!|G"! }J*܈`Í0=Ewh>84 Q3<u#?ah~(%F=6vFXZF92v1GSy" ^ &BF'}!ճ)f:Ф -yɤ!nl̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` X1bֶS@"ֺPp%a׾s|T0AW֛ṅ (0,@ xl3 PEf5KZ`J& 4tAf ngL`LtvY,b)7Kݛ #FsQ`t d{p@,^'H6bLAi~Y{Ю+d0w{|[(@X o `G, A2! x$ 1(Ȁ&;q,C32E AB``!;"JH 4(OrD?! ;W4wpz!,0* G C >X_>Qܘ|'ڻџ|aB:%7R$eW,bb DG|+2LL>8L1̅;~>$ &,2,L>v]6(S Sƽa؃L$J 0Ea2f`1X`Ry~\"h~љv!,*eF] tX&7#JHŋ3j_Gmɓ(SN/ʗ0c#͛is=:{ *1_PH7⣈o)EIV*{/kN`#V:q,U] S-۷eɒ}-ܻٳoY~qC9=}qcË A t'S޹.ty97a>o5ְUk^SD̪myH[&;rΝvN"9C>J>l"xcϡ**V,p@2i@{ڃ j"2 Gѫj>F1k~< -8`@?T-m -&ق2j,n Dl{0MxϿ pcx +&COc{x 3>!,* ƍ6oT<#JHŋ3jȱǏ 5Iҟ>'I<[ȗ0cʜI|lɳOpJQ٫x/УPJi?|U)5|K֢׬/lٷp+Dq;&]={+.F{KqGȖ)k1Fm9 22{yΨbtc}״eӲsov.9u 6%O6?ƇKbu{dϝ87.7r#n߾7 _m57F('Ђf4PpaBhFY#@0&sb+h@c>8h$D"$ԐH2GVƕXf~ SeR)c.H,_lp)tix|矀*蠄j衈&袌6裐FJY?VjY)jNʩ?:٥j*ښ+EQyAj2 pUl+oIib;Q>z+G۔kTRn2 UAS[/,l' 7G,Wlgw ,$l(,0,4l8<@-DmHLA9 @,O>JP_H>2\#=/\W"ﰠA>*|cx̝&t2`%A ;dI\ 2l>"x0l6G|y:M,cɗcO>|S+2 O>EU.2 ># MJ# p 8$(5ɁL  ;=L70&D=- #0pp l{U>,!,* H{*\ȰÇ#JHŋ3j1Ǐ Cȱɓ(S\ɲ=ZʜI͓ wK{t/ͣH*eipgӝ-JU$޷`Ê ױhӪ=okʝ7xN :mwmz+хK_Ř3t06y2ͨS[PCLM~7oڥWx;obIMN= ֭7r}=~#zFՒ0+pgX$6޴7 .`؁^ " &fhR!bB#x75D0$c0D62-hM9&L9.OnseGVْdJ6咗f)=X>٥r pȜ2"sx%)F &$ +ڨ(:褔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(o?,sr1 6ӌs7S̳>s/cRE1,s~QG<1ˋ$s{ͲGObE3?_pE,cѱ3?mOB\wK3 9i*gw砇.褗n騧cA/qa S>sO>O >s b(?(p;S$ >M ;[l ^ EQ>( y 6p@ .a}wۀE^I=tcm$# ˜wX\#;f=b0HƆCLq #7"C覇p%|E/K$#"\P!A8a] uгkߞËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨ# 読g?gں'*뮴+z'D٪6?qM>;b ǯqHĺ6릯見vIƞ/p˯oL ٰYoWlgw L>l>>l"xc*iO,p@2sx `B p"(g>5a Oz~T3v~|gk#>onlQdCvo;Y)2l}+ ]=C}tz|p%;e9$ d@? !,) HП*\xC #Jlċ |Q>} C_A곷mѢKwaJbQ(pX2ijy= '>-5h\XiMS ۶+0/R{~Z[Gơ݋﾿Q滛7\&eȃ\_7͛5`O.Y(!&:1a722)!A(%=jg9/@0Kw#{ʏSҩ-}|IB~ɟO> !,, " HП*h`C2`wÏ 2/h$s@$A}J 0Ew`1X`b! c+~qI@B=!,9 HP>~*\Om]f B ŢP@ *^Ę ؓNH0Q@E\To wpgJ{~ɯQ%hFNEPU$RjSb3 1E"?5kz0&1)!Lgٸgzئ1B>U{(P}RE}E\=O^X qC|6G?~IޔuֳG^:lop}3ǯ>{-ƎŢP@ LnIofJL0]O/ |ԏQTMZ|~[$CTՇ~@gT{Ƶ ¼lyga k>d^peO=s1S\$3;W~nًѧ?~m_@!,G*\ȰÇ#JXP?|2󧏢Ǐ CIɓ(MKɲ˖hQ{:ɳϟ@&(ѓ[5GJJIKj}jtX~Wr6ĪPH"W3pAfj ݶwS|6R c 丛~ :tAɤ: a%ݚ5欵j*`+[rGWifb-fOgPî>=sډvi໣T춵8m]cW9h%sj½]vֽ7RڄKT;fY1ȡ^a`}`.N}ȅqaEDa:Ԑ!!_1ڥWxPgmma\kn xDYDx=,Z#R!b$(cL9dO2ވZXiGh%*:&>:[i'hw1b%RFWj\\v5.U;أYh>G䯇f&Cw>ⵯJϢrIꞴҞ#Bj;FR |*.[[nq0RRyjyb2^km`;֌׺O.(7d$\>o-2e/Q-3[,2\P6F/pRzw wiU6MG&2wpdR$WuSBwQ3"2AZ]k(}&13MC5o1Sz7K-]h^A;qK=Y܏2>^W #QrDZGKĈNW*{z֞_Xġ Fp@ &)ږ"ɐ)5R2.ZL̇!!iܚ*\*nkK G IA!),~0HM%d mV2ƳyjՈ%MO!ʡCo$G1w$)񨯐}G 6|n5m ]'Kj8sԬq=^w[^S{y]s!StUWH] "%kTa?t<)W}GWX5څ 5XkYHbvۍoh pؠ?X>ϥ# Bjf OۂcVgMIeVe%d V Q#ėG!^ 5Q^fCSaS T2LFVU|(gt4FY3^Ht0:tTWP"%ftl#]reWѣ? )hG1rT(jZ荼EXQ<;jGhe@ _4#k? "{dpԬ۴j`6oAV͈"IK_5w,mToo% ;0H텮\pq>bܙݺ+;/VIyH1oq )7i*b\6+"q;vϹQu];43,e1[ 5˝*5 FC?bupc\t+|4Lj5/j ;4V|0~aX'T"xԢMsADlhjӇUp#d5s^ 9+inu 醓"ݝlr= +b5MJ͒ҽm30jvan1k\ e.O w"؟2U98耷E/ZQq*?/D%a]j᳐{JX[ Ì!޸0-Z[b<} 8ش0Gy<^ $G!|8l>BUz(Y%{xN-;< QS}NY:«A"$K\,D Qٔ K]E &TX6H|P0 @EhE ]:L|i^xxڳ%Ύ", oƚ'V)3%MD LA {X/QMZ>!, H*\ȰÇ#J\H!3jȱǏ CIɓLq ˗0cʜI͛!Ο@ JцSBѧPJJj}ɸׯ`Ê@@콸`۷p5ylEXh7߿7#^̸cIl }3k#{0]Zt7;^͚5wbc"Ӆ͙_>{ Nȓ+_μ >=,a.ËOÇ+>m߾mN{k(h x֧kN:B&& v GP$6?~`rco` tA,%'r#Hbh9Gwyq$tŢĊAJ'][N9`d};mQdrbwPI)$rYʷgp~ \:ӥ=qꥣ);"jܖ'eUyet=\W4Z`97/37Ȱ`"i~4i\ x Z{3\j#j `@p)+AP "5Bƙִ̣l(nז)7 p 8$h_*Ii`A )0 01[1O,,pAM,&k?oM6/{՘‡O<|,Z&~HP0@N2x1L dzڻ]SE]4SՂ'gfQr@Ux9&7.~˃@^ DRxhf%Tj^B'93X ` MuNsZRn*:Y!Mn@LМf3BXE\)VͫAm9+3+QUkhp‰RT[1=uEOʘHDmb}5=iq fZ*1Zكp .L Bx-j#efyt #-AFZ~Tt%Sbآ6-ek3v,\:7_Z>%! {]B{tgMo˜H{ߛ#ů~ԗ7S釀L` ;!,. H*\ȰÇ#JBL3jȱǏ CIɓ&Lq ˗0cʜI͛!Ο@ JцSBѧPJJj}ɸׯ`Ê@@콸`۷p5ylEXh7߿7#^̸cIl }3k#{0]Zt7;^͚5wbc"ӅͻwÒ!6/^μ۾}FkΝtޥ4&/u_Ͼ}+uϿ>CL1Lj5`|#>Ї &,rvc\3Jln(c_!P SN2a3iXSC}J 0EXfUK2.#`ɋZP\vЗ xԦ QhτW)$'&6*(1z(VZ a%ZRϨjꩨꪬ꫰*무j뭸뮼+k&̚OF+VknܮGބ;@*G+kn*"fWo*7j;*FAAJ ϹZb4 S[w*r<nH˦n s+?$WLPУ:mv5zO-s4u9=5OqA-ջ>. 3+p\ O1~5!+B |#D5hCqTJ2&Cf ;>A9IBD EQq:( |Ъc\ qNQnMªZ@sΜo{ůﳈ^T*F{.y>*OOKƵ+z_v+9 3s\F>C}@=}u o1oz0]'S!Aͬy2Hv!S[AHa4,A"}nT^)|79X+v aE5Uk?Ѹ=0wW+äCx^)3jnZ?T`O`8Dt3r8< icf!J0@n?dȲf vbA,:8Fn dJ*:ڐe$Ud #$HDczHɃ5~%J2d?q 0lN460 ]4a|c T(d#rC0l\EyZ/ U'<ROeR5UlR[jRë@לjU ;5 ԟAP9$/.LK^<5FX01M>1Ik #*4×<:m Ķ RZ3@' Ķ c&̈dsa )[ψi(C|(!U.xƝn͠K"AܺS $ {?λ1e9F%I]k*:ۍA !,F ~(ɼvC"[0’/VI‚X,J'j+@W•U%dnyH>2}J/) 9:*C@Eh`~jE@6ͻ !,2 H*\ȰÇ#J(BL3jȱǏ CIɓ&Lq ˗0cʜI͛!Ο@ JцSBѧPJJUh OƅwUÊKYW ,/P {/.;Kݻx?C@@ޱА/ÈM{n31˘3k8E'aBӨS*{0]Z8Wt~"LR׻g ٰExJ۷m׍q`9QO]mhc2"]xؓ=\ 1F(aAї>7L1Ln("|}c> &,Ow#(s,L>]607D[ SN2aEViebM,~(MDࠐWibb`1X`toii+~qɔv*Qx2O'9袌rVhcF*)MB:饘ʇgvJo*ꨤjꩨꪬꫭ2Ϭj뭸뮼+k&6쳹#+Vkfv-~+k覫S# ˫ꛬlKp-@/GJ $2FR<D+tan 1ķqr, ,136端@۳;,ͱF\t[s?s!?meCKvt2mlV;mtCo[*m:Bܮ?4QAY$yeQ_k>/r@t׽3AvU9 t/fGHn62 f'{|d=4wO@1A@>|] AkN=># F.ym $#mG@ 1 h?"Yxx( %y0|"fdpC a2CS]ƺHc0Amۂ> ;Ce웟?pأc여1vE@>vOK6yptu H+vQ8>] Q|F{u'/mt"sGEGr u/qڃvFjQÞ12 ۤ2IHqi;YENb3epltf3a`8]G& 9,R `aNS qFgfeC}ЇΨ^;3K΀՝HaQT6sV"<R dHBpzd(NgPۆE.l>6S}4`gĆ4*cdqJDcd&i6@:+GKJJ=!&6ɹ髛 ^FO.rk*{uV-&/ÁxQt˴`Lرg`@ӟ``sd dM& Ơuk?` &Ҭ{"?<ĘOqםT r:.R (ׁ6nEtV+-JlaP6Rsm֪aѦ@.[Oؙ7w:M]Ю^]y $"\sƳ r:~wؽ"ye)?,(cDŽ1`QBN$kM|Ւy`S򏛬r]r2hN!,7 H*\ȰÇ#JH_ CTȱǏ CIɓ(SBdf_ *cʜI͛8sLȯEIѣH*]ꏟ>;o(ӫXjUmw YծhӪ]Vm?} d%ڶ߿|@@$krdz LeQx mw[aiWӨSE/ۆ)|PX]ͻmAKtɞ>WANj,,޷tҁߖ,]K_ϾW.]6ld(`Rp r 6 &&7VRf`J}ވN~ørIPZh(RY:Nw|L,^8cAQs?gϐ%ewuϔ7@azLve{|E23e>9ePD7|)眿95& T;@ { &jS>0\Bsv?caj ^[*>؃>qꮼ*ϯ%,kQ&l?6MFԢfH2n$mk覫+k+,l' 7G,WlgqMm ,$l(,0,ls { 0A M@=@1įHG?0u`R^LU?6mL]kW vl~@@xB+jc[w7ufqvC:!Oauθ@Sݪ@ v@zcAꍮJW{O'w8| kPJN @߹tŏݣӿ稛љF4 g;Y drrD1@רu+_hG͊\C rm't Ǘ|L+FFF7qdHBjt! FX{p46\-˙=To<1iJ%kCb=OJ0IuY4O~(2MJ -YσQh6_A*ľs4{:NdΐL~x0[Fnsmgļp-y3GJOq`}D%UyM(slUnwgquQ=VDTR!` ,zRPA KTR'NB̛(L&ӦѬ &V7P{NLa-.5ڊwU^v=2קnxĦU\dkg b #G I*uM^OuNvl#tSLs,ir͝O?HEhL D CBvX"g(j.LD$D9 ?F.lPAmPZlRXvQ,mճ\1H"~1?6Uhk|mo~#IA` rwYuT,dMU(lQ şa ̑LJg0mBt@{s_ :&qj}f͵d] |FLΎ~X#gFSҘδ70! ,: H*\ȰÇ#JH /bUȱǏ CIɓ(SB f_ *cʜI͛8sLȯEIѣH*U;իXjUگmw [Ӫ]˶[]^ {((ٶڷ Lc\ nJ&.@o˘3kN{8*o n;,Z̺*mKaʇ%ga Nî%L]adO|ku,,޷tҡ,]K˟Om}ĺti0$Rէ \ls? 6&S && hRg}+lz 8+塈4h#D$*FS;-& &2wH& ׃ pI=# 3>̨\.%&byi;|&pvw>x 错>|'x>qj(l6& ޜ;@ {\ڡvawI!p Qj죏=Ǯ,Ku}*Y*>꓏={,FW\fNvն[k2+k,l' 7G,1Vlgw ,$l(,0,4l8<<DusWKKPl4QC!Wl-qZ3 A 4m=s1V- -1}Wͷ.x5|xd_@{L}[,X{.v=zɓ}R㐧䯯>?/"Ӷ?m ڸO5g/ZgN~ t_7^~̗y?k.~M/۠=O}_+G@vl@`uW8NtHx>ݯ+c0m@8WPN x 3Huu,|[\(:2Єb &x>}(4 !o%\\E-~h8ulS GgFH7#dx7R7E#ְj O'ŕσ~$dF%cW-r (H~r, X87ʱdGC="FE0rsқc7ޑ\߶Ŭi18FLCEyCzw]ن@qё5f63\;b\QSIP 'iȀ^:$WJAv}Df҉I)?cxTwϑ,u[L$!*?ZҝNFR1eߴHԸ-sA"M- dPsPMK@BS/<*,G!Mz?pHpt zPbe|ZRvukӨjHt~^־Ƶ 8 Yg=Qt}_W;n$ YP\?tٷn=8ͤKCq̤u.ѢJgȣuORww7Mz, !,k Ņ*\"̾@J(EL@Qa;~. JGR"@z7%Y p G}ݖwXlm^J S>,9p ] +sQ@},,޷tҥ-Y۷@K -7ba<mtc K u2F~]Ί}R@a_w[Gs77^b̾d?ovoPLDKG>|=& t;@ { 3R?xI!p pPRchab Ģ> AbcO>S?>O<@:8Q@!,l Ņ Q*\0q`Hq ;P>رmw >~%^ {l_HɅ 8Oo n;,Glk*m^J S>,x9p ] +sq>X(Y㝽oKo[t/w@K -7bi< %l[d1.󛿻<ե ?v' ng=Š!}DazG;oL2ґ>y}#xa{p ~xW,&1K;a /qxE>#Z ~"WC"C>ؓO}2Eԏ=$Pv!,G*\ȰÇ#JHŋaȱǏ C8pɓ(S\_I])typ&Ě~gBnT/QCmjo2)( #jiI EH̤6ݲ{AF58ڼķo?@o,yNTWa[/ӷO歚j6Xn t! Yń%Y\Ȫ_.os{>]zSY>:LPiېoNWicFz\hGlt ˡ;O=u@؄P{_@U#`ft27.!wnR6EXwx \g"YWFPr.}SЈeQ8^k$([-&bݓ=85bUVaMGchm=f[h IPcbiрH*_t]s=uוJ^C0V%h#\ Y?w1eHfnRVJᴕ[u}IeNI$THXr[.7rjEJW RF\,뚃(ʹ&TʸT-{Xן{9PWAzshpWAOne،>]珷 k6T-A5f*ӧ؛ܠdN (ivkk K˶/ʸ|!ɒ7k>,6"hH'L7PG-5LXg 5a ŜwFZmq]`O@!,G*\ȰÇ#JHŋ ȱǏ CIq ɓ(S\ɲ˗ ͛ A4]R('= zkO8iA6 wt? =s*|UIp`S#ZH6!ڌ4;_] 58WjDݭd|P ;[P2A Py4cVk}*PQv}A v r&l)GA)#x!?.J׼]Q['Adf5"E.wcH>icO _ ŵ v]il!y W]ɛOSlF:^A9ٝ$Iq'ڞQY?$dC"y%D(Ag)B+"i`A|2 ꫰b/2f&*#HBOi+6ۑ=}8i!,G*\ȰÇ#JHŋ ȱǏ CIq ɓ(S\?--|Ir&̂ M6 M{?&-?$s%stҜ;;6]h3M1,sA76J5bѪ>e Wh].m{Nxvg^N)秾Vȶ.W kS=]Bxr\-LglS]_y9iꡃ`EmMD}0j3r9 >flw.e~$C:Ӯ߸YÝ}UR?L}qMGW5t{%h+4MYt'K.UY\b6mI/HW\بW]bev崚b5yRDMY'7qH$GPTWO z&RPEf) /'C/HtVIhdW"Xxj5VHJbu%F5xDri'!/j!br~U 3AbJdU]؆zUaj JGP1U.GsA:j\/u/咮=T5L쩸_g;g\h{R"բUMړ[ii9⽹.c4L̛Y=U کpˡjyMu=c&zسuuMpV=Ўe]6  tmx|-߀ΦI)ሇMQ"iDxWnDUύ?8([>!,G*\ȰÇ#JHŋ ȱǏ CIq ɓ(S\?--|Ir&̂3cHf3 Z 6%HӲFԊlR/!V$ݺ2*i՟56{y%Ntq\{5T$7-at j@6 X+蠗 ׭ 1nR y&oӏvxm؊:_Z/◒z8wrBg`wU,UĦ"Zj_奖\j6\C/rҥzU]K=gȠ ^AOw4KoCMK,a bONeؠv7ZEㅢVݏEf1"$` _)L1VrMVa vcu#4GLwmcAMͨPB|}&7^yqRt&YꭅZşD wj2AA!-KF(_>iO6%ѤR QMU БӴtH|~s#!AIyAQ'fBR_Uc8ĦYcv&ϓ SA~04K/߀je3ͅ,!l58<@-DP'LT9ksNitXg5DO<i!,F*\ȰÇ#JHŋ ȱǏ CIq ɓ(S\?--|Ir&̂ M6 9τG &"bެ9[Ν*yka6cIiTU6պlۮieKѭܻ'^Hק?>3A7!Fwڸ 2xS01A@"/m9 /6=Jz悮Y+'ٗEMڳI|䃊%KKfm~^Uǖ_/F6zѓ+e2:ubIy7]xr"RU'Qj!Rށ~Ԇ]|]cf8AM̈́7`}$zOV&$Cmv߄tU,Y ȕ`qe%Z(Ց##f>fPtT>8d7֘隒E ˁz&vӢx_gZckBڅOk~ 9דkb S`pxyRq؊o

N(8đƹ^vL&S Unͽ3 7YӞbԞ 8Ph<(~ﱦ=͏e2ߧ Ɨrii* od2;qBQ.--_gm_f2 }Pp(4mKKKoc?1??dޡ Srii)]xu?d㄂34bܳg=4?dtbPp/66AOjtcx Lx): MzwP$̜?-l4CG?51_C ؤ]ip.QT?=E{I{l8H&19=&x/Pp(66IӬlf'ӧ{b${ YDQV6yr5X(Pp(6~fqE(&'RհF#~OѡPl4H|q.3XD~DQؐ4?Y}/6~/;#!n(6TLzݻH䅥HQbC!.a&E @!J 2 "###`BbA#(H@YDH$.ʡPp~@4> MZ0LMbg0P a}eXFB,;GmPpME$IV.(d20+Pp!x3e)ff(t%c>2MlB' dYܻwVʕ+eeEQ uN!$$I(X__22033H$BG p6A~ >g(¼:yܽ{ iĹ}]yۘg0L&/l  p l6ŦERݻwJN]*vvv[@Tn`&DQ*E#H&A(~"A@8>Q=1r=,//wT*,//cfffSհk|4MT:*U[kz_?{CV>3!#GQB 0^ʓ{*O(B8v.so`H*SYz#ffft:*jw߿ 0n7QpIDѡJ{C(8‹y\"p8\r_1t](2>K(87F1::ϟacaaz7?q7o~ 6/EAYB!z۸qƱc:ƍ7ocffƶZ[pwGag+,gVz! hF7D0??~TڕGk(KAX5]8XO݋Ti2'=::с$+amm  7>T*Qj/0PpG"'LgVzsSPTB"efd𰲣<|/ EuCN4v,M&X[[gۄLrt]Gug8AU7x' e GH{m?@ݷ9C e0n(8|$T=$UꎝC'n%; (|%轢s88|nA'F9N!|j> ^qF7ove~E;v5EmC<]Ԍ'| g47".>u%'JErwmCl}qaPTq‘)8<$c2$q_뽴QF7O]3pA.N i*f&F1~3id,@E Qᴯ.)6ϋ$0;nt$S㈆Cp1:lvQ鄊HE܎j(6_;dIȋn'SFE"G*|v:ClFT;7 ǷC.9,㫊TόPSyNi$0qQl(8 0,DH'O\EtםMutN?=z"N*~}۶EЈM`7a@Z'&i_&K‰Q ˲Y8aGUd;k*TEQn՛;+養`WrePp~E笆4ȱX`m*"]%8,C?!e2X[ݮJngJu53pW ;Sl 㨵Zp3 ԳŦv)EzY<`=Z#v8R׌u #_]ΑFhs7zHt抢B!/F r9dIxofvuTD:u F8ҹDߧҚ*^itYz ˪Cڠ|BCxl)Y@<ڝ Jͽ(Hh,!UEwYz6 XCN:C9/@DHƔ'ZCP/D=:'q0_?) >tu !füiKOuf_ʽt79qؑM`$ hn_Pp(q" ,4-waQK:*$FKqVy5E9/J2vw '}bӪGLM?{рhtvG9d~|~nB$ aYVߵ:%h񃡵|Gw~}sI\ƓMllMq~SYF M 1{@F#o_WoPd…#V~k=E7ޣUeMlJ%<~Baz()eoaktnlջeJR F0+ H3\Q}x|UtLcQLlG7i\tք*;4/;^O{̽4>F;z m<4Bi bj_crj  ɖi)0y)},33RehTbus ٝm=dILs))KleA]Їռ0J(P4 dOhdEqe9xzIUUEz4l6,Xj(KŢ=E9F̈́(xxVoU=^y:曪MX:8GVyxPl5J% l4NA'U(I0ծSK Urn =#d _c L`A>ۛ$ ܜ'☝9g9x"k#NێekZhdZ8 5:vxMEp,NϞr_,abb<4-;='njY$z ~! ]7Zj_PsoDB F4 jwZ8 YU!˩Q_b (gp[N fPA+׏縁,xXؙQ}в,D#aq]/6}bi-IPC!"Hj(,'@x2M#QvR "Y믺j{X4,9rT@Tv M¹s]}qz % $?rj 9+)9^?%q?ol|ϰ&!d?ʳ8੊9&YҠ&p~nH*:6V*q=G<ŴX{bL&sb3XZFiȊUdԌpHA+1:iZ0rH'e._[7vTqE̝[7M4,9&6{{E܁aG4MåsՁC|b/֚KeEqtU#rTy/g$tX,[+0-EW.!BYz}ޑς 03_ꚪaRma{I,v'xh,˂ vʩ"[+L&LqVښa/d!Dq?s4_Zi6BYz.^;4*Vn߅aRE Q͘, J(aX}`˲pܙbS*@q)f>_)j]/0qC@{v;;x<&''z.j&j F:{LIE(ٗ>}WQ;\xSg<{PZV`= }t{LA+K96,--x慲 z'⋇gj3.#O͜}҅3|]r!~c(6=F*R<QO::OiGqHmd2[~ e){ g/p, \)Vn9(KX})rjY._VM8ww_s&Ɖ1D*5z73lmgl_~g~g@p홊"t]^r"4-FRi .P4 hȰuG>H'=+wWob1LNcb|ȹ0^@ <ӧ[(_it*FFgw2ܮ{CijH˂4Sp7 ~r"N.U]w;h iwORE6C6ܭ_6P3Y :VP8= E'bUeJWש0BH{y4#:Q4Gk]]D02D2@"+eie {-`ggrΡ sgqŎ4w&^ a]4`g]Qpo}[V:v""ouvwG$dYF4E$F$F(A4 Y!KDQl1Mih^0 躎jUGRA\ATB p׮^hk9"3 bv2OQl' jh("J^;];wcmmHpRqI{}w3:n''4|;^a zr^1Z8 y4ueCL7C NR5L-Eׯ7_Hiݲ,Xg|/.K>=Zwͱo^{Tjo_ܸqW.]ְ1N0 HDI~aX|c1\0驮-0jM9;;]_?(gXKf;ٍJێatrܞ1j&vjhI/ww / sM8yϝ6vg L`nnD;{5W~뭷Z94\~K,$A$Xydpd,xr)B7P(  Zrf2"ixq/ΡF6C>R|VD#aR#Mc||/i4._| d] Q+ծ(81:IDATΣ:կ⣏>r,jUXX8?iMws5Jݵ45-^{5$:'M$\zOw)cssg"/_G` p኶k?M;Y4Ԑ'l-OӧOq=ʕ+t|ۨj Mg~&;9Ǐ-ꙻx(W0==)dYp Rpul,͡ա+俢i'ӂ(\ ˯wqaoo=B[ER{JG?Qp(6] (IwS|~D 0 Ϟ=_|.]l'+Hn FqaFUUKAXē'O<2ǫLMMܹsbfN+PhEnF.,Ql:(ד `zfը'#ʕ+Ó'O3: ;wxs3գ5V␋MWC~󞰉(H&H&z*264 A,D|'2bӕ-0:>*.n9Y2MDQD,C,Å `O'''166x<9/cQdpQOPUիWQQ.l6\nb"dY| 8.8faB , Z $}s#; }gA(J{mnne^ZT*aoo(;x6iD"$IqDQBX8b)4˨VQ-FB9g32G5cYV[jj À0 S?sEQ,UU?AUU(EQڢ¨eO?whŦ5wMp.Gp!жju- e ΐMgっIg>ϰ'E9 BqOp(r/a.*4úL%g&鏄ϸ͡#EheF'o(gd&crjF 3{s8lѲ.:K̡FgL\(@g" :}Ѵ㤣vJBŦgqqQ8#GEBe9 =Lh$7^ )" 8$:l6E'R)xKph`b3^kGH>cc4Qh et2L P!BC*DGя$WBl;d&؋8cz bQw B4qbbCqb)@|ӤÂC 0aCw3wņ6|Bw NAMh2~G,?nRp~-o*z:l܇CEgd (2d~Ǩǭʗ$ ,..nWćH2~Z\\ܡ)8z\D`? ggH8Mw_ _i (hcY9c?xV* DQdŒ|@_h@VV&:Ppxz&!n,?eS?h+~wqqǠņCNB# lw p<$@V4<8;F8ăQ>  $R؅ΆO\~G!|$~G(8ġ7M!;B!}V? ! !B!B!^ < Pp@noF(8yr,@oC'F(8y 4 q^Pp!Pp! RD#X_Pp<ܤPps98OݲhB?#B! п8ϣiB"PpA;x̾~=8[xmF B!γr@?Cg\Pp``ZyB!!gPs>y&P~C(8d0 4 qF B!Γ0 O77iB?!aet>CxOBCLYiB?!2>[^PpܹwF BV=],it_pC??Pp00_ @Cgcgqc>W$ (8d{.PpȠ|F`B6j ? 9F!C9"۴DvCz'ClomC,[3Ը5ͷ]F7AmB! WWi!*n{|@# n=SV@q~9F!n߽K#~ Jgxpsb+E^g%zlv|Pp_KK4 q"YYI3 9 ">sVBp9F!c~wF`B!STC‡""""=2qsZ!~>C _8l,""""=MHpYcatn>""""=!xAbe|eYO-GDDDĠG4@f$|9ē bZbZzGGDDDĠGAӾjý@Dڄ_ZLZG᱁y:NDDD 7~9F,oLho~0q"""b#ZwЍbQs2}/H{`C:\ljA(_?Ë) F':=*8ۏpZOد9#ec'"""bУ07~{i Kp{^*Os>xDDDD zoل|3ʓU5uA=1,/.xsJ ,9ǡ1QK=1~n/&C^P=1Qm"e'&0~R3?۱ZA/p~7~%I2M' # xRA!/ 4|#(VWyЛ͑ x | {DDDKd0u`cJKHӾ׷~\DDDĠGc}q1dc}% +kk ytX<5z{1CP ס(\.( ֮_$#_ABDQD.㉣\v 򉰗5s\O7bf<ԓ+a/ Ac`11QÞ(maN⬛41QdY 9*rSx/{փI0Q@G/}& &)Gp޼T*v7BQD* űp'1荹Q yxK(oEA<$0r&N"""b ~Ci"O0*@4gQ_e$ 4D"qj=^DDDĠGCoA@:ɥJDDDĠGcO&ٗF|>|>FrA{pQq= H$W<>|m޷cbb'+EA$is""""=N^7$ }FmܹswAP8]666b1V>yDѡi<eYpgd˴EԿxՖY 򶷷ĝ;w:j7Mܹs  zeaww[vq]M@S7p/xQ8ٙ9*X a[DDDDkWF_ L^n lood6N۶hkݏ'OmݏG_öswA>٫N}.@DDѣP% U7͞fZufɃCܻٷ{x&ZΣkzR( ,JDDD= T*B8뺸ݯlhb{MYGA"LF{ڟH$h41 |3aO>L/kʺJDDDĠG';)aaa\r9_fԛ:~Oa.h~O7Hyg%"""bУ4-pz(666eO?䧟0 ^?haDDDD z(Ak]vaFv666:ImχZ~o3r4,uA#;-,,?|pf rcaao<_~q35lŗ_܅y~zMZw U{Fb]InO DO*z ʠR-.[bµ5GeB""""= 5EQFb?'&&011F#hԗ!J[;:rY$S_0kfqΝW[rF_{MY10j9b1_s]_|y7ŗwAž0zMYK/f"""b#Q!I ߗwq%_^$IDQBDDDD zh4˴@g1;7 Eoȭ߽~a/NDDD2κIC1jy=~ɺLDDDĠGC6O3 {׽ N1Q ?vvlN'"""=j# z/8绣qxBXG((Nd;0f&"""bУѦ* ᄭm76]ΰ /0Gru,#RyQFtc!?DFn<"""=qSПwq/v*{lFSM݀m25H۷c (O28+ B)4:NtQr01Wl Z=ނ O1ZE41CI_^p'=kڟ~%0_>s LՐXm$ H r (ưF֋UAAB Ƚz! /BsWx:WٛGbj2}kC5d<̢Zй5_)˗t&QQbr~0Kd89/w H8N"r (/lC7Y@2#O{DU{ڗ4:~l:Z'2ܚo8 xD/}lV?BRL e@0*OL6jAhޙ>C}hKxrBpL{,@:7PǗiZo"<ϏmytBAb=:6UT<|Oس9$:1Dވ4|߆ixoup'!a|hfMqBS-pKQ~*K7cPme$뗹|o7El|ʷ'٣ǡ,QjJ_1gxRѣ'uy< hu O'JyF4ϩԇo#EA@,"z(dk\E%,@YɴΓK z4V NqJQ' l;{kyF.iW?ôapѻ_V\Gٍ?~Wزw[gbu6Z*';.Oޟ/nVkyH%.(Q^ zxvӃmdsqJI> n==/XkwT><ɶ$'=a U/CeY īS4۶Ums6$Q0-u|]7~U2i,GoT$ٿφR>f/ĠGԕ1S$D9D,ri=0YhD|B&=DG&U%"K𸴴nׯm[A2}q3SIXZOFwvt]o7Oc9lsPA220c3#=nkeҩS z JEĭoZ6 {P,ԛwm-x9**lہ ra^Cowua&fzلe fisHDG z.A*ƙtF#UQds]fm&QT+'p+53/W{enceq~*+p[*"Xwj&]9/u.kY,n0MǠG zD}í`<ᄚ\6NzYlCYzqIK<=@y4tRo6dI "BQՏ8  eEp&;Aie(24ZEcrnB 'l/0}R="7E>_},z1}+A^SzNLeܾP3_ƣRߗSM IDATT8<,*C077`O{ % $=2Qx5A'{ldSm?yQMBD=,5M~c(x0*!继'F({ree%5G zD{ ..CSUx sQVa/*G=hu~Th*1l>j.7s*{>ZW/z]uir01xf ťyx?wvQqNHŕPIUS{`2x'sY;P'AQd?B;u=,.͟9.(N j/WkYYQ.n,_"{AWOJYv8p?Jann67FZyċ'"nyo\_X߸o^o B^ZeZC6gN^yyGaRx Pne s|6/). ݇Wwް_C6nwQyh\*I|0?;ݗ㛟Ƈ|SSETѷWo4PV9),]S skne s}ZN(5(JL¢1Mv++h4h6u4q}\d2>$b2$AyxdYյ+XZ^bVJQ8(/JMRpCX}jxf$ꕕ3e#C{FmRQJR{Zy pM1cz,k6 ] qw4H"2֮^_m/ӴWpm*r=g$(zӆu<(XZZ"RrZô.DQ*HcHSd2VN:ZA "<|.Vc]E]^e }tn8S'=σmYplzkMYQ^{?͕h٦?_D*Qr:ח|WUX ޴ʘHqm*4X^^ѐNUzY"-_b6U= ~"R ~4DY=eqʩ\OqDTٔd\ysEȦBi{?~J9x+WV^i yzBsSި6fZAu&ï2 ba֝=k9ӉV[]/50;3 qc@{H$033)hZ>t P^xMdү}yC] ]s ChMejN|W"Hf z3U?KAh~D6*b>5܉JU To+Iqų JJab"&r9Di6:¹}Doq MlŲ, TCCXC = D и?e{V0kG&j( ,vq]\Z[o_ӭ>0_abdHSHYkhR\T*h\|nkVvmkzקsRtދZ ]Ŏp|<{'BBi5.W3`f=b#8JrPò=T6/+ȤS`ZZg϶.`YF<G,E,E$A4 Y!KDQlcu.lǁm0Ma@ 4M4MWQ(O^DuLNNt]f^T`\jʊE`g(YQhxA7Y\( ds%4 iF:j+41 y@XD6 a#2@.nVY=e'gY6J+=a߽^'pZW= rvbW3lWo% uP\Cʲ$hQYƒ4_:2_r#IEP#3Dj$-$5ٛGC z_4d;ɹ*)+\w)h1$/ ;x {Mg#f{6?׏zbFKE^]O=Ug=m$q\Y]hmU6Lk!/?|u]dY5Q|S'ZɊcȣaM^f1Ѹ@hTĒ5GbP. 3-L?b~~w+)O5/y.@:z:RՂ o~N44MxA$^'UOMkV "ޟmj[ŃbɲX^kAt!R1Qsy 4!~:َBD&0?C<{{{{^~\/<&{H<*ixw(;ヒG]I?}sb|N6P)P:HcIWo@ܑ(^+%_-lDx颰ߞ=Iq!i2fy|vaXA$:R:ou Tn0%jKeT+QTxAt!JdE$j!H&u_}!6f<ׅpZ4 YU;6)3 ַl覃DTIDT ߴ\Ԛ6!JywJ:zlὉ!(j&$f+]q %±$x DɃb$ ]y?:df TVG*{7C1!:,Ӽx^<ؖQ? .oOfHRq-' 1 %,-Eqۘ؀]כ.glCKxq$5vݬk(11lj^6 ܐ\uWcؖ0.y'žeGkP}6@UUXYY ~9rFb0sa(VLkC }ݮCz/2u$1=: fBߣw!*{.Ɲ|Yul\N+++fyjF hDt4/Zӆa}2 |]鶮vs21QL6Yb[2vVbaS;:TBxחQؼwߤR)|Gn0 0!"jpsw,b2C << R>tv ls`1 YA*$8̍7$I~:jCt !e;th7M~md2֟O.AV K׊,'&qPTBߣjTu;eGr= Duyla2Ƕd2|GX^^QO_jdXPm0,a6l+G.U-FB2>裾NOu!!N. ȶd<7 c#`f/H^!{.selHH$ ݻwQ{X1=DE(@H G9{G<9z]3"D7n@,Zfcq%bako(ZaAٛJʠjX]fR5i0u!QhdE1tjωbxwQ(|t28[o\.vVWWӞk!![GM̢7d-:zwS"f+ĠVTE(ڞܰ'޾qo{~n.÷-|w}z7~ׯ/,c]DbeHx4VndHHmU 1 $Y:3eYLMMawwhmm }Ms!!q$|ޅ,c x)XےFz8 ۖ0=)xw 1uRN׮7jeFeȑ>$ >|wZ__I,<wr6/WA70111!O8Oj(~>=qސiX/Mm+nѬjXq5͚G_NU^ Ġ*J&UDBH) [($*11SʭCDV`p'gYxFJ_}2@LS܏WʜA$* }n7AJ4GW^4Td2CWqXZ|u MSփITg/WXj_Mmːa2h!x1',L xJb_ 8;I8<vHuL,T6 H-zMAq7ąZ|sE^lcJ, zk]vʯ NL\E!fAIb w'e_/p{.G?ޫGqeu5e ]`FʠǐGDt÷ xB.u~;O ۀjaFɌ{1ۤ NSkɓ=yDD yD47T (`bt$%aJiz2@a8ƩJR{<9eZZ{$^bzjIC~7j1r^h@nL j%*iLnLE.Ҁaۡ>F<"e:&f.]2cW6k je ͆0$8" zE@UmDbb l5/u#ܫGJY4v3ZXhB4aL9ͣFL8eƊXHDczp#6ElorWL8&&XE"s/0.6iNjp(g8LLNX,c®G Atl䄃,b}}f]N5v!q{#" ,l"6L4jlpH'1ב\{gZcLwf`/n 1CQb}c=l"~>XA $q] ލ xD4VaPpg3Xxڇ\IDAT 62|ӅDA&6CD,zǐGDtc˸,=a?eȣG ( O$†, CQ`-^-Dt=U  A~7SL zhP1 ƠGêwz yDDG*{ s%L 傆g&`b{!"+aw[-!3р #z]YqLb bAX򈈆hx4"qӋ&>!ci8<ĠǠGw xDDC Pu OM,&fkM;7P.DqBF]h5j Ւe#| }]4ac#"z]^p< " ZF$jAYТ$Ʌ(B\#qD8˒aLCєl(0 #=>0 GcV8ThUJ^Ai1:xԻa󀈈BAƠc ːGDDD zc9 zzy^ĐGDDD z } ` _\5<"""b#? &"""=0-y^=JCvGEYDDDĠG>q l],?UPc#"""=W8dEɤ׻~jgy!7*vhyR~OMLcp߁?g"=gXn^7?şkoNtw7'?O+sݴo<}8zz?w?币?s1uhXNVlwK;o,Wy <j|i*˓ſs(>YM ~<W?DuZA(&;3Mgk a9lj[ +Pw/{MӾ\Z޻6?9 /~&R(ugÿs*vLW_ln-[o-{=<ot\0X?[XBD<;Aϓ"?71X_lSdٶr|n{x\G7q5t:G zDDD\ װ]~Xbe:ӯ7wb}>_}38OROaXx_|S) X~aXp![K0{wAq H B%_L*Ůdm&Ůi''NMgϸIߤV&e#%u#!d !@q]q h-m`wYr=|~>y6(Ш^ڧU:JUMJґm딙79#;nUP|beg%UK]ۍ'~&IzMNMYTI:sB *9emM9rVxBͯTY];A9'ېB?2Xu,3}^?EqQaŒ `4bRBA۴ve߶Nz9\=qb"]uc:y:ᮉ~f@"Byߩtt굟syZWnu+\|ϵmP`ve$Tݮ}}gge?7}2~dv'hcr7mk??73Hպ>rG]m['SL~aB ^ܟ-V)Vruu;vd_}nӸ!Ws}TͶƻ>D*~Jr`V- Wm^ؘ#I96OoLT@Q?ϋvI\-O:iA,8Hih}so{ujǻ攕:_!I!}~v'fө/z2LGh{Z+O/wȟ=@dimUl\ Y_#w3D#_uya}ԍqq3ZnZ+ӊ-dEdƼnױʥ 7JRdX{phH3vK̓~lئ^)סwJXzq_>7i/ 9'X 4hU!#z4So[.IjSjwG/ ny|vM݊Yy 0(9.Jj[ u+ P<S l9<"Dok'W?̈́oip uFbToygN>ؘ}xR(YV+ExQRl"ˡjY[Ґz /ZŮ-$)N"B=mL[/Ӻ/-`Qg֏q:ܚ:G9YIan~~̟fYبN} |vY:{hs̊ MkGpƞ xL슏^<곅, jWN}O#6as0߀/ZH{2LyL ^:_![O|,NYkc;u׶)nEh-8 RWCrJ9e{xRUd՚H\[ͺ2̱ژv))nnT4iAQ{6kw=T.=2J |{3hc/_P5.uhk޹䖾f襽Xhc`@YɱJ]yeןuR%,Qy}㢴7skxUzqەWZ! /Ӥ}O#zGb"s9%3.UЮ*fIz+z|xMu8gIca˥Z @;'hUb޳@o{A_ߝ)+cZ~SЛG/vj~=RZRB@Olv;EzZ  (6|oXqijmooA7Nr5_A?M ͓޸~g7A>S\TD@O)@fUj_| 3,/7"=v*Ez?1R&o,NQ B L}zilh?A-ޘ+~3mtQV0YZ[%#r.];A'CZ[Z(<Ң!B z;7ƛAxUk6Syl<@拫q SJnbƗixѝw) @efa\zTENA#NS-˼eߜ3 G5bVwO=J_ S߮0sǍiӧNQ _3pp n(+/W_o/a}*+/=}=}"0>=`&Ts,|e\ zӣ| C W)潮`BIIENDB`hug-2.6.0/artwork/logo.xcf000066400000000000000000007137121353170073200154510ustar00rootroot00000000000000gimp xcf v003z0BBOG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) *.}u%B#Mn6Yly(R<J1, ZOiT7 Embrace the APIs of the future     Hgimp-text-layer(markup "Embrace the APIs of the future") (font "Sans") (font-size 18.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.152941 0.160784 0.196078)) (justify left) (box-mode dynamic) (box-width 400.000000) (box-height 105.000000) (box-unit pixels) (hinting yes)  .v.. pk#V-!!! ߪ@!!! ߪ@!!! ߪ@!p!``*! j Fh Lh؄toi~ovgnqo k X%I Ź_ztD4HH)pH ^pHlPHpH6pHGYj``3pHnhjpHj ~pz<݃?7  ?7  ?7  ?7\.,  xS x8_j``kj];VmU\\"mU\\o*|:%%(r4  HH3HH3Z<  Y|PPV  & ov?~ ov?$5  0M  0D?m:           @m:           @m:           @m :l wRYS\``p a <[ SGron`````Vwsu{ ")hg 4f HH@3{H '! zqvu ^rkm ~Lj ކ  M @Z:9 )) DZ:9 )) DZ:9 )) DZ :l9RYS \)) xkj``````vgmU\\ %HH3   ov?zi~~zi~ 0M DZ,Z,Z,ZxjmU\\%HH3  ov? 0, B!hug ...     Ggimp-text-layerx(markup "hug\n") (font "Roboto Bold") (font-size 18.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.494118 0.737255 0.537255)) (justify left) (box-mode dynamic) (box-width 362.000000) (box-height 155.000000) (box-unit pixels) (hinting yes) 011b323B3R3b3r>GzNUZd k1sc~" ~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~} ''''''''''''''' ''''''''''''''' '''''''''''''''~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~}'~} |~}}~}}~}}|j~} ~}~~}~}x|~~~}`}}~~~}|~~~}`~~~}u}~~~}|}~~~}}~~~}y~~~}~~7~7~7~7~7~7~7~!~}~}~}~ ~~}||}}~ ~~}}~~~}~U~~~u~~jj~~~z~~|@~~~}~~}|~~~}p~~~}}~~~}~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~'''''''''''''''''''  77777777   U'''''''''''''''''''  7777777   U''''''''''''''''''' &`նu?  DvqA(2'7777777 ϵ q("e . 2D  NAA}|<~}@~}~}|~}~}u~}~}~}~}~~} ~|~} ~}~} ~s~} ~}~} ~~} ~}U~} ~{~} ~}~}~|~}~}~}~}f~}~|~}~~}~}~}~f~}~y~}~~}~}~}~~}~}~}~}~}~}~}~~}~}~}~}~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}<      <       ff{(<UK8RO 8   H  \ ?A'PyV}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~(}~~y}~~}}~~m}}~~{~}~~}~}~~q~~}~~}~~}~~}~~}~~@~~}~~{~~}~~}~~}~~}~~}~~~}~~ t~~}~~ {~~}~~ }~~}~~ }~~}~~ ~}~~ }~~}~~ }~~}~~ }~~}~~ ~}~~ ~}~~ ~}~~ }~~}~~ ~V(((((((((((((((((             V(((((((((((((((((m t            V((((((((((((((((({Zc5u  5 _ }         m}|~}~}~~}~~}}|}U)x|}}~~}|q {||@|}}~~} ~ {}~~}zf~ ~ }~~|fy~ ~ @~#~||~ ~{}~$~}}~ ~}~'~|}~ ~}(~}{}~ ~}~7~|~8~z~9~U}~9~|~:~{~;~f}~;~}~<~q~]~}~}}~~}~~}|{z{}~.~}z x}}~)~}y~)~}}~%~}y}~#~}|~"~}}~!~U{~ ~{ ~} ~|~}~}~}~U~}~~|~}~t~}~ ~}~}~ ~ ~)    ! # & ( ) 79U9:;;<<4/ +(%$$ U ! U    m)   f ! % & ( * 88U:<:f;=]8- *)$$# U !  Ut     ) (789z:3:;m<<hX-1 s)_'.m$'Y"8t"m  3  ?8O*  h |~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}hhhlA~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~~}}~~@@@@~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~}~~~~}~~~~}~~{~}~~|~}~~}~~{~|~~}~|~~}~u~~}~~}~~}p~~}~+~}~+~s~+~}~*~,~U}~)~}~)~`~)~|~(~}~'~y}~&~}&~'~{}~#~|~#~f}}~ ~z~ ~{}~ ~2u}}~5f}}~}++****))('&%%$#! 25++*,**)((''&$$#" 25fSpCYU[+**T*)k)(O('&,%@$;#&" 1= 2g52g}~~ }~~}~~ ~}~~ ~}~~ ~}~~ }~~}~~ ~}~~ }~~}~~ ~}~~ }~~}~~ |~~}~~ |~~}~~ u~~}~~}~~}~~~}~~~}~~~}~~m}~~}~~~}~~}~~|~~|~~}~~~x}~~|~{~~v~`|~~~ j}~~z}{Ux}~}~~~}!~,~,~,~,~,~,~,~,~~{~~~z}~~~}z~~~{}~~~}m|~~~}|}~~~v~ ~}|y{~~ ~4}~}~}v             ",,,,,,,,  2             ",,,,,,, v 2          j C J l(2!x9| g/;_˸ ,,,,,,,/- vQc  P |=ڗB2ȤW~ ~}~}~}~}~ ~}~q~{~}~~~|~} ~!~ ~}"~!~}q#~}y~#~{`}~#~}|`}~&~|u}~(~}z|~,~}z m}~~}~~}|~xmUtzz|}}~~}~=~}~<~v}~;~|~;~}~:~v}~9~|~9~|~8~9~8~}~&~}{~ ~|}~$~{~ ~ |~"~}|~ ~ s}~~}m ~ ~|@~ ~ @}}~~|wv~ ~~}~~}mv~ ~v~}}~ ~}z}~ ~mz~}|}}~}}~|@ }~ ~1}~ ~1 ~0t}~ ~0|~ ~m|$}~ ~}~~"}~ ~{~~}~ s}~ ~x~~}|}~~@~~v}~~}~~}~f~~{}~~}xx}~~m~ ~}ym}~~~}|z }~}~~|~|ztUfsz||~}~~{}~:~U~<~|~<~}}~    !!!#%%(+ U<<;=:9987( & & !        1 1 0 0 # "   U:U;<<=   !!"q!#%%), 񈉇Ut<<<;:98896& % "   v  v  m 1 1 0 0 # #  vf   󉃅tU:U;=}7g(w @ !B!L!"\#O%f(d* ivF  +S}4<<;p;:9I8j87( &3 p#5 ?!$   JQ e~ Dq   N y+6 +Tq~kH$ W 1 1 0 0l  G# N"a XP  v }B7! % }` 0WԕlD$  +Gr:;|<6<=~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~} ~ ~~|~}~|~y~}@~~~{~z~}~}~z~} ~{ ~ ~} ~} ~v ~{ ~~t                    t xaI%^u ;  :   ^              s~=~x}~;~x}~8~}yu~7~}|m}~4~}m~}~0~}| p}}~-~}y y}~+~|z}~'~}@v}~"~}~{~~}|sz}}~}~~v$@|~}}~}}~}~}~}~~}~}|y@<;9752 - )& $<;96m62 . )% v$<!:#8)6 4 J0j -% ))S/%_{ F7j/qŋN $&NuȲwS'}{}:::*:wD;"jKoala     j {jUeu!1AQaq` uP -=M]m}52!) -=b3  )9IYiyY )9IYiyc +;K[k{ +;K[k{ +;K[k "'*. 1 469; "'*. 1 469; "'*. 1 469; *@YtѾtY@*5a=|!K&/) <- 20s385U7 =8 30,)&$! =8 30,)&$! =8 30,)&$! =՗a57|=2 K//+<(2%s#8 U    ;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 ;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 ;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 ;;:8765 4 3 2 2 1 00/..--,,,++++****************++++,,,--../001 ( "&* -13     # %(+*)('&&%$#"!! ! ""$#%$$%%'&&(''')((((*)))))( "&* -13     # %(+*)('&&%$#"!! ! ""$#%$$%%'&&(''')((((*)))))( "&* -13     # %(+*)('&&%$#"!! ! ""$#%$$%%'&&(''')((((*)))))( "_&F* &- 5>9 ;8 ó8|aYYa|4a4""4a2P+""+P1a+""+aywy|4""4|yw wya" "awwY" "YwwY" "Ywwa" "a~ww~|4""4|wwa+""+awwP+""+P{wwa4""4aww|aYYa|wwww{www ww!ww!ww"ww"ww#ww#ww#ww$ww$ww$ww%ww%ww%ww%ww&ww&ww&ww&ww&wó8|aYYa|4a4""4a2P+""+P1a+""+azxz|4""4|zx xza" "axxY" "YxxY" "Yxxa" "a~xx~|4""4|xxa+""+axxP+""+P{xxa4""4axx|aYYa|xxxx{xxx xx!xx!xx"xx"xx#xx#xx#xx$xx$xx$xx%xx%xx%xx%xx&xx&xx&xx&xx&xó8|aYYa|4a4""4a2P+""+P1a+""+a~|~|4""4|~| |~a" "a||Y" "Y||Y" "Y||a" "a|||4""4|||a+""+a||P+""+P~||a4""4a|||aYYa|||||~||| ||!||!||"||"||#||#||#||$||$||$||%||%||%||%||&||&||&||&||&| h: l!#%&(*+ - . 0 1 1 2 3 44789:;;<<=8|aYYa|4a4""4a2P+""+P1a+""+a0|4""4|/a" "a.Y" "YY" "Ywa" "aw{|4""4|wa+""+awP+""+Pwa4""4aw{|aYYa|ww7w7w6w6w5w5w5w4w4w4 w3 w3 w3 w3 w2 w2 w2 w2 w2!#%&(*+ - . 0 1 1 2 3 44789:;;<<=8|aYYa|4a4""4a2P+""+P1a+""+a0|4""4|/a" "a.Y" "YY" "Yxa" "ax{|4""4|xa+""+axP+""+Pxa4""4ax{|aYYa|xx7x7x6x6x5x5x5x4x4x4 x3 x3 x3 x3 x2 x2 x2 x2 x2!#%&(*+ - . 0 1 1 2 3 44789:;;<<=8|aYYa|4a4""4a2P+""+P1a+""+a0|4""4|/a" "a.Y" "YY" "Y|a" "a|~|4""4||a+""+a|P+""+P|a4""4a|~|aYYa|||7|7|6|6|5|5|5|4|4|4 |3 |3 |3 |3 |2 |2 |2 |2 |2h !l #_%F(&, 0> 3 789|; M( "$&(*,  # $ ( ) * + , - . . / 0 0 / . / . . . - , - , - + * * + ) * ( ( ' ' ( & % &  $  $  #  $  !  !         ( "$&(*,  # $ ( ) * + , - . . / 0 0 / . / . . . - , - , - + * * + ) * ( ( ' ' ( & % &  $  $  #  $  !  !         ( "$&(*,  # $ ( ) * + , - . . / 0 0 / . / . . . - , - , - + * * + ) * ( ( ' ' ( & % &  $  $  #  $  !  !         ( "$&(*,-.01 2 3 4 5 667889::;;<<<====>===============<===<<<;;::9887    9764 3 9764 3 9764 3 9764 3 2 1 3 4 5 678:;<> @9 40-+( $2 1 3 4 5 678:;<> @9 40-+( $2 1 3 4 5 678:;<> @9 40-+( $2 2 3 4 5 678:;<> @9 40-+($))))) ) ) ) ))))))) ) ((***))))(((''&&&%%$$##""!    !"#$$%&%%$$## # " " ! 뾳 ))))) ) ) ) ))))))) ) ((***))))(((''&&&%%$$##""!    !"#$$%&%%$$## # " " ! 뾳 ))))) ) ) ) ))))))) ) ((***))))(((''&&&%%$$##""!    !"#$$%&%%$$## # " " ! 뾳 =<:8 40_(*(('m'&''&4&&%#%$M$$l# #x""m!!N &{- q !"8#d$$% &%%$$###""!w&ww&w~w&wzwwwwdzxwwwwwwwxww}}w w} zwww w ~ww} }w w} ww w w ww w ww{ {ww{ ww ww ww ww ww ww ijww ww ww wwww wwww wwww wwųww wwww wwww wwóww{ {ww{ww www w w ųww} }w w}ƣ www w ³ww}}w w}ž wwww ³wwww {wwww ówwÜ ww ww ³{ww ww wwƜ ~ww~ ww ww  ww Ø yw wydz  øywydz     "       釒ÿş   ~~~~~~~~~~ }}||{{뿱~{z{~dz(&x&xx&x~x&x{xxxxóxxxxxxxx}}x x} {xxx x ~xx} }x x} xx x x xx x xx{ {xx{ xx xx xx xx xx xx xx xx xx xxxx x xx xxxx xx³xx xxxx xxxx xxxx{ {xx{xx xxx x x ³xx} }x x}  xxx x xx}}x x} xxxx xxxx {xxxx xx xx xx {xx xx xx˜ ~xx~ xx xx  xx zx xzó  zxzó    ½ "       鄏~~~~~~~~~~~~ ~~ }} {||{|{||{|{{|{|{||{|{ {{yzyyzyyzyzyzyyzxx{xx{ó(&|&||&||&|~||||||||||||| |~||| | || | | || | | || | || || || || || || || || || || || |||| | || |||| |||| |||| |||| |||| |||| ||| | | || | | ||| | ||| | |||| |||| ~|||| || || || ~|| || || || || ||  || ~| |~  ~|~     "   ~~ }}|}||{ {y y}}跔yyxyyxyxyyxyxyxyxyxyxyyxyyxyyxy wxxwxxwxwxwxxwxxwxxwxwx vv uvvuvuvvuvuuvuvuvvuvu ttstsstsstststsst|rr|벤~yurqruy~(& w2 w2 w~¶. wz,wwx+ww)}wwx(wwzŵ&}ww~%ww $w #{ww "ww !ww wwwwųwwwwwwijwwwwwwwwó{wwwwwų}wwwwƼǷ}wwǻwwǿww³w{ųwwwųw{³wųó ij  ų     Ơ  ~~ } ŵڠ| 䠠  ¶ x2 x2 x~. x{þ,x x+xx)}xx(xx{´&}xx~%xx $x #{xx "xx !xx xxxx³xxxxxxxxxxxxx{xxxxx³}xxxx¹ö}xxùxxýxxÿx{³xxx³x{x³   ³   ~~~  ~ Ġ } |{||{ { ´٠yzy 㠠   |2 |2 |. |~-| |+||)||(||~'||%|| $| #|| "|| !|| ||!|||||||||||||||||||||||||||||||~||||~|   ~~}}| |{{z{z{{ y yxyxyyxy xwxxwx Ġ v vuvvu t ٠sts 㠠              $000 1 1 1 1 2 2 2 3 3 4 4 4 5 5644221110 / . ,**'&$! !#$'(*,-/$           $000 1 1 1 1 2 2 2 3 3 4 4 4 5 5644221110 / . ,**'&$! !#$'(*,-/$           $000 1 1 1 1 2 2 2 3 3 4 4 4 5 5644221110 / . ,**'&$! !#$'(*,-/$665 4 3 2 1 0.-,*(&$" $ _/ */ / 0 m0 &0 0 1 41 1 2 #2 3 M3 3l4 4x53m3 1 N1 0 &0 {0 / -./-+*'&$! !#$'(*,-/$\5 .)& #    󖞠      󞚗          " $ $ " " ! !   ! ! " "$&+*)'&$\5 .)& #    󒝠      󝘔          " $ $ " " ! !   ! ! " "$&+*)'&$\5 .)& #    󒝠      󝘔          " $ $ " " ! !   ! ! " "$&+*)'&$\5 .)&# !$%')*-./ 2 3 4 4 5 5 5 5 5 5 4 4 4 4 3 3 3 2 2 1 00/.-+*)'&$    210/..- - - , ,,,++,,++,, , , - --../11 2 3 4 679<210/..- - - , ,,,++,,++,, , , - --../11 2 3 4 679<210/..- - - , ,,,++,,++,, , , - --../11 2 3 4 679<2 1 1 0//...----,,,,,,----...//01 1 2 3 4 679<!     % (,1>====;96 2/-*&$!!$&)-1 3 6:=@!     % (,1>====;96 2/-*&$!!$&)-1 3 6:=@!     % (,1>====;96 2/-*&$!!$&)-1 3 6:=@!"&)+/3 68;>=;96 2/-*&$!!$&)-1 3 6:=@! ҳ  ˳  ѳ 翳 ߳    **)))))))((((((((((''''''''''''''''''''$   ! ҳ  ˳  ѳ 翳 ߳    **)))))))((((((((('''''''''''''''''''''$   ! ҳ  ˳  ѳ 翳 ߳    **)))))))((((((((('''''''''''''''''''''$   !      !!"'+.1 4 8<> <8 4 2$"#'뵷ֳ<׳:ܴ7ij5ճ3 ˳0 ɳ-Ѵ)ʳ&ҿ!̽"¾ $"#'ֳ<׳:ܴ7ij5ճ3 ˳0 ɳ-Ѵ)ʳ&ҿ!̽"¾ $" #(ֳ<׳:ܴ7ij5ճ3 ˳0 ɳ-Ѵ)ʳ&ҿ!̽"¾    !û#պ%&%#! #%(+ /27 >   !#Թ%&%#! #%(+ /27 > ⠹!!$Ե%&%#! #%(+ /27 > 2 4 589, - . .<Ǡ<==;;;<<:Š::;;99̠99::964Ơ3ؠ200/ - , *'&%$Ơ#Π!ՠ ۠ !"##$۠%ՠ%Π%Ơ% 2 4 58+ , - . .<Ơ<==;;;<<:à::;;99ˠ99::964Ġ3נ200/ - , ('&%$Ġ#̠!Ӡ ڠ !"##$ڠ%Ӡ%̠%Ġ% 2 4 58+ , - . .<Ơ<==;;;<<:à::;;99ˠ99::964Ġ3נ200/ - , ('&%$Ġ#̠!Ӡ ڠ !"##$ڠ%Ӡ%̠%Ġ% 2 4 589;<=n<;:9765 3 2 0/.-,+)(&%$"!tmT* &!K"N"#%%%%#"! !"$%&()*,-./0 2 3 4679:;<=#"! !"$%&()*,-./0 2 3 4679:;<=#"! !"$%&()*,-./0 2 3 4679:;<=#"! !"$%&()*,-./0 2 3 4679:;<=                                              /,++++++++++++++++++++++++++++********))))))((((((''''&&&&&%%%$$ ?==<<<<䠠;;;ڠ;;:Ơ:999887Π76٠65ޠ ?==<<<<㠠;;;٠;;:Ġ:999887͠76ؠ65ݠ ?==<<<<㠠;;;٠;;:Ġ:999887͠76ؠ65ݠ%%%%%%%%%%ؠ%Ơ%%%%%%%̠%%%%%%Š%%%%%%&&&Ǡ&&&&&''''''(((((())))*****+++,,%%%%%%%%%%נ%Ġ%%%%%%%ˠ%%%%%%à%%%%%%&&&Ơ&&&&&''''''(((((())))*****+++,,%%%%%%%%%%נ%Ġ%%%%%%%ˠ%%%%%%à%%%%%%&&&Ơ&&&&&''''''(((((())))*****+++,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&''''''(((((())))*****+++,,        !!"     !!"     !!" $$###"""!!!      !!" @==<;:;987 @==<;:;987 @==<;:;987  54ݠ4 3ՠ 3 2Ǡ 2 1 0 0 /ˠ /.-Ҡ-,+Ơ**)('נ 54ܠ43Ӡ 3 2Š 2 1 0 0/ɠ /.-Ѡ-,+Ġ**)('֠ 54ܠ43Ӡ 3 2Š 2 1 0 0/ɠ /.-Ѡ-,+Ġ**)('֠  ,,---...///000 1 1 2 2 2 3 3  ,,---...///000 1 1 2 2 2 3 3  ,,---...///000 1 1 2 2 2 3 3  ,,---...///000 1 1 2 2 2 3 3          @@@@5x<F#jFace      j }9}E}Q}]}ij"# ##,#<#L#\#l#|$s%X%h%x%%%%%%%%&&&(&8+06<DDDDDEEE$E4EDETEdEtEFaK_n rrrrsss's7sGsWsgswssstRvCx9xIxYxixyxxxxxxxxy yy)y9yIyYyiyyyyyyyyyyz zz)z9zIzYzizyzzzzzzzz{ {{){9{I{Y{i{y{{{{{{{{| ||)|9|I|Y|i|y||||||||} }}) "'*. 1 469; "'*. 1 469; "'*. 1 469; *@YtѾtY@*5a=|!K&/) <- 20s385U7 =8 30,)&$! =8 30,)&$! =8 30,)&$! =՗a57|=2 K//+<(2%s#8 U    ;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 ;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 ;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 ;;:8765 4 3 2 2 1 00/..--,,,++++****************++++,,,--../001 ( "&* -13     # %(+*)('&&%$#"!! ! ""$#%$$%%'&&(''')((((*)))))( "&* -13     # %(+*)('&&%$#"!! ! ""$#%$$%%'&&(''')((((*)))))( "&* -13     # %(+*)('&&%$#"!! ! ""$#%$$%%'&&(''')((((*)))))( "_&F* &- 5>9 ;8 ó8|aYYa|4a4""4a2P+""+P1a+""+aywy|4""4|yw wya" "awwY" "YwwY" "Ywwa" "a~ww~|4""4|wwa+""+awwP+""+P{wwa4""4aww|aYYa|wwww{www ww!ww!ww"ww"ww#ww#ww#ww$ww$ww$ww%ww%ww%ww%ww&ww&ww&ww&ww&wó8|aYYa|4a4""4a2P+""+P1a+""+azxz|4""4|zx xza" "axxY" "YxxY" "Yxxa" "a~xx~|4""4|xxa+""+axxP+""+P{xxa4""4axx|aYYa|xxxx{xxx xx!xx!xx"xx"xx#xx#xx#xx$xx$xx$xx%xx%xx%xx%xx&xx&xx&xx&xx&xó8|aYYa|4a4""4a2P+""+P1a+""+a~|~|4""4|~| |~a" "a||Y" "Y||Y" "Y||a" "a|||4""4|||a+""+a||P+""+P~||a4""4a|||aYYa|||||~||| ||!||!||"||"||#||#||#||$||$||$||%||%||%||%||&||&||&||&||&| h: l!#%&(*+ - . 0 1 1 2 3 44789:;;<<=8|aYYa|4a4""4a2P+""+P1a+""+a0|4""4|/a" "a.Y" "YY" "Ywa" "aw{|4""4|wa+""+awP+""+Pwa4""4aw{|aYYa|ww7w7w6w6w5w5w5w4w4w4 w3 w3 w3 w3 w2 w2 w2 w2 w2!#%&(*+ - . 0 1 1 2 3 44789:;;<<=8|aYYa|4a4""4a2P+""+P1a+""+a0|4""4|/a" "a.Y" "YY" "Yxa" "ax{|4""4|xa+""+axP+""+Pxa4""4ax{|aYYa|xx7x7x6x6x5x5x5x4x4x4 x3 x3 x3 x3 x2 x2 x2 x2 x2!#%&(*+ - . 0 1 1 2 3 44789:;;<<=8|aYYa|4a4""4a2P+""+P1a+""+a0|4""4|/a" "a.Y" "YY" "Y|a" "a|~|4""4||a+""+a|P+""+P|a4""4a|~|aYYa|||7|7|6|6|5|5|5|4|4|4 |3 |3 |3 |3 |2 |2 |2 |2 |2h !l #_%F(&, 0> 3 789|; M( "$&(*,  # $ ( ) * + , - . . / 0 0 / . / . . . - , - , - + * * + ) * ( ( ' ' ( & % &  $  $  #  $  !  !         ( "$&(*,  # $ ( ) * + , - . . / 0 0 / . / . . . - , - , - + * * + ) * ( ( ' ' ( & % &  $  $  #  $  !  !         ( "$&(*,  # $ ( ) * + , - . . / 0 0 / . / . . . - , - , - + * * + ) * ( ( ' ' ( & % &  $  $  #  $  !  !         ( "$&(*,-.01 2 3 4 5 667889::;;<<<====>===============<===<<<;;::9887    2 1 3 4 5 678:;<> 2 1 3 4 5 678:;<> 2 1 3 4 5 678:;<> 2 2 3 4 5 678:;<> ))))) ) ) ) ))))))) ) ((***))))(((''&&&%%$$##""!    !"#$$%&'()*+,-/01 ))))) ) ) ) ))))))) ) ((***))))(((''&&&%%$$##""!    !"#$$%&'()*+,-/01 ))))) ) ) ) ))))))) ) ((***))))(((''&&&%%$$##""!    !"#$$%&'()*+,-/01 =<:8 40_(*(('m'&''&4&&%#%$M$$l# #x""m!!N &{- q !"8#d$$% &'()*+, -/c 09 1 w&ww&w~w&wzwwwwdzxwwwwwwwxww}}w w} zwww w ~ww} }w w} ww w w ww w ww{ {ww{ ww ww ww ww ww ww ijww ww ww wwww wwww wwww wwųww wwww wwww wwóww{ {ww{ww www w w ųww} }w w}ƣ www w ³ww}}w w}ž wwww ³wwww {wwww ówwÜ ww ww ³{ww ww wwƜ ~ww~ ww ww  ww Ø yw wydz  øywydz     "       釒ÿş   ~~~~~~~~~~ }}||{{뿱~{z{~dz(&x&xx&x~x&x{xxxxóxxxxxxxx}}x x} {xxx x ~xx} }x x} xx x x xx x xx{ {xx{ xx xx xx xx xx xx xx xx xx xxxx x xx xxxx xx³xx xxxx xxxx xxxx{ {xx{xx xxx x x ³xx} }x x}  xxx x xx}}x x} xxxx xxxx {xxxx xx xx xx {xx xx xx˜ ~xx~ xx xx  xx zx xzó  zxzó    ½ "       鄏~~~~~~~~~~~~ ~~ }} {||{|{||{|{{|{|{||{|{ {{yzyyzyyzyzyzyyzxx{xx{ó(&|&||&||&|~||||||||||||| |~||| | || | | || | | || | || || || || || || || || || || || |||| | || |||| |||| |||| |||| |||| |||| ||| | | || | | ||| | ||| | |||| |||| ~|||| || || || ~|| || || || || ||  || ~| |~  ~|~     "   ~~ }}|}||{ {y y}}跔yyxyyxyxyyxyxyxyxyxyxyyxyyxyyxy wxxwxxwxwxwxxwxxwxxwxwx vv uvvuvuvvuvuuvuvuvvuvu ttstsstsstststsst|rr|벤~yurqruy~(& w2 w2 w~¶. wz,wwx+ww)}wwx(wwzŵ&}ww~%ww $w #{ww "ww !ww wwwwųwwwwwwijwwwwwwwwó{wwwwwų}wwwwƼǷ}wwǻwwǿww³w{ųwwwųw{³wųó ij  ų       ~~ } ŵ|    ¶ x2 x2 x~. x{þ,x x+xx)}xx(xx{´&}xx~%xx $x #{xx "xx !xx xxxx³xxxxxxxxxxxxx{xxxxx³}xxxx¹ö}xxùxxýxxÿx{³xxx³x{x³   ³   ~~~  ~  } |{||{ { ´yzy    |2 |2 |. |~-| |+||)||(||~'||%|| $| #|| "|| !|| ||!|||||||||||||||||||||||||||||||~||||~|   ~~}}| | {{z{z{{ y yxyxyyxy xwxxwx  v vuvvu t sts     d<;: ::98754 32c 19 /            $000 1 1 1 1 2 2 2 3 3 4 4 4 5 56677889::;<<=           $000 1 1 1 1 2 2 2 3 3 4 4 4 5 56677889::;<<=           $000 1 1 1 1 2 2 2 3 3 4 4 4 5 56677889::;<<=665 4 3 2 1 0.-,*(&$" $ _/ */ / 0 m0 &0 0 1 41 1 2 #2 3 M3 3l4 4x55m66N77&8{99-:q;;<8    2 4 5 78:<=2 4 5 78:<=2 4 5 78:<=2| 485 7>8 :&<F<_ $"#'뵷³=;96 4 1.*'"" $"#'³=;96 4 1.*'"" $" #(ó=;96 4 1.*'""  l< h:U785s3 20 <-/)K&=|!5a"*@YtѾtY@* ! !#û$'(&%#!!$&),0 38 > ! !#$'(&%#!!$&),0 38 > " "#%'(&%#!!$&),0 38 >.| -8+ *>( &&%F#_!l h U8 s#2%<(/+ K/|=2՗a57 >                @@@@5x<F#c Eyebrows      /~Nc~v c"2BRbr"2BRr  )9IYiy )9IYiy )9IYiy )9IYiy )9IYiy )9IYiy )9IYiy= ;  5 #10!#' /6706<;<<2/+ *55<<,/%39<<;5 32;<<6 6-:<<- 5&7<<2 4 "#, !#**)*&!'&&**%  $%)**(# -&**)#0 **)2#**'  .````1x<F#Right*     #*  +;K[k{A(8HXhx(8HXhx(8HXhx(8HXhx(8HXhx;72:V3:~1w/2ןbG.ԄZ/4`1gJ   :ғy~i/7-3x^&8;162 wa;0Left<     , -=M]m} 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p-:61  2/i~y͍V:2/~:+;8&^xw/Gb23Z5`45 Jg #wa;01Eyes      ""11 )L\l|H/?O_o/?O_o/?O_o  8 `` 4@ߏ@2@@1  0``/ . . .  @<@; ;`::  8 `` 6ߏ@4@4 3`3 2 2#``0  1@@2@ߏ@4 `` 8 ; :;`; <@<@ 2 2`3 3@4ߏ@4 `` 8 9 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @La&00 Layer #1     "80^jv0+;K[k{Q.>N^n~.>N^n~.>N  8 `` 4@ߏ@2@@1  0``/ . . .  @<@; ;`::  8 `` 6ߏ@4@4 3`3 2 2#``0  1@@2@ߏ@4 `` 8 ; :;`; <@<@ 2 2`3 3@4ߏ@4 `` 8 9                                            ````iLZ&-0 Right Eye     ^X0|*60x"2BRbr"2BRbr"2BRbr ='9'4 '0'/'/'/'/'0''<' =)9)4 )0)/)/)/)/)0))<) =2924 202/2/2/2/2022<2 = /[8w4 6`y0 f/ /` /`/ Šzy0 J@% p< /[ '2'/'-',',',','-'/ ' )2)/)-),),),),)-)/ ) 222/2-2,2,2,2,2-2/ 2 ղ[/ 1 p.,&+++&+, p.ղ[/                                             ````iLZ&-B/ Left Eye     ! B/#B/7y','''!!'"'"'"'!'''#'),)')!!)")")")!)))#)2,2'2!!2"2"2"2!222#2 /[ղ[/ +pw&y`6 &ɩf  `&`yzۥ pp %@J " /[ղ[/ ]]]]!0Smile z     ^O0s 0o)'7GK[`p8#3CScsŃœţų#3CScsƃƓƣƳ ='9'4 '0'/'/'/'/'0''<' =)9)4 )0)/)/)/)/)0))<) =2924 202/2/2/2/2022<2 '2'/'-',',',','-'/ ' )2)/)-),),),),)-)/ ) 222/2-2,2,2,2,2-2/ 2f'<':'9'7'6'5 '4 '3 '1 '1 '0'0'/'/'/'.'.'.'-'-'.'-'.'.'/'/'0'0'0'2 ' f)<):)9)7)6)5 )4 )3 )1 )1 )0)0)/)/)/).).).)-)-).)-).).)/)/)0)0)0)2 ) f2<2:29272625 24 23 21 21 20202/2/2/2.2.2.2-2-2.2-2.2.2/2/20202022 2  -(cbbc6^effef 77hiihi7 lkklk,8?oonG8rrg9Autuu 8 qxxM97{{9e~~K9#9Le'='<';'8'7'6 '5 '4 '2 '1'0'0'.'.'.'-'-'-',',','+','+',','-'-'-'.'.'()=)<);)8)7)6 )5 )4 )2 )1)0)0).).).)-)-)-),),),)+),)+),),)-)-)-).).)(2=2<2;282726 25 24 22 2120202.2.2.2-2-2-2,2,2,2+2,2+2,2,2-2-2-2.2.2( ;(8Gc<8fll98Gnoo.9grqq,8 uut)8Mxx"7{{z{7K~~`77eL6% '4 '5 '6 '7':'<'>'% )4 )5 )6 )7):)<)>)% 24 25 26 272:2<2>22rE9&/9G!9c8 }!8081H8>i8E9G:D;:<)= !<;!:09G6i=4=v%0%vGi,iDo,(,p:K"K)~~II~~^ iA@i^5欍pWB0    0BXp5ii --DDHH8ă8WȗW LK':\yøz\:  '0 '1 '2 '4'5'7'9'; )0 )1 )2 )4)5)7)9); 20 21 22 242527292;Er6/&7G8d9} 9:1;><E                                             ````iLZ&-0Nose l     E00(8ʄ 0@P`7(8HXh ,<L\l| ,<L\l|mQKB7,',7BKQ0QH,' ',HQ+SE''ES(L''L%SA''AS"R3''3!Q''mLG?6-)-6?GL0LE-) )-EL+NB))BN(H))H%N?))?N"L3))3!L))mQLE=626=ELQ0QJ62 26JQ+RH22HR(M22M%RE22ER"Q:22:!Q22m0͆00 +(ww%  "#!0R='Q<L=)L<Q=2Q<#=0<    !Q'' S.''S<''G''O''S.''H''R' 'C' 'R'!'E'!'S'"'K'"'5'"'Q'#'J'#'6'#'S'$'N'$'F'$'7'$'S'%'R'%'O'%'K'%'F'%'@'%':'%'3'%'-'':f}f:'':f}f)''TT''T'NN''N)''55' '5-''kk' 'k3''4 4' '4:''W W' 'W@'' 'F''0 0''0K''@ @''@O''S S''SR''d d''dS''r r''r7''{ {''{F'' ''N''{ {''{S''r r''r6''d d''dJ''S S''SQ''@ @''@5''0 0''0K'' 'S''W W' 'WE''4 4' '4R''kk' 'kC''55' '5R''NN''NH''TT''TS.'':f}f:'':f}fO''G''S<'' S.''!Q''"Q''!L)) N/))N:))C))J))N/))D))L) )A) )M)!)B)!)N)")G)")5)")L)#)F)#)6)#)N)$)I)$)C)$)6)$)N)%)L)%)J)%)G)%)C)%)>)%)8)%)3)%).))9]p]9))9]p]*))NssN))Nss)IssI))Iss*))4ss4) )4ss.))bssb) )bss3))4s s4) )4ss8))Qs sQ) )Qss>)) s )sC))1s s1))1ssG))>s s>))>ssJ))Ms sM))MssL))\s s\))\ssN))gs sg))gss6))os so))ossC))rs sr))rssI))os so))ossN))gs sg))gss6))\s s\))\ssF))Ms sM))MssL))>s s>))>ss5))1s s1))1ssG)) s )sN))Qs sQ) )QssB))4s s4) )4ssM))bssb) )bssA))4ss4) )4ssL))IssI))IssD))NssN))NssN/))9]p]9))9]p]J))C))N:)) N/))!L))"L))!P22 R722RA22I22O22R722J22Q2 2G2 2Q2!2H2!2R2"2L2"2<2"2P2#2K2#2=2#2R2$2N2$2H2$2=2$2R2%2Q2%2O2%2L2%2H2%2D2%2@2%2;2%2622@`p`@22@`p`322SssS22Sss2NssN22Nss3221 )81 )319) ).1sN))*1sI))2s4))*1sb)).1s4))31sQ))81s)>1s1))C1s>))G1sM))J1s\))L1sg))N1so))62sr))C2so))I2sg))N2s\))63sM))F3s>))L3s1))54s)G4sQ))N4s4))B5sb))M5s4))A6sI))L6sN))D79))/N7)J8)C9):N9)/N:)L;)L<2P;27R:2AR92I92O827R72J72Q62G62Q52H52R42L42<4 2P3 2K3 2=3 2R2 2N2 2H2 2=2 2R1 2Q1 2O1 2L1 2H1 2D1 2@1 2;1@2 261sS2231sN222s<2231sd2261s;22;1sU22@1s2D1s922H1sD22L1sR22O1s^22Q1si22R1so22=2sr22H2so22N2si22R2s^22=3sR22K3sD22P3s922<4s2L4sU22R4s;22H5sd22Q5s<22G6sN22Q6sS22J7@227R72O82I92AR927R:2P;2Q<(;:99M87766%55444 (3 3 3 2 Z2 2 2 1 #1 R1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 R1 #1 1 2 2 Z2 2 3 3 (34445%56677M899:(;0<    #R3''3#SA''AS%L''L(SE''ES+QH,' ',HQ0QKB7,',7BKQ#L3))3#N?))?N%H))H(NB))BN+LE-) )-EL0LG?6-)-6?GL#Q:22:#RE22ER%M22M(RH22HR+QJ62 26JQ0QLE=626=ELQ###  %ww(+ 00͆0RLQ#                                                    uL]&.0 Left Nostrol     E0)5A0 )9IYiyM]m} -=M]m} -=M]m} c975 4 3 2 1000000000000001 2 3 4 579cs9s7s5 s4 s3 s2 s1s0s0s0s0s0s0s0s0s0s0s0s0s0s0s1 s2 s3 s4 s5s7s9scs9s7s5 s4 s3 s2 s1s0s0s0s0s0s0s0s0s0s0s0s0s0s0s1 s2 s3 s4 s5s7s9sc9986pp4))32& &1 0 / /J J/ / / / / / / / / /J J/ / 0 1& &23))4pp6899                                            ````iLZ&-0Right Nostrol #1     ^0B0>N^n~"2BRbr"2BRbr"2BRbrc975 4 3 2 1000000000000001 2 3 4 579cs9s7s5 s4 s3 s2 s1s0s0s0s0s0s0s0s0s0s0s0s0s0s0s1 s2 s3 s4 s5s7s9scs9s7s5 s4 s3 s2 s1s0s0s0s0s0s0s0s0s0s0s0s0s0s0s1 s2 s3 s4 s5s7s9sc9986pp4))32& &1 0 / /J J/ / / / / / / / / /J J/ / 0 1& &23))4pp6899                                            ````iLZ&-0Main     ^w00+;K[k{w!1AQ -=M]m} -=M]m}TQKB7,',7BKQ0QH,' ',HQ+SE''ES(L''L%SA''AS"R3''3R Q''QTLG?6-)-6?GL0LE-) )-EL+NB))BN(H))H%N?))?N"L3))3L L))LTQLE=626=ELQ0QJ62 26JQ+RH22HR(M22M%RE22ER"Q:22:Q Q22QT0͆00 +(ww%  "## 00S=R=O=K=F=@=:=3=-=)='=)=-=3=:=@=F=K=O=R=SN=L=J=G=C=>=8=3=.=*=)=*=.=3=8=>=C=G=J=L=NR=Q=O=L=H=D=@=;=6=3=2=3=6=;=@=D=H=L=O=Q=R=#=R================R=#=Q''QS.''.SS<'' 2)8 2)3 2). 2)* 3) 2)* 2). 2)3 2)8 2)> 2)C 2)G 2)J 2)L 2)N 6)/)6 C)/)C I)/)I N)/)N 6)-)6 F)-)F L)-)L5)+)5G)+)GN)+)NB)))BM)))MA)')AL)')LD)%)DN/)#)/NJ)#)JC)!)CN:)):NN/))/NL))LL))LP22PR7227RRA22ARI2!2IO2#2OR72#27RJ2%2JQ2'2QG2'2GQ2)2QH2)2HR2+2RL2+2L<2+2<P2-2P K2-2K =2-2= R2/2R N2/2N H2/2H =2/2= 22R 22Q 22O 22L 22H 22D 22@ 22; 226 223 32 223 226 22; 22@ 22D 22H 22L 22O 22Q 22R =2/2= H2/2H N2/2N R2/2R =2-2= K2-2K P2-2P<2+2<L2+2LR2+2RH2)2HQ2)2QG2'2GQ2'2QJ2%2JR72#27RO2#2OI2!2IRA22ARR7227RP22PQ22Q((!M#M#%''%)%)+++(-( - - / Z/Z / / 2 2# 2R 2 2 2 2 2 2 3 3 3 2 2 2 2 2 2 2R 2# 2 / / Z/Z / - - (-(+++)%)%''%#M#M!((00 R3''3R"SA''AS%L''L(SE''ES+QH,' ',HQ0QKB7,',7BKQ L3))3L"N?))?N%H))H(NB))BN+LE-) )-EL0LG?6-)-6?GL Q:22:Q"RE22ER%M22M(RH22HR+QJ62 26JQ0QLE=626=ELQ ##"  %ww(+ 00͆0                                            ````iLZ&-0Chin J     ^'0>JVb0         . > N ^ n ~ iF#'>N^n~.>N^n~.>;9865 4 3 2 1 0/.--,++***)))((((((((((((>;9865 4 3 2 1 0/.--,++***)))((((((((((((>;9865 4 3 2 1 0/.--,++***)))((((((((((((|:|9876 5:4U#3f62gM1X i0> / . . ,,:+p+L**D7)((l)( (2(c(((((((((c$'-1 5 79;<>$'-1 5 79;<>$'-1 5 79;<>=*; 9|7864 34#464M4i4443 3: 3p 3 3 27 2 2 /// / / Y-Y -G+G+Q)Q)x'x/%/%#c!c==<;:98776 5 5 4 4 4 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2==<;:98776 5 5 4 4 4 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2==<;:98776 5 5 4 4 4 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2:=U<f;g:X9>8766,54L43 D3 3 2 l2 2 1 21 c1 1 1 1 1 1 1 1 1 c1(()))***++,--./01 2 3 4 5 689;= (()))***++,--./01 2 3 4 5 689;= (()))***++,--./01 2 3 4 5 689;= (2( ))l)**D*+L+,,--./> 0X 1g 2f 3U 4:56889|;<* ;;975 1-'$;;975 1-'$;;975 1-'$KKBBJJcc"$BB'**+J J/j==j;:89|75*&0& k,k*&*$ll$ +bb+ #6VwѷwV6 2 2 3 3 3 4 4 4 5 567789:;<= > 2 2 3 3 3 4 4 4 5 567789:;<= > 2 2 3 3 3 4 4 4 5 567789:;<= > 21 1 2 l2 2 3 D33L44,5667>8X9g:f;U<: >                                            ````iLZ&-0Head      ^/0S66660O_""###/#?#O#_#o&(!(1,---!-1-A-Q-a-q-0144444555%555E5U5e5u55555555666%656E6U6e6u66685 2 0-+)'%$" !"$%&')*+,-./0 1 2 2 3 4 5667889::;;<85 2 0-+)'%$" !"$%&')*+,-./0 1 2 2 3 4 5667889::;;<85 2 0-+)'%$" !"$%&')*+,-./0 1 2 2 3 4 5667889::;;<K7/5<220s -8 +U) h' l%_$F"& > 8 |!"9$c%& '(*+,-. . / 0 d1 82 33q4-55{6&77N89m9: )3 6:=  )3 6:=  )3 6:=  *@YtѾtY@*5a՗a5=|(|= 3K6/:<<2 ?=<97 5 3 10.,+)(&%$#!  !"#$%&&'()**+,,-..//0=<97 5 3 10.,+)(&%$#!  !"#$%&&'()**+,,-..//0=<97 5 3 10.,+)(&%$#!  !"#$%&&'()**+,,-..//0=s;88U6h 4 l 2 _0 F/&- +>* (8'|%$9#c"   !"## $%&d'8(()q*-*+{,&,-N..m/ ?==<===<<<<<;;;;;;;;;;;;;;;;;;;;;;<<<<<====>==?==<===<<<<<;;;;;;;;;;;;;;;;;;;;;;<<<<<====>==?==<===<<<<<;;;;;;;;;;;;;;;;;;;;;;<<<<<====>==?=4=<<&<m<;;*;_;;:;;4;T;u;;;;;;;;;;;;;u;T;4;;<;;_;*;<<m<&<==4=<==== =====<<;<==== =====<<;<==== =====<<;x: ;l;<M<<#= =#=<M<<l; ;x::m901 1 2 2 2 3 3 4 4 4 5 5 5 5 666667777777777777777777777666665 5 5 5 4 4 4 3 3 2 2 2 1 1 00/01 1 2 2 2 3 3 4 4 4 5 5 5 5 666667777777777777777777777666665 5 5 5 4 4 4 3 3 2 2 2 1 1 00/01 1 2 2 2 3 3 4 4 4 5 5 5 5 666667777777777777777777777666665 5 5 5 4 4 4 3 3 2 2 2 1 1 00//x 0 0l 1 1M 1 2# 2 3 34 3 44&4m455*5_5566646T6u6666666666666u6T6466555_5*544m4&43 34 3 2 2# 1 1M 1 0l 0 /x / .m;::988766 5 4 3 2 2 10/.-,+*)'&%$"! "$%')+-02 5 8<@;::988766 5 4 3 2 2 10/.-,+*)'&%$"! "$%')+-02 5 8<@;::988766 5 4 3 2 2 10/.-,+*)'&%$"! "$%')+-02 5 8<@9N87&7{65-5q43 3 82 d1 0 / ..-,+*( '&c%9$"|!8  > "&$F%_' l) h+U-8 0s 225<8/<K? >:63) >:63) >:63) 29<5/3K=|(|=5a՗a5*@YtѾtY@*/..-,,+**)('&&%$#"!  !#$%&()+,.0 1 3 579<>/..-,,+**)('&&%$#"!  !#$%&()+,.0 1 3 579<>/..-,,+**)('&&%$#"!  !#$%&()+,.0 1 3 579<>.-N,,&+{**-)q(('8&d%$# #"!   c"9#$|%8' (>* +&- F/ _0 l 2h 4U688s;>                                            ````iLZ&-j0Ears      7j07YtYYYYj09V9f9v9999@BF.F>FNF^FnF~FFFFFFFFJLNfQUUUUUUVVV$V4VDVTVdVtVVVVVVVVWWW$W4WDWTWdWtWWWWWWWWXXX$X4XDXTXdXtXXXXXXXXYYY$Y4YDYTYd?;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * ?;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * ?;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * ?;;:8765 4 3 2 2 1 00/..--,,,++++*****( "&*.1 3   #%(+,-..001 2 2 3 3 4 4 5 5 5 5 66666( "&*.1 3   #%(+,-..001 2 2 3 3 4 4 5 5 5 5 66666( "&*.1 3   #%(+,-..001 2 2 3 3 4 4 5 5 5 5 66666( "&*.1 3 4 5 789:;<==> ===<<;;;::::99999 ===<<;;;::::99999 ===<<;;;::::99999 ===<<;;;::::99999~;975 4 3 1 0/.-+++*))(''&& % % % $ $ $ $ # # # # # ~;975 4 3 1 0/.-+++*))(''&& % % % $ $ $ $ # # # # # ~;975 4 3 1 0/.-+++*))(''&& % % % $ $ $ $ # # # # # ~;975 4 3 1 0/.-,++*))(''&&%%%$$$$#####( "$&(*,  # $ ( ) * + , - . . / 0 0 1 1 2 2 3 3 3 3 4 3 3 3 3 ( "$&(*,  # $ ( ) * + , - . . / 0 0 1 1 2 2 3 3 3 3 4 3 3 3 3 ( "$&(*,  # $ ( ) * + , - . . / 0 0 1 1 2 2 3 3 3 3 4 3 3 3 3 ( "$&(*,-.01 2 3 4 5 667889::;;<<<====>====    * * * * * * * * * * * + + + + , , , - - . . / 0 0 1 2 1 3 4 5 678:;<>* * * * * * * * * * * + + + + , , , - - . . / 0 0 1 2 1 3 4 5 678:;<>* * * * * * * * * * * + + + + , , , - - . . / 0 0 1 2 1 3 4 5 678:;<>***********++++,,,--../001 2 2 3 4 5 678:;<>66666666665 5 5 5 4 4 3 3 2 2 1 00/.-++(%#   4 3 1.*&" (66666666665 5 5 5 4 4 3 3 2 2 1 00/.-++(%#   4 3 1.*&" (66666666665 5 5 5 4 4 3 3 2 2 1 00/.-++(%#   4 3 1.*&" (<=<;:9875 4 3 1.*&" (99999999999::::;;;<<== ~99999999999::::;;;<<== ~99999999999::::;;;<<== ~99999999999::::;;;<<== ~# # # # # # # # # # # $ $ $ $ % % % &&''())*++,,./01 3 4 5 79;=# # # # # # # # # # # $ $ $ $ % % % &&''())*++,,./01 3 4 5 79;=# # # # # # # # # # # $ $ $ $ % % % &&''())*++,,./01 3 4 5 79;=###########$$$$%%%&&''())*++,-./01 3 4 5 79;=4 3 3 3 3 3 3 3 3 3 2 2 3 3 2 2 1 1 0 0 / . . - , + * ) ( $ #    -,*(&$" (%4 3 3 3 3 3 3 3 3 3 2 2 3 3 2 2 1 1 0 0 / . . - , + * ) ( $ #    -,*(&$" (%4 3 3 3 3 3 3 3 3 3 2 2 3 3 2 2 1 1 0 0 / . . - , + * ) ( $ #    -,*(&$" (%>==========<===<<<;;::9887665 4 3 2 1 0.-,*(&$" (%                                                                                5L&F# 0 Left Ear #1     #Z0Zllll0[[[[[\\^a>bbbrbbbbbbbbf hjZjjjzjjjjjjjjk kk*k:kJkZkjkzkkkkkkkkl ll*l:lJlZljlzllll?;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * ?;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * ?;;:8765 4 3 2 1 1 0 0 / . . - - , , , + + + + * * * * * ?;;:8765 4 3 2 2 1 00/..--,,,++++*****( "&*.1 3   #%(+,-..001 2 2 3 3 4 4 5 5 5 5 66666( "&*.1 3   #%(+,-..001 2 2 3 3 4 4 5 5 5 5 66666( "&*.1 3   #%(+,-..001 2 2 3 3 4 4 5 5 5 5 66666( "&*.1 3 4 5 789:;<==> ===<<;;;::::99999 ===<<;;;::::99999 ===<<;;;::::99999 ===<<;;;::::99999* * * * * * * * * * * + + + + , , , - - . . / 0 0 1 2 1 3 4 5 678:;<>* * * * * * * * * * * + + + + , , , - - . . / 0 0 1 2 1 3 4 5 678:;<>* * * * * * * * * * * + + + + , , , - - . . / 0 0 1 2 1 3 4 5 678:;<>***********++++,,,--../001 2 2 3 4 5 678:;<>66666666665 5 5 5 4 4 3 3 2 2 1 00/.-++(%#   4 3 1.*&" (66666666665 5 5 5 4 4 3 3 2 2 1 00/.-++(%#   4 3 1.*&" (66666666665 5 5 5 4 4 3 3 2 2 1 00/.-++(%#   4 3 1.*&" (<=<;:9875 4 3 1.*&" (99999999999::::;;;<<== ~99999999999::::;;;<<== ~99999999999::::;;;<<== ~99999999999::::;;;<<== ~                                            ````iLZ&-0 Canel #1     $m0myyyy0nnooo'o7oGprrrrrrsss#s3sCuw?wOw_wowwwwwwwwwxxx/x?xOx_xoxxxxxxxxxyyy/y?yOy_yoyyyy <<;::98877665 5 5 5 4 4 4 4 4  <<;::98877665 5 5 5 4 4 4 4 4  <<;::98877665 5 5 5 4 4 4 4 4  <<;::98877665 5 5 5 4 4 4 4 4 ,&!#%)+,-./001 2 2 3 3 4 4 5 5 5 5 66666,&!#%)+,-./001 2 2 3 3 4 4 5 5 5 5 66666,&!#%)+,-./001 2 2 3 3 4 4 5 5 5 5 66666,&!#%)+,-./001 2 2 3 3 4 4 5 5 5 5 666664 4 4 4 4 4 4 4 4 4 5 5 5 5 6677889::;<=> ?4 4 4 4 4 4 4 4 4 4 5 5 5 5 6677889::;<=> ?4 4 4 4 4 4 4 4 4 4 5 5 5 5 6677889::;<=> ?4 4 4 4 4 4 4 4 4 4 5 5 5 5 6677889::;<=> ?66666666665 5 5 5 4 4 3 3 2 2 1 00/.-,+)%#!&,b66666666665 5 5 5 4 4 3 3 2 2 1 00/.-,+)%#!&,b66666666665 5 5 5 4 4 3 3 2 2 1 00/.-,+)%#!&,b66666666665 5 5 5 4 4 3 3 2 2 1 00/.-,+)%#!&,b                                            ````iLZ&-0 Back Drop #1     %z0z0{{||| |0|@~L$4DT (8HXhx(8HXhx?;;:8765 4 3 2 2 1 00/..--,,,++++*****?;;:8765 4 3 2 2 1 00/..--,,,++++*****?;;:8765 4 3 2 2 1 00/..--,,,++++*****?;;:8765 4 3 2 2 1 00/..--,,,++++*****( "&*.1 3 4 5 789:;<==>( "&*.1 3 4 5 789:;<==>( "&*.1 3 4 5 789:;<==>( "&*.1 3 4 5 789:;<==> ===<<;;;::::99999 ===<<;;;::::99999 ===<<;;;::::99999 ===<<;;;::::99999***********++++,,,--../001 2 2 3 4 5 678:;<>***********++++,,,--../001 2 2 3 4 5 678:;<>***********++++,,,--../001 2 2 3 4 5 678:;<>***********++++,,,--../001 2 2 3 4 5 678:;<><=<;:9875 4 3 1.*&" (<=<;:9875 4 3 1.*&" (<=<;:9875 4 3 1.*&" (<=<;:9875 4 3 1.*&" (99999999999::::;;;<<== ~99999999999::::;;;<<== ~99999999999::::;;;<<== ~99999999999::::;;;<<== ~                                            ````iLZ&-0 Right Ear     ^ 0*".:F0&6FVr&6r"2BRbr"2BRbr+'%#!!   ! ! " " # # # # $ $ $ $ $+'%#!!   ! ! " " # # # # $ $ $ $ $+'%#!!   ! ! " " # # # # $ $ $ $ $+'%#!!"#%&'()*++,--.//00 1 1 1 2 2 2 2 3 3 3 3 3<8 4 20.,*)( & % $ # " !                      <8 4 20.,*)( & % $ # " !                      <8 4 20.,*)( & % $ # " !                      <8 4 20.,*)(&%$#"!    !""##$$$%%%%&&&&& $ $ $ $ $ $ $ $ $ $ # # # # " " ! !   "!!#%'+/ $ $ $ $ $ $ $ $ $ $ # # # # " " ! !   "!!#%'+/ $ $ $ $ $ $ $ $ $ $ # # # # " " ! !   "!!#%'+/ 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 1 1 100//.--,++*)('&%#"!!#%'+/                             ! " # $ %&()*,.0 2 48=                             ! " # $ %&()*,.0 2 48=                             ! " # $ %&()*,.0 2 48=&&&&&&&&&&&%%%%$$$##""!    !"#$%&()*,.0 2 48=                                            ````iLZ&-0Canel     ^ 0@ $00<L\lTDTdt$\l| ,<L\l| ,<L\l| 0-+)(&%$#"!    !!""####$$$$$ 0-+)(&%$#"!    !!""####$$$$$ 0-+)(&%$#"!    !!""####$$$$$ 0-+)(&%$#"!    !!""####$$$$$;8 5 3 10.-,+*)(('&&%%$$####""""";8 5 3 10.-,+*)(('&&%%$$####""""";8 5 3 10.-,+*)(('&&%%$$####""""";8 5 3 10.-,+*)(('&&%%$$####"""""$$$$$$$$$$####""!!    !"#$%&()+-03 @$$$$$$$$$$####""!!    !"#$%&()+-03 @$$$$$$$$$$####""!!    !"#$%&()+-03 @$$$$$$$$$$####""!!    !"#$%&()+-03 @""""""""""####$$%%&&'(()*+,-.0 1 3 58|""""""""""####$$%%&&'(()*+,-.0 1 3 58|""""""""""####$$%%&&'(()*+,-.0 1 3 58|""""""""""####$$%%&&'(()*+,-.0 1 3 58|                                            ````iLZ&-0 Back Drop     ^ 0.&2>0*:JZ2BRbrjz *:JZjz *:JZjz +'%#!!"#%&'()*++,--.//00 1 1 1 2 2 2 2 3 3 3 3 3+'%#!!"#%&'()*++,--.//00 1 1 1 2 2 2 2 3 3 3 3 3+'%#!!"#%&'()*++,--.//00 1 1 1 2 2 2 2 3 3 3 3 3+'%#!!"#%&'()*++,--.//00 1 1 1 2 2 2 2 3 3 3 3 3<8 4 20.,*)(&%$#"!    !""##$$$%%%%&&&&&<8 4 20.,*)(&%$#"!    !""##$$$%%%%&&&&&<8 4 20.,*)(&%$#"!    !""##$$$%%%%&&&&&<8 4 20.,*)(&%$#"!    !""##$$$%%%%&&&&& 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 1 1 100//.--,++*)('&%#"!!#%'+/ 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 1 1 100//.--,++*)('&%#"!!#%'+/ 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 1 1 100//.--,++*)('&%#"!!#%'+/ 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 1 1 100//.--,++*)('&%#"!!#%'+/&&&&&&&&&&&%%%%$$$##""!    !"#$%&()*,.0 2 48=&&&&&&&&&&&%%%%$$$##""!    !"#$%&()*,.0 2 48=&&&&&&&&&&&%%%%$$$##""!    !"#$%&()*,.0 2 48=&&&&&&&&&&&%%%%$$$##""!    !"#$%&()*,.0 2 48=                                            ````iLZ&-0Body     ^20? %0;K[k{  %5EǙGWK[k{Ջ՛իջފޚm=M]m}P`~;9854320/.,+ * ) ( '&%$#"!             ~;9854320/.,+ * ) ( ' &%$#"!             ~;9854320/.,+ * ) ( ' &%$#"!             ~;9865 3 2 0/.,+*)('&%$#"!   !"#$$%&&렮#и̦!΢' +Ơ/ɠ379ޠ=뜬ȿ#ζʣ!͠' +Ġ/Ǡ379ݠ=뜬ȿ#ζʣ!͠' +Ġ/Ǡ379ݠ= BpӱV) #8sӃ:#-3 7==;:ޠ875ؠ4210. - , + * )('נ&%$#"Ơ!  Ҡ ˠ =;:ݠ875נ4210. - , + * )('֠&%$#"Ġ!  Ѡ ɠ  =;:ݠ875נ4210. - , + * )('֠&%$#"Ġ!  Ѡ ɠ  =;:87 5 4 2 10.-,+*)('&%$#"!   !""#$$?===?===?===?===            !  " ! ! # " $ # # % $ $ & % %' & &(('')((**)))++***,,++++---,,,,,...            !  " ! ! # " $ # # % $ $ & % %' & &( ''')((**)))++***,,++++---,,,,,...            !  " ! ! # " $ # # % $ $ & % %' & &( ''')((**)))++***,,++++---,,,,,...'())**+,,--../00 1 1 2 2 3 3 3 4 4 5 566677888999:::;;;<<<<=======>Ǡ ՠ  ݠ ޠ  ٠  Π   ! ! ! " "Ơ # # #ڠ $ $ $ % % % & & &ՠ ' ' ' ' ( ( (Ǡ ) )) ) ) *** *Š * +++ + +̠+,,,,,,Ơ,ؠ,,,,Š Ӡ ܠ ݠ  ؠ  ͠   ! ! ! " "Ġ # # #٠ $ $ $ % % % & & &Ԡ ' ' ' ' ( ( (Ơ ) )) ) ) *** *à * +++ + +ˠ+,,,,,,Ġ,נ,,,,Š Ӡ ܠ ݠ  ؠ  ͠   ! ! ! " "Ġ # # #٠ $ $ $ % % % & & &Ԡ ' ' ' ' ( ( (Ơ ) )) ) ) *** *à * +++ + +ˠ+,,,,,,Ġ,נ,,,,%&''(()**++,,-..//001 1 1 2 2 3 3 4 4 4 5 5 666777888999::::;;;<<<<<====>===>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<..----------------------------.....,,,,,---++++,,***++)))**(()''.------------------------------....,,,,,---++++,,***++)))**(()''.------------------------------....,,,,,---++++,,***++)))**(()''-,,----Ơ-Π-ՠ-۠-------------۠-ՠ-Π-Ơ---------,,ؠ,Ơ,,,,,++̠++++**Š***)))))(Ǡ((''-,,----Ġ-̠-Ӡ-ڠ-------------ڠ-Ӡ-̠-Ġ---------,,נ,Ġ,,,,,++ˠ++++**à***)))))(Ơ((''-,,----Ġ-̠-Ӡ-ڠ-------------ڠ-Ӡ-̠-Ġ---------,,נ,Ġ,,,,,++ˠ++++**à***)))))(Ơ((''>=======================================================================================================================================================================================================================================>===========>===========>===========>=====((&&'%%&$$%##$"#!!" !     !" ! " "'(&&'%%&$$%##$"#!!" !     !" ! " "'(&&'%%&$$%##$"#!!" !     !" ! " "========<<<<;;;:::99988877666 5 5 4    ''&ՠ&&%%$###"ڠ"#"Ơ"!!!  Π٠ޠݠՠǠˠҠ  Ơ  !   נ ''&Ԡ&&%%$###"٠"#"Ġ"!!!  ͠ؠݠܠӠŠɠѠ  Ġ  !   ֠ ''&Ԡ&&%%$###"٠"#"Ġ"!!!  ͠ؠݠܠӠŠɠѠ  Ġ  !   ֠ =====<===<<<<<;;;::::9998887776665 5 4 4 4 3 3 2                             ````iLZ&-0 Backdrop      ^30+++,0&6FVfv t"2&6FVfveuH  ( 8 H X h x !p&+&;+\+l+|+++++~;9854320/.,+ * ) ( '&%$#"!             ~;9854320/.,+ * ) ( ' &%$#"!             ~;9854320/.,+ * ) ( ' &%$#"!             ~;9865 3 2 0/.,+*)('&%$#"!   !"#$$%&&렮#и̦!΢' +Ơ/ɠ379ޠ=뜬ȿ#ζʣ!͠' +Ġ/Ǡ379ݠ=뜬ȿ#ζʣ!͠' +Ġ/Ǡ379ݠ= BpӱV) #8sӃ:#-3 7==;:ޠ875ؠ4210. - , + * )('נ&%$#"Ơ!  Ҡ ˠ =;:ݠ875נ4210. - , + * )('֠&%$#"Ġ!  Ѡ ɠ  =;:ݠ875נ4210. - , + * )('֠&%$#"Ġ!  Ѡ ɠ  =;:87 5 4 2 10.-,+*)('&%$#"!   !""#$$?===?===?===?===            !  " ! ! # " $ # # % $ $ & % %' & &(('')((**)))++***,,++++---,,,,,...            !  " ! ! # " $ # # % $ $ & % %' & &( ''')((**)))++***,,++++---,,,,,...            !  " ! ! # " $ # # % $ $ & % %' & &( ''')((**)))++***,,++++---,,,,,...'())**+,,--../00 1 1 2 2 3 3 3 4 4 5 566677888999:::;;;<<<<=======>Ǡ ՠ  ݠ ޠ  ٠  Π   ! ! ! " "Ơ # # #ڠ $ $ $ % % % & & &ՠ ' ' ' ' ( ( (Ǡ ) )) ) ) *** *Š * +++ + +̠+,,,,,,Ơ,ؠ,,,,Š Ӡ ܠ ݠ  ؠ  ͠   ! ! ! " "Ġ # # #٠ $ $ $ % % % & & &Ԡ ' ' ' ' ( ( (Ơ ) )) ) ) *** *à * +++ + +ˠ+,,,,,,Ġ,נ,,,,Š Ӡ ܠ ݠ  ؠ  ͠   ! ! ! " "Ġ # # #٠ $ $ $ % % % & & &Ԡ ' ' ' ' ( ( (Ơ ) )) ) ) *** *à * +++ + +ˠ+,,,,,,Ġ,נ,,,,%&''(()**++,,-..//001 1 1 2 2 3 3 4 4 4 5 5 666777888999::::;;;<<<<<====>===>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<>=<=====<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<..----------------------------.....,,,,,---++++,,***++)))**(()''.------------------------------....,,,,,---++++,,***++)))**(()''.------------------------------....,,,,,---++++,,***++)))**(()''-,,----Ơ-Π-ՠ-۠-------------۠-ՠ-Π-Ơ---------,,ؠ,Ơ,,,,,++̠++++**Š***)))))(Ǡ((''-,,----Ġ-̠-Ӡ-ڠ-------------ڠ-Ӡ-̠-Ġ---------,,נ,Ġ,,,,,++ˠ++++**à***)))))(Ơ((''-,,----Ġ-̠-Ӡ-ڠ-------------ڠ-Ӡ-̠-Ġ---------,,נ,Ġ,,,,,++ˠ++++**à***)))))(Ơ((''>=======================================================================================================================================================================================================================================>===========>===========>===========>=====((&&'%%&$$%##$"#!!" !     !" ! " "'(&&'%%&$$%##$"#!!" !     !" ! " "'(&&'%%&$$%##$"#!!" !     !" ! " "========<<<<;;;:::99988877666 5 5 4    ''&ՠ&&%%$###"ڠ"#"Ơ"!!!  Π٠ޠݠՠǠˠҠ  Ơ  !   נ ''&Ԡ&&%%$###"٠"#"Ġ"!!!  ͠ؠݠܠӠŠɠѠ  Ġ  !   ֠ ''&Ԡ&&%%$###"٠"#"Ġ"!!!  ͠ؠݠܠӠŠɠѠ  Ġ  !   ֠ =====<===<<<<<;;;::::9998887776665 5 4 4 4 3 3 2                             ````iLZ&-0Arms     "6,0-ZZ+Z7ZC0-. ..-.=.M.].m.}......../ 14555/5?5O>n?@A.EHyMMMMMN NP1RISWXYYY/Y?YOY_YoYYYYYYYYYZ |864211/.-,+) ( '%#"  |864211/.-,+) ( '%#"  |864211/.-,+) ( '%#"  |865 3 2 1 /.-,+)('%$#! 9 5 20 / -,+**)󖞠((''' & & & & 9 5 20 / -,+**)󒝠((''' & & & & 9 5 20 / -,+**)󒝠((''' & & & & 9 5 20/-,+**)(('''&&&&%6 . ( $     󞚗            󗟠    )('&$#!%6 . ( $     󝘔            󔞠    )('&$#!%6 . ( $     󝘔            󔞠    )('&$#!%6 .($ !&())*++,,,----......----,,,++*))('&$#!=;8 4 1/+'$""$(,/1 4 8;==;8 4 1/+'$""$(,/1 4 8;==;8 4 1/+'$""$(,/1 4 8;==;8 4 1/+'$""$(,/1 4 8;= =96 4 1.,+)('&&%$$ =96 4 1.,+)('&&%$$ =96 4 1.,+)('&&%$$ =96 4 1.,+)('&&%$$=======@=o<;:8765 4 3 1 0.-,*)(''&%    璠 ᝠ ᣠ"ᤠ"ᤠ"鬠##à<;:8765 4 3 1 0.-,*)(''&%    瓠 ᝠ ᣠ"ᥠ"ᥠ"魠##à<;:8765 4 3 1 0.-,*)(''&%    薠  ⦠"⨠"⨠"鯠##Š<;:8765 4 3 1 0.-,*)(''&%    P_oo_P  @oϟo@@ @ pp @ߏ@`````ҹ@ p;@<<==  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%%%%% % %&&&&' ' ' ' '())*+ -/0 1 3 46789:;=%%%% % %&&&&' ' ' ' '())*+ -/0 1 3 46789:;=%%%% % %&&&&' ' ' ' '())*+ -/0 1 3 46789:;=%%%%%%&&&&'''(()**+,-/0 1 3 46789:;= $'),03 5 8<> ? $'),03 5 8<> ? $'),03 5 8<> ? $'),03 5 8<> ?=96 4 1-)'$ !#&*.03 68;@=96 4 1-)'$ !#&*.03 68;@=96 4 1-)'$ !#&*.03 68;@=96 4 1-)'$ !#&*.03 68;@###""""!!!!!!""""###$$%&&'()+,. 5###""""!!!!!!""""###$$%&&'()+,. 5###""""!!!!!!""""###$$%&&'()+,. 5###""""!!!!!!""""###$$%&&'()+,. 5====<<<<<<====>== ====<<<<<<====>== ====<<<<<<====>== = <P<_<o;; ; ; ; ;<o<_<P< =o=@= #ʎ#ᤠ$$ҕ$鴠%ҕ%黠&ᬠ'Ґ'鱠()))(((''$##!   ). 5#ˏ#ᥠ$$Җ$鴠%Җ%黠&᭠'Ґ'鲠()))(((''$##!   ). 5#̒#⨠$$ә$鶠%ә%齠&⯠'ӓ'鴠()))(((''$##!   ). 5)='(*+,-./ 1 2 3 46789:<= >'(*+,-./ 1 2 3 46789:<= >'(*+,-./ 1 2 2 3667t8m9T;*<& >                                            ````iLZ&-0Paws w     "F[0[4i$i0i<iH0\0\@\P\`\p\\\\\\\\]]] ]0]@^``````dde ee*e:gTgdgtgggggggghhh$h4hDhThdhthhhhhhhhii 9665 5 4 4 4 4 5 5 668:@ s9s6s6s5 s5 s4 s4 s4 s4 s5 s5 s6s6s8s:s@ s9s6s6s5 s5 s4 s4 s4 s4 s5 s5 s6s6s8s:s@  8 ``5@5@5 5`44 4 45`5 6@6@7 ``9 ? =<<;;:20. .- -,//, s=s<s<s;s;s:ss2ss0s.ss s.s-ss s-s,sss/s/s, s=s<s<s;s;s:ss2ss0s.ss s.s-ss s-s,sss/s/s, =@;@; :`:9  1 `` /@ߏ@-`@@-  ,@``,@ + . . +95 3 2 ( &##""""##& ( 2 3 575 3 2 1 0///0 1 2 3 59s9s5 s3 s2 s(s s&ss#s#s"s"s"s"s#s#ss& ss( s2 s3 s5s7s5 s3 s2 s1 s0s/s/s/s0 s1 s2 s3 s5s9ss9s5 s3 s2 s(s s&ss#s#s"s"s"s"s#s#ss& ss( s2 s3 s5s7s5 s3 s2 s1 s0s/s/s/s0 s1 s2 s3 s5s9s 8 `` 4@ߏ@2@@1  ' ``% ``  "@ߏ@ "@@ ! . !````! . ! @@" @ߏ@"  `` %`` '  1@@2@ߏ@4 `` 6 `` 4@ߏ@2@@1  0``/ . . . /``0  1@@2@ߏ@4 `` 8  1 2 3 5995 3 2 1 0///0 1 2 3 59  s1 s2 s3 s5s9s9s5 s3 s2 s1 s0s/s/s/s0 s1 s2 s3 s5s9s  s1 s2 s3 s5s9s9s5 s3 s2 s1 s0s/s/s/s0 s1 s2 s3 s5s9s ``0  1@@2@ߏ@4 `` 8 .. 8 `` 4@ߏ@2@@1  0``/ . . . /``0  1@@2@ߏ@4 `` 8                                              ````iLZ&-0Arms #1      "7j0j<0k8kHkXkhkxkkkkkkkklll(l8lHmnnnooo qsXthtx{{~~/~?~O~_~o3aq!1AQaq |865 3 2 1 /.-,+)('%$#! |865 3 2 1 /.-,+)('%$#! |865 3 2 1 /.-,+)('%$#! |865 3 2 1 /.-,+)('%$#! 9 5 20/-,+**)(('''&&&& 9 5 20/-,+**)(('''&&&& 9 5 20/-,+**)(('''&&&& 9 5 20/-,+**)(('''&&&&%6 .($ !&())*++,,,----......----,,,++*))('&$#!%6 .($ !&())*++,,,----......----,,,++*))('&$#!%6 .($ !&())*++,,,----......----,,,++*))('&$#!%6 .($ !&())*++,,,----......----,,,++*))('&$#!=;8 4 1/+'$""$(,/1 4 8;==;8 4 1/+'$""$(,/1 4 8;==;8 4 1/+'$""$(,/1 4 8;==;8 4 1/+'$""$(,/1 4 8;= =96 4 1.,+)('&&%$$ =96 4 1.,+)('&&%$$ =96 4 1.,+)('&&%$$ =96 4 1.,+)('&&%$$=======@=o<;:8765 4 3 1 0.-,*)(''&%    璠 ᝠ ᣠ"ᤠ"ᤠ"鬠##à<;:8765 4 3 1 0.-,*)(''&%    瓠 ᝠ ᣠ"ᥠ"ᥠ"魠##à<;:8765 4 3 1 0.-,*)(''&%    薠  ⦠"⨠"⨠"鯠##Š<;:8765 4 3 1 0.-,*)(''&%    P_oo_P  @oϟo@@ @ pp @ߏ@`````ҹ@ p;@<<==  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%  !"#$%'(*+,./0 2 3 5679:<=<<:9865 4 3 2 0/.,+)('&%$"! !#$%%%%%%%&&&&'''(()**+,-/0 1 3 46789:;=%%%%%%&&&&'''(()**+,-/0 1 3 46789:;=%%%%%%&&&&'''(()**+,-/0 1 3 46789:;=%%%%%%&&&&'''(()**+,-/0 1 3 46789:;= $'),03 5 8<> ? $'),03 5 8<> ? $'),03 5 8<> ? $'),03 5 8<> ?=96 4 1-)'$ !#&*.03 68;@=96 4 1-)'$ !#&*.03 68;@=96 4 1-)'$ !#&*.03 68;@=96 4 1-)'$ !#&*.03 68;@###""""!!!!!!""""###$$%&&'()+,. 5###""""!!!!!!""""###$$%&&'()+,. 5###""""!!!!!!""""###$$%&&'()+,. 5###""""!!!!!!""""###$$%&&'()+,. 5====<<<<<<====>== ====<<<<<<====>== ====<<<<<<====>== = <P<_<o;; ; ; ; ;<o<_<P< =o=@= #ʎ#ᤠ$$ҕ$鴠%ҕ%黠&ᬠ'Ґ'鱠()))(((''$##!   ). 5#ˏ#ᥠ$$Җ$鴠%Җ%黠&᭠'Ґ'鲠()))(((''$##!   ). 5#̒#⨠$$ә$鶠%ә%齠&⯠'ӓ'鴠()))(((''$##!   ). 5)='(*+,-./ 1 2 3 46789:<= >'(*+,-./ 1 2 3 46789:<= >'(*+,-./ 1 2 2 3667t8m9T;*<& >                                            ````iLZ&-z0Layer     N_z0+z0'7GWgw'7GWgw'7GWgw'7GWgw                                                        Lo&7z0 Background     z0z0:JZjz *:JZjz *:JZjz *:JZjz *:JZjzM~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~M~ M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~   M ~  Lo&7hug-2.6.0/artwork/t-shirt.png000066400000000000000000015400071353170073200161030ustar00rootroot00000000000000PNG  IHDR*nbKGD pHYs  tIME ;=p#iTXtCommentCreated with GIMPd.e IDATxyegU>֘Tf2@("Li[E}V[yZTeh0S3 22TUV{u} (*$Oʽu9gag-@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu.zk}WPJa%AAA̓|q9^;@[~+[K   &]h:7{ksnz/˹KFAA[/~}5P[7#XA,pc៉YAA3靟|>κۯ}UUy}?52Oa9B0 ? F־sEY!L"  ~ߕ'1IvT2z3hq!|g_rRԃʕ?p'ʕyN-/}/y5rEAo';_w#Fh;n"M@:S(y2Fe:h;='>^s'ktFm~7ކ`9P(\=(aʢX틨/a\Ur)T7Fwtm[k9,]}/=Q3!~-_ ?yWa>lG}qk~?ȷA\n|zx,Bsyg7l@:"Z?d"P9,׃e;(Y<𚳘=2/==a\[~7=_m G,RX`fڞ<#=IEq"Oci"PQkZg:0|˳lɕ/ȇ7 a]yX6ܰ9pv NЀ8F=8~ l5c;(\=~lԃ[k"ObEqU~7r<׎s%R)Tv-OG`! sB}n#HHzkȢG,%5qS귽Q-W;Kqddp~aW%q NyeY?FFBA3O+7~ta{>¹e4p <=FPd htG6|$Se;(D}o%l j(^' gaxxw?\IBAWǦ7:lfw!va>"BEY u'1,QAQd٨DZ~ypv yrԘ=uhQRYDY|…Si,5Br&ʛiS,UŒ2Q䙊P]_C]E}lׇs":/~N^C1oWN^<\A]N}l&̯xܰ U@+/+qTA'K*QPTTy*tv]$ Ԗ#鮡efξT@A / _-B8ew~g([w߈,aB(YleYQ>i2rNB0/{޲3?u  (ov/KcuF?Sd /aٜpE'uͪa:R|ěP[܏sz汏ȳ# 7<{燓,A8 9~U$(z"M`!,ݱ@AEObPt=>4뿨+5>.h;BFȢxY8Z$7 (VBpv ']̋A˲yQ6lE$Pd Fbrcu&{*, u]tE8v\#z^>y :zE%:zd fl?"K[A~E o`>ÏɻLB |s\j6-NhzGl<9}b%3*TPPʁ[%)dbv\:H".Z?pg3{y黾:Vd5*A opǧS9.UYp5Q$XI }慘Y>wbr/lׅ4صFD~ }) ЫQ:!݅^5RnXx8lGsn ߚxSuދ,ѪRu*ɖmӄS.,yl!lqsE G(xj$ep7^ xB>ԓRGg5pIMRٚ⺜;C hlETOZx}lYpA 1\0 K[$P!m[p͟zϡT`<@mq?+ڤ;I =  4, c.A=,,"cU Y"6v>k8w AxsϿsZw]Kh9tT7TUl|zxYxZGDiD ԁo0A:dx$AE1= 'c%S39x3w=d4B<7g*( ]5:(\ݵ]鰋2W]4Q6ӹE?cx^ W, _:@( dFʴ,E#y<~%WMm 棷6?GëZ5U^]jQ[ˇZ*؞e]@M>=, lUу:tlՆIoG=kOy ǻPO] Zͤe~8,RHr$B9?2s%{XuDQp<ʲTRa|EEJ c|@c&~dW7,\7%#OJa(*pE#Xh4k~cH> @Ý!u-11%#05>tҔdU,M%cE+'crEt^,d,&3F­5'c({bYНdţ"dDRtحH$hpk:^[؋=gf(/ffHG}4:do)CN'~>)\ ?xkU@R58^ K6lk Mw C͢ĊBx\yNX]jH] NFX>Ʉ[okWvdlEh~U0Z `~{ysx/ɻQểWgp["vcJXkrqPBxxFrR&^ QE5RToS u[Y41=p+Mx ZWSB(* 84bOdhiԱ]X~{7눮9m$x87=陒wR3ˍۿ>I,Vs?9uU=@[wW t^}U'$y4$W0,ہ^@Й^SiW,R0QHޮȌF*5˂'dIy 0i±Tƒ7)Fx\QDtlP1<*F19q^'_IT *F@ؔ rNc)+J֓iuaDze:UxX&( Nރhc#o!Z?9+R޵*Ac~x3fJc{12@׶cxkxCО5¨sFN^^sfZA׶cx`yMzkH[Hj4ëP_>nDЙW[ԡ:r%1, O{s ݋l'HB<?{k߶,r4v@-#ObN݇"M:0s@YôýaU9hcSG@8THE-TC4Xh6|AaD7Ozԛ$OLejqwպOcdBx2vYTIPLqRPdlU] pe]Z 2RXvAצb&bM(œ iLVyY,}&/~D%HkgMZy[[؋ۯ}U;W mȢPyK{, N1AV>8.h qoIw (6z]:I,l$ 6U볁g6l0cB)*L@oQdp1]<`DNT?QJO<Sx@* ʕL 0}> S}ןvc7Wn{\bsk{>]xiqoy<ߜߞCQ.R]Pᅌi*9I…6QkϢ*l炘[kbW19 Ro'?{mVn`,b欇#lDg-Esi} IDAT9Z٠t`.4Hz8Ōɫ*{ᝂi|IA|LE' z7F>,'.lg k$HݚSdT1tWOZRM/uB-rŸEUI54k&9\1'^S D#4~{F:v҈I7 U@f:sq"K8.Ѧhahq1_Oz2mzVknHITPE8y<tT'[D-*oN֕uƄMSfPqw]_%ܰ֬u<5y{ t۴YMPGY,Xk'\m=DWx;)HvСWe_ګk(lX@Dz#@ƺPHvMMesX f0xM2&cQ~`2QLsG%1T-$aM?ịE˃Tf]r߇[kZZ$-i<"t18ɹ! "+d|TXԶZ^P!=ѣl> oZ!sdVnP9xh4ZSkP!J{[\ ОS+jM8~MRhDe)`YpkM4v`vRX6*p"`6ѽkMD}יHh[;"gsJ1b .6mitʸ*X8/,VT dhs"S3~kF%+ZaT CIf&c6}q@4* )T¿~}NPC8?@Nn܋1%P'c%R>-m"98q 8~ /לE8='4fqy)1U09+*HPIҴ S{9O%df(L/ JL#Mq?Ʌ|z95:@Iv$2lrܮx,MY9[cLf2j6Fp4BG(TSBOh3L&HG}VҤ>q3x3~=+D>Am߼ڏ|h[wjfw 2 f`]iT,>0>tx.9LŐt^F~s7F8a H!PdĀrOeYrZ)jn H0 dI&ES1wڦfi*>]ǴZ~.էJf{q'c=>C* d2ČUWokt&[:,V 憩V*.Cu.\׍ >gVkm~7¹eƟs ArONٽAn =pf U1Av}VWYQuf%օRP$x8PA v@6o ݅pf Ю**@QTj~ Zfr&{)F 3%?ӆN;:00-RnRaoA֪\1]t]D9BڲUqȞIW3>_g fM]^BuZXð]3.D}i_e "Nt ʲWVm蚘'HEA t[oX0ir\Hه@MSić긻xTAN YEǯi㝙"6Иܨ09A9P TQml9͘LXG]>a2I^e"'j#K: j=mX rújD#r >,?u«okHlUd=K7ƃߊbIr.P!e/{S9\?ݰ A}q U,oMTɇ 'x8 g^\I,u^ awø[g v8HUqd< *撺ae }:L' &Ewx2_o qwDPE12͢O^lNFG$fxaW%TZu.NA]ykxnvs6jx@ UKa!xoD6 |+E$}(a0\ [k2䱺 ڃcxsEx& A&OgwͻjK'|.ѐ*H1"g)ʨTAw ä:T ZQA{6,SܰaӁi45#03ȚDB<߫HP2CUƝ+66-JN)Pu$14R:9r|bQܤCykf-Ut]IMɝImz V֜z,~"%NF7PY @z7c ˓Io ?C-__ԇ18t7L9WVln8 g5H O" tuY45twze'm_h$yL5Iz7P~Cld1mkPAKWq*TF(huyHCcy<ܩ2cȣa0Q%Z!LDL+hT9SW֢ӆߘ#˓z肏eJ\'Ix~`\T#(g hBz-Q]pO|ғ]~|RWE65:(Cm\UD;+lo.802{-H]yVsy?9)(Obxn~^yOE!m(]4d/ ,f{fv݉XE\: ӡ4R)hy T/^SOD]Srɉr 20֫豚RFQ3)hC;*"WdV-Y4(+~"%%cc!UIؼ:/C0k^1:!6S` #!lB̜s)r90leWt62L;iˈѣbMٱ=8t:lP*/'3\Y^g_z?ƃ`XG:s#*bI*c,gs87 h$ гQ K?ɦbgFjsŷyecHP**Q`&>r<qV27GJm"^Az$V^>`F_i9MaAő,y9x9.H&^5W1Q ל弄ցZf;t!TFgaTQmM3FwIh~'E#WZXԨW~%oR?⻿/<pm5,a˵p6:;yʧwM@(n[kr0 ԕ0x{X AcjJdjUR騯P'xF(MsO2q!tB3=KE^U"th74S'0Tlᵫ 8}؎˳ #XtH0:A "[V%vZg1d e|3hbzG.eѩ?vh^ϸ ]4ϻS]ę 1vp,r[+!3/“ī?]Y{ 5e߀tyl,MZ.( ?qL|'&͓+E)Cb|8^I(vɘ q}46}YCJ!h xʲn}}o9IiPRh*$pMI]B0o_9klJdM WUF]dДiퟧ.69j-=`r/s#-O̫ O3YNHYgd:3FHzkhq!nWg <(O^IxZԝrQ j(!> >Y40sm]th>繻c Y9R NtY0c&?o{>7,3).hy ]/0)H)^TEUJտ 3u!C%HskMVNOooinr+MM>]ٕP>kYƅQmf>z d6\cǻhnW1^3jNQiϓ/{*^x;P_:~{}ZJFwQ2H&Vi݁h4%46"\o_3eC^D#$-USSr=N\U wnCNSA,]P%(\0$$I%.0 IDAT0 :ѐ)޺RhiƬ`pkMZQї^1JVSB JDz$ oΠL5y2@OQ+Ċ,_ac5cz,_bUvLjF']Iu6o"o`pB>A_|K~u3tLkkjtPo\fOknE*\D)fI1g[D?ldX36 E5Œ5G GawK"}g_T7)T~.{ٛ۾`vRNl?T:7Uat̀OU|0=-d>mEm:BP_܇, 4,3$L] OCkmq?<7RV&A47m(1 E%ߞap)2V䗑cxtoܘq4 pBhP!$lBfj4&l݁Ax^JɇrȌXizǣ4+ "lL7KiwZ\ ? g2B r<1tu%(;ͯ"=UZ9UlOW;gN5NT>ϗYhۦ~\q'2tmp9=xs{e Gʓ_8P,uNP48qР5WIAF8Ms#`~܍B3Fa=g,ELhNF6&kǑ1w7g&kt2ƠuҌ$RR$k#I}cP்̪=y2L*A~F,c¹elj_4+Lsű%:|#`fqpSv9R_Rj#Q䢓.a]u72tJhfϽ Oǟ}]i%C'S/} Io\(Q[ 9˟tQmh3>S͕Ҧ|`pZ^;f7,ޔE[ ^Q7""?X إ(YeżV\TnT+y2B xNQJ 7e+hT9S5M(v~XzS>S;oZ ~[`xM]܏L\`2~MJ N5Gi͠,rda[}ϋ||z R<(Ak9¹eW,Ti YU6r[n~D׎o)dŴ¯ $bDzȑ70Re0EQQo'lrԪ8ӨS'Ӈ| R|슑ޏxR9KH"*hń: zGn*/94 jMuT*afZUn1:ZfLPQAgQ=6dNE]Dkx7[?pɖ|z `n;GC{/@k_L ,|?ZiIs >$T8AYg4Tӹa|f+REyJ(+ZcJ|(lVZdUE |uC 4Zbls>Faa%V!*c041V(yYhuʲE|fĄ]*;*vhTmS% VQk뇓7omV1&b4Z4V0~ lG]V損srP!|gxr< fi[k"@y<<H" a mu"sJ^_Yeٱ w߭e\uE`$%4bY+brŃEjU.҄i)_J%G$d@uZmp=M i#CЅZfw:J~ZHsQުtpj8acq1TEȲI7͎7?񖄐UyYxO'SqZ' A_sUn9)-E)]#@gG$̼ ˩l~S*HR2خ"*vd!+l)Ns4$1PϚJSIS%oXMK c$x06/rqb)xX7ȣ8O0 ;ш-yjQ=r睊llXUzsf}m*_l<@kxS9o|ʧ ߝ{˵?;ˢHAƐ`n 4d/5EUuF j]e-6zԑ5d**.!SYdgB;4S`=c Y!Npfe텓nm b)9*Ĝ<#&+h)i+/ʲTv;r:kQ%zeSUI t&[ ǯ!vuUk>~klGb`s/Aa!5fR z|w|N݇h4' |ݿ+1@(//Oj3֥>X桞|գjKV sY+8nІTs3eڬԔ4@y2 0ŁTP}7M="G7g*Erz{D0 0o yx1B\'l*,`l34"h6b6>|xT6PK[E@6sԘ(zsnjjJPCkPF\<3yמ%4Efړ̱hFaF+h4m*S.=2H&HBQ|{忆Q[RFD02jc;Ŵʁ%j U7lNn̓WИ6FSk&-2K*nn8QxIFB5SĬhCu鰋 r0E6rFdTH!2o I0W3I#'Ytns?<#{Yi%<^DsǦkEhsa{V=#)[MND {9'fB9-4&2ڶj̈́\榃M%|׎cCxԣK|| Oߍ7O![\0 pm3g悹=nz\far.TL L0U"@w/T EI@Eƞ)2O5g1BxMiBk͟kT@= rߌkdU ,46oXa *z".ŝ|7jזcnй̼rME0)3BUf<.OemcT1a>c+fSTVV/)1 o[w_(N_#@x .{ٛʠqu jsp:,ۭV)00h0o`Y6|%PleYϖF xԣ>x܉W^ Imr܉Ͳ`Yc m ^`Y@uS-d!UuYP_<ܗ,}VU=sLM7hD%("UD!8>8]U&pY @3" @CggVZ߷vQys 5}FS_ƝQRC@`&HH4޳"oHQS3$c/ jf @±i6@Sݤ$iWDeHUQN_$9FG i 'H^/ MBI Ѡ?>p\цe?#YV:x['=+_G|$x}ӫ/)d 3Is}چ5d`Mk^s4( ͛F(G6!I{*Y>~hL@_Sʯwԉv%e`4 I$ݿ)@~XAe3RrKI0IWϤa_?I#_?|Y天B 玮I>rM5_0$t> ?0 Nb7.Akx?'f֊=ȃ)]ezh<aDbJfk:}Z sĴ=ǃC65L*|^Ҭ'n߀rLGl<˾ѫZ?FGlG4'H>8|n;c%Oe>79_5ܤ[15ܾI. ' \sLj6f"Pé#&jO/׾_Яu<a.V/CtY OͦQirИ@KDXj`ofH,=XmH~ͫ0^d~4ŏyRr )|S,yʝ9{B|~;o]t3޻d-! F.,S9cgUo'Sl$H2w}>T*8qx )|| l8N|6$G<Ű4^d$ŕ.ׇsadH9kutG*18Oy}xd)."^[_ s6Q`eSE3]7o6`(EHs&IVhovIHASd \}$c ID7&3G: xs\8I#Ws gy4 z? Rй8&ȩաGsW-sIFLLduS\s2ʽ~WY`HC,^qz` h%lk ¥y7sO|&_}_?#6wlC19>`f%P6d}_&"WpS`mvvY& H3&;RlTy]vef8罨W $IYO \llƞr#MĄ ^`}x z5GYFp) ].үYy͔`co5aQ$@p؉]E&ͲC@ L)ĝhr*NGn|?욂>^b{~'䉊Y].9B_әY G:gñG30Zs kZ#N;M4;qE͒y4JR6&, Zay^ N`qxyOss[ZGxO;n݇i^ǧnho5<^N.`ǰI r N4{Y44 bڃ<1ɌjDD fK`z-QHh{ 5*鱇ıl>a/,ϒCfx)O=-5L8YB+k^-Zu ب>2>пNlI5Kvp<ܙY~>p"qy~$s }S5j @$o`i1kgPo聊e_U 3`F2-] OYzhh嚍dU2K=%Uߟ=3]X_ASƛyry|$ ц(]/gЫ9Ϧ#cPl`OpMFɗS@DeI0c32*t?e-D~\ Ja<ā%tU#T96 ŗ wn N8iDd N*H#M*6Lڻhuy&)1&،).& l,]O=^/9TI- CM9ƍ̻ iV`wHS-v%`rgz:9}3GG_sow~S7rA 7qȧ[l]X_ L#HkqJl`䤴rɀu`^)g!2?߷ 8!"&]*{d]KUI}M7ʔu(4pͽNliVXCt /Dl{cFgA cb+TWkgL\bcE\CKkN|ǂUc@07gcu-$b@_6~!`$ 2ސC`k;ה|\[@+ 5ڥ0j_m^>j"ۧĕ"zU>ë*PJQ}}>O'۳]f WAiFg19{$(M~@‹z6d)#!bUAAvAʬQmGyTP1a IDATI#M2penʕM15XJG--6OWsGa9F^xF}Ha̕1` K%6(԰&`vz]ͮc}p d*n7sn';)4"Df܈J`g5pFa9^/jj6ҥ %b}6Ҹ?gPcYS଩X]Q/54S(6vuQn"gњlgjҙs7i.Stk,݇zn3'bt,]k /ND$gtBae MEV|ZobfMH፽ 'q" ?{֩>ij4Ul̴Ib| ZAY:=GaGGp?WU_ozH6X ]#lazalB~)m4 z5w4M˶ԕKib ݒ妮U>0BL<7=ֵ@CyK2dʂ8u?Ʉ[&؆8w M]YngF٠%9,5hMSx{Me4Hn|k$X.[2}74MS54vQԙ{׉ Z4:\]A-Ȝ9Hj'IF1)$ݗU1t5r~V5ߧ5IҦFۉ7.ORz5㚄@9'q$#g4ܙ׶rTC{mb̿e㩽ƠܿT'hKX1ܥip?#G~_p׭GX}\zǭL%MB>u z9G}W+kԋC6] Ҧ"eDY;AQ/(]wΌ0Dlt6Z4M1>u#7dˍO!@Fמ)&)~~2j3HISlr4%jMS:z娡s,0Eu#h @8/Fߍ4a *#gˋ`&-1Ĭ c6Dl4EyS\zQY`)gV;-XW~ҍS{ph4F^ؤ ]F[I1MH! uߝXD4eǪ蚦tS$˫bMjnc£=?'Ǜ^-cF`RL $H1Mb椗* 55SIR K4ujbI @%/frbN,rPL5MB4}ƔmL7`!$&yXI5!dvOH3!۔ j%== m:O8$. $d^,ONk+Mi"YĬ37rf6ʜb)"V2T% b{?!*xqCr`eCf1k$Zt-V ^gz V/|u"{`'O[}z|\|뫱>f\@o x#SB'y P>.Qă:bڻ0HUVjHpx_񦗤 7=3X^S<" D,F~cEOhQŸd9{ wXǡ<p]kK:0?C$сf*.xwD(-!7 SkT+pKzc pl4`͓FSG{L\ N̈IPYU#+r7`k?hWkH%>gX`!«%pyjFsK!^_VYH^iC%pɆzj~gED'\zkڻhy['hG/މ4+0VW'<錖,@DG" +bDةg{u2F5?N@Q) #ƛV~3]6*k(S-SUxZf&)6e:剃z AzRVQxJE5=uupr瞼>3O\Ҧ],4w'`5UEk?1𠁻t{Ly) ֨MlG7w\ChGI6%;8Ƙ3o#KaΏg-:T1I9L= l'AUxiۃFJ62v`m|RFPA+$cBa5gO-cq9`Ɂ4#ɿh_ .cJ~c]<=vj8ᴏ|fȈ@}gFKt!`sH#Q*c 0&/[Y1tװ|tDDQ)y@E|^ w0JO0=;%֮\x<s!@ ܴw"%ܓ iFS6`)&1ql4_v]' 3X#>c VZ3?FλNBg1rS; k`T͝Ӭ@ۅbf%&Եx#!y 1D}KHO܄"`['[ s5M^g0DՒLIڻٽgwəQlZ憣(ʂIm "}~,{8Nr^bߓő7%NJa'3LE1 <@ )34!:҇5{$I>3߯?ǗMo^Ili0W4NaIr546yg?pk[:,[#hI`u2 k7ux|i@E|&-m@b[reB)~FċӔ6TG×h%zBgwcfibWsd8&KlQ>=Cy5 o`tA5Qݻ%PA^Y &MiȆcTK.A~ԤwL;sHAc%PH,^4Oki`̕T9sK*NXlr)Qu[`;z5g@+pvE êbįYͮc~lԍ,l!P!4R;]^y߉?{BN&](vtα,U0ˢ_'%Z\2{O菏/~^S!m 2dtLk4){=Pǿw|ٛ譯G8 jF > ޱkc /NE+ꁤmM u`#PAMy뗇Wy1L!'asmh`e aXFVy$ +,z +T#9V#6n:n*ߨeiM&*V)4K1uT< (:6yr5Ħ 4b)DHJ }g@-!&Q*0c: b #AtSD#Y)qLw'D["'&*gfLF?Kń+,.߅ro}Xb}p ?{菏?ƻ>pk4N wϰ̃q!Z#_$${j0i T.Kˤ(XF𚒀F=uH#dڮC.Z!~h?mB>jl@In>iTٽ"/BBDǼdMJ1;0!ѤJrF 4I9( H Y$}dJgz Nr&!zU1IU>`_2bA)F줸~3zc]E_Laq_zqpl|zĹ'>gX@E|??{ok'>m)-۔;o/AR#MZ{FL2.<ȉZe@:3 2b#" hmeB'͗ƛ6\rEщ ! -7(4=]c,$,$O6dd =.54 -/bp!H$*E&#Lc3Q =M{c-LL(=tsų2NiMhrյP/gX_A5?M~0Ƨnd2}4v@v8={,!hfiOt  VKC5Tuki]AIk 륥W weS] ho/{ {|Koo?wqL^`VIᄛ=n"OnM\d\#MF4RF#bTtLH$qj|r@ӾfKS$ u__J?- cnwnC\NBQDPdHpk)_Bz5!B>;1ad7L5u wOE%ٲ)SiL@|6}9:_)' ^8 ^$ $D̏WȆֵo 4Y4x~>!}cSz5+p V"3ȫ1cUz䕥gT׍ bQpFHWt`떮{P&8co$qD'}8k5s!C^/BY:$C:o$3 טLe^YMYR T>@9J`IҼ(DȆc_SK}>{V0g`nhELAzIc~~Ol!ekŕ{؛%I/^09}3gl菏_oӻEncOMz9k没AF0]qJGP-fְM^R٘k]``")ĦlTHh3@Cċq=QƉ&)es$} dL!ͯ%8&]SY K!PAq;@")*OZƔC2O5 q@D% DĞIu>#c2!%0DeMK]j?ctdNzDQ$mс-%‚91"1djK7E} `XFb|+)=Q<^[]T+inkسgTQ`k +:9s|}w]*x2ՌP-T%W]쿐fƧm)%"ͬL^bơpʛ =H *:Dy1ui5oT3J/6$ A>|;ԥ}8l2 "VpܰL26s]ecq :Q1~X/]@&>B IDAT?[1($hQ.O\$ݛM]5߻"~V^'O:ViIh|=DJ1x?ObZ& Җ&B5?˽W0:qװ GW|_@]sZp|cxN_GSd1`<ۺ\PhXvc7~=O&c7E#'\5++L! p\mؽb6A$cdP!$_ y_ˬ<Hdvp{60EngcͮteJwI08>&閝YGxC; VfIA493%ܐy, cX@OU g LWЎޕ0] 6NQu+`>H_D)"'EdD%i=Ss҉[` Tl.] _DDW$׫|c>?]w+~4ڂΏ&o`stuڂ@Y2&IhK!aF]I JIGیK9lw>ZDwgrJmꪓ9XnT1!hɣi|*TK>y/FWLjIJkE?nw2fg} [ J!ww b"r9ԲVڛ2viNKTp  29eԩܻGVew yR&A=rzPK@NC*G }_2RR#ސNb|o^ZaqC֗d0Butzl0Ʃ|ns^*;}/3w6Ia||ËM4h7؀GnfAփ鯘DtM%$}Bƴ6A5pwpXsyͤ\×St&ijb0lbEZX 4neP@LG9Ou*٣ ԑA`AI3.X&ނA:pt2EVF Pr 4q!!#1(\^5? ٖO픰:e0t\6tE&]ԑHMd;,YOMx!V˲A(ݣ{Al+tKM[ueIIj%!WmqRl OUԧ=oߧ?/?_ڣ{l3G.g][] ?Ud/15F;ŭD11IWK^IzOzhyX41lOx&l\E #{%HL~>H! 8=N+k7"W/ltZqlwW ]֘bD`O"?Lr$<,@L^&F)}^m4$#IbfV0EbgAV&HV5.:{pK4 M%CdGT/j8 xho<`8E'օG O;GT8m/6Gwl߂ .ƧoZr4RAR΃4 0ks&]FbR!@3S2't-.|z=oIWXHt=x&'D*LT e_l@u2# fTȩ2Iwv]>PAHփ, !ax#C#bAJuLӀ`tu}AQ5`se_DN.%Uz+ fҍra ~u%V/<ʹ+hyfx=,.ePM>3FSFv5 4.!}"YJCW)d7U bXA *#锔8֒mlڑZS~'!!u?wN}bjkomb[Fqli/HLI2 \|uW \jӘ3zRl-ZNx{=P}G5- |<z86fYCu rQ>&ÛPAR:qԪ`C7~c @Mci yt?b3pC[f{U+"_UxXX>k`O7<<7>J?Ƿ_?|fwK N`x6|hYnϦ&ovhЍ ,i!4:') $~cHivie3z.#.>TKo^Ј`3_)|I<0w?_Đ(|Fgn3^+~H!χei\JP*ƛ>d,+ퟕX =1lta 5TDbjh aӱ 땗>:y-/٢8W&|~|g>͟~>>n~T9R1 (yN${IMX4M5W>嗾01MP\Wz{TX ݴjMEBr ڕ龮[)y4#FúUOl-i`_]ta)Sh%I4l3vG^R\!@?}*`1<` M~FlM]>όȄU2Cƹ620,Dq@-*ćZj[G|r54SOd>8j~z9Cë,e5F FxӾ~ET|7 19sjhb$[',͛B]AK/$Id x6\s#ՕA=t9J"Th%Z?G?9~V-'-+Mp/Hg&hm4 ܺya80@;D['75ف4 ߩp:5ux| Q I5 '@e_kK^V`TAz-:ʮuȪj Lced2{26zTHTbcj0BpU|;g|FS݇Oy_8m֋C O1(M1:yޛ|qɂ79@H4鿈)i wć*в01Y [?l'2L4D꤁.$=b8sKgc*HJIa,bwFIxdi]T/g(`3w8V|7Q6yNqW0ayKX:wT1`G6r`‹F`ʥYfë(> YYbs3ړ *sϖ4brbcz5ouISJZߕOsI6"okF1D$-U5$|Å1k]YZhbȘ8U MC)D>>*g׫./$uW֏EHYȧ;n.,{>2Ȭmi&]˩ht=Rd{Лظ+yx X>BM]A 'vj@-U,$e /h$  u-7 ov`HaVtOH$G6P܀?X|??y~bcכMGqP Tx6b?@_Ց&_jai(RFQD<]Sz&xjd(Mae 5 ?Iv)NI8ek9-ǃlrQ*F P]qĈ ̜d@JBW~g*xv*QF_!3PݘqL+$M˙@MECT{g]d)MNc@[&Țk KkfH0c›M\/De;/,%'#S5Jָ[mjgPモѕX^bS?>G/3p~c+xM\lnhZDl C4x^I96|hW.(krSbbFojt}[`o&͞ ;KP1b>=]kQlBatA6%/C,AY׎f69s*"w>#y L;lH)b ekxair·(ۭQ)`I*ak(_Wh: =/9N%] Ocv4`&(IMS`\T],~6D>AdLqM{06(Fx%o2fD&Zk0$7%lqthTWKs wGջ[GP"O]-x%m0 ϗ,^MܳɀRz]Sr/LVHMs rD2 ؽ T"M$45؄NMQ0:7ƅ_x>jHC_|w.F'o0:qQLw0ؾP.;MJ'ꊍ~HCϴ$͐d().lN n@"# ~ΈЭ0SAb io,("y"oeJh{BY  D;U9 =0Ɲ{']0)&ᒪ `8mSGi+t^ dhl8a^/!5^Z( -䙽ަiPwK*l4A=)4m =gc]q j0vKY@wȋ U}Mzzq*>և0E\;*`yC (6v69H*FfJIZBC~ RHόAr+-Vv]?J)$ϪAh*{l@24R'ox#] dMCqe)//u)/  22>)%mʣmw=2-Oy쟿D Ro?(Nbrڲ̊=hЬkǮ.{)ƯI$YfQxu Q!{3nXf+i{Ik%ᦱ@Gx5Bu')C kwϨ+f&oSqcB.ՔM:P;'JLs 1 8ڳM!1QClk9Kkk jH̠#2o~l`tHHsJ$v / hO] VHȤ2vM4z<虰??ߋvp`wp-g{+Kk4{4/Eds+;ij;TOdI:1t? ikT~4{&~O3nSgivIB$9Tԅd`F쵫+A6ځE'O`$W}'7 gT|{g=Fg18 -֏Y*SGtC/tćܷ뺕> #DB T=#%B'4CR&RƑSڈKH5ߧ*C#u}ϘxǠ f!!t~Ҕ_7o"-(6OZ#՜ "r$CsW%[<-iE2H #IItkL2K]gCҊIVgqߑ􅴐\^-lz-f ]bsqEKHf@<)$OibiG\6A[,oQ!RMĴ*`(8ŎRn`{=l0PՒ'˸dhSN2 MeP5;pHb8]tQgh˞2U|7=kr~L? Pݓ IDAT',(gȆS8W+Kw4-X)X$6|hmXrLKS}@/q/N 2f\$ǰ;D+Y*s0:\6 8@'KdBV%ka.l)"(EW4m8&Ҭ\9jXd|k.q.XZk2T2%K0ς'd5vEi5L%IdIȽ:H]DҠvش#1N/|EY> pQ4^z4AҞǦAZwkOdA,#\TYӠ^-g-\; vN#la~N,ދə 獿~ۋ͟:?;Tc4N09}3͓, 31y/5[A#CSkoS ݦ 4'Lv#P܌A$-58hB.FEox-r"jL]bc|M6aR0 B*-X!8ʍ]6.: nB5?@y^є^-xqUx$ytmLHA1,#!_.1ȧ;A",6r }[C,T P*FU-$u H*D\JE|uwϓQi" Cy?ڈf FNV SaQ>(Υ_Уg )DOWOvcTއB q߅;SljmlhMV`Veع8{56nx̼Y_,OoφcH;4ߘ|fq'A2߭7Q@cd4FJ? Z4+4+7_;߈5; ƈ}aA}_H9)LwԨ^zrdt?>6Y[uS>60l 8CQ v\$Y|?bP#Oj5wAND$ 76eDWsbBgOv%"J:$ ckO!롘.X=`_aF"5Qx9{\-JBM]R|'F g5T.q rdKxbߋ0$@ugdm _p}rщ7{^GT|t]?gEFטp^r l̑XKOMJQLF6Mo4}x O- 4d|;l&0^Jz PU873ZsД+Ste -Q[ Qh o)&3`<i*2 K[:@b4FSaa}mOT4zJ`FSh/ |Œ]W/i]*9)W> @`#k":  Ow`3\qv:PѴ'B_CHQ1d Gş`\4uxJy:o?X9Qw=+ :M^,5TD+2$ .jzyL9e $ͰJo$"7?wVԍ?ÿ~b?>n/)b|}Rfn5x}7(k Z,#e5u6L4 (ɧbU`)`H"ccbeꊙpArt2:<#uWS[.ocl9N&7S ܨ &Ak4(=BLu 97x fQ5D-ѺFQ*wu17jCG:{#t:xXF{fdiT'$=RaP?IpHϴ T$AE4ABGZ)cAjc|g>@9=WA.1flmxr`bTl" ҇1>u#<;}xs~oxOQllJ(Mc㗪,r!m LkEE'jŞHWU$Z(K{d؉gD ŌW=`Ff{9 h]lr_Co BR\1`b* "up5M]B &7D64VDTas(g8K` &]h4tB sIBBv@"9BcJ.&LUMg1GIYj17I5KpHVf}166YJ"ׄ94 Lf_9BEaP$xN>)!C k&BMm t4*@' I7$@@*;P6LFԵ94x.Ü?uDFF[Z0w/5klx ]|]64+7_ 1nxX=}#+wct,gyӾ͟~}</~ Ny~Q]B6 P83@pX)k8e9EPKaC];r."z*|aMne;F# FCPE1j ݺSa5F97ݥ(H. sז0ΒRCaǘvK?Y1 Dk,&qF&6ff*FLX-2p2xekKӧljgB.[gt7= ExQ/g|/Dž&MlC @}+{>vtY2ɼ{d(]^΁e(Uft^$ŠFE][L2+Su7!z<\P-$uJU;ߍ UD>@5;@>ݲ뗱!_>_7M]#M19s3ۧ(B &IABR*#iKb&^1mi>88rbG~J"?Βz@[`5hIJPF'RuI`PqOIvHQL\ӬN$#ݞF$ӼhŖZb>[ F{kde ߂C)Xsm $$pR4UőUn匁$JxRR&?HUQW{)o$(GƬYINnP)%t_w;sI5N ^NRD',9nv]NT, SL-x!Npb`J@wR(!$,>bKt|~pt{a?z ֧;v?g0}x~'=zF?ifTox8ۧP^Ihٴa墩=`Ƹ!v_zmzpA֦@I Y:)<0A5vL $?4XG,Xg9^q˓_Zs>Az#w|/㹷o|u2$*#šC/U8N,4PKAl̘vMhKX/X$']5ȫ o0mh"K+;v4A$TQccB@"*&Esa?/EXL棦/`U?aT~'.TGF gML &P 7s$J<,xEPb<䌍 I-GIeM%тStк/ .n:\lQ~/KZ_S0I vXCw4̐[1kpp^#L)fqzq5ض*s{׽owz X#L\qR1e+TT\B0eE*pB PxJ/B A  Z׽ZkΙ1ǘk2`@꽪nu9֜so|!C\p |=}?4zΞٲ n'>eݘ[3#ҰdcS<w9z~=2?Uo,%e. T`6LGD%(TzB bL:gQ Pwk-VDhA<ػ }n@Pw>h5Xf V}p뎊<4ShW'0obqG )~#ϝ`K /ِ:RWepݑ+h{xo,Vu:4#eݝn1I2'ifR"Bsu jmZh5ŒY3dt4}Quδ%[h{…P@H,2Yώ B ?'{mL,f:}hMӉӐ*#BG>uy/k_p}*\Mx/`yXhsN,C"bbRa5 |.R-u&M9?f:B&1@ȬCG 33eg#z]/{V7'Bv9+#s?TL0մb6JFqNjhWR)䵛gGaHyiis fgsKΦ!H5~O Rp5 E Vp,3MѢå9E]׹bp/Qli6,:1i`v]j@ tY5q(_34EkAB&ދ"x}rV E{qy4:u?[wwہQz=s!v ~qi>qԪh;YÎ!Nuy'YPЪ;]acTȹ$X&#2%P gX8'BT{0\3 [bgS};Fr+~&dZG'uP14ۜtDafi0fsg0a$Jwkæ 1>p>@v,݀7ڳTo{jqLi IDAT _g@ GC u%xU|uqm- `=Ґ/-(K#(7^hL`JjNģE,7}%OhANCI@ǠH&Bˣg2W-_c:-!%|$a g>W,ӽĚCS[/w  ҉k0m/]D"SjLP(R+^Ms4`. a%&ݣZ\&ɏ܌ Ҡ/RcG>4Py}{6 DeRjh#h%&w^̍^e&E_Yt*I1,?k/xWgz#w_ѽ.Vⰳ\3:Wb.:G*Pw<A4!pf܂c.4 ]pE@)6h)U6m^EEfO;bܶHkEͮ&3֚l50ANLƱy,N}otM7uP@(.HPXz*8w?pnY{+jtQ9i?s_fuZOhpvxU}d N"jՌFTXd<Cu[ѫ)l{hW'`Yw~3;WƇ"f2 @'F3tAɍi]H?BO7Lqr3&>0nϥ!ɢ*B *إct..5ڍtM5l亂[x/R@wk7%9 4){sEvIyYi$hsBn\0Űf;b5mQx>a;y-NLVQt f>ZOG/h΄tIwy3a':v08ȈP]H˷\{Bw|;ß<Eˏq+ GmM. xGgr*..8Rp-lɯźR*QS0+pAPᅙhgn*hAqZ@~e-GR (,ޒ&4sH^fn,Qk\౭x="K Zjb@6s wD0AC1VLt=գxe`̽⟓-{' 7 '?nߢ~ӯD굮tbB>c*e_ [9 ndU}t,U@0a{hhQ¯$`){Yi0(>kn4Ft#Xq!ȩsXFJq=k{S82-칟 /|?>+nAGeozG=П G=%юx s? {m D=8wMK#jDЅ0*Ip$x߈sr"Hd~p$=q@q h5f3::7!avHN9|mH"n 3G2j:Ȑ8fN*\CZf1 9'mߟ:ŋ{00 E#h O᳖%\QsO 0wct{8\Av (1F`|ۂ'wGsyαw|h)&9eZQ֫o)Ҝ>u4F"{p-RвݾBX:v@{PFm)o L푲M@F9T4("]0҉^8Bi?Cr}Q(ΉtJ,Rdz- ً5@yIh}|S*|6Hu';Z\s {,–[y__ϽӼ/Wo|Y\ ",$Nrdf&=6I1Qbp)q0QG ރDxD@iMmE|!|BvWR 49g# -1J!ɩ!PLd%Gi$Viܭ#9 ߫ҘmW-nNBS3%Ldq~L{#{;PʏiDP7}#+[rәq: 1(#qȌ dʭ(^g@,8#%geK-1gqZbdx[<۩7`?;pNTӽqDmU JNxяqĩsie ThaO+,q{rQosNЭȵl-"Z<> ;1Hh{7t 1)ֈUc$(brjn{HBB6aUv´+~':q@#*g{XZM5go(鮭-x5?ݬ#&]q/L4!mqFjt|C5;jJ@#M* ftRǡk*[pgW:ļKD/Ϭ-Lw.mĘ+#Lq1{jYEv?eTp.y稜ٮ\k00ł:)DC0vf̊w'bJ?g*VZ{yi&:G$3 Ѽaј:^B2S.EM0s?͚rG1CBwr 8)>1xٷ=x?䠿z/,?v-URTkEA-l N ;UkkX̹,JOY~4zPi.M"!sx*:^9V=$#) M $>3Xwu(&rz6` ؾUW ,pM] qũPQ'?悀iHks49ga^] dy Ԍ࢔RsoFl¨WS Ke(fc;s*e.*OZR+yk°$v=d!ۢfYUR)m(!K,[4Bj+=PIP=%B2/*qTfi )8k䚸go"Ӻ^?*o@m>_b *BJ_/, S cƳ0  h qV4S (9M)Q;d Fue9srZ\[&M;P:(!.QڸI٦8eh!MDSn"-&ו3k'bBִȓ³ciQϻiyi6_s6sq܀U.bW 1k@GƹFr)s2 PĽÀf9)C._&g &k(!AI^pڣQqso 61nj C7Jxt&k-MbFb2{#a9FܗX_7r.膑K6s&GF7xo8DPq/Ǚ;i9%s4E,8}0wH!(A .Pr6z>34ޛ=X Vֳ Ln!bsܹDeh:ܘBu 3z7sќ\<@D X.9,k>t& GP jo]X\s20Uf. 3/5ZBۉE1g.i AGhJ`&@q6bix-‹%lԭ(oL|P![9WQ | +;5RgנWzY΀w\vpexWB =cꊮӬء8A^vMFip T<56Ԁy+++1*6J5m4Pq;& 'ո979fhaYP&Z_^qͺQ0gMM2~V}Zfa.sIZJ\N-*fC&X烹7ubż,sR.g g?j&91.8ǢUA8 @28!:%Wn)G;?׽@%3^L Jg칟 ،LFuHey1Qpv7?!7HGrSD׳ɷ(;e3[I/;@VA#δL嶛tt\WjS3+@` \xNT.f{H),)bAmKZ肰*h.:h?_^+N~N︟M>r[3apMsWo(hx* ږ;7][^RY[qq@֡bh_'X k=Ơ'\:<3?:Y nϭoe̻IRm°Q!6E[7`?Lp dؕ q4Q磀I4o݇P&[u.YMS?ˢ϶D\^,Î᣿[~҂'q<|ς",݀' p(%#3s=Zw6>Fg>ߔpItQy75Iq1:Ugh{ J0hx-PiԺVLe)V6+|fup ++3sDo Ԏdqi2ȋ b°+إ'/!r."sn]GߊcMUQ3?L3FC lM Ur,qU1{WEܻꦢZ'ڦ4o1D04ԾQ!jHs78aMq0֪ϙ=k 8+#T`}5 b8FW:~v2;+ϑr4|ı_. oy87z}>ly_ qI΅ u7RȢ`Dv. EgM1 P0;k{* OhP AtM;iRzմΪ{ILԅyj2uuuo 9B0vsRCIBA,y3 HLN`<&wtQ;4Tl@}(|QS<D$IMFdD[hfH#{JϢz?4[0y 7H LŜ {! PX'@ܹQ (F$nUn Ua_uK 밾 fu*+oλ[Cw||ŵC>`Dmb;gkW\q==,0 [d1Fl& nTFCb P`R(2&;2m snZZrkcr&,ӹ]Zu׽.8M^ke, 1Wk0nhFnͬSi \T")P}n5]a}Xꑬ9;n#?gXq=By,*e0¡s usNꚥVl?E+ʪ3E9IMy49jin-j(&X]t*y ր6Z4хhu9G=~ksA@^?WqԶh)H^NhC9ַa䴐[E]]O* Fwz]َA=w8#xCqT1NFf'5rzJ,EcӄJJҀK.U7&H# JGť!t8`,EYoµ.dUX:,m/l=%^P*R.Q(w4~JWItP'+-.qSS˾-aT]<S/SJbAZ5 h"ρD$~lE@Hoq]_C?jXua{S:t4ٝ\-L5U^qN@Gv*nUE#W\l HcPPly͌>1a+ IDATN^(}f3ucËsYd'`3T[XlbB̌Rͫ: 3W7l&#so=P@9IM弱A0e ː芕\侺{S1((DcXC Abʇ^Gd;s6;y:.r! Rv-h:WЗ{hv {($VL#8hL u4[AhvsBB/8@&@=:B(^i\GfMTZش-Y!g7*~?wBDhELw7'+ס=:%JVqNVZX\!B[g>wp_~sup3<4` 7K 8j>{2]߀o8*熌R;8ޗ jQRT]A'l κLgs3Ƥ4"9q@үY Nm 1!'=H rH HCNԱ=q`NWN#r8dqG(禛a'hmڽН܅${)w$xթqO_q O鰃gCxo?T/ȏ{ 7V< "iC9OXm^79cKɰ^Sg>XDyBXN49!\bJ&p&IT8s!^ Sa h./~& K'[F|G|53sb4XZ @Lq FkZh$9%_&+< 1-hP hn巺X,V ,2b/MilKFp@sæaP*g(>Ѥy77 Z_ q^᛾4'uBSӚ%duF?/ݟh+hVpD }QN)8 |@qpMA n8GҶsRYVQs'nQDgR>,EeXbjeQrVʜʄZFIȜebV騨7$E`qLW_ f>@! (n/` - ,ű~zDfC\Aٻj%ʆSglBSL=Z, vRh `xym(aXmʙMZNs`&?dGG͹"B,*f#тru2u]:DCF'?iAwr 9Sa·*ӫ'sH+}APܙ0? ]BQZGWH(`oM箮EK3TXA #Sh[$R7)߉:٠TҎĢ|CZ$2Q!{r爟;:bttDːՈ wa>f vSZ: q"c9LuתՁc tNr_QW0JnDuUp.dʌI;:1[bVF]s>u$rP\LI=z,N9yNMJ*w4WV).Mi'Ǖq >3@6P+ŪmZk Rf{/a*<'c[LZVǝYIwS8!ⳉ#ۏpqrП%jf.#N΢D6 YQa} ֏~o?o; z=:.>`uvQZQUTZW.IXY'u[eD9(]@Ʌil]JuG2BvHy 4"x )2j&yT?%f_-go?L#X%yՊbq4ȊSusćư ]) 7 HY@ -0J^aߖ].JXGLDidA s-2 X#mB;X"74%E)Rz%SkQY>e4gGx:În49bdcr# bs%afgb p1oș㦂ؠ}ׁYޫ?TW2J% s0~'/ ެcޛ5kՄt%ꎥAvg],#?@Se'a-X*6:H PhjQJtW1+bPlxX0#(m3 XTuq"jCQwRԺ '(i@f"hebEj9S*C- quvXEYwbјu\16s&D䰣:Hl>KC =…wEIbyFlݪlX K9xNZ?{sԖSY&2DlmƂl{K7sxU5wI׏;6]'ݙZLSTr |n@QaѥV“H }>n/D8 WݐcPb?p$4c-9Je0T\3TD#Yȅ!&ԗNݵ{8c]m V W\8>kޗg4+h){ް3.]+9Ÿfj4U !{4-<릲Ď ʼ<Uq1˪f]ria(#>e:/MS@CKO %TZPvBf٩=6g'pm#nZGM|0h] ;o%͌ZP~$2Ϻv SbsuMoPb[jfYjttnCu#ёM2 &9[u?XH>#~' UX\14c^ ~p~?8*.qHXh(`yX&F]X*R_LE3ApsCʼn2) TK]׮wdEbY?/KD>C=ցbkFIiH%}T7\Yfq|ҫ ="k_Zjqʶ rqTĵtNcs΂_A_6՚N 1bq5G5#W ^FRۨK&,Ymg$ x.F 1&c_l9_5$ũ<} kk48'ڣ ]Z h𹠛ή( gwCwrmGjWoxjH4Ʊw=o^ov'c9.eU@a/# $L`2OuAxg V0XSUl.'h$:7f+-|3J/Q$A5b[M6xa4>TqGYkvk҂õEtCkhzQ7klj:7cq(M(HֹCǪ~\מ(cf\<Dr?Y[b:- ^'!Y^\tK0P>N?k\u#ɡ?{=ڙ |ќGiDLtH&ր'=}?1ⲍSsXV.-s`]ȳ7%t' ,'~ͿL3K-of;RkZux۹: 5qVJ[q2,n41ZȄȜ.RN}0r@z)K7䙮 uxE|4*w șl/'90@Y]IALy$( :i7#e`$Z)A^~TLk}Q^֖LWbXZC-< b뤻vL1İ,y)h#\IB7wY sjPNKAlgIJUҢ$^h|ϞfDͲ&L5j~2K{,R\CCN ;h&~F2+_% ZccL>3A6tvctG#Jp7?_fy ˻-8 ae|ڌXm0e;lؤ4d@sv0v(I2X2]k8vH: ;ZEėK-<֗ƌE%{\9k}|y}`k|YY{ʁ$+:s0jvx}Hq狚`zN=(de3xƣټ1raKC7A~FFC\]p;2f ;߁f2 Pa'vڣ3~WsO|>r@{|n*׿?/{"t5-__pqGXq’B@6QsUw@04Clҵc"Vws\}b"Tw%oyfS'ituxa#pⲰ9U>QF4 #.ݦ,۹ml(Hf\Eq4ϟbgtTke 0ub qCFk2S3/gFzƏw4Ua%$wµP!-bوY)+*ֱ9p;km`\ߚM% {( d(ڣSX\WDbh*ޙ,LY( O !(!EA+u֣S\cTdIBkvZD%u-DIE}lg&PTwڞrB+gQ= Ѽ1ڠG8ma^@ܜʒq'r躳+6jyH)deY#wz%U;B +:"S+c1 Қl'Tr4Ygn )I.>{wWDH5bxב= M+=!4#.x~t\!qvφhI}y@+ :/6lKȂqE(++Er0Og泘yo"Ș o[PHJRr l8H{3 = IDAT]kL"Sl;l'BᔏaD"JN 6Zo}+y9ȧ5Poy[{iaq'$ln7!cL9#Uip0nnrНM2K&ug$7Q嘂TyObT(zwvȔSjݠ8}#cub33΁B |ȦVbֳpH# H2(BнBp2xT] `DR$CbN) 8d @iUrc^]HR挃Jwf"]|,, =°H-!8. rR$ފ,eW}a9E= ٦G} U YItfr'1ݦDi_E~w7ҹH BuGV\2Fe?0@ /EQ m3b+U-#,Ɖ灢_gq?> `X֎fLXZEtaSh>E֏~n-d#5Y& D%)YoT5ëyaܮ~ӫ듾|~.;]raO@F_ÅMo āJEAH:> (ېKAFbv9,%bA}K+<#f|9 92hR `|bq19aԩ8BCsܭQReSq Ҹ+T\yjEhlq kTJ&p)ar)A7Μ1s͔qogKĭA7o)g)9{wjtz2Iָ5|Ӛ,Ha% ,S6Y,π~n,^[jz \ʨrDqXYI(1"X2(FqS&4n=>< +qK[ eߓc $vrKqaiv-#DΝoJ!M#XˤBεUYYq{.gd<[[__gZ,֨x?"7Dׅ}~CX1 $Ҷռ.L=ģԪ r%hZ6 f9]+Z>CE)xa֣,3TQy0BNׯgX<`f{A}nmj,ͪjtKH1h+%1|M{ׂ|~.Sph p{8]p9X6}h p0$mX#EKpno#o8'p.ƭxg8e mL| |O^ߗD/,ъR0/M \DƝ$|gcE$1{I.Vw؊`"k?UWIu%bWbLr8`h)4Ǻk9M["g/]밿x/WWJ\z۫!tKX^wU,ߛG%>Z('.җGX0Z%]|.nDb7РZ$& [r*8W'fYxVs ű>^yg5FG1W~*(:L[C#Kj0JCk.4b?2#nm3U~PvdRS-X!y }!+q4A_IEcX] -Y;]B$j fqn>N}'nsҹmbj@C+c:sɘS9RH^TY^Ьyf3Csr2Cf:GLx[8d D8ֻz7a}Oov@ŧү}e^?0aqhW'=jw.&i-;'zsv"D5-8hR"bE]ǔ)ee)L_ 6u-mB̍V]=/ M X@RlĝNd^(_HD) 3?:8@o疪D$lX1܋*ha_7/+z+ yx^t.aϻP_7wGض=oeV(\h 06Z)S9/hc,b>V6jDZxm̉VG7x̉*R6q?=Vœs  djV0Xk9W1 hN֮v+Nt&@ċIDl*YP>[7I;Q8oh}6>tס=:QCq8si+̈4 1Dt)A$91P1'ʍCTM10=}i3B l+FD81!EQ$+( {n m1MLcAIvv Fh}k!Ffl0( pI*=̽e,bLEd[}\;V\Z|Y>8L`E'M6V,kJ&ш}?/5ǯSq>7'L]]fk5Jp `&Dd`,Z[f#p{9y]$ɬ "wgvȢ.yο=GgȖ<˙UΔKةjMX[8pgX1^I2Z>EԘǮ, í}W|9c͡SfS%Vqa&7󰾍{n)pÍ"]vyn$>@α@"UqÈA QTb;%3px(QXenUGժ!y= 9T ̤htj6п N < dJGؤԁUSG fAmqwIஅ睵pu'3j^zo N<|ɵO;}Q+o&}#(8OnPa 02$ɰ&bBTF Rt5N=d4?nZaD:MCN6zЩPwjv֬WOLDo1* "ybb+Dׅct806s_wKN᷿"!8MB)$5#o"@[+Z)Y&(Z件L14Ve*Liak|AXZT@-riNq/]Ntz5 ;g=[x[" B6&o]N4BpgӚ;wMMgP͈` ]6נ3T% }"o532Q\CR,5Pbӧ5rl d'm 0a@NP7NY @E?7SKvv຅RXA`u|0LXmԎ&yl=U3R0+]̈́pZ`ߏ5Ұ&fS$& q\6p5Hj9א9b@ŧ_ۿ;0\܄BX4 '&ЧA3 ʪ:2oVݣTDk״r2eZ2GfKqX3:@DM.JS@bIi܃3Д"ED|ƍAl pSȩikQֶgU1ޜ {0h<Ђ%1ѝڲߥ#/<_iցw6b,YzaL );x'<=l#'[%3cMlm;fHO FLAF9 U#@H7Ba-)XTG>QYsU0{U J[JTCp2.0 {FiFΎh'4"CͯUڽzi`yx%u|(ם/GϏ n/9fu" o85WV{q u1o=ͥn:q0 +bLs~WgXk6DrQX/BӨ3vu'ZlSj!'?wC @cP${wk莯0@ksR{!6׼}}C/}_~ptyS,#\R0 Ѭ+`U8@B jJX_郣#<ﯻD)@$Fg^pg3oKUbH4R5JUܨ4ad$ULXܼ$vlf:' I^ R eD\F9v3y#2wg&]zvH *kǺ[_: mplg, ckwpgg5jn <|+:$ꮋZ I?k!0> U8yd$,3 =tZ,jyvx?SkJ)bbNzh&E5)t;i`(;a^y6{Gݥb®8Ey$Mh [KYYaq$'" E#,40 [>1K|hF4ܷ-a0EnKʕdP!dtS4Ķ|'[G@-Q۔E>)2@IA tK䊠ܰik eH܃Ziآ@*J0[|}70X0&hPhs r)6e;8nƆh]by#*̱w̴(5] EiZQ֪DSZɿ/7r3Tiv00x^aiK4(:/\3VS18>}5R_ZʬqVeT}ܓ=kTLg;`\߂w}=Oogwcp\"gwpqEKr/Ӵ+|7؍;,?K7A#U.KjDv 7Lj3zޜ9CCgl;u8L;z"vIb ą|뮃>E&:/"hCIAw xH~TOᬹ &~-||*c%#Xa5+vpivy)]Y07?6粜 G]֘7&;/6A.!X꟟0(Jux[J~>q^J,.O~*)yiՕ)9Xdm^| " y#Fιt8){f>r/{/<֯JU__6=?9g aqcJ(: e5^fˬZ`a`f r/ EkB";ȷ0MV1RDd/p4,*M<r4Jۊ>i^wB֝h|LND,hOĽjwd-K@u!QKo!Xw^C 9!Fv1?eѮ*PB P.֎\`Jӏ#]UQ\z5zj<@ne=ٖ/#q%M3UJ^Ħ }w,qo8ǢlQڸ,#L=F[kF@fUs"T7-Zu 5"kBhv]nn9G{&O+{ҿ{к@nA# rm!,V%䬬Bc)A:!t9?i`T,xܡ/'a ,%.4E8'1+{ lYܐ$K87hgF69b̓RZv"i #@vBvM]-fBS֤ͅ5m0E`Qܸ6.b;ھ{KN iDsFv:R-t-UCv0nɪ,p$o? >4Н]%{G# !ЯHIHatޒY#KIgGϺ10[b0sW5Lۉ{Us4T8[Z` ʆm#lIMӅ}G&!;jt-dΫq :،usiM>[tY`NqZI̙0Agi`^ԋiPP5i)nhֶS^V| 8щ&JXLdӍ!7'F]lcY3xq1D;Ƹzm8<,!baPY'n6 {<П}yM!g>Rc oR! K]|3%aebX_r*l`)VLoXgY&٘ѭ'qA/ՎL Ӯ9l?af[\hbKˮx,P[O IDATEh21 '"4BBsht0Jǐ8&RAF+L@ `׎d5$:Ӿn띸e0Gͥ!t,T%h&sp\({k3[(ɬ#{.*྽ ;~M%Zh߱/S=tա(!񔶸c cͩcJ$ ^Q ^98ELz2-ځn:9L)"Kaߛ& ߭إ,W}A:X4KYzg!fNi*3Jf!8mQ7 MS\W}'[A w0 뫗aAiE~~>CoIkLv&QE:P9O1XGrq=mF;cɘN̛D u՟>y7ЕarTܫH^ !]GyiE.(1!= H@bLF4Dq2Zl-;iq?zґ$kȋ,YҸ)-6ֈ"P3ȏN#,:\sYDt♹G}wd)3aas! *_XT*r< Xp4c? ЮKwcئMˌl\ءbBa?YiU)]KKBrurDz& ]DdMPϳE{73D'C]+sfZx=]BR|FMr{-MYw/7W8xms7xnj.$hL [7yr1BĢ |;֚_5?9Bkc(5X,Ha^f.&2Ц˜d8nj[( iH1O=/NnTPD|x;&Ea9FeY3{P6΁{d]1Lδ$!H4d3xr9[AnlSqUkٌ䦚rXGR;v(?ёL6DG &4*3C؁}(u$eM J-rIe*; }|zP٧eo ?'į+??Gc;qi|Sp,ٙe𧷾S*vR&[㽇wEU쪕"e)a7߈XRy"]֠rJ6Ty}ωbuQu9b6(Y8=fDХ)=i6xH%vtCSavZgd y;e.hSǹ贏TkgG|Q&$ʦ]p3b!YP=?yeԐ (X\B p6qtq lj L~A`7줩بٲ['1i卝4wU36.d.LZeJi!骐]Iz]er]!`e̅d}=ϣ4!8gL3eҙ 0t%BD>uv,j3)y]Da{ 5]czz![4⹂L8@IAUb(EM4QA313+1*gKĸ#Y:%z"cEXDB6tX0 NDa([ 0} (YVBQlYK@h>jnq&[xeY 5킻 i)Sa$ )NXPLj1lpn򤅐_HKڲVt+Bet8co@- sS#^SɅUQF3~B= z![ fJ,0GŅWdz;w^1EiҬ63wm8^ko>qMHLxSf|O}jom/"׽oΗ3j<76x9 Z ^y$Bf](5;;dY D$QY5[ HZp,v[)& 4rI3]_6Ket@AUb nX/z[tG:ݙoЇQsdq4#hSyS_ú4LH݌%9zaǗuI3F ؞\t"ɾ4*EG xNE(U?b+Gd_nun>,+8(&٨5)lsvYRثya 83 ($٘&65ysi1gUU(nAf[~M.]YYmw,D皉nfLpQj)sxܦf̳Yl!4.DHbY;?[-]0@gz?RX5N8(!C;1,,RJA yE(nb!C8tT͂p' .|rƩD]\Li?QntTˠF L ぇ Mo{ھbkwc4:%oC,ͷ, ]؏s-r~>Yq.`G֔B9܈[E ^a B.u"^ Q]iEN[ x,ΐy'?cg'5gD}RسxBV&{Zn'PԹc%v)zdGh1_Z!LBpv{z*?~lcD2a29 h(Vl?e|4`Eb^h1'}L쇰]l):>toS3(l usu7xܙlmN1GR3Nl Aw'6h(B%MU~H#bo`M %.Jve.O#H‡xF U%vQ-w3CPz-L ܘ} 09lӠ"jTlD`NYI^XS!--v!*rJ`e PJ>8$ 85\|bY>IFiTniL\?j-!?=- ab1F1oŵŇh-DzX .M1Q-wB}kyKChw3w@ܤ @+ou).J(8gхΆRiUi,ei|RN{:c訳"Q?q-m$Uv犮]ydAsGY\On>'ޅ[ۿ+> jy fqW]HsRu5m84`"^#VCųȊ̡r=U|䊢M7˜s]]:¬N`H9\(HԼ1Mrfkbێ#XIaq=,F&wjyt@^V:dNGsp"C,K9{x71Gj{gy 分>> NCR5wATjd1*) lJ k2gPچ#3rYV R(#cHW]t#GdK01|a).INѾgK-Nn:\`:+m02֓kt1A)ƍc? 3Y.b!I,8[#5%66T=Fpcr #I1+\;4NG@č=K3YPaYNFeYh␒..Y&JB' &1C ŝi\sB]LrBua?B4apqnhf9Eql2QY46_@- 0L3 oK\^.?$/~.a+ Ro-|m!]Hgp!ꤻҴ <NjBp[D$s@ 4zЦfg몁j@qDǧkɍ9#!h4%"}$ЂAң`xXbA[=HQvuKw}/~[b7C a(hٳ9aqQe`_EK'"1U -RыGun_sr'2:<-GPM.(>z :v@E4zuCsZ2БR~AڵԧH(mཋ,zȴ@}NRZ-LA-/ZRPXmoc{orQ-x0C;|iUwǿzm ?r{?<oi.uW*obzkk4]jvKzwk\T+ P@bV$"(aۅدt^JiJ@U-J(1\ -}M(:&B=t^_~j7YNGVUŴpM<!i LgfxOm!0+{ٻ(>?7crvl8Ǡ6PG"B7]i5*p5L a#{!=NV!4rm.3:WMq tL`6H*jJ{' nbȺ4K,5D uܧ]6xz\?QA* 9k7e81m׿ IyH!C Z1,<#A'\6g;ĺ'h*MKGpPJAJM-bqnPjm%6Eߜj1xgQuKAm~zey֒tv$n!j4ж#ur&+Y'&-得ZJ)T-c U!l4nqL1'UbP-Y{9/Gc yHMId!xe}5s-r.\ȀYB(gLt6" ĖR4<PtcGH~H<qzV8W]rfΧRZc#yc!&K?)V92LgIϔ 齹sLSJV &';[ ;L3&W0qE)-ϜvzqraR|[ ^%KY DJuii:gMh/N6:3R:n!C H%J> VLj70k['>SUG> cq(?ڹYqPi爹sZy3VOBL;Erk+t6&uk^{%`wftsu]{r{>^?u ^~=yɗicBYٳZ\x1xW?=:pQ "ۓ>/ Ќ,%|l4zA,Z*`1/D +bm8:2BAcbr#sL+BT7gN7kCKhvo=W a 7 ,ۥ5%EW IDATTp!˨J^/yY 1;!G`'g} !@qF#ևbۘL; J} #QT" {}@~R#$K^r:7=I"9$tM'seq!bYHD;)́2V8:R<|U캤.CxE<`粂xNdeAw:w1 Mɨs]^Ylk)ŋ0Jc$|.,E$Obˮ9 j GB8׃Our]Fp\"rݞs۹g9352J4[{ ܺb?RӅj5찉cAF`27"WhcmA2Ә^i 1WA5M>6,%>8x qL8<(+@;Y߼%sQϾWtgnGܞZZZ-BY{x6`'aSDA2p HmYO\2fhk!7cU442ayKk\ .gqhm4 Gd@Y B(&_}TΞV{ю=nhO=n[,pߛބxGGCzguӼ@RX W.\f>!~3nZaE#ɟUE&$uKA]mē]t$3Γ`4(S+a@tBDRJ$k }4+tہ?x9dץ> DVaJZQ`t#k`p2,ͶvD.8Y1-r3S7~֡yҟ3g]|O瀢Y0A,}q!]vI/l繼tҕIZs>њ\tް&Ex& 3R< Td5(9??;Hzw%?S0`7gxtЖ>_ԅnp@n#<vMFG!os|Fk$VR7Vc$p?H(q>Z[j[i?OiXb+u\y!HNn (m,9&Q?i1Ag.,W .hqe!U3_PFI# h#/s[!)*gQQΌ8qg=!ch&˹rdeo l2jS) 1[3(陖&>% ,3@ŎJM<&[옻2Y'iDagޝ#U?V#ov̎q˼v<>~:G0g.Oa??%_(\4]t%"ХNuC1nA_yfŚڦis]G/]|"Rbř^$qv4կUtt`\EָO ܥfg?!_ğ8*^%/Qڠ^ngsUYxA7.TD=UJ1 ͚y)kH1a3Btғ"\lAE,v@IG<*a2f}vR$@EPlJo _:cL>;i}HIټ1X'#u+ZklkŘgNZl0p70"8^`jׯ3D&#>dϏ{._>@{+%d_H2 b78vADA?~d-N\7Nj"1#k!'Y݇{ T ^ozA1u NsɮKXiH3VԥV0MS4ǘua%=w+oi(&_,JKi2C;)ߏx(@gXKhRףf$mT ]'&f:NstR  L:W/vqL VjRDR >)N(אl>;iSuzq B$zGpZֳ&al4w9s-w暛񢫽;V`7Eg~tN'`f 0*EPKQ^nga6%`\'C1o*,_Ff!XEOr(ǞShK8=@gc[fP=;$1g6 &m]q$o" 0>l1g"PiiAT :P5j3™sn\,Xт׫=%6ͫPZidž!%K/SQ˹@>n[G0M>R&ǝb d6THh4Yi 7n8>Xꑟ{-na1^VgGխg; .VpvJcY1 gލ1ytA#HXx3q-;_ݿe5L]_׼ YլS&~ 3r;b8gmXwmhxǂn NLk{<>@"6ڽs bCE]ګK3ܱ%p .@7l0ng9_p>c.LBGѲJ1ψOIEu ZgQrd?q;t9y4MeI;[>??=[[9s憁UU{ܤ`B^˭-l흸\hrω)mt*6T2%:Œ7`"a,|3uMg& \ny> EKA6PџLԙR,L{n[/ D<3k37jP"͝KH_q'ZVnL~#qDg8Y#fJДZgE) {sq*[Gyoǣ+Ǩ9Ctw1Wh8lѧtz<*#e"\C:{& ɮqN7(Q4L̄Y%p}=t3\<]0>;5j1t悐l`=K'LDP)ut͎#?#EjfK#4BoLc3M&5J39Kz"(뛬*0^';nl"bċ칖{]iĸ|6b\CofdkU]HOSƗR5HύAs\h@VȮ?8*nɇ~gt+ʊ`Z!r6`g2!4)Z[""3+/N Q |L]q~Bkg~T;'Q4PBZΌ e' eLyAf Ms@5@^PWո# zΗXH|2L1Cv1FaUryc"q Lvdby:!e$D]A rcgҕ(mՈ\GU8&cXV;AbڶjzU1bŪ3zÇgllAZQ C#?ʬC,T'jy FDY #-"R<&Yl\7'+ Vw~}EͻNiU/K,P/C(ۤkG1*vza/ %VPǍ:\MP[ Y!i\ft^}UP17!3dždxIUޗJg IzzOY 1muFܐJ ItO(}IM:ʞCYM#MJV'R3ײ~ & av#d= =$FJLJ hUhxBJT|n/g6 f-F4)/a׭X{˗`:;X#ePk{Yc$hW/>'fkE틹g/Ali|/ma$oT"rw./wCSgj㜀 X?ʅ!^g%g*%o8{0S%ޯ ZO_3kFp IDAT?#;C[z.ᓮ(J漸#l4nȅ[[[luy 5ppp ,ūh76SatV&6/:>U]8l Q5;'erWP&{'@ ";7y;dv0{dNtNFAT9G8P~~?`JYZB'{νAXv:C쨐鯙:dūK,ԹiH ?.w[f@tg#`aF/&TlJ㵮P;nµD,ٽ]2 ! ,f`rY W/z!y YˬR{H@MMr͘8FGl=TPn?J@cq v؄ߘ Hj67r͈?0JQ1hJ催9679:ѳ<,ņݰf@ \jKЃrɘt1ʦQasMaqQfD@[v`gH6bETC|Yb+5;y1ar]U~&1!Z<v܌Tb~d;ӔBpfWAG#)AA O.Y̷L5+]Gc0oЁsPRdg\rJpbRDhi)êfk`Ul`1z`j pcꅜBpDC ^Cw=%ԫ]<~MTBW?G?ê[aq=a>I~ыZZxGgS0{Ht8Gn_bmb@bLs.٣0Sp XQ\/;O}{~D.S tr49 qTI]raf "tT/FkvtF0xDXdEo.&7y+1oejyl/P[1"-9/q>w#=W/B8xQ\Go//< t@w.1(p !&u\X{) +Y@ܳ#]|^~ 7pݙ4tbm {,Ӻn {"`)8NxB.cB-Q/9gC LCԑ\0!'Oȡ~w8J'8y*(t='vXc\ꖉo~r?#Rb϶˔s6gy#81 M. 9#LRw}s "">E11,tf#n$M%bJX?]8gj*~6B\'fZpP&DS.Ͻd~2OFتtjzٻ,?/| 'ŋo~Ѽ BJ)k\x =%sFEߏ|} ug_7] .7~7~6ӗ.]{xDV+}ݞWp1:f3~븳Dv!xk9En Ps5us6vB(&F@7gc@GZΚJ1*.r9ͤnpe!:iSX';YE͌kzo{Ŀ5^Wasvz/|d(\IGEsBe;:zg cϝR E@7.|0=(q\%Aܙx:]IX@N#WCemC_9ucf=4Ftl o&[[dtrrM:B(F&@!pFQ**10zhvoxtHŴS=U=Y '4StAvs "uf`>gLc-xy!cZP~-ޜ=|fCw=s֎w6kcxDhy$&T 25Ta'ԍ=4\% Rcy37E ׯa1"W<*6]嚏cRP>Z.ȝ671t99J.<`Ԭ*2" ?;b6fabaSϼOWS 0&HJe:9fn.C5Z ]&Rd',=I Hϲ*#S;2R!@IKYHo,vH.6Ք}nE8+3$NGtLAR*e/v.AfZ6loo_Wϟ8')zҥKx8x c45fm/Spuӿ޹mq~q)w=7߉PBٌ.F\6NiZs'i0N)BN~(Y|.!OKQ_S`ƌ> 6Yq@60^uIš̜uuӅF]ّ#`cZ?˒.ړ&!k6Pe a.DtG{9;ms )ny&A\g\٨D>-ڛGy^'+|@oQ&ыlA W]IszT~ҪIO4n\mf`pBEvܿf}Ot=+9naɁes⚌8Hc#yh%KZ63Z|'k Ux|=wMwGy-0XuargfӮP-w`Ud .)ZO&,i'[$2踱G-L6R&Tشa~ .tӱ>'glLg&y4k4yH WuRnFTZ?5'>/}IlƼpF?8Y<^6@)W­9zi1Y80#^ MaPu[a /ɧバ(;'m> `%<0^C?YI O"۪9yŪ\\>bWz}<t',y=p>טOk<GK' ddP냅ݐ%;]לL*Wzҥ˄|fWAyL;˟xioqDn#!;gGC]'Z24q7Bή(YJI[J=o>[N:YQ'S6 WUuZĆ8f30\L [^pm;o|fb6JND|HN(’ӭc*A+gGMcA~-.Z]˸kw175yw-G|fa$f"s4Y*s[7\TTV:9i$î'6p@R?}fk P# $8Ykd?$/\̸)73 feZKqb;kƽM_V3iB!pFh]82 )*'xs&6;wbV: [8~= yǩ#K(mn 'Uԭ_K8<8KcΦCfh R,),$"*-pN:JIC6khjf8d>deeb/@RBd%~c]g`XԴ Pt+^6HۡW4'bRkoŝwyrZa u/ @Cr~]׽UU]7QSzu]tOItP LDQp.gZfi2%7OIo r]7\|H{JYP38 `tf {$TqpY;6M>~̿_Fqp]vna$v2CK bД"KMqy~[6bC~~."Fɻ|(;YN6q*Kջ$D&_~oჟb9w7%bbqdI97\d $x5aYu߆,(_'+ R@k nvn?oNtJ(#ߓ*GT,sj6rCVx&!pG*30$ާ7aH8euv#ߟX!mYjPR]}1P2>n:#2JIv}lF=9N$R>ubo)R TuƷ̽$˽d񳉀Vi|o`Md'g^\ D, J)o3*4-'ѕlN~A0]aOZZlQq4'$`1ץd}( "0upsɔHHgN}da2x  zqIX>hl e ,t%TFE^= =_sw{O w~w۾۾*Z~]|!Wk^,KMorn|_R"eUSS<.vcʘ:ͼ jUL͊ Ǚ1Q |MiٗQYFB|sA]4F\~ӧUMO*2:;l8aF⚲ɳr)WSsbq4daQ$s >N,e'Erjۣ_s^B-O+8uQ>,(jm,Gg>s891JЄSB;OOSr jd)B7G FV|)% &BFu,Xc dzkf 3ŋ30ƝXdR撹\7Eٸ% ?]\ f| IDATd_KޛG[v{{owKj 6` mxq! -$["VJȀ! $ȃG0CdŒcI,ɚZNg{W綄,&}RK}>ԮHR]5U: KsKH-e+Dol n,4;E@,ZmsZ53DЀ^=pn̟{/1yGcK[݌Ӿ-zr-%*s:WEdq_d˯M3&օ(S j|=>f;trf| K4@(BW-2wyzX UMs@*>J6eD⩖he_e/^f3^2LR|cO*~qx_3gpDl`1xK_WI.Fڶ=:9':wgz s.NtJq8Ol'~H)E͈ J`V}4a7>/T \')4*P.n SC6xӘOAB:hX*(=IJ䐋R:x< ~ǩ_6457-T3yf4vM*3 ~lZhOMZ%Y)$ !:D)7_ba%/|-.ϳ?f/ _EO;qץ%k_xނ~mۯ `c\/_Opqoik_|<lOp߅]ڇů=wy>77⻾Ex3o޲Ͻ. ,ŷ~Nc\cOL׆{D{*Xv<|k7mMq]}sf4=7ކ/~KoXC%˟W߇c׽oxsqyY2v+.5(pجPjGA*J{'r1dA`U`"A)x"I1c ,$NɌ(&D|m"QW蹦p8DLXPaC}`Z{^W|jzv2 FDf͓J2:d𾦆>;^FZ(^wIVWbL8r#^%݀[4?wuIo"KHjNnáWo䴊~v2G{I?F#9di#m ʘP\M -g WqPki3ހ;{֜]xbZ 4/~1^իb{{qyOkVm}?oF]>1}.L&vmx_SR*VYgI)beOD1f4 u9R p5񳞁ߙ8M̌62]57[3Y/Ǩh,);Tӭ찇L UMR&+w"229ngQolwucF5btfԛ'M nU~5@Mt3΍eEl2ȵ^`PHoTJ|k2}J mjS]V0>yK6΢Fs1ذ^ZH$/QO7J 5E6_CM\h.f]5lDHcPEqD ;?p/y_|@SK ~.|!k_H#5нxn_j_|n=9ϼTmDu_USMqti|{\,p=y>˙ͧo3 /zыpi/˗-܂?fOJ,x<|>?o-3N̔42 " MPZpC!L\Gk$4u+54_Y(c0>yKϨrs͔ӡZ(&īAi&\ OGGuo@?_Re`ݯ{R" E{#3bPC'ŒLVҤ6-v=ȯ!lj"H)8W}"h7nNctX||sw݅4W9ރ#8}I|Wvw??,7z,~y|+_Ʒ|§w? ׷x]̥7܆߹~| t{s}+}+>Ck ,Uwf,b ^_|_Ŕ%~_f |)lnpb_ ,|_/Ϲq߻=2%u8Lr1XBسX gϧR|i[FXZ=0K+_we '1D&ES®YC)c\ B*~^&'-R`W;I5}8@ő㓟_PU&sU,v*%z']lTt$hM@iĹڠMCD86"Xf(9]ǿn#cLY+QdHKMi ~xbI-ts41&WYQO|‹G`3RxX!ħҸM+6 ĉU_UxހNOH!>kMda"b=4Ӎ [i! 4U%/ і1^Č&W8ڹX\? N&^ɸ,4}N0,D"v;[?7Ļ?Md㍸'9g uI~,2PL|3p6:$AhȢ;3RaSrŎ>bkJ)gw{y 9xvy݃0:soqu/ԅM3%|JzAT\ChS|cd McКN;tw[$)4[ux<ކXuiI*쓇BR ƚ?C3WJdb&g}M=ִ\6&ȽLl?eM_J9գ.siQK"J/sRhh{9/-Nk1dSrkx3ȼymP␌'.cCq0]4q ˑrXQBgiYIϛdQhc9 ARR0(3> olE7?>xl#T=xg0f¦̱/i!l1v41;6Ql^JK Иe̓Om-4hɂb#Nw&⽤#6/bT9ھ}<$@&N:39 q^J)<|a,'U1Ar}?jci1093d1x2/)i@&at@Wu&fS5dh-/"d㝅G&æeEmWa}LDzbŤCw EYАi'>?dfFOT2[$z7h3<6[k$c1T6r*ACw$> V Ij}J  Cm٠c& kRxa0>0U0hZ PޢÉW85ùyfC@,=`Ui"nZ猲U'+HEP y/ųO0jj|k_?v_vv$Q%'eS.EOsI,I:UuMdz8"e;!@3Q37: rs_qƝzɬx$r΋4!:x#+ߔͶ-Y@|h|,IL~?[k˄S=T >Hɍl,3J=B/i:rMyڣHjD4A}Q*HP3ހM=ۿj eLCW-ɠ;HPb ;Mi\骁CU@ LLf>sݵ ,u٠X8H2pt` ]CL@($0$yD?;&H"cC]3faBjI]{G=򱼬8{ $y<֧}3O$XQUSRhWkuNf}1و2ɂ~a||2 h=9Xkj2Cۤ.KPsem,~9MFZߵ!1D*h,< 7O?]1|?r?mTzeG6%oB) s~7 W.?cfLӅN@2Ӣ]5XtVRF?ɀgI}r]iR?嵅k7k_Ipp+5`.)MYIPLg6K5df\fsu4{;s9o>8 Hb& xZ zKGN&ڗ} Jj @QޕLQbfΘ,48mp>h&#t{WĤ: 2_3̈́cW͍ jy3I(Ajià@c3Vv(q~Ъ:RΖ<|t`캥6tlU eł6ix -wI~' 1dJSu!uFۭWO0b>lv)`ݽoW\qy2Pkvv|`q*;Phŏ3(E88+5dɋg9B*G]5a0 4[BaKEXnP tVY,,fvJ+W='|?nd֗2pȊLA<ى_lO>!34&?,G\&{kzs@U(#Ks  WJ٬Ƞo41`#oJOATJ%pm=.^n-Z~M\i>M+3izG&܉}3o?xhg=$5/o~>|螳 idF `<-\}Axz^b St]b Ky׿__]qo{>>}v_>ӷ|ŋ;9;A J"Y ^s[IxΞ'Fn^9󟃧?OwTvwwuS\~oC)>k/ 8K4j2 4JOIVz)!9zT5k4T!$HYf4as^xg1=,l?0(E\GB)̞yiӌY>"2"WۭQ_G1\kT {܁{ݛ{_y8}?t58_`S=ib+b)G1Vn Y5\ {g>ՕsP`a|Ov+TǤWӭl7p`:`焞j>ekՂMCR$ʡ jOETWE,eMuV׽:_:aUՃ7)'rn, A0$#ZQH'+I3W2 u&pDkAbVU5L=Kq MEnnٞ^B/}! TZQO7+dAdFnƉw >'Z3 jhw.&;j1H?gĒ*7 9@緟r#˚o!Y}BIfHJ+Y?E,"9Z<&(Rc>ԣ { '(ZQxg+E>=LA5X\z(2B_.lU~]Dy ?n,.=}O fT,/=z 2M'b:G ճޭ"73j09ݏ\WP!݌8FOޣL n~4QTڌF\$p 겳 PF'Z% ܍L3zc B0ʩtfJ+E׎ܹ|['O> .Rx? gg=@UUO P\,uݡ瓆񰘴kOwޙ'UUNXgFDEYh楫9٨У\DÙg< ?tvwbx(ubqN}g ?E9$gVgFt}Vpf!o{&7< U ˒0&6cO5c@ϔ0U+NL)b]& =7wU-7`tZL&3=.h6!MM3cBS*9/g"Ea1 LʚE~Cr&s0Ir2pB1п)ݻ1gv$͠$hSػeS |.n>6ݙ3箢z/&[iœv#1#*SC5AztJ&MЭ%< FK8BՁQ^򤝮OgL|:E{C}׆ xZ sJ#QD@͘í22F GJO֓ w*HCиkS>E=?MVp6IE]yі{Z nDQH-7^@9]-lݘf1I"ѡUBh2Md15Cd/_ 6X%[2ōwD?fsiiBW5Werwv"̂su g rV*3Vehov+u_c3ޱ{} R^u-Vmwdz,cT]r>6|TXlrWnT0Y !´N4ZAc⟵ٔ'C.MhIA"h8M">5MXG?\:uҺM@ԑ&¨; b;kI5 eX!#!⅋Hi<{pۮ2\(H$ o\d\4ї:#3\N~L r`fܛuU RRm{ȶy]>d08.FUC}zIWzx:>C ?F |zJZkyf*E9Go^d<,5iF֫6޻p'zid|]+: e4h5F21w]D"X_%&sHjƲ:PFr'op}ퟹ)v eQPl.g#=Ȇ>@~u0D;V y6 T:Py"-S{brL|9K:M%+!֬ZRB cm]6uCkCEY+?.&,yBYa # ߩC1"hׁο;=ŷ%4.p#W? 9F$$c&{.`Am0p c$G ϗNg%L0=c :K*@ʩ}tB%%gK0N&;t?e}5ůff֢,W>'"Ld}lGV`0$_YHA2<k;$8^$К;Ѐ\2d_GG;?C# T|sL T裼!srb) bbԌVg:Phz.Z|1J$Slz&J.sw[Ək0!j]f?7'rrZ4`!:>M{/2FˉV-˳F K}$8qOP \ͷt+=^xMWo2sl(f0;*GRPY1.7ǥ0WYYuL &}}H$#$pqw!wEB3woSTY!AhxO}oʏ;aV3$;"WFF=K!ʁ8ӆU15룀4P3dkŃ2 |0|0Q36Rg*gK,ޥd5/KX7Ws~xA D̀&AwŗDQ F -YWL^:24><Ĵ a4l|>5&nfR$pǯN}*߯$ \:6Y-h d8 p}5.cQ$ V~S(IHC8j|Rur&Tte(92z`=w)r`P'>ޡ&d{Z P"!/1m3oA߇zAg{cΝihcJx_c"%%󃌸ykԬ*2Q=ׁ'ugUM܀׾"? 6-aZan@fd蠤CVA1Oa]hTxOQ9'7*pM0kiJCZrӧx2f3p [K/*נ%/v|Xv)\e5ٷğۺkZcw7L&pO@|) 8r @ׅO b>&Hqj+L'pd}dW򽂙X IQeDt}ވrYAN4Lfٜb}^(7۽ɸO?v `wϏcG CkhMNɥ$ 7??`MZ)FRN& 8ޭ=˩"  "/&>66l˔2KSXSx..JSPtcˈr&y{ IZʤ[w1ھu)^K1`~hҊTÌtm>]'y^σ^2 VNe3Gy=&u]-#)Cəa&kuHnlIi)&r"YܼKO)Y#ȀJ2iםw桤ENhj2C{Iv8Pr!@!1r2f3Y3IwX5?YjgCv(`waCY:6jH:ɜjlJugi=%K'K!I2$0\F٢I 527uޅ̬ZAbqHm$[ϢMl@ rً bzF& VU\%fZ#_+SImWWzꛪ:j98޿ vrjzag1'Og aA !'«RbjT9%TNh)+βBB&3T-}~j@䟁PƢɩmcX)D/7IZDnLr顈c){Lei.ߊd ]yG!ҽv`w'!Yk<*јX73ƘC'ELlZ'X4x5(2!,q&erLi'Hd)̰樂KagF1'qQu#A`1Ԛ,d8fLq}bcmV0ɐ>-QMp#x8>j3p<\tޓ$P9-Ov2#5Sm]@4AY'CvuNF[¹?NKE(gxs6s˼[h8#jƂR]~5熋*P,)BIg4 .^:|W.00wWI 9y]CiEYd^}'>yɜ]*$`FN76 _0,bH?g l/r!`O5h$qt;ԓBlB5t}dEt})Dqڝ]f %vԲ @vo:QAbDQl5E$X:ͤl]F(TͬFG&:EjH1(C2Ux N~,ƛ.匦k%pJ4dJ|2p<~j{r{|Ï/r.YFii:sߧۮ[ԩ]b,V;"3,Nnr|vJi!yLWLő+u0hESԩm v&t%t{~ E%**ƥ J\f 5a,ݏ~9T@YYkgQ h1~eY8?TJaX`Ϫ<;GQ{88|oPɑR. iT5×\`GQ2ԍ HUH[)ꎦ]Ȋ(a`ntrg`6X4+D)O# Ŝvb?lAŝGFSvCp9F}m=ӦJT)xp77+#G?ɍOO~Jcqp[z&%rsKŲڰɟ2՚<\DjA7߃t;0 hThliD71$<2嚆&ƎT1m5/[I}`Ih 1ESi"[4.k(aQzgRtde@Z}b T)tUԘI<Șk[z^0v s}y HצB52ֳZ lM1 z/3Hj<t03>.7OBcNlbDEb{gx:r{ۡ;aHl8 ~zԁ""Syf4 ebi)oDXՒ]JeUiZ+|QXddtn`+mka4a46_ H,h IDATxBeigNYbwbUB;LNڎR4Q ͖U,HtU$! 8zj-.bĞ`6)v( q%@x 5awuB2ufFFZY#8/Q'YFFɄ;bPZ L3 }qJDhz։7H˫$\\]]5|]4"9L9%om&SNgr໰.-a#) dG夒(˖%Nj$9d0f̃s 3 2t UUW TJpetۿUUi%#"Net3z |г0Xy/q ;Džvy>P&œRdߚ ԣxc12 #,$SXÑׯ܈پUXs$8f %,҇ 168X.{x\`Ɖսkg 8Ucr8XP+ Yﱜϱ\,}?| ^BUbв 3M)aYpb䭅p lU2G{(b9.J]e}`#M%hBx\ߋ18p2kug떰*LGSff;g:R˟`dF8ME9w- ѽL/l]+ЭHLL.%~b$@rע !1.%CS4h8g'&'zɻ!zVLf־hfxb]AR|QPEEi0r5bxTid3!9iS퇯)!sªPYEXw۽8}Iښ{[K9 RͧN𳷽^DNF+L~kkR!ԌPbP)E=W٤ nY-yҘ5SGY4&FNy8YP` %dtHc};>׷о&kT+ox=˩iFn_*?rud~7?^̏P϶Yb႑udC10!~ӵi-]1s9:0<5Y#ex5eö fv fFIB׭x2+b` Aq 722qPql>]8xhfV #ly ZʛfqG '3dҔbPI2Z(:7I Q28Ό7'R̰(G2o I2KPyO D.YMrO,Z֣IJD뜱Y7Cem8{_0/ed*%de釀d&u*{Wz>amFKg&a*@&QI_͘9kd.6IpY@.{:* Yvam.}l]ɤJPT33_:t+w?p9g;S(Ȏ}א3бntܦ3&Lk"}d4UUҦ&YMVdÌY&&Y/>ɍ<΀66C&bdɩ9?I@Yy`IDzC$Q^ֹ:*mhu<Ӽgf 9qnyhCgO1d{z>{Zј: g|g0ezRRQ{#cT\ߋBj.&?M-bKEL,p6Vk(͙Ʋ(PEQ$ZcTGIrU((Y Ӓ)M1M?8w3i tݻWk( x x|A qbFe4j=458\ؚNp9 PJƓkhNmܥkrc:65{=#ήxL%9\%ãKG~s.(SCS`,># S *aKSm75Zܑ,d+KCAǜvދ>Ʋ(o1u*&\BWx:NJ*g {KFg#5,K:UZ`|OFs7{4&%x1I\̺_` =jDAnȼФ q= Fq$3)"w̟ET&Ieӳ~Lll&%3KJahbn~hDO d`Cdtwɓ$2%XW|U0H[`%,/26FiC s 6%f&nM],#*KDA̢@.dĚl8Uw a鼑m@#ύ2Ex$pd<3%Б<u$w/| V6uEВA%k %yB3|LR)l$(G9e%<ԳHvD5ǮW]5yH*fe+X' pHj&d@$3HBb;D I5d4Se{~DpV ( @ctuxvN4UKbA]I<@k]vWezp3f}[:kRn`bnjDzR*=vư'QB}>STPv!v(g6hWq"`*=є.D`v:~M!cDP# `*ـ7xF+WM'xZ{ 5NmZ&cCW=)d5xQqӬc{KWwZCNm5ۢ;`6謖Kc`c~c -Kjl&2a zߧxeIy_1}e>Sr &*$abB5=MM؎*^cE?<RalFl8#҅8U(C背`~y-.=j<ۭĴ,$JE=J(P4ܯ1rASJ ,L= -hb= yL $N󈍪6P4$AuX[U Oӣd7ʘIHQJE;5h5=aүB1l.._#dv\j]pMܡifV8y+'qrop39;v"0w#o$V%iRY?n9+y!k 86& LM xTw/.=AO4%.3%zm_|~FAg7 6MoƨPaܐ-bb?ϐC)p3N 6"~6}% yx:H Emw$:8T|/J43nj$5e-LT25,HCw}ybs*Ad@pK|RAq'pO,u$`HOʮ]{@1[f΀A:[c\6I0) / 6HCg3`v>l=J =S`I'E!?K#ދ8]H[DO)SM{䒀Zj]5I, ^xXt K ۿXaN2ն!T'֑nOQױT%>>rFɱs^n2Dt7Hm0..q=wvX\x(Rzt|hlF+ Rhd_CW54'Z`bFF v4cxqY5PD Yxo=de1Ѩ46aA+u] MޡM#Oxx[ S9(& [tާMX{r?~F<ExU `Ws>`X=>sNmʊ<0L0YhWcNlև}.\F'/cSb?_foݽ冓`4u[nIQs5zis*YQAU՟{7⒍PU=oT= J)Bؿ|F$?\|9cQZ'i? {Ȋ/{ŋ`(>a]^|r.G4t5 BkWs;07O)`j< {p Nw -\d)P7/y4=g6$s`FN%2$3qWsn4\ߢ<R|ϝys^ug鸂[,/?Uh6ObrVvw TuE6&;7H4ZnBm)6㍰?|ߞ0qd#sԃx/ɤ4,Lg6Pފ;I M@] ծpcx{U9|>H$^=,P7Rd#^h ڛA8LPHlv ׭0jщPgqot$Wdq:n l@?E}#͓P*zM6 ]s~ˢfz+{9}1=6x`X\xp HJ?l.'Z\A2+@` 9t3Ä ^M|6 y@/)۸#e/qNf-!1&xYu+"iZd 6E(@lJ4SN˥B"ɢKu*QG-4Y%P2cw>>tj`b@tV η o]=_q#03ϴڶH=FakV_nuGł~To`<\0Տ6VWf K ]>B ޶#-5FlGRm[§$ʡ0ͦb¡㯳uHk$*܀AGn qySt=fձihx'H=;^bDw@Y.;4,.2Nl`p>[fy()}/ (mاu|jaU¬)&ot xZO:ޟkٔҏ#F8N23hM?1(W}AX-s5c(!I @23}w/Yb5QȬ[kЗיH&ôw5p:fIL9%vO(J[@q^gǂE-@y m2y,v5=+HiBj^K5%=sX_{̾nwenjyϵ77uۿ-(SZY 2FWa5?"u ]hP:;7t{65yဈ\Z^ҡ' xDf^  p*-R8Oie#FW%LNE܃R6z-!cm2:s){d3 ل t~.袊{ϼsdZe( 0=OnnlAR̗HuRu}75otZe{jw? 9N]:#OV@2aٍ[eߧν`^^}t^98%͢34,3X6|#igʀqf2@NTˇ#o>(3%O)`|{z; IF6N(8kҵ5i-]6GF{_g3AgSQ~MM+?sN_w/~6r1( BnɇMoK<>):+@yv Fl-6Q-B墄qavhGcEuvrJ7 ֦E͉,FbĔ9ԧlLfnaABM4qrmʹTBቓ7t5N-6UA{Ë8^^ہe=AΨ@*;yQae|VJ\ھ>iӿԖx&vFtJ_dqk:/V=tf784Ł"M *$2xlPZP&Sv3D''X1sDNtԺ͌(:7"5*#),1B*- )PES΢\>rP1e@*,U$-)_5y2ttPUۤ)71"(P WCjyMIxQfћfOɄL)r0wپ"2fXƈVCB$:jt2<:'?&6ٴR RVpHM"&F0NȣC|ySnS1\&&7a9PVK;7gV b)O zq^^'!-JΒfP%ݻFԃH4-=ľfOɍ1)ܑl(9} fe1f/8F`5XӲCbs# d5{D޲-wǏ':%dm ,y2ޔD~u)P6fE {gA*̳w~R/i -h{m}0*;b6 t6 BQ-K>hNpz[v &咹hExYTߵa#.:sӘȼExzox/wMDsF0.%[<fJh?ѯّ6hhcd!,yi¦~mmyʤH9izGm;n- qC΅a7Rd罹32Q Eqm6hγ,/ THx6`u^UMs`U6Cx(=5|fGrZq´NN$+jR2uM5MLkIiUl̀&cIBw`@@-`d9J4MZx M|E[l/njk^,O"XL&ͷ=ޔEV4aL/?ѹ/kG?`"Ȃش;0bƄnCq64#$6͚S s^4vɡv:ʢ:S<᭒ xNȹ2%jưYw ^)J7〉d\DֆF'TFo ;Jvkc Q ?/EMߑm:5Tt͋b yB<G;U.ӂG1STKԘsࢸL,H2jx}v@?st"^/c?&%[~?  ^fyW]e,'UrP1$J:"%_ᕂ7~μ.AQ:}6 ˘Oy .X!G4Y[xU1gE(V?̍nM?AV)3Ȓ9H">WZp|- y[1nVCCXo9$M)Să9`AXդb S规 e293(d)]Ѧ WN 4_=SX7IzoKek~oLDB* j'qEE$hJM*۴Q5WeQ/=HE%"d밓r5pNe& TUJcȐn~5'$G e.cz VSBcECQc'3 I)8gH$H}!"2]4AɃL9Ie437&AHetYFEt#0A{ b YA@> 0C |n^&IblI#Űר.4d2lff@36!ɡ rnaK3bQ:]G*){DE\蚒#( II7cvr8nO^{+wO}+Y3JEur`݈u>Ts $Ęބ,U:n)q/xhǾ=bqLPhcU(܅NԌ<)}fQ9jk;_?p!0\Sc{9%~uaSGParc2{-"[r'J`?E:i PUb\H#>f*+!,@UF ˦qi8.J+Vhڵk@Ţָ<:4Y:0 PZiXiQ]mm1UW}g]z(,//(;Я4}R ^-q[vuQkqJ ȋ~w? xwJ&%*'b] /{S}9b)E'AX!(&4RNMj=a3l &]Ay NѠ_ HEXM9XB :&;g"yCa!#ٖ?>>4˟v) 2O&b+N\dX́8RSl5Jcr UdX+tw熳]0 wLD(3:R!;11x\Gn$ٳF$PByYQ7YMex۰qS]3eRaۦ獒FxP#U3kW&![ {7*僲hD0 :FˉTY;K1UVcn.򶙥lYZ,dieJqЮzq%mʦ9`XjG9ZN Pk]6y zsGw?&$f>C̭~Qϧ\ WY##3[$verM($t&gnphd)fU4(̫ܳBc^ǹ RfUWNP W_ Q6 {=)oQ(TƬyR@ $C\nT֋X5SM3K! ZMix O4q# Mpr kEmUۆ26)YQN:{fNe2w>%dE"m=MVpsZXPG8CJNy/xښ3ץsR_b'uL5H~S ܆&'*{g>7(cҽȔnMFdv:;5҃m#r3clǺF~Hx#7K> لA>?CQ2 bRXA5IeV6b;هSdHS) $ Q 3(|&{,sSNY )ò>$ ٯw"bo&eS846K,=dn1쬵ًPc* PvX@| 53XpMnm͠S'UZBv,]H l}f½^+gR5p'M0Nq/*t\FlZyFnp`b]f ϦɏXKMNҔ5SX \ l=7xKN.9ئA=c>`65=Xk7d_(CNPCe C@R;P.Z= U1liN/ل thlRWiCấ(AdB#Kˊ~ h@&I8<~O~F _<R1V'ȂteGw>C^y؁}Kk<,lU0䳋ئu+?/ζ&ESqrW[5bz`gl[1HClVf=lf1(MX;gXs 8:8BiNa&LRLo%|PmiX`5Ŵ 8]k^d/ejj>'IPε5כd)CdeK /cD1].H^okϻn{I9 e\3Š2 O3C;gkx&J*gA!Lo)%.}lcsOkKXsfڵ6QpS歅4:0`(ҰuU ͝&RP9=:XfQ|,*]M gS4a:rsM,/5/uO(L;?#X'Y:O^Ft@S)LqιzX;GH;ُHI3{}Vwlz7ar,|` V _Uv8sgw']J7Ӗ(M$E< %L0xAE! RJVp'mhzvJOz׀<7;Frb \tMb=Ěhȣ Q|IWд@lMfdII hQeP5s`5uK0w)cA\`Ƙ x/L(R)wұV#~wů-+)w,:̼=u2YBDq9THWHs}bLƧZAEj 6D[g,CY]c~tKd3I%KܔO{{~:IV{}fig׌@fCb>,$!3xɊT0bRr~BW\ d&]h"yDfZއ(rPdN9#OJrqq5QT-S\_Q1:$Srzk Z%"i6mQO*2ӊhzXEq."X#JHO2dOÌI}ڹ,hIq -6FڐMv&DRcOzdŒVls@631M: (;:7GSU~=134L, O?G/"U[UĈϫ6EO#8Ub5[\%9*;cZ' [4W|ۍRT-6 }y?VvY;Ghv(G]'wrG[o>:ﭙNTShfk^z7, ݲgSJ^ﱸT@Ü:d1\hYŨ"eDϦ59]߮ !Ćlb6v!M zY, B=z xg~,T0YYa ئ5I83Uo.!b(JfCE\4n IDAT t bn?'Xbxa B!TQ2ӑұEkCF- 38Pr^UHyC+9e_ lYḲC4!KH-oaY uWOu)e6*1"xҳX'Q}K - }r'L-i"1»9Q_jZjn%@ 8w(\mM[y&ו_˵ M(K'Y)jgy3VKnN mq(*_iΗ#? }F<^M5l~^+II)&1%gFrB ;Nrsr.mN )+N>Lrb)mP- 6j{#& IWz hmG11TQbr <#C71*ߌ2fWo&yuVM(CҨu4jA Jn4ܼE~S.]E*g3 hIÞA "3zL'=k;ͽ^̇t[)u7l)聵NT6eu(I&jXkA$5&#4Xώ_(A&0APxT<^JZ]SC /@c՘9Ga),2Sc?/OۚiҲd3l򥉩l("פ16IB#걬fA8E eҞ\VvY v2[Me^I62I$bpF]iJYVs_ u3"M)m96\K:|svKPEbHYBP^x̲7:JNg0FH.R.ىs&Z'`F2H)1~VHR1tRm΃َ) <߳|ƫ|(D*THB -һ;;1HF`|?aiC")Cz3 V$T0sImM)c*僲eLsT|:y 4<XXYP5SD)0HrAR+\6zo3MQ*B(9kf{<9re9Y:i‘r@bƈЉQԙ&P%6qzmg`K?m4ym.ɨͼ( CXж{q3zX?4rֺ5I*uva< ='z1Nq ycvsE .Z}R#%֘(K^&Xĉh8 R8\{9JSnB!B)͠I"ЁͬFR{ Tdm|=y?JL?|Ơ5FUwDيr{dd%1o Ef 9sYV-)q\Q/tF$.} (J9VbOl+ٰkf@8]lf'xDݺ>k1\ ~<1LCz8Eшx;S:L!K̏C}qqj4Gp)dj$aPT\RjXHT6ƙoKnNt#:.1K%6M/dђo&vNCʛdOСϻT h}:Q4="N2*XW@\DТ^Ņ9DHũ5o>hje_50Ӧz&oeSԓ >qz7gۘEX YK.EaɈENnj\bQ:hAuqA L,Bj/PmrUE&x }"s-ZlTghH|ۤFBL%\>+r'l&gD <z>H x$-GR-wjy3**K9rmblvmpX/9ysKۻq폧8y;K66c}p'00̦b{gmԊkn몭D.uRȹ(.8ѥvsro;1;8Ek>ʦ,l2d,tcLF#8)_/drJ7I,y|o-.{+0rO@}Ԅ]^J77bB;'5quflEFّ:[|-w lv}X$K;<8$GE +ɜtTEY/sk]9/;ɽ$U:7ux%eC3`F23/@څ슔.{tC&b 4(}*CdwSERCA}Q3tbĉLbu;an/D0Z 6_zxOY*0sY&ܦץ^vC2ڮ>GoCom쉱d*d4Gneq;ޝ۠%A7Ӣ lr2a"c{fGk& @ FtDt5G>O"Lk8‚^h5aDQPK($>Pn%' dwG>#1߇)^Tm]Nρ;4Jȱ; )968t|X1e 1'QqAKqߓr޷|Q,L4NzD>%C|n cc!FM8&!S%Vm2cF{]\dzW|@5UAG5  $x:Q1coA4N@NhBdd-e9hrYw?gl 4hAd[.Z943/!0Kׅo ţǡ(f?}ݟzz3k_^|Gu M”Lc} *ʥ5xǓt5\3.{"a)G93\3CviLm I#m Q }(s;fF85 @)͟D#ri5OoȮEtqi%[J"Jgʸ ڌ,#hKW60!<=ڔ@D>0)+1&m@SQ04 hӼsБg@G*MC%ktw ?]zmcKd6%pKE)a3ɉio?_[Ç֯ʂP*04ayi .Sk-8kyyLfu(½KKC  Zk<9LFY8tVhG>TYS3amZ+2T 3͌p8+?};څygM J/2X.ic'al:+JE(*2=S8=-1jǴOzJAAE`waU1NDbk?Y` Ө;Dp"&'Jxx'0_84*/J$ sB4M1ḫ`t(Z?>c7 #?MJ) ߉*OBLI)"XN1۽ m ֎Z^g$ fBR HgghSƘl,#{4o@K~;xΠpµkf!}:@oH\oi(:2@H߮Ú# ,)J zǵ>4Fx D躨)_JC];g|PE`o[v̪ :+D3ghk}-^1׍ߗ6g6DzZ.8|>ipy3>K (٤b2}gdkUjcmW$?(b"(STԊ!׼FW`$eib->LozO?[y;{#OBd3FU$;:fs4imgPBߥ;&Kޅ̶\JFy3L;Ed q?E lz&+G*ri4/bClk_ZG ~Qz&ԕ(wNrug^?1ζ,nNŨNe"P,>z>2(3'i*1\dB;Ǿ!TLori cayh(™6(V]4ޖְ|ĎkG׻m`zC̶.63 k/~)!{7g4\LN&o<~ϙ)f5ƃ○zz3F=]g6vQ4+3jX2~D}߳)"_c}tETGÔNLYIJM̠0Qd/J)]0NNt,&Rй1y,4F3(JR3BrY #ZCHt29ehʥ>F{o"B/e;ˆod dZå˛{{amua_cjĭ7Sg7_nf;~ 3J)L&S\ }|<3A0RxSKspSmd2LUpK>A L73Uj^˦s[f+r(m XgazU,5p( BO1LQjڜ!Jj."ۡhLPα`'j 7oKaTU 㿖XՀaU=?6OCݿaoO{n;{?-6&#DZbUF[_EW߉[ׇ8N_ƿÇqy\{k~연;ozo &|qoð_~S]&5:=7pExo5x>#@C>(z`[8r\!)֚$?̎.YM\F7bt^;P&cpjz]p50 o?Ӭ__[~~gqJ|fqGfKe6 $sO_i >gl J-x2x 〨ͮ'Qޚl~R66;z(&Sf&azun_W@ŴuwDCeL/?Z!DPsJNP̀ r)$"1mjnY-޶()}]4[kr5:֜ c4N:/eWVy8SQoíKY{SOeñGC~ӻͲsi]j 10=xҽ[/.6uGj W/] SZ V,4q“.R^ (r/bSSLʀn2EQY,m%* ^{7a,z׽n ȇQ c x[GKճu2W ޗ.s)E38ڎaY Wьv8ް,si>6rwhF;fnaDSx- ̫KŜ2zK<xOrONmP(֥D .7u?O:8{W3 /+_t:;ߛ2~݆wGVU/;k_~{ y?Eu oWqnsJfaoyKҗނK~܍K\_ IDATns?}OKpx쥴'"tc041OmBR\! Q6}dS\<˿وoY,e_ ״f0 go Ƴ.R/?q .ZgC>=|\M8(5eAdNrQ0^aC `u12?CLDVӐ{6,(],&{X336hF;l?r+iBi%LyMJwڽ% J 6xG#@5>*zo`SQD`ͪIklw3 Oi׉BLt<ْ/15ԔVLG@M'Z xf¤b6541 :)4[LAƬȊFwv?ѣROX:WcߕsV,iS+;79JnLR fo+BƗn>vР)K4D2n#|r['B4$b`Vɻ{Kŭ*@Պ͢ȺS gCA,/R2p_4IN!ҘT2L &>~Ux Ov,`!bZ>wl\l 83+uD \iVc[PoZ9YP P,f #pSf2UN\|T%!'{*1ۮ Dp6BqnODikH?sY v&ؓy@s8^|؛6[o3X_bga_%'~xEY?{nZhO2|"@([|s|-wOoSԨcOni$4 H 1K;2 Nvn7 cg?083'IrsI Kx/jJVx^X@`v"3tLu]8H" E3"F bH` =L2{5mjߏΤZ5(ͯ›vzhy'~g6}@ K'?|}x?]oz^q0&5~}8-X_%[^{>)>E| \fzj??sMX[=SK~l'xc? )~g;[Ի3c]E_ .9"L02gLS}2 d@MygHP0$9#Ӽ;;@3A9\ .@"ghF;E` AiRYe8k",2V= (/mqnqbE_s|+<O|IX8#yP|dQoL]1ɪZܬxHJûZ^Gr`ۏ?p]<>~"kHe,:h Ш`wwI$#E״.l+ `O9$ٔ,E1($: -cC@DQb}rϤDF|>ZDJOvZK;"QG:*2=Ag}ӡ{x}S*-.;s~8 U> \}zc>skk 'bw5rCA&+(()d9#@-Ct`k.}DT[?K׼/5:p}}`%g/fBl)s|kqtu A+-7OG#. }W⥷ߏ{- mpqw0o zNὟ:}}?Wk_y;~'8w|# Kk z w6vp*/W>A_j܏3ve;Q.Nlk2dpݟQ %@IYf6Y޷ܽb$s53? )N@w֊g.̫LMwr¤ LxtYG̗bkGa \^\ {>&&hS}]|4mBTXԠCɛcDL1)63O/E߆Xΰd}yTUv:J7R(c :~[?I0 bK(.df (=4&I#3єZi6G$ct@̠)}EJTbML/QYgr@7S (e)@zZ،?v{{{p"xS㕯Uy,4֖ Z˾xɧp (pMpKfʰ@xNZ<1M=r뭷СufS(xA358ES!~ϻJCpqGyLD,10EU6 , *>']F\s22 6i$.42EoӼ%v P[ KMYQ b@q"2K*e.z6\[G~^y]}<60L5@fE]`NbjmHf ENϒXNIS;S(AܙaWT%u̶dh)3 ך.*R|%$<3@M2T*MՃkr'd=@ s>PJ0! 35sym߶x]Gqcq|m3W8ۿ5?}3sί~?4~dZ;߃Wo_yi3[t mV]z2a°߁4/?~$6,3cFOwO~}+F ҿ Bx ;#5ug ո?kދ;cw >yJP>x _c|01/'|*~"#>"v8 + ^ŧ.~Kn7n/~9ԙ-|Nx*z,+}PJ3&ρ)?A@eRN:RB)-fT,E=^)p;4q}ZA1XFoX8ָ窢 f sNNyޥPQ_.=U?riq&54)lAbl=c*E/e m9EnoƑZ5Z!:xiH9`}N 񶉚y{@,7ko NZT9 @ x-jfhjU yv=s;(Eĉ i8l]sB6EpobEJ.Jrv|ud8s[do|^Bz PI:y'67amO}a{|UϊX_.?hZ 'N܆s/b<`4a20XZZ`7G߇sE<(P9=c;;tǎŝw)Rǚy#! .kK }5i&La4Xl4iʹwNH< e$99e-YL>5r YHȆKۄ7 d.*`o G Ve-pgUQ <)]y=JT* S"x&ݾW*:\>'Q.=>cXa9ݢ).Xw(˙TZ;Ik2 9fJ^sH =G&D\U8Y@l&Lo4ɨU&BQf%\u'砊~0Ӵ6$IT#meވꤽ.+xSWzmı!{/q|uӗd{ ?O_$O⑳Q 7/᭯ l!`v [_/5':_x񳿗)\OiI\:h獵}~3ߧ/ *5͔e5=eL{pbfOm-迤Z1H]eF.E*_ 4f_5DѴ~ Z0K Ddw{c4ջ?N]@]$W{3.Mmvh):@One»< eJ\؛O 7჏_g0,aIs׸1Ό<~)h噥:f$mT=aLGâDTq? `܇YlIZ;TGu~4< J!kHPap6h:\ۆjY\Sì PN NoL5{/JW}M-'t{7k}o(+LՃ.Cr_Fȭ! #F7;ُFij;&l=t5z`#;)aA8+toAY35:3?|3Fx GnBm(c;sE;gw}El ^gېSCpri-}' [\[Gٙ:$Oޣ$~vTov:p'j_=ܴsmǏz5[ハm$SĖؖG?>xތ}˫#`Vc骏3~^_3"}?=ӵMic]PMX3J?z:kH\Cz1ߋF /ࣟ5uv6%t@D˔:Je]Th}C᳽\B uY3ll/p~{W!g26vMMg-^SCJ'$`{#K82~Gs|^7w+u>~?{{&m#3=KΈgɚ)ͦǴ>e]u˩Gx M /qk~Arzo(Na9x k44  fԋN "3hk x 'pefK*pnEoX0iTLI1{omu>j.$$Klɲ @C XtWwaA dkI&ڄ1`c!Yd.Të7w=޻ηϽ-0T{ky?.XQ[CgzH⨧A9$ams*x(IQ7!L1Ʀ,{HzC_k$(dc3F;L"'7Aznr(]7<5-Wj.D)}L OJG{/+pd+{srqܲ[j6{$l1Skx>_艒)xϟ|b8?N|cg~;߇g.<#"^hl*ɽpg@DGIJpeϗNTp[SM)!XH$=q :Ɣ֝&Ɍ_X8}-y|tڇ9T5eK1TÒO"7-/7sSLf7'BB"&}I|~`pSY{56+x O  K/W77qw.âk ku,P\C)$Zy3O0S)]?[ۜb: zŬ1h؛h4›V.5XCrHsF`ؗK#έ[f_v֢Lf@'YƞەV=XJR #f2 {uד ;'Ѷ{G9*Ӟ6T(W΃9F8Њ?Ʊsx&E?ҍ$o5U SMߺo-4^א/FL&GD kVqT|O;;y# `uSn`*+ȆH>> XCu)LeLM{ !- S5O13"}\t{yf$/!هDU*D52$ ohR_;U^_}b\R?Dž(}ټT` wz | ٣ x'K&/WT(u{yFaÀNZ*? zu^v>(u ƍgJyӌa}zuZF =jr v:+;cEyΙ%_^PI5~w~BFXn/|/Sxa0*dn&=>%N:dTz%pRB&i\tc:,v4oe":\3G{?*8}KR{ӑwrQ5;;ho\޴~kҽa ^zUJe,{h{H 诟lM4AF}ҢFYý g (QiLˏEaTPKj 2ނwbohS-)i;Qm$Й_9de<|>9QMmMI%C{77ۺFf=L[4 fqpLF[C7vs{6ɐ[)tA7FB_zW~)ӭ Ll5ހiN詩Yg[yS&3_gRu㐥):=zu`ii^ k_Z+^k?0,+Kreï3z=TRi9SE`"l΋+ 4EacWA&x-[0M=AcT{B g$ݗ ܴ ]G[ jkcxnؗb6E|:4h;m,q. pU6rN$J@w .Ʈ5\D#u34|=?͍7%y4ȒIĺ@gRڃؒ4``L 4hQNk^IM5Jƙ?a=$nw0ݾ`2>Yk hz-O(?PQ˟:hL{=6>:*!#=yV=< 4xu{ .l{b'V{r kʨ@ٵK( wYrE_g,8w:|գgg.X[}7{y9=X<|(/G^ހjT!'V֡:~GxuwbA <- p'Ev>d(Gu",E9}\{y ;cE>}㱳x(n/xAepeoIe"945g3w?b {W&Ĵs^o?2~𡗮6g W뭯w|9Ƈ^G?qFz/zi<KۜsKWvzi$OqiNjS#ߦÛA \ddr%d3;ÙBuX]շ>t| ⬯!֐^ro; \z#ih62Y ѶO'[ZCڦ) Ns.z3s̚ZM^] xKM'Jw[ Ѷ-dD)m”5VĆQ5ᰍQjPn]eUӶ Furghio*p#7#N \X{iDObCW:iP%m7-U5!]W\9=l*Ѵu4r!F@JIia3;SZ1F:ݬєXiK[w9-oMԯ["^jpfܷߴb4ix}7=0x)wv?N?S'O`aa(˲Ld9OpevR1i#^sXZ\ïy1Pިu7Up<3c;O8)(DFO1z.ּi`._wG}K6Qy:!MHYY>3taռʳ)fm6E&9NDa6Wh juUCg9{ %9)0HOQkQ'Ef2iKGUtي$۾f)w7?z'3zBSE粙Z=xS Z 3m}Qt0KfR!QV &RAOIh}$ZcoRW=s񗯢V &ء?to?~?uµNm 6'm௾/nͿxO|%7|ჸ;'9YsWc!`JpNx_sw1a!&Cl, B pfl]xPk s@wD?t3dxaۿ~]___ikp$?~o;7K|y|W,_go:sg}*dGpVG~Ͽx,uxycM?}]<|'+k؛Tx-|6aR_z?}1,R\ޝF'IPDo%iBO@5d7=Țtvl0S <3*QyOLާg6z5>Z&z7m%"$ɳa@U`4,گiܕE5Ȝ`.TB,3|w$+08~ _7(Iw+-w,dri g 2l#vȶM1޸gjFNx-SЊ3+trg G:XB$z맘ӥ3m0;SP:cpLQFJ@Y! Y,<>̓xPcTQFɢ=dlPڍs")dp)#9ƆyTbtcZ4Qƨfy89 a{`A)‹/…<3"^?~ Gא\zI!7Jy7m簵+d21el Ni:8)+1Ѭ{{{37R|l/\*0idk;l7#{扚zګ.Kqpb0RO>_DfgI#/Sxsi1J3{7P/pRn i a3=(/X=;@6XF_p;֓$lgPnKh&#N`s|UޟEްӔ^{+©< ,D6 /EOb7D~n3ag-Q @x8i} Bg=,Gx+myϛ_/ֶ͎1pKRӜMw_z2'x7~1n)F-rN#J4H!gmpjM(MvH_#d*'YlagHi=4i])'z h#L _\CR8tzD?r/ZT+:Ef`,rJF1=Uˆ&:Ѓn"Q`fYKCABњ1E0]j)y;8ņn몕dWE@b),[ϊPTL'|S:>3ktA/ᐦ)}xgOOƸx2RX[]ѣX__Cõ܀%#`k{WnM4#R ,n¹'2a49 sšX,vmyTT4 +dS;QH~Ͻފ$M$6؛ٻ5,@ .,$@).lI^gʽM{J4Mیx"Bݔ'jDe\}Lk*I`ːzGT8'f诟uK/F>k+$y\$s 0ӳnʓ`VF5YL.$AR+a#b`MM&q-#Nxi|Z ,1`O-A_ GYSI[0o`w q25T`*7ᾱٸR319e3)MM(.#,{: $2ΛػLԉ] ^i=ؠ:L+=qig7vQ p.m8..b}޴>3R8?f ~Mi$ sփfu (Vkf7l(#[,|Zi3ƧF x 9k5@0<36t [XLsͅ7%kܫD>E7M3dec@>< ωm*Zs=zu@Ʀqh[g;D֤i|aw~[~6PqČ)0 w _R-ޫ7`#1O%,E$-0ij2ޠu87Rf3Y Xxu"6o=-fКQebzVS4uYzCVvt0ulx|"h4sȭ$SQ<K8"MIk:T@i[j_cyy=Az1w}Kxq5(" r sA@gI ѭF: c,FUV%&)),ZO!&l'}݃1JM;q3)u]c@̹,fS.f 9Pt 5U[EdB`VnV#s% h ˿E4{ 0 F@joO"bPO)b(i0x|7{-(YDS߹Ԡ= Y(<02"c5SlgQn~C?3?r~ן={鼠`*_Ҵ7rWH8g}\S8eP?aDD(/jh')G\ZVL8)ma qsFIQ Z!|H[Ng'v-3 Z5]$9mmڽ5D\v:˽=57"qSx R/di"cix$AI$53VԮ=uyhʼnF] pZ1,}䄞 ݩ&(H>_#`_UU|Nack 3O\Uo·| =ƑUoFψx]1g& |*3^l)Tfu ZY^|^Fu[?=zȇ)̪",t&nFp,I;45f<@ ,-#&ьB_l=R 1hť Cgx>秘rZ` NP([-NjuC[֫"_P*o;'?eIGr a3R|c}y`PH$ 7SR}QD7^LL9F:X)P,A  _\P IG= b@Aj8fyi$Q\A{Jidå0 NJ#R:2s-(zΘNy%Ia2>"!#;/b8j Ը@viC Adiɜ ͪ?7M2o2iAi qOM+i! `Ж3tE(Jva*:Jk;jXkQUM4״ Ȳ37s(Ǐp86:64%cc{{[[۸[v1:8@YVhLN XxiIQxٻf@)MZ|ރҥKהy]k!%zr r4%DQ> IDAT+ܷ萨[h 5 ӑ(QȊ*}=E; |f\d ˀs!LBꅃ5ߧU'UJCgT0$U\:Wppe!NF6 i-Wcy<@o$~~4UTPOJa@4Wa%Fi ۔- e}{_TAi$t"Vru?{?|~هΓbX`8( _5 ^LP{/ډ43 9:s T,R 5Ơܻ G;HCئmj$QQPPl".!_XC39i2xiG3G_D 8?R%397亡] [i3,,1 5A)NWU8gh_Q7(g6ҡ Z0MbZsJAi\ yƔZׅN3ΕCxYk_j (_:So gZ0׬BRC {453L= 2!I _!{0LJ&pP:B1=h=(@޵)fSHgĖ8[`9,7p2lϛ[zybgZoN㛿~{<oPJ ycT[~&Z$I#vke\t?CH=͠W5Mtؿ\{=ؐp#"P!IA BOJt rͮn%?Ȑ5 7)BSq p֢X^GTA=A`1ݺSg[=|qQLFH}Hm9 H@3uZ)wܺ V4͂7%4Rn_^}{oaT|W~/dI ~{F46k|NK=*x 5|zPoA% /0騥} +>ZlgPpF:jssd HKB?X9$+;5D^J'pc7r`ʛHK7k%Qix$lmk,&L|ǨIFD{c.Iy1 U-&*<}z.2MetOJF<fܯ4kOM#&VVVnڳ28( }MS'p,CSUI iaj5~$Y4 f#4qet\u;%J*_Ox|@K|Fi UD~?aiwn:wMs"0zt_^7ְLRKk "uT[(w7o#,sje9 M؈*%7Gt J8ԼD:Qdf&h,gxhIoBhFJ}Vmk&5:^AY, 5duT-qbSVԕŅaGy%bɫ0 sԌfXJOSNTZ$=*,CKѷ} ͽޒhu⽄J)(gS`IGNA5ˮ|OMHXLq@Sx]3tiu٩H6mﬡ+$0*I~ gzU{,%[0&\O)&AIyywhD6f@IoH>]玏 T&,׽ -4l^nka|Cgy[5Z k私-=;Z^FKiW`Iub}@Tw}wۄ2$ C$/ڣtTav3i# 'Pj eܺ(8uLqPI '`³9~{aӐ|iOJl  h{DPnzZID')5TץLk6pkLǨ )" XO::z WZ*pˍ&αV7m^_eyK 4"iU0a585h/3{ь\/6f]ԧNL!N҄'{zFhCԢt--e b[Rj:l],--]SZ& X7Sួ3tyz[Hi Bh ?Gƈ [ga5q;!1Jg:#@kip]w'8WD)@;}K6t̬Qj$oY-J$M}!~5g$b,,AWzz:pyƄ *4ٗfԨ ^5¬8З]R"b)H/r6| ɣl |/wnC}O>k?byҺ`@,/`E8Yky󼞫 œm"s;*;RBɥv(ugT(w.X9Ꟈ{fv LfcM9n}4x$E`ZwTF54 ă[Ƞ#ܶ \̰\j~rsCuEf"Qt(d&5^jg ʝn jH(ڳ[ C(-Mn{&$F,QB =G@yyQ[gJ.׾/C(Ms>)fzf@d OctOZcv'ƹ.U+2Y8kNxCb oavȓZI󔂑2`y624 Б}l<V$qI/lR4x$Дc(wK<[W(Vߕ{>لal+aAk<nM :-gJ{mCG̗ T['O׾mb΋|5ӱP2d":U6\FSQm"[XFrkB{5و"a!%E4D& !:GѶ׏Z2E)kLY4U["̎$lZGֳ)޼f誟'ju:HP5{K01J3~J~ 44 .p$΀i* 1, X LțVWWo&L*zF`0=wុ`wo/^{mYJxMHS9ECq, m54 A}QQkZ\d8.W5b)uԼVB mwuA/,(xߑk׌Q&4~h<9mx47|DfV1.g'eݢjt""$ Ob5uCrNxKx_S0T%Ԝ!R8 k>VMx24v~?lK+-S4/ArU~">=PK 3EfTl@N;ij+(w]N|l^i3%QS(Ԛv)S6DLQt=} g&%SV>`FkȔ'Q*me#-+yFlL.G=u5:tyDg2 M1/wC+Mfz0?LM@ sgiTgN Đ=횪sq'Ɇ + ѭldƗ:'dX`^4qs].?G ɖO-z3򅕖Iiqߨ'Qk~5-MDPM#|4,ї Q$YI$ ;lX d )Kfprsd@P4Hvz3=@3s"%F3 <{K{ns^\ 4ؙ3H(T![XFɨ-snD m%mio|q ?/x6M9f'Tbk>ټ(`_(lqc ;w܍Q O7$3h̚t=SרS"zHP g_خJ/͓"2*oT?0,cLJ FGbԙ$rW_s`aaiX=V<RX]Y[Wpus { uݠicT4M$),CgXYYƑ#8v($&{"OިyN:x`ƏZ.^Y-Ta˵&#B W9w0̼?˅]-MM6)cCfr==Mܹ| ]ÁSk4]?D2tGE]¦u] UY Ec0'@Tv'Cio6q`CVN4E&Z3L1?gZ6RU9dy A5) i;hclVawwε1!tCkc , <0Wk-`kOԌpJr P:s%Q2Bw3?ȹ^^CP6Q @|N|%4&#=sq`jFШ'l7sKk[CҤ7D{KZ Ds1600ߚv%mIGגk5$XPMpJ`7{(d'yM|4xW n[6y:&$CЕiYRJE5\]R@h3/#6hqZB""%j,G1dV?K'یXZ! [~/=Gx*kM=z|q-xeA$3.P L1ILOS/G{{3yѪ!T~ F 3u/>Y~K7WI۩N n9)k*AOvM!zL[x~Fp,&W_m*1>hI"ʚ =-d:Ē#Q"_:"k(\48%&L%CןMpFQMi4uGEػ*`lMWz`XC"ڱZ,ub_tӒnւr!=at.ę-w@G59loomo{yy~sY0'3}94t8q'O`SP*P$ 4Af'{^g cFU>gUƱcfcހO\pMtկq-Gbx_ᝧ&7s}WΏtbIbvRʔvYq_UK2EO-R#"{JМZlI)Ntf3;Hs$#$J4Z4ROZSx~oG뀸dE +L8 Yt2! j5hNxh3Yc41&i"w[Md {+Ǒ/tI|xN)h{F'yV\]fQfUOgzAfھFJRByܮ~̤0'` i`Y~Kye/ VZ`?)I>~$ɩ#X\M5E6\Foʝ AP,OP{]fzɈ#Òb'5Sd!/UQZƀʱORl!PN{)$=L),FӞ&u ~1oH ?0^L=?rUUfhrT&'j`rdz1'aQMƒI&Sʄ ges#)?CmDrKg)U %2J|O{a+kClSK%YHCz&C3210q)OYyd-*A~rzÞl܀x%RpcXyMu4ug=;ckH@tYQc$9_hN7gl2mP{g[_um&*]yҰYY'V%N!eh[#RYsORix]})Nrwˣ\N25DkV/_l3CS?d0Kix`;'WÊQ0a:Yxl Tn_s}+ /-4 Ff#r%fw<ڜ0sk:b5xݴ]@Y'by4n_tR  i1Oz# 4Q` 7xσwGlD4,BeAkiK^"mئAnK|˙ 3F=.hCsr.HntzC+ z_wba*8,FSRz41u@$6Q1h*6ցz_k-N8G}e|ʀ<`[yχSx8lOoH4 =zC N>}C z3hjdy7)zaབྷ9-29Y`Z.MT)9AL^|=5G3)a2^o)bFz_98k_;rI>\xbsHGŮ4'+n3z t?D\ "4&lZ#)D-L <T䳃$b$|q_є*[WȗB丏Í F;1@m]arUdAGWkтHI(VT33C &0&Ul?K9t|Yw!,j}@L>)'}ܡ$%3(4{&Rgl2L Ƭ'v?E޲'nvOI"HAHDr8iM[mo;'ؔ~OHK,0R\7cXZ IDATz&)-!>$H'/x_ЗF00F^z+`?[Mo<73 u􏜂&ȆP Gm)xsOȮg!9˲eG[ bB`(U)Cd7 S\Mȇ+6iPC¦s*L955Na)NX7I2XӾ?SoU9P0$ Y 'ݴRW L]c:<8@SUh u8uև)EE7p*E7.x Ai9)lStȽ>[)GH2E=pu@R|OyfM~fYJ< *{Ϟ 4yرc7-D)cڢ,!IDg- &Ң1~PWC̙3;n^?q1xvB'(pN3 M?^'xE2RHߓ`m0:/!Ruԅ@颽Zi0r0ZhP^ rE ,y!,`|<@o8uw+ (I 2=R7+:+BZG,V,3OlUki8ۄ_k~6ѬFX;%{e!&y+3JP3uMR]^zm@$a !:Z. AUfg5㵥Q ;`?#]W@5ޔjC*e=i5/D PJsAえ4ޛ\6ϭ$[MᜈQ&i FS5J ̄#__dH E?ٸq4x],w=tWQ} ߅$$O̓.|FϚrC͵cv! ֵ7l^D=C|q=z?I ggL6. p%;rIkd 뇚lb(V5G蝞1Q1|"-c9N&2FKf ]"^}mhӃ4uQ]M˙wZ_0VcB7ሮl4#idc*@謝GF}4&FA~2VVWg3g`}}Gneu8T֡ܳPʡ P?CM5QҘ@e{1dYvCݿ{矿f* Ɔu*ܿh>XQjF"ES\ifPM>ϏwWg]˶qxiPь`QPvyY=Wfz%)xq&Ax'bHiz#i2ZMϜъ<%" Ё~K立~ K0܆#>q/̿aMdb)&\hD [O=MzpfVMV4xZLIl5Hr72&tG IQW6\f2B&)34Grx7Q5~{Ob6*).I8Ѭ ~_3^[E` ?AϒPjH&` v* 3:F=^azFIؠcI}#֓G~Rf*afS뤷HakA10h|Ѯ@AMջ9}SM{vetMUx_n!;b\$v r'ֹٳ{HӰVغFePsj5>凟a.+M] IF>{hc|[)g±l iQBLG>$ey Ɉ{%BG+Sp&x8ތ<{ZdBbgkR\ 6 -$!zFL)eL,3 y,[O1[LOoW~l? kt6t1_n_ aʚԂIGcIa=hٝi^mԣm})'$$!tj_ ds\EGJK5$}APZܫu~b6.Iφsgi r7n+{(= :ˡC-|:3H2A$pC2fDɸ556QsA*3iHQ2ڜ=pJ%9 &HM5a%H52AQTHTƑs,t@9 5 3ApH>z2Z )O44 U:fzКOllq& `44L2Aƀ }$"k$Ik;@Ilr ii&2 b$^)x&ଗR"qkƳ[PXZGo:疠kvu0[ >jξ#$h*O^z;H{ 32DˉL>y ܾN{”Qh >E B@).:![X -0"ֲ@`m.&q>޴x?z]V[ҌiAFרp_o`}\n4UCSׇ?t >Qu __Wm;c'ݤqODݜFjI9S'Nz~yØu8n>ެW4xp)u]xᥗ{ ~y/}x1_Df*s'4;QfduéĮB5dE>h[6 +{vz$Ct8\(/1I/4ԏ9N7$@=S`-P3ai%%0m{RxioD'[?&$5LUz9KքL-TYSv=}eiG] 0y+}q:MaE tQζ 74`M⩑Uެ0=ao+ۭu# : e"V@ENFz)U++1* ̔ O]׍o~G^~ cNJƐ'TUS>siA{ѣٲu,,圼A&S}I.Òޜ 5ll'Sj*:3 e1`L.a|Zܹsx[ނElf ~Ȳ /y睟i؛||q9R(?"mLs &` ~lYΞ]1 ;8┍îcrU{H{~,*M(=U6z\c46K4g{D w ,!)? K̾-ZjLP:ǨQzNc&ioN`j;5Jĥˉ ٰ v6XDr#z"]~(iɆ诟DUHu2C}pjkb)s DD5# !(?ICK!>R;JG('ҼT>s7 Cęݘy Ո {Ϳ7g?O3F*Zp{:bȦGJ }Z;#3pd>܍ S=?5eBt4."Ir=C$~>:?MfG1Zt指ӓY5X4$GX/}2M4vSd*[Mi̗֐-=Q<ێ@JV-xw3<G+0>:uČܿ&HfKYSi=]J>3ցrwghN>: oVR}ՔTm\|(u(6Y%K> "ĸmQT!tӋP< s2rH_2BY nC->ow=dB1`()4Eay/]w8ga+q%N׃7fP$veI_z~c !7GӧQUglsy<Ȳ3X9|[cROR}UFF;DA)ZEM܋dԀO.yczbdFώ(w7Po΢X>M7?q@/w d|fkI2|t k '4u;@IoF%:w?@ӳ$﷒75ž;XsQm4G$Q$@J~"!$G@BP1!08%lc6=VխUwsiX{{-vJUu7{g=hJ‚D3QU *0w;S-ch֬+ >גH\a O? <D=0 6'0kQbjWCuoxM%) T{)Rp5K=a, Tzg@| NپoQLfY.>FRZ#6,H/MԹcd;3bDhBќ?\o[7+&?-+̟D2A)i1eS80.٦Cɥz:OOR?F64?{?Kgmf;“ݓ  À1hQcXk?0`ѷ0k׮?<ʲĠ脿>O;w>k#sg+l(QP̓+;hC'qf1uSj)1Y Cσvy ԇ7Dk *6M>t ,lҽa@piB0an H@6yXHk(DS]޿7 |s{u_BtrxS G¸ =ajLGRnV3M?7t;dzuЬIrpP`?Z` VȰ.&s'7+8jCaVEP5͌4!*|YOg6|&p7 dlk"5㹗B)\'6oNMׁ|n2^bn$),@ Pt?Aa$ES7c}xw|ܷB<l=$7!zXce=R2U$+2oߛ6Qչ \+-Sf\`#+Ԣ }~`կČ($c&@ 2h}-5YSd=E-)NW +T IDAT3$ĖyF3 ?c#/kaCbDAwL͊USսa /ˆe0Pn[ļ>SزF1arx2 2ްYE`'Yk,7dt*nKKQdDҬH{9ۃ1XB =&Ƿ(?9:Lnu&@uQHݕ 9+Y}fᬅ!NQMhP=^>{<ǯk9Fr"WW Ԉ-5! ~?mpׯ_۷QUNNa,B>O{G}_W%|r͇uomcNN~gil|oVpD7t̓4|/@㮞Xp{4+񙂚tݭ:*~}ꌚa:>SyF%h8G.(ݢ@j:]>ߨ 9l42 y)aZg=(5 ʚ+%Y| ҥ }+FQ+?qj)m>eZLQ!~{Q,j/m;"PPOG6m40{O`KfDk;ز >7֕\Ժ|^u\)Nd=? ;;!se-iԼ@ ]FZ̥c7=]Qڟ0 pG6vCWjci]t GWеӞb-F,&ǷQ_Hѯ'. vb (gq Sc[`L0HҤkV,h04U_] 3$}x˷"qw,o^ c\ZAy.\=w_OQqƯni}QI=]L{ rq$H9#E%K\Ixa0FH9†Q_)\@誩@Y-g{T2th/O~.uZC.CϿWN$h"L C9ݮi0DJQU(bR_5mj!'Y 9ޜ6C%FDKI"NUs<&[oo޺mBpa>cooNNNo`٠{ap|?EQ9=߇ztӷ50_,^? egw+6u%e _rwwc:SE*+ьX|N+]\xd T{RHYW:G<rqD)IQ6h6OzhźNfeOY,1}ϟ?K_y,$3eFtl$rߓ,Tve*'V:4x:)C 7[~SB[s@y)fh֤U^] u63MbhEE6y*fq6LF+~IRTՏɐdQ̤r6kJl6n? fSM,ǍаgWg 83Yq cӕpcC#xnX>4>xw]D&ؗA׉1WXO{JINCI|}aU蛕x}1ɋ`.FO$E}gO7e)Q1E¢$G.l,gԵ&c4PZ'rX\?ޗ<ܒLxOEK~=.h KﹰuT ق%HM:Gy=ɂ>;Ejσa0ҷ=k\5WC.cJ'q&2;,Ьŋ:jq(`2Ƽp8egap} Tܑ Af4i m&?;z[*& wRx :ݵNϨ⇋WVd :?.)5¼Bup6'0\M0ƠZJƋ9;* d!YglR? 2l +ˏXGu@xjx0A(^L{Ga-k܈?LHڵkhX.ǏѶK8>>t:P-̷5_,*{5%#2a l;KQ2fVԍi`]&s6ECCn-OUsd=V`]%I>e;Sr8уb!0D ]j'ض+A-}[VH[(jv|3>K9_1ۗuTe'(a20!AN,1QIY֠*~[Q&6М?מ'Zfu\5s|sr }J=~<_.OhHc,` D D|){ƚm-_Tq@Ix֚2ilܐ* Z8*&M%}[kU΁>yݙ(kְݶƞ#"C~(r89Y27+%p1E<{21;w*kSJod1?Txs bqv/QɹeJcIiAcm&e6$*=.cThfl3Y44k˟k 6eΔ\F:zX`k0"+f÷-O1g@7 5 k"&rV)d%j9(<7=<  xdhn&떧TӅԺ$ސϷIXTMP-ϱ~t T/~NQ_0܊{RNsБYH1]PNf) ɠra )ha8CJ+CV{Ǩ"wA $"g<.:'VE=O[zh/N9{vzBFa ? X/.À1PMbV_w|-~kFrP_>! q||,@ヒ.Ơ׭[p-, ET3ۏ 8u_T'[m~2>izڭ=/sOyĩ)5g1 }{$U) LmYa+1ՓØ bL^U9,?*),儦E*Je*nEARcLj"c@' Kb%ξg(E>sJ4{~Lc2::[dČP7#P˄Sz"ZP$<4Y7ˤ9!rrq@xs~땨k9eMN;}\{AA`v7V(iJbq6ԎC+// =nRʈ PQ6oϠO=pj9PFj`pflti=4̌b˷cD͐<0ЧR|n 5KD`6G3)=tYTp\[52GCPN@~mְCLJꆓqmɿXU1 g?\CF@`p (!] 8f[ AY +eZ*dI( i,l59dD_@}p#1zg¢h/NW4o%)E)W!kO KlxBQ_MFǔ9XNƕ1Yc)4Hقξ=s6$9.,9Vd8XUvk'VQ!Qt=(80M?5E2%-QcpB+h7'~l6pe W߲ WtXǟ"ӢoubZO1p97o۴i-pqq3 Fv9'mAUU8::9>N8X,po~cxL$$Q]v.G IƃT|oszGw9˔T:(k¤D}t+~'GvܝLOSQ)u=ڌ:wlY%;cMWS .,Y&]<)g{hN=cgcW#_/]cveNրīb T4vMw^+ǝŏ߫U7n|`of,Xk}KO ^@!n1*LdC|zfH%" LE! r5y3=ҞҀ|z 2a m2zp(g{(0M}5 I$;4E),,O91b e_*Ȩcgy(Qcͦx^Tu#F5Y&Ms]YbIq\t,jfV<1:ol( B&sGhҶ0yݒDMM XӍēHngCMϦw5#I;#1EbĤ260MZON~%mk)q'b6  xFIsڋ[yZ~*ƄkFQoY h\8$-*S'ZM ܊f(]d&/~ߵ(GRtZJ̓;ö}4T<1 پL˳5Pѯ"7hNMEfI䏧\Eڮ%W?GcY&- H[c池dSuK zpbꘑDT'Ƿ>ۃ]csrbea(} q#iuCҥ<Փ{ٺ; oyZ%c xB//޹{qkeo 2g2Vc̠k]2EOF42qoVl&O_"c\a*qj/Bk`dbq uM˷6OF J`(I$1 [b/s!Z>-^6hC?M|lYx?qe PKҠY{Rk9Tg˧xr9ϔ e̱xmߖIbH:ءOIA( #S,7g~?{ZSRhQ*ọWq.QdXFDuy薧Vy\ay 1$~,妒Ii Ӆ015C{Gd]rzSQ4jaNdM~%Od ~@7xu)j1Bqvxv>MOkI7X1`\LؾfEhF&31b ]F$>)"j9m.o0n4erSH4KLYS: 7=DgD^\U!KHqfTf3\0(GvV^TrW2rNWuy :Nek̢dՉld[BG1?;ĆX˸Fup0o) j}O6+ s~uX.PLfX"W}/u\"P}^! : S^7C0tBZH_~f5*)O~/2Ϩ|8| !*c}?N]C`Nd jFJ1ۧ=5[__WO jh3]l sIhk3׶Թz*߳E.jiki*Fؗ@짠I:"HMwd&SL?IBNf1[_'=);T{Dlh ][HWVr=bT5r])y):'n';1:N:IAmQI spes&r}k|uˠ[ͪ?A/,I/k0=ඬCs~dsW]D>aƞRJ {\sirB.$5h-e0/ҡܷd? &)q:^~=[oa4JV/M57q"5q*rLse3MjlQRLl8b IDATr}3kۆТ3B:Ti_⏧p'zVEW09vy<|7l{/}&מp( `?&3"M$ t DzI)?9(0:,9WEbGk3|_kct6̴ 4`/-w܀E`˚ĴW7Xqͮ5Lkas. n]6[d.ݢ# =7^Bb ==c}'+9y7RKLCwuj~]m =E)"; =2k3q eQ=Mc]C05r4b=y9?͕t=bQL0):f.DwĤj3n[g)ŀ%efd >ұ-b4bɚH,u!"C7 =gҸ}E=W7븿"o=7vX8n2k(c`#ú"b}Id&`]I@ZNVC@@멘!>S%Y>]  (XINL 1чnM\+ٯmQ#>~;j6ҵdCi 6W;0M.3U3 , U `Ąٳ,,޸ϲr1cZKڒ^vqF%#/3E9?D_Esl?߮Q.GuNgoYZ3ێzO.])c6ZUSVBHb_hI b2&W:] 礞PL1=J[W 3J&#)&b2G{q7au ~헟ZmTo}f%(^N1rѥأBa5VH2cQڌ=TDR|N8-\(Fb S͡X> ݋zJ ; OZeR r.SRf`֧g, #+oaC!2^tLQbvEk͗#{tMR*cP>~D{ +)؜>6QUeAcL1`L_kԏySk~d䫧(GѠOwL0 )cL34Ȕy/f?)8ej:gr,^" 2i/=- !7%ʦW?|=1D3oqΆL`&^Vθ)y,[nO|m׏L:6;_{xyD.fCS %ժ AG´yu;Ș!ad\]$%DId8/lb#DgXڇMY:G{A)w/|t;])v恢MI#Y!3|O0[&o J15l;ur7^ǡkPސuI!c'4kai1T"SCѿO<Gw+wSؔI~ Lf4>$#~ j"Ocʈ1X @1iY>7H1hD_ng؜>vhBWQ 昃{B3M+na2|f2T@QU'4}}M/3C|^zSG{ucCجF]ڱ#]eX!%,#]w0t ߆&14k41 Ō]{Nu=PԳ- ..} h@<6|od2rR$)0IuJ,;gH=ͮKC'`lKR.O 25L&;Iw;}7*K?XR*}fl*Y_# |+iD:BdHP' 0@ G\P_#CRIV*)nfFҏ [5(&3Ɉ߬$CT jgD,=kG#]SzIa4fc^?3DZXpt5A}p 5|ǟ9w?cjwPڰJRT@9j/Op+YE/߯P3}0d@x}v)hW0!#9ե2ڡ :fa 'S 9 ö4Z :#- lPN&,g]oa?{/T-Y?.pk:\߱AŀBs&>6A)A|@<[_d,<]l]:VF{yr~az8nE˺U. I#Ts38kM3g(A4Is?΂dxH|+DChֵ& `?=?@1]X=?o~y\$gH2њ-Ϙ6lOEA5DXSaS%| ^zMhCFSӕ4a]{=$c6cYw}W ø^#l [T4m)dh}6UU(9ω4t~.ȳhM5Ak<(dkjTvP-eFQ' :0g~P2V+8]&xuWO*>rULS lY\g]#)O tKJO_y:{YgansKbc#x%~ִnǮƉzgY?{Ɖr؃FWUWAmׅ$~<rƏ_/%U5&G71;ْ|\=πye:gBÖ4 r"m$ |ѹ(@sj bIs=yˠ _w ښ+}SO&孟lPLf®8AƑDAjхQL) |#g{|9s,*KJE 6(f71&70tMH"[TFY[9O;ڷkW&ǷDfB{9uK|ՠ `=$ j* EU_1|~Db9\h*#օVA2+)Q(ʻ7`3 4~t賽>t1Gw-OEND̥V<71tq&,чL" dܘI! dEpkMo.g{}'u_fC1a ]Ejv^n+*FPه84qMcU&b ́8q){0zry|=D8B}xKEnPaz2\]R9nuYL24ѥ4q/?1"(ljbjlp!SYQV=;0[GѵZ~kcfG@#w5&3qT箈8 B'V0[Af;V7p=% d ^a/D 6`y xNSa_zS#b':Q_ V$v;r5X͡g`q9ރzN>Fw@N:ǭTUdncDg9՘e(2S@A1ޒQO{YobBهfb6dJ:I3xibĽth4ȎIgZ!"ОlQi*bؐnMhø4n޷itC+dC&F.56WX?h#뜩OqcP#6aDm^}(ʲK'mi flXi~ C1zl2A7 H1-potw]Ȋvp)`Dq0(4Ž͓b<ؠwzXX>"?M3 FBOlf2݈)c@piEp0c`˟"t橄fD?C'5sfZOv|F3bĆ̀4fxv|pz0$ b1a[&j {XēF˓XԳNdJI@"Y=%c"O'Ųz$u C~u!R1)"##Ba$E{q"=l?%(0&]4B]=-ED-~|c\:+ ?T]^U`F~xJP\0|\YnO򂡛h`ILO48^֒do~I:xOECXC8DX~u6น nQtQ>$~7n<*>l}4׸{` k$`LWD)wLi8&QkCt9fҠV4g|X? ߷15- F@SYo5zZ&.>0RF3ӯe`@nhE-qe-Z!g~4>!2w:ET+. ]L5zN>L$ۊ7gN2e)kV1=x eg:r_9-Usj %qϻ{Ov#]H"̵76k)fbu3drM|JR TOf_lsUt+K!z+fWy|Asv?Zfc{W3 ]MX1_ ہz?^?7o?!cڇrށ $c ^SH;DoBRZi(}F3*[@Dzr٭W\<&PCsEE-iفyMT[c.}Ɍ6/Y . ʽ#MO cC4gꩀ)F0i"cʉ;D}uE`Fg&&5Ҽ,W5(8Ĕ9iDҫu 3 ; +eL u{Nd cfLijP!ѓ{m HkjP'j8NOSMa X #]F5g4hT#bGQ&xUΘɼ8/|k|4P\-ڢk$~?\f e7l& aگ]0Fu2l2 CcŰG `glxb#Z&^Sb"H`  cW”|f']2[|ߎzMZ#\$22@lIrnu)+JE¥!p$ >@NbyH!Ș+,3هMTLH+?%u"a94knnyIY͟_]=LJW 7w%G|P0\=rmQa,%P3QtAnJ^V ci7=({$'e-Yԭm09#H7ZېSy|$^PQ=Û1;jJx2&\ 8čϤlE{Cxc]Kgg{ߋuuu{} *~_xأ1\Qzg=/{=dkðS8bzE'i+.$k1<׿>\=+{@,_'b2Cw>IO (δoV^Mi ͛-km*fZLχvj , Uދ/Dl8&+πEd.lFCBa`:!Gvvy*zblMjrfc S)bcPmcseFIWG39-OQ_CQM1t(KbNrw~<&GQožtJ!eZآ$QL=_=Оkg%"6^ kGЬO;f>ޣ$Ԑ ]CRrd2m&ȤޛC\3 5\g!raC0~~Q'>L)Hn# ,Q{tQmu/f IDAT,T[_Df#4tnZK,=|2Q* c:OtNg0q|Ab @ kڔ8ěGׯk_}P(޳g2Ȏb+F\s{L=d)}\Zx}F)l)S9f}(m fMchV٭]YL&&S /]`\UMgqcDƖe|F=q3Q oVPL͍dD ??~??GQ|RкztŖ-p7B\coi<ۦ@J:G939}G7Mb74Y^09÷s4Ăl)R2ҒdɵќG@svL}M";CG J ntd#*QY1wtoq>~}mEJ1XkG;7KlI.Xm5w_ś_F^`vU,X?|d֡\F}xu)LMdfmP~ӦI1,4u)"j0WIM4Ԛx2AmTd<`hYO{eFsn2׊EE.DI4#['q ^23iR/k㧹֌e+9EG)zeѴ@CjPjaր6W<ڣad*(^ƾa;9$;e e!+F]-J>P A6!RuRe"7t]}Dte&ʼn%}VHqo xs(J)2cͥ,Di CLZ6Ecup]ޟ$#r$ɓ,gᾔ۵O/, >dfcF}J=rqo}# Tl#EQv6svb4= U),T|p]=ϫsu&vW(M7 k&!/k.`D~!CZxڋ GwE_L[Rc2Q&]b5 Z_U&yzz^>("][z4m^. Sy;%C2Mw~9b,ȁ)ڋG5yOlطbsr0kcvd 1B}`-IEVvM(*0Z'*X~uF ڬ k <$۫STixM1밫1zg|NǓb2qĞ*WA $6`Z$ao]au ~\xL;ؒX%LZX[lY PCO{hKƦ3$380 5lveF1|AR-5ӟ9֐F/F&P32N &Բ5߷ө(v3CԂB8ҷ5"lΊ~܍ LR _+H$+z|T2di %-qo ]K^D:ϼ.=-JhUDl 0.9os5܁-+_x_ 7?ܗ~Gɴ6l~Y!-c,0ϐc[\<Iwp#eӎ8R->TdQiP \Ucve\{(珈rVMEŮfދ dh/].x8m(ĸWͥB rU]b^Z6Ϻz=3T9?Zúxd-5;U1s!!,[=JMآHeMSc[>[z6X=Ճ;^{N<)BrԎ~LEk 94a#J[eB@&f:Ubh։9*`vf*̐d*SbW>M| Ip.q~<G?/ql&nt&ӅdT[º2b޷ԏ;_R.'nHE"g23~NS]d3,r~@p~yиfAfJhOh]LYWjr7T|4kbԇP.Gwaj JShSIɁWbOEZopx❵E/r+gҏȫt.E7k_-үA&R^ I uTr1NЃ %~5EZ2FznjuP^[" &Ƿ3?rqgQ)S(Y 7TC1`):ؠbg*HuOviOKuo~D}p-F?}>}tLwkA4MDM^iH3RL¨d ?+z H)r x֨zlG]Ű- {G|5%B<&>!ZbCc-Oͤ%R?(is$ų|^ _V#ΟS,M@,cPrtL}kT$BڋT,6Yhqgz3O8ln,g`P',pL<R O1axAs:)O0E5ENg~YYX::YE잚mЀ m9,` xqsY*>H:JLw"a@5 s{}̾o_%hdS# XGV=-#|ZPⷘH^y66`hRۢi>lLB).YO^at_vpCA -XǛR9ۃ?!ɵ-;ӯ.1rE4A]1ޅayۛ £k[U%Shn~6x/߯~2ƒyhWԳT9&Ac֒fl#$~hִWi(BAd#VL/Oh/D&7QN!9eӚԁ(LtPs!N:lΚzmw+;MjyUxr>Ί[|Y=LX{-MCie1c_ |w$uEO *)iPp iY%WT ]gc"KDvyF&q11 Kӹa'KB{ zT [T|#j!Vߖ]Lf? zݯ?_>չ*$sI10)L=#kB'1I!32aBzy L$u 8hT/Ml~8ʦ幖FOdk_2K$5y@ TWGr+F/?` lel<^WxHҪ Ng2xAn(}WL*A#߷KfH]fWi$^*_hJzdDg Vj;cꇔ:#$1!ugu$FIHdTq]Nߣ"fg`.,aφT#ﴷgq0g[,)Zl%Qz)?: ۝.i^f1ǦTi-U#"3o{5JUB `0јˀ {-1 X650\RP*TU*oCfFF8'NDWZUW[ݛ739wi{?}ݥf^cT4A1JQhUL9"6e6Gn֥5I|@3 }װ?:gCpa{%Y*80VQ7z.w}A6` ZLGDŽ,g944ŻfFwx PqY~/_g ;ԥv#]UIq/e3Z;L=]Z$]1z;`]a`y~ ӏc-g`adQr)$ȔQj@]& qsIrw؇w(1=u=??|E;o*7ȂL*/yh;fe.c^PWfY$B ].0h/%EA^AeP$;NŒ`$ `uŒEr8fW?t.gCw{ױW{p ᮿ!_E]@m1`sy]EVl/{KƂd)c'wq,sFJ^l9S.PRKc x2, ~7Œ %XJVRPZ s"5eVQW< ^@q$%EN:4e?g[gbDbTο|=ĵ1V5 TKIa|:|)C]rBJX.$cYk4*QI 1[ ~L:Oql[p -1(h1&yn& Fۈ/R?Y'зD.Q,t+jR'd1̱s1Se͌0H9Ys'0> m ,/<*^ 4]mH┃Â& rآ#m#S"q5yHKhgu 0? Ƚ n:p$i1(cvŠcWzv/ z:3Π[$tfts(b-;L5rm `DY0yüw-JgG :'+WGk;'^B$Q%BY<*n`@uKz>)E׈߮l.Sa-feNv| "JazZlp6D۠ĀrD,,E&ܡVL7",$j&AbJAS&my)>ȠA]3Ե%$S|3<^rֿx3os^dkׇ 5WRi@X} Vg-И)W|] )hF~nmضi-I?QN|bLn[av lD1;TRJ)|ft_ȘDTVh-J}p/ Ɛc>KADGƋtIK(#{7u$%^+AZy b]/}3͘#-e^1x1BIEXe>N# RV)@k7ǒ`E=kKhg1.2v؁҆Bg <1 @Hv &/d ny CXo uA1%tUH`ХATܓ]p`}C1iC7Տ4wZ Mx]tvtO8 rl8R+J:W:)]]}#qo3]ƺJ0ܤڂ40]h=eDhWGz Vo|ę7B?ӗjr5O H#F޲!Q5ܖLE=BH*ҵ~\)hS®˸98}|O5 W9Sy2!`; {,DwpSt(g[eH'BZ d?kb?x0㨶NB ߛ}}z{5'k@ v׻I{ i/}hej RwC(_DZoʾ߾ {^c1%]F ԡׅCopے10U ǚyU'3QNsei?\Ci SƋ@<`طkbwOc`fgP:*ʍc(;g-QԳ\h`ׇ1DzޚovFM,8?աo:mB9B:D1^>LP>[܁ּWpJix+nĨSU.҇bJ9BZ0{,|MR$.!~i]+[67'FȭC|j] =Bkaas?s;^dEYpaCk޶En @۬PJo ĩy&?}cu-'r}S$@CXm|r>W4 :3T32:$uP [0w-pnBZql6,E~PR & ;X;>+,x}lX@]3 <j; $~ PZdF b`UCe jsSze/J@ل.K4{8wLYaz~I'ithA"Z#EsM]].$a7^e9@)G=Ѩ &B9ߎAiWE4})kDz f2-dbEsVDHZ%b+~yA ؾԮy3PAfuAc莝F<@Yh(k=ߵah Q‹V!:XI+CPT, ) mz;}4Y>$ z IDAT1iQ1,M1w\2xPmѷiFQ`* 1]9 RR*Jo Y,0hN"8[b]V Sb>N,9Jŵ;F0IOZ4yB#nfgQL/ea4EDBKf%s&R;8ӷMU&&L5 `?r_z^(1\v~QQEnhhGjSzWB9+>+]} >,Ia}(&5z)WS6S&.kDϫSW f6OLظ rɊ>YEw@ .KQD{ b䖢 ueBѱvҭVx*͡/ AΣT<;~}&aZ#"Uj@)Ǧ$|=(K-\1X-&mIhhd$LZ-ւE:C%f@ZC&41zz# bvnOg~?E;\ҝ$#w n,@M ݑskbf 5OUI ^AD4,| JUJA54NKh6hYاgcC9/3F%A6d}(h3=d-PMH T$71t*H<JZ?Ќ KuZ1"Bqt1Wg[6|Y#k|۫׼uƱjkkWPzc&o LeMöFxҝshw2-YG&>M*$am LO[aq^.>SMQJ{ڍnJVLf1@jjYഠZO^|*RF,)L)jw{v- yܢW'=e~В]r'i5(Cط-'Қ\Up*BgIgrH\3EWu`8s˟=f^MBlu*$gJD:~Z +ӾY3Mte1:niֱj:) bb/9{RPэ+)\mQ-he`ԣC^}O\wxʰz2 7:q4ICs(œR*8t&ޘ*v[8DUp䟜)=q%Ÿ2t`.2BxH>b۰괐`f 7Ô]󳳭TB鼙fU%4`="&i?:UE>B+*&27 JuuG@D̑;vyB#69gZkb- i2 F?SJԀ朆X "cƒ\ <;6 l?H$cַyD oV6F."Z2k/ٻzY < CLchp(#X(Uj[>{}ɣZ<@[sԹeGn/m^gPe7RΏiUh]̶R{'&sb(b֦S1\QTSTۧg>j넟 ~DMc neJMTۧx\n.>'4@*e1>}.t\<`lH0- *O,1W P#,w߽ĺ.ZnLI N tNe}0*mگT%2yU\}\2ND7_2UBZL7PnWBHgS%6-xº (@bNZrTLf<)]OT$YQw%z;4B.BTS(m"fZؿ\rsE@(|u D2YuvL/, GcI+b C1 L‰n)BlfK /:^ExD/BԀÝVtq{<glׇhxC&M]XqʐpjJB "QhSkH#L f3g]Ƒ#r.T2 Y5oYhy.kN"IQ͜[YbU&8q| d,)<#6(}DBm>%o|x)0QT75 fN0pBop=٨tV**s@f- G- Zr\gh@עdF&W 2Ic\> JqSMS%J\̼1X@`6G7ȑ8^a`{bo[-fJBݭN9js˟Q{D:7H1`J h4YHu[$}A1LYd :d Fɠ4a_GTa!U'j Vbv @..+t~D#$qЇ )%/tSCGf؎R+}Ѥ4&gC5EiΡAU%+<Z;egyud\y]/mw uo5%cY+;رXt}Hg=GɛA2/\&Bԉ#0J§Gup@[6J0ri҉"L숙'|x>&|9PH3$IU.@,dLl+Pmr%5~/}o"m1FB>T>kD&k3JjF;XQAn~_b F# q)\NtucRu*S_dxyN b?8t]bLRGc 5Cll4lY%ˠs^L0OEXBGPA4sUIU[;sEJ`U?bQ!O0-?Ao{ۡ[ {$v(v9# (F5N)(|L14|lak;BQq"${l\pdOUO 9.:&ϐ~G >5 fniF)JV"5J{0ο N: gPPz-[tw& 2`ݷ#sUhVg`d%VymHZע'Uj5hX_:z#-YK̥E& tD4`:@ʴ:^I7UZ2+9O ?y '[Cn1/?s+lK=B@uΗxߞ@BmlD3q%+({{{YA*PY[8m'e~*Ilfz֋6hY ¬knf J\hXP Sp+'ŌKA7!Any쑢5XD⅀vb|s13Ռ;EBRS=ĸ27I;?TH tQMqOt mP{N]o~/RXlL vDbk-*7zt06skз8^A0^j( ;,Z&V壗0CF\>31Zb='t2ރx,7]/#&\بCL^RG*'@یQhdnL~i `biEEB#[4r]$Er(ω!k.&3/+NĸϿ`<1醏ErD9Yn"o,wp4KBLgg9SPhFpBv%t)l5uL=*Jo{ޫftbE  ͊UM93~%L9fIRxiMtKgS#-DŢLdFb/t?Hh33GpC&R/?m"\]_a rŕߍWzΟulM%oNJ鰃f1L$(о%;OTp'HX$=hA> lE~,٪(vIG~`ޅ0 XHkwH@bLj8kaR(ۤۢH>OLM-^G,TJmȥ"JU(ms^ή6VbupL;Ux[*UL(bbpWԏRBȱu粮2u໶报)A&Bvdw6ilun[f:,hCFʤ/f[UoP!$,+7ԬJЌULB/xAjd܋yقbT%D|a2<5)3AΐaCQ2\mhA# rh䂿:k)z\S(dr`b`Ԣ*a)6l$l+8b&eHqG궏I5+J- ɴut{ (05~g(p.`3 $q&=ĸFL ZGĠwj0Z~F/l(lتԓq[nIX%*rB w$->dgm2MBh Qm@/XTY%cl[+ΈZxf㇌=$EŮf2Ż~<9l䎓lY7+1Z/J,uUIYVM+,F^,?m}7ZI&F+o)f&sfSzf"' ?ەGÆ6)hrMntzz4Q9 1rV!6,"E&9C``OSY3E :)~B/^끧n..qeʻDk{fѵ^.e+l04Yw [˄Ųcw\bY*ǸX?&uuX]$jmR=/y,0O;W̊X Mcs2j[Aɜ$Q 'ʫCqŠIG hBJCd5ߟ7T-j?WL7Y??ݛ~/K{~oz/,tYcP3?VA3%n-J>7'I2% Y6 (-I{fm G/#+,y:9t% (ik]X7Z. fSHTYL !S$Lȑy\]&Ŗ ]@@ )H#( Gs…f 5HY1~ntBw}Nmuf -׵\xN HXh&3Sg\28RSC E,1<z2c4RT3Ϡqpv9t▐3 @DqI`$C!@#&' g;{4'l -,|sm`z|$>NEQCw ¬ I$ˈxEߥΡFCߵ}Ɵ~G=Ol;MPcGw^Ky]6c~MTrNu0,A3PRDU+!fޢoa?MXl 1]֊ QW]ᨰv}ܻ}S$cY0aY]//8,;LO_SbTEƩB5N =\s]~\Lku mxojfӹE,NZX^` BTHPA$ѣB|0):~p} 4B|󬏖sfP,l 4ls0 |}a+֞`xnE9]6*鯡^KTG,!/R1N.>g{Hǐ)>n#Fg[hdPALb ZpBk><Ǟ"pg[Q=}X;QUE{pEVٽCC!ܑZ=B0E0 8-TDwFL5PsTA8A%y\5t16%l_-ʿx-<8xL`9p89ӽ&/pBvAb.* kwaƧ1k^)5 jO|? %[t.|®`|g 2Ǧ@עoװQ/5F7[^zm9/%XCIbIMh hݧ2%ayAmf"f2Oha60vCjr f4'N89t=}LۥB9V':KbG2 c|?&43#qٖWXd;O"{ZPzuLp;> @Pd#+Q#ebgV:%XNFx3]:-t^׫q]PlIuw=T!f2؉ALi8#2Fn[ES,>9L8EYk2r0(-PDq11z t4vÿoDG(̆Jx) qZHQ8~NMI /_\[gYσ$:s܆<dM,\?0;i!W1tеe@Q<0ؙYs"$_RZ~ ";OQL7-{WLfhzd;dt\R&eFyeg3o5F'aIuQXǂ剘^/F:@9wIOC3RUO ʯEe!mΘf#k>CƧdu2,˘N0zLc bgn`g:14[ب!Ԧ`ƴLOhf IDAT'2BcyO]"#]1djd|̑+ :3R^ǯ5cN4{c{-.(BD%ad,_1X-O]BU&a&jxNWTh䑳9XC$ҽ+o0h,a鄓XxT:sA{g}%]ºŞO] Es2$2LGHӥ#|;|'?: PardPW5;yV[{Ïo_@8sɉ/$JfZT핂nr[I2*%ɱӨ]9.L5D\]M_N 6 C|Pס]=E{p_cPFzq$tL,G{A9u]ɤlrL f IJ$&v =5eU4ADk$tSewk\_w8]8Q9pܒ9ԵKɖuPlglu>Ҙ|gh `K^6=ߏ}"E#4M$ *EM$.inPٚ4$;큅u}Z.o>u66^ Hy(9bZyyR%tϢAgKEHXT03rZ<{P%+T )䒬-Kґ;.sHk(W}*ǯXYf1PW3џk4 p1bqJ#hi&JdT& >/f7pè1&Δ),l[(r^~exG:_p"h^*Nox HL9ʔ ac\"V 3 $K)X៻|Z;̀È6e(mY ,'Znׇ)jK7#4E"NL҆,̙i[چa+VCR:IM؀4IK:#Tz7KT['PmsneWntOHy}S4$*άIe(G|Nʂ <'9)R5_m/E1;(6">O S@Q9Ovm VOrL߃,c:$i)2H,IU]EFi% j6.Ѡ(y(F uJN#-lF)g*$DWA$H`&zRds>*#TQ^x֔G'6֚fVYg4(,la WYr Q@_S#k$ZMA罷,G>${Y:g{碸OԵ"b6D6v͌8!"}-,ܙڄN+*,ۤvC!;Wtad_,J9S禚D.kD օ5њAVG5m SNPηkU9^L2՘3yO}k|)kL5d:gkyq9o巼*W$RUm3i}fo$QH.]73I1Ä!,ny L1݀jt&onnu=lQrkf:$kv`5Iɑ]r]&Ġ=,:$PkTȶ6MzGic<^򂗼^'bwϤ#LsFA_RcNJO Fܤ9A|6IlrkL$L2ePӍLXmadJ9XtA%x=yOoufIy(𕟓8FDG@\4.\?Z*mkO}?|4VO>iol*fZ|@yc9%3&w @Ou S%k9AM,}$ ]h;*F@tT E#c ׇ|I#/JF錠#5Nsl!In~̢1hX]: SMQJ! "IJ՘@:Hz>mNxU}סn7\6@Ż~>I\<ԛܜܸ ɝrq2u$y(du^9d/PrMC5PB'}$6k^:w 2!IpR0qB2?˛oΩ*9lfl< dP.uN }Vo;qfVhYZZA.)5LWOi >?E_(~LGpPpU5~}EkOo?F2e S F(צSWxt99kqGG3F0.xHjAGL9 *Y28K JbIllZ'ĨbA0J(>0/ti\l6GXf2glK .QS<ҖIρYsfs3dn*ҎٮhîQm:N,BŤèmbܬ`eEz?5M-V&i{<*@?:茲HB.+bp0ͩL+13F_}WoV#ap`P'jz?cB.4z-h*.z(($!yat<΁O e2dx:clۮ;)zhK*E^"qV&9]D/A&@2$ ) 6d1 繛(;brDAEfNXf2w9)眿ۤAbT5d>NH>b4/Yky͒%壛8Gh)m8&[ n;d̘DN1ɴe kF$6@"ɣfYMa&shCN쯤ɒL-GD @y'5qx]_%7oO@쬮Akh$umt{FSyy؊)Fѳ*l+Q1&yuY'bN=HU 2&uȊF-,yEG!&QDB,Ďt`aSQՌUmJ[̺lz޶w^aT\y_t MG $[*^抃 +!~ٿȂgA1%zK{0$8:q2bEu˄_v߈] KU* ;bď髂; ϨRAIJ Q3D[/|Ȏ3fF%Tf˱8*ӎY9ʓZ:+X^lK'ev/6]$9Hwɠbhl=C%3SgTDz?F6~~(`T֣NWߋxi5,2Auk9Oe`%1VJ${]%T }_/;>tWO//5B0x: КyPVuͅPDWkVq'FHΔr-Fk&0^3\z׏1%Hw {2wL52^m,{pR0 .FNb/Q"`bZP„M`KLOcy~8簼T uɲ~I S ēi"Ǯ]z;(= J,ְ%mXq?UD guhլ19n@ƳC,g!Ef:rV2QwjQFJ X~uHBUQ`TI%cFIܮAp}ާm⼋r.{$(.W5ލ1^iF]f3‚XJ{I%@IZE-m*Z*N}5B9(]ʦDy3+9dg}ϻ[{>?/J>SXgWN]l3[AW3cBO DK xT{YL[zYB_h]ueC3Xǥ=8%uS kG>U@A (BEq΂q+arAaOu=| DfjބqKgb%YҾzs~:_w{r7=o|ߒ+Ut/z-8YPez"p8|ҋvp/~obTϭRr EҍLE 1:.}>\ηTSC[/쥫!1nlNǩOku)m'E5( X_"d lbJ&-t[`rw< N;@qUxKMz f}#mjX]YhW!2:cW,d gc.Q6Ԡc)PI)' ;,-Jjֻ8Oav Q]Č,2HP߬|3'{g>o k@%Z\[+Cv}j8PqݑV #lW% hGz0'0@bG6Rqs8HL;XwɋBim#QbO@uVh/B0=u= X]ܗ$=2 P@B 50BbUηcrāaتKzGZ,HD}ϝDhΐ+E͇"hŅ(cD˅e-zŖ UKо%[: gM֢Ħ"֗Kte.;ڐ:uкJhdӗn*?`mID9쬅m (NgP IYwgr. kROl %:G-ä136XH+@ Tq sX]|؆KoV L$ ^ =ncC8L~cڒ;1xePYZ{`;YA:gg0w3)a!hp~(z]Tۧ \얾M;Ay-:b/vEyz}>~ sy¹V?SS@g{|ބGWbA:VâV~k?Og-9OW~cs3.{;0tEMb}_4ܨo|?,4s/W`mu?}fr q_[1So8?{ap~'c[ ~{|!?yNnLt"|ϼƏw3,zn9o(}׼><o@ :Yp~؁l5Zc(hs)ު),)aB|YwH2Iߠo6TWy,zp}"l9Q5g8ǬG[(9㾏caBȴ.DΥ``Ez?JY)n0XJG{pUErM,k:7>WцYQ(jps>J=4糪m[ZtcWj, IDAThV8F:PEx;>Iӛ'хP}x .3/|.p]研=z <%92ݳ]̯>D1t{/s<'E[8ޒteRZ0IR cQη fϲA=A*bk?H,D=BU"J@5B nr{u@׽/br4L5Q HQ7udWnTBKĝ'֨%1ILAүt`oAOd[{p ?pR2L9nV&?gP&]Ey$c<'9'?˻VT S&AD8ŗVXBˮy݆V˾~toxo* -s/}Cg'#"KAsnJ1͐Kmo:Wm$% ۖdTCľ[U ReC_3.ZL&xM%_nO֤/LZVHZB}yV&nI!ehlLhS$֚6ϒL%~zD$#uum3N8=Chw?un=S9^zV83q iߣk6OVxRˊ;útԮ`{p?|ߗ>+uޞᅟI3ž7A 8)AyR[3$RDJzLt-L,wi_ҿXdghuVPKFOL.2S\]L7Qyy,Klnn~D^?+u$x&݅!kt:O(nŁav]G6d9"84B?((ӘRH9ΓQb&b#m /͘+=BiJ$wm(D0!ja|/x ̘ri]CJYP%rb;qN]UZGaq5=$|1[Dn*pV7YGw;nWdNu|f`l'k}Ek;Y23%5N%lI,M#A,ũ:wϤk>y}2:jI ̚8Caj cJ͉Aa4._Lo_|ӮawM V(l d]\8ۿi8}Sq9=|K `ƈORh,mheߙ@L *3Vf<-Rh.@: \*_fClyhd)͊1PƂ}AGZ,C#1_?%B?p_Ym7-E{{6 dPTK-)Mqpŀ \4Gd[Vw`n*TdLj l1PM񺍶YUu l˃P҆;epMurV|ޡ5>NG'Ff;g#kOQ׏D9fxD2X{ȟVc.J1ɆU`b?Xn&EֽKGnd$'ev 9#}b"f 0J4=w0szȝ5I(KQTb3~^~L:%<CQQsn\RsՂn=7xz:W^/.^؝r5deE)K{4Jh/Dg.9j$6`"[v~oQJ4cǠbŧn##~.õ Ssca* J+kr)mc./챼鉺<6.0C1c[""sDh!VNͬ6İY^η^_x܃7֘ Bgm!W"ǘQw0i5s[ktd3'Қw>#C 4F$]:/ k ;/SMP3E%yNBk9d++f2ЌB?7+ǯJ@*z]HHl!Ooa"s;c>-yuجK5hQcOdsEy9OhZöde4Hsq[MX7j;BaR9{ȉ,xFY9}3 'f%9DaMyfܨUSkŃ\6% _2n|3h \Wijczb7J݊PcG 12Vs}լ؝%aZRZ~i(ѵEo_GLcT/Cu ̨ *~>jeJo~gg,1rgy¢w™T-oDYazX]xXLuHfoJۏd %z$n~Eݣx#6=z(A 19i)DȬLC XTй WRX Hi$)+Y pvrafT9kS`uvdB0/A'|WmQj΄8'WoqK?x~Wwxm>%r' `w;znofvA2+|ٳ4B_|5:0h"6/y>?qOr9@Kp(=vn<!Kb8Y7><Ȧg^їSQot׶xZlRģqUL6L";뒅&3P'D|?>2ɘ{G${"c.0Ț1(軐mG59O^ܫvpW.LU` vr<C%uGmT+Q/h6^yÁI>1,װYw/:mvX|[Lٺ#v<ܲsϝj&fh`C?$Q;_:5I6$"8 IT@"P2UAQU5[w< {Xc]Z{"R SyQ Z{C2jXǧ |(7}3Qbsu_$I'%-F0)}'/5|8OF,aQ.CwC&(>{*=zVz=DIĀ!Վi,@Wea.k"Q]FLߗ"Q{e#YMq,(a꽊 VPX/ X2ҹF雷pQ鴁ESMT|&?Rw]Jir (`9k$$(0_ctx|@i^"CBa|SIwm66w6%QL9/{$!0!Xl |4줝6Ks ^d`L{bSh:֑#=8E9Z1 (K>ŨL - -S@kz,(m2iاBKy/}IQ594X=m+{%Trط=3{p#9-e0;LdSWҰ'@MW_+«u.vZ6`j><|C_GVr&sE;M|2uQ*)){f<.CG8k:,G꽏:C}<8P8<37Laqћ>|;/' W^w?i{߸ߞQBe0k=o3[u'~CD%?Վ X*=U9ls^ĕ~S1JVp' QHهk$*߳~J<P)uF%by^hɊ S{R" ($ٚ*eBm@f8Rzzi< M"u41Jv1N2& ӒrR}45Dva8YoaTUq{̉>%i5\GM[:xgא^fmb .z#i;,d@uVȾ&8a@CdrEQb3 8EYhq앴(QC27-*gJ!sȽ@0?SN:Xґ-!Z: DM+&;|ɗ1E{ͦƽ*(c3ߟ>{5O9tg},9.+GH)CF!m)'"K҉|=amn:IRGidThH9FTO\Qū'WY3LGGya|8a-=(C,N)="đkz#r^2P6i0}> x'd6,rTgCAZQW%m|c|PB:c6PyZUqN婇Cˠze@{Q@PqO_q@OxW9Tn6qgj:@OK ̵ 6޼t-tm"jw?ZuۯzR*P$ki&c|vFmähaȠ'F" ٦f-^ 3AS+ɨE?+pr,S0~T YoM0B9Re>g8'?WF70b-G+ΰ"I9~>|]KISAOC*lj$%5҆ S(v'tt8wٴOz~g^#M1ߕatVn< J=߽V_s.Oofۙ:-<; 'no"%n|ߩ#mene iF~ O wͭ՗]Yb^ޣ'Ar1a;]4>p\^O}?}Źw݋K3sw>zyx[͇gey`^wEXGF#C\[IV҈PʛȳM%hP$-cpO{|Ja23<EETE=DĶ3=I-- N-ad*)sT*fO0e&dj҄;6%ŝM:⁦6^аF=G2@6CF&S0P4ӶN(-ӚZ'"5zp%ϔ*MYUC)bT"ei8hS.N+10h$LAj>SӰ)==\!' J;~0=nSlb- :7twߍ:`}Bws?AڨklR?${Iȉ4M1}R~Zsob27tMkr8F ?w1H92M=̌2`_Z9GY:}*Vu?5r, sWm xI[Yt-Lں2ZDnn W'[z]ߺR l;{𜕟mhu/?gSRId.: Xfszg+ ⹿}C_ [I>OyY3d>ަ0>wpRPJlrcfamT2PH*,Ӷ#ϤXby JeDy,4% %BƜA _p҉ҎML#B2k֏%ff[O.[K\%H`akpYMPèECwi;|dXqn+h#$6. Iqz';M%ɪ,Zfg ƪM8ƏTЪȍ.-qFVkjY‚JV#f& Ctqк"T l|H!O20攖j$2So EqLJ_BɆf Q[̂Oup`3|֦x ժAxҳKR\Mt@n&ꄮ* %6oP)Ake+P%-,!3lRpcL#tI"G0zRM"\kNpCoה,C` Xq=$grr)f^ ~ MYf˟u.6p0NXv4]Q\8'"_odxHo?Ͼ Ti!PHx8&B`i&s#hbɢ~~G f2L&i ʢe <7h INaif<_ zL]Z`Z pg).|T$!r"I!fI? @DA6IcHI͔W6%T|()9eYmGUbD5ƥlP$]HǤS&KHP©WmsdX c7ܵ84t ,`x?2M/I{FH&\6#Bo>N=@iԼ}DBleEuörtwHFk@+YM`$ba_| 8wW0kk)$y8[lbgn9K&[ICk~xW[cH'"S$Sxџ|)-x}٧H#ZϱQLSv $=4dq.JfRpؐS%@wƑOcT(}  ~(MR~9/Fi>xlj StY+yу7WԋxKآKt %:^W ;UY%( Nu!}/QZר2џE5]JNjmtQarO ā QäBБ}/09eÍcltfO>z(1f6~*r{ S,Wҝ_D!c?)s=sh.B &cD;JN&KU:EFTY4Y5h C"DQ dp'l+XTS9`gQ ð^^"Lۚ:,}MC 3})_bJR*DC;Q@Mr%߼]nO{/݃K#p݃f&3oDVxeguϿ4Ƒ>vZWq#pP z .Io)- BS zBHgޅ+5f+N9lG!+w׸ ℓ֝^G_^m-+b[#H"s>)Rj #ڙ &hdzȽ}\3{B9\J1ӋY؀_JT2T!?#o)w2VH9B٤Jo *3fl$,#e:&ͤ|AR3"*5$_2628d Z`w7- 'D:f.2=~Xi*fcȈ̑NGUU>b)Ś&t&BabrThJ7 PtؖRJQʮƞAAT5|^n2<@LǞʪ/ ISz8 ҉DVeH9wt &^&QED D!Lm;•oQS2VMFr.jhV^ıMp$ֿ*]? 1!`:9kʬpR1K3ʛ @aUi527<Ĩ(QUD51̃-D:-*<ET^3cT*@"'r/KD6bhlSSؼ'"R6 BDql GVdɸFbйGU N""fX5I^B@5Ѵ7`I c04cPs(K;EhvGI^ie^Xaief#թ%yBX֤xAۄfHbS kQk>^\`D#.~lM i5Kp_h9kJ԰> >*Jلbޏd/E#ȡ_3u:Rt>q|zm<)qdr\ϑ3 RAܮG+%r{oȑ vQ"/c8ZmA:(C81mX9ІdT^rSgJJ<8Df"JqZ{}ց,\0z(i1Iԫ&jmf qH?-iY}j==H:$ h4SC1q8azvw=*Ii.DRL5-8+Q|9#"NUEFmr3~.?\,04Vas4Fz@'<PSaմ?)dd"rJfV +53k Z_`>8 $cUE(mgbg+2NGgf#(FD`z>t$Zz/A9Ӣv֊f}t 9JZhMouR-8nFE4QiZQk/lH 0T_95TLgG]mQ M *2PuShK),gFh@QcMe5Ej v/}xn;T5E.b ͒KqTc)Gb $Ɖsib`iUYwdD0I|kb4 Nٸdza=nbc+#wϦe҅qМlm$IM_5_X`>;A[4ŘټiM%|dW B"ͮH J <1t Z̅ZyVN;1&6Lg!%=D:6Qc~OFҝҦA`_ ߓRȄbC n_YqR >5*Hä[<gAB$ߩ٣hV)I%U),K*fϷa0Mq %֗2~'fvC8rsTR2RU:?-9Q;#̵yB"DZ88Ed%q 4n3;f(B6ثAu FW+U@Y8&._G؇e8!dMJ T!_ #p,К\?K"p+F4tr=ZS5^A, =Gep")ƼGm9Zb}+e&jNTO(bTA{1*U)cq5&R!%`yfb(^NOћ g8's* HP!}EG-]V0Q\y$6]Zg;P)$ݩFݺYI#kyd#k5bkwu${ 5.QHig_bd'YXe2*GNav&'*Zc>n4deHME&m6ccDDz0[E8?(KzS5{q3*9.KMBUp8BqV=3prRC)4}g[Q]gAOPZZ@{}i:M(OhƷd| ac8w*j,8[tm*4pl72b棥.*'3 YaSwT16Rb\UQ0OLt ZS ԙfZCE w*X+ailҽ 's~ktS nbطc\ҹV zz 9y[Aca!Š?C:U9kQFj{xV*2>Y4:Nf/L4"ɥY`&p!pCC^|~Z3Q38zO:5 U&uQ˛~'dl*?>snRθ$ +{F0|e=iM5Ff:=Ų[f1@!SX.T禪x:F3y:.s":b*2UU6*"_YsLoƲC%Z)GԦdIac#< ufec%cHxlQY(A15׍LuZa_>ed6>2Dߣr4Mϖiy!ITQkD=M=c{LQ.3Űon9jYTށ==: J1i&>.װKHFq׎_^B:d8af/ *A _Y\Na 4qBӵ KNVXa.$odWycץVЎ|!Nyܳ.vCҝbmiLk%9TU:#d9Lfܗ eSR3FaUf# SDocJ/juHdמT漿Qasӷݼ`8wHrQdlphue_EffYJLl}4$pT6_:qo& dj9KG ",ʢD9)5JH_17$/ï6(mHk\ IDATijmb0c!ǚs֖nb+ rj8YbQ)%)g#|.+H,N-6-M31x* 4/{)%-fPLE|mTU?M5%J-aU5قk-k; фl0Y!Dl)h>1}K=&>)+X2Q@aVi4Fbȗ(rO$s0Y#sBGX-YZ | ܗa4#QR&v|w LϑWU->&W $]%%,nDR3kn@$pJU BN"czg]iI I'&YpjqD+}!bif0\-!#mA{͖3lV&g.'y#EP5-rUYɇu$ˋz-+l;q`>8\ RlUw@Gv3AQs(-yѢŤɻ&"D.7gZh2ArbQTnB<6b`167F\1% 5WTQKr›>Xݧg8Is$c2&8e@WIty5H6HVs %ve$ms^7}^GkPGraqHGgg|=^~Q(B6"şMe?oZa&\NaXySOȸQĠF<,=[AbG80~-'D2J5J.3#B~EU9u4eELm7OL/ !CkjXǁ?{|x" =:J[|"Ae:xssW 730Snj| Ի`(PkJ.2EL:lS 7z6l9Q±狨^ ge˵(o&V&P"^uh)?Gb`ҍ>54y)H) 3;Qhbwc3meEHG83m >~Te#)Z,CN’ y渕*mz#0%[wB^bH{~1] [mbO0p.slhd1 Vn+$8B 2Vΐf`e/3T5Ǔ$|q_Yo9racsVHV[c p8RU-E1!nn3҉i!vsFЯb^0(L= Cf \T}Y l2wvQgfY}*^o|kxTShƧcukFA GE=y3i䉆?rÅ[! Q3'[]H:ӯv'"0 !M=/sQ1X?UL[n&Xk-A7iW!I Q&NJHk;H&xJYrȓEib)'<%Ke2ϡ~vq{X )Z^^qWG6ǜaȨtvKΜEg8)gB`(r?`iz\ϴLDR%zrhČC5?t b Gu$i蜴 x-(]p'tP/2a8LI{vC( &Gq1ACr:kIW<Y{;6DSþJUbc3H6Sɦ4ڬ(mklQ \#klgFw8@9 Ⱥ;@ѥ$aM6FKGh5c{DsI5M[n 7Ba9lJg_rn?MZ[qİ ؀x5nzkO"q=qpy_Z#oz!8(x5_eoyL=[LSςL/ll7n\`e5vC[V)T ;yy%YtTRڕd)mvIaj5: a $<`iAs6NKqO]7_} WcGxhϿdEH$YcꜦg?l(iq-D<$!Hǎ4a_K%!0u.}g3(.)޼G15O.k CR 9 L2-^[On ,&K/'6bOK:uZqx0P]>=nBbը^M贏:n.S&A sg6!Qt|4lcAJDi `m6mxLT(lAACDőRCF.B0ը~1^lX'Nf_0Q؟%V:ݓyOUU:MFSL/jJ t#&ߚӡ:~[ͼ,qzU7M`RJkו$%)5Rsu'ؤo<5} ϲt6SPK`Ma-Fݿ[hR礨01Q C cIY64YuOw"]_ u|_g/6bGD;/ߩ`7vr:xclpk^7`8NݰIN`GY!Abr4̻, ה>ldHZX̼v;ۊ7_-S|=bV GFU!Epz "b&I{ƕ*oo|·/]t7VF~Ŀ_lo5J$զ䥚8~@rB)AoH/?J$L}jb;qOgn $$|臊a#u +IdB.sְR.h)EYU}b$8D`s7M*| $/(EtJ(;iTYhp:Joro8x N?̊+I`ia 1{/jÉ8` gzI{е=XCxFYR+)?L_;^Qp3}̤2>.#Trwٔ dC2* u䠽ϕ5 JrfՀB% lnAb Bt= .gy)N4K!ǀ4drʗKVLNr+W[\Y) 56oiKo2R8C@) )9B 1\;紤k 6m=e6a r\a\F.{5b"wPF-qD#8?Pi#~DK0/?y B{9㥥fQh~4 F3;hO&pD,4<[m21(4 90 +aRːeijs^H6Q-QJqgNL㎝~nX/ӛF'LgI!LRl9KNV1s4T VQH~H֣5a"-hЛvRIFUѴQ tJqA(ͣs] KYkۼdWH*#1>CƿН*s/xs=%U@=/t(j6N5q]w!c|=5axlZ*<NSAd҉F{;:tz3 ǚ4Jp"^AD%ʄ̠ނ^Bfƚ LȐS?+@SYˍ:foE.xګSg7ӇOh0E (mkԓYg.} @eCvorS>A_NӦ|z <9z!aPi׸1mZJL(ٟ<ڷR4š3@ zw׶)QDXͿd30Nq(O뤉qL֞lR݉Vxb>8bXĉÖg`yN5a#mWE[_$}+Oj^~ym37>N9}y;+c7f;QUfsk|bٓY-]#Ud6n]UcR~6KՓP9>2d}f`nX{MX ܰccNgGF~TǑFiqkY$%eɸ) *oS%ΕNxB]ԁL/u]).LO3Ca0JYFƙ|ȉ @RiƬf*Did#` mfCFø!J>\I'CzZcTU @I7QAn RLHPSar4Ɉx*08R ^-y(ͣwSrJ̡%qqRcK 9_!! sx9Lqt!J\ȡi[Di!('d|=UQQ M?E?K%KX` 9KPKq e^0%Q%)҉bc#q9!1ܸa/MA%nYI9[ 9yk|9X|nd(=pj=qi 5d5L/9dDžodǽ&,ibhi%@V"Wus"׹l4We- ¡+UDqc<i(9/msuz ~?~Iμo٢v4ГBU -$=zJ`|ڲJR3e dQWEfjJoL':tg ZJY C+%ljecJ=ĥt:kUfw?y?7f0@ :@5'b4xy8]g!rכ#}4@@v:xˏ<;o8;S%mŵ:g2>?}XFl/RDo.{'֪M"}C햩6>K/w[ 쟿 w7?/3M y6K೸Y;L o},!N0[~B/p+6Mwgf |Glj\?r\z)?{}^buWⲳ6kɷҹn|͐-tl#tQj4+4 ?,.:c#tqѩk2 \mLpaZ1Rڌa/u}X;B}4R~AfAe%IAԫgљwQ zfGv niɵZfɗ5(J;¥TPg͜Ҫ8obl5 o[B9Za 7ġ ]V壘n_PAbv]}7&N;u[PZ)Cl`T @X)uHı6KB rytfI A*KсCLLPl̏Aþ5 K fNŠ0fQ 8 g QZ9fHFC>\8jŠK<)нWZBL: axb0 o^l޲dȓFv܉D0ia:Trˬyq{̉ԥ4:Txj'dV7>Cz#: 9_F9J#5VT:ū5 T$%ۆB$]ol#' a"#Hw3{MUaC h~W9\ѣ$Ihc~yo^{q׵:9`iy}_k;RߊazÐ!Pha>AY׽ؼfyspgPuxɶW<tucʧCaắ~~/(_}~bl|v#qxqN=$8 +9~o?4=~Ywy ֨ o}6aȵ2=Ab72|//ī0RQ~}sd y0Vf B3R(| Wa˚.>7Ƕ3?R<Ե/kp)"3#^᛾n|6s=l 2ŰgFCgiRk9Kww g݋ѲewsgOܺX7ƛ_x1-//~(+e1oDnΥ?+~ fÈB'84.?_˲ I%yZF1}ZN1$ hORINgX&&gT6D1Z:UY2L6!oLOw: XQ<{ǐNE2FӻjbeD(b 6gب1_O5`]i`/GQ IDAT IJ Ktɵ4tT7M5k=&P}㧙¦@ƌF"tm4N" 0o̦בz. ?SۛV00e$G-hZؤ3EkfٙÈ6}ga$E(q⃲UY %#%_˚Oj DuiM;Tg{[/y$BN7 D3JmDpUPSG=EQ_FhwϼB`B3ڹ[O=Is'+"ر㸁W t0|"ʾi +}͵–R0h!hI1SY> @ dmG3D e6yⱡgAAS0BXCM\Wg]ƊPy!1tt bbre.s—p}ZBvXhT¹ph6Ը{h,hMa XBxl8 e*UdF`#X{<[ퟪ=_Ko=}A`F1Qـ9L<:\|  0rMRH{[SoiX6pO6P?UŴk6$JaMde<I$3#7ז* 9d"CTu{P38/"ʯZF{FLŶ) JA%~yk뾌{*[ߏx竞evUg?m#}x'[wo^̳;wiop[gq߁Ua I}2l +J謮9VFKqcs&B?&-]G)a0[GބgD ~ⲭ8w_| w?P =<}]>zF3/&٦enă"|s!+wZĞٞSn߫DĈǾ~?.ز?zim{bxozE~xFg+ÝX&)~eW>UT8o+}x܂[xLIqw蛸/‹y&=q]7E;l#9ǸϠrp+{48 (Aho=k.97)5sli qj% z2.NQʼn+'@C9ZP2kRrbuy))=b0ßfB֫ʕ)lG&P|d7%pjpZ1-+ r\wC1*+hۂlye*;th<8Wx>L^҉i KȘѥHtONhE f^@d(cI;l~Nj}(p4t'z_@CkjF}A f.rNQTq]nָp C.|u׸k hT+~,E9 h3a?$Z/LzP8TjӌZhńTP:Q YÀPx'k4"8zRr)(;dʎH ֜)wrCnBX{;J[4qg\ONMCN״F9c<֘5-ǎ~.BCX{RzCe8^?If'ӕP)n9/khbx/~>>)j_Ǐ?<@fb},i0'X+Ed;g|$=k$p!c=ED6Y4Ar)CUO:&pA,QyZSM@ F,^9@4m0u9gvQU; pQR*Ͽ`+.gf[N5h,-k\:aRGNo2!Oy0Ućm?ܳIm3 UHckVR;Rыk=!y|pV-9tNzNTR]yfV~^gT,6mbdS)#ț%#,k-C t C(g!Wց+kqassXnN| "//1C!A"ݰZ g:(錿v"2S Iͣ;Z6tW?^ 0l h/'sH3Y볚DcʀRO׈ $;Jџci^,ŋcB\y&kX4 Iʌ2`qֆ}/7废<_{._~~"pYm:cNE[@9ԓg=>DĨ>hf#*1yfQj뗥MZE4h.hM9s8q8A z:Qah!"[SQ9o93*"@UR,Eʦ&<`0m5Ȍg?~ ܳoVj3ak'nޙEՐ<{UPcU8bSXs^C 2is\a 5OAws?ֵ]ܳwapbfv 5rpFުRZiLf Wa>w|& y$jv;jV̵/ G8m sM'nOek_Ug$ATe#K}#O5-x'>1}$hq{&t7DQKS*$ؑ9Ay5Gъ՗w话RXBe\I8 ld.b˴T7j b@*۶SǹGIw bsF9" S9/BO]!jB+BmQs`Ggrc cb>0XTU7|zhDf[]А0T;l!IQΤ%ߟٲk80S& ?84PEӫQ Ӥ0)k #_iF7Y%^9,)|N`aNܴ;Qbx|.'sO0rz^=6-6k>@n +Pa0XOB D-LzB7:)}ReZG:,*jyX9=\6g?AG>{/}YT" Y񙙒$86pP C},eVƛ9 6Cg36嬊F4I\e\RHHd{җu ^0ĞݻO8Sļ, yg#)qm2=_, /gh,pe,~x)Ĕ֏S q{L얛-c%x5e6@Ⱥ\ߌ 8[ $0y@q~-I2?Iզt>C2iXE#{ƘCӦ\ М-a^,QKpK^W|ÿ،g.`/B149,ށGvF,$*b9. z=z|XnSk/.Yl=\$;)F/[2*2"QUg)=gW9)K.yOkzD4ɠ^x)whw4 =?-'Vϼ}bNF1nN[?wF+ך•h4)3iqCյ*伧'hbY8 W!i8kzvzNy)ŚL"hRgpqigmg&ؾ￳C鶱& ^~|#KJsLHf3SСjlň!_IU5}4> oEPɔS ĉex i< _VBn $10Z닛tE(ѭ-$1.u]rg5bWطIIs'Q2qt,YWCFæ3M|8ņx&tK6N K8 (qP_owq Cc=450ȁY}jh-@OPY :I?;^:٧3 {D6TT ؈%LEFQ[MD%P!4Hfoo=c;^9 i{ c\)%]Yg$-:C-͠hX; p6]NF OSVvgk[ݽVkf{fJao2:Y>D&.-2L]R@ŢddFl}Y1njAz P@9.'\*sl@#JmO=YZ1PќKoza+o9 g=f>q)x)xe/>fp=v-p]z8Sblk?i 'f(fj H.{~v=*6>k;D]~Xc _,}m3G^ \uz}mf:UJ "i$PQz{S{6cp~C8n>8C}U+fVvFu5fQ&N=h\rC @.z<@<c5_v~|8T&Ț-1 _k]|׉6L8FQ~FM ZABYjnifiC # &|3l+FֻD#}),ZDG& {^ibr[עe $Fkz>⠇`jQW/AuhIH -d#( ,Q/2ha/IȨ"SV dQ] P-40-;}efRJ73+e:9H C`g\lLЦ<dR$Ix`3"I oIqS%_RH iy~F?t )t]EOEB@VA()LQ oQ{2N: )n{A~1` v'1^[(w$1c"ܤۃLd#d)i{)R[AvK6JH 5XYBM t"u&po^w̋\|%}vT3ݱ]^}=]Ų͋Ex#R\- \9V) *trlJnŵ}̎XsdQxޏ-~i@y5il5I8pBOz6Hcx[d9uyչQPfl){8gs!PV7  c #\{$1pR8MO6~xɇ',C$8Oل^vɉ'q[g%EdC%3E{X0B$ A8q6M1vq~a67?𲬉G j#AĮqc,C1o݀7~8^}ҁX0I|'?A'~x+c7: vM׮Ž6>~E،r4^t,&: rhu d$ ¸]iG0@ _/8~AX0XݓO^ݳJ asIgzL,u? \ t ^vAw=v/DgwkN9Y/SN_?Zcb^ #PyxKw=5|sr+T:cQzr~}slmQI`|=XIv"G6#qCb8Ϙ5i[|dqmӬ$;ZCJS1FzDeטV7_tَ h؈…w IDAT%x?>3Nnjs#6ѷp)-6(["h[b,ˬyӨ*{-,>1JQ;ׯmwlZ!h0[4,S1$DCϨAFJdڤ^msPFo.w3[E3sFv_?as*ޫ5xJyz? R9..Z!+=z"OR_%k E5۬PӖ!$RW­Yq73a 逭:lEĈfK7+GT{+Hh6&6<:M=߻eg_:}1p/;B( W r`ֹ[CtγJuAu6tNa72_9!mik=htGk#lM lMuw/;Z;뽠5J,w0ƀŤq+U+lR``XXӘi}+JH;H >kXȹuEI-g5ijtdjEԠsq\&vc{/}oצ[STgC8ThcRE؞]fؚݬs $fkٰ@#CEbijDf0{<+s4GX"I ~IE(e9;NgN~*{Z3YDIb*,gitڳxk(^j>y!&]e59g&Tq}-PAe`#K5RS_Qi ڒnd ^ BL^a3Wx,EdPxY.\Vsg.¿e7ut06i"Zs| 4MYg":6;>4SQh]q=j Zѷp)4Wk lOق"qfn\,}.ڿ)֥iuiVk:02^݅ƒzb߹.) !FQh"!#TgiN8:hn{ :4pǧlswݫ+/ЛAm" MC%̢XH(f.Ĝt`ń?̃|G:yڇWX#B[]{#uB6l%L9wپ- Tt2Tg9ڝG$#"wLj=A1-UM(A*;`f|oҜ731HkR A͐MiFC)[VSߞ݉3g1'X3#EYΡflu@e. *$Y1*P)vNp-)o2x,9$NYՌMmS]+2Yh>dW;- bi_I]ςވQzPNu0(N&3BunIWá^xA8DϾ;y?7~UD6&@}޾Κ<)ރNSzh*hD[ݸPcW̰t 8Nb<%\6"MOQ6RDKwJSi5K ErҜ/R;$ P_%5-4Y̎60X:!, ]T$O&VQT2- )O@qER+_{r!6[BrmͲX9%MbДe#fRHC]t^Y}i߇ݎ{b$1G3WwTn53J\ho/_Y}iG߻nxt̉?R>5@)l, $HS<'nV~w0{X>ı,.|. bK,r>wG RJ<@'/%վ6&H,?J1I2_ÀIKChLi܆c\&GѷhY2Ӳ m(S[Ɯf[@GꦙsgnkW\$er^/4XTw+ff|ؚ\,y;ݑm0q5 3ճ?tA>;77Cˎc$,d%$jb>:v e^ Ni|SkӜ]/RI?Q4^ uO_|8(u yƈhUcj'\\(x EN&gf,A=γWdy} B V0oY)"CSq$qY9OH==O>ㅸsoQky]@O7[n! 1涵h܈eGF`:b\J&idƶܺ~48刽ޝD.廐wt9ǜgr2~x ںHl:8j7=?QS)u׊)qJXZ8GXOS$[}ٮ8Nh79Tu~w%z=S,$֎KdeJ̯8BNNf|ZZqcMrdCc(=Ҫ-dl-4@kM63XcġRR0+Q"㼌Fwc?-45I8*Dos~:$]YOפHpx~PA4m3+Kya߽JFoi8x KK-aĨzEgTЬc#G]0IbJI1X3BvK"-$"YAoWXϛ9N79f&u K A*eF`qe5MB=VT^ho2z|dOEwp Q9 аr>njHGTGz`ypA$sD _Y1wG j9M3$ewT 3lk P4׭DorD9:&6<95?|׭ WuP RGQJ{ּW hj [Xm^8FDuB Ԧ4=o( F'{@٢@K(\&=n>SH %(4H#%e-{t®'B9?mwzS7/8{ɫ.mSM`U[6ږۄ%E'jyF o)-JT+K6^ {O -tlpHujiH:|$ HOY*9P)^QEvb{uanC}-dYiJh>zVAt3v1XnhS؞ʮٺF`DO{ڝmF" X[ؙ@ySYV%bt+LH(60J1ʱm{ ]Zyi=F β(o A%IfeҸZ-RN OtV.IXٸo8րpLA&&3h̃A!JFϟ!NL"FlQb?kފ"*@s[X d1KM<+&q 0lz>(A$)cɌ14i Ev1}x1}5K{^F%pvkD va[\ fh1ȖE0B!vYh 7iҰw}'j*s3DMKkԖG1n-mg? Ō<_ڜE`Z;ֳ=LG0 -*n% V-o/VB>l{mo>of& "PT> X624&t##%{ RC.Ke/ 9LRp&zns,CVh@%b^b@0қ86Tw4SXj *̵ḇ\ëWȸw?$Mf Tٱ:ZH] D$ ,j}̄cH&DPeO G>ѰbH2X=~6߿ۆ?.u'?9uK@R4f+I3Ċ:,AEWkX䦇1tk< ǯaibϞ{W>>G SR5,6?b\e ouuN ^Q@ͻ~P#(ιNI[r--}{+}qp[ƽQP20Ib ;p\nEMc5vfBKo"_:1dQس KXq#b,*'Q%VƖJMJmDejpF"{"V/E4ʢX18[KB_8\tliƆ,]5Ǔ -9GX 3'sE3Tk;ڤsb#j$ tО*˜Uy~Ab c@;NXXZW«[ e0h`VM4-cqF%l;{} ֋Ż%%&)72Oez0l5c٤e"ݶeVߵR6΢מILZ#Ref~lAV7~lt>wW'^vb_wfW1?4 ,m@-S]`bAwr`L4:WVH9 {Һ:*2Z T j>8qmef_9N"hGf0] .}9svb910\lI(y?h4(WI>+7DZnBc~oAqaӦ@0*\Ge]üuQ$h>߉N[ȬM:QXM$ yKY`-d='SJJwO:ݑmAN<ds C.єnfrQ6ibY|imt\"'-1-sSܥiũwc|}lC8598w6ߨ.>S]7/8kD=܋o,F5FVVC‚5F XbQbկf5E,K u\l0JD "b1њ'y@W7an4qs@_Nm9gS C\򱗊5`ZV |ҟ%t^j(%A#9nL+yU[mp1M+V1j=F"Bk+NcƲl76i*92OBq,r|zc5lP<;!Xp|1. HʵQ`8 &r =W:`Ɓ42ƌpurr1"+"l&>AhH6! zT}-ZRM]0REָbj;*4`Ti(%@]d!m=:Mtv`ٺwrj,9?T|sL7Sƪ)bN*J^)Iϴ(X H;i箤e&e1 Be4, ړ<ʉ4ܑV%D'YRrAJF ρ@$oع@meT8.TWT I2C$FJX;nj|@b2Uԙ%ynfxT*fT'APu&TD0Mجqo]Eq1jYD00dUi/5 iuru߾ȩLr%r'=2a6N/BR.bI|V29C=&mh#ӒN,* &G1!ckFhڄ$pn>t߫k{^'x\SϺU' ::[݇ƪk5 zeN q4VYq S%1j]d!V|!YpЬ5>˹fPE_ijw@P`֢'sY{¸hw^Rkp Cs-'j4p-q ~ , VKd4Hk.I>s#&eЎW HGR!cp-nɪPhR"mjQ b؜Kyu_hG#K޲b z|ګ6xG0H@$)ygYG / CD6x4YJ"]@Ͱb@¾?g{K Wti_5phAQ`; I {|/TMA(օ3ii"0Ox,Ow8^GNP:3<)֓f!N9ZlCzjYhL (G^OIͮky$QnL9cHg_o$Sw|)SԦtW͠^d6~z Tq \nj&MU5~ zce4-cǫk rC6+'Wj6qmLşԼ9f‘ ;ͮD*i0 ("QL#.9A.#-Ur⡁>xN%+n,b:HHJk~՞A]/`dQg1o1Gyvc@(0<2VJ)`lbbx`$yм) IDATR֟W[BֳLDcy{~ ʹ[S5pT&4II&%a7[dJ}i\)N㞁Ҝ@yz$.xbz s?8yA^SLb?%nj]0XrakFbp| 0厄?Xi!8p &8>L60ALn\VwVb˷4`kb~֦[7Q s0[[_RfI~QSϝdWx]AȥV;/ SP`ja{Jocn.DFj |CkE=̀3(@nF72\{Q~X}-ڽƠD!N9:ã~JB0*a=_7d@h| h UJ %`O/sBٌ nVM{ٕ,jRݖs}\(`6`,ÂNUI~9V&-Z3W$"6)Fm>lśw,WԳZSVnNgBZiDQm$v32.~GM\a?2%DZZa&z]#"?Rs<1x$QbxA g:6}=?ڟ? )mp=~nt"MRGm"Td I 懣QlRu+ NpbNysTu: D6RL.v.xS\80Jw&9ܒxo*[rFY2q SkģmJE%iD϶ۖV*m5F1qI04G7D$3;&ž\ Q.Rr]qn0&HXa-_q+I9ڸgw%?7N ,:M3[`y$PShQB5; 9xx~k9}CP`d;z?|^k{ _ًyڱ&FxRGf^#@|$Fy09ڜEHL׉5]n7\gpCF5V1(gz=(q5擹K䦇(ԥtVrѿt%xv%u_r1#K f'= 4ԢʋEfqU""!4)υM#Xlڊ_"8%f-䱰V$ńG`:9 8@ͨ<ʿǒaC^ l/0PM<;@,@-s%\c3{CL/BA)Mo!fpmI&t#m?P7 kt~4Cֺ=ҝGXYr9.ƊW)T\KT./(qsN,jTցV49^!\-$F0922 Q{(!vn/xn cO9VΟtvoF05K]Q,A\;O}foZx I@*u /P>Q ='BNZk6$ tǫ 2/hDž;i4ۓU2Ϡlg "OJpyq׵>N#N44͵|4EbΝG[h3]*fTX$pn$A:湭ro} 6m܈)J8~C|@bއ87ݛ4#,M޽Ks7wo]]Oԝ8o~?D&z Ľz?:ߠi'ҚNS8Vs&c^ߎ5%I-@@Fw FHj ?0IGoHwJ-)dhkȇ ># $Y,3Ҙj2&[EƅNdh*ȎeM\ܐAcT'{.1#It*U0?vBa%15䝣dl.- +M כݥuFI ؓ0-`i`&n4ya>XiR)m0x'yAGۓv6dLƄ,ƌ'#]m$BK5ċ4'Y< ;V Sv Jf`dZ7Đ<' v'ʏƒa)e iaPQ_jQvS[+k_[ԛsoɥ}jˣ[BJ4j 怘is3 vQrX Hl]u`4둇^YqQclXVeXfb!pF*ifA)x}]k3HФB=#7@k笳! R@"c2ѱ1LcܹOݻtfLT)U> [w YlNZ&˛˿KDrHLAVY%INf%hΖ,f, }ɉlȥ݉cpCuV9_U(` )޹́aU@R苀T#su5t5~@G&zOM@t.“/X@=nkWރ5@C11oic 0Rbk{;uE>JYg$Xc !϶(dcŬh8}#3HcU wƔyƬK٩:c<_\dZ8 5ؑhj?װ/y!gIߑV1rPeM#qI{R|gc? [ZrIX PgdHe+8HhW/<K jU\W7ޏUhTkv@98b9 #қTWX*p3ųm7ׯTowo+BV=#Gs x-QH i%I@?5 rM?8˭9%xԂcW4 ZGCa&"f7!͜ ! @3ai}#)+Ni#Xqdr6T45bnΣ7S[E[; V?/ZPEc:A-MT6gM j*]MWgǯZKx.)J@IqE?иX_2E"-! U;Mb5&Ni*Q%%=D%yFր;\\bE.HZ'r{ MM+yx>|F&uIs5/xs}Z "=o~Z1IňVgI'P|o CzsQH[7ZFE\3.@"wrmg'p,?{^sn`juRz瀞)e2f(2qܭec>ɀksq#R4`hQxz=EG?QxlX;|ͽXsuŁfS!{.9 '9+X&xN?}b|/ksLP[o߀4IpAm>ݲZcx7~L'X7^Up1KW~JLv2fዏY 8U8|9G%s1 [O^$qKׯ8g*p``v W߅6@xHLuSp=eӈ*6eܓnƭl! TlkHce ?$ n؜i;z4(BJX2]VXZI9 5_l0pLa08 Ӯ<_ʺRLY nf;|q+ߌ^ 7^԰0>>xo}q 9st3 qoZ  NX<![AiL6VSY^M+XVfoi[FY5,H <}q=3ʔ 9*O1 ubgB&6*ujv""=,yty9O3τ $F"qF/&GR?/{Wxf{wl:(L7 @I^G@{VrL0MsvǢNSפIz;Y`*xw{I\Sct;Q䈦VY}6{w.(MXNGnx,WL [dguu)ӵ}3ͮ!a'^HAуRh*Hv1tmi] n;x+u+1z#𪛡\ak mɼdd5 ՔQmB]k<dL3@-!HrAyrn%ZZmZ 4UL<װx IDATګ:t|+ Nkb[6Ž!3?wu]\z( cf uV@ͬV ]ړJ8) lI#LJ^QyZ⛢!lO:d˓g܏\Au!##-}҂YW_r 8js1̫*19,'mFZݼպ%4Lg'fLm!lO! wn@ؚ@؞b*%I1?zso۟u:ڻ 7},(oA^c &_cP'uGRgvJ) *~6T^V,Ĺ'^z~v[>e?Kqa6vOrmX?,];` DvM97Ĝ xwnm~u8qtߎ1;G'<,[;nu Rh6(clB$X8TGp²}6l4YHh&8íwK߿uupɛϰ~Wo-WAx7?oxΡ8ԃq aX5*\ vGk=`spٍfDtf nZk QL4vO,q٫5JQۅEIk篜S-O}TROy@Z2R]x/aalt}6v4]2Kfs 70sdIw[v+V)vb]`W(և54zgFfS[Egf]#:u_0O{:+WtUW0C|.sbDS/g߫=-U<]Ko0~G7~f;L/B5g\Ȳ@\qv\ˏ4(7bRJ7;RO~JfD>+~ ,d#N/s !qP׷EFyCM);8v?l,'1;iy9M+6Q1`=?c 8S;0kQ^g$ MsnO܋7=i6 Oa}4 'py(3u3M pW\C$1C 9n I\W[A#HhNm%hv~]ֆSmc-3{KƂ.]kOC``G VoOxc1aDE䗯kvNX4s?+Ko huٟށ ^sxc^o\ʾlX lv Q`Kmk{0O bERc hxPUt1MEoaIMdxg0zOP_+e]+u, $$ IƸԘa_ׅJܬfrcW܃4N~$?N( ?穻݁.-Z1o_TgC'x32'ןY%7ھB09<ݴSzm~YdzoAi" raScl60gN틟Yr剃w#,D` ;GR'U̘g3V2M4u1?ʁTNʀB,9'uLy<kEKqLfNhSi+ݵ~%Υ1wKنݓ Ɛt dL$1T! خb#H`e r4 f榑& py>myb_7o)oou2M(GȶQ}m| ]g={H^ `D_J /<q865+7L7XMդicX waꚚU T_%JkHQh3c((Iij3I%3Mb(*KD!7 JR1gr\ Cd5:%Ԉv 2y VqFʠ1\ə(eG(]RsŭnE0 S&99;?}~Ok/I4Q(Gkz=;g @}|mHtRBg59 D[SUitDqΒۅnh-ZW(;hQ7GѦ1/^_¶ϵ6tp-mN.I(*Fj(_łűQTZS$&PSfI9UN{zB@=_̈ev@y1ٻٻ._9_|Ž[-in]b=&ޣ{c%H-a{$M D@kXʬ+%GF͜0m qoxmKV9G$ $B4*d3H2/)>)9zN6G-Mq:1$wEi$I;ԹL\26)WrV LN5pUC(4E3 IBőNʞ,r@rUwO`]ĺ8l!axw[nj1~%1h67LlSWގ?=`-Q_ ( /^/tXB- PЂ!&6x*_J]-6u\^r"~31H p?.y~+YY˭Hh]%4EXDfísg.+fH/4SEkpOvѻz?㢽{ fx{՟>7*8_L']to28ƀ.\8EF`oω:-oIn- >4L}#56BGb=5Rޅ';:JPFwMRRT:tL>lQC%r$X$LO:ro`QR~[rdM0C(br:ޱ;w0^Vylظ (U~}Q5M\o 8"u xM(̒4NKM>j71):֜%8'4RԀ##2"͛J'uoL%oO昞!m o 0sI#nH%V㚄]-qx~Z@uB (js,%GF{Wc&#X/z`7[ lN M5y8lMiq$x4 3⠓͓{Zr ]ŸCυD-;e5~N*Q^er )? )^VC|,w`%@I)H@Vw݁WuᰫkV|֍`X`_G c ҅ˆ:2o'a~ fS.Gš8.:yGCˎBkzD&;Kh#}61wHU7rk:[RE;%`np; JU7O50Ew[Hu?xr 6\m7dZ}}?oշfkFf/@>+4%RN!-P(,Qlū$ڿ*JB%=kw7[$R.B3`:7?w~NZ?{ uIԑaV af_ƾfb=i@ y1'94C)qs]b8Cxs[,a K!!l\D|]0F>ns VR ###xSM\]6eUD"?xT9uEs$,[}A̾ "C=Z>(N{f}e`ݐIO.?vUK4jwvu aRWgF%X"~(! oCˎVDUCތq%_ e+}gMv˪󰵇s}Lh$@jh"P PYY(vTc[Udl9 )#qG \ࠄTF  ͠w8cZ6]|]ugkg=y>onvM),ȟ_a؞__c S8s0cΏoO罅D|xޭ_R= -4UW *1#Ȣ88ǀ.ZNtP`6QQߟj X*Gd2aDDGJ{;hJO| ? {Ev^?}kG<6pCo1plė /wwo~xʥ?y:ܪX:Y႞uCPjOThn5Rãj9p})t B|TN }jgA;SO0[x͗uMpzx?g ? 9;w1p +^oR`^YpmS/y m|ckG mSҞy%\;ٽ[ka؝ڃ}O6Kvaw1)>~]qT!|/3wCv'_d/槳<7mMU;yl6bl8rL$  P*ђBo=sHʶַ jtD*@!v9YtU_OɎd_ ڢd{y k^_bm y{7]y-,km2 fH;j]0HkΑ$&` CP0}/!+,1 fڒEȝ_K=oą,_u*cKUڧ$b ȱ.c]I y여YPS0d Yo}1@L{uު) =kfE[ 3d=hDKCEV h/ըO?;b{:~Spt-_e_RX/<E.c_~3^\}L<3!J;]ʜjyiкK_xpý@:gea pAc^lxՋ=_y1{K<|?ه~~>?7| Ͽ ~^oCy18ڕ|Ͼ}}v̿ N1 .V'F8/z|5l}wf[,W Z?{C*\!ct!}qfZ; j j¶/?{?knO&lZJϛu>3ӄճD'ٕeUj+%z`f0\a?uYn/ }RLԻ~~E_{??;!.nz,>bU,d<=P0Pz,zZmCX۴Y|1 n;{ΟKY_o?EHaܺ,Εd O>Fa4y"9+AFFpAu}hPQY Sețdey 9H=` = a<^m6g_z{^vE Lѣ PA50ewT!4uг;Uؗd+ӡ:nKɷ_٢ pRP13(/nJ7Ӥ[N=gB> w|k^gGߘO.=51lyEUr/ YB؟^ (>u"&׺?T0~T3o Klkv+&Wr@iY`Go ceqB`9)g¼ ݖ;J7L1 "E'J(Z:9ɼ]+jj呓[ַىl]%x-ot"l.x=Œ溙1$]'Hf*&bIM=r("σl:Ԡ5siy^!%L`tM1E&rb G<JIz 7ou} (P@t]I*c!t7}Y -#ѧ_BU_}/~_oofEOխBiyF?mZgj3 EiuB5CB(ϐzr%Ab3a/;̠RD[<oBJHp܄maspE9fdo ~?aCm;L(辕9u+;ج/@ ','&nb'%c '+ũ$`Պik^zc<]x #<{, h/s*`n4H+M.3%*]7Ё_ ]p!N{{w<+& 8 0;(ad$"g#*Xn ' ؼRMcDq߲k={>一aAy;OSheq0Awy|0%OqhЁ_Q]1t3>ð;SQDE5KWSk.HL0\`9A\Bq$N&B}bE5Mh5YDqf.RX!jGgk٪4]i0 Vl >[6xސ]muÕRwݰX, h֒ޑ)i+嗇ek핂~QS vlPT92NuyLSItfsJǐn;kk^oe0ohVk1B@##b!dQsDEt(r^֕q9_:<Фw*RpπDp*ܜaBq"#},3JX%̢v`WJ@QY;! Ѓi =31eGOn*E8'ĜurlǜQuM LM\Pr`=8* SB fW_jPpR6얃 E_X~^$ҼlcWXx !alLw??al\Uf(9n;?>ͯO7P>[%?ߧ䱬o !ӽaX\l&YS!Kk*:>=f7Y4*q6w(#a(83Yb ,tbĶZEQ6wP*J xZhRlUFր,XǃI4 I(UXV0b2Q"[ 1s?l+&PMo?{k2!v[zR>y_ܥ!eS81` 5 7J&I)cD( $Wi ;k#GrN%Y׼.P\r&Ϯ[q '4_/n[َT9 r0*|HZEsGrTۙ#+V%i- [)P„:ɽ.-ȑBP_F¥5ƬE}E^Fs}q(ǚ1M-GQA:@EM~v1Im&1֧ C|6(qH•LƗklLw c0u:xT~]ߡױEG!PaPr3^CdPl(}IMZ0\' e@XFL+EXHۏU< Lֹ+{l:8s*u l\[dQ{\XI Zd~65=H̊oKӪ?;⦧3fF$DLfO7lz6eM;L,гnӡ%#FTEqU08^/XezdTtqzc7x?vtwShΆ'0 |/xfpJUcnqZ Yɑ an݋*!$Xn]KLF)!Zn*O%+׼.H i /9nea*P-BoC7jL&@TM6+Ɠ1colr|K)F6IbtL_q J9kXȒGr]\@ȍBGm59fM2dh$Kqb3hƜ=  >;bc'n6|Fr{f_At'E=fBlN_J)#`f})KoYJcLgXv `bxK^oюox֯o_?}cr!!l?w"ѐRlW-?4ev; :(&1<Ra@a.ӉGX&t[8y9E^՜Tt☄n™8i8~_4$GJeut q%WW6t(}/yVܺy㚑=+X;0΂_O }Un)y~adjy-4W-Rۤ DV`P]'հ/?M[vT28r\ȳwHedE*8 E@zY߲*5'!*<%4j,X a'J,k-UgEVtv3TXl6#vqt}kz ŦfFмu! ;!˸H99upօ5٠瀺aM Δj_b 3arYNޗ\f|W#+0{ Ugg550.Nl,Ϲq {.#a&r^ :a׻~?{G_{k~ :3.P'v;v836rROsޫE^ ^JR#$'TO3Daq!;FHUY.TkV8GHfYl3Hjbc1J7yӼh @_4c f)@.XNMu$;9n/3w0Eo. SA#+bw(If K*x\T!h-[X2P$]rS OqKE㳿=Q7@l4?_ޤyRP*%_%㚾'*)%FMX# 6#0~sAO#lLj_x56Fv~x8`QjbcQgzJ=C]Ihxsyk^_ky!uhrA{ŷBq5ĽfyI})cXB"3YMn\GMxdlilYܹE?{2Iqz#ǝB}l ߤs"ҁpWsd~HMa^,CG^1z tΩqc4*!Yɟq HSA"f2 %.U@YՈU%KF(Tix`E(̙wyH![&ih[u,f~6HJ˖<(]fGy%Kk$Ŧf<$@N?6/eo??>?m}QpHޏB+ώD=tG@cC˫O [n+< ~Gvz&f+[|?{G_m< 0t0c[jlzb͛SqaѣyD&8| =FgBwX @zٽġlNyN/' д0uS!B=n*#0jDgB4(&d"TMAfd`M1bvYR W'QIxb[L1i㚯۲%FE)P7u隢F %M:(RDl_@1p8H.I~4O$蓁$"$aZi6x̨9 5Ga@\b9aF 6<3Y?}bɄ"t%sty-/yk^t8=Œ.ny@ًݹ q3*PX)̺s褆3(NŦ,FmU!pnſ%dh4Bts̗BB1zы+ , @Ԕب}"G&d:%R/Tz,Ry?hDc߾48LiLDR~ +Ff۹Us!^y79〬E*pEep v׮ {Gm7<>,Ϧ4s08%U%YoΚκȟ|n-Vz~+{_sؘŢ&硓_G_yO1N =]Tۂ#ct3!,>n<]7bQJnGr]od,HʬZv٢Ki9s`@56 i/A Rl-žF}SJ0lO9~eyOk L 0 zV;$!+-mSO ,))j*R J"R+e q狲Kى%u5k,Ew➓UVvtT2dP0txl^סj.LϗDYnǶ\H&}N.E/1X9J)#<< UB(z0c2ZLMƂc׼.rn UdE1RSX8FdegLɼX1`E9⋎ɉXUrd"3<\XuCw|.G b%PxvhD`>+5U!FK[d!"8N_sDXɳ%3i95PD$ )hS*2XAZ5 5:*fCC7nL5{ci] =٠q_IX#Cqۡ+7hu Y*A7'(vuq*}yҲ8EP>!%d(%"ёk󚁊'›n;?on l>8cgk}_8w ny[~7G}zͷ~OU = S4B^;cݥqL!n~uenǿ&h֗x f͐ߒ& sJ>f[ɠ SN:!Dduܡ'+' D1p4(XAsX.dwb%n˳~Π+4C1-`ef^ׅ[+p=Mإ/s#0JC^RXK E {̒qE1Z+"O*{T㙕VEh ,swXh_C,}ir̤Hs]@2F3 em ľu~!s׶ImmZϯ]pNzƖ1tJW[YB4k{eulr^DtC3|$@9" ~L!*Q PJ@B[0cY4#pMGe~./ Qη߲,NQ Qnw'>o`b~w3`dStGYϠY0ӌ=O7bxfaQYY8 IJ%8?#uʾX*yqV*\Q0v9TV$.X8+uUP^F*WRJ(Θ>DmymU]Tbg˽0ÈC`CRg|Y2/좠F]Xie֠[2H3XM./i[ 1UlIN!;6<,)[:W2gCg KꝄR*!fev T \FhE6;Ŕ`c\dJHJn{YG= 4 z*UoGdPIDH6 5믺1|HQ-a^l,Tu!aHDQLdG> Tu=ͩ^ cEIE[ =:P&%K .fL)j#:%Ц0Vnth~S>7kiFR041HfweGS=O"/C8э׼u1Vb46۷nV<N1G:=>^9&=.,9sEnWNPpnX  }3TqC;ĢXv#w d&5 xQRTDPn#,`LЀ`Ў*0"Jo+< V1|ONSr:M bSǣ)f t`ؙ`ʿ^fՔKc,jf%҈@؋c2uHxtYY 苔/:uHt(FX3K!G}#ۼfb^OY=E$r$ 6c%'1 .س<;e1jlT(-|s zQRZf,vɣ*xdV Tfʾ F3`k<@ ,v-0:snem:dYգ, p/tjo(G0!d<0L N9\๟tď7oQYdq+`bK9qI%CB\$!9~I IDAT]W% &t? I Me/.lp7y낭]@nyYckZv%.$\؆1qm!bf(R H\?9  P/$¹&&BSrd24jP<.Xi]h',Si0tB-#%Y,*'AC!>H1J4BR?ܙD4&G`"SiMY;#q!Mʚ4;r.PJz^dy3vE.A A ([Qx`crMc/qt2+? nFv7דa)Y AŢs+]Etk#uZRJ`H%w`E`D] I 2aAH.u:cAIzƕO d[!FeYDFyXLicE%ئRgxY7ꐧ jC%EЩ;AE BDLC((b%(  ld6ٱ-u;Y[2sEcuR&t:%l_km˽ݝ,ZEp#~-։so2h"&RQ[>Fʼ5n>hy^IuU&(*, k+Ȣ=ۨ"}!i v9a%7ﭭ&}] FjƃmeB?$D:yBF pF2$ܦ E_w{G FھK&nmIbڲ.J[Rj-@~8Pq=V\E@B rV ]Pj]bMmdC)&m B8TK:6& pzo˃k TP%FAǮXMn 2QC1^3i){2sSR"Ոb;gRqT?2_(vIɈ'e>czH}^5DYLYw\8Ľϵ %etvHX,gbR29GԜ()dY?gѧX{9y~OMƘ5?$ 5`᳚;R6k| /eĞI$X1N:IE21'2 JpM6V/ W CхLJZQ9"3YVY5ZöK}& [Qi&Emup׳SsL٭R>&bS;bٰ-~אz5@Ng h&x̓h,(nT=x aXc,ζYc@G6AsAG528L{d{̀8~YRLSNL+-Iua<5 E;EXtl獮 <"Lrƨ> p QBtݱQ'I ѤT=7@@M0W5K)4v1m1BM6KٲL\~϶ҩ1jT hRs\Kr/X+e Bx0vtln47[Ez/k*&>a-jD)xiv A( O%-MmS_Uɯ:waCy T\6ցߓ`Ģ ;K4WnPb5'svg^hЃkWН<Ɲ* |ny%2M4't48{smgmw͛ua: PW>+lA!'n][(l"Cݶ4Xc.m͂c tumMaۅT \~s`s;v}s" `QV~חaNP;6IE@TE^-N*7T?:sNe-4Ws!+7B ȴj)#J%S쓡Z9ڊs+ 6+uX_tE+5Ȍc6w p!B,$:~}9 #zkBUu3񙜷X!z^asLN_bП^1⠸4y)acK~]AspGz I1X#!(ٕe= fMXmgb^OZ~fc+SԆ(B@`XnV*il`=%B(6%7dh,"yL1BtIǬXF [f}CBHX0>3qlblT5ƀk`\ac$͒!&۪Xi6&"NoNl!W\NljL Lڜ6pBvźkET9;H%t@d%֍RÖ? G?#>fB{xSH"9#~֮;XN}ask09fЇSlyk^@a+&Qx"tz:nceoӑkQ,\J}fHu&c (V$߁kpLP%ACl*=h(:h.禃ϥdA0n0 +<`P\<(njɶK8zZ,YlY+y”+T 'fHj-T>:wR (9Z'yWd.Dג@ 2 eqVjHݨ&W9)[1 Yq+m0WRGFGmbqqPRdaXZi`|"?o &&!+Ez5zWƺ8Tc\QEQl`L15y6ˈ:AQgDŽS|u>ov# 슡@kODoYY CVEZ\! $2/?;(41׵+!Z>rsH*t{QRU#||˭_UJ(I5Z"Pp3A[uTJ7d !3WpF&Ue'2z\8@CkDl1JOQdV3I*1%~1m#;dd7D[6uݼ5 TX5sd SҦ4;lD:0:1yM=J:4f#T-l}J 9F"b̤i\NQe:%v7))q-'qa-iEs@8\U #"P^/fAl\HUq?+#9c@fg~=1f,FZ;9e&w ^7}kit&Vf|UZ ك^C8ͩQS4ma0,w=dN*y Rщ8Q'E g!{5c5d1to+r,j*.!tG!5Ja^h"tp*EPrB( z)ƃdzJOc]Kq 667d1ˢE;=iF.v5r8tEIP_DY:EL>bI91Hᱛf5f`Hة[qs,e>W7l$8U%IC •tR:jT`9Za^󺐋OޣR^i RIfd- YepEds"t[ܯ:U š# 4&l\gvLQ"@{Iݠ0&TMC4&p!nMrKBEiO0bI$H i =G%:ؒ 6@ɇ俔khy|Aycu,ש<ϵ 7_WP]GbxC毜󐾛`M0LɱtD^ogKvasf 4 Z~EcBr3(Ef^J$o @VؒB2$3P1'W_vuw@EoOBHB|-[ϥќ,˼Pe@kG-#BJh@Ԭ`%/磶_Ťco,BI5zDo&X7 AP!ƠDhuCc1ٕ+Ul dDFًK0 ":f =%>/A^ )rx$DdAs~G6*!)aXy=Ae+Ϝ<pPf:dLj c (ɚ!JyGġ*,yɼ5^v=cn)Ǿ-D3flFքp $۫qAKIEWT(E$ kc^T+pJ2ƔMV9R1Z̑]w_,BN"%CFn>(T<2 S dhCnN~y8*dYӛjWb^۾Ǩ]OF:\φ1=>hG1,37aZ(EIs!>3*1/`&loA@!*~JSG;S'L(}Y7K T X;u?48 (䈲PeQ\(JܑgW@H@Sg?Nl\S J W44AULE/H+%fџ&2 Z%:C"TOm6_DggC7Z͢tgySVF/xtv b[T)0  kA( ih(qH`& Du`QR4 gcͫsF nnφLk*)aY": ܹ5E =_#0#/)md-z-b9YH[5c yo~i]92bWk^XkyН6ǵ,U /BO])4rH!7 )+pm*&%72`Ь/W/@N O_HmM/օRf 8zM!x@N.֯/㘋pBnqE0t^3P1'٪-.Bi<)3WebN Wʤ, V$U1`L";$ *$=~(9s%:@H49^#EP&D}-$UN2"beJdSz:`cebfS8ଢcqM,0s*(n XN" w:L8ʐ+Ԡ3⾊yb)׀ Rˢ1&rGƱJе漽ƫF)4'Z|;~V̬׼.b[g}9%vQ"P>t{6H#0Hf0,ֹ P6#\EI!B'BT{G"͵a Y:eދ Nhl| VdB "xcߍ4!|ž#7Z<&+)S0+EšP%HL?֖"y[1ޚĔ9dS(N¯}E LAc A腤ss6ʗؿW##\)h7KeJP]os6"6e}* y#iʜB9E}%Q M n ?_iީgb^ObT|qJӰۂ7aa>ַ4dGĝb0!ac9.TحF@-ۚ, h+d 15q"4ij~by)b_5:A*?# p'(0@'-K6kLb2~IW0 yd.gʾMLR K0D (IvryàEE"j7QV0-q҈\$-ݠEbT5R,'} # y$\F : -M8tЬ/Avu?3P1zBjeʘ3!S+=VKH RQA}*=ZX̊C&k/PP f|_4qKW,7q8`Wp%9V A[W*k" DeҺGyTqƃ(X)AVO781bxeF%qV% FD5k<7yI,"p+(zT)ZGUI~9Yl`D]&]W=xMܨ`{~Pם^gK87׼u\ ȅo!;VpQĂ樐=?ҝ+bّK1/0< g1R*91FU:MaUpyVM`8p2f65}ϗ?ITI:-H=)֋Vv$Pyj|WJ1Mu ѹbF\_dn)!Ma7Qa]\u AY) j( ԅTϠ)=g*>K13 (F||óL-]_62R׼u%4.رcTvciYWM h!big.?r:Hly9ʘaV9M cc8#fEUK]2z? YQ r YIW\e *QHgz=(RzEЗZ':*mY'QP4 KuԖ9p7r Nh#|޴9뵝㨁`0wfV9*^c PkhJ'?E^'FpĪJ1Olw̻ TN|5`,Ncc e*LRC(<EGAE#eb@V&KDe^lZDSPNL hRV?E$Tv1d QrFR H؛=Vsl[u1L+YX5-j{Td4)mlDrMccցɒndAUe'+ŻXE&**A(>DHʭm"$8Yea* vkShZ0m5R:1%f KF2+Dg?;*%)׼.fQ)eFkD۴༇3),+X Q F wUCAȢ~$ sd!Mwa4Vs7gM-bu ,O*> seFwJ:|dbfyv `WqR='emi{ZJLjdTVkb*;3ٱa^ADWq#>T׮J( T %&YֲUoR YvLbQ s"1:|u9kDYɼ5TpKAbPء-rxݸ%  jc X8&{KMg 7)F:Mb1RKIn|`5mdD()6R4(Ԩt l:Ҏ\0TIF?82Vי'sU2r@׉Aޔ3'`Eh1Y̖Q`RP%7pfJN,ǭN43ʡ0xndcPmU˸M0gV.Vj5mvfN]z*$XRHBW~m>̠BRZ Hט*$o<^J`h/*Al)l.Fs[1灂ڔɒT3gU1r"U4Q6 VIפ9$.6[v |׀nLvZ$$%K3P甫%9BYN$Y dH"ut)@t^uih2ئN|[Tk!t;EQʝ&'FWk}JKIhA t) B;%btaR*ԥۏ[5iyX( ׼.P1آ2QD6ۘ1Bl hf7 d#Db7 sLqDqb]Ľ_戝YVpVP=;$UHg='y p bXQ;qFYS\l69˜ m8~VvgR劶ُe:0ػ1mq,_)P Ȃh,=۲,+F$*ap؜DYdfRJ^bӎZ,Nw`p7'HO^yVdH1Aw*v{]/3t0(t"VQtڦͶ,Uyod5<֝y=)C fư5L)80@9> '&S )A"≜BZmpgXDm=3&5X;Щ"Q^QHRA'Goaak(.8!ϙzmhNN ;ϮYp"D"^\RdbYH1bkMBOЃ]L*lĘEȇ'(0Cy d/AnRCu0!Crp"%$X 21\3뤶3O)%1X21=lPsbQ؝n q։U##X.M %8l<`ZkƁMxAݝC'еc^󺠫r+gGTp!"НuKW!vҭzƺp]`4+Eza@e~ (@0 Π)B@ߗc0NY0[<6{asE5N,5^Q+%"d]bFQHuHȯP'ZTZboBEӁ U}ĀV)wKo9cb('$t. ݨgxٻ^h\WTPѦ\Z`J.iLvώ2 l~ V-z+bT74`Z߅f?y:gSNzKu¯1y­;y_ҥl|=1]yFS֛jO0+ hܴH:I(j.R!, s%[ʱ Ęr_ xjg ɮ (L :yj9}t,J0ЛR[Uܰg`^}nAڕQ2Kf؝S v U"8AP@96 qm'Cdz_~5 A@Kcu2QFJљ0KR$fD bY@%z9kUyv6KR5\ssIBgF TTl\_ ⲋ!-,'yL%ƀJH@AMwvew*p %JJX*ZϛmZaDۺL(DǫE k:ܼ1a I%UyV([KBǀ BT@H Z edY!dJ0S"R9ShMGN?XdR, #A?;YTǦDqաtqЁ^Z)1M! 0%=+y$==_5y뢬_~rDf]A+g`,ЗqTr mڱ=8 Qq*"EJL1TV5]]Ƃ:>4Hd"Y pN( ;wftJ !J'b52c H U|*ޭh.:xqGI91b6 ,C!":Qd͟u)γJ-]'bو3Ai|) bG<=854Zww,FloKlњmE jG^=n!K.=zE5D T.g)6oCJ̛±5hHU0xLַhR¦Ծ$hd@$;HcW]G=_{?!/]ps6ǵ{8xt(|-|3xd[l"i42 ]ҟ9V[µ0Q+dƙP x(ɞ%P kۜ"ie0f%\ZbK9t  >&$ 6H`}0:R( HDbEԍ $“G~#(I)YC<[s'U&~ U*@A1h!aڐ%UL#Kz!'Тa$f=\JOb5H"z*Wzm' dnHuh-HA@qiE“ c'ӏzB>>I |pHejk^KW0EW֭úux|zǿx>_={S7ݦ3v!PU U6% ]iIZm; Mi)`(G &Rz t* =~ZHe-j IOl58a5[QHϡ0)!@>7$IH]'(٨?VײG'עYoN\A8a^J..fTIԑ#O]sE2D)$Vm.*ɄD2163wnl1(-bUsG* ?sCQI"b;}ɆU n &^J6jwh IDATj8'q-fl:4Tck0o)AIl ׭3[+xsa_R޼ &ُ~)>bY{%пN'!䇛넱pߖ2(,m(lp|j,E;Mql &ƂbwM@_3m~U==yo{34~U2YL#^>6ỊHw,΅"W ILbds9s4lk*e%1LbJ XEJIl m1UkAeDJ8"1r2e0#nH<{ 4CiVla,ŒΡS?~sM1TPT$PlMc 4~؈sI (Sw~p'S4 [0=ИOn)d}#<̜i sE+2﷖7*ͦ@zP[qmdh&=]cᳬB& et]blN^_S%1R4EQ줩8 )'xQ~}d#}8)$%~ON&WQ|^e=E̐h%JL^ ƃq:éD1xA:FS t ׃mE) =dZYS2D"ṔӦ^[FhCa66~=rs,_MWHS|M][ɚ їǩRy˓ AMec\1=AN{N%vTiBM.!͔]Nے*0*8R4OSк44pj~"NJefÖ(|LLqIT~FNgȐ'!D9D7:K3e 03jY= $sco\ڥ aRfSn z.6U1ҟ@{~Xin^' 1"{w(DS(2EN'LC/ !e)j/`6 58:!@`N6̲eU [﷩f ԮzA s AklN7.5#4GL|ΕT9Zq$L$$¬{R12cLZ@ur $Q y>I|Ħ)֗Rt]\kWzX2x!!4$ȡT{o]J,LuM޲{w0X}G@,1+4  IzwaIi@ʚ̢)Iaڔ6鲫S`1[>lӪ?'4wmZG1a2խ!S)JliVG N0e pяghO8^=\~ikLjx !!Kx&g Xhŏ}Ͼ|] YF̄X~&*a9G﷈!G(ce*q bøGmW@H˥g֥"ο) q aV%cq-O<|Gw_QTK0fz6:5 چdMϚ]W`@\'^BEho2KlZ/:mW*y%~nu}{gv þ<#3lE#MNq9;lZy?c[Z?)~z)ƨ""kaK5uiuk>׮94mLoJ|gSsmɳ)E9&Ն(wVN# .F  cSy)`@)*<R=%a62Qwk&Z۬ &"MNaY8~I> ~TI IiypMtu_ZU[A~j4t#oSdrl.[ί&&|Mjfl[dt^̊!-:f䅉/|唙䇖a٠yJ2m>70vEJxgG[fIQ$eDj8?}J /{I;TҏTw" O`JQ52A3X406$ Ze=%dii4" Aoa@sl4PsS䃺nwˈ"cFS ) DYWrLgg^~|>x9џ$6T, 3>J3䆅϶qя{|qQoy [ވƫ;wkOW>MN;{|3\ #^vt;?h &s٭=_w1?oz6<|W95g\iI*~ӣtpB,[tXj\W>t/S3Yk\}~h<8jpB"LMD:t薒w~W[ֲn)甴f29emg)-X 4BToPa(Q3M"5[sCHX$3$ وQl5`$SohgyAfc3&1*ršO+o"3A ԩ" RR(.dJ-]{:NY9'Lϑt4,pKy 8Gߥ{ ]2{({t"SG^u!ǯf$' ׭|9g:HYj!&uQJ`H2C+)<ŀ@2u/R{ʑ .+IJU'AP,@Ų^{h#1s1m6ѧM6a;E8+:lpN .4jԓ6o2r^oJ"LN7q6 PPܼY'5Ny:-n%q?%z~qIwI]|7⇿h7R=GNu{ݠ/e YࣞK g=v/=ܘ&Hqj$]eTOdmb<k0KUB8! 4@6s] 055d?ad̏(]-)4N-eݠbr}Um(<}[z|$caFR`G&RT I76&25aՐ4Uȡ$ MØ"Wf0˵>Qʦ(&A}d@JHth |hj_ҁ PWL:M$3ET[ZdCxuBRe6e"RB(i$$\/ c樴+#s_~xH!i25dv0Z3)zc}*_~v6&)^dY(F\*P;dEʵ1A2ȟtmy/LUo6xUiJ~5c㪸>R~HgAGBeuL1N,|PB=?{e ѲJ'4#gڷADRN&{$Kt4^Id WD;\3~~?GFdx&JiZJUz]~= 怎IwS"!jrcP2SƍR, {uMˤy+lgt͔E,}_ A4$OQ{NMQ 4{~&C' @_ki(?c$duw3.+DuD~vt=k}x`& w^'0ː}-T4I_V)&pwjBGɴAvOiRM0cNG}_&22R6X34_2,9@rD~#~>E6ůĤt {VfxxϞ9Fd1t^`̒|%f&l7)Uޖ!̠'t]^WA71/AQԘ. KIB~thV\ όGn]RGU .?|_sH%϶tk!wލ|],z;$gp/NIq{%%f9+Pݗ4˷;CO&~K~Xr DJa|z@E~8ʭR{Gql@i ۮ9(I ϔAZLr.I"k9oj$G?V=57DdId/KJ $<$mHTNX&KAa 3IjːAJK4Be-5 1:ݓ!>Vs.3Q1Wͬe(Tkq+! lNpITZe="6j _Bd^XNSe'*h4~jM Mo tR:Ejz#4#Υoeb@[פ- My^^V U.)IT! %ryzq m&/5&Dه 8AGKsܿPd,$ !ORט 㛁6v=jI*J @E*sԩc~ j1KږH7i(1 .PcLU>5y)8 T'J ZֲuɣؽE ~DcЫsqi7ۦiS3J@t8El7 &5%iS T IDATDQ01 dsT#(7R5Ơ LinyN1ē/aa6O%k}*뚾i*6Qt*m3MZ.<$ &PS>f616Εicq, (6PĄ7I+^"V}y4cpysCoA3C,0*zD5tLGNTXuM\ag]S@NmFPf)koFZ@}E^P M"2ȫ2@Ұjs) YCq\c lZ$~4hOdt1%]y2ꖵeݸe]$9!#oC.$aEm\bͺ:ø6I١wjDBbӔvӁ*ʬОGRCSM@{ =Bd/F6ƍ&NRC'^dRN~ge" SUgm' 8dP@:ex16̌!7! ]&“69Q`q29$Ⱥ&Tf䡕Hɇd;8i@!+כY2B<=KuIC8lUl Gm6JufnbZ2gOw zHKK(\j0H ٬s7%S!ri2%q3h0Ow,1޸PMLz{Yjn b+e 8>WM|U3VR#LHqj0-Mbm$h3,1oz ^cP'3 ;3G*04CeRR-xk{hIϯ' . $@'d]9Cf1@"~^NI%Ę_娋BA922*NC٦+iA~DӭѬxA@rKDzLA\E Diz!5i!3k%߭}aX4^FQ岌32JgF<dة)ͳT'$~ɻj-*nq:~bb>H ?Fm:DaמlB@wA&:׮ rYK2𺎶tM,Ĉa >;̲ʱR2 7c=+|S& br X#!E!#}CLvh'%##_K'|5j_TÕ'ŗN0Q4y+H>F A͎4ki7SJCEuNlj4œ'Sd@!RtBFщ X wli )Z'X\eYZ Almjhќr'vR@1:l6'jO1&) $7>1Լ}׊& @&Kxk`ZTɤ\PM*QX4B46b^DBi$d6GVgHf23\fpK7A_\G͏w_zgBz\Ւc<7R4-7\!LkNjD\ök|0QNM쩹ҲTps(R) c~`Im/Nt[ٜ ={U& p C~,J}N4dɍbxq^QԼ~; (M vGƋf  5hG(U 4#5(R&sGNxi9`S4\Y%GwTE 0q-J@NI+^f~w6L$^a0[ql7ӆ12}uT9_l$oNGt"4-s6:@w ~5@ҟۓ;,bYuʥ{t%0nI1rĄEB?Myp~=u}NgMlK (ǻ[~ظ&V gۖ'T,aYt]jRC^"ەF2\lӎL^ Vptx'7=ןՕٗtrOi2P AL+&9w6l zWyᇡjQd<$i XȾ*D%O>VA:;.Ưb+o:F@Gj=AG{3RA3O~Zֲnl!0_'-'_(RbHqss'f Î V,RŢ/FfCAkUs-QI2!ԚA!i!܄)XrUZSNk~="5v{w2땁Ze&a3:#(הS>cuB&׮A&+3IDp1StrW(~Ȉ6j-GNU1uLLk)%MY,]~O**E}$4]]k!ItUH`LJj'D v݆cVОR!F#Vɤj5)4'570{ez~`Khfj8U'3պ1??FawĚe-kY7Sits[4#N@)Km+@2[&ꗂ"}C5x ;pf d:%P O' 51$^rٶѤY†<$mw+ Fb׮ZjL]JL@?rJ{Tf|~UlJD\b VvR~ȍ)l ka5_#b vOJx2 8*H8int K̜z?zAvړ1r1P2(u 3EבIXe=E=uRBr*/r*ah(XƘD{"1%~D'T}eZy0RlI o_s°&GJ`ʧ^x ϟna\ 6:'?7syt?=S`C2"`rD8q>b8zB+w%.5>~.qYZ ,B,su+!?bƜ(,MlFISTnݪKM3JX &K 0B3f[`jB_EYfd*2$#R :h cLbdi )1P tNsAC zDلEE炤+c_~[c &]0'G|1GfRWRdzpKV˘L!G.F#Q1gð+Cl aUl,iQi9P%U7{k#sujĹg̈Q :g1bd_!|9> v6&,̦yNDॶWpJr*ёh86ggvʸ-1a˹rЦ_ NmՄ梍*Rw 44B3lڪYMu[EXFPL>RrTfŌlx| {7!RJh^2Jq $DFȴe=\`Ld]0 ($)6/R>,`_C8kP'Y(1 H2&"Cz*׸`M| 1ӤL!KdTwN2l+\xssDdy#e!m|l4I  %/4I$Cg=0Hb[[QicFLRke/>g~RޫMNT oC 5yu z͆i k 덴2R((X+ʵ? 0uxfYn9?/X*S2Q:'^ֲuW <=~RM= Bl mqd+xCLn+`]JX^E;N*V03)t*):fЫX#4 -2.<5O r cNjGC;CHJ! ۄ~=Av9+#\*M`ض+ʹ^$L¸6=M~ A"(Lcӽh,lGg6ݫaaXD<ѧSr-941ZضQi5FRQz)P5DB F`6)bMˑ&O8VDċo!!ϊGdfY;Eq@Kbt}-3c\X\n}2 vrҳq:K~@Kj& j N T$Ǧ-Rt jp}BBUAzYM(ொR >NbJւ;!f Ӫhf IDATF{Nx[cQ 2?WT3e1f\z%!/% GD.ƙ> *0. (h@d0@gmbn1{*'~}6r M I#yc, flʭ1mP$Bu 9D Y'M>>8&sFUߦDɗCDO9n3"; GEŃknkx7ŏ~g0 #)c] &&L獢,(xӸ އ`3*k霆aǾ t/ʃ*@vt~7幢DNEشv0Rql5gYTB+h*haՄ>S*Y죹Pp~IvbK.粖S#Ź8¨zBqwF'~ؗphw5-ԘCjkg]Fع3T* ̐v4 v X2s"FcsBIv!Ye& |R2qF5\4>Ѯn@p n}--°K wɸQCߦ7EhX6vMٮ-1JY'yb0x0Ұmqq iltYX,Y|?w 0HzY2L IRع1e,vzL1lN"R-t_fOi"mbh:( }I^.:miJ 1G1Yd_fz~K^-GM]9M2{~[aIصtldh\-tD$0N48a@H:+)pB&4#45hG$IE?^`5O/Nߏm653^ `^z^d?=OtN|\tKW4ktULߟgpAyۣ[lJoK,eg SE٘mbH ήU ĀNI3006ƳZ8צ UV?),VM"r6w^% 1n? ? EօdU쳱e-q`xqק=Nz亄҆\bv\>*uLn\% %V=`_pz﷼A榋#xq2Sqz 9ϴ<2L_A]!TH_d ͱ,$4B \R b%AlgPI#5HER<گ=SC\q]<#=(`Z$q32PC^I\g­.i1K{j{yyzl/W15BKG =;c `26M)5$U酱#:fQ#{OITF$e6I>`#}m$+_7 cU^\믏rTE524`}I\|h6'x/XCF)&K԰t~~6.T4.AU:\$xϛ"gG [AݼR<8- ~L2`y=,~}\8r`ZS~pgT+֮Zɗ{g^aoǾp7q/ѹ#%.=Rڤ)4ea7mbn 3 ^BHD9qŬ:|aM2CAA<] rWj!LȌ, {~"ȨW|-o8.e-.~ |IXƵ/(rd !$oX-Y^@Hbχ$Z@sh&={d}"鉙8 *)I,:&h0-'0m?3b]x~v;)0JQ8 \ fcL6Ɨ׮YNqʌ*R$s&.e!I+]3c2\ sk񶬯Z7h,|gp"#''! e#'U7ѳhӜRiʜ+ 7V '1 &VAv59uфЫB"-qkVM?~>?0RπrvUd GۮtNSL9=1l&b^ DZ4Ӗ/1JQ(G. $\Ⱥ&3w8z^h&׍Cb^aq{#Qy ~Y$#ee%>/FL,dc|f~o ;R(uHMafVrs4 H$/1f ,śa"?u졠(iO{  `PZ3u3(P88z4ٖqRSO&.x$mbr bç^:?߽u~+b5\z,oRG"*=o$I" Hq3(f3;&nCڦɮkabȢЋ9}2#7N` qj7 3#yQ!jl}V&Dk$~kC5Ĩ% Ӈ  9puZ|NʪJЈѿaLb%=ߵH?nJMPQhr’懄,vvZ6Q4z31MHԸ極%vM%#x( n!1M^2hoY_&8Cbe2,p 6 n$3+ jN!$&=^0"X>ItK!q@TEh}1cҌ#C͒AהtC!~۞ɪ |qZ` )f|?qro{|כqk~x q*"6ɪbg-OƵ)"Y!)\dbK ڣ[(pj\ #J=e-f Qc*c&Ev|$[m{~+F0HkyGъ~ %1Šjozdofg1sd  _ɦ2a}&%2N{ jYz쩡)4ݯ[ĺ |wĤԪiBGjL(!͍BVġQzXqed ßLj N4Ho%M1TgQBLIc3/>3z"lNYSG= ;>+(mڅQz65IYFp^h{塣AM'S=䠜&ڵ"/!ɆS/&Otbicf@p=E L2@#~HɃ|>bl+L`7_3_Jo{M.~NWĔ!WżƤ% e H]#if4ȿ4kGçNhtҩ(ô6ĻxW>|30i8 6 HI96,/ QQ5Fo$)ibau( ~ܞ%&S?׭=Zb¨@Roed"h'Hvj~(NLچ"2pp n`t'iw6)w$;Ohݜ0ҐӶkypcGQ,~\cF)'2ir|!ڣ[EVM M6ˉ:ΈA %AxH!c;/~˛U|MYq.h"s(vn1Z3PCkO_/=o'Oig&c=N@IQI:j'%F (qV c]T2P=;*V2hүz Df{%-$5xdd~[ٿMqoSm #7Ǹae` 1+|U@<=jr0 ϿGm!;-Cڦc gHXԭԕМ$UҚչzk7`81.$78Us_88.7SvpFU)QgĺIʺզPh:#{fW"5~A3ϭRLg,'$کK2cZ"e&]+䩐,Bx' ŷ=8Ï9O+ he3͓?M/Υ h$II'9xi!^?4^˔A,.8j,Vqx2DJ234n/sN}̢YاgJ=s1OI1Rq}Y*V=*89L#\ƘZ#)gӀ&!mW9s=UHV70.?tHTnTFDWكA?i ~xJ =(r]%x_{\dSD#P5tuN'JS9Λ3fVk'i*:Kk||:#3CdˆȈwϪzT 8΁aa*sLɠ%VolNIv%DŅ* 5i BNX =Rflg> gC8_5p}ړCz*0 A+f f(A T#X8G'm718iv≂s>|W=eQ],8u\xӔ#v,+ftH W g5y7~?{/}G1QO+Kѹ(2Ҕ( CzOp󃆦)v/qyH/@Ųz*i\RƇ]Q$]m;%0biݍt6Ɲv[m`f Q!LdkMº܀ozzP(x6!r76z]ThZ|ӣ'\q\o|Z _;Pp߅{g;|s| zOqPMMi/̼w\V; 1'6śu9|ۓxk?HXA K%RI(LA!)iPHW<\S/ѓ{>k9c׾),j* DWЩNSl!ƧN ( PXC`_~k,<#AoC+a~=0)Bk)@Nq}S;>,x&#:Dh-[56Y LF윣a*2R};f R+Go}=gz*V56"~墇< 橚#,B6wLC`Zub4f\ Y6:=͘UQbl"{|wo>5gDDD_Oߥc%t$/a// ݞG_Fw9?K9g/џ?KK(3An=_io߻;{wG_Ỷwhq~o-?3w\WfG,43)EŨQd英TܪtW4oF', T':iT?ɥhuM㶯}k&hf^A͒I&M)skOYz]iK[5<^mPLoInhD;P7LArV3gڒTyHMԘV/&Ror F-vDP.\%CbPwCqa1M2kѬH п񛿟^>^MP: |i: uK?_ 郇+_ŏy'"z8џ/ѿ9>G~{- L@9 ChSqڀͶj1IlZzalZan0jp2db<$ CkB{Hsz P3^@k(ƦHOk39@b\_60 _+smr} L?O_DeC[k Jѫ;>A#ҼGG'a-/BVӿLD[@žP1j4K}R|C5hc6>BⱚP ;t1%r%߸){ǻV7cTmTP'3/4k ɤQ:{9F׹;sJ.ZD*"_\)7}M ФJnd?ɟ74÷d,mؼL&#N.9JŔQT7I-`D˴*̆ECypp4_)nIhHM3.qcV@%iiRԪ VL%4#_0Št9J {}N[3&Kwɴ\)tg+w:LQ"q2,R^[Y9yfbJZz\ [RޏJDCe T|0,z/Qn!T" 9WNYܥ̻zSk5? 1&:|νv "Yyмse)4قJw.ɄȰH. $huBҹuq7*c&= ȽWR/_}>.*|I>e?\@5&ѴdɖzkC!6<K׳M!k ~}3Yȏu"MpLp$/lP}p܆Fɥ,sghB}}+89P`**/X*F yM!+-ޘRɠgD"“T>xKSV[(\ 9o䂑ؙ(Mŗ "F?Ս1n]+X"~gD k޼|\r-zTA , /Mn "Q3y5px3K[=s _0 K5z06 k6> )״Os\ז'JG>P0EKS@..Oeh@ Fa0但sOt\;P7 Tnj(G=hڌ-Y|dÝh&!r:(t 8<뜩Mfx`d;lr\W[|{\.q3[|RIG)>L?_C>KouF噾]5v˥}DŽ)N=oz #W6ph~xAw>Kp*x0T5Z[`z}k_x7ia,DVKL$jA@m":JB <LjmHQZ8Wv]r+_ͪ?SgWkvmw mBm3fy"}Z\S@j[C\C䕨lw)&LG9w̾h8ӁԆz. M񙰇chIx~.XN0Ơ`nVi { pPazHAoM{=O=ݧZ`QSH#1)gw*Aq#4q2S4q9="}'tyVF͠0z i fjSr??&_z|MErڞlb|5E!CL?'yO(oqyR6 .\ gISqe̾dǵq9ja }2i㩋I cw$FdCڼ1S+4_gpt3װMwh"3QL|DP'ine&ERjh}Wu)[ݴ^wv=}&o׾1:)P&ZE QB0HZw=Ñdre&kśJS8j*{=ܱ,׽:%v2Lye:bv5j/&C0D(G:u%Rt2C, "DByR?Wz)YyhT{O΀BXx"2sO "6| R:Fb3)6UYyʜ;P7T f0XlX(Mx8!fQwA …Jyt1hV!'A .]ig%x4p (AǍ17ur!zZ 0Zо`$Ͱ镉 hƑw'H51:iotr>UgyN.HV_@>:IjC7њQ64]++8ᔢ5µ|p'х8Kc+ObsDÉwL,lO޴}[WIꐫ- ao͒t_rcI~m*ifG'Q8}g-%Pzm5dZL;Al4Jvqh) O]K3{h$U0ކÉkzx kR{P<pQJzi<* ea:>3ASLBG;Xy}%ۈT*EVP/bVLAH7^e~fśS)(md𨥠,9yN߷;P79ʝ s3fYVhlr~$LOM {szqV.׾ZCzP@&F,vP?AFBKYdM0`OZ&P%;L߷Ԍ#}A~XR="+^Chz5|u%WIpRsؔj7jƁI/Tdn%GO |x$,wf{"`ztql]?t85lMeYTJ%dfjLz5-ڀ I}y +T:nyI%|4&`;zwE*a˱71H;Pu؉ځ# l87B`1&wM~"ʼnƜ u2 V`C5e|rRM%897 Hɿm#kr ҃6 E DjDM~w\T6&gPY'tZÑTf9ACg}MP@05T^`<i@~C?fL ubm`Z1Mh+pSn0ΐK^[>[^\& b M>4]iyFp<_ 8Cl&sbr݆ h[#VUfeuI;(v.+ߢ "{TgDa2yACX}&,4Pyj 9&d*.ɦNSa<7~ 3H#.eaK׿0,e"NMiQ&'\?;siOIacHES},jLD&׾޾5t0:>0Bjb3ZT?@u[ |ciCv"ezIdI,庤FWâ?K6LBtˢ5Ԃ0 JZ^kT4 ΩseR4v4M͈$"ca FDԃo r=@Ju^TK~uA4~M9pzO5IR ~+"ry?Gv̾k݌'%2\0J(FgIZᄆ+uB@쭒fZ䰆 IDATx w>4o(-$D;0 l\ {%' [cEp>\t jRLɤޛMd.V<ph"̰2A!`?4M3k)P$ ?0W=~]Ft sa!z  L`{"e'z.ʇH.g)'JӹK5ςxlz*E `%)]5T aԆ"6T(LHә޷]6>jn8* 9e(hw3qi&pz^_%?)/2ud+9>Ow4?h~|o;P7EXy|sCo1F@:'M4mR@-6i80ܘ`AA7[3L[6I"3x=nnkW8QK5@)Pes[4PB5g{OMVIjd ΓФ_ 2Z:L2q0D35A`^)Å $ u0"H>L {=P|GK ^_!ň,H+W^TyOh{6#b 9A&MuEn}ЋT>ԩL5]ZMQfR Y6"U-&.S^z7}/~+k×tI?NwgY&'H=PdeM9ʐHճ[ FZOXFTEY9=zDv 9 -`BD1mj'evT\T<)ɶ\RA #0Gφ#z- Ắfd"G{!ϓB\1'RK#fUize-{BiJz?\A=yl*V^& [9% sqN 6f-Lɘd! Vӝ<4EZ+ b7p0ld7ED6>pǛ2PFMhdfg -]|m0_Mnz}`ni^0 5r]qڐ R_ܞ/ 74}dj4B}TroR O 6i9~^ÉZ&eFa+fO)P2-{^iɢŞJVݱc0MޯI}}Kc9:𔗕 >l#K%.at8H;rJq\xV]m@Yٯ%Tє*h4])T _0UXX*=0m-=ߢٱ bЏKCnt?xZܨl0;ȭks-ae)f5:?"$1佂4*oF6DY?4n7y-woH}K閰%LX¶QLbțDDN|۔E j,! d}:L8$XYTͬ???NpRXTP'rj~hbgpifED5 Xtꦧ 2݈q&ʬT.HmE)OC_J)ԴLTG}4V FįCBT]j2Z,pw]ӈ&Ua&1K\Z Y>,ueku}Q T_V rx|la\-yU6À+7(T38 j@XLt0ZH4H _{/ot5ѩkdzI4Ou~?5%˚/X T[K-13&?UŚ AMR/x ~YM`/,9P##0dh=KWC'%1=jW|_Cb9B(ReڳZ֞Mle]KRԪN ];L\P=P2.#6^Q.9BYJ±i&JiEZuG/c{5<߉<][fԗ|plܲtQ-zc$leoo}};H^..`lR?}7u}hҺc@O\Ljz.iT|)쿼L4ܽgxaBcV AʃagO`p L8>7,kf#f}8$!LIAɋ O@ K݈At# e4J/5ƞ/5פ|Au#^V~XjPpUUs { GB8ȏƖADv="L}W}@ž97-GsEiʀU1taX,{#@a-Po6޶C13 RZCL-`Me!T|y=P h/{O^jq^[<)+ 8+]LS/}f֒qWcL=TJY{9ioro1o.0Fb^'a$}1 /ey\ghz4cTvi klrZ4]N{|>D=lEe`oRf;-"۲.Qv9tQ-gb5Ȕ2xK}CMI dt:8t #',)>.}mL.+y^Wj쿧{]/^e K`X=sc <]$,Cj^xPQi 3XHЄ9`NLV44a̬Ef#=ˊnR5^&&aes=DzȎ3Z$W~F.^0Uw!kCl*F):H]0j(\n8ڠ!=㜭& xH5~jN(x<;Y 54}3zejv+VDh(yPե6 vŵCs=9QC9L#n>@+{i :l˷gٞ_t6mu1 Oƺr^8k_z+VN-ǗXግV}"ZYk y6*&ܫ4Y6j0Ὁ$,&AOԦZH&N)kO!zpq^A>+uwӽbZ?QpMOzoNrÜ O{>n(|e>yu*qD662Q8P3@9-p^@Q}6{wVpJeض)Q 9bL16aО P7٥qf(c@ wDnzS ½"p@Ÿ~/dAAS6J1""Jx($'e5@6jap$%n$H酤 ȁP\ P6304r--Rє3VV4,rԏW,P@WX Z!$tA# `\Zޑ7,9C)|uٕ4_ ]D:C>i<_| cNL4h샮97ktn1"ZfD6iH^ZPo;P7?=ߥx.:(<\'XmlJ1Bsvq,i7:R">j)&ɯMdH.+9GdZTG܆8yC4a3g?\(DRGRdR\}K Hᨬ&&}e G*üLL'!<Fo%͵t0qX=wl6G GY%T%,]~&8nS{^zy|ύȷ,I=gCAyDDZI>]~A8ýr_ 83,OytG)H^f"^+Mgn1=}߯ghޚr~Pzu!4@ʇ\c_;P7иJ(/L: 4MflL|Wq~S[`)&tyͽ6.A2c:XB#s e|#PbL#˜&9r|@47p3b@)?FM ɗ n2% f4'yc>[m^&*EJW05Aͤ0l76B5%{Y16R]z7z|z}ġY(09Pɔs1Qo  wKc潧My v"%wiV'3ӘQ<7i2?B"&Ҩv׼,rw}?tI vJv`dC=t&8qaׇ(DVe79Ĵ\eb^=#uVerv!Py8qek\30" %1WX+ LL @!]D2$tt#M*`/_&㽅/?Tfˤ@V)d+:F bQ$WL%Me3'3Zf=`~uzvĿoT>~^VMR6pJԼJ2jo]iDw;G%gc)q"6u}qE_#qĴ}DVR<_|2=0tVp"r0҃xӚdi$>| /&4#3kį$=lT/vX'u~(EJ?˴@$ `C3=%k[ȀI 8e륱=dFǛ:pu/:gz*V3;4`TP7W>gAw!.PA  .$ %ۇ& & .nr0+]6OkS |BS=lƚ!, :A§›*zo\ҝb@W t~ꡬZ/ Bm^&e\ 5R^#W'X1i0p(4Lps|8FV03SxSbRcJ}|ĒY7c"n<II$&&2A$e蘟kƈ2xjM 5OϬXzT(fu]W|n~|u BY_BióRХ'PIt} ZP3Y@G8{IuIxm0W yB8N=5QSpq 6bSj?$BE1[6!@kr$]~^)(Л`i#!5$t G1Sč燚},~/bIduP|%GlV+B.g#j}"FHla@nw|K6G軶 2kf"e;H׾&u7йz YniS R,- 8XN0px vgeuPufKb,3C0یsJ)R"glY#o)3K" yBpzfbmz7p>*E4-CoX.=<M0B'Ŧd3 cwI2xiXN 8Ze CoL|cmD=Հ8R6]M)5L8ՑU ajy|% Q38s/p\~Z;ǗKe`MjUzVtCFNzˤ?-dwkF8A8МWLrs0B}0UvR/lVa)|QO2L"R d) / M\.èONT{4/ILl!~[5w9@y91 \zK &Ff^ {q"mٰp5iؖ75\tY |s6lfDHF9}-kI>_7i1=hÞLiry2{*F3BQ↤dexin౨8I[A5CrH9<0U}-yjLBy:S<ܴ!JX>$CېHJPSK=lHq EO.x! Az~|TDíufąq7jX7RDFNe.`&wďG5n)xT `|fDžZ=&:]f17b A2Pg0dubo8TnmHU! 5[W IDATӝ6M:\fs|ѦQI%9׾ʞiVߛm>NsZP\ , D|s!Tϩ8tyhaDe8޻'4i5HRᜃ3P4Zkݓ0SSTS _ @E~O)U< ].Ӆ|Y3J>6` z ht[*`2yKLfsjՃ$Pc5BP;2$Γb2C@Z*4lyDq Zfr%'F畯& ˛@h-pj#A?e>%1bځ}}W+BeYC}\5挛r j(:^k:!,M LRjEݑ!J?u,3]-^ [<'5ʦdhPI3gзp8uب?p‰7j< l3MG~J68$ ,q߭t`>h-!{\5-r%'@PqT8ĘRm_lE: 9COa)MZG)l=k2U 1QRG xHg@foHIQؤTzI @f2RIW ' 4ֶkKVᴬz]aiR< "M[ِ7y)ʰb̼kg]5CT[XOw|H|x1PlئfN2+` L6HiI^Y@爩V9j(owN5hF#R.n.?g8|:X#]i:O!F?jNK\5 z_I;˥Jr}xϩ!LmRi.r` 6;%rx*ZqSmH@?딀BF`@J*`tNeJ3d9?Y<]y pr_éߒi}F]Q@مdI2qtQ4 -4"?4> 8nE2UJ"R3گnO׾GO?הN=|k?C7%j~-#K/Bhx^ECSBeF'i:z!aUJ]B֟Oۡ\(-S AkUh@]ċ.j,S8٦@kcBPMIߋH@\&-iDEJ4S<ޱɤ=tR_a6I0l0XqTo9Sq6PW: Iӕ_(o!#f9UJs2l*Ǘ4>:gEl^(wpQgJ%%@&eV3%#CI$KB(k2|=yut윫)a لYƕYUZt)__R˗A>C}k*_ӿ'+'ZC;hte4Y6ni(5*ĔZLP3~c\so1XWך<ب&$N{h&1C9W~ϊŷVí0C'5Egw32ɆCDDΓg&);u9HǤKȽ)d1#Ҁ"?~izAm\ƃ+8(|iV}@_wg_?^<|OaI<<~ 851}*EjKyѦM 'p휫O뿤W98@T2-)qgTiHet,<0}xR$ @]I丆 ki:+`T0ȳ=SS245D8ꑦa2TPƍ"ST1}kܳ$;P70^-^~@~8/TF0vbq5^C'Xf%WYGS牼kQ\8ҷ;O>T)v<8U,JEr%M4\yX?B uA= li.Da<惼 s!ޘ5%z Pf2M:} :K-,r鯩ρ|6~$r*{SK" n(۳5TI Ƶ:6kܹ`[ί|T\)rğ)4?|PF|*-Lv\8A:3S{׾;/RL,N>g7{]d65x6.21Wְ*LtQr@%}cL7}ODvjf\x?٪N,NpO.:uSݻ>GžV)S@7Rtܗxpg=)[xk ¤{ls%@Ȫ4]c?e l5@ Tm R}(Rtx`+*SϰA z()[ߣi2&a$&5Z,_c $; Ht!R+g' ˠUgP1zgBr_Nȉ\h(.L5`)Y<Lk-DrV"ƉLck)<ߌoaO纡&@ybƼBoeȰkyiì<-z\㯖3~ʾc@ž+xw_rE7[t:lj.ھOU'[|P]Dreʟ-.Z˶p#.JD])D:$z`TѤ򹖪$ !-f`*jV %Olz.=M@\ZdkRGγq.eY L^?4itkE3͹RF <[i3fBЁY-7<gz;93 MN2iϲr+[9?R?ܽW['^)0h1T>#&w}bC_A<(20!r.=hQQ9.Qvz P.gо8TǺ@#Idk)#~I7eQ0 ( DpF{,)5{sMLL2P$6vj^$~-R7KmC>6W$2LT# a;AR `YʶK&a&^Mbef ɘCoॼzdF;1*AgL_yg{*-\w?u#?R~|!!:s{W7aSTs1H757+,)ঐ;{,inJLԂf$Y2׆Ey 3CL?Uzf6ěp8@̟{+H3mHQ">: e~28gɠG| 2: ֺSۓdL 5+{ u$6bLUov[jG`g:X2)0 Xr@oV}O}eS爣GW ,d/*Ǖ x1O,ןMv']9O %. *] a߬5BgzyFMcL!~heci+8P<ܰ(W߰;P7x#`V7_d[v1e<u'&gyIE}hQ&\ &M~o8޶i9@pju!xK?r}fp>Ա <r*#>Eݶ:'SXN0̱8y/o/^ZSv($1ܟ(tJ06Xe&7 G|(fi.+E߭wGt^Ik &f ~Mɲ|O[E%"CMPj2 0pOQrŚ.`+8 ~}MЈ Qrgzo_EZь! cB1",FV[!~hnN?DX4Y=C0L{Kfޅm,ًIqX*}Lt닯T[sLKN\0OOlDL}PY Dٵî_R^668L2`cm#*ł)T ŴI\EvXzbsGF N3$]SYfI6M,A U^a' w `F%@Wᱚ{J_S>9LB#TN.Qh~roL*\5BJBDq0lLH AGn"I `Lo8&_ n(1f Xcw=Ф}|2xXqPGs1ei#VS}k_oW3cʉ@W` .{MqpDZJ.͋mc1/eYg OPWQM4oo@ZDfO9krdrQ%ŒQϟIrn2>NQ* $f `Q$%6 %3 ySTN˽"`E ڴTW+1q?*f0Pv5{WVCGw.i4]U6-U,2(g)~^N*||74UN5,]LCqZHВ| r7:L]rYK1CT/ )6 O42Pߌ|xtyfE"|1酩!5: s [iJ:~sP0Pt!~V[>LiHsf7>湑|mT;[Ǒw g)VQzcc31ڏGF`" 6c3j~"I OZܱ ք]b6Ԅ`"ϳ){y鎖#f2`Y?ur35OȏA#A1mC2P=@w>[Si GjW@<7@KVyyP8s'5-9uuD]{_zGoqX\sD|5Vk5>=)a2T 8e|ңF2`. .G&YrQ3a徂+̘0"}r&z9R}cs E!q8JD@V5A&_2 Y}y7+meڮDg+8ΰ٩31%ϥDlY-r +D~pxؒ@ c:s4SĀ`8 ?&ʈ1JNq418 ; IDATw"cc<&ƟLK ]!I{!W>h\plCЁ \c+;o hhQ+с l*[hiR\VLNA+^[zdX)Jydxճ2Wz&M!|&SZr"lyޏzdTSlj\u[g?+ ~(Wh1#I&jBټ=aNU9/3)E5 lu8"OxS}0qpz.bu{: ә֭!``V`ȷS̐ \yYo{~瞚;jd5%gEqp5v0`j8ۣ浔áh>R )֬~= 2CJ8aմ897;wN_-9>5\&i:@~*PŇvs37Fɕ}mħUƝ׿Rg@]Ҭt5Tײ&ym%3Q{#ޗ d"l͙t&[|5i0zӏ(h{4jg-Q栻6n 1c=[+ @a@_Km]Ol2M7׷zyKZ E<z+Rs9BC BB<9>mȄ*Z.#{uzH8&J)~4C0)#BPDBD7>zD73br!J)ut>D_`t) _7)ΚlLcq <QbNޙ (c jamaX`5dQs;l%F.M#RCKc;Ư p\WAt{wD1fe%;z_8*1< Pr9kr ~$}~}Ia徔FFU?/귁/\F?@W01 WRVƕ޴6S^H"qd :]ʴ{_zW_^mxC !V ދ2U udbRD4C{nԦu.ƲvhJ`0CY$ +.zݠpt&QdGyTbFJ F[}@ž냯| Sk,'sntEP}hp<_ԨP =W#C3 Ҍ8IR}3382՟Sj4-+tX# f&qa d (L?k~=tYzA8OߟGpv.Mͳx:b|τ%A=3/- 'vvT\h4$Dcive_~/yIS0sw|+Ǐ RkCSϺ&W/kR% P#Q \)P,O35stw}[?_miR0P~@~Xtx#(9 M:56A<@(O9kQ"s@I'5~haA{^N=8DQR'߅4}HA1UXn` ,=!bݙWġIerӔ<\Z/f$ScijQf^X4?"a0φ#kN03:af f0<G_*RP*(aaPI!=ؒ(ZeIӵzg7dIDU̷͗zYۜ Ay@<F4$I1cň cϝY'5IEgڤN}00޿gpGH|+d {WU*I "deUTPo+ߟ }xfǟ|]i`,Jz4|{K O|QMUKVkWiq\N!;ST&WgnYZo2U 9 OӦ <&|mUe[N :y(9XB(IÛ8*7i׬1%~~,87CzoFA=R]I/-PI{Y}/ZV~WJLJHĠY#=`j7|)sc@YOٜ"f<.NE? /w>.h{|햱3ҚSjxgӁ,)-ErVC֤ 0UI}Cs*.e-Adn@ B1}r8^`3ũ!k(I@q#))\|#(ORbA:3@K[wjZAdLf (="Bu")x<93#H bn臓rMbŒ=Fd^IF`&㼐GA0FK;V]6{&qkԘ NXh&nj )-FaYˀrTf* (Ze1olzf95bn#N"_"D Ԑ2Ato(S9x ,N"ASv=C5S"\f[%Bf$1ۉa4V>XNeC! X+\?hkp_d$ E[Meٷ(JL*b r3\z%=)VVm3HaB85aɉk{8t@-T#15G ~au׍F,,p;%fK܈ĝ@CHR /sN8.}ѩh{Yzx1#@ec։J'pcF`SM~I̋FY-_):G n I %+VdIdRZqd.id$řu*t~ LrP%I`mѰ0VbƂq5Ht6 D#LBD]Ncmgjf>ۋ<4As(-.@:)O;~EPOjTd]PumsX6fXc1Eb zlh& ;Z0ZeYČUS=q2~:\RHVZ#^u 7)Ai֙EpZ0Bd׀/#!ux81>*dgbff[s =;BW~LQP7-" *Y({B9 :1B:÷Q0gq`¢t=jn/ nWB EpɉM&B}Xbβb.ǛR݂*hA9KMn.sE>`+q8#醉>^ʗ8va/ŴK?e_(FmL?R!l` Vni_O:N $xռ)ҵjԐd l*bBJ3sKRTT r^'Ͷ$4C}m bɪ(,i6 (B-5Žϒ eA!L 4189dH!AxԂ10'4*0r"~}Bra"_  ee-@Ų^uZ<'G4tp [ և3s4BrɀNE <3O;AJYLC*zTsJcݒ*E0`2T&X9~\?EԖ%g= ?Ud^\䒄XI%N6cF)řK٪c-ן|#7 o> 6LBH>B4NOBs%zwڜE΁SDg8uwe^ֲNr4ø:ۯwp| e3œ%]$j@KMЁ-5sG8;*9,!0@D، Ps[Ymj: ! $sɑ&]071b)H+Ԭ}9CQ$Gaj&c@lE9& 䂒F2'}ү@7ZAi:Deak_@ v|}L$Q %**9fo>9JALcFcH? =jwabQ<#ⳬX֫bQ8~DH(OJ/l#RTr`xRr9;ѡOkVitI H0*\hTe Ep{6e #g˯0|ۋv|{Gxp~ͳ]z7BQa0khhiŨ9d(>/{LXB] ({-|n+Cf;=U_30H@ ٞ/wXL!-mLKc>{z":ڹL] s(Zk0PU٪tYZ֛õb0Fq@jL1(8wkN{jH D*N4zYg&(יUXƤ﫼+xVHVcc̮4 &j^42>]//2Al0\%ıG„FViJWCK_+Z6i ?fm<.F\HDދ[q`COcD 3 nT }Ǡmv $t^8MT,_B9{r$.lk2ftHbV^QR1Jia'SE6AII#Lb ۰1I_>4A@tSIpɽD'ջ]jx<߳8}ß@6_Uvʕ*5&j+)PN)d4PX,2Ī):dz֟YbX*rTO!?$5jU|rK:ʑQ/{;1q`>q%dR}<\)V45[!M|&: ʱ`szx!.k* x;@s"c#!:Yub@Q6|Km9C(/ b )܌UWk:TtܻOaڬRj=vOwଅ;N`!j,(ax#9UNx>w}?!D:#GsNp;O7?{Gٵ"/ކM ï̒=ga>YX礆N]۴Gݕz6vhdO[US"dU+po <\-&!ǽr\V_?ӳa%CBwbLs{i!% ~L Ŧe]i;LED)L?'X)Jn {Q[kW^_On,ϋ{n,ӳϡڜCX@j%QeV)٪Af0mz1rPXEe@8$Z"Ƃ5 ~.JPTcX,WC$rY#CfDzA@&QAA2;tѠnJfqmIB}c,xm|0AK29W?o/&g?eCWsEsyY_|ݰm3?U!f4ѻ,>t[ye`uYEy-tN<{ݻ<~O~j:k(p}FTϿd \e1iz6]?ΐ1jRW)~8&]g/F&}!f`w7&V2ɂZ !ޜk=lٰ7pQc"#cwHcznޜ)n`'=p U\SQ,cFa<\bթ֫_Hsc >prZR,NKhCuO'jԒȿ3a4r/Bh033VpR[mHQ''m YbX94&5܀PwPw'݀[e/ CcGM6CAF Ā9e#26MWX+9Y0c-ɮYc4& hEhԂ -KMa B [2r 3t#`) 5-?1F6d>vVF!,šQ WVFWPw?.:[دZo I^'Ѫ-ʳhRS7SUB( =]BeYv(u49@t7aOsi?%MvK;|LF ?O8gU4(KJۜ=>ScrSB%8J/ŁZ)aKF-xb?8^˄y+w?ʎ+dV ; qY[ `V 9]=ߟPB9K HeL2b'Z9]_c@؂y>9ܲE/kYA+DKDXbϠ8M$Y[0᱅<7( hj)`\ p3+Ld:ɅS霖  C3Ф ܜ#-DJ8D9G ӡ}ω 鸒Uď1+6Rϩ86PA6[(gI k}Hjywбybv 疮\Xb`D`5Xh5Fp%Lu 90!Cʫ7?0PoFHVKD}A Gb`1rȑ=l?\]z<|y}X6X+ZPv:Š)u<'Y*3BPbw:[VR*0MӒ.q(, z@))N#7GU~ *0&ȳgw{$&#*b>}@ ՝X'#~e*8%ljl7wck80%  >[$R@٪9)1_?ڍE*/U;S)ېb]pҜEe Xf"=%F*nwj] Wneä́lګ&[ms$;¢ QB G3135S'❴b30yfCz21?8BRρ4G,>- ˅^Y$B1_#"I0 5lݤR-9hWCd i@t|$H#ZhP_& =\lTSR 3">|/spB%}y_3@5$oM,-J^RcMC2wrq:v/VFapjT=dney; 컿 PW(F:(=ԛ3s+=DR]Yye*rjSY< 2̀ !5f )Q .Ґ t3-k!iyLT_tbץ̪Uh9OG1%}[]9=Ux&n&dUDk pVk~8OG b\M?Pb:rÒɀJvU0 pw)I|f&xάkY{0Kyi. e'\S&_GU \3&5h @LY8HuqVټΘPi&qV")7[|}6ǐ%9fc (NG hH0qϹA=YGFy Fֲ.2A|&hGR1#6!mz-'lצju! M88 " hDI.;T,.RP"azIJɴуO Iqn#Z!.i/*X.N5,$,c Icb"Q[F?%+TP1`v0|bx,MˁV pw"vNF}* 1@.D ٽ%&n]DKmˆjm62ssh5`9gDg"RB yd}]:K_nv*;`BJT=Wv{KpJa[.kYzu@xV Ǐ~ ڷ 7H sh/VхJz%[U>tԚ /#3 .s+*zSǂ-yfj.YiX%Ѐσx5D{#!  @akAJ'G贮b` !1dc˺KT!K[1FCfT 9;x1v. 0,:pSZm&NQYY tbV׌wY VCUM-vF>HqҒ. () ,%tC[UN䗵e Q@pz%gٙi<6-TG0v/b;QܓX8 D3͚ a!^ g49 @"dQt[1^40M;1('eߣMLC ${v@?XWxiGt8!v #D VS|lX:evC!95Ap%5N,T5O`1Is$&L>lQCg%k1[\Dc- CIN?2 E9{asX~1(zMth<4f8MN#s&e(*H8gaT[ 0hB9࿿ PWq |?zs=v3}SgPpHvҦ1v{]*@pnQ*Q3,(d8p6QL Tx ډFVSl1 V)#kvPGˢ)m~h{%$_QCG(T9̈́wǛ,5H5wIbgM˔Χ>gݞidKc:`ջv骻ݩbk-S r|d5oj%ayS5(_Ɍ$MvHCEE o#8yVo:-ǔջ VіǓ gӳm{sl6}͡ά`8 {YzSs5}>>*j #Ϡ}.]5+T!#^)Gx'X/ú@5`{U6g v׬0W[[7 31@ +1 ]ǟwJF{Cۺb@bk%]68^؜KcA#xh&2X&|ڜ &EC< Q~\}.T*vLR.Kz\gp%u |?PixܳXb o 2%`<5tHGuw7)%ԱQĸ wMF`ߥX=x'%nHVBC uuY^:C,d.Oe+`[neVOf>4BPi!3zbpBa1cpuukl *cїŲ(|% ҸEW1|j܏ϥCYɹ1(A1jsY${301I:3#B+>p%h̐P8 M(r;Ly:G:gùrT.岘MF(ut\"չ7T$;] f ҕn|eì(٨5'$a!S#H?`椦lU͠j^c/@Ų^"ڤSu zP՚V JT̺6Qދy8PH~Үh}3NʊĪPIOR\N7#DϩCP u\JpIR[{xڞ :?K1o.Q}S+f@G] nɽ ,G1f$AHՃ#;{FX})V>`n*E>2i ҌDc8\ps X=|KύN*ygP<T˗̐Tk7coKw.͌B[50\2@ 8Q uUs /`+0󬾄{xUXF\ PD+C*Z1Y H!90&@~81]jL E(B RbOU =F!FM#dJcv, )Y1l/:{=N!kY/4~JvsBb1W<M*@ )&O,KY:`]+k2csEC¦kM\:-R} Ȣ1&}W%R1XxC8:U>%: VdklbWWi/@Ų^D+a\ g_@lU5SK$J vE`4y6 DzOŨAiҏ`_ 6 JL IDATA5#)_jB<ū${zYp˼DrM^CR|[[ o$R^>]{C׻ h;Qk4y;u6UXJCuFɗeO?٣ĬQMhEjz{E]'=0Qz ܅%|~XNP1[0'qL)U0 MViLO:Rq%5fƂ, =$HP(N)-HXR]]lÌ֪Pl"Ut F ;D/u q$3X1R̛e\b`ߟx➳sLjFobY+0q,,gr"_[R 2nVV܃2+V15q#rBPq̂em9>D϶V0@ށ[8|ѲiF. N a:U:N+rO:b< }.>sEOLJa*PУ DlBpGZCPfjJ?yY|,bIՔIKqRsK6qDV`@bV%}_@5M Rսߏ՘ C20C+0"]h|ޏ,3lG sw 'pz YDFPd׋O'B߱XsFw7yTGJ*<~Ge^ֲޜ?Z9;5bd,[@9K#7-nvq(`c>tQWHz:qT,) !E j̈$F  -#Kx iXG' tK LYjY[lԉs>̗o Az!d9obQ9^99ˉtfFT%1.\ָ$TnqHX҂ Kmu\Pg@;JFg>>HM62qt>]˪\%NŠGL4@#klUe`tYZobþ>|NϾQy 5ʀIqYa!G-,$G 1ihLbNT4SUqBOڪA?ӭ LLPn@C iP`֌&@ @2q[,P)I2jfJ8TUqHdML=пp$$CAkl,T)gVk ;Fߙ| OWhilk?-~,5nV3m~ua`ܔSYtqD= V*_T,Sop3nFfƫ'= tq`j&!\| ,ŀ&:=V@a <_WzI*`,waL9QpbX\lB(r";.!aye@ y~00xhn93KF"a/> BakVgekY9L;.-ρV,0[5М?W`?yoܢ愙#9tuZ+F&w4dĢvr2G0!1Kӻ !{|莫ro Ç.^!pPĨCZeUoΔ!~8A{Hڬ\Eږ-8pac] nг!Pc@p3M!/k\ ,^Λ@s;g{2XG8}fAD:/ R p;M]:QHz' 4sS$7vg \%: ]SLx9`qJ=D$12y痂o ll.汏I>OBπW 38 Y$d fW+eҢXvcˮe9kݸDS@ 08d9s܏RCD}PZCeԺǖDU,vUd3%ab1pQi$ö咎X3]W"5pb[t֍:ڟ4%8Fp:ǚGwȺi[#3](ݱvN-*nq! 1`D͢Τw@ i3N9")R+57R[iJ6Yh0¢^Jxz`&`ڪ0X>>g 3U A= qA_& $J ~[$Eu5XG##>?dcOjdY P_C*FBmMl_}{8|!6+诟eQL $`i&ݲO0R&7 7֥b]t'gHjaz!6mcJjF{F9pG>ɗ3n4{۴< 4ag!,f5qW0303DT{|&[iCR G[¸ 034>ux8ph,#' 4{E:0DMb֬geF) '0]%Z%YֲW#jq23te-'R.lՠGjsqUe^ֲޜ\8T廒S]=|')&7)‡TN*딇оj{TE,T7]>ݓOh[J'RbH?(tNZะ%r#w݃'t^C+G8tZ`8\qΫmPy REmT$*pX,^qQ0!۹SJ:b {zfr?BYgr_y@$׬>8 GEc<΂[sbG{ |Lvj[5JArS -d)rz{*,5NǔTu3]>?xģ!cwX6X֫\nNdwHu-},lB=8a<^^_DdE4hen)lѓ9ԙmH@PtigAٟD(g/}gD]w LVc.PcJt"K⅘V[x*jWs5'UwEd&g&Ç[3@I:J)EG+N8a+:.#FA'L@L3shKV0.L +>%jի#;_ve- jכ3D[.y.^u DSqJCi}Y8Xev׬ەpPH=,HZQ8r\BYrO{q5(JQɔ8PI4JEm9/' ͩ,ρ TQ0~VVCr/@P %`5=oΡ%',4|pw oTM>jG*7(ftZWfb+k]]Fn9rGF<̀HRH>'XypD-T o}'~`QdgW1L91 ~=r:Eu!hvFX墕T\ŌR+ k%$LZY{$O .MFvfS v[nX}]!^9<CR82yT>U,E,V-ǽpqE̤gKen:e}%{+%콬X+L\M#\ $Z@FNLO:!s[#4s.*O6A{w9?̬ؠ kqrG?R\s~z40h5/^ V!(F?[0 NEOٳBw+5˿h3!ij$@X΂{: EVe@$fH R⎟uhv "1R+ۻc$`sm•%rf5>e^ֲޜEZ>DBǭqT+ ~q:M# ;ߨ%9p = bqQW7I;d7%AS!ncC 8@Ŭԫb;epim-gRCi•#YaDCbMjZ#ůGyS<^1a`ƶY0aoӨK:w p T4b;0D+Fb\g79y贸?i8P1x?Yv ,^.=I r[' \ʀ&FK꽴F@j? E܋fVFy]s_lTi) KBhgxז^xk蟟fi%_u&lyL̂ %Gg/[݇߿UOʠ^&A9}238GLN 3I}Ԣ?F*yesT%IoNЈcIJ'U]zPteGƽeI iXcws9A͕jQrpI@itZmuґZmI{rE\O7wIGh!$HlIw`_pV{ su | Q#Hb;P<{ohW0hDagŷ5pLS&M2?KǛYxc'b]3ip%V~ qUzʧIiCSKac`>e$x~ X=.1nNGzQ#M:(7Ō~f1*v7zp"c<BE7& Z=?q0&FiVS1W L %`ۀJDXz>ԐGa9 <l7#'mڨ3R(ߍ ޻Gs>FO3|w~Of ka;X_|׍_W}+MEa1N/ $Ūқ]ܗU+vnJ*JB%14iYMXu_}IYX DMn샷?Kvfrl:Y~)|;NdvIA1~ߟ}{ ~7L: -=ʇ{" J"wO虢8cf/Mnz36"ds`|Oeue-kYon.|zD3IIxҪpn2v{ y&`ͱ X1*@B ktP@pcnK,8i,B5R-1'ƪjəHu"̠l,h ~8L2kZX~mF1T _!BL~Faq9Pr\  V8äl" PWGڜð Po:)lpџ@/>jKV]o/ vuBC `ַUG0\7} w)Lcc^{&["9LkVWx IDAT;a~Ez(H+u}w[!cs ?C@!d |fvI;`PG]D=;~y7> >|W Gh<2 T)ɻQ4Ep<q@o>Ͽ?0&zc`=[;WP~}+Q pf[acm%+4J@Av>h)$CI5%ԁ"/w~1-e߇lX7òe-۳\c01 j`V uv-|H#Gͧ?W__!iW"ڴ=;$ F.퟉!Fy [o!I9C3@r=ȯ[a8hC8W m׉qIEmbC*,3S\]50pZ41"FL/ݥyƔk2ur ={ ~~< ()t)EP*j|kL(|{ɠ{숈D4N54W n;IX6e- [qr!ŖLCVC#zz/:;.> zn{e,(kI/J1‰C~q̂~s>JRiy|=%E!;A68/(BlW  !s`^>)iɞrlug Wu_  YPe*- ։Q#k,e#"5c )|"48 }9k>QK7=iM.2Z.@Ab}( :vÑY'qXW1X΁躺zN뷿]>}r]eE5_ݑfj̀mͲ9{#C,W> jl% r9Gf]5/IB f1WB[-C^"jT + 4y{^]]/Qmg{Խj z@ ιv4 S(Tɗ/t)#4K~? !9)!81NS, F/UR]:frp%Tv.IO㑜,499 P9 W oM3KD/-_ XX˝. ] ax4Jh15WZ0y>$j|lU;̊.kYz=Roa”a8ijq7OjKpa"@! %h’X⎴;1a]UM3M^.rTAt Tts/Pi񣪕u".B̅5YsiвBGSeTj 0ZkA5PD:  h~ta)?5 P:ٕ Z J&T |w USPDKfeNGϬN%`L2=If.g]:>~N;/>W{*."jBpdZx zX.O[.HA$!="hϢZ9̄A!!4H1oB]u0P ßm]%7[<'4 3(cD/h:}[.V^ǀDGjs*6YmD0h8&YU~:s"9!-|dUmLB f6I׮Y{YzÃjc )͝U@g=ՃwP[˱[JkE1큤$ux,'x5(Rzk;߬cйRJk/<4V#+0ϲ)nbͯGNEcd텞! !m+;d!K1&l @?grHXI/-)ĂbbLC˜iCZrA2G)/VÝt`8^&d$y,7f()% [WPpFQzvdsvbj ޜy~e^eObJ3oжVnig0ys 9ρL{9;*t_ " kXWqB#9-: %66b*~j)5Gdк{n-joL|6g!ի΀O~GKGGoꪾGzF8̌Dd!UG޻os[vN&Iu I UZ9usԑ(Gw5)Q*!u$0[eɡ{ G>IS'PoC6n.'7Jw@3DGőss.ƤO,E%ipoÂ@傁‚qߗGLԝ? ^.(s,q>BVXKXΥ8}>7tk#c%;)%ZW5SpJrf+]i%#MGqWj,'F٫3[s֍XT@/l 燚+t,ʾl @U`u(C`'>_Y]ij7i >xSrߓMk,cɂB(T05oCw_}žΤ=\fB?'bW,;&3%-Y!{ ۄxjGS(8pRH ŤIv`iTq1O=6ϤMTnR0iZUqOނK !?;nJjQ@mz\_r\&>(`բDZm=V[k9WN޻\da_DdUut F)MC  hᅽ0X[Z zlHlC- CamlXS"gz83]Esװ4#o8'=$E/E<I OUP;P ^?Zۿ>|˾55 {Exڜ3ARhb.RO:.N{}'Ufٗqp>+-ƻUӴ K_.7y V4񵡈hBkN˦`i%O-jz^sܗaoYkrHh8_nw[>sk]o?|B.H*||08p~}0ݽ`JQݙTU| .d( u}鹪[zQI̥'f@)."]%Ay"Of!J6%>4};_k|yB0ujάְ] 9NHN & d;\xcn{e4.pmf9oEpKNƲn|'MTa^a-?nޕ{LGi.F^L0!?K[`1~|qKIFB/p:[VF[=z.zHΨfwNܓ/0޽(n7:5$k] i负G8|m2aHU_=1z{IiNxp UvuW6/%Gtx:T@tqQzj,CFAP}m } rMr4\yJ 2zywW}? ^|R9gk?obXs_WiݥN䟾~wNHXMB) aUL LR,kNȿCWovlwH>t 7^ 2vW8|u^׺~nw'!r0l/p| a{)yL4ad߻Bu?z. A+OL mk`xzShb9N56d ŵPEF!>,:LDtfdA5c>Kךx*!x|pō7`I2|C*>IzaIϠǚ`fc JaE!۩7f٦8\YsWa g/8q ㌼Y9hƎ$g0(/ i$fAǰԸ8*hSUm C\JA·"٠ye",A"H°FeR8_ ö|Cu9l/q?]l^/9inoKY/۽vޅ=*JqiCsUS²W`s:vWI|9nsQ6y]9T3R]ȁ}˟ !U5m/*-?i#AeTM٩< AbQ\UFuB>TťL Pyzw?O~6DL//oPe>`?Vß.&la0?w]Ǘ~><>5>k$6S0>t2-jlG(u9sp~i-.Ղyo'=͒@Qs xx"3PXYLcֵu+B>Wa,=1)?ٓC:t+5ƻU{5yaka ce86H.̞~܋Tԇb{/@mY]Fzxg% Ρ܉aˇWa7(nm * m68!DF6` ><ؒ^ g䩭߉a-&k 'z@Q.=A s!% ,~PC|a2h)~1S9NNŏANV s_ /'[+ѺOO~WޛS~χ¶ K#;aY0Y^uMJ=z)C4\}Vb]?E;3 5N98k/ x #vG`A`wCBlLk)MKqχ}@gd\41Yͨ}iFI߾TDMdJgOgh 9b eW|_"9tjf 4DNMT~ͽP~RcKv{ē'#.w#c1#%8{<= ^[D\s.nw/$!"x+3b<'Ʒnj;Oxr3c@3R(&/^xrhK謴IE>@=B MqwCi>ƠmB5~)}a>?f`!͓kL0}Wk*ZSWq<O jL(a=ubtWp|L ;5y#p\ϡ-l Bfwd޲ΦY[nąX]UJ?0\jCH*ѣfK+]&R ٴY'Z`&=\3vQ.rϞK6BMd3EM- ĕigPnͦQqԉ1788ot 8a+ L)G8Iޜ>wuZ ʼ3m(z1-gof]Z"rI294Y326:qŵ|ؘw| ן`1\[񏺸QJwa$E큾8e QZ-ҽeZ8LF\…ٲ'yՠpq:jFΓ>,c2R3S@!O鰬YNLx/8T "*5z,wm'y Fhܪԙʟ&<\ ^Wz-u]>Fιr3{UMSNg?ًB9達JiT;{8%yџkr]јku`Vy`[^a=/ILgE.kPY/ b#=x1|?@psᾤٰ< yD} ]gd7w22"}+p!c[<|pz\aj5A=!8$>n7ympƀ)d1.ҲW}\R`FaFt3N'aRiLV0%t<* /x0.#Lu%F(T:yGS8LsT&.YS8-ڹ]5~i7_ںyl6\b*} PU,M\]NxRðd"eUy֬P+șYSFD )!ONu'4:&<s,Oչ'8Kʍe(=tٟ~''?} vDZu]}Ұ ZaX੼ڤ $(5`ni:9Ѵ25%K ō/1?3ٿ.u+ͣpo~e8c\OEyˇ};D^Tsa7(kloA E`}. ,d`{pghmf3K(o!9&̅%2PNΞg$,pbZ|}6@7Il~h,\9\3-ȭк=k6h$eW~,}9mfD0XMreg҃:~9MdF]sd8ˑ)s8-8D>O#\"R9T12yR{8ٰ֖{}Q+HHT=k'}óoZ~KK$(Q=asIA6f<}~_ l_6rNLd>?M҅ Bh[MiN#`:u%ZIjh$rq`v捚ie&! mvHӈUxͰYIxI7mL޸Sh2u7f`iϺŚEbCydZežuqV;<-P2b> k?Oo5sh,M49Ex7g>["݀Xei#9$5&Te?pNh<)6FViD\_A)D 8%&Rt-1ߟ'aS,f02{o+X^ˌcdaafA1z+֚ H@{iFb2O.jf4ǫo'9 |9nw{RJ<91ey8_@ $}(Y28#v.[^ T؈wy0v *2]~w*oE0#N%dP+ij.)RQjd|U^ wwE DLHө65JYЛ2xڳP쫣nb[I<,I+=ME'vrq#" ',(o c;Ĩ]e*|ň?Mxu9+_wwA&3w˚F`5e|#~gf ={FN3hX)3HY>]yh vOgxD^VЈЗ{i:]#ST&yk(!;dwT [H7>GZ[܃8}ABӫ@.:i5t*OA}i~Yr׋O\#)YsfL[y{/9a>푧+Q bU(y a,-C| $JUg5IÎhyro?3`zGF qn03lvBcY`u7rh`nG6Yb(&ֺR|J 5O 0L8x~r y-!\3Ap@^I R"+wT_w،6%8h~l cj 8çxMDH{[Rf1SD?i0_W? |O7` E2 ]p_3(xǷ{S9~M$;y4J\_>pk_ /ǘMC<g+l7_/~pR FFL]Ho~>AʞC5 F{(V VyЇKOU#e&v6 5 ;- h*'al}Y&I"Ⱥֵs51F$uyotpL#AM7ui0_o*X p$ר08uGN)>hVҟ2P$+@~i:A8oALj :O%QMDތyщ MBT)n0XA6%ugاD1>րI7#.wU?&"ƆO1޽(%fS"w5?+Px0[:])XDq ͎ F*ц$;HqGa8W cjvn̵Q>L 5}@2\yhP-5z<iC¢-+n4XjJLD5S?8csNu}>}?|Z4a/#/]ܠ^\9!9vacHqx Oq>xQ)Wo0uF8NkbSkE%&Syj݀5És\`BOM2~AakAۮ-ЀF0bJ}NN`pekѩ(jxEvw@>ɼuz52ȀMz,jԒQE#@][Y |kF>e:lϢ/DiJ1Ig7PBr#AM;.uoz0/Q+_<ln{QtJT]aɤziqŤpM2)i<JX,P {t'l9l ,F{zάN<6 3ѲUh|4dY?GE\5ѦƇÁ ;ZU|c/^,>C_ivoGe#!>|u_u}+Th㚢s  8!#rhUy̢{Wh7 j\p%VkKAr*tJ܇"2 huJS)OŮxd+KBoMl9d}ճ@5ϾaD_+¸umS2Uwqcl9 L4}+e_B>}@<Wmɗeu74Ӹn d"ƴ_Hif!#5 MYdoP"nZ[t]]1hvW}+Po! lnChZmF6^Сێ7p/?t翍 b#A \n\9W6]Bin+P{M1_>=g$㌡tV 4 A쐦q:F11xJQ4O֟+"!=y}]RgSP+Pz/>3PS4\i*:!xA!Ca[ 9EGQ6W.\ a7=6Ӭ&FcMq5T*ca 7t~} 9óCSCtx: ,11L,q13*ĺ8'UrYG7%쟸f~w_~mJQ鬪Tz;&c]V)fc4YP_^Si^ 41WoQ$N5+ asIVCu_׺Zb f\b;n;@ኡrЮ-fN'' Z_2jd03x({{S#M#'?^5d>(SSŹ٤5i.!點My\f ;ymQ6hMzШr%9_"o]_Xc" P&q< Gt7g55ߔ"yGfQ=t>=ꤷL Ygɟ<8מ^F.K[.tǕc2.ҏydY&<( A.J ;R\5{'4Y`*/ޑ_sIm)ĩa 9@⤧cv`PـasQ@J:*GFbRJQ롧x"3]n{Zݓq<s>`Xy%A%X$z`KanwH}<XS|ay*E*9~{wk~9:$d:;t !Z!t]yWgdy[p]Q|kCVFn/D(ҋ'2M5tl`+v2 Ũ9jxT +IC_A[l1bKE(jzIQIBx_L h"f*e_t* .hTR2F}u5nٕV(Z#)u1R@o&c@ƋU !a^18$yD<=С8zi6ԡz&y~׿o~k;|ROwiWr=pXz9 ;ZQt A4`VP9D9!'aPA9Ƌ[+&CL$^ѰܤRk]z{G3?-c9yt7}+^c|7`UZtB?lK)ԣƴxwo# ; Ljx_yM ZĐZ\%-8}*MRש"I8R1N3ǧǤ>\)Մ 4 $O9}#j|Jkx'O1MvޑAsd6D2TfZceq:!Bg(EIPV[[ ,6ldߌu1ό/nQa@B5֌=`E6U&,^*[J0\-0CrΈ# P 2fG+cNs9dWn{y[Ycc)K$m\ pB3 rR5=?)Ka?_7Xb~GH5Ixlq OVxߩB oIŚ1h6lcU g q`#KuvѸN [:}6)aHɉ.:R! S%s/vk=55M{7xr3:bч !t:Nnx<>ݒ)];W?&[BULmg#\US6&]Dv c7&aDU$2p1Z۵ƻ$SIrGxɂΣ]^`~{+GNuȬr<և:?'WTh6tuB>P)]aX3ebY>,jr /4Bb?I봬TkĉJF Få\}H-2FlF}akmזA3rPD~[߉ ēS<99?6QNW UmBԃ:Q}jbZ_Z{@Vw #|7trpl1n! m:˃)I\a {>K q1}7u>`a|IIXҖ0ݿτ?sPu@ź>6;L/FT8! ÎE,H*S=͆HDx|%}szv|vOw-3tw2R a]^g\R7d5pU F7BIQ}bf+mSR6ڰNu]/_SMaLs98SӜx)4aIR=ֈYqF&I\wq*ԛ'Sxt[Ĉ!X?wǩFH%R>O2ԨA^ݴ̑(>LQd4Y:!^!sAi1-!^21891{K)mS >4CA՘aS4x-ғ4&l hZe0QLY}];o`=ҫL 5p}e1?t`|!'=^)RӡH1oA[Q}pu#_u}[UxF|1:RL.}7 0i]z7L6;y7s K`& &E1O, ᙋK[k;5K $N7G NIFDvw*]1:`5"ؼ׸:)< p˸p-Ig 35d̅dB2E"0G9y=#u:rπ#M=Cy$P'qJ_) M4B=pK9ȿI 1h8# z+NkYc?ͫd&Oh@}=-M~m3GX7u-[#2Ѱ(-]La'^7mN3 a(O^u*"ϲ_Z39ɫ0 OQǭZA$ߥ4 t1k ~W\ִ q.ޫx5T{3D-z BK_IˌvDΨb&^J-\û35@Lr$Hz\\džZE/MCىɧ@7>J 6S/Ƹ%9X{U'L>&8\Fqmm/Yagk*9,9P+ )*i+#IB"#ƣ17E=,&93m+3|G?HlLqGge Y@6ڑqa'GZ߭ 4x"9bP}݄A s.ƍU}FV^|u}trt*{+h17Q5s~W3ҵq8~j güHӑ#FSO=t¦0Z.F @|mݺ@ź>u6t&!@{r`UnSP'2jQM'l"\R=͋,%Iej#2vU.bT <8Fq[&}?+ iOף3i*0ii.oήTO̵G\k9lGs]Y\kEST ЕL)DBKFz6%VIH* J^.JfP̟oX O:>VI-oQYvqvJxЂdÀ/Yfk~(P&9Rh P02ݴTj#It|=i}uk]o*yc/‡(8}~,|G}Avޣ\W$&rbs^m9Qﱖ-|?H"DS}*MG3( K%:CkdH8%/q:I+|;Rh6_Ou9#tHai C[ . $ɱA2SmGP_jpOşDzp raWDv2\Wfq("' *䲽N֠$Sz~D 3$\Q Ƅ;T^"La#l4m/Y2(Kq5o xF|b"B0|hkct%%Z'hjb9gXZb6?lqz #J/ŌlCq7ɢ3Oy[T=4o_=E$f-Xdl($V<'u$#7xZ0 4 r u.-g=\_(+L'EW_>t X1_KK7.z 8i|-"6g'$q,R%Omm~ýГ1wԪDI\t k1 6lv%FF3<"/u-\~HqFK°iH m.jD!ٗ::Jda">P!!g_SBAkN +5g"5d@_ ;XR9|N~%j}:JvWdvx03S$D EDv N 0g)'%FSMch33NsÿÃI 3 `j? p$2=U?*Fa+C#r.,G'a'=?f<=ur>`> bz m.K&hlblJz %s+?1\=x a{eZx.XdܿgEӡ6fJ?6;t0r=&{eW!=9^j텵s/I}G躍3D^:o8.1bsϮk*9,># q&F:9!u\+ S=Vk&xfbPYIg݀#t#\(S7i4pE !_фUcUhr?Lr/& $$τ<|SFNi!X^zZgs=ꉻ[O4ꦄ 8)[HV&Df>Veȷ)mGJRyyԂutB91S9/"&|<9s6b :h蝾λkܾįA]s/_k뎾u=C㼪ڔyhĐRZ{.]c/%"7Qz> R'^|S~-iLOy(F7:\LU%X@:eMzyo؇ZPYX2m75By%yͮ>|= ܰ]Ry4Hi&H TP],e3`\|6dqxkJ@"5_l* {J?'FJIlz[¶Ԭ=²Q(03ʟXwXb>EO82uj3O@=YFnu.cB %Mo|W@ź2;՛$Ive3IA=<9ϩ}Mh;QAT2XV =ɷ|'H̀e+H]Eb s> `6ZrJ#'trwfR|幃ù_}*y5 vz8!BosdgCT뷂i,紩G6 lc$ፌslskQR]@82%{њAE#Eky |l=x$aTC\$@irBiGL1guXz2)]l&3l4"a\4tPM2Z>Nh68I&dD: IDATEJ Xi t(ƆEZF_kSBC 6נuvЀv9 =l;^eù2-vWfuet Mt@9/jT6PbP% Ø>6KP=7pb *t5&a[\-i*IԞm9R.)i~tE"9'fu)_ Ts\e#(T>tȴi2"́EOy#`Bo$1.PhPXe(s|ʀ.(tW`Q#kNi1, &OhJe4egH\m5y:P3ݛK1kheCN}8_E8=z*=UJqƛ`&ݕ PрfaA:4EVz{P['pZu yZѬ /טTT1ʩ!{3YETU*uirP騘s$z@QØt3z~^=_7u-YoWF5 & \/;Z4YL(5;3V50 f>DŰ6U}dɭ$jjiI&6RCZAHP78a4~ &3H'ɈGBM:QǠQP:Vz_,xũ0lT7X)ă$K\g^4><#(6mKhPF\K>w_כ'3k\}^Z>s|/lY7rG<=9%k\|UT`j@$":_Ht϶Vb]FkIi"aǖ?_-79)E{L(5۱ :bv?yy$Hj6$,z"ײ_yO6-O+|C NC~,@dKͥ =|?`}lo&,aDb$,Z%xۑ O.'0:@kL,-9 qh?N&FRV7HlǯSiEɭlDcJ 2RoAN`=saVzмN X_Raj"YgAe~ҴhF~ᛯ\/.Z9:67*@&?g$3i-7H605V0\6]MFNC #SFlnRq6;%t7F[3гGy~[]OqPD^?_uC_׺~*M/Ɋh*MJR(݂Ou蜫X%_Xn璱t*=5z9 ^/961=56=>h}6\ J|1CsBP=N(aEƣx{㷥SߔѼGU}UOf+Cvxȃ?Wl7%a"P|(1* xoje@A3i>4)0mkkm>P2 iS=֎/#a`o+=uO~@³[w2*_%GQZ9MҹĹp"g<(Yޓ0٬QQD Ε,&)zRIڈNb {<> 9-@Jp1m% hE[}*͜#0s.4cjdi:K\,0 Lk> (s(fngF_ Ii6*X$$D$LR .djAHqqޑϼ'wFOaoj~T l%Zpv4BA]Ss% sqjJ+$ѹ;,|&w1&4;4o(_6+Q#~^wu{^?/Ѥ+3~4 f3b@ I}uJIxjYں`o6Xbk_~gda^cwPa;$6 >0YJ wHӑ$**T= b Ulwb>CjI40{rUi6 {15qT<!%e ˁޟx24f] Rlikw Sz8f친Yr1Gl~77ZX r2`wxᯯ TZV6 kBWò9AQtA$Ru@Ȧó lDRImuw61'E 0H.nc1% CpBwFW4)!Y. ݪr*Ѩ^i!`jA&Nij<^\ԓҹ[>r67Z,>toϯÿ{͵ɕ8!]Z0ۙ^B9L_>)} 0-3QXxGؔ(Ih"C !ܤb~@vU } P݀=<;xJ$݀p_n+ap#;'Et ~x|@VמA8F <wJFe^STt[^1e'¡0)hD U=Gkg6%Nn{G'ĸ`TR<6o\W6 OKFw4s?*s{NsU~/Yp:zL|e @9#=}V8*G ;`kN() R<q;a,(`, MG4Ífѵ+5ҵ B+-  !kQOkV|Qźk]oIA (Q@A9ƩLqL7O5SR0:ڥ |}>LyI UF>-=?l/rt2o͝WDkm[~7C+{vI'yJ/`|Ƥzxz8Qx)3: +0Գ׃{I3hhj|!bx. e1Ly9Ӂ^{gd/Y<%zT & һnpa a!M+{T_sk3_C3- (Rn{AޑɟEcK8Di|XқYPWR;)0Jf&Lڹ&v(!51!UD[3P+:8srfZ?BmyИsvsνSF$1 AKƑ@+A DVhdD AP UVi cِ@+$HNʮrR+U6{5~f1:^iMw9{so|KF.R-Y1<Hdb8BS:Fǣ1gL}ؗ\Ld*_jT <.j1PKn%G23 p1?JMgZ 6Y{P0)ƹ,m+Z~ ,~E- fbɠ:Č d5@@%| mM ,8?Xh?? ͚9[ d>pzk]O+Ο1,\sBlޜABMܷ=35g0b4{#F@F&mNT,  >>HEXنaD!ZM P8\RlJ4֮`RU r(1G883yk2i6t\~3U.|Tl@Z\ȃHi{ \4ǛĎYFr[,iq9di팞taV"F_e5UZ^0J?m]8!HQ2hտxS`lr#r8"DTK:vM1 5>W#wâ'V \r\;&ςYσ|&NBO1[܂q9_s]۵Fj;3͔dh`k]Ob7ohi/]H hZ%ʙ=jFňI0_}M*`>Slu#"8LSɗ JmQ4J0.6X`)Mөji=}7g]Zk Mi0 QkscZ%/ܨKvfosٷhUp((g d)UwY ,4"B g8I.*qmS @A(Y100`my#dD '[УBxSFz iϠgffSI[8I7޸$Dpvz#NaeS=>Ub-Ż'v4DY%hJGו:l)_#:_bLwZ=7G8Yj]oLj!XN_Ub]zO}k6`qbevFT \/=ƺY" Tufu %d/q"%&!s\mu)3Mcbb7{|N.W[Tk)T59eCWFg7h09f5;}5ctH\?f {eڔ]f{ R,:\TP0=.k S6lU?`}@} @0]?4?3ҬF5q2!Em]OZOm+a1 /t[1j2 XjFFזa7KejjOΉNu!V}!Bz0GbuZ\'Gz4+ب~fhUۺi:N|U1;S] ՏW:,Ti{ˮea{H5b h&f62bf r4r[.s M k 4 AۡȇZ{ hF$:hgM^  kgBӲ&4V~JIM\rê੩e?,4t#ioCT蔋~-s.unT)bP# bQ)e&ֻ<^PBa#9j-uݐ H0&^r1zgjX 6O#ji-15.pzHk| &=Ld"VʾH OZu} 1~;N(UHBj'*m}^wYFCePJA 9IbQ^ %Ls(}NV.,~uȴAx@kGY .0A؅Ae$Ӆfȼ'aa#B44˙sI~7~y>G@$ןWK1|7*IP(n, J(o]9-I&#& RHg\RZ./tB]KHUIkz4lM,t}f (kJ.'|B73͊>aI}d_׺Ϋ_zFFND9)jql 0oW@m#ƵiCU qGkVv2 Kcz;Z ѕ`ZP+D$O<\- \c]!GCՀ(W#n9PsgG+)BP@˪v8QRy+)&Z\ZmXK(YS"l4XJrsS.9W1Jn(gQL_i}vPsw<SqpLT }lv簹"~x#КEKl6ߐ{)3E7ܶX׻۞A+(j`/ 5cW h\2yr[YK8:Cos' .C]WY }ABT% LFA5t=RDX{˨oE:S~^=/|M80 6X "`{A~(x|t_f5[4rLF!t$RݦW_xk4R!gɷ?S04quB%xըFpI 6=] JۮL0RtSgɻ\ԾY|QTD tk7t)8Fqf'ϭ;6p0HSR,J?If!R__MIDňkƚ55&M;y@bE%4U;KhR#sKCPʤ IDATZIg!OLɂ ΂Nn rAl 89NkGZr. ulY_#'[ uL%NJYS%(0^[IfTdDDSD ]4CljbZcq/9n(^HR|UFk %Խhh1c ts#r@F125KV뺈L7@:&4޴%.)65 㵈q;#ZrєV3Te#n gƋ9 9F v%Uo4 o߁ o. 5̇Hz0\Ҽ"naU>:tv {^>^t`=׵'xݼ2t=ts f``J&DmL)B<ș4?#3,0bkZf BYNv;d%Ť 0Vr,VZlY0>H]|d־߭_ 34G[a'Sx ߏz=Hk+9%tG4bMW$K)གྷDa{V x]L3!۝בFҋHk(@vUv< ]|a wP0/IVJHmXe(ա(̎M@6;}j^I\4kͰi=m}ǣ-V=OՉؽ=hw%rě tQ>qt;A 5vP FqOqjuQ[ T]X.`w Ʃ iqnOE@AFJw֍*rx.E)PbcDȎuW-:,$9~#NrrP3Bu8-DD p <ׂxsݭND)PX3(8̐slR:3^~n)JW̷r~[P@^ԝ(lɉ'{G vRwIӖA) jOh=3P4l;fg=4Sx° 06[HkNג8?ADBӂq8‡W{='}bE 66EN㳲b(F9q% q_ X5 C*(hŸ碔9(hZA;-mb{ũgb$9ZM>FAJҩpI14 Dm-\N!nf5R S8u8x40ke{tdE۠]VYx;VT;Ű$ g{!yx"FFr}A!VIkz[W-)4)9=zKٗ?'2;NGw^4zmu>I ~/|_z@ź>zNg:SXJs+b3ED JS8j2 l Uji)J'*]HsB+TbZ~*֒3.pe!M?:^[*%Z?dD|̋@ 5 L9{׫ap:YSX"mz2b-PaݩjbH$ZzJ УywUo}04+lp3nj$3֪@0 qfv#{CXmXyx fûPXm7~Ջ߳Zד_ķW}=29cedmpP1T:\WD"ìzX:Josj7̊knܼ,@?,k | Lb4?=SH]$ YŭdNJ.OGa5ܦe>[v8R~f aaH3koJߤExR (\jJe7{^fq E_ |/m1CG2k6H% L2Vj IOJ.FT-zś h H=FJ8"e<xu<u5SG\!.*(Vm-|˟' T*}tK+㦓P{@*k{K{xS4+nAXRbtgT򒧣,PZ8QtX2:lU@Tm8"CT:~ Nn|CRU)MAbJf$NPCܺj(Vp\ZR3\#a1H#M@NZ (1UN53K+g(ƅQ)('cۀ(A/INP4R=@iK(aY>:u.pe:qĘEj5ci0WTR%~]_t_׺ (ϟ5G)FxĂ:c1bD44zY98.Glbƨ`bx{kv#:ٜbf=Ktଁge]C-9(-TI$ |ao$6o $qHBwlTTSBN~h 'bxft¬$\q6Vh_&nysY|ׁX B>A )}@JKZ>0Hi"]8,t24`v5z$jm 03e6V^n6 #O]CT煘I) WdXQ:׎% Igc0Zu}iLɾuwI׵u=Yఁ0l,RJq]2Thpg57%zdYE)jdnc* 82!8=XCk༜7Tυ/'d'#{@.qrĘ9qš7uŷص>^K5\ȇzr/=|_GL{ѢmqdMY),L(cD`g+6j#YwŌ)Qx2*7@ZmfiNɌpc͌(Vped%lY+nqX =2v^_4`8 8rzNXniR3ŇHc) Vb]- q IDB1[\3ցUx#2FB~:H Ⱦg>F)zm ܦF(HNT%cPZVbL p^P`i1-C(Y\ 3NBlrP JYy{k 9E98οH!M7McODlOԪ@.)Rێ86X-6rPj)qe|ߙD_~wURTkAHXkxD5b̘F>xHu1]BNpxp_׺5^!M*qۑSvLU#:08s9v0]=0c8T bif6U b:^xDp b\)>bsta(#ꦧa{V'jG eK,%%EKNz jj0=t"ݎPr'9Ҿu6F#1 i?^ѭ Gp¬YG% u؜S9ؤCWY9:a3IѭA19n諾'Ĺ_Dˊ8/?: F/t9^&>`X"@QI~(O` Ӈ׵zhuBA#R*(ԬҌ4v)8sD[Q^zx&9dFhvbgV\~ FC1N<2AD)4U?IZ *{S]Շ0F3R`G+VeyhPLS@̔y.Oh{- %Iu`z2'2BDJ"قXwtHfb΁72O `;",rLs!V5;k!ǝsu)4woqeDϔXrBU>`+CGڌ%NBi3?w!(XvMs6BVD1 G< 6%"2uΕf1K Hx+PpR戂 I|,zL$6'RRmvyRQQJV%T; ͼf;3$#3AYrJy\fH\FuXwbjgě ()A i<!lklс=\U۰C!0f@Iu76j,Kti"ڞ}vdӉ+6ǃ"a 9N"4le׋`*21<I$7{Jΐ㉂t=e{"nSuBԘKW ~ndgzyi[-jƠ;U%G~;:>qdɇ3ěKٳ^H%>@nw; 񻒨ƚ:gý[nֵ'>ny(w/pv~֯^OuX>So| ]{ѺCǭ-)J9M)"g7+Й \5&H9|K xZ|g<I:]/ٹ$gj6xy'*|+Qm9ރ/X3gEJD1sa&8!u`?P'=N4q"#'ԄqRֳsMd9KҀq4NKG+2֋񘧲UU[Ӓ9 54Jm$Oq!w;}yV:saKsўp(gG l~*)}+f=z pxpnwg/}|2J6 dLxDifE-Ϝ7<| ]+)^,4nY*<kRY1zq]1$堙)b[w5kjcWElgƞ XI)ONv`"=>ZWAxNeb>v&fKsx.9'dFdds{h]#f$j%KgԜ D:1R{+ H9ʛX^7H)4VAX4+%gNn꾷_94EZ-֎V>K3%cs_N3xJcވ&/FH<^Iܷ i!QԾT`qƗu=>&bRХ?):^N-܈ ZГ Zu@Ebgm X0RXXQcq./ς8&5 %aN=zU Z,1{ӈZtH\р -$゠a/Z!Zc)%XY7t3-f Ups2~#VR̄~jpnװFx48Rx#>hi>)׊9o7i:A{(UnPiQRcγN_,Бr<&Ƹ?=3[%{R3NL^+79V4}n 8> {RQZQG=NWb/&RL l/zʯk]Oƺz՝XW5f/h9@6*>!Ǹ4p kOc<{d#ƉMdQ/?OZO3uH&FyN \UrPq^T^6ȥH7ڷ`磡,ZWmʿ-rrJGe$ht#|ÓvPvXrX*#FUF cΨ VV,[?<Fm}َ/>aU^}rP[2"FT8ƣ"Tz"ۅVmdžY *0kR#)-~o[h *k<'2SCc_O']oӻ$+Fs1)V\Zu ¦vJ Vn EkkvN% m;)²>tّZv-HPiϵ+%*#e+NwbԎdo cD1Ў4LNqJ@mj "IJlՈtvOZDX[͢Ό7=bTZԚ{m:\;Xf{ hNr¸n{.ϔMעnTY:fjQg+{UKT0K^? h ]O֪_zȯk]O?a'ŏ4:4Xٰ5 Y 9 w Reu~QW]^ fH,]Z#ۜ# Wx `ANBB$:Fzia1Rq M+qŒ0RhMuQ9œ-yG>xiv qϜTH[At8[ia>8\3,䗚}5Ab4놟sL簺eYm~ZsWۘԟG糋ǚm=0l G~ׇ8$«9M =P>A<\'^ySIdQ)KX,ut3,XuJ'!qdԽI@S7X)ԁ{ij~zdLBGR6 G L’ո5kF ~ mZt[XbƂz |L6=%TNJ@KY{,z8];1&a\,B0"'ÀNП? @弰hxD;zȠIifagfg` ."`,Zq9[<}+__77[}omIE#dIE8Bq|XWj ir傅t0' Fjmկ vK3$Vr֬|EZl1 T}INtBP }ŜK6U`Q@[[ƲjU@H0@ HbߛE8ɲTE5  gVPECD֍n6I On6M n<l5yQ*ՃuРW{c'IlH)glytti;&Qo.zL׏`xsy@ ngˢD9L;Cwbs2v@%hܵmmۙ#mJ]9s->w;\aIUQNcUJcԩq+;c,U,n,YeDJ)1]8 gN;Dց;I$Bϼ<y:—Ǿm=׵og9\,2 B rzPg)XɅa.x):UB:^)`DpyHA رagGTOv>@ىH^=Υq)4 Wy{^瓧Qki< ux/_< s#Hgq$s<@N0?Cιݹcu!|xsߗ& s5ŦQv'@:cht[p1e2[=6i<[/C<\^&>~Ɂq{]qv 8\ g):ź6Тܨ?._u ӃHRT2"3y%qBV% KaU1r??:$v].XU14PV[1X(t8v+Qn΂ |jzaUb XF#,$P<żɯ KB)$C.xZj hG:[[Jb@_ `6q'dj[V~im -{R]9,d3l% Wkj-m~Vv/h>aZzn`|`KNPTaE*-t%ybuIds^QzMY4׀hC:dknFΐGf;a>f%>M>$u栒&vME::wxx??g?_OuG?ts{B|VjL9!",AFu,b5j綥=CE[,t jUkH[춁)sKDg]9BS imr&{^"swT{vHSE['s"œqQ-gfQ5 _!h,G5IEմh]fȨNL3СUi6h:$x?LlNu>`njz jߏfD\9Z6p5j\aW)E 3f}jBKqh3i)|Ma$nX׺q5Dπ08z&t߳sPqk\#\$BS$qeix;r'`h^kTȼZ?iHlʂ jeMnj L?p[q@f>I͒gAy!bkѠt!8bod2L31nVkƦv*]g68`٨ɇ\\gM:k|u=Co~oת#6e~0kh@Z7T0dkR:^C<݀{?֍+Tnr9j|^LJoS_YOX(9tAgjsC#DubF;}먃f(:^ۃpr>c& ?lXS<[jKZUpQx/z ޸-!>htC֑3nOxsRCdtG}ѝJH扵N nl*B-@ߓƷ[ tl9DF'*HT6 ~?ڋ?es'cmig\r^i~Av|A.iu}}?_?DGg`3MK_}co΅k0)Lh&v=i 7sqZ.[va<^UWdG_D`/.oQ\+$0,YEy2*~c: [BeqAn$RsKc 8f. NtHQuwg4TZ)~xIjVxef] IDAT)D; Hǹ.ιsôMI:cfuEOwu[豧#1w+yP-lv͌1<,0{>C' ~u(tKy|B*2C픣i2l3N7{~i=׵?]oP GbQ}$tks-6 IζѾya.2Ӌ@:u6Jy< Χ("xGq 1Bʎ ;>"2%GS({ݜSe` lpWN5FaYb~1QS||er>TdUkT_S?Em7^=.4 L[ޛ E1L^h0FΗi3c+zWgNeM^\Ys_xGFi8^#͕:]?"._GT6i:.N;{V O3]3e /wsi䮰ނs}?}zOBa8pdU3'Fg,v %Cv 8ҡ)vDedԣb45C g` ߂ Щ|r V5f) 8PUHhF'''ttjLtO EC پI4>|:>1x RBzDt58gB@"8Im¼BŨ{^>#ʜg뵌{#lsaxwP{EJغ vNאǓ``*B =&+BG :yծ=fK=>R2*}3 ,'i<HIٹ`{pc~\1=ub/ = xSt"B{ϋts  I P5c, T7sП=}^its _.iOZ]?_|xq{&QOk8=zK3;[,໪ͣ$x X턖 ZX쾲@`lZsd,BDŹcu كmLf: Aβ1(dcw LFnX >āAYbDusVF={F%\7gÖhNwr-E))/Mo@+X!Q]MtχGp<%7>Ȝ#U $5:rOd8mk*. ,dԶtw:n ͅ9p~24oLfBePpN #5:n.aas?1|spos߿&Z7p}'>CKywؿ8=| 4p9ؽb^>n|?@(Ŋ+JئsQVcAP{N"(qDHGbDanwvn}X҇~.^xO_Ϯ Tk(6g}6;Ɂ#)XBH"'MbI\ʔ`DZv0+(Pk@9kg-Z&[f:ɞA۸^hVRPd}=@XGæԂ^ l2FA~n_m1-# U G%U#S?OIюs̓(%]|+I?\,=zz:cD$=ظl4"`hAQBa Ǣ[bUjR]Qf'a7ɷ5Mlf_@͜t|?yzWd_u}֔ʋ8WOlUȬг. xs=f*bnZDG:T:(Kpi4.tP͹ti.}aɟ#dJ{܈f)=bomjY_F*0y 4傟Nr.rOfIeJ.VE>ߥpɂL9 |Ϭ3"\$6 ߋ鏢32߿rM~R|c%6X.]M58*=]<u,1tjA3%p^~ Q7,r>8.ح ݿ]a%N źOի8o}/t(P `z , ܧT:9Ac@LlX 9dp'KpG~4CEg#k0-\+FtE]3UrH) ӑMbТ'р6%I|ODsB AaWD92e43LRk,1Ow.ѳåTi}01)88CM"^% <>hmg*2g8TV%w[D;JzqOeL3hNK ر:(kpu)}=@Xo UvA7ͨ&?VpsBPA\0kCfF3\@`v0嘖gɼ`k;uכ0"@m>q[ ̴d[Pf0v}?x}q`$Qz_:K{ci< 7-s>++H)]?}p|&tz!o.w k N)$AYS-̠ĶŎ)n[+Ʒٓ~lQr,P!ݘa7WN3EYmAl%+TRf} iZ[SN;/ZߺwQώN8L1VW՛у&vfRS㈡c S珖؊(YG6 *+2II{f1RQoE%Jhmӹѿ]#NwY+kޟf:j+xSܼ2t=O$b]z}w~ ?g0^=4/|_/:6y,ţ iy$B3 HLNEldm/m@3n͋Vz|XylqGqe\1y<ۘr(Q4DGr8 (c̶ t[nf6[hN@nΥx$q){K %M=pa-=;dȮ0^>7? Ýkp>|)ֵhۇ~$9\[/cdo*~i:T-Xugb>^\/t,vszT|yG*ت8Gȩsd\)z$V8^yOc3tN* ,c%ʹM8&a ݾ0.WJGX0H,E- {Pcgep|y<#hBU ;99L1?4:q.koj~@PO)8rxy) ^2kE C [^.{vn,y0''*>8J B@zm;GW9kMJzXgKB M^AdL\rg䳣Fj=A:M1Jd!庎;>I8Mw[tu)^_ o7 ;AF 9}8z(`|]3/ś i< P+쌁d`4 j(sߊX ijkZA :{D̫U$5#*FszQTRmvf>O^'mQנ9R΄FE:]+]OJ`0 㑬߶k%ݍ ؐcǚϣmkK zdot)Z%qf|}S^F1Ϣm-$ixfZ}e $d۝P6q7xu3yex?Wb]z _K_ݼϿA<#FI#{(5#P38\UƱ"&z*MW/5#SZ䪶ў>!ae'5[2QSૣAju_E QlY.sR ڮgw!lv0^pēX'Mφ :vjЩٮЂ_{_lYչp1c'HB$ADZJm-V `tekTbKw"!.PfHHB^^޻9g=߷ַoZZ$WEy3s^jeǁ~^ +Zh V QjTyV"LPmR-HVs d.Z1qU-\).bq. j'wA?g&^td)2mZ!::,6Q{ߗx>y%|>AC4XbI5),B}̱fԃ NU6iŀ jAep]/1y$SZ?tQ͵6FRXjN7eN*:GY+֑̏G&t6zdbT+_i-ZD (2SW$&l\MrDD>8*r%Tj_O3Ndi l'ͦAnl=K#|& &QaGMUi[Qw{jza?UAM[WT?LjX<PĀ}Zk=o1uES ǖ%dSMQ'1$4-R6ZѿC3%'$QwK&jӔ)kV{͠FP EYSiu=*ہp¦Pl`vk Y7.) Oo<ُ^kޟS*rϞYm)! CcȬtH)bi3J* ZX:w0kF%N126#ipdc #dW=-ƿWzrG]:R智!Y3ʨCz:EL5iҍGkC*S(P}Q)(g]m~ Kж-; C[' #FE@OL`ƖW( YζFtɦ5 ƈaon8fSNlc&7۶QY计; A  xnM{$O!eޟ) ᲢkkKBi:ŝQU}|GՏRjB}5:kKhXԷcb9mLrgփ5F,?N鵡3)pGDV1 _ NlЈ =XU[#wsN+SP.[‰R3|gۊ>ӟ"4 էkGroj˪l(4!20;0"5H xE^!i!s}枍|mx^7tDOtaVb8w\+]Ra;#uɜ] @/20ZfM б),BG_pyEڤS**vra~2{DT/7թ(pNʣԋd'l(T^ߐiYxĻ캻V>ldkG_s>UH&axLχb$1T~U6+bԙܯ)YfZDBC,O7Mipam#un&D X㠍 PZ7'C8Uqu:lJ7)be+67pэV<s,cHZQ7sxEW`cVj`c3Y |Y(]XRS=A ϧ TysѦ\]f8/X{>'U4fnxݮk8'&h_E:݉%Ď5 d$7˜~Gl kǔk~'!^Z*y/U \yx=p9߁hI(C琉ă]ͥ#+y`Rk~Ib)܄*:Yݻh$_MS۶|X _NZ(si3/Y E^7~=r{0@{U-;ft=J:ةZg6c=qmԠ mL6NFVME_~ T m^ϖNCZ\]>@'4[ ߵ6mȩ>t|hV~Wٶi!.CMa~1(Ju+Mz !*ߎ 6tÝk@LLň))IS0k.1SB0e1Q bP#Dt %};&ݢ  "7Gtn ʐw 6nQWT,8 M}.akp1D)x?XI-`̽5@n8:lJiM1KU7rdNʛ&Dgy[P(sˆ}DԢb/KMj7&|":fjya-}AmRt'@d-#Xu8dc`Dz/:qO370A]xB<`>j'@qT<3/| +$3A> w=~ۧT.S`ixiUKft e1~gߔМqRb3]aTun0*8JA'6͍04Y/ :21䍎{m*H͆p^MN|d=(WHZ,u27I'#71r,?oʂXxu95q'}Ѣʯ6Jgh'67 v)eɉw zI |OvNn&PS(Tp00 3(g[PCyRkwYM7^xiEՖ p *˫*5{,|Ao]qe|Uj;SƎzRW?ݕA8ŻQN@񍏀^!&ѣNzwD_k|OXՏ꽾RIklAy-t \bbj4B.~\3?Z~iM#,A߬6֪."յQQhcMVq͵5v _{Zjѧ"&|۬-}iaKrpc݀ߺ֌\ pXPfJ+N~"60{ =Q!x{c7\&65$ƐDٺt8m}{,x#{v'! ,-'eOfY:{ָGY4%G~ï˜,f/5ܑEXC`NP,S Qr$D$iʼnKnpkb£dw8!mg xE(.zFim\bm( ́&pv :{ӺI"7㵵墳Dܩ۔eQ v4k?{ߏSABʦ^*|<^׽KD'ǭo0J|/B8\"$_t%:=CTmNT@ېY]k5HЇbg=FM?z[27А:#ԝ~FG&5=0 ~ק0sMºۻ8}2N\;FF ~W<l!UZ!? I.ޏuCZX~W3{TP:HIDB1M3  Pt6ж--8Í~iՏgn>x'bgq h:dY ? yp֡seɧ1XnQjngMqfQÚa@|:Ml3?5 ה F^u 4a܁yZpF-vW^`f<5 PQ37vNt#Ji!='nk4E=e!룘^BKgʤ?zDlYŕ֠ň|3ڕfm:^۩F .MeFCA]CdP3ȷȑ.2/?oC@ |'^++_wx_uy7W A;1D=LҪ* )k\8͌Wߘ6UNz"ps `:C]Vch:G/1XkMS])24'}U[jGA&PeSŬu @"2lhsnꊊ.&ukD\,`2҉(q7ngEAӋƒ*RMN(REƠv?&I5&r T)upy%I;';YDLn*1{41fJ`L0I I NcaVnkg}d3LCDfo+(OB I?o~? ]7~DWOǿ`~Qu(O= YAuuҞFc[1Ed,)O6B4UPV=FNm^P@b|Ln V>UVM{΁n>v C:eD@۶*C'vqs^V_J)7VAm2*ג:khU|Mzc>)*QX^Z&8BcmLajJ~YDH#l}_UV%>FsHlP5řvKzIk͂ x>eҡ6=SP$LpBӐ_NAA‚G~uvq݉,HKZ0ek3~[v0|X=^ήg?Ӷ~vͺy+y뻨ɯXЊMHkt4\hWH(rM3}'3ƥbnMp*ꩋL7;Ʈ9clǿad  [;'^ܯ^@ q_SeSȷNHCt?OWA9t(7 uMU(bWtdŋ.@) EU 2ܼ RPQa# ^Yq-ժj1h4 ӡ&dT=עjcg {$=SMsWtl}. PζheN;z<\أQJ[nNMΉ71{G'ݱI5_$s:1L "(**rb (g[;jw}/-}g^OO|z(NBGݜH틎W H$#:{A2"S咏:͆fFMv]i nko 2_1+uA8V<^xyx3ETT%ݣy tHD1QHXs!>ަ+!d_򴬦\@]hCh яW7Ʒr#rއ4a4WsMdmLf8zWĈ[;0ڥn`bx'"LWO}E s g݂?ׄ^'Cj>u0*E45xY̎=LbI~B !*v|{]MPlCѠ:,;"O@H0h(%OG =Ѹ_>.J"Cb Ϛ@11"2r'5}k|ƿKL}^T%qǰ-1'V5&=5;p0̡ 1`_o_}#:ֵ+!xRR!* y۶*hM']9i"4:!I0[hZk S "RZ֏;'.xY{'2^\8U`뚝O$B4/cT8Xq: -kZ+}](5%+aRǃ^2 8iT /q"J4|%ɀVBwMY!nS.bz5ʦ4*w6`zHN.s/x@BT߽O^wE;}2{*D D%h q-⠉%Y IN*ےqRok)>`=̳϶olg5^b722k5|ܓ|=cvk^ cYCpLVz~cdwcA|^x\|Uo}{.)??'/Hkd? uA(TՋ" xm^$0m89;A=M~K85PjGN'-C"wx~`4}JJGRme#Kɇ8/+Q~s/hĆP"p(F ȝ5\/A cNЪ]= a~ ^`ʍ^j*'pŕ̎?GC1To~W'D@xe״ Ŏ (xyo2 A9RKz27tw9 `=x Cf0T]-hG99ݢuڙt"O$m]bДőkػB[a1"*,Tۑ%bJ 5SC2X]jGq/8p !_*-%/\ع/b7<@}CyBj"oC۶09|׽*wD@~#/|W Otm'"YV!^A'#([*T}c+~w^y\{vq/mEaxx \joEbVGkRvԝUPW@Empz,PB *iY=w#*!.luKtiQ%YuF }jG_\%KqɊ, HB# ڦxy #5du>ctzKgXWTqƿ+ꯝȠ^ ^SXY_/z d"BǥWrWnMǿ t>!kD 5hbrY!8+Z(#_]TQuw!47u([t8_a$3/(pI QC^8qfQA<^ =EɦV㍑uŇ TxDE[Tq;A2N칆XxIqS$`Ž0!u2Zѷ7몓 nk ;Qa&KZ(g[f* Ya:>Ix>n2֤T<(mhoQLWd`q}) ^]rܪNT۶s܏@҅ }fc ޅpL?JgՅBEE amROfȏH4|^f4R V S`?U@8l+czni$ )4C=\rt "*i)['a|K>o{;%BMo\{#F^A8xD%1 `6ڇAqǨUz؋3?/;|^WNXG/B%# q'֛L @F%\@8\VoMTP9St)aAHZ $h89PuMX+h^[V}*zD`JyWb&kxgp-)j> M b Шu TZC樂m)(v{*NryA1?\k~"d:\MU)54ۣD5ku'#og(Ƨ=<n.gPֻz![;@=Hy;?Ә4cLbN7l*\q&.I,=/$ sǛ;ƏTҏb*}n|*5ф\)vM]~9%&5B%KU:Euf;}U׷.Byt"U\KwΕ#nZ m=T|-Dc&VuK- K$Վsc+$(EyuA9ۂbg֔C4j@ x+o/qɀnF&MVC~'vcm"M4tDz1p0?p "P9Ŗj{Adgp7Q ~BfxҕfۜLu ?7uŌŔ6 32Wo y|,u&)м,'CV"k݄)'2Qs?+!vhE~Q4h ccV9ajU/fV2kdSS@RM E1@h{Rx/sl]H D[ˮki#<Qh"Pu9M M쉅A9Q2I5w&t7Ud9n[3 gu렊,5ygFBt 3iINQ5‹ɳAlM>Y@ݽ\2]ΌX1OKAsWƭgu2:,7i:଱`SkxbnEϗj:#gwE+O!g 6M݈1ԍG]d^L7mj(PeSe6P-o 9{(')qU\d^l ~ NXC%cey#Qb(V#6"qN KJSۿVipBd4,`Ln_un|}fnlqŬϣ FĆ~DV)][n 0g ^r}Hj.kr$P)C1DcTDžDn517Otٚ!/zW>~IBTm7e蠙짃V۴jY @8\6 d 9}~ CE(Q&?`Iְd]Oi^SH~e =RNxX.!.[{TL284ZQѫ4; lùu>b00kѦR.sը}L@v=GL3q|Um"j$TXK;H6;j&FM+H)@˯;G6:#g̏PͷbLm3HW0+`L \y'λOIEeZ⦑S`_+'NWQ*@ïOSζ`?yqR/0!YK<dA:Hm$ޏ&ɜ hxADֵ:Uk14{0CkczBXL yl+_ud?RAa:> |S ͅ$ a&,A2e M^*1Z D[#$\7p ʃdD>bF}OMJwdS(v6l*xx%N>Zfy,@8U*;Yde1)>2`GXxS|enMp }ݝ ]puBg7SNT9AU>'R/8%x=sfIi5f¬ʸdD9bKtHDוkrB8ȘM)0M ̡J9Tm2æGGX90ӟ~W!:\~}w>#^]P-j}@ejEEIBb=LǔJLc6[W #~I}?;s*vK7M,qPgoM!+UMC^jIgd3C.4z#AV%*Ն"ſ) EHեjml?bg09|x{73o7lO"l(*eV ^]ddd.iC &i2 { ʦ9E}= <uQl,>>xR_ DI I9 /sO]쪷=(B &Z'75ڳ#S2-= 1l[?#GbÃgRC(BI"E\0(~ՋD;vgTiOQ~'6()IgcS-Tdz Mˬ8awڀ杣c'DX"(I?xNZm< 9̷%vBqL]LPP4D_eX:8 _B ~e?}w =  U>401 xAշUJIƔ.FUMZmHtT!Xqճ)TyIM pDjA@ yMaOה $r`:(/iBBtoSwz,˘T_: sl lģ%NX9,8}}gf Mpɕ7_l{qQvq|vuͦ&j%VA@&*SImƖyQ!c$)ZRǔ=J~bK+F`Drxdk핂ذ&zב)pQkҳb8ݍYMbGm&*O⦩n*g Rg>mOtR%H'MC^zF N?+6Pd@ F??9P^g̶6`/zqPiQ*:z/J+a/oFō @H{ڶ-)Iyq8A2huu$Ox@n4h8DrqpՋNf$<0e 1V"9uUg'Q*d-T D@to~S/ډ4_l< a:Ԓ}%G֞HbSkЏR8m?)N1%P`bϏ2CWwPOg! i 5e ,Ck#5N zװ+RB(MI%uѵ"Wol4MCi?*V(hx,~!|c@-ťWr4Sݴ0xfO<M I֎B[-Q&PG Ld rbFY443}Ĭ))cֵ8A5'ơXz?1(!u =1򁼣X R;=I>0WTD=є@|r9HyM?/_6 Û\favq*U>B ɈJU](i$\:AOr꩚0^e}2"[)/V&+Ig"k8PM*ВC*ȡZX,ܵDi'b,OoH۶febY d~T+X:yG1|iO~@ GTR` t$ERP҅X{R*rgU6 AzH)[Oi=#Qd8H&!:a2T ŌK5꾪 H&!i]{?) #H&adݞM ؿ\-?՟zWo+7#@> |duAC4Pn:Q b soC}E}Gi"J@?} oPPbF*'aCkFY0pMJ@QZޜ8"kyVYW[W<3]=gtctl89gn%!#@ xz>z/&=E aІeAt_+va$j]uM@ i__GfWġt}cٱGёGN>m]BJƜM])Eo;.+O-Q(V+IA7DOTrcQbhS)",p ]Y'S с$|>N?C*TD=~DZq S`4H=XL +o@ @ D@ `Ww򷍓Q p۽ʦFP/f(;x|&xyXuڦU2BKN9m8d+#K{̸p#Q yz}U|H :+Q@ @4;/˕@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ =@ >U?0IENDB`hug-2.6.0/artwork/t-shirt.xcf000066400000000000000000046260231353170073200161050ustar00rootroot00000000000000gimp xcf file*BB!G gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) .Idw< Ys ⁠h⁠u⁠g     )gimp-text-layer (markup "hug") (font "Roboto Bold") (font-size 18.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.627451 0.627451 0.627451)) (justify left) (line-spacing -1.000000) (box-mode dynamic) (box-width 196.000000) (box-height 112.000000) (box-unit pixels) (hinting yes) s..s (eF ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x1 ~x|}}~}~}x ~xU}}~ ~}~ ~x}~~|~ ~x}}~~}|~ ~q~~}~$~y ~%~~$~}x ~&~ ~&~U ~~}~~|tUt}|}~ ~z ~~x}~ ~| ~ ~} |~ ~} ~ ~ ~ ~ ~s }~ ~} ~ ~x |~ ~} ~ ~x |~ ~ ~ ~x y~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~F 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  U      $ % % &U            F 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  U      $ % % &U t           F 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 &me [ U 4& sE <  $ $# % % N 2j 1  a n  i j     {   C   $           ;q|~}~~x x~ ~{~}~ ~x x~ ~m~}~ ~x x~ ~x~~x x~ ~}~~x x~ ~y~~x x~ ~p}~~x x~ ~~x x~ ~~x x~ ~ U~~x x~ ~ |~~x x~ ~ ~}~~x x~ ~ {~ ~~~x x~ ~ ~}f~~x x~ ~ }~ ~}~~x x~ ~ v~ ~}~x x~ ~ }~ ~{~x x~ ~ ~U~x x~ ~ }~ ~}~x x~ ~ ~| ;                 U   ;q  m           f    U   ;G        #   0  %      L    `    7     *     U =      |(~}~}~}|u |~} ~ ~}mt~ ~ ~x{~ ~ ~}|~ ~~~~~~}~~~}}yp{}}~ ~ut~ ~}~ ~ ~s~ ~x~ ~x~ ~x~ ~x~ ~x~ ~(             (     t         (ʠb $$4   3  l  <=  c         ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ ~ ~x x~ ~ }~~ ~x x~ ~ ~ ~x x~ ~ }~~ ~x x~ ~ }~~ ~x x~ ~ }~~ ~x x~ ~ |~~ ~x x~ ~ }~~ ~x x~ ~ `~~ ~x x~ ~ }~~ ~x x~ ~ y~~ ~x x~ ~~ ~x x~ ~p}~ ~x x~ ~}~ ~x x~ ~| ~x x~ ~ ~x x~ ~                                                                                                         r   :         %         8   E      ~x x~ ~ }~ ~~x x~ ~ }~ ~}~x x~ ~ ~|~x x~ ~ ~{~x x~ ~ }~ ~s~x x~ ~ ~w~x x~ ~ }~ ~z~x x~ ~ ~}~x x~ ~ }~ ~}~x x~ ~ ~~x x~ ~ |~ ~}~{ x~ ~ |~ ~z~} x~ ~ x}~ ~~} u~ ~ ~|~~} ~ }~ ~}U~~{ |~ ~ |~ ~}~~}z~ ~ }~ ~}~ ~|jf|{}}~ ~ ~}~}~.~z~.~/~@}~~}~ ~x}~~|~ ~z~~{}~ ~p}~~y}~~}u}~ ~}~{~ ~}}~ ~m|~~x}}~}~{z)}|~}x~;U}~}:}~~}u7~}|y4{}~~}|}0@~ ~1 ~0y~ ~1}~ ~2|}~ ~3|~ ~4x}}~~6y~~8{|~~;v}~}               U   ..-!      (;:740 1 0 1 2 3 468;               U  f 0---     (;:740 1 0 1 2 3 468;  R  4  (        +  <  g    x   K +.   a   } ; v $ 0 ? $X H.1-- I ;} %k cV :Y  v#mś^(4xR;m:7J~4h20 1 0 1_ 2d 3C46)8x;_ x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~x~ ~t~ ~}~ ~|~ ~uq~ ~~}~xmfx|}~~~~~~~ ~}~ ~ ~q~ ~ ~y~ ~~|wy~ ~}~}}~@{~ ~}|~ ~} ~} ~| p}~ ~| p}~ ~ ~|m@s~|}~ ~j~}~~|~}f~x~}~~}~~}z ~}w ~}| ~}|v}~}}~~}}~|s                                               m           f                  p  D !O    P |% ׵B= x  @ h  $  H r @z r#DH/  ( zͨSO9'+ ...     gimp-text-layerp(markup "\n (API FRAMEWORK)") (font "Roboto Bold") (font-size 18.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.627451 0.627451 0.627451)) (justify left) (box-mode fixed) (box-width 299.000000) (box-height 139.000000) (box-unit pixels) (hinting yes) 0+1I@ILIX+1[8APHHHHHHHHIII I0f};y~~z9f}~|}~~|~}~}~}~|~}}~~}~}~~}~q}~{v~~z~}{{~y~~}~}{{}~~w}~~}~}~}|~~|~~}~}~}~}~f~}x~~}~~}~}}~~z~~}~~|~}u~~~~}~}{{w~}~~U}~~~}~~}~}~@~~}~~}x~~q~~}~}~}~|~~}{vp~}~}}~}}~~}~~}~}~}}~}w~~}}~|~~}~}~}~}|~~{{~~}~~}~}~}}~~z}~~v~}~~}~}~}}~~;}|;|~~q;{}U<f);9󻹹󀻼;;;<);9fq󈄄f󀉉qv;;;<f)}~~}|f}~~|~}x~~}~~}~~}t{~~|~~}~~}}~~}~}q}~~}~~}~}}~~}|~w~~}{w}}~~|v~~z~|~}~~}{{wy~~|~~}~~~~}w~~|}~~}~}~}}~}~~}~~}~}f~~}~~~~}y~~}~}~f~}w~~}~~}~~}}~~|~}~~fU}~~~}{~~}z~~}~~|~}~|}~}~~}~~}|~}U|~~}~{}~~~~}~~U}~~~}~}{~~~~}~~}~~|}~{~~|}~}~~@~~}~~}x~~}y}~u}~~~~}~~}{{wx~~}}~{{~}~~~}{z}~~~|~~}}~|}~{~~}~~}}~}~~v~~}~}~~}}~~}~~}~~}}~~~}~~}~}~~~~}~|~~}y}~}w~~}}~|~~}p~~}~~}~~}{{w|~~}~~z~~}~|~{{~~}~~}}~~}~~}~~}}~~||~~}U~~}m~~}}~~v~}~~}{~~~}~~}@~~y~~}@躻峪񺻼U񺹼纼깼U򀼼@ftq􈉈fU񈇉󃉉쀉ꈉUv@%}=}~}~}y}}~|~}|f~~}|~~}z~~~|~~~}~~}{}~~z~~}v~z}~~|~z~~}{w}}~~|~~}z}~}}~}}}~~||~~~}w~~|~~}U}~~}~}~~}}~}~~}y~~}~~}}~~}|~~v|~~}}~}~~}{~~}~~}~~fy~~v~~~~~}xy~~}~}}~}~~~}~~}@~~}~}}~}~~}{z}~~~}{}~~|q~~|~}y|~~~}}~~~v~~}zv~~}v}~}||}~}u~~}y}~}~~}}~~}}~~}~}~~}|~}~|~~}}~~|}~}@y}~~}~|~}m~~}~~}z}~}q}~}:t~}z:~;}~~j:|}q;@%<U󶼼軼;:::;%<fvۉ򈉉Uvqހ󈉉::::;        EJ"%FREE     rgimp-text-layery(markup "FREE") (font "Aleo Bold") (font-size 18.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.627451 0.627451 0.627451)) (justify left) (box-mode fixed) (box-width 187.000000) (box-height 127.000000) (box-unit pixels) (hinting yes) KKwwK\nv,v|vA"!!!           A"!!!           A"!!!           A ʰ~    >E\qV*ghh`  r 'U     (()5k*q3 M 8>88  ~  tk[@! !  ! !                                               ! !@! !  ! !                                               ! !@! !  ! !                                               ! !@MPi P  P 3 P 5P *P  > P> L  @Pf  %P`  PK  PLo  P   hxx&  | [ S"  L 2  K  t  t  t %t  t &t l%v,  (4  P3  P  Pk  'P>  AP.鿔 8 P8 P tPH P PP      3333333#######33333333            3333333#######33333333            3333333#######33333333      PPPPPP P @P %P P P P hxx&3333333 K#t#t#t#t#t#t#33333333 (4 P P P 'P AP PPPPPP!!!PiiiPi]?.import hug ...      gimp-text-layere(markup "import hug\n\nWEBSITE = 'hug.rest'\n\n\n@hug.http()\ndef find_out_more():\n return WEBSITE\n\n") (font "Aleo Bold") (font-size 18.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.627451 0.627451 0.627451)) (justify left) (box-mode fixed) (box-width 258.000000) (box-height 261.000000) (box-unit pixels) (hinting yes) zZzzzwAQa?W#/?O_oE;00;;;;e @E;00;;;;e @E;00;;;;e @E,;N0$40%,;7,d(Sj5LT f`8h88w(iTSl rK`SdA+8t[88P(5ZTV;hw2gA`8L,P($8p T$`[L,P($8p T$ڮ۬`L,P($8p T$`G1P($8p T3hE{.bE`+YP($8p T|JkF`\@hP($8p TA~ i`T#;T$;T$;T$e\8܍uӚL@ +eDD8vEQ^DDbDDDDbDDu&G@8Dnn2\(\(ODbOd8Dc+p \(\((b8DCߚ\(\(t8 #\(\(ܞ'ZHH!8vDLk&&\(\(gKӉ8D ާ]\(\(ѝрd8D\(\(ih?8D/xz\(\(B+XDD%8s@Ik0eӈ[sDDbDD\(8.+ڗL\(@N;;;-     !  6445E$$+%-3,,AN;;;-     !  6445E$$+%-3,,AN;;;-     !  6445E$$+%-3,,ANT$;T$;T$;T$-| Ti:d $ Thc dG(W8TGHdX T$ddPـ T$hd) y- T$hdfA!T$h -T T$h3UpӣL88+x T$haH*5<2 4n 4mw@2~q5fܫ>ET$ \$`T$DDD$[T$*HT$d+Ti|DHThct%+THH!-T$|DT$  T$2T$DD%,T$,T$A       $       $       $ :d $ `8h^ە! dG(W8 `SdA{:S[GHdX `8GO_!eddPـ `[%$$͒hd) y- `khdfA` h - _`SN h3UpӣL88+`E?luShaH*\`\`C<2 $ ///&&)'2242.n ///&&)'2242.n ///&&)'2242.n /$`/%,[/7,H&ѕ"|d+&5X+8t[88H)L,+'K L,2AL,2Z6G14i+Y20<#\@hT.0xn ''''      ''''      ''''      T$'T$T$'T$10T$'T$co"f"T$'T$ :Ti:d $ Ti:FThc dG(W8 ThcH"~TGHdX TG#\=ZT$ddPـ T$ TUT$hd) y- T$&Қ@T$hdfAT$ j6      j6      j6      j60V$$%,%, 7,7,L!Q ||Tr +8t[88+8t[88TSl Z HL,L,TV;h1k dL,L,T$;RhL,L,T$ڮ2!ZhG1G1T$:s 45g45g45gn 4mw@2~q5fܫ>g 5            87:;;;;; 5            87:;;;;; 5            87:;;;;;D:7T$h - _T$T$h3UpӣL88+T$ET$haH*\T$̏<2 -2I n  _mw@2~q5fܫ>\ ?0?0,\ )LP )LPN\ 4[  c ^ە%| %|d(vO {:S 8888 888888w(t9i GO_P(\ %$$͒P(\ P(̽\ P( SN P(_S E?lP(*ׁ. \`P(`87`Sd7`8:`[;`;`;`;`;`  " # $ $;###         W5-;;+          " # $ $;###         W5-;;+          " # $ $;###         W5-;;+        h+Y+YT3hEr h\@hT\@hTT|J S hxxTA~)K"T# 0J#T$ *$T$ H{$T$\ ;\ #$\ #%,[ #7,Ti: c fdThc vO rKd+8t[8TGHt9i w2gAdL,T$d\ dL,T$h\ ۬dL,T$h̽\ dG1T$h {.bE+YT$h_S kF3Upӣ\T$h*ׁ. iaH*W5CHH4-$;%,;7,+h^ە|d`8hTi:A{:S+8t[88d`SdAThc GO_L,d`8TGH %$$͒L,d`[T$d L,d`T$h G1d`T$h SN+Y`T$h E?l\@hT3Upӣ`T$h \`xaH*`T$h=     C55 =     C55 =     C55 =L| Sj5L f`8h^ە88 irK`SdA{:S5Zw2gA`8GO_$8p `[%$$͒;$8p ۬`2$8p ` $8p {.bE`SN@hT $8p kF`E?lx $8p i`\`)C5CHH45\8܍uӚL@ +eDD8vEQ^DDbDDDDu&G@8Dnn2\(\ODbOd8Dc+p \(\(b8DCߚ\(\t8 #\(\ܞ'ZHH!8vDLk&&\(\gKӉ8D ާ]\(\ѝрd8D\(\ih?8D/xz\(\B+XDD%8s@Ik0eӈ[sDDbDD\8.+ڗL\6322'&&&00'&&&244..555//555.6322'&&&00'&&&244..555//555.6322'&&&00'&&&244..555//555.60V32 2!Q'r_&Z&1k\&R0!Z0:s'r_& S&K\&0J2*4 H{4 \.bDDDD.(4(4(4(t/(HH!/(4(4(4(DD%.(@@@@@@@@@@@@@@@@ @A * Layer #1b      l* $0* ,<L\l| ,<L\l| ,<L.>N^jz&6FVfr.>N^nbv 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p        n------------------------------@@@@###############################    ----------------------------------------------------------------################################################################    ----------------------------------------------------------------################################################################    ---------------------------------------------------------@@@#########################################################                    B PB(!* Pasted Layer     *! ` l x  *)9ul| 1&/00001 DoЍWg?oZYZ =i<,j\*(HHeduj5FYb;9=!QwH60: ;t[/_ d 6/ es \ H $ ;W P x U  . Bc JT b 8 / M kn t t, Y C  C _Z _j _z _ " xII%I5IEY^5566^ !_!o!6Xf%Ś7#3CSCs, G W g$+Igk{XY + @ P ` p            0 @ P0//.?"5)"&3m!"*+31&')-3R$+)%.90//.K5[KU3JK^`3mATW[c3QD`[Rg:976e6zes6de6Xqvz6m\zn<:X97 .0//296/-("I/*#*"&$*@0a**,1**'$%6<"$*&8B5/)%#$'+d.!&("#77;:83-(%$&9#*/*&&7:9;=<93+$$)"*R,#(-%"39><97:<:5/*#%& -f'-65%!2:9:;:;;<:<=4*''$#"#*;5::2$ 1?;::;:9><::70,.%&&!&7T:9<6$%69;;:879;68:;::85.*'(($! &9l .0//2w/eCYL/]N]LUQ^0B]^am^]WQRyKQ]T|vi[SNOV_gITXKN{{}qcXRQAT~N]i^TUzr`QQ[K@]aNYeSKq~zuh]NRUHHcVeyuRJo~s]WVQMLM]uoQHlツ~{jbfRTTJDT{wQRw~|{w||uf]VXXQJG8T .10/6㬡0[yg/}j}gsm0Y}}vmnem}qzpjktbqwejwnmXqj}qsmmzeV}jype}jnsaatnd}vtmhgh}ma㰲nqqd\qmn㭧}twwmd_Lq F<85 2}-,(u%#"\ 000/./.ہ;W3R.!+iւ1" !%('#!"j1($!)$',/,)&&͑60& &)',/2:=84-&|?,&&!!*14:;;>=896+f5&"#&(%,/399<;887;7*|=- !&)()/19:;;99:8788:=5%֖j:+# !$'%#'/5698><;;9:9<<:9;<3'~X;'#!"%%"$(+4878:;<9=998:99;;:=;2& 000/./.鴃3fAEJ_lKGJRXVMJKlXOI\QWahb[UTwkTGT[Vahp|seTرbBUTJJ^ls}w_ŤvTKMTYSbhq~}||{z]ֱcHHJU\X\hl~}z|}uS`NGIOVSNViuy|~rVײVMJKRRLOY_t}z}~~|~oT 0>0/3/.԰6ʼnX^d Ւe_dnwthde͒wkb|mvzsq ڡq_qztqӾYsqddˠqehqyp}Ӹaads|w|pͯj_bktpjttǰthdenngkyq 9h5 1d /+(u$ d Q. /W/%&"*W/$%(( *c.&)'#!""O.'%)&''&(L/(6F4)#%($(!"E.'4B961+*$&))!!H..Gi/RTK^/QRXXH^.UT[WMIKK.WS[UVVWUDY/Yys[NRYOXJK.Vswm`^OT\\JJ./_/nqe/mnwwa2sqzvhbee.vpzsttvs\y/yzjnykwde.tkq||dd.=;975 3 2 / 669{<:+ 669{<:+ 9::+ *F -O!?%#$$%+9|%I )'*(%##"#2F6 )%264,'&&$!&2]#2 %&2::5-'%$%&$ "'8K'($2>899:<96820.-*(&$ !$)1>~C+!(*2=59988:88:;::850,(&'(&!#*3[6"&+,6=8:9987889;89:;;::973/*&&'(&#$!$-28x("&*579;9;899:99::;:;<==:6420-+)*&&'$#6!)&+16::9;;9::9879:;;<:;:87:<<643/.-)'o& &'/5>:9;9;::9::9::9:7:;::8;<;:9:866 '(&-699<@79E4:9::8::8;:889:;899:7::9^&&)'&&)58=98;98>78::8::7::9:9789988;:989:: *He!SMOOS_~%H\W]YRNNKNoyH[SoytaWTTUOIETp#pHSTpvcWROSUOHKW|WEXQo|w|okfc^YTQGIO\l_JY^pv||}|}ukaYUVXTJACN]rwLT_aw}|{}}}~zrh]TTVXTMOIOeo}YKT^u{~~}wsojc_[^UTWQMwJ[U_mw~}{|{ytrhfe[VTHUWiu~z||wwHWYTey~z~s|}}||~|~{TT[WTT[u|~|}{|}{~~{}~}|}}~ + "a)phkkp)a|v}ynjjej&azpvqqskb^q#apqvnkpskaevv^wmyqm_bk|dyystwqdX[j}gq}qqtwqhkbkyeq㭬zsqvmhdzs嬩ztqasvavyq qqzvqqzﭪ 94 0+&!()(+O+..lܷv:+!"$*2;ZyƜmI5*&#%&)(&%" #&(+7>R|yɫQ:2,,"!!"&'&&'20,*&%&'+)'&$"!! !##&*/2019W]a^dQQNNKHEE?=3(&*(!""%&&!))+,15::866543-,-,*($"%)*(%##&#"("!  "$$%'&$%&&')*--.39;<;:8>=;::=<9;:88:622..0/,'%&&%)&(''$%%(**(&(+42236::;9<=<<=;:立Ԯ_JKQ^oĨu^TNSU[XUSKDHN?UY`z;paaKJJLTVUUWojb]USTW`\WTQKJJGJNNT]hojm~qYU]XJALKSUTUJ[[\_alv}wwvsqeaea]XQKS[^YSMNTNLXLIBECCDEHHDKOOSWTORUUW[]ccgr~}~}}wopggjiaVSTTS\TXWWORSSRX]]XUY_soory ѭdemžqjpszwspe\ajUsy įeddgqtssv}spqv|vqmedd_djjq}ys}wdXgepsqsdzz|᠛}wmepzyphjqjgwgbY^[[\^aa\ekkpvqknssvz}tpqqp|qwvvknppnw}}wsy\:2%.X%&} 014/30Һ2+/I!"- .ށ/&& ,#/4'+%.2*"!5=!$*)*6=?2&*"/:""%$&4<=><:2(##-ي8%#)'(-5<=:8<9=3*+#+j-"''037:;;::;:;:<5", .x8&")()07<::;;<6<9;7:3&+.o:)!%&&*/7:;7::9:9:<8<98::<6'(.c6'!&(*&,38:<<;8::9::<8;99::;72'- 0# $&'*,.47:;;::8::9::9:9:8::9:895%)#*()+,.5;?;:778:;<9:99;:9:988::9:;979&(&*-268:;:88::;;::99::9968::9:<6?9,+& 06<;:99::99::989::98::899699;:86;0(& 0{8:69=;;:98879<::989989:8:9898:7997-,*'(!,;<9>?::=?<9988:;9788:;9;87979:94(")$)$+'%0 014/302_?hJKeGfi=TTGbNht;W`Rgo]KJuވJQ^[^woT^LhKKROUsoYNMe|SM[VYeu}r]`M_ߦcDKVWjq{vLbHfۮ}T>L\X[kzy{rT_Cgש\JRTU]izz~~|}yVYEgɢyVJTY^Uar||~}{oVcGkMHOUW^bgsz}~~~}}uR[N^X\_bgu{z}~~~~~||z~TXU]cow}||~~~~y|~w~a`THkw~|~~}}~y~~}ykXTGk}y~}|}|{~|~~|~}~|~}{zea]WXJb~~~}}ހ~z}||}z~z~sYL\O[Q`VRk 2441;12Ude_ԎRqq_jPvn}ed dmzqgܯeenksyjhקphzty}h͆\etvgaѩqSg|wzq[ί|dnqs}ty^ʣtdqyst_haksvnzjw|qws}醕裧qa𡳲𲯩wq_ϩ}vwd󲳪߭yg|kzmtn :75 2 /,(d$) O!%&'(*,    887697866~3 (8!$&#+@(!$%'1)+!"(*,14:&.!)&%*2:>;;'4 %+(..8?>86;&o3&%(29:;88;98'{.#&&(/46798::8658&i+ "%),28:9:69<88<86i)',#.27:;;<:99::8`-%("(5::879;>:9987H!#!"&/8:7?><:88:=9987>$#'&,6:88;::;::9::9876&!#(+05766987:99899:;::98٫1$#(+16@<9<=97;;::99:9:l-!&"%-35:;<:8:<:8::9::9:;ۅ4!",(*079;<;9=<9;;::9:;<9::99:;Z&")'&*3799<;8::8::9;99:989::8;878::99>*$#)++1:9;<:998::89:9:98878998988::99:B""&(-158:;;:9889::8898:98878998789:988:g))',1668<<:889899::98:9:97889989:5$&(/6;><::78899:9:;<::89877899F'!&*-8>=;:99:;::998::<:99;::89:98:97689983%'%6<9<;;<:78;9<;:99789<:998:889899866887T! %%&%6;8;?:78976769:779:88<:898:788:89:86787, ')*)$$7;:99::9878988976:89;::85:9886799889::88/*%182(%49::9:;9:88986989;:997988998898898m*'$+79<4*)5998;::99:9:88:898898998898878X$!),:7>:1)*399699::98879989::9959:889<98868::78877678N*'.6>?7>3&&/797679::9889:9:48;877:<98868::77887667i!%&3::E88>4%#,9::99:8:9:58:976::9989778876Z")%66;;66::4$!-<;;::9899:8868:8:8988969:899886887i%-09=;7<::6$+;:;889::989757988::68:78<9887897:87677878876978y6rAH(|JQTM+ÎXJOSWm)`JLX]alt&fI[UR]o'tHS_Xfg|}w&q=ATRXo|}}'gNTTXhsw{~}|yv}&_GLR[bo}y~}}}w\?WbNgoz}|cASXLXv}{~|{ҒJMJKUh|z}}}|{zΊOENWUaw}}}||{yTJNY_jv{yy}z~~}~~}}lOCNX_lwz~~eITKReqv}}~sILaY]kz~UK[WT]qz~}|~~}}}{}~Ҋ]QM[``m~~||~~~||{||~}}~~KKTYelv}~}}~|}~}~||{||z|~|}[E[Vamww|}}~}~~~~}}{|}~}~v=OUYiwz|}~~~~}}{z|~~VIT]e|~~􁃁~~}~~}|~zw|~~}rESVSy{}~~{}~~~}|}}||||wy|}{JHRRURw}z|zy{y{z}||}~|{||}}||wz|{bHW[^\OOz~|{}}|{w}}v|}}w{||}}|hD]Rm}oXSs~}}|w|z}|||||}}|]WQ`z~s][u}~~}|}||||}}||}||{|QJ[b{l[]r~w~}|{}v||}|w|{||{zw{|;^Wfy{qTThz{w{~~}}||s|}{z}|w|z{||zwwzJRTq|}tRMb~~|v|{w|{{||{zwwL[SyyywtQJe~}~}|}|w|}||}w}||}w}||{{zBSej~{wOE`||}~}{uz|}w|{|||z|{}{wz{|{y86;7;գ6ӚXa)dmqh+ݿwdkpv)Ղdgw}&Չbzsn}'ܝapw&ΘRXqnw'ҋjqqw&̀_gnz |UvjɆXpwgwdhdesk^jvsأqdjyk[jw͈bqen֛bgy}sezvq} }mhz򦧬eeqy򦧬z^zt⪩Rksytbq}ޚ^ptpdannsnavz|kk\}nwp©}vm}zmdzz}Pvqqdnqnh󭯬gzpmdYpk^ܩ::864 2 /O -+h)h'%#!\ #$(*q*--0 0 3 4X456h78h9'0!%((0;;5&>#!#'.37:86'r(!+*&,39<::'1%*))19:99:;:&8"(&%++6=;::;:'K)**2/%#088<>::;&i'(*'.>E3'%.:9<<788'v0"%**.==9>7&!+<:77;96"'&05=:<:;8,&,5;::7<8>&%*.1<=<:;::9.%)4;::7<9>;7=::;::;<:.%+9988:86!)((7:<;68:8=89>:99<::;2&&6:88;97 "!%.36<:=86<=48<=9:98<98;4&"3988=:`&&+36:;9778:<<:9::=:9:;;:8)$+8<879Z/#($,<:;;::99:9::9::99+$(59768|,&$&*.9=6;:87788:899:.$#.8989|*'&&,6;97<99:9899889::9:;88998+#+69861%*&'3646:8879;:9889:99::89;97798:,!&3=<9 ;""'&+58;><8788:<:868::989:98789:97;1%"-9:6:!$%)/7;88::8998;<<;:9:<9::9::9889875*!'499 7#%((+07;;9=:78;86:8899::8::98998998;1##068Ӑ8$&)(,/49978::99:98776;:8::8988;798:988756887;6'#*2:5!*.+/6789989<::9::9876:98:98988<8989<998788669:0%%-71!%&+15:;:998987:98:98988;9:98:8899:955164)&*11 "&().8>:7;:89:976887898989:9::8867885:6::2+'+: "($-36;<87:;::;97887899::98:89989:99899656546:95+#%= ')+/9>:459<:;;99::89989898:;98898:88:9:6837:9;6)%#&*)(/8=;969:88499798989:;8:68:88;887::889:88988798.'%$(17<:5898866;86898899867889:<9:46968878<886:99889775:8:96974)/6;;9978:68:;>9:89<:65887989::98846;:99:878:88789986:78:989:68::9779;9988:89987889879988:988966::99768::988778878989;:9989;=787998::9:98899889889878:868:8695568::87799:899879:69989:;:8789877998989:889867:878:887678998<8559;:9::98898698898;88767:989:889:88986798899889889<9669:868879989:;889877:98:98788988987898898878::89879:868:99889::<85769899889879988:88969::87886579989:8:99867788988::9:66:9:7::669:988779989<8688:946898788985:989989::8789:9<::8:699:88:;::;<;:88:9568869889:9878899899867:99878:;:9687:89::9::9::988998866::6786768898988986789989:;:8688:8::;:9989::9:886867899:99898799:89::99::8989::99:99::887689989:8978879889:9989:987::;:989::99::8:99::98:899878899889:88689897998987::9889:99::879898:9:98988:99889::79:885:9889:988989898789:98::9869898::989989866:9:988688789::9889989899868::98899::8:8:8:9:879866:97789988::9798766789:;889:9878:;::978:;:98769;;::<;:8:8689887667889:9778866578868::879:89::868979:9887887:879:889::78877898978878:87::88998:99899889:889:88:7998::7787788998898778878866579:98997:878::9::98898:7989::7798899::989987887568998879988997:88:9::9889899889:98988:97889688778998878:889898989:8::88::889789879877878987887876766887889:987897678878966778788689868:99:98::866775778;;:;887887899887886468988::88988689868998899879986788::757768877898768878867766868:8668967889897878:7889957889878998788766788357889868998788787789887767887787699887:766787768997788656788686887889886689778766778769887:86689889877886:965689788789:98568866887678778:78799788669:88:98878846875446689889887878668756:877889;78789787558866998788689865668687878757:88989798787;86798678878766864467657878868998689679:9779989877:9987787789976796446776269977897898765358::8788579:8679=99886788987665778:9767'kIRXYju&։MJMVfr{}w'XI`^Uar'mDS^[\l~&}KBYTR__w'הEC\]]oiRMk}|&VEY]WgrVSgz}}'kLR^]gzUJ`{{zwEKWUku}bTauz|ЊTES^gmfS\sz~ֆIIMTgq~iTUr{cBQXbp|rVRo|vLa_Xll򀃇z^Qj{lTSQYezz{󃅀gS_}|}w@J[YYzy|}|oTTw||~{GKISfrw|wt}~~}}tTKq|}EATT_ry~{z|~}\Q_|}{hDNXQa~`OXu{w|bTOT]f~w}zz||}|}}fONg|~}^AWTTbw~{~}~~}|~~}}~~|_N_w|wlBS^TWrysy}|{|}~~}~~{z{}aJTr トLKVT_u|}{|}}|y}~}~|z|{mSKe~y︀CJQS\i{}}}~}~~}|}}{u^JWs~ zMRXX_k{z|}w||~|~}~}~}mMNjy|}OU[Yaht~~z||zzw|}~||z~}||zuw}}{wWN^ovAI^f_hyz}}|zy~|~}~|||~}~}{||wwjRSe{lEJRU`mu~|}|z~|~}~|}~~}||vumyt\T]mmGLUY\f}z}~~{w||{|~}~|~~}|w{}|}|vwo_W`ˁHKYOeqy}{z||{zz{|~~~|}~~}~~|wvwvsw~u`NR͈GGW\_htu~|}||}|~|~}|~}||ww||q{w[SNT][Yh}w~||s~~zz~~||}}}w}||}||||z||||}}||z~|fVSQYl{u||}ww}w}}|~}wz||~ty~w|}z|}|y~|}{{zu}~w~{t[hw~{}w||wu||}{z}~}|tw~~}z|}|{|}yz}~|w}~{z{}|}|{|||{|}~||~ww~~zy|}|zz||z||~}~z|{||||}||}z|}y||y~vvw}|{{~}~|{y~~}}~}z}|zz|}|}|}wz|z}}||zyz|~~}}uu~~||~}w}}~}||}{wz}}||}|}wz~||~~||~}||}~~~ww~}w}|z~~}}||}~}||z{{}|{|}||}z|~|}~||}||z|||}||}~|{|w}~~}|~|vzw}||}||{|}||}|~~w~|z||yvz~|~}~|w{z}}~}}ww{ww|}{z}|y|}~tw|~|z||~~}}v|}~}z|~~|y~~||}|}|~vw}|}w~}||~|{|}}|w{~~}z}~y}z|~~~~|}~~}|ywy{|w{w||}}~~|}}|||wz}~~|~|w||}~~|~~~|}|w|yz|~~~~}|{၀}||~~~}~}~~~~~}|zy}~~}|~|~z||z~||}~~~~}|z}~~~}~~~}}~~|z|}~~||~}}w|~}~z~~}}|{||~~~}|z~}~|~~}~}}~~||}~z~}}v~}||}~}}}|}|}|z|~~}~}y~|~|~|~~|~|ywwyw~~||w}||z|~}}|}|w}~|}~~||}~|z~|wy~{{}~||~z~}zyyz|~}}|{|z|~}zw~}|w|}}zww{|}}{{||wwuz}|}}w||{}~|y|~z~~|}}||z||}||{}z||}}|{||{{}|{||z|}z}||~~}~~||}~~||~||z~~}{z|{{|}}|}{{|}||z||wwuz}{}z|~~||}~~||}}|}{~}~{{}}||z||{uw|}}{}}{}||~~|}~}~~||~~|~||{}}||}w|}{{}|}|{z{}|}}||}}|~~}~|}~~}~|||}}~z|}z~|{z{||{z}|z|}}{|{wzww|}||{|}}|~~~|z|~zyz||z|~wyzz|z}|y||y}݀}|ww{{u{{|||{||}|{}~~||z||ywywtw|~||}|~||y||w|}}}{|w{|}{v{{w||{{|}{w}||z||yzzywwy|w}|ww}~w{||}||{z{}|z{}z||~~vz}}||}|z||z|}}|zyyz|}}rvz|}~}y}|{||z|{{|}|{{wz||zz|{w~~||z{wwz|{zw}{z|}||yvwz}}||ywy||w|}}{|}||ww}{z|{ww{{zz|{w~}||z|ww}||}|z{|}|wwy~yvy|~z||{||vw}}ww}|zw{|{{|z|{~z}|ww||}|z||tw|zvttww|~}|}~}|}}{{||{|ww|{uw}{{}}||{|{}z}zuv}}ww|{||w|~}wvwyywy||ww||{{||z{z{}{vz||}||~{}{|{|w{}wz}||}|{{||zyy|yttwzwuz|{||w||w|w{{{|}{{z}{{|{{|{w{~wsswzzwpw~~zz|~{}|{wuqu|}{|}vz}wz~~||}w{|}|zwwvzz}zw{)ڑbnwy&hdht(wbs(ڔ\pz|&eYyqn'^[|}}nh&t^y}vtp'ёgn}sd^evsqq^pp|bbhqqsՆYmwtnנgw򭰶mגqpmy󰳭pڡVdzyyqqަ_ebpqe^Xqqﶯ|mnj\jwm񭬭kwӅqkq}kjXvqqjْYpqvdq ڲgetq목pe׭[dmp|dv ݤhnwwڪhj٩kszyvj٠Xbnp֒^dnsȤ|q}ٔ_gsy|թvaeykæjn__v|逸zpjq}zytpmyz맦줣֪୧槩橦ﵪ۩쩧ʪ̩槪󯧩ᯭ믬ۧ멪۩롯٩󪤪ତҬ֦ө怜歪硧婪Ԧݭ䣡⩦ɣʣĝӣ觬64 2C 1 /-+h)2(&$#!!##%'),.0 2 468:<8<=6$).;9:998:;=9:98899:576-(&)($!#2=l7::6%(-::9989:99877886;6::7533,++*%!""!!%5Kmo<;;9)&+9:8899878867886:7889;:9:653-)&$)'&!!" #*,-6FHE?:Er><::,%(79779:878878:9887644787;886564--*&&'((#&)(&##% !" # :868-$'3:889988688789987:85346675697789>;88962..+&#&&$'%&%&&$%:9691&&.::9986867654:986567:7886689:9788::78:99874421-.:<:<6*&&8::98986688755654:887467:79::9887::=::89:55:;88:=:;::<;=7;:;8,&"48:98:86589866778;766368:6577897:96:9<::769:88<98967;99;:9;2"#)286:6;;9788756868667::756778:88789::88::9899::99:86:5&$$(*.89859656875268669865577897789::89:989989:975:9-%()#&+3:=:7546764997864556778878779::9:889:78998898998:<3&%("%!'.669866565786885567788:88:;98899889:78998:;::;6,&'#)##!#*1786686776866766789::99::988:9989:<;9883((*20)" %*.2589686678:87766788:89::98::987789::99::;898698(%*491-%"!!$(-26697668835765778:7::989:899:998778998:69:6794&")77<6*&"!"#'*286569:346657797;<978989989898:96988/$&/6:8860'$%%#"&*/6988657988969:78689::99768786;88:9798774(#&.9:88652-'!''""&*/486688:;:6:8877::9989::989896;876:97986792'"(5:657::621%'%$%$#%)+069::75::88:=:=<:998768665749676:868768;7.##-697767965/*($!!&&(,15669989<:69987987696:776986887:761&!%.57975567896761)%&&%&&$$**-046768:;;:8899887;8;:7697588:661(#(,289767787459:8742,(&$!!#"%%&(+-04543589:98<9<:76986887869:93(#)-3886568865789:9:8663..)()%"$"%&'('&&(*,+*-*++66:87987678689.#&(/7:75569876779::88:978976.,-(%''&$#""!$$"&!""998:89648:879;61($%-69869454879988986::9::881*.)+*'')*))86:886:778:<:6.)##*4:;5698969;99889::8::9;:87:;6:6:799:89858896=88789:9862)!!*3887869:;::9:9:<:788:7;9>:;89::86786:678;79;887667884,$#&)48;9668978::987::9:<:89797:8;89788766.9976<969788767989:6.&! )179776656899:979<:8:77687:9:;:9986&2895;:8:99878:767970)&"&)05::9::9889;8878;:9:98788:99:977874%)1:7::9898779:730%&'*)/5<9::87898:98::;::87997)#)::99:678878;<:99754.&'&)*,259::8898;;9::76778988:86688*$$.8=<98998668:989659;9730,(%%)*18:<:67:9::8;9667::9867889878*')*8@7988768:8997:8863/,&%#$&*2367989;8;:98::89::;::8<8,!#/678789767:88998:679::964.,*)$$)'%(-06:9=88:;989;7789@5&%'+59:9877889878:9889=951(%(#&&'&)*(*-/36778:7556779;;=6*$',59;767:98898678:97678879=842*+)'#%&$'$$%&&$##'%$%&'*,::93(#%*2::89::878976788;87::No{yRXc~~}~~}zz||wyzvqrb_`^RJKLIEJSvӅ[T_}|~~|z|}}|wz||wz|}wuqe\UQ[VTIJJBKHN]acwÊaRYz~zz~|z||z||}zyss{}z|}}wvwsce^UTVYYNT[XTNNRHILGHMHA}w|eQVr||~~}||y||z||z}urtyyzuy~zz}~}|}~woff`TNTTQVRTSTUOS~y~lUTf~~}|yw||wwzwvs|wvwz{||ww|z|}{z}~}zstspmcfw]TU|~|~|ww|}zvvwvt||zty{{~}|z}vu}|z}aTLs}~|}wu||ww{{|zwwqw|wv{z}{y~zy~||~|y{惁~oKM\o}ww{|}zvw|w}ww{zuw{z|||{||}|}wuUOQY]f}}uwuy|{upy}ww~}wuv{z|{{zz||}|}{veRX[MT`r{utw{ws~{|wsvuuw{{|}z}z{}}{|}}}|qTSXKSJVgww~}ywwywvwu{|w}}vvwz{|}|}|||}}{|}yaTVN\NMJN^mz|yyw|}w{{w|ywzww{|||}||}Ӏ|}}rXX]oj\LAHR^gov|~w|ww{||z{ww{|}|}|{z|ǃ}~|y~}XS^t~lcSLIJOXeoww{wy|}rv{wvz{|z}}|{z||ww{sTK\z{w]TLJKMV^o|yvy~rswwuzz{{}||}}||}~|~y~}||iOUiw}|ykWOSSMKT]iy~|}}wwvz|}~y~z|w}~~zw|{|w}||{|{zsYMTg~}|yuoeWJWVLLT]ht|wy}}w}|{{~~}}~|~w|{y{~|wzoVKYuwv{yplSVSQRONS[_kw~{v}}}{y|ywvztwzw}w}{w|{fNMcw~{zz{yz~yuh]XQJJTTYblvwy}w~~~}{|zw~w{zw|w||zzwlUIRgu{{vuwz}~yzyl[STTSUTQO]]cjsyzy|}}~}|z|{w{v||݁wwylXMYap|~{wz{|ztu~|{tobXTOJJNLSSUX_cjsvsrv||~zw|w}|{}wrXN\eq|}wvw||wuz}~}ywrgf\X[RLOLSTVYWUTUX]a`^e]``ww}{|zyz}w}~fNUXh{zuvy~}zyz{}|{}~zwgaeXRVVTOMKLLJQOLTILL~~|}wt}|z~ylXQSew}w~tvt}{~~}}||}}~}w~}|}}lm]f\_]WW[][[|y}}wz{z|wg\NN]suw}w~}}~}}{yw{~~}|}v}}~w}}{|}wo[IJ^r||{|w~~{}}z~|}y{}ywz|{~}||{ww{}}saOMT\t}~yw}~{}~|{~|{~z|}~{|}|{wwg~~{w~w{|}{wz}~wgTJH[lz~zzywuw}~~~{~}{zy}{|wTo}v|~~}{}{yzzj\TKT\ku~}}}}{}~}{||{{}{tR\m{~||~|{{{rjRUV]\iv}{||~}瀁|{~~{[N\~y{}|}}{|~{vtgUVT\]bpv~}|~}~zyz{}~}|}|wy}}]OQf|}~~|yw}}wvzqjaXRS[^m}w{~}ww{~|w{}}}z|^W\^|z~|}|zw||{z||}}wqhaTSMQT]oryz~|}}}~}}aIMiy{}{|{w{|}|فw{~wtgb^\QO\VSXcjw|}|~{zz}}||uUSV_u|{{|}||}}{|~||~~~vmYRXMUUWT\^X]chqy{z}zvvw{{y]OWav{w{||}|w{}~{y{|}}|{|so]`[WMSTQVOORTTOMMWSQSUV]bqXMS]p|~|{}{w{}}|}|}}|{wtqgfaW[XSNORNNRNLLJJLO|{u~qWUN\o|}~|z|zzz{}~~}|~}{{}}|zoqojffcae\]\VTSOM~}^WRXm{}}|z||{zyz{}}{v|{~~{zz|wz{}zz|{~|wvoh~|oY[Yaz|{|{w}{w{}{w|w|}z|~zt||{w|}|w}|~|~}}~wfaRIXgo}~~|}}ꀁz}v{||~|~~}||zwz|zw||~w}}|}yt`JKTXoy}~~}}|yzw|~y|w{z|~|~||{wyz~yw|y||}||yi_UJ\fow~|{y{}w~{||{{}}z|}|y}|{{||zyz|y|ww}}}||ufTXUXhqu{||w|w~w{|}}}||~}|z|yt|zz{||z|}|}wtwwz|}|~{|{ueTMTX^l{vy{wy}w~uww}|w|}}~}z|zz{||zƀ||~wwvwwz{|}{~|tf]XMKW`w}|z{zwu||wz||}~|{{||{ww|ww}z|w|}{z}zw{w~ymVJJLXcoqy{|s|w||wy|zz~~z|}}|wwtwrt}}}z||{z{}z|y{}o]SWSOXakv~||}}{|vywuu~|{yw~yzzuuwu||w}z{}|wzzpjYTLJLT[^zz||yz{~ywz{}}|{{|}}}yz|ww}{|zv||z|w}~|{~}ytcSKJNOQVar|~|z}~|}{zwwz||}~yz|z|}zwwuw|z{v|wwzwvz|{z||w~qf]SJSLIN[fqy|{}}zzyz|}~{yw~~{|w|}z{ww{~}|y{sk[TNOQRST\Y`kuwy{vw{~~}~{||yzzvv||}|w||zzw{}~}{|}~~ywwvw}viaYRMLLIHMTY\]qqtvw|}|~u|{|wqww{}|{ww{{zyyz|~|}vom[WRMMOOLMQRQNQU[``gkikoo|z|zvwvw|{vrw|}}|z{|~}}~{|~|}}}~zsg`]VOORTRIEEIJKSSLKOOz||{|}ww}ww|w~zwwvw~z|{w|{{~~{~~~yvqlf`\YUT[QJJLKKMwwz{||{w|}wz|{{wwzwy{{|||~~{{}~}|~|{z~uljf`_^}|{{z|zz|{||~||yz}}}|~~~~}|}}~~}{w{||zwut}}|zww|}|zz{||z}}|y||}||}~}||}~}||}}|{uy}~wwuvwwzwwz||{z||zz{{|~~w|}|}}||{{||z|}vy|}|z{{y{||{}~||{|{|{w~yuwy|w{}|z{zwz|}}||}~~~{ywuy||zwz{}wz||}||{{}wz~{vv}~w{z||{w{yyz}~}~~|{zz{}~}}|{~~{{}||wvv}|w}|w{y~}zwy|{}|{z|}}{{~}z~}}~zyy}}|yvwywuuz|zꩵk|㯞yqzwkbXSj nwթndegb^dpӳzq|smztqbddYeaj}ݻnysqtyyjqzwqjjnabg_ahaXmtqjqqmtnqpqskpsq}qsqg氯eh|穡skmy}骩߬nwzhq񡦦̬qpwepdt멯qtj|jhdj塧ӭww}|gXanǰwppgbdkwۧqe|}qgdehtשksvkppheq}yhqvdvtggq}teyptpmnkjpzjh}wmddqqyӬsbnzpqqpsqmk}}ݯwhywqkddjgppswwj||wzngkgpqtyvsqsw}}jswwnttqkheggdmkgqbggwmp}|}vvz}zz|jj}zbdĬkhq|窧ŋqdazçq|qeq|n|ߪnst}|筯zj|⦧stq|}}kmwnpz묩v|٦qphmq}뭩bhٯ|mk|tpw欿sptynwhssvq|w}}kv}zvhpqmtkknqqkhhvpmpst}欘whp}갧vzwpjknjjnjggddgkvsj||}|tqpkhvnwԪyzyܦnbw꭯Ťdeqwsd|񬲬qwsw秡ؤqhqwƭ}whevɦtddgw}pvpkwધۤyqgdgqzpedjkmt}pdpgbjzŦzqjkmnpq|yǦynhggbahqy|}zvnhhkkghmnmjmsz}tkknqnb^^bdeppgekk󧩡ժ|ysqzmddgeehߪ뭪Ȭ󧦤񡧬ধ'\,XO6C?川pZ5(&"&$$'*-387;9<>98;:89:9889:7:;9:<1&ͬviB60&'"$&&''(('0269:<<8:8:=:9::;::998868<:;9-#`<>?>@;/(**"!""%($)&&*,*.3799:;<;<;7:89::9=:989:98:;><;6*"" %#!#!%%#&)*&&'*.+22579<>><;;:988::9:9;:889::<:=;82)&'%"%&& &&)'(+/046:6;;@:;>;:<;::9:;::8:;::889989:76::60))'-.//165<;9889<::;9;8;<;8<>77;9::9:;;::8:<;9899:9878977;:5.();>:;><;:9::9::9978<:<:;9::;;98<<:<::<::<<9:<9::988:992,((.6;9;>::>::9;=:799;7:9:8:87;>;9;9988;98::8;<9<>8:99::;98950&!)35889::9;;88::77:88:99;99::8:698<=9:8897:;8;>;:<98879=?:20#!&#*989878645;98879;:;:;>;::9:8::<:9::;:89=9;=:9:7;<<:72*&$"$%#&098::9;::<9988766:9:9:<::9:8=<::899;<:<=88:78:9;95/)%&(&+,$!+578:98998:789987568:9668::;::8><9:8877:;<;79<;;83.)&$$'+34-!#1;:;<:9::8988998:879;::8=;7;:998<;=?<83.'$"%*.26>6(!(5;;78779989:988:9::9::;::;8<:6;<99:9>:740+&#$&*.26:=:/"#.787:<::<;99;989988:9:8::898<:9<8;:89;89989660+'%#$&'-49:<;;,&!)5:8989889866:88::8788::<:69:<99=8;<:7;:<:52+(&##%(-17::98897'()/8:86<68;89;79976678;98::97:9:<:;;8974.*($ #"&)08;>>:997972!(29;:98:68:89:9989:;99::9<>:864,++)&$#&)+38;<76;::9:80#"-7:9789:99::889<;::9877:97:98:9<985/)'($$%&.587;:;:7789::5*#(2::788:9:97::99:9=::=9685.*&$!"&*&',0248<:9:8869:;<6(!'159889968988:97:=;:9887630/0+'*')%!!#&*.25789;:9669878566874+ !-87579:98::98:767652/-+)('&$&$$((%&(+279;::96699786878988760'$&.6;877899;+*'((&$$"!$&)+//28:89:9877678768699::77:3)"#/789:96689:#!!"##%&&())01277987>>:789::766579:667:8:0("$+6:69::669:8&-)&,,)-002466:989:96686898768::;85678:66576;<.$%$+38:798899887:87;97;::;:877989:987898679::83897678;9::962-!$',6:79:98876568867966:88:9::9898:867:<:877559:978;762)$!*06<;89:89989:;87799::;687668659889:989989;9689::91+)"!*3:9878;779:868868979:966876987899:986898;:9::992-#!'(+79<9668:68::8689979:88:9688:;:98789889:998878:88:82-)# $-348787:9687899889:<8::78978789:9889:985983.*''#"*05<;9776;:789:98765675668:747889:965688689:9889::76/'&%#$+,:<8;95:96899;::878878:8897667976996576676688679::8984-*)&$$(.28::76:889::9:886996788998667;8867879:8668<;94/++($#$&)-4:>88967:85899:96789944787688;879::967::99512-+'""&''*-2699899:89<9899889::9:68;:5*7::88;<:97567742/.*')'$%#$%%'-11778868:86878:9889::9798:;6."-00-,..--+(%%$%%"#!"&'&&(+.04:<<:988967:75769::99:98869::5*'$!##!"#$"#$"!!"$#&%$'*/669:88::86899866:8878:89::988:;95*#+!"#$&%#$''*-.-..367878<8::88:96788766898668:789::9=7/+$)3/024543235459:9:898788:=7::99::768:9876788::9:8:9989::/""%(4;6689:98:9:44996::886899:94678:9688:=<989798::885)%"&09:6:988998877956:9969:8879989;:8;8998:8699:988;:7::6/&!#'-4:96<:8878856867:99:98668:9769;:8;8:97877688788767;;82*(&%*27::89876678867887886:99:9668::878:9886986788698557:8<:4.(%%&15:<;:9:88778788765657:98899:987898769868899:866::750)$#',179::97898998768788686658:998:86789:7::8988:99<<5,&$$'/6<8788:89::887768688686889:89978998788:8::9:86788762*"&$).4:878679989;6788766879968688998:<98878986:6899;86:95.'$##*7;;8:9879767:67765677867988;976679::9898869;85993-&#"$&(.9::98897688966889:37996596789967889887:9962/,'$%&#(3787899889986698:76688679986686568899788:9::;:97683.)&##&!'.-2;:78899;8866889756::77:<956::986678;<=<:740.+%%"#&&'-33789;99:9988:8877968878;;99;7678977<::96421.*&#! "$!")06<;8:;;:69:98868:89879;:99:<87886532/-**(%""$%%*/236:977:8786698668998686898911223+()**($%#! !##$"#&*-1238::879:7;;65::97679:97:8976866!"#"" !$$#"##%&'((.0468998767868:799;889899878::85869886&$#$%##$'&"$&%()++021489:<::677899878786:8:9989::6876689//122112021687::667;<8978996889898979787:99:989988958::8899;;9:9788679686899:69988788988776::99::98:766776767669:6867:9678868:9:8876788988:9:86869:965764687876864667<;779969:9:88766788678:99:99:988:989975797766976545797698689898878899899:89889:8:8778:98669:7667:7:7567998847878898898::8:8977689:998987789988989:857:36467663;66778:884898998879:79797768::988:99::98ŪuYTD?KUQOV]cq|z~|}||{~lTήwjTWKQTUVVYXVkow}}}}w|eMhX^]KILLSXO[TT^a]frz~~{}~}}w]KLEGRNJMISSRNNT\]TTW]g`opuz}}~}}󅁈|o\TVSLSTTHTT[\WX`ijsyy}}}|zyyk[[Wcfhhmwv}}|~}|z{}~||z|{{ufY[~~~z|~}~}||~~pbYXfw~~z~~z}}{~~|}|}||~ujTEJ\ru|}}|{{||~~~~}y~}~|}z}}|{pjMITNE^|}{|wsv|}|zz~|~|~zzo^TQLORMTk|}}|zww~~~}|~~|}{}~~uh[STXT`aQJ_vz}||{}|zuy}~yy|}~}|z{z~}rg\TQOV_rteJNm}|}}||}z~|z~~}}qfVOLR]fpywXIYvz|z{}}||}~~|y~~{tj_TMQU]gpwhKMgz}{||}~||~|~|}~}|wwk`WRNQUWetbTJ[v}}||}ww|||z}}w~~~|zvo_YTNNSYclz~}}~{WY[h|}yw||z|~zyy{|~|~{~|~{sg]XOGNKT\k|~z~{oJYo~}w|}~~~|}}~~~~}ytb`_\TONT[`r|{w~}jNKc{~{|~~~}}~}{z~{}|vh\WXQOORSUfv|{zz{}~u]MXo{|}|~~~{~~w}ug]TOJLT]TWbkps|~}||yywXJVmv~}}y|~|}~{~}|{yrjhj`W]W[RIIMT^gov{}~yw~|{|vyy}{t`GIc}{v{}~}{w{wuoie_[XVUOTQOXXSUY`oz~wyz|w}z||}{yjWOTfw}zz|~_]WXYTQQOLKJJIQOT\_hio|}~}{zzy{|zw|w~~{{q\KNhz}~yy|MIIKNNMMRTTUY[[kmpz{~}z{}~{wwvzyywz}jYLQ`wy~ww|Uc\Tbb[ckkotwwy~}~~yy|y|~}zy}|uw{}ywvzyfQRQ_r}{||||}{|zz}{{~}~~|z|~|wz~|r|~zyz}~yocJOVbwz~}||{wvw}|w{yw|}~~||~~}|}|wz|{{vvz}{wo\OJ]jw||}}{{y|{yy|yu~||~~}~~}~~y|~l_\KJ^r|z}z{|w|}}wwyy}{~wy|zw~|z}~~Ѐ~|y|~|~~ocNJVY`z~ww|w||w|{~}|w}}|}~|z}~|}~~~||z|}||oe\MHOcqt}{}{w|{||||{z}}~~{{}}||z|~~||~~|u~|rf]VWNL]jv{zyz}|{wvw{uwy}{tz}}wuw||y|~~}}~{whWTSNQ_b}vw|}{||{|||{yw{zy~wvzwwzwy}|w{}~}se][TOOYfo}zw}||~~~}}yy{|}}wwy{}}|wz|z~}wwy}th`_XQMOT\es}|~wz|v}~~~yz}~~tt{}{w|}|}{~~w{~vmpc`WLKTWV]coy~~|~~}~~|~~}}~~y|v^z}}~zvwzztoig^W[WQRMQSRWeml{{}}|yw||w|z}~}}~~{|ygLejjcbfgec_XSRORRLMJLTVTUX`gks~||~wzzvzy~~~~}|yu^VQJMNJKNOKMOKIJJLQNTSQV]iwy|}|w|~~|yw|}z|}~~||v]BM_EIKNQTSNQVW]efcgfqwz|{|}}|wz||zwy|~}wyw|z|~~LJ{h_OD[rhkotvtqorusu}|z||{~~zw|}zy{}|~}~~}~hLKRYsww||~tt~~w}}|wy|~~~tyz|~y}}~}{|||u\SLUky}}}|z{~vww~|}|z~~|~}|~~||y~~}|{whTJNVcsw}|{||vy}y{~~ԁ~}yw}~zy~|}~z}zzy|}{||{yz}o^XTS^oz}}{wwz|}w{}|z}|w~~~ww||z|~||w~|wz|}y~|vvz}tgXRSTmv||{{z{||{}||zzyvwvz~||~~~|z|~}zw~|w||~~}wyzvk\OMVbl{~{|~|}|{{y|z||y|ywv|~~}||yz}~z|~}|}uaTOOWhw|z||}|}|}|zzw|w||w|y}|~}~~z|~~|z|}||~}y{}}{wo^LTQ\ft|z|y{~~}~w{}}|zww}zw|w||~~|~|}|z|~}yw}~~|w~vfWOMMN]{|~|{~{wzyzzwvwz{z|y{~|}~{ww{~}~}}y|vqcTNKOTXf~}|}~zw||~ww}}|~r{~wu~wz}~~y{}}~}|{~woibWORTMYq{}{|}}}wyww~}zww}|wz~|ww|yvy|}~{|}~zw}rf\TMMUIVfeo{||~~||ww||~{vy{{~vy~|wwy{}{tjf`SSLNTUVcqq{}~~}}||}zz~y|}z}~~zwz}~{{zysplf^UNJHLOJK\jw|y~||}|yw||}}~}{~~~}z}|yuqpic^]YRKLKLLORS^hoqw~{z{}{}ww|yy}~|w|y|~|~lloppoopq`X\]^YQSMIHJNNOKNU]eloq}|z~zwu~{y{~~{|~zy|wwJKMLKKLGJQQOQMLMMRTWXYgksy}~}zy{}w|{}|}~|{}|v|y~||}wwUQMQRNMQWTLOTSY\_`jpms}~wzz{}|z|z|w}~~}~ڀwy|zyy|~himpollokomw}{wwyyw{|~z|~~w}}}||z{|z~~~}~~}|}~~v|}|{}}ywzz{~y|w|~~y||}}|{|||}z{w~~~|{wy{{y{w{yww|yz~wz|}y}~}}|zz{{zwz}}|}}~~}|yy|}|y~wvzwsw|{}{w|ytywzzz~~y~~}|{wwz||w{}~~󀁁~}|}~}~~zvzzzyy~{wvsu{~zw~}w|~|~|}|{|||}|}|}~~}||}}{{}~|yyzyyz{{vwz~|}|tz}z}|}||}}||{{y|~~~}~|zz|~~}|}|v{qwtw{yyryw{z}}}|t|~|~~}||{z{zz{y}~||~~~}Ǟyq\Uesmkt}q̿qvemqsttywt̡hɵw}ebggpwkzqq}}eg^_njdhbppnjjq|}qqv}󳯸|qtpgpqqaqqz|vwǬzzvyzywq^d|hbqj^qmgknhqzpqwqmd§|qmktdj񩤪֬tkgn}wbyqhms}ehvnjmsvqdzyqjjpyvyz|}wk_jeq|dy|qkjqzje|vwmkknps}hw}qkdgq}qvwdtv}vznbbhq_bzwtskqmkwwpsyvkq}vwyqmmkgeddbmkq||ejhbbejjhhnqqsyzzygms|qzmnmdkt|kd}䩬ݬ|ed𩬦Эjdty里ݤ|hakĤ}tvjg}vqpjm}zqkkywmhkq|գvgeqvt}ħvzvmnhmpnvçgwpnknnghdgqtqswĬtmdhjdejkehkebddgmjqpmt}}Yh^bejmqpjmtv}Ƕk\z󩪭geny駬ɝ|pgs֪qdjtԯwqpwnpq|kht逸婧qkkvgqm|vkhhj}qjekqw񧪭vknqhy|qhhsbt簧ߣppgjqst姭⬣sjdagkde|ܧ}ynegeggknpw|}ymphbadjjkejs}桞dehgeeg_dmmkmhghhnqvwysmhmnjhmvqgkqpy|ꡤڭ筪ݣަҩ󭯯ठ𦤬K%2h,z&::=::6,((*%%!(j*96599<<740,$'$(#,Z.989=<>>:<80&)&()'"(`099:>;9:9;;5*))0.&%&"&W7;9:<:9:;:;:,'+<=4+(&$%([;<::;::=:8:;,$(;<><6-(( )O9;:99797698*$'6=67=;0**-$&R =><8798::982''+88;:89;83,,+&(c<9;9799;;5)%.:9::8988:94.*&""#T878:87988:3'#/88::9896674-&$%*U8989:97898<2'%4:9::989668861.,'%&Z:9:988<8=.&%8::988:8679976)+,("*c9889<79("&97998866899:97669;93,*+&#&c:878:9<96&"+:68899878678898<:74.&#(,c;:<:79:9<:4&%3=889:8867:<:66;<;:6-'*"'^678868:9::1%%6<7:8::7898787669::67;;62*')& )v978659:<>8*%'769778:68988789:68:<:79:2-**%%578<9:;9:=3&"+98:778978898899878898;8981-)&-!0s37:89:67<-""19::8878899:8:7699;7;>722.,*& .6:96898:8'"&79:887889<:9:88;8::8863*&)"08;7579:87;:9;9=2&#)#089778:;8(#'4;8::98 8785789:7799::9:>;:793*))%!2y99;::2$&*798::988986878:88:9989=;7>;;:0)*&&3~656:767,%)+9699878978:988969=98;98><79:798:<8:=<:4*+*#.~4:757:5%%*5;88;:<9::66877:<989:;88:9889::99:<::<2**(##(675466."#.7::98789:69<;:99:98898:9:;::>:62.)'):66982($)7:7::67478:;:8868:<;98::868::86::;<;72+&94::4*"&1:85:;8:8:87988:989;:88:9968::979::9:<:;7286;8.#$1=<869:879:87998::88;:769798998:99:;879;=<::881'$,:;878:;:7689:<;88988<<8676:8:96::99:868:;:9:87/&#'2989978974987889::878::877:8:96:8::99:;:;><;;::<>76)#%.9739955876977878:8987899898<8::6:7::;<;::;><;;<<;:2+&$+689988687889:986789;67889876::7::8<8:;;:;:998,##+487::9::8899889:988789::9889:8::;9::;;:;:98899%!(4:85:988966877887889;;:8876788987799;:<;9<<;::9 '289668656866768898877878:9889889::9899:;:<=8<;::;;::89::988%/7877996568689788998778789899::9:9::9;=9::;:89::989936688699645667878898876789987667889988:9;::;99:;;:9:9889:=;7875774565686889867899886699::9;:<89:89:;::989889<=7766:9:8878988:868 898:<:=77:89::86789:98687668786789987899:6799788998:88<;86878;<995998877669889::877887787899877898996799889::;9:988::788788;:9899:8778897887688997799::988:988:;988:<889::87;:88787889887688998899::8768:<:899:99:9889988986:886798876788987899:8::9::98:<988:87898876977889;8867898998979:99::89::87899:98988:887766779779878<8868788:798898788::878859989::<:88787886566:886:8868996787678:798788679::88::889:;::6:98998989:975567887;967966<9779:989667998899:89;88<:;98:99:;967:87:876642889:98649879:88:8789:99:889:99:789899:98:98:898876945678876889:9867689889866899:86688678579889:78:98:98:58:8766866788769767899:878858:866889:889988:669978:7688:9:59:8678688766:767889889848:868988:9989:978:87987989:98879977996676569988:78:978979::98998;88:878:9::9:86699877::645678766446::89<79988:998898989::9899:988:;:9:867988779:676654988:968<8:8688=88646898766887687;97899:8:98:98987887896:743366868::66::9878<;5798876897:98868768898977886899878:75866867889989:;98869:88:898688:97886:9898:67899886898767886855868899889::=878668<9:8868:8688968::898:6789987678876788786676899<768668:88688663698688:99:8877899875788778967998766988::868:768868868868468768866:7878:669889877887886889866:67::76886889838979989858668866:668:6698898799:9877864889779:98976886885897898987875886686698998898688988767686764889::7688667786776878:8588776686688<9889::866778848686487U뇁waYX]SRJX]~yv~ztjaQVQXMag|~}jU[TY[WKYk~~v^\\kfTRUKTz~aV`t`XUOSX}aOXwcYXYG[~~~{{y~|]OVwyzk^^eQAT ߇|{~}~|pWW`}}}|rbb_TDXӃzv[Sf~}~}|~tf]TLLN|z|}{}}qVNh}|~|~wwzseUQRA]}|{||oWRt~~|~yy||wmfaWSDT|}|fTS}~||}|w{~~{y[_aXK]}}||}{XLT~{~~}|wy|~~{wyqb]_UNTρ}z}~wTK`y||~~|z|yz|}|}~|zsfTMXAa냁{sTSq}||~||ywzywweV]K>Vwz}|w}lRSyz}z|~|{}{yy~yzwo]W[UG\~{}wu}^RW{wz{{z{}w|}|{|w|zoc^^RRu{}~qTL`}{{|}z|}}}}z}||}}}mc\UcJjr{|wzcKKm||{|}|}{w{{pofb]UGfw~w}~|}WKT{~|}||}|z||}憁|}}}|wq^T\L?k}{v{~iRRe{|}||}}|z||}||{wՉ}{~oTN\MBk}z{||XNWs}}||}|{{|uz|z{~zr^[[RJo~~pQU]z~|}}||}|}||w|{||}}}zj[]TTqwuw{yzbS[`~y~}}|{{}{}}|}w||z~z~}}s^`]NEfs{vzuSR]v}}ww}{{|||~||~~~ֆo^^YNNYw{vsywfKMgz}|}|{|w~}}~|~~͊wpg[W\yy~}pYO\{zwzsz}||w|}}y|}wσ{o`T~st]LTm}u}||z}||||~~y}~z~~πzo}w|fNOl}w~}z}{||}{wz~|~~|~~σ}z~}|mVOa}z|zw|}||}|wzw|~y~~|y}|zhTMVp}~z|~zs|{||}{|}zz}~w}~~΃{w\MSg~{q~uv|zwz{|z|||z|}}|wzڃp_TO_y}~|}|ww}||{||}|wz|wz|}|{wz|}~~}bMM_s|{~||~~||}}||{|}|~|~~}}~~RIXs}v~|}~yy|z{|}}|{||}|{wz|}|{z~~~~~HWo|~yw|yvy|wwzw||}|z{|{}}|}|}}~~}}~~}}Shz}zzyvy|y|~z|||{zz|}|{z|}~~~Ã}~~}~~qww}|y~~wtvywz}z||}}|{wz||zww{||}||~~~~~}||~z}{v{{ztvwvy|w}||}|w{|}|ww~|~|~~}~}||}~~{{yw~||z|~|}||}|w||}|}}|zz}~}||yz|~~|w|zwwy||}{z||ww{{}|{|~w{{|}}|}|w|z|u||{zww~}||}~|{{||{{}{||{{|~}~~wz}}|}z|}z||}|~}~~|{{||}{|}}|{zw||~~z{}||}}||}|}||}{}||zz||{||||}|zw||~~||||zw}}||}}|w}||wz~}||zw{||}}|{|~~|||}}||z}}||{zw~zz}}|~}}|wwz{{|}}|~~}}{||z|߀}||||{zwwzz~zz~}z}|}|ww|}|{||}{~||}z}||{}|u}||z}{|}|wvww||}|wy|}|ww}w{|{wz}z~|z}|wz||||w|}|zuuwyz||z~wz~yy~zz~~}~ywz~~}}~}}|~}~~w{}{|zwwso|}~~|wt~|z~||}z|~~~}||~~~z}}Ձ~}~||||}{wsuw{}}zw}||~~|wzy|~}}~}yy|~~|ww||yz}uz}|{|~}~}u}|{ww|ww{|}|{w~zwz}~~|z}|v|}wy|}||~}|~~|}ww{}zw}|}~u|w{|w}}||zwwzwz||~}|~|t||y|~}||~~}~z}|{}z~}~~|}{zzwwz{wvw~~||z}~z|~z~~}~~|}|}}}|z|~~}wy}zzwsuwz|{wwtty|~z~~}||Հ~~}||~~}~}~~}~|}||~}wz||{zw{wwvs~|}~w|||w||}||wtw}~|zwy|}zy|{z}}~}~|~}{}}z|w{sqrww|y|yy~}z|uz~|}zw}~z~||y|zw}||~|~z{||w||z|zv|wy}wz||~~}~~||y~}}}~|w||~z|}|}yy~|~}y{|~~}||w|}{w{}}w|vv|w||~~}}~|z|ww}~|}|wyw|}w|}|y|}~}y{}~~|zw{}|zw{}}z|ywzw|~~܅zy}yw||}w||wwry~|w|}|}}|~~|}{{}~~|zvz||{{|yz~~|zww~|||y|zy||w|}w|}y|tw|zw||yyz|z}yw~}|}~~|{z|}}|{|}w|}~|ywwyzzw||y||~|r}~z~~}~|v|yw||wwyyw|yw~}||~~|{|zz}||wt||~zz~~|~zy||y||u}~z}~|~|z}zv||ww|wywy~|~~}|}~~|w}}}|zwzy}yzwt||~zy}}ww{{z}wzzw|z}|v|}{{ww|ww|}~}}~|wwz{||t|y|yt|zs붯yw}pndw}mtmwh独szqyzvey瑪||qnseq&ߤtwskpwళkwywy_z禬}ktmXq ߶vvq\wװzp}qggjڤtjsmnX}٩vnvp\qqpzwe}Ϭwgq}sjqЯqeqhwX밯qp줯t}eStϡnp}vzs_|nvݤnn囹qgݧ|sdee槩}s_veq浯q|gU穰nnչqj|hYwjvߧzzndms}駦z}qqpz}j^pn}ֵyjjyehͻzv|yk|ϰq}gqϭjkϰtk٧qhtΰ|hpڰqk⯬hhꬩnbw𬲲avp觩ðڪﲯ󩪪󤧪⧭䩦󭧩Ҟ򭬧马򬩩󬭭񧤡䯧릤駪߭Τ쬯̤ٛկ¯٪򪩧婪馡ҩխ䧣󣧤ܳ⧤ġתЪd-+)'%#!!#%')+-2/1> 3 5 79%;= / 2g.)("-0*))$#*U/62,!#(%/.B=<30+")2s.6;:85.-'% +o.<;;78=:3()&#"2.7890)*(!'6:;:99::850)%& ::9889:<:63.)&" 48765;88:8764*'# !.~87:67:98879/**($$/ 68::8689678879979;:0*(%&:678877668;:6678856:<;3('%!%2|96569:737:86889>5:<68>5-'&,$#5i75687897389657::9::9::4,)*'! 79776787788:8;::98<:63/)%&!#.s86657986678865:88:;::7:>?:3/-&/)"2x7556689877898778::889::9:8;>;;<:2.))&"2`75787758668878::9889:=::;;=>=995/,*%#86568775753588789989:=::;<;<<:==?<4.)+$"7535667878768:;::9;<;89:<><:=>=920)+#+R8655358756889:9889:;::>;9<=;;::>;:;99/-)+!2765577566788997668;<;;:;<;::;:<=>=<<9.(*&"C88755765677889:9899;;989;=<::;;:9:;<::<9:5*(#+-7765677667889:99;;:9:;78:<=<:;=;9:;<<:=9@=,,&!"&y67678878989;;::;<88:;;<;::;<;:>;-,)*#& X67665788788:;;:;<::9::<<::9:<:;;.''4+*%:8778655788:;;:;:89:<;::8<8;?.#'6<.'*678755667899;:;;:9::9:;;:<<;::8;>.#(6:<.&( &556876687789::9<=<;89::;=;99;=;989:9><:.%'6::;4%&&%84664466878::<8699::88;;:89<=<::988:;=.!$6;6;=5+$%"84564488789::<6688:<::;:8:9879;=.!%6=68;;7,#& :76644687889:<<68;99<::;:9:9::9;<>.!"397::;;3+$#':87664567889<<:68;99=<<: :;:9689=0$%568;87976*!'&66567889<<969<99=<;::99:;=99:976689<0$%598857:8:<&' $56677646889:;:9:;=:9;::;989::<=:9:;;987::<.!"2:8879:8::6,%$'68778636:889::998:9:=;<;989;;:;<<:9:899;.!%68996787:8:5(&*$67668669<879:99;9::<::<98:<;:99:89:9:9:,!$698636:67587:,'$1/Hp.[XLc0^[\QN^/wpbJNXRh.rj`L[Eo.wy}vfcVRH_.{}qY[UMLp.{|}k[]YJVw|uj[RTH}||wqg\TLGs}|zz{{wu}}|{yt]WMHIg|}|{w{||z~i]]YOQh w||w|yz||{~zj^XSTEwz||{zww}wwz}}vwrXWSJSowuw{qz}y||vw}ucWTaQNvzuw|{}{q|wu{~~sa[^VJG{zz{wz|zz}}|||~~}wqh\STJNg}wwv{|wwz||wv}|}zrheUh[Lpzuvww||{z|}z{}}}~~}of\\TLpzvz|z{zu|ww|}{|~|}~~vhb]RM|wuw|{{u{uqv|}}z}~~}~tf[_OK{vruww{}{|zw|~烅}ok\_N`}wuurv|zuw|}||~}|~~ic[`Ip{wuv{{vwwz|}{yy}~gX]TL||zuvzwuwz{||}~}~~}~~v]YN_ezzwvwzzww{|}||~{|~aaUJKTwz{zw{}}|{|||}탆ea[^NTGwzwwvz|}|{|}}~~ဆfVVt`]SA|{{|wuuvz|}||}}~}}fMVwfW]Cy{z{|zuuwwz|񁃃~ۀ}fNYwgTXGUuuw|{ww|z{|Ҁ~~|~~~~|~~fRWwtRTTR|twwssww|{|}y~~|}|}|fIOywv_QRL|tvwtt|}|{|ww}}||~~|zfJRyw}zaMTHzwwttw|{||y|~~Ԁ~~~~gJKq{r`OMV|zywsvwz||w|~~䃁~y}jORuw}|{{w^JVTwwywvyz|}|y~~~~~~~{yy}~jORu||vz}TWGOvwwzzwtw||}~~|~~|{ΆfJKp}|z~|wbSQWy|zz|wrw}|~|~~|~Ӂ~}~~fJRw|~y{}z|vXU^Owzwy}yw~}{Ѓ~~|~}~~~bJOy~}yrwyzu|{aVQm6a.zwg5z|mj/djwn.￸gz^.񡣲tna0ﵰyzshg.z}ydt뭯znqa묯|qg_੧}vhab馯}}ykm!ߡwpq^ᡤwvpdp ߬vqmjztd_歪|pqdjߤszg֤||qg鸞媧}nhऩzke簳|jЩzb大w}qgܬ}yjsdeq餦zjq_砤᭵tt}pX魩htv}[񯰰ۭjyqw_sҭnvnqqnbkmngݧdnhqa𬯵ԭdekht󬳵䰯kndtqꡠknqv_kεdepmvӯdnwsk񡤡аdktm@q;;75 >3 O1 1/-+''%!h ">$)&(*+-/01% 2 4 5 6789:;<=>>996879996879E9899< 0.c*.=&# .>! %&)/[&#&(13.* %$&19=F/9$$#.<>><6.(*&+2:<;:99&N"((-99889:;&6 )''399889'-#"'186?::'-'//6<89<<;;<&$+,2;96:7::;&v"&()::=::;::;<<&K&).;;:9<<;:;<<=&L#&%/:<;;6:<6<<::99:;H%#'29=7:<:78::;:98:=<9U)$,2<<9<::<;99<;;::9T%+7;>;8<98:;:89::;;:89:x%(5<<:8;::989::7:9:;:99;&&(.9<:99<:<<::;;9;99:;:9:(#'-6;99;<9:9:;:89<=;::98)&*8;<99<=6988::89:<<:8999!".:=:9;;9:9:=<::<<:89;< 0.].·UNG.ԊJHRT\/T8NTXlr.^HROTm/?QQMfw.YE]T`p~&ALXYe}|}&wG[VWq~}||'eMKVm|y&cDWhiw}~&CQ_bpy{<Y\&EU[g~&NURiywRNWoz{|}[ObpSD`z||}}ARXv}|zTUXg~XMVew~~~}}[TC]|~y||}}JLf~~| 0/}.sj_.danq|/qLjqw.ankq/Ummh.y^}q&Xgwy&_ztv)het(\v&[m&gqy|&^sz&jsnnjvzkp\Xnw qswwhtzq[}dg ~:9764 3 1 0/.-+2*)('&%)%$#"0.X&0{,*.~/"(*/6!*&*61H"$''*5<9/R($#)267780`( &('178::77 [&"&*.)89879:85*$'.,-36889986:!&%)-28=<889::9883 &$#*16;>:688:8L'%'%'6;><989<:99::88:>$'&&.7<<:8678::9989O"'(!+8988:9889::9987L"&)'.6:<99:8996698::989:85]&'().5987::9:9:869;99868;:8:F$%%&-6::87998:9::89:8::88:989`+!*'".;87:988766:99::997::989:8:#%&%%.678::99:;:9:<:99::988:979<8E!!+,,26;;8:<9<<;979;<;:9::8879869:8L'&&'17;>89?:8?;:989;:9::998:9887887U%'*(.8<<;8:?;>;:8::8998:98778878W& &(&-69:<;:>:9:9<<:<;88;7;:8998:9867:97:f*!+,'+6::899<<::<:<:88;9:;9886::966789>''-*-;5==<::79:99:<;;=><::;9:;988:;:86788N% #&'/;<89<:9<<;88::99::;<::;9:;:898:;:8898Q'"#((09=;798:78:;=9;=<:9::8:9;9:;9899899889:9H%$&%).3989=:9:;:;::<:=><:9:;;::<;:;89:8898898L)&&#-:>=>;99:=:<;<98;::;:99:<<;<;;<=<:;89:889877876Z)**&-36<8:=;::899:9;98;9::9:;<::;::8<99:88:866866X*"&&+*-4::;?:9<;997:<::;98;8:;::<;::<::8=::89899867886c9&#&&+159:98:>:<=:9::69:;<:89<8;>>;99:<<9:;9;8::8:;998::989986"##&)+1::8679:9::9:9::9:9;==;99;<:;;:<:997::88:988996$)./37:?==:77::99::9:9:<<;::99:9::8:9::8:;898:8:979:7.6;<::9::;:89<<::9::9::989:;;:;;<<:;<::9;:89969:68;76799::8:8;<99;;8<99:;::;<;::9:889:;<<;:;<;98:88798687868968:6E<77::9;9;<98::98:;::<9;<:9989:;;<<979987578989968868868:69<=<:88;9::99:;<::9::;;:9::98987::;8:;;:79::9;:8998896::9;;99<::;;:99<::9::9:9878:85;;:99:;7:;<;7:9:8::6889:889:979:<;:9::9<::;89;::<;9898::97689:4::8<<9<9789989::9:9768987766::<;:99:;9;99:89:99::8898895:<:;:8:989:99898998678866787::;::9:;988:9899898679:87:6:=::99::8766788;::9:;988:;:89::98789:98<89:869<9;;99::9::9889956789986::98::89;:889::9:889659=:;:88::9:96799866::899:98::998789:99::9889:988:869::9889:9689;:98876887669::898998;;9989899889;8:9::798:9889988679::878877876688:;;::<8:6898<<9::98::9987678:;:=::898:879:988988988:66898668<;::;:99:9;:9989:88689878:88977889868;;9986787:767889::;:<:8789:;889:;:99899778988:87866778:9789988978988766899889:;<<;:99:998:;:889::889788678 8988989:966862::;<==;:89::8<:88988:9889985789978:8767899889887688766876=<;;:98::998899=:7889::98778:8578997898667899788697667678::99::99::988:889::9::9889788996688789876889878:868766889:;;:;<<:88788:;::8789988;8978:776889878998:988789:;;:;<<;:=<<:88989::99:988:;:88;9867;9878867898:<:9:9788::8870.ޜU0bB^.hDKY^/y7I]T]y1͒LQVV]u~/ۘY>QM[oy{z|0YGTYVm{}{{ ULT^f[}}{~}v^QWfacry|}~}wȀJTS\eo|||~||qHTQN]lww}|}}|}ڕWSVSVw~}~~}}؉QCVUTfz}yz|~~}~ԖLDVXJ`}}}~|}~~~}zޕKAT[Vgw~}~~ww}}~}vݞTAVY\gv~|{~}y~~}w||Q@RSTew|{~~|~}~|}}|`J]VKg}{~|}|zwy~~~~z}}ЀNRTSSfyz|~~~~~||}|{}ؐJI_baow|~{~~}|}|{|w|WDUTWlz|~|~|~~~}|||z||zؚRAV]Yg}|~}}~~}}{{}|z|TGTXTcy~}|z}~~}|w{{ݤ]I_bW_w|~~Ӏ||~~||y~ywz}~WEVe^ev{~~~~~|}||yz}}SGMUVi|}}~~~}~}}|}~}VKMYXk~z}z|~}|}~~~~}~~}~~}}~~ؒROTS\fr|~~~}~}|~}|}}||~~|ܕ\CUTMe}~~}~||}|~~}zz|zwԝ[E^]Uerw}|~~|~}~~}|}}}yy|ywٜ^LTT_]ct~z}}󆃀|}|~}~~|yz}|y~UNUTT_lu~|~y||||~~}~|~~|wLNNT[`m|y{~~~Ԅ~~z|}|~}}~~yO\firz{{~Ɂ}}}~}}~z~zfw}~~~}~}~~y~w}zw{}|~}~~}}ل}|}z~}w|z|w}~w|yzz~}~}}{}zv{}~|~~w||y||w|w||~~}}z쁃|z~|~~}||~y~~~|{}|u{{~}y}}~}|~~z|~|~}zw|t|~~z}~~}~~~~zw}|{{yw|~~}||}||~v}~}~~~|}~}~~|w{||yw{|{|}|~|~~}|w{}{y~~}||}||}zwwyy{}}|||ـ}~|{|||~|y~~~~~~}}~~vw{}|w}}|}|~||~yv~}}~~~w{~}yw||~~|z|~~||~}|}w~~|}~~y|~~||{y||{yy􀁁||}~~|~}}||}~z~|~|}~~}}yz~|z||{{|{wy|}}w|}~~}~|zw{}|~||z~~||~}}~}|}yw|~}ww|||}|ww|}z|||{z||}|w|}wz|zzwz}||~Æ}{|}|}{z|}}||{}ww{{}{||}{|||zww|~~|}~|}}|}||{}||w{||}|}||}|}|~~ww|wp}}||}}|||||v{|z}|zw{|||}||{w||zwy|zw~|}}{|}}|{{}|v{}z||wwz}{||}}|ww~zwyzyz}~~~~}}||||z}}ww||{|}{w||}{||y|zww}||~ށ}|{||}|{}|}}{|{zw|||z|}|}|zz||}~||}||}|}wz|{||wz||z|}||}}z2.s0҅Y.ӌ\ey/Jb}q}1gmtt}/ySmhz0y_qyt%sgqz#mvdqp|aqmj}vptpt m[tsqg\twd!eXqztqXty|mVnpqɂd}tejnqppdbv\sqvnXt}yq_qwq}bv쭧v^t⵰p_hsttehywnkqp|밯|[sqhz^}s̩gqq}󵰭ʪsjsqqgjjqzԲk|ɯ马ӣٲ묭أ쯰꣭򪠯ܧެ٭򩧬৬󪧩ԧõ򧩯ά󬩦ޯଧѩ~:98642 0 /-+)'%#!#%%')u+/ / 1 357:,"'',0)$'%.799;68:;:978:<77<<7699889:;>878::99:#%(*.272.+#%)-378::688988989:;8:9::;8989989:o("%%06::;;85.$"").16:;;:8:<<:8;<979::6;;:899:88:979;1$%+6:;=87::982+%$%&,39::;:8579::;=8<::788:88::78;5"#&'.69<:<9:;9:;<82*$#%(,28<=<:688::9:<99:88:89::779^&"&&.69:9<;=:<>99<;<=60+&%"'.5:;<<69968==9::89:88:8::7681((0::8;<<:;8997988:><96/-&%%(,0388::88997:98::89899::97665"&&)37:;:<:6:9:88::;897::<897.'&&),88:<:76988<:8:899:98766:($''*4>::;::98:;:878::9;74/(&))'*/5:<:87798<;=:6:8987;9&%*.2:<<99::9:<<:9::9:61*&%"#(,.3::798:7698998:6(+27:=:99:9::;99;:99765.)%%*0358697979:89::<:258:<:6:;::996899:<997::79::>874/+)&"$'./57<=;=:987885:=:<<78;::9989:9:987:99:87::;:864-&&''%(+2436:<:98:99<;<:59:99:<::989:99::98::88:976988:=;86.,+$%$&%&)03679=:68:;96=99:<::89:98878;;9588:;<<=964./*'"&#&&(+-1::;87:88::98988::889:98897::89:959:76:<:<:97:872+&&$%'&)8:87::8:=<:89::898;::<88<;:57<99;:997987887:=:<:99:997662.,*&887899:9889;;:99:86769::68<9:<::7688;87898::988:;<:;97763979<:876889::8788:89:8998:;88569:=978998789::97899;<9<89<:77699889::9:889:;9889:9987986878:9:;88::877:;;988:9::89:8=77988:<:99:98768::86699:88::8:9965<:89:8778::9889899;:88:;:88::99:99:9::9:9986995988:9::8:98966<:99:87768:99:9667:;77:;899::855:889989::<::87::7;8799:8879889898:9898668988:97<:<=:89989758868:98878:896898:9:>8689:688:989896:98986568646:<:868;;:97767988:88998::88::89;:976789:668989;:97899::7::8984::<896::978867989:88::8:;99::98988788998997898;9989;::987<;=9:79988678998:9;98::9889899:9978:9::88::99:989::;8:8::88986689989::99:889988:7789989:9988789:879:8898989:988::897:8:8899876799899::899869;8898:887889;86799:9698898679<::8:78689877668989:89:99::8668::879988:898788:789::8988788<:;9;9:889878767889:78:9989<879:988987877::88989978898:9<:;:89768767889967::8667:;:8<879;988687688:88::86648878::998:8;9:978998655986446787899:;68998878876778876987868;89837;898778867887669876689:8899:678 898;98978988668:998878867887789:889988789889889:668898989869:99:9887876788788988767:<5688:8:9887876677889887887879;9::9887:68:9:;799887867886788:987787767889898787;68;89;8988987878788987678878857688688:68988::8898765887689887798876689:9766789798:9798868989<889:99899778688:889798768;7577887885996788967668:9797768:9768877588:989898768975886:9678878878778:979778:8667887688:988:8766876967889::97:967877887898787787898898:8788:776687696788:;:8798688678898877887889899898798686967678768899:8679868989678898878898898788788686686868897686889;:8897688988987788788:8998988968668768867668686886857878:;9::87887889887889887898:98988:6766887896766878799887687::86886;:878867689889::88798::8988:66986786998878896687885898:77;99:978;;8:989::698::884689:9988::86898878896798896976866:889::88::8:88::9:8968878698899868:98866788788967878969667678768:;9899889::99:967798:9789986798686467889567688688788778:;98997898997987788:8688:88998966768868878968:9889:7887889898876886789986688:899:9887868:79664688:;6899889:78866889886676678:9667976688766789987787868978664787:96788978876787:786676768998778:6798898789987667757868869:7987887668968986776:8:88967467899886887678898668689:9898979<886866968::868869:;9668:78767887788686887876788:898896455488698589889988967789867886767789867998788978867648:668589868:987789986677898778776676767:978:98898:9978:6268:9668:98898648866789977878669988:8689:8699:96898988:9679::867889::98669866788976678876889868::977878868988989:88789::98789:97689877898876789876876889;889::8868688:9:7988966789:;:9889986678669:988987789876877899<68::988:<9988:8<4798868:989::9986766899:;aLVVak\QWRg{~~y|{}{zzw~}|~|{|~~ـMRY^fp{pf_NR\erz}y}}~}}||}~~}~|~}~}~~}~YKRRkw}vfOLK\glw}|~z~y|~~}}~{~lBOS`y}{|o`RQRTbq|uz~|z|}}}z|vLNTWgy~~~|o]QMRYao}w|}~~~||}~zzTLTTgw~~~yj_TRKVgvy~y}~|~}}|}{y|mEXXYk|}{~}|~wieURSXbjr}}||{~||~|~~{yyuKTT[q{w}}|~{|~{gWTUT[b||zw~}|}||~~}{ywXQWW^t|}z}ԃ{thXT[[V^iv}{{|w}~|{~UR^go~wl^TSLMXagqz~}zw}~}yX_pz~ց{wuf\SSRS^jru}y~z~z}~pu|yy|~~{{|{th_[TLOVfhu{}z||u{}}|}}~~}z~}{|yteTUVWRY_osqw}~v󀁆~}~}}}{w||}wga_QSOTRU\jrw{w|~yĆ}|}}|}z}~v}}|wtgh]WKTNTTX`cm|z}}}~|}||}|{|~~v{y~z}zo_TTQSWT[||z}|~|~|||u{{|{}|{~~~~{wwofa]T||{|~}|~~~}yzw~w|zw|||{}|||}z{wq{}zw||~倁}z|||||||vw{|}{|~{||{{w~~}}~~}}~~|||z}w|{|}|}{z~||}~}{{||~~~|zw|}ww||}wv}}z{}~|}~|~~||||~~~~~~|y~~v|}}}ww}z{w}~~~ywz{{|}vu}|~~}~}z{|{}|{|||}|}ww}~||~z}~|zv||w|~|}|z||~y}~}~|w}w||}|w||wuy|ytw|w|z{{w{|}}|~~}|}}~{wz}ww||~z|~~z}}~|t}~y{||w{}~}|}~~~|~}||{|}|{||~~}~~~}z~z~~}|}|wz}~~}}~~~}~||}{}|~|}~~~}~}}|}|ww|~~}~~~}}~~}}{{|}}|{||z~}}~|~}~~|||~z}}||zw{~}~~}~~|y~}||}}}}|{|||wz~~~w~|}~}yz~|z|w|}{{ww|~|~}~~~}yw}|{}}}|z||z}~|~||}|z|}~~|||z|zw{}|~z|~~|}~~|z|}||z|{{|}~|~~z|}||~}~|{w|zwz||~~wz|ywz}|z||w}{w||ԁ|||ywt|}|z|~~}}~~z||wvu~|wtswz|{|Ҁy|~~}|{|}|zwz{||zw|{}w||~|rz|~}zz||}}wz||zww~}zyy|~|}yz|}} |}}z|~}|yw}~~}|z||}|wz||{{}|}~~|}}||}zz|}~}||}}||ww}||||~|y~~~~||{zz|}|zy{|}}||z|}~||}}{w{vw||}|}~||}||}||{{zz|zwwz{|}||}~}|z||{|z{||{w|~z~~||}}||{z{||yz|}}|w{||}~|zz|{{w{}}||}}z|zw}|~|~}|}~~|{|z|}{|}}||~|zyz|}{||v{w||w}|y|~|}||}~~|{wv||zy|}}|{{~}|zwy|{ww{}{|{||y|~}~||}~~~|{{|w||}|~z~|zw}{uz{|}}|{|}uw{}||}wzww|{zz{w}zw|}zz{v||~|~|~|zw|zv||}|ww{}|{}}||{|zz|zzz{z}}ww{}||{w}|~|}||{ww}zwwz|}zw{|{{||{||z|z{|{|||}}||߁}z||{zww|zww{|}|z}w|}||wz||}}|{{|}||{||}|}}|z~|w|y~w{wz}{w}|}w{|w||w{||}||{||}}||}||}|z||{}|y|yw|y}w||{w|w|}|||{w}}|||}{z||}|{||}|}}|w|ww|{w|}w{ww|w|w}}|}|w|u{}{||z}|{||}}|z|}||{||}}|w{ww}|z}y{wy}{|{||{w|{|w||w|z||w{w|}||}|}|z{}}}|yy~}wz}w~~}|z|}ww}z||u||z{~~z}}~|~y~|}}tw|~~~|||w|~}}|z||w{|}wzw|ww||~|}|}|~}w||z}y~}}~~|w|~||yww{||z||wz}{}wwwzwz}zw}~}~~||~~~wzz~}~z|~~|wz~|y|ytw{|}}||}vw{w|}w}||{|}{z|~}~~z|}~~|~~{~|zz|}}||w|||}~~}wwzw|}w}}|z{|}w}~}}~z||z||}~|~}}{w||}|yz}~~}ww|||~~}||{{|w}zwwsw||w|~~||~z||yw||}~||ww{wwz}~ywz~zww}}zyw{}~~|zz|{|w}z}wws{}{yz||}~z}}zwz|z{|ww{wzw|~~|zz|wz~||~|z|~~|zww{zzv{}w||wz|z||zyy|~y}~|yzzw|}}w{twz}~~}|w|}|zw{}|~|wyww||yy|~~|~|~z~}||y}www||y||w~~ww|{|{wz}}zz|}|ww|w||z|zwz||}~||~wtvvt||w}v}||~||}|}~wz{{||w{||wzwzz|~}yz~~}|z||~z}||wyzwt}ww|v}~|y}|zz|~~|wwzz{|}{{|{zwwzwzyz~z|~}||}|}~~||~~z}wpw}~ywy}~}|}~|wt}|wwz|zz{||{z|yy~~|||y|~}y~~~y|~|~||~wz~|yz|}~~|yy|wwz||{wwz|}}||}zw}}|~~|y|~zz|z}|w}~}}~|~||z}~|{|~~zw|~|z{}}||{wz}}{y}zy}}~||}~}|w}y||~z~}|~yy{|~||~~|ywz|ww}}|z{}|zw|zz}~~w}~||}~~}||tz~|}y|~}~~~}|ywwzww|ԃgtt|mvnhnyjn|yennkge|ߒYkpnmnq񤧩gjqv}mhny㯩qgqqqnetݔ^wwysnpweqqzvqsqzwmvv԰wqzztsnqpghw뤪w֯|ppnpԦzqgktթqstvny󭯵֩mpkqns|ĵ}veqjqqwqqmpvqzﲭ𭪪}q孯ࡠߩ۩⩪ԩԯҭ򤡡 㬩󩪪৩򩯪쬩誩ԩءǦ߯马򭩡ଦĩФ䤧ݪ򦪧ک񦡧ꧤΩݣ诩ޡש릧孪妡寪Ŭ 0 3 O3688;><89:98:=;::989::;::<;86679867522334665476769=:9=<;::9:><89;<=:89<:9:<>=;::998;99<<98::;::9;::8::;;:77978;::99:8<:8:<<:8:=<::;:9;88:;:9:9:7677:89::78:8788::9887::;::989<<::9<::86;86889:87798789:89:977898899:8::;:988:9<:9986:877887988::7::89:9:9:98778899::;89::<:8989::9::9:989:6778985578878:979:88688989:<>=8:99::9:<;::99:897:9897568896996766899:97899:=<9::9::<99:9:;:86657787889687466788988:88989:99<9;9;;98:<::879987887899868::899668987688:<:<79978:<78;:<997;9::88986898 878789::989:97688967965688687:9<9:8989:9::68876678668998878988978789896446:<:79898;9:988:;;::968865667669:889::98988:9:9987;9:8;898::98688676678765886678876788799897878878:<::><>;;9::98987988679878988:9989:9887::<579::9753488;9::9:8799;8867679:9989::998689;::7699;98752.'"()-.3389:<::;:9;87886857::9969:98:99:8:;;>;850/-*'%$$%%'&'&$%&*+-/2357899::<;989;=:7:;68::;::<=;::96540.-*'#"$$%&&$)/,**&$%%($%$#$$%)*+-012166775664332367550-+*(&&$""!!$'&&*1569=:9:62/)('&%##! !"$#"#"#%#"##%%##''%$*'##"#%"!!$&*/3545:<;::98::9:78752.,*('(&$##""!#$%%$$%&"$$#$%&(&&')*./02469;=>;9;:97897988:88::9::9640.-+*),,**,-,,-.12545799;<899;;:98::9::9:;99;<:;887788988998:6;:78;;:>:99<:99:;;:9:78878976889::8::;:;9899;::998776789789;7:978::=:8989:7989:86679:98:;;:778998878;::8:998877884699768:8:99:99;769:89;::9989:99867876;987898798:988=7899:878:;::8:88;99889::98778:886686889;88=87:998;99:998878::88978:88:9889:99897878:89:989:88;77:99:8899:987887898799;9::89;:9889:9986889;::989889978:89;87789::9788987:;;::9::;:<::9878698:;::879:88978;87889::978988::89:99:88::;<::98787989:89:8879:898978:88998799:9;89;99<;::99:988:898898998898:89889799::987889:889:99<8:>::=<;:99:99::9887;9967989889769:7996989:8778:8::8897:69=:9;:;;:8766<996698:8989:64967899898::689::;8899:99:9:;996866868989::649887889:88998::699::7889:;<<;;::9988989:997646878:8899898778898998::8::9<;:988:;89:889887887787889889846889987698998:;9;::98;;::;:98989866889898678698898:98:;:;;::98899:;;:9887789::9887886789;97896689889::9:<::9;<;;:98799889::9:988688986889:8689769<689::89;;9:<:9::;::;::98>=;:99::898688679:88986899889989:89;;:;<:89:;::;<9889::9889:786688678988::78;<97:;84689::8789:<;:88::;<::;:=<:88:;9;:988986679:9979:9989:988986:889989::;:99:;:98:;::;9;;:9::98:998898879898::866898978<<99;:<;88<=;889::;9;::988986778899878987899;976789:878<<:9:9::<:89:9::9;:9989:98899766899688989779:889889:;989;;::<:998::9:99::99;:998768998768988679:889:9:88::88;=:9989:9889:;:9987889868:9887876788988:988:99::99:;9898::889:86789987889:9989:988788668:879978;9::98:8899:969987898446898788:98899879::88766886:99868:89878::97898669<88778876::9768:868:=989878766466887887:;9<:99869::8:<99876975579::89:88::898788:864678998998896::989::8768:689::98775469;:9:76687868988766889968989:86899::;998668856898877:88:8;8787898668987874679::99668:99:878::99::9:8898766=;9889::89:7668977868878979:886789:998989887:9889868878967788678667889767:8899688998767887898989:;:89:8878768964689978:878788998:9889:9876677876<9679::98:;:67878776689788789:68:889989:989867::9::86987:87<8:5689;7:657766:56776997:;76788989:87887889::98988:86:873688:89889976778787898997667889788788967899:89868<97997899:;9766887889877866788688:9788988698866<:99889::;987788767:869:76898786877887889887788668987667766889::87788776788766987::8789876897677988789878679669878899877656788689:887887678667787898988:86998:88966878:9767876678876678899868877875577898679877889;98:74:85889857:77:96679866887668989:5߆|~~|~}~|wyz~}y{uooqqswyvs{w{y~~|~|~~~~}~}}zz{|~~}}|~}|{w{{ꀁ}||{||z||~}||z~|~~|w|y|}||~|z{{|{||~~{{|}}~~|~}|}~~~|y}zz||}{~}}{}~|{{|}~~}~}~}~~~~~}}~w{{||vv{|}}{z{|z||w}}~}|}|}~}~~~~~}||{|{vw|}}|}}~y~~wzwwy|~~~z|~~~~~~~|wwv{z{}|z}||}w|{swwz||}~}}|}}~|~~~}|z~~|z||z}}||y||~~yw|~}{w|}z~~{|{|~{|||y|~||}}||z|}}|z|~~}~~{w||}~yz~yvy|}|w|{|~}~~w|}||}zywyz|yw|~~}||}}z}~}||z|z||wssyz}|~~|}~y|}||ywvwyzywy~}|~}|}~~}}{zz|}|~|y||}}|yyzywwyz|zyv|}ywz}}||zzwwz}|{}~z|{}}|z|~~}~}{~}|}}|wwyyz{~~}}{z}~}||~~}|~~|}|{vz~zurs|}~}{~||}|wwzw{~~~}~~~}||}|y|~{y~~~|zvpfWKX[efqr|~|z|}|ww|u{~~ywy~~}~~}}|vjie^WSQQRSWUWTOST]`cioqvz}~~}{y|~wutjge^WNLOQOSTTQ[hb]^TORRYQRONQQR\]`ekmolww{{vwwsqqoqwzuukc`]YUTUTOKKJJOVUU^luwyph[XWURNNMNMJHHILONKMLMSMLMMRRNNVVSQ]VNMMLNSLJJOT^hqvsv|{|zvogb^YVXTONMLKJNORRQQRTLOONOSTXUTTW\^fhjoty~{|~{}||}~wsjfc`][aa]^beaabcecfloutvz~|}~||{{||}}|~~}||y{|~~{}}{}~zw}}}~|~~~}{{w{}~{|zz}}~}~z}~}wwz~|z{{}~~||z|}~~}|{{|}syzw}|~~~~{y~}~|~~}yz|{w|{|}{~|~}}{}~|{}}||~~||~|z{|||ww|y|}}|~|||z~~}~~~}||{|}||~z|||~}||}~}~z}z||~~|~|}zz~~|}~~~}{||{|}{~~~}~~}|}~~}|y}|~~}~|}~~z||~}zz|~~z|}||}{~|{|y~}}}z~||~z|}z||~~z|}}}~~~}}߅|z}z~}~}~||}z~|~|~z|||~~}{񀁀~}~~~~~|||~||~|~~||}|}~}|~}}~z~|{|}|}|~|~~||{~~yz~|~}||~~zw~z~~y~}}{{}}}||zw~~}zww~~yy~}}~|~wt~yz}~~}||~}w||}~~~w|ww|y|~|~wt~}||z||~}|~~|y{||~~}|~|~~~zyty|z}}|~~}~}zz||}|~|~~||}}Ƀ||~}}~||z|}zz|z|}~||~}ty|}~~}zy~}~~|~|~~|}~~}|}}~~|yy||~|~}wz}w~}||}~}~||}~||zz|~~}||z||yz|~~z}~ww}~}}~~|{~~}}~~~}}|y||~|y|}~}y|~zw~y|~}||~~}㊇~~|~|y||wz~}|~}y|~~||~~}~쀁|~}}}~||}~z|ww||wz|~||z|~z|ty|~}z|~}||}~~}||~~|ywz~~~z~~~|~~||~|w}|~~}~~~~}~~~|~~}}|~||}|zz~~}|~~}|wy|~}~z|~~|}}|~~~||}||~~|wzz|}~~}z}~|z}~~~zyz|~|z}~~}~~~~~|~~}}~~zwwy|~~y|}||}~}~zz~}|~}}||}~~}~~~}~~~~~~~}zw}~~|zw|~}|}}||wz~}||}|~~||}}~~}~~||~~~}||z}}~|y}~}}|z}zyz||~||}~||~~~~~}~}||}~~|wz|~~|z||~~~|~~|}|z}|yww|}}|z~~z|~~}||~~~y~~|z|~|ttw}~|z|}~||~~}z~}||}||zww|}y~~|y}|~|z|~z}~|yy~}|{{||zw~~zw}|y}~|~|z|zwwtwy|}}|z}|z~~~}|y~|||zw{vv{|~||||~|z|||wtwz}~~}~~|}~y~~}~}zy|w||{{vtw~zwyww|z|w|~||}|zyy|}~~yw|~}~}y|~~~~|yy|}uw|}|{{}|}||z|z}~|ww}~|z|ztwz~~~yw|~~}z}~~~~||}{ww~}|~||~zww}~zz|w||z|}~~z~}||yz}~~~}||}~~}}||{{~}||~~|y||z}~wzz}|wz|wwyz||}~zwz}}~~y|}~~|zyz|}||{{z{|}||}}|~}~||z|zw|~wsw|~~z||z|z|}~~}||~|}~~|{wwz{|{wwz}yz}z}zzww|~z||z|~w|}|}||wz~}|y~|z}z}vw|zwuzzwwuwz{{y~~{{wz||}|z||{}||}~~|~|||y|{rw||}~||zw{zz||{|{}~|zww{|}}{}|{}}|yz|~~||}~|y|z{}~{ww||{||}|z{|ww{}||}w||{||~}||}|wy~}|yw}|}|z{||{wz|y~{w||{|w|{{}|z||}~}|zz||wy}~|zywz{ww|}}|zz|}{zwz||zyww|z|{||{w|zwzz||}|zz}~|z|w{ww|{|||zz{{wvw{||ywwy|}~||{|}{w{|ww{{z}||zz|}~~|~|||w~}}}ww|z|zwz|zww{||{wwz|||w||z{}{vuz{||wz~|zz|}}~~|zt|u|}}uz{{ww{|ww||zww}~|vߵ񯪰꭯ۤ𧦧ެ߬ꧩﭯϬƩΧ뤣ܬ񣡠欩۩ʩvewzvpmmnpvsvqkpq}vjgkmkpqqmz}qknnymnkjmmn|}}ysqsqkeeddktsszwvsnjjhjhdaabgkjehghphghhnnjjttpm}tjhhgjpgddkqytwqkjhgedjknnmmnqgkkjkpqwsqqv|}z}ũ窧觤ꦧ欪ᬯ穧󪤧󬧦檯߳񭯭ɬ䭬£ꡝ릧ɰ𧣣蠟󭬲Ъ㻶쭯٬ҩӧʧԩΣ𤡧檭󣩭ت᪭֪٤ݤݧҪ𧩪檩򩪤理穬ԩ褧⩧ԩ獵ꩪ񩬧穧š뤣ᩧ㪰:<:<;9;<;:998:7:7567799;88;780/)"!(.11++*%!F:;:<<:<=:99::;<8989<:8:9:8991,'%!$.9:6<93*)$&(H>><=;8::98899886:9:9:;9:730& "&,28==::;:74+%#$*`<<:<:8::;::;:886;:8879964.&##$+4<<878;;9:>>2*,%+#(a::9::8::9:9:899;=982,&!#-18;=9657:68779967,&)(6:;9::7998989:<;;70-(!$*198:98667897=;846:C61*,&"79:8::8:;;::9:62+"!'%)268<76899768:;<:;9758?:65)(&#$T:;::8::877899:<93-')+'(/28>84:779:866:>8<865879:<;?92)*& &]:8:9;8<=886<=752-$"&(,36::8989:4:8877877:99:;:988;:9;:41)*&+p;:;;<786=;894+(&&#&-26:;886889;7:9889889:9868:88;<::6.()("1v:899<::984-*&"%'*,05:<;;87688:9::99:986:9889;::6.+&!*=;988631)&"$&')*5::8;:77:97::798;:99:9::9988789978:8:<721+&:952/*&"&""%*1699=<8::78898::677;:998::988989;:89;:678760+,,(&#&&(*269::7::8::68789668::988988989977898965=?78%'%&%+/398;99:8:98998:;96:88689:988987678874366589889:=85H"(,0/67:<8978<9:;78879;:8=:88:;9889::767898766986884:8:98:9824688767<868:;899:69:88::8987877978<9::8:;99::9:979679899889;:778789:9887889::997998867:99:9889::9869;779889;:88:889::98846688766::987788998986:88::768869:98:;:9::9676468:99:989889::99889::89:998 8:;988:9:98:<:69989::9788:;;77:98::899889::99768:9889:9:8789:959989:;::9887689976:87988998896:98 89:7788979889::9::987796:967668 89:649::9989:9857977::889::789889::987677887678898;9:967:996785578988:<;::;;978;;9:9988:98787766788987668988989:88:9:;;:99:99::98899876678898988996469989:88989<799;:889;:9877896567766778;:77:87;9976699889:989:9;;99:879:9875567886567765668<;77988<99656998:99:;:88;;98899<8789766567886566557668766::88789879:88;99:;:989989;:;878977898766788:757645766878578879:89988;:89989::99::;:9979668989<;:9878897688535668989;78:868;7:966988;889:989;7899:;;997689::869:885:577637868868847<:69:65878998898899868:89988:;:678899::8878695678869778866865;:7::897679:99:88:;:9:<79988996899889:8987876895678878689846894898988;:99::998:;;99;889889989::988:879868:7678866789866896889669;;:9:;<;98:9988;9779879:98:9799867865588989878:768::;;:;;<;:9:;9887899:9767::89::9:988675786768768::88:889;98::;;:;;:88989;988989866::9:9989857688688664698689889989:;<<::966789767988997897::86899:8867985878869866447648789866789:;::;;::9:<<98787799778686898::6896878869:663684585868:88::;8;>898;;89;8348:969:68:89:9;::87768878787688686896797;87997;;9;<889878::868::8:;9::89:9;:;98867887667688678<88:9:97;<<:;;88;:988:898:968897:9::889898667668766988::99::;<;:988::868:99:86689967878688:;8898986688686688;88::89;;9:;;:8998:8:878::88:9:78989688:;99:898789889564488:98::8899<:8:9:889988:88:;98:9:8::897:9::88:89978:87955336788:9:9899688<97:8::8998:98:879898::886;::988989988:868864689989;:6698988;97:88:978976889:9889:;::97:;8798698868:;;9678668::98687:8:8878899768899::;::988979:88798788488:9889::9:88797989568::988789:;;:<;::6788987899887988:98978::9::88:8988::9667889:;;:<<;;:7988:878998:88::886688::9689;:9769987668:89::9::9887898779:9889987667:97789867::98667788997699 :9898898779::988987688:9678:;:98897767798863889::;:989898:9:98989::98898:6757877668899689::;:9889::9989:899889984778;76679:9799;8858868::8776::89<;9::987897898768:88766898668978986;6685689669:8789;;::;:8;::9:99889879866898989;887396697785457878:99:;::;:9::99;:99::99876:9877898856987769768668789889;978:99::;99::9:;99::8769876788734886778976766868865676<89:8899:99::9:;::9987886788766788:66986776766887889989;:8<9:<99;::;:97669:68868:866786876776688996678768985:8:<:;>;9;;::8::9668:8878:866766865676788768854::98:8;=::;88;<:9;:68:<<:8876;988678898679885766978788:<~~~|}{zuwz{~|}{|kh[KJYgml_`]SJ~~|~}|~|~~laVRJQf~y~r][OTY|~|}~~||}ww~{rjTGKTao}zt`SMQ^}}|}wy||z~~ytfTNMO`s}z}~p^bS`MY~|~~~~|~~}obUJCMem|~wu{w|zz~~y{bT[X?w~z~~}~|zjeXJCO]l~|~}ywz}~{}tyyl]aTBKz~}}~wo`KJWS[pw}zw|~~zy|~{u}yv[YUMQ||zz}~~rcV\_WYio}}s{{~|ww}}yu}zo[]TGU}~|}|y{vocQKUYbrw|~|~t}|zz|zz||tm[]TC_{|y}s_XTTNTcow}|w||~z~||}~}}~|w}}|yfX[XLl|~}se]TLSW]bku}zw}}|~~~~}|y||}}~wf`UJ]}}wrl\TLOUW[^v}{{~zz~}~~~}||z|~~{|}zpm_T~uoh^TLTLKS^lw~}{|}~|wzz~~}}}~|~}~w{}{wj_baYUNTTUY^ow{}w}z}~wy|~}}~}}||~~{z}~}~wuz|SVSTR_hq}~}~}~~}w||y}~~||}~~|zwz||ztrwwv||}}}vKXajiw{}z}{}}z~||}|~||~{zw{}|{ww~}y|}t}~|}osy}}|zwz|w}|퀁yw~||}||}~~}||z|z{{|~}|~~{w{}}}||}}~~zz|z|~~}||z|}~~~z}|wz~~~}}~~~}|wz{||}|~|}||~~}||twy||zyw|{{}}~~}||}~~|y||zw||w~~}~~~wyzzwtw}|~}}~~~}||~}|||}}||}|~}}~~~||}w~~}~~~{||z{|}}||}~~~zy|~||}~~~~܁|{|u~~}~~}|zy|~{w}z}|}||}~yw~||}~~z{}|}{~}}~}{{wwzww}}||}|~wt~~~}|}~~~|vz{{}}||}~{|}||}|zwz{||{wz||}~~|w{w{|vu{}~||~{}}|||{|{zww{|}|~~||}}zww||||~||}||}~~~~}||zwwz|}}~~||}|wsw~}||}~~|~{~~||}zz{||}wvw{{wwzz|}ׄz{|{~{ww~|}}~~|~~~~~|{|{vvwz||wvw{{wvwwy||م{z}|~~wuw~~|~~}}~|}~~}{}{wwvuvw{|}wvwwuu{wwy||zwy}||z{}~|{}|~~~|~}}|z}{z}|{wwz||zvzwsuzywy}}|z|vz||{|~~|||~}~~~~~{ww|||{||}zw||uruyww|~}~z||w}z~wy||||~~|~z|~~~~{y|~|y~||vvzzwr{|y||y}}t{wwv|z|~~||~}}~|y||~~|}yz|}~~||}|z|wuwz||wzz}|wy}yv{|zyz~~~|}~{~~|}~w}~}}}~|z|zy|uwz}}z}y|~|tw}~s}|||~~~~|큃~|}~||~~|~~||}}z~|y}zw{||wwz|~}yy}~w||ww~~~}~~}||}~zz~|{~~}~z~|w{|wvu||}~~}}|{}{w}}|{|~~{wz}~~~|}wzv{|w{w|zw|||}|}}||||~}}||}|~}wy~~|}~}uzw||w}|ywtw~|w|}}}~yw{}~{y{~}|~~{|~z|w}|}}wz~|u|z}|w|wwstzwt|{||ww{|~|{|z{~~{z|w|y}~}ywyy|~y|z||y~wyqw|sv}u|w|}||}~}}~|qt|~w~w}|~~|zzw|}z|z|zw|}w}w}~wz~z|z~~z~|}}}{||w||~|~~~}|wz}|}|zwwyzw||yz|}|~~z|}~}|}}|~}~w|}|~z~||~|~|ywwyzww|zwyww~}|~~ԃ|}|y|~~}ww|~~wz|z|w}}}}~}~|yy||}w|yw}||||}~}~~|}}}|z|||~z}~|~y}}~~}~}z|~}|~uwtt||~~}|}~|}|~~}}}}ǀ~}~}|~z~}}}~~z|}z~vurrw{|}~~|~~w}||{}}~~|Ȁ~}}z~|~}|}y~||~}~~|||w|}wtw|~~|~wy~|||z||}~z|~zw|}|~~}|}~~~{|{}w~||}|wy||~yz|yw|~|w|z|||{||~~{w}}~~~}}~z||}}{~|z|}||}t||}~|}|~~~|}z{|vw}~}|z|~w{|}||}~|z|~~}}z~||~|~z}~|}|}|}~ywz}||~{z{}||}z|~~|}}}||yy|}~w|{w}zwy}}~~~}|}{|}z{~||~~}zwywz~zz|}~~}w{|ww{z|}~~zw~~~~}||}z{~||~}zw||~yz}~||}||{{wz{||}|wq|}~|~~|~|}~~|~|~~||}wzu{|zzyy|}~~y|~~}}~}|}|~~||~~}tzz}ރzwwz~~z|}v||w|}zz{w|~~~}|zz|~z||zw||}zww}~|ww}{||www|vw|ww|z}~}~~~~}||~|{~|wy}~||}|}{rwwzz}vsv{|{|~~񀃀~~~~~~~}||}|zw~|zz}~||uw|z{{wzw}ww|{|}||~z}~~~~~~~}||{zw~}zyz|}}zqs||wz{|zwzww|w||wvwzw}~}|~~~~~~~}z|}|ww{}}zwwz||}ww|wzzwzww||z||||~~~~zwy~w|}|ww|}ywwyzz|}ww}{w{{ww||ww{|{w||u|~|~yy}||}|{z|||yyzwy|wuw{wz||{w}||}us|||}~y|||}}|}|{w~||wz}|}w{||v{wwz|z|}}||۩zedy}pdȯtndm}zkqyq_eqphmqjhkphysd[hqzwUƬwd[k}}qYeСedvpzzyshmt|vyz}q_smesyz}q[wqqjqŪwzwgѭ}qgpv}̣sd}|qgksvzΤqqgqgep٬ysjqqsy񡩤լptpqnͤewצǩ褧멧𩧧ܝ몬ܯ秠Φ駦驭𬩧کײٳ栞̡橯𯭪骤𩪪৩Τ褧ת԰詡ԧ멭ǭȭ驭٦ˤˡ󦤦ۧ檩꭪꭪񧩯묩񩧩ްݧ񭰭ĩʦΤת秭礩-/ 1 3 5 78:93/*&&.o*<;<>:1)&$#!4#:9:<<966)'%!::9:37-#&#&668::9::82*%$%#>!68:<;;:>;9897."" #I ;:986>;8>=42(-*X;99::989<67:7=B8:-&,(0!<:9=<9898;;::88<:93-&%$ -o;:9:;:989;:87898::92+''&.:99:9899:9889:87:;82,&,&!69;:89::8:89::88:;::;976+&&#3:<<99;;8989:989::<<:88;=<;6)%'! 5:<<9:<;88::98998:8899::9<8;6/.)("<9:99:;978::98998=9789988=68<<:2)*-''?:989;;86789988;889659>6=>;9;>93*'*"!E;99:=<96768::88:536::7:@;;6:>::<950.*'%$<969;;8:8788986:8789989;:8668::9<=6..,$&":76988698898996:9889877967899::7:<9883+'# ;7796576889:89:799899876858::89<;9;=:81'$&")F89:66:9889:88:8898877579::988:=;89:;>891-%(" <89:68=:88:88:868876689::7;;:;:8:<>;<1,&'%)>88969=:786:889869:9886:86689987::;=<96<;68862,&*%"<78:88:8869:8988::988986:986677899::<;7<97:>9963*(( "B89<:898:969;998899878:986688789:7:=;8:;79986>;>8>70*$$ +j98:968:9:889799757::8:=88688;88::8:88:99:;8.*,-%!,|889889:9:89989:87898678846868662;99:99:9;::76:9:9:=;652.+)&(/I6889::9:99:89:9779866867664788699:989:9:9:88::<8:;::>=87,('" *<6987::88:99:89:987886687688668::66998:=:8899:<;88;=<<94*&)$ 6:88::88:89:89::878866882688687647::8:;:;::9988;:;::?9::6.'*89989:88:89:88:986898776646686689;:8897;:88699:87:==;:9;;77:6/789989:898997799867976769:662889:9::88996898;<;;87:;99<:9<<:<>679:89;99898668796676577:882669968:88;=9:8::8::5::78:9:8;9;<;=9866889:99;99;88646898664686442788:;:69:9;9799:<;9:<9:99<<:<88:98:89;99866788686689:;97:979:<889::88:8:88::8989::898:89::98788:67876886689886:8689<88::98899::98989988::98:98899:78988986448987896:97988:9889::;::9968988::9::99:9:998:689889668::99:8;:8::9:;:988989::988689::98::9::8::9:87968:988687689::886:8689<9::87889:;::89;;:88::8;;8::9889986:78:98864668:966487478:9::8689::9:<::8;::;:88998;;9;:<:8864;88:988648988;:6:7::;98:<;989;;989:998599;;88::9:<;9898547998698697684::6:8479::9889;97:;::<8:99:89::<:99768::99:87:98:86869:797899868:98:;99:9;;99;9:89:89::<:867;:89986987966898769887998::88:99::;;9:99:9:;::9:;;::8965986997886868788678867899878989:8799:98;9::;<::989:9898;75887::;99:8989898898898998689:98788:9:;;<<:;989989<9799;:<98:8978:988987788998978::9867998:;:;;:<:89:988;9:;8;8798866:8997:667889::;99879;89:988:87:;::;9>;9::98879;:9::99=98::84:8:96:699:9889<:9879;9:;87::9;&&o.TAz,VURW+hbYUMO+}w`X`TI]*qi^TU?g*䆃l\UQNIs#~~wy\WREJ瀁qzcMTNTww||o]RQSM!w|}~{gLKGN ℃~|w|soYe^@E~~|~w{{|eUbYBj!߆|~}||~rcTSQHe݄~}}z}~|p_VVUAf~~ր|~}|}~|{|oaUaTIy}~||~|}~zw`UUMDqׁ~~}}~~}~|}w\SWIHvց~}}~}~~}}|~~}wif\XCL~z|~|~~|{}~|}w}o\]cWV~}~}w{}~~}}}}~yv~w~q]W]LJԄ~~w{w|||vrw{wujf^VRQ~y~||z||~}w|z|~~|~|yy}wfgbQTL{y~}|}y~}|~|~~y~}}~}z{~yz|~~{|}r`VMGE{{yv{y}}~|~z~~}~~}zy|v|}||~|mWQUK[}~yy~}|~||||}~}|{{vz~~}||}~meRYLH}~y}|||||w||}}{yww|~z|mbTVS\||~y~z|y}|~|y~~||yw|ww|~~}{yy}|yoaU]RKz|||||w~}~||~||~|w~|yyzz|ꅃz{wq]XYHL||~}~w~~~|}~~}z||wy||z|~{}z~}y}zk]QQG_~}~w|~}}|}{{uz|||w}}|||||~~|g^bcSJa||~}|~~}~|~}{|}wz}|tw|w|wwp~~~~~zy~~yuof_\TXiy}||~~~}~z{}ww|wzyytz|}w~~~|~~~||||{aXVLG]w~|z}}~}|{||ww|{y|}yy|wy~~|}}~~…|}~t]U\OHy}|||}}}{||ww||pw||y|zwtz|~~||؄~wfV]|~~}~}|}|}~|w||{{wwtww|yw}~||~z||y~~}z~z{whz|~~|~|}z{~~|wz{wzw~wwp||~~||~~~w}~|}z~yz~|~~|}yy}{wwzwvzz}|oww~~y|}}~||vz}}~}yy|}|~~~~~}}|wtw|~|ywty}wttpz|}||}y~~~z~~~~~~||}~~}}~~|wwz}||wy}ww|}~~؀~z~z~||~|}}}|}~|~}~}}~~|z||}}yz}zy||yww}~||}|w|w|~|}~||~~~|~|~~|}}~}}~~z|~||~}ytt|~|z|~y~z~}}󀁁~||~~~y}~|}~~~Ѐ~~~~}y|~}|}|~yw}~~|}~~|}~}~~}}w|~~|~}~}z~y|~}|w|zy|~}|w|w|~~}z||}~~}||~||}}~|}~~|wz|~}|wtyyw|~wyt|ztz|~|y|~~|}|~~|~||yt||~}|wt|~|}wz؄~|~|~~|~~~}v~~}}~~}~}vsz}w~|y~zy}ty|tz~~}|{||~~}~~~zw|}z~|}y|w~z~z}~~}|yw||}~}~|}w{|~}y~}z~yy}~|zw~}||{|}|~~~~|wv}w~~z}|y|w|z}||yz||yz|~~}{}}}z}~~}}~|{v}}z~~}~|~}~||}||~||}|}}}w|}{|}~~|~~|}{ꄀ~}}~z}~}||~|zz|}~~}|{||wz~||||}||z~||yw}~~zywz|}~}{||}|||z~}}{~~}}t|~ww~~~}|}~}z|{./.qX5tsnv-yshk-視wqb},ﰹqsU,䵰|smjb#歪|vn^d譯hqjq顧}nmph#衧ge_j ⲰyV^氬syY!ߵqpmaݲttsX֭sqbꪤssh\ۯ|pvba֯|w[gӬ|}vt󯪩䰩}v}gdԲtnm⪣ꬳmqgth_^vmsezשnyga槪qtp|ڣs}ne桪볰}wyag˧}mm_咽pd|qwwtg_}³}s|kaزt}󯩪حȪ鯤󭯯Э񡧪٩𩧧Ԫ짰룝ز̩̦Ԭܩ겭=<:75 O3 3 1/-*((O$$" "$&(*,-02 4 68d:< ...$9.'" /u/*('&"$:.95,&&%!!C0:;82,&$&%""&:.7;<=992,)&+*&#;9;9:8=<:940'&#"#& <:8;9;=<;,'**#$!9:9=997::>0$#--), 99:9=9::>>:>3%$49.%+1 ;:<998;868. "7<8.,&*898;89899;<0!"7<>:2!&%:;9:68688:;1$!5:;:B3*&&%R8988::;<1$#46::9:9.%-!N8:<::;0$#46:9:;=7.-)&>988::<::;0$#468689;<4/("@:89989::0%#4797::<9,)'T:9989::;2%#5896::8:<=8+)##:99::9::8;2%#5983688:9:<9**+"{:99::99:88:2%!49:679:<9::C61+&;99876877:1# 2986657:89:9:8.),* ...O.VLGh/]YVUKO.vbTTRJCJ0}pbTOURKLUB.z~oa\T`]T9M}~skWUNKMT |bW]]MQI~~~{kOMcc\aG~qROtgS_Al ၆~}|w|fHLz}gaT?]|~}|~|~jJKzoJTAS߀w}y}|lOJvr]TTS}||}~|}lONty~fSeI}|}kONtw~zfc\U~|}慁jONtw}y|~siYKD}~~}~kSNtz~{a[WA~~|~oSNu}w||_[NN߁~~}oSNu~}qy}|~]]`Lׁ~~~}|oRJtwz~yl_TA׃~~}zy|z{lNHp|wyv{|~~|f\a] 2/.k/tg_/}ytsek.񬠅qqnd[d0ﯰqksnegsY.餲|q}qMh謰vsjehq 짰v}}hmb窭kh|_!ᬯnkpX ꯵agqU}ߧdedqXp᭰kd}qqp ⩧kjpbکkj|s泯kjye\䪯pjzvX誯pjzjj߯pj}}gׯndqX۰ja|} =698 5 1/. ++*)(%$$#!"     778798L6m"7""6)($6C##%6u ''26&#*0:69'*8:7y "%2<86,$".8866K $'9868."%'2::<:.>!$-6:978.!"'589:58.2('/:88;::0,,7:88:>8/3&'2;:88<5/X!,+7;:98897/!(&6<8;:88>.F %-?:8898:<:0.!(1<;::98::8."#088::8::7.4$$6>699::9:;8.&)8<798::9:;8.:$'2:<;:9::8.&++:<<9;:88/X '0:=<8<88;:889&/$)8;89::;97896&l%#.9<=<;878::95&2%)7<;<98967998&&'*8=;:9<:89:7589&a!)/:;;<:>:8:<966'5$,8>;:<97<88:996&&$-=>::9;9>:88;8&H%1><<:4:<<;;:9::6&(&'89::99:;9::89&%(0:;;::;::98789&H#'3=<::99::98789&-&)6=::88:9889& ).<<:98899899&s(0;<::9::9'8"(2;<::9::998'"%+8?::98<::88'u!'2::9889:899::87:&K")4=<::9899:9866:966&2 )3<;<;:99:7767::99&%!,699;::99:9'~!%2=89::9889::6569988'F#(4>::9889::/*+38987&2&)6:;9::9:.&'28754&#&,;7=4<;::99::,$(5:878%'.=8::;;96;9:6&&)::68:]"(3=8:98898<893$%)98899 4!)7;89:879:;8:2%&+8776'%+8878:;899:8<4%&,97766"&.:88::;8898=5$"+::87: &1::9::8687:8;3%",<:96; R %4:;7998787;8:4&$/<:9589"%6::5788987<9:6##/:8:687787986K7KL6\YO6NMR6GVWo6TM]k6~DV^|7GKSo|6bOKf||y6HOW~|y|.KRVp.IQew~z|.JLWv}~u}.oXWh}|0Cbb{||}/qUWo||}u/Jb`{|}~{/JYTw}|}|.HSe||~}0fJYm}}.LMk}}|{.tOOww~|.EU[|z~}|.QVp~|.U__~}}|.GVj}|}|}&hQ[}}{|w&RNf|z}v&oR\{~|w{|&TW^}~|zv|&J[h}ww'uOa}{}|w&TOc~~||}|&ASlsw&YUV|~~~~}||~&RXj~|z|~&MWq~~~|z|~&cU[w}}~||}~&H\f~|}~~}~~&CYj~~~'}KYo~~~}|&KR_}~~}||}||'JVp~}||}~}|z&K\s~}~~}wy~wy&oH\r~~{zwz&SJaw~~~~&JRo|~}}~yvw~}}'NXt~}}~i^_r}|z&oT[y~~~fTWp}{vt&NUa{t~~bQXv|{}SVg}~wwUT\y}KXq}}}~}}qQR\~}|~ tJ\z|~}z~}oRT`|z{zwWR`}}z}|~}tSTa~{{wwKUf}}|}}~}uOK`}z EUl~}w|{|rRKb~y HRt{~|{|{}sTOh~v|LRwuz|}}zwMNh}y|7797:96e7eg6|yk6jhn7_tv8qh}6\t7_ep6ke6akv.ent/bm0dgv.wv0[/sv/d/dyq.ap0dy.gh.kk.^sz/mt.s._t'mz)nj&n|*qv*dz'k+qk&Xp&yst'nw'hv'sz'a|)[y)ey'en'dt&e|&a|&pd&dn(jw&qzqv&jsmw#ptsq| ewmn| d|nq#vnpq#eske%^sne$anqk$gnhj<X<<;:6:98%877665 5 4 3 3 2 2 2 1 1 00/ /.\..---,,,+++*>**)6)))((((('''''&&s('1;88::9:9;:%#)68899889;;6::887799;:9;:78:989987268878l#*&2=:6699:;;6:(#&8:8:9887:8778:7789;97887<667668 %(-;9;989899869+%$6<8;98997678::8788:97899877876;6678:*'();98977889;9;8-'%3:9;88::8798::889<99878:78776778478899:6!()8?6997789;9>9/'$4<::789988;889889988986:<8876678896998878*&9<8:6:887996;91#"6>:977876697899899768988::68876678::8:86778*";686;976788;;88:3"!4;:988766987889699889878878996976889&1997:;788998::6893%"/6:997679:867879:6<957:88>678878896:868815778::9887679971%&1:8978965786788:88::87788798667568879:;8788789673$$.;:978966778878789:9987689:989::8768998678::989:97678;8&!*:986897677988776889:9878::8689:8546988667875579:99:7;:(",<;7689778788778989:877898789975368765667757898:<698)#+::7678789788789::98788776789::9877886788787678788)!(76767879978998767789988769::98778879768895578:667*!'7:767769:778:9767889988987887899876677976776785576799:;-!$6:7669:85799878:899889857789::9:99878896676678776787686:;,$)78875489:97678899::8725679989765678767767878865878:/&'5:9887765889887889::876778:86577867889889868;::3'$09:9878 898898757::86588787678878898:;:;5("-8:9889877887857;977898778:988767887998:6895)%.;88798778789869<7468579:989:8877887987886995(&-:6678765987787887767886689657:8:;;98897789798688788:96($*778657767787788766784677878::987789987667587579889976)#)8989987566778876678686688677678989:98677:87679::8:79($&3::88:98:8778988:6648:9799889987689789899887788;:989:;<9:79*#%4997688778667766779988688987:89867889878997:+#$39:868986766765566::88:889886:88767::98899878878997;.#"1::968:9577887886:<97788998787886799=:7679::6898778988;1$!.9986587489989:866:96688998789665:988998778878:88;3%!,9986885899877868976:889976897665889:;:869::9::<88:3'"*:9::7897688766778988;889:76887787987789::889:99884'"*9899658747866788:<968:86788789::99866878;:89:889:<88:8:89978)#$3798997758878:998::8787687::8897::78869869:9::889;<99:799:;-%&5898986767766589987889:998686898:8788::899:;99:8978::.$$69988767998988778878::98868899786:989988989989:8:7799/""48868985798788988678:;:<:9:967889:9864:88998899:88988:99:2#"288769985798899:88788::8:96778988978::98:;889788:98983""0:987696:79;99:9:87889:8898988778898899::89:68:788977885#",::866:586886795976898898898:8866767;:987::86869<899:889:8&%)8977<6869968:686689988:8::66878674486899:9858::877877:7:5$#(::8:67689:965677678988678876688668:99::868:98:8;6%!&88:77878768877867998789:9898878:989:99:688:8:8<9(!$687988788788988976776784899768:898766:768867:67899878688;9+""488:88788788668678878:67866786:668866:8877889779887.%"3:99889:9878878867678868987898:889978:8878:8660%!1:887689:976788789986886686876689989789:987688::793$ .9878668998778788988766764234789889877877899;6%-87676688798788:788664678864468865688767767:797:;)&5:6887869967869877688997687886864898876867687869;* &4979765689669944678764978756886684668876678765677676758:+"&2889754688669:4566877687686886628876566877667677479."&28776567876688678668988769:667848876676875780"%2876678766778689988776689886::667967887678875598876882"$19755867668867897786786996674887677689755966984##/786686887697655678997667688678664876567887668986586556:95%"-787676::97448776788778667664:9688688976787678876768'&(5664:8768997467789::9:877687878:8685776678788655787765578*$%28857876899868668899:866788989:87:56687687765358768:7675+$$2995688988966788:886488689877887657:769:8785+$$2:857:9988:658868:6887898578876468:8768878768:978856:9.$$1;856998896867:8878689986688655678:88988778876689;2#"/<:65667889::97788679:987668986687866778:8:9878855887:98:6&!-:877667899898678778:668766869989988:79867:957:75997=7'#,857:8877887668::98876678867:879979:6>YWm}}RM[y|}~}}w||zz{|}}|zow}}z}N]TowyyXMT|}}}|{{|{{|z{|{|}||}|zwyzww|HRXe~|~}~}w~_RQy}~}~zwz||{|}z||{z{{|zwwyywz|]VX\~}zz||}cWRr}}|{|||}z}{|{zwzz|sz}|~~wJX[|wzz{|~~hVQs{||||}}||||w||zwwz|}~w~~||z|7^T~|y}}{ymMLw{{}{yw{|}zw|||w}|{wwz}||wzz|]Ky|w~zy{}}}|rLJs}|zyy~|z||w||}{||{z{|~y~zw||~Ul~zz}|~~}y|~rRLiw~zy{|w{|zwv{}}w{||{|}~y|w||mu{zz}||zw{zmRUl}z|~yv{|wz||}}}{{||{z~|ywwzzuy}}{~|{|}|{|yzqQOf~z|yy{{||{zz|{||zw|||zw|~}yz}}zw{}|TJ^}y|zy{{}|{{zzw|||z|}w||usw}|ww{}{vv{{YLb{y|~{{}z}|{{||}{{}|{|{urw|{yvwwzzvz}}w~}[M`zy{}{}~z}||{{||{||{zzwz||{{||wz||{|{w{}z}|[IYzwzy{|z~z}|{wz{}}||z{{ww|z{||{~{y|}||~uuvz{{|ww{^JW{zyzzy{{}{wz|||}}z||{|}{wwzz~zyzzwz}uuvz{w{eIQwzyy|v{|z|}}}|v{zz|~|{|}wwzwwz|{{wz}{w}wbO[z|}||zvs|{wz|}|zovwz|zwvw{|{wzzwz{}}{|}yv|z}hTWv||{{zwv|}}|{|}}}{wz{}}wu{zz|}}w{||}|||w|qWOj~|{||}||}}|{vz|wu}}|{{||{wz||{}||~|vXKe}}|}|{z|}}|{|}|u{z{{z|}{z{|||{zwz}|{}y|u[Rg||}|{|zz{||{z{|}wzsw}u{}||{{||{|z|}||w~uXTeww{|{wu|zz{||{||{zwz|}ww}wu{}}}zz{{||z|w|}{|}wXO]{zz{||wu{zwz{|{{||{ww{|swzz|{||zz||zwwzv|zv{~|}{w\N[}}|zvwwz{||{ww{|w|ww}}w{{zwwz|}|wz{}zw{}zYQTr}|}|zz}}}wwt|~{~}}~~}|zw|{|}}|{{|}}~{]NSs~~zw|}z{|ww{{wwzz~~|}|w|}||}~~|z}}wz}|}|}}||{|~{`MQr}y|}y{wwzwvvwy|}}||}~}|y||{wz||}z|}|{{}~~{fMLm~y|~v{{||{||}ww~{z||~~|z|z||w{{w{w|}{{|||}mQJg~~}wv|{s||}}wy~yy||~~}|{}wwv|}}{z|}}|{}||}rSJa~~|w|}u||zz{{||y|~zw|}~~zw}zwwv|||w}}rVK]~{|{w|}{wwzz}||~||||}}||~zw|}z{|{}{{|||}|sWK]|~~wv|{sz|wwz||~y}|yz||z|~}ww|{}|~}}~}}||~{|\NQr{~|~{{v||z|~~|}z|zw|z||~zz||w~|w~~}}~~~z~~cSTv}}~}wzy{{wyywv|~~|z|}||~~~|y}y}~||z|}|~~~~|~z}fOOw~}|zw{~}}|z{|}}zz}~||y}|~~z|w~|~~||~|~~|~}{{~hLKs}}|}w||vz|z|}~}|yz}~~wz|}~~|yt}|~~||~~||~}}oMLo}}|{w~~}uz}|~~}|z|}}|~wzz|}}~|}~z|~|||~z|}~}~}qLKk~|zw~y{~~~}z||~|}||~~|}~|}zz}|}~|}~~|~y}z||{z}}uNKb|yyv}y|}wz~v~zy|~}}~||}}||~}|}wwzwz~|z|w|w~}~~}}}TR\}{z{w|yw}w|ww}~~|}}yy}z|wztt|w|~~ׁ~|v||z{}{z{vQNX}y{w|wvw{zyz}~||yz||zww||yy|~~|}}|ww}}|ySJT|}|z{z}}|{|zy||zz}wz~~|z|~~}~}|z|~|~~~w|}}||}}}XJOw}{||{}|{|}}|~zyzzyz}t|~~zw|}~}zyywwzw}}yzwz||{}y}}`LLs}|}|{||}|z||wy|wz}}|z}wz|wwz|yyw}|wy}|{{||}z{}}{gSLq~~|}|||z|}|z|}|ywzzyyz||w|~|z}~}||~~z|||{}|yykRJm}}{y|zwz}|z|~~|y||yww||y|}zwwyy}~~}|}~{||zw|}{~qOGf|z|yw|}{zz||z|}~||}|zwwyzytprtz|~|||{z{|{{}wSBc}{w{ww}||{z~|z|}|}z||ywtwz||}wsty||wvw||zwzzw{{~z\CUvy|}{|y~~yz|y~}{z{{zw}|zy|z||w|yt|~||{zww|w{zw}{}w~]HTs~{~{wvw}~wy~~ttw{|{wt~{|{vw||wyw||tww}}|{ww{|{wvw{{w{y{v}`KTo||{vtw}}ww~tvwwy|z{{ww|zw|w||wwp}}{wvww|{zwwz{y{{tzfLTo|{{yvyz|zww|}||ywwz|ww|~||{w~ywyz}t||}|zwwz{zww}}|{vz|jLRo}zywz|zwwzz|y|~~}|zzyw|~||wywwz~w{||{zwwz|}{vu~||zw||oKOl~zvv|yzww||wyzz||}~zz|w{}y~~wwywzs||{wz{{w}{vu~yywy|tNMhz}yw|w}||zy~zwvuwz}~zyww{y}|wz|wyt}{wvw{||{wy}|wv}wuuw~vRKcz}zwzw~ztt}{zwz||{z|wy{wyys~w||w||}zwz|{w{}}|{zwyzzywy|WTXvywt|zw|~~ztyzz|~~|z{zww|z|z||w}vz{wwz|z||wuvz}{{yuv{|]QSp}}v{|zy|~~|w|yw|}~~|ww{||}~}~}zvywwy|zy|{zwurv}{w}{wzu_OOo~vy}||}~}|~wwz||}}}||wt|}||w}~}{z||z{wwvuzzw|z|u_OQp|uz~~}||wv||y|y||{||vz||zwtw|}zw||}{zz|zw|~z||vyfOOm}uw~~}||~yw||wz|}|zz||w}~~}yw|}}yvvyz}}}||{{||zyy}oNKhwvyyz||~~zz}|yz~}{ww|~|wy|z|ywzz}}|{}|vv}|z~}yTJc}zzyyz|~~|~}||wz|{z|ww|zwy|w~}~|}{}w{vz{u~~{{WMb|vz||zz||zyy}~||zyw{}|w{|z~~z~ySyvnhz졯㤩j}qwhq짦ΧanwnmҤ}tw|vn󳬬Чdwztm褡Jqhg}egdsng餡nsߞmkǧqd쯬⦩yg鬭椩zh𬭭ާzbyŬdv檤bm٬줧kz񤠛ޤqv𬭯멬vk򩬬ꦩwe즤zn覧怜wqwk}󦡡觤|jz󦡡Ƥymq}jp᪦hm䩤hgԧmd󩬯̠pd礡쭚te}੧ܬve}|jmpqkkgeݕhgڪgejeqn|ׯmjwפpdqۧéwdkggpgnd馣ѩk_駦pYš|[sɦ}aqݦeq띤gq壡褡gn򧣧大ek䣤詬jh񤣪neˣvqwס}mp֩kk񩪩砞km㭡㩦kk٣ݤje婯qdvh>:\;=>65645879646457799:9756655765669788988679868:976778868:9886566879878668669875787566875768778895668:978766898678865886846866976876578857798786877897678896678766876679658868247469866787667798897987788988:976778689:98878766975887868678548656788756766988:8:8878899876589::98898898668967759989658668778875565878:8:9887898788789988988789567765876766767767897665767989887868:9987688768568764764655646569:8568757568787889569:89:7:9975898668763667986766766787887987867887868::96988::988997899889898866776756778688<:75::87988989:887789766:;:887568867997677677887669867::86::878899868:886788766::8646788668787988767:977898898878868:869:778998689:87788787688:88998788788968:87:;889:86899889989:988766889667878:8899779:89989889869;98998898679988998766787886688:7678668:88768;;99::988989989:88::878898897867558:778857877996788:;988998:8:;::9689:889978989:9766887789744799889868:778988:=;9:;99;:9:88::887887678898778::889866986678876689989:899:8778;998::8::86998:87789986889:97;::867988767887667889899887:8678::89976898:98789:8767889:978998668968866899:876689:998668998668::688:98998789:8::8668868866887886689898768:;<:;9779:889;688:989889;<<85568::988699877899:89::98::9878:898788:889:986::988757899886:9887669;;98898789;:9898::9:8899:988:8899:9889:97668987998788::868::;::;86677988::898::9:8898:;9779<::87889889987848769:87866887898786687:88:9689588:6:9:88988966::87748878::9:;::99:9:8:8788987889;9889698986866898:98868858899878988988:8:;;::98:8988:8988769:;;9898:88968766887878868968899Zu99:988:6:;:998786767:8::87::89:9::8:688767887896889`989:977869:98878676798::8;:78988:988:668;968::9987885?W878:877689:988:887798988:;:8767686868869=:66::998788}989:89:788989898878758::9876676977;89;966788?O76647848679988687867858:988668686;98:7798896656F87875796988;787787668548988978876687668:;::76889;8978989:887787668668976769986688789::987Ӓ35676886967:878967886678668987869876689889867886966887678866786689976567889:866868867876866779846787667846788996776678769:864466566867669836787746676676886868868878768867766887787657667667789878868<6876645669:646878767875688788697886678I 866766867886587558975788656686775575658^ 866766867667866768736887668788667675R 76676684488647677678898788788786 766866886688778866776556887879{ 86876688797677668556886377668877A 786646676676976776685667875377557877T 68667644866766787786676857878Z 48768634:768977977877877346898768854787869638626836;98967667768:66:724877878648668:67866869887667765687667887H434668676369787788669656678967767886468766886796866887669567669886468867646:778:8667498788633856866758864688463686886878678865576788664766788667866896864667895567766787788646766997636646863864676676676556897786689668866768748:857876639868687787766778766689867766465598686877887667896789976776656765687886778788768876678898864866567886:7786678898767766789867864866778:6:76756788987688946688767787679686675678788769986F468866767786876488687877887668986268475578877398688787766788 wuwtv|{ytwtv{zzvwwvuu{wuww{|}||||wz|w|~{yz{}}w}~||}|wuyww|{~}z}ww|wy}zvz|{uww|zvzw}z{||}uww|z|zywwyww|~|yz||wu||}y|tw|ww~zy|{wvz}|vzz|z|w}zz{|}zwz}||wwz|zyww||zwwz~wu||y|osztw~|ywz|{wwz{{z}|{|{z|}}|{wzz{|y|~~||}zz|zwy~{v||{|y}wz}us|wvwz||zvwzww|}|}||}|{}}|{wu|}}~||~}yy}~wzzv~}wv|ww|zz||{vuwv|{|}}||{|}{|}{}}||}|}~}|z|~vyzzwu}{y{ww{y{{wz}{wwu{w{|||}||z|w|~}|zy|}}||zw}uy|{wt{wswvvytyvw|vw|zvzvw|z}{|}||uw|{~zv|~}yy|zwrwwz|w{wwzww{|z}|{}{}w{||{z{|y}~y~||~|}~{|||}~~||~|}ww{zw{uwz{{|}w||}zv}|{{~|}~|~|}zz}~zww}|}zuy||wzzw{{w{{||}|zww}wz|wр}|{|}~~|w}||yz|}zww}||wswz||wwy||{z{}}|z}}|zwzzz|}|}}~||{|}w|}y~zz|~~|}||}|ww|}}||~|{{||{}zw||}|||{||{||w|}z||}~~||y|~~||~~}|~||{ww||ww{|{|||{{}~}|}||~|y~~|~~}|}}|}~|yz~~||~~}zwyz|{}|ww||zw{|ww|||{w|~}}~}~~|~}||z||}~}||~~zz|}|ywwzuv}{{}||vu{}zzw{}||}}|~w|~}|~~{}~}~{wy||zz}~{tsz}}|~~|y|{z|}|~~~~}}|}z||zw{|}|zz}||}~|wy~}ywz}}zww|~~|~}}zz|~~}}|y~~}|{z||w||z|yz~||zy{|}{yyz}}||~}||{z|wz||~~zy}~}|z|}{w{||{}~~|wy|~y||ww}~}zyy|~}ww}|ywy|y}||~|~||{|||ww|}w||ww|}|z}}yw|}~}zy|{{}|}}||~y}||~|~|}}|||uuvw}~|}|y~~|z{{z}~~|}~}z|}~|z||}|||w||{vz|~~}}|y~}}|{yy~~|}~}z|}|~}|~~~||}|}}||{ww|~|z~|z}}|w|}ww{z~|}}~|~}|~}zz|{||~||~~|z}t|zw~|z}yy|}z|~|z|ww|{}|~y|~v}}w~|}~}}~yw}z{{s||}}|zz}~~~~}|{}||{||~}|~y~|~|w|yw|~}|}|w||v|}~~}|z}~||~|||~}||||||zy~~}~}|}~y}zwy}|z|{||w|w}}~~~~ـ~||w~~}z|wzw{}|z}~~|}y||zyz}||z}w}}|~|~~zz}w~~||z}wzwz}}}z|~}}~||ww}~w|}z||v~|z}}zzy|~~||}}|}z{|||}|{yzw}y|y||w~wy}z||~}~}~z}|}~~}}~|||}z|{v|~}{wyw{w~{{|~~wwz}||yzwywtz}t|yz~~||}ww}|{|w{|u}~||yw|w|y}zz~|}~ywvwz|{|{v{~y~||Ⴤz|{z|zww|vt|||~{||zww|{wwy|}}}ɖ{y}}|}~z|~}~}|z{|zww}yw|zyzw|ww|}|zz|~~}wӏruy{y|}w~wz}z}~wz||wwz}yy}|z|w}{ww|}}~}w{||}|w~wy}||zwz||ww{}wy|~~z{wvw{||~}ww|w||y{|{w|yyzz~}twz|{ww{|twz|}~~wz{ww{|{y~}wttwwuwyww|yzyy~}rw{|{z{{zswwzyw{w|}||wy|}|w}|w||{|zw|}yzzww||z{|{wvzwwzwwz{}|z||y|}w}{wwtuyw~ytw|{|{w{|{uw}|z}|y~z||ww{z|| |wyzww|yz||}|wv|{uu|{vz||wvww|w{{uvzuwu| |wyzww|wzwwz|ww{w|zqw|}|{ww|z||ww{wzv zwyzwwyw|tt||wtzwzz{{zwz|}|z||{||z|w zyyww}ww|}yw||zz||ww{zwvvw|}}{z{||{ |w|zyy||zzw{{ww|vvw||wqzzww||{{ z|wwtwyzwwzw{w{zww|vww{|zuqzzvu{|z{ w|ywzwst|ywyzyyz|{{z{|wwzw|u{|z| t|zy|wrszw}~zz~{{|{{|{zqsw||{w}}vs{|z|w~wr|wpy|ry~}~yzww{zw|yywwzps|zz|z}wt|yw|wz}ww|w||zwwz{yvw}zwywz||z{trtww}wzwrw~z}{z||wwwvwyz}~wzzwz}|wywsw}zww||wz~w|ww||zwwvwzwy~||wsw|}wzysyzz}}wyzt|{||wrq}vw|ywzv||wtw||twrw}w||ywy|z|wz||wuu{w{}|wwtzywz||ywz|ww}~w|wtwwz|~vuw{{ww{}{{||wtwzwy~~zwrwwtw|wr|wtwzwwzww{wvvw}{z}ww}~ww}}wwzy|zt|}uz|zwwq}w|w|{zz|{zyyzz|zyww|}|}~|w{zwwswvu}w|w|{z||{ywwz|~wz|~~zwz{wwvw{wuw}z|}w{{|{||}}{y}|zwwz||~||}ws|wwvwz||w{z|ww{||}~}{yzzyyz}~|yz}ws|wwz{z{}wzw{vwz||}~}{y||}~twy|}zwzz{|}{w{w|wwzvwz|{||}}{y~~}|yztw||wyzw{zz||ww|zws||w|{|{z||{yww|}~~|wpw|tzuuz}|zz{rr|w}||{zz|{zyyz|}}| ܡĬ󩬞ߩ񡤩У֩逸㠪ᩧڤ骤󦧤ত󪧩ԧ椬ѭ䧤񩧡񦧧򪩪թ򭧭馩ߧ礡멭ଯ򪰣﩯Ҧʪ⬰©٭󪧪ԤƧΪˤᰲ˖ӏ򤡤С条ڡ❞ ੧ 򧡣뤘 줡񤧩 䩡 󤬤󡘤 塬  םޡ񤡡𬡠⣡ڤ㣡ء릡󤣧묩󛡠ء򧪧󩪩飤ߝ䝡ߡ 688:968977986677868649478778989:9:9798::9887889:856886686598688988986898899778626688799::9;;889::98898669867965886989878878:99::989885674598878:8:98:9:989::977987898689657769889:9988778569669878987889898676;:889988788789869965776877889889987856:86866887786886887889:8877898788768867668898:7866976766788:9:979868::9887878778876868878:97887887957768667887788:89868799::988788787978868:97887887836767677997689857688799<9779;<;778898667677887:88;:7798788:95889877:86679:867636<9688789978::;98:96687:9766;87668966778858566788986679:867:88:869876679;6887887896778675667876687874778755775866899865::8988;9:87676569:98679977579656678987688:898476765688667886877988:6886798679:9878978965766965788:89;89857876788678869878966978745:<955678878<756687447878;68978968:87886676678876988:967<688569:88656788688:7686866868678579686678667887687788;35767998<88788597877868::8656788579676885456576678876:8667985775456797756868688776998878866788756458426677897:96889:856989588763857567799:89:89988989768556678699788788:867879699886878677676:6798788788767889;85656678688976879978866588567868757596698668678866867965656556586878978878854566786568;Kd:68;988988955645867767787786868:8867878866778Dan868:87887786554698788788987887896886677877B~689668676675755867654566467989847866866=789^ oC  !"$$&'(**+,  iQO_ E" :u E#""3 h""O P""!; O""!; ^ ""!F z9!""!+z xws3"!"!+` uwwN::Fz ww vww sww.vww-ww-ww.vww-vww/uwww}||~y|~{{~}ywz{z|w|ws~sz|{z}|~{|~}|z|}}vw}|ww}wv}w||~||~|y|}}~{z{}|}wywpyw||{~}||~~}}}wy~|w{wu}|w}~|z||z|~~}~}||uwztv||}}|{{|}|~|~~z{~}z|~|w}wu{{w}}||~~~}}{z|uw~yw|z}|z||||w{w||~~}|{}|z|~}ywu{{w|zz|}|}~}}~~}|}z|vy|y}ww|}{z|y}|}|y}|z||}~~Ҁ||{z|~}{|}zw||w{yw|}|~~}|}}||}}|z|wy~zw{wwz||}~~z~|w|~}|}|{z|}||{|{{||zw|y|}z|~z||{|}|{u{zw|wwz||zz|}}}}y|{~~~}||{|}}|z{zz||z~z||w|~z|}{|}}{|qwzwzyz{{w|}vzy}}{~~zz~{{|}~}yw{wz{||{|}zz}{||v|}|||z{}ywz~|w{wqww}|z|{|}ww|{zww|{ww|wwzz}|u|vwwz|}|ywz~|w{}||w}{wwzw||{}|z|w{z{|w{vwwz|{ww|z|{szz|{uuzzu|yy|~~|wv|}|}zwzwuw|wzzzvzwvww{|}{w|}}|szwzwvw||wyyz|}}|yw|{z}|w||w{}w{|z|{|wvzwwwv{}|||}}v{}zw{||yz||y|{}wwz|zsvvuvwz||z}{uww|{ss{}z|w|z|w||{}|ww{yyz||zy|}wzw||vw|}wvw{||w||{w|w|ww|w|wz|vzw|wwz{}ywyz||zw|{{}}|}quzw{|}||{||vz|{{|w|}wuwz||vzwzw||vsvwuzwwz|}zw|ww{|uz{zusuwzz{{vw|w}w||{zw~||z|}wwyz||{vwtv}tpwwz{{||~z~y||}|uw|v}|zwr|vzvw{z}~}~~||}|}~~}zy|vvwwz{|}w~~z}|z|}}wz}z~y}|w|z|wzzw{wyz~}z||z|}|zyz|}}vyvywwz{|w}||~zy|{{||wyv||vw{|w|zvzu~ww~|wy|yz||ywy|y{yuyvyvuuwv|w|z|~z||z|}||vtuyy{|wuwxyw|~||~||}}||}~uuytu|yz{zwz{|{z}y|y||}}wz|{||wyzz{||w|}z|}zz|wuvty}{}|{|}|{||}z}~y}}ww{zz|zz|w|~yy|yzwwywzvzuu}yzwvsuwwswz~|~}tz|ww|ww} y~||~|~|yy||ytzy|usyvw}{wz|}{wty~|~|rw|vw|w}~wtw|yzzwttwzu{z~}{|z||zwwyt|ywz|}{~}}~|w{wzwu|{wwyzz|}wtz~zw| wzwqw|twwyy|}~wty}|zqzwwzz|wwy|wz||yz|}|}||}|z||   !"$$''(**+,  iQO_ E" :u E#""3 h""O P""!; O""!; ^ ""!F {9!""!+z yxs3"!"!+` vxxN::Fz xx wxx txx.wxx-xx-xx.wxx-wxx/uxxᩧҭ¤餧뤬飬ܤݤΦɠ򦠡੬Ƨܠ򠧡­࡞󤠤웡 Ҫ桩򣝧뜠󧩡 摒  ! !"$$''(**+,  iQO_ E" :u E#""3 h""O P""!; O""!; ^ ""!F ~9!""!+z }|s3"!"!+` y||N::Fz || {|| x||.{||-||-||.{||-{||/y||89878:5678986563698688:899898998789868:88::;:997867787596798789798998;:887789:788;99:889::99:9878756:96988776:768878:8:9:98::98877877899:89:99:;:98868767::78877865677898:9:9798668998789:89::99::98678878778766877687998::6789::99889::9899878:987889978868:667877987667868898:99889:878;97688:98896789978878798787689:789896887789:;9988788:966998;9889::978756986998788466577698868::8789:9;96889::9896567:79876788788687389669;:9966::8899;786688799:8679788789975657868688766779787589779:88988:8799887986776799878:98899589778767:887898:9976996359978989:889;:879:88:8768897887656797987968989978::98689635:;89;::898987788687876675978:68989988:9:98768867<<887:889:988798579668667887766788988:8998898997689869967877:889:87789978::85587786688776898878::89898868:84668:8989:9648869887788769<9877<;<87789797876896787799;98778:97688789846768:8988787889::86686997766:6878;76>776556:887887899879<:88988787766:99889:;8:98998:6877987;7897789899877899878;5BO^lywi[PC76789979868:86677879967::8;988989878:^D<<9668846677878756997:97678:;8898679nY@:8866886788678:8879该r?668966998788778:98776:88 dF<76989988;98667889889:88#{A958976998778899878:;987$F6786676889778(Z<6786:8899889*g8968668864688778+Q5:669:76776.W768:8898877T.67887670T9::9776>|2>8688d4Q88d6f788::;<=)}󴶬||^+%%1kﴬysuvwwvusvL"!""!&_~twwu}h&""-} vw w@!""T vwwvw ;!""M w =!""Q wt ^$""(u wv~ C!!""!$Uw Q$ (^wt ~lmwv} wv$w}$w$wv$wt#|}|{|vwz|}wuwqw|w|}}|~~|~|}|{{|}}y}}|~z|w{{|zvw{|z|z~|~~}||{z{|{||}}~~||~~~~}{}{vww||{{zwzw||{}}~~|}|{zz{|z{|}~~~~||}w|{wz{}|{zz}wvw{{|}~~z~}ww|}z{|}||~~~~|yz|}}|}}|{z{|zz|zww|{z{w}z~~|wz}}||}~}~~|z|~|z|}~~{|}}|w|ww{|{zz{||}{wwz}y|}|~|}}}|{{|}~zy||~}|}~~wz{}{|}||{{|{|z|{w|~z}~|~y||{{|||{||}~yy~~}~}}~~z|zvw}w}|{||swwvzzw}}w|}||}}|{|}~~~w||~~|wvwzz}{y{||{|}w|zr|wwww|}~~{|ww||{|w{z||z|zvwu{|w|w}|zwwzz{{|zu|{z}}||}z~~||{|w{{w{|{|||vuu}zz|{zww{|}|{{z}}|||~~zy~~wrv{|}}|}}||{}||zw|}|}{||zwvwzz|{w|}{|~|w|~wrv|}|}}{z|}||}||w|}}z{|zwwzv{|w|}||~}zy||wz||}|{}|||z{|vzww|ww{||{zwwz}|||}||}|~~zw|~}wwz|z{}|}{{}z|}uu}{z|ww||{{zw|}|{|||}|}|~|}|w||sww|}}||}}||}||ws||w||{{||zw|zz|{{}{~z|zw}~w{|zz|z{{|{w||{||twzw}|~}||{|{}|~|ww|y~~zzwww|z|{wzz{{wvvw}|{||}}{||z|}~}}z|zzyw~~||~|~|~~}w|{{|{{}{{}||z{||z|u}zwz|~~z~|y}}yw{{z{}}{wz|||||z|~~ww}|twwz{z||{|{uwzzwz}}|}|w{||ww||wz|}|ww{z}||}||}||z{豭ww}ww|{||{{||{{zw||}zw|||}||ww{||||}||"|v}zw|{{|}|}{||z$w{|wwzw}||~zz{||'}w{|w||~~||}}|})|w}ww|}wtw||{{|,uyw~zwz{zww.zw}}|~||{{zz.wz||}{{zzwz0~~zzwx2|w}}4||6688::;<=)}󴶫}}^+%%1kﴬztvwxxwvuwL"!""!&_~uxxv}h&""-} wx x@!""T wxxwx ;!""M x =!""Q xt ^$""(u x~ C!!""!$Ux Q$ (^xu ~lmxw} xw$x~$x$xw$xu#ᩬ⤠򪩦⤡쩡ߤ槤ɩ󯭩Ǧ詧˪çڠ𤩧ؤ䤡񧩩롬𩬦ڧ매筪禧ﱬ貱"ﰭ%'񮨦)𰨧,󫝯.򬯤/0346688::;<=)}󴶬^+%%1k~yz{||zy{L"!""!&_z||zh&""-} {| |@!""T {||{ ;!""M | =!""Q |x ^$""(u | C!!""!$U| Q$ (^|x ~lm| |{$|$|$|{$|y#7:<:7788;:8876247667669668864668746::8898986468876867876879::998788987886866897669:867::9889876787667457787:889:988788988:867887:9889:998789:867898646684467768898679899876789986678::8876889989:8798866496567753878869::987667668878767:;98788998878898766497668765986788778878789;887679:9::9:986676788764677678868998878768;988788:89866767867787698;<96789778766898669988768986689687678986764478868878559886::689877874466788988::88:;8878:9878867878778767988742776:;7887667767898868657:8879;9878976768987667788686::788:988789:879667866897889;:98986676799667876788:96886::987899865788:988988:9:89855886776688676678::7898:;89987668::867965567889989988989898668976678788766899:8::9:989::987669::76798878898997787889:88976886679989:898::8:89::9889:9878989:9889:87997786:99:8898987887669889::89788:988987667:98895788778:76897787>:9867:978867886766898<;:988977887788668768:7679:99::8986875887:88657667796686998899::9878878866886896689:97798688688686866788:8:88:8:998898686789889987788789799867898787799:99:8::9877988988787889898789878:88988:879:;:8868766788987886988998899889988987789987998988;::768876678998898688788787788779:789988787788;97998988::9:88::878897889868997688787899789877658788:88:98986898:88;:;889::788985899768898899:96797665488988:77887988988:88;9::9887788998668:877886797786783:8689889=98;;869:;:889:998ONONLLNOONNM:<7786799698789889:9889:;::9:89vus sum7788768:88989:89867;<::99::9:88|88989868977899:8::88::7989;;:9:aZL788:97897689 987988:;:99779989:77898898:878988:9889::98퍎hB8789789877887:889:988:98X68869986688699:87::867:97 Q88;786766987:869:88967:998?::8998987876899687?8748:8997667889968649968984698898:78:998华C8:9469967:9887968::998=:8479988:9886866886F78699:8788796677887 荎Y9:;88:848878:6676899"{88:886887867688:78!g88:6868879876868967 8:4767879886878978"9487887:9:88988 J96:88:89988998 r98;988:886887t98:9889:668689896J8:8789:66869:8:8J87:99:8:9889[77::9:7887889966::7898679::987988678898898878876886889886889688:89887896898:8::998764799886469866788668989767:976774899878:9877 6898878988766 8898668956886 X9886835788766 K9788678645778776 J867884667zzz||}||{wotzyyzywww}}wsww|ztw}|}}|}|wtw|}zw|wz}zw|z~~~}z}||}|~|z||y|ww}zww~}yz~}||}|{wz|zwwy{sv{zz|z}|~~||{|}}||}||ywwz|}}|{~}||~~|z|}wz|~|wtww|sswzzw||}~}yz~}|zwz}~~|ywwzz|}|zy|}~~||}{~}|ywwttwuw{zvr|z|}|wy~|zwwzyy|}}|zz|{wz|z|}~~||{||~}zywwt{ww|{wv~|yz||zz}}||z{||z|~|}{wz~~|ww{zwwz||zwtwz{zwz}|w|~~}||{|}zy}}|{|}||||~}wwzwywz}wzz{|zw|~wz}~{{|}}|{wy}~|ww~}|}}|zw|~}ww}~w}{w{}|wzwstz}}|w||{|vv}|wy}~|{{|}|{stwyz||||||||{}}z||wz|z}{z|zwz||}ztpzzyz||{wwz{zwwz}~}|}ww||wvz||{|{}zw{w}}zwwz{||}}|ww||yz||}||z}~}zwwz|ww|{|||}wwzw{ww{|zyz||~y}}y}}|z|~~}||wvz||}|||}}|uv||w{{ww|}|wyzywwz|z}~|}~|{ww}|wz~wvuwz||||||||ww}{ww{|{|}||zyy|~~}~~}|zwy~zwz~||{||}|{{|z||||}|zw||ww{~~}|}~|~|}}~||}~~|z|~|}}|{{z|w||||{||{ww~}||}~}~z||~||~|{wwz~}|}~~vz}|{{}zw}{z|z|w{{||w{}|wzyww|}~}~||{z||{{||yy|zw|zw{|||w}{u}||}z|}wvzww{z~ww}w~~}}~~|z|}|{||yy||y|~ww|}||{{|w||w}}w}w|ww{||||||~~}}~||}||y|ywz}~||~|z{}|z|{}w{||{|zz~~~|~|zz||}}||z|}}|z}|}~~}}~|{||{|||}||}||zz}||w|zyyz||}}|}}|{||}|y~|}~~}}~||}||~|{{|}z||}zy||zwwz|~~|}}|}|w|}|z|}|z}{z|}{{~{|||{|z{|}{|||~||||z||}~{|}|||w|~~zy||}zz|}{}z||{{wv|z|||}||w|~}|}||}~z|}|||v|~~zw|}|~||~~ցw{{wwus||}|zz||{}|}||}~~}|zz||~~|ww||zz}|yz~{{|wz}|q|y|~}}~~}|y~||~~~}||}}z{{|wzw~|z}~}}~~||}~~~}}~ {{||}|z{zw}||~}~|~}wz~~~|}||}|w|zz|~~|||z~|~~{|}{|zy|~ ~}z~|}~~݉zz|{z}~}|}~||z}~}}~}|~~}ꉊ}|z}{|~}zz}}z}|}~~~||}~|w|}w~~|yy}|w~~򀁀}z|wz~z |}z}yzyw~}z}y~}}~yz~~|||~~|~}z|zy}~~w}||}z}zt}|~~zwwz|}~~w}||}|wt~~w|~|sw~||~}z|~~|削|~ty~~wz~|}z~y|~~|}|sz~~|}~}|y}ww}}||yz|y~~}z}}|z~wwzz||z 艊~}}|t|}z|ywzy|~~"}||}}w|}z}yzw}|}z|!||y|w||z~|zw|y|~wz |}tzwz|z~}|y|z|~z|"~t|z||z~}}|}~}} ~y}}||}~~|}~~}~|~}|}||}y|}|}z~|~||~yy|w|~|~y||z|~wy}y~}||z~~|~||}~~zz~z}|z||~~wyzz||}~~||wz~~|z~}||ywz||}~}}|~}|z||zy|}y||~|}|yy||}}}~w|}||~||z}~w|~||~~}zwtz~~|}ytw|ww{||ww}~}~zwz{wz{{zt|~~|z}}{zz w|~}|z|~|}}|{ww |}~|yy|~vw|}|ww ~|}|wy||qv{||zww ~z||yz|wsvz{|{zw }|wz}||twwz{{ʦ駤飦ڣլ罹蝬줧멤릩񤩪馬񧡡𩪭ꬰʡةߤ婬̩𭪧Ӡͬ婡𧩧󡩡򩡦駩𤋮ԩޤ禧쩤詪֯򧡡婧ޤ ꩪ򛠦 ݋앣򚡧򭯭 砧흪祧饭𭩤 ꛪ"鐩!闧 ꧨ"띧 񣪣픪픪򞤤蠟頻浪 򡧪 򧩪   68876556678998:;:;::==9:<<:9:;<;:99:?2$#2:8789::967::4+#!:87678878899:;<:;;:<;:;<<;:;;::9::9=0##3:9887878:92*%963357879889::8:<;<: :9:;::9;0""4:987766;87;<8/'9667887:868:;:8898:<;=::9:9:98;/!!388776778:879;:3/868976769889::9699;;:<;<<:98798;0!!28877867899568536689:9889:8::<;9;::<;:99:9::87:9;0! 398877869:889;=<67966889::99:9;:;;:;:889::9889989::988;9;0!!5987769::998:3487786;989<<:8::8:<;<:889::9889::9;9:0!!6976678768978::9577876899:977:8:98<<;<=;99;::89;;97::,!"3;965899:9:877886899:989:8::9;::98:<<;::9889:9899:/%%49876889::9:88788798899879;;<::9:;:9;:988:886:1'&28877885678899889779:99:7889;<<;:==:88:99868:8869/&%278877899876889778988:9:;:99899;=:89::988:988:7889,#&58876689::98659889889899<:998::;:889::99799:,#':887668966889889898788:99;:<::;:99:9::8799:,#(:889:9889988989988:86;8989<9:89;=:88;:;:99::8799+!%788988787;:;787:889:99:;:9::9=;9=>;97899865;:9;(#)987885689778;:88:8:898:9899:;;::;;::;9::99;:8:98898:'"&78677678878658866899699:8:9899:;:99::99::8::89:8:98897:89(!%78667788669659:7:79868::8:99;989::88:<9:<:9:977899877;9;*#%88668789878669:9:6:868:87:99::99::;<;::<:;:<=:8:77899878<9;+$%877897798866756866;878:78:9:;:99:;:9:<9:9:=:699889:8:8:*#%677997788957856968<899:69::9:99878;99:;:88:98767:<887:)#&6878877685797899>9::6;;::9:8:<;89:9:;887568::87;($(6867877476677556::98::89::99:;88<=89859789:;67799+!&46568788587965856:99889;:9889:<9::989::86::79:69889::6:89;-!&7979988566977865:9889:9::989::968869:699:6:77:, %6989976656867977:99889:989:8979969979989::9:679+#57788667589:98;:9889889:898:979988:89:;-!&47886678865578899::988:9988989:8986::88988:9:78::,!%39:877668687668599::99886899:987:99879:88769:88:8898:6679+ $3::8687685866859987889:99887:898688:98868967;- %6886467686855869887789:9986996676:988989:88:86::878+!%3776546748448679:96689988:898877899:8868:988* #27765568667:8689966788977898899667789:878865689899* #2766788648988:98766788988778966788986689968:66896689* %387656779876688:987887877 89:866788689669:458:+ %377656788778689:8778778898688788998778:86676589569:+ $346887668668898:468988788786867688789:886686678* %55677648996998667866788769:87:98967766789::86866966*!'876456887868988466869686887767788789986698788668:868866768:* &39869687:99786768488:778689866989::88679986678'%3998:886778988998468:8878678876867889766799886568&%56698989688998768::876678876586689878878868766897688''7986678867899879976678567887658668988989986798865688689) (79876788786768845677876886795667887678) &566869898988786869676678678667667866866567867568) %288:6867487788778;88476698876778668:878998633667569*!%188946698767887868988769466776676698668:898676:8867989899'%&27569967:97689889688694667886887886878689886867867878899'&&696688:987889788688688768877668786899866866788'$(7:8768998988988668868988 67678867866545687%#(8:98679989987898866886766767887646878778766788%$(:99868:96:998:89768867668667788688964476766889:9&%*:88986:998:8987986776486887886978668686887987899'&*;88989988:989:99:898898676678766896676:6647:898:8898667788&%*:8899:989::9:688689867667765846768:6::864799:987887:9:(%*898<8:?9;8998876:79866996676846868:8868:88987977%#*887:885-.688987:8:966898667868866:8688766867867967976%#*9988:8.%'5889:98:9:9767886776787799669848876848968:668:6&%*8:;8:8+$&4889:8899::87887667867::878868988969:89;877:5&%+9:;887,$$4:89879889988767998898898668968:886:2$$+:7:87:2:88698 87887898878::84468778896:1$$,;899=7'&1978869798788787876689988768:986899::;87<2&&-;=:97=7$#/86896:7w||zwvvyyz|~~}~~܁oQNp}{|w{t_NI}zwz|}}z|}~~󀃆녃~~kNMq||z|{|p]Rwqruz|z~}|}~}~~~jLLt|{zww|{}hWww{||z}y|}|~|~~̀~}iJJq||{zwz{||zrh}w|{wzw~}||~~y~~~}{}jIIp||{zz{|}ww{{}uw|urww|~~||~|~~}|{~jIHq}|{{|w~}|~wzww}}~~~~|}}|~~}~~}}~jIIu}{zz{zw~~}qs|zz|w~|~|}|}~}||~~~jIIw{wwz|zw}~{|~uzz|zy|z{}|ㄆ~~}~~{bILq~wv|~~~~|zz||y}||~}䄁~}}~~}~~hSSt}zw|}}~||z||}|z|||z~瀃~~}||}}|ylVTp}|{{||}uvwz|}~||}|{{{||||}|~~}y|}|whTRo{||{zz|~~}|zy}||}|{z}}}}~}~~|}~||{}|bMTv||zyy||yv~}||}~}}|}}}}}~~~z~~bMW}}|zyy|yy|}}|~}||}~~}||}|}{}|~~~}zbMX|}||~}}~~||}~~||}}w|||~|}~~|{~`JS{||}~}|}zz|}}z߃{}{}}~~~~~~~{||wv~YN\~|z}|vw|~zz{{}||}||~}~~逃~~~|}|}}|VKU{|wz{w{}|z}wu|}ww|w}~}~~뀄~~~~||~|||z|YJR{|wwzz|}ywwu{{}w||~~~}~}}~~~{{||z{~]MR}|ww|{||{|www|w|}{~~~~|zz{}|z|~_OS}{z}z{}}wwzuw|ww|{}z|~~~~~~y~}||}||]MSy{{zz|}uz}uww|}w~~~~|z}~~܀}}}{w{}}z[MTw|z|}zz{w|uz{|w~~}||~~||}}zvw|}zYOXw}wz|z{zszwwz{vuw}|~~~||Ɇ}~}v~z|~y{{~~_JTtyvy|z||v|zwv|uw}||}~||~~~}~}wz~w~|}~w}~eJT{~{~~||vwwzz}wv}||}~~뀁~~}~~w||w~y~~܀yzzbGRy~|~~zyywvw|wz{{}||}}~~~}||~~}~z~~y~~z~~}~~yz_DNv{{||wwy{{zuu|}}|~||}~||}~~ခ}~}~z~~|}}||}~cJTs{||ywwz||wuuz}|}|~~}||~}||~}~|y}|~||~z}bJSr}zzww|w|zww|v}|y|~~~|z~~}||z~}}zw~}|}|~|yy{_HOr|w|zw|v|ww|u}|z||}~~~}}|z}~|w}|}|~|}w|~y{eHRy||wtyzy}w|uu|w~}|zz|~}|y~~wwzw~||}~~}~||}y}{}_JRqz{{wutw{t|tt|wz~~yww|}}|}}~}|zz|~~}||yw||}^HNozzyvuw}wyyz|w|~~ywz}}||}zz}~|}~~yyzz|~}z|}yvy|~}~~]HNo{wwz||wt|~||~|zwwz|}~||{{|}yyz||}|}~|yw|~~y}ww}~wy|~^HRr|zwvw{{~|zyy||~|z||z|{{|}|}~}ywz}}w|~ww~sv|_HRrzzwvw{}|zz|w|~}zz|{{||}~|y||z||~~}zz}|wyzwv|~uy~_HOrsw||zwy|yw||}~|tw}~}||{||{z|}ww||wzy||z|~}|wwyww}yyz}]HSvuvwzz{{yt|~~y~~|wwz|yw{|}}|zw~|z~|~yzzyyz|~|y}yw~ywwy]JW|zwsuw||{|w}~}|sww|y~w|w||{zwz{||}z|~~|yy~|z||yy||y||yww{y}]HTr~}w~w|z{z|}|wzw|t||zz{||}|yy}~|yy~}~||}ywz~~|yyww{|WBRr~~|||wz{}|||sy|||z|wz||{zww|}|yz||~zwywwz~~||wuy|UBRvwyw~}~|~w|}}{w|}zww{|}|{wv|ww|~|z||z|}|ww|zww|~{w|}WEVz~|wyz||}w{}|{~~zwwz}vwz||zwv|yy|~||}~}~~}yz~||wvw|}|y}~[HX{~|zwz|}||}|{{}||wzw|}suwz{{}zy|}||}|wz~vyywwz||{w{}[HTvww|w~}~|||{z||y}y~yzwwz{||}ywz|yyzwwz|yww|wywvwz|wzuy}\HRp|}y|wzt}{{||{{|}|tzwyw}|zwzz{|wwyywwy}}z|~~}wrrwywzuy^JRm||~tyw~|{wz}}|{}w}~}}zy~twwzzywwzww~|ww||~}wzw||wz}~}~WRTp{vw~~yz~{y|~}}w}}|}|y~twwz||w||z}|w|z}y}~|}w|wz|wz}{}|WTUw~yy|}||~|{|}||z}|y||y}||zw||zzww}z|w|~~|wwy|yywwz}}VQX{}zy|~~}}~}|||}yw||y|~}||yywwyzzyz||yz|ywvtvw|zRNX}|wz~~|~~}z|}}yw||yzyywwyyzzywwz|}zwtw|z|zz|zwwz|}|SOY~~|y|~w~~}||}~zw}|wzww}wwzz||w||~yttzwzyy}}|~~UR]|}}||~}w~~}|~|z~|wzzwt|w|}z||w~z|ww|w|y||z~}{}~~~VT^|}~}~~}|~}~~|~}|~|wzwwyz|zyww|~wwzwwwtz|~|}|~|wwzz|}TR]}}~~~|~w||y|~}wzwwz{zwv}swzw}y|wtz~~~|z}}||zXR]||||~|}{wz~}wy~~ywwzw}tw|w|||}|wwy||}||}~|zzzSM]}}z}|ucfw|}}|{}~ww|~|wwz{|}w|}wy}w||zwyyw}wz|wz~w{~{wRM]~}}}fSWv|}~|~~zwz}}wz{zww{|zz~~wy~}t|}|zzyw}t|~w|yy|wUR^}}|`OUs}}}}~|z||{wwz|wz|z||w|~||~w~|~}z{vUR`~||zbOOs}~}{~}}~~}||{zz{wz~~}||~}||~~}yw|~y|||yoOQ`z|zpTNq|}}w~|}||}|{||{zz|}~}|}}|z||tty|zz||~wlOQa}~~{WTlz|}w{~|z||}}|{zz|}}|{|zww}~~}}|zy}~|w|~~|zpTTc{{QNh}y}wz驭ܯmjjb󭰵볰jhߤ}ngg󰧦v줯ͭdd驦bb鞡򩧦ba𧡪bbߪbb㲵bg𭬧䲯pp򬭧筰tq欦쩣qn֧hq줣줪hv槪𪭯hw񪬭קdp߰姡yj|魰ާtes뭲ޤydn}hnkp𰯪ԩ}hpܭzhq񹬯өykwɵdqߪdq󠡡뭯ܭ_n㩪\j᭯dqܪdp짠٩akݤanէdn󧡤aj룠󩬤⧪}aj󭪧⧩anꩣanʩak椧}ap󣪪}dv}aq򦤧ĩvYn졞sYn릧礡v^t⤡론zaw𧦦ᩧzaq|anʣdn嵐סvnqǡvqs󡧧󤩩tmw鬩褧njwꩤޤpky󩧧󩡡sn}tqߧqn}wn}ܩph}nh}pvsnks說۪snkkתkmqj᧩kmvqqqmj<6O6$6')6-+ :66+$!`6>/'"6:;+) ,6989/$"8.:8;6*!)/7:1&!3.8::7-" W.5=:9<4)$/2::>90%?.7:<:;94'#"0:6:88:<0("9/:8::9:9-( /979:9::2*!^.97998:<8,&-/:8986::,&!.98:969::0#"H.787::8::<9%&,.7869:8:9=<**%.9869:898::+)%L.98:66:9:7B6*'/&8:78:89::6.$$*7988:88;695% >'8988=9'#*&878898;:9+%)868879::7:3&;&86997::7;:)$+&86::7:996::)' (68::99:8:79;2&$O)689:9:<6+&.'89:899:;8/&'68876889:88:2% ?&478669:9:<7*#(&78988788:<90& )9:99:;9658;;95($>'8768768:<97:=<99&'$&:66787:;98::99:/*$x&:787898::99::97(!>&98:88:9::9::9:(!'&89:98::9::99::9:.& '699889:88::99::9;9)";&68898899:;)%*&786897988989::91$$&84896988789988:=9:##<&6:98::99::879;977>*'%8::9::9::9::89:89;>1'#y8::98::8:;9989;:5)$7989:978::89;:88<;9,#%:89:988:;89;9899<:><2" p :99:99::;99:99::7=86%&6:88:;8:9::9:<:=:;78*(' 8669:699::9;=:;;::>2("y 98::88:99::88::9:;:9>:*'398::88:88998899:99=:-&"9:;9989:989::8978<:2&f9:9889:;:99::7979<;7(%6:98:98898979:<:-($:9898789887989<;3)m:;98986697678878:9968;;8*$59:98:866976799:7966:9<)&6E6Q6V@[6e`G6w_OI6iVLE6_\Ha6}hQK}.}w]J\/z{mUJr.}zcLH.ut\EO/o~kRE.ztVML0w}|jYK~/|~~cYG/~z~~o]J.~z~~|}aTe/|~}yaUJ.~|~y~jNK.z|z|~SUa.z|w~}~^]S.~}y~|~|`[R.~|yy~zw]Vh&|z|}~wgOQ*z~||}}wvRG'|~}}|~WN^&|z||~}`RD)}y||z~zrTA&}w~~z{z[O`&|}yz~w\WH(w|~~}{~pTO)wy|}}|}~~w`Uf'|}}||}~|~}iTE'y}}zy|}|}}}pSG&tz|wwyywz^NY&z}~}||}|}{|}~kUG)~~~~yv}uYQ'}zy|zw|{~TVO&wywz}z~}~~h^Q&z|z|~|~~~~zXJ&~}}|~~~XIW&|~~}~~~~fTG'w~~}|~}}~~~\L&w}||~||~~\R]&z|w|~z~||}~~}~~lOQ&|t}~y~}|z|~~|}MN&y~|~~}z~~zz^VR|~~~|~}lWM}~}|~~|~u[Oz~}~~z||~}}|aNS}~~|||~~}~~pLH ~~~~~~~~{}wSTw||}|}~~{|^XV |ww~w~~~oYK ~|||~||]Vq~|}}}|||~cTL~~~|~~}~|{}oTA~~}|~~~{~zzXRy~~|~}}~}~{eYO~}~}z|}}{z{~}}q[C~|~}wy~zw{}|{}~y}}]Ou~~}}wwzw{~~{wy~[TA6^8m6tVz7_6kb6tg^6|a7﬩me.}d|4sd.ga/|^k/n^.񤯵thg0𭡯ye/񯭧y_0񤪯}d.q1𭯧sd/񧭪je.蠟ps.蠟}p.睊zn.盛}t(km+򪧧n_*vj'n\+qX+zk&맩|va*짯qk)ꡣs)맩q^*룩p_*Ꝥjy)ꤩs_)ym*詤qtk'ꯡm'筤wd&窩wbv&ꧪq_)硪|g&|n}&󩪪km(ꝩhj'ߣtn积vhzk媩jp㭩ga 񯪪pq ᭧wt 檯ye 檧}t%򪧯qgqX䭪wnyk!񦤦z[#௰}k󪯪שּׂzqX=<=<;9:988756 5 5 4 4 2 3 3 1 2 2 0 1 100 .// --..---,,)*+++***))%'((K&''%%&&u$%%X#$$u&(7<;::;::<7::99<=;::9#'&6<::99::99::<;99;;99::;::982$$56>699:;:889<<:88::89:;;:88>(*6>;;::<<:88::989;:89:;;:988v&&87==7::;;:88::99:;:9::9$!&47?7?99878::99:98;:9889::;'(<9897<98899889:9889:9889:;o&$2<::;=<989::99:977:;:9989:;;%%68<;889796768<;<:98898<8899<:2& /:;<:89:9:8989:99:9869<989899x)&8::989:9:9:99:889::989;89978:%'(1<889::98:99:89889::;8989:89<F +.5=99:<<::98:88:8:9989::99:99<((!5:;;:88::9::9:88989::987:9:9::8:4$(*9=::89868;9988978:99:9869979<89s *)?<8;8:9:<:7::8878:78:8779::977859<89*&&6=?;;988::9::9668877898779::897::8;@%(-8:<:<:88::9897889:95566789::7687:9:7: #.6=;=;>:99::9889886787669:8669687:89@&'4;?=?<;;99::988::75779886798657:665:8:!-,8<<:>:8:99::988977:965775588667:776:8:8!*3=>;:=9::99::98878:95474.-367;59899;88'*-:C><<>:;<:9::8788987876792&%069>687:9:79?')4=?::;>9;<::877699765587/"$296885887;"**=<>>=;;::8:8::<8;978866861! ,66::7678766Q"%5@<>>=<==<:<::9:8:8668973$!+659976799:(&*>@??>=<<:=::99:88788665&(45897567788v #4>??><;<<:9::9:7998776264%&46698665-!%<;:<<:;==<68:99:99::8446685%&6756778v$2?=8:<<::;<<88:99:886788;8(&685456788<&*:??=:=><::9:99:8868:7*!%58656755655צ!)-;>:>:=>=::;<:9:89<99:867868965)!#2778865775:$(7;<<;:;<==<;:;:99::87:8879677/$$+:8675576(#,9?<9><;::<<:9:78868754.##+:867566576F#)5>>:7;;::;<<;<::9;968968854/#"*99575775751&*6=:::<::;::9:89:89:86866'&5665377356& +<>>@<:?:;;::9:98:99:67658(&4776588567 a&3;<<;:==::<<;::;<:98986:8:9986976:)&5987588578+"'9::<>;89:<<;;9:>9::8:;878877887,'5794698688#"(;;::<::;;:;::<;9::99::8898668:0"&4886966:B"&.=;::=<:99<;::<99;:9:;889;;9668;4$%1979768868.%*7;:9:<::;<:9:<<::;9:;::9:;9678:7&%0:968848:6!&.<988:;::9::;;:89::9:;89;;:9:98:986&&.:969948;6<&1897799:99:<<::;:89::9;;89;;:8998;:77'&-989976887*$*6696799:989;;::;898::9:;::979978(&+799887887(*:9868::9:88:9::6<89::9;<::98:;86699:)&*6;69:46:68#(1=9:889878::;:9::89;:9::89:8:9.('6;::99899*$*6>889:7889::88:;::8:99::88:9::/'%4::887766&.:;699:99:7889::88:;;::<;::;::;1=;:99886? *4;88::9799:9::9;::;<<;;:9:;3%#0;:98876)%(:;8;88::;89:9::;988::98:889:9::9;7&#-::998!();:7:88::9:8:;::868::8:98::9;9)$*::;::j"'/;:87998789;::9878::99:;9:=:9:;:<::;*%'89989:7"#6;<;:8789::9869;::9878:<:88:98:>:789:=::;+%&9:;:989:#&-;=69::68;::;:8998:9;87:8::9:=:899:8:9.&&2::97<6 #+8:688:78:99:99:98::;87:8:9:9:<:889::0&&2::8<7Q"&.9;9:8:889:989::8899:899;:8699;::3&&09:988<80&,6;;:;8988788:98689:8899799:8587:8:5&$.9:998:8&$.9;7887899889::8679987898899:9577:7:7'$,8;::897&$.:;798879989988:99::986988:8989::9678:8<9*#)6;::977C$&.;<9;:97::89989::97:998;9:89::86987<:,#'4;9979.!(.:<:<:78;:78898;9::9<:<89::95966<9,!%3989:8:?UX{{~NVTw~~~|pQOuww}||}|}|@X^w}}|}}|CTU}{z|}~~~OJTs{z~}{|~~~}}}AVY~}~{|}||~}||}~~}};TQp}~{zz{}>SSy||}zwzw}~||}~~|}}|oTGi}||~~~|y}|5\U||||}}~~}}{|SWXm||||}}~}}|G`fv򁅅|}}}~~}~XXIv}}~|||~|z|sOX^|||w|||{|~~~|y{|׬G]\}}z|}{|{|}zz~~{{|v}^TTw||ww}}zz}~}z{|z|RXe|}}}z}}vuyy{|{w}z{GMfy||}|}|w{|{wy~}yww|{|TVt||{v{{||yz~}yu{wwv}Iea}||}}{{wuzzvv}|wwzz{w}|J]q||{|vs{tfcry{v||}W]c}{|||z|zw{~oTRky~w|zzW\s~|zzw{wuu}{hLQo~y||u||}zK]]|}}~z||ww|wlJHbww{w{|zwwLSv~|}wwy|~{rQI_wv~zw{XT]~~}||z||ywyvTDXsv|{vwz{||GNtߊ~~~z~~|zzwowtRATtyy|wwvcIRځy}~~~~|ttwyw}vS@Tw{uwzz{|}}|BOo}|}~~||}|ywwz||}YDTy}usvwz|}}|U]~~~||y|}||{]ISu|wvwzvuwvuJ[c~}~~~|yz|y|~yv[INo{z|}|wvzzvOYz~~|z}}|z~wzziQQ_}w{uvvu{wXMa~~z}}y}zutgNN`}w{uwwu{wN\vz~~~w}~y||vtiNL^~vzuzzuzvlT^y~~~|~}z}~||z~{pTK]{zuwuzzuwuJQey}~~~}~~|~|w{wVJYwwuvszzsvuKV{~|~}~|w|wwVDTvwwvrzzrvwTH`~䁀~~|~~yzwu|XBTt{{wu||uw{ ETr߃~}~}w|~~}w~{w\BTu~}{u||u{}_LW~|~~~||{}}{z||}|{bEVu{~tw~|w|}NKYۄ~~~|}}|}}wy|jKTs}||wy~ywLTg~~~~~}}ww|tORmz~zw}|w}fS]{~~w{}zTRk~w}}t|wITf}}ށ}~~}|}wUTg~y~~t|wAUl|z{~~~|~~|}}{zVTe|~~zy||z^O^ww~y{~~~}~}~}~{z}XT_{~~}|z||zEY^~}w|~}}~y}~~}}wy[T]ww~tyw}NYm~}||}~~}|}|{}~|~~}~}gYVw~~}~]O]y||}~{||~}}}~~|}~hVRs}|zzywEUfy~~z|}}}|놄lTMo~~}|yG]s||~z~~~~rSMj~}}|zw[RY||}}~||~}||~~zUNe~~|JX[{|}}|w||}~}[O^KVi|{~~}{|~|z|~~~~^RV|~}}~{LNw|{|~~}w~~|z}||~|z}~`ST~~}~NTew~y}}~~}||~|z}~|~~}~gTTp~{wHM_}w}}z|~~~~~}|z}~~||kUUo}}{KTg~}||}||}|~~񀁁~|~||~~|~~ك|wrTTj}|}kTbw|~}||z||}||}~|w}~||~~z~~}v|z}vTQg~~}}UQf~{|}z|~~}}|}||~|wz~~|z|~}|~~뀁~vzz{{VOb|}~zTOf{~}|z~~}~~}}~~~|y~}}|||~}~~wz||^N[w~{zQTg~z|~~|~~z~~}~|~|y}{bMVs~~{~gJXf{|z||~|~~|~~vwy~aJSq|~|UswjtqmkVw񬧬[qskdqXtyPqmﭪSppq_󭪧G|s⬧pvw򬭯󪭯_򯳳wwbkw_}|qqnw_h謩qtbd}馧v}qnv|gme}}嵩dagp𣧪mbwq}ꤧq\w_j߻nXqbnگpVqYky\qs}ﯦ}bpdzzbj kymmwh譤jjj|䭪jg qqe} dmꧪtdyet秪t\qqa䯭wYq ^q߰|Yqgv逸^tjey۲eqgqꬰkn p}qn bqޯsqXstqkwq^y۪zq}jyyt}k}穭tn^s񬯤뵲qh_}檲phznysjdwz䭧zketթntgjpqjq𪯸qqah쪩sseq񭯯밯qqq蠟qmsm뭯tkqkjzmqhtdwৰdp!6! 2 !O "#)"$#%&>%'(())**++*,2+-2,..//.00 1 1 0 2 2 3 3 3 4 4 4 5 5 5666d5777688899:<==<;;=<<8688:<:78896:8:899878998797988688998899899:6:669::99:;:=:;:99789:8899;998:8:99:99:9897988687887898699696779:967:<:;88::;9=9899:998:9:99:898:788996878989:98:9858678;;989:<<@::89:9:989:89:899899:9969966897:78899687899:;:899858678=:9:;:;=?<:88<99<99868:99889869:65897:7889:68567789868858667<88:<::<:9:8:>;9;:98788988:8989::87899:8896867889867886966;98:<::9:9:<878:99:8779898:8:8::9889::89968899:87786966;:9:<=<::789::9;9;8788:8:8;9:99889:8:9986989889785966:;:99;;::98898:9:;899:86966:;9;<9976789;:869:8::88667887899:<>=::98:8:9:;898967;:6898898898896499788786776<<:98::9:9:99:9:8988<:699886886899768967868688766;:989::;::99::8::978<::998867898789688676778765679::;;::99::;:99:9:;:968;::9989889878989868656776568;;:9889:;::9::;9:98::;:98898988789:997989968656776567:9:;;:9:9:;;:9::;9:97:9:99::9898977998:76689::7989868678765456:99;;:9:9:<;:9::9;9:97:9:9::879<:;97998;987899789886676:9863347::<:8:89<:78;:8768::989889;<;::88:;:9989:987898665785688676588::9:89;:88;:;::;:98<;989:98<978899:99876786568788468766899::99::88::88:<889878767997<:889:886778867516766798:;89;9979:88:<88:;6899;<<9:99::98797668998765677566765598::89:9979:88:;9:9988:;;::;:889:;;:9787689:98775367866787643889:9989:88::899866;:876677::9878656753667866537899:9899:988:88:;;:99:<9889<:;:989988674668656677556698:9789::978:889;:989::779977::;;98986778644686865764365663588989:978::88989::9:;=<9::98789;:99;<967669965788687438866489989:978::889889898:99899:8:;:977886687876687647668878899:98998987::;::97:9779:998::99:;:988778677667668988998:9887887788987789::99::98876887664644686678898;97787668::9987789<:868:;:88769886464478667899889;97789::9779;;9:;:889::9889;;:9876679988744646886898789988767978878998989::;:8:878766798898668689866798779886868::;<;:6679988:;;9889978::6568898668668646868796869:887767894687788689::9989<9:997:8:;98998866886796678765776769898778:8::99::;:98644:8::789::88787889895678766768797868876679::889::8878:8::8;9987668788676898755799875566788766889987788:988::9:889866868987864787557886788556877665689889988;:988978::;:988:97798:;:99867886789876455887678988:89:;8989::898989:9988667889986873559778876778779:8668899:8:9::9:67898778866789886789877996757566788:889:987668899:<99879689966766:;86578778686964:676688668653698587898778:98899766866876776778876689:98684764;988786445:864698668867::98 878::9876676689:9899664:898776445865368866998866;88986698998899668899::88789:989:7876867664356657:86866:668864989:88:9778878898898688986 65652996688669876678879:7898::9766:9867899768898865676787697657874:98898968678:98867889::868878::8665467788756684889::878998766889876787788688;:89::96656886652674794987899878:9886684688766899876:98997896557876687226769:986656:7546887699886686448866886898996889:998668866466446865665665668976799:;:89:99::87886898997889::9889866864643567878::8767899867889:89:99::9678998668767864678876644678986676624668899867889:8::989:9689:97667866864686634788698876688689886788:899889::9::866:8787646766566556778667678997668868897:98899::9:976688678876642276646646646766764689789886;99:988:788668::887899746686424456654;766468786676249988988689989:988966949:998876624664466:866766765686579989:98778989::88:8986::6:978897663664246676467644765686567789:9899869898688986886466324686446 64667889:9886868868668896986646646866896654467889:9::98898:968:9:788789866:988766764486686654436789889:989::96799:6:966886899867668974366864455663453668::988::88678786:9768769688788689866766764455662463664466:<<9788:9:97998:86846887789964688:7466784566256486446688€|w}|}|{|}~y|}~|z|}{~z~}}|w|}|}|www~~z}}|~~|}~~~~}~z~}}w|{||{||wwwz{~wz|}|~~|~~~||z}}~~w|{}}|}u|w{||~}~|}|~~}~~~~y~~yw|~zz|}~~y|{||}u|wz|||~|w|~}}|~~}y~yv|{z|}~y|vw{{||w||}v}wwz}|~|}{|}|~|}|}~}~|z}|}}~~y|w{|||wz|}www~|~~}{}}{{~|~|}}~}|}|~~y}}|z{|www݃z|~~|z}}|}|~~}||}|~~}y~}}|}{z{|vww~~}|~|~|~~|w~yw~~zwz||w~|}}ww{|}|z|~~}|~}~}~yzw|~|}~||~||~~ws~~z}}z|w{zz{zw~|~~~~|~|}y~~||y|}|wwy|~~zw}~wz|w|w||{ww󃄄~|烁~~|~z|~~||}}wwz}~}{|~y||wzwz{|zwvw{~~~~~~w|}|}||}~}z|~|~}w|wvw{zwvw|~||~~|胁~|}|}||}}|z|~~z~|~~w|wuwzzwvw{~~~~z~~~~}~}~{z~~}{wy|~z~|~|w|w{|{wusuw~~~~~~z~~|z~~z~~}~|z|~~{|~||ywzy|wrqqs{||{}|zy}~|||||~~|~|{}}yywv{|uw||wzwv||ɀ||}~|||~z|}~~~|zy{}wvy|{}|tw|zww|}|||}||~}{|zwz{||}~}|yz{||y{vmwzwwz|}{}|||}w|~~~|z{ww|~~|{wvw{{vwwzwvu|}{}|~~~}||}|}~~z}{y|~~}{{vrw{|ywwz|zwsq|||||}~~}ywwЃ|{wwz{~}||}}{z{|wvy{vrww{|wwuqz}|؀|}}}~~|}||~}~~}|}}|ywyztww|}wvwwz{uvww}z}z}||~~}~{{z{~}~}yz{|wtty}y}yv{ytqwvwwru|||z}}|}|~~|{|~~~w{wwwvz||y|ztr||wwt|}{}}|}|}~~}}~~|}}|}{z||ww|z|zwy|zwtzyw||z|||}}{~z{{}~~}|{zz||yzzyyzyww|~|}|||}|z||zz}}|}{z{||~~~~|}}||{w||zywwtyttw|wwz||}}}{z{||}||zww}|{z|}y|||{zzww~}||ywttwttz|ywwz{|||{zz|~zz~}|~||~|zwwz~~}}zttwty}}|ww|}{|||{w{z||z|~~|}|~̃}|z|{ww{~|}~|wwyww|}y|~|ww{}z{}||}|ww|y}ww{}|~||~~{|wuw||~|ww|yy|ysw|w|{w|w||{zwz}ty|zz||w}~~~}~~~~z}~}~~||ww||yz~wwz|{wvz{w{w||zz{}}~~~|wtt}z}}|{|{}||~~}}~vw{|{wwzw|{{|w|}|{wwz~}|~||z|}|~}zwy|z|}||ywz{ww||zuvz|zvvwwz||zwy|}~~|zz||~|}~}}~|wy}y}~|z|yt{|{vv{||w{||uuw|{{wwvw||}~~}||}~||~z||}~zz~}~~|w{||wz}|{wsvv||{zwwz|}|}}||~|~|~|~|~|~~~}|ww{|}|w}{qvv{z||zwz{}zz~}yw||~~老|~~w{|~|z{||wwz}~||wz}}{zw{uzuwwz|}}||||~~|zwy|}~~~~|z~y|~wwy{ywwy|wvz|{{}w|w~wswzww||wwy}yurw~|v|z|}zz|~|}~~zwy}yw|zwzzyzz||zyww|~~}w|tzwt~}|z|yttv|wtw~|ww||}|wz~||}||}|z|~|zwwzyy|~~|~~wyws|~|zzwttu|yurw}}yw~~||wy||}~~|ww~|~~}}~~wy|}~~||z|~~|~z|zw|wzywwtquyyvz|y|ywwy|}|ywt~|~|}~zz||z||}~}||~}|}y||~}yywwywwyywvvwuo~~yw||wy~|zwwz|}z~z|~}~zwwy~|yz|~~zw||}~}}|wwvw{y{|{w~{wvz}zt~}}~|~y|}|yz}~}|yz|}~|y}}z}}wwutw{{|}}|{vwyw|}s}}~}z|~~|zww||}~}zyz|zz||w|||~~wwvy||ywwvpy{t{t~|z|~~|z|~||ww|tw||zwwyww|~~|zy~}~~z|~yvv{|{ww|zppwzw~~|wwvw{vty}}zy~~||yw}ytt||ww}|y|~}~~y}||~~~|ww||wwtwwtty|yvwywwvwwvwy}~{wz~~}~~~|z}|w|~|~~z||}~~||}~|yww||ywttwtsrqvuuwy{{|z||zyz|~~|wz}|~|~~~~wz|~~|yy|zyz|ytwz||zywttwy{|~|wwyzyyptwy|}~~|wz||~}~|~~y|~~zwyz}yy|ytw|ywwywyqtz}}|ww~}|zww|}y|~}||}yz||}|~~||~~}wwyy}z|zwtwzwwvwwvuuwz{|wwzwz|~~zwy|}y|}|}~z~|}~~~~zwy|}|wwz}}||zywwtpozwwtwwyywswwswzwywwzwsw}~z|~|}}w~~~|}z||ww}}|z|~~ztwwy||ytostuwywvszwwty}z|wwzwpt~~|}~||w|~~}~~|}~ww~t~~~}||zwwotywstww|wyzww{yvw}yv{~~}~~}zz}~}~}|}~|wy~z||~zywwrwwsptwyzwtwzwtt{yvw|wuwzz|}|~~}~~|w~|~|w||~|w||}|ywwtwwrpty|wttwwywywtwwyz||~~|}}|w|y||w|yy}||~~yy~|yywtwwtwy|yww|~wwuttwz}}~ށ~~|}~}~y}~z|}z|~}wy~}||zwwyyzwtt|ywyyww|wwvttrwz}~}||}|~~|~~wz~~y~yw||y}~~|yzyy}~ztrww|wttvvwwrtvrwwyyw}~|}|}wz|z}y~zy|zy~y|}}|z||w|~|wwzwwyzwttuuwwptwrwwttww񁆆~z||}|~~z~~|}|w}sw||zz|~~wty||ztwwyz|tuwwpuwt|wttwy||­몭衬ުݰ詬筬嵐䭬񪬪裧󰲲簯ޤԩ谯ɭ婭󧬯аحĩҧ㧬੧լ񧤧ﰬ򧦤ߦ⧬̰ꦬϪݤ褩󤡧觬ܤ󤡡檧񤡤譯줩󯧧ϣם飡񤧩秣랝멤ʗ˧֠ڧˣ裡ҩݤ򕝣ۦ皡򪭪誧ޯޚ򡝝ᩯ槪񯵵鯤866786698768:9:8:9886:786898:7:9877889986679::6:87:869767998867678679899799:887687;886898:8:98868878:486687698898788678778788;:688:8:8898:897898:899886899884766866889877976786786687::8898::996799889867897489878869778876796677667668688:866988966:8898978876689848:98896678767:756676686689;887988;::8988988688766869:87887788788:55687789866786786899;9:9:89=;;98988968789887896::878987767896678896786986:;9::88:88:7697988:6789989;89978::69886789779856678566887789:8788988986:6778:8668988:977887:498589786775676788788689:98769889877:6887:86788767767787696:96876878754678878878:97678:88997789688798898866776678856998988764466788986689:88998789798787887889989::3799:98:8754556788789::9878998788798:88687789:9988997;9897687633665589989989::977997688799:8868767887898757;88967866556678899889<:8788788778979969877876678878876697897883766766946886689:998657678867:8869:7:988679;97679989798686889744667766898:;97889;:769:88:;:9987<88:98869889987:8788786446876687789:6887899899868::78::88796798898898988998787668664877678998878868878899886898867889878899:7789988468878977667877887679:878;77668::8976889678998846887788778765789988:889:978<88:9;89:7688678896628876889:88:;98::9:9::99:97:89:87998899886788344687688;989988<:89::989::98988978:88987886788987468667689:768::98;;:988989:889978:8787788789:57889:8573257768::9989:98898779;:9969:889989:98::;68788687664567789:9779:9878967889879:98868878778:98:676687965677668878:977:<;878:88769878998899:9::987668:968676898943369988997679:98:;:889889::988778::878898798789::86578:98765689877988679::;::99:9899:99889:97687688768899:67898866898668788:8;:889:98;:9887768998649889988788988:886677865689867:78988998:99677889:88687886878989669786788789:98789879989968898878689878::9::8:768::9969667796889:6::9:88::;;98898:8868:99:8998:88988998:878::9887886569889:98987879:99::9:8878:99:8998:8898799;8789988978878899667788:8988789::86:889:98:8998:8897689:<8878878989878::96678878989::86:99889:8898998:98866898:9887898:978::77868998899668::9:988:98798998:988668866889:988969:868988978::868878998:989:87698987:98866986688::9889489878::8896886988:988:79:86698987::88669866889:977957889::889:6468::778::88:7::79:86698986::99669988986688788::99898766789:8::9:6<9688686:8678867:879:9779889::987886689:998;:99:89899798:86::8:7988988:867889:87688788978998:988996887689988:98:87899868<88667998876789878898898767887889::886876688768:688:96887788:987899::9889::99:889::876688687889989:968898:88998899::98799:9:889;9987:98::8:879::88::9889989:8898987889798897897:98<:8:889::88:988:889898:967889877899896:86747;8966:9889868::8897889988988:986:96399:86689:99::<:76678998989:79:9778 8:98988:98:996::;:889:998987678764668:78988798899:9988779978988:89:9988968:8778878986689778::9:788789879989::967669977887:8698899:6789887788987689889;;988688778879889867889988:996989::98896689:986;:88766;989988:689866779889868::989:9;:;986:889989:878:;:87;976886:8899:;789866769::9978::889::9<8989889:88:98668996799878878869::8986887897:76;8:86::9887789:989;99887789;:9:988:87668;85889976789668487886788::8:;::866:;88:99:87::899:989878987:867887889779:;:69:8::99788::88:9788788788989889:98898668986689878789899898:998:979:988:889889:9986898867875468787998:9:9889:989::99:88989:99688688688698778877898998:99877899878879987889::9889889678678688788764788766::89979788669989:8898:9889::988767667667637877657::7889789879989;9989;:998:9886766766869:884688:89:87988:989867::89::876998898864866788664}ww{|ww~|zy|~|~||yz}w}~|z~|zz|}~~|wwz~y}z|w~{w{||}wwzw{|wz~|~~z~~|}zy|z|}y}~||~||}y||z}t|yw}zw~|||{}|w{|z{|z||烁y|}}}|~|}~z|~}}~~}||w|~~||tzww|yw}||}|z{{w{|wz|wy|z|}|~|~~wz~~||}~~}|yz|}~~zt|~|z}|y~{{|}{w{wwz{ww{ww|y|}}|ww~||~ww}}|}~}~z|}|zwwy|}}|}~|t}~|}||~wwz|zw{zvwwzww|yy|~}|z~|}|~||~|}y|}|zwy|y~|z||zz||z||}vvw|{z||wwz|wz}y|~~~~}~~|~||~y|z|~}|z}~y|z}~|zzyz}~wwz|}||ww{|w~}y~}||}zw~z~||wz|~~}|~|~~z}w~}}|yz}~{z{}||vww{|vww||zz|~}{|}}||}}||}wwzz||ww|||}}|{z||zs}v}{|wz{vw{wz|}}|z|}w||zw||}}{zw||z|y{}|zwzzw{zz{||{www|{w|{|{uswz||z||z}zwz}||{z|~w||z~||}|ww{{wwz||vw|||{wsswwyz|||ww|}||{|~z~|z}z|}|{|}}||r{||zvsuvuuwwyz|}}{||{}|{||{~}||w|{z{|}}z}{w|{wrqwwvv}~~}~~}|{{zw|}{~~||}w|{wz|}|z{z|}}zv{}|wz|wwvuww{|}~~||}~|{|}||{||{z{|}}~z~~w~|{{|{wwz||{|}}{wwz|{}|rzwwzwwtw||yy|~|wv{wz||w{||y~z||}|wzzw{|{}w|w||}~zttwwzzww||{|}}~zy~}|~~}z||}|w}}}{}{|}|{|wssw|zww|{{zz|w||{|}~~|y|z}}||zwz}}|}||}|||{|zwwy|ywt|{zw{|||z|}|w||z|}~~}|}|wy}~}|wz}||}|{||{{}||tw||z|~{zwwz|{z}}|{{zwz~}z}zzyw||}zw|}||}w{}||}tw||zz||{{z{|{wvz|||}||~~z}||}~}{w|}||}}|w{||}yywwywp||}}|zw|}}|}~}~~~~~z||{||}||w{||}|rsttw|zw|||||ㆁ}~~}~~}~}|z}||}{|}}||}w{||}}zsy|ywwywwzzww|zw||~||}~|~}|~~z||{|{{||{|v{|||vzrouz{{w|~~}}~}|}|{{y~}|~~|}y|{|}w|{wwsuwz{{|{{~}{}wz||}}|{}}w|}||}}|{|{z||y{wy}zwvw{zww||{}z{}{|||}|zw|z|||~~~~|zww|~y}wzw|~|~sqrw}}{wz}}||||}|zz|}{||}~|z|{|}wv{}~|zwvw||{z}|wz~~}||{w|zy||zy}}wy{}~}|ww||ww|z|}|}}}}~~}||{zw}|ws~}}~~}||{||}|}}}wwzz}yvw||w{{}}}|~~wz{||}|}||w|z|}|yw||zz|}}}wwy~z|wz|}|{||{}}{~~}~~w|}||{|w||{}~||{w|~~y~wwzz~w}}||y~}|~|}~}||y|~~|~~|}|~||~~}|z}~|}{|}|wvy~||}~~|~}z}z~~~~||z}~~|~~|}|~|z~~|z|~~}|~z||{|}~wwz{||}|~}||z}~}y}}||~~}|~~|}|~zw}~}|z||z|~|~|z}~wwz||{|}||}}~~||}~|w~~||~}|~|~~|~|}yw}~}~||z|~|{|{z{||w|~~||~~wwy}~~~|}~|z~|~~|~||yy}|wy}}~~||~y|y}~}||}z||y||z}~~}~|~}zy~|~}z~|}yy~|ww|}~||~s||z}||}~y|}||}y~}}~||}|z~|ww~|~}z}}yy~}ww|}~~zz~uz|}}~}||}wty|zz}}}zz~|ww~|~}y~~yy~~||~|wy}}{|}~~~}||~~}zwwz}~|~y~w}|w}w|wz||y{|z~~zz~||~~|z}|ww|~~~}|~~送|~|~~z~||y|z~}}~|||wz|}}|}~}zy||z|}~{}~~}~}}~~w}|}zw}~~||~||z|~~|y}||ywz~~||zyz}~|z||~}||}~~|zyz|}|z|}||~||w|zww||zw|y|}|}~w||zz|}}|}||~|z}~~~||}||~~~}||~|}zwy||y|{||~~}~~y}||}~~}||~~||~~~|{~~~|}|~~~}z~|}}z~||~||~~}~}||}}~~||}|z||}}||}~~z~||~z|~z~}}}|~}}~}}||}||}~~}~|}~y{|}|{z}~~|~yw|wztz|~yw~|}||~~}|}|y|||~z|}~~}||~}|}~}w~yr~~|ww|~~~zwwz|~~}|~~}~{{{||}~|~}|~|~~y||~~~|}~|zyz|zwtwwy|{}||}|{~}}~~~~|}zz~~z|~||}~~~}}~w}}zz||z}~}yw|~zz|~{||{|}z~~}~~yzwy~~zz|}|z|y~||~~܀wz}~||zz|}~|zy|~||~~||w||{{||z~||~|wz||~~||~~yw~|~~}}~yy|~~|w}||zyw~}~~|}w}|wwzz~}||~~}|w|~|~~~|y|}~~}~|z|}z~zy|}|y}|~~z}|wwzw~~~z|||~~}~|~||}}~}|}~~|yy|~~ywz~~|z||{|}|w~}|}~|y|}z|~zzw||y~}|zz|~~|~~~}|zz}~~~}}}{ww}}v|}~~zwz}~wwyw||t|z||wz}|||wy}|~|{|~~~}||~~}z|~|z}wz}|z||}||z{w~|~~z}||}~z}|z||z||}~~}~||~~||}||~}yy|}~~}ww||{|z|~|~~|~|~~|}~{}||||}~||~~~|}||wyy|}~||wz|{usw|z}z~~|~~||~~}||~|}~~~y|}y||w||w}{z||{z|~|~~|~~|zz}~~}|{||}|{~~|z|}~~}}~}}~yz|wz|w||z||zwtz||}{ww}~~z~z||yy~~}~||}|~}||}~~}||}zyzwyzwywwyzzwwr{|{{wv{z|}|~z|~|z~~|~|~~}||~||}||wwzywyzywwyww|w|}||ty}}|~}z~}||}wz|~}zw~~}||}~|}wt|ywz}|ywwtsǦݩ簯ҝĤԤ򣤩㦧婧Цݤ姡笭즧󡧦ȩ禧Ъ짬ڧѩ橬դ椡ԩ񩯯ק㵯멡觬説曞٧򦩭ħ򬭯ة৬ӧ򡧤֣檭ۣ朗겧ҩ֧򤧪ǡשƪ㩯󧡣ĩ魯סǧ멪᪯ѩ򩭭٣઩򩧪שšܭ驪򭰤ݦƩ駩󧩭觩ꬩ֩ꩦ𤋮֩񩧧ج򩪧98657678669868866788:;75979::99868879::889:98765896798667889::768778668667889887897698876899:976788789889;:998876687877866766889:787788787875579:9:97668767788:87998<998879778678877886788:975788767788997678788767897887987887789:87877878876689975899886689987887889:76787786998878787787968866788787::9886788::8878978857:887877878688778996798688:8878:8::9887898898867898879897786889:889868<96787789988:89988988778698875875866879:89:8895788689:878876879::989::99:<:8896765788786878:8:9878898788778987788989989:8899:98789:9889988989779<98:86798788789889987789989:9::9885988::8769:988787678987:857:7589889::977:988969988::8<9898898778768877677:868:7579988768::988998898:978:<:<88989;:9::889988:88768879:87899878::98898<<:87898;89;99:989987898::788:9989:88998998788:9886889899889::<79<98977897788:95688;9:9::7898789988978988997889989:58:88:89:;989::9;9::9:69:9889978768988998:99:8988798667899878899889;:7889:8:899:89989867679:98879889898878876778787884778:;98898899:998986679:988787787887788766788788967768669:8788789:9987898789767789:7887698667989977998:988789788989889:87866889:9::8748988989:87988:98868968998878:898:88998867889:;;987789768:88:889889889866869:98876687897879988987789::98779964898988;88:89889:96688::87787575775869986799898667886789887726889:9:766866;9669:868878868867;88968898:986489668:66;94658;77678:;979887896598669:8788:968988:799469:89887687646866:8676685688:979988996688679977967986688699469:887886866877:668779899:8689889878878:878986686788668898668;88679668878899889:868:8878778689989::989:8688<88679669987885445788789768:8776788764887667:968::889<86997;8867:64988676646886787699886787758876788698688;868897768:76:88686;<9985648877986896658:976678988988976996:9676886768:86:88987984868759978866898677667867886876677658898766:887769788;87889769878879:77879788667587667768878988779778:988976988:788998668:8875577878998878877897667:9989878898::89::9866798867996788788987887788778:9899889:898778:989:88:9579:988788:989887878:889988989:98876789:9::887568998877987:978878799867:789887:988998767879887566887976:9798879799857978987887:9788:567678875565675778:7699698788797:99857868976887:8688:49988798:9:6686689:;88998878898998689:8866998789;879:;479889879:896848966799878:8788789789989;;:998998:679::6:988:88;9896638:778::866998898877869:48688:98998786899:8::88988:8796868898868:89:9977949:4::87864899779978878989:8:978988:886:99698876796:98::88948:4;9::998689889978899:7:968986;98499:8778986784887:8668896896:688:7998:889898:889966;:9477:8678:86687966:84767877689:976689:988988:67:88:978:86899:66898668::78;96946687676899878::9889866967966:868::886998:98:7:88797997556768869676996899:8669:88:=8;::989669:9899<88:6699786788967864369:788;9:8:8868:9:889:88;8:99879668:98899<66977:;7866898478865689898:8:896868:9:899:97897:88779779:988:87:8698866884788766968686886898:8:998788988789879:9889<969978899878667667886688675889:78898:9899889:8899689889::98964:=989:86867975677668798;::8798988998899;88:898878::;9:848:88797797797665679797;99:;8987:9988998899;98:88:9868::96988:98:86768;76457875689:6649879:8998:9988998899<98:7877889;965676698669886688797:85886:868998:9:9798;8788:677889:97678689988:87667687688:86799;9:9787:889:6678898987786889766565867759:8899898::9:988989:6788988688768866568678786398646898879:9:9788988:678876:988788699767766766897898975:688766899:8998866886788766998778878::87886686897798997:6887789:8988978678878876677668789868998868867877:98:886679::8687998:988986678688789866878789886697:9798548:9766798:98:988:9~|ywwv{wz|ww~|w||ywyz||zv{|w|}}|{||}{wv}wz|wwz|}~{w|zz|ww|wwz}||~||{|zw|}}zw|{w{||{|}||~~||zyy|z}{z|wwzww|}}~{|{{}|z|{|zuuz{ww}|{wz{|}|z}~~||}{{{|w{||zz||wz|}zu{||zwz{||{w{|{||{wz|z||{}{||zz|}~|z}{{}z||zyyw|{u}}|ww||{|}|{|}||{w{|z{|w~~}||zz|z}{{}{y||yyz||z{}||z}|wz|}}|}}|z{|}z||vz||}||}{}zz|z}y|}zz}~~w{|w|}}}|{|}|}}|{{||}}}}}|wz}||}}|z|zz|w||~||}~~|w|w{|{z||}|}|}||{z{|}||w}|}zv}zv|ww|z}|}v{||w||{||zw|{~}||wzwvz||z}w|{|}|{}}|{||{zz||z{}}||}}|}|{|||}|||z{{}|w{|{}||{|}||}{{|~||~|}|v|}}{w||}|z|zwz||z}v{{u|}||{z{~||}w||}}}||}{z|{w||{{zwzz}w|{u{}||{{zw|}}}|}~|{|||}||}}||{w||}|{|z}}|{zz}}||}|}~~||z}||||{}}{|||}|||{||}}|w||}~|}||{}z{}{z|}|uw}}z||z|||z}|}{|}~~~~}}||v||}}}~~~w~~|}~~z}zw|}||||}|z{|wwz||z|}||}~z||~}|~~|~~|}~}yzwz||}{|||||{||{wzz{||z{||{||tzz|~||~||~~~~}~}yww{||z|zz|{}|zz||{ww{||{||wz{{zz{w|yw~|z|}|z|~~~|}||{{|}||}z}{w{z{||{|}||zzy~}wyyz~|~~zz~~}~}||z|~{||}|}}||||{|ww||}}|zzt}~|}}|~}~|z~|}~||y|~w|}}|zz}|}|}|}}w{||}ǁ|{z|~zw}}}|}||~|}~|}~}yy}w||{ww|z}{}z}|||{zz|}||{z~~yt|~}~||}||~||~~yw|||z{|zu{u{{v|w|wz||wwz||w{}}|zzow||~~zww|ww~yy~|y||z||w|}wz}}~w|}~|~|yt|~yw|ww~twv}{zwz|~z~||{}wv}wy~|z}|}~y|~||z~~ty~|~}|zw|zwty}ww|wzwy}vw|}||~z~}|ww}|yz~~zz~wz~}ww||}y~~tw~||z||w|yww|zzyw}{{~|~|w}~|||z||z||z|~|yy}wz||yy||}|~|ww}||wz~wy||z|}~~||}}|}|}~|w|||z|{{|}|}}|ww|~~|~~|~}y||}|wz~ww~~|z|}|vtsv{|}z|~zw}}z{w{}|zws}||zyyz~y|}}|~|w~~z||wzwt~||wzwywsw||}wz}zy~~||wz|z{{v||zyz||}|wy~|w||}w}||~zzw|zw||w|y~~|vwt|}zz~|w|wwu|zywwz}~}}~||~zw~~w~wzy||wzw||w||~|z~}t|y|zv~~z|}ww}|w{zww{|w{}||w|zww{{wu||}{ww}|{{zw{|}||z||zw}{|}{{{zz||z{{||ww{v|{ww{{zw||}|{z{|}|{{z{z{{||}||{w}|}}|{}}|ww|||{uv{z{{|}|{{|}|{||{z|zww{~~|}~|z}||}||ww{||wzw{|}||}|}|{}||||{||{z||{zz{}}~|~~}||}|}|z{}}||vz}||z}|||}||{z||{|}|~~||}}|}}{w{}||}{uw}||{z|{{}||{z|z|wz{|~}||{|}|}}zw{|z||z{vww||{{wz||}||zz}v{~z||z}}{z|}}vwzw{}}|{uvwvw{vzz{|zww|{||}||zz}u{}w}{y}}{}w||}t~~|}}zz~|~wyy|wwy||~}|~~}||}|z}}|~~|y|~}|wy~}{|~|z~tz~}|~|z~|~w|s|~ywz~~|z|}z|}||{|~{|~~}~~}~~}}|yz~w~|}||~|~wwr|zz}|ww~~}||~}}zz}w~t}y||}~}~~}z|w|~~}||~||}z~w}w}|~||}|wy||}~~~{{~t~s|z|wt}~~{{~~z||z}~}~|~z}~||||w~~y~||zwz~w~|||~t|t~~~|y}~}}~~{}|~~̀z~y}~|w~|t~~|zz|~|yz}t}|z}ww||~w|~ww|}||z~~}}|~|~}||~~yy~tzz|yz}}yy|z~yy|tzwz|zzy|~~zwwyw}}~~}}~||yz||~z}|w}~~wyw}||}~|ww}z|~w~swy|zwzw|~~|z}~||~|wy~yz~ww|y}}||}|w~~|~|z|}|zz{vvwzw||y~w{y~~w|~~}wy~}|}~|~yy~~|~~|}ww~~z}w{||w{|wtrwz||~|||w}~}||~}|}|~~|z~yw}~|}~~ww~zzz|ww|~}t{||wuw|~|~|}|~y|w}~}~~ـ~z|~z}|zz~zz~~||}||z|w~||yw|}|t{||{yww~~y}w|y}|}w}~}|~~|z||~}|z|~|z~~|}}~~w~~z||~~|z|yw{ww{}}yw|}w{u}|}~z||~}~}~~||}~||~~y}~||~~}~yt~|~|y|yzzvw{{ywy}{|||z~}~||~~}|~~}|}~||z|~|t|||{~zzzz~{yywuuw{~z~{}~}z~~|}~~||~~„~||}~|y|~w~}|~||w{w|{ysvz}zuw}yyt~|{~}~~|~~}}~~||~~~|z|zz||wvwzww~}ww~}|yy|}|{{|v}|w|w|~~|~~z~|}z||}yzz||}}|zwz|y|~~|||{wwy{w}zw||}yz~~~~z}z}||}}~yyz||}~~||}}{{|y|}}|}~{ywwvvwywv|wz{v}|~~}|}~|~~}||~~}~yz||}}|}||}w|}zy||ywwywuvw|wz|{|wr|wtw}~}||}z~~~z|}~}|}yz|}}|zw}|{||y~~zwzzww{yww|z||{uw||zww|~~|~~|}wy|}}||yz|}|zww}{{||z|}z||ywy||yy|zz}{w||zz|~|~|}~z}yz|}|z||zyyzzyyww|}|{||w|~~}||y|}}|y{|{z|}|wyyz~|w|z~~|~|}}||~~|yywwz|w||{|}wwy||z|{|~}|yww{z|ut|~zwwz~}~|~|}||}~գ̬Ѭ罹󩦬硤񦡤𬭦񧤩꤯橦᧦짬묡쬧ެ§󬯯򡬬թ֪թѪǬ󩪰ꧩ蠟說棪⩬磧ǯ§謹է𩧪줧駩᧤⤣嵐󡤧𰩡짣͞񡧤Ь֤ԧ੧ߩکܩȬ̭թ֣٭ꦣ理ܪգˤ²ݬשּׂ٩駩驧ݦգ󤧡駦𤪩98:;997;;:99:;89986886767:78878:86868668797686687::667:;:<:9;<::;988::99:;;:9886878899878767686687966998968:7889:9;;9:;:;<;::;<9:;:9889:9668866788767887687788:76988989:8998::8998:;:9989:7889776689887766788787789889:8:998:97889;:88:;;97678898987678:86688658876886689987687::998:989:9:;::;<;:87::9989:966:7678876886776876868878686::998:879:9::9:987887<:9899887688:9877898897856779799667698869::989779:99899:8:8778998;88988588::9679663688:789699896869::978878987679:89:899868<86887:8876786875883688:966::98::89:9885879:899::889:98988979:9988797876878988:879989::99:988679:88::9:9:88:889:798788968878:99<8988:988989::98::99::89::88:989987668:9789957669;88;8:986887899:989:89::989889::7998878::78:85:989:6698:97668898989868::9889::787899:7889::;;89:88:87;:88987;898667889877889868:9989:8869:897998:87989976889;8867887898779899:;87:988:988:996:;8878898:8898:688688679986676878879:988:99:889:9899667889:98899877887:8768868998688789:9889988:889:9899889::9:9987998899:98868766899889889889889988789889877;9889:9889879987678899:9988988:989:988987:87689986789989887689::9987898:87898:88:989877898899898898868::9878997887887876677:988::98988989989:98788:9:989877887898788:989988989:889889::9878897::9:98:988998678987889778986779:9668<87789::987788985898898689::889:;989989:99:97887696699:8899::987668:89:9788667769::9766:99::98988998778894867:87478898788989987677688689889::8898766889889:7977998:99876698989::9876::8767878998788976689:97789897699:889:87:96799:988:98778898988::767889866885677874667889::8988::679877898877898998788989::877668877887786764788998:98898776799876998778988998766889886786;677889::988989889987889::97978988986788998765476886;:9876788;8867:98789:99:99878:76::8:98899657998878898:88:9:9886886:88:9:98988977::8:9889988:87878878::988:76978;986886:989::989:989988:;88:9978:<:89;::88987::<:9:88966896:9989:989988:99:8998899;889:98:><:88987889889648669:7:9::9889:889:98798988989:889989::989988:98789::9:9;::<99:998::688::889:879:98897867989<:9:86688779:9878778996878:8876984689:868899889:9887988989;98986578779:98898778:89;::6686979:868898789:998:99:89:8798669:9987786679987866977:9:;::89:8<87898898898898668::8:987686698:8978865:8869878768879989:8998868998768988797988697698:8989986:886988976887988998898:878:;:857887686889798898989899698868788767786886786988:98788786878:88:9988989::9779886878867886887786678898878:8988:88::99899:899889:978878988788989:899889::989:8899878:9:88:88998:8:99898679:97868786889898::99:8::;::9:989:977899:8898898:9:8989966::969687969868989:9989:899898876:8867988:86988688;9;8989967:;969687969868:9::9878::877897898:898667887;8898:89889::88:76988:78:8875976986986688767898998:8997;889898898:;99;98:9::88988986855997886678:89989868876787;887886898668;:9;99;9:9889:8866899887789:899898898898:9887686898668:98989:8898:87886699778989:899898987788:988768::9:86889:88:989:86:884698677868:899898875567769989868;:989989799::8:8998:966;867689678878986898998:899889:88968867887::8:88:867:866788789988:97897898:878998789;887::68776788986::98:8868:8687887788:98899:89::989:98::76889898789988:67879889988:;:;998689699:9:9:89899889989::98767998::8:788:68:7989::988::99898::89::88988998988988;:9;7889:8867688:988::99898:998989:988:88<897788789789988997668:988989:87886688:998:988988:89768866889::9889766899896898779;86776686:998988988698:98988787668::9886678668:997887678:867767989889988976789::96;88:88988767768866987:9779::989866788968878;:8789989:889878=86:78;89866876:9669869~}~~z}}w}|wzwz{||{}}y|w|ww}zzw}ww|zwyz|}ˀ}}||ww||{}||{|zw{w|ww}{ww~~}~y|z||~~ҁ}}ww||wwz||zwz||zw|zz||zy~||~|~|~~||~~}}z|}}||}{zww|}}{zwwz||{|{z{|||~|~~|~z|}|~|}{w{|||}|zw{||ww||wv|}|{zw||wy|~~|zw}z~~|~|~~|z}wwӁ{wz}}{w|}wz{w|{y|y|}z|w|y~~||{|{||{}}|zw|}|}|zz}}|{|uw{z{~~wyzy~||y~~|~{z|}|}{{}||}||u}}wz~wwqw||{|~y~~|~w}y~~z}||{|}zwz|||w}}w||}z||{zywwz|w|{v||ry|}~yw~}|||}|vuv||z|}||}|{~~}||zzz|{w}{|~}}}z~~}|~~}}|wwz{{}|}}}}||}~~{|{||w}|z}~~|~}||~||}}}||}}}}|~~}|zyy|{|vzww~}|}~|y||z{|||ҁ}|}|{}||{zz|{|}v~|~yw~}~zwy|||}}|||w|}}{}z|{||}}|||{||~|z|~}ywz}}||}}{{}|}|}|w}}|}w}z~}||{|~~zy}}~|}|ww{||{|}z{|}{}}|}w|}z}}~|||~|y}|y||wz|ww{w|{|}|z{||}||}ww{|||}|z{||}}||{}zy||}}w|~~|y|}||}|z|||}|||}}}}|{}}~}||yw|}|zwy|~~}}}||}}|||}}z|}}|}|{{||}||~|z~~|zyz|}~~|}||}||}}|}|}}}|{}zw|}yz|~~}~}|}}|zw}|{||}}|||{}}}|}||z{|}|~~}||~}|}~}|w|}||zz{}{}}|{||{|{wwz{{|}}}|}|~~}||}~~|z||}||||{{|}}|z}|z||}}|}}||}}|}}|}~}|}~~|z||}~{||||wz}|z||{z}|wz{ww}|{{zz{|~~|zz||}~~}}|v|}}}w|~}|~}~|{||zwww~~|}~~~|zyw||~~{||ww{{w~~zwwy~~~}~|}|z{||}~~s}w{|ztz||}~~}|z|}}~~}}zwzzw||}|yy|~||||}{ww||~}||~z{{~~|~~|zyy~|~|}{w}zyz|{||{|}||zww}~zz|~}{w~~||}~~|z~yz}||~}zz||~}||}|}{w{|}~}yw|}vyzz}ztyyz|}~|~||yz|{{z|||zz|}~}~~|z|}}}|{{wy||zz|}{z|wzwsz|}~~|}||~|||z{zw{~~}||zy~~}zz}~|||zww||}|wz|wyzz|}~~||~}}}|{||}}~~~{{~{z}}}}w{|}~~|zwvtzw}}w~|zyz|}}}|wz~|z|~~~~~|z|zyρ||~}}~~wuz}|z}}||}||||~~||w||w}||~~~}~}||~zz|ǀ~}}~~}|}|{|z||{|||zy~z|~}y|}w~}~~}~~|~~||}|||}~~z|}}||}{~||~yww|~y~~}~~|~~}||}|~~|~~}}~||}}|||z}|~||~wt}ww~z~~||}~}|~~|z~|~||~|~}}~|~}|}|z|~~~~~|w|}}||}~|z~~||~z}yz~|~~}wy|}{{|{|zz|w}z|||}zzy~|sy|~|y|}~~||~~}}z~||~|~~}~}wv{|z{||}|||z{z|}~yww|w~z~|w|}~}z|~~~}|~~|~|z~}wy~|zz}ww{|{}ww~zz~|~|}z}~||~||}~}}|}ww||~|zw}ww~||~z||}|wv}}w|z}zw}|z~~|~}~~|}|y|~~}zw|||{~z~}||w~zy~||~|~~}wׁ}|w~||~zw||z~}|~~|}~||z||v{}}||zw|w||~z~}|~|~|~}~~yw}|w}{|}zwzz}|w||yz|w~||}~|z||{z{{}w|z}|}~~|}}~~}~~{{~}|y|{}}|yyz|}|w|}zz|yyz||}}|{z|}|~|}||~~|~~|~~||~~{||{|~||z|}}~|~}~~||~~|~}}|{|~}}||~~}}~~|~}yz~~{}y|{}y|}||}|}~}~}~~}~}{{|~~||~||~|~}~|~~yy~y~w|{~y~|y}~}~~~|~}~~|~}||}}zw}|}|w{|}|y~|}y}|~}~|~~yz~w~w|{y|w}~~|{|}zz|~z}~|}|ww{||z||}}~||}~|}zy~|}z|}||zu~{w|w|ww||{wz|~|~~|}z|||||}~~|}~~~}~||~|}~|y|vv{||ww{|}|~~|~|w|}}{w{|{}|}{||w|~|ww|~~~~~||~}}yww}~~||{zz|}}~}~~|~||}}|||||zw|w|~|ww|~|~|~}}~||}z||wy~~{{|}|~}~~|~||zz||}||{w|~΀}y}|~|}|~}~}w|}|tw~|wz{{|}|w}|~~|~|}zvvw{{w||w|~}~~}~z~~||~~}~yw|yzw|~wz||{||w|~|~~|}}}}}|w}}|ywz||}z}|}||}wz|wwz}}z}|}{|~z}~|}{}|{|||{w}zzyz|}~|y~|||w||w}z||zz|}~}}~~|~~|~~}zy||~|~|z|~~}||}yz|z~||~~|}~~|w|~w~~~~|~|~~||~~}~~|zyz~~|}z|}}|}ywyww|z~}~~||~~}|~}}~|}~}}~~}~}||}~}}~z}||}}~||wzw||}~||~~}|~~||~~}~}||}~~||||}~zz}}z|~z|~~|}~~zwy}~}}|~~|~}z||wy||~~}||~}||}||~||}~zy||yy}}~~}}~zww|~~}~y|~}zz~}yzzww|y~~|~}||}~}}w~|~|~|}|z|zyy|~}}ywz|ww|~~z||zyz}}y{{w{~|~||~~||~zyz|~~y}}||~}}|zyzzw||wy~|z~zz~~}~|ywz||~y||{}}z|~~}~}||}~~|z}|yz||~}yw|zw~yy~|y~ˡ˭ү謭짯ŧӯʦ񩧯ޞ򦧬񬤧ީ묭婧ү誩ধ쬧ᦡެ⩧䧭򩪩ꧦ󪩧񩧧릧ݩ۩쬦橪͡𩪪ᩧ񬩦触ԩڧ짩񪩬Ǫϯǭߤꪯ尧㩤פ𡪤ܧ㪩ܡׯ󣡬੪ެ餧ө֤էય謧έԩ򯩩ͩߣ鉼ާͧ𩧪󤡧۩ΩڪЪ89:;;<=9::99898899779:99::99:998::<8698;;9:7788779:;9;;99;;8::9:;:;;9898799:;;::9:98:88:8698::8:889988:;;788:=<9;::98899:;:988768899:9899::988998:86:8898988::;;:99::9:978:;9789::989:98899889989;;9::9:8:98:78898879::9:9<:9::87688::;::98998899889878::8;;:87::9957898788:788:;;:889::88::9:9::98987876687<<;:9:;:876998827798788:899:9868::979<:9889::89:9987:8789::;:99:;:776:86858686698:9:;:998689::8789889:996899:988668:99:9:9789;86979686698:79::9:9898668;;:788789889:;;:99::98686698<<9::9:<:6689868::9767986889::8::987789889::99:98:8868::889::;989;;::;99889898:9889898899::8;:9866:;86998:8668:9877889988:9:98788:98898989::8:989879989889:9867679878:9989:988767789::9:9:99889768:9:;968998877:868988988:988788767789::9:;<998688:8:;9::668:98778;:8899878:;:88678878899:;998688<;::98868::99::99:9889;868:98898778788:;:7:8:97989:87::8:7766798648:86688669;868966:686837787679<=79>:9:9::8=89:88:;;86868:8868788569::8676866865676678::7:<88<<9::9:88:89:889::96878:7865567789569::8486683676789898<<77:;:;:8998989:9889898878668686898776:678768957868::889<<8897<=:88:;;9::898988978687996688966966867::8779::7;;:98:<::98 8:987886;87866887668565577656887:8689:9788::9::8::988989788986887788;76889866857658776677<867987788:;98898:996887867788789:7898898788959979887868:878;9:;869:9889878:9:688684:99:988:8898:7567656886878;:989:987699;9788;:987788:988987889:96466789986898668664698789985698:979887898988::868 898667664346766897389788798:98868898::8:98668767746776567668638868897988:9889 87898686568588766368866578689886:99:9788967889868868:8867764645688766768688786<;::97688986889:9876658868;764784464668676867768688989889:99::9889::9865886684237966868538:767786687998:98898789::98898789989;987678667787668647766885667798:66868;976788789868;:6889;988648:9664655778899::99:87:8976678987::989;:8:87889::98898276678 8988:99667998::8:8:878998987764798743667887667886898698768899898789:99889:9899887862488965676687668998786::8898899889899889:96887677898446498788987789988:889799;:98::98989:968876887664698466878657:88:8899::988::989:988997889898268976887876788766866:89987786689::99<88969889:966876676788678998679966898689:889:;:98998:7878879889:965566545688689688778868876899889988:978676898998898766798878:668876686787689978::9889868689899879:8678878988789668986466887789989::9889898898998899867667668898668866896446889::8998:99889:8898988987766567657789866899867889::9889:87689;88988688788689687886467889986886899878898799;:988:8898868898789856997886848988986689886689986:99::99:88:;99:8:7:9689:689867868=9896659<989:;668867878989:88<8668:;86878::8:6887:88668868976:8798879:7898:76358868<7868:99;89989679:;:796889876688689768668899886886896348868<:967986689:9778:8778::9887:87879886786686688688699887677687668878::9768898988:9887:988977868876876869887:9986566876789:766::8479989889:8879:8986798876686:6:9988:8866:;7688986688:98688768:88997898869:7996798876676996:898:9788569:768668868:8998:87::778896786:;889876676879969886::6688766765:9986996679::9889:8668:968;9498867:869889:988646::898439::98868:8868789987889:8679:8786686688788998986798688988766786656767689988968;<967:8686686647868:;:88998:8688:9989:886868789878989:;:876868668688::8798678998:88::88998:6876658898679::868::88798898:68988::878998668;;:9988767896678766988678788:97889:8:79:889968898766878:9989:887688:8788789669::88::688686899::9899887667:8997897899:686566799867889:88:9669:6675699::866:9887788778869:878869889989|~|||{{~~~~~~|}w~|~zz}}zz~~~~|~聃}|{~~~~}|}||y~|}}}~~||{}||~~}}~~|}}{w|}|~~~}}~~}|y||~}~}|~~~~{}{|~~}||}|}~~}~}z|}~}|z~Ԁ~~~~}zy|}~}|}}}}{||}{uz|~}z|}z||}||~|}~~򀁁}}{|{ww|{~}{w~}|pzz~|z}||~~~|y|~z~~}|}~||z|z|ׁ~~{{y|y|u|y}yy~|~~~|w}}z|||}~~~w|||ww|~~~~{}|w{~w|ww~|z~~||~|ww|z||{|}}||~~~}y}ww~|~~ww|~|y|~zwz~}w||~||{z{|||}~~ـ~~|||}y}}|~}~~~}|}~~||~~}|||}}||}}}~~Ձ|}}wy|w~~||yy}|{z|}~~|}~~|z|}||}|}|~|}~||}~|z~~|~||~~|yzyz~}z|~~}||~}||}|zw{{|~€}|}~zw|~~y|}|{{|y|~||~||}~}}{||}}|zw{{|~ヅ~|w}||~yw|~|{{||}~~}z|||wz||{||̃~|w}|~}|w|~~~~}|}~~|w|~}||}|{zz{||{|}}|{|{|~|z}{{yw{~|wt||ww||ww~|y}yyy|w|rz{|{wz{}}|~}}}w|y|||}ww|}|{||vw}w{w|wyw|wvwzww{}{||~~}||~}}~~y|z|z|wvvw{{|vw~|t}wyww}|rwzwz}|}{z}~~}~|~~|}}|~|~||}z|wwy||y}w||{{ww{|{w}~v{|w|||}|{||~}||~}~}||~z|w}{~ww|}~wy~ywyyw||w{|zz{~}~||}|}}~|z||w|{}yy}|{ww}vwvuz{wvw|}{|w|{||~|~||~|~z}}|~|y||zz||׃{y||}~|wyw|u{wv|{zwwz{{|w{|z{||~|}|~~|݀~~y|}z}wzz|}|z|~{|}}~|{||~v~{||{|}ww}|z}~|y~~||~|z|~w|}y|t~~~||}||}~~}|{vw{wvw||w|z|}}{w~{}|~|zz||~||}~}z||}~~ytyyz|~~~|y|~}ww|ywwty|z|~|vy}~{~|}|zz|}~~}||}~}||y}} |}wwzywwtrsyzww|zr|~{}}{~|~||}||y}}||}~}}|~|ywy||{w{{tyzzywwuwzwy|wr|}w|}|~{~||}~||}~~||}|}|zz|~|y|yvy|v||zyywrw||ywwv{|w|~||w~~~z||}~~wyz||}~~}||w||w}||yzzwtwtuw|}{ww{y|w|}{|w~zw}}||}~}y||}~~~~|zywv|}w}{wtz|ttwtyww}}ww{y|w{{w|w}}~}||}~}||}~~~~}}~~|wu|}wy}tprz~ww|w|vr|{wz{|ww|{~~}||́~||}~}z|~~}}~|z|~~|~~|zyz|ywzz|zwy|wtz{ww|}|vwwzz~}yw|w|zwz||z}~|w}y}||}}|~~||}||wt|~wwtwvvz{|}~~|z|~{ww{}}{~|~||z||~~}||}~~|}|}|p{wwyz|}||}|~||~~ww{~~||}}|z|~~}|}}~~|zzwtz~|ztqwyy{}|zwwz||y|~|y~|{y|}~~|~}z|~~~}||~~|~~}||z|wpt}}yvwzww|{ww||z|}|w}|}}~}}~~||}~}~~}}~~y}}|zyzz|~|stwt}{|}}|{z{}}|||~z~~~}~~}|~~|~~y|}}|zy||}zywsy~}tww|}|zz||wvz||}|~~}|~}~~||~~z||}||}~~||}|~|pw}~zw||{|{w{}}{ww}wyww}~~|{{|wy|~~~}}|}~y~||~~yww||{wwyzyz||yz}~~|wz~~ww|~|y|||}~~~}~~}z|z|}z~||~~yuvwwutuw}||y|~w||zz|}|w|}{y|||~~}}|~z}wzy|~|~~||}~~|zyywy{~}|}|z|wy|}zwy}w{|{y|~{}~||~|w|y|~|~~|z~|yz|}|{{|}|~||}|z|~yy|~|wtww||{{}|~~||~}||}|~||~|~~||~~|yzwyyww{yw||~}yy||ww}~ytty|}||}~~||}~~}||~}|~|~||~|zzwywvw{yuzz|~|wwyww|~~|w{|}||~}||~|zy}~}|~|}y|}||}|z|}|ww}~y|z|}|wwytwz|}~~|y||y|~~||{|}~|{~~~||}||~|}w|}||~}z}~|vw~{}||}|ww|t|~}|}~|wyywy}~||yw||w~~~~||~~}z~w|~y|~|w{|w}~}~yyu~~|~ww|}|y{|{|~}~|||yy}}w}z}|y||z}|ww||w|~{w|{~|}{~z|~}zwru|}y|z|w|~~}~~|~yz~z~w||~|zww||y|~{w}ww}|~~}}w}}y}~wrt||w|~yz~|wy}~~zz}|zz}~||z}z|z~}|}}y{|wy}yw||}|}y||w~~|}|{y{{w|zwy|}||}|z|~zy|}}~~}~||~|}z~|}~{{|w||{w|{w}y~||z~~}||wuwy|zyz}~zwy|tz~~}~||~}}z~|~}w{~||{ywyw|}wy~~|||}wy{w||~}ww||~|y||zw}}|~~z}~}|w~z~w{~||{ww{y~~w|~|~z}||vw~{w|yy||y}}~~}||}|zzz|}~yz|w|||{yw{w|{~~w}|wwy||{wy{wu~~|y~~wwz~~}||~|yy}~y|~t~||w{|y~||~~||}|wtw|~}tr~~}||w|||}w|z|~~|z||~}yz~}{|ww}ww||z|}~~}~|wz~|w|}|~||}|zyyz|wyyvw{wzy|~~||~w}~wz|y|ww|wwtz|y||}~~}||y||~~}||}~}}|yy|y|z|~}z|~}~}zy|y}yw|y|||z~}wz|~~|}}||~~}|}yy||{wwu}||~|yz~|y|}}{~|||w}~|||z|~~|yyw|~~||zyz}~wyy{|{ww~}||yz}z}}||{}}~|z~}}~~y|}~|zww|z}~~|~|}{y|}}|z||z|~wy~}}y||}w|w|~~~}~~}|zyyz}~~z|~z}~~€y|wuyy{~|wz||}~||~ww~wyw{{uw~~|yw~}|zz||zz}|y~|z|}}||y~||~|~맬嵩诰쭪ԭީ򭯯妵鯪ׯ㪯ͧ򪯭٭կ򪯪詧­㰳̰󧬠թΣաװݭ督 ڬ壡򧤤֡򩪩ܧΩ̯ުϡ觩ܤ𧡗㧩駪񭪩ũ۪쩪򪭪裧ࣦˡ觪檩짤𧪪¯Ф禣ݪަש䭪骯᧯çЩͩ𤣤ߣ㪭㩡­89878:89:3!!08468979:8:<;>9.(#.8:;<:9:1!!/8778868:9;<:;:4,"&>:988<::3%%2988986898:<89;:3')!m876788692%#08689889876989<=:2+''989:966:3#!/867878988689:;:<;.("/:877887;9;4#!/98864689:799<96:>:)*>67766788:794%#/79:63688:998::7:;=3+)g9:97678896:8,*289;868989:858:9:98?0*#$6887688788:;89989978::88<::;<8:9:,&".68897998::6689::988::<988;6,&(^977889::899899:88::766898::9:9:;9:2*&&:66877898:9::897976886::8::<=799.&%>:6676688:9::8977876799886::89:8::>6*)y946746889:88:868988984997::89:87<::90'"+868846:78:88:966789:98::8998:9:8:7898-,!L869847:76:9::9:8:8788768:;998:9::76;8>7')<:86678969:6696::6796679;979:88?:8:<;:<.&:8678869;88:89:68:889:8789898679::;=6($p87869;9:;98:88:9:8::88:68::9:;>0+8:86689:978:9:;98;9889:8:989868:8:<:8899;;-*#]865568;<:8898::99;9878:8:99:9679688679:8:B0,!076689::9889:88:7:9::9889868;;9>97-&&m8788789987:98:798::9::8;;::;:<6?6'#/766789979::96<;9:798998;=9::9:<:;=+,#r689::98989:8898869::869:988998:99:98;;9;4**(89::988:;:99788:98978 8:9;:97.'%l ;:889::98:;::89:<98:868899878:9;98:9798;;9;4'#. ;9889::89:9:;::;8798899::99:;6:98;:8<:;<;>;,%"8:;;:8:88989:9<9:88;:99:6:98;:8<;8<<>>3)%48789::97899:96;89988<:889:988;98:97:<69;;<7-( :86678:;988996:8:9898:998878:;;87::;:3)">688998;889:889<98:889::89:98899::9;<8;<:;8*,%98::9:;:99::9:868779<;88::78;;98:;<8<=9>>0&![89::9989::96:;::99;768;:88:;;:9;9>?<@>5&%189::998789:9488988:878:978:<;6/.6;:9;9;<;=9<.*"9:889:8878:89988::998898:90$"0<=:<8899;8:7)%>8:889868:88989:8::87::989:993&!/;;:;99:;=;;()&6988:968:68:89:96886788<99:;7+#+8:8::?<.'#r69769868:66978;97::988;889:8-!&4:89::89=;6'(58:868757:46868;:798786468876770"#09:9:;::;?=C<*' 876657;69856:<:99876:;8988:9:8:8&"/>899::;:>:;2("B779:96567889::967789:8988::97:;)"*889::=<;7'$2989:8677:668::97889:89869::8::* '4:989::;;<;<)%$:98866:885667667789::9:8488:9:9."%2::99:<<9:;>/% ^68897782&)488;:97789:8:8468679:4&#.:9899;;9<6&$2688:877- %497:76887668879868958987*$,788:<:;*)$7969889+ "2869795678898876996885:86:*#(6889::<::;2)#a686::*! 08786:56789887986996672897=-!"79::99:;8<8;;:((288799.!$2686698898778988646988989/)!2;9899<97:;<>:0&&88798."16977898778:9986797798;0("0:7788;8:;;:1&&o899788."169898788998899887886887<2($.98788;9;:;;:<6*&599788."#278797689989766788667876:3&&.:98:9;::9<:-&&9988689.##38879678998899668766866:3$$+:98:898::8:;.' 987769:.!#3:97:78988989876689;5#!'77:77:7::<2)!E87669:.!"5;97:8:987899889889768::6%!$567:778:6::>8*$,86566::.!#6;97:7::868:9878876886:68:86'#"568;889;=7:;9=:*&"6689982 "499:;59966878;;8867989887)!&3=787:;97;;9;/%"l67688771"5:99<86768:87:97886787877878+#$2<89897:8;::9;5'#>67786781"#5;:9;9668:88988798668;.&$1:78898:8;99:9;7*&,66897792'#3:;9:686678:8899698;1&$0;776;:99:9898:5-)$679;7890::79697668:78998977698<2%"0>:86:899:9897860("98:;899,""4;9599787688688689698;2#%1>:65:88:97978:3$!C96898::+!#6;86:9968987887998866989697:2!'1<756:88:76878;7&!084477<;,$$6;9796967867998;:9987:88597:2!$-9778<688965889:9+!*}|}}{|}~qJJk}tw}~z~}~fXMf}|}~mJJi}{{}|w}~sbLT|}}||߅qRRo|}~|y}}}rW\J|{wz|}}|y~pRNk}w|~}|~}zy|p_VV|}ywqMJh|wz|z|~}|w}gYLiׁ}{z||ztMJi|}wtw}~{~~w\^Bw{zww{}}ztSNh{wrw|}|zq_[A{w{||y}a]p||w|||u}|k]NOw|}zy||z|}|}~~}~~z|||}bTLgy||~z~~|yy|~~}|~||waUY~zz||}~|~~|~~||zww|~|~~o]TTww|zz}~}~|~z~zy||}|}y|z~~gUSwwzww||؀~}~zz|zwz~~|}|y|~}w^\C~twztw}|~}}|}y}~||~|t~~z|~|z~kVL`|w||tyz}}}݁~wwz|~~|}~~|~|{}}caI|w~|szzy~~||z}}zy|~~}~zy}{V[D|wwz|~y~wy~ywz~wwz~~z~|||fTB}|y{||}}y~|}|~y|||~}z}~}~|wz~yXOA|{|}|}y~~~||}~}||y}~j`C|}ww|~~z}~~|~}}~}~}~}y||}}~~e]M|yuuw}||~}~~~|z||~~~yz~y}}yz~|jaIkzyww|~~}}~|}||z~~|}|}~|y}~{cTT|{||z}~~|z~}z~}~}wyWMhzyw{|~~z~~~y~z~|~~}~~_aMy|~~|~|~||~||w~}y~~||~~|~~|t^]X}~~|}|~~z||~}~z|}}|}|}}~zfVR ||~~||~~||y|}~~|z}~}~z}tVMf ǃ~||~}~~}z~|}~~~~y~||aRK|逄|||~|~~~}|}|~~y~|||q[St}|z|~~z|~~~y}~~}||}||~~}}~}~{w{eYH}ywz}~||~~w}~}~|~~}}z{{}|zr\Ky|}~~}}||~||~~}||~}|~~}}~~|}]bS~}~~~~}y|zz~||{|~||~kUJ}||}~~~|~~y~~zy}||~~vTSm}|~~~|z|~~t|}|~|||z}~z|whgw~~~g]L~}|}||~}||z}}~~||~~}|}~~|}~kOKj}}~~|z[R|}|~|w|||~|~}|z~~}~~rTJh~~X[Uw~||~w}w||~~w}|yz|}~~z`N`|}fVMw~{w|w|wy~z|~z~}|}}}||eJTs}~}|~wWXv||w}{u{tw|w|z~|z|ytw||zyz{jLNk~]VH}zywwvzw|vw}|{zw}~}|~|}TKh}~ŃoXLz{~yvyz|}yzz{||}~|~}|~{[L^|}}zVOo~}|yz{ww|~{}}||~}~}y~}^HVt~}~[RO~||ww}}vwyy{ywzz{{||}~|t||~fKRp~~iRGw||~{z}pT[s|}~{{|~}|ty|w{tTNg~}~yTQpw}|}{{cGRt~{{y}}|zww||z~}w|~v|~|{]Oa{||}][Q{~y||~`GKo|w~{~uwz|}}}|zw~~w|}v}w^MYy|}||~p\Nw|w^JHk}z}wvw{}}|z~|w~~wyzp}{eILz~~||YYp||}}z~fIOpy}ww~||~}zz|~}}|wtw~}}~|i[Jp~}~~{jTT|}}z~}fDKmw~z{{}||~}zz}~~|wz~zz~}kYKj{{}}}mUT|~~z}}fEKlw~|}z|}~~||~~||}|z||y}}{pXQg|z}}~y]Tv~~z}}fLNoz}{~zy|~~|~zwwz||ywz}zwqUTf~|~~eTT~~}}w}fMNq}}z~yz|~~}}~~ywwy||zww|ywrQO`~||}}fVH~}{{w~fJMr~{{|~}||~~}||}~}zww|vMJWz{zz{z{p[I|{wywfIKv{}~|z|~~||~}||~~zzw}wRJOvwzzz{|w}]Ob|wuwwfIMwz{|w|~|z}|zy||yw||yVNLuy}}|~{~]UKww}~~|oGKs~u~~ww|z|||wz~|~||z{\JTrz|z~{iSLwzw}|{zlEKv}wzy|}z{||wz}{|{z|{}`MOo}|~z|~uVNwz{}wz|mKMv~ww|}|~}|}}z{~|yy}|fTQlz|||}~{]Ubwy|z{oVNr~y|ywyzz||}~~wyw}mTOj{{y~~}}ve\Oyz{|jUNq{w~zww|{}~~}~z{w}oRKk}w}~~~|~z}wjXK~}|~bLLs~u~zz|zy||w|}||yy}|~w}oMRmyv|}}~{~z|rQJ~y|}`IMw}w~w|~|z||z~||yy~}~wzoIVl{vw}}{y}{}zTIk|tt{zbOQw~zy~wz}yz~~}~~|{|}vzoIOe{z|y}}yv}|~~`J]שddwhשddgq߳nnv|d᧣njttܩhdygׯhd|YסpjzXج}}jkѡqg浪ﯵsyة}qq쭡詧spڭ|[᧯tgݯb姡쩯tz\٤qY󣪰誯wkX멧榣[ԧ}hЧb୧qq৤vh򵲪h㣧𭬧}w骭򭯬tn ٧th ʰne 魲飯zpѪya褦|eժ}pөsd駪qp̪}gʪkezn 秭橪qdwzs硪jth硪槬dqvw积椣gj}ta賓穧qeŰwgzgtk骯atznkenn_qzǪqjqm_n뤡}k}zm_ehy|jádabgyybkΪzdqqꤪ\eꧡyesq^ewm}qgjsqqqhjmkta窩dhީhdvzb̧bendk}kbhtjg}se驪_e椦|dqpg̡^ehk媲tjeh򧭩ȩqm}stj͡qk|ksjnewegghnmdbhbtqbkmbkd} !!X"#$$q%&&'((%))*++K,,--X..C//\ 001 1 2 2 2 3 3 4 4 4C5 5 6666777888O999::::\;;;;<<<    ,',8:79899768:=91&$/;9798$).:;89987766;;6$!,987:9$&/;<9<;::75896(#,77678"`"$2<;:<<:78:98897.&,68677;#'6>::988:9:96.&(38899 0")8<9:998:9::9:96.$%07889,)*::8;::;669::;:2&$0766#$&.<;8;99;67;=:9:83'%18877&&2:<::898:88::886($*775m #3;;::9:9:99::9:9+$(5787L!&6;::;::99:;.%&4878;&*:<99;::98899:2&%3977 1&';<8898:8::99::98:6(%/88!+&(=;8998:8::8;8+$)689().<:9::9<9::9:9-$%399%(1;::<;:>:9:988::989/'$287 !+/;::=>8:;:8898:88&'*9:"))::<;;89:989:8($)68a$*)4:<;:;=;889:<:987:7+"'06 B&++0<=;;:<::99:8:72%'-6;((&,<<:<9:;<:8878::<99,)+84'%#(7:9<;:>;99:8779898:/''2,('$*3;;::99;99:977968970&$,(*+&*.:<8;;:<:9:978<7:<83)&(.&(,')9:;8;9<89968:69:756-"'.+,/'(6::9<8:968:6799:<1"$#*/6&'2;:<::9::79:7;78:;4)&*2=(&-;9<9::9::8::7:68:;:0'!*0<*&)::<::998::8:7:88<4'#&.:/&'6::;:998:8;9;76=6*"&2>3&&4<8;:8988:978<;:>7,~$2=7'&2=7=:89878::988:9:<95N '6;:.+'7<:7<8899;;8:88::8:5 Q!)8<:0)'5;:8;8899687699787I'6::4((0:;987899::877699579 T")8<:8()-8;:889::9:8::56:K'59::+)*6::988778:<8::67; T")6;:;0()39:898676688978869:O!'59:;4%&.79687688988677:8 T!(69::6"#,698:98::89::7768;56&(6<>::*&*5:9:988986989889781%(7;<::6;98699-$&29:988:988986"$*:99:987:;2&%0::877:988987y!'.97:988:<5*%.889889976889H#)4988989::7-%*6699788687795%'5<:598:;::8.&*559:875889868*&-:8>;9987:<:5#&(7798868898797$"+85:788788'&'6988778798797{#$2=7=::8899:;-&&2;88689789788?!%6<6<9<979::3&&.;7869:78:7880"&7;6;8:76898776(&*98879:78:789)',;;:;:78876789-&'3998:79:67:!(-;9:8:8::8789::2'%-:896:89;66:X(.:7;6988756998;6*$):79598:;56;bWa|{}{y|~mUOiz~|O[g}~~|{zwyyOJb~|zOTi{v|~yYMazzw{}"LQp{}|}{fUaw|w{{NWy}||yfTYr|| kL\}~}~wgQSk{|}~a[]}yw~oTQk{yy#OUf}~wz}rWSl}|zzTTp}~|}}}||yXO]{{zvGMr~~~_OYv{|zJUy~~gSTs}{|T^~~}}~~pUSq~{z lTW}}~}}~~~|wYRh||!_UX}~}|||_O\w}Y\f~eQRr~~RYm~~|}~|~iVOp}z I_i}}||}||TV]K[\}|򀁁|~|XQ\y|O]\t}}}zz`LWkw T``k|zoRWeyXXUa}}|{|~~a[`}sVSMXz~}zz}}hWWpaXVO]r~z{w}~zkUQaY]`T]f}{}z|q[TXfUYaV[~}}w|w~{vwcKWf_bhVYy}w}w{~lLOM]iwUVo{z{|t\TC]pXUe|{w}jVJ]k^U[}|z||tVMUfhTVy}}zyy]KTorUUs}}}||{|zbBOpzVToz}|z|}|vHWyg_Wzz}||}|}v J[|k\Vu}}}w|zwz}{EWwtXXk~|{||z{wvz K\||X[e}||}|uwEVu~_[^y}|{{|}w{ L[yjX[q~||wzww|}z|}wIWu~sRTgzw|zw}}|}}wzz{| JXwyKNaw}}|{zw|vwTYw^T]u|||w|}}z|lSX{iTTj||}{|||{zzbSX}y[S_|||}}{w||z|wwWT]~~cW[y}||{|{v|KO`}}{jUTq||zzuJOf}{lNMh}}|}z{vLSp}vST_}||{}||{}z|KLo^\\wuw|uu|wIQp{woNTkw|}}}{}}||uAWw~{~qRRm~|zwz||{|}zbC^}|{wXMc||{w~}{{}{XL]y}ycQUo|}|||wLQ]~~~|zoUSk}{{|||{JVg~{||u]Rf|}~||{w||N\s}|~}{cS^ww~~~{}|w|{{vRWvv~}|gU]uu~}zu|}||w|]Tc||{vNTX{z~}|w||}{{OL`}u{||{|}}WTWw}}zz}{}{{MQoz}}큃eTUp||w|{}{}|JRwy~zqTTf{|y{}{|}jLT{y}{w||z{wYT]~}}{{}{|[Va{}}{w{}~cTVr~~|{wzIXe|}}{|oWSe|~w|wwAXf{w~}}zvw|w]Q[{v|vwvsk kzkdkq򦠧yh$gmsjvqy g|mp z}qm#ksvp!qqwk}"_hkydspqqsp qvyn!swk|y|mnnytk bqt}ez|򭯯wm|k}|gv qnv"wwsztphwvv!wtk}smy}q}zqwsytzev!󉀅tygkh}st|q[}wstd}sz󩯯thsqt}eqssYktqavv!dz|t^vww!e|wz^tz񬩧!gzwzbvnq!dwejqyq}pwqq pwzp vq}vzeksqdkjhgppq eg||bmjqXvnn[whwg}msgm}spdt}nj|pnvs}}qjqwkgvqvhmqsdnqqgqyq}ztqtbwvpXw}mz&&&%%%%%%$X$$$$$$$$#############"""""""""""""""""!!!!! %    68878996568767955878:8::-&+756:786897856687678668966:6696989667767899667887798688989>0&)69865757766586788668986896488968897665689866799887988978;/$%4;:679788798977886679646:989988476867766788767887887988:898."#1::8576886879768867;8689977:8868687877878667877877988:88:0#$.8765778868786689889889988;9:8:8988778878976778988988978<3&&/:97798::8:887789889668:99::9798:786866768:9878897877878:6*&-::87867868788988989988988687:67675568<:889:9898675688:9:.')686::7788:99899867986688:;9:8:9<9:96865::7548797:8::8898:;:89."'4:89:8:6878868:878766788689778::9:663,(/6797:8868988:866-!'2988:8:78678689868778:8688784+&*3788:76678778687/%)298899:8866878976889988989:98:86*%&2778:766878:93'(/889:88778788768998:988:86846)$$297996688974&%)578898898767868:889:98865639.Å:868::889:9:876'$&498787889:886688:7789876889:9866258967::.&%69>59889878("%99:76656696698696556788778678687.:7;967:;3$$-8:5889878+#$7::779887988:979877867688787*68;8568;7$%&68688767889/::988746788698868788786*37:968688+%%4:78877877679894'!08:8877668998869877889978788675(/6:9796782%'-:988776778689887)!*698988676898878766789978688687#)5::7979:7'087667878:88*!)9:9:87566767765678867578799#%29:7:97:9/$,7889887788:87:*"'::9:8747988:97966788767688798)$-587:75<97% (788::8877:89879*# 588:9:65976:85877677678788675-%'4:87889;7,"%2:;7:86979:76682#$09:88998876887757966861#%3986676782%!*8;886996856695&%.896789:9887678877876897665756#!-696676596)!&3:9787997768686'$*6766988767899887878776686:)!%2:7889799-%&-69788788778676*#&376748:9877867877977685:2%!.:788:7883,$&187886696890#!07784998876787667769:88767477*!,6766968983"#+6878667687784$ ,698687787867679887967:-%&.977488:7%"'49676679688676'!(6:7789887557887788758788:89:.'!(;9866:78;,"%39678759679779*"'6:78877876899889877:88786698,!%3;56678&#,5:68798559976.!#.97865898776965688779886783578/#".:658967:8*$)0:8:88988988:2#!,87768876688679987788768866795(!*676::67:73)%)6786688676696&)98688657998579:867887886:78:/#&0669855866+""2797886688668)&79697787898688768::998776;77:5'"(4996656771&-6:8::88::898- %5:696899887698788789::988767:6586,"!19968658:6/#'0897998988:71"#0:7889:867887689889879776791&,588768774($(6<8986876874&"*996998668998778988987866:6:98:6) (/6877688,! 0:<:86996586*!&7:598767998987768::87855859979:2&+*7;995;;674%!.8;75:956479*#28678:89;::87668::8866776689;96784,&'18977:6697+"'.9868868669/"#.9967988:8899866886767889::862&).8968837:92'!&48767788484%#*9:88:88977::8668778644688987&$*5989:5889/$$/8;8899;576'$&78:9:889899:988766898668:867679<,$.7:577967;5'"&3;8669578,%#48:897798:9889867689866897798#")6>448857<8,#!,7965465::4&!/::886677::878:976876875456679:965:+$&1<;98679::3)%(4::8:5;::*")8:886698789:8668668::966799692'$)4;8869:8<;2%"-699775:6<,%$4<9:8868668:9868:7668@77568798:4-"&.739::96:7:)"&5<87=66;<2&$*9:8899:68986689889889K78578787862'#(5:789:6:792($-677:669;4&")8:7788:9899889988988B8868878687:-"#0>879<8:988-$%/8:8867;7)"&3987968:7898899889887878878788<2%"*8:78:699882(#*59688:/%%.9:9:77989988::988m7879989879<6*##/;9683788:80&$-688:89:5*")8;9:87789988::8n788998:959::1&!'9<88589::;5( &2;799899.!'598879989::97?898988:9596=7+%$1;8::;::897.$"-98799::2#%/598686899889:9:7C8:8987:9691<;2*#'659:;866895*!&/:79;;<5&"*2;;66589988998:7=w|}|{}wvw|{w{vu|{}}cU_zuwz}w|~z|vywy|zwz}wwy}~wwyy~w~|~ww{{wz|ww{}|{{|w}|||jT[y|wvzuzzwyu|yz||wy|~|w|~wt|}|~w}|~zwwvw|}ww{||}}{||{}hORtwz~{}}z~}~zz||ywz~ysw~|~~||szw|y{zww{||zwz}}|{}|z||||fKMl|u{w||w|{~zy|}|yz}w|~~zz|}w|w}z|{z{||{|ww{|z{}{z}}|}kNOg|{wu{z}}y|{}yy|~||~||~~||~||~||{z||{|zwz{{|}|}|z|qTTi~{z||}|zz}~||~ww}~~~z~|z|y|wwzw||z|}||{}{z}{}w]Ue}{}w{|y|z}||~}||~~|~~||~||w|zwzwzvuuvw}||}}w{vw}}gV\w|wz{||~~}~~}yz~|wy||~|~~~w}wvzus|{{||}~}}~fLWt}|w}z}|w||z|zww{|}}y}~zz}ywyqbXiw{~{|}|y|~|}|wwcJWp~}}}{|w{}y|~|y|z{{||}|y||{z|}t_T]r{}}zywwz|zz|y|{iS[p}|||ww}z|~zw||}}~|}~~~|}w^STo{{}zwwy||zz||rVYh|}|}|{{|z||zw|~}}|}}~}||}y}tw\OQo~zyy}}||}~{sUS\v{|}}}||zyz|y|||}~}||}wvwqfUNmz|w|}|~~}{wWQTt|{}{}|||wy||{{zz{|}}zy|}}~}ywpiVLk~{yw||}}{|]QOrww}w}w}|~|ww~|y}|{zz{|~||ywyyzwolUIg}{wu~~yzzyyz~]LGjyvv|w|vzw~ww~|wz||{{|}z||yyz|vq|vTO\wy|}{|}|~}|~{wRR\w|}||}|wz|~yww||~~|wy~~wy~|y}|wv}|^LSp}|~|~~|{{zuNT`{~~|z||w|yz}z}~wwyzwtw|yzww|zw|{|{|z~iLGe}{}}||~~}}wRQ]}~~}zy|{z}yy|z~}||~~}~y~}|}||y}{{tR@]{~}{w|}~~}~}{YQ_~}zwwy{|~~}}|zz}||~}|}||y|wv}y[CY~|z|}~||}|}||bLUy{yww{|~~}|yw~||}|yw|~ytw|zzzwu|{iKTu|z|z}~||~}{wiHKiywvwwyz||~|z~}~}}|z|}|ww|zwy~~zz{y~}tROgsv~|~~||~vutqNQfzww||zz|y~|w~wywwywyw|~zy}}{{|~}}yUJ`~w~}|}z|ywUS_{y{~~|w{w~}y~|~~||}ztz~wttyv}~y{fTSwv}|}}|z{||YKS~zyyvyyyw~|wwvvw{||{z|w{|w}{g{~wzqOQc}u}||}}|zz{{}_NQz{{~|}z~}|~{|zz|w{w||{}{]y}}vy}zQRTy|w||}|{y{}}hTMv~}}|{twz|}|ww}||}|w|z}}z|w]qz~y|w|}_SSs{||{{|{{w{~}~sWJk}|}{zywy|~~}|w|{{|}{}{}|w{vXhw~{~w{}oSVc}|{zwz{|w|}}z[J^y~|~}}yzy|~||z|zww{|z|w||w|{N[v{{~zVTNs|}}|{ww{|z|}}]J\~}{uwyyzwzzwvwz||w{v{|{NRo~z~{~hOEbz|}}|{{||}z^KV|zsz}|~{ww{||{w{w||{|[Oeu}z{v{RHXz|}}|{z|}z]MHu||~wv~zw}v|zzwz{{zw{}{}|w{veRVt|z}|{bLRo{}w~{~{yy}oNQk~}|||}|zw||zz{zv{ww|wlMRq~}yy{wz|oRJ^}}}y~y|vyy~vTRg}~y{}~}||{zwz||{z|{w|zwwv{uwMJewyy{wv~y[ITq~{}{~~{{y|y|wWQ^w{wyw}|zw{||}|zz||zz}zzww|w\JSo{}|z~eSTcy~{}}{}}{z}y{y^NTrzw{t}|zz{{|w{|z{{{zw|voRIgz}|{}}qbQUl|{||ww~y|kMJjz{|t~}||{zw{|{wwz{w}|zwzs{z]Jaw{yyw|~}qLM_w}{|wwzw}{{}sOGay|w}zz|}}|{z||ww{{wz||{w{eRUg~{zzt}}{SKVt~w{yw{y|}wzwWIYyzz}}||{vu{|}{{||zu|z|}}|fVJY|ywz|aLRq~w{|zvwz{{]KVwz|}{{|{w|}|}{{|}|{}wy|bISquwwz}TMauy}z}vv~{wfIMfz}wv|}{zzwwuw||{z|}|w{|rv{|iNLgyv|y{}]O[j}}|||~}|oMJb}{{y||{ww|}|ww{|zz}||{w|}wyz~uYJ]w{wwz{q\R\y{|ww||y{yy~wTE\~}w}}|wuz|vz}wz}}||z|}w{}hNTjwy}vv|yw_LKo{{|}ww||ww|\BUzwz{|{||w||}{w|~|{{wzzuWLXt~wwvw{zlUEcw}||}~}eGSuyw|||{w|z||{|~||zw{yv}yaLIl~w|wv}yiMWj}~{~|~}}zlLNj{}||wz||}zw|}||~||z{{w{~mTDbu}||{y|{ztYQYw|~|y|{y|{sUK]~w|ww||zz||| ~|{|www~|w\HXiy|zz{w}|}aJGj|y~wu|y]JT{v|zw{||z{zw|}{|vv}v~~z~oT`]zuw{tSJf}{vuws{~]DMo}yz|}~|zww|||ywzzwy|w{}taTWl|~{{yw~{_LVg|w}}w|ywiKMf~yz~||||~~}yy||yzyz}}|~||}woU\g|~w}}q{pWJTt}zwz{}|t}tSN]||||~zz}ywyw|zz|wttw|}}~}{UO]v|~u}}|~hOOh}||~uzwWOTz|~||~|~~~}||zyy|~|wy||yzwzbDOg{v{{wzuWLUq}yww~v{|bRMs|}~zz~}~}|}~~|wzy|~|yy|~zz{z{~|NK\wts}|v{|aNJbz~yvsyvtUJh||wwzz|z}~zw}zy|zvtvwwz~yu_OTl|yz~r\SYs[|u]L[|||ywyw~}z|~|ww}yw|~ywwz~~ypWQ[s}}w}oRLcy~zzvwbROt~}||w|ww|~|y|zwy}~z{uw|{|scLTfzr~w{[KTv}{wyoTO^~}}~w}~}yy|~||}|{|v{|z}z}wpWMXu{|~wz~pXQcw{{ww~sTK\|{{||~|~~||~~||}||}w||z|w|{cKNj}z~|~}|cORi|||wzz\KUr|{~w|z}~}}~~}|}|{}{}}{}z}}oSL]}{|w~}|oXN]vy}}|iSRf~{z~|~~}}~||z|{||{~w^NNh~w|rz}}}jTQew|}}~v]K\|}{z}~~||}||z}||v~lTJW|}v}uYHTp{~|~fIVv|}|}z~~|~{~||}|vwz_SQl}|~{fQLc~}{~~pNShu~}y}y}~~||~~{~}}}{ymo]NVwv~|yw}v^JTh{uTL]owyv|~~}}~~|{|sqzknäeh٦jkĦqq}st|gvţwdvϤq}pzǩpqty|km覛sp|ԡsjvmqtg}mkϤsb}g_qk|nn|gpjqg_ةnm}nV}媩ymߣz[ygseqaeǧnkjmsdsp룻qpyepkmjm硦}mnq㧦qh䧡}ppvdwptzdӤjztqj}d|ࡦjnk^魩etzknaw}hantgnjm󧤡맡hnndqnhdzbqvm|dppqjqަnbms𪣧hd֦}dgh𤡩k_𧩩ҦnspetvbyĦtdygn}et䦡bpqhbhjg}kzhdyd}|n|q^|ˤjqge|Ysvgws^_pgbhvgjɬq\ymyse} |awd_}dqq}pd}\hqvgtehs|vdqpj}Ωsk}kkvkq\kvgsnhje|jdsdkq|py[}gzvmzngnkgqzeqqkvhwwmqe|ejkn|espg}wj}pnjjqm}e|qdvyaqbtpmmgjp}jtdqqg}65457866769868968998768668686766349W 65688678698688788766866876688789868U 6778767868868876678766776897889768@ 7877686886988766788778877896997646:8z 87668686887988688;:9878;69 9887667868788798898689989988988::8669N 8679698876978899878879:889:9686699646:8] 897898:887686789866788::889::8:96887;9I697589889879868848:8669968998:98;68768878877889886688689688779889679:9876687676766887678998668868:9779:869:98646796766~676687668899669:88:96889:868898877878768877668668766887:869989988:9898788788678668876788:87877::789889:9::;89878867:98879:8878876:8898688:98:98846:;;:8878779867;99 98988::886;87866899:;9696688788:897C87886897689867988768988988984768:86697::6=N898668878::86679986889:966778986966886468:97787{89889889878469988:88789889::;:988998689779658=U68898868:6788678:78877898898678767887966:7598;9_6788678:9876678846778::9778867678869759869899898Wr688788768 86787886877899:868::86598589886788996:68987887678788678878987764866889668:96698679877688985979988786687678669;77667887<:8::9868;<:8:889878869898873766868996676469798867:8896;889988647648988;88976884798:697886686867667867688668858:56:78988689767866756876778979:8:8:886768868747788667768846:66746889:86786696897798476876889668788778863779965768766985798::867678867887;88679889889:86689867668974668866889868:768668866876786689897885675:9889::866867668986767867876:8788766987886898669:889597868:89766778866876898867766764:88689<::84889868:978::9::798:99:9:646789966886887885566897586:926<426886288:98:<::99857966:978698668644868867988:7:88495464466898:;:82889::99899878898588988:8669788689668587858566566886798:88:876899:898:869:8678646887688778698;944667988688966789986789::7868768:87886799876675879856766897798997866567898877889988786775786678998766466858687899646678788;:9877877688768:88:77964667898876488:687987886679798::8:89887:8766787:78:77889878998688465766766766:8:9;;88477899889877886956:77998878::98:9:565884378968989878::988689:99887:67;99=8898669:88:94:58878779668:98779768869689986679987789677889986897889685873569866898768:868757788998789877 8678866889988688568;87688778:8797579878998778876788987787678878998768877968779878:8766875788:988668867689765877889:5779899866989:97667887688:9776787885688789989:67787889:97689:988989987789867886:9679867978:7788789988977989:9886788969:867884:848:965737<8638789976677667:9887698878 876787886786676674668989889698977868:9:7567:6878:8768767899:GFF6788766768:678988688978687898987988989788986698778Axuxuut66878:899868688:898788:788987986788l9866:9889689889:87:89778788788684GN=69987789:678878:8989:7798:86779887897:f78899889877898989:8877:9887:77978:7:p<<8798898898788:8988:8898:87:78:6: d8:87899:98987989<997798:87:78:5: ݑF789768;878976889:976788:97568: ND::8:;87878899877689877蟠u<866778;88668898678875776689876688988786NS689:876799867887C:9766788986$r88687886+a6886787wutv{|yyzw~}w}~w|~~|zy|wwy||wy|yzwwrt~ wywvw||yz|y~}w}}z|}|zyy|yww|{wy}||z|~|w| y{zz{|{wz|y}|w}||zwwz|zyyzzy|~z||~zw|~ {|{{ywy|y}|y~}}|zyyz||zz||zz|~w~~zwtw| }||zywy|w|y||z~}}|w|}}||}}|~|z|w~ ~||zywz}w}z||z~||}~~}||y|~~}~~}|~}||yw~| }||w{y~||zy~z|}~~|z||z~}}~~w|yw~~wty| |}{||}|zw|wz|~|ywz||}|~|~y|}||z~~y~zv|~||~|z~}y||t||wy~~y|~~|~}~y}zw||z||zz|}~}|yy}}y|~y|}zz~||~wz~~|zyw|zwzwyww{ww||zyz|~~}wy}}y|~zz~|w~~|wtwz~wzwwywyww{yww}|zyy|}~~wy~||~y||~|w||}~}|zz|z}zw||z{ww|ywy}|zyy|}}z||}|y~~|~~||}~~}~|z}|z}|w{|yy||zyz||}||z|zzz}~}||~~~|~|z}|wz󉎎~|}}z~||z||zy|}~|y||}~}~|}ty}|z}zz~}yz} ~}~}|||yw|z|yy}~~~y~wy||}z}||||~{y|z|}|ww|~zy}~|yz~}||zw|}|}}|}||}~|tzw|}ww~zwx|~}yy||z||wwz~~|w|}||wyzz|~}w~ww||wtw|{{|{|}~}||~||}~~|z|sw~~}|}|}}{z|}|~~|}~~|y}{{wu||y||}||}~}||yy|wz||yz}z||z{}}|}~~}|wz|zyz||{wwzu}~wz||}|ywz}~}zyyz||swzz|zz||wyzzyz||wzv}w|||~w||z||zy||}||yww{|{|}|w|zz}~~|y}|wv|v|||wz||wy}~|z||zwz|z|}|yyz||z|}|zz{ws|ww|}||}~ww}~ww}w{}{zw}||vz~~||z|yww}}zwz|yww~zzwwz}}{}~~|w|}}}|{||w|||zq{ywy|y|~~ywzwty~z||w{zz|}~w}|~~||}ytzwt|~|||}~{w|}||tz~}y~z||ww|y|yzywz|wzw||ww}}v}vw{|~||wy||~zwz|ww{vy}zw{z|~z~}}||wzw||yw|zs{{}}ww{{w}}tyywwyztw||~|wz|ww~y|~{{~|tzy|zw||~yywy}z||zz||yr{{wvzw}zwy~|v{~}|yzwz}|wz||z}}wz~}|}}~}|~|wwyw|~|yzyy|~ztww||ww}|~|w|zw|yw|}yy|zwz|yw|~|~z||vw{v~}|~|wwyy|}wwzyw}~|wzw{|wz|{w|z}||zwwy~|z|}|w|~|yy~|}~v~z|y|}~zwwzz||ww|zw}~||}wzzww{wt}||w|~||t||~}y}~{|z~|~~~wswz|~~ww}|w|}z||vvww|{v|y~pwspw|}}yp||~|~~|v{~yww~z|w~|wy|yst}y|}|wwz~||{||s~utwttww}~||p||}||~}~~}z|||v||~|}|ww~z|}|yw|~ww|v|z|v|uwywvyw}|wz~}||}}|Հ}zy|~~||}w|yz|ytw||}}|zy|}{z}w}tsww{~||}w|}|~ywwz|}||yz|~{|w|{w||z|}|wz~~}|zyyw{u|{|uwzww|~{z~|~~z|ywvw{}}|zz|}~~}|z|wz{vz}ywyzz|~~|zwwtww|v|w}{|~wtwywz}z}}||{{|{zw}}|{zw||}z{wtwwz|~}||zwt}}w}z|{}|wwz~z~}}}}||{z}{wwz|{z|{z}}|}~~|z|~~|w||}swu{ww{ywzwy|~||tz{|}}}zz|}wvwzz~}||}|z}~|uwv}||}||tq{}~y|~|~|{}}||y|~||{w{||}~|wy~}}||~su||{}zzww||zzzw}|ww|~~|yyz~~}{{}wz{|}|}|wy}~z||~w|u|zruw}ww|~}zy||w}zu{z||~~|{}~}{z{||}||}||yz}|wy||~~||w}|vw||zw||zz{||z{vz~|z|~~}z{|}}|{zzwz|}||~|zz|zwz||z||zy||z{~w|{{}z}}zyyw}|}}||{{v{}}||}~}|yy||}||ywwzzw}zwv|zz}}|~vzz{|~~|wwy~}}||}}{ww{|}|zy||~zzwz}{||uw||z|~~}~wz{{||{|}~~zy|~~}}|}~~||zz{z}~|yz||w~wz~|w{z}z{||{|~~}|~{{z~}~~}}|w{||}}w~|yz||t}t|~yvzq{}wr}{|~~{yy{zww{~||}}zw~||}}|z||}|}|zyz|z||yz|wwzywwztwyywy|~|~}|}~~y|{z|w|{uw{w|{|}zw|zyz|~~zyz|}zwwyzy}wz}~}||y|}||~~z|w|{|||{|||{}||}ww~|zz}ywy||z|}~~|wy||}|w||}}}z||}{|||{|wz}||~|ww~||~wy|}|||}||{|zz|z|}}z|}w|t}Ҁzw~~|zz|~yz}}|zz||}zz}|wzz||}z|zz||~~}||~}zz|||||z{||{{zz|zѐ~|z~||}~|}~}{}|||||}|||z{|w ||z}~~||{|zz||{{|u ޛ{|zw||z}zw||zwz|}zvw} {x|||z|z|}|{zw||{{z⟠|wwzz|}|ww|}}w{}}||zv{{ww||zww|}||z{||w은w||zwz|w{}}{􊓟{wwz|}||}w#wxw|{||}|w+w||w{|{ߞ ֡ 𣦤 ۣ 𩧧 ꪧ죧 ء թѣ硣몯У򦡡󭯧ݩ󉎎ڤ 򩤩 डޡǩ䩪驧秣档񣡡֧觩窤룡ࣤҡ⧡ͩխ𦪧穧Φۤ򦤡񤡝󤪤ۧ𩤤㡧£ꩧ䣡󬭬֤ۧܬͤꢣף䡧ﬧ٧⪩Ѥ 寬 ޡ硠榳􊓟#--tww-ww-zww-yww-ww-ww,ww-ww-~ww-ywwv,vwwv,·twwv*ȷswwv)ȷuww~&ȸww#ȹ|ww#ȼwwz"Ⱦwwv"wwu Ƴwwuq ȳxwt7GLJJQȹzwt8988 |wu978::8| ŵvu:5788:V Ʒsv:7::899 ~vz:8:9788tw:677686Nĩ~w94787866ȲȾw~86::8768pÝuv96::8879Rɰuu:6889887Ğƶvv87667889:bzww78788Þɸvww78879Vɵƶsw8878;ɥôv887889_ř6689987::9³6789987688=ʧ´8879:fȟ99878::88;–768::8878::IȾ8788987877;:7_ɾ9896:97:869q87889:;7;86876:;766788:658868:=à8767767:8658877:8=ʪ8657889877678877gʹ6556887578998868ŭ9755788688988786 Ĝ~9877867887F ˽889987788S :998757:98877889j 989:856:98767889խ879:9568868۵:878657;668K¯98:8867877887tձﵹ98986867866z跳989766786677?ض9897668988 ʱ989768688 98977978668v ͭ86868:88668 µ8668:88668H¯-vxx-xx-{xx-zxx-xx-xx,xx-xx-~xx-yxxw.wxxw,txxw*Ķtxxw(Ķvxx~&ķxx$ĸ|xx#ĺxx{"xxw"xxw ³xxv ijyxvz{{ĸ{xv|~}||} |xv~z|| wwvz|| ·twz|~ ~wz|~z|}uxwzzy|y~x~tz|z|wwĮĻx}}w|zw|vx~y||{~ŭvww|}|~||{µww|{wwz|}{xxz{||{||ĸwxx{||}}|{z~~Ųµtx}||{{||}}Ţx||{||}~~ľww||{~wz|}{w}}~Ƥ||{~Ĝ|{}|}||}|}zw|}||z|ĺ|{|}|z|z{zź}w{|w|{||}{}w}zw~ļ{ww{||}wv||w|}Ŀ}zwz{zwz|wv|}{z}Ʀ|wv{}}|zzw{||z{Ƶ}wvuw|}{vz|~~||w}}~~{uuv{|}y|}~||z|w }||{zz|}yz|}||zz ǹ}}|zz}|| €}zv{~}|zz|}~ }|vw~}zyz|}~խ|{vw}||yy||۵|{|wuzywwy||¯~|||}wz}zz||zձ鵷~|~|y|wz|wwyyw跳ﲳ~|~zwywz|ywzz ض~|~zwyw|~||}}ʱ~}~zw|y}}||}}~|~zz~z}ywy| ͭ}w|y|||wwy} µ|ww|||ww|¯-z||-||-||-~||-||-||,||-||-||-}||{.z||{,y||{*y||{(y||'||$||#||"||{"||{!||z }|z ~|z |z {{ x{{~y|||z|z{{{||{||󴵕x||︬󡧭򦧩}~~}z󩭭{||{}z{{zvxyyx |wxx {vu 󼯚  խ 󧦬۵𭧦¯𪧭ձ𪧪跳ض򪧪ʱ򪩪򪧪 ͭ򩡧 µ¯wt"w|"wv"w!w!w!w!w!w|!vwwvwxvw wv}xwwvŽw wv{wwuŶvwwwwuɽvwwxuwwuķxwwvywwɸ}wwuwwzȻwwww~vwwvxwwȻvwwvywwvwwvzww uwwu{ww uwwu{wwv vwwvzww Ĵvwwvywv Ⱥvwwvxws IJwwww|ȵ|wwuwvxwwxw{Ʋvwwxuw ƿƵvwwwwr Ʊǹvw wvzwu áǻvw wv|ww Ǿwx ɨǾwu ǽwt Ǻw Ʒyvw wx Ƴ}uw wux ŘŲxwwx ĝȺ븳yttx  Ƚȿ ų ɹȴùȺɷĴ粂ĵ ĵؤ~Ĵﲵx|}}~}~}~}}~ ~|yηz{||{Ⱥư~{yxxy{õŹƼǻĽ   *('#xv"x|"xw"x!x!x"x!x!x|!xwxxyx xw}yxxw»x xw{xxv¶wxxxxvŻwxxywxxvyxxzxxĶ}xxvxxzĺxxxx~xxyxxĹwxxwzxx wxxw{xx wxxw{xx wxxw{xxw wxxw{xx wxxwzxw ĸxx~yxt xxxx|Ĵ|xxvxwxxyx{²wxxywx »´wxxxxt ­øwx xwzxv úx xw|xx üxy Ťüxv ļûxu ùx öywx xy Ľ³~vx xwy ²yxxy Ĺ뷳yuuy ľþ ĹĽ  ŶĽſĸŴ~}|||}~}~~} ~|פ}}|}vy{{|{{|{{zvĽ̴wyyzyyzyzzyyxì{xvuuvx|ýºù   *('#|z"|"|{"|!|!|"|!|!|!|{||}!| |{}||{| |{||z{||||z||}{||z||}||||z||~||||||}||{||{~|| {||{~|| {||{|| {||{|| {||{~|| {||{~|{ ||}|x ||||||z|{||}|||}{| {||||x | |{~|z | |{|| |} |z |z | }{| |} z| |{} }||} 쵳}yy|   ~}|~~}~{||{{}zz{{z{z{ywvu|~vvwxyyxwxxwxxwwxwxwxxwv}פvvuv|ﲵpsttutututtuutusp̫qsstsststtssr}yurpoopruy~  - *('# s88968689987 q698986688689887 G69889789878876788 97879::99699866788 787878::96::96689: e576:889:9::868:: {8677:87768::9:9879:: X:8898868:9899878:: H<98:798678::698899;8 ;876:8:987899:8:88:8 @6788::<:9889:88:8 7:779889::988:8998:8 <696796689899::8:9 =86978:8987899799;:899  O8898879:9;989988:9;:799  V6689866877:7::986689::;:689 hA89986:886786988667889889::8 8:879987:89:99:89886688968988:: WL99:8789886899:89887788969:9778: z79:99:868868989:899889:97678 orl98668989:879878:9::89::98787788 KKJKK986678899889868:9:988:998769878988 j886899::8787789988:868896788798898688 Y8868898767887789988:8688:8:96688679:86 G8788:9898689:8998989889868798768:9667p 88:989868897887:;98878987689979::88699:^ ~889889889896688::88;868::988::987887Rw F88:889886898866889:868:98869::88=:88:8988979886876899889:88979899:9JZ889:8898699864:<8998978998689::989:L=89989:8878986:9866:<899877898998988::8}:7::69;8868979:89:9:86787679;89989::78::ݬQ986788;:99:976<88;:66:898:87:69;88<:89 88667868669:669688987969<9876:98y D88668786898784887:9887:i{ |89:88987889886:86889;68988ZF8::98::989896986899;79:9C|8899889:9889876789966878:7768:@:9889:98768998767786877:8668T9988:9:889:9898867=8966:989Hu8:;8::8<88976:6689667:68:88U998899:87:99:99886688669:88:88E9889:8799:68987689989:8v899889:98868898::867768899z9988986678998899:97798578Pa886686789::9868:967ZG87876896889::9898%q:9:869;988988987e%:88::87968986788;::98'88987798:9768::88E!P8766899:9878::9o#g976788788B%x:87898778988I$因989:98988O'ꦠ89:9798789=(T9:87656=a'ɠ9:56889*飠89588{*S869~-87.9v/0򼟠9ߝ9 ||~w|w|~~}z w~|~}ww}}w|~||z w~|}~z|~|z}}zwz|| {|z~~~w~~}ywz}} z}{}z}~w~yw|~ v{w||~~|y} }w{z|zzw|~~|z~ |}|~||y|~|~~|z} 遅~|{~|yz}y~|}~~} x|zy}~|z|~~|||}}} ~wz||~||}~}}||} z{{~|}~~}}}~~|} |ywz~yy|}~~|~~|~ }|y~z}}~|z|~~z~~|~~  ||}}{~~}~~}||}|~z~~  ww|}yw|zzz~|wwy|~w}~ ~|~~|y||yz|w~}|ywz|}|~}|~} ݉|}z~~|z|~~~|~}|yy|}~w|~|| ~}z}~||y|~~|~}|zz|}~y~~zz} {~|y}}||w|~|~|~~}||}|~~zyz| }ww|}~|z~}z}~}~~~}||zz|zz|}} }~|ww{|}~~||~|y}~~||~~}||zy~|z|~}|| }|y}~~}|{|{z{|~~|||y|}|~~yz}||}|z~}}~}yy| ||y||}~~}{wz}}{z|~~|}|w|}|}}~wy|}}|yz~}y 謃|z||~|~|w}~|~~|~|}||}|}|wy}}z~}zy}~ywwz ||Ѐ~|~|y}|~z||z}||{{||~}zy|~~z~}|}|y ||~||~}|}||~}~wy||}}||w|~||~|z||{ ||||}}|}}~}}w|~|}wy||}}~|y}~|}w~||}}|||}~||}~~z~|}|w}zy|~~}}~}||~~zz~|~~~}}~||}~|w~~}wt|~~}|}z|~~|y|~~}~|~~|~||z|~|y~}yw|~~}{z}|~~}~}|}}ӟzy~||}y|~z~|~~|wz|{y{~}~~}~z}}ݯ|w{|}~~~zw}|yw}~}|zw~||}~||yww{{||}|yw|ww~yy~w}|~|z~w~~}zy~| ~|}ywy||zz||ywwy}~|z|t}||}|z~}|z |~}|}~~}||z|}}~}}||w|w|}~w}~}||}~}~}~|~w~}w}~~z~~~}|~~||~~||~|zyz|~~wy}z}zzy|~~|}||~~|zy|~~|zyzz|}|w}zz|ww}״~~|}}|}~}||~~|~||}|ywz|~ww~|~|}|}|}~~zwww|~yw{y|||}|~~}|~~|z~~~~||ww||yy~|}||򴤘~}||}}~}z~~y|~}zy|~~|~|}~~}}~~||y|}}||}~||yzzy||~~~~||}~|ywz}~~}}~~~zz~|vz|||wyyw||wz|~~~}}|y|~yz}z|zw|~y|}~~~||}~~}%~}y~~}||}~}||~~|z%|||zw}|w{||}'||}z{}{w|||!입|{ww||z|#zw{}}z|}}||}}%|{}|z{|}||$䛠}|||}}'饠}{|{}(}{wvw~'Ǡ~vy|}~*裠|v||*|w-}z./0򻟠9ߝ9  򔡪   줨  ꐩ 󣧯 駳 韧    󦧣    ➡ 룤 ݋  􏦬 ٔ 墪򩧧 詧 䦡 谨쩬 Э 갧찧 󪩩㩪ݩꤧԴݲ ᩧ  穧򡪩ٴﭪ򴤣𭣧媭詪㤧%'ꯦ)!#怜%󤫧'䛠&饠󡩬()Ǡ+裠,-./0򻟠9ߝ968::966:7678865698879;:7;88::87998;992&%/>:=<::7&(.::9;98:6787867;98776868::8;879989;::9889:8:2'%/=8:996$",8:8:87:6887;:8878877679;:8:88:989;;:98789:87;2&%.::9:;9&!(7:7877889:;;8798898778:;;9799:;:878::889:97;2&%09:86688%!(79689868:9:;878898878789:98799::9889989:8=0&&29::9::)%(7849:969877887:88689766778:987789:88:8=.%&4:468877&!)7759:96:866887:88689898778789987678998898:7<-$%5:67::)")79688;:88:8786898898788;<:9988986699:6;,#%699;*"(7:66799:969;:8::889887889978698:;9769;:7699898:;.%&3:<8657:)!(899:8:787996898998788:898787889:99:898898:9,%'38:8679:''899797889:99:98:9768:;88688989::68::668:776*%)6:8778;<( &788676989;:99::9899878::887988:8789:877::6699;:8*%)6977:(!(9;:9798876898898988:98898998:88:6688:7:8996698::7)$)6:886687#'8987586997688:79988::8787998:8794688;8:9887887663&#+8<899;9%!'7876476::869:9:89988988787998988:6996;98988988:82%$-778:99<:&%,:;897:98:748988988:977989788787:;6::6:8699:879<81%&/:7996686$$*9866586::9877899:97876979:98998:9889878766899::2'&,8787:895')(69:749887668879889879899889889876899592#%0<7979793%',68::8:6889889:788788:88786898767867668790"%0:6868791$%.78::8:6899898876679:88778897448:776678:6+#&0678668:0$&.69:76967886WVVYH8766887878997558:87766783(")26797799.#$169:769688R66877898778988678877674)!)66;97:9,"$669:89:7 :878878778868667766864*$+856:86:8*"&87::7998d8878987667667667877860'&/:5:76598*#)66;:4589<78987568865675496:4:3*+5;:869765(!+97896688ߟ@8987876556786686:9:5<95588766885'!,869:8788O886766765668689986699779968993%"0:889889: `866898638572487877::55886897/"%4:8779;[878767887696744868;9969687:7,"'7889878887667887:7665579:9767:8,#*798789878656788789698:8556568877:6*$-8;:778879~45567787794879956886887;:893'%.9::99;967M6779896766876689967:;-$%4:78878Q6877998:676799887899:869;:,&+7<889K898788:6767998879:9887896)%,8;8878899898788987768:98778682%!+7:88987988986898776656678877:90$#09;889:9876889867988788786468975=9*"(6:889877887987897887898976886<6&",:96889 898788:8677678789::7558:4&&.;9788789: Q688:9:8::866:9977889<-%#5;8898:966:;Q6998:86878766876:88987)#&6988668:887֓?899887689988:;:69779:9982%#-97:8:78::99898668<88668874887::8:8,#&3;7<9;99<<::򗠠j88987889<::989:9799;97;8'#+8<6<89989979;86799:8894786679:6::;88;4$$08:6:879988:8668989689889::698:9::-!'6898::6998:;87^668686689:<6886969:;:'"*:889;<=;2*.6:<钘6486866;947698667899:3"&487978::,"%5;; ˝:9686887976968877899::8:99:.%'6;<;9::<3%$,<;:9;;8::*!&2;9:6{789:98;9:;9:;:8;89:8:;::9;><89:8.&)4:;::9:=;0)(/9:9:;99898878:88:88:8:;:99:;:8972*&.6::9:<6*&(09;988e7899878:867767988:8898::89:99:;7-&*5:;:89:;9.#&.6:<;9986889:889899:9889989;>5'%0:;;969:92(!'4<<;:9;P:89:988789::9:99::;88:89;9-"&498::6:;4)!%.8<889I::89:9889:98899:98898;;:;:;989:99:1'#.9:9;;9<6-$!,8::79987k88:98:889:8:87886897;:9;::99:9986*%*5<;:;::;0&#&5=;;:998m8898899::89::86876996;:8::9::98864%$-9<9978::*!&-<;9;=7479w}ww{yz}}yvw}|{{}||z~~}||ăoUSizUYg~~}w{|{|wz}z{zyy}||ww|||z~~|~~||}~}oVSh}~yOLa}}|{w||z{}||{|}{zw{|}|~|~~|z|~}{oUSg~TJY{z}{{}||z||}|{{z{|{~~|z}}||~~{oUSj~}yw||SIX{w}~|w}}z}||}~}}|z|{||z~~~||~~}||}~|kTTo~\RY{|t~w}zz}|{|}|yy|}|{ww{z{|~|zz|~||}}|ǁ|gSTttw||{zUI\{{u~w}ww||{|}|yy|~||z{|{|~|zyz|~~}}~}ρ{cOSuy{[K[{~w}}||||}z|y|~|}~}z}|}||}~}yw~~waNSw~]LY{yyw{~~~y~|}|~}|{}|{|w~}~zy~zw~~|~}fSUr}wv{\IX|~}{|z~~y|~|~~}|{|}|}z|z||~~~}~}||~}~aRVr||y{~VAW|~{z}|~~~~|~zw|||w}||~~}~y|yw}{{w]S\w|{z}YHTz}||w{y~|~~~~|~~}{||| z|}|z|~|zzww~~|]R[w~{{z{XJY~z|}zy|~||~}~}|}~||||}|yy||z|~~wy~|{[O\y}}yw}zNDW||{u|y~~zy}}|z~~|||{}{|}z~ty||}~||z|}zyyrTN_}}~~RJW{|zyszy}y~~|~~}}~}}{}{|||w~~y~}~}|~}|}|pSQczz}~USb}~{|zt|~}}~}}~z{|{}|z}{yw}w~~}z~|mRUizyw|wQQ^~|wwv|y~|zz|~~~z|zy~z||~||}~~}{|{ww|pVUa}{}z}~uW[Yw~zs~||zyy|}z~}|~|z~|||}||}~~}|zz{zww|voMSj{zz~rSVby}|y||}~}}~z||z||}}}|z{}}|y|~}zyz|wzww|}}z~jKRjw}w|z~mQSg{}}w|~~}~}|zwwz~}|{z|}||~ztt|{zwwz{|w_MUjwz|ww|kQTgw~{w~yz||y|zwy|}|{{|}||z|~~zvv||{zwwz}rYL[pw{zzgMQlwzw~y||朘yyw|{{}|{{z|~}|yz||{zzwzs\J\ww{aKQyy~|z x|{|}}{{}zz||yw|ww{{ww|ys]Q`}vw}y}]KT|zz|ȋ||}|z||zwwyzywzww{|z{}wjVUhv{wu~|]M[wytv}Н{z}~}zuw|}}|wvyzvt~ytq^`v|y{yuXJ_z|ww||П}}~}z|zwvvwz|wy|y~v~vu|}zww}}|uVJb|w}{||}|yzwwzwvww|w}~~|ww~z{~w|~~rSLj|||| |yww||wq|vzpt|z}zzvv}}y|~{hKSt|{{܈|z|zwz||zw~yzss|w|~yy~y|{{aKWz||}|{}鐞}}|zww{||}|zzwyuvz~zyz|aM^{}{||z}Օyvwz|}|{z|~y~}|vvwuw}|zz{zw]Oc|{z}|zԒsuvw{{|{{z~s|z~~vy}|y||z}rWRgw{wzz~|~w{ww|{ww|~~~yzcQSs{|}|{{|ށy|zz~~|w{wz|}{}~~}ybU_{||}|~|z}}|wzwz|}{~~}}z|w\Ra}||{||}~|z}}|~|{zz{zww|~|z{}w}pRJ_{||}z~||~|y||{{wwvwwz||{z{jQNk}|}}{y}||~|wz||{|}{}wtw}zv~]LXy|}}|{z}|z~|z}{||{}|~zw|}|ywwTLa~w|}}|} ޖ|~|z}}|}wz{w{}z}~{uv}sUTgz||{|օy}||~}|wwyyz{}|~eRNv|}~|wyփy~~}}y|z|zwy|zw}||~||{\MTw}|yw}}||zю}|~~||zy}~~||w~zz~~~|oRMc~{}{|Ֆ~|~|wyy}||yw|}zs}|{}}aMTrz~~Ҕ}|~}z||~~}~~{~~~{|WN_}w}|{~|yz~~}|~tz|ywz~y}|sOQk}w}{}}||yy}|~~|~w}~}|~y}~eJWw}~|w~}|zЌww}y|ww|~w|}||}}|w~yWK]}|o]gwҞyt}w|ww~tzw~|ywz}~~qLTs|{~z}aLRv ˜~y}w||z~zw~y}|zz|~~|~gSVw~iTYw~ z~|~|}}yw||}}|~t~{XT\y}~gUay|~|Հ~~yy~~}|z|wmNSk|y[Qg} ~~z}~~|}~~~||~~]JToSOo y|}~|}|~~|}~~~qRS^}hSYw~ |ttw|~|z}|z~}~~~烁{^N[u{|~|s[Wfw唁ww~|~y~|~z|}~~~~}qRQa~}]JUowȓz|~~}~~||~}~||gT\tk\Xh~~~~|~||}z|}||}}~}~{o]Tfy~w]TXj~}}śz}~~|z}|yzzwz~}||}~}}}~{eT^v}~gMTfw~|y|}}||~}|}}~|~~||~}vWSk~w~pXJWt~|~}}|z}~~~~}||}eLUs}yt\JRf|}}|}~||~~||~~~|}~|~|ހmWNf~~~yeOIa|{~}{}}|||~}|z}|y}~z~~|w^R]vjUNTu~}|}|}|~}|}~|w|zy~~w}~}|wtROc~~{|^JUezt{~ࡩİspsy䩪tpkgspqdyƪsppbw򩪯qq|nyǯpqsb|ϯkpzezjp}gyps|bw逸⪩nttXv¡}p|yaq }nzwdyzk|j\vqjndvpmspnsmmtsvzy뤣hppt㧩enmp𪩧hsmq⤩ygzhm졧|d|ﰬem 󡠧ף}m}eqȥts}hz Ѣwd ңtd ܤpg ৬epܥev㤯h֣}kԞvn짪mpޡsꡦ񤧬|n񩪧𧭪nd󤪧校mj馧}gwޤqg ޢsq֥nj֢|hqюnhՖhqҔvj୩kmڧdvЌve}}Ҟgqgn ˜ptqy ퟠ篝wq|sխjpzm 筬}dqpk ꡣ갘nppy ꢧ簯jzzv壯絩nm}dsȣq||wϪ}q}qwƣqhq߬vpwdvҧgs|dn񥯭ﭪޭvjkb쩭n}sjqnkds989:9668989:866:>1%$H:868::98868::878:5,%4:98779::988788689:87676/$"89898766788783& W89898878988766889:6'$/:988768:;::988689:6('!:9887689::9887766886678:;0($B:989976887667644687<4&(*89::7688798578855668976:4,&"899885588979868875565786:88-%H:;:9977:996896877567678685:1($,8:988668996897868788;5+* 68865889788688:7;.)>6889769897887867765778674?6(&.6766755869886686775478789:6:;*)$9:87766:69876686885488:9:7/<.(T<759:7588997448:668663987=:<6*$*9558:878868835978:697;80& 755788788998778736:88;887;:6& >678876886789668778:99:<:8&$*6787667766787668856878;;=:;,$567887644689865788668699<::;3&!F789887786568986676877:7;:<8::8)&/989:9655::866853997;:87;7;<;;(("799:89;:76775567899:8:>2($?8:87887977668878789989:9:<9)#289877668786688678::9898778::9:=*$'688656997687668::9899878::9:;/'#H57878757886688989:8899889::;8*&-68668878787788:8899889::9:;:>>.($868989899898788789988::;:99::9@>2("^7878::87799:;978977:977::;:99::8=;7($2:97788:97885::978::9::988:<796+&!9878898::88::9:;<;99::989:<=<3($N879899:<989:9989::9:<:,'.6898679<9898::878998877889:;;:98:<>/&"689878:;889:889:99:;99::;;:;>3$$66789988:96788:99889989::;9::;9)-&789899:9967889:88789::9:;;<<9:0*$~89989::9:8897688:88::89:9889<<685%);6:9968::;<:88:978779988::99:9::8;9-()8<:9978:89989:97787677989::99:89:8;<1*$9;997898898:8899;89:;:9::;;<9:;2'!69:8986868899:9:;98998:89::9:;:9:9:=7+&$898:9886899::9:897688789::89:;:9989<:/)"`:9::8:6889:98897866898:89:889::98993&$5:98;8988987898877::9;689889987:78:9<<'$*:98:77;9:99878:88768868989:968<89:8;>1$#d968:99;;8:8:989788778::76897738788:;7%%.<::89::8:8::8:866787678588675:9789889::<,&':9867879:89:8::8789867:8:96759769:88::9;2& Z:98::9::8:98::8989788686:77::88::8:9*"28::;:;9:98:886867686968:967::9:=+%"8::9::88:;9979879:756876886857399867::98<.&`9::<:8:9:8997869:9877884676869698898:;6(&5878:86:89899786:756765578868586887898878:&)!688::9:887988989899886787668869748::;::1$!R :;9:98:8:8:88:9:9::9898867886898778:8789)!4;9898:8988:9:9::9886789986779:86788=*!$6889:897878779898998667866789876:669886:;/%` 688::89786889788998667876676:6688649:99)"+8:8::8:887:99:88:9::8789766768866897787<-&9:8998988799:89:99:9887697668::76692& T68799886868778789889976778876676:868878677869$". ~}|~~ywwy||}~~}~|wylRQ|y|~}||}w}|z|uaSs~}zz~~}||z||w|~}zyzwhOK|}~~}}~~|zywyz|}||z|}rTG|}~~}|}~}||zz||~||zyy|}~wWOh~}|zy|~}||wy||}~wYVJ߁~||zy|~~}|zzwy||yyz|kYO~}~~zy||zyyzwttw|zsTY]|{w}|}z~|vz||uuww|{wsaUL|~||vu|}~z~}w||zuuwvz|w}|eSB߁{z~~y}~y|zzvwzwz|w|vlYOa}~||ww}~~y}~z}y|{||}|v`]Hw||wv|}~z|}|}w||}|{g[Ey|}|zw|~z||z}wz{wvz{z|w{twXUgw{ywzuu|y~||yw|w{{usz|{}y][Q~}{{www~|zww|w||us|}|{ifYBzvzv|}~~ztt|ww|wwr}{w^O]vu}|z}||}|w||qv{|y~z}kUHzuu{}||z||~~|z{|{qw}|||{wTGwz||{w||}|wwz}ww|{z}~}UO]wz{|{wwzzywwz|{ww}|vw|{}bODvw{||zwttw}~|wu{||ww|wrTI{|}|zz|wvw}~|wwzw|zzz||[Uh}wuv}ywwy||uqz}zzYYLz|zw{zuuwz|}oXQ}}{}|{z{ww|}{|z|}[Mp|}z{ww|{|ww}|wz|}}{{|^OVw|}||wuw{w|{ww|||{|iVMu{|{|zvz||ww|||}|}}}^Tew|ww||{}{|{z}}||}}fXQ|w}||}}{|}{|||pXL{|z||{{{|z{z{}zYQo{z}}||}{||u~z|~||{~y`UJ|{||||}~}qYO|}|z{||~~~|}~aWfw||w{}}}z}~~}|zz|}}iTKw|}z|||}|}~~~rOOywz||}wz||}~}}~~}~~\eU{|}w{}||||}}zz|~j^Q|||}{w|||||}|}y}vR\w~~w|჆|}{|zz~|}~~|eX[|~~z}}~~}~~zz|{w{{~}~~~}~}l]O~~~z}~||~|}|}~~pWIw~|~}y|w}}~~~}}}~~z`TO}~|~||w}~~~|{w||z}~}~~|i\LЀ~}y||~~}|~z|ww}||~}|~~|~rTOuр~}}~|}~}z|~|}{{y}~}}~~}zz|WO]~}zz~~~}z|}}zw}}|}w|~}~~y}}}mQN~w|~~}}~|~z||{z}zw}zzr|z||}||{SRfφ}~}}|}ww{|{w{|v|}w{vz}~}}~aTWρ~|wz}z~}~}|{|}w{}w{uzy~}}~oTHр~}~}~}||}|z||w|w{z||}]Lp}~~|}||w|wzw}ww|~yz~`RK|~||~~z~|{zuw|{w||w|v{q~~}yz~}gTE~ᆁ}~}~~z}y|zz||sw{w}ww~}||~|yYUu|z}}y|~|~~z}yzuw{wvvz|}w|v}w}|z|~}||{|U\Jw||~||z~||~|~|~~||}|wwz|zyy|}w~zt|lQJ ぃ~~|}||}~~~|~}|wz|}||w}~|zz}}{}[Is~~|~}}~||~~~||}}wz|~~|yzz~|wz||}|^JOy}|~|~z}z}zz~|~|~~|ywz|yyz}~}zwww~||wiRD w||}~z|y}||~z|}~~}ywz}zywyzzywww}||yt~~~\K`|}}||z~~|}~}z|~zywwzy||ww|~zz}zcTB~}~~|~||z~~|~~~~||}zzywwyw~~zww|zwwpUHy}z~~|}y|w}zz}z|~||~~zwzz||zwwzy}w|}z|y{{}y~QKf ᩧnm𩡩p 򭪩ke里q_᧩vk 򯪩ytd ௪yk򡝝qy}ަsgߧpY߯yk}az^ޣwsޡ}zmتyY쳤k}롧saधq_񤧧맦sk}ݦk\डqbݧzs׬yyg𯭧wmzhاktءth󞦧q󡧡譧wm۩wgצymجsd㧭yk𩬯v֧qe𬯩kk硤|s֦mէn|ᰵwz맵謪}k沩vb㪭qkҩ|gЭqkѭvk}ݩmjߪ򩧧pnϵqvϯqaѭ}g﩯ꡩneܤq^ᵯysѤs|dסmd 㯰zb駪dkۣn\ ۡ񣝪|e 姭褣qY񭧪죡sa㣩줣me "##!""!!!    !!!!""####$$$%%%&&'''((()))***}+++,,,---.../// 08;78766T:46*6g6;#6*$6 #6`$'62&'6%)*6d %16>"%46,&'76!(,86a!'2:78$'6=6&'+8=6(19=64!)5;:6+%.:<:6#)2;;<6[!)59;<62%'89=;6$()<:>:6o '0>:<;66 %7<79=.*''6?;;=.%&-9><;:.T&4<<;<<.2!'8=:;<>."%+:>;<=B.'1<>=<<=.2!(>:.{")5>>;;<=:.:&*9>=;;:=<.'(,;=;<<:==.!'.;<:>=;==.R#&1;::>=<>=..%(7;;:>==::6:<6}9\7h7}k8aj6mv:qt7pz}6an6en6qt7dy7dt8mt8sv7Py6d|6p6hz7bz6nt6mw|6_v6_p4tt.nq2^q.bt.gp2\t.pv1dy._y.g|.q.tw.bt.hq.py0\p==<q<==<;<;};;;::::9998887O777666655 5 44 4 4 3 3 3 (&&,><::89:989::9889:89889::989878::868<88:-&'3;9;996l!*$*<<;;:<<::988:98899779:99:9678:89;1$$0:8:9866!*$)::;::98898789988;98898779:9986899:=6#!+:68976*'((*8::9:98899889889::879:88998:898;:% )968:77%*'*,79:9::8899898788:9899889897968;)"(97::78O%**)+6::7;;88986698897889:9789::9877887957<.$&68:9884)+/(*6;;7;::<:989:988989988:98:99877886879;1$%18;688&*.4')6<;69988:;:99:;:889868::9:98788997689::2#".7;589^#)76&)-::;::9:9887789878;7887668:7656887588778987'$)968;6<%)88)),;<==;9:99::88988:88789::9866587787&#'89:<9*&-:;-(*::9969:99::89889898789:989::77876776688*&)6::98!(2>>.&*;;=:9:99::9989:9688789::9899668986676788.('3:867?#*8?>.&)<;;>>9:99::9:9:88:969889:6:;9668877689.%%/:96:/(,<=>.&(9::;;9:99::99:9988998::9889789:;:7698778990#$-997;&*0>;>.'%7<>><:;:9::99:9988:9889988:668:765:9778995%%.986:p$)3>5&%2?;9::967998<9:88<;998:8968897&"+69:899797:+#&69:9,',:==>7)'2?=;;<;88:98:9:99;;9:8787:8:899:8'$+79:887987*!#2887s'(2;;=:6)%.<;::9:<;<::988977:985:998&#+6::88798:0%#08:7;&,7=:=96'#,;8788:;<;:988987898759787&#+79:898798=5)$0:;7*#.:><><9*%.>:7::98998989::67889788($,78:899898:5)$-9:6"$/:;;==;-%-=;9;::8:<:889:89::689:7889:899*$+6798::89875)#*9:8#(2;:;:;<.%&7:9:99:98:=<;:;;98978:9:7878:89:)"(4687998:897*$)7::$+3<:<:><2%"4:;::9:858:9<:<<:9:8898:8:9::789(!%/687898:9:8+#&489'1;=9882%&.::898::9:;7;:89989:7899::7:697/"(1976899:3##1;6&1;=;<=<<3%%.;:8998::8::8998988:978997;8971"'1:7689:995$#.<8(3::9:97:4&%.<<;998::8:99878966:889887::884"&09889:9889%!*;9*6<::<;896)&*:=>8979:9:9988:7899889:886#$-9889:8867<("%9:-8;99;:7<:-%(6;<7978:9:9989:97899877869789'"*9889988966<,%"4:19:78:76=;-$'7;:7978::;99::88:;8799887786798:+"&7789877977:1&!.93::8:<::.$'7;:8978::8:88989:88998986897:8;0""568:97789873(!):7<:798667;0&&6::9:88::7:67:988:989868:7=8:2" 359::767::56(!&::8778::9;;2%'5=;99:96897889:99::8:6.3:88:976%"(887:8766595,%&7;:99::;:9<4%$2<:88::9:<:688988:87/&+7:769866'!(7:8::7977:7.$&4::;9:5&#.:;77899:;989::98990&)4;968768+"%4;89:7:8991%&/9989:;95(%*6<889:988987:;3))2;:7997:1$".:8696:8:8:3&&*899889<:6)&+8::9::988788991'&1::6::9<5'!*78686:796:6)%&99:99899:<:)%-:79988:989989::882&&0:8699::6*"(39876:887:8,$#9::9:<,&*99887787696788:7:6(%1:8798:870#&.9:678:78::0$!998;8;0*%6<::98976:689::99896;6::9:8;994"#*8:566;7::;2$!<889:<9::8:3&%2;7=8688:88799::6687:8.#'9;:97:;7;, &7:6799499:7'";8989:89;9:2&%1<8;878897:8988:7876:9/#%696877978/"$4:668969897)";8::9979;:92%%1:9988787:898897876::2%"/969989984% .9758:8;899-%;:<<::8:99:4(&/9:78:878788::996686:;5)!*7799:7*&586788;769/%:9<<;:9<89:5*%.8<78:988:9:6788:<8.#&2886887:90"!.7885695470%98::8;:996*#*7<8899:89:8:88:899;:3($,::6987:85)!)58867:7594*:8::998:<::8,!'6:8879:8::8989:89::8:7*%'9;898:8870%&07788:85:9.<:;::8;<9;;. $298859;7:8699:<88::699-%"5;86794894)%-5775389/9<=::9=99;1#%48:998::78876498;9671$%(697;84976* &2:466765::<;::=:9:2$%13558:8::887:9;;896+%(197697766.##-:67887899<::<<::=:9;5&$.7759:8998986897882&&*883998685*#(646688779><:<=:9:<:9;7*$+=:789689;:989978:9::8)"%5:6689578/##/5567766>;:<=::8;:-%):9588688:99878:9::2"!.8:5694562%'9878876;::;<<:8;;.$&79899897889::98667877889(!&1:66:8677,!%78766787:;<::;<;9;9:;."#6:99:7889::998998899:;1&"+586::98:2%%.4764576<>>::<:;;.!"377668;899898668897)#(0954:9693&#%1985565<<:9:99><:;9<6&%/989:;=6:9::97789:9878879:6)(,58488:652 %*576766;<<==;:<<:;9;6&$-87689:6889:98899879;7*&%.68:66366%!%166766;:=>=;::<:;9:6'#,985879788:898998867;8.(!&39658679+!!*47868<:<=::9<::9:8*%+;:69889778::88987:950$#.64399673'"&19988;:<<::;9;::9;9.'*:<8:87889878998787:7-"%165564580'#+6886:<>><<9;;:9;;2('6<898679887:99876::2%)69445456."%/663:==<<;:;:2($2:887:8788778:998986976* $/76566363&!)273:=:89::=;<:9::2'$1:98:98:8678778:98998898978491%&'29459877) %185XUUa}~~|~~||}}|~~|}z||y}|}eTVq~~yJ]Q]~|}}||}|}~~{{wz}|lQQj|~}yyJ^O[񄁀~}}~}z}}||}|}~}{z|w}~~wMI`w}~{y^WXX^}~~~}}}}||}}|~}z}|}}|RH[w}z{S^W^a{~|}~~}}z|}}~|}|}|{w|[LX~{z}S]]\_y{||}~|ywy}|}{}}~~{}|{z|}{~v{fOTw|~|}t\`iX]w{醁~}~}|}}~}|}~}|{z}|w|zlOSm}y|}T^gtV[ww}}~~}|}}|~~|w||{|}{w|~oNLf{v|~N[{yU\e~~~||{{|}z}{||zww|{wuw|}zv}|z{}~|zVQ\y}wR[}}\\a~~|}||}|}}||{{||~|wwv|{z{|}|{TNW|~]TccX^~w~~~}~|}||}||z||{{}{wzzyy|}||^U[w}JXofT]~~~~}|w}|{||~yw|~|yyzyz||}fXWq}w{N]|fT\~~~~}|}w}}w~yw|}zzy|}~fSSi~yhYbgTX~~~~|}|~||}~{|~zw~}{z{}~~kNOe~{U]kfVSz~~~}||}~|}~}|yw|{wv~{{}~~vRRf~}yO\riWKqz}~|w}|ww||{mak|||~~{QSf}zu]_uTSo~wz}~|}~~}|w}}||~{TL_w~|~~{~{`MTw~bVb{[Vo}}}~~~~|z|z}}~|VO`z~|}}z~|{^JMo||{VYoy\Sf~|}{{z|v~~|UM`y|}|z~}jRNk}{Tb{yWNa}z|}}|}~|||{|}{u~{|zUM`z~|~}z~|u\Qj{]Nf]Rf{}|}~~}~wz|}}|~z|}XOa{||~~|~|v[OcwLQhcSe~}}|~}~w}{|||~]Q`yz~|}~|{v[M]~|NYogRU{|~}~z}{|{}|~[LYsw|{|}~z^O[{Q`roSLs|v|~|}||z|~XISiw|z}}}_NTt|Wm}}oSTg}|~z|~~}~{|zw{iLXm{w|~qNNmyTmrSSg}~|}|~~|~||{|{|{lLWl{w}~~vOMf|Xq~{sTRf|}~~|z}~yy||}}}{|}sKTj~||}}|}~SJ]^w}w\T^}{~~~}||}||{|||~||yNOe||}|}yzYLSe}{eSXy{~z}~~~|~~{}|{{|yz|VL]~}}~|}~wybSLtlz}{ycOW{{~z|~~|||{}}{z|w{~|_KTz{}}{{~z{lUJfr|fOW{|{|}|}~|~||||w|~z|kKKvw}~{z}~}zrYJ\{z~}wy{kTTw~|}{wz~|}||||w|{|pLHrv~{y{uwYJT}z{}oSVuw|z|}}wfq||}zwSKX||z}zwwv~vaRUz~sRQo}}w|}}||}|zhT`{{y~|wyVJXz|{~z{zgQUtuTNf{{}}|~jT[sy}{w|`KRs}~z|~mRTi}~uYS^y||||}||}zr\[pz~{mQLg|y~w}|rTT]|}||}y\T`}}}|{||~~mVUly~uWJ^z|w|y{yw[ST}\Sc{}}|}}|oUTk}w~w^LXr}{y}|z}bOMbU]~}}{{|zww{||߀{wXSm|z}}{jNTfwz|{}jOJ}||k]Sw|zww|}~ywTMl~}~sLN]}uww{pOJ|}}qUSo{}w|}|}z~~yw|z|fNWz{aHU{wzt~~zWL|}|oTRm||{||{|~||z|{y~hNRww|{{~z|iKOtyw}w}z[L}{oSRl|}|z}z}~||~z|{woSLhw|~|tRHf{v|}}~~cR}~~sXTi~{||{}z}|~~wy|yv[J]{{~~~{]EUu|w{}|{y~hR|~v]Rf|{}}}|}|~yz}|}fNTo}}w}|z~jLJf{}|vw~vtzjR|}~w^M^{|}}|}}|~~qXOaw~|{|u[J[u}}w{zvt]}|}bJWw||{||~|~}~}z^RW}~}}|{jSTj{{}}|v~f}gHQp||v{|y~~}|y~~eRLv}wzs|s[Rcu{{z{vq|~h~~lMSs}~|{||}{ws}y{mQRXw{}t{w^HTotwwzyupQRmqvv}}||}|{}w`SXmzw{{wygNNew{||{}~~뇁uUQgzzv|~~||}w|{}|oTT]}}q|w}u]MYytwy||{{~~z]Q`{}~w|~}{}}[LRuwy|~u{|hMMiuuw{{ww}cR\~v||w}}}|}{}oKJf|vwtuypSCV~|z||{w}fQT{|~~}~{||}wy{|{{}}XJTmww|wzzbIR{}{ww{|{gLNw~~{||}}}~lTK_v|y~|oRRfs{wsvzwgJKq{zww||}|~}yy}}z\NXkvt~w~qTMRm}vvwuyTRh|w{{|~~|z}|{w[Xau}s}|yvoGS]u{w{ywwTOe}zw}~w}}||~~|}|{~{]TSfw}yyrwyRJSlwwzww~wVNb|v|{~{||}}|}~~}|}|yz}gYIUr~wv|y{_JJ]s{|w|~|^S`y}|{{|}|}}~~}|{z~vkQNfwtr~~yzrWLTm~|}~fW]|}{}|||{|~~}|{{}{{eLSlwuuytv}jVN`w}|yoYVy}}wz||}}|z{~~}||}{wpRD[w~stutuwfLShwyrpXQo}}{z|z||{{|~~|}~|w~{y^HOi{yuywqyrTI[pzr|~pWOl~|~}|w{|{{|~}~~||~}{}t~mSTVo~tv~}z{\GSm}uwssɬqtd}m}өmmdkz񲯭󩰰hbvww骩ݩnazpvީzgwp}}|Ԫkq|w}鵯Чkpqtz𧪪jgjzs|tm|nz||qjv}qwszdwq}wvj}q|ppyqwjks}tpޠnnk|ve󧡩mp}qpqghqtzttkdhty|pshnjqvjʬsh|m}j}nתwkzkgmp}mzh}jynszgykzmpgwbpjqvpq۩gwԪjjqpp𦰧gvԬkhwqn¦eqpd}|qЪjkygppwtg}pgkveqsdkv쩭eeyd|qqgaydqptpewnsnmqtdwms찬qjߧqzennqypǩ|zmgqq}|qçtsvdzpq|pܬsqgwkh﵅s}߭wpjqkd}pqhgj}kdspjvasvgqnjnekzgpnpgnanwqzd}}^sn}njqgdnhwkzdz}dvnvpqamߣngznhp⩦mnwaqﶭmnاpwjj붯sméqq}}hy}m㦩zgnhhﭩn|⩧edp[tﭯmq¬wdqbngj¬qennde|jwqhnqnzw_p}qk}qpndptjybsdd}p̩mjvgqv}égptjytѩn\zgpwmakqbzvkpqt|_p9\8:::9;;:<<;===K<==> ~:78<<99>69:8689:9886646877986796886863658667623234468:43877867::88<8::86689667889::9898899688676566766466246433466586587877899889:998789889987:988:9488676688667642464688646954667668789988:889988:67889:969988986886686434646786694467764678988:889889889:96688988767788766423664646647887677:988789:989;:7688788989768669866463368662446786887678::9867766889<<96986898879779678876646448866844256687:98878:8996688:89848:86::866977:77688743462236623665166368;779886978649:88:98989987886887678:686834662436846986446968:86876:8866:9:8878:89987887966834686696646879:76786:9768:788998778998987887866744663446989446788986678::8899689::986799898798788786676466899676::98987699866::878898998898698788768766866426788766::87997698998867::989889889868878878787867664266768:86887876987978899:8698878:9889897968789968:9:8667698667946:66:99:986899698768;;:78898979686887246684887669869<:6868878958898687:868988968688:867:9679574368766346889688:8688987668798985769889:9767988:8988678876646646676589886:987567889787687899768:88:8:97687798:9668868866898876998779;88688798899878878:88:89878:758688667676678:858878978789898899889:9698998:89978:758667876676566788:88:85776798997877899:9698898:8:9767668878:8647876676:889886887665798:97989889::9:88:99887667664688667876978:7677::9887688997::=97899:;;<988;:77:966746886689886686:8::67969:86887898668:9:8;8:99:869:76988=8988689889869646868979:78:889768896876898:8:8;9;;868::867;9::8788668778766767978:88:8876788:8669966896:998<99;:8::9::88:9:99867766889886;899889678877878998896::88<87::998;98998766868:9:6897687;9887878::889:9:6;:87;89;:6788998769::9868988:8967986889889877897768;:87:;9:8<:97:79;;9989986998989:8868688789878878878::889:99=:;8:97;;<;99:;:6:887:89977866887887699876678967768988989:=:<9::8::8:;;8:;7;9::988686:868866:878:9689887889:87899::;9:;;:;<;<9899:889989:97:879:988:867998::9:878::9::<;989::;9:8899<:8::889::99889868789989887689;9879<;99:;;99::9:;;<:988989:;968:;89976884569;9979:9:8699:9878;:88:;::9:;9;9:98::;9789:7998788648;;9978:89869889987889:99::9::;9:9::8::9:8:97893:<886968848789986788:;;:99:9::;<<:;:898899:;:988:8:1;;7898:8:8::8;98878878:;::9::;<::9;<:;;89::98899899/;<7::7:8:6::8;8879;:768:;;<<::9::;<<9<<9:98;<:889:88997*8<;:8<9::8648899889:;:998==>?=99;89988;<;989::97879967::%5::88:9::9889:89::9:98:99:;<89:99:89886"4;866987789:8899:;89::9;98:<;8<:9::=99::99:8669:;:6 2<889897887899889:89::99::;:98:<;8;::;::;:99:<;86;989:963 .<:8:8;6898879889899:98::9899:;::8:98:<<96::99866!*::7:6889977887988989::9:<;99:8:;99;:889:;688:!"695:7:8:97799788988::9889:;::;;<9::98:;:;988766$ 6:5:6789988:95889:9889:9:879;<:<:9::9:<::9987:;989846#%)5;:<:8:98:98:889::88:97::8::989;<<;:<;88;<::;;989:998868'#'586:78:98998:889878:6988::9:99:;<<;::9::;:68::98:98867,"&476;989988:89886:6778;9877899;99::69;<:887892%%178::7889:988::8:7868:99:;;:99:;:99:88::988766889::4'"*566867998778988:898988:8;7899889:98;98::99:998873)!&4:7977998787667789988:8898;:;;:;9:;:9:98989:;::988789875*"#1=;9878967986678879:7:9989::;:88:89::977668::88*"",;919788679988:898776:;68::9889;9:<:68;9;:87898876798673#$(947789:8669989978::89889:98988987::78==88;9:87::9;;998678896&#&57889:86698668788668::97::989768;99<;879::98:989:9989886*!#.<:88997669766886469::86::89986889:<::99:988:9::889856/$!(<788689889:98868::88988778:98998789:88:89:8898684& "856787678:8:;:988:89976788766899:8986689:88789:;:98898898564) !58678768997::9878:689867886898776679::89:99788789855.$#1:688778868768868689878896566788:8876:88988:8878989:87784'$+7689878768866::7668986899567989668:988:88:89:8879:9::8{|w~|w|~~}|ywtw|zz~}wz~w}}w|yrwv|ywyzzwwpprprstty|tr}zz}w{|}}}yy|~wyz||~~|~}|~~w||w{yuywwyzwwtwwpswtrrtywv|wv|z}zz|||~~|z|~|}~~}z~}|}~t||w{yw||wyzwsptysw||wty~vswyzyw|z|}}||~~|}yz||~~y~~}|}~}w}|yy|wyywsrtwtwz|ywy~ttwzzwtwz|}||||}~||~||~~yy}}||}||}|{y{{||zwwtprwwtwswwywtz||{wzz{~}||zz|~~|~zw|}z||}~}{y|yy~|wwtwrrw|ywwptstwz}w}||{zwz|~|yzzyy}}|~~y~|y}~||{{{y{||zywwttwtt|}yw|ttovww|{}}|z||~~yw|||~|t}|y|yww{{{{w|}ztrtwporwwprwyumwyrw|zz~||wy~z}yt~}|}~}~|~~|z||w|}}|zyz|y|y}rtwwptrw}tw~|wttwy~y||y|zw}|ww~}||z}}~~|z|}|}}||zz{{~wyw|rtw|wwy~wywttstwy||z~zwz|w~zy}z}}~~}zz}~~|~}|{||{|wwzstwwrtty~|~ssttwwz||}~~|yyz|||~~w|~~|yz~~|}~}z~|z||}|{|wwywwzwtwy|~~wyzzy~}~}zw~~}yw}z|}~}~~}}~|w~|z||}||zy|zyy|wwtspyz||zww}z~~zw~|~~}|wz~}~}|}~}|}~|w}|{||}||}}z}z|z}yzwyyttowwyzzww}}w||z|zy~|z~z|}~~|w~}|z}~||}}~z~y}z|~~w}~|wwyzzyww~}wwyz~tyww~~~|w|~~y~}zy}{|}}||}}~z~w}y||zptww|t||}||zww~|y~y|w|}|{z|u||}w|z|w|~}|~w|y||ف|yz~w{~vztrw|zwyrtw|}}~~y||}}w|}}{ww|{||v{w~||~~zwz~|||~|}|wz}|zwwtwwtwyy{{zyv|~||wy}zvwz}}{|{w|{|~~zw}}}||}zy|zz~}~yy||w||yyww}~||{w|{z{|}w||{}|~~|z}}z|}}|}z|{v|w||ywyzwzywwyzz}}|||v||{|}z|z}|||~~||~~y~|~~}|z|{v|wwz|zwwyzwvww{||||}}v{{zww{|{}{z|~~⁀~y~|}~}|zwzyw||z|}wtz}zww{zy||~||w}}||zwwv{}{|~}|~~~}||}~|}zwwzwywwtw}|ww{|zw~z}zw{{}||{zw}|{~z|~~~||郀{{~wyzsy||ww}~}|yww||y|wzw|w}}{}~|yww|}||}~|y~zw~|||~|}|y|||~|w~yty|y|zz||}{w||~yw||zy|||}}w}|yz~}z||wy}zz}zwyzyz{}|}||{w{||}ww~~yw|~w~~}~~}~}|~~~}y{{wy}|~||ywyy}||wz||{{z|}}z|~~||~w}||z~~|~|~~}|zwy|w|~w|~zw|z}}||}zz{}}{zz}}|~~y}z|~yz||~~|zy~~|y||}}~wz~|y||||}{{}{z{w}|z~}z{~~~}~~}w~~|~|~||}y|w|}||}|{{|}z||z|}z}||~~~|~z~~y||z}~{{|yy}|z||zy}{wwz|wz{w||}}~~||}~~~|}}z~~||wy}|w}w||ww}{|~y|~||z|}}~|z|~~ڄ~}~~|}~~}~~z|z~~|||y{~}~~}{|~}~⁄~}}~~|}|~~~||}~|w}{|~~}~}|zy}~|{~~~~~Ł~}|~|~~y||~~zy||tvy~z~~|y~~|{}}|}~၃~~~|~z|~z~~|z||yt|~~z|}~|w~}}|{|}|~~~~݀~~~|~~}||}~z|~r}|}}w~y}|t}z||w{||~~~|~}|~~Ӂ~}|}||mz|~}}||~|}}{|}}{}~送~|~~|}~~}~~h{z|y|}}|{z{w}~~~~}||~||~~z]}}}ws|}~~}||~~~~}~~||}~}~~z|z~~wzRu}|||}~~}~~~|}~~~、|}~|}}yLt}ywyy|zz||}~~}~~~~||~~~~~}wy~wGo}||z|}|{|}}|}~}~~~~}}~~}w~}~~yrHf}}w}||}}{}||}~}~~򀁁~}~}~~}~}~w~~|wwJ]zw||{z|}{||~}~~~~}|}}~~y}||}}IKwv{}zzz}||}~}|~}||~~}|}~|}zwyQHwuy{|||v||}~~~~}||~~}z~~~~|z~|~|twNR[v|~}~}}|~}}~z|~}~|}~|~~||w|VMWu|w{|~|~~}||}~~|z|w~}|~~~~y}~|~|}|ww{bKUtzy|~|}}}~}||}|ywzz|~|zz|~~~~πwy~}||{{|}|}oSRmz|{|}}|}}~~~|}|z|y|~~ل~~~~||~|}{yy|}tWL^uyw|w{~~}{{|~}|}}~|~||}z|~~}}~~|~}~~~||}|{r[ITs{zz~~|{}{wyzz|~~}}|}~|Ƅ~~~|~}~~}|{|~}{u]KNl~|z}~y{~}wwz}}||}||}z~z~~|}~}}|~~{{yw|||]LKb~m{}|w{~||}||~|zzwy|~||~~y|~|z|~}}|{w{}w{rNQYtzz|~|ww~~|~~z}|~}||~~}|||{z}}|~|z~~~}wz}|wTMTu{||}~|ww~|wy|z|}wy}~z~}{w|~~|z~~|~|~~~|~||w^JMg|}~~zwy~zwy||yty~}y}~|w||~Ł~~~||~}}~|vwhOJXz||}|yw|~||~~}|y}}|}~||{{}~}~~|z|~|}|}}~}}~|w|sTHL|uwz|zyz}|~|}}~~zwz}}{ww|Á}~}yw|~}|z|~~|}~||~|vwt\HJu}wz|zy|~~z~|z|w}~|yz||}ww||~}zzyyz~||~~~z|}z|~}uuvfOMlw||zz||y}zy}|y}w|~|z||wvyy{}|}||zy}}~|}||z}~}~}z{}sVO`{y}~|z|zw||wwzyy}~|y|~~uw{~|~yw|~|||}}~||z~~}ѩ孧㡣骯࣡НӦЪˡ롣㤩ۣӤ񧩪橣穬ٯ짦񯧪졣ᤡ㦡믧˧⯭աӡ鰭ᬪ詤Ц棡੧Ω⬩򧪧ӡڲ𭩦⯲詪ůᯰ褧ݭ硪ӯ魯ݩ𪭧}n㭯g歩_a򭯯맡d}몯be𩪩⩧ma੪jnz֧thv骧es뭩ϭpnٲvg맪𭯯婧zbqƲ}ejӪ}gejmyqhqꪧdhůkdwԩqagï|ad窯kh򣩤Ϥtk妪87678:9866779:86788779:9:99889:989::8788669866424667766887899866788689988::9778899:99:987244246 69886768789:99:998898:9878686 6:8767887898898898989876788668876879878878667878979:98998898989::899877886898787866434667689:98868988:99::99:;:9889:9986689887996620266468989898:99::9:;<;:9889989:8668647664876789::;:88::9889989;8899:;;88689989:9668646646989:;::997987<;8<:88:;:89:86:8<88788637646446553356788987:9889::;8:99<:9:99::;;:;:8;794886687644347655687788799889:<:;9:;9<9:;;:9::89;9;7:677668644664467557753576687889::99;::9:97<8::98868:896::7766786675336633576689:;:99::998986:889::9898;884668664678664668533663358877889::989:<988968;:99::9897;896448633468:443446755664459889::988:;9799;98><::9869697:8678634668932344346556655:9889878::988997;:9=;7;::988;686:98:764786443346643345567::89:79::9869:9769<<:9768:98::889866424667464697768:86689::;::;;:988;;:889976886 684432466<866876:99:9868:988:;;::989;:88688667686466786442467668:6689866:88:9879<:889878:978;;8989978879766766766434676687668988:87799:99:;:9667::76:;:98878866434866764667668986688:989:;::998::879::8998897446646834466466767::76886689988:;:=<:9889::9:8898897446646744664766776686744:;847::78;<::9889:98;:9::988664766786446788766766776688765568::8::8::768989:9:88:97788667658976642487667664778:78878:9868:9:8767889:9;:9889876765676465466876889:8877899848:9:7866889:8998878:;997676566424478876676878:8977667889968:9;9866889:8;:9878899::8667854468676798988:88:966889:8;9889868:976686566466897686798:77:8866997879:98768::9789964665668767887667887988:9;66768:8879798878:9:98864788656785668656689::8686699;7789:99:99::698878::788786887678968665448867899866467:889:9869878998898767899696:6766866546869889869877876796789989678896789:9866969665686788:988766967899898899878988988788::97668686466556766788:9:8868789988788989899877988767664764455667868978:8:88797899877889867889876788686646634556776978989:8988789678898:867887887689877264355677687889:997788977898988778764788682635655688688779988:8788788768::886788987664683645665688689768866:8788778:899886788789:698868876 67998988768:7864678669:686689:9887978868788776 676689988788679788789:9969::8676689:8766797876767766786678688987689767766897989868634668:886866788667887887689866834667889789884668:88676646676787789866967889886:;982688789886776766767877876787887988::988989:88434688:;88678686776678878768:699899786788766::8876987886446678678686887667889988768;6998::776688766886;886678876656987:74887889:;75::8::;6769:6866775483344667 6988:87::99889797578987567687788678664667656688766766:8998766886746886676889877:866765678656788998868878;88787996988:98766768644676457875678899::798988:68899868:8<68::87676678776687446656787667789::87876849986787897:66988988778868864469966966789:;98:88:8998766::886697798966875663668623667678788998:868769886::78856:98:89479977687466367643678898988799889:66899866877889778::9758998776762664664677898876889::986798878798898:9877898878998865762686746687897768668::86799789897988:899876688788678689886878868977879878::8668:968:88687897887867886686886898898988:8688:676878:89668876678866388647698879889::99889:9869788:9686989:9:667899878668876748664669768877889878998877:77988687:99:9:77898798898767686684866788788778878:;:866:68:86686:88799866887|zwz}~}wwz{|w{||z{||}~~}~|z}|yy~|wwtpswyzzww||z|~~|yww{}|w}}}{{|}~~~|zottptwwyw~}||}}|ywzzww||z}||}}~}|z|w|ywywwyw}zyz|}|z}||}}|}}}||}|~~}zyz||yw|}zy|z~|z}|z|wwyz|z|}~~z}}}}||}|}}~~|zz|}|ww|~|z|z|ywwtrtwwyzzyw|~~}|w}}|}||||}~~|yy|~}|z~~ywwpkowyywttwy|}~~}|||}|}}~~}||~}wwyww|wtzywwt|zyz|~}}||}}}}||}|y}~~|~~wyyww|wtywwttw~}|z|{||}|~|w}||}|z|}yrzwtwtsswuurqquwz}}|}~~|z}}}~~}z~t||ywy}}zwttrtzwvvuuw|zz|}}|z}||}~~|~~zyzzww|}}wttwwttwzuvzzuruzywy||z|}ބz}~||}y||~yzzywwyz|ywwywwzuqrwwrquzywy|||}w||~~}~}||twy|ywwtwz}ywtww|vqqwwqqv||zz||}|}|}w}~~~|~z|~wtt}wrrsw}tsrttstw{vuwwssv~}||}|||{ׄ|~|y~w~z|yz|wrtww|~rprttsrtwvvwwuu~}|}~~}z}|}{{~}||ȃw|w~}zwtz|yttrrtyytrrqrsuuvvuwz|~z~~~}|y~~zy~~zy}~}||~|wwyytpsywwyzztstwywtw~zzw}|yy|~񃀁~}}}}~~zw||wwyww|ttrptwywwΆ|wwy|zw~~~|y|~|}~|~||y||wwzw|wtwyyz|wttspswzwy|yw|~|yw}}~|z~||}~|z|~z||~|~~z|}z~zwwzyyzyywsrtwzyy|zww|~}}|zz~~~~~ywzzy~||}z||yytrt|wwyzzywtwyzww|~}yw||~}~~~||z~|~~|}~zttwywsw}rstwwtywwzzwwzzw||ww|~~||~||}~~~|}~|}~zttwywtwzstwwtzwwzzwy|wztt|tzz|~||~~|~~||wwywwytzwwz|wttyz||zwwzwwzzyy||{wuuw||}zw|~|~~}||~zz||yyzyv|~zwytps|zwwyzywwtzz|z|}}|{{}~|w}~|{wz}|~~~}||~}zy{yvyzwtwvtwwy||zw||~|}{{z{}~|t|~z|wy||~}~~}|z|~~{yzyvwytpttz||zywwzw|z||~zzwwz|}~~w|~~}ww||~|~|z|}~~|wwz|vsttywwyww|}ywzwz~|~||}||wy||~}~||}~|y}~zwwy|wvywtywwyy|~zw|yz~|{{zz{{z||ww~~zz|z~~}zw|~z|~~ytwwvyww|zwz||zyyz|}z~||~wwz{zy|||z~z||z}~~}||wtz||wvw{|vyww|yvywwy|~|y}yy~~{zz|~~~w|}}z}z||z|w|}zwz|y|ywyvst||yz|~~}wwyttyz||}|y~}z|~~}|||zyz|~~w~wyzyw|wwvtw}y~}|~|y~|zz|zwz~w{|}|}~w{|}}wz|~~|yw~w~wwvuw|wz||}~||zwy~w{|}~|}~~|z|~||}||z|}~zww|w|wtwwuuvuw{wwz||~||}|wy}{|}|{||}~~||~||{{~}||}}|zwzwywtzyssuvwwz|w|~z||||}|z{~{||{{|}||}~~}|w{||}~}zyz||y|yytywrsuvwzzw~z}~|~|||}{|~wz||}~~||}}yz||z||zy}~}zzpwsruvvw{{w|z|}}~~{z|}|}~zz{||}}|}~~|}}|zz|zwtz||y|pwrvwvvw||w||zz~~|}|z|}||}}|{||{y|}||}w{||}~}zywwtwyw|rytvwwvw||w|~zw}|ww|z||{z{}|~~||wz||z|~y~|}|w}||zwwywz~~|~|}{w}z|wtwz|yww~~y|ww|~~}}z~z||w|z||zzyywwywzyy|~~||z}}y{~z||z|~~~w~}wzww|~}zwwz~z|zwzwzzywwyz|wwyzz|y||~|zy}~{y{{wwy||}~z~}~|w|yrtwwy}|}y|ywywwyz||wwyz||z||zy}|wy}rtwwz||~z}~||tww||}wzywytwwyzzwyz|zz{|~|wy~wz}}||~|}y~|py|}|zz|~||wzzwzwwyzzywwyyz|zz|zyz}{}}z~|}~||}}~|~||trty||}||wz|w|wzzyywwyz||{|{w|y~~|~~{|yz|}|zyy||zw~}z||wtswwz|wz|y|w||zwwyz|}~~||{y}w~|{zwy||zyw||w}|ywwywz||zwwvwy~|zzt||z||~zv}y{wy|ww{{us|rrstwyywwz{{zwwyw~}||z~~||}{zv{||{uy{w|{{|}}wz|ywwtww{wvwy||zywywzww|~~|zyy}|}ww{ty}|wyzy}}|}}|zz|wwzwuw{|wuwz|}~~}}y}|}z}||}}|z{|}zw~||}~~}zwwzw}wsttstwzwsv{|zvyz||~~z~}~|}w|}~~}||w|}w|}|zwzww{|zzww|ztswwvwz|zwyzz|~||z}zy}t~~}||yz|z|{ww~||~||{{}|w|}wtsw~~yy~wwz{{zz|}~~~|}||~~}||zww}}ww~zz~|~ww|{vwwqyww|wprywwzzww{|z|}~~}||w|zw~||wz||}vy~}|~sz~~{zzy|ztwwrwzwsrwz||}}}}|z~~}}|}~~ww}~~|ww}zz}|~{z{}~zv|~|{zwzwpwwtwwtwzz|~||zw||~~}wz~||}z|{~}|~|~}{{}~}|z}~~}|yvzwpw|wztyww||z|~{zz{zw|yy|}yz~~z|~}~{~|}|~}{wy||}z||}|ywz|w|~|}y|z|}|y|~{zz{||{~|z}}wy|~y}||w|z|~z|}}|zz|ywwz||yww||}|y}|}||}|y|~||}}~||}|w||}||y{w|z||~yy||}||{ywwz||ywr||wtzy~||}|zz~}}||~~|y~z||Հ~w|y~}~~wy{}~~|z|ww||zwzt|ywwtyw~zy||zz||}}|z}~~}|zzzz~||w|{~~~{zz{}~|z||}zw{w}ww|t}ywz||z||{{||z}|wwy||wyy|y||}z~}ww|}|{䧤頻囹䪩筩ꩤ٩᧪橧򪭩礣맣שּׂԡ觩޲𬯰窭򧠘Ŭײ⯪Ȱ鯪󣤤񰭯εϛ웚篪󡝡ݪ۝Ť槦񪩤פध묡񧪤⤭򤣣棧ͧ蠝󡤧񩪧蠟魪목ܤ띣ؤ٤סޤ񤪤ǡ𣧧窧ڪϧ񦣩褧쩬뤣硞ܡ頡ܩު㩤ʪܤ穧㦪磡թ󡝤խ䡧򧝩譣54456876689778789867::798788767:886775:8:998536689766767788767656688779:88:8878:97:88656;:97886<7885374687789:788765567568988789886687889875566:67757878988774634677688987766887:897687:667689889866887823445664678878898665688787987878767887898778878:887667783446688467787787899887656778998668767668679889767898898877677844688577677686898878987787687:86998868:8878868877864235668:98998;48977997887898776975887868:8876889868877566568987788966998989::<;896896478<636889786698;:6687788558:975689889869679889:98998::877886677866898788686798996687898323798668987878867:<88:96898588678876679976876778977877887434665698868998878867:;68::789869768878867887788667898788767667668;88768998877889:868:968:988668769876887:86789987887678876889:9687788::78868::867766:87789976::6788:957878846687568898677889:8878768:7878766898878978989858878838976898867986679978:96688982679858;89:97668:698:97867:977678688688698689:987868:9:8688778867667899868867::78:67:88678868997667989:99889::7868:9:8788768 8789968:68:89887899766899:;:887889:9:98788787868:89:899887889:9887667889::998778877889988678898779:88:88:886889889:988988::97878988788988988986:8876677889896889:87:9::9:887897786:8868688:98:6787786989;9:8878988:97688:66986:8898:8988:989::99887696889<9:8987788:98878;:66887;6696:989::89;78689786847:88:8998=:6689879648:9867989577988:9558869:8668868689886878:9887988986897789867886879778788668779:86688577998866789:889889:6898898899866886979778668689986776799886868:98;889::9::989:88998678798:67797668678688789899:87986:9989:9889::8988989677:6689669887788787798:98788:99869::98668:9799787988679:779987788987:87989867989::8998676689::9868997897:8:778789889898899887:98969968:889889876889::9:977887699<886896788996:99:96684886689966;:9868878878:89989;68868:7686686448898986898897698786898878:7899:;78968:7687799896788768998788778998:97878966:98898899:79:88:7::989988688998768::86889889878:98::6:8899889::98979988976866889899:9988:86889889867988;:99688989::987898867667769969:988976688986768778:988998899::9778876898786688968988988788696866868689:9679889::97887688988:8896887887;:844899688:;8668::86689889898:98986889::7886688767789889:986889:799898667987987:9886679:989:98878975689868898:987678:;989989686687667898898688786986998798987887898878998878862887867899877899 897889866:9::89:9778 86488689987889:9987989::978689788677889878898789:9899898:889867877667789878:8898778998::988687889989667689699878878667889889878988998788766898878998:99876978::6::7688696678879768986689989:6689;7689879:9:;:78;;9:78:87889989868668::8768::87899:87887799:679:;8899889688:96;878668977988:7789988:987899::9:9:789:;9:9887898864;99:889988:8796887889898::8899889889::9:98878:876789:<989:887898:87968878987688:99:88:987789;=;99868:9677988:8878988989878988987988:9889::876646648879879788988986889889866988;88988::98899868988998::<<:;:899786686889889768897886899<98:89::8968:;88::8898688698686697899889668898:;988:97::788779768::87889:9868868:66:6889:768878:87:89:889:95886779768:98876689987886769968897684679;98:899889:978877669986898899:98:9889863:76686878868789::7676889:98866:987889889::8789866966866789868668778868:67889887<887896688788697667668976766786788789678897876866887788789889988778863694668466878646766878:98668898898986776686788:;::886568766:4767366864676646::89:988979869:8786689889::98868656686636447646766:66989:899:89vtsvy|zww|z{}z|}w{z|z||zwz}|wzzv|}vqww}{wwzwz{||{zwzwvwy||z{z}}}|}|{|{}||wvwz||w{}||vrzsw|{z|{||{zzwvvwyzvw|||{|}}|ww|{|}|{vvwww{z{zvu{zz||{z|||{{twyqsw{{zzw|||{{ww||z{}zw|{ww{zww}}||ww||{zz{|prstvwwyswz||{|||wwvw||{}{|z|{}{wz||z||z{}}{|}|{wwz{|rstwy||swzz|{z|{}||zwuw{{|}ww}zw{ww|w{||}zw{}}}}|{zwz{|ttsty||v{zw{zw}w|||}|z}}{{|{w|z}w|}w|}|}|z|}}|w||{zz{|wtprvyyw||}s|{z{|}|z|}{{wzu||{}w|||zw|}|}|w||{{z{{uwwvw|~}zz|}|ww}~|~|w|wsz|wrw}||~z|ww~}ww|z{}|vuv|zvw|~}}~|yw{||~}~~||z{||ww{z}ww}|z||w|yz~|~ww|{||roq{}ww|}}~~}z}{|}wz}}~y|~|v||wz||zww{zw|zwzz}~zz}z{||{sqswwvw||y|~~}}{||w{w|z|~|w{w||z||wz||zz||yyz}~|z}||}|{zwzwwzww|||zy|~~}}z{||}y|~y|~}}ww|zw}zw|}|{z}yz|~~}z||{zww{||{y||~~w|z{|}{||}|w||wz{ww|{z}{wyz||~v{|{}}|}sww|{vy||}|w{z}}|||z|zw}z|{|{ww}||}|{}~z}~|~|v}|z|}|}q|zw|}}|yw{~}ww{z}ww|}}~|pwz|v|}{ww}w~|~z}w{z{{w{|w|}y|}y~|y|~~|{|w|~}w|}{{||wzywz}~~}y}|wzz|wz|}yz||y|~~zwwz~|~~~}|~{|w}~}z||{w||}z|~~y|y|}~||}|z|~~zww|~~||}{}|~~~|{||{z{}}|z}|}}|w}|~}~~|}||}z||}~~~|}}|zyyz|}~~~}{{}}zz|}~~}|yz|}||~~|zz~}}}|||y|}}~}||~~~}|}~||~{{}|zz||}~}|z||~}||~}||~|y||zyyzz||~|~y|}}|}~|{~~}||{|}|}|}~zz}|w||y|y}||~|yz|zz|}y~|~~}}|{{||~}}|}}||~zw|}|yy~}w}|}~~|||~}|~|~~~||zy~w}|~~|}zz|}|~||}}|z}ww|}zyy~w~}~}~z}w|z}w|tz||}~~}|yw|~}z~wt|~|w{|vzz|}vu|}w~}wy|}w|w}|}w}z}~||z~}}~}|yy||}}~zz}~|yz|}w}zz{|{||ww|{z~|yy||vzz~|}yyz|~}|~}||}~~y|~}||}~|}~~|ww||}wzz{|wwywy|w|~~|yzzwy{~~}}|y|y|~|}}|}}~~~}~|}~~|yz|{}w{z{wy|w{|y||z|}~}~|z~|y~~}~~}}~}||~}|||w{{yw}~yy~}|zz||}|}{{}{{~}~}z|}|}~~}|}ywy~~|yy}~zz}z||y{{{~|zz|}||~|{|{~|~|wz~}~}~~|yzww|~~~|y|~~z|{|{{|{}|}|~|}~~||}|z~|~y~~y}}|~||~|zy||~~~~zz}}zw|}w|~y{}}~w~~~yy|t|}yw|~~wy~}w}}|z||z}|~~}|~~y||w|zy|ww|ytt||}~~}|~~||}|ww|~}||}~zy~|z|w|~||z|z|~~ۀz|y}zy|zz~~|~yz|}}|zy}~~|z||zz|~~|}~z|z|~wy~|}}||~|}~~€{|}z~|~~|}y|}~~|zw}|y|}}~||~|z|~|yy}|~~||~~~}{|}~zy|yw|}|~}~~~~||݀|y|}}~||~|yz~}|~~y|}||~~}}~~~}z}||ywzwwzzy~~y~~||~zwy}|~|wzw}zz}~||~~}}~~~z{|}|zzy|~|z|yw||}~w}~}||}~}|z||y~y|wy}y|y|~~yz~||}~~{}}||zz{w}||~}|||}~~y|}|z||z|tt|~~y|||yy|}ww}~}|}~~}~}||}|~}~|w||}~z||wy|}|}|zyz{}~||}~~|w||}||~z~~}~|wyz~}z~|z~}|wwyz~~}~~||z|~zvw}~}y||}~~|~}zyz|~|~~|~w|yww|}||zyyz}~|}~|w||z|}ywy~|w~~}|zz~~}||~|z||z}~|}|z|~~||z||wp||z|w{}~~|{{}~~|}||}}|}}~z||}~|yw~}~~zz||}}|wt||y|~~}}z||}~~~}|z~}~~z}y}~z|}wzz||}~~|z|}||~|{}~|~~}||}||}~~}|||~|yz|zzywzz|}~~|z}||}}|~|zz}~~}~}||yw|z|}~~}~wwzy|~y~~|z}|z|ww{||~||~}z|~|}~~}|z||zww|||z|~~}~~}zw~z|yzw||y~ww{|}||{~zw|~|ww}~~}~ww}~zw}~|z~~z|~z}}z||~~|~|w|ww|}zy}|z}~~|z}}zz~~wz~||~~||~w|}|}~y|z|ww}~{{z~||{z|~~}||}~|z}~~~~~~z|~~~}}|z|~|}}|wt~~||~~}}|}zw|}}||z||}~~||}~~}||~~|}~||~~~|}|z||zyz|~~|~||}z}~}}zw|}||zz||}}|}~~|}}zy||}||~~}|}}|}~|zz|~~~|w|~yzz~}|||}||zz|~||}~~}~}z|~||~|z~|}~||}}~}||zwywswyt||z~|zz||~}||~|y|}}~}||~|wy~|}||~|}~|}~~|w}~}|~~||~{}ww|w|}~}||~zw|}}~z||ywy}~~~||~|}~~w|||}||~|w|}w~|w|wwz}~~}||}~yw|}}~|~|}~{{||{{~zw}|z||}~~|y||w|www||~zw}|}z|}z|~||~~v||w{{~zw|~||}zwwy|~}{||}wzw~~y||}~zw}twz~~||~~||~~{}|zzww~|y|~}|~~~|~|}}wqzww|y|z|}||}yw|z}~zwzy|}||}~~||ww~|z||~|}~}|{}~|yw~ww|wyz|~|y|yw|zz||y|wz||}~||}z{}||z|~wy||}}|{|}|wy~zwwzww}|~zwzywz|yz}|z|~yz||~{|zw|ww}|zz||z|~|}~~}|zz||}wrw~tww|tww}z}ytyzww}z}~|yw||~}||~||w{{ww|yz}}||}}wvw|{wytzwzrww|wtwzwwytw|}}~~||~{|w}{|yy}~||~~}|}}ww||wuww|wyryttzwswzwwww~}~|~~||~ϧ⦤򡠡󠚤⦧󦤡򦧗ک›ՠѦ񤡧ͧʪ㩬⤧𧩩𭪧ߩ𪩧񬦦짪󧣩򩣪ª塯ŧǡ󩪩ԪƩǣ詧槪ۭꧩ­鬦ݭդ穪ꩪ죧䤧ꪯ񧤧⩧줪몧멪񩧤۩⡧ީک檩뤡ʪϣ檧㡧ʣʪ񧡣󧦧쩧檦⩡򡠡ۧꪯ𤡛<6886::688:89;87897688:699889878:8998776788789;788698979:8:897897688989:8867889989978978877887788789887868689898:89:98::98:<868:889989:987878877887787886898788688:97788987::869:8998989::889:9878767886898689889788:678899889868:889:8:989:;:877658898:887786698::898799;9868968898789:99868898:788798698:978668768988:99867868879879989899887889884898;:898876879:869:9::89:868:6688988:87898898787789::988689867669887897886758:8:9796686898968867:87::988;:79889868866898668:89878789688698:;9::8978989;9679889:9898667::98667668898998767989868878667698687898:9::9::86687899898789:98878899876678687876886778879::9899:98878868:89:98899:986676786878768876889889667889879:89;967899:989987886676679898798:8976878646686874689989:86678997668878:677886657989879897866868:89878689679989879:87876689869866568998866786886866487796786766968<88988:979769:76797688977667889:;946868868:66:8676889699688:9:8469:68:98:887876889::98766:99868:86678878:66876868663686988688678799:6699:7877899::98<8789::96689667668689867868784467886:996698:77889:899::99:7689987788778766786689887668446689698988:8877889:998678966898788678867866424864467668988699:6676889:9886788646876778:9978866446964646689886868896876889877889:6886878868:8:78867498966967768:9884747786986898897:998869869:88986688:78868696626;88:66884647886968667769:98899866898898669:9887686763944688468874:88663298876889878998:98868768686885:87787669668866298866289:88::89:877889898:8646886:9988467787:668764266767758::88::89:98876;::9899:986788766898966789::9668664667688669988::889886:99889878966898:9887889976787667887658877::886689::986678897899867989886684;:987789:98897668897665688:989678998:9:889889677868:8::99889:9:89:867987:63668:9:998:866:879::688967<89::898:<:89:86:626778:988987897689976998789989878987;;8699698:8988789:998868987899889877:9899878868686699886778:998898878789986789887;;878878868466:99886789989898669:99:9679987886996688689896868998898779:9889989989:9769:99:968998788767656985898:698:889:9889899899879::9898765567985897969897787787789989::889789889::89788987568869979698866778767998789::88968876787989::88:7789::9868;8788::8:8:8854786688989::8766789876889;8::88998976788776889869886689889788:89:976887769889889:7889::9667886898:8:97:99889887887899799:;;:8987667669889988::86898779:98:969:678878788766789::98868:988::88::99:877898769869968945678898788:9778698868989::889989;87789876897996887886889:<;99876;:877668789989;;:99889668987899:9::9:8:889867867889:98877876698876889889:7889::789878:9;99:78669978<6676776387889:996679::88988:89:9986:8788;8679:6:66767::9:6898:899:98778:96698688::988:9889:98898;;68;:96786789688::8976788988988;8998898786:<99:797787788688::89798876689866347889899898876:78:89:89887868988976678998876898878998::98678:988986:88989:9:98878689889987689::9988987898::98778:9889::988:;:998::88987956:88:869988:8876884877889::9889989:;:889::98998988:86867:88:86689:7688:<98778866889::9899:9889788:85788:66:887887869856977867:99:9::99889878::769887668867968968:899:88:66886898699:9887978:89978:87;8877887689::8778868968:68878:778989889:89:99:99:868868::8766868:7896897767:7789989977889::;:78996889::9887668998767978978869:8865867689978:67889::858879:99:868869898788:788667679877978898:86898879:989978776598877889988788786896778789898:9899887788:;96676776678786796788689989:9886989:889865566778788989:67867889988986899:88985675868;98:9w||}|wy|}}|}{}~zy||w~~}||}|}~}z|}|z{zw{||{|z}||w~|~z~}|~z|~zw||~|~||}|yz|}~~}~~z|~{||{{||{z||{|}}|~||z}y|y}~|~|}~}~||w|||~~}|~~~|z|{||{{}}{z{||{||w|~|z}}|}w||~{{|}}|~~|z|y~}~~}||~}~}|}|{|{w{||}}||w}~|y|~||~z|}|w{|}~}||~}y|||}~~}|}~}~|{{wv||}}||}|zz}wy~}|~|{~~~~|w}~w||}~~|z|~~~|w}}|}}z||z~|y~}~z|yw}{w}~||~~}yz}y}}|z~|z~~}~|||}}|}|{|}}||t|~||~|}zw|z~|w~|~|y}wy|}~}|||z}~}|}|||}}{|{zz||~~}||w|~|y{yw~}||{|{||wzv||~z~yy|w|~|~y|}yz}z~|}z~||~|y|}ywyyw|}~~|ww||}z|z|~w||y~}~|~z}~}~~wz~}|~~|~|ywz~|wy{ww|}~}~~}|zw{}}w}|z|wyzy~}w|z}~|~~}wy}z|~~}~|z|~~||{|}~~}zwwy{|w|{}{w||wzz}}||z~~|~~~||}|z}}y}|~~||~~|ywy{zww{|w|{}{w||}|zy}}~}||}~ywz||}~}z~}~~wz}~~р~}~}{|}wwyyzywwz|}z||~zy|z}wtyww|y}ztw}~~}~}yyz|~~{wy||{}yz{||ywv{|}{|~z}ww|y}}~|z}w|~wz~~}|~|z~}z}zwy}~|w|yywvw|~~}|ywwz|w||w|wwt|zz~wz|wzwy~y|}|~||~z~zw~zw{~{w||zzyyz||~~tw|y||yw|ww|wzw|}~w~~w}|~}tw~y|~||}{}{w}}|~|zyww~~}y||wwz||z}ww}zw|w|ywrw|w~||y||yz}z~~yw~~{}{z}~~~~}||}z|~~ywy}}||~wwzyy|w|~}wz|y|z|ttyz}}w~~ww~}{{||}~~}~~~~zw|~~}zz|}zz|zwyyz|ww}~}|zwwy|tsww}~y~|~|}||{z||}~~~}||yz}~yw|~|z||yz}||yz|ywtpt|yttyzwwyw|~||y~~yy{y|}|~~||}wz|}|wty}zyzz|~~z||wwssw~ytwtyww|~|}}y|w||~y}{y|}|}~|zz||}~~w}}|}|wy|z||y|}z}|wzt~|~ww~yzzw|~}|tztzz|y~}y|||~{~~||w~}y~||~|ww||z}|w|w~wwpw}|yy||}|twsz||w~w|ywzzy~~|}~~|yw|~}}~|ww~~||{w|wzyr~ttw|}}||sw|}|zt}|wwro~|}zy}}|~~}z|~~|~||w|zw|y|y||v|zz|zww~ww||ywp~||wwp}~||}~}zz|}}|}~~||~~}}wtw||w~~||tyzz|zww|zwtpyyzwzzv|||}~~||zy~}~~~|yz||{wyy}~}~yyz|~~wwy|ywtwyzy||ww~~|||}||}~}|y~~}}~}|z|~ywwy|}~|~}|z|}~~zwz|zwwyz||zyv|}zz|}ww|~~}ywwz||~z|~~|wz~}~||ww|t~|zz|~~||~zww||~zwyvw||~}~wz|~~|}~~||~}||~w{z|y||~~||~~}~}wz~|zyryww||~~~}||}|}|ww|z~y}|~yz|~}||}|~}|~|yypy{{|}}|}||}~}|zz||}|~~zw|~~zy~~|z|~~|}~}z||{|w~~y~|}~||}|{{|~~||}|}}yy|}|}||~~}|z}~~||~}{{||z||w|w|wy}}wz{zz{}~~}||}~||z}z|~~}y{}~||}}|z|{}|z|}w|tyww}||}}||w{|~~}|~~|}||}~}yy~~~~wz~~|z||www}|w|~|~w|y|}||}|{zz{~~~}|~~|~~}~~zy~~~~y|~|z||zwzwvw}v|~|y~|||}||}|}~~}|}~|~~}~~|z~~~||~~||{wvvw{}v|~z~y~|~zz{{|{{|{z|}|~}|}~z}~||}}|}~}}~{}}||~|{vw}||w~~z~y~|}wwz{{z|zw{}{|~||~w|}zyz|z~}~|}z{{|~|w}}z||||||vtz|ww|||~}zww{}~}{w}||}}|~}||~~|{w{||zzw}|~}y~|}ww|||{||}}||}~~zw}|{{w~||~}|~z|}}~~ww{}|w|}|~z~||}}||z||{|{~~}}{yy{yy~}}~~||}||ww||z{~|~y~w{||z{||{||{wyz|~~||yw}|}~|||}~~}zz}|zw~}y~~w|~suwz|}}{|}|}{zz|}}|y~}||w|~}~}|~~}~}zz}|zw}~z~~y||{||}||}w|}~~}zw}{{yww|z|~~}~~~}||~ww|}{|~~~|}}}wz}w{||||zz|zww}||{y}||~}|~z|}}~zz||{|~~~܁z|ww~~{}wwzwz{wr|z|}~~~ww{~}|~}}|}|~~~}y|z|}||}}yz~www{wzy}~||~~~|zz|~ww~|w}|~|}}|~||}~~|}}||}}~|y|wz|wz}y}|}~zyz||}~}}||~|}|||}}|~~}|}}||{|w~~zz{|{z||w|}}~z~}||zyw|~|ywrsz|}}|||~~}||||}|zwz||~|||}|z{|w|~}}~zyyz}~~}|}}|zy|~}||{|}~|yz}||}|w|}~|~~}}|{}w|~||~~|zy|~~}||~|}|z{|}}~|zz}}|||}~~|}}|{vy}}|y~~}}|||zy||t|{z||}~~}|}}}~~}~~}|}|w|w{|||wwy||}~~{y}}|~|z{||ww|}~~|΁~}||}~~z||}|v{}|ww||z|}|zz||ww~|vy~z{z|}|ww{~~~}||}~|z|zw}||{yw|}|wwz~w|~w||~~||ww||y|~}w~||}}{{z||{||{||{{||{w|}{{|}w|~w|y|}||z|{z{||}~~||}~}||~}||w||}|yy|}zyy}w}z|~w}{{wz{{|~~}~~z{}}|}z|w|}}||}|zwy|~~|zyz~z}~z|}y||wv|wzw|~~{|y{|}}||v|}|}z}w||}|ww~~}~|}}z|}|}{||wwzwz~}z{~{|}}||||w}||{}{|{z{{zwv~}|{{|}~~}||z|}}z}w|wz{zz|}|zz|}~~|}~||}|zz|}}ywwyzzwzzyyz{||}{}w{w{}||}||}|y}~~~}~||}w|}||wvvwy{{|}|z||}~~}}w{}wz}|~||~}w|~~~|||uw{u|w|}嵡里ᡪ󤧪㤩𯪧쯪穧衩穪婧୤ŝקçة⦧骧멪ѭԦᩧӤϩ䣤㧭⪣⣧񧣪ৡᡪޡ󧤡𧤡ڗ䤭⤧੧褣ު٪ͩ𤋮ꧩէݩ橧졬ʧ򧩪󧤪馡ک󡪪򤧤تȪ񩭭臘ͣ੪é㦣ܯ䦧줣詧̧ͤί뭪槣짪ħ󧩩󤡤Ŭ觩즩ꩪ⧤ﭧ8789976887687656:887896697988966:878877866876;9898667989:86898898878;9886;9:99:88:8866868:8789889887 898::86889887;9899897698898::8866889988987665566788788988:78689988998:889:98:86647878898898986788968678:968868::88998::9889:9::<:88696789:9878867789966886789868969:98899<;:99866:8898;88689898878876543556548876887898::99:<:89988:86767896898:87887898686566866866788:88988;99::89:7::98899:989798979:896688:97:755686586688678<98986889::9:98864:88689979:8986768789687887687586566865997959::9:989::88::869:9866898768789898876676456678898977859::9898669:869:797665688:9:87746766766876679788987859::99889:8778864689768:8898767799:98867656886698655687887869::988:988986989988::6788789:98876679966886788978879899:98878:889779:686676688::96767788778:66899769:78979:998677668678799767667688987::788766896788658968978:9987789::98898:;979:68977:9898:887699589767787667868:7899::988:9:96968:89:688668878998988:9677;;966886:88998788978:89:7:89:8:;9;:989988986996899867887988:987889879968:9::89;:;:87887688976898::98778778989::88:98899868:847::9;::779887678789988786898:99768877899:988:889868;867:98:9:76866:989989::99886786899:89889988::98898876799878:8688988:8699:998789889898998969989::9889876789886:8898876:869::98898668667889:<8:9988969:9889:9:9889898864979:78876:8479:99:89::87679:8;9887988:97689989988768766895868898:8898:648988:6787899868988669:889:89::87998677688798597886987677:9887669:998989868;:79989985678988:969688669:76998:8:978:;887689:9::9899:99867::8988::9856688:968567686853887;69978;;97889::97899879:8689::87:;:9965676689866558696964876:89988:9899879:98899:869::75676468668588;87876887898778:9899:<:98899:9878:;97:889::746865785667683878876679988::9989;<:989:;;:867:;9789889::963698689686657387789887899889:;:89;9889:;;::87889979:88:988766:9667436887668976:;86:89<<98:68::88:;99;89:978:6654336868:98;667899:869:99:878989<889899:7789889<566899886778:98:9866788:8::9:;:88788::988998787667878:66899767988768:9766766:89::98::99::98976676988789788998657988:887886:89989789::9::9:988988668896898876986678988768:86889887889:7898898776677678876543698669876689768:88:8788669887886566788686788686::8867889:788;86:88::88::8789:97887967668986766996688:8>;79:897887668<6897768:66786674886868::866778988:989:8788986897989866887958875696688667698866868::8667868867669:86788688:97::98679:8667688568668866798876889:8668898788:88:868:9::8:987689:9889658868866886689886688987688689889889::978968868667889796588687678866786876887899878876458866:988:989688:7678878896766866577887668688688788998898988:988998779988:998:87668658856578876676769:8:988:68868689886:868686556886;759858678866786:;9::9878879;88968987664:969868867998766876688668984769978687965896988986788767767:74886889976686653767886868869889987:;49889::868868:96468862566456698768765:768878;89688798998979:.889::988766898:876468689976656655676687788989899797997877'89989:887899787982486:976687565456876678869:898686986883#::8668:78898667:844767632687598668878687::8866878668:80$<:88789878866897467799668648765665:97668996766889687:7)#<9669::889986776788667876676:8667886878::86868688686:68684#!8:;::989986886678588558976688687689866969:7797,##899889:96889;:87886676799889887668947688798966:5(!%::89:;:8988:898768998778::86776678988:5766797:47:0!!*;;:9:<<;::9889988988668656768::667866898789874667988699*$19:989;;:9:9889::6776655687765686996578668987889648:78867;5%*69::<:;<;98998678966;;55:6886568668987886866;=7665:9/#$09:;<;;<=<<:8998::9889:978::77:67866788::77996876:;776:5)$*388::9;<<9;;:9:;;88788699559:77876789<:67::6:9667699:1%&.57}z|~~zy|}{y|{wvw|}z|~yy~z~||~ww|z||zz|yy|{y~}~|wwz~|~|w|~||~}|z|~|}}ywy~~~||||ww}y}|z|~||~}||{{|}||}~||y||}~||}|z~}~~}~zw~||~}||ww}|~~||}~~|{wwvvwwz||z|}~}}؁zz|w|~~||~~|}||~~~}|wytz|z||}~||}||~}~|y{||~y|yz|~y|}w}||~~|~|}~~||y~yz|~~}z||y{{}~~yw||wz|~}y}y~~}}~~~~}yy}|~}|}y}~}~||z||zwutruvwut||zy||}z}|~~Ҁ}~~}}||yzwz|~y|~||z||z|~|w|wvwy|yw|yyz||}|}~||}|~~}~z~||~~~|~z~|~z~|~yy||}~z{vvy|wv|yw||yz}~}~|y||~~~~}||ywt||w}~~{~}~}wzw|z|~y|{}|zw|zv}yvwy|wuzv~~~~}~}|}y~~|wwyw|}zw|z|~|~||zwwzwtuwy{||}|}{z}u~~|~|yy~|w~z~{ywuw||~|zztw{ww{wy|{ww{{}||z|u~~~}}~}zz||yty|~zw|||}~}{y{{~~~||yzwvw}}wwy~}yuuw}{}|}|z|w~~}||}~||}~|y~|~~|}w{|}}||}z}~~||zww{~yw||ywy{||}{|}{}~~~||z|π||~zz~y|yw{yy||~yzw{{||{z|wwy|~{wz|{~~|yzzyy|}||}|wz}z~{w{yw{w||~}zz}}zwy}~y{|}}|wu|w|{}~~|zz|~~||}~|~z~y|~{{|~||}zw~~v|~{wz{z||{wwy{z}w|{|~~}||}||~~w~w||~w||ww|}|zz|~~}|}~|}|~wzz~yy}}y}|~~|z}|}~~z||~z|~|~~|~~||~}||y~~y}~~|yz||z~}}~|z|}||}~~}z~~w|~|~}z||zy|}||}~~{{w|~|~|z{|{{|~}~}||~||~~|y|}tz~zz~||}zwz|z|~~}||}}|z{|w|~}~~{y}}{{}~~~}||}||~~|w||wz~|~zw}yy~}~~}~~~}}|ww{|y}~~|~||||~}}~}}zyz~~}{||w|}~||}y~~~~}z|~||~}|}~~|~y~~~}~~||}~~|zyz}~||w||~|}|zy}w~~}}~|wy|yyz||~|~~||~y||}~~||}~|~||ywt~z~z}}zy|sz~~~ȁ}~}zyz~}~}|z~|}{w|}~~||}}zw|zwyww}u}w|||}||}|wt}~||wz|z|~~|y|~}|wwy|||~|z~~|w{zy||z~}v{}||w}zwz{z{~||}}||zwy~~~}||}~}|w|{~~}~~|uwz|~}|~w~y||yw{w||~z|}||zy|~~~}~~~|w{}~}}~}vww||݀y|vw{y|w}vr||zy~~z|~z||~~z}~~}||{|y||z~~wvwzww|~|yyvv|wwws|{w}~~}||}~|~~}||z{~~||~|y~{uwzwty}wwyyw}v|}}{}{w}|z|~}zz}~}~~ҁ~|}~~~|{|{}|}~{tw|wvz}vyy{w|r|z||zwwz~~|}~~}|~~}~|w{{}~}|~~yrw~|w|~w|ywu{q|z{}||}}z}~~||~⁃|~~}}~}{|}~~z~}}~||{wwy~ywztrw||{wwy|~zy}y}~~}y}}|~~||~~z|wwvtrry|y|~}yyww{}~|y~~~|z}~}~|}}|}~}~zz|~}|~vwy|~~}|wzz|~|~|yww{||恀}~}|z|}~||~~|z|{yyz}|}||z}yy|~~{wz~||}zw|~{yy{yww}~~~|~~~|~{ywyzzy~}}|zz|~{||~}yvz~}|}||}|{||yw}~~|~z|~~~~~||}~}}wy||}~~yy|}~}|{w~|wyz|~}}|{w||w|}}~||z||}~z|~}||}~}{zyyz{{wz||}|{{wutrw~}wwy~~|{yy}~zw}}}}z||wy~||z||}||wwvwyz|}|yy||y{||y|}w|}||}y{||z}|||w||||}z|~~z||}|{{~yzyww}~}y{ww~~ww||}||}z~}~{}}|{wwy|w|~{{w}ww{|ww{t}||yw|w||wwzz|~|||~|z||~}w}~z~}~|yy||{~v||{uwww||ww{w~}|yw|y||wwz|w||y{yy~|yz||}y}|{|w{~}yyw{y||uw}ww||wwyz~||zw}||~|ww|}|~|{}||}||}|y}~|~}{y|~||~yv||w||yy||ww|~||yw}||~~}zy|}}|ww}~||~}}~~z}~y||y|wy{||}}~~{~wv||y|{y{||wwz}w|zw||z|~~}z|}{ytu||ww~}|}~}~y|}}zw{||{|}w{wy|wwv{{||{wwyy|w||w}}z|}~~||~|~|||}~~}zz~~}|}|{ywwy||wv}|uwu{||{ww{yzw~|~}||}}|}w||}|y}w|~||}|ww|w|w}wvvy||y{v|u|y{||ywwy{z|w~~|z||z~||}~~w|~|{ywwt~w~|w}}|yw{~~|{wwy||{ww||ww}~|tzy~~z|w|{yv}~y~}|}~~|y{|}{y{{wzzt||w|}~{ww|wwurzyz|}||}y|w||y~|}~~}{t~}|~|w|}|ww|}|~wtw||wpvwwtuww|{y|{wvzw||z}|~y||z~}~}~{g||~~|}}{wy}~||zwsw|w|~~{wwvwwuvw{yw}zz||~|~|~~z~z~{}z{zV|~~|~||{|~~{|z~|pt|w{wy|{vwvtvw|{ywz}}|w~|~}y|y~|w||qN}yy|{|}||~|ywz}stzy{wqpw|{u~|ww||{z}|ww|}z||yw|z}yy|}jQ}||}{}~|{||yw|~ztwzz~yww|wt}{wvwwv~zwwy}~~yzyw||~w|zz[M~yy~}|~~|y{{yz||wwz|zwwyww{{w}yw{||y|z||y|w|w||y|ww}w}tMI}~}~|w||yww{}v}}vu|zwy|}|ywyw||zy|~}wwy~~y~{{~{bNM}~~}|~~y||~}{||ywwy{y{~~}||}~}|{yww|}||~szw||{~|~wyuXJS}~|~}||}|~}|{{y|~~|{{z}|y{{wwz}~}|}v{ww{zt{kJI]~||~~||}~}|ywwy}|wuy{y|yw{|wwy}~}z|~|{twyz|}w]AOl~~}~||y{{wwvvw}zzwvw|y~~wv{|wwy}~|z|}wt}z||w{vRD]y~~|~~~}|yw{|wyvvw||wvy|yw|~|z||y|ww{yyuiMOj}~~}}}~z}{{w{|ywy{||zz~~w}{wzzyu[O^q}}~||}||{|}wvu~{{|{y{|~yzwwyzw~~lRTfu{שת驪𧦡د֣ꩪ謹򤧧ҭ詯𯪧ߩݩݪ줡䧣ϭͧӧѦᩧ鬤壪񧪲ȯ穬ѣ򩧧ݭЩȩүǩ⯰壧񠝚릩ݩ毭שӧ򣡭쩪ڧޣ򠡣󧩡ئ§é檭󠡡tধ򧡪٘j㦤m㦩zhhb󭪬ݦ񪦅jhwdpdb}}Xkn\}hkݬأzknq688566:*!%48:8:8989:99:99;8787:859=78.!!5968::9:767889:8>*!"478688;*#&4898:8878978:998:76769:89;69-!"6:69::8988::998<,!p468799:(%(69:9<:877879:9::;9899;8:9879,"#6:79::899:9<=4&!?7897997&'*8;::=;9899:98778969878:,$%6:699:98778899:9("0:9:6886$&+8::9=:899::98988778859778:+#&686899:99877889;;=,&*97:6796&&*8988;9799:9889:998987:9887("&685899:89:99879)##76:67:7(%*8988<9799;:898979979788964'"(7:7:9989:99:9;.L68:6'%+9:9:=99:99<;:<:<9;;9;9866:53'$)8;9<:8989976899:8;2("o7:9:785$#.=8899866:98:9<::98779:86:786'$,76:9:8:998:;:7* @8::872"#-;879:989;98:9:9:86788437684&#,77998:889:8)"<679::3#".967::988:88:88:;869;99769893#!.9798669889:8::*$68998980"#/8679:88:88;:99;97:;9::9::0!!/7788679:99:6878'#+:99678/#$288987::;9:=::9:98:87987679."&/56897:;:99:<==.')878678/%&4998977:8988:78<99;:88769:-#*4688:6::889:8:;;.$#98:887+!&7::889688768:23:;99:8::,#,99:697889;=<2%#56:9:8+"'8::789::68::98<3(*58897696:9)!*9899;7;998:;>;5%$r87;765&!+58::99767:867:1)%3;:6:687:7::98878::98<99<8%$E89=974&",799:<::89:+&&6:96969:92$$4:889:989:<<;:;;6($889<863(%/8:889;966768:7%"*8:8677:<9."&3:8768899::99::;=;8-&-89:661&$/9:768;97789687/!#0:98679:=:+!)6:9889:;::98:<>>:1(&::8891$!099668;98989786)"'6;88:8<9)!+89988998868;<<:;<>=3)"797:=2%#188778:99878798($*::9:99:8:5'$/:889::9889::;<99=<2'!687:<2((3989:89:>=9<:97&%-;89:899:9.#&29889::9::9889:8;;0'!9;766,%)5::;;89::76;:97$%-:68:789<8* '48:99:99:9:>::0("8798:)"+:9889::9:8:778-"&2:9:;8:8:5&#)::;887;:7998998;9:79:9)%87889(#-889:;;9:9:6( (5998:9<3%$.=;:;8998:99:99::9<:;9:;9(#989:6$"/;:98899::89:;3%"-8989688;/$%4;89:99897::98::;8:9;<:+$::9;2 "0::889::9989;0$#1:8::5989:+%(6658998:98799:799<;;.&99=0 $2;:9889:9;986*"$4:8;:6:8=6'(.97889:9889:;9<::0%887<. )7;;:876887:972(%(6:8<;8:9<.#(198<87988989;9989::;8;9:3&:96:+!,96788:;687:1%'/988;;9897&#)379:98:88979:99:89:9897<9;6(<;6:*!-867889::88<2"'1:78::8795%(-9:97:9;996797996798::8<8:5&79::"$-::88:;99;66<;&%+:8868:86:0&$288<9;9:88:78669;;98978::8:8*89:6"%1<:88::88::8<6%%-98877:988,%)6::<997989:88668::99::9788;9-78;4&&3:9889988:9;>0##0:88:94%!-9::98:8989964989::99:=:8;;7*::+"%6;976889:9::)%'5:99:98;8-!!2;9:88:9989964<;:;:989;98==:6.::8&!(889866779::3$)/868899:;5(#'7<9::988:9<::;:9886:;9:6476&%.95:9877898:0$)1966789;:1&&.9:99:9:89:9;:988::98877:;8998:2! 0;8896:,%*4878769;6,%)5:9:878:;::8:89889:99:9<<9869<2! 2<64689:;;:96"".=:5;969;3'#,;;:<988:9;:8:9;:9:;::<79;:;::8+%*4;669:88::9, %2878:9698,$)3;:789:6698:97;<968895687:;:8:;<:5)#*5:787899;6*"(6:9:578:6)!'8<867898698987::7577:79:8::99:;;:2'#,778;:9889892("-8;9:7::7/%%0::88;98779887::;9:8;998998:;;:8.'&2:6879878;;<-%$.99786::5*#)58:89;:9878899:8:8;::8:99:7*$(6;79698879:;($&288:6870$!-:7<9889;;68::8786:8:89::98:;5&!*69799:;:662%$+699;:86.%'4>4;:899;:78;;::9:99:8:79:89:;98:=2# /886::687.%(19989988971299498:;99788<:998:88:996:>99::=/!!6=996:69:785(%+5;866879957:69859;889:9<97869:8:85/49:98:;;<'#)8;6:78:76;8.(&089866894:9796:77899778<9789876698:0((6;69;;<::$"+8:7968967<6+&(29889889488:88;99:9889876899:7:990'(6=9:: !/97886876:<2'$-6:88::884688998987767:9987:97.(+8;9:98<<"496887966;9,"$28:78::9568976:987789989:98896994*'.99:;88<<= (796899869;4&!(788989668966:96689:;:889::98996890('09:;<99::#.9968::78:8.#$.9878:86:86887997568899868::9889.&&288:;9:;9;&398878:79:4)#*4:988:87:86:869878::99::97889::898-')5:8898:;9='587:6898980&%.9::99::8976>85868899768::;:8788677,(+9<:9:8::7<16658:98899,$(5:9;;::98:8878:979::9899885:6(#.9<;::;<<;:688:;99;7&$-879:99;;99889:969989989877:5(%0;<7889::9:;:9:98/!(5<88989;;9989989:8688987692%%2::6889::;;::8899:1%"/8:;89:9989:99899868898:98991%)6<:89::;89866:;:8,!(486899:9889::98899899889878::997-$,8;98899:89866:;8/(#.6968;98898::988998998898:982'",676889::;878879:5'$'48:8::89:9::89:9889:9989:98998:3&&298899::;;:86798652&#*::76;78:<99:9899889:99889:;:9987:1&'3:89:9987w}}vyw^JSs}}|}~~~~}z}z}vz}fJJu~w}{y{}}~|]JKt{|w||^MTt}||}z|~{}~~|{w{y~|y~cJKwy~}}}~~}bJCty|{~XSXw~|z{|{~}~~|~}{bLNy{~}~~~~sUJ{|{~~{TV^}~}~~~~}{{|~w}z|aORyw~~~~|{{|}~~XLjy|}wQU_}}~~}~}}{z||v~{{}_MTy}w|~~}{z|}~aU^{wzwTT]}}|~{~~||~}}z~}|zXKTw|v}}~~|{[MN{wwzzXR]|}|~{~~}}{~~z~z}}~ytWLY{z~~|~~~fTNzww|wVS`~~~~|yyvrWQ[}}~|~~zy}}pXL{z|vQMf}}~|yy~}~|zz~|y{}wWQb{y~|~~}||{]H}}{pKMe|{~}~~}~|wz}||srzw}tTNb{z~~|||}~~|\Lw{~rNLfwz}}||||}w~~zw~|qNJg~{~}yy~|}}~~}]Qw|~|~}kKMi|wz}}|}~~{~~kJIiz{|}w{~~w|{|VM`~~y{}iNOo}|||{~||{~|zy{gKThvw|z~~fV\|{|y{}iRTt}{{}~|}z|~}|}}{weN]ty|}y|}}~~|gQM~}}}{_JT{}}|~~w||zw|or~|aMa~w{||}~~pRMuw~}_KV}{}w}~|rY]u}|~zyw[J]|~~{~~}||vSO|zzwuUI_v}~{w{|y{l\Rrww|{zTMv~}}|}|z}~|~}SO}~{tUKbz~~||~`TUw~wwpQQs}||~~|~yXO}|~}yqXSh}}}~ywyzw}zSL]}|w{{fLTr}zy|}~~~~΄|cTe}~ywmTOizy}z{}~y}{hJMj~|y{~_I[w~||~~}mYT}|lOIk~wy}}}{}y\LVw}}}\J`|~~}}~~||y}ρq[K{~{pSMm}}zz|}z}z~|YQ^~~~}vWOh||~~}}~҇oVIw|zoXYq~}|~~{TSc|~}~~gNTo||~~~}||}~}kVJ~zywaR\u|{w~zOSew}{|}]HVs|~~~~~jXL}z~}\L_~}}~~|{{|cKTp|}uTM[|}}{z~~|~~}{~[S}z}}~XMc}||~wYHYu~}|rSQg}~~|~~~~~XM}~wQKh~}}~~}~rSLc}~}~w}}|hQSs|~~|~{~}|~_QpHKk}||~~|jONl|v~|~_SXyyv|~~~~}|~|{~{~gTkGQp~||~~|w^LQs|y|wWXfz}||~~~||~jS}}zfH[z}zy||{~{oXSYw}|fNXl}}{~|}}~~}}~rUw`Iayz||}y}{lRWh}}~}~{UM[r{~|}}{~~|~~}z~wYw]Jc}yz||~}}oLVlz|}{~uRXe~z~~~w{~{~~yz~|}}uU{KQe||~~ywUR_}|y}|wjTQo}|~}}z|wy~~|~z}||]|~yLRl|}|||wSRc~||z{~}}aR[y~z~|~||ww|~~{}}~cz}sTTq~||~~||~jNNk|}}||~sRJe|}~}~~wt~}~~~|z^`LRw~zy||~~\RWv~||cIJo~}|~~}~~wt~}~~}wf|UJX|}~|yyzz~rQ[h}w|}vXMWz~}|}~~|}}ywyt{wURfv~|zz|~}kQ[m~wyz|mUTf~~~݀~}~~~||~||{{z|~|oJHk||}}~waS^t}{}{yybR[u~|{||}~||~~~~~}yoJGpwtw|~wKLgvw~rWMa~||Ё~|~~{~|`S]tyww|}~bHRp}z|~w~}bQ\q{|yw~}~zy||vy}z}v[M]uz|{}~~y^LYwuz|w\JW}|w{|}y~|~|zzuzz{}~~pWMb{{|~|}~}~oXLc}zziRSj|}~}{z~|}|z}~|~~}}fVTpw}{~|z}cSOgz}yv]M[v}}~~|z|}~~}|}~~{^OYwz~w~}|{~YOTo}||w|{jOJe{~|}~y|=|z}w}|~~}uTJ]w~{~wyypSQ`w~}wfRWtt|~~z|~~|z}~~}oMHi}|}}|yy|zgRYm|~}|zlp~t~|~~{}}~~|}|w~~hJJw~yyz}uYS`v}wyw}z~v{w~}v~}|~~~z|w~}|vis~~}VN[|wz|zy|fXTk}~}yy|~s~z~yzz|{{}{||zww~|kXXww~OK_}z~w}~wzw_TXp}|~||~t|}}|}||}zw|{jVYw~HJh{|}w}zwoVOey||}|ty}}~~||zzwz|{{fX_|~~}ELsw}}{~wybKQp}{|~vw|~zy~|{{|:|}}}w~s^Wf}}HYz~w}|y~tTJXz}||~|wy}~yw~ww|||}y}~kYVj~~~Mf~~w}{|}fMQg|z}}y|y}}z~~zvw|}|w}||}|}~~gUUo}}~~Tq~||{}{t\N]t|}}{|w|w|{}z|}|||~}eV[u||}~Vv|{w|||kUSg~~~|{w}v}w}|{w||z||wz{zaX`~}zmwwu|}|~aQXv~~|}}|z}~z~~|}|}}|vwYNfw}}|~~zUOe}z~~~~~}}||~~w~~}~}~|{zvXRkz||~~~~|hJXv}}~}~~~}~~}~}w}}~~~|zw~oRSoy|}~}|lRLh}|~~~}~~~}~~}w}}||}~|}|lS\w|~ր|~}ww}bJXt}y}~~~||~~||~~|~~}||}~~}z|zcQa|~|}~~|~|ww|iYNfyw|~}}~|~||~~}~~}}~||oVKbyzw|}~߃|z}|{vWQVt}}|~~|~~||~~~}||}~~~}~|qUTo}}~~܁|wz~|wvoUN]{wz|~~~|~~}}~~~}||}~~~~|zmTVr}~~~|zӡdpdd}dehqded[wpwgjsdqtknwgmshqsqq}weqקzhjwn}vgyqjtpvmzwgmhvm󩧧}aЩehqj|gjgjd}meh௧dbơth󯪪jkeqt|nqj}mhުdq줡hȬnh՞ety}zd}ɩpkϧsb|nqhũpkseqsmmwkwppg}gqβqqkdhbzԪyqkb|gt쭩|dϯzephymvkҶtbwyqpjqͩtdn|kp}atwg|geqqhzzpwhyaypmwhmepgmpmaekjpwq_m㪯gmvwêpazwpyjwsb©nvshzy}dgtnwsemsnqm}gnpnnzqqjjndgn|nvbdsdwƚmzwhvsn駪mzsqݭdaڡpnzѬd_egvhЯp}anm|zh}gy|dvvhwgnpϩtqpk}hzԦkyykqkd=qd}pmnvhanyddyptjzwqwwkeqw񭦭tyadtk򦭬w^gem:vayqdwythhmssq|j}tztspwmwƪyjskꩬwn᪭dw駤npng𧩭p|֭dw賓m쭧yj𭯬te߰vmtsqܯsj}쩪qt<1* <=5&%=:=6(&19=7,($:;><0) :==>2)#@8<;<5(&.9::9*(#:8;8>,&% "" !% f e Q R Q J T Mm T]!Q TK MD ME!TNo#VOT ]UH mXI tYJ y[O zYT]!|XUO!`WQ lVR uVM {WTw bM[ tUM |]O zXJw!aR] l]L!|~l]A uTRwYTlzaXQj\Go\M}uYTf~]XM}}bUE- %%!"&'  m"n!m!d!q!h!q}%m qe#h\!h^!qj$tkq }sa wb"yd zk yq}!wsk!vm!tn!th!vq hz sh }k wd!n}!}g!}X qn!yqwm񭲻|_񭸶|h񩵲yq}wh󭩰s^r ''''''' &&'''''%&&&&&\$%%%%#$$$""###!""""!!!!8 &<=:77:8878998899*!'4=:8997688*#(:98768878:98:7<=98;;99;:88:87;90$#39886798*'7::<<88:9::9889:88697$$.:85::689+&)9<:<<8899:99887898&"(466:;899"&.:<:<<88:998788:-"$189::787s"(4:;:<<99:9899868897<6&$+697789;<")8;;:<;8:8:989::988987;9*%(297689;0%)8><:<:787:989::98998789-#&/9:8668*(.9><;<8687:98899869692&$'5;88:[#(2;<;:<8698::88786<6:6)'&4;6699&+7=<;:9889<98868;79976::3&%0:89;7-'+:=<<::99:877889::87;:6($,767:8%).=<<;::8;8688689:989::9+#'36698Q&,6>;<<;::79988789;98988:0$#/66773*+;;:9879:87879:9897695'!+6976')+;:<::9868;8897998668:+"'3976!&0:;<::9878:98897887:1%$.688^!$69>::98978;979769978:6:4'!*59:$%):;<9::978::6:9:88<::89976899661"$-8:&&.;;9:<:76898:9:66:889878769:5&$,8<j&'4==8;<:887:99669889:9889876:8+$'3:5&'8=<=98:<;:986:9978::98668984::1&$-7&(*:;;9<<:88:9889889::9975577669<6)#+6#*/::98<:98::8:8896:;:98875887+#&3<%*38::89::;:99:88:6:;<;::979659.$"-*'(57;<9<::9:<9:89::<:6887898;66>4(!)"(29=><;::>7988:89989::6:9699:895:9- #`!&4:=<:;::>7:98:998769898966:5$".#(6<=;9;:;;<7:99:;::9869887995668<,%%(,9=<:9;:<;;7<::98::887:98856=2&g#(2;<;;<:<;:8<9::889;98878:599897';$&8=:;=<<:<<:9=9::99886889883:9985:/-'(;>:;<:;:;<::>8:9::9:78699896799763::y */<>:;;9::<::>7987899:;:8987:697;9847==$&7::=99:8==;::9;:9:988:76689867;:77:2&(9::<::8<:99:<:9:989:887678877998799$'+;::;9::9<:99:787679987:9669:9W '2>::9;;::9:;::;:9987898788:4!&6<::88::8:;:9::988988<88996576988988:(&(::;88::8:;98898987:87::7684::69:88x%+2><:<89:9::6::98::99::989987789::96:8588:>::9:;:99868978<;89856965>*'*9<;;:<8::698::8898997889:86789::9887y()/=;9::8::8:8::899:89::;<:88998787889987 ;%'1=:99:8::8;8::89:9:87899:8::87898*#'5:9;9::8::8:8::89:9:98:;::8::9889:98v!$-;9:;9;::898::89989889:99:89989:9889 9#(3>8:99;::;998::8898976897787889:9887899 ,))7;99=9:;9::8:9889:8:98898878899&))::<:99=89::<<6997898:9899789899889887789::9 I%%3;::887:99::9<:9968865799:8::6987789:;; 5&)6=;<;99::998::9889:988:;:9:9::7987889:&&-9<:<;8:9::8898::88988:8778::98:9::899887678R&2;;9;:6:89:88:9:889::87667889:9::887677.")6=;:<<8:89:89:8:889::;89989::99:9877887!(+7:9:<<::99:997:99::88:99::989;:9:88:9988788K *.988:99;9:9:;:88:89:966998899889:9:89:887887891#(5<::<89<7989<<99768:9569:889:98898:99;8658:8657:}GT{z}|z|}|~]JWs|{w||]NY}zw|}|{{}|iQSj~w||GTc{z}{z|}|z|}~sYNa|w}}JVl~||{wz|||bKYw}||QVu{|{ww}|lNQo|{|]K\}{~||{{||}~rVQb}}|KJf|z||||zz{cRY||{|||JRrz}|||{kOMr||}|w{}]V{}}}}}|y{OQf|vw}~`U\~||~}||}}{|~|ULYsww}LTg}}}||z|}}|eLQm}{|{KYt}|w|}zwTQ`yz{}~K[|}}}|}~}z]RXp{y|~kS\}z}{}}~~|{|~eNUh}yw|^Yf}w}{}}|}}ww~pTOWv}||MXp|w}}||{|yyy\WTtywy~U`z}}}|w}{~~zwqURj}~{eV_瀁}z{}}|~|{wXObzyz}R\f|}w}|w}|~_MWrww~}Taw{|}|z||}|jQNhwyz{r]_|{|{|{|~zwuVJ_w~zwV\_}w}||{~~}yw|`KVr~{yJTj}{|}||}|~{|}zlROfy||IOw~|{|z{y{}ysWJ]v~QS\{|w~|}}{w|yymKOe}TUg~{w}}~wy|}||{|{w~vTQa|UVs}|}}|z~~ww~}}||}zy|_OVqvTW|||w~~z||ww}}slUOe{UX]}}}}~}}~~zvvz{www\M_yM]h~}}}}|}}~w}}{v||{_MTrS]q}|~|}}|y{~wugQLc]VYu{~偆~|~w|}|{|}wwtXJ[LXp~{}|}~~}~y~w~~|v~cHMJUs{}~~}||zzww~~|~|~wwvQLgNYw{~~}|wy~}}z~~uyw|aRRYb~{~}|}|z|}uwpTNYp|}||}|~~|}z|v~~}zVQT}~~}}|w}|}~||r~}uicVX|~~z|y~~|~w{~zyrH^h~{}z|~~퀁|~|zy{~|s{OUz~~}~|}zww|}}w{{zoTX}~~煁}||{wz||zz~~}{~~QV`~~~z|{w{|{~ww~HWp~~}|{z|}}|}|~|z||}tJTy}}|~}|}}|}|wvzy~||~}|YTY|}|||}||}{|{{w|ty~}}R`o}~~y}}|zz{|w|v|}|J\w~~~~~}w}{||}vwwv]W]~}y~}|}~}z|}|}wz||}||{zX[h~||||~~}|}|{|{|||{ SWm~|}||~}{}|}|{zz{|}|]NVu}}||~|}||}}IQe~}~}|~~}}|||}||} ~MXr}~~}|}~|~{w|{{|z||}}}|{| b[\z~~~||}}|}}}|}}}}|{|}T\[~}y~{|~}|{|}}}}|z{zz| SSq|}{~~w||wv{~}w~}{zz| uT\y}~}}||}~~z~}{||}TTc|||}}|}~}}}{z}}~}~~||}|zw{|ETo~w||}}|}|{ww{||~~}}|zwz{fL\w|||}}|}|~~|{{||{JY_z{|||~|}~~}|{||}}|G]g~|}~}|}ww~||||~}~}|z|}|{{|mNXu}{}{y}~vw~}|}}~}~~|wv|}wu{_q}dv}jymp_qyjdteymt禧jm}e|tmednydnkh}tkms|sgygq멧gmeyqmez}nwp|jsyqkvhw獵|vqs欳snt筯wkn|毧hvq禬mj}秦tdt|穡etdq穦nkbk秬vd}mp|ekqsުqmstީktqv𬧡sksw}|hh}hqp}mg}ty寵wdzgw쩪ahds򩧧mgjynnyqjy者tmqtwaks󧩬qw糯mtavdqߧyqy쬩nd|}v}wz pv񭧭 }jt bm hw z| q|z pp硧 q|qq^qg| dyަ _} jw   u!!! """>!###"$$$#%%%$&&d%'''((('))q(**%)+++*,,)+--%,..2-///.00 / 1 1 0 28::9:88:866<75+##+7<88:7;::1&#(96897:90$'3768578878::889:;988:9::<9:1*$)5;98::879:6,%"0499:;83"#,8:7998868::98879::<:7767887:5.%%.::8:;7882)!(17:;:97($%6;6::9988:688988::9:778:84'!&4:88:7887880&&,5::98:4)#.6699::989::78˞::87998:8667:878,!!/9:7758:9::5-&&0;:79:=,&'0998:988989:99:8679667:6794'"*6:9769988:96("*7:8:9;.($+::78767876799@:;9788:9=89:9.$&08:8:98778:;,$%07:9693+$'3:886689889C6899:98968:6:688:2&")598989::89:2)"'4:7598-%#+9788:<::78>8::8:8:87:+!!.?88:8::68:62&".67758*!'48779;:889988o99889:;:889869<5*"*797:8:;68986,#(269:79.&$+0866:87h:867899:898599:/"#,88:7897898:2&"*5:7694-$%+896589776:878899:8::88986:782'"'57:778789797,"%0968:93'!&3997876986569989:988:69::88;976.$'.6::787996894(#)27:787/&"-3886987678J88:;:78:8:;:86679:9:5'$%19:88989:91&$*6958:8-&(*16876798788=868::88998789980$!)59:98:899898-$%386:983,*&-688698878558:889:8669:988597<:)$$29::868;3'%*48=7788.(.7768688786676876689987:67<;3# &7>989:6:79:61%&,99:6:6567::88976887:8895588768968:84+!$3:899:5868:84-&(27:7:97789:878988:7879;8776897588554&#*37:9866579986'$)588:8:88:98997788779:7768:9:66899768768;0%&-6:85766779:.'#048698:869:9;8878:8976879886798788::<6(#(2;85967767:5,"'-8689966899:89988677:98868676678898988::9.&%.9977667876::3%!'38:65468778799889867699786689::8:886893,$'49:8676796886-!$,69/+0797766789987:89889667668899897:96647872%$/6:96867966585%%'26)$,89886657::88988654456:77:;78;894( %1:7696697:88:2'!(2("-8967;:78:8675889688766966:96687980&#.:858:99868:8.##*& ,7867:8677557988978998877886797,"&1966;:898::994("%%!-8989;8::977:88989889:998875692'#&7869:7::9:899.&##!.99:799:758:9877889889889::976787767:81($/988:79;6:79;6.#"!-77685988::9889:9889866799873*!'498:9796:67996)"!.87866:868::8898799::98898867:9676-!$+6::878956689-"$1889:885688653689::986::89:989::8676866:<3&%%4:8:978869779+!"/779:885786688,:74987876988:6688677688:99852%$&4;:98898649;3#"17566866446886&7:7867996889668967768798799768+$"/;9:9::9769:0$#2857686678:86#2::8788:677886789787687989:956:3&*79:9::98799/$$28676867889:86"+6:89:6:668986789787687889:9658;."#/6;8788:9.#%3:68576688974$'2989:78658:878878878867889877=6* (2<889:8."$4:785668876&$.668997769:788787887988687:92"$+:99:99787,!$4:8965899886*"*4887:897986889788787:88778:85'Ə::9676-#$398:86899886.!%2::699;887688988786857::88;;76-(,78:99678.$%288;976887645%$)67<978867886889889:87789885*!&0;<2764:-!$889:68:9986686*!(08:788987::98 868994($*2;48958,#$669;6698898667:3"')8:7:989988989989887::.$&*97::78-#&67:;76988767;:)%%2:8:99::86889:9889:857:4)#$47;978,"'99::8987678876990"#(68988:9878:9877 867:;9/!*3:767'"(99898877886997&%"1:77899:9877887869;:;6*#&.::97%#(67:88688786::;/'$*:7899:8987998995*%'6;:6%$)68:8978998788799:5&%$99:;:9::9::9::87886867;,"-982%$*9::7::899878878::2##1;7869:4:9889889878878:977,%(2:4%"+8775698:9868989:896(!'9;979768:87897789887878:97:2(#,95$%+878776589988768679/$$2:8:86;9:879866988767889877-!$46'&*87679778897679:=97:3'$+69988<;:889867:9887678875:4$ */+$):966::98986359:=96:7-&'.987:99:889978<9988998867887;9-"!&)$)::66:9789:85467986:;3)$(467;8:88989;:9889:9877889873,#"(&*:98786678976689:;:8:7,%%-69::;88989889:98878878:76564*%(%,:997657886678979><6:=6)')695:9788779869878998898878:77687/''!,::965768987875:8:;;:8:3%#*9:988:78;:978989968778998856995+"#,:9:769965885578::887:7*&&3::6869;87769899887:8679:74866996-$&-85877:7887765689<9899;92*"*7;7;76986678998877987569:85989;::2&$+8697675689656698:78;::6/"$18:;867889:688788;67784667683# ):9:754558966758785698895(!(0968779;:77866998:8987677669898:7& *;865676579778588:76889::91$#(269857986886689887579856878696% *;7446876787886:9;9887::9:7+%"*6:856889878878757::79:8;8:9& *;8667678877679;778867:89;1)!&59:9:87:668977987::768878979776%#*:7757:97656:}}|}wy{u_MN_z||{mUNX~y}{~jQVrzy|v{|}|z|}}͟|}||~m]Q\u~}|{waRKks~}qLNb|{~||y|~|}{{{w{|}{vfRRf}{||}|p\JYmz~{XOSww~~||}w|}||z{{}|tVITs}|{}|z}|jUTbu~}t[Mgyw~~}~z||{}}yw{|{}bJJh{{u}~veUTjzbTWk~|~||}}~~|}}wz~yw{wz~sVK]w~zy~||yXK^{}~gXO`{}zyz|zyzz|||~~fQTj||}{z}bOSj{w~q_QVr||yy}~}|}|w}|y}yy|}oUK\u~}}~}~o\LWs{v~}eRN`~z}||{}~}}||}|}||{_JJf}}}y|wpTLfyz{zv}]JVs|zz~|}}|}|}с||~}wv]L]z~{|y||yaNXowzgTO_j}ywy||z|wz}Ѐ||~|v~~iLNb||{}{|~}oTL^u{w~teQS`}~wv}z{{ww|{|}}}}~}yz|oVLWuz{{}z}~{{aLSky|~rVJTr~{|zw~|wvw|}|}y~}||zygOWgw{|z~y}sYM[oz{}{hTLcr|}|ww}{wz|||{||}yyz~~vVOSl}}|}~~mTQ]wv}|eTX^my}{y{|{||}|w|||~~}||zz|}jQJ\v~}}~||cOSq}y~|qb]Ucy||w}}||{|uu}}||wy~~}}v{\QOo~}}w|rVR]t|zz}}fXf{{w}w}}|}z|ww{w|zyy|~~}{w{qNGUz|y{ylRTb~ywvwz||}zw|}{|}||vu}||zy|~w||s_JOq}~v|w||teTXo{{z{|~}{|||}{|{|zzy|~{u}}vvtTM]r{~}wwu{~~}yWQ[v}||}}||~{z}}{{{{w|wwyww|~zw}{w}jRTcw}v{yw{{z~fVNkt}w~}}y}||}}{{|}{w|z||ywwz|{}}yYMXp}u~yz{{wzvbKWe}y}yw|~|||w{{||w|yzyyz|}|||~fTRf{{wy{|{yqSJVr}wusy|{z|z|||wzwz|wwy|~|}|}y}~qaQWs~}wzw{~y|}yeJQbwh`k{~{{ww{}|{}|}wwzyy|}~~}~z~ywt{}zoROhwy}yzwyv}uSSWow[Ob|}}wwvz}|}}|yvttvyzzz|}tXHRmzwww~{|}pWJXoXKc}~y{{}|wzu||}~y||zww~yy~yw}z~|kTNf|u|~}y}|gNN^THa{|yz|wzzvu{||}~~z|~~}|zz}||}}ywyy{~zaKTlww}~|~tXKRSJe}~}~|z{}}||}~~}}~}||~~~}||zz{uypVNUz}w{|~gTMNJg~~~zzu|~|zz|}~}}~}||~~zyz|z{w{}lYOi||{~w{yfNKIe{zzww||uv}|~}||}~~||~|ywwyw{~~}{r^IVt~}{ywzw\KJg|{|yy|w|}}|}~~}|z~~~||~||yww{~wzwcJO`y|{}uww|eKOl}|~}|vw||wurw|~~|w}||~~}~|yzy|ywqTRSs|z||wzz~`JKi{{~}}vz|ww}|b{t~}{|{w|}ww|}wzzw}|~~}voSQUs~}}~|yt~rNLl{vww}wwtty}|wUz{|w{~w||ww|w{zw|{|{~~{y}_OKi~~zw~kQMo|vzw}wyyz}}wNo}z||wz{||wz}z|{w|z~|~~uwrUD]z~~~}z~hQQp}wzw}wz|}~}wL`w}www||w{|z|{w|z||~~wu|fLMiw|{}|}|fNRrw|vzwy||}~ztOVo~|~{|wv}|z||}z||z}|wz|}~}{zy]GXo||}}~}fKOsz|vww||}zwTQgyy|{zw{||{}z||{|}}ywy||zoKO_{}zbJOs|~wv|~~||}|y]L]s}|z|{}w}||{}}{}{}|{{}}uVTNry{ycNOq~||w|~~}||wfIRow~}}{w}|||}}z|w|vz|}zweYAb{}~w{|gQRp}|zw|}|zzwtuRQ\yzz||w{}|w|}}|||{{|~||u]JTjpzytcJQ||~y|~~|ww|w^IXj|{||}{| |y}~tYQ]os}~v}bMQwwyw~}}~|wwzrLV[|{~}~~}||}}}|}|}{gQT]{z}cNTyz{y~||zyz\RRo|~~|y|}||}}}||}}|v{t[NOs{z}bLW~}|zyz||zy~~jKMXw|~}}~|z}|{z{||}w{iJE^qzw{WLY~~}}~||zz||y~~{TSLm{{}~~|z{||}||{|ww]NTg~{RMXw{}}y||z|yiVO^z}~~}|||}{|~~v]RWwySO[w|}~z|~~|z||z~vTSO~~~~}{}||}wy|}}w{bLCe~|oSO^~{|~~|z||z}oNMm{|yt||}}||~~|{}|{}~{{bRXpsSK_}zzvy}~|w|~|}~wYIW~{~zy||{}{{|~}}||z|{}~{oXMbvOR_|z|zzyv|~~}||zy}w{iOQp}}y|{|ww}||zy{||}~}z{zcIQswVT]|{yz~zz|}~{wz~zqWO_w~|}||}wz~}||zyz||}}|{usQG]i`O[ww~}~}wru~yzcTWg~}z||{}~~|}~~}|yz||}||{{~cLJT\O[wwz|~|uty{~|yq[QXty{}}||}~|}~~}{z||}||~~}zrbNKYT^}z}wyz}~{wy}~|{bRRew~||}~}||~~||{||z|{wuys^SYRb~zyu{||ywz}zww[V\wv~{||z{}w~|z|~~}|~||z|{{y}{hVWJbwvzy}~|{|{v}}rRM]~}||{|z||w|{{|||uw~~u_LNa~{w~wv||uv{|||{z]TTqy}y}zzw}||{|w{{s|wyweOTe}v|zz{||{{wvw|~|~~~o^K]{{{y|ww{|||z{}zvw|v~|pUQ`}y~zw{vw}wvww}{|wiLOl||wz|}w}|z}||wz{z{}}|twwzy}qNG\~zutuu}ww{v|{|uw||}~uXIXk~y|{z{z|ww}|}zw{{wy}}zUG]}wuwzwu{z{|u||{w||~lONXpw~|uz}w}|ww}||}}zv{}vw|z}y~ySH]{tty|{wz|{||w||{{_SL^y|uw|||{||z{|zv{{~}}UH]}yyzw{||zzwz{{||}w{}m\JTv~|{ww}z{}{zw|}{}~z{{yRN]{z{{vzzwuwũhjsjwmt͟}m|negjʦnn|dywkp֩tbqsqzhddsqqvte}wewkmqkpmtse||gvnjddqg}dtѯ}g}jwqkЭgjqgmptgvgptdq򬩬kvyhzqgtkpqm}qwשmd|kp}sަ|mk顧tn}w󩤧٩j_snqԤdkqwĪqh}vmzŧnqtjӤyhwevʤqnpdtէmvdmnkppvzkɣwanvdwweϪqjjjqaŤeqwenpdժtjsqhjdﭤ˪ykjebϧbt|ed񣡡dkekqnpdepmsjgskemhjs\}mmgghjnkt}_wekqmekdk}g}⩭tqjjkbnyXmnnm|姪}dqdm󧡡bw Σym}hmgtz嬧mq}jq뤣|nnzjkgvehw㩡d^vgy棪qpg衬}jqnhwtkƩ}nvpkzqpkݩg[pkjhĦnwpeybvɦwhknkmţbmtq}vkm_}kzqvgdq|kzzmwjeyqnnäpynzt|tvdnh}̞gj}qqkqe}smҡgkj_|wbws_}kjwpa}pgsa}|dqnj}.8689861@G83s76656667:y;8?<688f8898>ih~298788768>I386689866887/98788998667MXS,:878;986678869j):7448:9886689889:7868~u#68:44876687867:68987866IKD#8994388768878:86866877998:b 98844877688988;96766877:86887:jh}86878966788:76:868878667847886478>D687896688:648768864674688638686668669768896476688986684687648686688JXV5685587698797476688987886766968876896967826:66964986986868987887986766:689848:684676;}y 56966:8799865689876684687786865668945898667KJO56966:886787556::87667966568788788754666968:98689988:9887668668646766876676568667789Ti{6967:885678778767:73498665686689667899868==l7686686678676766964665668:886877886766d76866756887789:7768644668665687679:976658778766576676886876856766556678876864646789668665898668877867558668688688678876677878863686686:6456766998668868:86684597796788447468:7799::7656::8788766887:66876877:867878865956648766::88623386688996998986658876687686675588976;8784667687698665889769686687886887887875887996898788:9885776788::88589:67:686898897467679:887876899:9788655687687668:9689966:68789788758866886677898686689868::;<;:98678678869886476878;976886676678776789978768:8697678898576887867867868866786886786689887679889988::8:96686689988586786468789689689646988988687688:886788769758:88968:766566595686478847696248988:;889:76;:78987789988754::98899:887668756469866486864887889:677986:98899889:7668:99:887678878877876868976686987:8689988:7886877899889:766788766787898878689768978:879889877:<88:887887878765698868998876689868:68:76878789988:66:9::88988766878:987899896899886789866988469677899889668799::9876778:98788789887889864668846968898:996486::988778986678878878878964748:66989:<86:899876889:989:99877678876768:879786766767998788678897898:9::768:8;9677867988<<676687897886878876788788998788638:669779887887:;8789886689788687:7568878899876799779838<67;8787799898789899747;;868978677686:868988678876788778;89:68;99866889<868:988637::86897867768687788778566776776788:8788986588;:78986886899866789798798667876677876787668978:88::8879868988978:87887868979879978778788787878998:;:859968:98779<988776679:9878677698:9868;:86678878987797669:65:956::9889978:988987.𙛝|y|~}w1|376655667:;}~7899766889:868:968::76886898678998878976679::988789867::868868998899`8987785799889:8678874689768646889:: R7886858:8897469868898688668:: E87786686887886249879;8668864689 P6878876698868686998:77679::67889 Q968768876867889876869978677667899766899 89768865689987687986768876678:876788騠 676:868877868::98876778778898778968:97668䦠 66988679889:9887877897898779:67998789ߤ 66868:878998899897677867789:986788ڢ 887877889878998789797786767789<:87886֡ 998668:988:88997657587896688968899:џ :88676:9688688:8:897:86887887:9968986џ 98878698676898:8:9:8:86688698898998899887џ 889688676::897:8989866886898:998џ 667::688686::8969668768898778988667ʟ 8769:788:889696966868998667886𸟠 98689788:9676869678876886898998867767蘒 :8668677:8676868678868968969:8868766788 974486686897856679:88969968:88487668898 788:86686678756866868986899889 76686688:7789866766876788987667889:؜ 89868768897889866776789778::;::869::8667 788688788687887678767897798998768876689 67846687977668687678877887668: 6786876766867656788668767889::9986689ퟠ 55678766466776688776788776789688:;͟ 589466466968877886778998787899:9:88789 875;866599877898699898859788:7699768 765;746886698667967786566786:77978::878뭠 6679668658877657:97787786:788988::889ޠ`77866898679488986638<97899897:8::87889:ݝ X88689:866879867878857:6356879798:9889Ȟ X8898789877699788789678656875989797678:9877X778:868998858:88787889;979887:8689:9887X66889889698667968758868>9:788<;9:98789:ܝ7橠6||5~~}4||}à2}|zz|~埠.~ww|~|w/|wy}~|w-{}||zy+||w}|y||z~Ν*~}yzy~|z}||뛠)z}|yz|~}|}}&}|}}||}&||z|z|z|}~#럠}wwyyww|zzy||yz~}𳟠#|z|ywz|wy~}|y|}y|~~ş蟠yy||y}~z}}z}~z|~П w}~w}|}~~|z||{|џyty~|~}|z||y{||}~~џ|wywy~~|zz}~|zy{|}~}}|О㟠|}|w~|}|t||}~~}|w{|}~}|wwӠz||z~~|ypy}~|yz}{{||{wwآ䟝}z|||z~}||w|~|ww|wwy{{||ݤ}|z|}|~wz}z}||~~|ww|{{yy{|~⥠쟠|~}zyzzwz~z|zz|~~|zy~|yy|~秠{w|~|zw||~|y|}zz|~~}~|멠|}||yz}}~|~}yz~~}~~~||}猪܌|~}|{ywwz~~z|~|w|~}wwz|y||zwz~z|~{ww|}}~}y|~w|zw|}y}~|yz}~~||z|~{yw{~~||z|~|wz|y||w|~~||~~쟊|~}zz}u{~~}}~|wz||ztw|~zy|ytw|}||~ 螅z|}|wy}u|}||}~ztw~|y||}~~|w||yy} ߛ}|zz|yww}y||{|}|wypt~|z~|yw|}}||}|wty}~ ءw|z||zwy~|}|wy||ww|w~}{{zyy{~wz|}}~ ~y}zy||zy|w{||~}zy}y~~z|w{zywwz|~~zww|~~쩠 |}|~zw|}|ywvy}~~}zw|{~}yzw||zww{}}zyz||訠 ӡy{y|y||zz|w|~||zwz{|{z|}}~~}zz}y}~zwy|㦠 ww~||ywz~||~~||{|{z{}{}~}{{~wz~~|z|~ޤ yww}||yw||{|~~||~}~{y{z}wz{{z{}~|yz||ڢ ||{|zz||~}{|~~|z|~{~{z}wzyz{{|}~|z||yՠ ~~|ww}~}|}|~~zwv{v|z|~wy}}~y|}~~О ࡀ||wzy~w||y}|||~z}y}}z||z~~w}||}~~|yџ ӡ~}}z|y~}wzy|~||~}|wy||}yw~|}~|~~}}~~}|zџ ||}~~y}|wzw|~z}~|~|wy||y}||~}~~}||џ yyzy|}y|y|~y~yy|}||zw|}~|zz}|}~}|yyzʟ |zw~z|}||}~y~y~wwy|}||w}~~|yyz||wy𷟠 ~|w|~z||}~wzw}y~yz||zw|}y|~|~~||wzzywwyz易 |ww}yzz|w{w|w|w{}|}|w|~y|~y~|}w|zyyz|| ӡ~zst|yyww}y}{}uwwyzz~|}~w~~w}|}t|zyy|}~} z||}|wyww|ww{|{vw|ww|ywy|}~~}||}w|~~||~ zww|yw||zz||ww{wwy|}zy{||}~|zywwz||~ל }}w|zy||~{|}|wwzzwz}~{z||y~|wwz z||w||z||y}{||zwz|zwz}~{z{~~}~~}zw|}}zww|~ wz|tyy|z~zzww|wy|}zy{}|zz|}||zwy} w{|w|zwzyw|wzwvwz||wwy||zyz}||}~~~|ww|~쟠 uvwz}zwwtyw{zww||{zwz}}{z{wyyzz|}~y||˟ v|tywtww~w||{{}|w{z|~~|{}z|~~~~}|z|~ |zu}wyywwu|{zz|||w||}}vz|}zy~~zy| zwvztw||yww|wwzy{{|wvww{}wz{{~z||z|ꭠ wwz~wwy}}|yu||z{zwwu{z{|{{}w{}|~||}|~ݟ zz|wy|~|yz~s|}||wwr|z}|z||z}}|~ݝ ||y|~|wy}z|w{|{|}u{wqvw}{{|||}|~Ȟ ||~|z}~}zzw{||{|~w{}wvw|zv|{zwz}~|zzχz{||y}~~||u}}}|z{||{|}}z|}{|y|~~||zww||~}||~w}wwzy}zv||w|{||~~|z|~ܝ7橠654à3埠1/-+󨭧Ν*򡪩뛠)(&%𳟠#짤ş!ꤧП 󧡩џ󡠣џ𧤤О姨Ӡ顤آ榤ݤ⩧⥠秠멠죤猪ܣ窭񡧧饤 ߢ ء 򨪣窩쩠 񧩧訠 ӡ㦠 駦ޤ ޣڢ 쪩ՠ 秡О ࡭џ ӡџ 桧џ ʟ 衧𷟠 롪򤡧易 ୧ ӡ 롤𣡣 䯤ל  򡤧㤡 󣧩 䦧쟠 䝣˟ 쪡 ߞ 𡤡맡ꭠ 𤪡螦ݟ 𧡣蚧ݝ ߣȞ Ӫϥ椬87967:88:987789:8998987:7:;6()&6<5:<6B6*#%086478:<98;88988:86889::;99:99:989::98::8<6.%&2:>;88;1(&+6:979::8698:998589: :989;;96889:>4)"#59:96::1($)28:85889:998:8998:699::9::99::988:86:8:<<,"28;:57<4(%'17987899889868:7898:7889989::98:6::2#$&<6;86;6)$)18;98:8998788689889:877889:889:9:89:75:2&+5958799*!$.6::87:6788:887898677889:899::97+#!0;;:;:8-#"(38767798::868787:78:66998766899:99::8788::9882%&*4=::79/!#(09;65976868:879:987668687998:968:99::9::99:;9892'!%2;6767." &4::98876::9756:=8766788698:98::68:99::9:99789;0$&/6:8;4.%!&0<988768998678898:9:97::89989:9:89::;>1&!,7858;1'"&/49::9:99864678899:9:98::8988987:<<:8$&069590'!'288799899876;:99886588998;:79::89889:767:;3*!"/44996'""-7:98<;::;::988::9988998:68::8:889:76797-#"+79685*"#(4;98898989:8878989:8:8:878988:77970(%'38:81)! )19;9:8::99::99:9867887698:9799:878988:78:3&!$/:876*!%(4997696;:988766568::85=;649:997679;:8::9886886B3$"-;:<9,#&+68899539:789879;68996689988:97897679989:98:989855% #-9=93*!"+28878=:7898787667668:689;;86896699877688:89682"&,49>7,"!*576689889::6688689789::77:767;;768676688787:0"&/:84*!!*5:96589789686889898667887988::8898669977:686688688:1$&2E:.% &278:978868:877::6799:9667889::869669<89868897:6(&.9.(&)2865976677899:687678868:978847667878879889893# $)!*3798675569:768:9:86675469:98668:746865567876467668868694$%&&"(7?;9:64::89:77;:876688488986469<98879:66868;9976466785''%%,778998686998:8677868868676699:8689877967:886468763$#%*19889986696987976678678864778688978988:87866886468984$"*4778789988:8987886787788746687688778998688:878668868:96'$.99669:9:989978976787676466988986688:9886886689876785$!+86686698688989989986778646686899866886988798668:976782"(75586698684868988976787786687668996:867678698668876691"!*9926449868496896886898787798667868:87994668688767667371#$+::486698467;89:899787679986896898667988766876687;,%1488587788:8568767898768;94488766788766:*%58;::88675788:966987788767:966868869887668679)#47667688785788:98898876778868867899868876678866788:+!263776776527889:998987788768876678898768866788766869-!%587887578899787768876788:866887887669866768*!&5886565576778988997749:998779866898667889986678877'&447768545367689789887:98997678876677667876678998$)6696697687:76896688998;748:8876649689767755863576#%58677657997889::986979<868668987887886698679765535778:86$(6867765687588986648:768789:87769866788684246449767556776" +677678757786769;88:98:;:9::87667889646866589658753 +6687789878877887688<<889678778986678866886678665379779:73! *568778988:9887687;978677887677687644644664687885579;6#!(468878866:988787;88:789::989:987788643688676797876756::5$!&388987876679887<89<897887789987643688668;6877865882$!$398988:7789886:78<67:;:87886464646866887677668:73 #$-:688:88:76:98::9766:;:;;889987868668686886689766788:3"$#+78:8866988:989:98869:998776789::9966889688676:8668987;2$#")2977878977:9889:9:;:9986867867689886488778;1$#"'-977989:76:9988968:8699<;9988686686686877:/$#"&(6;9988978::9988968:87::99:98987868788679988756887680##$$%3;9:99789::9886989:99:;789;;:98698896788789978766887:3#"%$$/:8::9669:98898669988:9874488689:8667887789;6#"&$$.:88799878:968<;9::88=<:9887898998899858876883$!2)&&8<6:9988::;88587:7788:869::;:8778988998677867:4&!T=%2=;87:9699:788697:789899:89:9887898898756885<2&s!,:<88:9889788:7:88978::8989::98689885787886;.&g!!'6::98=88788:8989978;9::989::96898789887896798:+$!j1%%2:9:88=98898897<899::98868998896898898979::, $F#$0:7799::98988:8898987;:989988978987678689889:788988:,!"&#*878::8998:98:789:78:8:;9887899::9868868:88:6878;:669*&2#$49;99:998::9<789:78;8:;:99768}z~yz||~|zz}}~~}|}~~}}zzyX[Tyvyy^NSk|wtz}~|}}~|||y}}~~~~~Ձ~}~~|}ygRTo}}|mYT`w~z~}y~|~~}v}ށ~|~~w}|s[LNvylYQ\o}|v||~~~||~~|w~~̀~}|}|w|bKEp}v{sYSWlz~|z|~~||~|y|z}~}z|}~~}~~~|}woNOUy}ww\Q\l}|}~~|z}}w|~||~|zz||}~}}~~΀}}~{vpUE`vu}z~~]JQfy}{yz|}|}}||}{||y{{||}|}~~}~~~z`NIj|eMLYq}zyzz{~||y|z|{{|ww~~|{ww|~~~~|z|}~||pSU]t{~hINYj~wv~{w|w}}z~~}{ywy||w|z~~}~w}~~~~}pVJSoy{wzfLGTs~||zw~zvw|{yy{|}w~}~|y}~~~{|jOThw}sfRIUk~}||zy|~~}wyy{||}~|~~z|~~}~~}~lTJbz}v|lWLUht~~~}wty{|}~~~~}}~}|}~~|{}OATky~v~kWJWo}|{~~}~~}zw~~||wv|}~~}}z~|~}||}}~~{w{r^IKist~yWKKe{|~|}~~}}~~}||y}|}||}}~{w{zeML`z~w|u^LNYt~}|}}|}~~}||~~}||~}}|{}~|~}||z}~}|}{{~{jXRVq|}l[JH\l~}~~~~~|yz|}}||{y~}~z~~|z}~}|}{}rUIOh}{y]JSYs~zw~w~||zywvw||vwt~~~{wz~}~|}|y|}wrQBLeaNT`w||urz|~|{w|~~yww|~~|}~z|~{wz~~}~~}~|~}vuSHMe~r]IK`p}||}|z}{|~|{}{wyzywy}w|~|w|~yy~~|z{y}}߁}~y}oLTatzbKJ^u{yw|~||~wy}||ywwy||~~z|~zz{wz{w|wzyy}}z}zkKUi|t^JJ]uwv|~z|~w|w|}||~|~|wwz||z~|}}}~|wy~~z{w|yw||y}|mOTpgRGUoz}~z||w}}{{yz~~~ywwyz||~}w~ywwyy~|~|y||~zwXTg~fYU\o}yv{wy{{}~~ww|zyz|}}|ywy|~z}}t{wwy{}z}|z~}|~|~rNHO\JE]q{|y{vvy~{y}|wy{usw~~|ww}zsy}wuvyz|{wswzyy}|y|wsQSUTKX{ys}~{z|zww||s|}~|wty~~}|z~wyw|y|~~zwtwwz{|vWWSSbzz|~~|y}w~~}|wz{|y|}|wy||wzyy~~}w|~|zz~yz||ywtw|{yqONS^l~}}~~|yw~w~}z~zww{|yz}|ytzz|y||~z|~||Ѐ|z|ww||}|wsw}~|sQL]s{z|z|~~}||~|z}||w{|zz|}{tww|zy}|zz|~~|w}|}z|wy||}|ww|wVQf~wywy~~~~}~~z|~zy{|{yzwswwy~||~}yw}|~||w||yy}~}zy{|uQJ_}wy|yw~}y||~}~~|~|wz{z||wtww|y}~~}ww|}y~||}z~|ww|~zwz}pKDY{vv|ww~}w|t|y|~||~zy{|zz|yw|zww}~~w}wzyz|y~|ww|}zww~mKI]~pwtt~}w|t~y|~y||y}~|z|zz~}wyz|y|}z~~tww|w}}zyzwwzrzlMO_t|ww~|swz}~|~~{|zwz~~|}yw}}|~y|~|wwz~}||zywwy||zywy|zaBRms}||uvvu|{z}||}vw|{wz||zw|~st||zyyz||zww؀]BSv}|}|w{vz}||~wy|{{}}|zwz~ww|w||}|w~}|zww|ywwz~\AMszww{w|}{|vz||}~||}||{wzz||w||wz}~~|y||zyyz||yywz||_BJowqz{w{{wuoz|}~~~}|{{||{w||zwwz}||}~|zy|}yyz||zywwy||wcJRu|z||{zuuz|}~~{zz{|{zw}}zwz|}|wy|}|z||zyww~|ywwyzzw|^ITu|}wuwvvzw{zz}~|}~~zz{t~~~|zz~|wy|~|wwz|}~~|ywyz||{zVBTst{zw|vsurwzw}~z|~||z~|~~zyz||zyyzzyyz}zwwz}~~|Q@[ww~ww{w|{zw|~wy}|}||zt}||zwwt~y|~zw{{uv|wqu{wN@Rv}yzzwvz{|}~~|yz|w}ww||{||z}|wwyw~|wz~zwuuquzz|}yQEXy|yzzwuw|zu||~|yws|zw}{||{{zw~|wwz||w|tptwttzwzuuw{zwLH`yz{zzwwz|zuzz|yzw||}|zwwz||~ytw|yywu|wv|{vqHH`yy}zz{|}}{}|zz||zy}|}}w{|{{}}wwz||yw|}ywz|wyurzzz{rIG]vw}{{|}||~||zy|{z|wz{}}{wz{zwwy||zwttwtswwtw}{||vuzwMJYsy|}|{||ww~}||z|z}|{|||zz||ytrw||yzyz~{|zwzvwvOJTr}||{|{ww{~}||}}||}{}|{}}{{|~}||zwtrw||yyw|w|z{}wu||oOIOq|||}}||zz|}~}||wz|wz}{||wyttwtysw|yy||zwz{ww|{rGNQcw||}}{w~}~zww}|~~}||{{|w|yy|w|y||wwy||{ww{}}|qKON_{||}wy||~|~~||w~~~}zzyz|~yw||~y||}|wwzy|ww|}{pQNK\p{z}{|{z~|}}|}~~~~}w|yz|wzy|~||yt}|{zz{||lONKVc{z}~zy~~||}~~y||y~~~||}|w|yy|wyw|}||}|w|{zz{iQMLTYy||{|~~||~w||z~~~|~|z}w|z||yz~~|}zvw|}{w}kNMOQSq~~z|~~}}|w~}~~~{}|y~||~wz||z|~~z|zww|}|zrNLRQQi|wy~~|}~|wy~~}}|~|{tt||}wwy|}}~|ww{||{{|wNLTOQf||}z~~|z}~y|~||~||}zz|}~~|~~||~~|u}||}{w}|rQJo[TT|y~~}|||u}z{z}||y~|zz|}~||~~|wzz{}|wzsTJBRp}{~w{|}wz{||~}}~~||}}|z{}~||}~|zvw||}|upUA7Ja}||}}z|}|{|}{|||}~~}~~~}y|~||}}||vz|{|}wfU?IJVw}}||{|}}||z|~~}||~~~w|~|z|~}|z}w{}`OJlRRo~|}}||}|}{ą}~~~||y|~~}||~w|~||}~~||{{bHQNOjz{|}||}}|}{~}~~|}~z}~}zyz}w|~}|}~z|}}}|}aJLUM^|{|}|}{}{}|~}}|z|~~~|y|}w|}|}w|{|ww~^TEpMOs|{}z||~~zy|ؤwzqjpկnqyqޯzgjym|񪭪̭e^ypvܩjks|m|έs^}dmjbhgyps}bjytdpg_q󤡭릧ꦧkqnbs੪qdvgs򭯪kXqvdvbevee睊֪hggjyǩwntzda|ժsbk}dpy藍mYgjqpah}be߯gqedesdd}kqn_sͪwqys|Σjak|d^}mpsqew󤦧vvpp槣󭩡ڡkjpЭmg}매tm蠟تmd󧬪ѧe\y򬪤𭩡ꪔeb}ꩪɤhkѣYnح}Yp太|Xh즡ͤYddn릧ߪbq𝪭ܤtYqߩmVzȣjVnߡm^w맣ܤga飤Ԫaa⤧b_}Ȥhdykdqkbk_jmekjؤmje|⣝kjet񩪪쩧뭎mhgqyjhkmpפjgnmm㩡jgqkm餬٩mdzqq󞩤ƩqdŸYnϤsXJdsUbdtݡkdnnijamjkdgshq^hk\=>.*"684344866899788468667967688466;9::889887;;9;:;9::?4+>8:6876:868:96647864677977688488989:99::8;:9::;8::;;+%+6:686798648636898866788:897987::9:99:9;8:9799;9=.)"4866466948766868:8:998:9::98:8988:99::<;=7*"=68663768838::687688:7:9988978899::699<;:8<>8.)%6866749887696699667988:88:7688789;;:87:;;<<=::>:1($~6866778568998779779:878988:87:79::89:;;:88:<<=<<::=<6)*97998968998778767899:899:879889::889:9:;;:;::9<>:-+%6677668788778788788996::68866887678878:;::89::<=<2*"96678867:86686899668866;::689568898668:9::8:<;:;:6+&968898798788668769:868::8::789868768769788789;:;<;::<><,(%46789868;99868::9::87889:89::<<:899;889878:<:;<;::;=>0&%p668:869668989:8::988:9898::86689::988:<::;;::;<>6(&588:8:87:;::89:99889::;9898:;;:879:9::;:;;<;<.%":9899889;9978:9889::89::;:99::;;:89::889:89::;;<=;?4# O9887886866768:99889::9:<=;99868:88768996899:;899:;<==<>7&'/77887996879::;::8899:;988:;99867:99889::<::;<=<=:/*&67:98;;6;996898:8899:;:;9788:98::88:8<:988::;;::;<<:3$7:98898:9;79:8:87;<::998:;;:988<88988::99;<;<=B9''17:988:8:79:8:98:;:989989::986689966878::9:;<<=9-&)7::8988:898988:97:88;:8:9::8668:988:99::99::99;==<:;5' s8:9887897889898::88967:88<:7:9:;:9889::9:;;<>=<:>:+88:9678897887799798:;87878;98<:699:;:9889::998=:9:<;;9:=9>7*#3787887886989788989;:9<98789::889:;::=;8::99:9:<:89>:<=7E:*'97:9788768::88679868<887789889988<:9::989;99<::<9:<;9;=3&65:9786689889:8789878<998998:9::;:;<:99:;<;<<9;<:<;=><9;;3(87::89878779::889889:99:98::988:;:89<<;:<89<99;;<;9:<7/:89988989668:97689889798899889:9866:;:99:;:9:89;9::;9<>:5987867877869788985977889::;::889::;::><:=;;<<;<=;788:889687789788986;879988:89::;:9889;;98::9:><:=:;;<==<::98::9:7:8668:988988;88::88:9::88699::9:899<:9::;::=>>=:96877:7899879::99889:8:;8898998899869:99;=<8;9:=::=><::;=<<6::8986867998:<97989::9488:89;989:987788=9679988=<9:<;:?;:=;689989:9;88989988989879:97877879889::<;988:=>;:<<::<::;;?67::78:9;7799::898:869<:788769:99::98;:;;988:9:>><=?<=::;<<:;88::78:8:679::;:898:969;:8:9887::98::988;:9::9<>:=::;<<9;89:97898;88:9::8:8::8::98::898::8:;:88::9:<:;:<::;;>8::889:9::9:;99:89:9:889:8799::989::<:;::=;;=::<;>7::8998:89::9:<9:<88::;889:7699;::9:989::;<:<==:9=<<>;<>;9|||~yyz||}}~}|w|~yw}~~}yvwy||wusvwzz~w|{fRKw}yz~zwy~||yy|zzwzzyww|~wwuuwz||~wz{mUM|~|z~|w}~|wy~ww||zyywy|~wwy||y{|v[Ol~}|~|w||}|z~~|}}ytw|}}|zyyzyyzyyw{|y|z~`RIz}||~~yw|z|~||}|yz~~||zywwyz|zyww|~||jOE|~~|~~wz|~~}|z~|wz~|y|~}||zwtwy{{|~}uSR[~}||y{{~w|u|y|wpr|{y{|{wwtwz{{|}|}|{]SN|~~|z}}ywu|}w}wywwzww~{yy{wvrwy||zyyzy|wz|hJJ}||}~zww|}|ww|{{wy{w|ywtwyzyzvw||zy~ww||}{WWX|zz|}}|}}||zyw|ywuwzw|ywwyzyy|ww|~}yw||~}~`OLz|}w|~z|wwz~{zyyz||ywzwy~|yy~~|~jQH~|zz||zw|zz}|wwsw||}~yzz|zy{yy||z{~|~~zw|~~s\Q\|ww|}yt||}}|w|~|{zt||z|z|z{~w||ww|~~yfXQ~ytt|~|wwz||}zz|w{}yz||zyy||{z{~~{z|z~}|}~~lULzwtwy|}|~~|yww|wyzy}~wz||zyzz~{{}}{z|~}}~}w[N^wyww|~||yw~{|~|~~wwy|}|yy}yyzz|~~|}}y~}fSK~ttz~tw~|y|t}zw|zy}|y|w~zywz|w|}wy{}~yw~|{jVI{~wtz}yy}ztzwt|ww|yw||y}z~}~|z~|}w{}w|~|~|w}}~}|\Qe|ywpttywttswy|zw|ww||z}|~|~w|z|~~y||~z~|~~f]Ky|trts|ww|~~z||sy|wwyzz~yzw}|twy~||~|}z~t`E|y|zy|y|~wwytz|wtyzz~zzw||t|}~}~~~|~}_R`yy}yz~|wt|wrw|~||wwz|||~z~}z~~~~~|~z~~~f\Kt|wyswyw~t|zwyww|}yw|||~~}~~~}}|~}|~~z^Lw|wyrzw|}r|yw|}zy||z~~}|~z|}~~y~~䄀|]VVtyp{|s}zvy||~{wz}}||w}~}}~}}~~}~}~qVNpytztlww|zz|}|wv{}||y~|~}~}~~~~~~w^Tt{|wp{w|yy|}|y}wv|zw||}|~||z||}}~~~~~~}f[Rw}wwzs~||zwwwww{~||||zy|}|zz|~|zmYOy}ywz{}vy|~~|zzzz|z}~|||zz~}|~||w[]z~~|~w|~~|zz|{wz}|~~}z~||~}|}~~~c`Swwzzww|{||{{|z||{|}yy|}ww||{y{||z|}o]K~wwz}|wz|wwy||y|ww||wwy|~vw|}}~|ww}~}w`Tw}||~}z~}z||wy}zy~|y}}z|~|w|zw|zy~{|}|{|aYStyz|~|y}~~}y}~}z|}}|~|~|~~Ã|}~|{|jTRwwy}|y~yw|~}~}~|}||~}~}|ww|~~||wXTu}|||||z}~~~||~~|~}ހ|z~~gSL~}~~||~~~z|~}||~}~݃~~|~}|~|~sNG~||z||y|wyzw|~~||~~~~|y|}|zw|~~y|~~ځ}~~zUWhzz}|z~~w|z~}|~~큀~|}||~~}wz~~}}~넆h]Twz~}w~~y|~|||~~~z||~|||}~|}rOEz~|}}|~|z}}z~~|}~|||}~||~~~WVmz~|}}||}|}{}~|~}~~}~~|yy|~~wy|z|~~~cT[z|~}||||}}~{z}}|~}yy|~|}~~~uWH|~||}{}{|}||||~yz}|z~~|}~~~_E||~yz||~z}|{{{||{}z}~|y~~~||}~~~}|~jNXz~|wz||~{|{|{|||~|}~~}|z|~|zz|~~~~|}rYLw||w||}||w|{|}~~~~||}|~}|z|}~}}~{^Nrz|z}}z|}|w|z}}}~~~|z|~}}||~}~~|{^Vzz}|}{{ww|}|w{}w|||zz{||~||~~||}~~}~~~~qTwu{|ww|}||}{|}{}}}~~~ف~~qX|z}|z|z{}|}||}}~}}}~|~~~~zi||}}ww}{y|}||{||}||~~~|yw~~~|~~u|{|w{}{{z|}|wwz}}|||v{z|}||}|}~}|~z}||}|w}{zz{{|~z|}|}|w|{|}}~}|~~}~}{|ww|||}}|}}|||}}~}|}|y~~~܀|~~~w|{z{||{}}|}||~~||~~|y~~~|~w||w|wz|{|t||}|}{z||w{||~w}}|}|||||}z|||||}||}}ƀ}||}w|||}}|}|}z{}{{|z||݅|}|wz{}zz}|}w{}||{w||}~||z}}wz|}w|}|z||}~~|{|}|}}}||}||}}}~~ԁ|}|}}}}}{|z|}}}}|}{w|~~觭䩣ne 롩秪sh짪󣦧zk㪭藍nb ݩk^ 򪬩pnz㣦}pj槪禡dd ۡvvwԤkgܤma窧夣|m|줦wm֩sgاzj𣡪簩peêtbƪ|m}e^n|e띧੯g롧쭤}tt٪tjqznyk⩧z}󡧪ﭧ孪p}eqypðqnڧwqޭpgݰj_٤گsv벵}q诪ᯚk^ڬvt쬪qz줯ӦvaЧީĬ^jwygjt٪qٯwĪܭ㧩ƭݳެ𩭩ԯǬ㭬00 1 1 2 2 2 3 3 3 4 4 4 5 5 5 666777888999:::;;;K<<<<==>==>?/u#%.<99::;;:;.6#(7;89::;==/#$(;;9:;::==;."),::<:=:.<'*7::;>><.)(&:9:;::;<;;.%)*69:=:9::9:.d!(79:9<87:;::;*1&'6;;88:9:<&+$)6::889::'x%#,99:989::*:"%1;8:;8::;::))")5:8::9::99::9& $-7889::89::9&I'3;8977<:889:*.+8>9;97<9788:*$$*69787:;9889:("&.9:9:7:669;<:88&=&2;::97:889;;:99&*%&4;9:97:<:9989:&(*7;9:98:;::89&[&2;;::99:989::99:*4"(7;::98;9988988:<'%*9:788;99:988:&r#->98:869:<::89:9&<$8=99:978::;:88:9&'&&;::9::88:89;:889:& *+:9:9:<96989::99(] )5<799:;96889::98&6%&9<789::988:978:;98&*&*:9889::9::869:9:&l "3>998::9:<::9688<&;"(8;:99::988<<:8998:&*!+;:;9989:99::9:&#.=8;998899<><;<:89'a!%2;9::989::9:<::<:9:&3%(8:9;:9::<<::9:98:98:&""->99>::;<<;::=>;::98:&j!#2>:8?:;<<::;<::;;:=&9*&7:<9>:;<;99:;::89878,&,:;9;;9::;9:>:<9::9::$"/<<9:;8:<=>;9;::9:<:<:O #4=<:9<;<<:;<;<<:;<:;9.#(9=<<9>>;88:<<:<<;::!%,:;<>9>:;<::<;98:<<::=Zo %/:9;>9;89<<;;9:=;99:=35&'5;8:<::8:<::<==<>:9:8:!&*,:>89::;:8:=::>>?<=::<:;$E$'/;:;::<9::8:9:;9:=;%4K#%2=:<:;:<9<>=::98:9:<==:8&%-$&5=;<:;::9<>><;::<;::<<::'!]$&-9>::9<:;::<=<<:=:9::;?(%.y"$3:<998<:<:989:;<<9<;:;::>+) :"#6:;9:8<9<<;::88:==<::;;::3)!I($*9;:;<8=9<<:89<=;::9:;:<'&*&2<;;=>:=8;=<<>><::89=>;::9=,&">#'3B9<<:<::<:988::9:<;::.)#>.&,599::;:<=;989::<;::9>5+*-)'+8>99::;:<;::<:9::<:<9:;:<<99::;<<:;;::<>8-,**&')59::88::<<:<;:99:;<9::;<<:0+%&3#*+89::8:;:99::9:;<<0*(!:p!&)67;<<9798788:<<:9<::/NSf.yMYz|.NQX.L\b.W]z.[YT.R[^y~~.JYz~|z*mTWw||}~&`O[y||}~&SNa~~|~*KRm}})[K[u|~~~~&GOe{}||~}~~&CWr|{{||}}~*fE_|~{~z||}*OQ]w~{}{~||}}~(LUg~zyy~}|&EToz}|~~~&]SUt~{~~|~&DY]{~}}|~&@Tp~~}~~~*sLY{}~}}~}|'AS^~z}||~~~|}&@Me~}|w~}~~&EQ}~~~z}|}~&WTT~}|}~}|~&G^`~~~y~|~~~(H[uz~~~y}}|~~}&yRTz}~~|}~z|~}&^T^~}|~~|y~~&GLr~~|~~y}|}&KX|}|}~~}&]J_}~~~~&BMf}||}~'ISo~}~&rRY|~~~}~}&LLc~~}&JNp}&~]Uz}~}z}bTa~~QKh|~HNs~~fMY~||󃁁JSa~|HSi~}~~~rvTVv}}~}IT]b}~|QOVi|~~SsMRo}~|USeOUvWIOTe~~~XRfKQr~|}~_[GLMw|||r[JXO^}|~VT^DTp}|~~bTLNWr|}f\MgTav~偆}u`]e[W`}g^KH[k}}i]VwLb|ea]]UV[u}}􃅅k_STqM]_}}|j^XJIU[w{{|z}||}2jp/hy.jmw.g|.v}.zyq.nz.dy*qv&kz'pj,en+zez*_k*[v*^*km}(gs&^q&}ps)\y}&Vq*gy'Xp&Vh&^m(vqq'_(az&nq&q'_g&ew&}d'Yh'bp&ny&gg&dj&}sqmeajhydpapqtbq}mktphnspksvbkqwnemz_ghzdwk뭧tq\qqgjv|hq篵}zv𵳯eaz򭬭}tgﯰ}}stzpqh}wdbsz26 2 2 2 1 1 1 0} 00/) ///...----,,,+C+++***)\)))((('d'''&&&#O$$#""  % !!!!##"K<:9:;<=<9<:9;:;'&1;:897:89887678::979976776%%'196275:2'!%27<<:;<<8::9::("+79677988789:7988677)&&,575592("#/9;;<;::9::9<<+#)6;89:9788:9876791)"&/7846851(!'2::;:;:=<<.#&5;778688988;:998998:98986797-$"(5:66788/! +::;:;:<;<0&%4<889688988:9889::9867992+$",7:768:3&!)::;<<;8;::9;2'&3<::87:9889:99:9989674+!#0:77:;6-#%::9:;<::;8;99:6%".88789887788;:998778996981'!&278:9:5'"9889::87<9=:99>:&"-7877:87678898988:9868989::98874-!!)78848:/'::9:8:><<:&'';;689988::9::4989:6::9:;:78<5:976( (.<6:;36-::<9:<;:;:*((9:8::98998973868:69:88:98:>99772)%&-763893::<9::9::.*(5:9;:9:98896:9:;8:;99::89;;8893&$(665:98::;::9:<2*&3;::8::76899:8988968:9:;;98899;:8:8.!&&2;889::9:9:;;::<4'#1=:9:899668::976889989:<:988:<:8996*&+9:97::99:89:;<::<7)#.;9898878::8:;<::99::998::9::99*&%-;:7<::99:9:<:8:;-%(8:97:889:688779::<;:998898:;:790)"$1::=<:99::;::89;989>1&%4::7;8898898::9::9:988:99=<5:?.)&$6;:9:99:898;998967.889::987799:;:988988:8:;69;0%#'7<:;:9:67797998:8:1&".:9:889:99:989::989::;:88=4+%$0::;:9:8899799788=6'"*::877889::;987899:;:99:;;8::99::9:9=94,$':9:9898::9798668:7)&'8 8:98788::;;:99:;<9::9::9;9;:96*$<:;9786996688:98-&%386887987789::9:<:;;:9::9:;:;;4+:9:8898997877879:80'#-87689989:99:99:;:9::6:=:9;:598989:9:;9966878:85)$(9858::98898898988::99:9:89::89<:98:9::8898966:89989+'&:968::8778:9989887988:;:99:98::<88::9;:9::876679::;95.&&0:989:89:88779:89;99:8:;8;99 :899::9889;862)$,99886798788986:9:8:;8::99::9:;;:78899:99:98:875+"(598878689988:86:899:99::989;<:97889:899:9:770)-6889:9886::868::9968:8::8::;:;::9889:899889989788658<788;86899::868:99:699:;<;<=<;::9898::87886987678::8864667997699867788:989799:;<:;<<;:;<::98899:8::86886898667757866877886:899799::9:;;::;;:989::7::879:88998998:99:96768878::96;88969;::9889:=;9:;;96899:89::9::9678868:88698686687678::99689889:9>:<>;;<<9::99::889:99::987886677::8898669778656688:;:88989:88998<9:<::<<9::98998998899896796567887987887786566889:9889::898<::;:;<<9::889889878998867876887876765667656866788689::89:98=<;;<>>9::87889877887868:868667656645876787679989::8><;:;<<9::8899889987889:868:7566896766369889867889989::9<<:8;<;:9::9::98::988:996787887687556765633688766778988::<98;<;::<:97:;:889:78976776654775566446536556656789889:9:<:9<><;:9:;;:9:96798898789987668:966479867743675367667678:;;:889:<=:9:;;::96788789989::87876264468664654676689:;:988:;<<;<989::99787889::678646646646658779987899889;;::<=<<>99::98898876889:96787668663665775547:;:89:=::;;:<>:;;:;:887886868746746466464664436:;:889::;<::;::986886776798876646624624246422698688787899889::;:86986887899886696886894203664663664669::87:;;9:<=<==:87::899:99876696686894436966266467677668::7;=<=>=99::9:988788988:8::66:73;645523564764763565588676678:;::<>;89::=><:<::;8789::8778:67;86866885453497246656676686789::998::9;<;<:;::9:88:87:9:88:7668965664764664566568898::;:9::9::8789::9:8867866766864646864665678868:9;;:;:89:9::9::9::878::97988798865665844864486456656776679:8::9::<:878998998:<:7989878686866764664664886556764467899889:9:==;<<::<:89:9:<;7::;8686858768647744784886775665667899889::8;87:<:;;97:;98:;:99;87989696576584664:6688546686689:8;8698:<:<899::;9898789876646654556686649638879:98898668:9::;99::987::99878988766568669668:99::889<:<;:;88<;::9889::9889866786656464436446689869889:99::;:<;:;;8::887664 64664468778998877899:9::;<:;;<68988767766466764646788767867889:9::;:;::989878876678766563446344668664677898899;<:;<:;9::98:889876646643678876576769664469:8788;=:==:<9::;;:99=9799866;:89::87678876564669662446898668:866߆WTm}~z}}|zwz|~z~zw{zwRRWl~wpzupWJSo{}~YK_zy{z|}}|{{||~~z~}|y{{z\UTbvzuuvoYLNi~_M[y|~{|}}||}~~}|{y{~l[LTh{|tw}ulYJWoǃfNTuz{}w||}}}||~~}~~}~||y{~{cOKYuyy{}|iJH`kTSs}}~y||}}}||~||~~|w{o_OLb{{w}qTJ\}~oVTq}||}|{~||~~~~~}||~yzt_JNkz{yeNR}~~wRKf|}{|||{{|}}|~~|z{}~~w~|mVIUpz|uWK}}}z~TLc{|{{|zwz|}}~}|}~|w|~}~|}{seJI[z||s|iVĀ~~}UVWy}~||~t~|~w~z}u~zwYGXfwrwc]YY~|~}~~}~zr|y|w~}}~}~{z{o[RTe{wq}~qf^Xv~~~||}~w~|~~}~}||qTQYwyu|򃀁o]Tq}zw|~~|~||~y}~~||~|}fJTTo}}~~sWNl~|~~yw|~~zy}|~~|~~}||~y^UE`z~~}z[Mf|}}|zz}|၄~~~~}~~^TSez~~}eSY}~{}||~y||zz~~~}||~~}}z~j\LQm~~||mURtz}|}~||~|~~~~}}~uf[UQw~~~}~|~~|wzgUNo|}|zz~~~||~}|}||ۃy~kSNV{~yzz~{~~}|mTKg~||}~~~~À~}~~|~|}t_SOk~|}~~{~~z||wVL]|{{||}{|~~ҁ~~|~~~~sbQW~~}~|~{~}ww|{[TW||}||}ԁ~|z|}~~~~~w]Q~z|y~~yy|||cUSq|w||}}|{z~|zz|~~~Ӂ~~s_~}|~|~{|zz|{}kWNe}{w||}||~~~~~~y~u~|~}~~~ww|z||v[QX}v|||}|}}|~}}~~~~}}~|~||~}~ww}~}~_VT~w}|z{|}}|{~|}~~~}||~~}zywwz~߃~ufUTj~|~|~|}zz~}~~~}|~~}~~~}|}||}~~ۃ}wo[Qb~||}yz~|z|}}~~|y~}}~~~z|}~~~~~}|zu_KXu~}}z|y|~~||}w|~~~~~}~~z||}~~}~~~{zzj\cy}}~~}|y|y|~~y}}|~}}~|~~||~~|~{|}yu|z||}||}y|~~|y}~~y~~퀁~~}}~~}|z||w~|zyz}||wtwyz~~zy~~|wzz|}~}~z~~À~}}~~}|y|}y}~|wwz{v{}wwyyw|zz|}}|ywy|~~z~~~~}~z|z~}|~~}~|~~w{w|}z|~y||~w~~}}~~~y}~~쀁||~~~w{}|w|||w|}ww|ww|{yz}~~y}~}|~~~~~}|~~~~}{|}ww{z|||wwz{|wvww}}}|~|~}|~~}~~}~~|~~||~~}w{wuw{|}|{}{}|z{|wuww}}~~||~}}~~|~}||~}}~|z|~~||w{}zw|}{}{w{wuwwz{wuw|ywz||y|~}~~|~|z|}}|~}zz}}|zz}|w}}w|wwzwvwwsv|{wz|{w{~~}~}~}|~~||~~|z|}|||w|{vww|wzwwrqw}}|wz||~~}~~}~~~|~||}}wz|z|}zw|zvvwzwvwrqw}}{wwzz}~}}|~z||}~{|zwz{wwvtzzvvwwsswvrwvvwyyvvyz}~}|~~~~w{}}}z}~~}zyy}~ywwtsz~|wzzsrwzvry{yyzyz}}}||~~wz}||}|z|~~}~|z|zwpwtsy|yysyvty{yyw|~~||}~}~~~{{}||{||}~wz|wtwywtwwtwwu|{z|{}~~}||~~~}}}||zy|}~~wz|zww|wwywwqwwvzzvutz}~|}}||{|}|yy||yw|ztwztwtwwtsywtwwttry}}~~}w||wzzw{~}|zyywtwwptwotptwsppy~}y||z|z|~~}|}~}||yw|w||{|~~}|yww~y||w|~tokrywtwwrywtwwywy~}z~}z|~}{ww~wy|w|~stry~ywwowwtwzy{zywy}z~~~~|}z|}||}|wwzrwtvupqvwszwszwruwvv||w{yyz}}~|{|}{z|yz}y|ww||vtvrt~zptwwuwwzww|yz|~~~|~~}||}}z~||zyyww|~yvwwtzwtywtuwwvw||}||}~|~|{|~}|}wz|yww{ww}wtwtw|wtwwuvwwz}}|ywy}~}~~~|{}~z~||}z~||wuwwv}st|wtt}|wsuwwvyzzyyz~|~}z|~~}}z~|~|z|y}w|ww{wtywtywwt}}wuvwzwstwz}~~}}|~~~|{|y|w|v}{w|wt{zttsz|t||wzzvwwvwwz|~~}|~|ۃ|z~z|~~|z~}~w~yv{wv}twywwsww}}usww|yww|}~~ہ||}y~}}~}~}z||zwwtwwvusuvww|wws~wr||}|zz~~|}~}yw|~~~||{~~|z|~||zwwywwvuuvwwy}wyw~ywwy||~~}|}|}||~~||~|yyz|wwvwtwstrwstywwy}~|y~}}~~񁀅|}||zwyywtstwwywtwwttw|zz|~~}|zz|~~~w}||}}{yzzwwtwwzwyttwwstwz|}|zyz|yz||~~|}}|{||zyywwz{|{wwvwrttwrsswy|ywtwzz}~}|~~~}|}}}zyywtwwtrwz||zwvzwzy~yytstwwy~}z||~Ё{~}yy}~}zw{|}|zwvwtyw~wwpssty}~|ww}|wwyߵvq㤪nnvvdpye礪|sqygjhz馣zgqydvǰjqkeydaలqp맡kgqd|ﰳtqɩdjjnnetbsveqgdbztĭstvy_w쳬}yyݩznq쳬wqmy򰭯}qdqqvjs^马zh᯲qp𭵯py|gmsn筬zsmڧsj۰pjtqeípktg}үmvzqvԯ}mspӯvjڣzmw򬩧tqꪩ߰sq򭩪۰zm󭪩ew󧣧睊ު|ﰩשíө񪩩쭯¤檭Ӛ롤ꦡҪ󡤧➧񤣧㣡監򩡧򡝡񣡬몣⣡򪡣򕡡¤󩪧߬垠㬯ˠ읩۰ۯ槡鰪㭪蝡񯭳㤦򤡠Я6472("46656696758859:8898768:98898:9889899878878:9878:627376+#157698687887885887678868:88:9:9787799898875845:1""+5769856698868687667886898788:99:98988987789877877496'"%68667468698788:7:98876899889889:889866878986791;769+""276636969668:89988769989:7788787898789878(::68.#"*5775689669788989:889::99889768878:8789976!19683&!"287866577468688667887679:9989:;99889987886788986!*5698*17676654279798876689889789:98776877997878988986!$-::72 *92:67746698663665656864696688996:88:88::9:<77;:46<# '4895''64966768668646466867788:886:887878:87:;99;*!!,498. $17766868668676676676876986:6686:668788:77669:866( &.7:2"!,6676966896765765566876866849667678899:<77657863;1&!(3:7(!'47759678866766546633646686446498:<67889:887887:5-##09=/"$.7769667877656446633646868:6994867889986788779875' (2=6$"(97686468678646556634668674869:89:99:9776789886::- !+::&!$:768978866246657645264267668996844646778:8699::;;97:7:8(&2;.$#.:=696646844346642776645678998447:69:98986:9889:6:<:2(#(48, -99864686446456775446998898989.7:990%"*:1 &38:6898668876646654487889889889:79987898&058<5($'35'!,88688668876646677644678679988:68987887"'09>9/'(+2-"'5886469866466742368866786896887887*#&1:=:2&$()#$0:87446886646446887587679:98866897784'!'/:>:(##$!#/<86677664676679986776678988668988;.$")3882*'&#2;7789866776646753247246866446889:969658:878:92& %2;7+&& ,858986677:83636464664828676646686996::6887:98:;8.$"-8:7.(%#+83686658746464746448486687686788;:66766868:<>8.&(.6;1&&,:479887664746684664696866789969668;:6896886:;<==90($/5.$$&-<689988776768476868768:886678998:84489868:8776;<:9;=:.$*-(%##+9667667686847668769876766789686974669<:99<<6.(%$%#!)5877678786847664668464876766766866:8785885799;::;:8-&"##!(698899889786648664682668768766876868:8896877:9;;:;==;<=7/%#$#*986688767786648668766:28:876886689687896876648:7;:;==:<=:7.$$"#7:8868:887676647744898:66787669766878:88;988;9;;<<::;:;*!$("%0988988766986468896798778978::88:;8:8877:8:9::<9*#'4"&.89986887667898668859:879988:8:;89787698:89::<>8/&,O$".89:89:86776896778998869976899688:889678798=<:;:9:<6,"2r##/9:988:9678876689878898878876789867868979968898==<:;::=3'">|#.::889878;98766887787668988::6699:8689898:=<:;;=4(%i);9889988998876;98866876898789899::6699857887;>=::3&{."(;889:988:98868689778649;87::7:88788797368786;:>><:9>-).$&9:8968488::86688689::98=66986::9887878;9<<:<&!%,#+;<88686;9889:7789988796677889::998789:;:9;:;=:8.%6+&8:78688::8899868877997688:876488987677;<::=:3& R9$#3968688988::864:88::77:6898984987887669987:<=;:<:1& H$!1:68698766789:86:88::77:6897996887798768778899:;<<:<:0)"N")2;7869:9898669979778867898978966988::88:6776:;:<:,(&]'2=8869:89::98 8697698868::8899:99876<:8;;<8()-m &/<8:689478:<;98:889987:847876469:66767887<:9=>C6&%9 &/<98:898989::98766889;:8=;76::8684669<8764689778:;9;:;1$>!%/:66:9:87889::98778998788:898669;886886:=<=:;0&f&&2<86::<:79988::86897667988987997878:88688789868::<::-&&%1=97::;:6::66786:8898788:868768:8898968898:;<+&#(%*::787979<<9899689988::96866988:9889:889866;<;;>=)$+,&&9:9:8:9:;<:9::869:88:;:688:966::8898:7689878:<:8:8%!6.%&9<:<;=:8876678668:9889:69988668996898:8866799;=:8:8%$N2&&8::<;;7;9889689:8669688668=896898:88768:9699=80&7#&6=<:9:9889897998:88:887588569979848867866899::<0(&L#&4;:88:988789987899899887985688799567789868::6)&.j$'399::9898789:998878998988687789776689878::92%"8v#'2::;=98:9889::988789:88787468899868668898892% Ky &2=<;;9::9889:9986878988687897767787896688:9:91$r '1;;:;8;:9886878968868897878667769:66877866:8/$"#(/889<8:99887687686886988:79688:85696687786wszoYELswyvyww~yzv||v~||}~~|zw}~|}~}~||}~~}|z}}{}|{}wo{rzy_EMmvzw~}w|{|}z}|v||zyz|}}w}}||}}~~~{|{{||}}||zv}tvmLL`v{y}vyy~|}|y|w|zyyz||y}~|z||}~~~|||}zz{|}|z{}z{s~yVKSw}wyzty|w~|z||z~||zy|~~}||}~||}}||ww|{|}w{mzy~`KKo{ywwrw~w~ywy||~~}}|zw~~}~z{|}}||}{z}}{}|{}|{|Xw|gML]uz{{uvy|~wwyy~z||}~~}|}|}~~΀|}}}{w||{||{|{wJl~w|qUJKo|{}wwvzzty|y}|yyz|}||zyz~~~}~~}}|z}|wz}}|||wJ]vy~}]DBl{yzyywvtpz~z~}|zwwyw}~}|~z}}zzw|z{{|z}}}}wJOe{oGG]~pwzzsww~}wwqwwvwvw}ysy~ww||~~w||ց}}~{{swMGVt|~uVEWwtwy{y|yw|ytwsww|yzz|}||||w||}zz|}|z||{^JJbt|fGOmz{ww|y|ywyyw|wzwwzwwzw}zy~|yyy|wyyw|z|}}|}{zww}wwYHTfzoKJayy{w~wyywyy|~wzwvzwuvwyww|zw}wy|t~wyzyz|}~~{zwvz}wqmTJXr{XIWsz{vyz||ywyzwwuswwrrwtwywy|ystws~|wz||~}|{||zueMNk~hLOg{{w~wwz|zzwuwsswwqqyty|w|w~~t|wz}|~~}|w{}|z{|{vWHYowQLY{y}wtw|yz|wswuuwwqsww|wzt}y~|~~~~zzw{}||ycHI`TJQ{y|~z||wwpswwvzwsupwspwzww}~~w|stwtwzz}}wz{}YCTogOMfy~ywwtw|tsrtwytp{zwwtvwz|~~|ttzy~~}~}y}||woXNXt}aHc~~||wtw|wttwtuwzzvttw~~||}~|}~~|f{~kRL]mGUq|w|~|yy|}zwwyswwvtt}|z|}~||~}||~{|{||Tkv}uXOVquWJb}}y|}yy|}zyywwtwwzzwtstwwz|wz~~||w}|z|}{KVj~hWX`ocKVu}||wty~}wwywwtwwztprw||wwyyzz||}yww|}||~w|}|{||{]MUloTQY\MQj}ztty}|wwywwttwtsw|}{v}zwz~~||wwy||~zz{||tVJVhXNMQJMh|ywzzywwywwtwzwwz~~|wzzywz}~||ww|||fOK[q}|o]WTEMozz|~|wwzzyywwtwzvqot{pty|ywttw|}|~~wwu||{}oTGRoz`TTHGa}v|~|wy{z|rwrwswtwwt|p|wzywtwywy}y~~yw}}{|}gOLc|zgYRN_|qw|ywwv}zsyswtzswtts|t|wyyww||zw|wz||yw{wy|w|}fTXgymUTTatz~}|zwwyytztyw|twwtw~y}wyyz}~~y~yww|w}~w||w~kXQivfOQTey|~~||{{wzw|tzw|w|zw|||wyyz|~~||tt|~|y}|{{wgO^cYRNM_yyzywwzw|y}tzwyw|zw~}zwzyyz|~w}|wyw~{twy~~~wgYROSNI[v}{zzy{|z}y|tzwwtyww}twt|zyzywwzwy|wy|z|v}|u{~}cULNMJYw~}|~~||z}wyt|wwtw}pwy}zy|zww|zw|y|||~y}{{{iSMOM]~|yy}}zw{z}wws|ww|zwwp|}zy||yy|~w|z|~w|{ywt|{zfQOQKMz}|}|y|}|zyzywtzzts|~|ywz}{wyzww|z}}|}||]JQXKRj~}}~}||}||zyyww~}wsy||~w{~}{{|~z||||}|{{}~~]MWsLTg|~~|y||zywwz|~}ww||v~|z~~}|||||{|{y|}~텊}hTbOLg|~}~}wzzywy|~yzz|~~||w~{y}~~y||}||~y{|{~|~wbLpNMi~~|}~yz||zwy|~|z|}}~}|z||zyz}}yz|y|~z~~w|}||rWLAMg}|}~~||z|ۃ~|zwy||z{|{yy}}|yy~~}w|~|~|sYSDD\~|}~~}|~~||zy~}|ww|zw}|z}~}~~yy~~|u{}|}{qUCgLX}|~~||~}||yw|y}~zz|wt|{z|}}z|}z{rw}{|w~c[DfQU|~w|t}}|wy||y|~~|wwy~|y~||z|{|~UJSaN`||w|y~}||~zz|~~||z~wyzz}|~~~|z{{|}~|fSy_DU|{|w}|||~~|y|}zz~~zy|}}}zwt|}}~~|zyzzDŽqTHONqy|y}|}~||}wt||zzw|~|~|t~|z|}}zww~~}|{{lUHQJly}y}{wyz|~}w||zzw|~z~~w||zz~}zy|z{|}~~ŀk\KK[o{|w~|~|wy~~z~zz}}yz}~}~z|~ww~||||yz{{zyybXUAVo}}w~|~~||}||yw~zy~}||w|||~~}zy|}Y\cGTi}y|tz|~}|}~~}z|tz|zwtw~ywzyz|}}|{z~wTR~HTh}}}~}~~|zwy||~|zy|y|tww~|zwtw}~zz}mODIRhyw~}z||}~~|zz|~~|z|}||}~}wyy~||y||ywkTDTTo|wz~~|||y}~zwyz~}|~|z~~z|z}|}w|}z|~}w|eTDTSmzywwz|w}|}~|z|}|y|zy}}||~}~y||~|Ѓ_TMXS^{}{~{~~|~~w}~~|}~y|yy~}|}~||~}|}~|yy[O`bUT~}~}w~}}w||~ww||}|~}zw}~|z||}RJygST||zwyz|yw|~}|~y~~|}yw|~~y|~|||wwz~~⃈||RQpUT}{~||}~~y|~}ww~w}|ww}}~w|~|||zw|~w~~|iTKkTY{||}}|z~z~~z|{||wt||}ws|y}}wwzww~jTD{NTy~||}}||~z~~||||}zv}}uw~~z~}s||yz}yw|~jYTMTt||~||{||}z}~~|~|}|z~}vw}|z~~vyzz|~|w|y\UfOWq~}|{|}|z|~~|~}||}|wy|zz}~zzyy}~|z|oRL|ЮNWp}||}|z|~}|}{zz|}|ztw|}~~|w|ww|}||~||~oSHHUp~}}|y|z}~||w|z|~zzw{zz||z|~ww||~mOCGVm}}}|w|z|~y||w}||~z|{|ywzzy~ww|zz|ww}iQLMYi}||}||{{yw}zy}w||w~||z~w|||vy~ww|zz|w硛y^gĩ^h󪦧鸞gg󪧩Ԫtepլeeةwhg}έdsdeͩd}}\Yѩdk__}목֯h_tt^védd_kyaqedqdwwbv믞hjgkءvaymgy줝룯abqdmėy[qkhٝwjwa扦ng}_sЪqwktvd١etvwet£}hsqmy|hmtdtwjhmdhꤡ䰉kez}vq^hq_nqqa_ϝkgynjqwsqq¤wmkmqۤkynjh餣⩧ynkpjbzӣ篩sgjhdyphkh}mkmeh}dmwenܪ}hvgq񧣧䠪qkg죡gjhvgXh۰츛yp\\|ڤs[gwz\ms䧰sdpj몯Ĥp\sDzqakjsamdŭ|eezणwsXtţy|_qqnaqk\bn󣡯q\qqq\qpаqhwpzksqndpqnmsq𤡧qeߑqy֩q\jqyqhq姪|skv䩧ngjvpaas寪k[_tᡧ䭩mghy=C=2%%5687687788766986689889886878989::9:987988998:5::=0"!,:868998788988667;:88766789:988996789987668768878586:/%)79878899:8878988978998997876797788678859/%*99:8768:6686789:;;:898668877887988998898:989878874:0$&689:878877678878895869579987667667667968867668874;0"%669:76::8898788359:656567:;987789878;69988:96;. $64:<869:889889885677:98876689676569:8689:9887;680##5=:7668989:997898;967889:87789:98689669985688768896;2!"6:889989889899:786787868898767998669;98987689988:<798=2"$586688668676786758878899876569;988686657969::.#(4:98 8789799786689;89976689878899;;:889;688.!)6889::8789688686776689678876796787688988986686680&8688986889878566768876678766799789:998:76:4#7::9688:9677986788788:75689978869:96 #3886989:98678;;:7689865578766:8789:98848=8698876688/!#198898688986676689889987667899:69;879:886890"".8 86899:98875898688567899:9889:6677668976880"".889987897886689887676687568667789657889368878867/"$179:977897767898878:8688667679988968658978688686680$&279:97789887789:989989:887668856799:7878:9788678668:2%%1799 867866866568866789989:8678876688968:;2$$/8898898698786679879<788766966985467889986688::0""/98898668987797897767997887799769:9976898998976652 .::79:698998779899:997786898778979978779877679964"!.99799787998767887667877887767997679986779789;9975#!.;;9;;8988789979877:887889879768987889779877898667;9754"!-8877676976689986876698778998976898789977997887787667:8642!!.7676688:9866887674377567789967997679:976889;988768:98854"!.::;98:9:887897966:97977678868987789::8688987665688986" -99;878675798669;5986976967665567788779978998:979989:976778:96!*67:99;9:6678998668898686787667856997667=:8779<:988655758667"):797787<7767887898867::986556789987799889877886687:99:'#.:8:998;8766788;:86886678899867998778987667798788:88("-:9:99:8986678;976886566788:977998788776698987686966( *998789768668766887678865887678996789:;:9887696:78*!*9986789676688667667886789978998789678898997878699*$(9;9889:876687557569:889878868:9878898768997788779::)"#6;:889;78668645856:;879978868;98899;;8986688779:87769;:<;(!4:9878:6789;987866867866965887;97988979969:76896898898628<;:'&69:868:9977996566896779769869:885588:968988975676789868989)"&59::9:9697688556868998688:8797578676676887789:9668668789<,"$69989;:77689856;8689986:9:989757667767889;97688667889=-!!7:978::9667985699678766:998897688685898899866778:987:+"$49:8898876578655868766:98789779885898898788:,#&39:788:865578647698786986799779698998966779879;98997665689<-#&498689896876699867;98979867:97689:66:987569869:86898668866:,#&2887<;656586685786868;9967887668::9889968997;778:868866:66;9.%$5668:66:989768688:87978;9878878877887867:89698:867867:86:9.$%689:;98;668668:97868:86686886866969698:98878689-!%6898:9786688689889656687788998899869985;8769;:997689889.!%38878:9968898678898668:988969:8789969:96<8779:988789::;0"&6;;8898899665578:967889886968876788789;8;79976899669890!$4:<98767;;88769899688698:6568668667887789:7;79:98768:864766/"#*28998:69788576686986::538;;9988669;:669974<9797897996:59872%&,3:<;879~}}y}{ww|wy}y~~yw~~|~||}|~vw{w}{wWQTo}}~~~~}|~||~{|}~}~~y|z~}||}z{~~}~~{rSVf}~|~~~}}}~w}~~}z~||~||~ywwyv}v]G[o||w}|}}|}}||{~}|z}}ڀ~}|}}w|~}{|{~iTSo~}}~|}}~~}~|||~~t|~~~~wy~~{|~}wVJ]wz|~~}~}|~~||~~~}yt|~|z||쀁}|~|{u{|z{hWTm~}~}|}}~}|}||~~}|~|yz}~|zzww~~}~}s]SXww{w||}|wy||}~~}|}|}}w~~|ww|~}||}~~~}~|~|}~|}u|{~fO[g~twy~||}|||}}|zw~~}|w||~~|{~~|z~{||zz~w}zv^S[`q~|vw||{w|ywy}w{{~|{}}|zz|~y}~{z|~~w{{z{ww|zpSESvy|{y|zz||{ww~|yy|~}||~||}|wy}}|{{}~|~~}{~}|~}vjLJa|y|~}z|}~}|yy{}||zww{|~||~~y{}~~}zwy|zy}|z}u|whR[{~|{|}~~||{|~}}||~~{|~~}~~{z{}}{zy{~{z}|y{}|uhS]~}{y|yywy|}wyz|~}~|ww||z{}}|{z~}}~~|}}~|~|{}}{tjOUw}|{|}{{y{||z||}~~v|w~vz~~}zyyzwy{ywz~w||y{ww||{tjKRww~{y|}}|}~|{||}}||qu~wvwuw{~|z{{|~|z}w~~|}||wgGQws|w||~}||}~||vy{{~||{wwy|}}~w{yvw~}w|||{y}jMMuzyywy}||~~}}~~~z|~}~y{||~|zz|~~}w}~yy~|uw||{y|}}yoJLw||~~}~||}~}~~{|w{}z}y|}}|}}{y{~}yy~|~}{y|~||{}oKQv|yy||yww||}}y{w{|wzu}}|{|}~~}}{wvw||}|wy|ywv{wgMYs~||}|z|~z~~{|wyyww||~~zww||{|}~}|~w}}fJ[w}||~}||z|~y||y|w{{yww|y{}|zy{~w{|{y|}|}~}ywwy}yw}kCT}y||}~~}y}||~}{|vwyw{w||{ww{|zyy{~~{|}~||zwsBMz~y||}~~wz{z}w{||{||{vw}~{||}|ywyy~wHMr}}|wy~~|}|y{|{y}~}yuu{}{wy}{|}|t}|w~}||{yw||}}hJMl~}}|~~|y|}}~|wwy{ww|~|||zwwz}~y~|{}}|ywwy}jKLg}}|}|}|yy|~~}|}|{v||w|}|uvwy{}~~||~ww{{yy|~{y|}jKLg|}~|{}~{||ywy|~||{y{wy|{vw|wwz{zz|}}~wv{||~qw||{|}}ywzhLQm{~~{z|~{{y{|~}||{|}|y}}yw{y{~~}|}~y}wv}~{}y|}|ywwy|yy|kQTo{~~{z|~||{{|}~~}~~}|}{ww}|uw{~~{|{|{}}|yww{}yy}oSRl{~~|}yww{|yy|wywvw||wyz}~~}|||w{||{yy|}y|oOOi}}~||}~}|ywy~~|{|yw{~}{~{|}}|{yw~wy}vtw{|}~~|yw}}kKLh~}}|}||~|yy|~}{z{~~{{}~z{{zy{~{}|z{~~zw~{w|~}~~|}zyyupHHgzy~|~}{zz{{~}~~{{z|}w}~}zz}~{~{|zz~}{z{ywz~~~ysKJg~~z~{}{~~|zy{||{ww{}{{}|{{zy{~~{y{~|y{{z~~~{}zuNJg}~||{z{|~~z~|zz{}|{|}~|z~zy}~|{}|~{z~}z{zz|~}ywz~zvsKIe||{{y{y~{wy|~~}w}zwyww~|{{|~~}~zy}~|{}~~zz~~z||{{}{ww{|wtpJIfzwzwy|}}yy|}|{wzsqzzuy{{}~~y{~~{y{zw|}|~}|zw|}}vsKJg~}}}{zz|~{~ywz~zzyz|}w}~}zz}~|y}}|~|zywuw|}}}wKGc~~|z}w{v{~}ww~v~|y~{wyzywvvw{{}|z{~~z}~}~{~~}~~zwzz|~wJB^wz~~~wy{|~~|ww|||w|w{|{ww{|uy~~zwy{|{zz~~}}yuvzu}wy{LE\{~{{|{{{y{|}|{|||}|w{|wuuvvwy{}~~}z{~~}}|z{}|yy|{WMf}~||{wwy{|||y||wwy{|}~~|yz~~|{z|~}zww{z{~~}{||}|}YLc~|~|ywyy{|{y||wvyy{||~z{~~}z}|{zyy~}}~|zw}y~ywXG]~~}{|~{y|ww|{ww|}{y{||yv}||{{yyz{}~~ywz}~||zw~yz|]J]~}yz}~y{ww||ww{ww{}||wy{{|~z}~~}{}~w{||~}~{z||{|y^OY~~||~|{ww|{uv{vw~||~|{||y|}~|{|}|~~}||{w|~~{z|}{z{[KNy||~z|ww|ytu|vw|{{|}|yw|}}}~|~}yy|}z{~}{{wXJEs~|z|wz||{}ww|y{}ww~wu||z~{||{~~y~zw|~y}~||~}yp|VETw}w|~{z~~yvwyw}|}~w{z~zw~|w~||uu||~y|~||~{uw{y{}}w|}~\LUu~~wzw}|vuy|w}}w}}}{~{uz|w{ww{w|}z{|~ywy|ywy||z{|~bLOy~|{{y||uw}w|~~|w~~}~zvzww{{wy{||~zy||yww{|}||~cJJz~z|~ww{}vw~w{|{ww~|}~zw}||yy|u|~|}~~}yy{{|}|{`LQs}}}}{wvz|yvu|w|{yww~|z}~zz~|}|}}|}|u|~||~||}||}{||}aNTr{|}||yvvz|ys{y|{|y}yz~~{z~y~||~yw{zz~|z~~|~~{wwvw|~cNTs}w|~|y|zww~~|w{~|~{~|wz{y|wyyw|zuw~|y~|y}|ww}|yyaNTo||{wvwv|ww|v{|w|w|~~w{}}|{yy|~||~~w}~~z{{||y}}wwywfSOvwy}ww|{w|w}|||z~z||{||}}{}}{{||{}yz|~w~}}w{|yz}yfQSw|~~|yw|wwy|~z|y||ww|y|}|y}yy~y~w~||}}zz|}y|~cJRw}}~{|wy}}|}y|~||~wvwy|{{||~~||~~|w~~|v|{y~~~{w|~||fISr|}z}~y||~|wz|}~}yy|||~y~}{|~w~~y}z{~}}z|kLTw}}}|~~ywuu{|~wz||}|~||}|ww~w|}{w{|}{|~}z~~~{w|~wy~|~jJQs~|{wz}|zw~}~~w|}w~}wuw|yw|wyyw{}}{{|~{z~~}zw}}wszwwiLN]o|~~}y~z}|v{ww|w~}wvr|}|ww~ywzt~z~{}~{~wv~|zoSTar}z~󪬰vmqpt٪}_z򩧧ڭqpתtd}쭯vqש}pwkzƧpzէp^p쪧ϩgdߣnzߦp}꣧ݧksˠen𘞪⧪_m񪩧򡦣ݦhhڪdg쩪өem⦡hy溺dz󤧪ԧ[qﭤYh𩭯Ǫah󦣡dhӧegߩݪeg䣦즧gm˧mqꧩ𧣡pn죡䩧kkȩegaaէed𧤣jdӦeb裦Ʃdbףed򦤤e_dYg^|ѩvhϣyg󯪤Ҭw_}ᤡ}d}kyzej࡬wd^ʪt^q|gsgkţddɧgmjqjqjqpkmpأdnͪbpܧѤgqdmgj}pq8:68864&#'1:846:67878::99877887:74886<6;86886;))(3>:58:86::88;::7;;,*%*49667898876996988:9796;8898878&(.9=;79:88::997875:3"&,28:79:88668987899:98689::988:99:7883#%3=::=::9867<69:*$&26::9:;965689989878988:98:8::899,!"4;7::68::9696:3##'57889989989788968868:9788::897%!$697:9;78:9897:5=:/(&17788988:9;;989869989:867878:88:895!$*9:8:686689::74:5+)*58989:99<7998989989877889989989882!&/<99699889:889;761,6:6876898;7789967:678877:97689::9787.#'1;67788:86::98:668:88:88788988<;79:9<97::86887987667897<98;<6''*6887;99:;:89;9988::88:67886679;95689;:;:89:987766556787;979<5'$.9:86::766878:969::989:6789757;669978<98::8878996::6:;1$"2<:9899:77998896::8989889989;78<9787:88986796678868:7;;, &5;79:98;::;:89:7:8788:6:989989:77;9897:68986899667788779787:7'+8:78:8969:988:;8:4678:679976785468:;8689868;;988998:97681&#/::8676:6;;8789:894686;779;877698567899:9889::96889886699786*%)5:8866:;=;::98:795886;89;989;828;::8488:889866:89:;:976697:6&$,:848869;:89<:9;88788996644:;6;978:979=6699::89::976788:+'&3;:78:;88:69;89;7:867887698769969878878;<::99:9:99876685)$'6::78::8869:78;8:7679866;99886988787789<996797867889876657/'!*899889988;<88;:96689989:898799;8878689667788998667*%"/79:98998:88:;87989889;97987::<9988688:<99:9886:6'%'468:998;868869::9889:98978:9:9989:88:9:8877899:7:2&%-758:998;889:;;979:98::89:969:688:978::886686866789:77+%&2967998988::;;48989<:69:949;68878:967::896676688766763%$'5:9688788799;;:8668;:8898:78:8688:;78:889878879<;1!%/59:889::7989:988:9889878:889987668:889688987765589.!(3688:9868::899689:98789989:9986:9::677667767883(+9:9889989::979989;:86689::9968:98::9<;;:988:9:97889986686,#!/;;886899:98899:;;988998::889989:966:887765672("&3:86878866898989;<;::98899:898786467684766971"!+6876:66767886:88;;::;::988:87:886:87849898795( #17897946889984899:998778::87866:;::9898966::6567692%$)6977547766898679:87898876689789:98778878768987896648+&16:93668669:88:47:9669<:8898646889789889898788778866567'#'57::687:8688768988:<;:668::66998878987899889:8788776782!!.76786869876689::9679:967998787789;879868;9887648:6+ $386786766876788788969:978998788789;889867;7887:39;1##,6:989884667887886789986::768::98899889988:9767688788:5:8+ )368898776688766876689:;;86677988:;9887789986689976788:890%!/8778854768986682687557:8898878:989;;:87789879:9656898;8*#$2:;88:758679966976689:998386897:98878;;8897788:8;::786>4)!)<;::889989878878867667::99:6:78:7987988:9689889966967:89::.&&1>:;;:8984687887886878866889:8:89978779:9::89:86765696699:1'")6;78988:866878868869899768767:8:6889878:;:99789878899:9778*##.9:86778::887788688688998899769797:9;989:;:9:7897799<:98867:6'$)4=;:8988:98877986886889:9698:8;:;99:9<997688:966:;1$%.8>:9::98:98897897::88998:9687:9<9989868::978988::8:7668:6(#)388789:88::8988:98898::88:98846698:7868856:;;99;9886=;99;9."$/:947<9:98:9889::88989:88;:87::879:898866899;8879::9786:;9;8&*7;87:9::989868:9:99;<:69878;:8::;98998::98789:8669<:6.#$0::79;99889::689::;9989:98:87:<:8:8988998:99;977:9;<4(")6<:7997:98879:;::989::89;9687988::;879;;8:<:771'".9=:8866:9889889::88::98799889::86898678668768;68997<;9:7/(%&5:;:97587668:;;679:9:869;:88:868::8786688:588996;<8;:* &.;<:9879<8779;=<:89::86:88:;;988:86:;:9::9:==::86;77957;:;5&!,7::89;<:99:;<:8:9:;<;9889:998::99;:89::88:96499;429678;8* &3:67:96:<8:99:<<:8:88998786:;9689:886688:978::8898897669<8:,!$-7<6988::98:998<8:9698779;;98898986898:<98986698896&",59868879966::9:;8:98::89:;898899:;989866899:;;97/"&5;:69:99;968699668::87688:989::;;9:9899:868::8899:988:;<2*$+7:89;:9:<9687:;869:9:886677<:99::9:99868::99:877::8(')2986::989:74669:8689799889::;<:99::9:9987889:977:<6/!%/6:9689:889867468768868:78:9::9:989:889899:968;:1&#*599689:9899889::98:68988:989:<989:89:988::989:8897-"(0;:677968767866::9986:68;::<:977:<|y||wsTNWm|tyw{}{}~~}{z|}}|zzt||yw}w}}y\[Xrv}}y}|{b]S^s~ww{}~}|}}{zy~~~w~}|~z~y}|~}}{}UXg~{~}|~~{|{urLTao}{||ww}~|{}~~~}w|~~}}|~~{}|qNRq~}y{w]OToy~yvw|~}}~}|}z}~|}~|}}~bJLszy|~w~wrNMVuz}}~~}~~}~z}}|}~~y||w|~{|}}zSJQwz~z|~|~zviYTlz{|}}|~~|~}w~~}~}wz|z}|}}|}vJO^}y|ww|~{tv`\^v}~}~{~~}}~~}~~}|~~}zz||~~}~|}}oJTi~~y~~||~}|~{ylaww|{y}~}{z}~y{y{}}{zz{~zy|~~{}zfMWlw{{}|}y~}ww}}|}|{|}~}|z~~~{|y||{~|{ww{}z~}wVV^w}}z~~|~~~|}|}w{}}ywz~vw|~}~|{{ywvvw{|{zuVQf~|wzwy|z|~y~~|~yz}~zv{yy~{|~|}||}|{{|~wwlQLo~}zz~~|}~w||~}||~~|~{|{}z}|}~|w{yww=y{||y|zaHUvz~|}~z|z||y~}~~}~{z~}{y}~|y|wy{{||{{{}z{WD_}z}|~w~~|||twz|w{~~zyz}vty}|w}}y}~|}~~||~zy}mUNi|y{ww}z|~|tw|y{{}z{zw~|vw{|~||~~y|}~}|wwz}w]R\u}}wyw~}{u||w}|~}p||t}}}}~|wy}~~{ww~{wTQb}t}||w|~~}||z|}~~wwtty~z|~z~ww~~}~~{yz||}`VTr{|||y~|~{|yz}}zw~}{w~~w~}z|}}z}~~~~~|zwwyw}v\OWw{|||w{|}zwz~}yw~~||}w~||z|zz|~~~yz~z}yz|}~}{ywuziWJ^}~}|~~|}||||~ww|~~|~|~|{~~||z|wyw|~yyzz|}~~|yywz]SKh{~~}~~|}||{}~||}}|~~{~|{~~}||}}||w||~~~}|}||yyyVRVsw}~~}|y||y~~||~~}~z|~~~|}~|}|}~}|zz|~~zpTSe{v|~~}}}||z~~}|~~w~y}}|}~z||}ww|w|ww{|zz_RTpw{~~|~||t|~|~y~~t~w||z|~wz|~ywzwy||{wwzwrRQVu~y}|z||{~|ww|}|}~~}z}|y}}||}灄z|}}||z|}{lJRiu~||~z~}~~|}~}||~~}z}||~~|zyw}||~y||~|zzwuv|~fJXqy||~|y||~~wy|}~~}z|~~|~~~}w~yzzywz{yz}}qXE_~||~~}~~z~~}~}wy|~~~y}~}~~}||~~z}|~~|yy|wbNJi|}w|~~~||~~~|}~~|}}~~}~~wwy}|z{wuyzpXKUq}w}z||wy|~}~}~~}}~~||~}||z|ytyzy}tzww{lKJ`w}{ywyzyz||y|}~||}}|}zz||}wy}z|t}}{~uYGNlz|~ztw||~~|t}~~~~|zz||z}yy~~}|}~}~ywwuyzw~pRO[wzzuszzyw|~}yz~|z}~}|zywy||~~{|~~|z{}}{}zy}~}{|wwt}`TBmw~rww}ww~}}t{~ww~}}~|wtw}|}~~{|~}|}~~}|||z|}{z||ywvw{VMVv{w|z|y|}zy|}|}yw|ww~~}|}|z|}{|||}{||zz{wwz|pJJfzwz}w|w~|zyy}||~wz~~yz~}{|{z}|{~}w|~}||{yt|w_GOq}wz|wzwwyywy||zy{||{|}~w~~z|~~}{||{}}|~|wzz|}}|{rmNMaw~}~||twyz||z}|y{}~}wzw|||~~}}~~|}zw{y|}|{}}|u}_G[qw}}~|zzww|}|zwywy|{wy||wwzz~|}~}}{{}~~}yw|~~zw{}}}jSIh|{z||}|vtzw|~}ww|pw|{vu{|}~}|z}~|~}{{|~|z~~wuy}~||]MOo}}{v|wz~~wy~{wwy}~~|r|w|~{~|}{|}}~{z}}|z}wt[J\}|~~|~|{||z}}wzwwz~~wz}z~}{~}}~y|~}|~~ww~yz}gUTl}~|tw|z||z}}w}z||wy}||~||~~{}{{~}~|yzwuw~yw~~mVL\w{|~}}}ww|z||y||w~}~~zy|zyz|y}}~}{}~~z||{}|~~~{{}|]MNf~}wzz||}{{}|y||w||~~||~~zy~z~z~~}~~{|~{{~~~}|wzwWO\t}~}|~||{{~}y|}w|}}|}}~~y~|}~~~~zy||wwymQSf}~}~|}||~~z|{}|~~}~w|z~~|~}y|{|}}|zwy}wXM[q}}z}~}|}~|}~|}|}|~||syw~}z|y||vy~~|}|y~~fLQitz~~}~||}~|}|~|||z|z~}~}}ww|~~}|z~~{}w~|UE]z|{~~}~|w|~y~}z}}~|~~}|z|}yw~wfNQj{~}}~ww|~~~}~||z||~}|~~}~~~~z{sXK\w{{~}|}}|z~~|}|~|~~y|z~}|}{|{{lWKf~}|yw~||}~||~|}|{~||~}w}~|yz|yw|zy}w|~~{{hXSTv~zv|zyw|wyywz~~|y||΁|w||z|ww}}|}v}}~~w|^GTg~|{~|zz~}~|w}|~|||y~~}w{{v{vUJbz}|~~~|~~}}}~~}~||~ws~sp~wz||]GUqy{~y|~~|||~~|z|y~y||}yw||݀~z|||~|}~{wy~}bJOczw~}|~|~~|߆|~y~|z{~|}~|~|y}~}~|~}wy~}}~~wULbv}w||z~~yy~~|~||}}~}|~~~|~}yy}~~{iLTuy~~~~y|y~~yw}|}zw||~}~~~}~~р|y|}|~||o^O`z|~~~y}z|y~~}|wwzz~~~~~|w|~~}z{}YV\o~|w~|~ztyw~|y}~z~~||~~~~~~|z}||}~~؀~z{whJShyw}~||~|wzsy}zy||y}z|~~~|~|}~|~~~y|lTN^vy|~~|~~||~~|y|~||~}~~|~}~~|}~|||{cLXjyzzw}zwz}yw~~}||ww}~zzӧqjvգ|zw}pǡswgq¬jn}kq穧dg죧jhtũpdmyqĪdk|逸dqϣhvtttm󦧵çmg=asv\sj}n|qmtq|kvvd}petntqpꦧnqߝ֤nmt篲dn絛ۤdw𡣧w^𧣣jdܣwes䬦ed࣭y_jnkz説qYtht蠟dd᪯ţ_k񦭚jhͤ_zpbꧪ}hkҦ䤩zd|sqtg|}hjvk|mpwhzgms^}jmǩwe|򪯭vewpqί_qէsd穧}_sݭdkߵݪsgݬgq󯪩ѭkթyt|حdpqj睊㪧gw:;::2$$<;:8:5)(+:7:7-("98:9/&"T98:2(!0:899:9/$%<:8:99;3*"`:99;87:1, 08::879:9,)"68:+" X878::9:<:)'189:;+&y899768::<2' 48::88:=<<8'"6889:=>0("?:9:;:88::?:+* 8<<::99<99=.)!Z8;;<;9:;<<3($9:;::<<:9==<:)&'<;:9::;=<;=0& ;:9:;<<:<;6%!>9;<::;:;;=:<&%)98:<;<<9:==:>-' ;88:;==98==:=2'!W;:988:;;9<>;<6'$(9:;::;;:;:98;:,&$9;<;:;;:;998;<2)$=9;<:9:;;=<;=6+'(8:;:9::;;<=<:<:.'!7:;;::9=;88:<;3&!]8:;::;:9;;89;;=8($1:;:9:;<;:><><;=;-&!8<::9@<=;:;<<:1(!E;<;;:7::<<;::;<5('6:99:<;89:;;:<7(*$8768;;8:=:9:<;::=0*`9:89:88:>:9:<;::=8(!-:;9:;89;;:8;)( 8:7:<:;<::;8>2*#c6848<9:9::98;>>:9<5%&268869:99;989::;;7>6)%$69867889::;;:98:=9,&!r 9;98899:8:;::86:9:2*%8677678898::879:886:7,((8:;::;:<;668877898,(!| 768:86646878:;;8:9:0*#:98:<868899868:9:9,(*868:6689876789::99:=*' |78987;>997:;8:=979:7:5&#> ;::98::798::9;<8::<6*&. ;9899::89:99:;:8:79:;6,&$ 9668998;:9::89:9::2()E :868:8787<<9988:9::99<6)-. :9:;9896<<:988;7:877:7+)$8::;::<8:;:99:;89:;:2&$E7::9::9;9::9::8::68;:94)&2 :989::9::;:98958::9:++':978:<<;::89::8::9988:/&&f:988:<<:<;87:<;898899:8'*1:;:9::<:<=::<<:88:>./&;<;99:;:;<<;::98:9:<:87<2,)p;::;::;::9889899:<:88;6(.;:;:;;9899:899:9::9+/09;<;98:;:==:9;<:;;98998::/+*񃀁oOQ|u[X`{{eYL~~|~hTL~}|pYJk|iOS}~q]L~~}{lbGj}|z~~b\Ky|}`LH}{}~[Vl}||}}|~_TE}~~zy}pWHs|||}WKEy|}||}~kXL~}|_]H|f[J|솃rXO~灃~\TV~jTG~yRJ~TS[~}cVH|}}pWJ烁~||wWQX~|bUQ~|o[Q~~y_WX}~fWJz~}}qUJ}~}~|YQl聃~cTJ|}~lYI焃zuYWy~~|~{Y]Q|zy|}~j]A~|~}|~|YJe~}~|\YG|z}o^Nw|t}~~~}uRUpw}|w~~~}~zw[SOy~|w{||~~|~aTJ |}|}w~o]R|w{{y{||~||z~}}yzbYY}郀yw|}z{|~}bYI {y}|wyyty|z||~k]M|}y|}~~}|y}~~bX]|w|yw}~}zyz}~~^VGz|~|z~~z|~z{vTN ~|z~|~}y]Tf ~}~~|~~~|{~yaTO ~ww|~~}~}~oX[ |y}}z|z~~}|~~y[cf ~~|~y~||z|z{{_[Q}|~~}~oTOz~~~~}w}~s[Up ~}~~~}~v|~~``W݁~z|||~|~~||iUT~|}󀆃|z|}|~~|W]l݃~|}||fhU݃~~~}~|zpa[~||~|~||yYf~|~~|~~~~`hk~~}~~|~~}i`^񰭯kmzw󭦯yg󪬪qg𪬩yd𯭧kp󳭩}g񯪪_﩯|ega򩦩zt񩧧q^񩪪va璘ve^𣧩wgﯪ}a𧳳zd񵰬wk诰|qtq_믪ndqpz쪩tavd鰯vmw몯sm몰zm窰vw穯vd礭sd멯ym诰qdyb鲰yv篪y}m駤}X骭yd|y_j硧ns桩zpk쪯qd 謰}n 塦yy 밭yb 䦣}hw}ߧt_⤧qj ﲯ}q పqk wz ௧z 㪯zm 󩯭򰩪qk 㤯zs ᭪vݯsq󭵰v}ްsݰzy 𭯯۪           %     Cu   K    "&+;9968=<<:88676:98:8:8:86998::976889986886787T%+1<:=:9:78:98778898:99:889988988998788998778788,%*7;9:99::;9989:<::9::77:998989889:9878878878(')<>:98899;79:;:99:;::97:89:78:89889:988:878868&*-=;:8:;::879:;:99:9::98788;9968:8988989879878#+37989::;89989:;8:898798:998:9898897889:?&&*39978:6:9889::9:78:9:89:99:98989:9767887898996&*'4:;99;8:889:98<:58;:;77:99;:8969::7668:89:7897: ($/:<<:=7889987768:8899:68::9887899889:99@)*3;;?;99:99:<:9;::8899:98898=&'),;<:9:;99:;:99:99:9:9989::988988d)'(-::9<<98::998989:88998:9:9887788l#"&*58<=:8::8:9::8998:899::;:9889*%**59;::9:9:9::889::9::9::989 /*,1699:8::99689::9::9889987$%*16889>:<<;:8:9::8::89889988B$&$)38:=8;<;:;;::;::8<=::;;:<;::;:9m-$((0699:;=<:9:==;:9:<<9::<:9;::4&'*59<:79<97::9::9=8::98::`#'*(-8><;:9:9::9::9:<:9<9::99:.(#)08<97:<<:99;<<::9>9:;::<9<=;;<:9:;<;:-&%(*3;;8:;::97;>;8:<<:U'$&%-4:<<::95=?=<<:9::<;:9:: /#&$,7?:=;;8:;9=?99:8::9::;:y-&&)2:@9:=7<;<=:;;<<;:9"g%&'**5:>=9=;;<:;;<::9876)$%**2;;:;;=::<<:: 0!&(*)46;<>><:=::;<:;=p0"&157=>;<::9::<#&!$&*27;<>>=<;;<'"(+**19<><::/c-&)&%&/349==>1:'$$%$&+035/֋/)$"$&('.g6&"$#/ɎH.0.0LT_~y}}||}}|wzw}|}|y~~|~zy|}~~|w|}w{}zS_m{||{{|}}|||~~}|~}}~~}z|}~~}{z{|{|}|aR]z~~}||{z~~|}~|~||~~}{||{||{|XV[~}}{{z}~z||~||~~}||{}|w|T]e}|{}{||~~y|}~}||}~~||{|z}EN`q{~|~|}|}}{}~~|}~}~}||}~z||TT]q~{|y||z}|~~~~}~|~~zwz}|{||wT]Vs|}|||v|zz~~|~y~zww|}{|zGYQh{|}~|z{w|}|~y}~}}z|~~||~=\^r~~|}~~~}||}}TW[b~~~~~~|~~}}}||[VXc~|~|}~|}~~|~~}|{{||}NKU^u}}|~}~~}}~~}||}]S^]u~~~|}}~~~}} hC]bmw}y}~~~}}~}{OR]my||~}~}}|}~}}}}||QUO[r}}|~cOYYky~~~t>UV^uzz~~~}~}NW^Yc}~~~~~~~~fEXN[j|~{~~~~~OOT\l|~~󆈃~cURX^r|~z}WQTSct~v~~ h@NUOaz|~}~cETT\o{~"RTV]^v~~|zw[OS^]o kJUX][sykAELCTmu{~fNUJOT^pzنVKX`^]m~.ߢcT[USThrt1VOQRQT_jqv/h[OLQUXW.֥wTLOM/޼f0.0gq pn}񩧧󪭪wtz󪭪q}^j򩬭qq}߬q}t_ym R|qvzztwjes}p} [}kn}舘mskzΆkyySst絛jvy^wjzkkq|󵸰܆snwvmqp ߌVjsk҆^qq|"nqt}ߡzkp}!Ցdsw}zϑX^g[q ٵjsdkqtew}.ʆqzspq1گtkmnmq/،zkgmswv2̡qgkh/1.2 2 1 3 3 3 3 3 2 10/},\++*)(X%%"" "#%%q')*K-/1 4 79q=76788:88783'&&3;9799797856:9:878::9877:9:6&!+5:878778876756887899788:6+'$,6:98878669779878:9876683$!.789768988778:77996589689::2+$#-9:78988977965:76799876657882"#188:86:988778868:;8897:71' $4:8:899:98:7686569:9898789:1"%2997:78879:976887::79:6-$"-48<699:88:887679:97988:0"%09:89::778876686:87:;;88:73.%(-3;698977:778898587879:.!$.9:69;9887667787898867:8::78957.'$*788977:778989987668689-""/8878878568998878:57:79;6>4( "3:99:88:7657889::6979:-# 17687678899878:;868967:877:88974*,787:688:79887668869;:2'!-:8:9978688779789:858:88:88779878::66:69:787979:87789878878:91&",:7887:8997898988758;99:898688:976653::9:799:8898898788/%#+8778798875677988758:99899688;:6788988:<88977898778:899798-%$*7787867667:8868:887:96898<;:<:99558987875799778989:798+&#'688786788:88789788:97998::7::648788:78799:8:6)'"&699686788756:8878977:89989887968:9:9897:9::8778987:8:894&&#%49969868768655:8878988:99889778<967696774:767889;8:892#&$%4996::787788788::99898;:<99::78:688:787588697958::86;-$&&'.:788:66788768::889:99:8:9;9988968:6746577:9798:8:98989:,&&"$.;88796678876899778::9:9:8878868:78788998::98:8<:;887:7*'($#+:9866788769978::9:9988:979:99788766788:6::;7:87<3(&(*$)98965667887769:987899:9;8799:;:99:89:699;9:97=2'"+,$)988767769::88988:9:8:98:7688986798787:99:7:9;:898=2' 7*"*;87897768::88998:8:8::7:77989898<9898<9797:9:98:99.'!c,!':78998877668::889::99:897::6:89<::876:8788<9566;986:;84*&%2!"57::8876:<:9::9;::9::9:87989978:9;857998;:7#"$E088:766883366::989:<9:9::<9899887989:9::78778:988:4$!.=!1989876676775::9889:<;<9::;::989::7889::9898::1% ;>!%1979:775688659889::;<9::9:89:;:99:9:9::9:<8:9.%]@!&0:889797686579889::9:8::9789877899::9:;99:989;8::,% I$.;9778:867657::989::9:9:;9:889:988:8:<;:99:778998789:8*$%y#%-:89898668755;::9:<:<:898::9:<8::<:99866898778:6("-ޖ&&.87::76788775::<<;:98:<:<:9;::9:;::88;;9:<86799895'"2$.9698359:7676::74:<7:<;::9<:9::99::88::78:98:9:;899:1'K'-96686678878:<=;7:<:<988:;:;<:989::;;:889988:88:9896899/&{#&-876887567.068:>;;<:=<9;::;<;;=;;9:9::;::;98:9=86.%"$,::7678778&!$&).25;<9=>9<=:<<;;<;989::8:897799<93)$*$$.;:875567889&"''%##*+*2539:;>>==><:8;<;;<:7=::9::7710&!6%",9978876xC2'"#')%$()((,,-/023314655302/0.//*()*%@(!*679;99875ɑW=*"#"## %**))'%$#$%&''&%$(&'&&(&(" &*1"*566788986红yT;-."!!"! !##""!! ! &*2HR4#*676688989:97 󷬫d[]jo]=66>o|o3&6:868::98998 5!&69976899:98"'69::66899:  :"&69::8789989::!&68::987889< :!&68:9889:= >"&79;989:99::;@#'8:<:9<<:9::9/B!'7;:8<979:977.K!&89:7=;:99/Q"&97:989:98864/I"&98;<8::84/?!&8;9<:9768::8.H!(5<7898657997.y"(2<78:9:;:99/%&0::<::9757:.!&0:;:979;9788.!&0:;:989;9787."%/9;998:;977/#%/8:899::9877.$$.898899877.%$.8988:98878.%$/9::7:967889.%#/:;<7:85789:zw{|||}{|qVTTqz~~{~z|vw}z|~|z{{€wTI_v|z}{{||}||{wzvw||{|{}}y`VQaw~||}|z|ww{{|{}~|zww}|}rQJfz}{w}}|{{|{zwv|y}~o_ONc{}}|~z{yv{w{~~}{ywv{|}oLNm}||w}|{{||}|ww|}||}}~{{mWGQt}|~~}{y}yuw~~}~|z|mLRo~~{{||}||{zzw||z{~weOKet}y~}}}||zw{~~{||jLRj|~z{||{ww}w}z}|{qfSYcqy~|~z{{{|}||~~|v|z|{~fJOg~y~~||zwwz{|z}||}|wz}{}vzfVO]z|}|~z{zz}}~~}{yy|w}cLLh||z}}|}||{z{||vw|}|{|vzz~wtYGKr~~}|{yu{||~wy~z~cMHlzw|{w{||}|{}}w|wz|{z{|}~{s^az|{w}}z|}}|zww}|y~pVJc}~~{|w||z{{}|v|||||{z|z|wwyz|z{}{{}|z|}z|lTLbz}}{}{||}}zu|||w||~{ywvq{}||}}}z}}hRN_}z{z}{||{vw{z}|zv||w|}}y{||||}}{z}}{z}|z~|eRO]{{|z|yzww{ƀ}}|w|||}{w}|~vu}|{}zv{{z|}{|`TNWy}}z|wz||}||}}{|{|}|{}zwt|z}|}|zz|}}|z~|w\WLTw~y|yz||}{vw||}{|{{}|||{~y|~}z}{z{}|{}}sTUMRt~y~}w|zw|wuv||{|||}|zz|~w{ywzzszwz}}|}|}oNUQRs~~yz}{z}|z}}|~|~~{}w|}z|{v}||w~{~v}|ycQTTVfz||wwz||zy}}|~}~~~||w|w{swuz{z{|}}~}bTTLQf||{wwz||zy}{z}~~}}z|}w}{|{}|}}||}|{z]VXOM`~}ywwyz||zy{z}~~~}}ƀ{{}}|zwwz}}w{}zqXTX]O[~|~wuyyz||zzy|{|~~~}{}~w~~~~{oVK`aO[||zwzzy}|}||с~}~}{w|||wz|z|{{~}}oWGz]L]}{}zzy}}|}́||{{{}|}|}{~{~~}~fVJbJV{}~||zzyy}||~~|~zw|}zw|z}}uww~}y|t]TRpJLv{||zy~~~}{~|~~z|~|vz|zNLOBEk|}{ww||rrww~}~~~}}|z~|~~z}{z}||sQJf@Jm~|~}{wwzwzzu~|}~~~}~؀z||}|mSGIRm{~{zvw||wv~}}~~~}~؀}~fSDITk||z{w|wu{~}|~~}~{}}{z|~~݀|}aRHBOf{{||w{wuz~}~~~~||||}|~~zz||{||]OSNRe|~}}ww|{vu~}~|}ˆ~~|ww|}{{}yXLcTTf}z{wz||{zu~|~񁃁||~|wz}~vVLoEOgy}ruzw{wztz~~~}|{|}}~~lWDCVe~wy}wwz||z|z~}}}||}}}||~y}~iTCMTc}zy}}||{vw{fkw}~ꃁ~}|yfRCKOazwz|{z{}TJQT[fou~|}|~z{r[O^OOf}{uvw{||}TBLWVSMN^_^our~}z~{{ljUIwRLb~{}||zwծoVLMV[RQX\XYaaeikorrmswvuuqjohkgih]X[^RBYI]w{|zu޾]KMLNMGR^][[VSOMQSUVVUSQXTVTTXUXLHT^mL]uwwz|}}|}wǯefLJILIDAEHHJMMKKIJHJDHU^otM]w{yy|}}z ͹wwqDTw|w}|~| vIUw~zw|}KWwww|  LUw~|z||~JTw||{}|| JTw|}||} KU{}NW}~/IWz}~{~{z.IU}~{~~/KTz|~~}|wt/KT}|}t/JT|{w||.JXvz}|wv{{.LXoz}~.RTjzuz.JTj{~{}|.JTj|{|{.KSi~~}{{z.MSi}|~|zz.OQg}~|}~|{{.SQg}}|||{}.SOi~{~y{}}.SNi{}vz}~ܦtqq­qbtm逸mdkjgjv_mgnke񭯏gnpydktk}ggy_eha۩tdqg覯󯪦ᬩnjЧnk}ƭqjv㦧駩|vgqqshn㦧⩬jsmnᪧmqqt¤qqgmΪ}twkhƭwqw}kz毩tekzѯv_}g}ͯtdʅdtȩ}qnܗdg誯称jgkY^멬ٛmdVdحp_bn󰵪حp\bqݭnaYkĪ}kpjn˵wgqq񯰯ݩtg^kv\[tq[hqঠ갯n[ekqdmqzzkkkqYgvtphjsbng褡tghtznmw|wyߔ}wznYyb}Ƹ}ehgjh_n}zztpkhmpsttspmwqtqqwswgaqg}Ųgdbgb\X^aadhheebdad\ash} ȶ\q bsev gs dqdqesjv/bv.bs/eq/eq/dq.dw.gw/nq.dq.dq.ep.hp.km.pm.pk.pj====<<;%;<;;;;;))# %}dOOO 000000000 0 0 00 0% 1 1 1 1 1 1 1 1 1 987789::6788787898::68698875885853887;678::769;:88988988967886767897747587887998:758869978<;8898988787878689665967688:99:8798688::8::9:6789:98798867788788786788<8878898798899896::88978876986688998767886787769;8;877689978898978768:7578876678986689::9876677676787658:678667:9:8878798899776787678:988987678787657857768789899879866:5788779:99889988776786676675686:76988967988:866876858::878868::866465668868846568658:866866785957<789857;96799:987787678986656776686884:6554688989:878786967:779867::77887876688678766766886:665458789;;886889887589879:87878876778686466875588558978:967868989878688789879887656788676438864689844775699678767978979869878876886:988678876865665448864688756558:88788789889689798878867878898766546644668647866866558:8967889788689887897789889898664656846648843469868:9966988769779:977:79:879:889988676564766862533764688737:6697988:879:887987789664566766863656755766863687898877878978868788986687668654467667647687567558876787667789898987868998896868446675765768756766889768657889:;::9::887799876898447644766457567564776568874876877:889989:;;8998975788668:866776676646576676636656996488788:7889::788786578766898878665658668776756778967988788796887866788668966356776658668898845886779;:79987979:89688768966544662335676545348898657876687798796679:8898::779::867768:9665665877876887688787667877688987898998778::7689897887897668864687766776779896678877978898789::8879768868788986678756866778766788767:788:988::96887788776789:977667866889:987667788788767:778989988::7889887679987866768997667668989::988789767789989879986887788684688667898997798:87889878988:8:998987887998788678::8468989:9768986886798:86799:87:;9979889988987667887987987988986896886:7988648977899::976:;9899:988:8::8867::89:88:86789:867<778:78988788;9889:76998789:88998:7988;98996898868768;7679;88;67989;8788:<87887787998988:9988988689886677:77889::;:7788:;979988986<:88969:8868<:9886896789:8686789:;;:798799:68988975;:889:798688;86688::988:7878:8798989;;:77:97:98:56789:8698898669:8867889:8898899:8866878;8:899:79:99:;97;98899767788787978978988968878::89776787796;9976;:<9::<;5<868::998998749::8669768989:87867::889;;98898:8<:<:9889:8:98:869:;:668::99:8779:877886698668879::98998:9<8:997889::69::966::98789;869866;9886577689989:988::8<9<8:99:889::9:68:9868:9889768768:889757678::989988:8<9<799:9::986<6886889886996699687889986887699878::9;9<8:99:9876:89659986887896::77:96889887769:87899:8<8:998788:86:96688689:887678876789:987899;8<8:8998976:98:86778877976889887667877889:87899;8;7989::98896898988766887646778:96886789899899858::8899788765889::66:899667679868669789:989967889899:969::98867766788678998667866878866876867887677877688998:;:8989::8876686788676886676876688669988776556688;:868::9868::9898867876688698988766764:9887787668:867998868::99:99886599644786788686765667889::9889988698899889:98788976676877886679966887667886678988789987889898987787887766868779866989978989889679:8657::899789:988765667986685768;;::;88989:88766779886679;69868:99:9986787877874568:869:86678876876789986:956878768978865898998878987796766875576897789876677678987789;:77886798788:9778678867876676856:857:887768987667:9887898856986788:8667:6899866786676786857:85687889864987788658568789775688788368898797899877977867867689766577889876887788767579889667767886889758678898988788768:86773887787887689889:998658856987:9767557677899887878689868869876788766898::8876986788767876878767886686688787787579887:8767886:9568788768879~}zz|~w{|}|{z{{||}{||w|w|}{v||v|ur||{w{|{w||}}|~}||}~~wz||wzwz{z|zzs{v|z}|z|{v||w{}}}||}|~}||}}||{zz{||}}z{||{{||w|wwuwzw|}|}z|w}|}wz||z~||}||}|wz{|}|{||}z{|w{}|||z|}}}{|||w||z|}}|{zw~|yy|}~~|zwz||wz|{{w|}{zw|z|||z}zw}{v{||{ww{|~|yy|~}{wwzzwzwz{}zwv}w{|ww{||{|{||{zw{|{wz}~}||~|{zwwz{z{||{{||zwuz|v{zw|z||}||{|wwv{}}{{~~}}~~}|zz{zwwz|wwzww{vw|w{w||wz}}|}||ww}{w|v|}{|}|yw||wwywttwwvww}}y||twuy|wv}|ww|wwz|uuzz}|v{w{~}{z{|zwz}~|ywyyvwzzww|w||tyvvtw|}||{|z|ww{zz|w{{{||}}||{{|zyy|}||yywwz|zwwzyw||wywvtv|{}||}w|}}|}zv}|{|{|{||{zwzz|}|ywy||wtwyww|}zuu||vv|~z|w{|w||}z|w|}|z|}z}||{wvwz||wzwtr||wtw|~}st{{vy~~w{}{w{z|z}w|{||zw|}w}}|wwyz||zy|wvwwvss||wsw}||{vwvv|}|z||z|||w}z}|{||w{}{}|}}||zyyvtwwttww|wtz|ww|yyvv||wz}|}{}|w}|}|}{}zz}||}}~}ywwywttwwvw|tywt||trtw~|w|~ww}|{w{{{{{|z||}||yzwvwtszww}wouqrzwsw||zqzwwz||}}z|}|{}{zz|}}~ywwywtstvwwzww|wqwuwzvuzww}wqw}{|||{z{}}|{|{}|w|z}}||~}ww|zww|wvtstwyyzww{wszw|zuw{vu|}zwz|{ww{{|}||}z|w}}||~yw}}ww}ttwwzvzwuzw}zvwzww||{w|wvz||}}|}z{~}zy||ttzyttzwwywwttvzvwzvws{zwvw||zs|{w|{z|}}||{v{}|yw||wwzzwwzyywwttwwu{ww{wwrwwvwws|}z||{||z||{|wuz|{ww|}||z|wwvwu|ww|{{wzuw{{}wz}||}|{||}||{{w|}{|wy{||yy|~yywqvw{zwwv}ww}}||sv}||w{{z{z}|{z{}w|}}|zy|~yyvstywpqqruw{wusurs|}||wvz|{ww|zz}{ywz~}|~|{z}w{{w|wyywvwwv|{zz||zw|}zw}|z|{ww{|{z{w||}{}~}~~|zz|{w||~z||z|~zwy||wtw|{zwwz{{w{z{}wwz||z{{}}}{|~}|}|z{zw||w}z|}}~|wwz}zvw}wwzz{|{wwz|}{w{{||}~||~w||{{}}{{y{|~~zzwwz|ww|||zww{{|}||z||}}{w{{zz{|}|~~||z||}||{yz~~}{|ywyyzw|{wwzww|}||}|z|{wz{z|~~|~|{|w}|zz|}}yww||sw||wwz}}{{||{|}|}|z||}|~~|~}|{||{~|z}|w{||tw|~|{w||w||wz}|w{|{{~||~~||~}{ww{|}}z~|z~|z~|}|||w}w}||w{||ws}{z}zy}~~|}}|}||yz}~|}}w{||wz{{z}{|||}|{||}}zy~|z|~}|~~}z~}|}|}~|~~y|~}||ww|zw}{wz}}wz||z||}}z|}{z|z~~|~}|~~}|}||~}||wy}~}|ww{zz{z|}zz||z}|~}y|}}||w~||y|~||}}||wy}~w{|}w|w{|{|{w|}|~{u}}~z~|y||}|yy|}~|}}||}z|{}}{||zz{|vw{|}w~||}~~}ww~}}|yz||~||~||~~}|ww|{|}|z{|}~{w{{||{|}zz~~z|~z|~||~y|}z|}~z{wz}{zw{wv|w||~~}|{s~}ww~zw|~|~}z|yz|||}}}|}}||}~~|~||y~yw|~~}zz~}zz||yw|yy|}|z}}}z|}~w~~yy~|z|~|y~|wy||}yv{zy|~~}|}}||}~~w}~}y|~||}~zw|zw|||~zvzwz|~}}|}}{~~|yy||y||~}}||}w~~yy~~w|{|}~~|w||}{y}{||~|zy|~wv~~}y|}|zz|~wzz~w||}||||zzyw}{|}|~|z|||y~ww|}|yw|~}||}||zyz||{zyyz{||z|}|}~~}||}~zw~|}wzz||zz~zw|}||~||zywyz|zz||}~~|z|}{}~}||~w}~|~||zwy||zwtyzz|~w||ywwyzz|}~~|}|v|}|~~z||{wu||~ywy}~ww{wz~}y|ww~z|~}y{||}~|w~~}}|y{zww{||yz}~~|yyww{|ww|{|}yw|zw|yz||zwz{}{{zy|}~}}|~}~}||zww|wz||}|wzy||wwzy|zww||ww~~}|zz{yvuww|}|w||y|~}~||wz|zww}|w~}~}|zywyywwzzwt~}|zz{|{ywwy||큀|w{||y|~~}}|wv~~yttz|yz||}|wy||ww{zwwvwyz}}|~}}||}|w~}}~~}|~|{||~zwwzy|zz}|wyyz~~ww||}zww{||yy{|~}|z||{||~|}~}|{zz{|{}|zzywy|y|zz~}wy~|~~z|~|~||}~~wwy{}wv{|~~z|~~||{wuywz~|wy}vzy|||~|~|}zwyz{{z~}|wwz~w|w}|wz}z}{z}{suy|}y~|ww{||zw|{w{}|wuw|{|{w|{|}wu}|||{||z{w{ww|zvv{w|{{}|zwwz{zw{||{z{}z{||wz|z||}zz}wz|}|wz}zwwzw}uw|v{}|{{zww|}}zwwz}|{|||uw}w{}|}wwzw||ww{|ww{wz|w|uz|vw|{||}|ws|{{||wu|vw|{|{zvw||{|}qw|}|{z||{{z{|w{}w{w}{wwvz{|}|zw}|z{||{w{uz|}ww{zwz|}|w||zv|w{||}}||{||zw|}w{{r}|zz{||{||zw|}||wv}|vw}{{wzuu{w{{z|||z|{|w||w|}w|zw{|}}|}|{ww||||}|zw|w{}||{{w{}zw|{|zwz||ww|ww}}z|{z|zv{|}||{}zw{|}|wuw|{||}zw||zѩ㧪ܞ󩧧㩤鬤񤧦৬릧󦤡񤡞㧡ɩפġפڧѤˣ͠ʡ𝛤椘֪ͣ𩬬椠䬯ۣ٧➧񡧩󠩡ͩߧ䬩ө򦧩񬩧ޤͦڦۦŬ⩭š硣ꪯܩ驪󭩧뭤Ƨޤ⣠餠쯪𦣬夣ﯧ妤񩪤詪𤡣溺ڦ󬡪æ詧裠ڤ󧡠ۦ獵۩˦맡ܦӦᤡάܤ禯68867H$788778s$78878t$788t$67788v$6788I#8778877#8778866"8988778"67889:"6789988!789887!78988!8788Q 9878U 67889:W787?8787:988788:_988:9878899:97899;9e87899:9<987678998867899899b9889:98b989::9889899::98889:889:9889::98I8989:9::98@6776898:9887r6:998668;;:99r3:8::69:9986=8::6988E9=69:697667789:778988788987898798899889686865:8897898988:68:8:86678897887678899889988::9988::887868:9897887869:889866:989::9899876788689889:9988:9886877::89;9979868989869:87788677876677:77686368898899884867;977989879864::6877:88::889::887658966878:86899:965::9:78898686978686:96889:89;9679866978878988::9898687:99677899878697868688:9:9889968:86687787887689889989989957789::987879796769688:9:89::889898997696676678898:76:9688987979786988967789987889887696678868869;76:86899887697978876879:687898898669867788989668898:<879667:98667887686979966869:7989988988986798668:98986836678::9;88687988667887968699::8468::99:98688964679886464688989798698868968699486;::978868::977667653768989868776:668689987647887887:45:769696:6889;;:99:9876677:87767988786:77889;<<8787996897886:894679::9::9878;88646887886887866869877876987988;8698:67688679:88998779886878868879::;;:9877887688<:88797:8878986686789887887896687788779976899766898778998686788::8686:8:889896789876698868787998::86689887789987:7687886:7:789889::88764:88687876:7988988789:<887788:88669669:69699::86887876:8874866:7989<:88::9788776677989:56<677678869878987767978868788656775799::798867:8877995:778968<:6989988::89889:8878988688987688768988:887867:88959789:66988<67877887787897886878766788779977898786798898995988978:97:56656787678878857667667887898977:88988:598868;:78788989;878677578898876:9:88:87887:7998986788:889::889988988:877578577878789976::8:87886:89986899868;87799878876778767868767876678987987898:88:87985:7887668::886799878:8788689688987788:97877:87978:87:95:6686;6469:97w||wz$z||zz|${||{|$z||$wz{||$wz||#|zz||zz#}{z||ww"}}|z{}"w{|}"w{|}|!{|}|z!{zz{}}|!}||{|| |{| w{|}|}z{|}}|z|{|z}|{||}||}|~|{|}~{|~|z{|~}|zw{|~|z|yz|~~}~~~||~~}~}~~}|~}~~~}|}~}}|~~~||}|~~||}~~}}~~~||wzzw}~|~}||zzy~~}yy}~~r}w~~~}||y}w~||}|}~y~y~zwyzz|~zz{|||{||~|z|~}z~}}~~||~y|w|wv||z||||w|}}wwyz|}~{||{wz}||}~~|}~~|}}||z|y|~}{||z|w~||~|wy~}~~}|zwz||}ww|~}}~~~|}~||}y|zz}{|w|~|~|w~}zz|}|wz{|{wwz{{zzww|wrw||}|~||~~||}|t|yz~z{||z}wty|zz}}}|~}|{wv}~wy|z}|y}~~܁~wv~{}||}~~}}||w|wz|w|w~y||}~~߁}|~~yz|wy~z||z}~|}~}~|y|{~~w{z|~~|}z}wz|w|w}||~~~|}~~y|}yy}zz|z|}zy|~}}~~|~~|~~v{z|~~|z}{zw{w~y||~|~}||~|~}~{y~ywwyyzywz||~|}{w~w}|}~~}||{zz|w~|}|}~wzz}~~|z|}|~||}zywyyz||y|}||w~zw}w}~~||}{wzz}|zy|z~y|z}~}||}wy}y{z}}~|~wy||~||z~yw{~|yyz|}zw}wzww|y~z~|~~}|~}|~|wz|wy|~}~|y}rwyz}|}|w|{~}|ywyz||{w}w|}|ty}~~~|y||}wtyz~}||wtwtw||~}|~{~|w|}||ywwyy}|w|wt}w~z||y|~{zwwzwvrzw|~}~}w}{{www|w|~~}zwt{||{||}zsvzww~wy|}~~~~|zwwz{{|zzwz~||{|wzz||}~|{|{w|z||y|~twz~~~~}}|{{|}|ytw}}{||w}||z|yww||y|zz{|{w|z||}y~|wzw||yz~||~|zz~|}}ww||{||w|}}z~|zz|}|z{{w}}|}z~z|}}z|~}yw|w{}}|{||z}~yy|z{||{zzy|~~zwy||z{}|w}wz}||y|w}||}~~|}~w{}}{ww~||wy}||{z}z|}ww|~}|{{}}z{w|z||}||wzz}~}}~||}}|{ws||wy|z|zwz}|~}|z|~||{{||}}|wwwwy~w~w~~|y|}|{{|}|{w|}}zzt}wwz}|}~z||{zwwzz|uwwz{zwz}|w|{}|zzw{{||w}z||wuwzzv{{|}wz}}{{uz{|~y|y~|||}||}|}z|||}w}|}zw|}|zw||}|}{|wz|}||uz|~yw~}|w{|zz||{{z{||zz||{|}w|z|{wwz||z{zz}|{|wz||}u||~z|~zuwwvwz|{wz}||}z||v{wwzww{||}{z|||z{||}|v||w|z|z|}}||}|}||{|wz{uz||}}||}|zw|||{||z{|~}yz}||||}}||}|}|{{vz|uz{{||z{}}{|zw|||{||w||y|~~|w||z{|{|}{w{{zz||{{w{}w|zwz|{ww{}|{|z|}|||{}u{||zwy|||}|wz}{||{||}||w|w}}|}}zz}|{|zz|{{||{uww|wysw~~z$$$$$##"""!!!  𧩪𡤤٧뤩ध𩡡ڦħܯ߯鯪ܦꩦ৩ީ֣⩤𭧤⦬꧰ޣܪ󡣩驡ꡭ硣穭۬𧩬ɩЩ=<<<<Ξ;;:9垠9:姠:ѝ:88梠8765Ԝ5禠5ǟ3ߜ33 2ݠ 1 /뤠 / 7899889:8::778:7766889978898;9669::9889::87:99796776689789688698;98678789889977898:887::7:88998:9989878869987898998:69686886798899778689;8:8:89889976768898::8898689988:7878:6:88788668867798:=886::878:964646778::898768::8898989:978679668898876::9866787<;867848988::89878658978789988989::8:8896889889:6889::8;:87884897687678687689877899889:8:8897988:;88998969889896786688687898668688987889986887:6788788::9987668968989778898989:866898768898688698898766878;:788676889:988669:87669898688988:8998869;:87678867889968869866897765889878:98878:68869:9667899:988486898:9646766886886898898878;;9876688346886966468998:9899869986978746878:868866988:989886989:8869646679989:88;869:8648;:889864689887899889::98898896744687897866899898699678876867889:7886879889688788688:986687679667996868868988988969889787688989::987886868689:96698866988;::99887669889796676789:987886897788::98688766889887667887769887989886899889::8976898898:8686:6898878:8878789::87:8687:688:8:89988::8:8688686688:89::88788789:988788:8687:6889868899889988:96887764667:88:989::8678878:886996879887887689:987689::967976886878869:9:89;99;9789:8688688687789974266899:8997468878867688977::9:88:8899876698688688;;:9889898766868988:98:88:8878988678878989:9868988968:98986998:88:8878987766788677889:99:978:88:89:989878:9:88:889889:87866878;:8668898876689988:988989::8:989989:9:88;989::9768:7686697876689863766899689988:7889898:97998898:88:88:8789668669778868::96:9766899889::88:688:9799;97887698978:88778::98=<<<<Ξ;ﰟ;:9䞠9:妠:Н:88䢠77럠65Ԝ5楠5ǟ3ߛ33 2ݠ 1 /ꢠ / z||||zz}z{wy||~~{}}||~}~yy~~}||~}z~~z~yzzywy||}{z|w|}y~}~|wz|z|~}|~~{{}~|}}zz}|~~|~~|}~~}|z||y}|{|}~~|w~y|w||wz~}}~~{z{|y|~}}|~||~~zyzy|}}~~|}||~}y}}}z|z|y}|z||ww}|wz{zz~~}|||w|z}~wtwtwzz}|~}zw||}||||}}~~}||~~z|yz~wy||}~}|zw~|ywz|z|wz}s|||}}{|yv|{|{|||}|}~~}}~}||~y|}~}}|}~y|}}~||z|}s}{w|{wz|y|{w||{z|}||}~~|}|~{~||}||}|}~~}~w~|}~}~yz|ww||y|{|~|wy|y||}|z|}~~|w}||{wz}}|z||~~|zyy}~y}~|~zz||}~}~|}ww}}{w||}~~}||w}||w|}~}zww}||zz||}z}|wzw}}~~||yy}{yy}|}|w||}~}||~~}|w~}zyz||}|yyz|}~~y||y~|yy|~zzwv|}||}|}|{}||z|}||y|}}|w~~ywz}~~~||}||t|y|~}~wty{wy}|w}|y}~|}}|z}|zwy||rty||wywtw|~~|~}~~|w~~}|}w~z|{tw|{|}y||yy~}|}~|~||}wy~|~}}w~wswyyz}~}||w~}wt|||~}ytw|}|{|~}|}~~}|~}|~wztty|z|~z}yw|~~~|||y~~wz||zw}yz||~{|}}||}wwy||z~}}~y||z|}||y||}~~}yy}{w{~wwz~~w|y|}|yw|~||~}||~~y~}}~z|zy||}~~}~~|z|}}ww||ww|w}~~wy~}|yyw}||~~}|zyy~}|~z~wwyzzyz|~~|z||}ww}~{{||~}w||zyy||}||zwyz||zzy~||}z~|~}||yww|~~}|~|~{w}||~}}y|yw|~}|z}}}||{{|}|zz|~|z|y|zw||}}|~~|}||w|}||y|ww||}~}|z||z{}~||z|||w|zw||~}w||~~||~~||~w||{{wtwwz||~}~|w{|}|zz}}}ww|{~||z||zw|~~|zy|~~wz~zw}|w|z}}w~~}~~~~z|~|w}}w}}w|{z|~~ztpwy}~~|~~zty||z||yzw||~zz~|}}}~~}|zyw~|w||w||~}|}~~|}~~}zwyw|}||wy}}~||~}||||z|~}|yz|}|zz|~|}~~}||w}~||~y}~}~|y~~}||}||zz|}~~}{{ww{||yzz||}}~~~~z}|}}~~}~|z}~|}}}~}||~|z|ww|{||yy|}~}||zywyy|~~}}~|}~}~|~|~~|~~}}~}~~zy|{w|ww{|zyy|~}wrzyww|~~y|~~||z}||~~}~|~z~~||~}||}|}|z|~yw}wwz{}|y|~y~zwy|~~||~}}w||~z~~~z}}zy~|~z|||zz}~|=<<<<Ξ;ﰟ;:9䞠9:妠:Н:88䢠77럠65Ԝ5楠5ǟ3ߛ33 2ݠ 1 /ꢠ / ꤧ榩ߦΩ󧭭ު檡䦯⩧䩪駩ة횝橧󪧪¤詣䩪ﲯ쩡񣧡Ǫ䪯󪤤멧骧੧᭪뭪ϝ[879<;846:9488656998878766889887899889878::868:;9987887988998678898878868:;878:9767877899 89Ρ887667768:77889889766788788988 8899:88::98968866:;:988987788987쮠Q78::98::8788:955:;89877878976789:87眠878:98868:86799687667787667998̝9789869:8669<88986:98896789887668879::9866898868;:8877:79878869887788985879::9887898865788766899:87887885978::988:8878755788765779988788768869889>88998:8898858678789786776698878879889<78:978789886967889:7978867988789778879e878:85768988767886889:9987897978879h:7788676897788788789::878878868788968j;86788778866889;86887:7866886788758798968ϗ>99<8988789:8776:8779<:896898::688689:9:7786699Ӕ7989667:99::8787:9889;96879:9;:99867898;89966f48869;878868:99:;869899:<9:9867898879:8688 89989:889::99:8:89::67:9989:6987678::67998789 ;:99:9966876686879:9:68:8868:69887789:8::87678 p99688;:9:99:988968799897887867;6::98768:8:988: K::897:87986876679899898866966:69::767:7:879::; D7:8:8;::98688:9:9688988;669588::868;9;:89:89 v98:9:97:99886878768978977866::9:879:68:9898 t98868879899:688788688799889878779878978898 884688978899:887688688799889987668876798 8896898:99876686867887889887788976898 88:8998::9866876788667878::989:7::8788 8869898699887668788667866879<<889:8:98878 Y88968899787887768689665786588788:879899879868 K6898979:996::99::88769:66577558989:8996686:8668668 4686:88::88;;8677899:9:8:989867889868;::97668 68:89889989978:;96469::9886887998:88988;89988788蟡8668789988998789986689987889:88987889:6688 L:989889887:96689889:88986686889;88::99889878998868989898766867678688:889886988:987848:988988:9::9886889878878688687::89:88::9987689878:;88786898:;:788:989988998796998;:889867868;;98::6::868988989;:6788:9:9889::9669887:;868::998899879:98:86886779:88979:679776689:9899::988766998869:878::889:98::89868:8989:88:68:89:5889:988769868898::998:98668;9:89:88579883889:8878876998698:9889:8998:9766887867:88769:87868899889:8898898:998:9::879::889::;89::76678786698898::89:988766876:8:998::9889::899::89878699:769768767898788788767899879899799889:99887988989969:;88:8676568875886789989:869968866998686788766:7899:9689;88:87789::98998689::977896:<97998898688:69:879978987799899::99:9889899886678:82946:884688679866898868;89868:8688798::9889:769;:986446768:8:8:<98989868::987689868:98668:8488789989:9668;88997887889868:979:988::868::98:669889898769;968877889978986689878866998668988;:6776897689768:679886889::9887788988766898898677668878:869;9:88:976899:9667789989::8878878987789986868878:97:;9889:869966889::988;86678899889878877889887;98868::9==::989668676689::868;946988:98878987886788989;99899879769:88:;:76897679:879:986788:9;:99;:66996867::78:978878989::887988987679988987898:8668::9669::8778855786787897:;:887688766789889898:6468::9:98789:;7768678876889;99:778:8986689:9676688978897678868988998:99889878::8998669:99:96866997689::8898677879:889989887787898:97:;98898:88988979:87887787798778879:9:99:9887788989::898:998998895798788978779878::889878::98778898789::66:<87:6789988679::86898876987887:9:88Ν|{|ty~t||wuw||{|{ww|}}||}z{|}|||z|}w|~|{||{z}}}||}}|wz||}}|z||yww|}{|{wz|{{||}|͠||zwwzzy|z{|}}}zwwz|}}|{||}}|}||}}|| ||}|~}~w}|ww||}|zz|}}|}|z쭠{|~}|z||uv}|{z{||z{|}zwz|}{眠}z|||wy}}}wzw|{wwz{{z{||}zww{|ʝz||y~|ww~|||w||}wz|}||zww|}|{}ww|||w||}{zz|{}|w}|{{|}}|u}z||z|||wv{||zww}}{|}||}|{}}v{}||||}{|{vv{}|zwv{{||{}||}}{w|}}w||}}|||||v|w{}{|z}w{{ww|}||}|z|}|z||П}{}z}z||}|ww{}|{z||w{|}|{{|}}||{z||{|z||vzw|||}z{w{}}|w}||}|z{|}{z||}z{z||wzw}zz}|{||}|z{|}}|{}|{||}||w}z}|w|ݏ|w{}|{z}|ww|}|w||{z|ww}|w{}||}}{zv}z}w|ϝ|~~|~}}z|~}zzw}zz~|~y}~|y||y|~~zz}yy~~Ϝz~|~wyz~~}z|z~||~~w}z~~~~|yz}~|}~~ywyyt||w~|z|}|wwy|~~䀃|w~}~~~~|yz}~||z~|y|| }~~}|~||~~~|}~yz~~|~w~}zwz}wz~~|z|~ ~~~~ww|zwy}y}z~~y|}|w|w~}|zz|~}}zyz| ӑ~~y|}~~~~||~w|z~~}~z||z|wzy~}zw||~||} 񆀁|~z|z~|y|zwwz~|~~|~||yy~www~zwzz}z~ z}|~|y|}||}~~y}|||yw~u|}|w|~|~}~ ~}~~z~~||yww}|{}{w}~{}~{{|wy~}z~y|~}~} ~|}y||z~|~~y}|{||w|}{~||~|z}zz~}z}~z|}||~} |}||ty||~z|}~~|}{y||y||{~~|||zww|}||}||zwz~| |}}~w|~}~~}zywy}|yy||yy{|}}{|}||zz|}|}|~~zw|~| }}|}~~|~|ww}|{{w{||yy{|z}~|~z|z|| }}w~}~|y~~|}||zww|{||yyw{|wwyyw|z~}|~|~|}}z| ||~y}|~~z}z||zzyw|y}~ywyv{|wv||{|}}|z~}~~|z~|w| ʞy|~|~z~~~w~~}|{w~ywwu{{vu}|~|~~yy|y}ww}yw| tw}y||||}yzz|~~~}~}~|wz||}~|y|~zyy| y|}~}}~~}~~z|~wtw~~}||y}|z~~}||~||}}~~}|z||蟡|wy|z|~~||~~|z|~~|ww|~~}|z||~}|}||~|z|}}~wy||}郀~}~}|}~||}}z~ywwy|}||}~||}~~}||~}wwy||y||}~~|}~~}}||~~|z|~~}||yw||}~~|}~~}||~~}zwwy||wzwz|y}||}~||y~|}~|z|t|~||}}~}}|~~}|y}}|}~}z||}|z}w||w}z|~|}~~}zw|~|z}}||}|z|w|~}z|}|}~|~~||~~}z~y~~}||~|wz}y|~}w||}|wywwy|}}|~|}~|~wz||}~~}}~~yw~}||z|y}~~|}~~}|z~~|}w||wzz~||zwzzzyy|~~|~~~}|zww~~||w~|z}}||}~~~~}}~|w|}~}~||w||u||}~~|}||zzyww~}|w}}|}~~|~~}|~|ww|~|~|}}vz|}|r}}~}|z||zw~~}y~}~||~}~~}||䀁~zww|}z|wz||{w|{|w}}~~}}~}||}~}|~|~~|~|z~||}~|~zww{|z|ww~||}}||}zywy|}zw|~~|~||~}~~}~|z|y~~zy~zy}zw{|}z||z||}zyz|~~|z~|~~z~~||}}||~~܀~~}|z~|}~}~~y~|||yzwuw|}{v}|yz}~~|}~~}y~~w||yy~~|y|yz||zwwz|~~w|~||}zz}}~|y|~~zz|~y~z~~||~|w||w~|z~~z|}{{}~~~~ɀ~|}~}~~|}wwz||p~sy||}ty||yz~}ww|~||y||~}y|}w|}|{{}~||~zy~~|wttyzw||}~}~|~|w|~|zw|~|y}~}yw}}t||{}|~~ww}}|~~z||z||~|w|~z~~|}|y}~}ww~}|~|~}zy~~w||{{|}z}~|yw|~}z||wy~~|yy}~|}yzzy|~zy}~zy|yz~||w|}}|~~||{{||}||}||zww}~||~|wzzwy||z||w~~}|}~zy|~~~ywzz|~~}~}|{||{||zz|~~|w|y|}z|~z~}||~~|w~~ww}}~~}|||wwz|}~~}||}~|{||z{}||}~}|z~||w|~~|~ww|}|wzwy|~|w|~ty~||~||z||{||wz||}~~||~~~}~~|z~zw~||뀄zy}{w{}z~~|wz||~ۃ~~yw~~y}w{{|z|}{||~}}|z~}||}~~|zw{}||~~|z}~}|ww}~yy~}{{}|vuz|w{|{|{}}zw||}zwwz|}|}~~||~~|ysw}~~|z|~{zz{{zww|w{||zw||~~~zz{|}}}~|wyy|~~yzwy}}||~{}}||{zw{||w|~}|~~|~~}}~|{zz{|}~~}yw~~~~w|wy~~zy|}||wzz{|}}{z~}|~~|~||zz|}|{zz{|}~~|}~z~|}~}}|~}||~{|{||zz|z{}{{|}|z~~~~||{{||~|~}}~~|}~~}~~|}~v{}{|}{|{z}{|}|~}z||{z||}}~|z}~ww|zwz}~~}|w{|w||}{w}{}|}zz~||}Ν쨧󩤦͠ꤡ 颧쭠奦񦧩眠𣩩ʝ򬤧顧С蠟鶴㩧ݦУФ򡪰䭰 ө ڧ Ӧ 񬭯ߤ 񨤭ߩ ݣ ߣ 󧩧ݬ ک 𦧤 򡪩桦 񥧧ݣ ˢ  墣򪧧顧逸饭찧󡤡줩詧积䭯󪭩⩪󩤣𧯭觤ܭ󡧧ܤ󣯵ꭡɭǩ姣ҩꩪ觩򧬧뭲۰穪⪣Ԥ秪ȦɧЪҧ6788766:7679:9968;979<9:+#E !-=9;8;::9899776699::9:9:99779;:8788:<:78:7:*#!$-::898::99:98789788798::9:9889::9889:977847998;<:<+$%")6<7<889:8799897998778;878878:98998=,$9!'4<5;6887889:;8879:89778868998789877898779:;98876<-$~$1;798::988979989877868::868988768;6889:,"&!,9;::9889:9:89989889:688767898868<89879889:-"6"(5<8699:;9:898787998789:889:878878<.$C!$2>;69::98898:9:8687886;986:977898:<9::8<-"!#,:989::9889:9899778::99::9<6699887:9889:9989::.% ,#+7<989::988988989:8878::9<86887:99878998987789:;:.$B!(2<699:987899:8878:98998868:9788778::;:.$$*.>8<9889::988989:867::988788768:97887899:,&(&&%96<9989:8:9889868::9;99878688778998898;-&*;&%5;:8:<99689988::989;:998:886868898;,#%#%-898:<89:779:989:9:9:<98869776686988997788989-%%%)(6:8::78<:8:<:88:;88::67787654988:<:998789;*#%8&%1;<::6:989;;97;97889778877668768898788:*$%`!&0;:69;;8::9<:89989:8899889;99:;:99:9887668,%%!&,;969;9:99::989:;:89989:9889:889:98876887897,&#/!&699;:7:;9::9:98878::8667:868988678898-%!Q$09;;:;;99:98:9889887899866;98899:98898778:-$!!%/:<;<;:899:;;:8::8778877668768878866899:;-$!-%.9;;<98789: :;:877988::99:76688;-$#6#'5:<<79>89::88:<9::898468876789876688>.##r%/=:8;;<;87::8:>779<688988766889887766889:9;.#"&&.:;9::>:;;::;:978>;:8=;788789898:-" .$*2448:>><::;>:?>=8:97898878878989,!!@"%'')-.-3/++,.+'*,0--)899889876898667987789::8*"(" "''&$*&%&&$&&*)*&8:97799836::866897*$-{H=5)%%"! !"#$#"$!&//89866897679::8669986)"+ǽ89855787988:86889::96)&:6998966:78::769889:7&#':69:88778669:9:<98899:7&$&969:887899889::9889988:7&$&96996768:;:66886988998898'#%84886686996699688987796'$%847866748866::688986895&$&9478687869966996889:988:3%%&9578787879978::9889:989;1%%'98989866877967<'$%'98986887877:%#%&98898987:97996%%&&878898987:97:91%&'%879889866988;:7;9-"$&"8789867898:97;6)"$&"8:867889:3&#%&$8788:8689988:1%##%$699::8878867866:68698?/$$!2 699:98867667:77<897:6;,"#$"2!6:9987868778:7688:8:68)!"#"2!8:988796:8789756887:86'""#"28;99879686789887977::5&#&#"38:898688789886:88<:1#$+%"378698567989:6776:8:<8+!&2'"56598367768967988:;6' *7)"5689:789:9889<=6#!0:'"-87667867899:<4##4:'"/:986687896:-"#6=)!,:988988768:69'"%8;*#,988987789;79%$)97)&/9887687788974"#+87*&-:87788768878577/!#/7:+%):9889867889:79:/"&5:;+#)w{||zww܀{w{w|z_MBHJe~}}~z{ww~~̀z{}{||z}z^MBIQe|~|}{}{||z|~~ׁ||}|zz|sz|_OBRL\yz}|||}{|{~~|{zz{||΃|z|}|{{z}}|bQBIWtvy||{|}|}{}{z||w||{|}{{}}{{}|zwcOAEOm{}}|}~{}|{{|}w||w|||}}{w|w||aLATIb}}|||}}րw|}|zwz|}}|ww}||{}|cLByLXu}y~}}z}{}|{{|}||}|||z}|z}fOEJQpw}|}}}w|z}}w}w{{}}}||΅eLCJMa~|}|}{{}~~~ww}|z||}}|}gSHbN_{}}}||}}||z|~|w||{|{|||{{|fOAIXow|{|}|z|~|~||}|w|z}|zz|fOEO^f|||||}~||~}yz}}||z||{w|{}|{|bUXUUS~w|}}|}|y|~~}{|w||{{|||}}|cT]TRv|w|}}~|~~~|||w|w}||}}||}}||aNSMRc}|}{{}~~|}}wzzww}w||{z||}||}cSRS[Yy|z||}|}|}|}|wz{|{wvs~||}~~}z|~]MR}URmy}z~z||~{{||{zww}zy|}||}~|z||}^OSITjw~}}~~}~|}~~||}~~~~~~||zwwy}bSSJTbw}}~~|~~||~}|~~||zy||z|~{bTMhJUw{~||z}|yyz}y|~}||yz|}||~}cRJBQj}~}}~}|z|~~|yww~|}~~ހ~||~}zz|cOIJRi}}ꀁ}z{}}{zww}zy||z|}ww|~~cOJcSf~|{}}{{z~|}~~zyy|}||}cOMyMWu{~|}|~||}}}||tw||zyz|~|zwy||fNM@Ri}}{|zz~w||}}||{ww|}~}|z{yy|}~~fNKUTg~z|}{|}}|{zz|~}|}|}~~|eLHgQ]pst|큄|~{}}|}|z||z|}~~~}|~aJJLSVW\cferh``bf_V^bkcc\|||}{w|~}ywz~|{z|~}^LXLGBLVVTO]URTUTTOTT]\^T|{{|ry}wwy}||}~~{]OeͰv[RRLJGHJLNONKQCJUii|}ww|{wz~}yw~~}|y\K`||uu{}{~||}|y||~~y[DTw~~}~wwz|zy~}||~~zTNVy~}}z{|wy~~~||~~{TOUy||z|~~||~~}}~~}}{TOT~w~~yzw|yw|}y~}}~~||~}VNR|t||ww|y~~ww~~y}|}~}zz~yVQR|t{|wyw{t}}wwy||}~|y|~vTQT~tz|w|z|y~~yy~~y||~~|}qSRUv{|z}{|z~~z|~|}~~|~mRRW~}|~|~}yw|z{~yzVORW~~}|}~|y||{}{{SNRT~}}|~}~|{{~~wSSUT}||{}||~~||~}{{lRUVS|{~}}~}yy~}|zcKOTK|{}~|wz}~|{w[KOTK|}}yz|}||~rTNSTQ|{}}||w|~~|}}mRNNRQy~~|}z}|wz|www|w|iOQQJo y~~~|}y{wwz{{|{yaKNOKo!y~~|z}w}{z|{w}}}w|[JLNLo!|~}|z~w|{|{vw}}{|yWLLMLo|~~|z~y|wz|}|{{zvTMTMKq}}~}w}||z|||y}}lMO`RKr{|w~|vy{~|yz{w}}`IUoVKvwv~|rw{{w}y{||yWG]z[Kvwy||~~{|}|}}~yNJkVKc|zyyz|wz|sNMsVLh~|ywwyy||}|{|~wcKNw[Jb~||}}||zw}wWKR|]Ma~}|}~~|{zz{|}||{~SO\z[Th~||}|zw|{{||zsKM`|z]Tc}zz||zw}}|{|v{ziIMh{_R[~||}~~}wz||{hLTv_N[ܭhYaḓhYbmׯkYng|ΰmYbvǡkX^kﯭgXqbﭬ֭gYgwϩk^dmg[dhЩpaj禭kXbw짡k^k㪧swssp解驧q}qn񡧬jphnpnpzy}hnsn󣯬몦䩭kpbqppdq藍qhds񤩭棤ndYm𪩧ޭkbdn꭯kdp礪khhvjhVnjesq䧯gam}ddgptv|t|gwg_Ygttqk}snqsqqkqq}|qƦ}kznngd_adgjkjem[ds򩧣|ez\qqjt쯣qksqkqડtjn秣tmnߧqmqߪpns߬nnvtknvpjnq񪧦ppsq!馩nstp!誩ekqezekqe qjpqm!njjnm!ᣪkmmd ⣪ejke!⣯zdgjg!⧯vgghg!ߧqhqhe󩭩hkneᦧbste 򠪧󯲣v_}ze ߡjdte񭳛jhtgejzdven}h槦pk|zq𬤛eh}q񧠦bhnzgqjz<;;;9::: 9998886775664 5 5 5 C3 4 4 4 3 /##################################89::87889:;;:8988<<;<<8698576:<98:9:<9:9<:899:<<;;<=:=<>=.'789889:99::988::88:989:87:97988:8788:88:8::;;:<><:=;3<953'*68998897899899:88::9:788;:8:989988:9:9::8::=;;<>:9>;;980('#68:;:8766789889:9::;688;:9;:99:9898::<:;:8::=<;;<:;B;;6'*%#i78::987789987789:;<;::9698998::879878689;:;;:>=;<;:=>>?6+%'!0889:788978:;:9988978989::7;879799<:<<;><=><;?>84&.*F9889::77889::779:89:98969:88:<8<:7;8;9<;;::<:>><;:3-+($,89:;;987988;:;:8898996:<88:<7<8698:6:9::<:9::83*'+#H:699:988998;788:9::8::8:;9;<:88:=7::<::B=:<4*+&!0;8::9:87:9877889:8;:9::97997998899:;;877<<:<:6-+,'$F:8::9:98;:87788998<;899:997998::;::9==;:3+*)%&i:8;:9:8899887:8:88<:76769:8::<::;<<;<0-*!+B86::8::98:88;:77869978899:;<;74,(($)H:8::899:;;:956;96987998::787:;<;6.'#*&H99;99<::;88:88:;::9637:656::>>8;;<7,(% %"@:9:99:9:78:;88:9:9::9;<::9:89=:94)&+)#<:9:99:8:89:869;9979:988;:><9:3*%(%!.]:99::88::9987:=9:89:99::<::3+))($*[:98::88:88:<::;9779::<<950(&'%""1y9:9::8:99<=98:;<::762+((#%C8:9::8::97:;9>9642-(!&57::<8::989>;22*&((%"!.Q7:<;:;;=><931/*%&$$",T&<;=>;;930.*'&&'&!$.F&:432++$&%" #,3R&'% #!%.8N& $ &4<'5FRy&-(||{|}|}||}|w|u{y}|҆gW{|}||}}}|||zz|||{||܁|}|}quqV]w|}|}z|}}|z||}~}|}}||~}kXWNw||zwwz}||w}}}|}yW]RM{}}{z{}|z{}w||}z|z|w|w`SWJj}}||}{|}}||{|||{}|{}z{}tUg]C}}z{||}{z}}w||}{}re`XOb}|{}}|}}䃀||}w||{}w|w놁|q]V_My~~~|}}|z}||||~}|{s]`UJj}~}z|{z|}|{{|}|zzwe_aVQ|~~|}{{|}}}{|aU_T@t~z~~|Ӏ}|}|{|||{~}~|j\T[?g}~~|y|{||{}w||{}~}~q_][RU|~}|}}||{{|||{w{w|ke]IA`}y}}|́}|{{|wz||~~{taXXQ\||~~ԁuww}z|z|{wfWN]BU~~~~||||wq{wuy}zbXRGRLՀ~~~~{||}~~|~~t\T_\ENс~~~}|~}w{~~|}|r]SXSJgׁ~~}|~~|{|~~q_\[XQB]ځ~}|}}}{{~vkXTWSLLm~~}~~ᆇ}{wo`DXYNER|~}~z~wtoeXJTD@uz݆|~|po^UYXRLIgz~rmh]STOOQLa&熃qjf^VUUVTJQf&sqo``_OTRLGEMaq&VWWRHDNIERf}&HQC?GUs'u&-(˧ҵvܯt}wvjv}nh̦pvdͬs}[wk䰭򵯬}th}sdtm𬸸sqVӭ|qzU}zns}bX̯wwm|ԯvj}Yswn_ngխ|q|^jѯ}pwpdد|zwmY}گwqvpggᵶ\wyj^n쪤wdq\Vݵsywngb礯}pqkkmg&鵰tsstqdm(魛kqng_^h(tvvna\jb^n&am[U_s+&.)h<;:8754 2 0h /,*)'$" % #$'*- 15%("!E6)),;9988:<:867899898;<:;:1?+&./<>78758998::8;::99<:3y(%!(.599:97<;989:997<;878<:0#&&(2<63;::99::878<:889<:l("*.6>::8::998998:;:<96%('/9;<;:9788997:=;;8`&&(&.58;;97899;9;<:;82 &%&.7;;::<9><::;7'u,!&!'38789<99==:9;(r#$#$(18:7::98:;9'?#&,%&57;>><<;:)2"),(,28::;;'~-)(&*4869@'d$!'&%+8<7(U1#&(%)4'[)&*'6f*$7r,67699: YKIwC[[b~}}}wz}~~}|DmD_Ufi{}{u|~~}|qYSJYgv~~{}~{}{}kMUUXpyq}z|}|XDK]gy}~||wCSYWh~{|}{}TTYTfu|{||pGUSUfz{'aIUJVr|{}~(ޫNONQXl|{~|~'ԍMTbRUv{)oL[aYbp|&cC[YU]s|y'QIVUR_}z(lNUYR[t'ܞ\EU^W6^DQ7b67699: yeb[zz񩬧\\sypdyhssww\e}[pyvqqyq_sps(Ѓbsdt)jkjmw'hqns)ڕgzy&ӆ[zys}'mbtsn)ƒjsynz'|^sv6\m8υ67;;:;  "%%&\()+,6.C02 3 5}79;u=C :;9899:99::9889:8789::887646;74632578765578657899886799::<::;;:99:;<:98988::9899::8868<989663567655446654678879:89::9:;:;;<;99:;::9989::9::86889886565655688989::8::9;9::99:;<<9::;::9887867987556766768988669:9<::8;8<;::<=:;<::89:;:878989898655688766876678868::>:<;9<:<<:;<<::9:98898967889755678876676556889:99::>:;:9>;<;;<<:;:9:;;:<;::87869669655688765677689:98:9<8:98>;:99:<<:9:<<:989::99:8<988;6987787757878987698687688:7977<<:;<=;:<>>:8:;::<:;:99:;:889:659856766776757998788;<9;<;=:;::;<;;<;:9:<;:998:98688:798667655676687655667<;99:8;::<<;9:<<;9:<<9889889988667::887688557998786678876::;::9;;<=<<::><<:<:;<<;;:7668::887886896578877656678::9869<=;;>;<<:?<;:<<::;;:988788:;:8:8878965786566556655689::;99:9;<<98<;:><::<<::<:99878:99:;98:99867986577667886678::=;:;:=<<99<;8<;::<=;;:<:;98::878998878577546756899876*1;>;;8;<>=;<98>:;:89<<;99::99;:<989:876887988;5886689886557887'').<:7;C<:<>=<=<<;:98:989::8;8;889986889667889989%!&"&*/6==::;;>>;;<>=899::;;::9:;<8:7:78996588:89877889<,!#*'*.38<=<:<;;<=;::;;<:9:9;7:7998:9:886788788:~3$'&%&)-4:=>=;:;<=;;::;:;;::99:;=8;8998:9:886889:=0$"(,-+35:=??;:;;<:;:;=8<9::988:8:9:889ۜH,!"')'**.6:B>??><:;9;7;9;:9::<8:88699ؚ?'$%*)(+-467:;<<:<;::;8:6;:;;:99:8:9:899:98 a9&"''*+,/49=<:98:>>:;;:99::;8996:998<898898<f9'!)&(*+**-2149:<=;:8:<::<<9;=:<::<9;;::79ĜI9.&"#'+,(')(*.22/36258568:8<;;:86778610ПrL5)%#$&&('(&'&(+,'()**,--+(&$$'(&& Ҳj>2-)$'#$&$$!$%#!#%&!&&%$!!#ٸrI?>1(,(,-)"(00./3?aٯ }||}{|~}||zwsyztyrpvz|{wvv{|wuz}~|}}wz~~|||}~}|}|yy}~|~wwquw{wvusswwvsw{}|z~}~~󁃁}}||y||~||}wyuvwwuvwvvw}||~~}~|~}|}}z|yz|zvuvw{ww{zww}~}|ywy~~}}}||}~~}z|~}~}|wuvw|}{ww|{ww{}}|ywy|~~}}~}~yz||~zuuwz||{wwzwvvw|}~~~ہ|z|y~ywyy~wuuvw||{wvwzz{ww|}~~|||~}~~~|~||}y|{z{|{zuz|{|}zy~|y|zw}|{~{{}~~}|}~~wu|uwzwwzzw{v{~|{||~~|}|y||zz}wwzwvuvwzww|{wuvwwz~}|}~|}~}|yyz||}}zw||vv{}|{|ywz}}{w~zyy||}{||w}wuz||{zwvww{||w~~}}z||||}}z}wv{|wvwwuuwwvvw|~}~~}|z{}~~~||w{}wvz{ww{}|wwz|}ۅ~}|z}|}|{|uzzuswzvy||zw^l}}}~~~~|~|zw||{}|u||ww}||wvvz||zWV[f{~~~z~~}~}}ytzw~w||zyz|~~|JLWTW[uw}~}~|||}~~}y}|~wwyz|}~~}~SJTLT]iy}~~~ꁃ}z{}~~wv|||~|zz||~ņaIN]W]gq|~~{{~~|~||wz||z|}rQVTST[ct~~}}~~}}~|}w||}||~ֈjOLXac`qu}~~||}~|}}~ĒbJKV\W]^gw{}|}w~~ËVOR][X_esw{|y~~|~|~~~} A~ULVV]^`bht}|w~~||||~|ΤWI[UX^`]^colt~|~{~ēfTLMV_aYW[Y]gooirwpu|vy}}}wzz}ylkƫv[SMOTTXVXUVUX_aWY\]]aee`YUQQWXTT ѿoc\OVNCEQTOOJORNJNSTJTTRQIIMmYaXbc[B@DKXjjgir ᭬󯰯𠡠񭬰𭪭顠ۯ里Ԧ𭯤䭩񤭯٩§ۡ۳vtz䯪٧dgvqvz򧰧ؤժpdqgq}꯰޵bj}v}Ӛmtqpqz踏kgwﰶdet|v}ݼtkn}zw ʪsgtt} ˬvbzsw} ¬qghtyvzy}àzphkqqwtwstswvy|}}ysmmvwqq  ͻ|ktj[^mqkkdknjdjpqdqqnmbbh¼ywzYV\ew=<87 2 1,u)%C !d(C9;97**'&(+7:=9989::98779876628:867;46896699668977996=><6'&0'&+7:=::988789886886968876677689886992" 7(&+8:;9987789767899:7688688976776796788:893%!K)&+89:8869886788;7578778877889:66898679;9;2&"{.#*79:9:9:9889988:9766788:76799767887679867967<0%"5"*68:9:98898::8897879:667887676586688968=-&';"*779897678998:998998668799568878766786678988:89&$*> (6799;:5789887799866588:838:769:88<8668:989:3#6>#*778>:;99<7698::9:88:665679988:688:95899:986789:;1'!?B!&589<78<886798;989669665678877868798588468:988:;-*!lR"&3;:=78<778:87;886976686767687677669866869(&y#%1;:;7::789867<988987787667677677:86886689>+'#!!,97967998877:<98898:8788667887877:88::64668'!) ",<8:787989:;:788689787:878877898977988:889986884&!6"$-=8;::599:<<;57869:686:76788:98:77988:9889:0%!F#%+;5:;;9<9988=<897:;886975688:98;769889:9868;6:;:9::86:97998866:8687998779;966878$&1;8>:9:;::976986887866876879668998668868$%.:9;;8::9868866768667668796688768:78:97668#$-:;:8::989:;68866788676897899867:89:98668&#-:<96::9:;=68868897878978:889878988988.#+9<;989:;;::896:89889787667889889:986!'69<:99;98868896979889784667899789889989 &36<9;98998678688948687797868:889:969:9788B%1>>7:88::86489::988678868786:986788@$4@?9:96569::78996868688:866799877=!5=:7:;968:;::98876677667869894478988767B"%7;:;:;:9::989866786688658649784688678T#'8=:;::88:98::8668868788764649688;77678g &6>97::88:86:=;9899866567886868676:56887!)4@:88:98:8489988::766556898867486466887667 (.=:76:96::8:99887887667866266:7488664578!&2=;<99;:78:98966847:68753376679:866367798"%.::988:867974989:86679866:6687356687##.:;:8867876;878867656696447744688678786"#/;=;99898:;667898787688796686898879:885"#/:;8::989:988968:88787788676886689:78689885$"-8:689878988786:;878676676458986478877356676*"*6;6898689788:789689898787688766773566752$'5:58:9799896;98878778766868988978689774."&7::878879798868<778558765567789877870"&7::98:<;88689:967957966868767766882"&59887679;96;778978857866866767867765#&499:988::97<98878:8868755667878876676#'4::988789;:767:88678878876689876677#'4;:8898657:688;9689678898778987889568865568"(4;99::989<887886895788768878:;78::9889"(4;889:97789:799675787667766887678867898877~~z]]VTX`{~||zz~|zyywwo}}w{sw}wwww}~zz~~wwVUkWT_{||}|zz|}~}}w||}www||{wwz{zw|~||}}y~~pLHzXU`|~|{{|}zyz|~~{w||w||{w{{w{wz}}|||qRI[T`}}}y}||}}||yz||zu{}{{|}{{||yy|~}yz~~oTLfN]z~~~}}||~zwyz||{wzzw{||}|zwz~}yz~yzjRKvK]y|~~}}}||}~~{{|zww{}|zwzwu|ww|}||~w|eTVK]{{~}{w{}}~~}~~}ww|{vw}|{|{ww{|wwz}~}}|~TQ^HYyz~~vz}}|{{~~|ywwv||}r|zw|}|yww}~|rMCwN^{{|{w}~||ywvw{|}w||v}~~|yz}~lVIJUu}~{|||w{}~|~yy~wwvwz}}z{|w|z|v|}tw}~||e]JKTr{}zz}}z}||yy~zyww|wzwzw|{wz{wwy~}yy}wXUBMRl{{|}w{~}}|}~~}{zz|{wwywzw{{wzz|y}|ww|~_WNJJa{~w{}|z{~}|}~~}|z||wwz||{|{{}}wtww|WJ[HKa|z|z}z||w|~z|z|z||{{||{{||}|~~|y|}sTIyLQe|vvz|w~y|w{w{||}{z|}~||}~jRIMS`u~~~|||~z|}yzvy||}}{w|}|}~~~|wiSARK_}y~~~~~t|tyw}w|~|}|~~|w||}z|}wz~^J;oQ_}}~~zyzw|y}~}|z~~ۀ~|}~zz|w|}YJHzKV}}~Ɓ}}}w|~~|~~~z~~|~}~|w|y~{WM^wJT{~~}|~~|~~}|}~~|~~~z||~|w|y~tRGuwS[wyz~~}}||~~w||~z~|y~z|mQCrNYw{~|~~||}|}|}~y||~|}z~z~y||hTE|HSvz~}~~~||y~|}}|~~}|~}ww|~y|w}|aTIQNr~y}}}~}}|~|~~wz~}|~yz~~wyw~|]WIJUqy~|y|~~|~}}y~|~~~}|ywyzzXNbISmz~~}|~~|}||~y~~zyy|~~~|zz||]BwǴEQkz}|}y|z~z~||~~zw~~||}~}|UDHUow~态|}~wwtyw~}}~}}~}z~~}A[ATo|}~~}|||~|~y|y~}}~}~~~~}ARk~~}~~|~~|}|~}wz||zz|}~~}| QVk~{~||||tt~wywttwy|~}}|}~~|zTTkz~~||~~y}|z~yzz~~||z|~~}y||}|yMTs|y~|y~{~~||yy|y|z~~}zz~~wyww|}|{|QTl|~~zw~|y||{|ww}zy|z~yy|~~|yy|}|wy|QSf}~|w}|ww{y|wwzyy}z~wy||zy|{}{ww}NOe|~}~w||ywy{||wzy|~z|~~|wz|~|wy|TMcy~y|}|y||~z|z|~z|}|~}z|~|}}~}|fM_~~}~||}}|}~y|~||~z|zwwz|}}~||~~|wJWw~~~~||y|}|~w~z~||~z|twyz|~~{}~||~~|HTqw~}~~|yz|w|}|~t|w}zz~z|w}}|~~w~~{|}}ESl{|||wt|~~||wz||w}z}y~|w{|}||}COs~~yvy~z|~~w|}w|w}||ww{~~}{zzAJu{~w|~}|zww{zwwz|w~|~ts{|~}|zyzKS{~~|~|wwz|yw||}|wv|yt~z|tw||yww{}MV|||~}|yw||y|{||}|zwtwt~y||zzy{}֥HUy~z|||w~}~~|ywwvvw{|}w|w}wzyuw||zзI\s|}~}}t|~~|}zwwuvw||}wzt|wtww||zyyzHXg{w~y}~~||}}|z||{ww{|wwpwwzt||ywtvz}IUoz}~|~wy|tzw|{vrqqzwywwz~|wwrw{{|LRg||}wz~{t~|~|yw{|wwwwyww|{rvww}{NNf||}|w{}zy}z}||ww{wuwwwttzztty||wz|z|wLNh~||~|ywz|~}{|zw||{wwy||y|~|}{||uLMi}~|~}|~w}||}z|zz||wzy||yy|~z|w|||vQLe|y}}z}}|z}w|z}wzwwzwsu|~|wtz}|zzquww{w^L^yy|}y}~{||z|~y|~||z|{w|}|zwwzzrvwwzvoQWvv|~z~~|~y~||z|z{|zww}w|~||~z|w|{zsgKT{|z||{z||w|z{}uv|{wuuw{z||{z{|}|{kLTz}}|w|wzv{ww|w|zw{{ww|}}|}}|pLTv~}|{wzw{z{}z||vz}ww|wwzwz|wzzwuMTt~}}z||z|||w|zvvwwz|z|}|zwwzwMVt}||}{|zwz}||w{}|{||zww|}zwwz{MWt|}}wv{w|}w|w{|}|}{{}|{|}vw||wvvw|LXt~~||}z}|w}vz||}|zw|}|{}z|||~LXt|}}zz}zwzvz|{wwzzww||zwz||w{}}|{{⪰}}tqwϕtsvqթgaws뭦nbzqqgj}nee}۩qte}ީqmayاh[Ĺjtbѿds}deq䤡wsYhnvjdd触vdzaeqbgm󩪭nbhppXneۧdPmۭydaetدvhdqﭯ֧n_pz񪭤m[jy쭪q^ap֪qbmj桤}vbdswj bp}Y ^ms\ as歯XzXq𭯵 Xn㭪 mt몡qqhqmq󧪪mpݪjk󧡤qhhdv룧Ьaq^p󡩤[kXd񡪧ephtasb|awꦡbsgnjjgjghmggmv򧪧eq塧gqެgqhqht欩Ѧhvgw逸gw7766666665\3 %3 4 4 3 3 3 3 3 3 3 2C 2 0 1 1 / 0.X...............,q,------------------79:9778846887789:98867877678:998798998789878::98:766766797889866788678878878:88799:988::9899886556778:76679;9587679:98579876788789889:99:9889989:976766879:8498789:986898767887 87889989::9767877899864889789877887898:9988:87889:86766889878 87898789988998;989877869866889876688989:86688:98778879:67789:97:7468986678876788988788989:9689:889979887668:96897974:646786677668:76799778989966998:967::898778766889878869:8:86:76889898876678:9887789989967889:978::88678898668988:876:868898:98877668998688789868::887889866788:97668:9887887788776765689887::89;;::887668998776688988987886678876765689878868998:88988968766889:96678698798788787788787878898866787868:89:68878899;787786886998:998;977678:798788:;::9::868:89:668986:6878:897499;:;9989:866887797987878;:9887869;8848866867767898699878::99:98:;88::988996:86788:6778:867889878::89::99::8778867759:;:99:98:967878778 868:67889::889;97886578:977869::99::979768989889868:88998878898689:9987689;:8899889868669:9:988789:867966899:689887889986798998766887689::989779878879889987866899:69;9886568898875469889::878987988776677:889:887889879988:868898989:757:88998896778988:98877899:987876689::978767887:63688665679<968:8868988966898877889:8679:878998766986896965997966779;96<:88::865788788:68846:87946:87688678687786896865886867998776698689986688967866988:67:887886787978776886766886865789657997688788:99667878879:78:886787886678867887885568768<:8899778878:9868898987876689876687786878878988768998898987899868788756689868356566798865687679889::8699886686878867686897683675686767765668678868989;996986877867668678987866956868:68368665799668856898848:78;8:6:8688967568686:86898897678776678866866868:87996689889::6798:;89887655788:98878:8688767886:8868779966898:998898::68:8767877988988:978897887668679979987898:998878688:96::98867:88::8:97889788634668:;799889988568:97:89:9778:866988::8:967889886766898898767889:6788696898778:978878898986787887667768866788987889688989876688986788:8688988687688798879988588:85588697478898:868988:9889::97988:98988788798896:98:98:986677678998766789::99868:8688789:99:668898789:98:98898;86899:7788766878868:878878998896466988989::76899::6677887676686898 89;978678 89:986899687698876687899667887877:866477889898898878876688768897679887876976686688988998767788987667898898778789889:877899798898:66889678868:966789:76678878986898::86679;86886886889:9677887656678769;867889:8668:<:79::679887::88987889889988566369468687:9:765786686968<9877899879877889987896887787675786882787989887667887766:88:8988679;:8878998896776677665898983788:886677899866::988:46778:988988967877887856689788:9867688:8768:988:87787677899895677898865667887899778688789989768988;976788989466788966766878868:6788986898987898897789:98:98896778786688679788958:678878797889679;;97657789::9:98898988998865699;97989479878987795:9986968767898799887;:8789986788686898:<97889::98998878688;899898::8::767;86989986699886689868979;877889987887889889798;898998::8:9:98;:898677689:96778:;868988968878:8:897::8::899<;89;887789887668898689899698898689866788:8:9:699799799;77976789988665568867886899::8877878878:7:9:7886998::7:7676687788778825788788789::97667886569:97797:9:886998::6:887688787894667667887789:998766788766789988687:88699798798877969778897768678989:9889689876899687:688799688787893756899::{~zz||ty||zz|~}}||ww{|{zw{}|z~}~~}z|~|z|~}{wyzywz~z|}|}~}yyz||}}w{||{|}||{zz|}}}|{~~ʀ~|}~}~~||}wuvyzz|zyyz~v}zwz~~|v{}zw{}||zz{|}||~~~с~||~~}~{yzywwy||zz~|t~|z|~~}w|}zwz|}|zz|}}|{}}~~|}~~zwz|{{}~~|yt}}||}}~~{{|}}||{{|}}||{z||}~~|~~||}}|z|}||~~|yzyw|}||~||}|z}||}||}||{zz||}~}z}~~||~~}}~}zz{{}}||w~|yy|}}|}|zww}}|}||}|}~}~}wy|}|}~|zz||{~wz{|zztw|~}yw{}|zw{}|}}||}{||}}}}~~~w|~}}~~z~||zwy}~w}~z~ztwtyz}ywzzyy}zwz{z||ww}~yz|~}zz|zyw||}~~|z||w~}}wzw||~|~}|{yyz|||{{||wz}|~~z|}||yz||~|wwy|}~|}|||zy|y|}~|~||{zyyw||w}|}}{{||~}y|}}|z||}~|ywwz|}||}|}~zyy|~||}}z||z{|}{zwzwvw|||{}~}}|}zwwy|~~|zzwy||~}}~|z||wyywz|}|{wzwvw|}{||y|~~||}~||~w|zww|}~~wyyz|y~}z~}z}|z|{z||{|}}|z{||{||||ywyz|z}w||~y||z|}~~z|zz|w||w~~|~~}||{zwz}{|{||~|w}}~wyy|}~~|yw|z}|~zt~~℁~}||~|ww||z{{}{|{|~||z}w~}}s}|ywy||wz{wz|}y~|{}|||~||~~y}wz|}wzz{|||yz||}~~}|{}|~}{{}|wz{u~~~~}~wz|z|{{||}||}|y|wz|}}~}||z|}}|}}yu{|{{|w~~~~z~zw|~}~}||~|w||}~~}||{||}|w}~|{w|}}||~}y|ww~~}||{|~}yz~wy}~~w}}||z|}~|y{~||{ww||zy|~~}~zz~}z|}}|{zz~||~~|z|wy|~~w||}}yywvw}}}|{vsw~||~||z|~}z~}|{zwwzz||~}|z}}~}||{}||}}|y||~|}{v{}|}|~yzz|~||}|zz{|~~~|z}zyy|~~z|{wz||zwrw||wwuw{w|}|}|wwy|~}}~yw}}|{{||}~~|wz~}z|~~}zwy~}w|y~yv~{wwzz~y||}wvz}|z||w||ty}z~ty|zw|}w{|w}z{{}|w|~y|wv}|w}w{~~}{zyw|y|~~|yw|}||}}|~wz|wy~||wz||z|}w{|z{|{{w||w{yw}|y}yvz}~yvz~{w|}|{||}}||~yyz|z||z~z|}}|}}wz|{}|yww{||wy{|}|{}}uvy|{w|||~{{}}|z|}y||}||~|}~~}||z{||{ww|~}{ywy|{{|}||}|ww||{|}}{|~||{y|~||~}~|z}~~|w|{||}{zvww|}y|rvyvwyw{||wuvwwy||}z{{yz~}|}||}}~|w~~|}yw|w|{|}wzy|y|~{w}rw{uw|w{wz{zzwuww|w{}||}}|}w|~|~~~w~}y}zz|w{ww|w{}~|{|wwvy}w|w}rw|wwv{~ww}|uw|~}|}}|t|z}|w|w}|}wzuw|w|y}y}~||~zwz|zzyww{||yw}wy|w|}z~~ww|~|}}||}~w{~||~||{wvvz|}~||z||w|}||{y{||yw|}|ww|zz~~yw|~|~~}||}}||~}w||zwz|{{~|}~||}~z|}|~{||{yyw||wz~~z~~|z}~|~~}||z|w||~y||}wz|||~z||~{||wrtwyw|z~~||~~||}|uw|~z|{z|}wy~|||~yz||~||wywyzywwy||}~}}~}zyz||}}~~wz}}|w~y|}{z|~z||z|}~|~|wz|z||zyyzzw||yywwz||}~~|z||w|}}~|~}zww|}||~|wz||}||w|}||~}||}w|zy}|z~||}|z~~}||u|}||vv|}|ww~ztz}|~}|w|~||~}}~~z~||~|~}|z||}|z~}||~w~|~||wwzzwz||zwwz}~~~|w||y||z|~~~ww}|}~|z|~~|~||}~~}|y|~~{{||zwwy||}z||y}}z||z|~~}||~wtyww~}||~~}||}~zw|~~wwz{||}|zyzyww|w|~||}}|}}||}~~z|wz}||}~~~|y|~~w|}}|zw~}||zww}z|~~ywz}}||z|zz|wwtzz||}|~~}||~||}~}|z}}|zww}||}}zw}||~~zwz~}||zz|zy~zwyw}wy||}~|}~~|zyzz||~}|}|zww{}||~|zz|z|~||~|zz|~~z~}|~|wy||}~yz||wy||}~wwz|zyyz||z|~|w|~}|wyyz~|w||w||}|}w||~~wz{||zwvywwz|zy~}wz}|~|wwy|z~wz~}}||z}|}}||~|}z|}||||vwwry~tw|w}z{wvz|ywy|y~y|~}{zz||z|{{|}~~}|z|~w||zz|{w{v{}w||oz|z|||{yw{}|{{yy}}}~}}|ww{}||{}~~}||}~w{{ww{zwyv|~|~}r{||}}wwz{{}~~|ww~}|swzz{}}||}}||}~}}|}~w{|z{||{|vwyy}{||}|wzw|}|||{y}~|||{z{|}{w{{||}~vwzz{}|}wvww{}||{}z{}w||z|~~|~{y}~||}{wz||}}|}}|}~~swwz|}|~ywy{yww}z}|}w|wz||}|~|w|~|~|{|}||}zz{|}~||}~~wz{z{||{}yw|}|y{z}|v|wz||z{|{~z}}|~y{zwvzz|~||~|}||||wvy~~z}sz|z|}zzv~~|y~y|zw{}|{}|}}|{|z|~~}|ww{||y}w|~|~{|||}}||{}w||||~|}zw{|w|~|wy~~}|ywy|}}w|~z~|{{|}|z||{|}}|{|||~~||~|||y{{w|~~y{{|}}w|~|}~w||}|zz{||}||}z||~~|}}{z}||zww|}}||}}y|~|~~w}|}}|w|}wwz}|||w~~z~~z~~zzzwz}~}|wwvuw}}|y{||y|~~||{z{|}}{||{z{{z|{z}}y~~|z{w{ww|zz||zz|}pv{||{||z|~~zwwz||wuwzz{||w~~|w||{w||}{{|z|~twy{yy{||zz|~~~|{wwz||{wwz}||w|{|}||y~~z~}{|}{{w{z||~{{ywwy||yz}~}~||w|}zw|w|{w||}z~~y||z|z|rzvw|~~ߦ઩ʭѯ󩪭詪̩󯪡褡ݩƩݪɪ򩤡媩ף鬧񰤧󲬦姡ⲯӡئڬ멬ڤӡ񩧧㪧硣秩멦Ğͦ񠦬᧝Ūѣ졧󩡤𚝡ǣ򤣣񬡧ƞ󡭪줩孡੤쩧񤡩󧤤󧪪줧󪭪धƤϩީ񩪪ȩҠ餧੧塤줦§㩧󧩯姭զ𡪪槤𦡡񡧬򤧤87=869698986::8868988998878869:86988;9889986898967669:88955:6696968669:8779989::9878868:779889898898989:8:8789986785496696967669:887889::9889988689779799889786887867898788:889799878::8677899889868867879898897868878688668:9698:9989:889866778::88986688678687889:89:9:988668:9687889889:889878868989::98988986899788668989:8998:98998667688779789668979:99::989889868879867688968879878997667987886698::86:;689889989789769676:97889:7898:886689767::86799787886898:8:98;:887678867848:756878687874::66886:86688788689897:88;:99898898:;86787:887865:989:88996468778878988:87::98778876679986::987788:887866:89;:78::86689878988:87989986687697788789988766969:86688788689:8898788:88:9:9876787689987788768987966876787996679978::8879:86968978;:;99889988986679:88::88686879:878866889878:86:89969;9:9989:7767998677976:889889869878998899868:76::79:7887689:88:98776789898976;86878966:989:88:896878:8:887966898867889:8899:968899898:789987988:89887889897889769:9889898:879988:99 89::9988:8897886689877889898877889898:98 8:988:8997886876789978898788:878::9889988788998898688986876899898:967::889:88688998986688699887898779889:988988:98989788797:9988989779:8878986688987:98988:89699896:99889879:989879:8787866897658898877877898:698986887:9878766898867877689769796988787887699;:776998878787886889889896869966789::78868:898798998876788789::998798:886889:986::887::88988766876778898;8847699879889879:8:9886899876687878:8868798 878786898:99::87676778687866::<98699887767884688;;89:9889877898668988788788:8:8:977896889989:9:899886688:<988:866898779::988:8:8::46788988:;885887:688:9987665:;8976:676678867868897896787:8568897886787766:8:86:87899879:88669687668878688:9887889866889877679887698:859767:;98876696876677678788;:878898866788787687898876788688767978766776798998:986988:78667767788786878;;88787689887678865898::89876988:686776678;97678867;:8688789988979768876788768989:8867798878876678:965887887:9857588979758878767887699689896688987887678978669866757676978877887686965876876678898568897698996:8:98::99::6899868788789:9;98:;988668867977899889:868;;89:68:78878:9688996989987889889:988778756757787787899868::89:78:769:9789:86889889:87788788988778766769988789:6887889979:88:88::889:998967:877898788:689889867887898:988789:78988998879:88:8868688966:887898878:79:9898668898766789988::889:8998:9778:8676867:9988987898998669867767876677899:9898:989::97867:8988:8988698677679877889::99:98899878789989;;8976867766899;:766889698788986678878::889;9779:87;98998898868:76<867878978898898669;:9988688766788779;;978::7689898897878:87:;86657::88:8679:878996887667889;;988::88:;:788778868989878:88:998878::8689878997886786689:;;9::89;;:788778988::886779::8698868:9768::98868988:98898689:8788:86898 87898668:;;:9889789889876889988768::889879;:9876887889988679::8988::88967899:;88989878:889:89;:898798678::889889988998988::889::98878788998789878;:8:;99:8898798789::889::78988986:88::88998766789988;99868;8:98668:99878::889967::9887688:98989688:<96898779:99:97899:9:988:78878::88::8898667869878688:9:<:8:98788998;979989:9986688679988986776678:99:8:898898898898:989988:98866987898668988767869889788989:8898;::8:887889:;::9767766778868898899::9::988:78:889788::89;899868898:8989:9:89::9::887988988678::87889:977867899:98776868679788989:78898868988:86:99:9:668::868:98898:88:89::;:8:;9988986|{|yw~|~|y}|y}~}|~~}|z}|y~|w|||}~~}||}y}~|~yzwy~}|~vvyw~w~w|ww~|zz~}~|z}}y}z{|||~}}~}~|~}|z|~~|yz}vt~yw~y~yzww~}|z|}|||~~|}}y|z{{{~~}||}~~z|w|}z}yz}~|z||}|~z~~|z|}wzz|||~}||w||wz|{|~}}||}}~z|w||z|w||ww|~y~}~~|~}|}~~|wyzz}||}~~|yy}}w{|w|z||}}|~|~~~||yw|~w|z|}~}|~||~|z||y|~}~~}~|}~|w|z}|ww|}~~}||~|~~}~|~~|yy{zw||zz{~z}~yw}~{~~~~}~||~|w}|}{}wzw||}~w||z~|z|~~zwwz}{}|ww~||yy}~}}~~}~z|~zw~wzwz}}|}~z}~|}|wy}~zyz|wz~~z}z||w|~||~|}||}|zyz||}}|wwz}s}zuw|z}w|{}{tww}||w|ww||}z|}y|~|~z}|~~}||~}}~}||wz|{||{|yu~|~||~~wty|zz}|z|~||}||z~|zz||}zwwz~~|w|zz|}}|{|ww|~z|}wwy||~|z|~}||}|z~}~~|ywwyywy||zw{z||z|~||{ww~w~}wy||z||y|~}||~|z}||||~~|zyz|zw}~~|zz|}}zw}|{wwy|{w{|z~~ywyywz~~z|}}|z~|y~w|~z}~~}}~~}||~~|wwz~}}||}ww}|w}{~}z||yw|}}||~~}z}|w|~~y~~~~}~zzyz}||}w{{{w||~||~|y~}z|~~||~~}y|zwz~z}||zy|~}||}~|z{{zw{}|~|{w|w|z|~yw~|~||}~y}z|}||}||zz~yw}~||}}yz||~|}~~~w|}~~}|~~}||}}|z|~~}z~|}|~||}||z||~|~z|}||~zw~||}||}~~}|}~~}||}|z~~||~~|}||}}||~~~}||}~z||ww|~|z{|}}~}|}~}|zz|}}~~}}~~|}~||}|老~|}}||~~z||w|{yz|~~{}}~}|z||}z|~|}~~}|z|}~~}}|~~|y|}|}|~~||}y}{y|~~|}}|}~|}~yz}|~||y}|~~}~|yy|}}|y~~||}|{{}~|z{~}}||}~~}||}}~||~|~}~z}}z~z~~}}~|}~zz~||}zz}~|wy|}}||}~|z~}~|||~y~~|~y~~}}~|z~~}~|z~|z|z|ww|~zwv}}||}|}~}|zz|zz{|}~~~|}y~|~}y}||}|z~|z|zywyy|}~}|wz|{zw|zy~z~y~}}||{{||z||zy~~zzw~~}||z|z|z||w|}}|}~|~w|w~~wwyz|~z||}}|yw||~}z~}~~}||zyz|}}|z{||z~|||w}}||}~~|w||z}}|}~||zwwy}}|zyzz||}}|}|tzw~~}||zz~}}~|z~}~|}y|~~}||zwwy||z|{|}}w}z~||}|z|z|w|~}~~}zyzyzz|}}|yy|}}|{{z{|yy~|w||{zzyz||}||tw|}|~~||~|zz|}}~~|ww|~}|{|}}|{||}|||~zz{||y|}~~}~~|~~||ww|}}|}~}||}|||ww|~}z{||}||}|sw{}}}|}||v}}{w}|}|{wwv}zww{ww{}}|w{|w|}|{}w{|{|uw|}}{||w{}{{ww||w}{|}{||www|zww||z{|w|}|||z|||ww|}}|zzw{}}zw||u{w{|}}|{www}{wwz{{w{}z}}||{||||ww{||}{zz{||}zw|z}|}{wz|}|w||{w{z}{wwz{zw{|||w||z|wwzzwz{|}|{{|}||ww||{|||{zz{}|}{w|||zwz||wv|}||{w}|w|wzzwwz|zw{||}wz|w}|{}||}{{w}}|{zwz||zw}||}wzz}}{||{ww{}wv||z||z|vzu||}}zzv}|{|zwz||{ww||ww||}{}|}||zwz|{|ww|ww{uzw{w{}|z{||{w}wwu|zw|zww{||}uw|}{y|~y}~}~~w|~~|w}{||{|~}~||ww||w{{z|}||~|w||~y|z||}|z}~w|}~~y~}|{|}|~||~~||zz|{vw{vz{|{zz{|{|~~|y||~z|zy~~z|~}y}||~||}|{{||z||~}|z{|{ww{w}|{|y|}|z|}~~z~|}||||~~~|~yz|z{}}{|}w}~||~}yz|}|{}}||{|{}~||~~|}z~|}||}|wy}|w||~wy}|{|}|{}z~~}~|ww}}||}|zwwz{|~~|}}}|~}~~|~zz}}wzy|wz~~}}|{|}~~|ww|wzzwz|zwwz{{|~~~~}}~~|~}~~z|wz|~}||}}||}||~}||w|wzzwz}{{|}}|~~~~||~~}z|z|~~}~}~zy|wz{ww|zwy||~w|z|}||ww{||{}||~~zz~}z|||}|y}zy|wz|z|z|}~}}~|ww~~~||y||zwwz}|{{z|zw}~|||}||z|z}|z|wwu{}}|}}yz~}z|~~y||zwwz}}|}||}}{||{{|}}y}~}~|z}||}~}|z}|y}~|z|~~z||ywz}wy|~~}~z}}zz|||}||y{{|w~}|y|~zw|~||}|y|~||}||}~||~}w||z|}|||y}~|}||}|}|z|~|ww|~|}||~~z|~|}~|zy||~~}||zw}}||}}||~|z~}zw||{|}~~||}|wz~}~||||~y{}~~||}~~|}}|{|||~|~||{}w{}||}~}|~~|}~~|~||||~~}|{|z|}~~|{||z|}~~}}|z}z|~||~z}~||~|y||||~~|{yyz|~~|||w}}~|yww|~~|{|}|~~yz~||}}||zw||~}~|~w|}~w||{{~~{|聀~~||{||{|}|}|~|wwz{||yw~|z|y|}~|~|{|}~|z|~~|yy||}||}|wz~~||~}w{{wwz{}|~~}}~|}~}|~}||}~~|||}~||ywy~~}||{|~}yy}~}||{zwwzz|y~||~z}||}|}}|}||||}|}||{||~~zyzzywz{||}}y}||~|}~~~~|}}|z}||{}}||}||}|~~}|y||}}|||~}~~}~~|}||}}||{||}||}yz}|z|}}~~{{|yz|~~|{zw}w|wz~z||~|~z}||~}|y}|||w~~~~ww}|y|~}||}~}|||}|}}~}~~||~|wݧ˩˪謦𯩧ة򧣣ʪצꩪ򪧭񩪤𩤧詧˩񣧧릡𩤩ܩʤ੧멧骭맩譯詧맪檧歪줭槤姩ԡ𦧣򩧧㧩ধᩧìܦ󤦧ѡ賓ʦئʤ릩¬񪭧ݤ𧡡ڪ㯪멧ɧ멭ߣ磦婭ާۤ񯭩ΧЧ语ޣ򩧡줦짭榧ڬﭤ§𯭬󪩧ﯭ5679::878:6886983886688968898548867::889988998:878988468878968768::86686898864898868789987886::9889:8988:989:798778987676898866998876798896689:988::998988:9:989988986688986678:;99:975686688989:988987899788687789:99:98897677:8779976697688679878899898789976678879657:<9799:99679:886578767889768867976899889989886778:88987789:988;988689:889656;:987765:9876689868:98878:98:69:9668;88:8686::96686686799:;966899::99768::8789886987:86898868;8778:67669:87796786896::9889;788778879788789867887789878988686678969867889:88686457889::788778878688788788789986878867878:889:;7:98668998689986557886776787787889:98676766786799:6899778868667877:9866789866786678776899887878897898966898788696469866889886786677876687899:88::899:8998978878:867:846789986538876896778768998::88;:887867768798878:9868:647678987668778878:7877887887689:9886:67878869988:988;6889964:889877889;8987887968::96788946889:9988:88:778899886889;97988676886688669:9889967889889::8:87:889876778:86877678688678869:87886788:9889:8:988988668768766788799876766788:8988::889988987766786687646688689989878778898898988998986788788766864889989889989788787887889989:889:98978987886876366899;88:987 8:9789788989689878876676646689988:98899889887678998788:6786998786898687876678:8668:889986898878:88778899868789:9887898656659889::8676:<988787878:98896677889:88788766766:8667886978:889:76688776788:98877887647788678899889:;88988::766788767887899876678986478876678689::;9::889887667887889:98:86687887689989<:;:8868876789978898898;:9866878776:9889=<;968:86887789977889988668767899887688788789886<<;:99::;;968;:578778987789:987889:986::98669887789::97889::989<;8:;::89:95587789:;;::98876=;988766899899889:;889:9::;:88789868;6679:9868878898866898 9:;9::9:;:88668768<8668876889887997899:998899:98987768::8788:8 8978::988989:;;:8988998988767889::989887667869::989;79989:;9:;;:9:;7898 8688998897789:98766788::978:>79989;;99::98898998788788689668988768899889:;9988:;8::89;;9;<<:99:89986787998849;98:96987889879987667988:869;;99;;98:;;988:867768;9978668998788;9679:86:998:8899:9869:8:9:8:9;879989697897886887887668:976689::989:988:9:;;:9::>::8::<786687665878868898876978867866899889:889::89::;::;<6<:8699676686557978867689:98766868868:889::88788:989::989:;::6::9::98789986689788686889:87668688789889:989889889;9989::986768;:8689:;99878878897889877987:88:98988:8:;;98864349866779987878768879687788776987:98:<:9899868878969<;86678858776678668788787685876887678<97:969;::988986787898642238:57663657756889899:9868899889:9868976886786866:86877864487655668668854588987998678988669:98998997:8699:7644236656634787788989:99689:988987886886886889:746646635665678989:989::997876766794467765964466366878766588989:99889868868:65887628646646765689788778778899889988998;::98868766863526686656765689878879898;:9::988658866466426342346445665668779865699:9889::98778:986::66::8768566:56676756656575699657889::988:8:;996:99876676487668674686765667873676435669;6992;899867::668978876786866766866446237567667687655697796998988:9657889:86467686697866475687566886685986:9:89987688988789:986676786686676654885675688778:96988;:;89:98678667899656788686464344664895785688778:9886998978:986783676696534686678664664466765738:69976687866876689:9768:6876657665766766766867868658489699866867766768998668:98558978668864686364686746:4796:96688969;67;6vy{|z}y||w~|r||wy||~w|}}|ut|}yz||~~||~~}|z}~||}tw|}z}~w|zw||yy|y}~|}yt}~||wy}}||}|z|~~|z}|w~||~}~||}|~|~z~|z{}~|{wzw|~|}yw~~||zw{||}wwy||~~~|}~~|~}|~~|~~||}||~|wy||}||~|wyz|zvw|yy|}||~~}~~}}~}z|~~{}}|y|{z|~~~~||}||~~zwzz{}{{{ww~zy||yz~|z|}~~}~}z|~~{yyz||z~yuzz~~~~yz~}|}yv{|zw{||}~zy||yz~zy|~~}|~~|~}|wzz}}|~}{{|~~}}|~|}w|~||~yuw|{{wu~|zyww}|}~|y|~||}|z|~|yyw|}||w|y~yy|yw}w{wyywwy|~~~~zw||z}~||}||wy~|z|w|~||w||z{|w{ww|{{~yz|y|~y~||z||{{}|z~z|}z||wz||zz|~}z|~||}yw}wwz|w|wz||}||w|wtvz|}~z|}{z||z|w|}z|}{||z|~~|y|z||yz|{|||{|ww|~||wy|~~|wvvz|}|wz{{w{|{{|z||~~|wzyzywwy{{}w{w|{{}|w|wwz|zz~|ywy{||wwz|wwz|{{zww|~~}||z|{||z|}ww}|{||w~wty~}yw||~}||}|wwz}wwz{|{wwy||z|~~}|}~}}{||{z{|||wz|twz}~~|wur||{w|w{{|z{ywwy}~~}||||z|w{zw|{||{}~|y|ytzwz}~}zww}{{||{|{|{z}|z||zy|~~}}wyyw{}{}|w}|}|}y||~~wt}}|}~}{z|}|||z}|{y|~~w{||ty}}||~~~||}|zz|}~~}|w||~~z~||}|ywwzy||ww||yw~~||~~w{||}|}~}||~||}z||}~~|zwzz||y}zzywyz|y||yz}}|y~}z||w{||~}|}~~}}~|}}~}|ywyw|}zw|zwwz||}||}}|z~~}zyzyw{|}||}|}~}}}}~~}|}}~|zzywz|yy}zwtwy||y}~~}||~}|zz|z{||~}||~~||~}}~~|}~~}|}yz||z|}zww|wt||~~}~|}~~}~{||{|z|}}|z||~~|~||~~|~z|~|z|}|ywy|zwrww|~~}}~|{zz|}}||~z|~z}|}~~}|~y|~|z||zyyzywtww|~~|}~|}~~}|~}}|zwz|~~||z||}|}wz}y~~|z}w|~|y|z|zyywyz}}wy}||~~|y|||}|z|}|zz|}~~}|ww|}z|~~||z|}~|wvwwywu}|~}y{y|}}|{{||z{}|{{||}}쀁~}}~wyzz||~||z||}{wwy{yw}yy{||y{}||{ww||{z{w{|}}|}~||zz||}}zwtzz||ywwy{||~||}|}||{wwz||{w{}}||}z|~~|zwwz}~}ytz||zyywwy{|y|~}}~||{ww{}}z||}~~~|}ywy||z||z{{ywwyw|~~}}~||}y||{w{}{||}}|}~~}|~|yyww||z|{{yww~||}~y|}w||z{}z{|}||yy|zwz|~~}|zy}||z||{|~}|wy}v{|{{|}zz||z||~~|y~|ww~}|zz|~~{||~~|}}vv|zz|~~||}}zw~||zyw|~~}~~}}~||~チ||{||w|wwz~~|y}|z|}~}|yww|}~~||}~~~||ww|{w}|yw|}zy||}|}||}|~}||}}|z~~{|~~}|~~||z{zw||z}}||}}|}||}~~z}~||}~~}}~~~|}~|}~|||{w{}||~~}~}}|zwwz|y~~|~{~~}~~{}~||}}||}y|}~~}}~zz|}~~׀~}zwwz|}~z|z~~}~||}|~~|{||{||}y}~yy}~}|zy|}~~}|}}|~~~}||〃|}~~||y{|{||t~~}~w~|z|}~|z~~}zwyz~||}|w~~~~}||}}|y{{y|z{|ww||z||~yz~|w~~}|}}}~~~|y~|~||z~~|~w{|{|}w||{|}}zwwy||}~zyy|~~}~~|}~~|{}yw|{wyv}z||w||}}||zw~z|}yz|wy|~~}|~}|~}~􃁀y|w~~y{yy|yuu{{||wzw||{ww|w|}y||}~}|z|}|}~}~~}~w~~|{}~~|yw|{}|w|w|}}{ww|w|}z|~|}|}~~~|~||~}|~~~}~~}wzy||y}~~|z||z}||z||}{z{~~}||zz}|}~|~||}|~||}ytrs~|ww{{~~|{|z|{w}|{w|z{}}{z{y~|z~|~}~~|y}||}|z|~y~|wwy{||u}{{yyw{|ww|{}|z}{w}u}zw|}{wz}~z~w~~||~|yz}z|~|wtppr|u{wwryvzzuw}|~}~|y}}~~}||~Ѐ~|y|~{w||w{}w|ww|y|zz|ytst|{wuvyyw|ww}|usv}|||{~~}wz}~}|ww~|~|~~{}w~zwstspprwwvwyywrqt{|zz}||}|~~~~y|~~}|||{||y|}w||w||~ztwwtwwrvwwywvvwyzz{||}}~~}~~~{}{w{ww{ttw{{wu~yttwwqwyww|{|{ywywv||}|}}~~~~||}||y||w|wv|}{wp}wtwywwtw{wvw}{||{{|{z|}}}|}~~}~}}|}yw|{wyww}wrvpywwy|ywwvy{wvw|~|{||{}|}~~}~~||wv||wwtwwtpwqsprtwtstvyywuwyy|z{~}wvy||}~~|zz|~|wyy|{y|vwwyvwwzwzuwywuvwuzvw~~wvz|}~~}}}~w~~|zwwzwt|zwy}wztw|wzwuyyw{}{qw{wtqvyw~w~~p|~~}y{yw}~z|}}zyz|w|wwzywy}wytswprzvyzwy{y|{wvuvwyywzz~w~~}||~||~wu{||~}wtwzy|ywwy~z|wws{vw|zvwy}|ywwy||u~|y~}~~}zy||~}}|{{||~~}ywyzwz|yww|ywwzyywvt}}vw{uw|}{{}~w~}||~~|yz|wwy{}~~ywvw{||wy||ywwtwtrstwyywws}~v{}uw||{{}~}|y~|~z}~|yz}qw{yywy~wuqtw|ywwz|wwtwystwwzwuzr|w~~{wwy|}}{|yw|{wy|~~zy|w|{wwv{ywwywvzwwzwwzwy|wz|y|wv}t|~y~|wwy|}||yz{yyzw|~~|yy}}vu}~{|wy||}wwtw|wrwsy|wztwtz~y~wy||}~w~y{w멧୪ﬡ򪩧᧡󪭪੧񣤪頻Ϫ㡧̬ħݪ媧০󩧡줧ꦤ䤦զᡣ詪Ĭ򩪪𯭪򪩧ﯭ짤񩪪򤧩魪Ф󧤩ңק쭯ࣦ𩬯󪯯𩬪壡⪧񦧪ꬣڬ㰯誯ߦ󦡦줧׭㭰ةᩬ񩧧ժЭߡ򠡣欧릩驧坡詡֝秤ݤӧǣ몧񦠡ܞϤ𝡣妡á靡9756887678878:967988:;9886778995876:8579759:3#%%1<868679899878967889878:9679889:88977896988:868796883#$$.::79987767889769978878987789877:9898695:9863$#!'4967768876557889876688789869:8878:987789986699887:6:8873$"%(4<97876677877678868967:868;9::8898877899866887878:9969:4#"##.98565799886787789:66::78:9::88989889986676689;85:<4""$%,8:7::9:;8778767889:66::89:899889899877877677:85:;3!"!"'275896897679989988:6;89978868989::998876786:91!""$&1758:889866899:98648<866886687:9677668:868;8678995$&$&&.98<7889::;:86689<6689:6876776878:86786877996#"&$#(99<878899::988989:989887899:988667568668869867:6".* "99;97889:678::9:89:9668878:9::989466869868:6"5<"49:9889989:;67887688::988:8868978::<:8868878866798896# 5o%-88:77889::987678899::868:998678868::9:964688686996%".&%'68;8778:9889:99:9878;9886:97:;97587788:7998&"(7$'47;;:99::988767669;:989668::99=;79<:6698786698:88:8&"&U"*37;9889:9878878879<:976677899:;:87788:98+"$!*.9=88788=;8766868:98768867878986689987:9889,$#&$)7<88789:9887689:98867887788788:9867899886;:788:-#:#)3889989;88::8799:88786788989::998=:889:+!j&.978:988:868989:89886788689989988;:99:;+ $&*;68988688?968799488789668898689:9688998989:=- 5#%9889889<6687:;78778669567889868::8987889:=-!T!3::9;<:8::6696877665684667789:7765688<;988988;- #%.96;87;9>:988998759668578878998787668:97889865:8:<,#+ '>:;88:689988998658688552889866899889;;988987:8:<.$ 9 *9889:989889766876388997668787678898:8968;.$m +8:9:8676889876966889:6689965697887678898878669."!!#9<:;96868876=98878966867:78876889887887686690""0%8:8:<<>;9988798987866868:7787689:986788988978;2#Q>!;:89:;<:9988778867:886986678898:9:;:98788:9:88:3#H ::86689:99877899:<8874::767887668878998:9976:3"?$889;988:=6778599;6695367::868686:7:886:7589:5$E9899;687979796778845779:889898;8::9977898679:868771 F^89976897968699:686887658878988:898:79::7689988768782"E88765669785769897988699788689867:77::9876899878789:5$?:8665679797826996778868987766866988<::98679::89988795$!><97886798798925985667569886567688:;:=:<98768::88695$"=;97788695577566468875677:89<:<8<99889;:878667:5# <88756876996276778698875787886688<98<9:6;99889;96;;889:4 :;988689987765627866858687;799::<<;::99:;9889688::8$;97887786566786865687848677:89889:<<:998:788::6# >978977567766886786568857677:9977899::9::98998:898::6#";;887896699668856656685778::9899:9976:;:996<::8::7&!1:88787588669966766767889:;:<;;99899:;;9986<;:7::9* &6678667668866776866886879899<::9:;::97;;:7::,""66786677887766596787687879788<978:;;:9;:99::;::6::8,$"7787569:656677876884378869677;889:;989:;<>8::6997*$#6879769566:868:66876629;9:889898;989;::;<<:899;-$"788977:688689866:78:887599898:89988:8799:;:787;,$"788988;798898876889:886897;887899898899:9;:898;,%"8879;7868:88:8878865789;96967878::9889;;<9<;::9<.&"87887996879:88:8:87799766889;869788789:99:9:<8;;::9<.&"86988:9688987898;:88::86897996899878879987897::9:9;-&#8699<96698788:;989:997986988998788988987897:98:9<-'#8699:=:74886898:7::6788:88<9696788789:977899:<9:98::=.'#868:9:;897799878898688688:99:86:8986678776798667;;:6:891#&86899::89889:97787886889:88:56778688989:97:890! g878898;989988688768989:889:899;:8898789965866.&!U98898;:9889568868;9::7798998789867975688798979791&#T:9889989:;:998766887;9::68989987898669756766;9979692#!K9:88:98869;<;9767688689:989:97899:;976:968656:6766492%!I8988:97869;;:9869788967::899678789866:989659:68996;5'"L687799678::87899;88967;:89988:;987996987955;857997;5$ K~~zuw||{y{|}z}~yz~}|}|w{{zz{|~v}{y}v{{uqMSSm}w}w{~}~~}z|y{||~}z|~yz~}|~|}~{{zz|}~~w|||w|z~y||qNQQf{~~~~}zz{w{|}}||}}||~~zy~~{|}{|}{zz{}~}{{||w~v~|wqQNJVsyz{w}}||{yvu{|}~|{yy}|z|~|y~|}}{|~|zz|~~|yy~|}|{y}|{rQLRXs{}{wyz{{|{zy{||yww}~yz}y}~|}|}{{}~|ww||{|{|wtNLMNf|uwv{~~}|}}|ww{|{{|~ywz}~}}|~}}~~|ywy{yy|~}utLLQSb}z~}z{|{y{||}~yw|~|~||~|~~~~|{{|{{y{{|uqJLILVpzv|w}~zw{~~}~~}||态yw|~~{||y||~}||}||{yw{|wlILKOTlzv}}||}~}yw}~~~|wt||yy||ww|{y{{wyw||w}}wz|~uQTOTTg~}{}}~}ywwy||}||~ww|}}~w|{w{{y}{}|w{}w}zz~yMKUQNY~|z|}~~}||}~~||~~}~|}|{|~~~~||wwzvw|yw||w}w{yLDf^GL~~~z||~w{}~~||~yy}}{}~~|~twywy||w}w|yKBv@Kt|}~~}~y{|}}|{w}}~||}}|wy}~{||}w||{||wwz~|}~yMGv@Re|}zz||~~|{y{||~~}y|~|y{||w}~~wtw||y|y~~~yRKgTSWw||zz|}}}||}~~ɀ~|z|~||}|yww~z~zv|{{}||z~|TLXzQWs{~~~|}||{yzww~~}~yw}~~z~yy~}{|ww~}}}}UKTԚL]r{~||}~|z||z||z~~{wy{{|~~|{{||ꁀ~~|}_LQI]f}|{||}}}zww|y|~|{y||w{|{|~}yww|~~|{~|}|bOMUQ\{}}||{|~~}|zy|~~||yz}|{{||}}{||}|w{}}|yz||cNDM[r}}~|||||z~~}|}}zz|y{||}}|}~~|~~~}||҇}}~`IABTf~{}||}}y|~}~}~||}}||}y{|}}||y|~|~}||}ބ~~`GDQU]w|~}|y|}~y|z~~t}||{|wy||}~|y|~y|}~~~|~}~eHAvMR~|}~}||}yw|zz|{{|ywyvw{||~|y||}~~}{}|~eIACJq~|ww~w|{{ywuw}tww{{|~{{wuw|}|}||~}}|cHBNRf~w|z~~||~~}zvww|v{||{|~~|{|{yww|{}||}~~}wu|aME`GV|}y|~|}~~|yv|w||vup||~|yw|~}|||~}|}z|fQHG]~||~~|~}|}~~{ww}{yq||~{ww|{|{y{|}||}~}||y}fODH_|~|wzw}||}~}{www||~wy|~~yvw~{||{y{||}||}~}|}{}ww~fLIJN~~w}y}}|}}|{y~}}z}~wwy|}yw{{||{y|}}|{|}}{y|wy~jLKkS}|~~}||{~|~|z|ywywy||y|{{|{y|~~|y{|}~}|{}pN9I}~~}|{{|}yz||w~}yw{||~}}~~|{||}|~}|rNEH|yw|~~|{{}~~}|zt{w{}}||{ww||{|~||}||{yrLAO}|~|}y{z|u~wwyuqy{|y|y}w{}}|}ywy{v|uQA}~~~w|z~{zw{{||tv{{||~|~|}{{|~|w{~}w|{{mHB|~zw|~{~y|w~~w|y}|{yv||{}|}}~}{~{y|~~||{w}{}pKC|}{wuwyw{}v{w~|~{~}||w~{||y||yzz{|{y|~|{|{}vQD|yywvw{{~z|pw~w{{||w||{{ww|ywy~|}~|y{~}|}{uOI~z}|yz~}{~}~ou~|uwwy{uw||yuw{w||}{y}||}wyyuOK~{{||}|}w~uv{{uwwyytw}||{vw{{}}~||~|{|wy{vMH|}zvw|{w~yozw{{|w~}|{v{|{}|ww|}~|~w~}|y}}tHA~}|y|~|{zzywvwo{|ww|u}w|{{~~脁~~~|}w|}|O>~z|}z{|wvwwz{||w|yvy|{|s|w{{|~}}|}~~~~}}z}}yNH~z|~{{uw{{ww|}y{|wuy||uzwz{~~z{|~~}~~|}}yNL}|}z|~yy~~ww||vwyywvww|vzz{|}~~{y~~~y}{UJl||z{}zv||ww~~ywwzyww{y{}|~~~}~~~}w{^HUyw{}yyzwy}|ww{{w}yy||w|{|~~zzbLLww{|ww{z||{zwwv~yz}{y|{}z{}}~{}~~y}bOL{z|{uw~wvwyzz{|{w|}tqz}}yy{{|}}||}~|~}y{^ONy}{~zw~uwwy|w|wy}zyywwp~}}|~~||}~|~||~cOKz}|~{zw||y||wyz}||zu~~}~}}~||}}|}{~~z|{aQK{||~|}{||}|{w}|~}|}}yy}}~~{|}}{|~}||~~~}}bRK||}}{~{}y}|}||z|}}||yv{}~~w~w{|{|~}}~fTK}{}|{~~y}{~|}|}zz~~zww}||y~{||{|~~~}fTL}y~}|~w|}}{|~|||}w|~{~~y|~~~|{||{~~}{|~{~~cUN|w~~~yw~}{||}~|~~~{|w~}}~|{}}|~}}~}z|{~|~cWN|w{t||w|~}zyz||||~w~y{||{|~{{}~~~~}fWN|w}}~{{~}{|||y}|w|}~~|y}~}yw{|{zw{}wwzy}~mNT|y|~|~||~{{}|{||w||}}~}}vy{z{}|w}|}~~}}~z}~kJH}{|}}~|~}~~}|}w||{w|~}~}|~|~~|}~|z|~wwyv|wwgTI}|}}~~|~}}|}~vy||y|~zz~|~~}{}}wz~zuw||{}{{~mUN}}~}~}{ww||{Ã~y|~|~~|z|~}ww~{uyzww{~ypNI}}}}y~{w{y|}||y}~~|~~z}~~{y~y|yuywzyyt~oSI|~||{|y~}y{|}|}~yz}~~wz|{|~}yy~|~wu~y|~yuWLw|{{~y{}|{}~||}|yz|~~|}|{~~w~}{~vu}u{~{uOGhpp㧩jmmmjdtmgnwjghj㧪㧪ggmpݧdgbgt歯䣡bgekqͪmqkqqԧhesmjy̩g\_geYVeh_Vn۪죧neqpvɭqgwmvƤseqg}꯭gmb}Ρkhsm|ǩj\hz󧩪ҶbXYq޲_\ms}ĩaXhnbX[d֬ǪaYjnөh^_t򪧣쩧ma_}k\aʩgbdjgep盛ϧjMb䪬j^aاǩgXk裡mXaYɧe[⧩m\kbkehaaX󧞩貯kSΤja񞡦랤񧯩jg°sd臘æas򪤲gg렪kgkjϣke줞mene󵬳qeqg𩦧sjަvjﳪ򯵪vj§jq񧣧daئqbħsjðjbpb䡤vgꡪk_9O===<===d;<<:;;;X9:::::9899999999999999999999999q999999868977988:979<:7:<9."&.57:6649988988:68989789668:;;<:99878:879:89:99:88:<98:81'!&698:7969876886678699::68988:;::;9988:;98998875;:988;=::3)#$-;;799;89:99:98898898;:6:889878:;:98899689987:99889:<;<:2)&.8996::;87998668::86::6<:8668;;:88:987788:;9989:;:;94/.6=677:8;87998668;:96::6;<978::;<8988;9::988789:989::89658:9:8;7989;::98::998:948:869<<::8988:98876788;8:;:9:;;:88<;8:7::9<799898899889799:966866899:998:;87889=8;<;9:<<:87=<9;8998<7;98:98::968868;98768:>8789988;8778988:7::79:;<::=<8768989868988989=68:88:99889::;9::88::898899:;9;;<9;9::=<898:;:;;9899:88;88:99:899:;<8;;9889::9889;99:9:;::9:99;;8;:;;88679::87:97:;;:68::9:;=9::889::8778:89:89;:9=::88::8:9:9667689::;869869;<;66::989:<;988:;98:8778:9;;::<=;=::9::88:89;;8:9::86987889;989::99:989;;97;9889;::<::8:<<8:8::9:<;9:99:879:8846;::89::99:;:889;8789988:8;;9:998:<<9;9::9989;979;9868::;89::9:99::878;97679866:;:==9;:;99::;:;9::898:;979;8::;:8:89::<988989;97=:967667<;9:9<:;;99;::89988998::9989:;;988;<:8:989;:879;;86<:;:;;88<;9:9;;:99::799898:879;;98::8899::9:6<;;9:;99<::8:<;:9::968:99788989::87:;:89;;9::9:6<::788:9;::;8:<:99::979;;99789889:;:88::989;;9;::9:=84::8:8:9:;9:<:88::989;;:9898::9899899:987:988:;:989:;;:86;:;::998:99;9;<988::9;:8898:;99:9886:989:;:98::;<:2+:8=89::88:89:9;;868::9;:8898::99;:8898;:99:;::<840)!:9<68:;88:88:8;:868::9889:9979:89;:7:99:;;::=;:9::;<8=;1*'O::8997::8878:88:;;<:9768:969989:678:;;:=88;8:80'#'!)`6::766987::9::99;989::8:;:889:;;:<;::;<8869=95*"*&H1;96769868989989::88:8:99::98:;<<;;=:89<>>::<::82))%$6*8:7:7:968868878868::8<869<;9889::;:9::<9<72+%)* 1&5:7<8::9;9689978879::799:878<9::99:;=88:;==:81&&%*,'1;6;8::;8689898899868::9769=<<;99::>99<;:6/&()((7'-;7:88:898689889:9889::889;;:<<;:;;>:/)(&, 5$(;8<9788:98:;99778::89<;:88:=<99:;;<:2-*%&'!)?!&4>;9:868868:668=:557:<<:6<88:9:;;:850-,**("#4X '2679;:;68749;9::8:;99;699>:;=::73.'"%**$".O"%'*.137:5<>;<<9:;:8:=;879663440,&%((" ")?(!%)((*+*.022132550162.,+('&((&&" $1Wm9,!!#$!##"! !" $$%&$&&#!!'1K {K3+"&&!! !!"%-1:Iryy|j94>:))&*d799:;:88::;;:998=<>>:%)''y:;<;:99:;;:99;7>;?8''"&g<::;:989;;7:>;8/) +;99789:;;<=9:=2/)$)<:;<;;79::;<=>;1&.' ;8:<;:95:;;::;<=;2'*#';88:<:97=::;>;/%%!779::9:8=:8=>5-%*669<:99::<;;92+'( Q8::9::<:;<7.&')R:9::;9:;/&)'#~89;;9:=>7,(+ 0989::9896(,%=;:879:62(.'$g?58:98-'*,9=990)*$p<5(#&.2"'& K!*&)H.%%'&%{u~o]`ac}~~w{t[\T]{|}~~}R\WV{|WVKT惁}{}h[H_{}ph[O\{턆mTfBW }vpV]NW|}~{󀃉iRRI{z~||veR]>ww~~p`WYG}zfTV[~~iT[WN}|{aX`Gj~}}~yYbSA烁|zyoXgVOv|~}cV]Cb|kaT_Hj\^OCuYMTCfpKVUGI]DU\Ef%%'&%ﯞ}򩰰𡸦z|q} ⦬n|vt ୯vteq 簯za ꦩzk|qYv 氩t}jvnnbﭬn}S롬vy_ꩯqtz筪qzvj驧w_ꪩypX簯wtk𾠧t}[qaﶬ|k[ﵞyhq[ets_b}\s|^%&U } % q   q  K""%%/%$1>:;;8898786.&#.;66978:988/'%0=::989;988/&#/=:;:9:<9788.'#.<99<9::8788.)%/<::897799.'"-;99:788788.)$.<::898776.'#0=9::8:=:887.)".>::;9::99/*!-?<::99:9::8.*!,>;;99::9;:6.*"-<:;::9::6.*"-;9:=::989:8.,",<::;9::9898..!*=;:97:=<997.0!,;><:989989:./$.<=;<:9:9889.)%0<<9<::988/!$0<<::989. %0=>;::98/!$/<<;<<;:8876."#-;;<:8875.$%/==>:;;9986.#&.<:8::989::9."(1?>=::989::9.!&/<:;::989::9.#&0<:;:99:9.#&/=;=:99::/#"-<:;;99:;::/&$->;:;::;<::/&!+=:9;::<<::/&"*:;::<<::<>>/&"+;;::;:99:97/&$,;;89:;96/&"+:;;::86/$"*9::;:9889/$!)79:9989:/#!)68:<:9::865/$!)68:<98;>;73.(+<:69;86865:.1#(8::8:87975:.*")9;8:<::<98;.#.:85788:868.&0886::<:89.#.99698788766/#/:86<:899880!)2659=:8878.$&.86:88998/#&.86889::988."&.87889::98.!%.87789::98. %/88778998/ &/8967788/ &/79788/ &/69799889."%0895889::8/#%.6648789::98/!&/8668::87.y )2:77679:988.r *1:668669:889/s &.8979669988:/x!%-8;88679:88:/{"%.8;6867::88:/SQl|}|{|w.TMfyy{}|}|.WRk|}}|.TMh{||.WMf~~|z|}.\Rh|}{{.WKc{|}|{}|.\Of||zzw.WNk}|}{.\Kg~~.^Ie~~|.^Jb~y.]Lcy.^Le~||.aLa~}}.fJ]~z~{.jJa}}.hQf||.[Rj||}.JQk}.HSk}|.IQh}|{w.KNe}|{v.QRh|w.MUf}|.KXl}.JTh}.NUj.MTh.MLc/UOe/TJ`/TL^/UL`{/UOa||}w/UL`|w/QK^~}}/OJ\z~|/NJ\y||wu/OJ\y||zr.YE_y|w}wv.lNY}}|zzv.]L\~||.AMf}v{}|}|w|.ATk}|y|.ENg~~y|z||zww/BNi}w}||0J[pwu~||z{|.OUf}w|}}||.MTf}y}|}}|.KTf}z||}}.ISg}z{{|}.HSi}}{z{|}|.HTi}~y{{|}}|/HUiz~{||}/HUiy{}}|}}.LSj|~v}}|/MSfwwt}{}~|/IUi}ywyy|}z.G\ozz{w{||.H]lyw}yy~||~/HUf}~z~yy~||/IRc}}}w{||/KSf}w}w{||/pm/qh/vn.qh.vh/|n.ve/|k.vj.|e/b/d/}g.g.g.d}.d/m/zn.dm.ap.bm.ej.mn/hs.ew.dq/js.hq.hg0sk/qd/qg/sg/sk/sg/me/kd|/jd|/kd|.y^.jy.}g|.Xh.Xq/^j/Yj0dz.ks.hq/eq/bp/ap/aq/as/as.gp/hp/bs._|/a}/as/bn/ep1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0% 0C 0> 0) 0 8558985386877978876876788667766967987887889768;8878898:978769876678868778567876776886767966889969889988:9989:85667:887558:667757887688687886678996:8679988::987887677897898767955667767589987787688796898678865688769988766578878998877566778579:977689868778589767887787698876689987998778787687569:8876798787687866897688988799867889878866788978868665887787688787788746996789989:97988998786787898479867886869979685776787578878776797698878:858778765868:9968755686457769648976977899879868968=45998:9;88789:68::876987788788778756686898898879868:88:88:9898:89:988789:877879886788468876689889878;:8698:878784899::;:887789::8876:976789947876776887788::6988:;86768768786::99::8897:988787898668869887678869989:997688788::879:89899759::98876788:8679867887786:98899:98:989889879:9988978878:866778:9987656889:9899899898897889:9876688789:8899:8778988978:9876778998877;:88::886766878468::8878898:87879978668688789:6886877:79:868868988988989::84649986:8:889789886687898863776976989;:9::86767889:86968789:8878:7798966988:878998665877:9889887687889:8696889:988798966:88:988997699866898:;98:9898867889:6869:879::98788988:889::987689755677;<96998968876788988796788:669::8688788:889::988687786789986688467788:887667897968:<::9798:67887:9986869;78::879:978868767878868896:7:;<8::8:7;667887;:88:977858836998:966846865776889::9:8687<9:9::8:9889866::878688789889988687878<99:98869;99:9:69::898899886867:9778799886997677657:8688:776798899:79::9889:6898878867889867789878858986678847:756698897978:9:9::9889:8898766867986588668997768768899:786899:9::9889:878::848668687558866858985887878578687::988;978::848667886378688656887786678778698878897898998798788676787886588:8567898776459886588:9889::9:979:8:98878678669:76878988:8587887876598875979766899876367577;8897799;877889686886868967758667669866778788998776::97664:89:99:9:8788978788686897886868864788997558998987786889767679887988988:8978868789887879964678::8668:98789866789878:97688998789878:998877878768878:99:986799867789879:86699876788679:99878786788766778898689::987769:9887679988:8986776678876789898878668767688987887979:9769;79:98997789889<:8898867898:88978769767698:98879689889:79988:97998788767:8788779889878987:88:7887:8687:7998686789988779867:9788668:969987788799:757:679778878988::6::863877889;9:748:998:8778768988987:868:889865567667968876;8878989858:89988:866886::88;88989988778868998:8876889869:8898878878;:8879::96588787868::8786678899687987997898778898778898898779:85578787788788;97768:667889968788798788789::97667656988757767877878898899678799778878788967789887657458898576798686676786869:89688767878897866878655898585687898867876987899:8968878667788786789:8866898786568:99688679988767669866:8866788:;:7679:98898766887998:7787898878988977677886788778:889889::8986789:96567876887789886886787667789:66788:9:97889;:8678856::756889866768768896788688;:9:88987866::7568778867468866866887889898878788:87668769768866798766889669:88:678898867887;;::88987:988787788776679987789:966899:;889867789::8987::99::98878876689:9989977668::8989988789:7887;:88::898:8<<6588437:878878:867668977998897786789865689988989:988998979:558965787679988:97876889878978878876568;9989:988998858856886678867766776:88:86898898<;86569;89989:88988577567676689979987887:9889878988:8;:877899898688687887677889:878878789889865667788:988998778998788798697887787887667688788988787789::9889:8688998788976988668898::8878998899887897887;::99:99879988965:8:76996687886659:9889:9878878876889988:;:8778:9878899|uu||vr|w}zzz}|}zw|zw{|}ww{zww~wz~|{}}{|}{w|||}|{|}}~z|zy}zwwz||w}{z|vw{}{w{zw||w{w{~ww||~y|||}}|||vyy{||zuu|ww{zzuvz}||zw||w|{}}yyz|~y|w{}|~|z||}{wzz|{}}zw{uuwwz{wzv||zz{|}zw||{w|~|w{}}wvw|}{w~~}|zywwvz||}|{{|}|{zzvwwz{{||uz{zw||w|{z}v}~zw{}}{zz{|{w~}}||zww|~~|z}zz{{z|}z|{w|{uw}|{w{|z|{w|z|ww|{y|}||}|{~~~~}|yz||}~|{}|wwz||{}|w|wwv|}{{|zw||{|{z}|ztwyz}}z~}}~~}{|w{|{}|s{|wz||w}y{~y|vz{w{}{u{||}|{}zzwz{w~}}|{}|v|{z{|{yv|w|~~w|zvuvww|wsuz{wwt|{y~zz{|}{~|w|~y|sv}}||z|~w|}{y|{{||z||{{|{vyww||wy}}}}|z~|w|}|||||}~~}}{|~|{z{||{}|wz|}|sw||zwy}||}}z||y}|z|z}s|~~||zz|~||{zw{wz|tz|zw{{y||{{|}y~||}y{w}{w|z}y~~|}|}}~~{z}||{|}}|{}~|ww}}w}|zwz||w~~|~~~zw}||}{}}|z~|}~~zv||}{w{||}y{}w{||{zz||y~|}~~|}|}|~~|z~~||~{|}}|{{||ww{{}~~|{yvw||}~~|~~}~|||{}}~~|zyw||z}|}}{{}}|{}~|zy{z|}|{{||||wzww|z}tw}}||{|}}|}~~|}{}z~z|yy|w|}}|zz|~w}|w}{zz~|y||w|||||}~~}~|tys~~|y|||z|~||ww}z|~}||}||wr{zw{w~|~~|}|ww{wz||}|}~|w~w|z|~|}{}{z~}~ww~||}z|~~|wwv|zz||~}|}{z{{ww|}z||}}~}y~y||~}|}}|z~}~wy}|~|}~~zw}ww}}~|~|~||}|wwz|}}~~y|y~|{|{||~||||}~~|zy|zuuw{z~y~~|~w|}|{w{}}~}||z~yz|}yw|w|}}z}|}|}|~~||w|z{|w{|~~|wy||}sw{{}}||zwwyz}~z~w}{|wz|}}z~~|y}wz|}z~~{}|w|zw{|z||}}|w||}~y{}}zwwz||z}||~z{|u|}rw~}~wy|tw|wuzzw}||}~~|w|z~~}||}~}}||~}ww|z}w|}{|||~~||}|w|z}z}~}||yw~y~}|}|}~~||y|yz~zz|{||w~~zyzzwuz|w||zzyww{||~~z~~}}~y|~}|z||wz||~|yz{}}{||v}~|wwz||sz{uww||}~{{}~~~}}~||}~}zywy||}|yy{}wu||wwyyww|~~zzw|zw|}~~{}w|~~~~||~}z||t|wwy||w|{uu||wwywy|}||v||u||z|}{|v{|y}z~}||݃~z||t|wwyz}|wr{|w||wvw||zz|ywz}{{}w~}|z|}}|z}~|~~}||{{~}z|}}|wzwz}z||wv||ۀ|vwz}~|zzwtv||wv}|~||~~{|||}|{z||yz|ww~zy|z|}||v|z|}|z|zwu||zv{~zww|~~|{yrwzvzz||{z}z{||w}w}}w|w|w{{v|wwzwy~}wyzz{{||{|}~~|{z{y~zyws|}{||{}z||w|w|z||w|w||wtz||~~zvv|~~|}~}{zz}w||}~~{w{w{||{||}||}{||w|z||}|z|z~~wtwz|}ww}~|{}~|wwz}~|{}~zw||}||{{||z|||{z{{z||z|}zw||z}~~|wz~~|wz{}|{}yy}||{{wz|}|wz|{|{|wz||zwwzz}||~|y|~~|zzy~~||}}zwz}}}|wzzwwz|}{wz}}||}{|ww}{wzw||~}z||z~{zy~z~~|{z{|~}||~|}||}|wz}|}|{}zw{w{w|~|}|z~y|~||~{~~||z~~}{||{w{}z|}z{}}|z|}{}}{}|{|w|zz~~|y|wz}~}|{{~|wzz}|yy}w|{{||z߁zuzw{{z}}|z{}}}y}yr|{{||}}|{s|~~}||݁}{z{|{w|}}|z|w|}}|wvvwzww{~w||zy}}|z|}|u}}~~}|||ww||w||||}|||{{|}||}yw|~~|}}||}||{w|||w|}~}|{|}||zz||ڃ}||z{wv|}||{{||{{}|y}}z}yy{|}~~w|{}z{|~|{{|}|}}{{|}||}{z{|uuz|{|{{}}{|}~zzy}yy{|}~~w|{}}{|{||{|}{ww{wuw}||{v{zw{|z{|{|}||~~wz|z~~{{||z}{|}|y{{|}||{wvzsv|||vzw{|w|wwz{wz|w|y~|~w}}||zyz}z|}}{|yww|}|{|wuv||v}uw|{|}||wz}zw|{||~w|}z}wyz{||{z}w{}||ww||z|yuy}~w|}||wz~~}|zyzww~}wy||yyz|}|{w{}}|{ww||{|{zz{|{z|||}zz|~}||~zzyzz||wz||zz}||}}|}|wz|~yvyz}zw||zz}~}||}w|}||}}|yyzz||zwwz{{|wwz|}}聀{|}|yz||vw{vw||}~~|ywwyzzyywwy||zy||}w{||w||}|}}~~}|{|ww{uw|zz|}}|wztw|}ww|wy|}}||z||}|}||{{|{}|||}zyy|}{yzw||ww{~|zwy||}~ww~||yz|}~}||ww{|}}|{}||}~|{||}|zz{|{z}|{zww{~~|zz|~~yw|~~||}~~}|wz{{||}}|||{||}z|}|zww}~~~}~~zzww|||}~~}}|{|z||{zz{}|}|}wv||sq{}{|}|{z|}wzwy}~{{~|}{{|wz||wvw|||}}}}|~|{uv|wv{}{wz}|}{|zy||~|z|{|}{||{wuw}}||}~||~}}v||uw||ww{||w{{wwzzw}||}|w||}|}wvw}|}~}||}~}|vz{uw{wzww|{|z||{~}||}~|z||}}}{zz{|}|~}||}||w||w|z}}|zwz{|||{||}|{}{}|||wvwwz{|||||z{}~||{||{|w{||{{z{|z}}{wwzw|}}||z}|}||}z|{{|}|}|w|}~~}|{||{w||ww|}||}||{}||~|}{}{||z|{~~}|}}|wv|zwww|{||wwv|||z|}{|}zw|}}}||z{}}{|}~~ҩͧլء蠟笩ᤧЧة獵婬௩ء짤֡𪩧̬񭣧ڪݪ롧䤡ܪ飡󣧣򤣤ģ⩪񭯦򪭩򩦧ݰ視驧ۭ⬡㦧ᬦ맩Ħ멧ߧ¤ߩ̪ߧ߯ݯ򤧬밧᧯ڰ͡ӧ𤦡Ҥ󯧪𧬧㤧򣤤ᩬ󡧩语𩪪ɦΧ멪릪쩪驧쩭멬񧬬驧թ񤦧맩ﬦ릩ﬡ頬񧭰7897885898998;;76589889:987688966;:6998:947788689779:;97:889579887:98788787887667866::8;::99879:89898789787789987:88779968;9866867889867988998898:98:99:9689987897877876868;986696778:67887668:88;887997786877689866778868976676988;:86689:98869778:=;9789886:778789867887;;876688:8987:9:7589:86:9988697799;:<8898898<9898898878:9788:8:96899768987688667667:88988;8998799;7788988778768648:99876::69;76688989886968:887:;7678833678997656788978868:88987876679;;8989:8878:88:988558988:98877886;88678678998878::9786897889988779:8898668678788698789987:867688788998899889::87:889899889878866976788759878998966789988:89:988988799:98899768898897678868878899:8678668988::88:987886887889:99:8788998788778899898689879:88::87898766788688988977899:89978::98668778868:98;9779:878868699:98:889:89:889679988768789989879;8698669:878776748898698899898898997587798788:988988986687689886877:9787:97:848:89:9::8;88989857:8989799887688986::776688689894876:97::88989:886687748:798:7966889988789987;;877686778:9774876987:989:899887898868:798:7889:986689889898799886789:97668868869769;:986:9::878699698:78689:9886886898:87998898767884668:879:98968867698698:88989688766898;;87768977878878877899886899878867:9886:8:98::98778789887788;;87668768:998689886678989968:9878989;;877:7:99:988978::98778:87997797898867788789:88::88988688789877:6::9<:99876<:89:8668736996:8667988667:9898898997877876877987889::987:8789886887869767655688778:97:77878:99886887988::99878898:897577656887788:8:8668::998897889;::989988766798865669899:8767899768997887887889:88:868899766867767698898778878689788678998878678988996789:987689887676686867668766776899866898786889::988689889889688789:96868868765677878998786689779899:889899789:988988679::798986887678877:88768:657768::987788;8898::88:<;:88656876::8668866879:76:86676464797688;988998699866:;;88;::<:;886763878876476776675588678868976779887886899898:99:9:778769668866886676698689:9867977997899889:88988:8:88989987698788:866877997:86889867988:;7889:89::8988:899878679986967988::9:868878:88988::98789:98;:889::8:89:8987789:47866886978987889868878:78989::98679:879889988:9:9:;8998898557887668:8878978988987886688:;;8878898878::987<9989:88:966788:8:78998:;89:98:868977989:9678898:;:99=:97897889:9889:778798678986997996886898788698899866897985898866889:98789767887898899897868868988988;98868996998:987789988987887678878::98867688688989::988789:9789887889867889:8778789986788577:89:989;889::889987787769988967889:98778878778679898787:99:988;889::889678877889898:87788789:8778:798998:8:99:9889;::9867989<9776778::987::98989:97679797899:789988:9868:99;878668998:99:969:998988776897899568988998679:988:55758;88::87668:7988:98979788;8::986675899:99;:78988::;8::9:7:98876688:8:977878:98:9887988:78878988:988<997898::9786788989977879::9:98879889788:8799778879:998::889878867879986899889889876887799789:987887::688698::9887887887788689889988987658898798:977887::6786:889:87897898877878878:88:88778899885899878688789989889986679987889988989788678898:88:778798898788988986898989:867899876687897798:886787;9:77:6689987787:86768:88::8:78;886778788778798978:889889889778898778::98789889:88798::9986398:9896898978:88:98:98:668898:98689:: 87:8:88978989779776<:7::8:889988788998789<9669::9899889:987667899:897798:98:779776=:6::8:9987689:988:988::98788:988767889887789:98:778786<:69:8967889:99:9878899889878 898:77988:89:9867889:989::868898668:68876788978788988:87989:8898::88988778898779:6688:96889889:897887988:8799::68989:7678898655797899789889988989:89688698{z}{|}v||~~}{wv|}||~~}zy||~yyy~~||s{{}|w|zz{{}}|v{|}|{|{|}|{{|z||zwwyz|yw||z|}}z|z|{{||z}|{{w}~|yw}w{|}|y{~|}~~}|}}~~|~|~w||}|z|{|{{|{z{{ww||w|~|yy~yzz{}}|}yz||zyw}}}|}}|{{{|w|z{{w||wwz{||}}w|{ww{w||}|ww|~}||yww~zz}z|||w{{|{||wz||}}z}{ww|}}~}{{v||w~~}}||yw~zz~~|||}|}|}||}|{|{||}|~w|~zw|}{y}|yyzywz||~||}|{{z||}|{z{||zw|ws||{ww~zww|}||~~}||~}|w~y|||}{z{wz||rrwz|{wvw{}}|~z||y|||}~~||z|zwwz~}}~|~}||}}|{}}|~|}uu|||}|z{}}|w}||wz|wz|~~}||z|~~zz|y|~z||~~}|{{~||~|wy|w{|{|}w|{|}{|yzy|}|z|}~~}}~~}|~}z|}~|~~}}~}||}|z}|wyzwz||{u|{|}~ywyz|~~||}}}~~}}~}|z~~~||~~zy|}~||{wz|}|w}|{|}}yz|yy}~|}||~|z||y||{|}~|z|}~~}|{||{{|}}~|w|~|z~|||z|~|zwyz|}w||~||~z{}~~}~~z||ww|{{||}}|yw|~|~zz~|z||ywwy||y~~~}||}~~}~}}~yz}}{w|{||~}z~}w~}ww~|z}zzywwyzt||~|y~|}~~}|~|}~|~~zv|{{}{}|}||~}||~~|yy}zw}~||y|zz~{|z~z|t|}~~|}|~|~}v{|~}z~}||zw}}~|y{zyy}|}yw}~|t|zy~z}}~|~}|wy|z{{t|z~}z~yy||~~}|z|~~}z|{zy}w{{}~{{t|zy~|z~|~}~~||z}~||w}z~}z}|}~~|wwy|~}||~|}z~}}wz|~~{ww||y}|y~zy~~}w~|z|wy~|{|w|~~}||w||w|~|}z~}|~|zyz|}}tyy||z~~}~y}|}|wwzw}y~|}||~}|}~y||zww|~|}{zy}~{{|z|}|z||zz|~~|}}y|~~|z||wz~}|y|~}~|zz|z|~}|zz||}{yw|{y}~~|w}~}|yyz|~|~~y|~|{|||{zz~~}}~z}~|zz}}z~~{{~z|~||}wzz||z|~||}}~||w|}{||{zzy~~}zy|~}yw|{rw~~w|yywwz~||wwz~|||}{|{z{||zw|zz~}z}|}~~|z|z}~}|}|}w||{|w~{yzwuuw||zz}~z{{|{}}||}}y}|z~}|~~}|}|z||~|}~{v{{wvw||zz|}||}||yyw|}}||}z}}|}}~~}~~}|}}zwwy{|}yuyywwy~}~}zwz}~~zw|~~{|}||{||z|}||}~||}|y|}~~zwwy|w{{w{w~||~}{z|}|zz||}|y|~z||yz|}|{|yz}~}}~~yz|~~|zw|~}||zy{wy|w|w{ww|zwy{zy|~~|yyww}|{|w|}}}|y|~}}~||}~w||z|~~y|w||w|{wuwz{z{}|z|~~|z|ww|~z{~}||~}~~z}~~||}~|}|yz~{}~|w}|zwz}|{z{}||zy|wvz{w|}{z||}}}|~}|}||wvw|{w|ww||ww|zzw}ww{wswtz~{y|||||w~~|wy}||}|wwzwq|z||}zwtzw{zww{vu}|w{}||}y|~zwzz}}|z||y|~~|~}~~~z{{|{w~yw}}yw||ww{ww~|w|~|w{~{z~~{|}}||}~}|}||~|~}|{{zw~|z|}|}}ww}{{{}w|}}~}wz~|}{||}}}||~}~|||~||{{|}wz~~}yw{||~}w||z|||~|||{||||~}}~}~|zz{||tz|ww|}y{||{}||~|y||z|z|~}~|w{}{~||~~}||~~}~}}|vvz||zwwy}||}}{|z|~}||z||ww}}||{|}}||z|~|z~~|~|}||}~yw{}|}|}{|||~}|w|z{}w{||}~|}~~~z|~z||~~}|~{z{}|z{|wz}|y{w||y}|z||w~|}~~|wy|z|u|}|yy|}}~~|z|~zw{}}{||}}~{|w}}w}||||~}}|yy|w||zz|~~}||~~|z|}zwz|}||z||}w{w||w|}}|}}~}}|z|~z}|}{||}~~}|wz||~}{z{||{zz||wz}|}|v{z}|||~}}~|z{|{{w~~||}~~yz||}~~|z{||{|{z{|}|y{||z|z|}}}~||~w{||{{||}~~}~}}{z||{|}{z|z|}||}~|wz~}{{w{z}~|z~~}|}|}}|}zw{z{}z|}|}}|~~|y||{}ww|~~|~~~w}}|{zzww|{|uw||||yz~~|}vu{v|||}zwy}{}||{z|}}||wwzu|z|||}~z}|{ww|}}{z|z}}|}{||}|{}}|{{||}}||{z||~}~z}wz|}}|zz|z||z}}|{|||{zz}||{~~|||}|{}}wz|{}||w}}}|}||}}{w|}{{{||z|}zw||w~|}|{|}|z|}z{}||w|}|}||}}{wu|}}|{}{{}|zwz|y||}|{}{|}|z{|z|}|z|||}}z{|}||v}|z}w||{}}~|}~~}ww{|{}|||}{||w{}||||{{|}|z}|}{|||||w|~}~}~|wz|}{ww|{}{{||}}w{}{{{ww}|zz|z}wzw|}|}z|||wz{{|{}}zz|{}{|||}~}}~}|~zz|}}~~|{{||z}~}||~|}}zz~~}~~|wr~|~}~w|}{|||~|~|wy|}}|}|}~|y|~||}}|}||}|z}||~z}}{{{{yz|}}~~||{|}|z|~yy~~}~~|}~~|zyyz}~~}~zz~|}zz{{wy|~~|zy}}||ʁ~|}~|z}}|}~}|zyz||}~}|zz}~}{z}{|yy~}~yz|}}|z|}~~}||~|}|z| |~|{z|}||~~}yz|}}}|w|}~|ww}y||}zyz|}}~z}z}}|~}|||{}}}~}||}}|}||}|{{||}~|zz~wy||}~w|}~}}~|~z}}z~|||{y|~}~zyz|}}|wuv{z|~~z}~}}~~||}~~}}~|~y||y~|֦夦ؤ򡭦Ȥ쩯䤡٦쩧橪죧򯩣󦧩ܦ񪧧򤧯񣡧睊ţۤꡩŪ짪筧੧Ť𩤣⡯¤۩夡ޡ룧کϤթ󠡧񦡪誧۩󪦧氪פا˩ƩΧ򩬩ʞƤ𦤧ũ㩬ک覩ƤƦ󯪧੧Ʀʯ 쭦媤ᩪ쭧褩8766977887798868788788988:;:989;9889:89;8688:889:98865679::9788::866887887:98876689:9889:998898988:89:9889987689986487788987789898988::889::8868:9889:7898788696688778877898878 89:98:879:88:8766789::<6887899796567668878:889 8:98:9789889:98:8679:976789986566767889:988986889::988988998:9788988789987678874578899::98788998899887667899::868:889:96569:88:88789866899889887788998766989989:669:98899:877887668:96=6::768978778768;;::866876678878998648:98788988:98899885787768799889:96788;99866866789989988789:9877667766969968878898488668869878876689::8:9899:987789::99886:88::9:76787668876689876678998768::89::89:7889::9989:56868:8::7678767987889:776689989:98998:8998968969:8:976899878::88:886788:986:9889889989:98:99:9:87789::78998:8986688:9887799878998896679::86859979:98778799768::788668::9::877879;;878:679989896886978998879889897899::9768:79:8689968:976786788988656687899887889879:9887898998896898767898876787998:988988689876799869988989:9886788668:98778786789886899889887899889889:88::87868987668988986898768789889889889889889:98898:889987889986679968::8;889889989988989:9889:98898988988987679::987857886:899889:9:986789:8898689988788789:9876;79986;9989::86679::887887699848:988678867887;:978::9::975:<78789:8878667::88:79:9:897989:8879869;8788779::8:9879:7:99::;89987889:7998:8:8:99:66986699:8788778899889::98::98698998:<89::868:997898:9:9::9966:6689989887899:89<<9889889868;789:978;88 987968:98849887;:<=;88;<989::988:8679:99:88998989898899869:86687::99:<9688:98:989:9889:8789988:99:8::8986988678668:7798789989:978:99:87987899889;:988:97:8:88:9;9;9986889866889;77679988;<;::;;8::99868988::;:88::8;9:87:9=8:9:9698;966::89676679:998:;87:;;:89;89:;;::9977:977:9779::889;9796688626688978979;:99:9986898899::9668::889:889:;::8898599898577889878968::96:99898896799767899889868::68:6689878868:88::;:7::989:878:97:988;989989::869:56:6689878768:9::9:;9989:<;86887;9987:79::89:98788688688:87876799;:89;:8::99::9889;:98867:8986869:98787698896:8987876688::89:88:;:9::8979::9988:<8;:7:8898778879889:7;7988766889:9::668:88789978899:;9;6:96:87889::8868:7:688986688::89;<88989676889889:8866798698:86998;9889887667889899789988689789889878:9887:86998:96689667:8867699887879:88688689:98998986:98:8788764688667877:88678688788::8868878998899878896988987688768868897889:8869:88:868998898788:6887988689887886898:;:6678898799889878998789788:99:6887988989787786889:9667889899678898987899889:6788988:9899887877677868868986778868868::9889987886:4788976988::866887867766787688:896786789;:<899889:889:97887898567877886897687678987677678686889;887799<89889868876789987897557986788788788787886767688::8:9886889887887886568899887557887788788988688984689887887:99868876655799899886776788787899887668::977:776688;8898866788974887879767887677887667887788788:88689866788:878998678:;:8765788778867878866567877898896649:857899668778896889::788668878776567868867868987788696749::66869868878:;:86688788679646776686786787:8898896687887688987886787897;868758:989866766788789877:66887588:98:76678:988766897975876898898688668876787899778:77885788998:8766788987768:87865776788798788778876699:98898778876887878778;87876778986886887788766:998:7678976678877876:88787898788688768877988789677897566567789866788798989:7788988688767889878877878788657756779:86678897668:99;79:678798898788768878:889889778658977889:78866898789889;789678688:98987789877|{yw~zz}}zz~}}|ww}}{}|{|}}|}}~}}||}~~|~|w||}|~~||wvw{~~z|}|ww}||{|}|{||{ww}}|~~}||}}~~|}~||}}|~~||~~|zy|~~}yt}{{|}|||{z{{z}}||}~}|}~}~|}}|~}|w}~||~z}~|z}|w~ww|}{z||{zz|}||{|}}|}}~~|}z~}|}}zwwz|~w|}z|~~z~wvw{ww||{z{||}||}||}|~}~z|~}|}~~|}wz~~zwz}~~}|}wvwwz{ww{||}|||}|w}}~~||}~}}~~|~z|}~}||z|~~}|zwz||ztv{|}|{|}}}~~}|zyyz}~~|w}}|}~~~wvy~}||}||z|}wy|}||}|{{|}~~|zww~|~~|~ww~~||~~}zz|}|zyww|~wwzw|{|zz|zw|}ww|zyyz|}|z|~~|wt|~}{|}~||~}}~~}||uz|zzw|{||wz|||ww|ywwz}~~|~~||}|{{}~}zzyyzzyww~~w}}z}||}t||yy}}y|{||zww|~}~}~~~|zz|~~}}|}|w}|~{w{|zww||zww|~}{wwz||zy|}~}|~{|}~~~}~uy|w|}zw{|{wz~|z||~{zww|~}|}~~|~~|}}~~}||}~w}~w~|zw|}z|||}}|wz||~~}|y~||}~}|~~}~~퀁~~}~~~|{z|z|~~}}}ww|}|~}|zz~~}|{|~~}}yyz~|w}v~~z~~|{zz|}}|z~~zw|z||ww|~|zz|z~}z|wz~~}|y||w~{}~~||}}z~}|}~~||~~{z}~~zy|z~|w|~~y}{w{}yz|}~}||wyvyyw}{|~~||}|z||}~~}|}}|}}|{~~}|z}~|~~}||}~w|~}{w{}~}}||zzy{|{~|~|}~||}|yy|}~~|zy{~~|y~~}||}~~}}~~||w{}|ywy|~|zz|{}y{z}~||}|yy|~~}}~||z|~~}|~}||}~~}}|z|y|~}{wy|~}||}~~|y|~}{w|z}~||~}||}~}||~|}~}||~~}||~~}}|~~|z}|~~|yy{~~y}}|}~||~~}~~}||}~|~~||~~}|}~~|~}}~}||}}~~|{y{~~|z}v{||w}~~||~~~|yz|~|}}||~}|y}~~||{|}||{{|}~~~}zy{~~}y~~|~}ywz~}|{|}}{w~~}||t|~||ywy{||yz|}}||z~z|~zv{|z|~}||z|wwz|}z~~|~z~|~|}|}zz~|w~}z|}{{~||}{z~~}~~|z||}~z~~}}}~~ww~|wy~~}{|}{{||~~||~}}w~}~~|}~|w|~~z}~}~~~~wwyw|~~}}|}}|z{}~~}|||~}}~|y}z|~~z}}}|}~~|z~w}~||t~}|}}|{z||}|~|}|yz~~~||~~}~}~}~}}~~|w~|wyw}||}|z~~~w|}}|~}~~||~|z|~~}|}|~~}}~|y~}|wz|ww|{{z{~}{|~~}~~z||{|z|~~||~~|}~z}}|~~~~}w}|~|ww||~z{zwz~~}}||w|~|}}|}~|z~|~~y~|~ww|~yzywz~~~|}z|~}~~~z{z{zz|}||z~wy|}woyw||~z|~z~~~~~|y|~}}~yy}}}||||}|v~~|~}u{z}||~}z|~y|~y~~|}~}}||}~~y{~~~z{zw{}|}||}|w|y|yy|~|z}|y||}z~}|~с|z}~{||}}}|y~vyww}~|z|zw|~~~~}~~ǁ|y|}|{|{{}|z|}w|}w|}|z|zwz~~}~}~~~}}~~烄~}|wz||w|w|{|zw~||~w|~|z|zwy|}}~}}~}}||}}~~{||}z||}{z||z~|}|~{z~||}zwy||~~yw}}||}|}{{zz|~~{|}Հww}z|}||||}y}{y}||~|ww||}~||}~}|~~ywzw|}~}||~}|ywz~}w~||w~~}~|}~||}zwwz|}||~|~~z|~~||yw|~z|~||}~~|z}}}z}y~~|~ywwy|~wwz{{z|}}wwzw~~}}||{|z~||y}|y|~~|~~}~|y~|}z}|zwty|}ww{|{{||yz|w}}|{}|||w||z|~~}|~~}|z||~w~}|~|zw|}zw||y||}~z|}|~}||y~}}}y|~~||}|}~~|z|}w||z~||w|~||}}z||}y|~}yy{||}}~|z~~||~}z}~~|z|~z|}~~w||z~||}~~||~z{|{zz{{|y|}|~~yy{||}}~~|~~yz}|}~~}||}~|{|||wz||~||~}~~||}z{|{zwz{|y||y|~|y{{||}|y||y|~||~~|}{|}|wwtz}}~zy~|}}yy||}|{{||wzzww{|{y}||~yz}w{||~~||~}|}||z||{||vw{|z{||w|{w|zw{|}zw{{wz|y|w||~||z{|~}||~~}w|}{w{}|{|{vu{|wz||{}|{}|z|{|}||}}|yzwzw|||}}w}}~}|z|}|z||wuw||}||}{vuz}|z{|}z||}||w|}|||ty|~||z|}{|w||}}||zwwvvz|}||}|w{zwz|}|zz||}|{{|||{ww|~zzz{ww||||~}|yy{||}zs|}|{{}}{{wz||zw{{||zww{||{{||z|}||w|~}ww{}||z|~~|yz||zwu{||zz|}||w{|z||wwvw{|z{}}||~wyt~|vz|ww}zz}}||~w|}||{||ww||{|zz{wvw{|w||wz|w}}{z||wy~wzt~ww|}ww~|y||z||ww}}{|}|wwz{zwsw{{ww|w{|w{}{||}}||ww|{||zw}||}z||yww{|}|z{}{|w}zv}~}~|wy{wwz||}|{{}|z{ww||}{v|||{ywwy{|}|zww|z{v|zw|~}|~|y||ww||{wz|{|{z|zz||}|v{||}|{yy{|}|{{zw||z|wv{zwz}|z~|z}|z{}}{ww||}zz}}|{{w|}||{{}}|{}{z{{}|{|zwzz|~|y}|y}}{{|}{ww|}zwz}{wwz||zz{||}|{y}||{|}{{|~|z||y|}zw||{z{||{z|wzz|zuwwvw{z||wy{|}}||}{{|||{{||~||}|w||zw{||}|z||{{|{|{|}wuz{vw{{|yy{|}~{ww}{wz|z~||~}z||zw|}|{|||}}||{{}wv|zz||z}|yww||{}}||z|wz|w||~|~|z{}|zzܦ٪ت䧯㧡Ӥʧɩ񧡡槦󩝧礡⧡秤ꪭ򪡩򩤧Ĭʧꧤ򦤩񪧧詪򪧩򩰧񩪧짪ꡯ쪯橦৭䧬槤穰쩪ĩ򬰬離ͣѯǯ簲խǩ駤臘泥ꩧ橧ܣ󧣧æ଩夡马뤡䦩姩󩧦ѣ󩧠ܦ믬ަ쬧橬Ⱖ87:87;8878:;68::9889;87376767:889686688788688588986688789889889:6899899:88587889778476678876636867644688:877887889::988::98898868875787986689876526876588686787898988987::98866788976886887678865788767787867868:8:8767887889:98867889:879877688789668876684667899787898:8766788689987897886978:886898878966886558688788689878 89876697989688;886788687684687788;97887788::98868987689:8:8:6896967867887789:878699:;7947886898<<8997978688:<88<:6:897:88987:786686887899886975689;7988986886898:897889;88986:9:8;::987;88668789887686865688:798898788789898;898897886;9:8;89988766:8976768:886765688:96898899:9:9:89778788;89798868:98878:88766776788:967:97889:;<87877868898;896889::99788988986886688768878:966::6887688:77977879898;8:8988::9899897887::8668878868988788986896989768688:8788;898:9;996899867889788798867886898676878867866:88:8;:9;8689<9:8:8;9989::8788687:;88587899886896686896686::9889::898996988::99:6::88:96975::6:766788969:99868899:9988;9889:98:8998897:889988:6998877:86986::6:87898896987766988766889;9889988989988986898896:959879989889988687688:9989::986889768898868988:967:96997998988669:98:9::8789::867878988689886789889:889::7998988988769;:9:867986678899879878988678998::89::99;989789:98899889767798766789988::9887998988:99878:98:78:989:99;87:889989::86866788:889::969<;868:8:98988::9878:96:67;968:79<87:99889:9689889868;:9867887:;:8868876678:8788:89:9679:986978969688767668878879:9889:;97887898:98878998:99:89789986678998 878998899:9:86:86988798<:9:9::8898689987898:9:9884;96:686689989<:998898899:98899867889:988998767899886;97:6879:8788:8:9889::87678899:988998898896:98:7879:87887<;89:9:8:98899::88987667889898699:877889:8::9:799898987667868988:67886799:<9987887788969:8969::9877;:989987667889:9879;876778828:989:8899:9:989889:99:988:9878989:87668868:9878:9887769::88989:7988::8:8868:878766876688689987887787678::9:;7889688:9898988988;99:;88768898 8699788989989::89::898899:;88988688688789979::88::88:98879::88986;:9:988998898879988998846768;;969978;;9988:8898::98::;:9:98898987788679979::88698876988989:9::;:679988789::89:98668867:;8898898765879:89:8768::88:889::8776887876866788:;966897798987:9786899768:;:8898798899889979986879887667889:88::99::898668898679::9988998899688998:667998989:9889::9::8:98998668:98867899889889898898:88768::889897889:9:98668998988689987997:9:98968:988689::8898876889 8787887899899:98966988989::988778878898987898878988768898:88:88;::96686:98876:879:88:769988:978998898766767899::88966989989978:998778988:769:88:98::778688986897669:9:;989668868988998;9876679;:7667:8<;9:8868:8699;8;::88:8676476788987787869989986887::9:99;988786887676678878976887987678988:8:87887688989897687787876678:7668976779868769889:986<9;97887788789::899:989899898668679977889878768789:98897:98:988789;:8979:9:8::9878:8787588987889876677898789<869878877899:98684698988689868867898678988::6686887679;:7986889:99878:89:9:;889:788647:869:756886:;5696887:7987:;;::987886:8868::9:;6787589668868:8898667:9878986788:968998679::9866788::98875857:86898899889:778787898679798699:9:8989898:668658:78899887678778776678878979869;788988:9866;:99:989:778668:66788769876776688656898897987:;899::9:8767;:9:9889:7897688667889876776887668898:98::99:9:988789889988::7897788689767887678876::8::8::88767886889:988978:7676798988678868877887468876;:89979::9889::89879:;:9866866786988667998776566788<;798699886788<:7668767:;:997656885|z{|{}}||z|w|~||}|{rzwzwz|}w}wy}}|z||}w||v||}~|ww||{||||}}~~y|~~}~~||v|{|}}z{|szyyz||zwwry|w{wttw|}|}}{{||{|}|}~~}|~||}}w}|}{zzv{}z|ywy}~|zwupw}{yv}||}|wwy|w{}z||~}|}~~|z~}|ywz||}|}}{w||w||zyz|}}|ywv{}|{yzz|z|w{|w||}zyz||z|}~~}|wz||}|||{|{{y||z|~yw||{ww|twwz|~~{|z}}}zwwz|}y|~~|{z||z|}wz|}}w|~}|z|~ww}|wvv}y||z||y|}z|}||}}|}|~~|zyy{|w|}|||}wwyz|}}|}yw}}|{w}ty|zz|}}z||z{|}~}}y|~}zy|~||w|ww{|w{||zz|~}z|w~{~tz}|y|~}|~~{{|w|}||y}~z}}~}|zz|ww}w||z|~~||w~{vy|~z~}|~|w}|}w|~|}{}|||~|w~}~|z||ww|z}~||}}zy|w|yuw||z~}|~|z||}{}}|}||{||w~}}~~}|zww}{w{w|}||wyw{wvw||}|~y|~}|~|{{}z||}|}~z~||}}|yww|}||z|||zwwz{{ww{||}~wz~z}|}}~|z}{z|w||~}}~y}}~~~{}}}|}}~|y||yy|}{y||{}~wyy}|}{y||{z{z|{|~|}|~|}~}~~|{||{|yy||z|}}y|~||{|}~|y}~y~|{w|w}}||z|||~|~~~w|~~|yz||z|}{||yz}}||}|w||w{w|z}}yz}yyw}|}|w|~|}~~|~}z||w}{||u|z|~~||w|yww|w}~yw|y~}|~|}~|~~y~|}~~w||}}~w{vwzwwz||~w~~~|w||~~~~||~||~~||~~||~z}}~~|}w~~}}zz}w~|wy|z|~}}~y~}zzww~}|zyy|}~~||~~}|~|~~||~}|y|~||~w~v~}z}~}}~~}||w|zy||~~}~~|y|}|}~~zy|}~}||ww|~||}~yz~w~~{~~|}~}|yyw~~~|~}|z|~|wz}z}~}|y|~||ywz}~}}~}}~{~|~|}}~}||zy~~|wz~|ywwz|}~~}||zz~~}|z|~||yz}~~}}~~~|~{}~~}}~~|}~zwzz~|zyyz|~~|}~||z~~|~||~~|z|~|z}~|~~}{}}~~}~|y|wwz|}}}~~w~|w||~|~}|~}z}~ywz~w|{|{~~||~~w}~}|~}y|~|yz|}||}}|z||y}}|zwwz|}z}|||wz|w~z|~y~y|}}|zyzwy||z||}}|z~~|}}|}}~~z|}z}~|}||{|~|~~|z|~~|yyz|~~| |z|~~}}~~~~}w}y~|}|z{|}~~|}}~~|y}~~}||z|~|~~||}||t~yw}ww||~~}}~||~~~|}~~}||yz||}~~||~~|zyz|~~}}w~zw|{}{|||}|~|}~|}zyz|}~~~||~~}}||}~}}~w~|z|z|z|}{}~~}~}|~~||}~~}|zyyz||~|}~~|y~~}z{||}|~{~~}~|}~~|zyyz|w|~}|}wz||}|yz~~~|{}}{{}}~y~}~w~~|zz~}~~|zyyz||~~|z~|zwz{||p|~|~}|~~~~~|~}|~~~~||~|{}~}~|zyy||y}~|z}}|{{zwwy~||~}z~||}||y|}{|{yy|zyy|}}|w|~~|z|}zz{|}|{yz|~{||~y||}~}~}~}||~}|~~||}|zy|}~||}|w~~{||}~}~~|~}~|~}|~~}}|}~}|y|}}|}w||{|z~||||}~}||z~|}~}w~~||~~}}~}|z~~}}~~}|swzw|y~~z|~~}||}}||}}|~}~|~~||~}~|z{}|w{{~||y}||{w~|}~|~~wwz||z|~||}~~|ww||wz}||~}||~}|{{wv}z~}~}zy}}}|||zzw||z}zw|wyz||}~ww}~zz~|~|z~{|w|~~zy}||}~|z~||~~||~~z~~}w}z~}|}zwyz|}}||}~}|~~}|~}wy||}~~}|yz~~~||~~||~~y}}~~|wywz~~}~|~~||~~|}||~|~|wy}~|}|yz}~~||~}||}}|~|~}}~|}||}|zy}}|}~~|}~~{||}~~|wy}~~|~||y|~~|z~~z~~}~w|~}||w|~}||~||zy|}}|~~}|}z|}||z}}z|~~|~~~}~wy~||}|}~|~~||zz}|z|}}|~~|}~}z|~}|z|~||zy||~|||||~yy|y~}||zy|z~}}{y~~|}z|~~}||}~~}|zywzyz}~~||~yy~}~~|~~z|~~|zz|~}|zy~|||zz|y||~}|ywy|}}~~zwy~~~}~ww}|}w|||}|{ww{{ww{}}||}|ww||}w~~|}||}|wzwszw{||}||z{zz||{|}}w|}w||}|z~~~~}||zz||}w||}{w{wwz|}|{{|{w||z|{wz|}||}z||{w||}||~}~zw}zz|}{|{ww{|zww}{w{{|w|{w|||w{}|{{||z||~~~|~|~~}|||ww|}|w{{z||}{|zw|{|}||z|}|}|{||~z~~}~}||z}}{|zv||}|{|}}}zwwz{||{|}w}{}|{{}|w|ty~}~|}}w||w|}wz}|wz|}|ww|w||zwz{|w||}z||~~}}|}~~{||ws{|w{vw|}}wvww||{zz{z|{|{|}|w}||w}~~w{}zu|wy||y}|||ww{|{|}wz}}~w}~~}|yz~~|ywz|}||}{u|vz|w|~|}~~}|~{z{||z{||{||w{~{}w~~~|}~~}||}||yy}wv}z|}~~}||zw{|{{|{{wwz}}{|{|wz|}~}||}~|yy~~~}~zz|ww}wwz||zy|zwzzww||wuw|}}{}z}~~~|zy{~~||~z|~zy||ywwz|||zwz{zw||{ww|}|~~|~|~~~~}|{|~||~~|}z|~zz||}|ww|}~~z{{wz||{w{}|}}{w||}|zyz|}}y|}~~||}}~~{}zyzwz~|~}|yz|}}w||{{||{sw||{w|~~z~~||~}||~|{~~|yw}wwyw{}y~}|ywwyz|z{{wuww{||{~}y~||yz|}||zwy|{w{~~zwvy||vӤ驪ޤ馡򧡦椧𧪣񤩬򦤧󤧧里󲬤逸סΧ硰ţ۩즩¦ꯪڪ㯪룡󩧧䩭񪧤ߤ頻ס骯ԣ⪯ 橡蝰ꧤ򤧩۩理ک󪯪ӗ룩򧯩񦧩媬視ڪ򧤦覡餧ܩة֧룧ة𧪪褣ǩ㤡ꦬ멧ک禧⬭ͧҩ硧⧩禭𭪪묧ҩ򧬧𧯣㤡詭ߤ魧笧䩭𦡰駦ধ68988996887:;8'!(7:8,&&68878784$!*799,%&8987687799878871#$.:9:-%&:88::8778779987897."&4;9=-%&9889:877877898895)!'596>-&(8778778;4(#*797;+&)8767768877898<5'%-998(&+9;:8789858866898;3%%,884&&+78768:9678855788*"$686>3%&789:866776678:8(#'785;3%%7878998686678:6&#,88692$%7:8799868976885684#$199672##6:8788668:76886680!%489882##6:88786588669+!(67:994$#58988686578668&!*87:796%#468:9898687677665#"-989796%#3:868894667857:,&%497:795%%3;84678:67689787*#&4979675%$1986766:89879:83&#(6869885%"0688:6698:878::0$%-87589:5#!/8:86869:86::."&1:76994#!/;9688:68:9698+#&2:868675#!/:9688:68998;5&%*5:6686$!.68:;86:889:<1"&.896567;7%!.8788:;878::=-$)0699878::&#/;9987886:89::+$%37::7676#".967988:7::6($%578899895#!,75699:8:;2#",88658::<7&!(968::99:;2!!2<:7578899&!':89::998<:8:1"#5;;8688676%!)879:9::8<:79-#'778867795$"+898:968898(#,:898667:6%",9:9887::3%$2768995"$*:99:9988<:0"%38878996#$(:89::988=9+!'6::8668::96$%&:9:7;6' +8;:8678997&&9::8:;7:3$".8:9889988:8'&%8::89;99/"&179989:978:8'&$899:99;6*"*67::88::88:8&%$9878:;:8:2& ,89=<869:9897%##9:;:8::90&$2<8;99:868:7'&$89:889::;."$4=89889::88:;*'$9889:;*!'6;7:889:99:7&#!:8788:7(!-886::8788::;:)'$:87899:;2%#2:76:;:88:*'&:868:;;<.#$5<989::9::87'&$:977:<;9)#'7;8:89::;:8<+(&;:889;97%$+996<;::9:;:9'%"7:6896:5$'.6:88:89::;<;)&!8:69:891")4;=<:;8::<:('#97::7*)788:779::;*'"78899:3&!.<76:789::9:=*&!68:9891&$3>86:99:9;)&"89<99.&$4:6688699=*&!9;897(#(78897978998?+% 896:6# ,:6795978898=+&#68>:;.#$095;956569896:99+# 9<97)!$6;7<:66779896:9::-%!:9883$"(::6996886:799;;-&!8691#&.:8558=67886:8:8::-&!676:/$)29:867>88776;9:8:9+& 89+%+46:;84969786:8:889+&8:5%%-55878564989686:889+&8791!&.6873996<9:674987:,&w|||w|}}|{zz|WIX{|aTUw||{z{|}|{z{}}sQI]z~~bST}|||zw|z{|z||{mNOgcRT߁}}}z{}zz|{|zfLUs~eSU|||z{}zz|||~u[JVv~wcTX|zz{|zz{|}|tXM]z~z_U\|zw{{w||zz}|vVSc~~|XU_|z|}v|}ww}|rRSb||}tTT`z|zy}~yz}|vuz||}^KQy|wrRT{|~}yy{zww{}|YMW{|vqRSz}|z}~~|y|wwyzz}yTNa|}w~pORz߀|z~~|y|zw||vw}tMOl~~y{pNNw߁|z||yy|zw||ww}kJSs|}}pNMw}||z|}wv||wy~`IXwz~~sOMu|}~||y|wvz|wy|UJ^|z{~wRMtw}~}~|w}zwzzwwvNLc|{~yRMr}w|}|~tww{}u{aTRs{{uSSq}twz|y{w|z|z]NTt~zw{uSQm~|wzwy}|{}rUNYw|w~||uRLkw|}yw~|}{}kORe}zv}uNJi|}||w}w~|ygLUl{w~~tNJi~w||w|~w}_MTp|y|yzuNJh~w||y|~|uTR]vyywy|wOJgw}}y}}|~mLTf}~wvw{{SIf|{}||}z}cQ\kw~~}{|TNh~~}z||w|~`ORr{{w{wMLg~y{~||}|{wYORv{}}~|~uMJb{uw~~|遄pNLa}}wv}zTJYy|~~~pJJo{v{||~~UJV߁|~~||mKMu|w||w{wSJ\}{~~|{cNW{{}|wzz~uOL_|~|w}|}XNb|~|wwzwSLb~~}}zqROpzw|~~vLQ]~~~~|}kLSr|}|z|~~wMQY}~~}|~_IWw|wy}~wQRU~~{yVH_}|wz}~~zUTT~}}{rQKg|~||~~|}|WTS|}|~iLTmz~|~~z|}WTQ}~~~~w^K]wz|||||TRQ~|z}|oUHb}~|w~~|~{SNN~}~jTOp}~~|w|{WTO|~}|~fLOs|~||~||^WQ~||~^IWy{||~~~{TNJ}z||}zXJe||w}z|}[VO|z|~~pSNo{w||}]WT|w|fMQu~|~~}{VTO߀~{{\NVz|}~}_XT߃}|~zSO_~~w~~~WRLzw}~wvQVgy}||~[UI|w}lL[s}YWM~{{^A[z}}z{~􀁁]WL{||rTJg{w{|~~~^UJy|}~lTQr|w~~~~\UL|~~~fTQsww||y~~^TI~|zYNXz||~{~{}~~}`RH|wwMHbw{~v~z}}~}_UMy}gMOk~u~vyuw~}~w~~_NG~~{\JQw{yy{z~|~y~cRI߀}|rQLYy~~w}|}yz~~eTJ|w~mMTf|uv|y{||w}}cUJyzyhO\p}w{|}zzw~|`TH|~_R_sw|twz|y}|}~_TD}vSScuu|{|uys~|~y}y||_TB|{mJTfy}{r~y~yzt~|zaTA衧vbwqs禤mb}pq੧jknq௩gsps򬧧zdtqw藺wh}s|衧tpwsରnpqqधemnq䪭yhvnp੧qjkn୧hkjj௧dpjh駩bwkh!飧sdnh!⡩jgnh!௩qnpp఩}jqpm㪧sjyng 㡧knjd ৩gsjd魡hqjd毣qn}kdࡩgqpb০m|qjᰪknhg ᪣yknhd 믲jgqdy ᬣddsdt ߯ehpd|멦jvkg𧭬wjpgnkgm}ﭪgphmy௭bvmns򦲣tasqq ᪭mevqp ᧭gqvqm 孪e}qnmધsapjj絛qk򭧡vqkߧgkvmbv򪭪qjd婯wdztk鯧pj}vqﭧhm򪭯tqk߭|jtwqⰯpkvngmtzsbgzyvhXz}vgߦqdsd룧qm|sg離qmqbyjwna񬡭hashᣩhkj_ ᪬|dmnb ߭mgyqd䡪hqsd!⣤k|qa!䪬nq\!䭠ppqY!ߧdqqX################################################################?(6;9<:946;979879:877978:76678898878866899m#)5;889;7698998899877889779667789:98899 &3<::<:776899877876867988789989::8&3<::889;<::9::976787686798988788998:9778*3:8:868;<;99::86679989886788987899789!*1::;:778869::8778998:9886898898989989;!'3;<8:8878;99::878998798898;9889:989::$*6<99=:99:=98::87898:8988;:98788998::8788!'/:99:;:9898788;77688967:88:76;9789:98 &/98::89;;887:788:988;9;99:8:9889"'0::9:;<898;898;:9887=89987:77887789&'0::99:;;:9::799<998;:887:89:996877887789&&/89989::9:8688<99898878;99;99887"$0:;;9899:;8687:8::8878:66:9989886'$/:?<:99::;9797979:7899877886867978788/&-8?<::;<;::88;9;6889::877897:;;:7857997689.'.9<;:<:9;:<;<;989986:78:8:8:68968:6:88962&*9>=;=::;9;9::8868;87879979;89;7;886866%):>=<<;:;::89989878;8687997579789668:;6%+=><;;<<;:9969989899878988967886894%,=<;;<=<;9:9889:6997898:9899778779:986795$*:<<=;<<::8:8776689::96698:87768998:6%*:<<=:;:8:8:887668:9846:89899898:9886686',:<;=9:87;:;:998668868<895688688688796&*<><;;:86;886:647:8788468:9886996898966&(9<<;::99:9;88:978::9988668::86897998856&(9:99::96::788:789988698679986897997766'*:=899::9689987689789886887678896776986&):>;;:986868::6699;:88::6688767786776996&(9;;:987:69:;78:89:968::7668976576898986&(9;99::9688:899876796886899866769:9978(*:<;;:986848896<:877::699877886899:8:&)6=8::;969889889::98778::6::79857899;:89%(6=9:;:;;:8898;:987889869:8::6689$'6=:;::9889:9887::9889::7898:988689%(6=;;:878868998789::8998898:&)6=;:98788689987789667889:99668:&)6=::9:9887678988998688989:8876788:9%(6=::;98766788:998698:88:669878899%'6=:;;::9668988686968:88668655=%&6<:;<::67898649886764:9688:>%'5<;<<:9::9988778898:86789876478688?%'5<<:9:98;9766788:998766<9668:98667896B$'5=::986787886::988766986688689688697H"&5=::9865798859986869788699L"&5<;::;::8868:89:7889579:86647668:R#&3:<::;:98::78978:788678876676676:X$&2:<::9:<:7896785877667866766:9968948N!(6><::9679;889866565677897688789964668Q"(5=::98:789889886786786887878548878U#(3:9;;99:86977989:986886676788778867569988]#(39::9:869778788668678767889:988669977`")3:;99::988988788668977866889::988669978c!)3;;99::8898898::77898786899898768669989j!(3;99::98877898::78789887899886577868o"(3;7:;:9:97668895867889;96886588656y#&1::6:8;:7:78688787688789::8998:8y#'2;::87::887;8866988788:78898y"'1;;:99::88986868689886898898678788698y!(0;<;::8:9575878877698:84788789{ (,8<::9878797966766769:88:9688988:| ((2::9898969778778769:889:89898898: (%.88:;99:88;9968878789:988:;:8988:89!'"*56:<:9987;;<897667689:988:>:8978:68AXy~~tw~z~|z~}zz{|{wwz|}||{}}ww|N\v}|~zw~|~~||~|z{}|z{wwzz{|}}|}HTqzzw|~~|zz}{w|wz|}||z{|}||>Tq||~~zwz}zw|w{|}|{|}|}{z|D^r}|w|~}ww{~|||wz}||}|{|{|ݻI]mzz||}w~}zz}~|||w|}|}}}}IVq|}|z|~~}{|~~}z}}|}||}}Q]w~~~~}}{}~}|}|||{|}||{}}|JWh~~~|~}z}|{{w}||yz||zw{||ػHTh~}}~|}{{}|}||}}|}||}~LVk~}|||}}|{}~}zz{||z{|TWk~~~{|}}|z|~~y}z{||{{|~TTh}~}~~|w|||}||{z}}~~}||{LOk~|~~}w|z|||{|}yy}||}|yVQh~~{{z{||{{||y}y{~{}{|}}||hTc|}|w|||{{|~zz}v{{w|fVf~}~~|wz|}|w|~y}y||}|}ypT^~}|}|y||z|z~~z~}{}||wy|ywS\|~~}~|{|}y|z~~zuz~z|~wywwyw|wS_~~w~~|~}~~}z}|}~y{||wy}tRa~~}}w~~z}~}~|~~zz|z{~~|y{~vO]|}{{yy|~~wy~||{{zwwyw}~~||wR]|}}||{ww|~}ty|~|~~}~||}yw|wVa~}z~}yw|}||w}|~vy|}}||}w}|y||{wU]߀}y||wwtz|z||tw|}|y~~y|~}~ywTY~~~|}|~z}~~||yy||w|~{~||vwTY~݀yz}|}z|~~}|w|y{~|w|~{~~z{wyV]}~~w|~~|zy|~z}~||y||{y{|}~yzzw~|wU\~|y|y}wy~~郁||wy||{y{{z}wzzy~wTY~|{y~z|}~~w|{wwy}~{wvzw}~}|yUY~y}||~~|}zwz~y}|y|~~|wwzw~~z|X^|w|t}|~y}zzw~~|{{||}w|~~|T[w}~y~}||}~}|~~|zz|yz~|v{}~}~RXw~|}}~|焃~|z||~}w~|wyyww|}|~OWw~||}~~}|z~}||}~z}~|~||w|}}~RXw|z||w|~~}||z|}~}~~}}||}~}T[w~|z}|y}~~|zz|~wwz||}}||}~~~wwy||T[w~~~}||zyz|~}}~~|y||~}~||{y{||}SXw񀁄~|zyyz||}~~|y~}||yw~|{||~RWw~yywwy|}||~||y|y~y|||ww|wuvRTww{}|ws~}}||}}wy{{ywwt~w||RVv~~}|{{||~}|||y{|~|{wsz|w|}|RVvف~~}{ww{}}~~|zyyw~ww}|ywwzz|~yQVv~|w{|{||w~||zyy|ww||y|~w}|y~zLTv~}wv{}}|v~~}||wy||yww~z}|w~~LTu}||w||z}}||}~v{}ywwszyyww|MTq~}z}z|z||w{|}|{ywwyzwwzwOTo~z|wz|u|zzyyz|ywwy{yw~~w|~t}ݖJXy~y{|||ywvwuw{{}{y||z|~~wtww|LXv~}||{|}}}|wz|wz|w|}}zz|}|z|vt||z}ҚMYq~~}wz{|~|w||ww{wz||zz}}|yzvw~~||MYq~~}w{{|z||yww||wz|zwz||~~||ww~~zzL[q~~||||z||ww|{{|ww|}|~~|}ww~~z|J[r~~}|}|}|{{z}|{|w|~~}~}zw|yy~~|~JYq~||{{}}{}{|||}z|~~}|}|wv{{}|w|LYq{~{ww|}|~v}wz||w||wv|}}yuwMUlyw}}{z|w}}|{{||{w||z|~|~~||MVo|z||}}{|}ww}||}}||z||}z}}|~|KWm~~||}w|w|w|}||}}||w}~||~|wz}z||y~|IYj}|vzv|z||zz{zww~~||}tz||z}~HXb|~~}{|zzwwzwwz{zww~||~w||~||}HXYp~~||wzz|{z{||{y~}|~}~|~||~}HXRf||~~|}w}||{zz|{|~~|}|~|||~IWK^vw~~|z|zwwzw|~~|||~z|y|Xw񤧩j|aqSq\b}btm}dvaqgtqvqqgktmq謯tqp|pn嬯k}n}ts}߭qy୪qyݭt}񭪡󦣦s|鰯qyܪsy觩wҭqznw粰ڪkvnwqzqzpw񭯲򧣪nvnqntﯧntٯmtgqgqhqkq𭪯泥dwgwܩhyhygz駬dz󩪩dygyhshtevbyaw𤦤awy󧬧awnbve-X+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**********d*O*%*%*%*%*** *+57877887499769768989:9778767669989:96687669:9766878:9866:;;6887887586898:8::8789878668878988988976689988989988:9878988758::89:98876688689889:8667889:;::8778989::998689988;868:887887639;7789:88989:7789868989:98898;9978;:889:3:;8789:988998896899876688:8998898:9887:;998877879878:9989878689::986899:88989787:88:8987899766897699899878987889:86::8:988976788987:88;879889988:898878;97688768::87889:889:9899:8:;9846:86798::99868879978;:8667889:987789969::9:969:76997889::8:;998:=;99688987889679989:889 897997688788:8::86689::;:8:98865688986688669::98976789886887878;:89:898766886688767889866889767878898778998688:788778:89:7::86699889878998778::988787899878:989:878<7688778788::899648879;::99::7667988:89:;:99689988:99::879;767878869899899668868867668977876886878:;::8668899889::98898668896:88:966866766987996656886766998678898;:867:9686688996:8:;558876899896887667789899<86;889::98788989768989689558787789886878566865865668867889::987799785786686877898788766878876687697568898898898668986:7898868778977687889:868867898898778986:886768997786678878879878897667655667889977887798689977889867997886886676686678897788766789:86678668::8898767898878767:968868968 876676868:;8679:568::8896655678867768:96686784899887655667889657986679869668;96987887868:867868866886688766:8898669979878787:88:699;96968878768868989986689887669877886997887886998:6::9:88:698878899789869;966587787668868947866876998:6997889;69889:98868:86677886566867988766847866787688:6886889:69889868966779865566766876797886769:867898868879688687694998899679656686556876687667874687998987:667:868699877898788668776899755876765678863476::9:87:8467;96998667988657:876677644378668856678877687886797688:96:668976826646::9889898664688679867988698878867889978668988796678:98876678864668748989867677887468988686679988996689:8876676788676686886868778766787788669866887876689988766986686867878696687667866898668688656986678788677664876766876446866899:98:988686 687687667887886776866799646:9:98668648988:9688995698766788668686686868879866886469689768998669:86883668:569865669887668846996798:8686864798668867874857867756989577856676488984466:88686578667539876788989878788788669885778677668766886766787:884864457887766778876678667875544665669785768678878866776786766464866886678998678786467686967676867877876876699768688:8:8788654899889:6788:786478796867675846766786868:89987887567766787667789776466868566759367766898668:66866468877987788786678:8868986846774947987768788669988:68876688:9988:86889866756866836774968:988689:96677:689:9877658;;975678866776678778788687898778699668:8876598877857886778:78;97677678997887667664786688776788768897889788:88;878776779878868867887667876688788:8898998989:87986678767786776:989866887687667896688:689::689866887676687886878;:866876676588987667896588:6889968878697787789:8868976676688998976889968897:87789987;878877846866976689:8876776887978778788686688;77889987;878988:68866886889::86::88776688776654856677688786689<79977997:988978687887898688766766889656898668876787579:8899887767986678:99864:86688767678877876688789:8776469977886766798668997886:86688687788778878589988688667876678878789756889866897787886689889:98778767886678876787886388987667789987886678868866887:98879988967876678678988:86677668986887788976799:9889787876676657986688:868::977876689889;98987789766788799876469:868877898898689889988;778:878:v{|{z||{s{w{w|~}~~{z|{wzww~}~~yy|zww~~zwwy||z|~|wyw|}|{||{v|w|}}|{}}{|ww|}{|~|}~}||~zww|~~|}|}}|~|~~}}~|{}||zv|}||{ww}|w|}|}||}}|~|wwz|}~}zz|~|~~~|w}}|||w}}||{||{wr{z|}||~~}~zz|}~~}|yy|~}~~||}|{z}}||r|{}~||~~}|~w|~~}|zwy||}}~~}||~||}||}}|||{}|{{|z}z}~||~~|z|y|~~|w}~~ƀ||}~~}}~{z|}||}{{}|||{|zww}{w}~|z}~|z||}}|~}w}||}||~}}zw{|||{|||{||}}|}||{|~zw||}zy||z||}~}|~~}~~ԁ}~|ty|wz~}~|w||z~~z|}ywz||~~|zz|~~w~~~y{w~~{|}~}~~|~~w}}|~|{}||~~wz~~|~}||~~||}|}~z~{w}}{||}}}ww|~}~}|wvw}|~}ww||ww~~~|}~zwz}~}}|}|y||{|z}}~|~}zww||yy|}}|{y{}}~|ww|}~zwz|z|}}~~}zz|~~|y|}|}{||{{|}}~z}wy~~||~|{|~~|zz|~||z|z}~~|z}~}~}z}{y||{{|{}||~~yt||z~~~{yywz~}||}}~~~y|~~||}~~}z~{w{|{||y~|~~|~~ww||y||wzyw}~{{}{y}|y|z||yw|}~~||}~~||}~~|wy||}~w||~ww|ywzyy~|z~~wwyvw}|wzyy~~|yz||}~|鄁|wz~y|wy}|~~w|vu}}zy}~~}~y||{wy{{zz{|||w}||~|{||}~~}|~~{y|~}~w|~vu|{|zz}~}|}||y|}z{{||vww|wv}wuwy||yz|}~~|z{~~z}vz}ww|w|zz}~|{||{ywy|}{||}|{ww|{y~{vw||}~}}~}}||}yy}}wz|~||}w|zz}~{z{yywwy||}|z}}|~}y|}|yw{}~}}|~|zz|~|y}}|wzw|~~{z|yy{||{}}|z{}z}||}~{ywy{wvuwyww{|}~{{||{zz{~~}|wyyww|~~{{}||~}||}|wzz}||y|}wwy{ywwy|wwy{|}~zz|}{wy{|~|ww{|ww|}|~|{y{|~}}z|{w{w||}y}~w|}}|{yy{y|ywy|}y{vw|}}ywvvw{||w{{w|ww|w{|t|~~}|{wvuyywwy{||~wv{~|wwyzz~|y~wwy|~w~}{|}|{zz{|w||w{|y||wy||wy||{yy}||~~|ww~~z~}z|z|z}|y~~~y~y||{|{y}}y|||wy}~}||{ww~|zz|}||w~~z||z||y~~}y~}|w~}|{|}~~{|~|w~~wwywu}{{|{ww|}|ywy|}~sz|wwy|zw~~}w~~z||~w~}||}~||}|w|}yy{{||wvyww||w{||zyww|}tz}ywwz|zw||݀w||w||~w~}||~~}w|~yw{{|wvvwy{ww|{w{z||wzy~}yz}~}|w}|z~w||y|zy~t~~|}~~w{~yvwy|wuvvuuvwy|{ywwyy|}|zwwz}ztw|z~~|~|zyyz|w}y~~|{z{}~}{||ww|{{y|{vuv|}{w{yvwz||ywwywrtzw~|z|twz~w~~|yww{~}|}yu{|{ww{{wttq{}yw}|vwyz||zzy|z}|wz~zw||}~yyw|~zw|pywwtw}||}~~}~|ywwtsw||wz~}wz~|}|y~}|z|}|wwyyz||~~z}ww|~}|}{~wwz|~||{yywyz||wtww|zt|~|~|wzwzz|}ztw|~||}}|ww|ywz~~}|~wy}~||{wwzyz||ywwzww|w}}y|w|zz|zwwz}zz}|ww~|yy|}|z|{wy|~~||}|{ww~|ywwy||y|wywz|z|w~ywy|zyywwz|ww|~|wwy}}||y||}wwvw~|wwyzz}|z|}}|}wzzwyt|zyzywy||zzwttw|ww|~~|~}|w|wwywwy||zy|zyyz||z|}wzzw|wwz~~wsw~~|ww|wt|~}}w}}~~vy~|{yy{||wwy|}}|wy|yww||ww|y||z~|wy|}ytw~w|~zy}~~}ww~|y||qww}vw|wvww~}||zyy||tw~~wz~}}w|w|wtz~}yw||yz|zt|vz}wz{uy~}~u{z|vwwzwt||~|ttww||w}yuz|wwzvq}{w{||~|~}z|z||{||yy~|}u{z|wz{yy|{ww||yzwwz}z||t|wssvz||zzyy{{||zwwz|yyz|zvvtswwvwy~{}v{w|y{||}|z||ywzzwz|wzwwswt|ww||ww{|~}||wwywwz|z|wty{y}w~y{w{w}wz|zz|{w|zwy~~zw}y|}||||{||wus}~~}||yz||}{|wt{|zw}wzw{v}tw{ywywwzz||y|y||~~|z||}{vy{{ww{|zyyzz|~{zwtwyy|w}uyy{u~qw{zwwy|~}ww}ww}wywtw|}{{}z{||{zz|wwywz|||y}~}w|swz{s~tz~|zz{w|z}}wy~~||w||}{ww||~|||w|}|}~}wyzvy|ww|qwz{s~w}~}}||}ww}~~wwzzw|~|{{wv|{vwz||ww{{ww{|{{|z||w|z|~}zz}w~~ww}||{wv}|{zz{||v{|}|w{z}z|~zwzzw{|~{||{wwzywwytz|ww||zzyz||{y||}z}}{}|||}}z|{zwz{{z~~}{||y||}|wwz||zwwz}zyy||}}{||}||||~|~}~|z|ww{|{w{{zz|}}yzzw~}~|ww||z{y|zww{|ww||y|~y||ww||{w{yww||}}z||yww|z}|ww|zyywzyv|}}|{ww{|wv||}w|}~~y}}|z{}}|w{zz|zz{|~}||w|~zywwzyy|}}||}|zw}|~w||}~z|{{||z}{||zz}ty|wwyw~zwwy|~}|zyz{zy||}}||{zz|{{}z}}y|yy}|z{|}|{}{|~}}w||yw||y|}~|w}|{zyw||{zwwus}vwwz{w||z}ww}~z{{z}||}~{z||ww|z||z|~|w||zywzww|}||wvw}|ww||{w{}{u{|||}{{zyyz{|ww{}~~|yt|wy|}zw{wz||{{|{ww|}|{{||{zwsw{z|}|yyzwyyz|ww}z}}||y|yy||y|zz||zz||{z{|}|v|||w||wwz|{yy{||{|{|{uw||}|}~|yw|~{zz{z{|{||ww||||{zz{||zw{||yy{||zw{|{||wq}}~}zwyzz}~~|z|}wwz||w||ww||{||}}|{}||yz{|zywwz{z}||yz}~||}}ywzzww|}w||{{||{w{||}z|{|zyyzwwv{|ww||}|y|~zz|{ww|}||}|||}{z|{ww{||{~~}}|}{{wsw|y||zz|~}||}}~~|}|ww|}|}}|}{{}}{|٦ĤѦ묯ҩƭ󩧧㬧ԯ⡪񡩩֤񩯯˧୪鲯ꧬ橧ꧤ઩멧򦧧󩪦릧逸ʣݣ筩念𪧤ᣪ飡£ݭ⤣㡦񤩤פ룡Ч੭᝛뤩է맡𪧣𤧡󧪪ޣ夣飤檧穧ä㩭駪񩡣㣩㦡藍謦⩧正ç٩Ҥѣত椡ꡧ磤묰ԡ6889::889::98678898689:99:9696889:686889867889:8798788988::988998769:97899688986:7889:686889878677986689988::9:98879:8689:688988:899898898778788:9788988:89889878998699:99::998898967876678786677878998898898778868988:9899876788:9889678766897677686889898769:866787867:96886798:989887876678:98986868989::97788998879:8679:7866;:68686678:7:889976788766766577665668:99::8778898899868:;:8867=;8:684688:698899668678766865669688668866899:96:99:9767::9889::986689:8665:88:844876677658:978::8579889989889:9789889:98868667886878:866865566549:9679;96898779779989::9668998788766566898788776778689877668778998:989:98668986686678876788788656678866877899868877887:9886488996336567887688766885667887669879:9768987798778876966776677886577646867767887698898668::867889876788965578669668766468556656788678865698:;8789::986689:778962488766886564686448678876636897798877668986897688799=<8986676646996688976876797664468876652788766898689768878798688668997679886467864468876898668847787787678766789877969:8668998766799646899887656656898876799866876697897766897677688689867886653367678876765646765664686886687866466986687689975468479965697667656768647686799866988689749866889866898568865688755664686987869778:976886689:988788956524995765678758855664664899746866887676447876867866799667889667876683653686696964963975796386778769:866788767754579779:9:965675454366458766<67886788779867767877:877898668876788988:;86885365263256536945667868878766877988776988:98788988:<;57866565456554644885676567886877878766787668987889;::;;:55676765677689667667886678774689876676689889;;:;;:7667665665466364498676658:988687768988988;<:8:;::887865545635646448636566897887867866779987789:8::88::8:;88;<:967655863856976886978669567853797867855788968988;;87988=>:8688668856685758869966986;9668998775886996778769:9789::9::;::577668867675757786987668868868778779;97989:988::;:56678865766767887688689887997658878;<:6:88;;88;89:<=<:955677865677678878998898789875889;;97;98;;:9;99:;<;:97668986578868867996988:988778988989::;:89::78876688648898:68866::88768::8686767:998899878:8:;::9:8689768864887:688679:97789:88966988989::88989;<:89;9::;;:8648:8799786487869876788:;68::98:76977:88;<:88;=:68=><9889:58988678669:9;8878879:;:97668988998::889:987:9;96889867886778998988:9889899:968;988988799:86887899:56789::77889889:8668::8:99:978:87789::88:8788:9877:8788778978867:9889889:877889989:8788:9778::88:7698:88786788;9885799889889:67889::87889<:8778898;76:8:988768:889:88:68768:<9::9:8679889:89:77:98;;99876887679:7889::887889::778:;699:988778899::8:876896889:998::755788:88::8:886789::88:866778::<99::98776:76695877876799767768898:87:98844768:88:56::9766:;968:;66:<867887678998997677689989879988;;<:9:66956::98778988:68989878899678988998976998866866866;78:866876899:9669:;:6;989988956689:9889769988::<::9:868987898779988:769;9897;88:9889878898766788987887887987868:8::766989:978:88:966998898988767889:8788786688:9;769:8899:978:989867876788789677889:98868968868:8:9678989:99878898568987898988986688:;98868:67746:89868::889:96887689769:87997767866869876679;:;89868688688988::8789::8467889978998898799778788789::76:97887:968989699889::9876889988789:878878998:7667::68988986688988::8878989::98668898876756887788689989878877887699:869:6789979::988766878678878987868:9:87789::8689:988:8879:9887878876678787899:887868:9;9:88:8699:98898879:8788788786877:8;878998788:9:96869889899898767855889889887887988978868;;8689968::9466899::89:998:99886y|}||~|}~|w{}}|}}y}~~~~y~w||~w|w|}||~~||y{|}}||{}{||}~||~}}~~|{w~~{|~y|}||~}yz}}~y}y|}||~~||{{|w{zz|ww}~~|}~~||}|{|y|w||}~}|}~~|~|}}||~~}{{|z||{|}~}|}|}||}~|{|~~|y~~~~~~}||~}||}~~y{|{ww{|{|ww{{z||z|~~|}||}~}|}~|{{||w|~}}~|~~|zyz}}~}}||}~y{|{wwy||{w{zw|y||~|}~~|{y|ww{|z}yz~w||}wwyz~|~}~}||{|{ywwy{|}|w|w|~}~~{{||~~||{|w{~z|wyw}y}wwz|z}}~~zyz||{yy{yyv{zwwuww}~~|{{|}~}|~~|y|||wz|y}tw|}y~}}~~ywy}|yy{|{yw|wuwww|}yy}|wy}~~~w~~~{y{~}||}~|yy|~}ywwywv|}|tt|zwwz{{wu|{|}uz~}}~~}}}~{}~}}~~||}}|w|yww{||y|z}}ww|wvvwwvs~~y{y}~}zz{{~{{~~~}||~~ywy||{}||{ywwvwy}~}z|}zzwz{{z|}|ww|}|~~}{zww}{z|~~}~}~~|wwy}~|ww|ww{||{wz}|z||}wwvww{||wwyww}{z}|w}|{z|}|z~||}|wt}}~wqrwvw{||{w||zww|}vww{||{ww~|z~~{w}~}zz{{z~|zz||zw~yw{{ww{{||ywvzzywty}wz{{zz{y{||}|{y}}~}ywy}|y{}}~|zyz|}~yvv{|ww~wwy|}|{ywwywsw}uvwwuvww{||yz|}yuy|}z|~|yy|~{{}wpt|}{wy||wvwtw|yst}wz||zwwrqw}~{{~||{zwy|~|w|{y}}{~~|~}yyzywsw~~yw||}~zy|zwz~zywttw||{ywupz|}{yy||w|{w||{}z~}w}|yw|~~zwz~||ywwtwz|ytty}||zzyyw||wy}|t{{|{{|}{w{}{wy{||{zz~~ywy~|ww|~~|zywwz~~ytw|~~||}}zwvyyvw}||zy{~~|yywy|{wwy~~{z|~{zwwywwyw|~zwzzw|}}|wwy}~|yz||ywwvrrw{wz||{ywwy{wvwty{wvyywywyywtw}w||wwy|z|ywtww~|wwy|zw}~~{vtw|sz~wuy~{yww{wuwzy|wtzy|wz~~|wy~||wywyywy|~zt~|yy|}}|~}ww}|uy}|wvy||{vvywtw}y~|{|y~zz}~zy||wwyywwy|}|~~||z||}~~vyvot~uzwuw{|zv||uuywtyws}~~{sy|yw||zyzwstz}zy|wz|wwz~~wwz||}}~ww{|{wy|rwuqy}yw~y~wt~wqzuzwr|w{z{}zw}wwz||zwzzvsuz{{wvy{vtutqwwtu|{wyw{||w{||z{|wzz{wz|zz|zz|~}yw}}|zwz}}|}|}w}}vrwvowrpuyvrwtvywyw{z}|w|}|{|{ww|{{||zzy|}|{|}}}|v{|wwyyuwutvwvuvvtwts||vwzwuw{||w|{{|z|zywwz|{ww}|{||vvwy{{ww{{wvwzzw}wwzww{||ww{|{zzty}~}zyw{ww|||{wwy{wwvwwvtwyrwtt~|w{wwv|||w|{zzwy|}}||}||}}|||}|{{|yvvtvwruwtwtt}yrwvww}{|}z|wz|ww{z~~|zz|~}|}|}|w{yuv|wq|vy~{w||y~{|wwuw{|vqzz|wz|vv{||}~~w}||}{|}|w||ww||vww|v{v||y~~yw~}w~yy}~~|z{v||ww{{z{}}{y~~z|~~vz{ww||wzw{vzv{{z||y~|zyy||w}}w|z{|{{z~|~~|}uwwz||wvzwwzyz}}zy||y|~}|zzwu}|{}w||}}}~~vvwzz|}|wvw{zzwyz||z}~~}}~}|z||zv}||{~}~~~~zww|}wuz|}|}w||yz~~y~||}~||zz|}||}}ŀ}|~z||zww|}}ws|||w|}ww|}zw|}y|w{w{|}}{|}~ }|w}{w|}|}ws}|}{y||wz~~zz}~}|}|ww|}}|||~|~~|ws}|{{}ws}z|w|zyz|}y|~~}zwz{}}||}w|~||}~v|||}|y{|ww||z|}}|z~~zyy|~||~~}}|||{w}||}}||w{||}||w{{|}||}|~||}~~|~~~y|||}}|{}y||{|vvw{}{z|}||}||}}||}~|ww||~~~z||zz|||}{||}|{{ǁ|z||zz}{||wz|}~}||~|zz|}~~}~|z}}|{z{}||{y|||{|w{||}|}}vz|}~}|}~wz||~}z}||~}{{||~|{y}}||}||{zw|||}}|}wy|zy|~~}wz}||}}{{~}}|{w||zw{z|}||}|z||~zz|}y~~~||z{|}|}{y|w||}|{uv{}}||}}|yz|~||}|ywzz||{zy{yy~u|{z{||zw{{wz{w||}}}}|z~||ttzw|}|vw~{wy~y|ww|w{||{wz||{wzzw}}|~~|z~~||~ywvw~|{z}~||}ww||}||{|}w{|}|}||~~zy~~||ww|yw|ww{||yww|zy|~~www|}|vww|}||}|}~zy~~|}~|w|~|z|~}zz~~|}zw}{}||||{||}{ww{||}~|z}}z}|z~|z|w|}zww~}~~z|}}ww}||||}||}}|z{ww{||~}z}|z|yw||}~{y~||~~~~z|}}w{}zw{||}|z{}}||wz{||~~|}|y|~w||}y}}~yz}~|~~~}||{}}||uw||{}|}}|ww||}|~|}|y|yzzty|~}w||}||~~w||zw|{w|z{zw{|ww|w~}{wwz~}}w|w||}|w||~}||z|~|tyz|}~~z|~~}|}~|{zz|{}}|{|~z{zw{|}}|{~w|~}~y~~||~~|zy|}~~||{||{||z|~~}zwwzw||||ww||~}|}}|zz}~|~~|ww}}~}|zyzvw|}{z|}w|~~||}|z}}{{}}zw~~|w~wz}~~z~~||}|zyyw|}||z{|wz|}|zz|}|}|zz|}||w}~|zz|~}y|~~}|}||z|}|z|z||zyyz|z|{|}||{{||}wyw}~~}|||w~~~||}~||}||z|z}|{}||z|w|z{}}{||{}|~~w|y~}||~~|~~}~}zw{|vu|}||}}|{||}{||{}}w||w}~~w}~twy}~~}}~~~~}~~}}|ywУ棦ܧ񯬦ꩧ쩪৤ݩ˧䯪蠛۩멭Ԧۦ֦𣧩ʣԚ󩪤٦ᣡߧۤ䣡ۣϪ𣡣ҧ塦ȧѬ㧦𣦦夡򬰰ꠡࡩڧީ䧬ŭ⭯񬩯鯪ǯ覧𪭭󩧧ꩭ򩬭䩧믪⩬穭ѧ੧歬ȩꩪߪժ󩧤񩣩橧흣ڤ롧蠟󧦭餡৤ꩧ顩Ӥ󩧧䡧7876686::768866456688688686262368867889;787687699:8:889:867966876796887688675665788986726898688796887978:989889889867986686678876566566866747898788786898968:9889778879878765667877864676886876678789878987667889:7788789866886688668866865687897988667789877988746889::88789:866876678788766896786886686634986788667687898966898898898779976676456678864689668646766249768987766988979879:889889745664686786446874454688:79:69:769:98866;9886887997898788976:76446468867:667865488:98879878::8788766776678667869887667676684688678876776787698898:878876789976676887689889866476886687667886898679:668898:8767767869:86688;86688688656866766868766789969;:8878687898977677857987899678667677668:86866767667899868:99:868686797887567789866898668:86686987746678998878::887976879:;:988767887887568::8789<:7688767698676688987899:8798688::;:887898787668998899:987676687864669899889:898798688;998669958997899667679988766889878868:99::9::;;98998::998:7;;7:979977:;;9:99:99:9876678788679::8:99::8968:988689:99:98:7::8:98::879:89;:9;;9;7889878868:;<8;:9;;8768876889:99:98;9:9:9::79988997687798786678::98878::9<:9:;979::879::8::98998;99:968878;:8798799897667886889::<:9::988;<;::989:98899:9::877899897688:876685689:;::;<::8:9:;9889:98899;::9:77988788987866776878998768::;::;<98;9:9868998::998<9:9;89889989;998967:;:8768:;::9::;==87;89::9::989::977;998;9;67998998664699866:;:9889:;;88:9:;;98878::889;9978:6995;768868;;9767877<:89;;:8:9:;:99:9889:;::89:988:;89;<;:889<788586799568998678778<:99:;:9<9:<9:<;;988:;:989::99::68::98878:669685699557998778779::;:98:;=9:<8:=:;:89:;9879:;:9988::86677966;78458866899776799:;:99:;<8:;8:=9889::89::9889;;868988:66966578789886676678;989;;:9:9;;9:;989::9:988979:9886869779788788676677678<988:<;::;:9:;:998989:8789887867697989;99678786689877;:989:;<:<<:9:;<8667:;;:689:;;:9=;998:887;8868989966898769:988>::;9:;78;97899889;;98:89:89:8896:8;998979878668766776>9989:8:;89:97889::98989:998::78699:8868898686678998<88:89:9::88688:8988:9969988688977678788:9897789:998989:7789:9898688789987988988678998867766899889:998898:8989;8869988:9887788987:8878866799878876678:988987789988;8867:9969878:998778987:8868786889978868:98898667899898867:8898799:8877898898996688786989878868998998898668996989;869:87998:88778988:68798;886688678669:8898898968;85:;:886469766889;986678:98668879788689878767:;;98766788978;86:68667878668::9887668::98878677667789:96:88776987:869588567677678989::988667799876898898878:;849877887798798687:86698667:<8878868768768868::88766899898867877876:889:887668876688787698868::976689:9887678868:88;88998:987667889:998799:89:8689::86689988679976899779878:998768;788989889::9867897788979::8689987866997898:868:86::99768:998798898687:;88;:98667:<<8668::97:6686446898799:779889538988:87:98789:98::6:;79988:6687898898778;98::889899899:88:89<88:87::988::86:;8::99;88988:9:988::88988::99::98:99<998878988::98898669:89988;99:8988:9:668988988:;88::9:879779878878:887879:8868:8:989988:879<8799::76867977887896688989::897677989899887889::978:97899:7688978898998986889:9::8879899:9889879966988:7698997898899;:98778996878:9::8897989989::9989867976978965878978:8898766568:<:896697885789:898998788699:;87:7:769::997897786679978988548:8668669979889::86:9989986998987:8;98998879:9886679978976876887889:99889::98876678896878;::9887898899:78::8896589669:78878;88:8766788986788:88789;86899<88::89963886656886787897887886889878968988778878;:89:8988::8996688667877986788986979:88678987768:97899898998996897688:88;96899876679:69789899689988758858:8988689689656877998898779989676686:6687:;57996568759:6988768967863566:7886786776786899866{|}{ww}yzw}|wwtvww||y}}w|wpwory}|wz||~z|{w}zw~~}}}~|y{wwy|{w{~w|}zy||wzvwywyyvz||~|wzpw|~|y|}}{~y|}{~{|~}~}|~||}|yz~|yy|ywwywwyz||zyvwywyyuww|ywztz}~|z|}}z|y}~}~y}~|}||~z{|}|z{~~|{|{wvwywwz|zz|wtwzy||w|zwwz}|zz||~}{}~}{wwz||}}~z{||{}~|ww||yy||ww||wy}yvw|z}~{~}|yyzz|~|zz~||}{ztw|}}~|}|{{}~|yy|{ww{|z||zww}~yz|y||ywy|wyyrt~|yz||yyzy}{|~|~wy}~}}~|}}{{~~{yy{wtuwyz||wtw}~wwywy|ytwzwyyot~zy|~}zzww~}|~{|z~||~||}}||~~{tuwwtw|wz|yttw|zttvty}|}}z~w~zy~~||wy~|}w|}z~~z|~}z|}||~{wzyttytw}}|ywwzyw{}yus||~|}z~|{||{|}}zwwzzww{|ww{|y~}||{wwzwzwy|tw}||ywwz|}{y{{y{|zy~||~|}{|}|zy{|~~zwyzy}|{y|~}||}~|wwtzy|}ww|zwwz|}w}}y{~yw}||~||{y{{yz|w~}yy|}|wy|}||y|}|wuw|ywzww|w|zwwz}~~w~}}|{|w|z|~|~{zy{{|}uz~}{}~~yw{|yw{yzzyww||w|wwzwzwwz}~~}w}~~}w}y|yz~z}|}}||}|{vy{{|~}yy|~|ww||ywy|}|yw~|zztwyyz|~~}||z}}}z~zy}z~~|}{w{||{|}zuw|}{|zy||{wzy~|yzwy||}}~|z|~~ǁ|z~|y}|||}|zz}~|{|{yw|~~}}~~~|zy{yw}z|wtyw~}~~}||}~~ہ||~|z~|y}}}yy~~u|~{|~wy{w{||zwy||}~|z||w}~~~~|~}~~|{{~{zz~~~~~|{ww{|{||yz~}~~}~w}~}}|y|~~~~|{}||{}~~{||}~~|{||y|}~}zy|}{y|}||~~~~|~~{~~|}~{y|{{~}z}wy{}~||}}z|~~~z|{~}~}~~|ꁀ~y||{}}{~|{~~}{ww{}}|w|}|~놁~~|}|~~||~~}{{z}~}~{y}}||{wwy||uy}~}~}}|~~||~~ń{{~}|{|}~}{}ywzzy}{|~~}|{w|~||y|}~~|~}~|}~~}~~~~|~w{|{y}~}z|~|~~zz~~}~wz~~~|~~}wytw~}ywyف}|~}|}||z}}|}~~~~{z||y~~v{y|}y|{wz}{zz}~|~~~~}|~|~~}}}~}}z||}u}yz~~vw}~|y{|{{|~~~~~||~|~~~y}~}|{|wyyw}uw~~uu{~|z{|z{~~}~}}~}z~~~}||ww{z{wwك{}su|}ww}~~{z{zy{~~~}}~|}}~~}||}y|}}yywywwvz|z|~||ywzywz}}~~~|~~~}||}~{~}}|}w|wzz{|}{|}y{wwz{yz||}~~~~}|~~}|}~~|{}~}|{|wzw~{|~~~yz|z|yw|~}{{~}~~|yw{y|~~~~||||z||w|~}~ww}~}zy~~}|~z}~z|~}}|}~}~}|~y}~~~}}~z~|z|yw|zwwz{{w~|~}|~~z||}|||~|~~~|z}y~~}||y}||~|y}ww{}~~}}}|}|~~}||w}||}}|~|}~~w~~|}w||~{{y{|z}||~}~zz{|~~|~}{{|~~|~|w||{|}{~||~|}}wz|~~||y{{ywwy|~~||~~~}||}~~}||~|~||y~~||~||{z|}|{||z|}ywz~~|}}{||{yy{|~}|}~~|{{|~~}|}}w{~y~}z}~~}{z{}|{|}|wy}||z|y}|~~{|}|yy|}~}}||~}ww{}~~}|}w{}}|~|z~~}|z{}}|~}~~ww||}z}y~|~}{|}|yy|~~|~~||~|wwy|~~yy~|~|w~|z~~}}|z{}}|}}ww||z~||}wy|}|yw{}yw~||~||}~~}||~y||v||}wty~zwy||~~}ywwz}~|ww||z{|}w||z|zwz|zwy{|}|~{||ww|yw{|{}ww|~||zwwy|~||}}|z|wzzww{zz||~~w}|zzy~|{}yv}|vw{y{zwz}~}~~}|yyzz~~}|zy|||}||||z|}t|zz||{{|{~}y|{}ww~|wyyz||z||yww}{w|{w}||yw|||zww|~~|}|}|yy{|{{}{y||}|~|}}|zwy||zyw}|z}{w|}|ww}~zww|~}}||}{w{||w|||||~~|~}zwwz|}~~~}{ҁ|~|y|~|ww|~~}|y{~~{y|{{}{|~~}zw|z||}~~}~}}~~|wz}{{}}~z~|y|~}z|ww~{|}|w}|y~~zw|~~}||z~||~|y|{|}~}ywz|wy|~zyw|ytty||z~{{||vr||}}{~|z|}yz~~||ww|z|||}{z|~}||~|~~}~~||}}||}|||{~|}}|w|}|||}||~||||~}|~~}}|{|||~}}~|yw~}~~|}}}|}ywy}~||~}|}||{{{|{||{|}}|zz||}zz~}}w}||}}}||}}z}{{w|wz{{||{|ww||}~||~}~{w{z{|}}}|{}}~{}{|{w}|}{|}||}}|}y||~~|}||}{|||~}z~yy||{w|z|||~}zz}~~y}z|~|}}{|}~~}||}y{zw{|wv|z|z|}|}{ywvy}|~wy~z}|v{||||{||w~~}zz{y~{}zz|wwz~~z}||vt||ww|ww{}||~}y~~}~~|y~~|~|z}~|~~}|}{{}|ww{~~z}~{y}{w|}||}|{||~}}~~||zwwz||~w|z|~}}|zz|}}|ـ{||}~yu}~ywwy~z|}z}}}||}}zywwyz||~}wz||}||z|}}w||||~~wr|}wwvw|}wz|z|{||z|}}|y||}~~|z|~y|~|}zz|}|zz{||||}}|~~ww||wwyw{{|{z|wz||}|}~}y~z~||y{}}{zzw|z|||~~|~~w}{w|}||}|w|~~|zwwz~y~z|~|~~y}~}}zv}}|vu|}|}|y}~y}yuy|{{}}}{z~~}~yzyww|}yyy|zv{~~yvw|{vw||zw}~y{|wquwwyz|}w{|wzzyz|y|~~|wwЧ򣤧觤ڦЧä褩ݧۤ⧪ɩǯۯ婪㧯ۦ䩯檵꯭뵯랣Ų쪰몭𪤤溺ٯٰũة㪩۪󤪧⡹ަɦΣ里餪֩Ф礡ߣ槤ةӤ򩤡ү𩪩ܪ鯧ĩǧߩꩬ菊Ī񦩬٭ҧͧ٣ɤ򧩣ݪ6866:<989986688788:958899876988::88:8668687672"%L9:87:;889878868:76;;878899897799779:98898688687661##K9;989:889879;86<:6889989:8669988:88768:8398687761%"H6986886889986:7:8998:8779988:67667:8486568872$!F688688988989:468686789987678;9989689669:8:8578872#"?8:8688:988788:388486688987667889:;69976688;9788782##98:86786798878862665;9:887678:;<78876788::898894$$/6864668989:86956:67889898778899889:;::88799:<7&%)59989977889<468;88668855978:8799:9887866883:7978:9;*#'7:989889:869688989669878769;9887878:886:8978:9:)#(7877877998678868868989669;97887668988998897:98*#(67997685766764668788689668978876688788667789967::7,$':879877857669755668686786689889887678766886689867::7-%&;765568766;:73688:867657976778899886698669976898689:7,#&75546869665883688986875687768868686896788:8-#%55799<=97563458556686895566877667876576656995787:8.$%55686689653869;86968988986598677556789866897688:-%%988987697988967688;96:99869879977677556687889,$%987765668665676869:6;:87876685667876879955897878988+##8654677688:87867<9:67926976678655776676897799786897798-"!r876689989788966:7:68;68898669:99779877855687896799/" X7799:986866866::<99;78698459:89788767676556678788679:0"!T67997658798898978988::67755887878756759987787678877:0"!X678877866986769798866878878986896799778626997976:0!!T86868;8679;97767:9963878998788776778866866868::987667-#H77977989699877887889858:99:978988:88687789.#H68:7689;68987787976699679889789769867668899:;<0$ H7998688989987669876996757997679887:989897787789;1% H998898688987668997895757::979:9987:88989887767892&F997799847789877979;8868667899879987868667679987789;2%E896788956789878:79968979877689898:8687987766892%B79567796779:867:78858;8:;;977877899876766769;:98779:2%@678877896788779;886568979;8997:96899889;9656::89:986899:(!,8878788:88668768:8997988:988789;96:;:86788:'!,9887897678665688986889868;;:87889:;969:9768::9(!+9889879889896688667887889;<:9:9889986899779;<:*"*98789:989889896678767787889789::;988:879::+$*9889;;98987789986687688968::989:9889:99:89::7+$(9;98:8767889778:9787986868689989889:9979988::7-$(9:;:98:9866896889;96769868677889988;88988:8::989988.%(6686:88998899898698669:979668::99;66889988789:889;.$':98876889;89:998747669:98766899;88::8789:889:+&,899::986876889;66889:97667899898878:88::99889899+&+986689:8898877887998::9867887889:/'#7766789899886:8877989689988:89887789:/& {68:;:86578898778988678968986688:;:88989988998:-$$v998788788789:998899866887678898:;86678:;:899889898:.$#m7887678:898669::9767889;;:998;<:89::8:9899769:988998<1$[78988998998:;:88:99:978:9:68896899::989:<;:99:8::878::;2# Z6899:985668:978:889878989698:7899::99889::988998:>4$X68:99:989988:86898898788:69897889989899;988::<3&`899:98688:98699:97899;89886889989:;989::9::2$c9989:968898:99::899;8:89688989889:9:89;;2"Z998779::9::886::8799;78:7:8;988989989::989;:4$ O8986689956767887998688:68:698<;889889::988989:99:986&#>88678989:;998688:9788:698;:899899:<;:99:89989;:88%!58:68:99899:869;88:88488998898<:9:6>:88989878:<79*%06867:9:989:868969;9:8:9:<<:88768<:9:6<99:98898898'"/79668878:8689669796976<:9886:88:8=:9::9879:98789:98;:)!.8:8687788:89:879686:769889::69899=;89::889:998899:;+"-886898:99:978:989686:8699:989;::99:98899::989;9:*!,886897::88766878:78698899:987:;::8:99889::9:988:<;;)+:8868967:866898:<::8;::889::9989897:99899899889:<* ,86768:6896688:<:8:89698898:886:779::9768987679984:+#-y|ww|~}ww|}|}}{|}v}}~~|{w|||||ywwy||y}{yzoLS}{}|}|{||y|{y|{|}~~}||{{{z~~||}~|w}|y|{wymNN|||}~~|{|yw||~}}~|wy~~|}}}{w}|q~|w|{zymRLy~|w|}|}y|}~~}|wwy{|~~||}}zz~~|}w{yw{}t}yvy||{oOJw}|w|}|~||}~~}}~ty|y|y{|~}{w{}~~|~w}~yy||vz||{oMK|}w||}~}}|{||q||t|yw|}~}{wy{}||}~~y~{wy||z}|{|oMN}|w{|y{||}}{|}woywv||}}||{{yyz{}{||{y{|||~}}tOOiy|wtwywwyww}~}~|wuww{||}~~||~~|{{|}~~||~}|z~{TR[u~|~~{{}|~tw||}ww||vv~z}}{~~~||}}|{|wy}|}|r{~z|~]MW{~|~}|~}yw||}~yw~}{|zw~~|}|}||{{||}{}}}w|z|~\MXz|{{}zz~~|w{|}w||w}~|~yw~~z||{ywy|~||||}|~~z{}]MXywz~~zy}v{ww{wtwwyww||{||y}~yw}~{||{yy|}|{||yy{{|~y{{bQV|{~}zz|v{yw~{uuwyww}|wy|w{}ww|~|}~}|{y{}{ww||yw|}y{zeRU{wvuuww|{ww{rw||ׁ}y{yvz~{y{z|}~~}|yw~|ww~~{w||y|~{bNUzvvusw|w~wwu}}rw||}y|zuw}{zzw||yw||ww}|wy|wz||}eNSuu{~~~{uyrtu|uvyww||y|~vuywy|{{ywy{|{yv{wwywuwvz|z}fQRuuwyyw}ww|~wvr|y~|w~w|~||~|wv~|w{{vuwz}~}ywy|~zw}}|eSR~}|}~}zw~{~||~w{w}||~w~~}|}w~}{~~z{w{{vuwyw|}|z}}|~bOS}zz{{yvww}ywwuwzy|w~y|{|{ww|vwwz}{y|z~vu|~z|z|~||}|`MN}wuswzzy|||{|w{~wz~oy~{wwz|wuvz{ww{w}~zz~~z|y}~z{~|cKI}zwy|~~}~{}||~wyzy}w}|}ww~~~z{~}zz|uuvwwyyw}z}~wz~iKGz{~~|y|wywy|ww~~z|w~}tv|~{|}zyzy{wuvwwy{|{}|wz~kLJwz~~{wv|{}||~z|~}}w{{vv|}z}z|{vwzu~|zz|{yz||{{z{kKJy{}|zz{}ww|w{yz~}|wy}z|}}{{}}|~~}w}y{zz}wow~~{~{ykII|w}y}|yz~zz{{w{~yq}z|~~|{|}{{zyz{|}ww|ww|w|}zyyzeMD{z~zz}~w~}z{}}|z}|~}u|~~~{{z{|}~}|}|}y|zz{zz|~gMDy|{w}~y}~}{{|{~zyw~w{~}}~{|~{y~|y{wy|}~~ԁjQG{~|y|}~}~~}{yww~|{w~wzuz~~zw{}}|}}{{~}|{{|{{|~mSG~~}|}~|w}}~}{ywy}~{}~vzuz~{~~|{}}|||{zyz}~oTD~~z{~~}szz|~|z{~z~||}w|wy{}~~|z~|{|y}yw{w{~~}{{|oSC|~wz}}~uwz}~}z|z~y|~z~}{zz{{yw}}~~}||||y|{~|{zwwy|~pRBz~vw{{yz{~}w{{||v|}~{z{}{{}~~}{w{ww{y~~|z{~pRAy{||zz|~w{||{{~||wuw}~{}~{~y|~~}||~yvy|~~|y|~~YJb||}|{{|{|}||}||wwy|{w||~{||}~||{|y|wz||WJa~}||{z}}|}~{w{|ywvw||~}y|||y||{||~~w~~zy}XJ`~}||~~}z~}|}~~}|~yw||yww{||{||}||~~}|~~|w}~~zz~^L^~|{}~|~||~}~ww{|{y{{|{||~{|~у||}}|||z~`O]~||~}~|{{|~|ywy|}||}{y||w|~}~~||~~~|~{`OY~~|}{y{|}~{{}~{|{|y|w}y|~|}~}||~z~~}}zcQX񁃁~||ywy|~y||~~w{w|y|w{{|}~~}}|}|}~|}}~}~~||fSXywwy||y}|~~||~||w|wy~~{yw|~~yw}}~~||{|}}fQV||}|{y|}}}}zs{wwy~~|{ww|~~|||{|}}`Tb}~|y|{y||}ww||{yy{|~|~||}|{{||}~~||~~}~`U_~|yww|~}}||}|{{||z~~}|y{|}|}}||z||}~~hVM{{yww{|~}~~}||yw}|{{z~||}~w|~||}}~}|zz|}}~iTHw|}wv{|}}~}{{z{}}||yww{}w|~|ww|}|}}~}~~||~~}eQO~~}|{|}{||{||||ww}|{y{|}~|}yy{||~~||}~||~}fQN{||{y{}}~|yy~zw{}}~~}|}}~|~~zw~~||~|mQDz}~}}~~|~}||~~~z|w}|~w|~}~~~||z}oMGy}~~~|vww|{}}|~}z}~|w|{|~}|~~}}~~|}sOAy}~~~|~}|}}w|~}|~}z|}|y|{|}~}|}}~~}~~~|}qTB|~~~|y||}|y~~~z|||}w|}~~}|~~쀁~|~~oQA~~|~~y||~||~~}~~||~y||~}~}}|~~؀~~}~pL?~~}zz~~}|}|w}z~~{|{}|}}~}~~}~~|~tOH}~|yy}~vy{y{|}{~~|y}}y|y}}}~}}|~~}}~}~~~~}yTN|}|y{}~}~~|w||~z||y~|}~~}~~~~~}~~|~|}|RJu|w|~~|~~|w~}|||t||~}|}}||~w}}~}||~~}{}z~]Rkw}wz~~|~|w|~w~~|~}||zw}~w~~~}|}~}}||}~}VKiz~wy}||}z|}w|~wy~z~w~zw||}}|w}}|~~|z~~|z|~~|[Jf}|y|zz}|}|~}z~y}yzw}|}w~}~~凄}~}|~~|}~~~`Lc||y|~}~~~z}~|~y|w|y|~~~~}}~~~}}~^Jb}}y}~z}|zwy}z}z|w~||€}{|~~}||~~~~||[E_}}w|~wz|yyw|~|||||~|~z~~}~~}~~}}~]Ha|wzw}w|~ww|}|}~w~|}||}|}wzz~~zy|~|zy{~~}t`Ne壧򧦡gpìjjҧngkd몡heʩhjkkqnz}hvڦ򡯧|hw𤧦妣}hwãmtïnsׯjs󬩣飡jpmnpnkpìhjebe_gdȦedbbh\臘ܧh\ԯm_ħp_Ȧq\Ħp[nYnXyd즧vdҪwd骩ߦg갬k}骧멦ky򬰰֩mw񯰯֪pw׬mt䦣qs䯌th񩪡qamkmjm\㬩h_ܧkXܣ멪qY񯪤쭯mX񰧯ﭯgU頻ka멪󯣧䭪qjndƩ}n󭪩tezd嶲g꣧򪩩d꣩­z^񬭯ܪ}a੭j9999::::::::::::::::C:::::::::;;;;;;;;;;;;;;;;;2;X;;;;;;;<<<<<<<<<<    /#)2::767;;868.#)1::768::889.#(0::96799:/!&.:8858:99::/!%-9877:;::;:8.!%-9889:;;97.#%-9:9:;;97.$&.::;::;=;:8/$%2:7;=::<=<::.`!'.79><::<<:99/L!*(08:<;:;:989/E")%1<>:;;::989/H!'&3@>::;:99:/T!&'1>8:;;:9::/T!&'/?9;<<:9::/U ('+F<<><::/O!()-==>><;;:/T!&++:=><:998.["%+*7><<:9889.]%%)'7?<<;:88::.H%&&7>;;::99:<.6%'&&4;::99:.0%&&0;:998/0%&&-<;::9986.=##'&,8<:78:;85.=$)-(,:<:889987.:"*0&'6;9989/<"*2(%4<9899789.>"(3*$/<9889889.?!&4-#+::889:98.?!(:1#*9::989:8.;';0 &6:=979:9.+"-:3!$3>8:7898.-$.;5$#.;799/*#,<9)%,:89:868.+#+;9*!*998:868.+#+<9/"%487;98:.*"+=;4'%187:99:.,#+<95'$.779886.) *;98*!)6798:6.*!):<7/$)0<9868.%!*9:82%&-::868.!"-9::8(")8976:.!%/9::9, &7:88:.#&.:987.!2966/!#+:;986'%0;::9. !*;>;:7)#(665.%$,<=:7;:79::)&,6:.r&4<9:8<:<.&(/7. &6;8;9>;>7**+6.!&6<:=965::*'$0.~ &4;>9:;<88+!&."(69:8<9;99:/#$. '9;:9=8::;5)".!$6;::;8::9/%.##4::4*.l &6<::;:;:99:72.?(9?=;:9::9878.>!)6<;:98::;:67;/M\o{w{|y}.M\mzy|}}.MXk~wz~.JTg}}v}.JRe}{z|.JRe}|~z.MSe~{.QUf}/OSoz.IVf{~/J]Xk|}/K\Sl}/IVUq/JTVm}.ITWh~/GXV`.JY\c/JU_`}.LS_]z||.RS\Wz}}.RUUTz.yRVTUt.kRUTUj}||.kSTTc|w.MNWUb|{|}v.Q[eXb|}|z.L]kUWy|/K^pXSs}{|.LXr]Qi|}}|.JTtcM_}}}.IXlN]~~|}.AVkHUy{~~._LcrJQr|{|~|.eQfvONg{~~~/^Mb~[Sa}~|y|._M`^J]~~}|w|.`M_hKSt}{}.^L_tWRl}{~~.aM_vWQf{{~|}y.[H]}^I[wz~}y.]I\zhQ[k}w|.SJ]|pSTe|w}.ILc|XK[}{y.JShbHTz|}.MTg|zfEJo~wyw.IM_}wVSk.HI^z\NYwyyu.RQb{iUWy}}z.JTf{{[Xb}.QS^{`SYt.QQ]|~jMTj}.IQez|VYi.ATo{\Uaw.BUt}gTXi{.HUw}{]]_w.JTyyu]VOk.HTs~}|}_JU.KXw}hNQ.HW~~|u\L.JOy|hR.NMts^.HTy~~zo.BY~|z}.J\y}yz/h|.h|.hw.dq.dn.dn.hp.ms/kp.bt/d}w/e|p/bts/dqt.bqv0_wt.dy|/ds.gp}.np|v/nssq.ntqs.nsqs.pqq.hjvs/mzw.g}sv/ewp/gw}m/dqh.bwj}.Xtas.gdm.mkj/hzp.hd}.hep.gvn.hvm.za}bz.}b|mz.pd}pq.bgwez.dpaq.hq^d.bhtp.ab|jy.nmsv.dqzw.mppy.mm}hq.bmty.Xq|s.Ysqw.as}}.dq}tk.aqds.ewjm.av|g.dkn.jh.aq.Yy.d|1 1 1 1 1 1 1 1 1 0 0 00 0 0 0 0 0 0 0 0 0000000000000000000000000000000/K /C 00/ / 000/\ //9789779:79:87789886688989::856689:8;988998768;;989;7;86988=978:879:7898678876887889989:996778:98998656889659979989:8899788767887887877879988998988988998788<988787965997998978866787799887797898778898878:9788987889:867998988;:987788787668878::9988;788789878768:977898668878<:679989889::87887887678878::8989<887879768659987789867::787678976:<:89977887689878987889<977887787866865:99877877667876788769<:9;:7698778:978876789<97789776866876;:877886868;;77:899887899;<988;:8788:7:;9:6899:87868867::79768:989689768986879::8::98789987679988988998:78879787679:8877899889::989::8:8::8868678879<;:878:98689887797887877988667899788987988768968899898::986799876677678987679687677689767878979988997:88:8:998687:<;988787789988788688787688778877979:98:989767878:798986878::99:;9::;;989;:87889:86887876889877978898766786868898::98;9887679788:8798788798878976578898989:88675:989988:;868:98676897898898788:998789:743688789:97787589688786:989988678876788797;846797877:9678656889;69:9899887788778988::877:86689989986789897:867798867:9788767878967866887878:8899877;86689:9::976899689877988669988787678::988787788778;9887889:87899679977986678876787678<:9887687788778;978878878:8988769:778864667867787668766788778778877898899877:855788789988998868:67886686887765567678878798899866:86678877887899879688677:767688697665669889877866788766:887898787679986:778676:8878868656687667668667887668987668:6676::77:88:89877656:9658867788766866886566586786788998778667887688:979:965887788658878867876887668686698:899877677878878:9889768988776688:98778787697878:9;:987787876788:58:9976877668898986799687988:88988778876678::877668995899865778768986799787978866788998878766789:67887887887687558788776886686789897866768789988778766788798689788658855768977869876679:97677889978668898998767887768897579868875676897786776778966788987:89:9958579876689::988979857787689865689987887558985788668:968679887899886886799677667886788687788:78768987887679::79679887887868867986766787668869878897898788:9878998685687887878756776787667758789:88987887:97789986978988988998768878766788766776676587789877887898686678998:89:89:7889:98677876789988757766765976778977668::8:87887668;889789778899878878988688668878778:78898<:9986568:77578776788798878988689:7789988:8:;9889889988989677576268767896788;7867:886689868:96699668:9779;749:9988:8875874688767766789::86767966889:97889:9868::9876:68978786::866886678867867899879:889:98;77:;878876;7889786::757876689779788998;:878:9;78987887;7689766988778996899:78856986766897784668998966889689877878767887899889:96789:7887756:76987767886988;98898989:9889:89::9779:;986886986867977887668766;8:=:8989:98::;9889887789:;985775986977869688667767889985:68;8898:78998895568::988787885956:885768569;<9566886799668686998767889;:8;;9988996699879:9::967978576878867688668898857699889::8:98::88989:78::86786788968786779866778688668687979787789::8:98988989988::868988996885688789877878867688;896689989:98778877899:89988:9898897466789:;877889787869898789989::8789887788987887887997:99658865789;877889798979786899:99889899769:9:9899:87898898997:9857676677878778677:8:67588978866:;:;:9988:98897898:96;87482678875687786675878686887667887966866:;9;:8876:8776556548:889;767::86686:88:9=889:678678::8798798:78878:58:86:<62:<:9:97:98899::87967967889688678::8:868798899:9889:869:6*6:66997:98679::998:8688677669::8898788::989::868879:8!.79986886798668:89;:687788679::5799889:877878768899!*4:;8699::89:862798799688676679:9899867788789889766#&,6;869987886499898878986886897768878::9889788766($&2;:548767889:9:98:98 87886785788:889::988478676689+!(598878:;:9:996898:899878967878:967879:884;97787669866546z|zzz|z{}|}ww}}|}}~|~}vww|||||zw}|{}w~}|{}|{z}|w{|}|}zw||{||~~|~~w{{||}||}|wuw||wu~~{|||z|}{w{||{}|{|{z|{~~}|~~|||}}|}|{||}}|zz|{~wv~~{~}}||}z||ww{|{{|}{z{}~}{{}}}|}|{|{|}|z||}wz|~}||z{||{|{ww||z|||{|}}{z{}||z|zw|{{}|ww||z}wz}~||}z||{||{w{}|z|}|}||}|zz|{zw|wu|{{||wz{|{wz}~{y|{z}|{w|}z|}{||{{}}{z|z}ww|wv|{z{|{zww{}{wz|}{y{w}{z|z|}{w{|{z}~{z{w}ww}zw}{{}}|w|w|{{}~}|z|~~||}||z|}|zzw}}z}w}|w{{{w|}w}~zy}~}w|{||z|}{w{|||||z}||}|z~{|{wz|}{{|||~~}~}}||w|y{}|{|{}|w}}|z{z}|z|{z~}|wwz|{|}|}}{~||zy|~w}||||w{|zwwzzwz}}{w{w|{w{zw}{w{|{|z}}{||}}|}|~}w|z|}|zz{|{zz|}||{|}}w||z|zw|}zz}}z{z}|zw{|{|{}|w|{|}|{||}w||{|{w}}||}{{{|||{wwz{|w|y|}|}}||}}{wz{||}|{|{||{}}|{|zwv{}}||~}}~}~||w{v~||}|w||w{w|{||}|z|||z|zsrw||{|z{}{v}~y||z|w|||w{|}}||}{wz}}{{|sw{z}zz~yz|wvw|}y~~|~~||zz||zz|}}}{z|ww|}|wz||z}wz{|}yz~z|}zw{|{|w{|yy|}||zz||zz|}||{{}ww|zw|w}|{z||ww~~||{|{wz|~||{|{{||{{|||{|}|}}||}|z|w{{z|ywwz||zwz|{wz}}||{w}{{||{{}{||{|}||{|}}|}}}zw{z}|wtwwz|y{zz|zww|{ww{||{z|{{||{{||||zz|vuz||{|}|||w}wz|}wwy|w}|{{wvvw{wz|}|{{z|z{|||ww|ww{||{{||{||zw|}wzzzyzw||w{wwvww}}}zz|wwz}}zww||}{z||}||{{|zw{}wzz|wzw||}z|}w}wvww|zwwzww}wwz}}zww}}{ww|ww{w{{}|||z{wuwwv||wz{||zww}yw||yvywu|wz}y{|}|z{|wwz||zw}}|}{wv||z{}}wv||z||wz}zy||{yy|y|wy~}}|{zw{zz||z||{||}}zw}|}{{ww|}|}|{z{|}||z{|{y~{}z|~|{{|{z{|}}|zw{|}u|{w}{zww|}||}}|~|yz~~y|z|}|}}|{{||{ww{}|{{ww|u|}wuz{z{||zw|~|yz~~{|z~{||wyz|}||{|zwwz}wz||{|}{|}zw|{uv|z|}{{w}|ww|}}||y{}~|{|wwzw|z|}|zz|{ww{||z{}w|z}}wv||vv{w|{{|w}{ww{~zyz{|}~{}wy}|~}}zwz||{z{{zw}|{uz|w||}{vwzw|{{|w{zzwzz{|~ywz|||{}~~v|v{|{ww|}}|zz|vzz{|}z{ww|}wvw||{}}{vv||uz}|yw|~w}w{||z|}||w||w{wzzwwz||w{}}y|{{||}{|{w|}z|}{yzzwz|}}{||{|w||w{}wzwwz|zwy||w|{|}|}{}|{|}|}z|~|w}vw}{}}||}}||{z|}|z{|{vwzz{zzwwz|zwy{zv|{|}||}|{||z~{z|~|wz||}||}{w|}|{{|{ww{|}}|zwwzzwyzwu|zz}|{{}}|z|}w}yyz|~~|}}{|}|w{{|}|{w{}}|zvz{yyzwv{wz{{|{{ww}|}{||{yy}}}{}{{|}|z||}|z{|}}||y||yy||z}{z{{}{|}||}~~|wvw|{zzv{}zzw{|}|z}}|{z{{|}|}|yy|{z||}}||}~}}||~}~w{{v{wow}{y{}~yz||}||{|wz|}ww||w|wwww|{z{t~~}}|||zv|zty}}zy{{wwz}~}w{w{ww||{}||}w||zwy}~{}{}y|ww}|yy{}}yz}yz|~~||{||р|{z}z|}}|}}|{wz}||{}yzv{}zywy}~{{~z||~~}Ⴠ|z}z||{||zzw}zww}|{{|w|~{}|}|uw|w{yy}~{{}twy|~~|ww||w||z{|{}zwz|}||{}}|y{|z}}{{uw{w~}{{ywz|}}||w|}|}|}|}}||}{{~|y|}w~}y|wzz{}}zyyw|}}|zyw|}|}|}}|}|zz|~|vz{v~}y{{}wy}}ywz{yz|}~~}uw|||}||}{|}||vvw|||{|z}|v~vw|}uzw|vwuww|}wzww|w|w|zyz|}}|~}~~}|~~wy~~}{w{z|v{w}z|}||wzw||ww||||uzw||}~}~|}}~}~z||w{|w{}||}~w|z|w{{}ww{{|w||ww|w}{zz|zz|~|~}~}||~|~~|}||w|||~~y|}|vuw|}|{}}z{|z||wzw}|}ww|~~|~~|zz||zz|~~}|||~}||~ztwwz|}z{||}{}z|w||z|~~|}|~|z|~||zz||}~|z|}{|}{~~{~~wu||wuz}}z{||}{|zz|w}~~~~}}~|~~zy~~~}~~Ӂ|z||||~{~}uzw{ww{{z}}z{|z{|w{{|wzv}||}}|~z|}yy~~}||}{||~y}{t}ow{|}zvw|z{|wwzv|{}w|w|}zwwz||z~wy|wy~|}zy}zzwuuwvt}||}zwz|ww|y}|~||}||~w{|yz}|z|{|z||z}v||wyo~z~|}~~}z~yz~yz||}~w||yz}}|w|z|}}|||w~w^wwy~{~|yz~~~|}|w||}|w{{wy~|||z||||w}||zz~|Ifz~~|w|}|yz~}yw}|~w|zz|}}|ywwz~vz}||}{z{||{|zy|}~~J^t}y~~}~}wpz~|z~~y||}|yw{ywz~~||w{{||z|}||~{wyNUby|w~~}z||yt~~|~||z}|y|}|y}{{zw}}{}||z||}zwyYOTout}zwz||~~~|~}}|}|{|}|wz|v{||}}}||s{|wzyy|`JXv}|}z|~~~w|~||~~}|z|~w{|{}~yz}z||s{z{|{ww}wwvtyެ§ˡ̩𬩧⦡Ȭ󩧲駦ࡦݧ򡩬󡦬ߤԦ렡姤塯䤡㤧ޤ臘褡몧妡˧৩Ĥ穦ެ٩䩭ĩ줦ܩ马ᩪΧجѭᰭ䡧Ԭɤ©١짪褧ӯŧȤ쪭ݩͩb椪d益js天賓ykqȩdw۩869;88:6:87788:88689878767889866898878568;:73886898::78867:8:9887889879889878<;:9887887668:97678766886897:9887789868:99;:8799898899877689986568966767886896988789::8869:99:96688788;998896788766787879969:97556799::87887887876788;::9767866569:986::8687466879:8::88766788::878866786788:78986579:86689877996688677879:8:879:77858::8798668877987997688787889:<;:987669877889988979:8::78966969:9779846::66984::87:9778877889868:;9866;87::668::7897:886866:7789876768:7898898:4998;;88789877899876676::88989886866978878898899:9886;<;7::887887889::98877869889989876877988988:9787;<:69889878::98877:98896689886788998898898987987998878867877887889989:998966798878788987987986876996677887688989988:8987<8688978867887877886686:8649;8876877::9889889987=988989978857887887886969886::8877877;889:8998:9889:889789699876788:78878979699686886:9876:9988998988::69899678768:866889889866788987978878:9:878899686:889689889868;988977878986689:8878868878786898:;::89:9::88988789899878988788779;:887879:9767889:9::9988989;:89886889 89877889;9678878::7668879:9::986647:;8:7876:989977998878689879986788767889;:6646::8:88769989867::876887868986788989:9878688788978867986689889879887689889::89767668589986:9986786787788:8876687889:889868:98779678988:897566878::8;988656967766887656779;;:8868:966;98869668:96686676678879668878768978:8588:868786589877::6678678878556986566776778986898877898868758988687568:9889887879788:989:886889878758867:88976899:788669:8899878876676679567788989:988988987987886688788788;688986899779:86677845567889889989;87987989867668688:66889:8688789:9788:8766788987898::88687687695778988:9988789898778::89889968:898876678876778:88;::988677876897788689978898:968:886897763768:76757878:99<789:9889668965689:99:987988:97879:878967978648867787786:688;:866887898::89:98998:998;:579886876776786:7988988789987767889989:89:988:98;:6889887878658688778998898689988989:89:86899876788:978:8979789679989:9874887678989:89:867997677878:89686686799877889:9788978878989:89:998986799866789:7877667667767686878878878869988978988:9978868:9:767899788677676677678;7:889899878648766776867988::6578789698997798797886867788;6:788788986:877898786688:876899876676998876889::8789889989:8898::9988766788789:88768876776988686678899:788998::8876776568789:7887887688776676686788998868988998789987786688789:7887867866788667886788768::988668997787887898898878877867766776887669;887668986899766788767889988788568768859::8668:887669::878867899876699887:98878568868958998766988987899466776559988;:88769885688799546678876889:98689967899878898;8668:787:77:889686796866996476889:8:9776786568:98878:8877:998:7797786868978878967878878899:8899778778767998879869:99:7787786878988:88989::8:87886787788:988978689898878998878:9889::98:967768778898898579::6898898768::976686789::988:96686788789:88569::58:99886898986767::986686789::878;966778688678985898878:9989668898687699868898879;956886897668868998988699579698::8:748699698688;:7898879;956886897569;689:988:89:996:8:6:96789889897878:89:9989866887679886966986799869979:9968695:86889788798:8866867998867678878::8:8;886887868:99699<8;:8:89788798:8989;::8:868747788789848796768868:884698968:;7:7678968869886878:896:769748788788986:898:887789::984688978::6967689788798879884696698697899887788:676;988:967986::7;9;8898998988799:66876998:789:98766889466989:988:;897886884985:8:7898::8986466898868898989:998879;:;8:898899889:8:8996878;:7<:<8898::89886878:9:8788989989:8:8;8698689:87}w||w}zz||||}|yy}||{|{wz|}|ww|||{|}vvw|{r}|}w|~|{||w{}~||}{|}}}{}||z|||{||{ww|zwz|{ww}|}y|~z||{z{||~~|}w}|z}}||{z{{w|~~|wvw|~ywyzyz}||}y}~y~|}|z{{z|~}||}}wyw}|{}||||}w{|}|{ywwyzz||z}z~~y~zuvw{~}z|}|{|}}|{{}zw{||{w{}wwvy~~|y|y|ztwy|z~|||zww{|}|z}|ywwz{||}|}ww{||z||wv{|ww|~}{{yw}}wzz}z~|}z{{|u}|z~|ww||zz~}{zw}}{|{|}}~|{yww~|{{|}~~}}~z~|z}www~~zz~|twww}s|{zz}|zz|}}w||yy|{yw|z}~z||w|ww{{|}}{w{w}{|||~}t~~|||{}~|zz|~~|zyyzy|}~|~}|w|wwz||{||}||~|}w{||{||z||~~}|zz|w~}|~~|~|{w|zz||}}||}~z|zw}|}{|~}|zz~}||}~yyw|~}|}ww{|||}}||||z}{~||}z}}yz|{z}}{||~~}~~~}~ywz~||}{{|{||}||||}z|z|w|zy~~wwzz||zw||}~~}|}|}~~|z|w|}||~{||w{||}}||{|{{}|ww|y}wt~||zw|{{~||}~||~~}|z~||}~}{|}u{}||{||}{||w~y~}|w|}{{|zz}||}~~}~~}|~}}|~||z}w|zw{||{|}z|z~w~~w|w|}||}ww~~}}|zw~~}}~~}|~}|y|wz}{w}|ww||}|||ww{||}z~{|}z}~|z||~~y|w}}~w|~}}~|y}|}{{}{}|ww||}|{|}|w|}}{z||{|y}~}|~~}||~}|}z|~}~~|z|~}||}||}{||zz||{z{||z{wz||}|~~~~|}~|~|~||y}}~|}}{{||w{||{}{ww|}|z~~~|wwtz|z|zw~}~~zz~~||{}|}|ww|}||}||z|w{|}zwz||ywwtw|||zw~~}~}yz||zw||z|w}|wz||}|{|w|}|z|}}{||w{|ww}~||~}z~}}zw}~|}||~|{wzww|v|}|w|wz}w{|zz|}|}}{wy}{}|~}}~}y|~|zz~yz|~}|}|{vww|{|}||wvww{{ww||{yvy{{}}|w|~wy~||w~ww|~ww|wwzwwz|}z~yw|}z|{w}{|}v}|||w|z|wv||{{yw{|wz|}}|{{|vvy|wuwwz{{zwzz|~|w}~||zz}||}|ww|}||}}|}zv|}}w|{vw}|}}||{z|}|z{z|}}||Ā~|~}|w|}}|{|zv|}w{}|{w|z||ww~}||{}}|zwwzww{vwz{||}|~~}~~||}|}z}{||ww||z}|z|}}w||}~|w|{{}wwz{{z{|suvvwz||}~}|~~|}{}{||w{ww}w||}||wy||~}y|}|{|{|}}|{ww{||~}z}~|}|}||w}zw|{wvz{|||~~||{||}zz}}|}||~~y||||{wwz||{z{w{z|}|~}|yzz}zw|{z||}|ww|~~{|}}||~}~y|}|w|{zwq{w}zw{u{|z|z|~~}|}ww}wvw|}z}|~z|{}z}wz{|ws||wz{|{zz}ww}||}}ww|}||{|~|||~}|܃u{|}|w|{wz{{zwwz|wz}}|}|z|~~}zzwz||~~|~|}}|}}}w||}||z{||z{|wv|w||{{}~~|}~|w}}||~}~|~|y}|zy{|}{}|z{|wz}||}||~~}zt||zw{|~}~}~}y{{yz{zz}|z|}w|ww}wz|{{||z||~z||{z{|~|~}~~~}~}y{|wwz|{}zzww{wwz{{zwwzw|w}{||z}}|z|}|y}}~z|~|}~~z|}y|zw{|{||w{{w{wwz{zwwz}{|}|~~|z|yt|{ww{{zw}wz~||yuz}z|~y|z{}{z}}w|wz{|}||}w{|}|z||~|w|z{}|z|wy}||||}|zw}|{wwzw}}zw}|~|z|~|}~~|~}|}~}~~}|zyw{||{|~||}|{w|}}|{wz{w}||ww|wwz|}~~z|}~~}}||zyzzwvwy||{|~{|}}||{||{zz{w||zzww{yww|wz|}~~}|w|~}|~~}z|~~|{{}wy||{|~{|}}||{|w{|wwz}|ywwz||yz|}}|zy|~||ywy|~~{zz}{||{|~||}|{||{{|wz{wwz{w|}|zwy~||}|zww|}||~~}y|~~{wyz}}|{y{|}}||{||vw|zw||v~|ww}}}|zyw~|z||yz|~~|zyy~}||{{}||{z}||}|vw}|w}u}~~}zwwy~}||~|z}~~twyzzwvv~}||}||{w}||}}||vw}}{utwwz||zw}||}~~~|y|~~yz|~}{}}||}~~||ww}{|z{{||~y|yz~y|yy~~wtzy}||}~~|zzwz|wvw|~||}}|z|||{z|{{z{}w|y|~z|}z}~yz}z}|z|}~~||z{|zz|zw{~}||}}|}{}w{z}{{|y|z|~||||}|~~|}||~}}{}|y{|{{||}~}||}~~{|w}|}|}}{|}||z|~}}||}||}~~|~y{{y|{{||}}||}~~||vzw|}||||}|}|zzw}~zww|yz|~~||~wwyy|w{||{|}~||uwv|}|}w|~|~|wzwz~|ww|yz|~}z}~ww{{}w|}|wwzz|}}~}|v||}{||ww}|~}y}zy~~|w||}~}|z~~vw||}w|{ww|}y|~~}~}|wu{w|}zt|y~~y~|y}|}z|~||z~~vw}}w|zuwy|~~}|}|~~~w|w~w{|~|}}|~|~z}z||~~}}~|wy|}||{yz~|}w~yw~|wz~~|y~~z~~~w|w~v}w||~z}}z~|||wy|wz~}||y{w{||{||}}|y||z|}}w|~~w~~|}|~z||z~|}~|~||y}ztz{||{|~|t}z~yzw||y}}|ty~}~w}zzy{|~y||y~||w|z||~yzw~zt|{|}}|{||~}w|~|||zz|~~|tw||~z|y~y{w|~z||z~|}z~||}ttw~yw~}w~{|~}|{{|}|yzy~}||}~~wwzz~|yz~}|~|~~|~|}z~~yyw}zy~~|{}~|{yw||~tww~|~~}}}~z||y}|t~|v|{|~||~|wsww|~|}y||}~}~|~~||{~|}~|}~~}}~|}~~y|z|z||~}}~|}y|z|~|z||~|~~||~}|}w~|y|~}z󩡬篧㧩򩦬ߦ롩ġ𩬬穤󤩪짩릧򦧧𡪩⩯嬧󪣡ꩤ䦧硧驧ߦ읤򪯯ϧ󦤧ĭݩ驪㡤驧槬ئ𩡭󧭯ܰޤ馧ެۤצ줡۪Χ쪧ᩧ秪᧦󡣧򦤤ۡݤ𧩧礣理䦡믪ާˡ묯ߩ쩪𩪭ʩƩ󧬡詪ݪء𪯩79::88:667:;977<896686688689:88789:898:6487787989::86698788987:86869:86678766899:977898878:76:988787789:98::86689:66987879::9987789:99:9789879867986:8766:86688789:86898987789868::89:998989:86:96686689887889989:8688689886;9789976886796889:889:9698668766:887788369:99678878879988:8766766789988688767998686798788654789::8779878877878688:9:87889869899:96488689868898:998878668::898678847:9:656788779878::9887878::8:99:889::9:8::87867768779878:9768877868878:;:988::86789::9889988::878878989:878878789878668987789::;;:99:9889::87678988:98788787788788768:848669:988:;::99:9899866898678;:987667878988789979779;;99:768988:89978::8668:9878898668::98897767889889;:87998:8688:8867998668::8868:9866787788787766789:868;9767877889::998767887:88:987968:98876686676569866788778998768779877979::9878878:88::8797898867988:989:8668876898862789;:99;69:868::89868667;;878899886:88988:899:968987656986899768998899::998:979979;:889877899889988989869:988668767997689989::889978968:<:89:;5688767:8879869:98878767998789::9889:8899788558;:77896678767:89966898686::7886788789889:8998:9788568:8667<:88659:9769986869:89866788778989:88998:89969:9878878657::99::98898688:9977886698998989:98:9799788767998869889988;96788:9:878877:8899889887889:889879:8688768877898667878::867:968:898:86899:98::887889878768:88:;:8879:98797;988;68876689:943676889::9:8778:8;97875577889887678988:7:887;77898988:988989:988:8:8688778898789:6:996:87788998899879:8988789:988989867889:9:998878877896::;7978898788668898867889::98898876789:998989987586::;89899886778:86688988789989877679:66789::98899879798:8:99878979889988989897786788778789:989698:9887669;::8688:889988989678767798877678978:7:9:87887669<8988986889:98878867976767789::678766;9987889:889:66975669::8667768;86887678765637889689986678678899887887789978:7677689:886877997787786588:87866998787667877898878976787899868878987887887679;778898767789:78878986676677699878987887898758988:889876::876789::88997667876998787898898778877989966887887678::9889:;;988988679987988968:878989866887798:;65887887689::8667899878878:86988788987897899689768756:78;8897889887876689788767887885:9988667889868:8689778636<87;9978::98898789:9788789:987889:8989668:97687889:9889868:56789987998779:9:987789889978:86879677987678877887799878998689668998:98679::<986788978::77:86878688997568866778768988<:86889989;97788797799669886887678877868986886<:866889989878898798876779878768:78878986788667867788788:988778:88987998668879:886988:656889;788789868867875688788:98878:887987899898869889866789:6778:8698867688768:889:977899877966:;:9;6867598969:878986678:86988996689867<;79:98899878:8697758;98::99:989:6789:8653886789;88987669::;:878877887:97976::7668688688:;;8878766877986887868:;988989:9::9;96887;:98878:;799:98876778768658:86677889667:688987689898667668989889667887676579876689:9877:867667:788986769:8856898679668::98866788766787688778::988<9889889::99::8969:89:88:;:66:7679:99876678878975686889:;:9988689889878:78:78:68778767986899:87656677878867869877899::97668989::986978:6688:769<98878::988665856:889877876687679:98668899887668:9766889769;::78875568776788:9889::8778998679979886689:878:9::8567889678998788679::977899789986676688998:986689:9889867899887878:86678867889789:98667678899898898898778668867;8877886478988987688977689:7789987998789:657996688778864889887889988766899887889878877899:7668867876689986889788998799898:98988998778766788988788768898 898769::988:98988:887787889:98:98863z~||wwz~zz}~yy|ww}||yy|~}||zz|}~~}}~~}||wt}{{z{||{~}~}yw~|z||~|z|w|w~|wwz|zwwy|~~~zz}~}||z}zw}||{|zz|~~|}ww|~ww~|z|z~~~|zz}~~~~z|~}z~}wz~|y|zww|wy}}z|~|y|~}~|zz}~|y}}|~~~}||}~~}~|w~yy}yw|}|{|}|~|y|}|w|~||}|y~z|~~zy|}|wwz~y||~||~~w~}yy}zwy}|{{||ry~~~wz||z||z~~||݀}zyyzywyz|~~}|y}|zwz~~}w|yz~}z|}|wwvusz|~}zz~|z||zz|z}w|}|~}{|}~|w~}~~~yt}}|ww|~}w||~}||}||{}ww}||~~|yz||sz~wvw{||{{~|z|~||}}zz||z|}~~||}}|{|w{{zww}zz~}z|~{y|}{{|y||z|~|}}yz|~~}}~~|}}z||z}|}{||{|z}~|z|ww|~|{{z}~~~送~||~}zwz}~}}~|z|}||z|z{||{|}||zw|}t|wy~}|}||~~~}~~|ywy|}}~~|yz}|zwwz{||{{|||z|~~z~{{~~zw|~|}}~~z||wy}~|z||}~~|wy|}}zz{zwz|}||~}|~}{~~}}|y|}|||}|wz~~|yy}||w|~|yy{|{z||{}{zwwz{||~}w|~{y{|zz|}}~~~|zyz||z}}~|z~w}~||zww|ww{wvw|wwz||{z|~~}zy|{z{~}z{~z~~|z||z||||z~z}~}||w{}|||ww|}|zy}~}|}wp{|~~~y~|y}|~|y|ywz}z}|~~||}|y}|~}|||~~~w}~|{wvy~}y|~~zy|~~||~~~~}~{~z}||}{{|||~}||}~|~|w~~}|wy|{w{~~{y|~~|~}|~~{}~w|}vw|}zw{|}}||}z~}w~~}}|z|{yz~~|z|~~}||}~||~~z||uv}{z|ww{|{w{|~~yy}~|w|yz}|y{||{z}~}||~}~~}||~{}}uw}|wwz||}|wv~~zy~~}y|w~|~|ywz||zz{|}~~||~}}~~}|}}|~~w|{||{}wv{~||}~~}w|}|~~{z||ywy~}~~|}~~|~~}~{~{||{w{|}||}|ww~}}~~||~wz}|~|z||{z{}|||~}|z|}~}|~}z~|w||zw||{zz||wwz|z||yz~w}|~||y|~~~}}||z||}~~|z|zw}}|||z{|z~z~||w||{ww|~trwzy||~~}zz}}{|{vvz{|}~}|{w{}}||z||zz{{|}~||~||}~~}~~||}|}w||zz}}~~}|z{{|y~~y|z{|}||~~|z~}~}}||zz|}}~~}|}~||w{|}~||z}|{{|~wz~z|||{|}ww|}|~||yz|}~~}}~||zwz|~~}}|}|zv}w|~|}}||wzz|}wy|}~}||z|~~}~|zzw{ww{}~}}|z~z~||~}|zz|z~||~~|}|}~~|~}{{|wz|}zz|}|zz|}~|~w~|~|}}{ww|y|||}~~}|}~~|}w{}zw{{~}|{zz{zww{}z|z~|z||{ww|~}|~|y||~~}|z||}|wz{w{wzz{{|~wz|{ww~}{}}|||}ww{vwwy~|ww{{w||w|}{wz|{wuwqz|}w}|ww{|yz}}~~}}z|}{{|z|{wz{w|}||}w|{{{{|{z{||wv}||z|ww}|{{|}|zww{|zz|}|{}zw{|z|~~}|}w}|z||z||{|}}{w{{z}||}}}{wz{{|{}}|{|}wwzwwzzw~~}|{{z||}{||{||zv|||}}||}zw}zyz|}|{ww{|{w~~}}|{|{|}||}||zz}}{z}ww||{||}|zwz}~|}~|}}}|wz|{~}||}w|}z||}ww||zz|wu||{||{w|~|yyz}|{|}|}}{||w}}||z|}}{}{|w}zw|{vw{|||{|}}||{z{|{wy|z||zw{||z||}}uu~}|yy{||}w||w|{z|wqw|{{}}||}~~}|{{}}|{||{|~~|z|}~|~|wyww|zw}{|}||}|}~|w|vw{}|{|z{|zz{||~}}~~z|}y}{~w{{|zw{||zz||{{}z|~~|y|~wwy|~~||w{|wz||~z|zz|y|{}w||{vw}}ww{{zz||{w|~}|||y|}}||{z|}|{~zz~~yy~}||w|}{wz||z{{z{||ww}~|y||y|yy|}~}}|}}{|}}{~}|zyzz}|}|}zz{|{w|{||{||wz}}ywz|y{{||{||||{{}}|||{~~|ww||z}}y~}}wuw||{||{}}w|}|ywz|zuw||{||}}|z|}||{~|z|~~|||w}}|ww{}wzz{}}w~||yzw|}|{y}}}{{}|{zz{~yy~y}w{v}~w|{}}wwz}}w~||~~ywy|~|w{{~~||~~|z||w~z{v|}~~~}~y{}}wuq|}w{|}}}zww~|z||zz||z~z~zw{wy|y|}w||}||{{|zww|{{|w||{|w||||~~~~w||z~}}{|{~~~||}zyzz{|zw|wv||wwzz||}||}~yw{w|}|}~~||zw}~|~|ww{yy}|~}|}}||~ww{|}|zw{wv{}zww||{z|wzyw{z|}||~~}yzw~|}|vw|~|w{yy|~||yy{|}}{ww{|zw||zz|}||~|}~}|}~~~}~y~|~|}ywzwz~~~|{ww{||z}{uw|w||}~~}}|}y}~||~}z}z}z}y|{{}{w{~|y|~~܁|zwvwwzz|{}}wz|w|{z{|~zwy||~~|y~z}wy}|{w||z|~||ywwu|uw}|}||{{|{ww}{wz~}ww|}~~||}zww}~zwy|}}~zw~z||zvuvy|{zw{}}|~||~|{z{}~||w{~~{~}|yy|~}z}~|vwz||}wz||{}|yz~~{{|~~z|~~|ywzwy|}~~}~|yy|~~||}|~~|wz|}||z{}}{||ywz|}|y{|}||~z|~~|ywwzy{|}~~|}~}|~}}||}||}|{{}ww||w{||zz||wt{}~}||~~}|zy|}~{{y|~zz}~~|z~~}|{|}wvzww}|zz|}|wt||}||}}||z||~~||{yy|~~||z||}}|~~|z}|{zz|zww||wz}zyy|~~|w||}||}~z|}~~|{~~}||~~|~}~}|~|{z{||}{wwz|}||z|}}zw}}||}~}||}|}~}zw~~}}|~|~}|}|zz{||{||}|~||ywrѪ󦪩짤瘝䦧瘝᧡֩ݭˠة窧򩬭ä멪魯妧Ϥݪ쪯񤧭ءƧ橭ꪧ᪭Ԥߩ読갪˪󯪩󧤧񧬭䭩񭪧Ĭꤧ㧤䧤󬡦妩ꩧ觬顧짡ؤ뤡⩧짬򦧬賓ç桧쬩𩪬𪭪۪ݡ里᧩󦧧ӧ󦧧槬ꤡ榪天理꭪ԩߡ譪ةܯ䪧ԧ⤠禪ާ窱ܧ詬詬᧤򧯪78898897886677588688587889898769768867:899885<88::6688998988767768756769:87788997876678878987:89:886966898897997689887678778556889778:89::9876789889:899::886887886884488686688778857679667889:89::9887979:899;;8878867886476468968668878757679668998868768868:798::878767766997688679:887788766568868998766876778698986687677668868898878878667877898868897866897697766877678868878868789976:8868477688988767887689669:76976656876566899:87668676:96898686:8;:65855::68788:;8688668:988986684896877:97668:78898688779686998686598698998:;889866787788785876886886678:798876887897657897876877:9988::8788768:668898677668876988668688768988767:78868:9889878:989<6787898688678786:98766776886689898788768688699877889:86696887885787867:5898768897787898688:767688698866887866886878876787957:08878988688688979896686885886798696678998788786869:*8987788588969898:68667968858868:97:8::9:;968778868:78686:9#8:8788789889878969889866:68899688;967:998669;:88676634;78:+!8:8788788788:7;:78:8776987668698468879::998987788688;9:9+#9:8898897;95699788;:876:8987889:889::9688767668787:4&":9989988;98879;966898:8:9979:9899;89878::86887669889;2%&:998:87<::98868877689768878:9:86688789:9887878:9-"&:8899789889:9:778766:9669:889889:998878898787894&&:88996899889::8667567688::886:<::89::9889988988686:991$%.:889968::889989869;8:6889967;996898988::99;::9889989676+!'39::889:889988679::998656636969869::7:8988788998:9767:9<6%.;9989:8::989:97898778856856<887;:9989::99:2#!/:988789:9::879::88678867867978;88:8:99867767889:8-"&3:98668998789986898778988:779:987998789:9779989<6'!-88976689958:8788968:9886799889897589989::987889:9779:98<3"$4<8976788969;:889:89988987688978:87869:978;;::889:886789989.")8<8977889:989:998789878:996696798;::67::9889::9::;83'%19:998878988789978878:86576866<:;<8:996:78987668;:9:98897.#'696997568;7878::77876789878<86998:679:989:9::877656;9778:63&"*3769889866897998866898778876:86986877689986;9899:9/#%/8:88788:87669;8776:87986788776678<:886:99;99:)&39:8677887878:8778778:9899887>:899878779::74% *688677878779878877887788:978867887:7689886889<7*#%3:98878698876886689879886766789778876:699:=4%"*8<88768878787687788668877:7876658868988767669787::-$#0:87966788787348:889668867:788776589;:877868676596(%(4;57<:968897588::8688778879887766587767:887897::;8-#!,468:86;245798797876566787;964468::8789889877667:5(#'36679869989:866887887787667898667876678875780#$.9766898687786898779877667786789876688767977876686-#)6:66789:6678:97889877987766778776788767:8766776770&&0:958989:7:9899:9688987788766786678864566786678899;6*!(38769:88687877886678766577667468876679767889887669<7)#.6478996787:9979968::886776768987665667767967887586+)5:47668:9976998998976776678699656697::986899866799866886867979886699:89989986788766768876678768878686688:8656887988978898699898898875889876678646676946887898667698:889789:87887899876776889876676568668668896678876646886588:88678:88987998876678878568678846766588:86766898:886878656686868766865665879866467988988987886788786766988696986698677688:86689::8876898776679788767688668868:8988;986678868::8688:86769898667889::97655:866898696687899566868:97889886889:97964688988789986689866987886766886876649::99:86976678867998788998779:988:;656987866876887889987667886886865578 87899889:65798786886788767787668:9789976886677987889887868:8 898:986686976887::879988987678876:78:889988677689:876568756898668968:9887898:88:889887897898::;8878::88998667:3479867988789::978:88689789886867886:99646:z|}~}||~{||ww{zu||w}|v|{||~|}~|{w{w|}wz}~||v}|yw||~~}~||{wz{zw|zuwzw|zz|}~~{|{wwz}|{||{}||w~yy}||z~~zy}~||zw{|{zz|vvw||zz|}|~|{y{|}||~||w||{||}||w||tt|}y|ww||{z||uzw{wwyz||~|~~||{z{|~~||{|}|y{||wtzytw}~y|ww|}|{}{v{w{wwy|~~}||wywy|zw||w}z~}|{}{w{{wy~~{w||wz~||zz|}||{wwvw}||y|~~|zywwy|}zw{zz}}w~|~}wy|{w{{wy}}y||}~}||{|}}{z|ww{}{zz|}~}|y||}~~{|ww|{w{zywy|{{y{||y}|z|}|yw|}|z|zw|}|w|szzy|}~||{y{||{w|wwzwzwwvw|zwvwy|~}zyww|w{ww}|w|w}yv}vuy|z}}||y}|ww|~}||}ww|s}~w|{z~zwyy|z}||w||{zw|w}y}wv~}y~|~~|||~}ywwz|{{|}}|{|v|{w||w||ywyyz}z||zw||z|{wuz|z}{w|zz~~}|}z||zy|wy||~|y{{wy||zw~}|yy|w||zw|}||}{zwwzz||w|~||~}|z}~|~w{|{||w||y{|{|w~}zyyzzw||ww}}|{||{w}w||w~~}zz||}|~}wy~y||{|}|vz|{|wzv}~|zy||zz|{|}w|}{w{w||}|w}|wy||z}yy|}|yy||{||{wz}{~v{k|}|zz}~|}w}||}w|}z|wwy|y||v}||wz~|y~wwz|~~|}||{|}z}y}w~]|~}zz|}||u||}w||w|ww{~y||v||w|~z}~~y|{{||y|{}w}y~M}|z||z}|||z|w}||wwy||~~y||~wz~~}yy~}||yww{ywrt{|`I}}{}|{}|{|}}|}zz|}{zw~}zww}y~|tw||}zz~~~}~}{{||y}|_M}|}}|}||}zvw{|||zy}~|z|}~}}||~~y|}{y{yw}{}{tTL}||}|}||{ww}||~~z~~|~~}~}z||w|}{wyww|}~pRT}|}|}}|{||w||zzw|~zy||z|~}yy}}z|~||{}{}cKT}}{}}|}{{}zwwy~yww~||~||~~~}|z||~||{}{|~sTEU|}w||||wwzvwzw}|}|y}~~}}~~|}~|}|yy||w~lORg|}w|}|}|w}y||~~wz~~y|~|~|}~~~||~|yzw`JWr}}}}||}|wz|wvwwqwy|w{|~||z|}~~|~zwz~wRDg|}|{|}{z|}||}}vw|uw|}|}z~~}~~~сpMJi}|z||{||}|wwz||w{|w{~{}|}}|~~}|wzzyz|}|}eKUq|ww||}|{||w||{{z{}||}||{{}{~~}|zz|~~zz~~}~yVJe|}{ww|v|}{|}w|}}|w{~}||~|{v|~}~|z|}~~zz~~}qKOt}{wz||}w}}|||}{w}}~{|}{|wz|||~||yz}~~}fL\|}{z||}|}|{|}{}~~wwwz|wz~||}~~|qVRl~||}}{{}}|z|{||{}|wv{y|ww|~wz|~}zwy|~~||~{fNWw~y{vw|z|{|{{|{w{}}z|}w|w{~}~~|z{wvw{z|wrTL]rzy|}|ww|z}|ww||zz||zw|w}w|z{{zyy}~}||}}|y}~~iNSi|}}z|}}|||{ww}zz{{zw}z}w{||{zww{|}}|y~~~\EUq}wz{||}{z||{||z{|{z{||||}|z||{|z{{~{sRH^w}||y{{|{|zz}z|}zz|}{{|}{|}||y{|}}|{{w}}||}w}}~z^MSq~}}||{z{||w}||zw||ww}|{|}|ww{yywwy{|~{z|}|zwy~tRK^}||zy||{|{}{w|{z}|ww}}z{{|{wwv||ywwy|~}|zwzww~{}{eQNj|z~yw{||{zz|zrs}}}ww||w{{|}{zzwv|~}zz{{||ww|}|w{yvwXSYtv{~w||}zv|}|w||{{||}}||{}|{zwwu|{{w{||{|{|cMJasy||wosvz|zz|{wvwwz{{||{{zwssw}|z|}}|{zwwy{uYNVqywz|w~}|ww}}|{|}{{z{}|{ww{}|wwz|zwwz|}}|zvz}kNOg{ww|~}y|{z{}|ww}||}z{|{zwwz{|w{}|{ww||}{wz{zz{||{ww}ycN[wyw{|ywwz}{}||}z{|{zwwz{|z{{zww{}||zw{|{wwz{{zwz{kUTj~v|}~z}w||}}{{||{ww{|ww{}}wsvwwz|wwz|}~y]IXr}zy}||y|z|{z}}ww{|zwwv{zwwz{sw||{ww{zw{}}}}||zww~z\Mfwtz|~~yz|{{w|}||w{zzwwzz{w|}{wwvww{zw{w{||z{v}w_\utzyy}|~~zw~~}~}||{wzzww{|w~yvwyw~z~}w}~~|wwz~~|ww|}}|y|yz~z~|}yw~~|}|wz||zwwzw||{ww{|zw||z|w}wy||}|wvy||}z~||~z}}~|y~~|~|}}}zv|}}{wwyww{{|}wtyyzy~tw|}||zz}~}ywyzw~|}|~z|~}z}|z}|zwzzw|}}{ww{wvy|yy|ww||~wyz||zwwty||yu}|}||wz}}|~|z~}|zwwz}}|zz{||vuwywwyw||}||wz||twzyywu|||yzwyy}||~~}||}|ww|{zz|}|wvww|y|w|zwwy|}|wvwwv|z~|wytyz~}|~||~|{|}|ww{||{z{|y{wwyw~|}|y~y~}yww~|y{{w|||wyw|~}}zw||{{wwz{|}||zwzy||ww||y|}~}|~|ywwz||y}|w}||wzw~|}ww{||{wvv|wy|~|y~wy}{|vyww||y}~z|}~}|w|}}~~{~wtw||~}}|{{||ww}|}~~|wy~|{}|w{ww||y}zwwt~}w~zwyz||wz|{}||{{z~~}|wuy|{|yy|{y||{|}~~}|zyyww{}|w}}|yy||yvuv{}||}||}}||}z}~~||~yv{|{|y||wz||zyzz|{ww|{|~~zy||ywz{z{|{|}||}||z}w|}|}|}||}~~}}}ywy}|wy~~zy|}|{|{||}|zyz||zw{|}|~~}|}}||}|yzzy|~|{wuw|{vy}~|yy|~w}||}||{|}||}~~}||}}|~}}{|~{|~|||{}}}~~}ywzqs{|wz}}||zz{||}~{}}|}||y|~{|||y|}|y{||w~~wtw礧頻骧𦡡塪詭ܡ󦤬٦أ䣧ܣܦç񪧣ө㧪ڬܦ죧ަ}ḥbީhqg岩nq񩧯䡧󦩦eq񦩬쭪󦩦q^sákn𤋮dv򭪤n\ܬѯhd駡es󧩧婧tdekg|tnӦjvqg}Ҥjp줡|^sꩦ椹na䦧槦hp졬ߦne맦ᣡmjwpy৬hdꤦ裦yjt񩧦Χjk󩦡񩣆jz椩Ѥsqߤ}bw񤦛|h񡦤|驧ꤪ餡㩯Ϥ飞ߧŧ񝬯椪੧ܡᩪ䩬磧⩪ߦﯬ9<9)%'378864654568::6688-# |795&"(365764686648878:99-"y682"!+662664699676678996:."v89.!$077466898787678986:."v:7+!&48776688787889:.#y93&!*6779669966889889:.${80!#/85786698898688689-"{8.&2:69766879:9664489899-"y8(!,77676446676689638:0"v0" /88768876676689769:0"v*"288:88686889868:0"u)'56799:989988:879988:/"s& ,667998988:9889769::;:/"s!"18687789878::899669:9;:/!r &697:669889:98:868:979:/!p"*::8;66:889:988648;:8::/!p!289:7568988976:8:689<8:=0% d$489;87968868687967:.$c*799:88:6889868::9:8:98:/$ d1:97867:899:989:8::7898:/$ g5:8676788:98::8998::88;::."a6:6587998:868988:9;:;:<<:/$c8:67:9::9:8688776796:89:=1% c:;78;::9:;96898896;89:=0$`898799:98898899:;;:87:.%!C 9:879878:98788987=1$@9:879878:988989;1& F867::89899:988::9:92& B!7867::9:99:;:9::;3$<8988::89;:988:;8:;:8::9<2%!>8:98:988::89;8:<989:9:2(%<8:99:98989;;:99:==:8::;3(!0899:869::98:><8:;;<:=-$(878864778;<:898::99:9:8=-$(98:96988<<879889;:998<-$(89;;:;98988:98:<::<:8;-%(768::989878:;;9:;:9<>98;.&'9:98899869:88;;89::88;<9:<.&&:;;:99:989:989979:989::9:<.&$8::9889889:;::99;:8:<<.%$9886;88<98;9::9:98:>.'"7878<:9:889:;;::9:<+&"8986;:988::9::88::9;<-)'898698989<989889;-'&6768:899:69::89:;:9;.%!s768968:89789988::9:=1%!`87868:78<889889988;0" W87668;78936=9::9<1"!Q6887676499766:988:868:2&"[68898688689<2%"^89:976678:;:889:;>5#!X:98899867898:;:798789:98;>6# @:889876578767769889:987:<7% 68667885677678989::87789:8(".7668898987789::87899:*%,866886798557:9879988989:+'.696868766788989:989<8:8,!(8796846678898899:885.&(75768467667889668:988985.& 636695686677668879:988:2"856683566787667889:98897:=0~8566956678879:8669979.!m656596887889876:98986678460$$]8685868688976;97786649450&<~\RWrz||wtyvsvy|ww||}cMG{vTLYrwv{wtw|wwt|}z|~~cLCy}oLJ`wwpwwty~~yzwwz|~~yfKB|~gIOj{{tww|~}z}zyz}~|yfLB{_JUt}{{ww|}|z|z||}~~fMDrTJ^wzz~ww~~yy||~}||~fOE}jJNh}vz}ww~||}}|~|y||w|~cLD}fETpy~{wy|z~~wytt}~|~~cKB}YJb{zz{wzytswywzww|~wr|jLBkLHh|}{w}|zywwzww|~zw~jLB^ALo}}|}|}|ww|y||~|y|jKA\DVuy{~~|~~||}}}z~~||iKATHbyw{~~}~}|}~||~zw~iKAJKm}w|zz|~|z||~~yy~~iJ@GTw{ww~}||~~|}w|~z~iJ@K]|yw||~~|}|wt}|iJ>Ip}~zvy|~}}~zw|w}~|jSHOs}~}zy||}yw}|}w|z~yzfOE]z~}|y||~|y}~|~}hOGl~{}y{|~~~|~}z|~|hQHu|w{w{}|~}}~~|}}fLCwwv|{~~||y}~||~hOE|wz~~|w|}zzyz~y|~lSG{}~~y|~||}~w}~jOC||{}||}||~~|zgRI |{}{}|{|}}~|zlOC|{}{|||}}~}~mTH|wz}}||~~oTH!z|wz~~qOB|||}||퀃|}~oRJ}}|}}|}|~|~~oYS||}}rYIj|~~}w}|}cOX|}|z||yt{{}}}~~~}cOX~|}~y|}|{}|~~~}cQX}|~}}||~|}eSXzyw|~|}{|~~~}fTV~~||~~}w|||~||~fTT߁~~~|}z~~|~~fTQ|~|}~}||}~~}fSQ}}||w|}}~~~|fVL{|{|||~`TL|}}w||~}}~c[W|}|w}||~}||~~cVTwz{{zww}|w~}~gSJz{zww|w}}z}~~}}~mSJ}|{z}w|z||}~||~~||kLH}||{ww|{|qw~~mKIw||zyzwt~~zwy~||}}y}oULw||~|y}}||w|~pRK|}||~~zwy{}}||}}~uMJ߁~}}~~|wz}}z~|z|~~}wNG߀}||~}zwv{|zwzzw~}}~~|zzSGw|wwz}||vy{zyz}~|~}zz|}XKfzww||~}|}~|z{|~|z|~]Rb|yy||yz~}vu{~|{~~}}~}_Vfw~w|w|{ywwz|}||~}~~|~}|aJY|{~w|twwyyz||~||~~|}vfUY{v{w}tw{wyyz||~yw|~}}~}vgTGyrww~uw|wyzzwy||}zz~~||oLA}vww}rvwyz|zyyz||~~||~{kEE|vww~vyyz||z~}wy~~{fAJwuwv~y}|z||}~}zw~}~|wwz}twjOO|w|v|y|w||~zw~zz|wwttvkTA߬|nvh_񦬠qgy𝧩g[ߣgdeYbk맪gYds󩪪h\쬚qdk^ߩdjg\ߩ^qeYydgY!gagY!XgeX!|\teX!qaeX!dedV _qdV e}dS bpa!kk^}k_!ma!➯g[⡭k^!⧭p_!񯲦򩪡k[ 诬nb 򬭧k[󬭧qa!qa!kYnd⩭yp!򧭬yb孩kw৩kwmw䪲pw⣡qtભqq௲qm쩬pm衲tgqg衰zv𩧡tqpd夡pdꩡga 駰eb ࡧsgnehd௪j_߭p_砣we檬}nt⪡dysy줧q_飚gX𩠡򪭪^^񭯩Xd࡞kkqX!%!2!2!%!!!%!2!2!6!>!>!C!K!K!}!!}!q!!!!!""!""""""""""""""""">       !!!!!!!!!X  8766777 1 8766777 1J9689x 1y )$&4::>8878:<:89988:88756997789988:;:998899y&#&3;:=889979868997:;997689989887789{&#&0<;<88<99:97886876677887865799887768!&$%+::8>99:98998:;98789;;866788799898~!'%#'8;889>9::98998977678766877886789::889:8~"'%#$5;7::;7::8867899:;9778867968878::9#()'$3>8;<966767988:78778768988968867::8%*,,&2?9<=6588:98;69889879:768::69988::8%(3(&)<8877::9:88:9<;98689:9<98998899877c!(94%(79::9:>::88:78998:<:97788:;88R");7'*1::87<998:;99:988:;::98789:678998L%):7*+,::;86<::9::87;:989988:98876789:998F%*;<**)::9::898:98868:98::97788998N&,:>.*(7;99799:98::6887898988789:88`&-7>5)(3=:98:;8996866889::877878d%.7C7&&/?;;::689896:889868988967788T'*;B8*&-699:9:88>;9:9:98:;9988998898899:987Z"':>:.$*5::8:896:9899::9:;89989968::9889i!'9<>2%%2::;::788789:8::7899:;:9766m$*8;>7(#.898;;::988966887896989::99::8789986U&+6<99,$,69:;:99:9987886897978::88::8668987;#)6=68/%(4:<988699:8:9:989:8878::878::976685!&6<891$$1:;689688:8:9::89:8899889868998668:4"%7:><2#!.8:69<688;:88:9886;87:94;::988663$(6=:;9*)66:87789:97789847886968976874$'6;<=:+$27677877678877887688986866889:4"&6:9;:. "0;99899::889:98989889:96886688:4#&7:69;4% ,;77678:989;;99:9988:969:8688682$'798:<7)'856788778:88798789869:989866-%(788:;8-%6788988:988987899789989876'%*7878980""187667889::99::989988:98898996#%+67699:3#*889::976898899889:99::9989968:6$#*9765587%"!69:76:7389768669::87866:679:9669$#+988658:+$%08:9789889:97699::8976899:&%.;;9778:."$.89886896689656799:978:9:9889989'&+6789:8:1##,:8697869788679889747:8;:988ղ%&,5589:9=:*$&79679:7:668799646:9689679:9889%099:968=>.!#4<757787667898368::889969;:8788$/899:679=2!#.<96747799;978998868;9:;:886$.9=6;8:6;6'#(898:595997889689::669989::8%,:69978>9-$(2:7688:8899889:89966889986688!$+<:99878<90$$/986::;:988778678657889988s !,9::9988;:5&!+:96:;88768::9988:889:89:998K"/86988::9+ ):969:99867998767889898?&5:699:;:9;0"&696788986699876688978898E)6:99::8;3##188766768998988:68878998R)59::;:8978;6(!*69889866778667558688:98[*69;;<:7877;:+!&387766898669898775596899::87$%56;<=<9789;<2%(2:88977:99:66866767789::883"'::;899:97;4'&/:986685475686687788980 '::9;7374)")7:899<98989667988998892"&8::=<:9;;8567.!%4:866866767667889:9887889:2%(9:=9;:99;989;4%$09898::9:8:68766789889:+$+:9:79;9986785'#*68:8:988688986677889:&#-:889:997566+%&29;78788568:8688776899889''1<9:899:;;8<:;1($/8:668678:86997668998*#2:8=<;:98:<9:799&%)::98898867889:878989:&%2::=;::9::8877:*%(8<9866899778978778%5><<;99::86:;7;/&$/;8856::887789887678|$5>;<<:9;;9869;5:3'!(78:;86:8879989x!"2<9<=;:;;:889;5:9.&)48:<87;899::988689989:f&&4=9<=<;:;:9:;<8:;3)&/9::86;99::98778898H%(4>;=;=<::9794'!)99887:6::9989879=<::9:9::+$$8:89773::889:989:97G[OTs}|{||~~|}||{uwzz||}~~}}~~EUNTq}|~z~|y}~~{{w|}||zz|}~ETNUj}|~~~z||y|zww{z||z|wv{}|zzy|}}IUOS`|~~~|~~}|{||ww{}}|{~~|}~|JVRNV|}}~~~}~~|~{{wz|{ww|{{||wz|~}}~}KVSNQv{{}|}ywz|{{}||}|wzw|}z|~NY[VQq|yyzwz~}|z}{z|{w|||}}|}w|}yz|S]aaTpyu}}|}~|w}|}{{w|y~~|||RYqYT[}}zz~||~~|y|~~~|~~||~|{zz{{IXsRXz~~}}z}~~}|}~zz|}||L[zW]m}{~~}~~~}}~|z|~wz|}|S[z]_b}w~|z~}~~}||~|}}zwz|}S^]]\}~}~||}}|ww}~}~{{|}}Tag]Yzz~~~}y|}|zz|~}~}|z}~||}Uczv[Xr|}~~y|wy|}||~}{{|}{{||}Rfz{TTiw|~|~w}||}~~||ww}}|~wz{||}}V^|^Tey~~|}|~~~|~~||~~||~|}~~~|zLWfQ]u}}~y~|~~~}~~}~~w|~}}~JVpSRoz||}z|~}z}~~~zwwO]}{XMg}~}~}}~ww||z}~w~}~~~}z|~~|wT`y~~bOay~~~~~|z||y}~z~z||||ww|~}zN\ww|hRYs~||y~~|~~|~}}z||z}~zwwy|vJUy}mQQlw|~w||}~|~||~~}|~|w|~~|yy|tLS{oNIf|w~y||}}~||wy|z~t~}|ywrOXy~^E\ww}{z{}}{{}|tz||}|w~w|~zy|zsOVw_AQp{wz{{}{zwz||{{||{y|}|}~}y|wy||~tLTwfHKk~~}~~||}}}~}|~~y||wy||tNTzwsRGa{{zywz|}~~||}~y~|y}|w}oQV{|z[CV|uw{}|{z|||}}{{~~|z|~}y~~|~|wweSY{|}|cERwz|}~}}|}}}|~~|z|~~z|~~}~}zwVS]z|z}~}kLLm|{yww{|||~~|}~}||~~|~~yMS_wzy~~rNA]}}~~{w|||||~~~~~|~~y}yOM^~{yvu}{SKJw~{y{q}zw|ww|z}ywwz~~yy~ON`}}wv}_QRk|~z|}|}zw~}|~zy|~~TSf~z{|fLOg}}}w|ww|wvwz~~~z}~~|}~~}~WT`w{|~}mNMa|y~z|yz|}wz||~ztz}~}}||RTavv|~~^QUz~w{zww|{wtw~w|~yz~~||}~BSk~~y|gJMs{v{{|zww{}|rw|||~~y~|z||?Qi}~~wz~oINgw{t{z{|~~}|y|~||yCQg~w|ywVNX||v~vz||w|~ww~~}~}CRbw~~z}~cQXpzw||}|~~||~|ww|}~~}yy||JO`~}z}jQQi|y~}|zz|w{|wv{|}~~||}}|GJa~}}uUJ`~y}|zy|~|}}||~~~|?Lh}w}}~`H[w~~~|wz~~|{wz|}||}|~~}}~~|AUvy~jKTww{}|~|wy~~|zww|}||z|}||~~|D\w~}}qNNl}||{wyzy|~~|}||y||z|~~}јB\u~}~{|wYJ^w~|}||}~|wwzz|wwzvu|w|}|}~}B]wz|z{_ITr}{{ww|~|wy~||{{vvw|~~}{QSvy~z|pRYo||~z{~ww|ww{yzz|~}|rLW}~~~ztVUh}yw|vtzvw}wy}{{}||}~~|jHV~{qzt[L[{|~~}}~ww{~||}||}~~oLT}~}uw{fJRt}ww|ywzwzww{||~||z|}~pSY~~}sSOj|~|~}w|{yy{|}}||~_Q_z~~~|yz}uWM^w}|~}}w||~|ww{{||~TNe||~~{vww_RTo~{|{||vw||w||{{y|~~}}~WWl~}~~򁄃}mXOi|ww|w{|}y~{yw|~~}]No}~|~z~TR[~||~}|yz||}~~|z|}TRp~|}{{]SX|}yw|~~zz|}~{z{|z{}ESv~~}w{iTOi}}|vw||zz|||{wz|AQu~~|y~urVJX{}|y}}|z|}JLo|}v~fT[t|}z}~~~}|y||}TTs~|r[Ui~|y~~~|zz||}}RYs뀁~{z~sWI\}}zw~~}||}|}{JTf~~`OO}}z{r}||}~}{_zkq^sjq^qjsbskp幪dtnjtetpjmjyztmp}qnyyqzbwnw򩧩gzv}睊pz}p}}|筩q}y礪szwnqqtqgvm}쩯dtpnk}whqk秤j|nydsmmgpjbkw^|ktXmgqae橪jqn_mtz[tpy^ntp}gghpjX}khpedkjmnqpgkvqjhnqmsYpdhUmbj񬦧[mtjw[nmwdkmm李_dsdUgazXseq\|jj򩬧Y|ydY}bqmpny骤gv䬯tsatzgzgqdnpypkmvhqjnqvv򯲰wk󡦧}jqnzqn}pw^pqkXmtdwdgqzqqzsny뭯vb|dqkk%*%*****++*******}***h*X**,,,,,,,,,,,,,,,,,,,,,>++--++-----------,),u,,.69::88;756887896469868687676689;7;<7:7<767688676788767989<969836887886789768669<:8:68667769896:;7;886786898988998899;:8:88::8788566898668:869886688969:7:878996678:9889:8:88989889:889::6766879988976:887788779968968778997677997887996:668868986688688667769987866988987698688687789796886976:77:986::86876678877665778646889:8868668988689886:6886:66:8::99889989:;:766887798:87887998898867898898798676:6886:688:8:878898656778:9;868667868968::97899867588:9796:6776:6866:769868:98668988997668:86:77889797686889::87897:787698689879;<988:87668:98898696788787878788766858878668:988:868::898778898686788688676656588786678998698878:8898876898767869898675766566788778678988986987889;889877899766797986978766887889878876678879889;;:8<:88768:77889897668788:87898878:889878789:8659889:;:887788:<88986897889887667788:876678867:88977988::86689:9878988989;88:9689688787:878686654566876966868:88966788:887886:8879:66866787787865656:778689::998:789668898876788997:8:99:89866887898869886678:988798:88:768998767988678:8788:76688679976886788788:98:89667887678778678987789668688766867876678898788:99:9:667887765676899;;::99:9668786678866768867:9987688:99:8:998878776799;;899:866878668;:87688766898798:9989::988;998668899678697668689869;8898766887898:79886899889868::8:7886:966868:;8868988987677889876:7885687788979:989868778877957767::9788668:9668:9667:8668869867887667898787899877887899889:;9::878897679:989887788766899656887678789:99:7889778877988776567:868::99887898676878::99:78987898778767878878::988988:9668679::98787667:889988:79988998899889988789988;9::887788::96689:;;9866889766:9989899889898668:987887869:8778897689989:77899767::9878898:7766788:988987886889::9876788667789:966898988:988:878::87868876887::978985998 8756988;79966::8:889989:;6698858:78798:8::8899876789975988:87:66788:98:7889:98788:99:998:8898:7887789886588687686589989867898898:965788699889:8897988988:9987789788799788779::889789767994986889:88788:89;8876688:77989:98767:;88:9669978868:7:869:99:879878767987796776786966878986679;968::66986988:86688689889986:887789988978867867879985799868::88688987668665686:88789::998766898998;9757:8787889::8665787885968:546886;887689886887977:78789:96456688:988:<8688788998878:868968737;7;:77687:889:986868879887667899878879889887668768768868:7::7889898668876889979889:898678 86767:788988:97899:886879879889989:699779868878976778;897688789978:997998686887:968865898899588798788;9:76875789789886887789:;686776::886789769:68878868768878878:845897887868877889:68676698:9889878869:8788788797688788778:86689887989::9868687686:86686879989:77878:868988:768988798987::89:868448:8662568898688::96696788778997688679889876877:799889:;86899778566988::986678876:98867:99886877:889::988:8899887668::99:86689875::98878898988:9:9:<:868:988986988678;<8:;:9989877679988::86788998998:879::;::889:989876678:;989989::87667688:9889899:;8779;;:8:<878878::98899889;;97668898998989:9;89:;;:97:99868<8789:9:;98898778789:98778898789:9979:7:8;;:89:99646867::878878:68::84698767898878::889878;::68:686899:988:<:768788=9:76966588989989886689;86896:9899868988998998768:6887<89978678688987689869;8:9989987688986679;78996:66966898898879887868::9887886868976899689:7:6865676886:988988:988698876898 8676887898568:8;8:56897686:998988698766889::9898667886868:8:7:679<86:7889::9866889987798678896899878986688677678:88989588<87;6678998866899869867886788778878986788668866776688:69:86977;64568998687786:967887::9:675676:989;967988:866889::87:8897898898679<8667996:9799677668::76<69:8898768::98897889669788963::9886<98867689788566::886:899889:689:98867988:89989:86887665976676676788:8897688;99889:889698668788688738667688;988964678:;::889:98898686866766889858868898;988976889;:6688998877:9889988688676697889:9778876886889576788;9898898669:98688:988998;:667878998998766886686689788687766798698::76::988698678897866876:99868866856997::789668:7696:;88<<866788:;8688769988986678898896896886868:56986788788968::9887887688747866889866788667996686879967987886898768:886786887886368877886788679976788668898899889889:9889886786998786388788786687678898:989:8;:88::86889:9889;:769969768987887 8988998689:98::8:988::97988::8788::889:897689889898988988698987::878899:;:7678668689989868778 8:;8988788797887898:8669:77889:;:7678669668:98788788788:68866886:668;:;66897:878899:779:878988:978:89:867868998766786688677;:9;8:68878878699688:8869:988968648::8;:7569;:9876678998;878568::879:8897::899878988788766787:868;::998669:9887668778687;:66::8868868776898869886:979::9887898876687788778698668978878867698767887:88986:9788778788766876886887667678:9:98989;976677887668868::88766778 86588688987998899898898899878867986789989;:998687788789889;969956699:986686686779889868:988::8:98987977899778988788986:<8;;899:9776966988698788;88978879879679::878988766|{{wv{|{wz}|z{|zt}wsyy~~z}~y{z|}|}~}}~}|}zuz||}||}|z}z~~|||}|{|}~~||{||{z|}}w{w|}}|}{z{||}|ywzwwy~w|}{z||~~~||}{ww{|z|}||}{{||}~zyyw~~w~ww|w|zw|~~}}~|||zww|}v|}|{||zw{}|~z|}|z}~}||}|}|wz}~~}||}~~||zz{{z|ww}wwz|||||}wr|wz~|wy~~}|z||{}}||}}z|~~~}|}||{||}{{|zvz|{z{}}||zz{}{wwy||z}~yz}zy{y|||{z|}~~}|}||}w{}vw}}}zzw|w{}{ww}~~yw|}~~|ww|}|}||}~~w{}}zww{y{w{v|w|~}||~~}|z}{v{}|w||w}~~ww|zw|zz||{|}{y|{ww{wvvy}|w|}w|v|{~~||}ׅ|}||}z~~z~~|~z}~||y}|{zz||y{}}{y|wwy{||w|w}|~~}||||}{|||~|y}}~z~z}|z|}}{y|||}y{{yww|~~y}w}|~|}~~|yz||}|w{y~~|}z||؁}||w|}|||{|}|~}||ywy{||~y~w}y|z|~~}wzz|{w|y|}|~||y~}}zw|||}~||~~||~||}}zw|}y~w|wy}}||}|w}z|||}~~~w|}~||zw{}||}}||~~|}|w|~{~w|w{}~}||~{|zw||{|}~~~y|~|~|}||zw{}|y{}~||~~}}~~}|{~w}y||}~}}|w||{{w}w|z||}}|}|~yz}ww{{z|wwy}}|~||~~|}~}|yyw{|}~~}ww}|z|y}}||{~}}~||{ww{|y|w{||z|uwy{||~||}~yw}||~z}|{||y~}}~~}}~z{||{{|}y|w~|}yz||zywyy|}|{{|~|w}||~|}{w|~y{}y||}||}||{||}y}{||~{wy||}|zy~}|{ywwy{||yw{||w|z|~z|}w|~w||y}~||~}y||}y}}{{|}wzz|}~~|z||{{||}~ww{{yy{|wzwz~y||}}y|~z~~||~~z||{{|}{}~{{}|w~}|}~~}|{{|}wy{|{yw|y|yy}y|||~}}|~~}}~~|zww{}||~||~{{~|}~~|}||}|{}|{{||{w~|~|z}z~{ywy~||}}||~wwz|}}y~||~y}~|}~~|y{{y|}}|y~|{|}|y~}||}||ywtv~|z||z|~||{w~w}}~~w~}|}~}yt||w||w}}~~wwz|y|}z~w~~zw|}||{z|||{|||~~}~~|zz}{{ww{|z}|||~z~z~|||}}|||zw}|z|z|~}~}~||}~~wzwwz}|~~|z~~w|z|}}}{||{{||{z|}||y}}|~~}||}~~w|}{wz|}zz~|z~w~w}~z~{|}}|{wwz{|}}w|}zy}~zz~~~||z|}zz||}||}~|wy~z~w}}|~}}||{}|{z|}|{w|z~}wy~||~~|yz{z}||}~zyz|}~~z~z~||}||z|}|zzwzw{}||w||~|wz~|wy~}|}{|}w{}}|z|~~}}|}w~}z|{||zz|{||{z{|wzu{|z||~y|~|}wy~}|~wz|u{oy}}|zyw}w~||zz|}{{}{||wz}w||}wz||}~y|z~|z}~|}zvz}{~{{{|w||}|~~wz}|ww~yz~|{wy~|}{y~|{}{w{}y|||~w{}{||wwyz|}~~|}|{z{}|}|~|{|~}|||{|||~||zw|}y||{|~y{||z}wyz|~~|{ww|~~||yz~|y|~}{{w|~w}|wu{|{ww||wwz{||́|z{|w|}|~~}|y|~y~wy}~y}}zv{}y}|w|~~}zwww~~|||w{z}}y}||~}{|{yyw}||y|}y{||~}w{w{zz|~~}}||wzwwyz|~||}|~~||w{|y|wzw|w|y|}wwz||zz||}}|yw|||z|}}||~}||~|w|~}~yww|yu{w{vy{w~}w{||}}yw||}{|}~z|~||~|w{|wy{~w{w{{wy|zyy~}|~}zw|~}}~{}}~wwz||}~yr~}}y~||w{y}z||vww}||ww}~~||}~y|~~||}wyw{}||~~}~}w}||zywwv{yyw{yw{w{|||}~zy}}~~}}||~||}}|~wy~|ww|z|}}y||zr|yw{y||}||wtyz|||~~||}~~||}}||w}|y|wyzwy|}||}~~}v}|y|}}|}||zw}}~yw|}~~}|zz~}|~~}|w}|w{yy~z|}||~~zz||zw}}y|}|~v{w{|||~||~|ww~~|y|}|~|}~~|yww{z||z|~~|~~}|zyw||wy|wy}z}|w|{zywz~|y~|zy~||}|y~|w{||~z|ywy|zw~~}y|}wy|vy{z}ww|zw~w}}}yyz|||w|}{w~~}|}~|wwz|}~||w|w||}ww||y|vw~|wz|}}||z|}~y}~||{||{y|}}{tz|yw|}|~|wwz||yw{~~yww|}ww||{~~wz~|z||y}~}zy}||y{|w||{||yry||zz||ywwz||yw{~~{y{||yy|}|~}|~~||~||~~||}~||y{|y~|{}yq}|z||z|wwy||}|{y{}}||}||~|}~|~|}}|w||~||~{y~w~zy}~|z||z|}|}~}}~}|w}~~||~|}~z~|||{|||||~zy}~||}~~||~}||~|}}}|w~}~|z|z|}~~恃{w{|wy}w|~~}~|y|zz|}||}}|뀃}~}|{||{{||{|||yy~{z|}}~{w{|wy~wy}|{||}}|z||}|z|}y||yy||yywyw|ywwy}{}z|}~~ʁ{{|{}~|}~{||~|wz|w}~~|zwwyw{|yy||y{{}y|}|z||{|wy}||}|wy~~||~y}ws|}{vw~~}{ww{|~~|}{|vw||z~}}~{|~|{}||}{||{yy{|z|w}~|wy~}||{yyw|{{|y}zyw||y}}y|{{y|}}|w~}||y~z~~|}|{|~}||{ww|{{||{{}y~}ww}~z||{||y{y|{y{||{}||~~|w~z||zz{||}|{||{ww}{w||y|}|zyyzyz|~}}~{wy{{|}{ww|}|y|||zwwz{||}||yu||w|}~|z~~||~~}|||}~|{||w{~|y{}~|~~~|w|zz|}}{{|~}||}~w~~vww~~态~}yw|ww}y{{~}|~|y|~}}}~}~}z~zz}~{{|~}||{||}w||~~ꀁ~z{y~ww|}y~|{}||}||}~~z||z~|z~yz~|z|~}||{yyЧ򩬬󩭬ܩ񦡡󩬭󩪣멧ۡ詪ĩ׳دĩʤ䪯𤡦𩧬է򦡡󩪣䣪᧦쪦㣡⩣Ҧ઩ۧ褡줯⬩⩪񬭬멬ڤࡤ觤¦Τ天馩ɣ󤩬֧ͯ歧ߡ¡Ҫ󬯭Ѫ£렬笡ĩڤ۩吝𯰧ܤ𦧡ߣ򦧣򣧧멯𪰯ɩ쪧毰뭰窯ݧʯ릧ƪ榣񡧦𣭪ѧʦƣ歯ꩯ꭯ꤧ:98878::887568896887688688:968969696796887656878877677898688987788678898899866886886886887766876677699897886889798669:879986868986958858566766876899898989868::8686688668899889:967578675567668766767998969:879:846688646788:8::886566866867689:8669:879976786679889798667788586696878766788986689876887868::98869866768977668678868789987:767899:9779955867889::68868:;:698688:9;677686886868898895664599668:987669887628868:7569:88;8898876788787698876688768668678737688:6:99889:86689789678876686899;966::79887965678868688797887887687669867:99;:76998:8868;86679:786566886788668868789988798689778986567:88986679986686765679986688668979878898767975778997669889866769:866876877658788768766898866886687547:7689:99898778699779966:9866868766787876789986698667765698799:857;;778998869967;:64:988:887678:887789878;;766:965787896768;899889::9858868988668786676689::657;8789878:656889:8:7867967:98898688:85568::988686677688986897768878986787897:89767669::878986647:86968::9867686688798779988766788789778788798876686:;9887:9668868678664686887987897789877678878987887668:69:988988:98::76887668:688:866988986688778998778998778669:8998779;6:979:99889699:866889866878898988986689688698:98868;:;:669887887678898686689877868877998997698788:898686;88:966:7889966::976787678768896569:9886886688965899;6998;:659:9<9:9<686899<87899889789987798768:=;8898558:8798676569:8:66479:7678:98878:<88998876679:899:98898669:9898764367879665798988987<;9877898 868:98 89::989899646788;898<86989;789887889:988:85688668::98868:8679:9<887::7877979778898878788998899;::8669668::878755886887:6768:886799887787987668;9889:9866889:87686568786769676988;876788789788:86676:9889;:878988:9859:8898;88;8869:7:89:;:8667789:988986679:989::8878::88::88;876699688:88:867;:8989987689:8789::9889:89887658:68:89:778968798:8:89:87986867768;:88987998896799899869:67869:788567:7:9:85887788:889:;98778:99:988:;:8667868978868:99868756:8:9::7:;9667866899:9886:887689::9889966889:88:8986887:9:7998::99:9676678988:988768879889::9;8678:;::9688787;8:9:6688679:=<998899:98898789988;9889:97<:8789:99868988:8:7:688<8899::76678876::9987988:988789::9;98789978799689778499;9<868898788989:989::9889::8768877899688:86889:988:686787::98878767968::86699867;988768698689889889:797887::99876688778:8776679967::899886868:7889:898988:96677676578876976798768866;<9889868768977887789898:88:8876676676866899757876:<9678899876876887789:87:798878788766788668698799766789887868868788778:76:68866876677868699887686788676886887767:66:699885788788667889986887:889886896887667886966:667656789:8688668:979868988<899898688966988686867978657:878966799799797:9:898668::876789868667766866876657686564687886676886679868868698988988998766899767876568668667987889667668:788768987787868898:98988789:9668988986678899:;;98768:88767899899:998668:96889689;988::98987688689986;76878998878899:9::99866899689988689868:9867866877578858458779::889:8979989988789:987668667668:8866866768799898868866:889877898:886899::989987889877668:886688686:9:85876798689688:99;8869:;;:889::9887788988;86:8:9768::89988789;96567668998998976688778786788988:868688798986678878766889:78896687878688986868856569:86678986688689:9656976678998:86865778898699897686786568::86689889877899766987668996866887:689889988978989769679877:9887889877866878:9889::96866998:57866776996889869789898976689::678866868766877876;:988766898896889889889:88667889:667668676566:789689689::98898868898:98878;7877886688767885668878::986689;68967956678655868689897||}||z}||}|{zzuw|}||}~w||zy||w||y|~w~w~y{w||}{wvy|{}|{zz{{wzz}~|w|||zz|}|y{|}}||}~}}~~|wy}|w|}w||y||{{wy|{ww{{w~~}||}~z||}|y||{|wy~}{~~|wy}|y|~|y~v||v|uwy{yy|{w}~~}|}~~|}~~|}}}w|}y|yy}}yy||~}|~~w{v{|w{vvw{yy|{wwyzzywyz~~}~w|{|twy|}||wtwz|||}|}}wuywy}wywyyww||ywyz{zzwy|~|yww|{{w{|yww{}||~{}yy{{||u|www|{|{ww{||}~~}yww}~}zy||}}|{z||yww|~}|}}|w~|wy{y|~{{wy|y{||w|{z|~~}{zwz}~~zzvv|y{||~w||y|y}w|}|w{{w}w|}|yy||y}|}~}|}~vywtv~~ww}|{yww}||{yo}||ywy}{vw~|||}~}}|{y{||z|{y~|}{ww}}zy|yww}}yw{{|}|{q{y||}y~}|}|wy}~{|~y{||{ww}|w|~~~wyz~}||{~yvw{}}|w|y||{~{}}||{||{wy||{ww}wz~zy~|}|}}yw||wwy{{|yuww||w{||yw||y|{|~~||{}w|~{{z|~|wvw{||~}ww{~|wwy|}w{wuy{~~~|yw||ww|~{~|{}}||~|{w{~{vz{|~~zwy~}||~|ww{w~|yy|{w}{{wv|{}}||{w|{ww}}|ww||ww|zvt{{w}~~~||}~|{{|w~{{yw~|yw}w|{yww{|{|{y{|~|wy~}ww{{wuw|z~|v{{{|~}||}yw{wt}|||}}|{y{}||{{|}}{|{wywu{}{|w{w||~~||~~|v}|w|~||ww|}{|yw{wwy|~wu{|{|~}{|wuy}|~|{|y{~y{~}||}~}w||}|uvw|}|}y|yw{{w||~|y|{zy||{|~|wz}{}~z|~{y{ww~|z|~|ywtz|yw|~|yzy|yw||{~}{{~}||{ww{||{}~{{|{|}z~}}{ww|y~|}}z~wy}|w}wz|ywtw|y||{~}{}~{{}|{{zw{|}}|{zz|}~}{||{ww}w~~|}~}|~|{w|}|zwy}y}}}wy~||~|yy||{{|~~}z{{}~~|{{|wyww}~~|zz~y~z~~||}}||}~y~~}wy||}~|wy}{||~}~}|~}yy|~y||w~|~|}|w}yy~||z||zy{}||}y|yy|~}{{}w||{{~~}~{y~}z}}|~}w|w}|~wyz|}~~ww~zyz|zy{}{y}}|~wvw~~||w||yw|}|~~yv|~~w~~|yuw}w||z|||{||{{~}||{y|}}||uu|}{|w{wvw}wwsz{wz|}}|{z||}}||{yww{~|~~|}~|ww~~|}{wtry{|zwwu{}|||{|zz|}}|}}|ywy}~||}}||}||~~|~}~~wty{|||}|w|{|}}|{||}||}}||}|vw}|yy}~|}|w||w{|}{{}z{{z{|}}||{zz||{|}~~}}~|wwywy}}{|{uu||w||}{wzw||}}w{}|{zz{|{}{wwy|}~|}}yy||}{w|wvy|{|w{ww{w|||{w{||{}z||}}||}ywwy{y~||~|{}~|}|u~|}}||||}|}}w{}|wwzz|}}|yw{|~}|}}{||||}|zww~w|||}}|w{|~|~}{y||z|~}}~|}~}|zyv}y||zz{|w|{~|}||{~|y}w{{w|}||}~|{}|}}~~wz~~}~~|w~y{}w{|}|}vw{z~}v|}{z|}||}~~|zz}~}||Ӂ}wwz}w|{|}w||w|zvy|~{~yyz|ywwy|~~~||}|y}||zy|~~}}~~wy||||}|w||{~z~~|~~~y{yw{|~}|~}||{y}||}|z~||~~|y{|w|}{}{}~wy||wz~~~}|~~||}~~}|{|~~}|~||~~z|{||w||}||zy}|||~~zyy{||{y~~|{||}~||z|~~|{|~~z|{w|{{}t~~~|y}||~}{||}~~}}||}~~|~~||~}zw||{{}~~y||}w|}}||}y}wz|z}||}{z{|{wzy||ww~||}y{~||{w|y~}w}|}}||z~z||z~}{ww||{{||{{yw{~~y{}~||}|wyw||w}z|||~|~}|~yy{{w{wvz}|{w{w{~}{w}}wy||}~}|wyw|{w}~z{||{{||~}}|||{yy{ww{zw|yw|~{v{}{y~wz|}~~}|{{w|{w||{{z{||}~|zz~}||{{||z||zww{}|ww|w~}{~{wwz|~}}||{|w||w|{||{zz{||zww||ywwyw|}{wwz{{||yy||w~~||{w|yz|}||y{w|}w||{zz{zwzwww~~}||v{||{||ww{||~|w|}||}{{|}~}||}ww|~y}|zww{||ywy~wwwyy{{ywwvwz|}w}|ww|{}y|}|}~~||w|}||wy}}w|w|wzz|yv{}{}ww{{~~z~z~}~|wy}}{w{}~|y|yw{{ww|ww|{yyv{w|wvwtw|{||ww{w||yw{~}w||w|w~|~|}~|}~~}{wwy|~{y{|{wvw|ww|ywwz|{||yy{ww}{}|{y|~}{z|z}y}|}|~~}}~}~}||{{|~yy|||~|yw{||~}{w}||{y{|~}~~~~}yy}~y||~y|||~}~}{y|}|w||w{y|{|||{|}~~~~~~|ww|~~w|~~}||wy|~|y|~|y{|yw|zzvz}||v|tu|{{}|}}||}~~}~z~~|~~||}}z}|{ww|yy{yw|||ww|yw{w|z|||y|}wwyw}|~}{{}~}|}w}~~~}~~|{||}~|{{yw|}|ww}|w|w|v|{w{}y|y}||}}||~~|}w~||~}|{{||||}w|~zw||~||{|~yvw{yww|~~~}~~||}{ww|}{{}{|w{||}||߁|w|y|}}zz~~}~|ww{|}||{{|{wy}||}~~{||ww|{|{|w|}||w}y||vwvy~}ywz||ww|}|w|~yuw~{ywy{|~~}}y|wv{{|}}~}|}y~}~zw}w{}wvw}}ww|}||}~|{{|{wy|{wy|~~w|ww}|{w}~||~~||{}~}~{w~yz~|zz~||z||}|}~|{{|ww|{|~}|}y|yw~~|v{|yw{{wy|}||y~z|~}~|~zwy}~w{}|ww|w|{wy|{{|{y~}|{ywy}}||}w||}}~|}|~||wwz|}~wy{ywwy|}||w{ywwvww{|~y|y|~~||||w|}||~|}z}z|zz||wy||{y{||vwy}|{|~|ww|~y|w{vww{|yuv|w|w|~}~{ҞҬ档ҧ񪡬롞档誦謹⣡觪᧩즪欩򦧧㦬æԧا䩯򯩡ҧ򯩡媩ӬЬ⪯罹էԦ֦ᯩ٩맩ܩ頻ӯ礣妯Ԫϩ馬ܤ꯬飧婦榡榡󬭧覡⩪ݤ馧䡪񣡧󡪪㠦򣡣校ަլԧ欩߯æꩧ駬ϡȦ񦣰䬩ͣ⪧98778876587887:7677667638668;<:796687799:8789::;886<*$-889588986988988699789:88:88:99::889:6899877=-&(67889699:9689;9889889787699;:8:;:9:9688998869:98998B.! 9887676877:7789::86:789788699879;::76::88;889::886,! :98876656:66968688986848:67:8869;9:66:;88;98668::9:4.#99866787887898689:88987668::97;978:;:889::9968989:9:/%689:986676688:988769887668:<;:6678898798898899:.#9988679:866898896899869887788789988989:8598998778::0$!889889868878688986887889:8998766:;;9:;85889876789:1$"|889;89867887::866876678897887667889;:7886898:2" R:97667:<68868::89986688788986788668:9889::9886899;6$ :788988788986889868876689<989988:998679:9:;7&"3887899879:87869::986476689:977887899668867;::988;:9685&#/66985698<989988:9:97988:89989798868;88;9978986<7($-689867:9988998:8987:989899788988:9889:89978988:6)&.889868:96899:989:88698986::6889889:98876678898897898985)&/998689969;:9986::88687986::68988:986;:989;;:998:86(#.899668869;:99868:88686986::68988678986;<;99;:8998798(#07:97676768998686898:89869979:886689868997787699898778::)%/6::886678898868898998998::88:978;<989977988:989::*%+6;;88667;889868::6776868:8998;:89989:976:<989976988;:9::9*%%8778878:8:9899<8669:989;:9;:89869896899688:;9::8668::8:=/'!:88678798788:67889:88::;:9;::79::9::996:998668:99::-)#889889;89889688988998:;9899:8::99<:88;8987799:,)#::9889:9:998689:98:989:9889889:99:89::988;89988988<;,(!::9889:99:8678:98:8899889<<;<:98::9899889:9887:=;,(7899:87889899887889;8688:<:;:<988::969:9:89:988;:-( 8::9887866868988988788;67:98:;688:788<996:;:;:9989:9::.'68988998977879;9988975:69<;988:<88<;;9;;8:989988:;:89=0&7899:88789:98899886:9;98:8:889::988768<;88:<89:89:6<:;7# f789::99868:6688::898:98:8:7899889768:;99<:8;;67:8;:;4&"Q789::9886786;6579::98898898:6898778:;99:978:98;;66:9;9<4*#?88998687;66889:889989889::889989;:8::88:8;:<7*!>9988978867899:6898899:989989::9:8899:9::89:9<:<:*H:987889988789:98679:;:8:;::98::9:;98;:998789;;889;<:;<)N9877899898789978988;:7:;9:98;::9889988789::98:;:989;=8::)L887789989877886:<968:79;8988;;9;;9668;99878988:989:;:9=6:7)#E778:;:99::9<:9889::7899;:8<::;:<;<9;<;;869;7<997<:?8+#I68989:97889987699:989:89:9:88<9899;9887886896:899::=8)"?58977:96899::987889::866769::;:8<978::88;85898989:8:88::;=<+!1588789969988988:9::897::88::;9<968::;<;7797:8>/#'6688998789887889:9::8:8;:88:98:88768:8<;;<86799:7:.%%87899:89::98876889:9<<:98875886886698:878568;:=<9-$%889889989::;;::99889878:8987:989:66867:889889;887859::59=5,&&8::7698688778:98898688986984:<66<:9978:77>89:<8<:789<1*$%:8667899689359798898766898669:;88659<76::8:<.'%!7667667856858878867889<;:876899876;79:66::<<7("%&88788769899::6988766887667789:9868:9987;89:6698;:2&%((98867886678846997667877884688789668899879:8898;;2)''!i66776679989<<879866:96568876686789::768898;7+&&'"^6689987657668:6899889865678866898766788986688;3'$%&!^7899:688978;6887667887899879;97688,&&((!f8866:<676:7585988 68678866878:;;:868;;98988:,())'a98867:9:67866898865669755687876769;89868877:;889:.''*4!c98897898878:8868988698898655997765889788688979977::1*)37"Q:8898997889988689688986887867669978678798989978:9+$&76%"L:87789868986678688678686688768986878656588678898788::;5&#'92$#898667876898668867868679966786566886989968898787:;<;2!&/>4%!+89767768688:896889886788676788;<9:887978:69::.!)6>6)%*79988779688;:8:8988698877889:;8865778:88688:68:97)%,::7&$*6:;:987;8866866:89886566<989986856677676797876886:69:83!"*;88# '~|{{||{wu}z||{zw{{wy{wq|ww|z~wy|zz~~|z}~|}}||}}|w^Qc||~u}||w|}~}||}|w~~z|~|||}~~}||}~~w}~~}zzcUYy{||}~y~~~w}~}}~}}~z}zy~~ڄ|~~y|}~~}||y~~}~~}eN@wy{yww~|}||}|{}~|{}|y~~z~}|~}}~zw|~~}}||}~zy}}jVIy{{wvttuyy}{{}y{~|y|zzzz~||}y|~||~~}~~zy~vbMH||{ww~wy{zy||~|{}yw|~|}~|y}~~}}~~}~|~~|}~fJH~}||{yzw}z{zz{|}~}yz}~z|}w~~|z~zy|}||~}}waJH~||{wwuwyw~y|w|||w|t}wz|}|}|y~~ww||~}yw|~tgMC~|yy{|{}}{|~|w|~}|}~}zyy|~z~{|||}~~yw|~}~hR?y||yw{yy|}}|}~}|zw~||}|zyww|ww{|}~}{~||}~||~fNA~}|y{~}ww|~||y|~~|w~}|zz||}{{|~}|}}~|v~}~}{{|jQJ|}~}}~|y||{|y||}~}w||z||~}~~|{ww灃}v}}~}{y{|lOK}}|}~|y{}}{|yy|zwyz||}}~{||{ww{}||~{|}|ywy|~|pLG{ww{y||y||~~|ww||z||}~~}|y{||yww|~}|}|}|ww|~wOG{|}~}||}{||}}w|}||}}||~|w|}}{ww|~}|}}y{zTLq|}||{{|~|{|{|w~~|ytzyy|~~z{|}|{{|~ww||w{|}~y|vTNiwy~|vw}|~||}|~~z~||}~|~{}||yw|}||~~{|~|yzXOey||w{~~||~~~||~}z~}|{}|||}}||||}}~~{|~}|y\Tf}}|w|w|}~|}|w~}~}yy||~||~||{ww{|}|~|}~{|~}}v\Th~~|y|~w~~}y|}|w|{~|ww|~}||}|y}~~}||}wYNf|~yy||w~~}y}|}|y}y|ww|}|y{}~|w~}~~}|zz~|YNj{~{y{y{w|~~~|y|y|~||~}y{~}|yy|~}y}{z|{w~~}~}z{|[Riy||yw{}||}~}}|w|||~|~|}}||}~{|}~~{{~}}~|~]S_w}|yw{}|}~|y|y{{w|w}|~~}|}{w~|~~{y~}}~^SS|zz||{||~|~~߆|ywy~|~~}~|w~|~w}~~w||~}yy}|hVJ}}|wz}{~|{}||w{|}}~~}|~z~~~~y~}yy}e[N||}}|~}|}||y|}~}}~~~||~|~~|~~}|||~}{{~~a[N}||~|y||~}~~}}~|}~~~}~~|}|~~||}~|}bXI}}~}y{}}}|~~}}~~}~}~~||~||}|{bXE{}}{||}~|~~}|{|}|y||}~}|~w~~}~||}}|cXG||}|{}wy|y||}}~}|{||yz~}w||z||~~w~||~fWDw|}|}{{|{~~~||}{vy~~}||||}~}~|~~|}|~kTA{||}|{|~}|||}y~~}||}}|{y}}||~|wzMHz||}|yy|}|ww|}|~|~}|{}}|}{w|~|y{|tTK{}}||w{|ywu{~~||~}}~}y|}{{}~{|~}yy~s]N|}}||w|{yy}||~||~~}~|}}|}~}}}}|}}z^J}||}}{||y{}~y|}|~~~}~~}}~~}}~~~}~~]A|{|}|}|{||w{~|~|~}~}|{|}|[=|{{||~}{|~~{|~}}z~~|}}~||{|~}~}}[D}|{{}}~}{{}}|yw|z~|~}|ww|~|{|~}|}~~wz\N{{}~~~|}~z}~~|~|y{~{|_Nw|~}~{|}~~}zy~~~|~|~~}|~}}}|{|}|yy}w|~}\Kv}{{w}~~~|z|}~|ywzy~|~z}}}|v|~|~}~}|}`Imv|}{|y~~}||}~}||}}||}~}~z}|w|{{~{}iNWwy|}~|z|~}|z||~~}}}}~|||{w||}y{{fRR|{|~~~}~~}}||}|zy}|~~~}|}{u|}w|}wy|}{|vy}~cQR|}~}}~~|~~~}}~|z|}~}z~}~yy}w{||}|~}|{}v~vvbTU|{y~}w||zz|}~||}~}y}|~|y~}twy~{|{{||{}l]ORԁ}yw{|~w}rv~{~||~}zywy||}~|wwy~||yu~{y}gWRJ{wwy{yww{|vw|v||z|}|ywy{||}~}{y|}|{y{ww{XLRT||{||{y~|y~||zww}}zwy{{|}||y|~~}|{}ww}pTRXX~}||wy{}}ywz}|tw~~zww{|{{||tw|}|{|~wy|}~}z~|}|o[WVJwy{{yyww{~}}z~}wy~yvw||{yywy||w{|~zy||}|{`TUVKwy|~~|{yu{yww}w|~~||~}wvw{||yww}||}}{wyy{||}}~|yw|}|qWQRUI{|~~y}|~{|w}}||zwwywy{||}}||{|~}|{~{y|}||bTUXYJ}|ywwyy{y{u|v~||ywwyywwy|w{}|wwy}{||y}~}~}|bX\\VD|}}wzy{|wwyy|||yuww~{vvy}z}{wzw~}~|w||{z}}gWV]sJ@|}~z}}}{}}||y||}}y~||~}yvu~{{yv||{||w}|~{~z{l]\q{L@||~}~~z|||}}w|~y}}||w|}||{}wzyw~~{|w{|{~||~~{}~_QTzwSL}z{}~|w}}ww{|w|}w{|w|ww|}{y}}y}z|yuwu||w{|||z}|vTNVpQM|}yw{|zw|~|ww|}||}w{|w|w{~~yw{|yuyw||y~|~y|}||z}{pJUhsSJ_}~{y{zy|w|||~y}}|||}|yy{||w{w{|||}}{~{|y~fI\wy[S^z~}}{zw||}}||}}y~|}{{||}~||yu{z}|}|w}||w}~z[RbzTO^w|{}}yy}yw|||yuww~|~~|y|uyw{zw{y{~{|{w||yy~|rJK]}}MHWm۞󩤤sy詪ڲjVtb𭪤haҪda妣򧤪񪯯da󦡡h[䣡nU˧jXߧmd篰ke鬰g_k_qgqjʦwk審|q毬|q򯩡yjסꧤyjzn}pppߵ𩣣td𧡤ժzj¬zjwb᪯w^w_v\qXhaqeʦ}jͧd}XzR觪ݬz\|j䧣j|ebꩪjv졣絛٦nn짦ħmn˧qsĩ}kn毩vnd禡詧wgnq駧릣󧩧ꩧqnww઩ܣթzvtd̡ǩqsteɡ泥vmnsbɦ󬯣֦qswyd˩ǣw||t\ʬêvt}dVʬͬ}|gVįmqpgïqjtmhdspdۧۉb|zpznqkde}hav<<<<<<<<<<<<;<===================u<==<<<=<===========h===u====?B67::777B67::777Gv=:777    '?!"5=>::87899::&H"%7<<:;:889:99:*H"&:<<:;99:98.C%:<<;988:;::88'H $7:<;8679::98&H$&69<<96899:99';")79;:989:989::+0 *8:;99:;;989::&-&*:9866<<:988'.&*:9:98;::9::'.%*:9:99889:(/%(88998)0&*9799:;::99:(/'+:9::989:',%,;:99789:&'!*;9866889:*")=<979:998668&&#,;989:889989&&%.:89::89:99:*&%-;:;;:9::989:9&)$*;;:;:879::&+$*::989::)($+98:98988988:'!#.:8::7989:9767)"/;:9:8;9:99:89& $2=<9:997989;9:*"0<:8988:88:99'"0;978879;87988& $2=:8:956988:9:*!$1;9799779989'!#/:8799:79:9968's#&0:98::958:;979&O"&5<::88:9::9:;9&O %2::89;99:89:8&O &299:8;:99:'L!'289:8;::99::<<&N!'289:8::9:'T $29889::89878&F!#3;9:;99:98:978&6%%6?::<88:99<<::+0#&69<;::8:<:<:&0$*::789::89:9:9+2#*;::89;<<::<:&4!*::;<<;::99:'2#+;;<;:8::9:)7#+=<;99;:=<;<:<'9$*:;;99;:9<::;&('*7:<:9:<:=::<;>''(*:9;;:99::;<&(&*9:;<;:<;::;;::&)&):;:<<9<<::<<;:(((*:;:;;8::<(*&*;;:;;88:<:9:<<'+%*:9:;;:9<<989::'&$,;8;<:;:<;88:;:& $.;7<;8::;98:>>:& ".9=868:;:<;;<::&"/8::99::<::<:<&#288;;8::<::<&%3:89:89;:=:9:9;& #2;:77:8::<:899<& ".;;77;:88:99::<&d"/9;:9:;88:99:9:&@%29:=:7::9:997'ILv|z|~~&LS{}}~~~*KT~~~}.ES~||}|'HO{}w{~~|&OTw~~w|~~~~'L[z~|~}~+kG]}~~|~&eT^~|yw}||'fT^~|&fS]~}}||(hSY}}}||)jU]~{(iV`~}}&aSa~~zz{|&VJ^|yy||*LC\{~|ww}&TMb}}}|}&TRf||*TRe|&[O^|{&`Q]~|)XQ_}|}}}|}'JMf|z}zw{)ELi}~|~&HOo~{}~*DLk|}}||~'BKk~z}|{~|{}}&HOo|vy||*IOm~{{z~~|'JNh}z~~{~y|'NTk}v|z&KTu}|~~~&HSo}~~~}~}&HTo~}~~&JWp||~~&JVo|~|~'HOo~}}}|~}z|&JNq~~~~}~z|&yRSy||~~+kNUw}&kQ]{||~~~+oN]}~&tJ]~~'pN_|~){N`~~'~Q]~~~&YW]{~'WX^~&YU]&[U[(YX]|']U^}|'_R^|'UOa|}}&HQfz}|&HLf}y}&DLi}~&CMo}|}&DRq|}~~~&GNoz{}}&GLgzz||&DLh~}|~&BRo~{~~z{'bg.gp.eq.^p.ak.kq,gz,_}&q'q(p}(py)s}-t-p&td-g[|&qh&qn*qn&zk+m})wm)dh*^g&ak*\g'Ye&ak*bk'dj(jq&eq(ap(aq&dv&dt'ak&dj&np,js&m},j},d}'j)j(m}+yv}*vw,ys}&zsz(yw}'}s'n'sk&am'ag'\g'[h'\n'_j'_g'\g)Yn// / // / /////////////////////////.>..............................-}-9/%#*3:<8::668::879:867987789987;8897688768::74;:88:868786689984,$$.7:<97:;:8897789987789868:87867788978:868786687;:5+$%.4?:55789;97789879988776468877668868::988656656677:875-%&+48:86676789876789987667866788688689898876766;89:7-%#$-6889866787789986689:8876789::87665599:996.&""&,/2499877864778:989988986677668:9668784787:<:6-(%&''()7767974887687998898669898846556889:9988:=52,&$&቙76778747668898664689887882866766788::88::<;785../7::866788:878768878677667886686798667887788:8776798<<8:;8::97788987767668878456678:<8678689876678766::;<9987::9;:8::9877887876766789:988986866877667889:6659889::986687897676566788998987667766799889::;8967798899:9766876676687786678879989:9986688768:5778767998::8868998898875687687686678868:99:9896689879;699:878776::887::9878987887655898786566789988::998797678988958878779;9689678:;:8689966887789878767;98776:97699668::878788::878789988998875889967:7677656897799678987887967877878987789778:9889887699885776677867798979867668766789887898778679::8789889769887688765899887677986766797679:8787789987679:987898899:99868898:677867898898868:978998687789:986889899::99:678:;8:677895799879886889889788778:<788788988998<889:7898867889:8775688786678899;6788778:8876898798899887:8988588668868<7579899868878646889:995578997588768:86889887676987659;769856;:77878967988767:9789:8679;577:7887;8677<98:97857667569667879:988986788789;688:8878898788:98:8786799:88:8866766788:988677899899:787::998788768998988989889768667898::98898799879:998599638:7688:9:98:878677889:98898798878998598963897699:8898:878688989::88789::898968898788768898::9965979886889:98898988767889:6:996988:9889887787898:98856:89::;9;89::98878998977886::7:98::988987:7676977:88688567998:8899867998656898898699::76988987786568:8895:7679988::96:678898778::8788:;998:99:88;:8778766897896:8668::87875:778789:9886788997:9:88:8998877889::86567886786988789:86887<99:8789::9887887898:9:88:8:789:99889988767878657867799878898;99:866789988:8867::98:88989:;<;:8768667889:68669866899767887876968766889898679987988979;;:88:76898788:78:9889876688988665:698766778977878798898:89989;;88986568:78:8988767798786<8878988988798898:78::878878986696956868866897568778576;75689::99:8878;;479989868::77678637:8579679:98679979789568679879987537:868:99::99:988:978867866788688557887667878789889788978768869::9:;:9887668988787977878866767887889768876787885::9:;:9::9889899678897788778987768:99:8986988964786686686;:989;:8::9::989867997789868;:88978:89<9:96878964874696566787::989;:89::99::98878996789878<879:885899:9889868986886677869989;:8:;;::<<;87898898688987:869:889688989:89967::889866877879:99:;;989989:;:878:9967887:978:79:68;::7978:89836;:689966766899::;;::99;;:9::899:;;7::89:8899889;976789::98:9877998359:8668::<;::9;;:9::978998997:98898899889:98898769886678767898656::;<<;::;;::987899879878898989876698776789778866:;<;::;;:99::889::9988998898998968876889889878;9776789::<:89::99::9889:989889989:68878:9889878:988767::;:99:;:998:89:8899878:889889876697669::9;:;:8998:78:889898878:8 87876988767;;:8:;;:;;:89;;:9968:8788987887898 8:87557987689;<;:99;<<::<<;::96677889988;88:88789::99:889:8798776789:;<;::;<;::;;:98998878:88:88:8876798898:77986689:<<;;:<;::;::9::998998:99:8876778:988966::7689:;::<=<;:9::9:;::989:998:9989;899889867:;8898::=>=:98::<::987:988799:9:<998989:988::<=;:99::;<::98;9:9788668::;9::9889::;:889868:<:9:;9;;::;:9::9789:8::798988:9877::9899:<::899868<<:9:97<=<:9:;:99::988:998:8::8:99889:988;::99:989:988~hRN]r|yw|}{~}yz|{{||{||~zy}}|zy|zt||}w|{|yww|~~}taOOfz~{|}zz}~|{zz{|}}|w|}z|yzz||~z|}y}{|ywwy|{u`ORfsuvz|{z{}~|{}|{zz{wty}|zzww|}|yw|~||}ywyvwwvwy{{}{veST_t}}yyzw{|~|zw{}|zwwz|ywywz|}y|}|ww|~}~}||zyzww}~zcSMQew}}|~~|wwz{|{z{}~~|wy|~}||zzyywz}~||{ywvu~wfUKLUbiot~~}{z{|wtz{{|}|~|~~}}~|yyzzww|}}~yww||{{|tz|{wcXSTVWX[{{y{~{t||{zww}|z~~||~|ywwyy~|~}|}|twuvy||}|vpbTOTTNty~{zzyzz{|}|zszyw|}||~|ywtw|~}||z}|p|ww{yww{||||{}vffhz|wwz||}||{{z|{w||z|yzzwwz}|wy|wz~|yy{}}zz}|||{{w{~}}|~zz||}}~~|{zzw{ww||{}tvwwz}}wz|y|~|{yw{|zyy}{~|~~|{{|}||{z{}{w{ww{z|~~||~|}yww|yww|{zww{||~wwv~||~~|wwy||}}{|{w{wuwyy{||~~~}|}~~}{ywzzwy{||}yz{{}|~~~zywy||{ywzww|{z|wy{|}}|{~~}~~~}yy||zw|vz{{|{wz~}}}w}~~||~}||{zvuw|zw|{w|yy{|}|yw}~~~|~yy||z~w}z}{{w|}{~|z}~}{|}}{wvv}|z|wvwywwz|~~}|~~|z~{y{}~}}v||{|zzw}wz}|y|~~wy||{zz{||z|{wz|zzywy~~zw~~yw||z|{|}}{}{|||}||{zu|}w{{w{{wuw|~{{~yz}}{}|z~y{|{zz{|{|}{{|{{|||}}||}|{w||v{{wwz{{|y{zz|{~|wzww|{ywz}~||{|}{z{|w{|{|~}}~{w}|{w}||{zzwv}~|}zyzz~|wzww{{wz~}z|{{}|zw{|{|~}}~|w||}|wz{z{||y{}~}||}}}|}|y}~{|~~|y|{{|}w|}}||~}~~~w{|}wz{{||}~vz~~}|{{}|}|w|}~}}~{||{z|{||{|}}|~}}~~|||{|||wz}||}{zuy}|z|wwyy{|}~~w{||{{}||{w|}{~|}~}|z|}||v||ww||w|zv{~|~|y}|z|wtw||~uvz}zu||zw|}w}|}~}|{y{w}zwu{w|uw{{}z|~yz~}|}zwz~{|~|yz~v{{z||{z{}w{{~|~{|vzyw{uyyywwz|z~~||}|wz||z}~y||}}|{|||z||}}{|y{~~|}}}wwzwwz|}|~||w{{z||{|{}|z}||zw}|~|||~||zy|wywz{{|}}~|}||}}z~}|{~}||uwq}{w||}~}|z|wzz||}~~|}||}}||}|{~}}{|~||u}wq|{w~~}}~||{|w}|}}||}~}|}}||zz|}|~}~w||}||{||}{{zw||~|yv~z||}y}}}||}~~||~}||zw{}}yw}|}||}||zz|z|~|~||vy|}}}|}}z|~~|{z|}||yz~|}|}}{{w{w{z}||y||vw{~||}|yz~~|wvw|}}|y~~zy}||}|{z{|wuw||}~vzwz||wwz}}||zz||{|}~|~~|||{zz||}}||zww|}{}~y|ww|}{|{uzz|{|}||}}w{||{~}}}~}|{{|}}wuwz||w{}y||{|}w||{}z|||}z||z||~}||{|||}|zwz}z|wu{|wzz|z|}|}}}ww{}}|}}|w{~}||~|~|zw}ww{}}y|ww~}yy|zwz}}||z|zww|zww|}||}}w{|z~||~z~}||}{w||{||{|}}|zww||||wwvw|zww{{z}{{|{|z~||~|||}|}wvw|z|}~}|zwz{zz{}z|w||{z|||||z~||~}z}}{||z|}wwy~vw|w}|ww|{vw}{{|vzwzvw|}||z}t{~~}|~~|y|{zzwz|wrz|uzwz|w{z{|uw|wz~|z~~|{vrz}y}~~~~ր~|}{||wz|ww{}|w||vvz}|{ww{|z|{||}~z|}}~{z|{w|}w~~~||zwy}|}}zz|{{{|{||wwz{ww{||{||~zy|}||zw{|{||u~~~}|}~|wz}|{{}|{{||{{w|||w||~wtz|ww}ww|w||~|}w{{{|}w|}}{}}w|z|~wt|ztwwvwwz|z||~~~|}}z|w{|}z|}z||}v||}|~|y|~|y|}ww{zz|w}}}{||}|w|||{|w||w}|}}~wz||~}ww|zz|{~}~~}~|z|wz}|{{|{y}{{|||rwy|~ww{ww|~~~}€{|}}||zw{}}}z{|rv}ww}~{|}{~|}|}}|||}|zw}|ww{|zyz||wvw󃁁|z|}||{~}z||}}}|}}{ww~|{{w{|~{z||ww䀁~~}}}}~~}||}~}}w||zw|}~||}{}~{z{{wz|~}~}}~}~|||w|}|{{}||}{|~||{w{~~}||}}~}|}|{}|}}||}||{ww{ww~|}||}z}}|~}||{|}}|}|{{|zw~||}|zw{|}~w||{}||{||{|| |}|{vu{}{w}~wwz{|}||}}||}{|}||}{~|{zzwz|~}}}||{{||}}||||zw{}|}}|{{}ww|􀁃~~~|}|~~}}|zwz{{}}}|wyzw}~~~}~~~|}|}}|||w{}||􇉇~}~~}|{~||z|}~~}||~~~~|~~z||ww||||||w|~~~{||z~}}}|zz}}|w}~{~~~~||}}쀁||~||||~|||nj}kkknpq⧤phm릧ᦣsegs𩧭᧩wpqtvwz捻󪧪쯬qkqqj馧Ȥ񧦦짩ؠ婦ƦڦۣĦ򧦡էۣժ媦覰𩬧ڦ天󩬩ꡘ쩬ž㩦䩪ᩬ򧩩գ裤ǧˡ򬧧𩬦ެ馤Τ֭捻줡餣ѪϬ马Ǭɡ­詧󰯯䭯餡쬭򩧧񧦦򧯲瑱 㩯褡𯪪笡马Ъȧ쭯839;647:968:788478867898898779688;989;:9:=8::97679:8::79849:668:868:89:65799877887878:8:9686789::99:988788:899898:6688788:869:89:8566887677674679989879:99;97:988:89887987868:8988::889876346866787667867889:9989;;9:99889898868:788:8678876787889:977899:89::889:988:6889668898868:986786899878866::896569987879::87899:998:9:479787798878988789889;98866899889:9889:9;9988:8:269788;:99876:6348:978898696698:8;;989;9:9889:7:9::8:6988789778767876966886876687986887757766776988767886788788998646:66988699876899;96799:58976898988766:98866488779986889868:78:9866898667879:99893686678877879987898698878878:986676868998567886796677887668899789778::9887676789:879877899869;878::78;78878969:767994678998865788988;976886:998:;87787668898789:;7::76786358899:8599898:98767665989;989899877898:8958878986998668:96::88:89987:789778899889987889::87668:9779;:8898:88659:869:789886988:89:88::99:9987887687678766898878698866::8998877887:88989:9899889889878768876867887898987:97:86986998:98978898898878:<::998:878:88:689889989:8997876876998:98988989889988988789:99;:88:869688989:89988686889;:9798799:9::9889:9866788:869979677878989:8:8:89:89:89697799:899889:9889987688787:869:9:8768898998::9:988798898988:8987788:987789:>:69;899779:9898:8998:99:99<;9:87:9978;;:87863:9889:889867898687899:<89867:9789989:866898898899:6;99887:<95578878776988689;:78997998:8679:989:979:896::998:956887887898767899:8:9::88::8::98878::99::989:8849:8:9889878989::88:668989:788:;:9:9988:9:989686986987866898667889978987787889::99:987789988998:88698876998976987789:9887898799:988:88988:9878988986:686998789::9;889::9877876788:89988989:98898898696:698898:;:9:;88689788989989;889988:;:768:9899898676<88:968:889989;957997898::9889898989::889:99:88987898668897899799889:689::8:;;:9::678898898878868977889:98869989:988998<=<98::89::866878978:989978::9769989:99::899889:989:689:86689988:779889:689::97788998::9899688998988:967:88998669:998898896786788989;:87889:89987699889:89;:769:99:8468:98899887876787::88;:8799889:77898766:98668::9::9868:988;988986896;;88;:77:9877889668689869:88::8988::769987788769649<86::978::988356697788:;96;8867:7879:8789986897:98897689::9::8:88768667889:8688:8898:6899887877887998899:9986687:99::98:9:9676688678;:88;99866788766889899778998967:9<989988:889;:867889:9778::9766789778987667967976:;;889967:9889:8688998789:9866788987889866:779868;988:966898:8676788998:84678:988989899887889798:989:966898:8686889794688:99878779<899887977898778:868:99::99868::6868;887978::7886986679878;899887;97898776:789789788764886569:77:96689=:989:989:8978988949;878:99;;99:88956876588:;:98678767:;88::9:;;<:99::99:>:966868649:876898::99:89:67:886679:98868878:;969989::89::99:;886699;86874789989:89:88;89:89:569986786887789886867899889:8989:6799:6689:988989:8696786889:9868:788668:988::86899899:;6678;88:88988989:89:66988689:97679886799::689::8688:<9978:78:67988989:8:;68:98678:98678876989969::99::8<8989;87996897998::8898696786788:<<;998987668869:88679869688:<98::9;:7998:;8898:988998668987899:867:9668846899867898<:9:8:=99:889989:987788789:9899:9:98::867889::866798:99:9;;8898788987667889::99:988::989:8668:689988988988:9::88:8788778689 98668867886469789989:788988:9::9897789:98788989866886868::878986:99::989889:8788:88789:98679:88989899886889:87899889:998786896889:9678998896689::9:7998968988:8699898878898898679688768864798668:667889:6898:89:99;98:887|r~wtz~w|z||s{||ywz|}|}|zz~y}}|}~~}~zwz~|z~|s~wy||w}|~wv{~~|zz|}|{{||{z|}~y|w{}~~~||z|||~~}~|yw}|z}||w~}~|vwy||zy{{wz{tyz~~|~}{~~z~||}|||~||}z~|z|y||~}|||~|{wrtw|yww{|zwwz|wz||~~}~~~~}}|~|~||y|z|}|||}||ywwyw{}}{w{|z|}}~~{z}~~|~}||}|~~~}|y||~yy||}~||}|y}|wz}w||{|}wy}~wuw~|z}z~}z|~~~~}~tz~z|zz~}}|{|~}}||}{|}||}~~~|}wywy|~~}||~~~||~~~~}}}py~z||~~}zwwrt|~z||}}y~yw~|}~|~||~z~}y||}{{|}zz|{wz{||}|{zywww}|}y}{wwy||{}w|}z{vzzwwz{w}||{zzwyz||wz|}|{|}~~|wtyyy~|}w~~|{y|~~w{~~u|zw}|}||zww~}|ywt}|z{|w}|}~~|y|z|~|wy}~|wwz|z~~}~qw|wwz||z{{z|}|z|{||w||z|}}||z|~|wwy{{yy|}w|~~|}vwz}|wzwwz{||{wy||~~z}{z|||{zy{wz|~|z~}{{}~}}|wy~}{|{|{||{z||}~~w{w{swz}~~}|yuz}|~|}~zy|}|w~~||zz|{ww||}}|{zz|}~z{w{|wrv|}~~|u~~|~|}{y{ywv|}|}{{z|}}||}||}~v||z|}w~|ww|w|}|}~~||{{|{z}|}}|{||~}zww|}~{{|||}|wv~|w~z|~||y~||}}|~~}|z}||}|zy|zyz|zyww|}|{|y~||yw|~~}|zz|}{}||~~}~~||}}}||}}~~||z}zw|}zw|wz||{|~|~|z~z|y~|w~~|~|{}||~}|}~||z|~~}}z}}|w||||~}~~z}zy|zy~~}~|~|||~|}~~}|}~|}||{|~~Ӄ}}}y~w|}|||~}~~|}y}y|}|~~{~|{~~~|||wwz|}}||}΁|w~~z~wz{{|}|{|~|~}}|~|~|~y~z{~|~~}}~~}}|zw||z|}z|w~~|zw|}||~|~~}~~~|}{~}|||}}|}}|zz|}}~|zz|~w~}~{{}}}~~|~~~~~}{~z||z|wr|}}||wz}|w}{|~~䁆|}w{z}~~}~}ww}~}|}~}|~~w~~||z~uv{||{z|{{zw}}|ww|{|z~~|}}wz~~}~~z~}~w~~|쀁~uw}}|{|}z|}zw{}~~ׁ}}|||~||}|{|~~~|~|}t~|~||}|zz||||}wwy}~}{}}|}~~~}||}~~~~}~y|w~}w~}z|yw||ww{||{z|~}z{}z||~~ǀ~}{{|~~}}~~||}w~|}zw~~|~zw~|{z||}|z{}}{~~~}}|}}||}}|}~|{|~}||~}yy}w~~}z|~~~||}|{z{||{yz||̀}}||}~||~~||}~}||~}y~ww~}|}~}~|}}|ww|{||}~~}~~}|}}}zy}~}~~|}~}yzw|}||~y}||~~|vzz|}~||}~|~|~}|}~||~~~|}}||}~~}||}{|}ww}|~{}~~{~~}}|}~~y|~}|~wz|}||}~}}~||z||w|{z||}|~}|y~~}||}~~~|}~~}򆇆~}|~|ww}|z{|z||z|~{w~~}|~~~}~~}||}~~~~||~w|~|wy}~~}||z{}|y}~{z}}~~|~}~~y}}~~|~||~yz||~~|wy~~~}}~}}wz|wz}||~}|{}}~|~~}|zw~~||}~~}~zy~~~|tw}~}}~~}||z|{wz|z|||{~~||}~zz|~}zww~|yy|~~~}||y|~||~}||}}||}w|w||{{~|zz|}~ywy}}ywyy||~~}w~|||~|}zy~~|zz||{y~yt~|w~z|~}|rvyy{z}}~w|}yzz|{~|z}~~||}|yy||~~~~{~|}~zw|~~}|||{w|yy{||}w}|||~|w}~|}}{|zz|}||}{~~||~~~~}yy|z~~~~|~y{wy||}|yz||}}~~|yw{}}zyy|}|}~|~~{z|~~|}~wz~~|~~|}}}|~|w{|}}||}~~zz|~{ww{}~zz|}}~}zwyz~wz~zy}|~~wz|||w||~~}{}~|yyz}}||~~|{||~|ywwzz~|y}~||~ww}}|y{w{}}~~|}}twz|~||}~}~}~~||z}||~~{zz~~||}}~}~~yy|||y|w}}|}~{{~~tw||~~|{|{z~}~~||}|z~{z}~}{{||w}~~~~|y|y|y}|}|z{~~{{}z||y~|wy{~|z}|~~||}}z~z|~|zzy{|~{}~{||}}{wt|}yuw{z~wy|~~|~~}~|~{|~|}~t~}z|~~~~}|vw}{wv|}~|yz|zwz}|~~~~~~ww|y}ys~|zw|~}~~}w{}|ww{||w|}z|~w~~|~}}~~~||wy~|w}ztz|~~|~}~}||~|~vy~~|y{}w|}{{}}||ywy}}|wz}~~}}~|}~y{~~ww}~~||~}~}w~y{}y|}|~|y|{}}ywy||~|||y|~~|ywz}}}||~||~|~}~wy||w|~{w{~|}|ywwy{~~w|~}y||~~z}z|yz~|}~}~|y|~|y{}|y{||{zz{wy~~}~~w~~~}}~|~|{~~w|~z~~|}}~|w~w{|w{||~||}||{ww||y~||}|yz~}yy||~|~z~~}}}~|~||~~|ww}~|z}~~}|}|yz~ww}|tw|~~|y{|~}~}~~||~~}||~|zz||{|~~|~~~݀~||wz}||~|yw{~|~~~}}~|z}||}}|zyy{|}~~~Ҁ~|}~|~}ww|y|~~}|}||~}}~}}|z||zz{||}||}||yy|~~}yy||yz||wtw~z|~~}z|}}~|}~~}~zz{||}~~|{||}~~}~|yw||yww}|ww|||{{z|}~~||w~~~|~||}~}||z|}}|}|}}z|~~|yz~}||~~|~|~~||w}}~|z}||}~~|{|}|y|y||~~yz}~~|}~wyy||~~z~~|~y}~|}|y~}||}~}||{|}||}|w{y||zy||ytz~}yw|yyz||}~y|~|}~~~~|}}|{٣뤦ҩ򪭬쯧⪣ꯩ󩯪ʦ멬줦磧קꧣ郎蠟򩠡捻ޡϧͩҧڧ榧ƩӰί𧩤誧䯵󧡡ꧩ쭯ׯܩ婭ǭѩͭ橬䧩쩦ୣ𡧬򵶵줦ܧתҩ֩ެߩ𪤧ߧ䧩頻驤㬯ȧ򤩧筪읡㦤Ωݭ񩬬ҭ񪧩ߣ褧٪ߪꤧ6997688798447:868868998786:89<685646986846788998768989868669896998:98789988696:88;79886798687788788769889878898896998::889876:6978:89:98898688788688988:9786998988;8:8798896887788797988:89989898668998688987:98869:9988;8987889688788788:88987689986889889988:99:9897889:9688998868898:9886886898899897867::;899:;9898::9986887889877986786887699889889889;:768878::99:99;89::;:89866889956775797668898789:989:98:88:9886686899688;96889:767986676988;878967878896787678798898::89988686::89988766786778:868:997676889:98898688787799;:8988698:867889788778767889:866878778898:98:8797686876878989898668996887588736676889867988:88:988676586796856889:967886688787687686688988:89:98988::9:89668668668:787868989868988988988998877::9:<:8:8798788:77966866:87668:866899877985778989::8998766768:9899674366988966988:886896876887899897679687896787:68;8798786677677887679;668963:>86994889868877889989767:;9786:;99:668788986788778868;658:79988767788:;:98898787::9;:4566878:8679:8688686865699::98756889::97668::877:9988::7688768<96678878898679766886689::98766787899877=988988:99879:9766787889868976678898998873567899:8778;88::8788:99:98:788766778867997668:;878897678998976689988989:8899896789987868:668;99678678689:988779877898869988998::87886688789::99878866968968:69778667477678:887:667788688789867789:886767678987756788:78876678:88::68<8788789789988698877:88988:977899878778767887789988:9679789:88989::88799887786687799889:987846789986788778:899877898987787889889669867788:;988946889::9788:9::989886899867887678678:;:99:88::88688:;988:899889:988988789;88::88;986699768778867889::9868:9:968898:9989::89988789:669:66:9:87986798878988967:6877889;8778899;889889:66897689;:89868;9899878987789;997;<78767889;:87887797889::989987988778778878:86:98896::8899:58:8668:588:86989::9:9789886788687898688679988::8998:8::988998:8:;9:8788789:88988689866798877886856996899:8789:99:989:9:;9:867886689866889:9788678778987677678879989:86887679::8788689988:978868869866786688987866889:989:8677878:976788989::886869766887698997669669:88;9988:8678898898988:8 86868868667887878987669768989;8:878867;989988:8989;89988798865668955688767887789::8:968988=968997687;8788;:9889987668788668669;98688986:69<:89:589868996878<:69<:88986899668668:9878799886768878987889988988998668988;858;:88978998688986679986587876899869968998876889879768:9889:99868786789:76887679986;:79:9887899889688987:89989::988678679668;96887679988:88::89:89::8786998998989::998:878766868:96788689:98878:87889::88:989::988988:8868:88997889878::996799886899889897::9889:889789886::88989::9:89:9:;869:866488679:8<:87689:889::898778:98:8676897897;:;=97:9;688668989989::98778988987688989:97:;:998896798<6686698:6887898::99::98788789;889::9899878987:889;;996898;9799897979988998:989:;9788789889::98::8668868879<;99:89:69=::96879:9899898789986899878988;:867899;9::88:899:8::68:7886889:989989988789:99:778988:9889::;::;::9:99689799687897889:889::989:9::989::98:889:9:99::9::9868:6998:88:88987889:98;;:887889::98:8678898:8686678898::6878:88:88976788:;:869::9889889876:8668:99:77;8:;99::988;8:88667889:887788989:98899877868::8988:8:;::;;8:7:9:899899::98:9::8::99:8788768;;88::67889::898:9887889::988799::89:889::989::8899::;;:89:989::988989969887887889889:99:989:99:;9889:99:9::77998::8<::998989;88:989:9889::9:998:89897889:679:9::8;:998989:89:89:9;99:;;:;;:8:8879899::869:9:9687678987997789:97:;89879:99::8:8:9;8898:857878748668::898767877w~~~{y}|}zz~|ttz|w|}|}w|~~}{}w}~y}vwty|w|twz|}~~}|zyw}~}~|y}wywy~~}~w~~|~|z|~}|}|w~w|}z~||wz~|w|zz||}}|z}||zy~}|}{||~}|}||~y~~}||~|{wy~z||~~||~|y||z|}}|w||~||~{|y~~}~|}}}z~}|~y||{{}}{~z~|||~~}~}~|yy|~~|y||}~|{||y~~~}}}~|z}||~y||{|}}|}z}|}||}||zy|~~|y||}|||}|~~~|~z}}~~y}}}|}|y||~|}||w}||}|yw}}|}||~|~z|yz}~~~|~}~}y}|z||}~}z{~}yz}y||}|zw~~}}||}}|~}|zw}}z|~~~~|䃁|~}yy||~~vw{zvz{wy||}}||~~}||}|{{|~~|~~|}|~||wy|w}~~w}|~y|}~{w{}ww{w~||}{}wz}{||}~~yz}zwz|z~||~}|~}}w|y|~~|}}|zwwz|y{{||w}{wzw}||}~~Ɓ~||~|w}|z}zz~~|~||}y~|}wz|}~z||{{|zwz}||wyw||{|zz|}||~~~|ҁ~}|z~zy|y}{w|{|~|||wy|~~w|}||}{v}}||}|z{rww{zw}}||~~}}|yz~}|||~||wzwv|y{~y|vw|}~~y{||ww|}|{{||}{w}{w|ww|}}~}|||~~|~||~|~ww}yy|ww|z|{|y}}~}w|}}}||}~~}|{{~|}z~|z}|{{~yw|ww|{ww}}ww||{z{{|}}v{{}}|~~|{yywzy}~|~~yzsrww~||~wy~||}}|y}~w|zw||{|}{wz~w}{}wz|zw}|z~|{|ww{{w{z||zwz~yww||~wr}w~t|||y}|{{|}}{w{z|w~~ww|{}||~}||y{||{{}|w}yv|z~~}}{wz{|}||}|z|z~tuww|{}}yz~}w||}|wy}|wy|wvy~~~}zvw||{ww|}{zz~~}|zw||}{w|~wwz}|z||}~|w{~{yw||yw|~}{yywz{||{z||zz{~|}||~}|~~}z~~zwwyz|{|}~|w|{yw{}||~~}~~||}zruwz||{z{|}||}||z||~~~}z|}}|zyy{{|}|y{{wwy|}z|}||~{wz}}{ww||}}~|~}|~~|~yz}~~|{|y|wyyw|~~yz|w{}y}}|zz|z{}}|y~~||~~}}z}|wy}|z|~~~|{||wwy~w|~w|wzz|wwzt{{zwz}}}|{wwzz}}w|}|z|~}y{{||}|wwzwzwz}|z{{vy{}|}z||{wwz|||y|}z|}z|~z}~~||}|y}|{zz{{||~||~{z||z|{z{}}{z{w{||zz|~|}~yz~z|~||~}~}||z||{zz}ww|zz~~|||{|ty{|~~|w{||{{}}~~|zz|}~~}}|}~~}zz|{||}}}|~ww~|wzz|}||sy||~~z|}||}~~}~||y|~~|wz||zyz|w{}|}}|y|}|||}}~|}}|{|||||~|wy~~zw|zz||yz|||y|~~w||}|}~~|}|}|{|ww~yy~|z~}yz~||}}|z|}}ywzzw}{{||}{{|}~|}}||}yw}~zy}~|~|y}~|~~|z||{zz|~~z჆z}zw{||}{}}zz~z|}}||~}~~|z~||{{|{{}}|z|}w||}y}}~~v}|ww}v}|}w|~~~{}|}}y{||y|}}|z||w|}|wz||}~~}||}|||z|}}|z|~}}~||w|~|ww{||{{|}|ww||vww}~~}z}||wz||yy|~|wy||~~{||yw{|zz{|}}{w{zwz}|z~~|~|w||{w{|z|}y|~~||}{||y|}y~|yy{|yw||}|{|ww|}||~|~|wzz{||z{|{wz}|}~~}|~||wy|w{ww||{w}{wwww||~~|}}wz||}}||||}|}|}}|}|wy|y|}y|yww{||{|{|}zww{w|}}}{}}y{|}||||}~}||z||yuwwy|}~vvw|}zw{}|{z||~y|~||w|{w|{}{}|~}}~~|zyww|{|}ww|yw~~|y||}~}yy~|~u|~|y|w}{|w~||}~~|w|~~ywy}wy}|{|{~|}|w{y||{|~}z||~~||~}|~|yy||||v|||}~~z}~~|y|}||}}wwy{~}wv|{|{w|~~|w~~y|~~||}|{y|||{~{w}~}|}~~~~|}wwy||{{}w{|~{w}||{wz~~|wz~~}}{|||~w}||~|{}~~}~~}||}ww{|y{~yww|~y}|}{wz~~}|}||~}~|{|w~~}~||~~~||{|{ww|y|y{}}|y|~~||z}|z}||~}||~~||~~}}~}||}}||w|}|~~{|}|{}~~yz~~}}|w|~~||~||~~{~}||~||}~~{}~||w||}|~}|~~|~~|w~}wwt}||y{}}zy|~|}~}|~|{{|~||wzy|~{}{~z~y||yy|~}~~|}~~|z{}||}~}zw|}~|~~z~~}||}}~w{~|ww}yy~}y}}|{|~}~~~}{||{|}}~~|~~}z|~}z}}|~y|~|~z~~}~z~{~}|~~}~|~~z||}|{{}~}|}~~}|yy|}|}w|}z~~~}y~~w|{~~}~}~|z|~~|y}~~|}z|}~}||yz}~~~|}}~~}w}z||}}w}|~}~~|~~}||}{}~zz|}~}|~||}~~~y}{~w|z|~z}|}|}}|~~}~~}|}~~}}||~~~~~~~}y}y~}}}||~|{||~~}}|{}}~~||yz||~}|w|ywz||~|w|z|}}}||~~{w{||}|}|w~~||}~||}~}zw|ww|}~~zz}~~~|}||}wyyz|}~}|zz|}}|~~|~~|}~~|{zz||ww|}~}}}||z~}~~}~~~}|~~|{||zw||}wz||~|~}~}}||z||}~~}|z~|~|}||}|}|~~}~|}~~||~~|~~||~|~y~}|z||z|}~}||~~~}~~~~}|}}~~~~~zz~~}|~~|}~~}||}|}~|~~}}~~~~||~|~z||}}~y{~}~~}|~~}||}~}~~~~}|}z~}~~}}|}}|wy~~y|zyz}~|z~~{zz||~~z|~|z~~~|}~||}~~}|}|uv{}z|{t|yy|}}zyz|{z塪笩ţ飪٪٩ଧϩ婬䰯է󪧧ޣƯүѪ媩䬧ީ񩬬ѩة즤ީۧ쩭ͬᰵ매㩬ͧ秪㭬䣡ݦꩧ吝񡣧ۦĩ򧬧ؤꩧͩΦ㣧㧯쪬㡯띩ةɩ񪭭몡ϧƧ󩧩譪Ϊ槩򤧩ߧ뤧쪯𭪯ۧ󭯣⬯ꡣ歪ީ69887989889:;:88:99889768796:898687899889;8668898788998686899:6887889::;:89989:8878:88:896:8879779878:878987788987579::6689<98899868::9:8:8:88:768878;689:9778898785689:68898898:8:889::99;9:98989889:8899889889879779778998868::988:889::99:97:989:889989889897:8866875667789:9889::78::9:99:7:889:88997889:;86889698878799889:8:8:99::9988:7:8:88998896899:8688968899896<:87788:989;;9;8:;98989886:7:8<77::66;79:8689978998897789868::988998:99:989;<;::9988788678876698878:9:98689867678768:9887:989::9:;::9:;9988:8998898868::87668:887788769889::9:99:9::;7889:;<:9::889789889:96679:8 89::9:9889::989:9::88989::9889967889:8 89:89::9899898:9989:99::98896889::9668879:8::99::9899:9:89989;:889::99:78989::8668878::989:9::99:;:889::;;<;::988989989::889::99:88988:9868998:989::989;<;899::989:989:89:9:99::889867648;9889:89::988::9::988:88::<99:868:8769:89:9:89687:;98868:88778877878::99::;:998::9:998986886:8868::;:;898::88988978778877878::889;::99:9::96:88768::99:898:;6678898899889989::88998:;9:;9::979889876788:677898898:8789:87:98899;9::88:88789:976898898988:877889767::98988989989987898989:9:898998:87:8788988977899898688:9:9:89:98;8:9898898989798:6768:87::99::98:6899877889:9876988:9688988:76:7::9:9899:89676779:99:;:8778768:988969:889889::988789:88968:;946899889:9668689778989889::98798897889::9=89986989876899668768866887899878998998789::896676:9989:998766::879:8899889889::;889899878988:97868898:88989876::87998898679::989989::889988986:8:98868867898878766886897688688998989:989;:889987:786686898789887886677688788688989;:8667899:988;:788:9679:889;:<<98998899::866:889889889878:8898;:6768:967;97879:8899:868668985788998967;87:8867989988647986;8788::99::998997878967998766998::88797698998989966878868966978:89:89::88:8:8867886488688656688677:879967889966869:78:88998778;9:98966788:9688676678866997877978866789:889:88978898898989:89889::96887668976696757989:6688::99:88998898989:89989:7:8688667768987575778988978:998:9:87:96:98898:9:99686788:8::886868878675878967:88:88796988:86<:8898:9::77889:69867866597766:897867867;886788289896768878768966:;978876689::68966969:86899899878989::9898788:8669:878:9887876698998878878767899889897699:7787;::99868986568988988688767767887898977998978876887:996998667669:988786899877889988:8988996779987987988789::8:98788668:988:8878:98679;9989:8988:8668998899798768899:988:86889:87889889::89;::9889:8:9898687789987988989989:988987889:89:;:988:98898:98988:76689986889::68::8789:9879;:788788998:9767889:8688:978::989<8899:8<;<86:9:9889:9887857::;69::8869889:9887688:889;7798898:9:668799:878:7:88786:;:99::9:76898788687889<99:99:89:9788:987687899889:9889:;:8879886868966899<::;989:;;:;:99::86::8899:96799878899:6889879799668:998669989899:889:869889:78::8:9889:7998866789889::997988689898998668::88:976699899867889:969876556:8899:;99:98;997:;9::988::98;:876988696689;;:92566:89::9:88:97:996:<9;::9;=:7<8::;;899:;:88:889::9748768647768:866:779:98899:9889989::9:99878::878988::965668;8867668768868:968:99:976789988998;:9889:;99878::989988::9878768678878866879::88::9778898;:88:;9988:9:99::9779766976679:98779::88::9:;789::9989989:;:99899:97697677::88677899889::9:;789::998:;;:8:9989::9:8977878;9887764889::889:989::988::;::988:9:8878:99646679:99889:8899:99878;;:889::9::89:99::99:86889;::86676786:9889:99;<<;:99878<;:989::9:;:889:99::99::9::9:8:w||{|}||}}|~~||~~||~zw}z~w|~|y|{|~~}}|ww||~|z|}~~}w|w|w||{||}~~}~||z|}||~w|}|zzz~}{||{|~}{{|}||~}|z{vzwwy|~~||~~}|y|~}|}|}|{y}}z|y|~{{}||}~~}|{|vw}w|}~}||~~}}}|}|~~~~~|~}||}||~|}~~||||}~~}|{zzz{}}||}y}~}|}|~~~恀~z~|||~|~}||~~|}}||}~~{||ww}{vwyz{zz{|~~}}~z|~~~z}|}|~{||}~}w}}|~w|}|z}z~~}}~|ۀ|}~~~~}|z}}}~~||y}~}w|}}|}~w}|}w}{{|}|~|~~}~|~}~}|yz|{zwy{|y|~~z|~~}|}~zz}~}y|}}~~|~~ ~}~~~||z||}wy{||{yw~||z|~~|w|~}wzyz|zw|~||{~}~~~~~~~}|||~~||~|}}|y||zyww|||{{||{y~}}~~~~~~z||~~}}~z|~}|}~~yywz~||}|}~~~~}|~~~}}|}~~~}}~|~~}}~~yz||}~||}}|}~}~~}~~}|~}|~~|~~~~}}~y|}}~~wy||{~}~~~}~~~|~~|~}}~~~z}~}~}wy||{|~~}~~~~}}~~}|~|~~|~}}~~~|}~|}~|y|~~}}~}~~|~}~~܀~~}}~~~|~}~~~~}|~|wzws|}||}~~}}~~}}}|}w|}zy~}~~}~w}z|}|w|||{{||{{}z}~~~~}~~~}}w|}w|}}y||~|||}|}{}{{||zz|z}}}~~~~w}|zy|~~}~}ww{||}}|||||~~}~}}~~|~~{~}|}~~}zyz||}}wzz{||}||}}}z|~}z~}}~~~}}||z{}}||}~~zw|~}}||||||zz|}||~zwz~|~}}~|~~}~~|z{}||~~}|~~||~~|~|~|}}{|{|}||zz|~~|~}|w||}~}|}~|~}|~|~|~z~}w{w||{}y|~~|zz||~~}zw~}}~y|}}}{wz~~|~~|~wzwzz~~~}zz|zy|~||}~~y~}|~}|}||~~||z|~||~w|~tw|~~||~~ww|y|~zz|~|}~}|}~~|z~}||}~z||}~~}~~}w~}~}zy|~~ywy}}|zzw|}yy}}z|~~|z|~~}~~|}|zz||~|~wwzy~~}|~~~~}zwy|z~||~~||}~||}~|}~}~~}z|~}|}~z}w||}~|}|}~~}~|zy|z~~||~}||}wz~~}~~}~|}~~||~}w|~}}w||yz|~}|}z|zwy||y}~zy||y||~~|}~~}||~~|~|}~~}|zzz|ww|w|~|z|~||}z||wwzzy||z||y}|}~~||~|ywz}~~~|}z||Ѐ~yz~|}|~~|~~}}~~|yyww}|}~}||~||~|z|}}||}|~~|}wzw|~wz~z|z~}}~~|}ww|wyywy|~|vz}}|w{|z|}wz|~}}ytz~|w|z}|~~~~}~~z}z|~yz~~|zyy~~}||zzw||}ww|z||y|~ww~z}|~}~}||݁}}|}ww{|}}||ywt||y||wuww||wz{}{wywz||~~wy|y~z||}~~|zz|~~}~wwz||}|~y||y{ww{||wwz|z{{|}wwz|~||~||~z|}~||~|~|~}~||}~~y|}|}{ww}{ww~wzvz|yy|}~~}|~~||}~|~|~}~~||~z}y||ww{zw}|zu{v{z|||~z|~~|~|z~y~||}~~}~~~y}||yyz||Ɓ}||w|w||{}w{v|{|wz|}}||z~w~}||y||}~~|}|~zz||}}~y~|wz|wyu{{ww|~z|wz|wz||wz||p|~}~yzy}|z|zy}~ww~{}|zww|~yw}~yyw~}y|~~}|z{||}}||~~}~~|~|z}||}ww~}{|~}|}}|}{{}{ww~}~~}||z|}}||zz{||{zw{|~}}~}~zy~~{{z||{~~|y|~|wvw|~||}~}|y||zwz{wz|}|{{||}}||~}~zz~~}~{}}zy||z~~y~|wwyyzww~~|}||z{|w||{{|}~~}||}|~||~~yz{~~|z~}{~}|z|~}|{}|wyw|~|||}}|{{|}|wz~~}||~|~}}}wy|~~||~{~}zy|}~~|}}w|}~}z|}}}||}}||~}||~|~}~}y|{{|~~}z~}||~|~~}}|~~}}~}z}}||||~||}~|~}~}|zww|~~|w||~y}|{|~|z~z}}||{|}|~zyz|||y}}|~z|~}~||~}|y~~||~~||{|u{w~}|}|w~}||~~}|}{y}}|}||~~{{~}}~|~ww|z~~}z|{||z}w~~~~zw|~|{}|y|z|}||}~~~~|~~z|}}}{w|{}~~}}~~||~}|{~}|}|w|y}~yw}~~}~~~|w}}wz~~|z}}~~퀁w|}|~|{~z~~yw}~~|wy~~|}~}~~}||~}y}}܁z}}||~}|}~{||yw{}~}||~~~~z~||y}~|~}~~|yy}||zww~}~~|wz}}~~y~}{yvuw}|~~~}~~z~~||||{w}||ywy~wy|~~ovwwywy}|~~}}~{~~y~~~z}|~~|}}||~~zt|zy|wtzzw|}wy{{~||~|||~~~ր}{||z}~|}~yuww}}|wzyy|zw||y|~y|~~~zy{}|||~||~}{|~|~~}}~}{}{y|w{|}|z}|wy|z~|}~{{}|}|}|}~~}|}~~~~~{{{ww~zywz~~}zz~}}~z|}~~}~~}~~~~{y~{w{{}||}|wzz|~~}}~~~{|~}}}~}}~~}~zz}z}~||zzyt||}|}~}|}}|~|}~||}~~||z}~~ytwyz~~~}||}||}{}}|~||~~~~~}y}|~}wyzwz}y~}||}|||z}~}~ꀃ|}~~~~~~}ڧߩܩ찪󬤦毭੪窯ۭ⭯ꤧ몯節駪孧ܭϬޡ鬦ꬩ꬧٤Ʃƪ𡧯򩪩󩪤۩񩤡ߩک󩧧㩧棩Э橧ƣۤݯᣡ৯ܩ᪭맭Ư季̤ۤ򧩦𤡤䩧婬󬭧䪯𰦦筤𧩪ܯߪ𪧧֭藺瘝뭪񩧡ﯩ䬭ݬ詧ꭰ7887886466:988:8896<86=96&!3786686897887885967:86)&58689885668;887886855679,$,9879668;9:98998785:8:9*:9887686798::89:8986:898*:9889;459886896797976:;:9,!877889;6699896896796;886:891&r6899779;9:89;9::7897=9:8=792)a9:98<8688::9:87889698;98'".987669;89:9::9;9::<878;;+!(8789876788:98986878989699:9;.!$878::889868:87988:899886::7:1#!y989::889:8:<:9::8;9988976::9:3"Q898:8::9:9:8:88;96:98:6%!>68988:988978:799<:99<;9;88;9(%)9<<8898579:79;897:8766868:7:><)#-98766;8899;;99:;;9876;<9977,%%899877867889989:;:9889:8988.&$8987688979::99:;:;899:0%#89879:99:9:9889:;:;89::3&$W878988::99:9:987789:8989<<8*&9987789879:99:9:987889989<<;+'/8978989:99898988::<+&&78899;8899:;99:995776::>.&"658:8;678998:986:=8:<5& 57;9::7;89989:86:<9:;6% i68<;:96998:9898::9::8&#<878967887:98;:9889:;*(.9886785766887889:<;99:;,+'89;98868789::9889:;<<:9:-+&79<::969889::998::998:<;::;1)%{9898::79889:868:9:=>4&#T8::7;9889988979::896(#6987898688789988:9889:99::*$08687688989:988998::99:;,$(8998768::99878:988:9889::-&!98789::998987678898898:/&s98778::79889989:98667886788<3%I9778::6988989;987688996688<6%!38:989:8:989889::88789::67889&"&8797:8:8899:878:94689:89989::8.#!9898;9:9<69<88:7::6899:89989:98."8797:8:8<79;89:6:;89:9:89989882$!U7686978789889869:;9::8:899898:4%2768697875988966;9:9:98989::998998:8*$*8797:8:877:;769;8:8998989::9:8:8,!!9898;9:9:89:879:9:8998:8899:7891$"|8797:8:89;76:7499:8998:9889988996772" W8;:88:88987789868:89:76:6785679679!&*:;8689769989;64668:87966767889%$);989;::998778;99::879668788787:,&%9::9:;=88768;;97667866887677;2)"`8987887889989:866967878:8669<3+"3967997899;:9;:8688:76986:8667<;2*%(:68::;:9899;;998876986687:6498789;:7-'$:89:7689878899868::9:87:97:638879:78=1)#N89::98789987889:78:878::7::<8)!089898898:9878899:8669:898:9.&$89:988::889:887889:989;::89:2*"g989:;988::889889:975998:;;<::<6+(0:989:;988::889889::86889::<<::<9.($899898:89898688:;;::9::;<3*'.89::988988998899877899:;:889:9988;9;<4*((9:;;:9889878:;:99:;:879=;::2'$R{||{||wtwy|}|}|}|w|y~wUJr{|ww|}|ww||}{||{||vwz|y\Tv|w|~}|vww}||{||w|uuw{~aQb~}||{ww||~}{|v}]BB}||{w|y{~||~|~|w}|]EC߁~}}||~tv~}||w|~y{~zzwbJA|{{||~ww~}~y|~wz~y||w|lTAw|~{{~~}~~z|{|z~o\C||w}}|{||~w|~|WKf}{ww~}~~~~}{|`JY|{|}zw{||~|~|w}{}~}~w~gJO|z|}|}w|}z~||}~~|}w{mMI}}||~}~~}|{wqLD|}}||~~|||~y~}wRJw}||||~z|z~~~~||~XS[}|}vz~z~|~{|{ww|y|{\Nc|zww|}~~|zw{{aRS}|{z}wz}|~|}|}~}}}gTO|}{w|}||~{~}~jRN|}|{~~~~}||~}qUO}||{{|}}|~~|{{|~}}}^T|{zz|}}{~~~~~|{|}~~|~`Vh|}{|~}~~}}~~}~}}`UU{|||}~~~~~vzzyfTLwv||yz}~~|~~}w|vTHu{{}~~}~|w~wSHw|w~~}|~~}||~||TN}|}z}w{||z~~||||]Yf}|w{|v{wy|}}||z||~퀁~a_V|}|w}z|~~||}~~~e`T{w|}~~~}~~}񁅄m[R}|z}}|~퀁}y}tUM}z~||~~||}}||~z~}|~wXNy~}z|~|w||z|~~}}~}|}~~~~]Ok}|ww|zw|}||~~|}~~}}~~}~~bQY}~~|zy|~~|z|~||}|~}|~cTJ~}z|~~~}||}~}zyz||~||~}hTD~|zz|z~}|~~}~~|yyz||y{|}}||qRE~zz|w~||}~}~~}zy|}~~wy||}wSJq|~|~|~|~}|~}|z|~y{||}~~UKU|z~z}|}~~|z}~tw}~|~~}~|gMI~|~|~~y|}zy|~~}~~}|}~~}gLE}z~z}}z~}~y}~~}~~}||}~}}oOJzw|w~z}z|~||~|w~~}}~~|}~|sSEpzw|w~z}zv~}|~ww~~~|~|~~~}~~||]O]}z~z}}{{zw~}}~~|~|~~~|}bJI~|~|~~}|z~~|~~|}}~~{}~lOK|z~z}|~zw{t~~|~~}~||~~}}~~yz{oKH||}}׀|}~}{{|~|w|}~zyyz}vy{~yz~JT^Ё}w|~zy~~~}|}~ytww}|zyy{wz}}||~RQ[~|~~~|{{|~~|{ww|{||{|{aTS~~||}||{{zw|~zyyz|ww||}{yz{o\K|}~~|z|}{|}~~}|~|wwy~yz|z|}yywr_Lr~yz~~z}~~|y||zy~|y}wy{p]RXy|փ~}~~|}zy~|ww|zyt~}z|~{cWQՀ|~zw|~|{|}~~|y|~}z~{wq}}{{}m\N}~~~|{|~~|{||}态zz}}z|{|\Ik|}~~}|}~}||~~||}|{||~~}yy~|}fTO}|~~|}}|~}||z||~~}~}o]K~}~~}}}}~||zu~~}|}w`Yk~}~~}}}}~|||w|}}||}~~gYO}~~|}~~|}}|~||}y||}~r]Vf|~~||~||~~||~|{z{|}|~~|}t]YY~~||}||~~||}||{|聄~~|{~oVOߦsd򧩧|qm맰}YY禡}^[߯dX媰qX᧬|[⭬ve𩦡dy歪dkާhbެg\󩧯񰪣nd䪤wpz׬|jݧnpާqkᦡnj㧦skܩq鬧t򪩩ssqg𩡯qa𧡯pa󪧭qj񲯬}y﬩ﭯt𧬲qznsh𤪭wj목}k멧myqdq\ꪧ񦧩n^駯pd筪ses秤hb窧򩧩g^穤򩧧kd礡p^ؤ}k}㩤db檧keاeaۭdqЯnmzާqpϪ|eᩧg򤩪筤}nwְvmխ|j뭯|bЧqk󪯪򩬯}e멧y󩪯⬯yk}tت}yy節诲tk      C%       !!!!!!h""""""#####>#$$$$$%%%%%&&&&''''(((q))**)@"+$8B6<;:988:;:89<985<8:79879:988:8997:8=&'&1<6;::;:9:89;997*$,679686899889:68::8/$")+9;;::;=<;9:9:<989/&(28<8989978::9:88:;-%'+)5?<;;:;::<89:2(%.8=9::97789889:976:</%+*(+;;<<;:99:99:88:6("*5:689899889989889:98,!**%&6:;<<;988778:99<8-%)0969;6899:898988989*%.5'&.;;:;<;9688;99:83*'+77:;79:988:9<988:ڦ"&.@(('>;89;=:89:9;:8966+#%47899;<:866>::89;89�<3&&.:<9;;75:9:98:<99-"&.995::868988<:9::889r!'5>5*&)7?<98899:989:892(#&6:68:869:87:889:99: i %5>;2%'2;<:9986790"0978988::869889:: l$%3<<4&#'3>99:978:979<::5."%.8:9788689980+,:H;8<8-'#-:89978:867;:=83%"%8:97898899866886 )(0>;<>=:6,$%+28;:977889:66:8,#!*6:769<689688687'&/=:<=::5,'&%'/5987996;9:<91'! -6;:67679788797''1<:;969;:4/*#!'3:86::69::;92)$%)6;88789788!$2<<==:9;:8850,.6;769;8688:<94) ,899:8998u!&6=:;:9:<:9;;877::768:9689989883//6;:9<99:98878T%7;:;::9<:89:9::9877887579:86796699774499;98878:#)::;;978:96788:8668864789878977968<9698;9898: 9&)99=?;9;;7689669976788699866889;66:8687;98:8;)$-:;897:8:88:88998668:96988:99;:7:8;6889:'$/<<99788:998:79::9889<96998:998:97:8;688776889&%2<;8:978::979988778997::8:989:8797:8::99:%'4<87::99<::9:7998778:87;:988677:9889:99u%&5;88;;99<:99:8<;9887889:886;:987768:99:99O%$6;::;:79;99:9::98877988988969986979:::#&7;::9978:99;9887:96998:689:96;89889883!*9:898987:9::;87889:;969::<78:;96;789::9889'$+;9;::9;;:889::879:5:9989:89::988789::9:; %&.<:<:997::9889:98::7989::88:99:99789:989:!'/;9::98::9887889988:9988::88:989:988:'1<9:9:9::9889987787899889988:9:98989:9889o'6>::8979:987899789986799889:98:99:988:I '6>::9:7;:9889:8;;9889878:889::98:99::89:6!(6<::<9<9::9887;:889:868:67899:989989:.!*8>:;:<7:8:<<;8765:9668778::968:67889:;988988:$%.<::<;::98643283488646887887::987#&0;:<>=::9868986899:879<<978:9889:y!&5<<=<::;::989:898:99868;;87898778;? ':>=<;::<=;;::989:87:98968898767:9882!*==;::;<<;::99899868:879978:89;:769:988998,%.>;<<;;:989869:88679>97::86978::99:<&&0?;<<;;<;9::989848::6688;867887689:988;<#2?<=<::;<;::98899887669:89:669:886;9889::Z%&0>;==;:;<::9;9:=::76998664898788:868:987968:;979="(4=;<<;;<<=;:88;;<::99877898898866766788<89:;:783&.;>;;<=>=:889<;8;9788:;879:866:998<89:;;88'(/<<;:<=;;=<>:;:9;87:64:;89:878988987667:89::8: (1=<=;;=<;:<:=:<;8:88;86;<8897689:8878988;:887:|#(4?<<;::;:;:;:899:>=:<:8:8::86899:989::99<97668H%)6=::<=;::;<:9::98:<<;9:9889:96678798:8878/'-:==8;=;9:<<97;::7:<889::8:98898:97889<::"#0>:;::<:8<>;:<;889::9588:97968:988769:98:;;r$(2>:<::<=<;::<;:99::9889::98:;::878988;::;:8*&+<<:;::<<:>;9::;:9889:99:7688989899:;:9))*>;=>9:;<::>;:;<::;::89::98::86899898789::9:;I!*0E==9:;;::=;;<<;:;;:9::9899:<::9:989::989::989;F")19<<;9:<<::<;;<<:<;::8:>;998::9:;:9:99:989:0())7=?::<<::;<:;<;::<:99:;:8:=:788::9:<;9<989::;K_O|y~|}}~}vUMm}z~}z~~||}}||~~z}UWTlw݁~}~z^Obyzy|w|~~||}~~w||iQL[_~~}iUXo|}}~~z}~}}||eSW`\v܄}~oYRf|~zz}~}|~~zyiS`]X`~~~}}yYK^uy}}~~||~~|~||~~}aJ^]SUw~||z{|~~}cS[k~y~y|~~}~|~}}~|~]SfvWTg~y||~|q]V`{{z~~}}|~~|}|KUfXXW}~|~}~ww`NRt{}~|yyw|~}~TNjrUUg~zu~~|~eLUf~u|w|~}|~}}~JVvv]T[{||~~|~|pXMTww}|y~|z}|~~~ HRuoRWo~~|}}w{kKEkz|~}||y~||~ OSr~VX]v~}~~}~|{wwTG]w||~}||y~}}~~}|אT_|gVOg~}|~||~~{{aQQi|}z~~||}}~}| tS`}|`JUk{~{|}zm]J^||}y|~|}z||}~~| oW[ztTMVq~~z|~{ugLRg|~z|}|}||y|~~|j`a}|cWNc}~z|}w{}rRKS|~z}~||~~}yy||w [XkwaQS`p}~{z|}~ww|bNJ]yzw~w|~y}}y}zWUiubWTSWhu~|z~~ylVIHcwy{w{~z}}z{WVmw~th]MJVq|wy~o\OR\w}|{|~{}}|}|JOo}|ujbfy{w}y||}~s[GCb|}~~}||έJTy~}z{zw}~y|~~}~}}qhhw~||{|ΙDS{}~~~|z{}}{uz~}yzwy~~{zts~~||z}N[~{}~y{}|}|yy||wtz}~|{}~{{~y}~y~}~|~| ~T[{w|yw~~zwz}|y~}yw|}}|~wy|y|{~}|\Qe|~{}}}|||||ww|~w~||~~z|w}}|~WQh~{}|}{||~w~~|~~}~z|y||zzy|}~TSo}~{}z}|{{|~z}~}~}z~z|~~RVs}z~{|{zz{}|}}z~||wzz~}}~~~STv}}~|}||{}|~||}w~}zzw|~~~~RQwz||{{z~||~}|~w~~}y~z~MTz~z|||{zz{~y~~}w|~~w|~}}~}||rJ]~|~|~}z}{|}}~y~z}~wz|~~}}~VO_~~}|||zu~~|~|~~}}z|~~ STg~{}|||{~}~}}~~~~z|~~|~JVh~~}}|z|||}~|}}|}~~|~~||EWm~~}}|{zz|}{z|~||~~}|}~~~}~}~~||~EVw}z~|{|{}|w{~||}}||~~~|~~~|}GVw~{||}}}||~}|}|z|||}~~}~~}~yIYy}||{||}|}|}~|y|yz}~~~}~~}~fJ]}{}}zwvww|zz}~y|wz||}~~||}~}}QRf~~}||ytrp|rt||}yty||{|}z}{MTk~}|yw|~|y|~~}z{}||JTu~}~|}~~}||~~|w|}{||zz}GW~}|~|z~|~y|}~|{yz||}|oJ]~~}~~}|ww}|z~~z}}~zy~}}}aRf~~}}~}|yw~}|yz~~z|y~{}TTk~~||}~~}||t|yy}|}yz||zy|}}DMo~}|~~}|zywwyy~|~ww~}|}}y||RTk~~zy~~|ywt|~|z|}||y}~|zw}zKXt⇄|}~~}zz}~}}~}|wwzwwz}|||z}qTf凊}}~|~z}}||z~|ww~~}|}||}VYh~}zyt|~|z}~||~}zwwz||HXl}||}w}}|~~zy|~|}}|zz}~}|||zNYt儁}~~|}|w|~~~|~zww}S[y~~}~~~||~~ywz|z}}|}{}iWe}~~zz}|~||~||}~~||{||LMj}}|}~~~v||}~{w}}}|{w~~}OXp~~~~~w||w}~}}{~~}wOa~~~}|~~||{}}|}}||]T`~~||~~~zy|}||~~||~~|~~~[\^~׊}~~}|y}~~~||}z|~~J^j~ׇ~~}~~~}~~}~~|~L\m~}~~}~~~~~}~kX\[{~~|z|}~~|~ekshsvqݯkmgzswpv|ܲynp}wyed}pspz}pvq}teswwvjnqjssgs dt}qzwhqannv䬪e^kptw}㩪q_}qtkmm pds}d vzߝqhtgn vjnep zwmpjd} vsvqpvtbavt}hdt|kn|dkz_[dq\pjz桝 qz|mvmܩqp nt pq nm hqꦭ d}嬭tk pqdt鬩^v ^t𦩬 _tܩby謩d}詯mnhq磡dq秩_vd}穧n䩧qq䩧\h᭪nqणewⶲq嶻ty򩤡awjy岯򪧪pz節vݤghkw𭪪k囹}q񻰪򤣧z|׻d׶g|򪯰ߑw|z.........C-h-\-////////6..000000 6/ / 1 1 1 1 1 1 O0 0 2 2 2 2 %1 3 3 3 3 3 2 4 4 4 4 3 3 5 5C4666556:877987:976556<6896686:6876966566889889:86557987;:998878898898766857:7685:686686688768876678987678667899898868684697786:6766886889866887668789866898899::988776789869667679896776886678876889667886788679::99::99877876678866:668788678678667899876689878988:8668988:87787686899876776876869889876788:668898:98898778898876778669:86678686696998:98876868::988:8778987887667896678766886866:87889877678765668:866:887669889:9767899668989:76876776678876767::89986685889878:889:99:788:988988978668767786767::8978876776889;789:988:778:989:9779978:776687677889988688:9897678878897665788987788789989;:889889987678898868898997668:897688:;8789866878878:99897889887766788689878:866797889:<8678879:988:976677667768766898688668866889879867889;889878988:965665687866765688768867985588988;;9:7789878;88:988:9669::86885687875678656886868656998788668898667::8:;8878:9976876688686678778668768687887868:76886678878:;9::886688995878876687668::68768697788768:878766788:;:99689846679965656646898879887998878678778878876989::88997898996556886568868988989:988679767678:8869889976988::8798468768868878867898988988:886876788:6678899879779966886898689865688668989889789779988:779;97877898:98898:8789889868987678689::997878968977::88:889;978998766779<:89:9::8899:;86678644668:988697878967:88;:778::77:98:98766788996:;8:9866899:<98:76869889:89:879::889988;9899886789::8699799898:988698798:887889:;98867889::988::98898778899:88798998689:9768879::9989878::8899886689;8:986898899889866899:7689878688::9:8::88987877899889789889:89:879::97787668899898:879:9889:89:896897799899889878968998898898899:998879:988989::989:69:8:79:869868;988789889889:96889688788998:8:979879988::8848:8;8:<968658;98988989:96778847:88::8678:8:969869978::7::49;7968;868769;9899887899:9976:7889;97:58>:875679::9698786689969:896869659988987789:9986:68877886:68;88989987788998898896889698:87:99889:8789989:87:9::98899868989;8876689:889:9788678798:89899799:878:8989:879887898;;767889868988966889:8867986889:9878:8989:9798878998688998::689989769:779788:98896756976889987789889:989:88:;:98::9879979989:;78:;9899::;:8868868:899899889;9898898668;;98878899:<799::989:9;98868::7899<88998899889;:899:;;867::97689::9887878;:7798977979::889<69:99;:7:9649:88<:8667898::88699876789889989:88:86759:66:;887:88<988:8899;<;98789:89989:9887899:;;::98988::8968988::987:99;88:99:<:988989889:98;:98879:988:989867889;;99;979::86788989:9889986::887668989;:89::88::989889:898688988986789886889889;989:89:9:<;99:;889889:988989898898789887579976998;:899:896 8:99::9:67899::;889887886798:;969987998:;8899<:;99:9::7;;:;::;;99::988:88:9878;88989;9789989889;89::=:8868::;99;::;:9:878::989::9:;:757998:97889977:;:8899:988::9869;9::9:8688:9:9767:98899868988:978898789::99:9:988:;::86:;89:9986889889877887989889:;:99899:989::97::898998987669::99779:98:<:9899:;;988988:88:699::98::98898678:989979;98:;:989::9:;98997:9889:6:99878:99::99:9989::8878:8869:77;:89:9889::899:8:9989:8:8868:968989::68998788989:8868:86::899:8989::99:8::8::8::99:868989:9867887689869:89:88;86:;899:9889:9:988996889:;;::99;9669;68:88:966;897:68988::87::8899<:6:=8:99:98:9:9667887899686968689::989988987876899;:69<8;:98899:988:898788:897868778::98879987669:8::88:9;:98898:887678::8878898988;:868898898:89:98::98688689::86679969:88:9689:8:;:767899:9889::9;89;:9::99:9768878:6889::8::669:788:8988689::9:87889:8:89::99::;::8979689::9869:86689898:8:68799:988:988989:99889:998;::;::8:7694689:;:8:98878997:8;69;86788679:9:;89;;88987}{{}z{wuuvww|~ww|ww|{y~wwvwy||}~}||~|wuv{~}{~~}|z}|}|||}|zww}v{{y|vw|yw}yw||{w||{ww{|~~}zwz|yyz|}}||ywy||y|tw~{{|ww{ww||y||}~|yw|}}|{wwy|}|{|~|ww|~}}~||{{zwwz}~|w~ww{w{~}y{{w||yww{||{y||}~ww{||y{}|yz~~~|z{|{yw{|}ywyy|{|}}|y{|y{|wyywz|~~}{yww|}|{}}}|yy}~}||}||}}{zz||zw|y||{y{{y}{y}w~}||~~}{y{|}}yw|}||~~}}~||~|zz|}|}}|zyz{{|wwy~|ww{|w|ywy~~}}|}}|{{ww||ww|~|}|zz}|{|}|zwwz}ww{|{wy||w|ww|z||}~~|z{{y{|{wvyy}}ww||}}zwy~||{wz}~yw}~|{w|{wzzyy{||{w{yz}~~|wwy|v|||{}}|{|}||}||}~z|ww|{wz{{|}||w{yz}~{|}}{y{{w||Մ{||}{{|}{z~~{|z{yw|{wz{|}~~}}|y||~|~{y{||{|}|{wwvz||}}zz}|{||||}~||~~|}|zwz|}~}||y||~|~~{wwy||{w||܀}z||ww|{|}|{|~||~{}}~}|{{wyz||ywy}}|~}z}|ww{{}||}w{}}||}|z{~|}zwwz{ww{zzywy|zwwy}}|~|y|}yy||ww|||{|wz||}||||}{|}||򀁀~wuyyvw|{|wwz{wuy}}||zw||y{~|vv||||z{}}{|||}||~yw~|y||vw|z}zvw{|wuw}}||yw|}yy|yuw|z}|ww}|||wwz}||z}~{y|{ww||w}ww{|{{}ww|{w|y}z|}}|{|w|{w||wwyy{||z|~}|wy}}~~v|{||{yy|{yy|yw}{y|y~z{||}||{w||z|{ww{|}}|~~ww|}~}tyw{~wvwvwwtw}~||{~||}{~~}||{z{{|w{}{z|}{||{y~}~||~{}~}~~yvvw||wvw|}|wy|}|}||||~~}||wwzzwzwz}|}}|yw~}}~~zy~|||z~}tw|{y||y}|{||y{}||||}}|}|yy|}{w{||wy{|}~~}|z~{{~~ww}}w||y}}wvw||ww}|~||{|~zz~~|}{{{|{{|}~}~|}~}|z}~||~|w|~|{y{|y|~~{}{|~y|z{|||}|z|~|{yy{{~|~~||~~}ww{}yttww}~|}|w~{|{|~w{}}{z}{{|~|{yy{|}~~w|~}ww|~~~|zw|w~||}~|~|z~||||}}|}||yz||y~~z~~|~}~|}}||y~|z~|}|z||}~~~|}||wz|}}|||}~}{z|}~~}||z~|~~|}}|ww}||~~~zw|}||z~~~|}}||}}{{|}}}|wy|~}~|y|~}|~~||~|ww}~~Ѐzw|~|z|y||~|}|}{|{{|||{}}||~|~|z~~zz|zww|}~~}~}|z~~||~|~|~w}{z|}}|z|y}}|}||~||~~~~}||}}zz~~~|}|~~}~~|~w~|z|w|w}}}|z|}}}||~~w||~y}|z|}~~|}~z~|z~~|}|}}s}||w|wu|}}||}}~||~~wzz||tz}}}yz|}~y~|w~~z|zt~z~w||w|zw|}||{}~~~~zy{||zu||{vwz~~w}{|ww}~~w~}~w|wyu}||}zz|~~~|yw||zz||ww|}||~~|zz||}|}||~~w|}|~y||{~}|}{|~~}~|z||}w||}}|zyy|~||}z|}yz|z~|}~}~{}{|}~}~|z~}}||{zz}}{yz|}||}~}w||}wy||~||w{|w}}|{}}~|~~z~}|{||w|}}w}~~}~{w{{{||~}}~y{vy{w}|}{{}|}|~~|~}|||{{~~}~{||}}y||w|}~~|||}||~~|~|||ww|}|}|z|}~~݀{}~~|}w|{}~|}}}||~|~|wzzw}~~||z|{|{{~|~zz~z~|}|~y䃀{~wt~|||wwz|}}|}}y}zwz}~||~~|~}|}w{vww||z|}~}}}|~~|{||~~}~~||{|݀~|~||}w}}}|z~~||}~~}||}}~}}~~|||{~~}|}}|~|~|y{||~z~||ywwz||}~}}~~|w}||}||zww|~|}|}~|~||~}|}~~|w}}}}}||}ww{}~}|w|}}|}~|~}~~~~||}~||~~}}|}}~||}~}}~|{|~||{vzzw||~~|~yw||ƀ~~~w{}}||~}|z||w{~}~w|{||}~~~~~z~~||}}~|z|}}|~z}}}|~}~|}w|~~~|z|~}~{vz~~}~z}|~~zz|}~~送~|}~}w~~~|y||~~zyz~|}~|w|~}|~z||~}{|~~~~~|}}w}~~~|y||~}||}}||}{{|}||z~|}~||}~~~~}~~~}~~z|~}~~}|}~}||zywy~~~{{~~}~}~~ځ~|}~}|||}}y~~~~}~}}||~~}||ywz}~}~~{~~|~}~~~}~~z~||~y~~}z|~~~~~~|}|{|||}|}}w~{{|~~}}~|~~|~~}~|}}y|~w|~}~y}|{||~|~|}}y||y|~~ƀ|}~}~~~}}}~~|y}~}~~|w{}}{y|~|y~}~}||w|~~~}}~~~}}~~y}}~~~~yy~w}||yww|~{y}~|||z|}~~w}~~~~}ʁ~ywz}}|{{}y|w~w|w|~~}~~}|~|z|zy}~~w~}~}}~~~}||}|}|{||}|~{|w}{{}~}}||z~~|zwy~||}~~|}}~}}||zyz}}||{|}||}~~}||}}|}|w|}~}}||}~~}|}|~~}~|y||y|~|yw{~~w~}}~w}}{wz}~~~|}~~}~~~~񀁁~~zy|}z|y|||ww{}}|||w}~~~|z|}~|}~~~܃||~~zz~y}}y}ww|}~||w|{~~~||~|}~|~~~}}~~~}|zy~sy}}~||{|~{}y|yz||yz~~}~|}||~~|z㩦ݩ褐򪬬Уé맩ᩯǬ֩ꦧ꬧ꧩղ𭪧栤ܭ󣡣ʩ򭯭󧤩֤𧦧άĦɣԧϩߩקЭԧ𬰬硬짣ç⧤񩦧妤Ԫ򪦡֪𬧡ݭ򪰭ڬ䰭ةﰳݭ򩬩ު񬰯ީ㬪ƭ魯⭪꭪ﭯ뤣گ㣡Ƥܣƭ魪ᰧʯݧﭪ񭯯լܰ魪𯭤ݦ8:898688:984369;:88688986988;9798898868669:8:98:76757686876886898856887668789:96988;96889868669:8998976768686766886788768966766566:876789;:7988:9688989899887677979886887688668876689;867889;97898:979988998988998789898986869668:9779886689:878988:86699::8:998989989898898875668668::98:98669889:98869;8:998988989988998989:998897765766889898866589:86865998:8988989:88:99:89:8:8:;87669969:967887667889:84865997:6877899879:88:9:;89:8:8:88976689987898:96887;78879866788:379898588:<;989:9<88=;988::6579788789986866:688976687959;898688:;;989:8:86::88:658;7889898788:8878998776859:889:99:;:99<:;:8:;;9889768989988688788988789879577678::9::9:9::88::8997677899886767878878:9:5667988::99::9:99:88::98::64677898899889:89:8;887689::689;<88::9::9;;:;99;9879;8788:9:;9:;9<887897668:989:89:;;898::99::98:9988:6867::89:988996796896:88778997668988:89887;8::9::99;::9:<676679:86=699678<:8867;:8658896:;:988::77:;88;9::98896789988786::8:9989::;8:9866889:9::9:967;989988:998968::878976::9;978668:;;<898986889877899:99::76::98779:98896789878::99889879768998799788986789986998988:89:868::88788988678789;979:779:868869:79898789988988;69:86899877889886568778:96:;88::989:988979989988987::8699898::8788788966887688:8:;88::9:;;:9:8:88:8898899889:9877878988:9657:>:99799:;;9898;988:8988788948:9988;98877889:987668:78899876::89::89989869:88689837:98899:767889;89886698989:98998:9:989:9688668869::99::7889::97::998877998:;:8::998989:889:8::9::89869:9:;96998789::986779::8;9986896689689989866898898:988788789::88667997;:89988:868:768867899889669::9::88:7789898:;989989;98::8899889:98868::988789967988998899::9889::;<::;;::88::99;99::99:876678766898667887889::889;::8:;98868:;99;88:98::79668:98867878:866886579979;:889;89:876789;99::8:>:99;<::7878:8878998874746488766889::89::898:;89878879;8899;<;:8988:88667877::6866466788989:99::9788:;7766788:989:9:;::898896877889848686867889::88::989:9788787889;98:;99:9989868668878864266868688689::9::98::7899876599:9889;9:9:8:88687887668637684668867998:;;99:<<88::987789789988:;9:;:;:;99:898876679869686647889986;;:99;<;899867867::889:89;:;9:9:;99878649797946899:98::9:<;:99887::95688:8878:9:889:88766748686867889:;:9:99;<:86>6686;8688778::9::<7;::98968;:88627668648879:76;8898=997::68987898997889<988984688677647769889648;;:;;<99::868978987887887889;9<<;::87:788988676688746788767::;:6::687887667::9:79988998678664667668:99::9889:<8;98<:988766:898987789::7664688768976886;:989:;<:8:88<:98876:8869:;:989986886676686898664664686<;:99:;<88989869976898896;98769:876788746742468:6896679:9:<;9989:9::<;66<9668989:8>;:9689::8669678626936268799879;99:8899::9:88;:77966896687998766:86786886896556686984648668:99:;;8;<9;:668679557988:9:98898868968665455466876678897:<:<<66776657889::8766898868968664356636676679778998;;9:;9:989986678988986689868868866568754498674889988;;99:;;68987889889887889868868867766886698686889988::9::;;<78868788:9887889869:786568667676688:788<=;:<:;989963586878:9886678997869:7765676686789977887899<::><>88:856;7877:978988789;<88688687667658:68978688978::>:9<:;79878879898866:68866768::78::846::46:8988978867668:;:88:;:9:<<7:88988989978<8867889:988::8868726:8:899668687689;;:8;<;:;<<8::9:98:787866;8867899898:663696768867998789:;;:<<;<<=8::;98:79766:89989:87898898668688667679::9889::;<<=8::;:9:9<9988;99::988:86898896689889876689:;;<;<<899;::8<989898::9898688689878:8987766857899:;;<;<7878;;::6:87868798877889878878689687688:68::99:;<;;<<;;<7867:;::5:88988656789887788689766798798688:;;989:<;;<<;;<|}}y}|}~~|trw}||w|}||~~|}w~||~{~||}~}|w|ww}|{w{v{y}y|{w||y|~}||uw|}{ww|}|zz}~y||~y}||~}y|yy}|zw{w|w|w{yw||yz||zw|~wy{ywvww}zyz|~{~}|~y}}|}~~|}||}|}zw{{{~|}|w}|}zy||yy}||{ww|~|yz||~{|~}{~}}~~}}~}}~~}||{{||||~|w|w~yw}~zz}|wwy||z}~}}}yy~~|~~|~}~~|}|}}}|||{vww|ww}~|~|ww~||~~||w~~}~}~}||~}|}~|||}{{wv{yw|}}~~|~}|ywwvu||}~|w|wv~||~}||~~}|}|||~|}||{yww~~yz||{ywwz}}|~}t|yv~~{y|{{|~~|{~||~|}|||zww}~~|z}~|~y}|zz||}z~}ywz||r{||v|}~|~~}|~||wu{z||z|~~|w|ywy||~zwy|z~u}|y}}~}~||y}||wv}z|}||~~|~}z||||}|{|~~|zzw}v||}~~~~~}|}zw||~~||w||z||~||}|{z|}~~}|z~v{{w{|~~~|||zwzz}~~}||wyzzyz|z||}|{|}~~vwy{|}~~~~~|||wsw{z}~||~~|}~}~}||zy|~w|||~~~~~|z|z||}|~̀~~}||{{|}zwy}~}~||~}~~~}~~||w|wz|~~||~~wz~y}~w}|{z{|zww|~|||||{|~~~~w{ww{}wy~~yz|}|}|wwz{|wv||}~~w~||{{}}}}w{|}|{}w}~~|~||ww||}||}~~~~~yz~}~||}w|}{|zy~~z}yy}|||w||~|zz|~~~~zy}{{~}||}w{}|z|~~}}~|z~zw|~~|zz}}~|yz}~~}y~~}~}|||y|||{|}}||ww{|{|~z~zz~|y|}||}|w{}~|z|~~}||~}|}|}y|y}~|{{|}||}wvw|{{}~y||~}~~}}{|}||~|z|y~~|~|}{||{||ww|}zw|}||}~~}|}||}}|}~||~~|}~|{{}|{z{|}||wv{~~z~~~}~}||́}~}||z||~t}~~||}|{{||~|zww|z|}~~|zy}~}}~|y~||}|ww|~|rz~|}~~{w{}|~}}|ww~}|}~~}|~~|~}~~|~~y||yw||y~~~{|}~~{||{{~~}||~|~||~}~||~}|}w~w}|z|~~|yzz~|}||}|w|~yw|~y}~~}~}ww|~||}}}||{||{z|~}|ywwz~~z}~~|}|w|zw|}wz}~~||~yw~~}|}}|}{{|~}||}~}|}~|~~|~~|}|~~||~~|}|ww|~|}{|~y{||}|~}|}~||~~~~~~}zwwz|zww|~|wy{||{|}|}}||}}|}y|~~|}~|z~yw|~||wz|z}}ww||wv{~~{|||}{w{|}~~z|z}||{|}||ztztwt||zww|}|~}~|}||}|z||{}}~~|~|}||wwz{|{{y}wwswwz||~|~~~~{|}}|}z{wwz|}~|~~|~||~y|z{||}~|t|w|w|wz||~}|~}~~{|}|{zz{||{||~}~~~~|~|y|wy|}}||{|}wtpyw}y|y||y|~~~}{||zwv||}}~~~~~}||}w|{||zww|yrzw|twy||yz~~}~~|}|zz}{|||~~~}~}||zwwz~|w~y|wwtz}}~~}y~~}}|ww{|wz}|~}~~~~~}|{{||wt~z~z~ty}~~~|~}||{vw|||}}z|~|}|~||{ww{ts|w|w}wz||~~~~|www|y|y}}{{}~z~}~w|||}ypzyw|wt}|z~zy}}||}~~zy}~|{|~}~~z||~~}||}~~|tw}|yzzyszzw~||}|}~wt|~~|w|~{}~|{||{|}z||~~}zz|}|}~||wzyw||ztyz||zwz⃁wy|z||}}||{ywz~z~~}}~~}|wwz|wwtwwzyyw}~~}||}|~|~}||}|{ywy}~|~|zz|~zwwywyytsttw||zy}~zw||y}|||~}||}|{{w}||y~~}~~|y|}yyzwy}y|~|ywtwywtw|w}}~}~|y~~{y|~||~y~|zw~|zyz|}||ztwztptw|y|~yywzz~~}~ww~yw|~}~|~y|~}yw~wz}wpw~rypw}z~~|z~~~}}|}{{yw|~yy}{~|{ywwׁ}w{|w}}y}yuuwyw}y~|tyt}ww}|ww}y{~vv{~|}~}||}||w}~y|ywywutvvtwywyww||{ww{}}zwy{{ywwyvv{}|~|{ywy|}||w}~y|ywwtqvwwqwwzwwyz~z{{|}|~|ywyy{|~}}~}wwy||}}w||w||ywwvw|{vtt~|wzt|||}񁃃y|~|{|}|}}~}||{||}~~}w||w||w{{ww||yww~|w|w|||}󆅆{|}|ywy}{|||}{||}~|w{|wuw|wwzwzww||z||}鈄~}~~wrv|w|{||}yy{|~{|w{{wuw{ww|wz|~~{{||{|†}|||vw{}{{{|~||{|}|w|}w|{wyywy{wv}w}~z}w}||{|{|{}|{|~}}wwy}|ywy{{y}z||twtw}~|}~z||w{ww|}|{}|}|}~{|}}|yww{||~~||||y|zpw|}~~yy|w|zw|}|~|{}{|wy}}||yy{|~~|}~~}ywwrw~yzy||wz~~|{||~}{~{ywy|~~}||~|z}~||~|wy|w|}wwzwz~}|}|~~}|~|||y}~||~ww|~||}||~}zwwy}||}}怃|~~|}~|}~||~|y|}||}yy|~|z}|~|zzyy}vz}{}{|w|{|y|{~}|{{||~|z||z|y|~w|zy}}|w|{|wzv|||}|}ywvw{}~}|zz||yw|~zwyz~|z~}y}}}֧ߩ᧪ͩ䧩֪̩Φ頻ҤϤۡةު٤̭ꡤϦ١񪭭멪ڡ詬Ĥଡ󩪧맦ͯާ򭪭磪盛񩧧椪画驧򦧬Ѥ𤦧֪ީৣ婬太੧杪妯ۛ㪩褯򝡩¯Ⱟ򤣣멬筩夣逸䭪ᩣꯧׯ񣦪ᩬȤܣ񯰰ީ󵳵鸲𦧪µکﰪ節𡤪򰯪㭧歰䪧௰ȣᣡ:6687688686867867998695889;88:7889:8:;8669788:967785766987668898768788668766;8:988:788:8998768877866:79986988:9:6689986776896787668699896788:8998678898:96878698898:88768896689789987766788966879868898656:67699799668668;:668:9878978;:8898865488678687668899:99:986798868979989:88698::88998;99679988686686886766899889;:9:9878:9688687:;;89:7:7679:988:99687887376687768867689::988:989987798688799889688698349;76;87896687688696658867679::9889886569;:6886877866989789789738866823796579976678769779;988688986766978::939:787686;89988988;:88689667668767887675678989698998;;78689885686889;889889867669667788787868669789;8865886786869987987788766766889866788798:66:7868669868868899878898678998878865688767867977;9:897887:98869968976989:899:99::;866887863588788767867789:89868688:899:8:886:;:88;96687787:96686567789688697686898:9798899:886977968:;966:89;99;:688965866788:38:7<:;<9::9;:797889;87987:<:8;8966:669:98:98:8868:<9668856988789;88998668878698898:669656569:8799:<78876687798779889:988987688787::8867;68:88679:8899:<688766588989:98998788778:967;667689759::9:99898988:8:9899:99:889:988989:8696866899699::98:;9:867997:98899:879::98 87898667:9988;:988989;:7889889867887::98899:879::887898898858786687989989;:68998866889988989:889:98 8<;89::796898:698:;99:8898689;:9889::988;9899866788989:7886:86:89;87889678896687:==899:988:88998:<8866<6:<;;868897998:8788:9897796899:699869;:6889:9889989:9978988;69989768688::9:9988:88;779789:;8::968:99<<:9;<:9889:98998;:7878868868788::9:98:88:88:89::;889::89:98::76898:99:99:88:8659:8899898899:99:<99:88:899;878::9::8699669;9;:99:7:9897679:88::8988989:89:=98:8788;998:889;;99:89;;99;<;;:989;;:6::8989;8988:97886989:89:;9::8987:8998:8::;:89:889988989;;969979986886766989;8::99;98;86988:8::969;:67899889889;:88986896689878868689889;;:;:9889;8977978898779::7899::9669:8686867985578988::9::;;:99:987989:89::9:896789989;786798669988:;:88:;:9889:;:98998;::78:;;::988969:9886969889;<:889::98879;;::98<;:96889989:98:988998786588669978:889<<:899::99:;9:;;:9::87::998;8878998::9899:865898688698:88:<<;::9::;;<;;:9899:79986:8878::9899:868;966;89669978;9:;;::;::9:;<;:;;::9;789885889889::86899889:989:967989769866;;<:99<;:9;<<:899:9668986889:865799878:668:98897698669:;<;::;::;:99:89;<:889::988768897678766:6788788;8897886::;98:;:9988:8:89::867687789988689877897787:86686::;<:99:;;::8788987::66866868:8899877887<98768:89:;<<;;::;<<:9:<;:88699359847998789689889857998789=988:;99:;<<;:;==;:9;=9::9878876995698897668878:579988:8787897;;::;<<=;::;;:79;:889:669;8798:8679:978668878:76789:9897898998<;::;<<;;:;<;9799889689889987899867678899:9778::86889:89:9;;<=<;:8:;::9867887887688:<68::76686889;:8898766886688;98:<;::98788988:9669887:868698:867<;6::989;:88:8668;98:;;::;::9988987:866878879768688787:988:988:85678:;98:;::;:9889778798676688787676897799668988969889989;98:;:9:;;:988678667688648878;88:;8788978:688:989;99::99::98:8696886878:878::97889:988:9966788;;99::99::987:7696987876868788798878:9689::9:966887:;::;:99::9988788785686496:868989587997:989887889::98:879;::;;99:;:8767886965;7:968::9487:98:99:;:878:79:99::9<:77998<9;<<;::;99889::868;8639;:889:889889:6899889:99:;;:9<:889::;:;;::9::88:897:8876789868:889::89:989::;::;:99:;:9=<::;;97::98899:876:9866898667889:65578767889::9:;;:8==;:;:98::9889:986689886788699:8669:879889::9:;:8;=<<::;::99889:98668:7886899899878:968;889:9878::8:<<;:9:<:9899889899:88:976789989767;8899:866::8::9:89:98898:8:8899::8668998:98:<89::99:866::8;9889988:88:;:8898:698:66899:998:976689989::989::968;;8wyyw}{w}}|wy}}y|y{|wz~~|yv}}~||}{}||}~|}}wy~{}|w{{}v{yw~|{wy|}~}{w|z}}wy|zwwy|~|}{||}|~}}|}{w||{{|wyy{~~}w~}|ww|~|y{{y}~yz|zyww}w~~|~w{||}~~}|}wwy{}|~|~w|{|y~||~}|}}{y|}~yw|~z|~}{{wy{||~wy|{|y||}}~||wvyy{w~~{~~ww|wwyw|}yw}~}z}~z}|}~||wvt}}w{|w|{wy|}~~|w{||w}~{~}~||w~||||~~y{~~||w|ww}|w||w{wy|}|}~~|{|y}|w|{}{{w{~|}~~y|z||{r{wy|{{w|}w{w|~~||}~|~~|{{~|w|}{~}}~y|}w~|rt{y|z}~yy|zy|}wwwu|}w{w{~~||~||}}yvw~w||w|{{}wyyw~|~{}~{|~{r||wwyy}pq{~wu{~{wwz|zw{z||w}|~|w{yy~{}~r~{|{w|w}~~|}||||y|ww{wwyw|zwz||zwzvwz||y~}~|{|w|~}}vy|y|}|~}||~||}y{ywwww{{||z{||{z|w|wwz|||yv||w{|w|y~~~|{~|{{||{wywwy{yw}|}|ww{||{|ww{}y|wyww~~||w||w||~~~}|{||~~}|ww{|~~||{|}|wvw|}}|zw{|wzz{|~{}|{~||y~w}~{y~}~|~~~}ww||{|wrv||{||}||zw{|w{{|}}|~|~|w|w|}||~|||wy|}|}~wy}{{|{~ww|yvwz{{|}w|}w{y|w|~|~{~|}~}|w~{{~y}~ww|~w||~wv|wwz||}}r}{{{||~|z~|z}}~wyyy~~}~|}}|yy|yy}|vw~}}|{z|||~|yy}}|{{|y~}|}~}wywvyvw~|z~~{||{ww}{{~}{{}}|}~}}}{y||{|z}|wzw|}|}y{~||~~y|}}{wwv||}~~}}~}|{||{{|}~yzww{y|{v~~~~|}}~}|}|}}|~||}~~}~|w~y|yy|~w~~~~}}|}~}y{{}}|{~~}||}z|~|wy{}|~}}~}~{|}~||~}y{}}{}}|{~}}|{|~}|~}||v}{|yw}{~|~~|~y|~}|yy|}~~}}||}}|~||}|}}~{w|~|w~|~~||~}||}w|~}}|}||}|yy{||}~~}}~z||w}w|~}z||~y{}}~wyy||z}~||}}|}}}ywwyy}y||~z~~|}z}|~|~z{~y|~~y~~|y~y|}}~||}~{|}|w~~}~{w|y}|~~~||||z{~{||~y}~}}}|}{|{}|y||y}z|}~~~}}||||~|}~|~~|{w}|~}}|wv~||}||~~~~~~||}}|z|~}w~~yy{}~{w{~||}}|~}~}~~}|z}}~}|}~~~|~~|w}~}~|~||~{||y~}~|~~|~}{}~~}||~}|~}||}|y~{~~|}|y}|w{ww~}~}~~~}|w~|}}|~y~y{|~~|}|||||w|~yw}|{||w|w|||~}||}~~}~{{~{|}~}zz~{|ww~|y|y|y{|vu{}|}~~~}|{~|~}~~|}~~w{}~}{|y{}ww}}|}}||~~}~~|{|~}}||~~y~~||}||y~y}|||}|}z~}~w|}~~}~~|}|~~}|{{||wv|}yw~~{|}|}~~~}{|||z|~~|~}~~|wv|~|y|}}yw~~||}}~}~~{~~}y}}|z}~}~~ف}y|wy}~yw~~{|~~ǃ{}~}|v|}~}|~|y|~}|~~}~y{}~{y~}yy}~~~wy}}w}|}}|~}wv{~~|z|yywy}|}~{y~}ww~~~|~||~}|{y|}||}~{y{|{wywz}}|{||}}~{||wŁ~}~~||}}}}~|y{y|zz|~~}|w|~|{{|~{z{|}}|z|yywy|w񃆁~~|z|}}~|{ww|ywy|}}||w}||~|{{||}||z~|{y}|~~}||}w~~rv|tz~~|z|~w|~||}~}v{|z|||~~愁~~~|z|}{w~uw||}~~{yy||{|vz||}|{|{}{z~||~ww|{~||wz~~z|ww||{|zyz||~{|~|~|~z~~||}~~ww}}}~~|z|~~|y{y{|}~{z|}w}|~|~~|~|yz}}z||{y|}w}zww|w|}|~}||}}|zww||wy}|}|{}}|}||~wy~}||z|w|w}|w{w~|~||}wwy|}}}|}z}wy|z||{{w|w}}|{{||z~||}~|}|vw{|}}}z{{||{z{z~}yzww|}{}zw{w|{{ww|~||}||~w~}|~~}}}}wz|wwzy}}||wt|}|{zz{{||||z}}||~~z|w}}|~}||}|}|wy}}||ww||z{{|ڀ|{}{}|~~|}yw{||}||}z{{wy~}z|zy}w|z||{||{z}w}~~~yw||{||{||{|vw}wsy}w|~}~v|{{|}|{|}||~|}}{~|{wz||}}wwwvz~w|~s|{||z|z~~~~{{~}~~}|~|y||yr~||~}|~||}~~w|~||~~~~||~၃~}|}}}|~z|}zwz}~|y|||}~||}~}~~~~{~||~~߁|zw~}ww}~|wwz||}}~~yvv{}{y{}}~}}~}||~~~}yy}~|}|yz}|w~~}ww|{||}~~|惁~~||}~~~|ww|z||y|~~|~~}{}y||}}~~߀}{||~~}~~}}~|~~|}||~zyz|~~|}~{w{|}~~ր|wy|~~}|~~}}|~|}||~~|ww|~~}~||}~~~|wy|||~~}|||}||~}y~|yww|~~~~}|~{ww|}~~}~~w||鯡ҩʦΩˣ𪧧捻񦡣߬觩䡣ڧ棪ߤ穬穪𩯰䩤򪬩֦詵ݣȧ밧֩򪣪嬰㭪௬󦪧ᡦӬϩ筧ެٯǰ禣ů񰵯񪧦ԡݩ沯ߩ˧اꩤ⤭ݬ穧٤󯬧񩧩ڭ驤򩪪ᯰᯪ߯欯氯֭߭ݧ诪8787668::7689868779689886787887668956678778;:6;79.$%8::8(!*87787668876789898896887878987789678988676::7+")8::9*"*877889986678878898:7789878978998788979;78988::=2&!0:766*$*886788998789768878:8998788:79;68;9:8;88*#!4:556+$&99886899889::987668668879;9987889:69957;995:94&&4869;.# 9988778868987689686787989766789;9988789978867;996<<2&'*698<<0& 8878988756688;:9766889:98898987898,$&.:;9;:.&"8878:;9889986897997989667898878898799:9866;76*&)79:9<9.%!68:;:98966886686689:85889:89;988789867:<;78;2&&.8897:<2&87789986878967989::8899889:89:9898788::997-#(089:8;<3&886788687897898;;:889:;889:89:8879;:868::7'"-7;99;<3&8899878876897786678868877889::8:9:99:86799:2!"1899:<3% 68998788668:8868668::869876689:;<:779::;:87899:9. %588:9:;<4%!667886879;::96<988::8798877899:;9789:;:;:88::8;6*!-9:997::;4%"7668988989:9:97:878866898898:9;:9889::9:0#!1;7987:9:4$#788:;97889789;<:889789::8766889<:9<;86899:.!#6=8;9698:4%$5838<786988787668678::868<<:966::68::=;66("-887;<;6696$%8:47968899876889886678878:688:89789:;91%%0988;689;:6%&895896889866898899887667688:9988;<;;8<8788<:)"(5:89:877998(&6769:798799669978987689976679:86988989;8:87=5#"-99899<7688:+%66:89869966997998779:98878::8699:988:88<89<-"%1;869987:;79+&97688788688779989:988:9699:9889:<;88::8<:98'$*6;76887897;.(966878877889879:9489::889:88996688:9::91$&.8;7669:8668>/'7369898687889648<:7689:;:87;9:;88978<:6:8-%'1::767969;::<,%688788;;88;:6889::88;8:88:8:8:866598:68;0%%*998849<:69::0)889886988989988968788;898:876687868;0%%.;:985:;:7::;;1(988986:768988:8::868986988:998:98768:;:;9,"&4;::76::8::;;2&998;88;;7679::8898;::9698989:8669988:3$)8;::76<:99::;;2$89;:889766988998898:9:868899868:7678.$3:99:67;98998:;3"68::87898:97679:86698668676886889989868::8:6)!+::8867:97:89::3$67889887::767:<9887696889898699:9.""/8:8876788:8::4&86679:867:;:768:;<:889988;898798:96898;8* '58:98767688:9:;:6(88998988;8789878568<<99796;:49989/! .899:8998<<;9:8;>=,677887998988789988:89899677:7::597:7-!#2978;::;9:798:;<,8898989678988;9;8852676:78:7:680&!*8=96:9878:6<9::<<=.98899889889:89988789898764798:78:9:69+!$/8:88:889<::689;::-76688667889:;:8678876998699:979:8:97&)588:998::8:;9579::9,9779976887889::;9767997699;9798:989:99:0#!/987=988<;688:7::;;<.;88;;8799887889898898869987867898899*&*6;77;::=<899:7979:;.97799668::8776779;9886877668648:87:97!&/:=::<8:8988:9<:;89;?/<68<8566:987678998689;89976788:9699;9&"&597989::9889:69968;2857968;9<;:98869:98799:9:98:2#%.:;8::978::78:2989868:6889::6789::889987899:7<:98*"&5<;:;<::988:;;:9<::<688997897889989:;;:868766799897;;92$$,9:9:9<:9::988:78<<;<6989:98869889898668767899:;7)!'6<89:89878::78>;9:3:89:9766889:;<889::9989:99881$%0>;7:;99:9989:867<;9:5688:;::98899;;:988989::99;7692)&*:=88:;;=89;;:976878;::>99;:6699889889:98898898:96=-"&*<<6::8::;8899:8:>:88::9;<:8;;:;9688:;:9:969::96678;>1&%)4:68::;9:99:979=9;86:;:978::9:;88::9:97869:99;;9988:8679<3)%&2:7::98998;::;:67:8878;;:;99;<:;;9799898897::989:8989:979>9+"#,9<6;;:988:9:;:868:98:;98;;:;;::;:7889:9:;9887::87:>0(#&4;699::98878::9:9::88:;8868::7889:8::989969:98975(%(0::4:9::;:98779::899:;:<98867::8898899::97:;:;<5*&$.9;989;;:98::89::9:88:;8<99:99;;989:8898;:99::988;<976.%(,4;87:8;;:889::9;998996:89:99:998::8879889;<;:69950+'#*798758989989::89::9::9;6699:98::878::869;99:;::;:858:2&"$,49;::9;:9:98:<:67<:89:99898:;;99::989:88::9::;::89:2()0:8::;::<:989988::78<:89:998:989:98:998::98:;;:99:97:95667;::8:=9889:99::9:;9899799:;998988:9:;;99::9:;79:9:95:9889<9889:;;9:;:989:58::;::;989:8::9:<:8:99::8:966;<9:9889::9:;;9:;:99::68::;:88::878:688:8:99:;;:8798998::8::89;;:;;:889989;:9:99;9:989:738868:7989:86899:;;98<<66:99:;:8898:;:9:98::9::4,;88:99::;87:8:<=;:997<67<989866899;9;;:9:;:;;99:87:9::;<;1&}|{{||zww}{w||w}{{~w|||y{}z||{wy}uwyz|{{}yzgOS|}XI]|{{}|{wy||{y{|~|||~y||}|{{}z|~}zz|~yz}~||}}y{wz_K\}]K]|{{|}~~}ww{|}||}{}||}{{|~}{|{}~~|{|}~{{|}}oUJk{wy^O]||}y{|}~~}|{{||~{y|}|{|}~~|{|}{y|~}}}]MItuuw_QU~~}||}w|~~}}|{ywyy|yy||{~~~}{|}~y~~v{~u~tTTs|y~fNH~~}|{{|}w|~}{y|~y|w{|{~}~{wy{|~~}|{|~~z}}w{~woTW]w|jTH}}|{{|||}||{{vyw|}}{wy||~~}||}~~||~~||}|{|}aOTfgUL||z{}}}|w|{~~{|yw{}~}}{||}~~}z~}yy׃{w]U[{~~fSJy}~}~yw||ww|ywy|}|u}||}~|~~||z}~}yzz|oTTg}}{pUE|{{|~~|w|{}~y{~|||~~||}~~|~~}~|z|}~~{cMXk}~|rTE}|y{|}|y}{}~{|~|}|~||}~~~}~}|z~|y|zWLez~~rTE|}~|{|}{w|~{{|ww{||y}|{{|}}|~~~}yz~oJKm|~~rRGy|~|{||yw|}||w|ww||w~}{yy|zz~}z}~~~fHSv}|sRJyww{}}|w|{~w|}}{~}|{{|~~z|~}}|w]Jc~{tRK{wwy|~}|~|~{|{||ww|}}~}||~}~~}}~~kMJl{}ztQN{|}||ف~{|}|}~{}~||{|}{wy||~~|w|~~fIMw}~y}tSOv}q|{}y}||{{|}}|{yww|}w{}|y}~yyy|ywXKe|}{wwwOS|t{w}|~~|{y||}}|yww{}||{}w}||}||}{|~lRRk}|w|wSU|v|~w}||}yw}~||~}|{yyww{{y|}~~|}}|{||\LXu|~}z{}YTw{w{~}{~ww~{|~}{y|~{ww{}y~}||}|~||{vMKc~|~~zy||_Rwwy|~}y~~yy~{~~}zz~~}|{}}w~||}|}~eLSm}w~~|z{`T~{y||{||y}}{{~~|~~|}~w~~||}}||ᅀ|VQ]w{w|}|z}{gXww|{||{{||}|~~|z~~t|}|~||yy}|}~mQTg}{wy~}ww}hV{rw~}~}y|{||}||}~~wt|zy|~}{||~{}y}cSVl{wzyaSy|}}||{||||w}|~|}|||}}|||wwv~}y|kRR]~||t~wk[||}~}|y~}||~|~}||}w}{||}|}{yw}z}w|kRSf}uzmX}|}|y{w}||}|w|}w|}||~~||{w}bLUt{w}pT~~~||||zwz~}|}}~y~}~}}yy~}}rOE\}zy~~pO|}||~~~{yw~|}~~|||~}w||~|w|zw{|fEOrwz~}}qLy}}{||{w{|wy~}yw|w{w}|w|||~|w}}w\J_||w{~{}~qOy{|}~}}|{{wz~}||z{wyw~~y}|}|}w~~fKKh|}|{y{||}sT|ww{}y{zw|||~||}||~}{~|~w}~|}]GWu|~}{y{y}}~wX|}~~~~}}~}||}{|~|{|uy|~~{~wt~~}~iJHg}~|~~}}ayz{||{~}~}}||{|~~|}|~|~wz{zzv~z{cINo~z}~{~|b||~}}~w{}~}|}||vpwzy{}{w|jTJ]|w~|z|wg~|}~~}}~||}~~}~~}|{|~}|{ws{~}{}~y`IOi}}|}||~y|c{yy}|yy{||~|y{||{w~~|yz}~zUC[u|}~~||~v{b~{{~~zy}||{|}~{w{~~{w~{~|~|~jMJh~|{~}|w|}{f}}|{}|{||}~}~}||~}|w~~|z}wz}}}~~]T]w{z}~~{~{~f~{{~yy}|{zyzz{~||yw}zzyw|wt|}{~zJTi|}~}|~}iw||vyw~|{y{|~~}|y|~}~zw{}|~w~~UKUv~{~|~}}~y~~w}p|u{y|}||}|yww~|{~~}oMRf|~z}{}p~|~}w|y|}~w{|}|~~}{|~~{~|]LUv~}|}w}|~~{}{}}~~}|~~|w|{yy{~~}~{oOOa~~||{}w~|~~||y~}}~|}~}yw|zy{}~~ꁀz[JVy}~|~}z|z}~r}~{yy}}||}~~~||~~|}lOSj{~~~}|}~}y{vy||}~}}~~́~}|~}~~~{yo\T]|||~~zw|z}~ww~||}~|}~}}~}|}~|}~yeKT^y}|}~~|}}~|~y||~~wyw{}mUS\sy}Ą~~~z~~}y~z|~||~{}w~~~~~|}|yzr\RUoz~}~~}yz|}z|~~~{~~}}|z~}~}|~z~`LNay~|}}||y|~|~}{||}~~~|}}|{|zjXNUsw~~ ~|}{|~~~}}}||w|{||}~|~~w~|{vXRXkt~~}{{~|~~遄~||wz||}~||~~~zu^UQf~~}~~}}|}~Ā}|}~~~~~|||~|~~~|}{wgSYbt}{|||~~~~~~|~~y|~~~~}||}{~||~w~uj`VM^{~|{v}~|~~}~}~~yy~~~||z|}y~~~}v}oULOat~~~~}wz|~~~}}~}~~|~}}~}~oY\k}~}~~|}z}|~~~}||~|~~|~~}~}~~{~uwy{}~||~~~~~|~~{~~~}~}||~~~~~{v~}}||~~}}~~~}~v|Ã~}~|~}~~}|}wy~~||~~~~~~y}|}}z}w|}}||~~|{||}}~||~~}~~~~|zr}||}|y|z~}~}y}~~~}ww~~~}|}~}~~|~tb}|}~~|z|~~zy{|~}yy}~~~~~~}z~mU橧ۣkpwb}ҩe|}e}٦sdk}০}hbms橡qqћja褩qv}qa䩪kqsgߤװ}szpdǪqqs^頻چhwq^ͩvgq^den_apnd}dne௭hdmjٯՉbhpkЧwekp̦nnps|gwyqhengpq᳭tm}wmqtptpnn}z񪬬npwgsqk^|k^kg|dᡦkߤeeq}_vwȪdaƦbjǡqd}©bks[zhdǧ}q}ǣdqᩧses媩쯬hn𦩯ࡦ}gskk꯭zdtﯤאָkp񩧩̯|q}ܪeqѧsp|IJ|nsgj䪯wjs⭯wnw鯲꤯smĭpyǧthsgkȪy|éݪð񲯩s6977666778y9T6>6560838:666%7!6'6&7!6!6"6y6`6!];]8!]8%E7#37$,7",7$,8&,;%(9"7$ 7'!7!"7$!r6& K6)!>6*"?7*$;7*"07*!&8*&!6*(6.&60%s61&&m66%"?69& 36;)!*6:*&6<(&!6;*(!65,&*6-*L6*"#6'%X6&,66977666778966u6k8r86y6S7I6W6T7J6I6L6B6E6I;D8J8S7Nr7Qb7La7Oa8Tb;RY9K7OH7WJ7JL7OJ6UG6[I6]L7]O7]Lk7]JT8]UJ6^]X6gTB6kRB6mUU6wSL6UGq6\I^6^UA6YTI6]XJ6ubU]6e]C6^LN6WR6Ta6997;=<=;8==9668867p;b6v6q;d6b7g6Y6^;b<\8d8p7j7m7g7k;q;ny9e9ka7vd7dg;kd6s_6zb9}g7}k7}g:}dq8}sd7}w7qY7nY6ss7pg7s_6|b7sX8yqb9}wd9s}8}[6gj6vn7q6%===============%<<<<<===========C;;<<<<<<<<>:X:;;;;;;;:<;=    'B %19:;9=9;979<:87'W0==:278;99:989:'W!197::=8:8:;88::)R"#1:6::;7:69<8895&`(.69;8::8:<8895)(&027:<6<;=;78::&f*&*.4;9:;<978:;&/$((2:89878:98.f& '(+2::9:<8.8"('-6><67<.~*!#&)*1;;6.T&$)*-34839"#'))2.=!!&%/2"!.2 'GSm~{|z'CEjo{}}'EJmz}|||)KNly{w}}u&@Yfy~}||}u)>XUkp{wz|&]DT]gsz|&hBOXXo||z}|.TGVY_o|.}EKXWcww{.]JNT\]lw.TQ[]cqs|3LMW[[o.ΈIJUS/oLJ.o '_p'[^'^d)ej&Vy)Sws'}\q}(ތYkww.q_ty/^ewv.}djq|}.qmz}3߬ghvzz.bdsp/ٕgd.ڕ -----..u01u 3 468:<> <:9;;:98::<9;:89959:9987:;7987998<:889:;99889:99898::9:8::<:9::9:<8:98998998::8:;8::8:99:9889::9889::898998:889::<<::<;:8:98:9::89<<:9:8;:8:99889::99;998:;:898988:9:99:;899:9:8988:9::9:<<:898::89898899::998:;::89899798::9989::88:8989;9:89:;::9899;::8:889987:;::78:9::8989::9:9::98:<9:88:<988:<:;<:<99899899:8:9::8:89::989;;989;:98:<9:98::8898::9;<9<9::98899:97988<::8998:8::988:<99:==:88<:98:<9:;89989:89987::8:9:;;988<97:98=::7787:8:8:8898:<<;::9:98;:89:99889<<;9878:78998899887678;:8867::99<;987;99:<=8:99<:89889::987998:;89989:889:8:9:68:;<8::9:899:9:788::87789889:99:9889:;9898997786:68;<<899899:89::;:88989:988989889::98:9::889857=>;97:889::98:99:<:8788:988789::9878898898997899,08::9:9989::9889:<:9:8::887997889:9768898668987875688%&+-2:988778:<<:9:;98:8:9987988989868878:9:978:9 !%#'047<:889::<::968::9898:9889988:877887989866874"('*.7::<=:8<899:<<::;::98779878:8789:867:77878985995ٙ?%$&'.47:;:;>=97::99<<;;::;778868:88768:889:98::7=*$*)')1799<:9:;:98898868:9889987799889::977897d*&%&&%*27<;89::79;<:998978:989::87887788:8799:ۋ9'! #%+/25:=;:57::998:98:9::987:989:99;X/#$(*,158=9::9878988:;9898<:988::9:99879878987:C&&$&)).66899:;878:8788:9878::8998899889;::;99;{5$#%&*%(-26899868976787889:85887787::99879m7'"%&')+.348:99:99:;7::<8::7898::88:98::7~3,#"&&%(,.38::9:587986::98:9:;88:<;;:8y=." %+&%*-.26799:;:<:;:8:9:<6878::975C2"&))()+.1599858;889:;88669988?-%!"#((**+.274;98;:9;:9899767ϣm:*!!$%&)''$,-1767::9:;:77p=+##"$%$"&'&))0335:;<<仅B5/% %"#*''*)(,023.~B3,'#""&!*(*&.ۻW?6&&"'%.ì|^>.22.4~}|v|{z~}z~~|}|}~~|}~~~}|}~}||}}||~~}}~||~||}}}惁||}}}~~}}~~|||}||~~~ǁ||}}~|}~|~||~|||}{}}||}}|}|~~}|}|zz||}倁||}}}|}|~~}}}}}~|}}||~~}}~~z~}}||}|}}}|}||~~}z|}}~z~|z{|{}}}|}}}||}|{}{|}|||{wz}}}|w{~~}zꀁ|}|||{}|||}}||}쁀||y}}}{|}}z{|}||}||~|zz|wy}|}}|}|||}}||}|}}}}|~|||v{~z}}||{|}}|||{||z|}}||}{|bk}~}|}}}}|zz|}{w|}|ww|}{|{vw}}RU_ep~}|{{|}}}||{}}|}|w}}||{{||~{|HJSMVksz}|w|||}}||΀}}}|}{{|}|z|~|ww|{sAKXV]f{}|}{z{}z}|{||w{{{|{zz}|v~u‹SDQTWgszz{{}|w|}}|}}{w|}|||zLj]O^[V\l{~~态}}~||}|w|}}|z{||~zz{{}~{ܣ]USUTR]p{}z}|{|}}|{}|{{|}}}{~VIHMR`houv{~~}|}|}||}|z~|՜iNBQX]alu}~~|z}~}|}}|||{~}{}|{ÏTTQT[[\fwy|~~}z}|{|||z||}}||~ݰvQMRU^SYcow}|w|zw{|{||}v}|zz{||z|zب{VCLSTV\_frs}~~{}{}~|}}|zҲqaNKTTRXafq|v|{~|w}|||ݯfLGR_TR]egow{~}y}z}~zvoKCDT\[Y\`flv|v|||||ww}|}ͳeRJKMYY]]_fpzt~}|{wzȨ^JJQSU[VVOaclzwz{{Ǫ`NMKORQLUVT[[kqrvֶvhSHRLN]VV]\Xbkor.ٲqbWNKKUJ]X^T.śyTTKVS.α.22.4񬰲Ϡꧬ몯氯򧭰ǯ審񤧭孯򭩯詬㵪ꦡ꭯쯭筬橬򳭧󦧬몯ΤnsҧadphtέٛXewt}뭬٦ܼp\mqv歬߸}kzt|歯}spsqn}ꩧتtbahnǎjYmw}qqmqzz|ҠmhnspyΦt[gpqt|ӘjeqqnwҸg_nqn}e[\q|zy|Ծndehyy}}ίddmpszttkϸjheknmgstqzzֿpangj}tt}|w.ӿvjeesd}wq.ƾqqetp1ɻ.22.:=<:}6 5 10,X)&%#! $X(K-1 7<?;98867887896887898679:987766998988::88::988798868899889989878899:76788788988766789978::9:98::889987798:88989::989887899889898868789:877::9899:8987798988:8::9989867997877899887899789878986688:88998788798898:9789988968868::88779:989768:97795568647;778898:88998998988:9::89:;99;889898899889889866876469889:99:9:889:99:;9;::;:;::9989:9899877:99:987886768898668:8:9:889889:9;::9::9877889889:889::9667886468987889:9688996698:878898:88978::978:;:998779::899:86:9:74788988768:8;9;87868:9::8:;99879;8;:87788769:9788:9987:89989:88768:88798898;:9::988::99889:8:998779:98778:98896988::8866766898989889:99878:9989:8:88::988:988789889676688786776688:87767:99767:89988997:879988::9889989:9675688687887887889:99767989:899889778989:88::989868:98996768:8688988997678788799:9987798::899887889::9889::889968<:689886898688987::768988698<:9:988:8998979::<:8<8679988:69=:668974476687876:;8679788698<:9::988;:899898;:89<<98898658998::9676988:78877889::88778<:889:68978::8:;9;:799878899879:989:8665889788988:889899:998779988;<:9:8::7997789::8766878878988998879:99::8899889868878::898998997889::9887878988:9887::889869:967::778766889899899:99899::9889989887988:988:87997:;:78::88787667::9:99:9889::89:89988989:8:;:8::9::97:8899778::9:8899:988998:98:89989887899:;9::99::899::87:88:9779:9:88;88988:;:889::99796887:8877899:<:998:988:768878:98:78<88::9;<99<<:9:9:78857:89889987886::998=9989::87899:8689::889:988998:;99::79:78:8:9976788::8:9989::89:9799:9:99889889:99::979:89:8:889987889;::;98::99::7889:98::989::;:99:989989:9879:99:8878998898::<:8;;::9788998<:99:9:99:;<:89989:8988989:98789:99:9:99:<;99::9898;:89::98:9989::89:99:8998898:9889:89::<9899::9:98899889::899:89::8::9889:99:9889:8::8:8899:;=989::99;:989::789;>>=<989;:<<9::989988::9899:8<<88:9:;>889::9:<<;:9::*)-044586@>;=78::99::9:87;<:8>;;<::;99<::;<;;<69:889:(&&(&.11556879;:;:799:;:99;<:687:78::;:99:88::989::8:;::/*)!%!$"%$&&%&()**,//01/4466557:9=<>::9:=<<>>;;:;:;97:;::͖F;2)($# &&'&$%%&#(**++,+)11326625669;:<<;;:;;:<:9:;;=ձc?=6(+% $!"%"!#%$&($*('$))%(&&*)..-,,..1.--.-.gHN<1,.*! &(" %&)"%#'%&%#'&&%&)&$''&$֫lUall9556361()('((*(!#! #$""軸ýr~|}}||}ww{}}{|y||z|~}wz~|{{ww~~}~}|}}|}}{||}w||||}~|z|}~~{y{}}{|}}~}||zww{}~~{}~~}}||{{|}}|~}~}|z|~~|}||~~||}~}}|yy||z|~}{z~}~~큀}||zz|||||}~}yz~~z}zz}~~|}|z|~~z|~|z|~|ww|}}||}|}}||{|}{|||~{|||y||y|}}zz~~}~zy|~zz~vvy|wtzzz|}}~~|||}||}}||}~~|~||~~}|~||}~|ywyww|zwty||~~~~|||~}~~|zz~~~|z|}}|ywzzw|}~|yyw}||}~||}}}}{z||~||~}|~~ywz||wtw|~|{||~~w}|~~ww~}|{|}||}|}}z|{||z{|~~ƀ|y~{tz}|}||{w}|}{|w|}}}{|}{{||{w{||~~|z|~|~||z{zw|||{||}||}||}{zz|zz}~|}}|~y~||||wwzww|||||}||z|}|||}||||}|z}~}|}~~y{ww||z|wz{ww|}|}{zw{{w{}}}{|{}}|}|}~~yzvw||w|{}}{||z|}||}{w{|}}|{z}}|}}|y|~}~~y{y|}w||}|{wz}{||{|{{|}||z|}|}|||~w}y|~||y|~|w|||{{w||}|w|||}|z|}w{}}w~ww}~{ttzww}z}zw|w{{}|w}||}|}}||}|wu|~~}wzw||z||{{|}|}|{{z|}}|}}w}{|}z|{|||{}}wwv||{|}||}|}|}}}{{|||{zz{|}|}|zww|{|}{|||||}z||||}w|}|z||||{||}}||{{z||{|}}||z||}wwz{{|{ww||}}}~||}}||{|}||}||{z{|||{|{wwz}||}}}}}|}|}||}}}}}z}}{z|}}}}}}||||{|}}z||{{|}}}|}}|}}|{w}}{}|z{}}|}}|zw}}z||{|}}ԃz|}v{}}}|{||w}~}}{|ۀ|w}}||||~~}{{}}{w{|||~}|}z}|}~}|{}}}}|{|}}z|}}|}||}{}|{|}}}|{|}|ҁ~||}|}||{|~~|}}}|~}~}|}||}||}}|~}}}|}~~}}}}ۀ||}|}}}~}}z||}|}}||}|~}|]\ckttu}wz}~~~}{|~w}}~XTTYXXTTglmvuw|z~{~~w|z{}}}}}h][JRIOLSQTTRTY[]]bhikmistwwuu{~ȃ~{o\XQMHHTTUWTQSRRTNX^^_`a`[mmroyypuww΃~оwX`RHOIALSLJNRQTYQ]YVO\\RYUU]\ffcbbfgflgcefegºmbf^JGTXKHST[LRMWSTRMVTTUTSRTUU[[TQVVTQƧvuyqwmX[XVYYXY]]YJMJHMOLL׫榩泥ݩɩ⬯ᡩ檧Ҫƭߤީ𩧬棦禡𪭪¦ĩ試ĩ꤭ש󦧦ˬﭯƩﭤ԰ۭ𦡦Ӭݬү񰭩ۭة}|ଯwqqywwqq}zdnbkgpmqqnqyz}}Ȱ|wmhaaqqsvqmpnnqjwzΰʼwnakbXgpgdjnmqym}ytk||nyss}|򆅅ód_qweapqzgnhvpqnhtqqsqpnqsszzqmttqmͬwzwtyywy}}ydhdahkgg8 1q& \\\7C 89988::8:98::=::8789987:;88:;:768:99:89889::989889658899889:98:98::<::9778879:;::879:889889878898896767866989988998899899;::98778799:;:98898998898788789887698799:988997899:99878898898698998789887:8:989::8:89898998896886699889::979:889899877:98:988::9:;:88998899::9987788::66:;:689:;:998::889878878998:8899889::989978:9;:9:98789::868::8:99;:9:8::87885788789:9599899779::;:9989978:9:88::989:998668:9::9::8:8:977873799889976::9::88;9<<88:889988998:978:86998789988::89;97898:98:<9669677;8::99:97::67979:9887::89::89:988998:989:98:989878978688798:99:9;<88:9;989989:98::9889::;8899;89987886:68::788988:<:<<::<::879;:9989967988::988;78989;:89:99::897899887789889:989:8899:879;:9:996898899::99:78:88988::99:98877869:7899878988:989:998::989::889::978::9889::8878775::889989:988::98998998:9:;98::<;::98688:;:89:<:8879699899:978:;9879988:;998:<9899:<<;:8989<;9<:<:8::9:878<898:8899::89::9:977:88:8::<=;9788989::;;9:8:88::98877:8788:889::;988:;:9::88988::988::9789:99787:9<::9:<;988977:8788:8898<9889::;:889868::8998:9<998:<;889;8798788:99:87998:<:<;889:9::988:9:8:8:88:89:879889899:988989::;<98898::;:998699889::89798:9:998898897889899899:99898:898::86889::9899798;:;:8898797878:8899:98:88:8898898668::98898::8:8:99:998:8878:889:9889:;<:878::68:98989::989::<:867899::8:8;99:<;:88:8878:889::8778::998:98878:9:799:8::889:;<99:9::8:8:;68:9;9889988::898899::;89798:;:9::9:99:;9::9::8<88:8::689::88:;::;:889:99:8:9;8:8:7889::9:9889::9:9::99:8;78:9::55789989:9::9:<:9::98:9:8:9:7789989889::98:9::89:9989:88978878::98::9<:9:;:9::<9:6989:9889::8789:;98:9::89;:99898<:9987;;::8:;8:698::9889:778:;;:8;99:89;::988989::9::9::<::988:9::8:7:9:8898898899::99;9::;9::99858::;8878:;::89:;9:89788:<;99:99:9:;;<;97:<:878:889:<:966889:9:=7889::9889:;9=;8;::889:;::;989;<:88<8789;;7:879;:;<99889:;:899:;::988988;::<;;:99;;::;;::;::89:8::99:;;:<<;::==::;<<;89;9:;9;=:8;<98:<<><;:=;;<>>=:775220.><<;9:9::99877;;:;<;=:658866886532/.-++,-,,+/,(%%&$"/-/0-**(+**)**++))('&&)(&('&'+'&(*(()%&&'('&%$&)'&%'*$"!#"! #&$&'$"#!$$""#$%$%%$#""!$#"#"#"" !""%#"" %%$&*,-.+-6?FHWo#"")-)++,././22567;9<==>=??F]{}~~||}|ֈ}z||z}|zw}~~|}|}||}}||~~wu||~~||~~|}熁{{||z~}z~|}~||}}}|{|}|}yzyz}yw~|~~||~~}|}僁|z{|{~~~|}~}~~|}~|z||}|{{|}||}z{wy~|{~~~||~~{}~|{||||}~~}|y~}~~}z|||}|{zz}|~|~}|||}}~}||y}}wy~~||}~~~{}|}|~~}{{~}~||~ԁ||||}{{||wwy}~~~|}|}z||z{}|}|~~||~|{||{|~|y}|~~~}|{}|u{|}{|v|{{z~~|z|}|}~~|yw|~~}}zz}{r{~||{y|||}}||||~z|}y~~}z|~~}|}z}}|wwwzz}~~{wz{}|}|{}~|~~|}~~}}}}}z|z|w}|}z|~~||}|~~}~}}~}|}}{|}ww|z||}~}|}|{|~~yz~}|~}||{||||z||}{z}~}||~}|}|{~~yw|~}}~~~~z|}}||||{{|w{|~~|z|~}||}|}}~|~||}~{|}||}}{zz|{{v|}~~|~|}|}}~~}~|w}}|}|}}{{w}~~{||{|}~|~|~~ށ}|}|{|||}}~~}ހz{}|}~z|}}}||||{{|{||||}|}||}|~|}~{|{|{|}{{|{}|}}}|||}}|~~|y|}|}|}}||{|{}|}{}|}}|}}||~~||}|}||}}|}{|||||}|||}|~~|y}|}}z|}}}}{}|||}}|}}||}||y||}}z|}||}{{}{||}}||}}}||~}yw}}}||||ɀ||{|||}}|}|{}w|}}~~|~|wz||}򁅃}|}||z}||}{{|}||{|~z~~}}|}}|、~~||w|}}}|、||}}}~|~z~}~||}|w|}||}}}|~||{||}}}~}{|vvz}}Ɓ|~|~{{z{|}}||~}|||{||{|}ׅ~y~|~|||{||~||}|{}}y~||}}{{||~~}||}|~΀||}|z~}||}||||~}v|}|{|}||}}~|~z|}}ڀ~~{}{|||~~yy|}{|}~||}~~}||~}~}}}{}~{|z~~~}}~}~}}|||}~}|}~}{zuookf~~~|{{yu|}yw|}yuqoife__acaa`iaXSSTOKheikc]]Y_]]\]]_`\\XVTT[XTXVTV_VTY]YY\STUVXWTROU[VTRV^QKJMKIHNUQUVQLNJQOLKKMQRQSSQMLKIQMLMKMLKHGIKKRNLKLKGSSQT]acf_ewNKLKK\e[``afgghghopvw{~ي󩪪ָ𡞧絯ީ尯駦쭪ߧ㬣ԯ୯婯ﰲ੪˪毤孬鯬ޯޭ󭬧ߩ禧秩˩Ӭ멧ᩬ쩧ɭ򯳰𭪯㭯㭯Ư׳߬έ򲩧ڭĪ鬧譧ܧ۬悎wppqke}}y}}|}}||wtqqzwqwtqttqy}yy|pqstwvqnksztqntmedhebajsmstmgjdmkgeehmnmppmhgebmhghehgea_beenjgege_ppmq}jegee|zڻ |O)Q;:8787698789::977:99:8:9:;<<;:99889889;;:9:989:9868867:;:988987:99:9:889889889;99: :9:988::98998679:98878799:<::9:989;889::9<;::98:866876889989788:<::;;:;:9:89::;::9;::;:8:988::8678767899:99:788:<::99:9::;:99:99:;:8::99:6887876889::9:889<9:889989;9::;;::9989::99::98::8779889:98:8989:99899::99889;;99:99:98::878998788987:8988:89889987889;;9889:9899:979;::878998988:;9::99:97:;9986:<89::9:9:<;:89:988788989::9:9798778876::9:;9;;::<:9<;988:;99::9:8:9:;99:89988998<978::86::<<::;9::99::9;:988:99;9::9889::9989889::9887899;988::9789::8:;:99:9:89;98<9::988:9:87889987989:979::;;:9:89;98<9::8778878:;::;889878997899889:<::89::;<:89:99:;:9:9::9878:8899:<::979:9889::99::=;;:8:;99;:78:9:9::;:89::89<:9988:9:69<:8 8:9:<9::<;8:<::9::9;;69::9889:988998898:86878989:99><988:589:9889889:9:<89::9779:77:<889::9::98::988:99<:8::9:78::98899889:99:799:989:9889:9868:98899898898899:88;<:99::989:98899889::989::988:98::99:689988:87998:9989:;:9::<:99:989::88<::9889:989:9899:99::87987998:99::99:;<<:99::99::989::99:988::9876789::88:9877889:99<<878::<:99:9::989::9878:<::98898778877889:9:9:<879::;:989::99::89::;:9889:;:957:;:50-889878<988978:8:89:889::9889::889988:89::99:8::88<<88652.*'&58;98899789889;79::;9::9:<<989::9:;;869::78:<;963.(&)*&$$::9768::89::9:998789:;:989:;=;:99:<8:9899<7::50-*'%'($",N;;989:9899877899::978:<8789<<:;9878998::;:7560/*&))%#&&.B::9:96986689::;::9::<><:88::<=;:8654.)('(&#$"*:l9::87899889::9867899:9::;<;940.(&'&%(!#&2W69;988997788::99:98899;:9:86521-)%'(&%$$&,:8632/+*('&%&'!&*1@y:;:99:99;::;:514/*&''%(&&%$&-4m;::<;::==:;<76763.-,)'',-*('&##$(5?W:8566343.**(&'(()+*%$$"$,7O|(*+)&))%#%%&&$"!!#"&+0=E$&&%#$$$)&,9;^!""*30.9a^祩ց|{|{y|{|{{}||||~쀁~}~~|w}}|y{|||{||}|}}}|~~|}~|~~|wz||}}|{}{}}}~~}|}}ww|{y||}||{}}老}}~}}|yz|zw{|{}|~~}~~y|}|z|zy||}|}||||~}}~~~~~|}z{{z||}}||}}|}}|~~~|}z|}{|}}{}|}}}}}z||||}~~}~~~{}z}}|}}||끃~~~~z~~|y|~~~~}~}|{|}|{|z{||{w~~~~}||~~~~}}~̀||}|z||w~~~~~|}~~~~}}~~~|~|}|}|{||}{}~}~~~|~~}~~||}~~}||{|}}||}|z{|}|~~~z~~}~~}~}zz||z}}}||{|{|}}|~}~~~~~~|z|}|~~z||}}}~~z|~~}~}||~~~}||w||}|}}|~~|~~y~~}|~~}}~~||}||}}|}}w}z||}}|v|}}}}}~{{~z{}|}}|}}|}}{}}}||{~~~}}}|~~}w}}}}}|}|}|}|}}}~}}~|}|~w|}|||{|}}}|}~}||}}~~}|{|{}퀃}~~|}~}{yz|~}|}|{{||}z}}~~}{|~}||~}{z||{{|}||}||z}}||}}ǁu{ukc}|}|{}|}{}}|||}|}||}|Ձ}|}}}yuof^WTu}||~z|}||{~~~||w~{|~wqfYU\]TOQzy}|~~|z|~~}~}|zuke]VSVYQKb|~||{{|~{}|{}|{|~}{uwki]T\[SMUUf~y|ww|}~||܆}wvtg[XWYTNOL]}{}||}w{}~~˃~skfXTVTSYJMTpy}}~{{|}~}}~~݄~|yuple[RVYURQOUay~||zwz|yy~|wroi_]XVTRTVIT]m~~⃀vmsh]UVWVRXUTSQTct{wzyrgea\VVac]YWTNMOYu}vwyrtrf]^YUWXX[`]SOQOLOazY^`\U[\SNSSTTOKJJNKU_kQUTTUSMQQDO\TbILK]rjg֯쭯쪭򩬰뭪멧譯𭯯묯ا믰ͭﰬ㯪姪󩤤㧦񬭭𰭤֧䩧쭧񯬩鬪孬񯬬ͬǯկvqˬys|}qkm𧤧}tptymeڰ}q|zphssꧩܵzwvyqjkg}˰wqtqpydhq㲯zntysnmks⪲}wtqnqtbq}Ⱝ}stvtnwsqpmq|tt}yvqjhkyک}ysvwwz}pkmkgky|sz|pjppqqkeddjesmsqqsphmm\k|q&bge}!  ~:7\3 0) ,%'X"'-8<:7898868:94698688778879:9989:;<:>98:.($27::7899:988788657889:88::=8>:;>.!,079988:86689987789989::88;<::=<==:+&.,9867:868::89;989::889:99::8:<=:;+*)-:89:867:;:9::88::99::88:9;:989;<:=+-%(9789889:;:89;:998899:8<<:9;<96*,#)978988:8688;:899889::;:;:50$-$2:88789729:9989::77898<98;=8.&'#978899889759;<<899<;98:;:7<=63+!(!s98898;99:8:<87;=;<>F=9.)*'';988::87;::9899;::=>;;<:36,&,(9:99:9899::<:9989><22$&%%j9:989:79::;:<<::>B=82+&)&;8:;:889;9;9::<;=>;72,(&&,m9::9889:<8899<::70--)%&];:988;99::<82,&&'(B<8;:89::;:7/&$*&&>&;9;97:97>8662*&)$'>&8:>;:??>94-'##&'?&=::9;<4.)%&(#*d&9<82+&('#"1u&81+&%$")-@'(**$#*9i-&!"1l&)@:;=888;7|z|}|y|~ty~|w|}{z||{}~}gYQoz{|~|}}z||wv{||}}}}fJak{}}|}}ww}~~|z{|}||`Uga}w{|y|}~}||~~}`][cЀ}|w{~||||~~|_cSYz||||~~~}}}~w]aN[z||}}w}||}||vjOcOo||}{}zp~~~|}{z|}}|fTWN~z|}}}{v}~~}zyr_JXJ||}}|~}|z~f\]VV؃|}}z~}~~rybTaX~|~~놁~|~poOTSS䁀}z~|o_U[T|||~膃zoaXUUa||}}}zkec[RT}}|}~}obTTVX}|zhUO]UT&~~z{}wyp]T[OW&}~scWMMTW&숁~sf\SUXN]&~|o_TXWMLl&|l`UROK[c'Y]^QM]-TJLl&\:;=888;7ҧym򶩻d󦬬ާsթ}zحpy毩}jzϬkk䧩qvjܤdwdݬ|}ttذqw뵯kqpp䯭szq!鵰wssଭznq全qqtw糩sk}sq&簪}qzkv&驭vhhqv(츯|pswj}'񪬵qwvhg)戮snkez'y}mh}-qdg&|:<?8:<)('&%$#" > d #X#%(*,. }/ 61 5h6\9 *!/(/:<8;?=9;>?;9:;<<==<::9;989::;:8669<:89>:!+(-3<<:>;7;>=;;::<:;<<;;:9:;;::9:;:9989;;99;x"#&*.8=:>B89:<<;:;=>><<;;::;;::9:;::9;:89:;97."$(.6:99>9:<<;9::>=<;;:98;99:989:89::;::8<;98:;96L#$$&/:=;::;;:;;9:;::98::88:99:;:89::82#$(59;<::;<;9889::98::;::988:<9:;989::p, &)'47::97::87::;:8:88:<9::989:::&('"*5;==<::;:989::;96889::89::9:x*&$%(/6;;:8:;989:9:;<968::89:99::98:99:8p!%)((,4::98:;;::989;<;989:99::99:99:8Q'"'&'.66899::9:989:;;<89:99::9:;99:9:8K'$&$&-6;<;:989<=<88;8::99::9::9::8T(%$&*06:==;;<;9899::99::98:9:<::9a$$&%%(/59:;<<99:9::9::88:9;<9:9ہ1&))+07;;:989::9::89:9;:8::<%!'**,4;=;::9::8:;::969:N+' $,**2:>:89988::<=;879<|>+"#('-39:9:;<:;;o. "$'&&*17::<;::&آQ+ &)'%,636:=;::; ܁=%$))'%)0458;:89:79988::98879:87899866898878878998:==9789:9:;::9;:<;6:89778878:9::99:8<8:898:79:78::<86899:<::8:8799889:;:788;<9=9:98:989:8::8:78686:8:<:988:856799889:9:8:98<<:9887;:98<=9::;:9:98:989::89896:9::8;::98;;778<<:88:9:88:;;::98::9:9:9898899889::8:8=::9;::98::767:;978988::;9889::9:><9879;9::8988:988:989:7;8899:8:;::88779:988:9:;<::;::9885<<9:<:;:9::9;::889:9::7:8::8869<<:9:;;:;:<::89:;;'/2578;<9:99::<9:98:98:;:<9:8;:=;8:<:;98::889:9::<9;::89:;;::;;#'$%),258988::9:9::9:98986;::8:8<;8:;:==9<<98;<:9:<8:9:88:;;::;<&$""$&&+)+28::<=;;:9;<:8<;:;:88:;96:<8:88::989;<;;9:;:9:;::<>`2%"&**&#&(*-2447;;::79;:9::9:8;98::67::9;98::89:9;<<;:99:ʓX;/*$#$%'*+')-/389:;==>9778;97::<778::;>::;<::7899::L7-%!!$(**)&..2487:<8<:9::;;89::87788:;::<<::;:ϝx?:0&!$&#)&('*'**132269;=;<>?>::;::99:<;:;;۱Z9*&!!"!'&%%&%)-**126:;;<>=><:;;<;<=̨H9-*!!$$(.'&$&)+-,.013259;;<<=<;;<ٵ]H2,/%%$$&&%&(&'&)-/-./2456678!̷ZU=..)($&&'+,&'%%('$%(սrLE:*,.!"&%$&& ٩XEB8-"*" $w~~}~}||wy|w|~zwz|w{||}|~~|z}~||~}}~}||~~}}|||w|}|wz}zzy~||{wy~}~~}|ww~}~~~}~|}}w~|}}z|~}~||w|}|}~}{~~~|yt||||~~~}~~w{}||}}|}~|~~w|~~}y~~}}~|ty|||~}|~~}{uv{|}~~}|}~~|~~}{y|}||}~~}|}wy}}|~}~~||~~ރ}zw{zy~~}~}}~|~~}~|}}|{|||}~|~||~}}ywwy|}|~}~}~~||{w}}|~}}~|~|||~w|}}|~z||z}~~~}~~|}}~~~|~|||{|z|}~zw~~|~z|}w|~|w{}~~y|}|~y}|~~|z|}www|w|{||}z||~~w|}~~y{uv}y|}|wv|~~Ń|w{}ww||z{|~~}~~|~~}~}w~~{y{|yz}~y~}w|~~w}z{}|||}~||}~|~~}|}~~|}~|}y||~~}w||}||}|~~|z||~}|z|~}~~|z}~~}}}{{}{}|{|{z|~~~~~|zz|~{}|yz|}~~~}~~}|}}|}{{}|}||}~~}~~}||}ty||}~~~~||}|{}|y~~|yz||~|z}}|z|ty}~~~|}|z}}|}z~}z|~~|ww}~}|}z|}{|~~}~z|~~~~y|{z}}{|~~~}||~|z~z||w|Æ|}z}|}{}}||}|z|w|y|~}||vw{||~~}~}||{~}~}~|~ր|~}~y~}~|{z}}}|}|~}||}}}||~||~|}}~~|{wz{|~|}}|}z~}}|~}||~~|~z}}~~|}}{{|}~}|v||~~z|}|w~぀|}Vhouz|~~|~}~}|~}||~}MWQS[bpu}||~~~|~|y|||}~}~|}TOLLOTT_\_o}~}}}w|}}~}~~ՆΠpSLT]]TNTX]coss{z~||wz~~}}~߾i]OMQRV]_W\eiq|{{|{z{}z|~ڴzcSIIQY]]\Ugfos}{}~}}zz||}􄃁ŮjTIOTN[TXV]V]^lqopw~~д~]UJJBLJWUSRUS[c^]low˶c]JJBOOYfVUQT\`ebgkmqpu~ӺoahRRQOTUTRTXTVU[ehefiotvww{}!͝gf\BXQTUUW_aTVRRXVQRX׺^afJLTRECOUU Ķ}c"*" $ةްȩ⪭ŰŬ쭡ުõ󪯪릲֭䬩쪲㯬㯭thvmpzqkggkqq̀|յɗpgq}}qjqw}ȪDz}khmnt}v|곤äpbbmy}}|sѼqbkqjzqwt}t}Ǫ}sddYgdvspnspz}}ddYkkytsmq|nnmkqsqnqwqtsz!Ƹ|Ywmqssvqtnnwtmnwdgqn^[kss!#*((%@;7 2).(" '/C :@:89;<;:998678996688<:76;96998:988766879876799:;;::99<<;;<;:;:99::9876789877:87:976:86899:878766877668:;978:;;<;9:9;=998876697588769768898768766798878:989:;;:<;9:;;:9989:;9656656636688:769898778876889:9889::;;::;<==<;99:97889::976764676689:88:889889988978998:;89::;<::;==<9889;;99887869;86689:89:78:989988::88:989::;::;<==<;;:99:98896989967989:79:89:989988:<:88988:9:;::<;8:<;::679986976626<68868:8::988:9889879<8899:;=;::;<;:899:9789887789::989889868;:887:79;9898699<9:9::<;::;;:8::9:8679889::989889648:9898868:99::799<8:899:;<<9;::986799889:9:989878668:8899:9::8898;8:889:;<9;::986899:8988986899::88::8899889:8:8;9;998899:;<;;::;8::9:878899:99:89889868:9::88::689889:8:8<:<::99:;:;;:;8:98:9899:9:98986889868::8::88788:9<9<:<: :;<9:88::899:98868878869;96998:;::8:9<8:9;::9:9:;;::88::88998899:;98868:9:989:88;;9;;998:9;898::98<:989::9<<:886788:8789889::989:849988788;:7;;799::989:979::78876688987799889:889989988987;<8::;:878::9:;::<;988986788::8789:98898<9:;:988::9:9;=<:9:;:889::98668::97788:88:9:99;;889::9::;98::99:89<;988:988:;;:9::9889;:989886988:9;9::9989:99:;:98::9:9::;:<<9889:;:968::;:9:88:9889889::998989:9;::989;::989989::9889::9689::;:9:88988987:89:8:99::989;::98::99:97:988998::988::9;:99767:8898;99:78988:<:88;:9889789::9:<988:<<;:989:<967866968:99::88986:988:;<<8:99;::;;::;<::89::<:;<<;;:98899:89988:99::868:<<;:9::9::9::979::8688:9:<88::98789968879::8:989;:98899::;::9:;:9:<<:9::<;::<:;;<;:998997688:979:88977::879::989::;::;:;<::<;::<<;:98:;;989988;:8::89978::87:;::99::;99::;:<<:88::9:;::9:;:99:9899:9:9;=<;:99::88::99;;:<=<::<::989<<;;<<;:99:9889;::9889:9:;79;<<;::98::88::79;::8><:<<:9:<;:;;:9<;;<;:9::68:88:9899889:;;:988::98::88:9)&'-/..1535414996;;<;;>>:;;:9;:98<=7:>=?=><886698<<::;;:;::=><::('%%&&%&&()(())-,*+-,-+))**+,-,/13/02.-1200,(''+..-.0..01220/) $&"! !"%$$(##&'%'(&$$#""#$!$#$&%$%%'(&%$#$!$&%&'%$''&(&%(ϫW]`f]=0.1677.$%)$!!$$&(*"  !"!!#"!)--# "!#$!%"!# 'ղϽ̫oQ[ }~~~}|y{|yw}||zy~y~~}~||zwy|{}zw{~~}{y{|~|{{}{~zw|w}~~}z|zww|{{ww|{}~~~~}}|{wyy~{v||zy~zw}}~}zy|zww{}|{||~~~|~yuywuwwrwy||zw~|~|zz||zy|}||}~~퀁~z||~{w{ytw{ww}~}|||~||~~||~{|}|~}||~~~}||}|{|w~|yw}~}~z|~}~~}}}|}}򃆈~~~}||~w|~w{|~z~|~~}~~}}|}}|}|w{~}}w{wwoyy|}w||~}}|}}}|{|}􁄇|{|}|{{|~|~}|}y}}|zz~~}~|w||w{}||}~|~}|~wt|~|~||w}~~z}}|wz}}߀~~|~}{}yw|||~~~}|}}|}}|}}|w|܀|~}|~}y|~~||||~~||~}}}}}}{}}|~}|~}y|~||y|~||~}}}}|~~|~|w||~}y}|}||z|}}|}ހ~|}|w||z}|y~~w~~}|}~~||||}}~||w|~~|~}}~~~||}}~|~}}|wz}}||}}z}~}}~~}~|t}||{||{z}zz|}{ww|}||}||}}zz~~||}}~}|~~|||}{|}{|||}}||yz|}}z|~}||}||}􃈆||~|wwy|~zz||}||}}|ŀ|||}|}~~||}~~}~}|y}||}|ހ}|w|~}|}~}||||}}}}}|w|~~}|}}||~}||}}{}}|}{}}}~||~~~zwz||}|z|||}|}}{||}鄁~}~~yz|yww~w|~~}}~|w~|}}}||򅁃~||~~ǀ|~~}|}}~~}|wy}~{~}y}|}|}~~||z|~~w||z~}}~|~~|}~~~~~|~~zw|}||~z~|}~zz|z~~}~~}~|~~}||}~~z||z~~}}~~~~|~~~~~~~~}}󅁀}ӄ~~~}}~~|}|~~~z~}}}z}~~y}}|~|~~}|}~~}}}||[TWeifflurutms~~y~}{}}yw~|XVSSTTSTTY\XX[\eb]_cae`[\]]_bcbhmqikofemokkjbYWW`gfegjgffjlooki[HDQULJHILSQQXMMUWSWYTQOONLLNOJONOUSORSVXTSQNOJOTSTVROWWUXTSXśkfmwzzfOR[OJJOQQTX^KGAAGJKJIMKBJ\ecMHKJMQEJRLJNHHWé ۩٦Ԫ𲶸۩򰵸٪򧩯ᪧݩ߭𯰰ܭﲵ譬骩ޭ𯰲塧󵯪ө멬ݬ𣤧򧳳તŭޭ묭欩쩦󩯯ꩬ󦧬鲯᧡򳯰ǭ㭪󳯭Ӳzqvwtppqqpqqy|wwz|}z|}}yvv돒za\msgdabgpmmwhhsvpvyqmkkjggjkdkjkspknptwqpmjkdkqpqtnkvvswqpwȶknzkddkmmqwe_XX_dedbheYd|haedhm^dngdjaav   u1<Oͣ:8<88<887:<;98:<87968688:8988::89:87997:<97889;8998;9:98::89::>::>:=::9::<798978:9::887979:8788:;;868:<756788:9:99<<;<::>:8:8;;98899689588:6688::8:8879:889;;:89:;9799899:88:989:9;87868:99896796:9;8687998;:889:9989;;::879886:;:9::9::99:<:;989:988:898:6768:899899899:988:<76988:899:99;;:<<:9:<<;;:879;:886889468699;:8989:98::89::9;99;9:8:9899;<::;;:99;87:;:8987:9;7:<689;;9:99;979:998:988:9:86866;=;::<::<:;:89::89<88;886:;9;::8989;868988<978989:99:88;99:8::=9::<=;89879:9898:988669989::9<86688:78898:;;98;;:;::97899889::<=<::9899:<;::889889::878878996::;9<<:9::9:898689:9::;:<<:99::;<;::9:99:98789:9;::9:;;98:98:9988:;:9::898;:8789:<::98898;::9899:9:98::9:;:99:9::9:;;:;;::;;:;:988:98789989::96899:<=9:98:99:;:9899:9::9:;;::;;:;;:9989989:9988:;968;;:<;:;:9:98:9867889::9:;:88789::<<99:9988989989:96:><<:9;9:<;::98::878898989:=<:<::89;98:978<<:9899879:989889=:987;:9;;:;::;=;99896978;88:;;99:6::8797:<7577889:988:;78::;98:<;::9;978988988::8899:9:9:98::8966866::;::868;<;:88::989::89879:99889::9:989::76::997867:8899:988:=;9::9889::;:8:98789:9::899:99668989:6868978988:;<:9;;88;::=;:989::9:88::9:9:988:9689::99::89889989:8986869;::;98>=:8::>;::9::8799:88768::98::9::9;::;:8::<96769::;:9>=;:;::<:99:9889<;88987987678;;:9::99::;99;:8879;87::;89::;<=::;:9::9::988:8878:98:<:889987:;:98:;;:66:966;;<77;989:;:98:;<9::88::;;:89;9989:86897998967:988:989;87;7899::988::98898;;:;<;99;::<<:99=::8<97977989:988987768:88:79:98988::;:;;989::89:<9:99:8:67988;87:9889688989489989:;:878::88<9::9:<::;:9:;<::89;8:58:89;969889:98689889:;<::;<:99=8:;8:<9;;:;::79<:99;9669:88789:;:9::7:;:98987::;<;:9:<8;=:;>:889;<;988:8;>:89;9778:887878998::8::99:9768::9:;868:99:7::<=;8:77431*&79899897887878989:9799::;;:8:;<<;>>=<:967654431.)(&&#$996997;9987788:8::99;:69;;::;<::<:787532/,+'**'%%&&.($!#')/<:9;;:9:<98::9:=89:;::<7420/020,./,*(&&%&&$%"*&!#!!+*5Ea520110.-2..,.**+*+'$#&((*&$$#$"$#%#%&(69?y%&%$%&&'&%$$#!"$%%$$#$%%$"!!&#!"1856Idg $$! !##"! $(,,*)+.,-4BQHFOdO^jido~v||||}|}z~}}{~w|w||}|~}||~|z~~{{|}|~~|~~}}~~Ņ{~|{|~|}z~z~|z}}|w|{vy{|}|~~~||~|}~~w|v|}ww}}|}|z~}|}}~}~{~~|~}|~}~~}z|y}~~}||~y{y|w}z~~|||~~~|}{~||wy~~~~⁆~}~~||}||w{y|}~~|~~}~~}||}{y~|}|~~~~~|z~||}w||tw|w~~}~|~~}}||}}~}~|~~Ã~~|z}~|{~{w}~~~~~z~~~||~|||y}yy}~|~|}|}w~|~}~}w|~}}{|~}~~||~}~}~|z~~|~|~||yw~~}~~|ww||}z}||~|~}~z|~~||~~}~~򁆄}|~}|}~}{||{|~y~~~}~|y|~~섃~~~~~~~|{|~~~}~}~~||}぀~||~~}}z|~~||}~~~}}탁~}~~~~|~~~~~~||}~|z|~~}~~y|~~~~}~~~}~~~~~~|~~}|}~~|}~w|~~|~|yz||}~~}||}}|z|~~~~~}}~}~~}~y~~~}}z||~}~}~|~~}~z}~}~~|{~|~}|~~|z~~~|~y~{|}}~~y|{~{{vzz||~~||}z|~|~~z}~||}}||~~~~~}}ww}ww}||}y|}}~|~|~}z~~~|}~~~}~{y~{|w{||~~~}||~~||~|~|z|~~|~~~~ww}|~y|y|~{}~}}~}}~}~~}|~~~||~y}~~~|}|~|||y|w~~|}~|z~~||zy|~}~~}~yzy~Ձ~~~~||~}|~|z~|{wz}~~~~||{~|z|~~~~||}}z|~}}}|{~}ywww{z~|~~}~|}|~~~|~}w|~z~}y{||}||~|~|z{}~~||~|}~}~}}|~{zz}}|}}zzy|}|{~~}~}|㄃~}~}~~}y{}}}{}}y||~|~t|~|~|{}}|~~}~}v}}~y}||}~~|w}~}|~~~}|~z~~yw~}||{|~~z~}~|z~}}}|~~}|}}~zz}}||{zz||z|~~||~~zy|~|y}{}{ztqm]T{}}{}}||zz{||z}~|~~z~}~wzyvtsqmf[YTTNO~y~~{|{z|}}~~w~z|zvqpib_V]^WRSTTgXQJNV\h~|~}~{sokijojafhb^YUUTRTTQSL]TINJJ`]vuoklmkfeogffbg]]_`_]]`_WOMTXY]UQQONOLOMRNADRTXy~STROSTTVTRQQMJKQRROOMQRSRQLJIUMJELl}vwHOQIAAGJMMKIGHD@OXaa][_faetޖųơ穧⯵ð۩򯵲񩦧𭪯첰𪯰㯭誯𭪧𭵸歪ک骭䩪𭧪妬󦧲ߧ𪰪䩣񦣯骧篧կ㲰槪鯪ͪƬ}qzyqqjkꧦt}vnpqqwmdjt|yssqnqqmpg}qbjdd}}}؀}}vkhqwy}smmkjkgkhnjX\nqwpqnkpqqtqnmmhdemnnkkhmnpnmgdbshd^gakmbXX_dhheb_a\Vkw}z;3% )}q}֗dh}O2 9;9;;9;:99;89=::889:;;:968868:8589<;89;9<869;;::;:;;<:9:;4=<;6&)9;9:98:967<;9:67::99:6886898689;:78:8::9::9889:9:=7?6?:).9:899798:9<;988;::96898898678:978989:<::9:998:;:8:4*##*9:788:9;987668<9::;:98879:99:97689988998:<::9789::9:;9:8*-&*::6789;;9769:889:;:9889;::98899898::96:;<;::98'-$$;:6799<;887;<;9789:9889:89::;:98;;::86899:;98::;::;:>,&$d::799:87967889689:9889:7889:986:;99:86899:<679:<<;8,$##Z9:89;9968;998:769:;:8868:9658988;97:99::9;>9;<==92,$#!9989878::988:;99:977668:9789::988=:;;8:<=:==:5*&&$99:989:;:99;;::;:8876799788988:8<::<:;<<:<90'#*,8998<<:88:;::9:;::;:899789878899:;=9:<:;;:>:/*$#-99::9:89:99899:8998899889:;;:98=;99;<;:94-($!?9::8::99:99:799:9:;<;:9;:9;<=:8*)((~99:9:;99:;:9:9:;<;<899:;:9:99::;<<=:<<:82.('"<7899:;:989::9:9:<<;;9::<:9:989:;<<>:;71.($"(i6689987:;:767898989<<::;<:899:9=76/'&"">;::89;<:99:;:99::889::9:>;7:;;>:3+&'!3:;::;99:99:9879:;::867:<:87::985*(&69:;;:7899:=;::;<;;9=><88:;=98;6,++"-y8:;::;;9689989;::=>>==::9;8:8/)''&.x8::89;:99:;<9::9::74-*)+%!4d:9:989:;;::;:979;;:<<82-))*&%;;:899:;<;:9:;;9;>=972-*&##%2`<989::<:99:<<;9>?>;;<6,+)&# ".<:;=:8:9:89:;:9=::;82,(&"$$!&7~=;<99;::;::?>:6.1+&%&&# &<<9:9;=:<;:86.'(''&$!".O ;9:99613,'"$&## '7m 532.-($)#&$"!'8T#')'&" &",8`!!$&&.:R|>d)~~~}~||~~y||w|}v|~|}y~tyT\~}~w{yz~~w||y|}w|~{||~}}~zy\fC~|~~{}~}}~~w}~||}w{|{|~|~~}}|s]NM]z|}|~~|{ww|~~||{~~{y|~~|}~~}~{|~~|]cT]́yz}~~zy~}||~~}}||}~}|~}~w}WeQQy{~~}}zz|~~}}~|~~||y|~~|̓aTQEz~~}{~w{}|~w|~~}|~{|||w|w}~~w{}bOMN|~~w|~~|{y~}}ywy}~yv}~|}~{~~~pbQNJ~~||}~~|z|||~~~{{yw|{}~~}}|}u]UTO~~|~~~|}{y{~z}}~}|}|~jWN]b}~~~~}}}~}~~{|~}z|}~~送i]QNe~|}~~}~~Ӏ|~~}}~~||~~|~tcXQJ}~~~~{~~~~~~|]\XEX~~|~~~~~|pfXWL{|~~~~~}~~~~؁~~}~zmfXQKYwy|~~}{zw{}|~}~}~~~zwiWULK郀|~~~~||~~~{r_TWJAr~~|{~}y{|z~|u]XTCBw~{|~~~|}}wa`_KDc|~y|~}~~}|h\WVTAg}||~~냅{se^[_RIt󀁀~~~|~{|pc\[]UDR}~~ڃ~zoc]TNMSDoӆ~|~~wb`[TMHLg|~}}oaXTLQOJT{߇wfl`TRTTNHT|wfVXVVTQJLf ~ylqaWKOTMNHEW{ urpgcXO[NTOKJV}NW\VTLGULb}!JQTTf)q|졧߬|[}jh}ߪ}q}⯯𩧪լvmmͰqm^䳡khj檰mjd䧤秶}sqkϬvj}魯}mjӭwmdަ}|w^wwvg᯳wmeyvsge鰭ﻰqvdX꬯}wq[Yଯe\ԧ|vtqX밳znb󭯭簲|z}s\nڰ}qjhp\׵zqhag୰wqgmkdq߶qnqqjaq峬twttqmdg 氬vekqhja^v!잚wkzjqkedtjv|tqg_sg"dmqq-<<}::987643 1h 0.,*%()&}$! %'X*. 26}=6F6976:77966976:77M76:76>:7=    B PB(!* Layer #2       M* u)5AM*m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m} -=M]m}                                         B PB(!*Layer     */++++,* ' 7 G W g w        !!!'!7!G!W!g!w!!!!!!!!"""'"7"G"W"g"w""""""""###'#7#G#W#g#w########$$$'$7$G$W$g$w$$$$$$$$%%%'%7%G%W%g%w%%%%%%%%&&&'&7&G&W&g&w&&&&&&&&'''''7'G'W'g'w''''''''((('(7(G(W(g(w(((((((()))')7)G)W)g)w))))))))***'*7*G*W*g*w********+++'+7+G+W+g+w+++++                                        B PB(!hug-2.6.0/benchmarks/000077500000000000000000000000001353170073200144205ustar00rootroot00000000000000hug-2.6.0/benchmarks/http/000077500000000000000000000000001353170073200153775ustar00rootroot00000000000000hug-2.6.0/benchmarks/http/.env000066400000000000000000000023051353170073200161700ustar00rootroot00000000000000#!/bin/bash OPEN_PROJECT_NAME="hug_benchmark_http" if [ "$PROJECT_NAME" = "$OPEN_PROJECT_NAME" ]; then return fi if [ ! -f ".env" ]; then return fi export PROJECT_NAME=$OPEN_PROJECT_NAME export PROJECT_DIR="$PWD" export PROJECT_VERSION="1.0.0" if [ ! -d "venv" ]; then if ! hash pyvenv 2>/dev/null; then function pyvenv() { if hash pyvenv-3.5 2>/dev/null; then pyvenv-3.5 $@ fi if hash pyvenv-3.4 2>/dev/null; then pyvenv-3.4 $@ fi if hash pyvenv-3.3 2>/dev/null; then pyvenv-3.3 $@ fi if hash pyvenv-3.2 2>/dev/null; then pyvenv-3.2 $@ fi } fi echo "Making venv for $PROJECT_NAME" pyvenv venv . venv/bin/activate pip install -r requirements.txt fi . venv/bin/activate # Quick directory switching alias root="cd $PROJECT_DIR" function run { (root . runner.sh) } function update { pip install -r requirements.txt } function leave { export PROJECT_NAME="" export PROJECT_DIR="" unalias root unset -f run unset -f update unset -f leave deactivate } hug-2.6.0/benchmarks/http/RESULTS.md000066400000000000000000000012251353170073200170620ustar00rootroot00000000000000Latest benchmark results: hug_test: Requests per second: 7518.20 [#/sec] (mean) Complete requests: 20000 falcon_test: Requests per second: 8186.67 [#/sec] (mean) Complete requests: 20000 flask_test: Requests per second: 5536.62 [#/sec] (mean) Complete requests: 20000 bobo_test: Requests per second: 6572.28 [#/sec] (mean) Complete requests: 20000 cherrypy_test: Requests per second: 3404.87 [#/sec] (mean) Complete requests: 20000 pyramid_test: Requests per second: 5961.53 [#/sec] (mean) Complete requests: 20000 hug-2.6.0/benchmarks/http/bobo_test.py000066400000000000000000000002271353170073200177320ustar00rootroot00000000000000import bobo @bobo.query("/text", content_type="text/plain") def text(): return "Hello, world!" app = bobo.Application(bobo_resources=__name__) hug-2.6.0/benchmarks/http/bottle_test.py000066400000000000000000000001421353170073200202760ustar00rootroot00000000000000import bottle app = bottle.Bottle() @app.route("/text") def text(): return "Hello, world!" hug-2.6.0/benchmarks/http/cherrypy_test.py000066400000000000000000000002561353170073200206600ustar00rootroot00000000000000import cherrypy class Root(object): @cherrypy.expose def text(self): return "Hello, world!" app = cherrypy.tree.mount(Root()) cherrypy.log.screen = False hug-2.6.0/benchmarks/http/falcon_test.py000066400000000000000000000003641353170073200202550ustar00rootroot00000000000000import falcon class Resource(object): def on_get(self, req, resp): resp.status = falcon.HTTP_200 resp.content_type = "text/plain" resp.body = "Hello, world!" app = falcon.API() app.add_route("/text", Resource()) hug-2.6.0/benchmarks/http/flask_test.py000066400000000000000000000001471353170073200201120ustar00rootroot00000000000000import flask app = flask.Flask(__name__) @app.route("/text") def text(): return "Hello, world!" hug-2.6.0/benchmarks/http/hug_test.py000066400000000000000000000002461353170073200175750ustar00rootroot00000000000000import hug @hug.get("/text", output_format=hug.output_format.text, parse_body=False) def text(): return "Hello, World!" app = hug.API(__name__).http.server() hug-2.6.0/benchmarks/http/muffin_test.py000066400000000000000000000001661353170073200202770ustar00rootroot00000000000000import muffin app = muffin.Application("web") @app.register("/text") def text(request): return "Hello, World!" hug-2.6.0/benchmarks/http/pyramid_test.py000066400000000000000000000004311353170073200204530ustar00rootroot00000000000000from pyramid.view import view_config from pyramid.config import Configurator @view_config(route_name="text", renderer="string") def text(request): return "Hello, World!" config = Configurator() config.add_route("text", "/text") config.scan() app = config.make_wsgi_app() hug-2.6.0/benchmarks/http/requirements.txt000066400000000000000000000001131353170073200206560ustar00rootroot00000000000000Cython==0.24 bobo bottle cherrypy falcon flask muffin pyramid hug gunicorn hug-2.6.0/benchmarks/http/runner.sh000077500000000000000000000010531353170073200172460ustar00rootroot00000000000000#!/bin/bash output="Test results:\n" for app in hug_test falcon_test flask_test bobo_test cherrypy_test pyramid_test bottle_test; do echo "TEST: $app" killall gunicorn fuser -k 8000/tcp gunicorn -w 2 $app:app & sleep 5 ab -n 1000 -c 5 http://localhost:8000/text sleep 5 ab_out=`ab -n 20000 -c 5 http://localhost:8000/text` killall gunicorn rps=`echo "$ab_out" | grep "Requests per second"` crs=`echo "$ab_out" | grep "Complete requests"` output="$output\n$app:\n\t$rps\n\t$crs" done echo -e "$output" hug-2.6.0/benchmarks/http/tornado_test.py000077500000000000000000000005341353170073200204630ustar00rootroot00000000000000#!/usr/bin/env python3 import tornado.ioloop import tornado.web import json class TextHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world!") application = tornado.web.Application([(r"/text", TextHandler)]) if __name__ == "__main__": application.listen(8000) tornado.ioloop.IOLoop.current().start() hug-2.6.0/benchmarks/internal/000077500000000000000000000000001353170073200162345ustar00rootroot00000000000000hug-2.6.0/benchmarks/internal/argument_populating.py000066400000000000000000000020141353170073200226670ustar00rootroot00000000000000import time from hug.decorators import auto_kwargs from hug.introspect import generate_accepted_kwargs DATA = {"request": None} class Timer(object): def __init__(self, name): self.name = name def __enter__(self): self.start = time.time() def __exit__(self, *args): print("{0} took {1}".format(self.name, time.clock() - self.start)) def my_method(name, request=None): pass def my_method_with_kwargs(name, request=None, **kwargs): pass with Timer("generate_kwargs"): accept_kwargs = generate_accepted_kwargs(my_method, ("request", "response", "version")) for test in range(100000): my_method(test, **accept_kwargs(DATA)) with Timer("auto_kwargs"): wrapped_method = auto_kwargs(my_method) for test in range(100000): wrapped_method(test, **DATA) with Timer("native_kwargs"): for test in range(100000): my_method_with_kwargs(test, **DATA) with Timer("no_kwargs"): for test in range(100000): my_method(test, request=None) hug-2.6.0/docker/000077500000000000000000000000001353170073200135525ustar00rootroot00000000000000hug-2.6.0/docker/app/000077500000000000000000000000001353170073200143325ustar00rootroot00000000000000hug-2.6.0/docker/app/Dockerfile000066400000000000000000000001231353170073200163200ustar00rootroot00000000000000FROM python:alpine MAINTAINER Housni Yakoob CMD ["true"]hug-2.6.0/docker/docker-compose.yml000066400000000000000000000005421353170073200172100ustar00rootroot00000000000000version: '2' services: gunicorn: build: ./gunicorn volumes_from: - app ports: - "8000:8000" links: - app app: build: ./app volumes: - ./template/:/src workspace: build: ./workspace volumes_from: - app tty: truehug-2.6.0/docker/gunicorn/000077500000000000000000000000001353170073200153765ustar00rootroot00000000000000hug-2.6.0/docker/gunicorn/Dockerfile000066400000000000000000000003221353170073200173650ustar00rootroot00000000000000FROM python:alpine MAINTAINER Housni Yakoob EXPOSE 8000 RUN pip3 install gunicorn RUN pip3 install hug -U WORKDIR /src CMD gunicorn --reload --bind=0.0.0.0:8000 __init__:__hug_wsgi__hug-2.6.0/docker/template/000077500000000000000000000000001353170073200153655ustar00rootroot00000000000000hug-2.6.0/docker/template/__init__.py000066400000000000000000000001561353170073200175000ustar00rootroot00000000000000import hug from handlers import birthday, hello @hug.extend_api("") def api(): return [hello, birthday] hug-2.6.0/docker/template/handlers/000077500000000000000000000000001353170073200171655ustar00rootroot00000000000000hug-2.6.0/docker/template/handlers/birthday.py000066400000000000000000000001561353170073200213470ustar00rootroot00000000000000import hug @hug.get("/birthday") def home(name: str): return "Happy Birthday, {name}".format(name=name) hug-2.6.0/docker/template/handlers/hello.py000066400000000000000000000001551353170073200206430ustar00rootroot00000000000000import hug @hug.get("/hello") def hello(name: str = "World"): return "Hello, {name}".format(name=name) hug-2.6.0/docker/workspace/000077500000000000000000000000001353170073200155505ustar00rootroot00000000000000hug-2.6.0/docker/workspace/Dockerfile000066400000000000000000000002721353170073200175430ustar00rootroot00000000000000FROM python:alpine MAINTAINER Housni Yakoob RUN apk update && apk upgrade RUN apk add bash \ && sed -i -e "s/bin\/ash/bin\/bash/" /etc/passwd CMD ["true"]hug-2.6.0/documentation/000077500000000000000000000000001353170073200151545ustar00rootroot00000000000000hug-2.6.0/documentation/AUTHENTICATION.md000066400000000000000000000035421353170073200176210ustar00rootroot00000000000000Authentication in *hug* ===================== Hug supports a number of authentication methods which handle the http headers for you and lets you very simply link them with your own authentication logic. To use hug's authentication, when defining an interface, you add a `requires` keyword argument to your `@get` (or other http verb) decorator. The argument to `requires` is a *function*, which returns either `False`, if the authentication fails, or a python object which represents the user. The function is wrapped by a wrapper from the `hug.authentication.*` module which handles the http header fields. That python object can be anything. In very simple cases it could be a string containing the user's username. If your application is using a database with an ORM such as [peewee](http://docs.peewee-orm.com/en/latest/), then this object can be more complex and map to a row in a database table. To access the user object, you need to use the `hug.directives.user` directive in your declaration. @hug.get(requires=) def handler(user: hug.directives.user) This directive supplies the user object. Hug will have already handled the authentication, and rejected any requests with bad credentials with a 401 code, so you can just assume that the user is valid in your logic. Type of Authentication | Hug Authenticator Wrapper | Header Name | Header Content | Arguments to wrapped verification function ----------------------------|----------------------------------|-----------------|-------------------------|------------ Basic Authentication | `hug.authenticaton.basic` | Authorization | "Basic XXXX" where XXXX is username:password encoded in Base64| username, password Token Authentication | `hug.authentication.token` | Authorization | the token as a string| token API Key Authentication | `hug.authentication.api_key` | X-Api-Key | the API key as a string | api-key hug-2.6.0/documentation/CUSTOM_CONTEXT.md000066400000000000000000000121031353170073200177110ustar00rootroot00000000000000Context factory in hug ====================== There is a concept of a 'context' in falcon, which is a dict that lives through the whole request. It is used to integrate for example SQLAlchemy library. However, in hug's case you would expect the context to work in each interface, not only the http one based on falcon. That is why hug provides its own context, that can be used in all interfaces. If you want to see the context in action, see the examples. ## Create context By default, the hug creates also a simple dict object as the context. However, you are able to define your own context by using the context_factory decorator. ```py @hug.create_context() def context_factory(*args, **kwargs): return dict() ``` Arguments that are provided to the factory are almost the same as the ones provided to the directive (api, api_version, interface and interface specific arguments). For exact arguments, go to the interface definition. ## Delete context After the call is finished, the context is deleted. If you want to do something else with the context at the end, you can override the default behaviour by the delete_context decorator. ```py @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): pass ``` This function takes the context and some arguments that informs us about the result of the call's execution. If the call missed the requirements, the reason will be in lacks_requirements, errors will contain the result of the validation (None if call has passed the validation) and exception if there was any exception in the call. Note that if you use cli interface, the errors will contain a string with the first not passed validation. Otherwise, you will get a dict with errors. Where can I use the context? ============================ The context can be used in the authentication, directives and validation. The function used as an api endpoint should not get to the context directly, only using the directives. ## Authentication To use the context in the authentication function, you need to add an additional argument as the context. Using the context, you can for example check if the credentials meet the criteria basing on the connection with the database. Here are the examples: ```py @hug.authentication.basic def context_basic_authentication(username, password, context): if username == context['username'] and password == context['password']: return True @hug.authentication.api_key def context_api_key_authentication(api_key, context): if api_key == 'Bacon': return 'Timothy' @hug.authentication.token def context_token_authentication(token, context): if token == precomptoken: return 'Timothy' ``` ## Directives Here is an example of a directive that has access to the context: ```py @hug.directive() def custom_directive(context=None, **kwargs): return 'custom' ``` ## Validation ### Hug types You can get the context by creating your own custom hug type. You can extend a regular hug type, as in example below: ```py @hug.type(chain=True, extend=hug.types.number, accept_context=True) def check_if_near_the_right_number(value, context): the_only_right_number = context['the_only_right_number'] if value not in [ the_only_right_number - 1, the_only_right_number, the_only_right_number + 1, ]: raise ValueError('Not near the right number') return value ``` You can also chain extend a custom hug type that you created before. Keep in mind that if you marked that the type that you are extending is using the context, all the types that are extending it should also use the context. ```py @hug.type(chain=True, extend=check_if_near_the_right_number, accept_context=True) def check_if_the_only_right_number(value, context): if value != context['the_only_right_number']: raise ValueError('Not the right number') return value ``` It is possible to extend a hug type without the chain option, but still using the context: ```py @hug.type(chain=False, extend=hug.types.number, accept_context=True) def check_if_string_has_right_value(value, context): if str(context['the_only_right_number']) not in value: raise ValueError('The value does not contain the only right number') return value ``` ### Marshmallow schema Marshmallow library also have a concept of the context, so hug also populates the context here. ```py class MarshmallowContextSchema(Schema): name = fields.String() @validates_schema def check_context(self, data): self.context['marshmallow'] += 1 @hug.get() def made_up_hello(test: MarshmallowContextSchema()): return 'hi' ``` What can be a context? ====================== Basically, the answer is everything. For example you can keep all the necessary database sessions in the context and also you can keep there all the resources that need to be dealt with after the execution of the endpoint. In delete_context function you can resolve all the dependencies between the databases' management. See the examples to see what can be achieved. Do not forget to add your own example if you find an another usage! hug-2.6.0/documentation/DIRECTIVES.md000066400000000000000000000123271353170073200171440ustar00rootroot00000000000000hug directives (automatic argument injection) =================== Oftentimes you'll find yourself needing something particular to an interface (say a header, a session, or content_type), but don't want to tie your function to a single interface. To support this, hug introduces the concept of `directives`. In hug, directives are simply arguments that have been registered to automatically provide a parameter value based on knowledge known to the interface. For example, this is the built-in session directive: @hug.directive() def session(context_name='session', request=None, **kwargs): """Returns the session associated with the current request""" return request and request.context.get(context_name, None) or None Then, when using this directive in your code, you can either specify the directive via type annotation: @hug.get() def my_endpoint(session: hug.directives.session): session # is here automatically, without needing to be passed in Or by prefixing the argument with `hug_`: @hug.get() def my_endpoint(hug_session): session # is here automatically, without needing to be passed in You can then specify a different location for the hug session, simply by providing a default for the argument: @hug.get() def my_endpoint(hug_session='alternative_session_key'): session # is here automatically, without needing to be passed in Built-in directives =================== hug provides a handful of directives for commonly needed attributes: - hug.directives.Timer (hug_timer=precision): Stores the time the interface was initially called, returns how much time has passed since the function was called, if casted as a float. Automatically converts to the time taken when returned as part of a JSON structure. The default value specifies the float precision desired when keeping track of the time passed. - hug.directives.module (hug_module): Passes along the module that contains the API associated with this endpoint. - hug.directives.api (hug_api): Passes along the hug API singleton associated with this endpoint. - hug.directives.api_version (hug_api_version): Passes along the version of the API being called. - hug.directives.documentation (hug_documentation): Generates and passes along the entire set of documentation for the API that contains the endpoint. - hug.directives.session (hug_session=context_name): Passes along the session associated with the current request. The default value provides a different key whose value is stored on the request.context object. - hug.directives.user (hug_user): Passes along the user object associated with the request. - hug.directives.CurrentAPI (hug_current_api): Passes along a smart, version-aware API caller, to enable calling other functions within your API, with reassurance that the correct function is being called for the version of the API being requested. Building custom directives =================== hug provides the `@hug.directive()` to enable creation of new directives. It takes one argument: apply_globally, which defaults to False. If you set this parameter to True, the hug directive will be automatically made available as a magic `hug_` argument on all endpoints outside of your defined API. This is not a concern if you're applying directives via type annotation. The most basic directive will take an optional default value, as well as **kwargs: @hug.directive() def basic(default=False, **kwargs): return str(default) + ' there!' This directive could then be used like this: @hug.local() def endpoint(hug_basic='hi'): return hug_basic assert endpoint() == 'hi there!' It's important to always accept **kwargs for directive functions, as each interface gets to decide its own set of keyword arguments to send to the directive, which can then be used to pull in information for the directive. Common directive key word parameters =================== Independent of interface, the following key word arguments will be passed to the directive: - `interface` - The interface that the directive is being run through. Useful for conditionally injecting data (via the decorator) depending on the interface it is being called through, as demonstrated at the bottom of this section. - `api` - The API singleton associated with this endpoint. Interface Example: @directive() def my_directive(default=None, interface=None, **kwargs): if interface == hug.interface.CLI: return 'CLI specific' elif interface == hug.interface.HTTP: return 'HTTP specific' elif interface == hug.interface.Local: return 'Local' return 'unknown' HTTP directive key word parameters =================== Directives are passed the following additional keyword parameters when they are being run through an HTTP interface: - `response`: The HTTP response object that will be returned for this request. - `request`: The HTTP request object that caused this interface to be called. - `api_version`: The version of the endpoint being hit. CLI directive key word parameters =================== Directives get one additional argument when they are run through a command line interface: - `argparse`: The argparse instance created to parse command line arguments. hug-2.6.0/documentation/OUTPUT_FORMATS.md000066400000000000000000000133541353170073200177370ustar00rootroot00000000000000hug output formats =================== Every endpoint that is exposed through an externally facing interface will need to return data in a standard, easily understandable format. The default output format for all hug APIs is JSON. However, you may explicitly specify a different default output_format for a particular API: hug.API(__name__).http.output_format = hug.output_format.html or: @hug.default_output_format() def my_output_formatter(data, request, response): # Custom output formatting code By default, this only applies to the output format of HTTP responses. To change the output format of the command line interface: @hug.default_output_format(cli=True, http=False) def my_output_formatter(data, request, response): # Custom output formatting code To specify an output_format for a specific endpoint, simply specify the output format within its router: @hug.get(output=hug.output_format.html) def my_endpoint(): return # HTML generating code goes here You can use route chaining to specify an output format for a group of endpoints within an API: html = hug.get(output=hug.output_format.html) @html def my_endpoint_1(): return # HTML generating code goes here @html.urls('/') def root(): return # HTML generating code goes here Finally, an output format may be a collection of different output formats that get used conditionally. For example, using the built-in suffix output format: suffix_output = hug.output_format.suffix({'.js': hug.output_format.json, '.html': hug.output_format.html}) @hug.get(('my_endpoint.js', 'my_endoint.html'), output=suffix_output) def my_endpoint(): return '' In this case, if the endpoint is accessed via my_endpoint.js, the output type will be JSON; however if it's accessed via my_endoint.html, the output type will be HTML. You can also change the default output format globally for all APIs with either: @hug.default_output_format(apply_globally=True, cli=True, http=True) def my_output_formatter(data, request, response): # Custom output formatting code or: hug.defaults.output_format = hug.output_format.html # for HTTP hug.defaults.cli_output_format = hug.output_format.html # for the CLI Note that when extending APIs, changing the default output format globally must be done before importing the modules of any of the sub-APIs: hug.defaults.cli_output_format = hug.output_format.html from my_app import my_sub_api @hug.extend_api() def extended(): return [my_sub_api] Built-in hug output formats =================== hug provides a large catalog of built-in output formats, which can be used to build useful APIs right away: - `hug.output_format.json`: The default hug output formatter for all endpoints; outputs in Javascript Serialized Object Notation (JSON). - `hug.output_format.text`: Outputs in a plain text format. - `hug.output_format.html`: Outputs Hyper Text Markup Language (HTML). - `hug.output_format.json_camelcase`: Outputs in the JSON format, but first converts all keys to camelCase to better conform to Javascript coding standards. - `hug.output_format.pretty_json`: Outputs in the JSON format, with extra whitespace to improve human readability. - `hug.output_format.image(format)`: Outputs an image (of the specified format). - There are convenience calls in the form `hug.output_format.{FORMAT}_image for the following image types: 'png', 'jpg', 'bmp', 'eps', 'gif', 'im', 'jpeg', 'msp', 'pcx', 'ppm', 'spider', 'tiff', 'webp', 'xbm', 'cur', 'dcx', 'fli', 'flc', 'gbr', 'gd', 'ico', 'icns', 'imt', 'iptc', 'naa', 'mcidas', 'mpo', 'pcd', 'psd', 'sgi', 'tga', 'wal', 'xpm', and 'svg'. Automatically works on returned file names, streams, or objects that produce an image on read, save, or render. - `hug.output_format.video(video_type, video_mime, doc)`: Streams a video back to the user in the specified format. - There are convenience calls in the form `hug.output_format.{FORMAT}_video for the following video types: 'flv', 'mp4', 'm3u8', 'ts', '3gp', 'mov', 'avi', and 'wmv'. Automatically works on returned file names, streams, or objects that produce a video on read, save, or render. - `hug.output_format.file`: Will dynamically determine and stream a file based on its content. Automatically works on returned file names and streams. - `hug.output_format.on_content_type(handlers={content_type: output_format}, default=None)`: Dynamically changes the output format based on the request content type. - `hug.output_format.suffix(handlers={suffix: output_format}, default=None)`: Dynamically changes the output format based on a suffix at the end of the requested path. - `hug.output_format.prefix(handlers={suffix: output_format}, default=None)`: Dynamically changes the output format based on a prefix at the beginning of the requested path. Creating a custom output format =================== An output format is simply a function with a content type attached that takes a data argument, and optionally a request and response, and returns properly encoded and formatted data: @hug.format.content_type('file/text') def format_as_text(data, request=None, response=None): return str(data).encode('utf8') A common pattern is to only apply the output format. Validation errors aren't passed in, since it's hard to deal with this for several formats (such as images), and it may make more sense to simply return the error as JSON. hug makes this pattern simple, as well, with the `hug.output_format.on_valid` decorator: @hug.output_format.on_valid('file/text') def format_as_text_when_valid(data, request=None, response=None): return str(data).encode('utf8') hug-2.6.0/documentation/ROUTING.md000066400000000000000000000200241353170073200166230ustar00rootroot00000000000000Routing in hug ============== The most basic function of any framework meant to enable external interaction with an API, is routing how the external interaction will correspond to internal function calls and business logic. hug provides flexible and powerful routers that aim to scale intuitively from simple use-cases to complex. To enable this all hug routers share 3 attributes: - Can be used directly as function decorators - Can be used separately from the function - Can be stored, modified, and chained before being used And, while hug uses functions in most of its examples, it supports applying routes to methods and objects as well. All hug routers enforce type annotation and enable automatic argument supplying via directives. Using a router as a decorator ============================= The most basic use case is to simply define the route directly above the function you need to expose as a decorator: import hug @hug.get('/home') def root(): return 'Welcome home!' This is clear, explicit, and obvious. As such, this is recommended for most basic APIs. Declaring a router separate from a function =========================================== Sometimes, in more complex use-cases, it's necessary to define routing separate from where the code itself is defined. hug aims to make this as easy and intuitive as it can be: Internal API: # internal.py def root(): return 'Welcome home!' External API: # external.py import hug import internal router = hug.route.API(__name__) router.get('/home')(internal.root) Or, alternatively: # external.py import hug import internal api = hug.API(__name__) hug.get('/home', api=api)(internal.root) Chaining routers for easy re-use ================================ A very common scenario when using hug routers, because they are so powerful, is duplication between routers. For instance: if you decide you want every route to return the 404 page when a validation error occurs or you want to require validation for a collection of routes. hug makes this extremely simple by allowing all routes to be chained and reused: import hug api = hug.get(on_invalid=hug.redirect.not_found) @api.urls('/do-math', examples='number_1=1&number_2=2') def math(number_1: hug.types.number, number_2: hug.types.number): return number_1 + number_2 @api def happy_birthday(name, age: hug.types.number): """Says happy birthday to a user""" return "Happy {age} Birthday {name}!".format(**locals()) It's important to note that to chain you simply call the argument you would normally pass in to the routers init function as a method on the existing router. Then you pass in any additional parameters you would like to override as **kwargs - as shown in the math example above. Common router parameters ======================== There are a few parameters that are shared between all router types, as they are globally applicable to all currently supported interfaces: - `api`: The API to register the route with. You can always retrieve the API singleton for the current module by doing `hug.API(__name__)` - `transform`: A function to call on the the data returned by the function to transform it in some way specific to this interface - `output`: An output format to apply to the outputted data (after return and optional transformation) - `requires`: A list or single function that must all return `True` for the function to execute when called via this interface (commonly used for authentication) HTTP Routers ============ in addition to `hug.http` hug includes convenience decorators for all common HTTP METHODS (`hug.connect`, `hug.delete`, `hug.get`, `hug.head`, `hug.options`, `hug.patch`, `hug.post`, `hug.put`, `hug.get_post`, `hug.put_post`, and `hug.trace`). These methods are functionally the same as calling `@hug.http(accept=(METHOD, ))` and are otherwise identical to the http router. - `urls`: A list of or a single URL that should be routed to the function. Supports defining variables within the URL that will automatically be passed to the function when `{}` notation is found in the URL: `/website/{page}`. Defaults to the name of the function being routed to. - `accept`: A list of or a single HTTP METHOD value to accept. Defaults to all common HTTP methods. - `examples`: A list of or a single example set of parameters in URL query param format. For example: `examples="argument_1=x&argument_2=y"` - `versions`: A list of or a single integer version of the API this endpoint supports. To support a range of versions the Python builtin range function can be used. - `suffixes`: A list of or a single suffix to add to the end of all URLs using this router. - `prefixes`: A list of or a single prefix to add before all URLs using this router. - `response_headers`: An optional dictionary of response headers to set automatically on every request to this endpoint. - `status`: An optional status code to automatically apply to the response on every request to this endpoint. - `parse_body`: If `True` and the format of the request body matches one known by hug, hug will run the specified input formatter on the request body before passing it as an argument to the routed function. Defaults to `True`. - `on_invalid`: A transformation function to run outputed data through, only if the request fails validation. Defaults to the endpoints specified general transform function, can be set to not run at all by setting to `None`. - `output_invalid`: Specifies an output format to attach to the endpoint only on the case that validation fails. Defaults to the endpoints specified output format. - `raise_on_invalid`: If set to true, instead of collecting validation errors in a dictionary, hug will simply raise them as they occur. Handling for 404 Responses =========== By default, Hug will call `documentation_404()` if a user tries to access a nonexistant route when serving. If you want to specify something different, you can use the "sink" decorator, such as in the example below. The `@hug.sink()` decorator serves as a "catch all" for unassigned routes. ```Python import hug @hug.sink('/all') def my_sink(request): return request.path.replace('/all', '') ``` In this case, the server routes requests to anything that's no an assigned route to the landing page. To test the functionality of your sink decorator, serve your application locally, then attempt to access an unassigned route. Using this code, if you try to access `localhost:8000/this-route-is-invalid`, you will be rerouted to `localhost:8000`. CLI Routing =========== Any endpoint can also be exposed to the command line as well, using `@hug.cli`: - `name`: The name that should execute the command from the command line. Defaults to the name of the function being routed. - `version`: The optional version associated with this command line application. - `doc`: Documentation to provide to users of this command line tool. Defaults to the functions doc string. Local Routing ============= By default all hug APIs are already valid local APIs. However, sometimes it can be useful to apply type annotations and/or directives to local use as well. For these cases hug provides `@hug.local`: - `validate`: Apply type annotations to local use of the function. Defaults to `True`. - `directives`: Apply directives to local use of the function. Defaults to `True`. - `version`: Specify a version of the API for local use. If versions are being used, this generally should be the latest supported. - `on_invalid`: A transformation function to run outputed data through, only if the request fails validation. Defaults to the endpoints specified general transform function, can be set to not run at all by setting to `None`. - `output_invalid`: Specifies an output format to attach to the endpoint only on the case that validation fails. Defaults to the endpoints specified output format. - `raise_on_invalid`: If set to `True`, instead of collecting validation errors in a dictionary, hug will simply raise them as they occur. NOTE: unlike all other routers, this modifies the function in-place hug-2.6.0/documentation/TYPE_ANNOTATIONS.md000066400000000000000000000130211353170073200201310ustar00rootroot00000000000000Type annotations in hug ======================= hug leverages Python3 type annotations for validation and API specification. Within the context of hug, annotations should be set to one of 4 things: - A cast function, built-in, or your own (str, int, etc) that takes a value casts it and then returns it, raising an exception if it is not in a format that can be cast into the desired type - A hug type (hug.types.text, hug.types.number, etc.). These are essentially built-in cast functions that provide more contextual information, and good default error messages - A [marshmallow](https://marshmallow.readthedocs.org/en/latest/) type and/or schema. In hug 2.0.0 Marshmallow is a first class citizen in hug, and all fields and schemas defined with it can be used in hug as type annotations - A string. When a basic Python string is set as the type annotation it is used by hug to generate documentation, but does not get applied during the validation phase For example: import hug @hug.get() def hello(first_name: hug.types.text, last_name: 'Family Name', age: int): print("Hi {0} {1}!".format(first_name, last_name) is a valid hug endpoint. Any time a type annotation raises an exception during casting of a type, it is seen as a failure. Otherwise the cast is assumed successful with the returned type replacing the passed-in parameter. By default, all errors are collected in an errors dictionary and returned as the output of the endpoint before the routed function ever gets called. To change how errors are returned you can transform them via the `on_invalid` route option, and specify a specific output format for errors by specifying the `output_invalid` route option. Or, if you prefer, you can keep hug from handling the validation errors at all by passing in `raise_on_invalid=True` to the route. Built in hug types ================== hug provides several built-in types for common API use cases: - `number`: Validates that a whole number was passed in - `float_number`: Validates that a valid floating point number was passed in - `decimal`: Validates and converts the provided value into a Python Decimal object - `uuid`: Validates that the provided value is a valid UUID - `text`: Validates that the provided value is a single string parameter - `multiple`: Ensures the parameter is passed in as a list (even if only one value is passed in) - `boolean`: A basic naive HTTP style boolean where no value passed in is seen as `False` and any value passed in (even if its `false`) is seen as `True` - `smart_boolean`: A smarter, but more computentionally expensive, boolean that checks the content of the value for common true / false formats (true, True, t, 1) or (false, False, f, 0) - `delimited_list(delimiter)`: splits up the passed in value based on the provided delimiter and then passes it to the function as a list - `one_of(values)`: Validates that the passed in value is one of those specified - `mapping(dict_of_passed_in_to_desired_values)`: Like `one_of`, but with a dictionary of acceptable values, to converted value. - `multi(types)`: Allows passing in multiple acceptable types for a parameter, short circuiting on the first acceptable one - `in_range(lower, upper, convert=number)`: Accepts a number within a lower and upper bound of acceptable values - `less_than(limit, convert=number)`: Accepts a number within a lower and upper bound of acceptable values - `greater_than(minimum, convert=number)`: Accepts a value above a given minimum - `length(lower, upper, convert=text)`: Accepts a a value that is within a specific length limit - `shorter_than(limit, convert=text)`: Accepts a text value shorter than the specified length limit - `longer_than(limit, convert=text)`: Accepts a value up to the specified limit - `cut_off(limit, convert=text)`: Cuts off the provided value at the specified index Extending and creating new hug types ==================================== The most obvious way to extend a hug type is to simply inherit from the base type defined in `hug.types` and then override `__call__` to override how the cast function, or override `__init__` to override what parameters the type takes: import hug class TheAnswer(hug.types.Text): """My new documentation""" def __call__(self, value): value = super().__call__(value) if value != 'fourty-two': raise ValueError('Value is not the answer to everything.') return value If you simply want to perform additional conversion after a base type is finished, or modify its documentation, the most succinct way is the `hug.type` decorator: import hug @hug.type(extend=hug.types.number) def the_answer(value): """My new documentation""" if value != 42: raise ValueError('Value is not the answer to everything.') return value Marshmallow integration ======================= [Marshmallow](https://marshmallow.readthedocs.org/en/latest/) is an advanced serialization, deserialization, and validation library. Hug supports using marshmallow fields and schemas as input types. Here is a simple example of an API that does datetime addition. import datetime as dt import hug from marshmallow import fields from marshmallow.validate import Range @hug.get('/dateadd', examples="value=1973-04-10&addend=63") def dateadd(value: fields.Date(), addend: fields.Int(validate=Range(min=1))): """Add a value to a date.""" delta = dt.timedelta(days=addend) result = value + delta return {'result': result} hug-2.6.0/examples/000077500000000000000000000000001353170073200141215ustar00rootroot00000000000000hug-2.6.0/examples/authentication.py000066400000000000000000000060401353170073200175120ustar00rootroot00000000000000"""A basic example of authentication requests within a hug API""" import hug import jwt # Several authenticators are included in hug/authentication.py. These functions # accept a verify_user function, which can be either an included function (such # as the basic username/password function demonstrated below), or logic of your # own. Verification functions return an object to store in the request context # on successful authentication. Naturally, this is a trivial demo, and a much # more robust verification function is recommended. This is for strictly # illustrative purposes. authentication = hug.authentication.basic(hug.authentication.verify("User1", "mypassword")) @hug.get("/public") def public_api_call(): return "Needs no authentication" # Note that the logged in user can be accessed via a built-in directive. # Directives can provide computed input parameters via an abstraction # layer so as not to clutter your API functions with access to the raw # request object. @hug.get("/authenticated", requires=authentication) def basic_auth_api_call(user: hug.directives.user): return "Successfully authenticated with user: {0}".format(user) # Here is a slightly less trivial example of how authentication might # look in an API that uses keys. # First, the user object stored in the context need not be a string, # but can be any Python object. class APIUser(object): """A minimal example of a rich User object""" def __init__(self, user_id, api_key): self.user_id = user_id self.api_key = api_key def api_key_verify(api_key): magic_key = "5F00832B-DE24-4CAF-9638-C10D1C642C6C" # Obviously, this would hit your database if api_key == magic_key: # Success! return APIUser("user_foo", api_key) else: # Invalid key return None api_key_authentication = hug.authentication.api_key(api_key_verify) @hug.get("/key_authenticated", requires=api_key_authentication) # noqa def basic_auth_api_call(user: hug.directives.user): return "Successfully authenticated with user: {0}".format(user.user_id) def token_verify(token): secret_key = "super-secret-key-please-change" try: return jwt.decode(token, secret_key, algorithm="HS256") except jwt.DecodeError: return False token_key_authentication = hug.authentication.token(token_verify) @hug.get("/token_authenticated", requires=token_key_authentication) # noqa def token_auth_call(user: hug.directives.user): return "You are user: {0} with data {1}".format(user["user"], user["data"]) @hug.post("/token_generation") # noqa def token_gen_call(username, password): """Authenticate and return a token""" secret_key = "super-secret-key-please-change" mockusername = "User2" mockpassword = "Mypassword" if mockpassword == password and mockusername == username: # This is an example. Don't do that. return { "token": jwt.encode({"user": username, "data": "mydata"}, secret_key, algorithm="HS256") } return "Invalid username and/or password for user: {0}".format(username) hug-2.6.0/examples/cli.py000066400000000000000000000004371353170073200152460ustar00rootroot00000000000000"""A basic cli client written with hug""" import hug @hug.cli(version="1.0.0") def cli(name: "The name", age: hug.types.number): """Says happy birthday to a user""" return "Happy {age} Birthday {name}!\n".format(**locals()) if __name__ == "__main__": cli.interface.cli() hug-2.6.0/examples/cli_multiple.py000066400000000000000000000002351353170073200171550ustar00rootroot00000000000000import hug @hug.cli() def add(numbers: list=None): return sum([int(number) for number in numbers]) if __name__ == "__main__": add.interface.cli() hug-2.6.0/examples/cli_object.py000066400000000000000000000007531353170073200165750ustar00rootroot00000000000000import hug API = hug.API("git") @hug.object(name="git", version="1.0.0", api=API) class GIT(object): """An example of command like calls via an Object""" @hug.object.cli def push(self, branch="master"): """Push the latest to origin""" return "Pushing {}".format(branch) @hug.object.cli def pull(self, branch="master"): """Pull in the latest from origin""" return "Pulling {}".format(branch) if __name__ == "__main__": API.cli() hug-2.6.0/examples/cors_middleware.py000066400000000000000000000002651353170073200176410ustar00rootroot00000000000000import hug api = hug.API(__name__) api.http.add_middleware(hug.middleware.CORSMiddleware(api, max_age=10)) @hug.get("/demo") def get_demo(): return {"result": "Hello World"} hug-2.6.0/examples/cors_per_route.py000066400000000000000000000001471353170073200175270ustar00rootroot00000000000000import hug @hug.get() def cors_supported(cors: hug.directives.cors = "*"): return "Hello world!" hug-2.6.0/examples/docker_compose_with_mongodb/000077500000000000000000000000001353170073200216555ustar00rootroot00000000000000hug-2.6.0/examples/docker_compose_with_mongodb/Dockerfile000066400000000000000000000001151353170073200236440ustar00rootroot00000000000000FROM python:3.6 ADD . /src WORKDIR /src RUN pip install -r requirements.txt hug-2.6.0/examples/docker_compose_with_mongodb/README.md000066400000000000000000000004311353170073200231320ustar00rootroot00000000000000# mongodb + hug microservice 1. Run with `sudo /path/to/docker-compose up --build` 2. Add data with something that can POST, e.g. `curl http://localhost:8000/new -d name="my name" -d description="a description"` 3. Visit `localhost:8000/` to see all the current data 4. Rejoice! hug-2.6.0/examples/docker_compose_with_mongodb/app.py000066400000000000000000000014571353170073200230160ustar00rootroot00000000000000from pymongo import MongoClient import hug client = MongoClient("db", 27017) db = client["our-database"] collection = db["our-items"] @hug.get("/", output=hug.output_format.pretty_json) def show(): """Returns a list of items currently in the database""" items = list(collection.find()) # JSON conversion chokes on the _id objects, so we convert # them to strings here for i in items: i["_id"] = str(i["_id"]) return items @hug.post("/new", status_code=hug.falcon.HTTP_201) def new(name: hug.types.text, description: hug.types.text): """Inserts the given object as a new item in the database. Returns the ID of the newly created item. """ item_doc = {"name": name, "description": description} collection.insert_one(item_doc) return str(item_doc["_id"]) hug-2.6.0/examples/docker_compose_with_mongodb/docker-compose.yml000066400000000000000000000001551353170073200253130ustar00rootroot00000000000000web: build: . command: hug -f app.py ports: - "8000:8000" links: - db db: image: mongo:3.0.2 hug-2.6.0/examples/docker_compose_with_mongodb/requirements.txt000066400000000000000000000000141353170073200251340ustar00rootroot00000000000000hug pymongo hug-2.6.0/examples/docker_nginx/000077500000000000000000000000001353170073200165735ustar00rootroot00000000000000hug-2.6.0/examples/docker_nginx/Dockerfile000066400000000000000000000004221353170073200205630ustar00rootroot00000000000000# Use Python 3.6 FROM python:3.6 # Set working directory RUN mkdir /app WORKDIR /app # Add all files to app directory ADD . /app # Install gunicorn RUN apt-get update && \ apt-get install -y && \ pip3 install gunicorn # Run setup.py RUN python3 setup.py install hug-2.6.0/examples/docker_nginx/Makefile000066400000000000000000000001341353170073200202310ustar00rootroot00000000000000dev: docker-compose -f docker-compose.dev.yml up --build prod: docker-compose up --build hug-2.6.0/examples/docker_nginx/README.md000066400000000000000000000013541353170073200200550ustar00rootroot00000000000000# Docker/NGINX with Hug Example of a Docker image containing a Python project utilizing NGINX, Gunicorn, and Hug. This example provides a stack that operates as follows: ``` Client <-> NGINX <-> Gunicorn <-> Python API (Hug) ``` ## Getting started Clone/copy this directory to your local machine, navigate to said directory, then: __For production:__ This is an "immutable" build that will require restarting of the container for changes to reflect. ``` $ make prod ``` __For development:__ This is a "mutable" build, which enables us to make changes to our Python project, and changes will reflect in real time! ``` $ make dev ``` Once the docker images are running, navigate to `localhost:8000`. A `hello world` message should be visible! hug-2.6.0/examples/docker_nginx/api/000077500000000000000000000000001353170073200173445ustar00rootroot00000000000000hug-2.6.0/examples/docker_nginx/api/__init__.py000066400000000000000000000000001353170073200214430ustar00rootroot00000000000000hug-2.6.0/examples/docker_nginx/api/__main__.py000066400000000000000000000004051353170073200214350ustar00rootroot00000000000000# pylint: disable=C0111, E0401 """ API Entry Point """ import hug @hug.get("/", output=hug.output_format.html) def base(): return "

hello world

" @hug.get("/add", examples="num=1") def add(num: hug.types.number = 1): return {"res": num + 1} hug-2.6.0/examples/docker_nginx/config/000077500000000000000000000000001353170073200200405ustar00rootroot00000000000000hug-2.6.0/examples/docker_nginx/config/nginx/000077500000000000000000000000001353170073200211635ustar00rootroot00000000000000hug-2.6.0/examples/docker_nginx/config/nginx/nginx.conf000066400000000000000000000005371353170073200231620ustar00rootroot00000000000000server { listen 80; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_pass http://api:8000; } } hug-2.6.0/examples/docker_nginx/docker-compose.dev.yml000066400000000000000000000005461353170073200230120ustar00rootroot00000000000000version: "3" services: api: build: . command: gunicorn --reload --bind=0.0.0.0:8000 api.__main__:__hug_wsgi__ expose: - "8000" volumes: - .:/app working_dir: /app nginx: depends_on: - api image: nginx:latest ports: - "8000:80" volumes: - .:/app - ./config/nginx:/etc/nginx/conf.d hug-2.6.0/examples/docker_nginx/docker-compose.yml000066400000000000000000000004531353170073200222320ustar00rootroot00000000000000version: "3" services: api: build: . command: gunicorn --bind=0.0.0.0:8000 api.__main__:__hug_wsgi__ expose: - "8000" nginx: depends_on: - api image: nginx:latest ports: - "8000:80" volumes: - .:/app - ./config/nginx:/etc/nginx/conf.d hug-2.6.0/examples/docker_nginx/setup.py000066400000000000000000000013131353170073200203030ustar00rootroot00000000000000# pylint: disable=C0326 """ Base setup script """ from setuptools import setup setup( name="app-name", version="0.0.1", description="App Description", url="https://github.com/CMoncur/nginx-gunicorn-hug", author="Cody Moncur", author_email="cmoncur@gmail.com", classifiers=[ # 3 - Alpha # 4 - Beta # 5 - Production/Stable "Development Status :: 3 - Alpha", "Programming Language :: Python :: 3.6", ], packages=[], # Entry Point entry_points={"console_scripts": []}, # Core Dependencies install_requires=["hug"], # Dev/Test Dependencies extras_require={"dev": [], "test": []}, # Scripts scripts=[], ) hug-2.6.0/examples/document.html000066400000000000000000000002021353170073200166170ustar00rootroot00000000000000

Header

Contents

hug-2.6.0/examples/file_upload_example.py000066400000000000000000000015411353170073200204720ustar00rootroot00000000000000"""A simple file upload example. To test, run this server with `hug -f file_upload_example.py` Then run the following from ipython (you may want to replace .wgetrc with some other small text file that you have, and it's better to specify absolute path to it): import requests with open('.wgetrc', 'rb') as wgetrc_handle: response = requests.post('http://localhost:8000/upload', files={'.wgetrc': wgetrc_handle}) print(response.headers) print(response.content) This should both print in the terminal and return back the filename and filesize of the uploaded file. """ import hug @hug.post("/upload") def upload_file(body): """accepts file uploads""" # is a simple dictionary of {filename: b'content'} print("body: ", body) return {"filename": list(body.keys()).pop(), "filesize": len(list(body.values()).pop())} hug-2.6.0/examples/force_https.py000066400000000000000000000005431353170073200170150ustar00rootroot00000000000000"""An example of using a middleware to require HTTPS connections. requires https://github.com/falconry/falcon-require-https to be installed via pip install falcon-require-https """ import hug from falcon_require_https import RequireHTTPS hug.API(__name__).http.add_middleware(RequireHTTPS()) @hug.get() def my_endpoint(): return "Success!" hug-2.6.0/examples/happy_birthday.py000066400000000000000000000012421353170073200175010ustar00rootroot00000000000000"""A basic (single function) API written using Hug""" import hug @hug.get("/happy_birthday", examples="name=HUG&age=1") def happy_birthday(name, age: hug.types.number): """Says happy birthday to a user""" return "Happy {age} Birthday {name}!".format(**locals()) @hug.get("/greet/{event}") def greet(event: str): """Greets appropriately (from http://blog.ketchum.com/how-to-write-10-common-holiday-greetings/) """ greetings = "Happy" if event == "Christmas": greetings = "Merry" if event == "Kwanzaa": greetings = "Joyous" if event == "wishes": greetings = "Warm" return "{greetings} {event}!".format(**locals()) hug-2.6.0/examples/hello_world.py000066400000000000000000000001501353170073200170010ustar00rootroot00000000000000import hug @hug.get() def hello(request): """Says hellos""" return "Hello Worlds for Bacon?!" hug-2.6.0/examples/html_serve.py000066400000000000000000000005371353170073200166500ustar00rootroot00000000000000import os import hug DIRECTORY = os.path.dirname(os.path.realpath(__file__)) @hug.get("/get/document", output=hug.output_format.html) def nagiosCommandHelp(**kwargs): """ Returns command help document when no command is specified """ with open(os.path.join(DIRECTORY, "document.html")) as document: return document.read() hug-2.6.0/examples/image_serve.py000066400000000000000000000002271353170073200167620ustar00rootroot00000000000000import hug @hug.get("/image.png", output=hug.output_format.png_image) def image(): """Serves up a PNG image.""" return "../artwork/logo.png" hug-2.6.0/examples/import_example/000077500000000000000000000000001353170073200171465ustar00rootroot00000000000000hug-2.6.0/examples/import_example/__init__.py000066400000000000000000000000001353170073200212450ustar00rootroot00000000000000hug-2.6.0/examples/import_example/example_resource.py000066400000000000000000000000321353170073200230550ustar00rootroot00000000000000def hi(): return "hi" hug-2.6.0/examples/import_example/import_example_server.py000066400000000000000000000001361353170073200241330ustar00rootroot00000000000000import example_resource import hug @hug.get() def hello(): return example_resource.hi() hug-2.6.0/examples/marshmallow_example.py000066400000000000000000000017051353170073200205370ustar00rootroot00000000000000"""Example API using marshmallow fields as type annotations. Requires marshmallow and dateutil. $ pip install marshmallow python-dateutil To run the example: $ hug -f examples/marshmallow_example.py Example requests using HTTPie: $ http :8000/dateadd value==1973-04-10 addend==63 $ http :8000/dateadd value==2015-03-20 addend==525600 unit==minutes """ import datetime as dt import hug from marshmallow import fields from marshmallow.validate import Range, OneOf @hug.get("/dateadd", examples="value=1973-04-10&addend=63") def dateadd( value: fields.DateTime(), addend: fields.Int(validate=Range(min=1)), unit: fields.Str(validate=OneOf(["minutes", "days"])) = "days", ): """Add a value to a date.""" value = value or dt.datetime.utcnow() if unit == "minutes": delta = dt.timedelta(minutes=addend) else: delta = dt.timedelta(days=addend) result = value + delta return {"result": result} hug-2.6.0/examples/matplotlib/000077500000000000000000000000001353170073200162705ustar00rootroot00000000000000hug-2.6.0/examples/matplotlib/additional_requirements.txt000066400000000000000000000000221353170073200237360ustar00rootroot00000000000000matplotlib==3.1.1 hug-2.6.0/examples/matplotlib/plot.py000066400000000000000000000004601353170073200176200ustar00rootroot00000000000000import io import hug from matplotlib import pyplot @hug.get(output=hug.output_format.png_image) def plot(): pyplot.plot([1, 2, 3, 4]) pyplot.ylabel('some numbers') image_output = io.BytesIO() pyplot.savefig(image_output, format='png') image_output.seek(0) return image_output hug-2.6.0/examples/multi_file_cli/000077500000000000000000000000001353170073200171015ustar00rootroot00000000000000hug-2.6.0/examples/multi_file_cli/__init__.py000066400000000000000000000000001353170073200212000ustar00rootroot00000000000000hug-2.6.0/examples/multi_file_cli/api.py000066400000000000000000000003431353170073200202240ustar00rootroot00000000000000import hug import sub_api @hug.cli() def echo(text: hug.types.text): return text @hug.extend_api(sub_command="sub_api") def extend_with(): return (sub_api,) if __name__ == "__main__": hug.API(__name__).cli() hug-2.6.0/examples/multi_file_cli/sub_api.py000066400000000000000000000000761353170073200211000ustar00rootroot00000000000000import hug @hug.cli() def hello(): return "Hello world" hug-2.6.0/examples/multiple_files/000077500000000000000000000000001353170073200171365ustar00rootroot00000000000000hug-2.6.0/examples/multiple_files/README.md000066400000000000000000000006051353170073200204160ustar00rootroot00000000000000# Splitting the API into multiple files Example of an API defined in multiple Python modules and combined together using the `extend_api()` helper. Run with `hug -f api.py`. There are three API endpoints: - `http://localhost:8000/` – `say_hi()` from `api.py` - `http://localhost:8000/part1` – `part1()` from `part_1.py` - `http://localhost:8000/part2` – `part2()` from `part_2.py` hug-2.6.0/examples/multiple_files/__init__.py000066400000000000000000000000001353170073200212350ustar00rootroot00000000000000hug-2.6.0/examples/multiple_files/api.py000066400000000000000000000006001353170073200202550ustar00rootroot00000000000000import hug import part_1 import part_2 @hug.get("/") def say_hi(): """This view will be at the path ``/``""" return "Hi from root" @hug.extend_api() def with_other_apis(): """Join API endpoints from two other modules These will be at ``/part1`` and ``/part2``, the paths being automatically generated from function names. """ return [part_1, part_2] hug-2.6.0/examples/multiple_files/part_1.py000066400000000000000000000001531353170073200206750ustar00rootroot00000000000000import hug @hug.get() def part1(): """This view will be at the path ``/part1``""" return "part1" hug-2.6.0/examples/multiple_files/part_2.py000066400000000000000000000001541353170073200206770ustar00rootroot00000000000000import hug @hug.get() def part2(): """This view will be at the path ``/part2``""" return "Part 2" hug-2.6.0/examples/on_startup.py000066400000000000000000000006551353170073200166770ustar00rootroot00000000000000"""Provides an example of attaching an action on hug server startup""" import hug data = [] @hug.startup() def add_data(api): """Adds initial data to the api on startup""" data.append("It's working") @hug.startup() def add_more_data(api): """Adds initial data to the api on startup""" data.append("Even subsequent calls") @hug.cli() @hug.get() def test(): """Returns all stored data""" return data hug-2.6.0/examples/override_404.py000066400000000000000000000002121353170073200166740ustar00rootroot00000000000000import hug @hug.get() def hello_world(): return "Hello world!" @hug.not_found() def not_found(): return {"Nothing": "to see"} hug-2.6.0/examples/pil_example/000077500000000000000000000000001353170073200164205ustar00rootroot00000000000000hug-2.6.0/examples/pil_example/additional_requirements.txt000066400000000000000000000000161353170073200240710ustar00rootroot00000000000000Pillow==6.0.0 hug-2.6.0/examples/pil_example/pill.py000066400000000000000000000004251353170073200177330ustar00rootroot00000000000000import hug from PIL import Image, ImageDraw @hug.get("/image.png", output=hug.output_format.png_image) def create_image(): image = Image.new("RGB", (100, 50)) # create the image ImageDraw.Draw(image).text((10, 10), "Hello World!", fill=(255, 0, 0)) return image hug-2.6.0/examples/post_body_example.py000066400000000000000000000007161353170073200202140ustar00rootroot00000000000000"""A simple post reading server example. To test run this server with `hug -f post_body_example` then run the following from ipython: import requests requests.post('http://localhost:8000/post_here', json={'one': 'two'}).json() This should return back the json data that you posted """ import hug @hug.post() def post_here(body): """This example shows how to read in post data w/ hug outside of its automatic param parsing""" return body hug-2.6.0/examples/quick_server.py000066400000000000000000000001731353170073200171760ustar00rootroot00000000000000import hug @hug.get() def quick(): return "Serving!" if __name__ == "__main__": hug.API(__name__).http.serve() hug-2.6.0/examples/quick_start/000077500000000000000000000000001353170073200164525ustar00rootroot00000000000000hug-2.6.0/examples/quick_start/first_step_1.py000066400000000000000000000004211353170073200214230ustar00rootroot00000000000000"""First API, local access only""" import hug @hug.local() def happy_birthday(name: hug.types.text, age: hug.types.number, hug_timer=3): """Says happy birthday to a user""" return {"message": "Happy {0} Birthday {1}!".format(age, name), "took": float(hug_timer)} hug-2.6.0/examples/quick_start/first_step_2.py000066400000000000000000000005031353170073200214250ustar00rootroot00000000000000"""First hug API (local and HTTP access)""" import hug @hug.get(examples="name=Timothy&age=26") @hug.local() def happy_birthday(name: hug.types.text, age: hug.types.number, hug_timer=3): """Says happy birthday to a user""" return {"message": "Happy {0} Birthday {1}!".format(age, name), "took": float(hug_timer)} hug-2.6.0/examples/quick_start/first_step_3.py000066400000000000000000000006351353170073200214340ustar00rootroot00000000000000"""First hug API (local, command-line, and HTTP access)""" import hug @hug.cli() @hug.get(examples="name=Timothy&age=26") @hug.local() def happy_birthday(name: hug.types.text, age: hug.types.number, hug_timer=3): """Says happy birthday to a user""" return {"message": "Happy {0} Birthday {1}!".format(age, name), "took": float(hug_timer)} if __name__ == "__main__": happy_birthday.interface.cli() hug-2.6.0/examples/redirects.py000066400000000000000000000032271353170073200164630ustar00rootroot00000000000000"""This example demonstrates how to perform different kinds of redirects using hug""" import hug @hug.get() def sum_two_numbers(number_1: int, number_2: int): """I'll be redirecting to this using a variety of approaches below""" return number_1 + number_2 @hug.post() def internal_redirection_automatic(number_1: int, number_2: int): """This will redirect internally to the sum_two_numbers handler passing along all passed in parameters. This kind of redirect happens internally within hug, fully transparent to clients. """ print("Internal Redirection Automatic {}, {}".format(number_1, number_2)) return sum_two_numbers @hug.post() def internal_redirection_manual(number: int): """Instead of normal redirecting: You can manually call other handlers, with computed parameters and return their results """ print("Internal Redirection Manual {}".format(number)) return sum_two_numbers(number, number) @hug.post() def redirect(redirect_type: hug.types.one_of(("permanent", "found", "see_other")) = None): """Hug also fully supports classical HTTP redirects, providing built in convenience functions for the most common types. """ print("HTTP Redirect {}".format(redirect_type)) if not redirect_type: hug.redirect.to("/sum_two_numbers") else: getattr(hug.redirect, redirect_type)("/sum_two_numbers") @hug.post() def redirect_set_variables(number: int): """You can also do some manual parameter setting with HTTP based redirects""" print("HTTP Redirect set variables {}".format(number)) hug.redirect.to("/sum_two_numbers?number_1={0}&number_2={0}".format(number)) hug-2.6.0/examples/return_400.py000066400000000000000000000002301353170073200163700ustar00rootroot00000000000000import hug from falcon import HTTP_400 @hug.get() def only_positive(positive: int, response): if positive < 0: response.status = HTTP_400 hug-2.6.0/examples/secure_auth_with_db_example.py000066400000000000000000000063271353170073200222250ustar00rootroot00000000000000from tinydb import TinyDB, Query import hug import hashlib import logging import os logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) db = TinyDB("db.json") """ Helper Methods """ def hash_password(password, salt): """ Securely hash a password using a provided salt :param password: :param salt: :return: Hex encoded SHA512 hash of provided password """ password = str(password).encode("utf-8") salt = str(salt).encode("utf-8") return hashlib.sha512(password + salt).hexdigest() def gen_api_key(username): """ Create a random API key for a user :param username: :return: Hex encoded SHA512 random string """ salt = str(os.urandom(64)).encode("utf-8") return hash_password(username, salt) @hug.cli() def authenticate_user(username, password): """ Authenticate a username and password against our database :param username: :param password: :return: authenticated username """ user_model = Query() user = db.get(user_model.username == username) if not user: logger.warning("User %s not found", username) return False if user["password"] == hash_password(password, user.get("salt")): return user["username"] return False @hug.cli() def authenticate_key(api_key): """ Authenticate an API key against our database :param api_key: :return: authenticated username """ user_model = Query() user = db.search(user_model.api_key == api_key)[0] if user: return user["username"] return False """ API Methods start here """ api_key_authentication = hug.authentication.api_key(authenticate_key) basic_authentication = hug.authentication.basic(authenticate_user) @hug.cli() def add_user(username, password): """ CLI Parameter to add a user to the database :param username: :param password: :return: JSON status output """ user_model = Query() if db.search(user_model.username == username): return {"error": "User {0} already exists".format(username)} salt = hashlib.sha512(str(os.urandom(64)).encode("utf-8")).hexdigest() password = hash_password(password, salt) api_key = gen_api_key(username) user = {"username": username, "password": password, "salt": salt, "api_key": api_key} user_id = db.insert(user) return {"result": "success", "eid": user_id, "user_created": user} @hug.get("/api/get_api_key", requires=basic_authentication) def get_token(authed_user: hug.directives.user): """ Get Job details :param authed_user: :return: """ user_model = Query() user = db.search(user_model.username == authed_user)[0] if user: out = {"user": user["username"], "api_key": user["api_key"]} else: # this should never happen out = {"error": "User {0} does not exist".format(authed_user)} return out # Same thing, but authenticating against an API key @hug.get(("/api/job", "/api/job/{job_id}/"), requires=api_key_authentication) def get_job_details(job_id): """ Get Job details :param job_id: :return: """ job = {"job_id": job_id, "details": "Details go here"} return job if __name__ == "__main__": add_user.interface.cli() hug-2.6.0/examples/sink_example.py000066400000000000000000000006341353170073200171550ustar00rootroot00000000000000"""This is an example of a hug "sink", these enable all request URLs that start with the one defined to be captured To try this out, run this api with hug -f sink_example.py and hit any URL after localhost:8000/all/ (for example: localhost:8000/all/the/things/) and it will return the path sans the base URL. """ import hug @hug.sink("/all") def my_sink(request): return request.path.replace("/all", "") hug-2.6.0/examples/smtp_envelope_example.py000066400000000000000000000013471353170073200210730ustar00rootroot00000000000000import envelopes import hug @hug.directive() class SMTP(object): def __init__(self, *args, **kwargs): self.smtp = envelopes.SMTP(host="127.0.0.1") self.envelopes_to_send = list() def send_envelope(self, envelope): self.envelopes_to_send.append(envelope) def cleanup(self, exception=None): if exception: return for envelope in self.envelopes_to_send: self.smtp.send(envelope) @hug.get("/hello") def send_hello_email(smtp: SMTP): envelope = envelopes.Envelope( from_addr=(u"me@example.com", u"From me"), to_addr=(u"world@example.com", u"To World"), subject=u"Hello", text_body=u"World!", ) smtp.send_envelope(envelope) hug-2.6.0/examples/sqlalchemy_example/000077500000000000000000000000001353170073200177765ustar00rootroot00000000000000hug-2.6.0/examples/sqlalchemy_example/Dockerfile000066400000000000000000000002231353170073200217650ustar00rootroot00000000000000FROM python:3.5 ADD requirements.txt / RUN pip install -r requirements.txt ADD demo /demo WORKDIR / CMD ["hug", "-f", "/demo/app.py"] EXPOSE 8000 hug-2.6.0/examples/sqlalchemy_example/demo/000077500000000000000000000000001353170073200207225ustar00rootroot00000000000000hug-2.6.0/examples/sqlalchemy_example/demo/api.py000066400000000000000000000026001353170073200220430ustar00rootroot00000000000000import hug from demo.authentication import basic_authentication from demo.directives import SqlalchemySession from demo.models import TestUser, TestModel from demo.validation import CreateUserSchema, DumpSchema, unique_username @hug.post("/create_user2", requires=basic_authentication) def create_user2(db: SqlalchemySession, data: CreateUserSchema()): user = TestUser(**data) db.add(user) db.flush() return dict() @hug.post("/create_user", requires=basic_authentication) def create_user(db: SqlalchemySession, username: unique_username, password: hug.types.text): user = TestUser(username=username, password=password) db.add(user) db.flush() return dict() @hug.get("/test") def test(): return "" @hug.get("/hello") def make_simple_query(db: SqlalchemySession): for word in ["hello", "world", ":)"]: test_model = TestModel() test_model.name = word db.add(test_model) db.flush() return " ".join([obj.name for obj in db.query(TestModel).all()]) @hug.get("/hello2") def transform_example(db: SqlalchemySession) -> DumpSchema(): for word in ["hello", "world", ":)"]: test_model = TestModel() test_model.name = word db.add(test_model) db.flush() return dict(users=db.query(TestModel).all()) @hug.get("/protected", requires=basic_authentication) def protected(): return "smile :)" hug-2.6.0/examples/sqlalchemy_example/demo/app.py000066400000000000000000000013021353170073200220500ustar00rootroot00000000000000import hug from demo import api from demo.base import Base from demo.context import SqlalchemyContext, engine from demo.directives import SqlalchemySession from demo.models import TestUser @hug.context_factory() def create_context(*args, **kwargs): return SqlalchemyContext() @hug.delete_context() def delete_context(context: SqlalchemyContext, exception=None, errors=None, lacks_requirement=None): context.cleanup(exception) @hug.local(skip_directives=False) def initialize(db: SqlalchemySession): admin = TestUser(username="admin", password="admin") db.add(admin) db.flush() @hug.extend_api() def apis(): return [api] Base.metadata.create_all(bind=engine) initialize() hug-2.6.0/examples/sqlalchemy_example/demo/authentication.py000066400000000000000000000005551353170073200243200ustar00rootroot00000000000000import hug from demo.context import SqlalchemyContext from demo.models import TestUser @hug.authentication.basic def basic_authentication(username, password, context: SqlalchemyContext): return context.db.query( context.db.query(TestUser) .filter(TestUser.username == username, TestUser.password == password) .exists() ).scalar() hug-2.6.0/examples/sqlalchemy_example/demo/base.py000066400000000000000000000001271353170073200222060ustar00rootroot00000000000000from sqlalchemy.ext.declarative.api import declarative_base Base = declarative_base() hug-2.6.0/examples/sqlalchemy_example/demo/context.py000066400000000000000000000011311353170073200227540ustar00rootroot00000000000000from sqlalchemy.engine import create_engine from sqlalchemy.orm.scoping import scoped_session from sqlalchemy.orm.session import sessionmaker, Session engine = create_engine("sqlite:///:memory:") session_factory = scoped_session(sessionmaker(bind=engine)) class SqlalchemyContext(object): def __init__(self): self._db = session_factory() @property def db(self) -> Session: return self._db # return self.session_factory() def cleanup(self, exception=None): if exception: self.db.rollback() return self.db.commit() hug-2.6.0/examples/sqlalchemy_example/demo/directives.py000066400000000000000000000003731353170073200234400ustar00rootroot00000000000000import hug from sqlalchemy.orm.session import Session from demo.context import SqlalchemyContext @hug.directive() class SqlalchemySession(Session): def __new__(cls, *args, context: SqlalchemyContext = None, **kwargs): return context.db hug-2.6.0/examples/sqlalchemy_example/demo/models.py000066400000000000000000000007671353170073200225710ustar00rootroot00000000000000from sqlalchemy.sql.schema import Column from sqlalchemy.sql.sqltypes import Integer, String from demo.base import Base class TestModel(Base): __tablename__ = "test_model" id = Column(Integer, primary_key=True) name = Column(String) class TestUser(Base): __tablename__ = "test_user" id = Column(Integer, primary_key=True) username = Column(String) password = Column( String ) # do not store plain password in the database, hash it, see porridge for example hug-2.6.0/examples/sqlalchemy_example/demo/validation.py000066400000000000000000000024001353170073200234220ustar00rootroot00000000000000import hug from marshmallow import fields from marshmallow.decorators import validates_schema from marshmallow.schema import Schema from marshmallow_sqlalchemy import ModelSchema from demo.context import SqlalchemyContext from demo.models import TestUser, TestModel @hug.type(extend=hug.types.text, chain=True, accept_context=True) def unique_username(value, context: SqlalchemyContext): if context.db.query( context.db.query(TestUser).filter(TestUser.username == value).exists() ).scalar(): raise ValueError("User with a username {0} already exists.".format(value)) return value class CreateUserSchema(Schema): username = fields.String() password = fields.String() @validates_schema def check_unique_username(self, data): if self.context.db.query( self.context.db.query(TestUser).filter(TestUser.username == data["username"]).exists() ).scalar(): raise ValueError("User with a username {0} already exists.".format(data["username"])) class DumpUserSchema(ModelSchema): @property def session(self): return self.context.db class Meta: model = TestModel fields = ("name",) class DumpSchema(Schema): users = fields.Nested(DumpUserSchema, many=True) hug-2.6.0/examples/sqlalchemy_example/docker-compose.yml000066400000000000000000000001301353170073200234250ustar00rootroot00000000000000version: '2' services: demo: build: context: . ports: - 8000:8000 hug-2.6.0/examples/sqlalchemy_example/requirements.txt000066400000000000000000000001461353170073200232630ustar00rootroot00000000000000git+git://github.com/timothycrosley/hug@develop#egg=hug sqlalchemy marshmallow marshmallow-sqlalchemy hug-2.6.0/examples/static_serve.py000066400000000000000000000033711353170073200171720ustar00rootroot00000000000000"""Serves a directory from the filesystem using Hug. try /static/a/hi.txt /static/a/hi.html /static/a/hello.html """ import tempfile import os import hug tmp_dir_object = None def setup(api=None): """Sets up and fills test directory for serving. Using different filetypes to see how they are dealt with. The tempoary directory will clean itself up. """ global tmp_dir_object tmp_dir_object = tempfile.TemporaryDirectory() dir_name = tmp_dir_object.name dir_a = os.path.join(dir_name, "a") os.mkdir(dir_a) dir_b = os.path.join(dir_name, "b") os.mkdir(dir_b) # populate directory a with text files file_list = [ ["hi.txt", """Hi World!"""], ["hi.html", """Hi World!"""], [ "hello.html", """ pop-up """, ], ["hi.js", """alert('Hi World')"""], ] for f in file_list: with open(os.path.join(dir_a, f[0]), mode="wt") as fo: fo.write(f[1]) # populate directory b with binary file image = b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\n\x00\x00\x00\n\x08\x02\x00\x00\x00\x02PX\xea\x00\x00\x006IDAT\x18\xd3c\xfc\xff\xff?\x03n\xc0\xc4\x80\x170100022222\xc2\x85\x90\xb9\x04t3\x92`7\xb2\x15D\xeb\xc6\xe34\xa8n4c\xe1F\x120\x1c\x00\xc6z\x12\x1c\x8cT\xf2\x1e\x00\x00\x00\x00IEND\xaeB`\x82" with open(os.path.join(dir_b, "smile.png"), mode="wb") as fo: fo.write(image) @hug.static("/static") def my_static_dirs(): """Returns static directory names to be served.""" global tmp_dir_object if tmp_dir_object == None: setup() return (tmp_dir_object.name,) hug-2.6.0/examples/streaming_movie_server/000077500000000000000000000000001353170073200206775ustar00rootroot00000000000000hug-2.6.0/examples/streaming_movie_server/movie.mp4000066400000000000000000013552171353170073200224560ustar00rootroot00000000000000ftypmp42mp42isomavc1freemdat EH, #x264 - core 79 - H.264/MPEG-4 AVC codec - Copyleft 2003-2009 - http://www.videolan.org/x264.html - options: cabac=0 ref=2 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=6 psy=1 psy_rd=1.0:0.0 mixed_ref=1 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 chroma_qp_offset=-2 threads=6 nr=0 decimate=1 mbaff=0 constrained_intra=0 bframes=0 wpredp=0 keyint=300 keyint_min=30 scenecut=40 rc_lookahead=40 rc=crf mbtree=1 crf=20.0 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00Te "!@F8E?y~Q) 2Yx Xx*z*rWo_QK=ѥGŠX||PwRt1i'D2>)Iz5||FHկocT D~?v@ ##a޿Cȿ e5pN8NTxtV2(l: UOx(kރnYr; 1Y牕?ä(82܄7eDQ"aGk2 1p Y|,-xG1.3jh?Z{"v@a@pBKp׃'p(4AtP`B@]^SvYLHB$pQ Xe;F`ɅaK*Zӿ'M;`\ONI6"{D`BgNχ] P7P[Sk|?o>'#N~uJޟ9"S/'$\kj~{$5In)c. 3Aë`Qf*dL7d5mQ?T@9 hllI?C` d -⃎ylZ$%~zƅOGMC "pTz}C (XIdTE Ɩ ҠਈiKm$F:P1I?ְo ka`EF}Vʙʕo}24\,jAZY `ee0N`pC+چQ=MV\:YN`P/-%A:0VbϤW tA ^ʙX #'-ڻ!'XᶶAD˻7u|wvfy)CK0mB,~Rx0(AwpE*3g-Mm}bY-j]WwɆ՛SU~VͶ!<4|hq*MQ/әJtϱ߃zʙAUcomTzFq83."RC VB  slP` CQ\x$W:{(^P-?ϧѤ׉ّ0:1FF̵vE?#NωVN%XQ[:kpu4~1Y,'0N`*/l o@V9 gE5Ţ$%#r/uqj(Eə~8:,12Oi\i2, 3 2[d=JTPo]SWQrVr285TS 620OiRjW?lRf0  |LHpu% Fp¦'q˟"9vT2[xaCt",WI94LN]?TiUQ^BIV$/@$`|!fɞM֟u<ѺO8N/SmⲤJ؋w?i^UrرRq=E*O!=fuw`P D˳l=bu5*vT$T FZ * X~zd]' HPLRF E64+g<ᬿK˸%EQ8(.rZt5^?qΈt)=KuUNN5Ϋœ*^U/:$JK'<i>ޚr&!' dT^E: {*TV7կUOoe(xWu *0 QO֪u Ϊ*)N/4vqObu-D8E8^^?D` 5 f5=2*ܕc/EK Ž7wkQquqQĵag'30,8I }GXls]&#0[~}/$"H)@yXR:eXzݐ˦F!aY{x28ڃ{'ÜqE"|7ve$C*+b7rBwȬOݗ"rދĬ:☕_JӓHJjl]?/㟳\<=H ,&?ܖB.{ 8 ^9s4FW74 *"4hf1߁A c8w7ԅѠ? QDK\ n),ͩ!XѢmطbqv11p'v4C6Q5`I gqm-xc0NR1}Gw5P`ttJXE# p3+Mw|.; EB9hcd1(H߱>A񱾰 -s*|(Aj pv=r ZBD%߫\3Uc﹂!gCG#w\#MFA5` 6KX ٤^[3F}}Q6ǩ]t2BNX=ia!PgvU :8(+ P@G@Izl Nt+ip% K?3u~L@=v灃@xni@9  IQ# |\C耕8X`p*nd K{H<mxGDž2{ >tDq8|䤊\Ē\NF׉wDstt$Uyqq*x|_\Oyϓ?3t;Nf p2HK!𿧴rcWIcA%R~lr*@ WveLpc`00$ ܩ|wYFDDZˁ槿ުI'ª|fQ`m)syWg$Su -`2C5_ׂ>H`E3  [+)&݂oU(n s/}H>(iFJ&LhAyT7[EMeW {,+C|LnZ]>7c o~*UDi^*L讀343RgvRёst>  azz*`php=;jɠ`!]( ԝ* DkX@B|O`I?߫=A#33UKy~_B`vBBFpRy$o^Z-ETgJ~tmg!a/6[93>Zwq(7o XO?[f>5 *YN ԯo@ NjV Cjy*VsH>-,W*i" AS(h:@ k`T](}qewe8^g6+sI=?2Ew0A5 c =I|B 0@`4 Y8trYQo9x*. T#ob qe] [Wo6^a$[™~k@q Pװ|< B{!Q2˗B,[@vF+6nj]ihY*EdNق|/)vmdP.Cn(j0)MOR,|m Y \^4{Qg_WQi'FGr+TQCwO\C`::AJH ?]i"jğ,*}S_ I8xQREJM@ ?=Mnp{8 `$z@IY s[< rXj"(?qKKQu'³ fV%; Ap҂HF ̼eƩD&? Ga"o"5~pV}>j eyS{YnP/E$ˎn!h̒,$& 8@D< 2BzM@,TbJ״xaQRӦ4^vZ,9+mNX0 ,ACa7#%H!ϼ.|7cUy)56{Cw"xv_"Z@g@s5_ B_A 2JYg}(U_"Y $l<́|7hxtiîǕ5ݧ3FA,xҿ!ނa9du~Z 0%R+z2?yL$:~p_ΐp| ?NZ6 ~P$,t4/j#BHǖUVP-dbǯROsq!%n <o˥#(< Ó<|?2?'OU_iRì_@]|V5U1# ~9q\ ^ llP@`= p K,Z,cp`a WlP QUu6rHFAe`Hw){kNM&G~ YeP 3Q}y圯T+_q7V5@ q !}ţ#W| +5Sk04K;Ɓfw'L"m^1Ǐ{B J:{J#k 6yT&ƨGdlFBTP`\7 ,]l8LT$ fk&<ܒަ$_r gafhpXT;3l0Rs 8u oW}]&70Lh- %<@ #0 Ac%rWd%_Q+*D'%W<QF*Ɖ>32MuܸHyH[lvul5DKeFbGF2$vj0HcM5&?A [pS)FF늈ꪩk ̯qn@{y!Md,oW!VQ4EՠB!EZ ڀ*Fch@1@O<:+3p~x2zv6~MR,(jw(L3 1NC_)Pd&R˅EvR n]4 m!p> ? &B &ѳ#B9Sp:6dca(}?;*@ʶtd@^8;BfXc|޺a&PdBhŞ1W1+J"X TVREbqZ@RS6 %8\UGwyoGqss֫U"ΟoaSg-_AaNn0ED5FGltV}&A|"'yjizcJ"_{(A -ܯEKў#6xowpz5"(Pzf,gIƙ *`*- i8ly:h%h$k7\%8'2fk<ă^5<de`dK#ZY3Q, = s7 t _w="Q]ũRp2> ; /j|]ni#bh*rY](MH3w#.b_6ɾkau_r(&Ok`N榍:gp- Xa,B SH{S`L 9U>KS0/yOV/k;7ᤊ 7 s1/MȀCIWdD$da/2giWD8NF~_=Do)H;ߧS5N] W::E-9XH}דlyI#\} sk𿶋(ȑ8޸3E.D̘g;R %)%CtOO ־KX rk`_ ("Dv2 ߑּ; 3fcw8yi4A(tJ _Vv\؟.7Ot&ChA쵴!bna^~hزZcT [pzQ؃ 80 a=WuӬ')p?8=8(]b 2A ~0ޏn|xH~+ gwڹRy`En81jJv5ۙhG"C >;ǯ(a+hY͐3*f߱EOlS6C!~]<Լ> ֩^_}@kL \ӂS\Sb>NϾ0C#3 5^᤿\B}Z|Ts& ((xH P5!al4xc 4ǒ'i 4k_nM@ NUihtJE>t8`E^ ~wld477"0 b)XΫc(]( X-ѢiwdLX8?8a`$ Cm;[6S$. ^ĆK|P7D~vbS#!-ȴ B]x `CNpT2 !BqChN4l]&\* ["@s! M3%6^:TK銔"@ " `#M>vvcMsa&) ?HWT~b#ޑF9(u-'}B6 ]zA>5̓"_6Ub9]&޼̂c?j -rFtl4c=9 h/0u2? @H@H3( Ea3)ED0c#%~R0 6b.a_wB1(μ`뇊b  c%#V*ynO$Θ,{^)*+WI & 9ͫ7" `Qlj/n uAx;E]]gCqn1fDy۩|DQj/;RliNeaM4ڙAV2VLfTW#Zl*h8Ӈ 'l<~MU6'$)g} `@6|u?0{, W D":ut5䶅hѣ1o/PZ^ޯlIoR10rܨ;Wnx*k +A;ۋn[/3 ml  H SǀWL# `$zob3Vޖ!oU@ykbҪ!'pY ˃j&G_U<ѡ o✲ӉiYCt4=1`1K۬c1soqpQJ=v3K3Dn?fàA؍j@bM%PĸF, v@ 9*H `/F, (G_|:t>\x {d cF ;ޡ- y9JE]pPv0A*G88x5`JSVz|${TF!zD <!Y3`84]3H 0>&tg'|G$[Q; L nYcI\P̄oP_pkpL}aF ~ d H;N)ap 9X`S )y &"lCBWW}ߵGbI?*J)DKM@愅AxN#d7NiGM+2ĽZe,E P Œ@ |r)Z2_o NbΝ jwmv_Лo(v6+kFC4H]ۤ3аgh~A ,)І!)DZtn"ԬK>_g>Uxcoؚ%X#h"xN  4]0[}&Wh&+Y:a-[W/Y3QU[5g?%g5KjŽP9=ٰ򅀻ߊ Bc|ШCNW 'lcW7N舯Icb4Gɹ\nU MF~1SО* (#Y JS)1;A8ޙ+~TB|s=k5wt|8⶝þ:Oi߼R )?5;W+~fjh 2B;f;S%TR"JaA݄:s\g5|,z?ޗ QD;R/5Rʦ:%b\W8Ir`sOv'j.˾<`$܁B!]EU+!$/p1lx ֿ$)O\*4`c0KN$(8 *Qb& Dgxt% &g͆cz"0^VGH,:n7_;zX4[@j M fCǻ$YxPpHC 2!I)j7A~ 2Hx.(N|yT6=@~ FaqZUSbYQ9 E]<6p)CwD-$ggi uB6 +}Q/=w4y̍% 4ȉݰ덁9:FA%}('{E%-iW{8j@Q6H (Ǧ# ӟ2$0>D3P 2 ѿH,۷~&10\ aucRخ/||EU)8Gh74{̂CDPkHcVv-! +e #_T X=B0C`XbO& k8nBЇ*f9 < *)) &/뜬4<^M}:`S('r H(M* LGXEA@%!t|nQD@9)Pi4DoV@Q%q2/<&ϰ7 G%l &?!ɟlB)nN7'L H\`Cd%f\Yi';. o=gLw) B 0Il/ ׺I"B*uɎe11n:ZN.,}. a v 2xp|4(YbʚaV51vF6v]MuΏj@{5D%)_4nhZBIqM& \١b́ou( @@0.n߫ᡕ\a0֨Pcp^%oHɥ"َ8]-Q&߻],6ׇGH AgDl`拌I@+H*XRA/P6,p3 m2u2z!o0Rd?0[Go@r1`Xecjև3VgsaTKTk;@J1[r|r᯴iގ c_%I 7&` A3:E60]FU ?Iv@I0ZLb "i&t51YO0 :2H* />A!`Hu;AEt:rH0 PVZ&:kϿr5G_m +p,|$yIv!ʯ#ٍ öT>&`7'g3GBH-I=ߴ2\.ا"vl.5s Trͩ{.%R,@az"Ssōs?7i<0Veb`ZD-cQhWfab ~<k87[_pݹnD(@B7ID,~X A .U(? jLA!&06'V MP~pD%8oܰe r".h5/0x1`+UנDϡ>[Qa wo V̒M$1xt݄X~ˬD`G)\1-]aC ./5>!EZx6;w;21z9R#Q!9K\N弿EUꫬҺbwnPc=?J*_\@0 9x((3pt3=9GV ɑA{/r0S`L_ P]cad ¢Up5y1}Rh C1֤u몮,fqxY/Jb?#.UXW f^>$HT_ptmV6\BY)J䨩F :/3Y@oHaI )H([- ) S?#@tA ` @N'G8ײ 0X}~9B?Ѭ>1(g ʰ}g!];o2տH+O>a:tG0LlԩV5** c0``X;ʐ昽`4~6\F`7 q^+~썕E0dt'\dn8{!m0~DΟu@07{a H[d{U& EG8 ZdفU>L-Դcx|B? ;VTz'+>,)j (>Hk];;_Ҁx4 *4=%!ذ>V1)_N>a(d 0߀C&QyȳѦd2 ŒorQvr5I*mHrmΖU󂗐A2;Hr{`h?sC&=O'(,n'Aː&+o*( `$pAI+/;r508.@q1fiSIPO]s&Pa^(8}Mu&K}8R x *&-ރ,= /x9X`0Wd'oYzy8 Ŋ/\U>Pl4 !4o 6YZ=#1YDKMLCW+Q8Sk 81u>^_Eupar2b[m,7ݷ8wt.@ӈ_`\p90[g@7e1O?GLhN"pĢ"Av.8#+ZWúaw1/b Ef VDuQjkPaq ã{4%@ix҃ni~Y/ͪ־(jЪ߷ۦhEAIKS+}~?ZꪹJ3^ToԴ1a8y^[j`Gu ѿ ̽Q=Mdd`|Z@4DŽS? }%m#p`]F'wj>ƚw!_R. ejT,4HqA8Eʵ^e YCa+]ORw04|a少N=P l2IDt dWģS *\WiڳePRώ^p}>@!);O 1)O& )q[V*DAQCBT8.~V10 > ]t}uQ! gŪP0c3/6cc&0 ֽ1z$l(cl΁&`ůگN
]:5Y4/5&d-6 /iT(VNCU0 S07낸ԪA sbn͜uAPew\,Hj [yL:Cx2A2D7C0`$d O&`9"]1N|h3vvŠ6Ul1Q @%Zr @ .}nlEUsF0xC1)Goy`JЈUz%5wxD&0`FAok֏g@b.f+Ч_]nr(abՅl灇HJ7oRR9]9)^MSw* r_jpaA@·Jt2c倱 6^=TC  8oE7F\yڄ云CXz*,@3iP+ SۃUr/ Ö`hD[±#b5cG̙xN*)wmH8zQP}J݂%7L2X0'^S'b.P>;G'r}qf=[<܍B7q4cdYQ(7-XAaGG ;O dU'U$5+){8aЊ_re^¯=9L.CK)|k*rl;bdLq$DH !zFɀ'(#=JnIX}$À56q"~ǘ` 1@1} X65P,x3`h.q8 <;PBV+tX19 (a) EB̜U6E,$S,(~ʉO J5޷>8F2 bn`O9a=AB_b]! %?eD 4wu؆s@V+0ϥnA7y b?:% +wH\GSw;|UK?}Ʋ]`X4 C_|{y9/ 3h,a=9,YgRֵj\u&C8.(@2Hh:gnC|WI. >2 :DVY§17bHj ks /Y, <꾥x[8?NWƨ\eƽuњ#MA`?^q1ؔՕRx|Z E*]YH-=MdFw{r>v? Yw^%':STH,"@R@G}pWєǑAV Pw-`аBpt{byF7OQe(i!@N5%L>@Q3d (ispa\J嗍G`tjH[z3Q(vit>șbAi.+] (t 8r0wYg'` K|1 =Ϳ>ot |CV~]Pf 3:rDŽ'GJ+UdwvH*:_yO R (q@aLZq1M=ak Δ.[r 9m8 eMt$dkQE y @^K_t 0@ti)T4˼q,0vr0,I _<<8KѣQ,a KBAmm3l@#J0 #x( %N@) z!埖 +7,^F@]2@(N85Sa0 oNbP7 E}N"܄NOk${\,ʰ[P~tK[fe|ʶSm0&!@,AS4z$8Ʊs%^ьZ>7wi5=b \(Rw?(}HZwEY(Ȓ텟u[owà=  ~K~Ђl(2|h AE~paC(+8ڂy(2ЎQtтvb7hyvs Kn~ {]&؅s 8z:\W&yh{f>r{$`wP14<^|4uK>20(pGK~ 8Y$+rWa }q8GqK/u0}.-!Bw-?r>#~ 9yd( U금qòQɃ#E'S4`pH]s}6@z< !bM [RYqZIm@1 t.bU=gvS\-X;|"&`g<g+HDA'vKӦxl Cc cWuѠ֢FL( j1t{J^B~Aq hv1Ira`0BA$o緃"Q+b]Z.]J'fGVWU))V :iHT7Oߌ@Uxa:FA}?©ƕ@A|e?-q4ʖ+]А!9@4J>?Մ? P6>3XTE' a5؏+ʰy훨qЖf<cQ` zo3qo ?T5+e[.Iyj_"8;+ ƿ99t <[w:BD!q2XOy-YW%U57]D)cD/OrOP֌q_0:KaU)zmd"#)M3p58j+V[XeNr_2`&GD 0؇S06-@r7,f֋&$A ,?hT& Ixa+eJv'6lA6( =%ua0jt8! `BmL U8Z H('~/'m10W]w)X"@  bgڮ,;$\&+c7s?bŦhyrFdh2SdA{=Og⼛m7hJ%@U8Kp'DY:qpXyzOCH?n5P*Ò=GYC%שε$+`U(v }{`;$0PNvuX(O_j%Qi"S&x ~KEaE`TyMT:]7d1D_l`dQaQWɝ ! N hAt \pydL+ e UxWUa;ڥAWYlq \$; D T^BdD 0pĸ` `jMcjU+.5}C`$L(Wmea\(񁂯}FD䘀Q1`u0 3:4w$+ĸ^ɥXU+DL&PXhK1<*+âsc˛[5^@ƪ1P߆*{WZWaE5_,fN~)|;7+aSwk >fsAԯdt޼lWE;urz]^gW>B"?YWeȨ|#˷}5Hf&zfzl Guc\"^iq+.+WuXolWk{n͎ E/B~ѫW9W#dWaE)9cOawz_Ji:)f<_Z;ybV~&QDL^ͩ]kcTw>1cۇ(DiN\ ;Y]v#_t—SY`Rr MGy/(AP(u0ȶl [/vrK/SeQGdSG'T4.Hftl5F2TvXk̯|J;Qإ{^-+Zߋ6ri`ߋ5tj5|u Di/0,.AE\ iǴ"n=U*W$/ YQmd ^gyM[Gk؎K8CpQN'+͗V<τ`̫E~ ~b*?V^k0.#|TG4׏׫'^/}zs7 ~欞WEy~wu)!Y+XF.h'# '&e4J6<Я:nlja7+)%AfgaZcf I_>läo{ 223>#S&憒E,? >?_Z^%tֵ} *'zw+ 4,-_uOĵY4CR/MDZ>M3ȼ`-bOJXZ]k/w0qXp9DD;(ׇ46 !w?ÊԵ>ʅ[!fu뱜@bdRK`ݺ}%vi- mj\;ٌ?+IX"} 0?'Uo"݂r|trt [hƀӪA s:zMicvsf/{䡭6jzm:z †7:\t\hҥ}}jq*S˻yFc#WŗP%\N>俋bt @n+  /Qϖϳ=吏ZZ[UAGg!r w16S'#>Rq.TVɢ+= \^/nU ޑgqv > ǻ/.|iENt]|#G Iuj)zWDq|濗w!z4&-D@c*A}|b_W1r|"ԡeܐdۗ ʿ>:c\'zꞠ/yoR^NZoH?f]=-z*[ҵEVU|!c< \/Ĝ2]u75܌i٤W6AiY\Iw} |Tīe/~6mW/]*?uw[DwRO)Tu8X Ƙ'ج;׶կZ׋ .H GRc~ɗEJQDc&5ժAJw+:?rZW}WYc1^_l_ ?wZ/]P{> 9̔_u^/}uczaYsw'kԡagY=nga`,~&k荛 ZJ&_)29T-eâ(zw%Jrzj\O딤-z wPӋwRDn_ڥDO.;|v^""wT󾥯VU~%bbDWu՘K՗LbzXKsk~כUWV #ߡ3@xzu tվn+to;.I XW*U}"]բ?hN]!nW^D\TaoO]Je71k,hgA/< MُLf֩ :ivk-O]2UӍ^p b'Tf1OG+gEkN)\lq)az_XWx|rTzV>]}xqe5jv;|xcRze^*f0~O@pڽؔnc/kkVWZ-}-]W~^ocXxֻ[Ԋ [lG$ЩQG7@۱l-H4c#HŠDJS۸|wnZR$3QY3GKt1iVըBm`!.QhؗA }B8t:wgΘpjUNToK~`v\dxjiIV %[KJk -z?IҭSV՟UKb`[3y{Miڷ{)TȤOUHUVkVlt▭rUX؏n_hڳ[}['}7׺Gq34{OFt3Hn7xw1ۿj;/݌Jzj]X߫`uvr-s;ʽZ8 B`Wþ0es;2ٍluN FҺ\!էenlQma>) y{ttT>qFC8~<ŏ !WS))CJ*ֱ_ʬM~ʬsjjaj>a鍠i96Emv2feE2cw`i"|p}lch.˹_~qU}WիW* RA>~]t;b)ˏq&q&|̒{Z߅{qooJ2ԃ )WVR q)/A/*1)I]{#ջja~!1Pi}bD5r9'ꄱ5Z"ݫ_WDRҮ0;;]w"_$KJ0]yvw(!w}I8@1u_֒mjֻY}OXDIVoWr'I 7H)?>?⽛(/AY'vճŶK'֌4:yiNl`px. 鰻Þ\WY7fwQ0_rB}._#5 Eocy6c&ykTA1#&6617>4B*| qthVV߼~RF\K6&[,|2YAA]*m!At+oEFiX+oZH 3*d^Qs.v*o/x$̕ _9[{x9v-;~l⨭TR]{.׹_y}.xݙwzXF!)6纱KVZ:n]plibfaac 1.28<) (7 C0P$#0.2sy5J-Wܖr>߃>bٛe;߳~>=);$g:?GZ_{C3G ߲tM!mԐBK|\m&=Tu*S- |),U)49R:`3W}ඟ`mw?UC~0IF8m1W$,4@,;¡ TS\䬼RD˩Yr:izkjؽzο>.pFX\?  0尔)N!)rG Lk݋%--{u8:~U פC6>{{r9^ {)f|>e!=uqg;ؖ J9ԭbߞuf&HF l*pDJ2UE$Pd?{F~<'\Uz2buIoWʿ? y0I~Lu@'8WZ(z$~ݞac})[~sTpW G7p Ljrݻ^=cC4EN^Qu!EJSG-uD-iA=Ԯ߈鎠$$ XH`( Dn e]*U$Dƥn=ߙx6]>MŽI/Tt?yg^<[~8O~Ml@nfP ]{*o M[욠|EuF`: YwyyS s¥UK+UΑ:xkkW}GejӣqU?5rVu5k]:(~J0s_G=,<&/>/mlGt&W~XL-pQ,Mn=5P1?-\_)@Ȗ/"O2#NAl1_У핕abVfJ:^^X)}VX&( Ba@, ,4 a(P*!)*Ud޶ *]RU.*7|Qҩse _ඌwxm;}|s0ip.dfva{)ρ>ĝraA&aC^ GJ|aCJ ꘒ֔ gQގpB?A)ﷇ` ״(^Rú>$(#`X6 PP,% #0-rzd^uu'@u>_:^;U|sM8KzM0 Mskz#귕oj[7jH־( Tl__0 ^)X :`YacBWg so' BA\9sMp~YZ]U_+]՟@pAt_И2︚*zntVOϿսbk.ZDhA'?D 1+kZt_[|$4#7%_v?}߂R JU7_:{<\|ζ;=}_E'=ڸV-&_V:Z[^VӴkq^^-[ר]}_uxTRz1 JvN.ʲj[R*TWݬWkz^< ^?*ײ}mAFoWJt_=;{)Yz.~J׿VV!dx)Tz|Y,6ڏFoױJП!%Wv6 q.)d5b*l|Z$~>u뗵zzzἰ`mJdwpLQ/8rAkj1>~\ך?͝=V%XPw~՝լ-3 ՠK\A$"=M,m(nDֿE%'!VO.Hԧ w7tZ + lې0O4w;Gc53LK 'zC0kkB'|fcXLƷݟ~>C-/aDdo7̦l5>_^7AY?!˚׭vW^wڿk/*O}wBhkఅ i"~\y! >MVcT;n8nia%ӹ;o/G>cckq;~J*%V+b(ku#A|^:0.o P@g; 6yS[J +~mW }ZuD__fjg%*)B7 QHX2 o fj,>?FA bqdQ*/B.:!4<KX}7زͷHe]kn^O9uZeW-@}y{ mʷC޽^J$^#kr"d^4ɞMЛN$1gKN_nЖz ~v R [RVWe3AsՌ+Տפ\ջ^;^_c]-~$N]ܜ}+*!~W/Zq^+Wp^RMZ1W;;ik\DA Y Ai>jiFDgi*4E#䃝o:%݊Wj=^#䴙Ua}k?*]V\ [Q43 W^I fL_,wD^wWVU7Iʋ+Zv\J?~x_:+V[ W`Z-ֺx^W u^ezW%*|Q4(kըwoW=cژf/#~_]6]/Dt'՛fuOMJ NCOV I]%$v16kUԩ7}u_r^ 5~ND-|`& ԙ2 `ZQ_篍S  bq>]ڿ>CPݛb_2|_5 ܖ <ՎOׯ*bZkՖ^Gw9d*a\A\bMN_5V4-43F66%U.Uy\O6O?#J )#haK&@k_EzV}_vO=N8H|g%?+Cw6F}'^+\RD`N~F%4kBX|/0s/:;G~d7Q7`x!)GDiGK z~•Iim~.j\JVV5Ƒ>/K_&ѱ/2u $ikو 7% w}LU^ԿUȽˡ}a׫$՚Anp\%9DWE֕g]z{iΫڱ$]zUׂ,oSGj{kYjX^KXb3z" 7TA1\/+WdWWXT{j_;Ec[Z B4TWy|Z#w&׫Uի*W]~^%'wgYמ:ʒ èIR4'H)W_oxZ݆+\ ./-k=S6SVw^O׻/aՊ]Y6[{ORr\~VwgUW!^u/Kָ/[TcCF5 ^W_]}ZW[Q#X?^7RsܣO?ֻy`ufH8^%uZ'^b7O+F`vK8`=^kyjm$@.hujY[k'}U`^R&t27?e'$,rK<**Z.U߫IrYW.>ܢ}֤n** ףA~~T9O )0sWX/"%Z!`Xܷsi׮__j2y|uLk[Oajz/I={55Է1}:c]4'W?ZW k&j]vNflv߂"j˱{` 鎜<| e)oC[T^yT$'%uz+/Ѻz_@I&q~[P jg'^z:n_V?7 kٳ:~嚄ŗ:W}̙?ѲEIiﺳfVۭzʦJwTWޫU\bY߫YzV`jݓ6FEӪoa82_V IMۓkk_s#9;B*wUm;NO}Z.~7UZeژt.TK.\hUo!qWU10A}\DZW?\־6KV%_sפw z{^ArŪXcj_K08U/v]7]~_Mӹ~ &*uK( 2 RׯտV.1X&W|GRk-zV;T_'7vvCZzת[]w~K[f굍\Wwjzz/_D-I{,]knU՗ZLy{V_L&NqW'U]߬U*Ҍ4;z_1>?7U2g=ϟW~W/1rZZ?T\[ҿ׷$ƈ[&{)G y/Un3z+x'!N E!3 jl [&Q"71l>TGFJLe~DYv߄2^Oo]WF~D!i)-Tt;;dt =_'Ɓor篔ĹvWWg6"% U汯{ұd{}zr\}jQK%ENtHO}@Q5$_!n/. =]߫_Knu"X$6\W?Z7D>U՞7~i1!*dgC/~߂IҊK~'6XD4_1-wV|*=y_+  IB z,ݔzi_uY??ЎEOtUjfV?-Rտ)/kUL/nZȈCr~rcy~k{բ9迉X( wj_hֿ_ի;0;K]ߢ}%zxR$T(6 b`,$A0P,5 !Mc3qE]KUrB~sk"ߞKOk6~+¬R~%iMonYkt?q)_:j8V'Tqh,hW/x mQ:'T"f m}5@2\2NY\^k9kחV?'Mw "2`l+dd+gZ k5qa &Hr*u%beĘ3o\ '9h<SDȐ9}o5>Zb:?%8{a'KQ"X?\ۋwP_L5]"Ӻ|AWZKHJRԳgn#B-_QLnncOejɍU䋉hg^- NxoprKuE Ի1+ (Zcw"Ԑ B H% D! L" YO\sWYrT8.kj|*μ3fwGgys?Y2Z7@Gx6z>DM7B5[-,nW_5tu b.rw(I'b6͕e.;mWU^ (& PPJBPD$ Ds{u*Uu4WP|ԽOLݢ=Ě{_)/}3Y3B?ɛGc =nJV\zZ3ELhw:I w(_Rtug"_w?tЬ̀3[_eG)'݅)bCیlaV타AA 1~~^UbKO^?]OV%㗜Z+^J*OX}L)'=Ĕiٳ?Տ*OW&9oU/Wj`[We_׫#->[1*;9 _/2n]kBv ɂEvW~,òx=^r1(/ʫTJv/G/P2d8$}?o 'Lah9)"-th _WV>'$ejcb1 ]a#⃷oRc̥PWŒ6t,*%JZULka8 3>6|kOE\0} .FN}(tx?,3ei޽-w{_(pA/BP5/eTb;SZZܺTZ뵕br.Uj+xWH{)qcw_آ\\ctz.\xJ肛o @EbOBx(QPgA_1IHj-ʾX82Ӡ W}Z+{VVkaW52{{$7&7L\_r<:?m@14yƍkkmxoWx"!-B ^mP#~׋F2F6 g5y+A3Pp .|z^WzJ(+P̔!4|# 5O.yq*q/ösT SBC=?jPVef/c[i~ ~v9a4y8hМFaNTqnyzXc6 O䆚-J[Z"]*Oz}k p32,H^cA~oher.7)T6sXP⍥0MR{L=xOK}W[7'ͳ׿WԄ6])}!7N>;hy~_ɼk mffl.Zya4|~;[>U>eԯu8/XҭtTīz o{'zIX׺s֯6 oʭ[X$sZ6t갿GYWXYj'ןS/Dͼ}"KJ_oA*w}B7x~?V%\ת_Y=z]WW+ʺ,GWIֿZaj9e6iHs/I/b[_{K]Z~ե~;굩LcVMڹ?v+|]]׫zjɭ{ջZ[jo\\Z\{srj~Gz-ˌ_Y%W_|w7!/W5_fmꉔgU!o&Wz+sUx$Z6|V{WWڵwj~oj=ֿ=iH8iO h@%c%ɍF ?J`$۶%Z}z%z̐fw_ߜ}JKSkO=zOV=~yXY\wOעjמuy;16O׻ W-ZsQ?=y|_z2veo5lyYzࢷ]Xb})EOmIJZ޽WY?n%?w%W\cW]u*O@99UyyhuI]z&[ׯtI&VYYZXДz*eeܮ%ZKO es-m( Y뒋 w׫#'cKu~/z.蚯%!}LW~-N^~עk߬__~rZ|_4^~+/ŕ_YI~Z嵿!iOjA|3Xz?~Kz*ݪp^B~"v3AJz fGW+Εmz[׾+~knV>_~Zwb=0Vtm0#s;+t;{_K/t}Ud[WE^5F:miWpq\dK^YڼR.k['ީ>Di0% ?Y%W-_^wJ_j+U3W/?uu,U݌\]N&cjȾ=׻Xry2ޯ%S:p 9D,%N4Gd] *W -r:Zժ_׻X|lmqKv+ZFX4XQw_64p3^]|WV_wWTJ٣lN :C\V 8aZTw`@_\HJs\o\S`+,ݞDW8gNg׻뮕&_EՒzTl,8b.|y~( s/H`|'%)%]=h}!g5rG~"4=..vլw_TTa+ɘQNzWa A LhrBA^9뜟`"[KO|h> YiDm.]7jڿv-Fb ͚Bኼ 8 D 5sv7cPdEz~^zzﹸ. M$>:6Kh3cLVHC&l9}NcM^^E@ӴvC7Wz=eq%g>j>zM÷++G =?~ZrUZPWws|N)ּQT1%}OE+Ɠ6ֻ1԰ z;*5D_@^Jڳ/?!?=/纾wqGi.`׻]}}]Z"IbU׿VF~F/c;izY l5={24]$1.WڶOJ^UM͞&E}ewoCF[L mZz}akn?H[IZ Kd"~G ɏ1 6rAM:D Kzw kuW=H+er'.J]]@"Aj/76#x\~9Wr^XO\wk\Ojv巓ϻS+ӯ}D$Uj>~}P_^[_k)u^Y1/-~WUׯ~=W+ uՋ{*Kbk[X֯Xժ湭TnKʿ)=r_V]wIjO+znjzy=_oֿFFFNz>R/RbI[t^I~zܖWZW_Uy??~]kK-Vw^%¼nV+Qp.߫nfO74?{U~/<._|e2DIݫv-e$+gY'z3D_~bM#]/˒ &^Znn{ ɇVwݫ&X/N:cl'n_\M^Q=a:oaO/,?p( ~KEz?fJtFvq蟗hWwwo⫈kt}8u_2=䞭or(^?7 {5~ nxHl) r![)ػz;fZYw^(@{O۠~OkѲ^jBH.ߣ"O\Ow?Id݉vjKS?%w^'()XWEs&* @P, A0T(U  Hb&5JT ݲVEEu/GI6wKHW~ŧp_|Cj2tWw7{PHV9v?OJ Z9N?S(qeT ~1۝|}R]G'zn,i8j}i]YTD9L& ĀP,$3B`P$# s./4 Iix| ݶg_pU"6ֽ-Y\L0S~wSmUpv*꬇,1>aPI8X.#Ui0_DwMSFYep4 YS~ 3_'4&Dҟ2s>ObxP8$ BX PT(& !0\ֳW2&$*KkjOyx7GNm~ז@}WL8 6&-fЍO(Q1WDs7f 6I96قYS@-fQzA|%_e<.N: lDn`vT^| j&Sp0:J:2|CۖGU"(a Y `J BA3o\s/ ˒JH^e^ =Go_8PcBki̲ ɤSqEߍAY揝}u%ktzڔ-&20xD]r p6WYDVjq%>AkB+$y+ogV_8JV+}/am8 X &35BD0Pd1z{Mn^qXRC7O诉iv e$_$峥f{4爦𕷗Y __S}N=?}W8X+;yq)v8lD9lSZ@=@KD玩C+³>hҿIu֥iZQ7k{Bʥ KVVV J!@X S$s(5nRRJDtmM?}TWĻ8xD֟ۋKEo~,*ڡ#^Fg/"烐$ Tu-Tv+3釜]saǢW=Ɉ>"E{n/VNfO5wJ99beO(s bXh 0!P.^Nx)YsV^KU;p~Hk|k/Tk Ⴓ낱JS.K_tL┞?Fگ"qXzk:W˹ʞ͈mg{uN9pG{Ʉ?ey%T~aҏGN_.n QUgSF,TBAuL_P,Y=zy/륊nVYez{Ue/Ij)۵}H/\ߘW~SإZz/)ў_8}+ҷ]Z+ut^Uի]*/ -XKW +ջ浊OW=kGHICu˻_]Kj*ֿWr<* Է}Vw#ۮ"o wDcD'WH}{Cs_W^w%w%^ȶWh.[_2YFЄ!1A^_!rjg y{c='?=[1޽zu?]ɓ^>_׻1.V^B_|ފ3EzpslozXzk0=/_]f}KWw=ԗT`]_~Kb'ݐߩ^Fs2GAW;ey2ƿ*o9Wz?X/<]__rq3yi~j4f~iASFKg!=r{.T!Lk_{Eeֵ%|~~*IxI#~w;퉫hO`wJ'asqWbh_׫^:K={D[tMz]fHWw被((OHFwA1__㿫[_/:_Z/z/ W݂8r޽Xﵬv_)=^^X~n4Iw'+?V?0*^xFcJ>OR((߫D]zɽ| z>)_ׯUuį]~oȊBXr^K^ikrrZ_\[xj"m}3*K^Hz}zs~5~xh Q_{jQ]IWRyK{^ߩ7^WRC4ֶ]RW,{ާN`+oKa~Q%w3hLRr!#IyeYVzrZ/IdOGrS_BޞY2ɽ$Ex KVG.t _V+đ9VzI /կץR\任m]`a39%SVr1[սNXz%ZgG~^>> O>(Gjz]X&#rӿէc2:%hioói=S5iCT[T)=]~>dhO~U}m-1>z.Zն˾!׻&).>S5_/ ֻu3+_~FA}m_V%>Wq/ZdR"qv vcjձ޽k_X=rb{sjO庯U}|ʖ'ׯ-\ԶRIt1K_^WWS_j~%\躼VX6]WWZ\'. {y})z-_-2h-sWcV-vo$)f~_UTO}MrWMW2ZxLˇ#/v|jD~vN̥o:lvAv {r'Hk12OB(-3`S{ZKg ߫a~KrYak7Kή빯"E⮼'/M~ﲸԟ=Qhݢy{ZCON\)#dq s'8!-^۫KZb K5,[DzR~sa \U}jY}`Y~X^\FI\ܷ^zȷ(WZZxE\ob+l|nd7貖KXa ]MRWY4ehފ[X;UL-syrG5dU5700ժG?l׿U*z# %ߓwLU-sg{[+h58^}#UµzZ`Wwws]Z("5~N|9gAwK&ﵛh=Y'q B; _ovݎn־5^_P;U*Rt)j9U7EZQVFfa:LWE6_cWBGwrZ'En.w*z/ڱq]W]jzo/?WR߮_jukW{;_gu0,GB` ܖ~EW։[RZO,<8?ڱW[Mj_KXժy-/ϛ;ֹUM\ߢz!٩t]wڷ`41%'ܷ7jGhOU/ o–z#I}w+~]w~%S4#Q]hO"qɺM0EsW+[\ % Bb+]zɏ9{&{{wWrx"r|~.ܗKevWm4U$5tֱBV2Ͻ4U .{T+;WQҡ~bY^b!C{zovD'jkuҞ.0C2M2[V5|da~~ 3^ZcJ.^y>K+n{i6Ga-ՐɺNkY;VKF~][k/DnQm$~Q2v?ZlZWߗӽ#z-~|JDyu]}!=V\W|'^~ڿͷWkz#~Iu,l+ aXh A(*mk[kUJM¬Z_LM|K}tFR|G{8?.tf4ۂUkP+{;oz4:3Bgyxw3ӺvTż*d 'm#}֧KRzz24g % ä*.Pv T屹'Bg", a p b!(% B@Jǽkv"o7oQ7__xDGwz)W QF|7wҦ96|P{jDx2W:TsNΘ#=Ϳ@dQaA٬9_t9;z_Up.] j* ( ;yaƬZ IUnwAmJ8${hm~cTl#@,$ `T(& PL.fMzq%5U WF.K|ˢs]]Gr-g`j0Z{|j*kM~ԧ>'CiKNoң|h7wF8JNLը2P[EujfQYy} __,czߊFjjbR2bMA-B.–m5Yj, AP$ @/]{z*E]TxIϠZ/!l5l~Y/ ˀ~Ɠu) yׇ{١Q8^z\õ?cIKs! L/ZOrv|{@-$H_ M+.߯uNnkZ/6mm=XOVXvN,i JIfLɨ(l @L aH.!ιwRRTɔFϯjtQ |+xuՐv2ܥQOmmR״@`- m cuqw`oӪzN|0+ %,fOQj .ͬʠ9+icfBKmdE*c" ,ψS:5E&: qn(*C@,BP\$ ¾ҕꦷ!*RNoߍZ_9.a~_F_= =)_ e[q/ky®%8 S}A# & Q7NoH&7 Zy^NK$* `X( D0P,BA[L[)/$Ib]ߐot_ܾ}}=:^5Α"]|y6MR D僣-腳YOB)G~5 ڃA>WϜkP N`>ΐˋ}CN}aAXT@W.|hfVƕ{*d e$o=o A }oW{'"տVՇ\V?K֮:Ѱk_[X}z#9We j-W__\{w%j^.~DU_vwڤZ&.rڽrhv;H+oՒڵY/Ѕkվz^z{3Kܾ.Ld^V^Os|sMfppwB]$iz^J֯*C߫Q>nUwZZzMzfve77߇:4A& eQ'uKkK߯t'I6+w=[Kea#ߒ׿{u gЎz'׻Ew+ѹx$*&Urz']꼢Iz,T_j_Ev*R/~w|yoTvRn\/VwW^NuhW7rZ}ReZf>1s}WQ<7BMmM9b" `zpKj`Ywv =iWڽW"? Ch?]YMzw&%eAzԘ؟hVPWպ'</.e_ Surz&U}HA*rЖZջ\}_uu\uuzvܞ=EcA$]-^ Rɯ|Iy1 dCfЮ$:[\@ĝ.n_ZDՀ)XV+W>_j =z/}MO~^O4;y>)Y\L'|bjK뺿֥_x'(brk'G)5[%k5]yrѯk`};'٥LzuK篌$V<=b ڴt_Ca'͆D./֫ԅ7^a+ڧ8FGᨌ+ukX @l_UKpjHGֿZjkY~b!͵.4yטF,> +3zVvcXdfW+`Y]U4JL[wY< Od\dLC.>1@؛Շի/{w^ ە|s1=޻w)4//Cɗ5q>I:[pwVx$1FSo{x(*:Ty75(݆^"=nJz'8!(_~4Oww]4/tVD_Ld]/a|4U`(]|}"zԸGwv̢*Ez<HZ_BYW^ծ\vA Jsބ?K_!jz֫׬wbeUWW\y=k/DW'"xH.4=h}?`+}e%֨Yc|#ꉻꓗȿ^keEsz^vIk1/-]a('Uz_sU+uuEk篠Cn\/J'WVܞ/uK{}jlw/V~߫wV`uU}W-ܵޯ1ҲG仿K H#]++ X{y|U:V+΢[XF`}o|֫ʮ"O.{'%~x-Wc]NB4=jF~nzC開䵂_FN,w-?%X{&_kg4DRP(Z(ľwKYWM[p+CT='g URE#o~J?X$G~rb6n]2.|v% !@)}` 6cܘW_8vSЮk/j͈9yݗ$3ث ONϰDPn={Kw^H[wWOU;^XN4cDO~jO.oAkٱ8ɞqߖ4WʹUGlՊl3SZٴfw} {9 k#>X|P~}]ɬA5Soe!iDsҮ%|py<ހN~vjK]W'/~أ"I}=*q־WR3RעԖ/k/"(V P( $xC$]LV[5_~#Vm81SWi\d-#)yKoɂ~qAw? U; v{gi+=&#_ wTխ{i,DȺ4ߙv0j01X RAm>hJκcD#p"J BaA1,$1 @H"~_=fU]JLҦRHt_Kx ߛRKH]eZj-5G? ;;9Omչj^^EmD+a5^!][=&csKΠvÓklz!0bBXAKap G^*Ԏ- x%/^3=>Hrr[v34i kzvǎkE7!tުntEi I;Ω!}q8FHo%]wv~mYA PЦ:oAuy#)UOqRalHpawgѥI[py*qYw`ZdzإR΋nL˾}u7f|eIbܦL `)lY+'!亹dK)w4J%3ûL6G|th/+}4X\$L4fٴq0^.4ѻVmH16T@1_.d+ ZvMF7t#a&%;)$\$(e  " YW+9S3UttFDl8}}p\rPM [2$N( T ޅn?~Wwԍ^Ha/oPBD$v(d3YՔSK0΀5cZjfzyxl$Ca^miAE 'E)(#Gȅ1dKdpp*A }ס, Ҽ^5W_+]/Mk}]ڵz+kU.:_K/!F윘KVjO^YtOW꺻_Kj_^zuqW/I}WOڢ9f;_hkcW-TMk|55+ nj#{ jzr7:D޽rQ#rUuDyy\?5RDz.Χei]2YXy]=Ցկh5r^LW'IS]U׫߂N:tMl'WްMt)XPZzZZ=e__,| N.ᓕEU P_g?^)*֮U .Mg?_heoS8c> h.-?އmww/ߟ_ _*_#_%3~^c-\+ՊvU"cڗωBjbkޯ׿W\y A wu[?I]_Z\W?Suz՟~'Uݫ׬W|C=GQ3W]~}-Z^WU>_DU_FM䰉O U[~ע9gz&^WVWU2TM~wwˆ~zUݎ~W~ QDx՟K~O}pVi=rG~bV\r߽z{-ҫ֪N?A}ܾ)}bVz/rGj]~l85Y}bkW8;LPb*e lV$y=j4NG,/tlޜB_&/}Hɳ6OoY=ҧc;& `OI+|DqO&Y2/'B_*U{1 h6j}Z;VՄ]zZ[9 LtzoD5Z/E(%h*3իU-e~[v'#JJܷg{YRt3zZOz\߫nͽ\]'OGwVUu`E]z3"A r/%V;W;j˦K܂^eoo\镗Z)nVWҭXjb5=|dKՒZ]:_ 䧯]I~]$Bvҽb^"ֿWZ+:m<}r?7Kr˹}]'~~Msz}߯~b6nDW2'//Rʹ=ea-!{^!K keo^o.֪W=/UZ+v~蒞eoG¼0_"mzZXC]/B>zQuwWXw^ʽ+ey Ɓ|E פԞ~߫^w멽e?Mt`v'KsYF;/KWw7's/HGz{><݁}ޣHj%אׂ)DVMR9)zި{W]_vqJ⿫ن\GcSw|)+WP${A HL_~<)4wWu~^IwwK~(f;vXXwkW\yսj޵~ڽz[m~WuE^/y=ev׆U/K]ʩGk]U۬Pzw$jW׮ (jJ,hUW闱ݏֺzW Z^e!8I}{b^_~"jK宋=\Nf߮Vb)-ry߭Kv?9Ȝ`_n\ }yrmwm=1o!IVZ#_(@&uqK\rzWG/'Ov1Uo*ɋKuG]߯W\W~[ķu-\ یח Zy)K_B\VwuR /h /^ז?V8FN3^b|4_ \h ]?ư1姧wW%WR׬]Cgt'B%4_RO/\&'qծT(2 X ]K*McYyjWYSCSn[oυzUE_ gOfOjaVI";ܮgݺhܺH򏦣kD,OR[掺f {b/aRٗJ+j.+MyEGWYWD, }} }܌'{?7qL/Z\ppphK%o,!f :x?D<'KԲ`EYTYp7f6G~}8r~Icunୄ됁\f,k*jp$jgLZR,ɎsuWhacKhv*s * Krem+  ™ԐJUpA^=V&g| =.xu{MMَ1:3S8,M,)eUTwl|{g;%ۜ2r#Вb۞_kvINU!fxMF0v\LNϢ>qW>bTR4"SkOֳB& !10?u4ln!96؎IWp*#v^}@mcB (Ԉj P`,$ PD* Fb*n~2ْ$=9-/wqS__&~DRÄx?kgQ[uȣ5H4M R0ʓQhNm0ft'Zű[0{#+gTnrN #&$ A0H,$ !(B" BAPDz{z+&7R].R~ܞ[EoH'fڬzֆ0:w:0d5.X1KusǠqZwn. 7P\ȧ{*a|wT%Nňu*ha/ȼsu%V5u u J?ϺD!-$gGq4:T\]KitMCޓMl[5ippA  }mڵ~W'w^R/EГjKw^[io˅kPן'HK~*Z >1cbh9V/{\oiOķY?Ge׵r_F,]yMdHKտVV}j7׫Ozz^߬]_Ԣ?j= PWKUaKurzՓg) A *uKJ<딷%kڵz-wb|5zԞW[kr{V,sܖiF+Uy;h#߯P߫cW]DRzn?uZKI}z".Nzwi{z{{~ˢ.׬rkYzZڴEz]KZUbR%9!Wk}j/䞼֤`bM'&hFOZz_X߬Qw^W_5YdYe_՗̿zqTR /jzGg__ڴm߯_K/-v_F]_whX/Krz/_"dcA1/M%jf~d*ƞZK^W^avRz%w7MCW7!k^de^]]]uh~>'W5EnU{qӫwk_A J,~{;פ^蒯X%{urڳkbY'vʛ~JXD{פפrZ2ߵת䞭z{URԗ%]Тߴsb֬R\Vzjބ-ENW~`ws[_~_v rtV)X}T_1i|׭w٤oqR_wz&Rz.RZ-~?ړ(޵Tqv. W ?|^oWWM~{*Eѻ#W:>Rz#MUg%nzk[jGK,^߫W9%֊RK^\_WwrX#W7>[E !8{zkWK|"7V_K^eW5D]ݗjZ;_ߵUծA j}ס9~_2xk-Xg*~ynoT\UWzcr|LWTR}+j|OwD׬.-z o֪Y߫׭D5RH֫֫%r_w~']+E^~wIYN;YvZZ!J/ݶ_4j;Yjrʪw^h ^JJx_ʽZb:w~~{{{n{{&4u:~zRe~MWk\޲UuZZ$~ }-k%n/͔3_B.ʇ"->om^kbޙ Y} ./׫FzZXB}UUDy,~%*8v 9su}^Ha׹u׫\.V=N6Zo4D?}ZVI5Rϝd*L&H2$N":Gxo>iXxd(F'OӪ^0>?7:UT*AF'fyf>_ئ$ASx^Ul`ø5qNE)[S/lNygW\#-H)_7'H!Ku,D BဨPL( BT"2 0sߏ׺euZ笌/%eTwCSOKulE RAuz;m=?t&[Hc6j8)iZ]m8Ï8!i`O[PT|,"eDtQ9)teBk4((" (PH*aL*9eUEZTr7O^';ʎOOFh9qs]Sc.c(T)'W|z-4bM/i^8/;0 iF˯&( BP*  @P$$ aP&1*~u"꫍亩Jn.>F~5q&qhO\ks6_o(xఋT*hs|k)BAuhMw\USb?K=^VՅ:Z&Պ_WDz꿊WV/(_ZՇ =\߹[[`#j$^޽]]ܻ4؍Qj"ץe^=N+?WzN Nj߫IܞMj5/K @zYW.\pWפ$KOUb:ԩ{Uj7wWUugkwY9okz_=}_KjRHE:XSEߢT3OkjS޵^zRz෍C5mW O5K?hEX#mm}bѠ׿!4L'W[%BmV\עz֭ZVM;R,ՏYvܷ^WVZ$QV+О.5H_zע4V>~7[eHAtO/О^kbo_wƫv^E}]⿚>iwUX[k]'/%z&_٨t+SKu\Bznp^*Rt?Тgի߯W|SzwկV}-}++wk;UzKkݮ׻Jne{ɫ\ծ^潮ֿV.zo^׫ՑމrʽֻZ=_^rWOVZ#/{EnO ٪zs/FE/q[NRz+.տEJ*Ќ+~~=-rXL7=#W5]zDinq7^KK5֦HXzOVi-I篇Aߓ'GլWsK+Obe]$Y>妇/^}TEq[V+S/|ZZk{վ'{ۯ^勵Z5I upn#kcbVkU&k~%KuR|_wkjrj]k^7~WJݫiR-`KZWy<ԟޯ-浔~]"uĦ_sy.BZfcu*wu |rNF]yIwKu2z2S\{QzM_>A'ލE6vw$vW^ ._)frKܷ-bꤿ&\ވ}pMC+w~-k';E{*T$עt#R9ڞzoD^a_LHߩ_/~^*JRni=Aw}yPoU_}-oWW^woZ'IUy>ZZK^i}G?`U+READ:7jjGAJ?MWie$}X}WipZUb{ֿ]VzOuRwŮ]ȩ. W*n[Z=iG?ɺH?^{[WP[XX^OU$Z-},ͬ1\\5 ]:W~WH~~\WkzNlWs]\DvtFW?W"_|WܗEin8t ~ЇEy}rb^|˲Gz6/zMw茋q]z^RzOrQwxε*D]_'?踢p~~A mw%~Dv_:~}U|2ʬv^o׻rZNU֯_>^^9ww=Pfwx)Ww%urԊD)^bczD`et_Jzz[WKS4OoX/S'ww֥Ջ׫vՊ&skNI2bu~d[j]k pzoWww5uRO&_|boDrw]n.U>k>U=lܔ_q\޲Y9 Wz˺תuOWWDxBe#+~3YU<ռO~~aՉ+֥y.[%WY)yW=(oќ]~^#b&צV;nܳޅ7wpkH&_˿FhOɢzԞE~^ezc AJrrx^|%UjN\OX^y=ZK/Ve篒=rz/;rrׯ d,WK_'һܩޭ~b7%֋/U]~\߯W/wڷz'~/W*z`v+_]ެWU_֯oԵ_zz˦IUY\|A깩YMOZ zrWVסՑ7kߢEWw/E~7^E-'zڱ'm{m\VsU$$~5_rzOE3תLlB2*_зt^\ލR'_la%7BNoե=Nz_Kk+}uM篫ir;gb=AjwKNdЏE/jڷ}})_ʋ)Ḫeq]ǒ[r^Y%˪ Z\^5^_\կ׿^V WSE\ܖg w&oozҁ{Y~M^/-/WzV+ oYI:䯺[ֿXV^^YgU߭U"WuU&oDjw\Ey.3ߎO&Ғe,>j^_գzע=ej֢.Du~|ԑ-*Q/7E5pIu\e5Z;wW?3p[b%^j3* uIt`j_1ݢzEע5z?KWڼ(( A`X$ a ("BdQ ²~|핪*UI2*T;'>݋äKBpK۬ J֟7!IQ j?+ah ͒2ֲюz/+7P'wz݁wW7&v~#uؚBnڡ`gAV)ŠiP8 'S4j$* @Pl4 PX*aQ T"v7U*8*^U8C8;n[ybZ3a2`$T_9듚R܄M| YU)Y=|yFYe/ZЗobɎn\dUڬ` %xX" a\( D`*q;Ty//|BU;}ma'9wuOoeN:令i)pY_/LNܙ\4>:%INo q潜iˌ[ {c]49g7i2&6+GYy;vLW~E(* @,8 BTN 1(*'nn~Nr_i&ҢV]CwaΜTUs`q9|z@x5*p*笜!}X=)EK^ A@{+i]\\.7pB"9T(*+ @X2 BP&! PfJ|޷Lxׇ|hvuxf9"?Q&_@^1wve@Am߭f?E~wᯅ++ؔ68ͫ8Oe6B^)C!(^b k8(D a(PJ CAP$ HaD*C7w3s5zG|Ѵ?t&|6O<޾X~o[+/{\Yi:TNvI@M>`!{-&o\7kDIr\-V@I:ԃ_z?5iPho&Xb}_qץ>v~urzM2MWT^?Ju˵z^^X\/8 Uup4_#mXoi-zn.Kж;E_hw-~< -!+'דs.0D;SW~zAW~W!WzOEjF9dA/]ֿZMRzjj굩}k딞/6CWӷZok__K_W'VVֱ֫N^V^/kj_CCX]zZ]OUD՗']OM b.z.'K5wW-{jՕޮ~~X?VIzw%׫z޵߮jz]^B=e.]nVuUjߢa-5zkinc./׼-͋딞Gn?I+^*ѫZ2׿YW>Wz#]ˉވ˹.9+OR_uUܗ+c1=֤^*ZA}؏ rN'Տ/ZkW螖OD7Ve\߮_5k`z"/{ۢ;ץ_WXrZ{"kќ-y+]z_Wפ!ս'_h|Wr\^pǸW+U|uz/.H/zK^ՂԗZ,Jz"n'"]}\O=G]q{HZVwY+sܛRKZ#k+VVT_פg:3Ww~]}UݢZzO}TYfkG?uz_ڷ!^MV])._FQkh K^-^ջKbG*EZ7vpAv_'G7u}/{]wڳ׻Z/׿^Z=5de_75~Uܙ+QU]z~uw^_~Z~@zQKKs˝zk^vKwW/=~{ۖb_嫖֫ehj#XJjRb]S-WjޭW!'BmY z4xz~.o垜7_~^/W'Tg/kW}w7$/%r \|VZtZ}S}SHڹ^z~z%m+Z~wW]z#(4]> hw *$ѝoE/{\ס -A:W*պ*u~'_r^sGWR@"( P,D CAPH.@D*!K㏟R˹yy񦒡s㿟';y/OI[/>%/W]<W󫬠C㜵8:7eί{9>; \zsqqdԜpẼ@:t"d `X* DAP$ BaPTBqܬ{s+'f}{9r8#Ίo%Cr74 hkz;<j:k^UQK\brBxл҂XlO "wLT ~7j˃ oսs-pbj_!|-|/U=qVRDׂ? I wmp((% b*" . ϝ>>>Ty+\*GA˺9=YyqsIvZvmGk>w_.ĽG 8%|쑎|\(1En_Qd>ǺPbݨi/׵rL/qWKʼn].fU8;{C(sDpPrF(ADd$!9L$*" A0P,% BPTH D1P*k?/;޹g5uz2m; OE΋ݫf˾ ^=p J ?/Ut20Ε$儐8r= , @, BPT(& DApLBgί\ĺhDţCuZ.zO7I LBU__ F}3? Q {*[/[dO!lt kkM߯'/b^9rk#U~)n3_{W/UÕz_r{ZOv^/z%׭~B*%v/I'_")3[z/*W1ο$ojXO߄LL˞1ljjXX>bߖ^kkko]׵\L|frK=~RͿl,׸bG;p_Mf֟bHbRn`E } ʵV+Q,Q~h,/5X vzgշ%u_ltΡH"E"jy߿'!" Z VٟB_hv i6ꪪ5$nj!%T{Bv5/((;/4^)S[.t׶ gmؔ4ٔpApNKbR-X>%/ի׿^{ץDR%-{-}̜u7\N5)么 q^s/׿^{"6و G%Rߎ_~ [:d%09 ѻZ]΁"a93Qˡ.2Lk8JgOi57wQ3// J_'":^t}M~ `D/rW9dC dXVNrz!EoԮzL\EEo/Ly}]v$sA uYDJЯ \wdgY~DW,?/Ӻ͛ x~L_BV_ )a__lQד5W f/ΊQP7cwڤk .茲ڊ4l?!c`A+'uV,d|^gf-j;'0\6sbXN_758l'Mr-wuv_S5?͏'邒9ks-'Ӿm/ G1s TTz#; [LK/hޝBFQ `h1GnOkAֺߠ赊VjoCG^W$5#r}}!{`gƲcD'.B7I&O7/#&!vO5CIֻd^Il8m+BFWZ!@^_ݪOEwMW/PL–Dف(UG{_L/mAJ}3qRڷɈM4*]ׯeU9c>S9W;W;_*_Vbk}}oK1,%Xͤ[?W^MRU}/NaMq&Jw6 >n>#O\ZZ`{%'=UK;ꥫkRݡYV?d>W\Gb^et߮^r{uw_9ѠG;彄kjDj·?.go5uU]y4*BxYd-qh {r3iסuw{"$޵^5҉)B6.qdž3gvj|#Z9/.S5B٪A]h~~\t}_X8`\s5P~O5U=w$)eČTgtXCd/OO|8\{5e״,奮Q k.FbDlz7=uvd7C˼Tf^?_3ϯqaHo nuF *;$tKު j?`lT^\(>|Lp&o}T8`gӰ07#/k+|&a}!<:ZhwYk19`y0´&LOm-tC*A20EZƪKp|WT_FPen$*:[ g 8'՗'>^_DwB'嵙=)Q_)Y~<7$w ?,DIZI#*pV{^Ċo[c` vQsz+\)g$w^Vrg"\W_Ld/rM(D \6rC9? /, d)jzGތ'6\9uw[ױ"~_O]%n92t^Bh?YU{s׆ѓ1yxn9UV8c[׬Zbj٨Կޠ 2o!ϟ-uƏe/~_TҤ&ξB!|VKb{29/|GTPvQ2zʲ^iۀvAj}ZkKҹn׿^ջユ{Γ]ڷkЊ/wԪDK_㉷}7fYǢ1$ОZO^^^e^_v}b/2#gTd+O_Uj{Ъj#Vu bx7'U~Ve'vY-Z=c=u넺ZWz/UwՌBou}׻YWW^_ܶ~!&oSa>boR'DILmf& ەȽJX w-ݫ,٨iy>g 3a:S n6kw)b+ 6SPTh0䩘}^z_Uj/ E={YRr{9~&hL23Y3Z ?}Jr d| ZVW='*j ,Bqy]WȢ%lrem]rod,>At)y%OC`/OTOX o'1 N$-߸mqz@yn^_ִZRkXuc22 ,w8ȈՀN L Ak4u&Q58 Õ՗a]d!7=u!2jquՃ#ګ eԌSpE11Ά/wu*C0$?l'ct%+E x:cޮ:$yqa#L˷tAp  Gb'ó15*_Y?2dW_%]'\U}LT-,ɋ$m-E]^U^7;!|(6(/AU t=bǮ203=,"jaTa TD Bb|{o5ǭaJ7p]p5#~^J*uw|{?qlz{_1p#ɪ0SU(~?:Ԛ d#Ivwgq}<0XRbξ:$x{ZY#8YxiB8DTɊ6Pp( BA1h,% @P& Bb-]un\2SU$ M#j}ܩt.9wV︭V;#ye[ƌ7Gn wfwknNby6Z ڟ)k4+mP<:vWNIη> ow4ҵBiOB-l]*'Ð&*( aa(X(& APL*7SVJdyTQ#|uDut'|On9o„y< ؽ-O&K5 {'~n 4fl!ښxÇ-3ط,lc ]p(L~-ђZǔU. xҿ6 9𖀡9֒&U ;`$*$ `X4$ BPTh N*Ou[]Qư*T'[U>-oo)k?? sk_nF!B>^*h͹0F7,S8%Xz)tU[';yHܶFmSKu-S-<4&_ų;_&6[O V,;i&>* ,Z pL* LA=jOӪM[5^VtHiukmQ?WO~Y]o Gf$ޝ -2vŸ=FbQe0=cq(RR8c #X5~:i۹F_THGWdJuG${2ܲdwڗ1ug;"#y҉8GHxLb@XP B`(5 ¡ 'u%-+.@NO-󯔟F2կ~[t&d 曆$Ԥ{PШ+M[2# 3IAk—~zc:ojthT_ =}Vő>YN90(kh6K*eXyBOҼ/Y^LMG$,`XppP,% p( BaS'dk~L&5[ D^Χ{俻y~OTOVfe4?W!Xp13{ci#?OsC{`\+7)Zw""a < C=kfv|.r1xzO ݦWAC\/k BAfqKF,9d'D)()Zr~[ Auh[UFtKҮﻩceR"z^::֯ׯձܷukO''u OĭvmV'^^_^uƉ's/$)|RT O|W}zKF>vQϫB[RVnN[z^]!N;Cſ |6bdq%ek_}W+ՏRB K^ ~ j5]ZWudrV/h`Br@$֘*y2V_CSv+rOW "{&:Q+4PIYhm<l.:y.O\V{s0PטDb*g|7~x7?|Alڏ+'zR;KԐ!s-IA ?9$Z~Mq gm7߱x,u;m d|1W ^ O3OZ #"۷x[ȈkʽQ1&< ROzR}WܘJ 8Vr!BWV?(Z я.F(<+堑BŊ9ቘ<:tBF:%+L' "Cٜ AR]NRF#lmjy[۴AMDϙzH>NpFR³N/LjKmOh{Ss'y2_u ?}]Ql]65G |a6 V[^:y ` wŐX;QEBFU\P@xl/F MR0*zEIZ]7x}JՊ(ʔ|tJ[?v=-\h_Gd4 O}Qx!v-Ŀ 57u'-FZgJIq TD2WZJ Dd_/X ?_HYef!Iln _-썟Vq.oWVrJnߵ{#ܞ|$:Խk|-F:{e9:_|5~qUll,x Ю!6%vPZ[Js/{ {h½y+Ƕ"Q^Ͱ5eY.7T|3a 6b L [T^^i¾\p`jĝM <8!%a~p_y3w%H"p<FZ2('2W>@Ȱk3^4s<7R{ KO= U)!֕|.-!%HO `XJ$m'K~^"т>B쇯Ew.m?>lgUU}%OO7)e%s C_|%r_L9?@g|Hr0'ܞhH%jY"'o@rAii9؜:oHzWq*o]udFW ^&JÕx:/>nrƗ*u{Ȫ"욖0AFMu24K1*[H 4eO"S.i1 o_([Qc4f7/mVC{,ُ@U1B7WV76MXzC[E6;'nV Mi-wB:Cg+"%ߥ2]}Q]cc x@sUv_# wIu:+WkR.tNBk.6d ?ѱ, 갰3ސfB>sdsm+6sC|ى>|<ר΂y#yiFF, OieB <#F{ё.LmI i" qM*Rj_wd,oO_~6߷Kg̎^9{k u9 {F%a|1{jXLiAe֚ 3U:2u8o,_Aob~߂bv auu4t(l_|rm:˗Ļ=!W1W,ǿ wCޗxh=8A4)}Y/t5zO[S4 eWKEI%.sf20Mq^:Z}o-tRf̾!Vd%t06C◷/7^/Wv~'ezuɓ[kT/(G:Vk (Ao|Dk>BfOsDKmh /('"3hAfQC|2H(1y 7@&lW5z=]w]j# jrdi *{9i0bݘHJُƌ8 9p>G)o돷) #3gY{Z#e ߖ^3+\FY)OAC?>{ @l#E6n{'k*^K?.@(:bbr -zaXq>e _W;'Uc}vz܋?_wiR0(!29!]޿(@דۭڐ@CÇ2WLOŤ2M SsCZ3S;դnCa>F=Ӽ%A ~]zz(_Ad> 5*5CK!.VLDVqSCl7os Byʱ~{/ px֓nlT~hWBy;ТafaF_l#0 = h&:zi7ѺL9w\Auʽ ^_p I)JO|2ii~̪#.h.Pa E5f95v([gIrG9B^nݻ]fDI_H%ƫxHs y7͊;w}rt𠊙79=i1_3QF!ݧgu~)T]g^2p]Orп3KVILv-hбis3 ~OZ+[չcd߬U%ݕߋ}X*`bcg;&MO*pPEozRRcRCගHݯ1`'Kẉ,?r;H eW!)} γuȪKgWɿC$/)R{kL̂:o:nAׅt`Hlh7y/jm'ѺoS^D' /UMs/,)%{}(Zp7p+$ܸo~[zrS1`^OIØOjoDH"ϊF?.~ 0թۼqDPc5^b{]պTwmF[HdZfKEf;1iVi#U.a_>N6V g${?&ZI2bM$k/(DMXlVx#ZỻC>% ;eȗQ5ǹ>S2Өכ}:[>8zHZď9c%Xi3yȑ}+nx|Tdy(P$-^UlRhw%Ww&$T[soIFk9;ի~.J}><D0@b=P |7תԭSZ+ʼG5es^췀 xArȯW_OW~ڿwzZ޵tПʥ7!yc;X2(`!\8 PUtv)!Fndxl׫W;V[-߃*w/ ,3* 44٣$_aq q%p_48 %$0KD,PSX9 ;4\ ocm2Qt*ڛE~:|1cdZsov~*n_-l`^+G P . (Y0`d-ڃbP=s>IJ+W):Vr_B ^'m!wi`?RoMYB gUIB.j)4lS'T@Pb{fQ ocrhGK֮bs|%VqS-Ip |$^Uv+\W8šR |'= Qz\4wePgPw=.@4q4KI )e&b a_F%Ba,wI{x8׀Km`@l ;b ?h4n!TVwV%|]U+v $,.:wgTPV Y0N|CP C+}~Mu[cPW",/+"$e hbKG꯺"] ӊ P,xymJWAQ:"dx׿/'nX4c/ab%8P *t1o [Ȼq"B6nK=b[$ :,*"w/e6%1eb Щl3>ܯwk.ПUq}wV>>t`G3bG|]xbSA: J -9`Ԕկ`iu˽[B/%rXne|dԡovQeP'Xb9V&b/SF}?b<\o5(Ϛ> heUzm+[k-t*ǚZ_ձqgepцb>={ˬGt*Z%$fAc&-~c.JҤ_b<R{n\o_C ݹ:zٹx`!O5~v6:ETTB,YMDkl&`<z|j}f6X`%fǮMuLAnyթ"/gіHS-mĔhĸ:(1+%6'POOsvr~N1 Ɓ&@UxBwۿf$_P@R[~k -ގ` (Gƶ=p0@Z-h}EZF?s;{O6(<>MՋFRXyFz>{9탿f7 'uM0XD z >1 :G  :lduET~ʮUotɻJL bl3jc*G q[쑪N{jcT4:DZANv[<_V_V/dKápcx$8G1_:AM-~$Bpj0[p~\KQcbcmN2Eth*?A,Lb;5c/4jƨ\[:#ى0Jd6?Aϵ+?4=~(1d 7QO>Xzv$Kew'G>qdʶ֙םt-Uu-s%ɿ]zܷVd/)ϠBEaT!I0D~> iESWRo..te VMM8|+ ZQqvrɟ]F1W&wCx:R5rթn7W`eg"Lg&[.8A2GEk~2][T4K/_dNlBWcI̹Zn+Bhmt_O=L߭KWko+`8G{,)PpyCfÜ@ {'ձ 7JVԾjS^9P7zU;+KyO,5>)fr~5O9hZ`2{i#DT3XB4tMkB>ϟ. O$ q] \{V]z/RVIFDI '9wh9hê#ߓ1D?>iz wH_pQ qdCh`@%[İ@lyY/:N\qeFI5c _nMPJ. ι=׭~VWMV_8\-I#@q PEG]$Q`U]"VRF7ӑ/+65z%`%_ nZ(ɽڨzj)>ֻ wI 7 f!%a]!r$OקKǿ  NnxO@H}zA1ģ3>[뚅t6l> Ah+k|2*( K_s`E}x-GX$^ġapQ b}t,B`(1FuW~qrMgpW%+d}sFkmM} B`mS+p)7`/Я_{Fm2+_'keoe^\{؏on|vѣ!_i 'эsc>O'V^hc*>9+E OQh¶lx,dlg/__1߼JShC 8!ttYqQ&tp5lܿMPp! PR yXe3Leu0}p]aq Qgk ښ6VfiVgc{>kW)zFRq+~Oy}c+j(BJR1,j0U[LgޟֶR S 0: +xRdC5+yiwcfdkoI4J\<:*?"2/Nwғ',2~BfOp3'qXu zBr 2 WkNwE{?6x{կ+fN/6I *j6TD \MBkOUz'hPJbuf.2xbBSAJ<9Ir%X~=/20ӳ[ xHx4zq@~Cߍmv_N ْf-~gaq#ϮXzk!c~3Mc=CO=0wp^G/_]Bq\wqڻoF_M39`c0{֒bvÄ "~nb?w0čDЯ.Eu|X aC%g*u a eٰo$v ߓM e$!tVSʣH#יOL8Lno5yYvD2r}7oJ ΪqLAij7ʿ1~&-;>*=i&Y6uE!4mS!vV Ng5B[5@' %/* T_-oj$g5-?f̛d.2/V'fJdvo^SO,i> "WCXeG4ml$X,Û<=6Hi1~>gO1ot̟pF,ZJ <pfuc~@u5;otLJϡcKa *Kve}\ϝݜnSH̊,6 ֛o֋2Uϕ};z2ˈO_7 &V_% ζѭ"oGn:^K~O8`8*zi/KiM6|㩢N>z]3UѤ\O*NmM|)8T[}Ofg ȍ_A!t0{ڼN!.7o!`q20qd{f:AqF쿵LjF}y`FlV. GTFQ0_ =)^_T#hKLԾ9VGuކ,%VݪA:m~{ToM-K"ӫnj|޷n\r9q V)=ڂ#@Zow锾< y F[b @ɒL4Ⱦ()hxD!xeU[&f؜wq^p~z/׾N'y=~/[ Zÿcha<v!? ߾~v9L a˻kkJZ[4" KH%ABZ,tQ'Te8nIA|nt;;~҂};-vzXUgǗIUbɉilI:W-X({ &B`,$*a@X0 #0lɗu J)5 W{?Y>cns fZ0wU>Q+4sOYоX4//vbA_7Ŵw=NkɈݳY3 Bp-ZD wx4a{`իC [:*sbN}F}SUHLS_Sh˾+y, @P, )@PL " D}frr~rO&\j)OI+&Nz|,l8Yk5j-}Qfn.3:f,؋uaqs>JV W &E9H(;f5b1a}6 E-I& 6 ܁PS&;o?q}G(*Wz(ӿZSu 8,$ @,( a X #Nr{Uku)tZc*s:o_֥vͪ7Ϗ$MGH5_?䍛couz$Y-"q# €3T4irR[_=4l%wUZ)VԲ0c7ʊ1Pt);e]W|:>χ7_*kV0a0^6LގvJ4d8[\j , a@bX(&+.j/yr]]%⪕Z/=𿂿F#]}&]5>+Ё`b6 &~/JG P lքe9MS'AM^YOÛWy "ވekרRR ,:.M3l 5k@*jǰ/jQ =d$3v؎( 4H0pJc@, @$Bawos8IUˊS'C+>{> <_?DioǠ4h[O k,[_ X6+>#`QN-zJs(='9^y3G)@ ݈S8=<-m3J)zj=Wϗϛ!sM0seO??*}?r_C$,aL 0P*" ~99w*UeCr/#/Ҽ(N2,M$oqakܾ}]ӷ(SlkWK깸.Io[ҿ}ysLzUzQ\Ldm|YWQgƷ|jz˺k]z|xpuɒe%kHa4|}S`OFBٗ75uIʒ#LY(iEgqYUr#ܣo$pZw Skd[^ (_Oj;}u/U}9^s?"5 RH45UZ`(cg1?n}jOT`ҢNj//v ҙE $Ez AQ`zF*GJH,Vfv@S;3FbFVAw|SQ7~՟KmUJإW &_7 `¶ķ*FUoԡ繆@n⁁4 M hPWh4ByTѸ-%CqxgZjZ[VOG%[ dƱs(]ĩDrO# r'OUZc޽*[+\yG|#B _f SnhQ>n<1q{SI/v0cF669DFiR V$^$ND'ץZ_Wv~}>_]w]dwmr15֙1¦E;m?'&uk#BI%ÿHke.)pl<ŻZ@ ۊ( 2ULTW^"v VGTB+w]^e_?xhGj̫HxDaRVB G+ 3Z2d@k|?+E"hXŐjMR <oE|=NE)Rɪ/MBZַᰞ, _Z bL@)%՛ͻ|~'jk](( G`B/M.ʱ /,]4n$W҆L|oNdQOU^e%8{%cAAL(؀\FԼa$wD]FPlW ."!%B\qF{].7;\qF+/5?Fom7Wpǂk@@}%6D##?q. aor*VarJ 7hO\ac#9_u7 R\,LcquZh![a_B7ߢzԮZF~FCVlIv`3+5]ȷ^ jjQ%d+e<@-TK>zlZd,j M [ e=n cg3uf ORO?%?doZZ +%<>=~% ˏ POPuؼ +hk˒=/GĊ~_VM0|\ =gL3*{zGdI]/8 @) nLރr8E>MPUP͕8Cwm6/8@b˸mec|@_}w䴗>~OH&KݯMt[.>a^Ri~ȿ"cFU#֦2t7IP% c_5ɓ_^Ukne^pXxyh\w/xFk=S۸ںYq$;j]U0~3lm&+ɏ8ijhzovs9} ,,nS%sX0zCRv{܄ڞq :a' AB V {w+m0(wl̲msy35*^$r,cToYY>^&#ylqֿ5>*FGdv!-_˵N!/'p NA*HO~^ٻ+:~W֥y~){={Ok߯b{!ŏEn+P<Ń݉MZv =iV~@09A%_\  x /{ Gΐ"E߻7Yvq ^\=B*0K߭XV*kW *U/2u*@-0,Xk> Oyf)bczùhf⿮I} 8Ӏqɀ) y`LGLu2%셊3u2ˋ). UkZo'&W$>;wԵwڽ]U#(0Lꎔ2jcr^9ed ` Qc?T66uMS5"*Lg/$!ѪרV+W7KD[D^ #e|oĊ(`jD5PIF}A>׻^^}ڕ^Jz}.9}~z0]1;ePE=%1+x4α!7\, W(%tJ&Xuʽt>n 7TO׿^횗͹ּ/JCӿCJ7KAO .l0uv;i.z^ V\VI%JA\xݳ0K P-4]D! joX n/,*|olf=+(tia6ޙ62V{פ @ ".Ϙ2 Hq^+wbBqAN..|4/$p8j`+0%0ttБ]z^DxO{~ [*}KvNN"L0 v)YAğ} moW@ɕVM|+Z]/FW5_t,Bu^ W9{b4)7 ]lbewub{匼xL廽{>4\tnR\8׶*[﵂x~^BG~. aXN{e4E=|`H=G!a˨2/=^?7U?0G{泦իX^_*>O?#GjߡU&2]r¢7f:UNP5ܾ_28 1>!#ʍ J7@ i/>_&Z?m׼9>Ci="w^ p`_!xG5 >2|6;(s 'e5XM`Wݕf"#`tM)_^.YQDzqUPL)l0ZFY>vUhznfXa>uM엓Iz+(*s =s>F?u8*(i>׺Y}\oKYS5/ }[5"+_ff9,a :IZ2s-EWeʈIxOa73#Cj>KH#8@7%*qk/2ցfӧ>h[(\8WmEtw]}> iUw^xH;Y ~~-!ԾnS~$\ԛ 2/%)ɟ!hq~bQR뇮O(ͭG(L)/AK_)Jr-?{*-|2=A>QpW|٬zt8)%~\Q.8_N_Q|{˼>X;;_y[Ct ZՇɭ4-&{^/>+%A[΄r>򠑇˅V|ěN0mSm߽f?h|y=j+ yxnBy1V_s7ܳ"kFd&,\FYc{ ,8G!T |̹㜵+P窕1_rڵzV[ۉxCo D? AJ}o_sZ֧IV䪽jZZֺZ!\i rۈif#(hzy!6XOzM^ L0@f- :=@:P%Ft+JrW{Xn{c쟴`;(K64^.MG8PA~rpK`1XL^yΦۉ(.҄cX{4$L/Q~((?2O(;"gҸXhOҪFd $.8uzus=RNw8LKTvL4-W5upaHֺYQ4#_OS'"?XckCWleS{B{Rr׬=JS}XאP15oWK;/MUr}LB9UlS Fk2tX0EuRRLr<52̏2^xj`$̿WTmGU{Qd$1bia$8k`Ay}~wkv{^GCbtqb}?+'O%3QtC8,We +_TR eäԹ -E(euA_=y=9:BuV!ݡh"riܟO\7=FehKIU+UZq]y_p?&(`$D+x#F` Uн3̣{g#!}|=_e Il6ކpvS⼞"rj闍,24ݏ Aۑܞ?NdAU&/,MXĢWNqIht|-`!7PN2ꪪBɱk$D%$pU/0F #͋@^pkc}e(QTڥ.5_)Cw^m^LJ: xpfW -dQԼV/~}S|b/55+TSӯ VPC{' 9.j }zpH5:C\AzO^DXiFDt~65BׅNQU6-zWpL0P3*gDUT_!W_}ʣ^yR5=9| bYFsAwՠH! /op+Op?ptasD)A5_ GR6ǚA K*)DxV5 l }_1_y$49^O5$tțM"dgf퓿g4A4>0ʐ>=4<:w TS Iw-!wAFQEP\I0xfw6:"Z.XN27B0<:">_xȓR$C\H!Dq}W#4pJ$[k("mb1\ {"Q 8q2{]dYJb ƒV>]2Aُp>R" x1 -[N6;"MHju-hCMVvn3+ V{B W/\[vD|JY >tp*qJwqہ;O4ۊrw,ŋ}ijO(Az|jp@%YƠ+ __|/ȭ,ۏࠥH;L od_^s+O\۟GéEȤqV0ZLcCbODV#ua֙_0W~ўSY ^ʢ exb<[-TQYpT(Y_ѧQ~rT%q @ 9Ɩac^S'FѰ\^k-)Cř%B Ks^z5l R[0~orM߻pVYQDmz1׾@C<ݖ$v{I䋅bD^KG Ơy`^Ii%暔> ]U 1;?4_Qu?"J'0m(l~H/ږMs~Ym4}C U>g&,P@n BXXw A`hgJoay꼋ĒmW{W5NR%"n!0Й17 Ajm|w_E־֤uZ+_^~%wiT\L3/>[aYW0٠qc~3&@jt,cC$L` Xn ol&ڧ_[@9&zT[jU~KuLrz}$CyU@_/}^ -ay`1^ۏVn#6ԳWj-Ѩ(-Gkf g !~<!-dqNX|j3AM>M6<aMޜE3xaˈU4'Pv 4|%Fh0&ܛ4_uukWUbf<ЈȁH容VV6&kjoZ\ @vjH:2z8=2J8'-o-~0[3ӳiSa,b/G.ݴO'QkgcP8; 8#,MdPT<e1Nl3֜lTHfʤ;&b#֤֯Ww1Ap1nMgg_^x,`x89+ZRTةoŪDqBeTu"žp{?%$\rT erߏWJH9eQM(y{AŨrY[s.ۏ& &x>6V]"1z@q$` -Gu-o@l E3 ivX jx!*qu T6]0XH 3N-i! Nb*N:2 9dc 3{^} ' dw҉u":W:$/ ?NT+18Hލ7)Du%-K,սs_'3cE.%xT"Q|$), D:ձۿP__- H%/Xf)0ӟ<8./8 gvJC#P &HN5;EC Qz3߸y%8%ǟoq07 p=F<>. a#yVѢz fS)OSւwm<~ k2tjC@8 Xv'_?sN?]HeH9u:M-py:pS.C& O.´3}:R\y2ѳXVj 7"F%xpEwhۉ⽙VQ k `֥5 pᰢX(Y:ER(x& /3V0DqThiB `0TChsv'E ["c/_1!ܺ{ wq] 1#; r{O^җ!?a.+  , 5FpJ% 0'm/Xأ! ٝǽȆ28]qT$; oqƟjfή^LiD ʔ,eR/PΘNei k_Out1 jIrbR1g7nz/0D5t;w|-K0yh~֪%>0iWרXl<¹sv)0e j8~ӨONO/`I?L+h% iz8|N2uԓOdA Rքo8`sᦒ4_ǓYۄń<|ܒ#V$g=gCM{ ":(ÑX|PYٮɮukwuDwՓ]~ulEIUBdKz/~XBfm*aF{7w%+ř7D[rI<ē.bBY>-W}e%=vvo{\Yg%z/I8{iZ =K'ϗ*_45. Y)_W ><. G.TI:D|/I)B[Ͼ֠p2 ngTQ>3J5ѸonIMAxyv:qI5ܵ&|+6ea-v1nk~O+Y|pjM'zQ$88^|W6 8Q^?_w|\bk~菓_yEWݢ޲"˭3 e^Y![7qYͅϒ/eO/ N`ֽȷ{N;wܷں?޽ `9iw uL ÀhLh 0(% "0Nu2zTiZ*G Z'{Du;y(t;ug'U^om `#òPE!~.KdRl#RZ9vy;HcInEF,o:vGzߦ*iCOؕo4аJ^7m3ê |5"L`РLH B(& HNneꢦ. ɗ+؜uޱjۻGzf $|\&UjZ]}Ov-8S*tj4bPE+)xi[~{ [O?TpGS7]y5O_%qߦe{/K\ܯJRд֋+Gr t)~VM)f€`2 PX*B'w̛߶wNj\RXh8'+^TjKy_ch8|Yf|YL{7 ea(I {~1!۾J=Ew +F&!  .;G|ח]NǷcnz~% gW=XȴnkIw FV3]Te8*#, @"2eVu.pޠ}m;8̜_wWGzį5tN,}"XF7qPGWneגhXcQg~OMt7].Q>>\4U㪰$\Oc}Q|/%)ԪTu@&A04Q , &m1kw=\īdYRN m7и4?|.ѿ`+p=}Ή>]-z-yvR9df=6=E}V*)E@B~no+/';rB֤=Aυqqg@-Gj-eE*ga3pf>4/)?K U,$* b@(& `HBc2RQ |>[w+0t6Z <^+;zCdFȗ^|f\ZULum\NV5f:M=Wo&jJ )CZcEMcrF(3Rs}([$CK0rm&ce ӯw!u)pAs?##F\'k^_]\!uOs eOZ8$ d# & F]H)3X0n*b> _ ҭ /hj^o^_ݫu5}%'VfK_WԚ]Mj/p[X(P,Q.Y0OC[~jg@Dtp=8l( Z0jrGBRdX# `>E7Q`#.iZHAADZf JP6}ja/%CY/XG<)G\FS{D)hthi[~Y﵊oּYfTS#-)+ xAWW-" D[0x$#H⻞?m!,ŁteUSRzGT/$3**MwalG'WR߮blwk?  Q_>Gɛ2)jdu|20!]+*2r&Zy|A2p7r]"i۾wxJ\13u"RkY}+]u}z1 @Y, t:>K(( Q7^"`pI-c_R.քkRZjoBD j?gbeYn+T,Z x.\KWv1,J*tSFak.]A22%^aꪦh($9  }y/X" K݌%na2D w֋gM5,`̾Ħ%S 1W:\Dִ85^3țx \h1eJ8Dvu=iNaL>%v{S q.YI 5!o'KxVM[\Ywf;o`Q0*:$HN~Fm6mu??GoʔSsH]b]>62(X 8ceSg39O/G r|,+!AVGQR;ID=%W/+txG ZbU )dN{Oj6!_`3mg}(8tHJ4ݶ}Ldjr/K25uN#C"1~>}:p世6X%b FVW|?^ZZ X h%фOl| R B*g~Sd|N>ʿ]f\-y+^ J@c 8P[ȓXcZ659}utAQ(ϗ_@F[AlطsÇ(XcNJwěᢼIZcW6fۃ0#T7bW2鞔|;Gagҥ'ox xG(H :uC:X ];ꃿ4KߖH<'?^ I>'E i0Jps3~^e$sQzI>H?~EXL2 įnuv]ǽb.VaϿM~,GCNOhF;`{U7,p0ۄ~8 Ardvr}R|0Ϥ̟^ת^BE{b~ [Pѹzy .~,f ab+ս@ @ĀAW|7LYDሴ2W$)N~w>z{C*#L|0PҙXG]>njʳA_ F Ttzn8!b ;&\eTc S,p1]-7 Y"kY?. 2"pw.06V9x%Ns! MweDsVH{q;ƤE "X/QNvj{[=࿫r}sw6S$Ev u2{Dȃ%+Sx8tEOaH %+;w3_=~O9ܴ H6jFp%"T_'47ݜL'(9_8זh& qi$(̚^VPtLPJ+X=tEhLc0L|2!z/4wmmE/#uxIo`kqa$Jލƚą6f=L +;b'6?y)\59K~'fZ/^RM}^1iPA@, Ӿ<`dr&K'2 +"8}P/0UOe(5@Ξ$o FA=a:g>>L$xhe=~t$_|.-֩Ir)?<+džPv 5nػxZ|#I ]˓èLB8,@h#tRC{)!FmVRTh #L'Ņb #6 ;KW kud7:d'] pv䧰(nl"T+CcZh"qMAE|שyKкۋծOPa0$-6Htw/qL7,HFߋz<.YsjKxc_ w- rio0U7|&M0(2 :2+bn^qp6Gf FZܑb=?AND!#rŏX*|q:ᨹqb@&]Wj}wU/~" L ˴H"7Qj^"0c~n+ D8W|إ8#yQnǗ9p <WRM|<Όs&{}R e*ox始 cU^tTBկ~UUP'ӎVo| 4LE u DSpPa0K_"&aV:ђ<Pr{l|: u~?5nF/|% |a q +Awp7v\TPO3SU/$Gqamj1g9mknO@<]]hb &YUT8}pBۏ>=f x@.BwEbxErq?uW2cmbj8TD/8BF BBM'.MֿXÚFڋg͗A%%X %SD)ٻkAv9 ҍÒyvM*zKF>h0:HB ү_`Y9)(#5ى*N-%[Bs`GȬn}+5z H7MwFO%qFUHw:C]z1B `ח1Ix=nArjP Ҳ[;Cxa,phӌ䭴a7D' 0 w!o"R%nHޣ}&׈(T?3QxLPM3OE֖_JOTP9TA}m>{y޲djvdb5?jn AMO=LiJGs;~м-V[1"ZU8txAEƈ YBA`@ s(Π3S6|Z({T~fsNė^{tJ_7X{ O 1vY~qVRjwqxeG7fdn8 G Cl3$l}wͽ:b `e_)k&[i8%տo_#o!ZUy`KOI4kxJ`* NƔRFz5[ٝ-W;nuguH7`8FP|_^$ )BGһoO kTetp %^l!E'W=OY.//z ]QL*H}ԁbF /ǢW]8/PBh~pI\S߯r/r8i).^oogT}r^n/79I{ SvJYHtR2L)]Cr~]AJ=]*dv1!dlY'Hh;_,v[ ءm:z9|6V4( x%nyʌ@@v?yPPk3(#-]( (1 3_?sIƋgcAE#$1|eD+d``e$Au}q!14 ZOզ̻qܔo ICo$qam#7JzgG ۀukLpkƗYƴBN7?kq[ 6En:TnE602zmquP˸ìH>_t.3)i[HB+ D[WE[؋@Lr p49 S4ތ'7#Un܂d *AAP—r-.7ی1[ c[ GwU@ p1q-6 Xs"Y#W~{ C G}K cgjܗ=gǐ#]XJr?Ƞ4=p|iLw{pѰ?`! R0ģ|? Z"~b\F}H/R6r?_o ƌkײ$ٸDߘ`Ʒ %}\2];6fb_tgʖ|XnBxJ41Iw=F'6Q1/6\O)4&UaW>T1T@ky滅\GyBWqcKϐySx␡,ib0^&H#WZ%ZEůq̮|>jK >U􍙕Ws򟡏m?TXB@1rOm>X|c|QzJ#TK,ǷEuGT\gY!"arF]''%UAn|@f@QQFd& *[!.10uS*k5hU`!s*[!gtˈuL&er0fP;Q9\ @M 1`@)a{cN_оk>>n%˟15'rDq?[%P-KQ?'TN'I"d`MHki/- iLG$Eu҂SbxEcDA7'Cxh#UnUi+Ipo/NwzW/Ivƾyy#x)ޢ(@-o2}uUwK<|AuuKЍk}R_Ec&Z$nTW{V ע7UkTZĄ2} a OV.3]\\.`jQX| Cu)tzp"f{о'WBfœ,)ž2B—Z E 3Â6 Rmsa$@Kc|2)ࡖ 1 o,0g̝bWow@x@X9cz~; NI.BEYLd}6)9|JT11 ۻ| [_৻>8'WrA]!q~'JW} a`X&b"x- wP wР>Ĕ@2_a q:P^*hJ #n7E0f$fL͍{a:[?.YK~qI}{UۦWqK/zS5hpJVJ |!_+D^]Rߡ/wW/W^A@ (xL6FfB D 072VF ?@&P|>lޭTو#Ѓߒ4I2i+1H?G A_M)LhwS͹œܳW 6wɯ C8o N_ TK_.BzB~˺\5johArd1* &7X6raPBU"5%8EΕB=zy;}<(J Ϫ@<||`k0}R _se)q J`l]L{wB8^Och@I %N9-CfsTx.F3p_l{C~_U`^5 GFvKݯ|Mzk.$a >|Wlbb|4fG}~_:<?_҈ 8TM!nGoO" .Noh/ /^rEU7a+j <3iK"Q[=6'-K:Ơ~|Vv6gΧvrhZ ,FhHh`xjŬ'?ne'ڙH#$ Uv܋ d<ന=ˋff ^}(f+ kCli*􂙋ֳ?}|#TݭIp!dwB9W{͗#f2L&)2Pl;-&~,&ݽZ,J_UF$pWiNR9GxtTIijz3(B9+ !aMd7{7qCfCΔ!/cEhf6^L7Y|Δ,:h"sj0b$cmJ |Ar/w)цߍ(,2r;*쿮_m=\iƍPh3Y46})33Ҏ}(R  4(F[aGۿ"{rܞvDz6tэQZ. ^Яw#:"5ֻ7׭&OR ahT m*x5 2P TNüz1gI~ְt(_(?1qe'7+a i0|e4TUmY~q}~2ѪbKSW>xTʄqw(]OvkCL!½I00{= 3Z'#~SzCW;WR]k _/$ QthgP;&TbۨX/mP@̿ ֍½0vT^L3eLD n1Seٽ2f̢Q=c&IorzT,'-ڷ*ͼ`D qd" ʾ 漬oޭbAS N|`c=5h%ͤfvAF;aƕXw&~S5z< W'B ˋ*.{٩wa? 6< 9ew%5z|n^.r]@/SU\20h a-Qy`4^wQe%h$шwÅG .W*a$i(! zuљ$08Dñ8j:?z&}2Ҽg bre#XDL\KV*ae0'G-^_ðy߃aї]d2С2ӞlւV"2ZL`h:EUKܝV\:b}7ثp2|>vɫ<`Bi6^`H8,}OL_U1Q\tTYԠAL TgzLa2m{]Z@= fF~CYecZeƃɤ+|#?ہԿ:_9 }:a ?O(Jj4OKFĆvkuo_/:u joM[d;><:_~;-%=A&c૯uVA) !k./ H/O7Æꁠ<__\S2 N,ce& F(iڷ>:'CPn/oy^f~i?LC)ܽ J~o~}*m̗a°V]F{F[٫w2c&mڰ%&Dzyhtjog@(cs9epqopvχv+KjOaӣoL [4a)ݹM-Qʻ0B$\NyIEɇrO _Q}SJ)S^"KtV5e]RVϙITryģn1&$ 0~n0UCmtmp .C?u5/jbWf^ϊN}zMrs8 +tU㇥篎zjwUYE~)<)fEZ}=[F9 84'XRgKo {J TE'i ;(b:^Z~[Ti9>؊JtAT᫓-쀖9No 5}g1R悞'xsg6Rfdǚq<6R\_l6"6K1Oqٗtqmrl˖*_oǭ,uRXYp#9uA7U?XZ k$w3I5U{q}㬖}y])}Ɯ}I,oX=Q"DoiF7PܺPqfA} 齤kU+,;/{dH͓otYR! W#z5CFKL$m=lґ O$#E>Q eX6G'ξBC 5.M i$  "U(dۍMxTh%LU# k\_ ]ǀ#+t|R,\i&koUl3{}DW^'+@" %釽eE_.]Ar_~_wwrZ_}%gV3/{W"dX`V3WZ5˭h!굓4 ,S8~8 @UC‰"̂A 0F 8[K5ni={\\s 3./\]E̅>QAL6 kF6y ͊^.8fHry!`@Tҍ5iF[/|OEao~Yԧ*J(`ީG ]rZڛk)N$rgq̐i:Vzw.-0R#RH_2 ܪu 9F.mUM5^OvrQRկU j/xdT^ HTd @Aj<>so ,Lҹg |>(P. ӱ:M[p@.T:&UΥ*kߤl#4 xwv (@O\%c-Zp}Bɸgt`vkWPujOO[sy~|PW"Vs\BYDhw$תտ^z[ pjX4=x| B, B4cʛt<63gdr$3Ӵ~_w\(5IeDNLujVCMAzn(v׮s~wִiLӫ5/H+Ӽ3]23W_,4O\ ޵jT ƙ==\ pTd& a01\glRccBڃwzњgFZök`4PwxEt_{`F6@2E Il&&Ji`0an`]!FAA;9xO#~C _=|$ۈĠI`6\O&P+m |`)t`h&el_r8_z=s`':x6,,8,@Ow`^S£}0 o<ᚰ7f_"/CʜDŽ5`=jַl)n_I9 Όu3LEc9&4 T.iT\'] e ~z5K [/!luvq ٺ>L: ?p. V?d@5$L!G s1Mo }21sQ:_4wu 5EbuX~J??y!b<*1BA!V.\Cb Fֽ񍳹xRcb2ucbZ84`1wM,pjI7WXT7^b.+h]K!=vwCmʁ8͈5Ph̨|FH.PqBB5_J<+Huq$u:>e9ξ^~ZN'f_cB>J(&*9|iBjo(.U/{Tt/Ì!;0YRo7) JGȗ [ )S dD+ҡ|Te+ΑOloƾ8__e 5WVLLY~J&}y=v? Ih`&&ŕ'$N fD&Hyz54rTK\V t@F5Uɕ]Ҿ}(n84x!+>É>Ϛ9~o@s4ppgp).̕f1')1 ",]Ը- BHIh⬞E :y1u;A G߄ 2$|%ۿ5ŜuQ2")Il$  w/݂.'C2(_;#N^:­|Oo}ɖev`yI){$F8ީ5v2"YcgPm.=Cw}B>R) H&-5Giְ_eV[ڃirC3hZ_1V<5=swpB$_:ϭDgi];c{R1)Raou%/ sgԨ[G?FQ\ F =̷J‚ez0cLˢ9G` Azb nY.}y( 2زa1!.0D0* ,8 -@$ Ĥֹʈʺ{߮ˈtO/\,+DuQ>GWGzrTOίUP%*o?3fᦽcƙ|8"SemηA ,""]&0aIW@*x5x'>fxJ>  l?wВ|F U _gE=UϲհyOm7S6 IMNzeU63If7u_JҔvvˀP~qO *xևt Az swH<NJ_5dk{1 v=#Ԏ O֑)gM)F}E" A0L B HB &=,]UH˪/Ye?ߥџaɭ=ggp{Of{tٱrd=E.m9H}+sСF*ij34~S_lRON1!Xb g^rn)t5LRYqrC=gd N+)c_&6I*'9JaA, B@, a@XH`HB]Us*V^jk(Q7y|bU|T~ڿˡc}H:uں7ȷX獝Erזk[[4g&]#&r[jW'E_%/LjsGn1:U4aDe{^ZE5zcot~D.>rg,[۝W|*60tR9}!7-fA\Fu&\-Ƈkf.SZyh{8(_6~SmAtg@%,Ez֪(@?%]8ϝ1dZ6QMc{ԘcQ=W $( ƀ`,H )Ȧ5MeIZڢbG?|G˟~Fr\0|K4WFKGzix8a._NM Sf)}Doe7X$09lT=TRkL`S8N3 ͈߂;cnQq *Pz )@9o6˶` re)fYz\u",3 a@0`XH( A0DF!I!V]j]'ݺ:TSUU$T~NKD B7QYݪr\s.7B^Z12l,4أ=y~SYQJ~6j)i@bU85sTq|^uMm@}o K&@"x(L×]TO4]V\$1yJZ.kP&JPl}~8 _A w}b7WthMbֵ֯"W|grZt ey .q?mKRA'ˀ pJ1\fq @#:Ak4A?_Z9!l[ is}H:|en:kiCbsekz=a0'=-!僾NM'sVeX}2r(Fx1XO,Ĥ}LH Q ,e&;_yz[40x{ZW27ATTw b vr \V$\~_Rj//;fUGB` 79ьy< $FE7 ina:5L-eW(Q=q/ daOxZկXVV-zXeP-{}A08N!ak_/`W $5(6 & /{/xx4tv,`o6HQ\ &YRgO0Gӛ>lhIy` qc9mʂ|jjBtuVef&^9qc4uKj̯WX,ĎIRAF R64L5L'~b`{_Zv}R7q* q߱Pc$ ܏ Oyfuyc?.cJLpOOf?@u ef5[{}]cc c]نr.1_BKM+1;I` NhŅc0_Uߡ2^O {5V%^jZ_jIɴ4] /u aRO1+=}@U?߂ d8/:RBx@J4^UGSY>|r{?EA.>|9&B;z o&*d؝s~h/݃`v_AkTrz^ z&A?|ߖM_W ^Lp*qTiða),c)qǁ_z6cXʝ#j='4qwo feUwwA=d z1},xJ_Ϻd/ ˨qts06_ߐGoݱcIra&mu&1dUqăOUɗ2$N; H0R~^pW|Qm]P8];6zIMAY~,B6 -1OQ$чDȻeY點g|`{hkd~ l nkr/תxVE~׫P\7ft# AV(r']B] )~gC&Va3|vOG|x 7j7ox|f1Opyze+}7O)T4j Ci&uqgom7 D0<`YW]wPkg!Oj@{Uu0g3br|K]BPx/t>&37H'>nς:U^=qo }K] z{W1>T)L p tpaDJ s 9}7P$(@TF^7%<2ݹ5*HH(#}]G^23>*^uhmS\e@] ^Qzr氕*PQC~.銬>Vb'5lN.w^/VOC)1jN+ːۈb_gK^y?Ò[*+ke!"9s "qKl_eorTEHÁ-8G]l]/-0ǜ%kf 2(Tƅy;MK tX n=z;c!Ofy!7Bځ-'+;+m6۽}zDV\ /,7LBʬ[տ]]z { (5죓fK Op7,,3{="~T]uvi,RbOS} 4Bu"E ?%uм(4vo W;mFFp hw1(v=Dgp+nnj{3Kp$!18UwQ$(e -֕58f~п')D~ Yn-jE2,J<{QK꼎<8isVɴ/lw՚VKvVHR5`>BWT(}J{ eηK{xZoWM{ĔHE嶺UZ>,iXw-cZ2$ 䦼 ;^ hx>j|F _7TAvh =@t7rpaiR~_(wUѤ#Ҫ+,ERr|$Hhf@h97D؋fԼMCwI~OO_]ڱwDOX1Х`-CZ֡!Z} %#eK$k'ܲ~w^^4': gEu4Si`b*H61UCZh:``4l@pi+NM㒎ch#a\0M7zuw"}Bq'ݫ^뗇۽{ѡuuH=IM)A_eT3&XKtMN {_*ZjM_0Êg@6G^̏$i/F ӁVw˾N+M";3ְw&:|7^НI~[wŭz׫Ij_k_Hicy'<} cgE޸f )V+V@Igcӄ/broX' Dg}~W^p8 rۏ!va#n⸭(v,.^|~IK_Է/bׯ`P:fowĸ%9|t1 ZK%ᒼ-$gٻL?9*l'{ WV\bHl.xΎפߩү^*RX}Y*~_.UZ\8C>10oU8$7 ϖxX1._]AP w.Z:X ^&=Xݯ.pӻ'Anc's* mzaf[Q[DcYBJeZ9 Uq@64(Z" ۢu7`gJi޹_'wLۓ;"ǯ\h goVlRo_/{{O Ir uI;@pΛO|S]!؊8&_p0źQgC0{.]rp?Ǒ=̼U|!|K=?ƟE ezSxp}կq$TcE ǘZD ;JlQFDh55޼Ql/D DdNױY318V8XqKKV%.!ٟ9'KIV,OwsOG]Ws'qn7''svwIU7r؞QTrSƘU@fDsAb|xŵF2;x뛛`=x'Hz{KODDc^&Ku43ˎQx^"LbR֢ '>"Hu.ryIz.>5$+s~#t h|2] AZ׫Z|)EcȃD%wDZVx oeYlu_@v;0b >AJrz3wb)^b^bczԖ]Sׂ$`tq$+y8tK/E3-'d 1pN=x2;lz IXӏ֨W]WzXU9td9Z V-W B@$;ܺX<p C{`5VSCBGEs]]D]ZܑC+XʯOwNkAQbwrڿp&Byllr-abQkE|(eQFQ9pr$X30-ʥK*e< {A KIX]rU+|䖺CXS/w|u UP_hO{B_O^#ߥZﯗ/ C!7 Nc*B5'=J}s_c$ F1v/_F{&[-zHO?9#p;o0 L=jg.ou6}l_t&-UԾڕ{pNe|vc]JgHQC/hߦqkr _‹gNoA,P2}Nj= Rz~W!]Z 'F(v75|y&I}B܋ets&֩Q ZHhOD̝6Dj4|)'z=w%~6^.fR>nnUUWloO1q' $^@q*"JOo\0T'G.H x52}7ѱj !)I,_kP@*Rh} =X@aoܽx@KcC!~l/Tzݯe}u?nH`!...YrJ8, zg;yq.!Va0zĀ>g0 p{#6{˔XA\x FGG8_e,&Æ әo' )4KmRC %?iľ$dwÐYCK}ypIݐI`,}^+B ecS< hrKIrU>O]@0{05*312}KK5zx,# =' B؉_>cWn=*kYuxVAQʿԵjl'|jvkoO9׵2RdD9{Vx_|SIV'zHtۮOr7p6-$$o˟7 I{z]xI6 ڶ ZaɝO¡YZʔ1^jSwݫ?=m,gR@M3h!}JbWÒxJ6S57+N_/}PX'`+0O !L[2T >Pʰ$B zK~*#nƥ0O=DF 6TJK3 ̀7`Y+|$Nw% E'Zxqu.$(%$,Kyn> ߄ߺ=b׏1[O\8#WxzGeۍ.P,>UZq|&J3C&1yς"\r aFD7t=R''4eGbfO䤪p?|@~s@g cx\aρ$eӾ_;dAKƉTr"0J){W:>ĉ  -] 9͙|RU/~~^B+W6F5~|LnrW'}jJ?+nHJaW[ _+@;`jFJ?|33un߁ԩF>Z<cik+!B^ʪg<*',tqWbu Dh5i$ _vquUe\ (oqQ, mqep ZCKYi(fj Pf&n pGnz~:Ep/顧//sg? R<% 3\ވgWOkI}W5lo/ډ 9,g@ ->en!=헐Ƿ˯,Q}Rg'2o%~=U֪$~ܣ:kDz@?$D%".j-nA6bQ@m~ϛ/떽ɔ3So&g;lw5_ J,Լ8Ҿ޽E/_|&8D<FÖc~ ) ]]+x&|vrWʆmE?/J Narx bD؝=S2 Aj/w^wEnZM\wZ.3pߒumpİoj aa|C:MI-kb˕l Fq]ߺ݊ivcZ0z溪!(ÆԝO\?P/1{٩gcjHK(81l!㧍E\gӀ >88 {jo^Ӣ.) !uwx3hӃJLېE)S> <]u\NQKqu[J.^ rM;;I.KBJL ! Gu2X%vڱ A PL(ZF.4I vj*aOaxdj[ZTJUU9[|?}-ݬ]Ԟ.ԉ,oG@Awh{*|+YKuxk֫)}eXA@Z3#P0!\@&X#قȖ?0p%j[zz 6dHusrּPOuvU._J窹"| ~BpL8 ED7h<&`odĘ|] ;B~'A9W,֬K} }qM+htf{Y`rV-{0!8)LAxKC*LUgఁEKAo] m{7֥V)8 TWTMm!/VKUݢj~<-@"QϽuF2F9K'R$@ %GϟB,#Ss//,֌[xIܾN'n-fCl^ba(l̻Q1h.݄P,uϖ1:ˤZd [$t_U\Z$_TZίܭ=[??X aBf...../Qqq!UFGK=h+ n>}`Ac3UEҠuئW丗:jsMZjI~a2Kq}>_Vi:1 zJZ5n^e|:q&G$^qV3oA[%6e ˄kGcRu)zU{7UhT>!'ؽb|0pHs+ ,W?a!3j KUz@j@<  4^hb --m2cXz(L4W?z)86}aŅ{}Bo'7@g Q8"aHGi|GS„ P=+s' b~&l$u!IY3ߢ } $JN7jqZkoT#jH~/=K oeC%Sq|Ojy]!U$tB.?'q[Gh=|΀Dl-_ Pk>_}ˌ,=b݇ol0ǀzsÇێ51@Tq=o$O|}C/͎긚`V80ޤt9Ḥ‚؀p>VvɖȐ*I\=?qօ;Dz33E<$y/x!hϬ6^]9S|4a1Tww߸'8~4 j8ˑ*]n뉑i+~ZpJUsey~0^Tϳ).#KO{t՘_pYc:tNxd]0`x^!cC ^1%ƭ zVe7:JcL f߰*+Di;]RS&R[_Ƣ}@_wAc>C9 L{W ȷu#=FϢ:HE| s$tc|%oc 6b}p~_jkVSM~K1!Lhu9hqm|%-vu~GI{4wuDz*:鿔Qa2^q漾 IG![b@GTB\dY&kVG=Hmj{2x,P&J|P2X=I&3>~5=ww;7gBIf V sћ:ğO4̭BC&+ࢎL]ZjDBoV{ |V^sH 2 .X+~pBgl.|^}t WD&wtw;d4mu]&/,&1YW;+` ihVGƔ:NqْiG 9|wOh+`S @'F͘w,c) L\]q'AfldXb|$alq;*E!?ꛝ'ܑVyKEy-jU݄Cߨ-{_Û|'~H b_ޓU!!췼o/{ln؋_rWܤZm23D6٘|E~ijrѢ_w4U~UD쟞OK >.K'C>#_ <, cz>31Ec,oa/]q_҂"e OXd  T/W G/@ (KK;x]Qcy-`S|W"N b@"`X. B!s;Ȋ&nk<&IoÆZ)Y=Da~Z,wګuY'qʕ>9?Iuø賝P޳Q~/O#kS&>4^̫㫦.|H%PA@ʟ=)g LP< n# jǀm\H_ ;%%̤"^%גt!$-o"USM 4ĨcNL˦<5-Y [{.mݢ80 U).NFd! cN=KTU`͕K#5u5X]?ӑ㜌OӪ`R斪BvB Xs)em\%Ұ{@b \q`A"Ԑ& BcX "pT""\x/5Q*2-ԫ_|yuE^)O[^v:_f{vyIo̦۟9OF >h]LRH0PC<;4Y\$hg ~Ps~'hs:vM (]~h  m*n'1ӗfwiyhps_W_ Lg[JODRX-ºXI>Eۀ8"Tl a@Xc8H dzșR,#r_ Rt?~ۇkNRco[wEe{#)A׭NU,3P.-%:Jdĥpgr3 R?XSY`y OSBJ7m(bA}%<+%uZ:}@ĎVl ZuTQ=Dv/=p#c*q+yDXU![_9^}b/\_qPmo -7щaU#Sa[%6FaEg( El7$Wu ~*LTx\D[zCГ& DsY >:Zz UaU5X[+A'TN\"9KwOUeq*?&;+Am#Xlw7OC]^i-nk -Jj`Ҷ8X3.2H  pb.ArzqW'խ|ԹrvOeGt-zԘB7ߟ9C7|dQwSn%{HPp&S穣?$,@ 2+h ^ lO.z/$"㾳JҸp1w8 JF4p0b n^+;V+/I?szZr^t7RlẸ^W]T7AOحVUx_GA,>>AP) A#X`vjXbD?>stF1Ijj:irdSSUKyFbQSX܏M|` #FH< nKme~m8X<2Q{r'Fذ%mYثE{Q_.ۗ`_x {Oդ_W*BT5Ïgo|SE 4(շ8;'{=-07]QY"b&8\#k?ׂW~u_RDr~0@ mxT+rܘ8[ٰ{Aj֪z\I(/@UnU0)b8jܬɅ(9)"j0n֗\߯#O]z)ӈ'UeέNUw/Z_1$y?(,8XHԙǛP,j54GlTAsP)b77гBBɀ9ĵV5Q!Z mA?]M_e(=‡bJF$?'"2W"*X^*L9~RΧNYT7m(."G _Yrw%0~ JUl/,f$ Db ‚#@d4B 9 'ר){â__\:[ZPڨ9^CX 1!xgмTϨ8Hɿ$*]fm[~UQ+?/u}>*a%ViF&[OP@HQYc6F8uBg IiPY+VjC]w [Fƍr| ۅFaFX3IɃjl01:STW8wV>6PԔ\*#'HH!YEPẌ́KGPCE\Y -g-ww0fo7ФuP0 ~j|1yj !!7fPc#FZZMh P](d6xEd1'rܷ. 2{z l\r--d_Mi[73tSu|LX)l@m+y&Z3&HnVA t]_Clѣ7pڄ 13 cq;-8|A9Aw2j5p/ͯZ>i>wQ j F|)H#Ŭaq  O!η:QH1D{j<_FۘGP>.`-;ܷ1<6оx`_WǓdZ[W~w8\Yq_~4'}Tk^m\^%Ֆdl*ۓ AB0iV6vK=Pqͪ~,c['2a~o8͹~^ ca3й;g[Bn7'9˝ec)y=?Q5Tu!LťlS(yKaU6'˛&i鬞v*龰/u0Kty'tqwI^"_Z^\ix9=  qQh`w7vZHdå9eь˱1km-ëY6˭^lԏՇnc,K=Oo.fv]9my0'YY.RFcwae16 tP(x'Me/{VK?VʛRkO5EC㞏5Z|Gyh.J]#^$yuy~$vsg[mvW:_Ac+9>bsAq9rZPAp*f $@5C!,ݔmOE] lfgS/˞öx@M}|`hr^#=eZt_g?_}4( u_8"Y`|='Y{Y&˔#F%nt 싆0:vUFx?M~q`E1,H/;4Dk93>s)F3}Jh̋T3!s_{SXz){dz^goLQ2r -2`-6SȷQ 0mU_({il@1 j*F5B- %~ c=jM͟S]!իÒ7 ]lvTtLyZq ݌YF$` Ec =*ȹ̾[zJXОQ~Ħ@{^ebLZAQLvI!3B^XgB+1K}b2+㍐[d.ԐnB =üO 7SyhW86 u=49lFdOV9ے{Ͻƛ.?H~! ,]ZWjاIZ|.tlx%f|F86*)"0d4ȦZ]X,Vv(Q|JTsv_x@%4?Cg}r].倝# c;EIha,}oizZ<0^RQ}1۩Sw xïH*-R˜s'DRVNg1 ſ][]",rx-Jٖ&W#B!̸%r9@_֑X-[/ڞ~2w7c{$g̹f^>FPdΑ g.gdn)= +0*@v5Ix z4aAThZ10}/W~E|ɸoݏ='4|9 Lk,"</9jm]椗U3 4{׹Z (v,qVI`k#i1)s&{ t]9&](fmX jRס=S7- ^E=XѡR^&B-*YIKc r^C_,H q4q@㍊TnӟW)b1 ƥ/71+q#;X/yw}T !,rͰSxŭ=РRd"J)W?*d|MVwx.j6Mxj_v(!Lp$24(.]-^յFpф" ;X4.,Yp#ib}ׯu{ѤdQێncLD)*H֡ˏA=w@L1 N]hgBA[W&%.jA:kבu={x3)(b -3[P,U2Xqb?/ AAF p qsLT8bj8zQ4_A>^zoܜOvF\zl ':X TÀx9w ){MuDo ȴ pҕ7~$G)p; 3LGKYjX,4ecmX2TtsZW; abU z+du4](GuԽ+ rsvv ;xx (l#em*D,*Y%ݚ V`dX1uG2VQ#{`{?,y6ڍmRuږ'gI@ҔB܊RT-kQ]V qA~Үc0 4 ~gW;&dyR)A,|])CC {&*ugRUQH|O"+I*Оnp0mMӂ &/XCr7oA/.y0sC+Pz<8w5)eŪTB*O_'N߸Zz$hX@.>tI* GwY۲Gl a2a-NG-![Tݫ.VO~1C&3 s^s殿.ׯ~o.KWt]<>*:"g{x\r-=8/e{|Ni$=']~ c_jYkR+ZAp~_۠;C^plB1){|`tHvO*_q B::NzQe6_ gwqxh[䛎5ؿZ_wޯ׮_|~l zr X@';F?$rȰW T4?Ew_/$6M3 `c4dQٶQئ/0F7h ]1ܕ$=rd5!_n\o{VvƊJ*l/- .o^_S'Q}U5_FrYY߫%}ZDhȅz!4Im8I:kJӅpBc ߝ_': =Ğq ?.pSIV'BB- *H}DxYTQ;K>F/S]8Yr}S~M߇ R_(SV_ZlȥvYXLհ0wqr-VR*_Z-KKR1 RIuF{G/Kq[.PPja!5-I}Y EGU#P}L{b{N_Gi u Gz" 縁A?þqIqnA}2o/zE7*%[>0vitq<_;ed6~_ҽ_hpV J2ygy ,{zW R|42㦉NO/-,znč"D3M@x?ܗv'w~U}9'Njb9[ ^XUbo(Ph G A}ա/'x?e￿p,wעjO_޽^ p<C,pE5k3 Ǜ(wcA] -fRyL1Nf cR!x*8zi\R/r_hmj./ֶ\@uTdoo2Z8 P0Yq ڡ^ar?,1C1C,1C1Cv c6)>/v]I<,2pa(I?I0bBS'&:5ZfU8*OgզQ&C<}ڥl],Hj7Q.uйWۄMRgk9m#gG CkTܒ*G%fkAD "k+~5^q W%UZ֫|X)`xA`~1eU/ˠ˗%.fZBsBrA0;q~aL ۂNìlK8VyMUW!jlȠP5 {45K`Lb#nbbhp »38Lp*L\*?DjI\{=kԵ.L&WjͼLPDFq!OH 9o}?/ɿE=$ Pxh0a_3X;]Q>~UݫI_yw}y?RĢx%bNaʌwɵGwcd}S*5.Pg8byt/nՊ7y>]M40MCF+f jKq|ܼ/ŷ-|/ ((_QLe/hR7UՏ֯:8${J1P H% j ۉ8]chu zJK<[\oL¤ 2v?5?jT7@l t@8bKkVPML֣I%lOmg[7Zxg jF>bf~_PYl$ht-=OOn[GֿV}EH e &Sd>pv4&CT 6ChCJh7:0j%w毋pt * |j/ !}*eɸP ں;!&_ ~j&Hj$Wd7Y)+S JZMYBpg%4 btDxQUoluCrעuwk%K 𯮸'U] 0=CbwfaոF3ܾ?"Y}X7bqK4q! 8/[ٍx/B{%޼,5LԘkL,giL[>1.69`VTd(b=xGzkW%iQp?&S.jBbbVAe;&f1)YHr4x&->!4 RaU]jLӗ,iuxLJA& .%Miv cbz@j띟GȧT2H 3+"`,g&#z?<Lٯ2TZjUnnXÔ>ZUS2Ҽ2C{\bkYDjUA&y/T. yoN@QԺPR++L!XTt_TH&Vk-CůO6CnUr0ނsϓy 4qY~2mO=UVeS1踄CeDax=#\\ أ }D _}VIJдWۑZ!goS3yUv]w y\f1]OwZJ)UHŚ,"fT{== ɏ%K8"gBoK?._ /]^<í]E&Nf +w8D$0E}Awvc>S0 ~^c={w-Eκ[GУ%JB_›QF:0w(c[(xnAF"d쯲N_LU>_Nڜ~_ׯ~Eꬆ9ټxOLy/q8`8g@R-cG+!Wr`ǻ9]8|'ܢHY(vix屹? &PETTa*u\-RsJ0C8T`34o.70g6Ԉ$b+( p!xP!Z*اO [uJTpkI6@ٓF I&ӗYHix=5!]U^_1f2q6`'<]K[wߩmQu).=+D/i%ԬOwqW㔐L>jw}~ONiL?b<:|ZT g8})iVBFiޮ|x AUo wMK|~+ت-`b*D\G@_~oʃk}߿D$/==V |(.m2ql"Q35|C3y}=" y=uhlSzzZziѝ8A׈ޓwsn"H2IѤlCr_^ D =Vפ KG:k(GxǑRf쀇@t1/˷ A}ס-ܞڹ-իkU]kS/t tRCSl؄ЄԞI ʦ]zp PI.;Qr |h끐 Pc3<@͸iv$.&;sݫZ5__A0;]ZG|z.^i||%,ѱ>Ӆ~UY y@i-2.M4pz€^26 AٽMA`'L<׃yEC әTU_ZP1;h/U-|JFh\޾\@sJinم]T&Ԃz<:smM[J-*LZI*vGk l8wL?k5׸EHRflLH*xt`x* P~y)r:WJCw\WթuݭH\@V3qMI.ehl 3AqYK$,N 6" ;xH*Gx4ŽKmUKh+ $"[rob5 .75Z2=q?9Y]rBH7(DχtV+ @q u2pu',S>4|nqnm\{%xꨏE[ޤ݉/\D*a>^@ ¦JqFelz_A>tKW5ߡ8|JKVEZH h`'r9#+nW}i9e"YrLҸȻdC'#~O!wW ,{FS*r]䈽>b.]~"y՝2׈5*%Z Ls p01l$  OB!#plWo.xC%%,q*UU?rOw֖J2[*WGMHUR%7ˊC.{*e`Å&4z]eHKAZ*TL>ndkGn R}[u/ #&{Wem%7[)_>.E_B۴B&OuA6K _ʔxNXD;)?_>T ђ5GE1GB%Fm\cQT${ˑ{$PwWZFX` 8h=g/`B2;.t.aGt&Y9:7ޠ[@VΌk rwKn6D&Mɴ^솗{$+QN\O6T٩m_֟ŋ4 b_5>Nv8:=*q%\5VLCBPXmd ꅼV~*E#b'z4cV~HNJ|A^$w%$GQ707>St}4ص{rFB{TߟzBZevF-Mv2;{%;vx(Ԑ& aA2`,DƁHL$! BTk֌$߶c.)GKOa[M_s%ۨ V?v&͚U;߅t~-:tG~дk.28`y3ykr@{8_ m)Iq >S5=wҍgb~jtGnUF>S6"@^]uftE!(8-oLCfL_ޥ-#Ct. D @Z"T(aA00`X* @Dv:窩ujWC|#?)Vw[ _82: hx}3}P},$ūTi]L- 19EFqpo uw@qX;BNu-9~n_\zRDy%'N]iB-]O 6 'j˰ܓVisWΐ0 f 4T} S,|՗{4y^e]He,;=Vc5e)񺗌m4C_oNe -d62.7>ÕAl[JJ-k殻p{>(}ukz>W!8x/p:\|s$-eЛpP@Sz ԐF+d X( PJ DamNJUfz%G1|ft9E~V]߃[k| |6^G&*hܶe|k^yܥe[=U=BEDSu!ϒg!Z*rJuȞ<L}?*gްŮ,5/Ro$ L>+oMq(]Wml)Etf{\(N1oJqU@. a`, !H"%we]V.5Y+I :x+Gxy~MBN5%ӆIƏFzquU{`Z)\H3r HW_/&^QŷSo=]K T9T_ue9*OC'/uFHR-}e/Ts%A9:YPaH"*!Ac XJ*`DDs[ʩ+*J޶8n_֧d+uEՠFV7~~pՄ\/cIwnfcI˕|jR}2z|{ kdp]^fXXz*Ij@PANBB89J$b*V"AWh":]'Jޝst'yjL_N L^Qǐ|u$b0FZ(O8 T(V`X0:bT&YWWSUp'A?ۥE~뺿a݄l1./Yi  #Փ[I5%3cl򿀓Xr\Etb/7}x]49 ( -ٮhL̡4p S9zkzQlؔ@y,_\ a9pfڏԴd EI#pw A  ,]}bZ'_Rl։|!D_~#]4.oj-) :v@}0P=Ф6*) uﺓ~ Jb/LVR)~_~ν\=h*/FF\D Pu.!ꕩ?A(D*@~_G?,S<|(K41J){BF'1P9Cy04[d:n,hIG=R\ wIlT_;5Vmz9l( B@  c]FKRx]q,*ݢFnO'O/-31e .uz}\zڢ~픚H 2oq]9P1e3h `'VHC<sN6AQ`ᱻWh|LUuo_6/uOW@\VV)[N縯v>_'O /Cumz<'d%8x@qܞU45~7;TH"[xq>7})p=c9xO줿mDK^~'{aⵯ Q LJUuҼ038P#<qFzmHҝgP' Sqtׄj>SͿc@$<6@+/*`:'? Dhg#o,6VQ_Ĕ 2/V^ I4|M ._kk7׉&q'wA,=ѹrSM)T`$oPP#Y ;_~Z;VKhV_ [D 2Bz/~S'?{%ԁdii)mydѧtnV0ܤ&Zl,3{pӁ<!T * w'fd%DO}daJO2S%c-Wu5Z)%(g Hg&ʋ'}UT$|>?]9U5^HrDE#a/mSr/Rʲ_"z0Wzdl:.!81Hz*aJnEgIscOˤ܋ڍvzF餯қk'e)vU8@I|>TVD< jhā+#*J6<RpV^kS;lJ>z0wƒ Z.V6[dXޯ3% &dž>{較>W{_ivXd4_z\㞓J<A0VTbjT6AQe^fqSiT\\\إ\^ضmdĔl/jO>|wۍu.\~!q뷽ajS|EwKW׮׺XYWKkɗt1oWZ/]!=0X=OWտW IeGsW;_0$m*x+f[?\pF f=U\kW'5z~ 1QڣaZM%ѥ$s܏1=Q =b=\|\f-9slf!>S@̭ϖrktQlU?ѹ=P!"a7[Wo>CP07-w@cWK%[t5VB Ea>l}.9^ (cV1*?5BzՉ=XW+XJ55J 6k(=%<_ӍJ\XxԢ,Θ_HF˿PЃRz\m(ܴzO,xoV5[~D:R}Li3n޺/RogQ8amoO{pe1ԺcTO{R Xc*q %89J{i5fMG__qWZ[GbV>Em޴vOO Uk¢UjD*%Y|@^s:ǧF8IyӅgNf,IbP":EmXr'U*Ƒ3ksSD%oؿJI+8g`>ezP%Q35EnT&teۼBeclo>‹ib-|rCY3 &jR{iwy8KN4T*V$O(_%3''dqد6g&&F#it~Hw_硇K˟Aao{t?$H[DڜЕ&)}VK_unj]i\Qn{Cf{"+m e7WMۯՅ! \ТU9EcRr߾En v%d$*)Ʈ55þrLjd϶5(eA~߯_vyL2FFaZ/Iׯ,S/A b~[zݱyLZl)mfMsHfZi+cQ2܄HkMTwA/.Ky/A`U \Fa`ZW`?U!}|V!퓪W ջ% 7ugd!rR^K?eIc#}U6~Tyld,Lt)uV r _ X}B^yDJDZ߁N` *ti_)eUϲNwR3I/b)'S[GA٬#ߧD!E* þI~@䂲AkZ¬0P3a< i w^u褞e Lv6|ɱM"[bުU=p`^^;#{D[s."A+ U:,nUfDu2md/ңUj/X+ZjisE=keoSף'x{^^kY>ʟ46u%/U!=Rzԗ$\ C -'(a'ԇơ^2W|a2z>HSD2k.n"o3^P$U ę5=~ ʽR#O_jSAL_7L:I-rz+֤/]Q9L׿?$45z3‚Dm4_I3anAw0;sf̓lE;V"Vhy$eOɖZĹ1~՟Dzn0)^I᜙F!5@ =Q φ%kR j|Nvxzդ9'ު6Eq ]~L3|kdeA/ 0gu^'C[;k'Vr u1+8&T )ѵ$vSkY/pH2b,QEH8H~B{v~ԲC?h }~ hO4슂e_d1 2șmo'/ެ#xLYOwH'ꮍF]n+l}ϝM'9~^1/)YY>Z/!$i~)M\aiP̳-'/\Ts7q7u OĈ~~&75{󈨻UcTKڗcy*R ɵ8Է~' !dys`=|y7-rj֤^8Wlގ;2^24~|y-im^Uv$w&Vc?)DNZ/įP{{Enb+0{1?++= \f}PPل@~)?KE/u ׀`H<1G@AkRjJ6ܩ_mƹL[ɪ{(*4z+uK3rXqr*i%тzNC &J+G]%ӫywkjx“wެn' ֕8r15NٻE1^E)(͞.\~E oC[y-Jz]5v?YwǢ7e ZK^޿"!]B^6Z%e7E#yyՃ.p=\~54g^hc`.^k,^n | c:aR;lA ߂jqbUy.XXS~%p=  2%e&ʦ!? iKw'[04/U^96Q8(A3}8u0QzG`QAKk-5Vӯ_딷%߆LW4%5uJ|Z $s.\_ ?.:o5 eJveUUu\;6|UU$ Km젿J::FW˿XdW,$t|$x׻Pn&WH_}+k@BUJ6+i҅8;PQلM$*W% %WĠ@ԵhOmK^:/xYC~ڄ/3}Qaz ;CxLm*3zNsVV)uuv}$͘2ţDzb:#oi5B!ඳVmLAm&FNx@ᒝǜS{@B p2M9_jr"4mR5i?$#4#Z5߹pQya\s"RUXcMᆟ=f?bDPlo@q AG2lXPH^_(UUV#Dm.GIXJ bQ9x+B,/w@L!po hz^_Zh8HdX?(0vȝ>P`z}nꇟ+,I/}9XcMێkS=A58SUM7&bq? ^^Zl ڭ_XZ2D7JPz2$5!D/J ͬ@vϨ9W 6?Wy>N_l$z[G<(_PBG}:a[^PCt Mh]<39 5LLLX nzax60-/(}&5Iq?P~aůqcn9}fOJrח˗.-%].So{rŒbmz(-+^|-{9%fKokx|+ׯ^wa}aqPRPՍxޣY邬:GʭaZ'=+^$<lhpgjWj0$wwnjDla1fRj[Ge?uY>Ig5LL?p8 x1  Zai6/׸zD]o'j8T0TC+PHP .ͤ2>r]0#-QUXCBO^ۗިP7ZŊ.D3o)RjFo{l'Nt47#8g[;-ҶpQei8`Km ï7Dx G ڟC}߸HUiΚ_R =}~ =*G ʼnh + Җ:dK%?s*V.D׽w=La3VOJYX|n 3;M2?bİ*Fv0*\"F~tJa?`+6NjZX47=oA  AӿM]7쨃t9|CMKNh ({V+ eRVeh~ǁN:]oa8iIWI+E?^1A~u?-hc; CŎnLj|:PF'%Zצ}_V~WqfV?:јc;w'ޞHK!%蕜:ܔ`q-a¤}vovw(1o$_'d睓8x\e8eLX :G'1Fefۘf_ozڍd~ew]̺g麎:Ebx)9r\uI{A%[ ć.yCפ֮EUhGdPq|/¥ 5_y JxdN͔{#GaWg{vB}Ly|/'X`֏u`^e1"-!jﰉ ZYG}όX4?⫕/j!aZF#nKf$J[g&*>v˰a=>JXܹn+&rnV_;i+}?Ht }맿ַ.e\wA?/{>8K?".[!@])J{^`]|eR9?:sնOA+wznݞY5bUuSg_u.m!zre$^LY],Z uEyW Yތ *3qo־Yhk~~bam2M^lϓ{ۭ F%|{/Ɯ3-vkEncèw*M|~x%Qo/q-` "PV ۼJ.%k_Ք;+\ZWG ^Fc`̊ @H`oqSrwdzNrce=m[QFcao\P^t%AI%+We|`ۓڟQܑo7ߑH0ȁdmUl||Rߺ#zHW/ZWXMxw$"c'G@p#nSKf5w#""L>l0v }^0LMzoY#7W1 ˣR)ww=ԋejǡ]&=~~4wݛy&t_}댻 Ɩ8Ybξ df`7_E Ɠeq{=]wV5E _Wz[-sA!ݳȌӞJo:r$}=a=I~w_)ihY5cMB f|+_c/eT:Rc<~weU  IOd2^ӄx)*('*A*JI,Sj{W7D;(^'Xads#ROVӳn)6~۵!#@ބY i·f+Ga eREǿN'W|ШƓ%]_CǥA}@Ԕi(?7&kg뿌hf#c0B'ˠZ5.^yg- (̿GԾ7~S=UTgFՏXR,~KRП:~ S,>\w7ƥd\W\y:y>;WBeFgx00YEMlK#@9>V7WEFBJ,=Uix",1[઒T;Ǻo66ɯ)_Cd\b\|ှڶg!cJ@JV/0@ K!&?Fioz/W[VX]fe =< fjJ#l#-4chi>$h)п?WѺ<56LCcֵyKiw%k|W}s VB%լ\Q JSO04zS wA[}s_9ʩ?OwL_%@?hOSVAj=G?LE܁-'} <2BbB,q^bW@HJI?N^K*׫))E8U=-iZm4Or/^?e߮7{:I.25}+~Ms=pB6 ߛnA"rZd\H x_:U~WXkWrzJf 57"8Q0 KUZ*8e$l@&~`G^ZժZ=XmR2h\8F]βˋ6s*%,3drEeR#cʂ6':/+?*6?gH صzCC|JO^KV)ј|_ϭuz%tx%*zW4e^bfGg~]ߊoZNy{Bj襮ՊwSXz8i_'W~UPIMzʽoQ5xC7u_IW5]+S ZoaAfxQ = _'k\떞EHŸzz[4E4w=vն!) ˂ZzuEO=>lHD޹'2½Cpz9.>5SGBzb[Zn^|&SCX- nL WpD [H&7oljA%˙2y]3~MrcXp238Q}yGCɄ(6}_A{SKXգa??īT^U(Fz"sJ53˧I:={ A4|zX1$y-EGw|}ARY5)hM&/^wKthzY[E+h_ nǤ3rh2GW}-anÒ&v>-mth&Ț&bLMXD?!f+Ec>78kwA4W6a]xeqDR(tѢ:'Sxu֦~dsK/C^|Z~Q}S~%2;n:~Dn0b~#@c .cLR 8$kmy>kUZ #;׫?F V%bV?BRYWoK:ɭ^<ֽhU轠E,G1ė<g">?H6tHJ{jyWIϿDD7*^42.?s[/>"(i .û)AՂ %H/_EMDDи&~"xOO4^V?ש}')˔I )))R1/X4#{bӚIWѳ\P"T]޽j_ÐңǗ9݄ B(@uAhw d̴(z 2JS࢕{_1S6 -; aFFl9}O~#ӵGUm>!OW_xָx"VKZkA/wL^K1Smf1B~F41?v?N}{>e䤗U}#%'XpVL_쾿nQ_W}-{_Ccz-0A#-^V~F)/Uj߫Wj߯ҬO뿕zk4t%`xk^ bAi\:oјZW4|Mmy> :|ݫoۓ)F=߲Ԟ}{ؚ&1cvDzXjsZZJ\/r ׻B\E}7yB[/*u_|IuTSsy}Es0^&#Xբ=EWe.oruҽI`28JcD5G3DZԷ'E^"V{!񓈚~ 0\'ca0Ϥ@843a3:kI]|ḓxR$qJ9 (P|Wfc 7F\rܷrUKCm`hb\4&v%O'/ !4~ 6AVM;݅'d16QS5.}|S6y~Lt <:$A0)>/S"J"RzlF8O|v zi{bDtdfC(``?Hj@ɏk]zrCm\X.4q Z^a/~KRR$'2>pMԾ!טɕFcfrTbecߗ-W#A~^n^Ė_+R/)=pެK!2c%L3x)hάx+;M`@8۶rX_E4bxK6?c?ZξB p:*TGNN]!=k\ /iӗͿʿy:qi?'AINYj\'rD,}[C^T^`SG}2}sDܓh{~lߊ'6B)k具~|S`qn Y=/1~X#ZX/J7'gWzIlmgu#ȳ }=FsTa?e|ׂMcb_}]]{f it י!^|i &}+bWkӧ{Y A#}hK؍v:O__ֿZYڹ<ᅲ~UFt RsO ^OWUuqN]Wh@\v>Y濈з\ZLkF} i^W'?BYeu'/=}"olֻס~+kI?ҷjB^{j[*V_}%Х/mWV&cd_G]o^_6[,Ri=J݉{ '~#;W֯ե/+i 6P<թsXkj%!Fɻj\6cI5~O sDULO;cS֡\THvG-N_0BF` ax,ǩ6? ]0 z3~j>>Qϻ %xiL'%"PФH#?p鄽g0Gc;x )8},˿RZ qJȰx\oZJ˓ ԆDuۚ/cUOtB2'_qD_ǚ$i4l>^]i[9ƴڷarvGu(iKD9SoܗhejH`N$q3c䞾;_'0Jh*N++q:}[Wj,*{G] -E"~)*,x6 "/,?-MqWghnjPH-a=R3QO}׭ -ssA7^O. {/n%z50n0(IwDKe|^>ֺ׈]oc`VI!lMc=_4 MRHxBW _O@k9r#4w'SbcbyS}6m4g8f^ZGh"|a IP#TPšk8uR`R:h1O` e}L;/gI"/p"#<za · s$8D >o,H㠗pV_WIheza ٨2e*KF#-ĒB]H|uNr\g7z 㧏 :9_-Iߍ [Ҁ0&٪2BSɃ 4#|a1y{kjmVuP!HC/y*Uk,q]'d+j{ix,&u R\6qyx0AtI}pE0#8U?&E370Viwvjec'Zm6PMo\yM|'~V~{'jshqnټB$%1̞Kk{[a|}_q+m,ϟ I?^09{˳jlk ikR_whIx'V7vY?rzr߭,]{Fxzo/A{3Tד?(ߋ\_' g*%pp} =e>ҩ:׺=$pkc!R_$IRnlA2 #^~l9p ( a@X"PT,E!PDNW\YtuuJN)>?:m{OGU0GܽWu{1'| fi% 0HwZZqL7Ӱp=;=lc7MŪzL1yʿ'p82S`y &ʓ A<10'7Kt|s~wf9ԭ3J>S j^h#3:Bc)Ľف$ @P,4 pF uZseԢ^[Chߤq\Jvb¤k˻?%_9KΥV٠~]z\\nepO}W_}fKUPT]P]0?nPkw ƃyK>@7J^Y@hL}.~z+w~}j`YY/ D_6pL ‚P6`XJ! Jx*2 d˫>~S<>OiO>c KbmXlQn~^/n]c\O߅VTiݜA.' k P=( re+ׄYTv, ܭJkҴ OHA\O(Y컻M%_TKnsBЈB9򢗓l`&* @PL$ J$ sL K*8ү5Nk(շǻ~;\\MWzfɰ,j)%f»Bp竊b(oBt+EvwഥGFjw=}sBsxeT>5gEʦv`%A1I\L9/jJ;ޓ.PM{sCϛ]$+'1v!ܧL qRYhXO^ؓ 6R h7ޮ/\Za#M Y gO(<HoQq{ =# 5Y!E  CtQ}@Lw}~>>6Qd ؾ: >2VE"&>ݒ8ec*`H7z+DÇ&CAأ &lg$//͑$`s7g%q\$wv'A!h/(v1@Y"x:g90(503.Y0R⪱!f0~W'D3Bk:2dWy>C;B< mMz_,D5a %he}O*} Z=4ꢟZQ/|diZ78$Hz$GI;'dH2~:T(O^Wڽ ׌ 1w 28S6L]Ћʿ@/E!pQ{12ІH[/%Q]Fg`"f?wܓ',~|=* FOЧ-z+kDao//#Ѐba^ﻨ_'J߈˓ zP{ɭ~x9*չ/NHJW .΃#PvR2g3vj != ۮJvQzrk>&.~zwfJ|0wႲw=?۩xt?!_І~ZcsEqV׷[ġƙ6Чo_@iC={d`t0G/vqne`GE7 |wn`p'6P͗K:)9UU{~>$ {#X%]IB2jzxN~2-ט>ogB 8"w c 662(qÏ3>{'^}!27g* 6.uz(W^-O~>E_B(Eo"YO&auœ55zH^57-=!K~BC/ky?*{hV$;XLϽ1]uM۩z'?ע/{_)f3j_ꭔo764Kc;Xx}swQ Y|W Kߗ^|ؼA!h^'Be 0/ nVtoNY 8}|G K>'+^YMwхަj"WSVZ?_41>]gs5HU 5li-Idm%\zDe׻2IE$mh{,5j-E'ww] ! .cl|QOoD[ʻ{q}tGjwK1m{$BO~E$Y.?I)=?~J)Aİ{w!޾w!*c=.k=dψ D&c'v9iݫ~vwwhE|f\r|NO! A$*,WįbyZ[E*{^J+uOD _~qv)zU>hߤGv\?V9|/׺un断\Z'ӊ $ŭK̐C? <k}աצyAz^{_)>ɻІ glmChtăwT޽޹T-^OͭWٮ/c\OkW~Mz_j_DN\Y1|7atQ8k{ ^|X;HM`:v6Kw^ \)L^&8Ws.nNsD b'43b!A~cVzisfrђa 0>}5㜂6o`9ߴcQ׸!ELA2/Q% zmύ]q'E[kY-2@!=epljDh)T]Pz٫#)6io䞋]UV8ڵW|%S6imۤ$1p<FvZWeqX^+K} l=IJuw FD@_?i?2+"rodD,c%d Pޣ/DT"[@ ""|/FV mOߙ{ n1AhoL&׎U^PɅ>JIN)Kd;jLUv4C9Z{|ImU(|R|?A[ >E=Xj?apG̩)\6ĝSBBqRbK v^aT36u9m:,X4|c/Q(@vtϽݬ7RlKLh4M)ci:ӯٟ>|iy+zi vJdW1c O[$RSj-w`nupM Ȏok2D\a [(Lf}ꍠn_D:'X {ABAs?e힍x=6c:$*i,hq*Ph5&_!gzyRabkPTLwyyk|d9 ciw~~<ր[ǎAowmjOZ}J ˂jL\A'Wv^g}5-ZٯЌ4b_5}rs,sPRoHw׭NNZnY$]No#z^&߱R_p€.*:;n7ľA% J}K|GdXe/G}-ѕUV־U ._EX14_UlӪ\1-dw#9ACrjbA߻\D'H(ֹkS{_B8i;:VLg&VfYXLiw ?e҂tO/_.Z~832e1%=^$>vD_I"v2[ˆ+lk0`P^s81pBM|, 7oK/n¡늓.~ߔğ?}G1GrnI5Po=}̞(BmcL},U{B 5tIEqˢ-͵2Bw𑾳 蟤@@EL-EScMJޖ3;E{|~;ﷵk>8sWي\fa{u!0B6y@GHeknkeIͯ_;3\Ou2eG,ar #=Q$7+?Y(춭{lWIiqZªjmFm ȏGVQ*/h\\gIZ*"DaGLCf[4T["~Eыz]}Wu\~wܞqJ20w*FY!yo1%ьTr'྅{C/WdThe,ղك=取YN\v}婭ˁ˽!jI6r$B$Cqz ĿZ׸C層Qu,G<'-{O2$YP ߬RQc2 MhZר >?zQ[|U~)oj93)yd#\&ww>_/ɗ [/ôrѻ)ay!hZޠxTwBY^ED "{'+3ߕf9'B8cf|Eď>ejv2z.]n[V W*\Hl8**}L]TA rYҶտ⩒"@d W#[ 316c7~$lA2篤qdw;XoXUF+\N/W=VUp]{o"  QZA Bւ@&>SPc.*Qc?x>b1Q<.`^^j^1 ht#n_s 2>OQh&'pF qTgJTo^n׻@B~DcqM Eo[_}{{evLKXn`o{^#Q$S hǮ`ai3J!, 5C۝ >2%KD{?@.|#DGԟnoeiͤ_ MU{\ּWMʋ;/~/BcTT,OxQSW},)rŋ^@*-7vﻴH޻&|8A4 -eСdf-z?n!I}5?qFE@bP|zMSˉ!7ry0&._9~f ŏ1G@!ﶰۙ4UETX \P"V+x /GlJpa7Lg1F \i2b8O{(YΑ7G %Z ߦdNa:!9+/zݏWcE;o}] 8^J03KKv k {N-}/":Sڏ^q"w@ieY"e>V>NSm%t 3qr F ;Ӧ?wWk}w~z/-03(eY4_q2 c7!P2SW pǏq gd%v{obeN!˅cA| Wǘec 9F67l{ =[.ƋJkQquyY+,FnPV?lo,3mq*ǧ()FUb?UCAqcD,>Gqߖ]/~)ywh[pz3 1g _ߛkGP:(z- @BȬڔM؀/^}ׂ뽹3^g[לiZ 'IfPy3}9qKр?v U ehsswu UhV1y~Ɖ(aF;c+ j s%н;UV'ڝ~aFRQ>ejTf٩΅zӑe'1h{ &\ 8ܟ~. qF>0w}&@#N!/빪MB9}+62ǻQU Vӿo+^s+Z(@ʵK"TVbRժʭYw.k|~{Dq럻!V^O0wpga?LDNfQe\My7b7_j(r\^KC_UϒVI徻DkZ_z}ߒ ہ4 8 `Z2(%7wYTw+jO GktK_>tlSOJ $p |@3thr,-N$ eAbK|Viܵn}q> r\!;W~1ux=___lYuYɍ[5"kJrRB֬սZN$&#)À, BPH"nu)X֮x?GwSvNAw^>D?ww%Ϝ4JGZ/Tۯ0L"ny2k^ }/ 3J1THק"aB;8JN(ɦNfP>BGv72#8޺u} kDbRPh"[3]( bXhF D`FWdV.%5.*N_|t~o_%zSYaW<΍.ngWM%̄?}NCa=>tcFԬ}ϧClWN8>{kk|ֵ1%LxE0^.Pë)~oP[VH](ׯ_p!iۚwooL PXBa(X* Jt5̋6UujNy|eW3>g>m? iǞAؑЦ{x'7[7m5l/L#\W9ĹW* lOʠ$ h Wzgn;p >|h@܅!ϱ񄮦OtJDho;ZW%>顦IIPp ,$ @L$C 9n[gUI*ɬ$]V]^i͛Ǭo\k[O ޮ*7O>0;_[ lȀVilu蓉26"^,Z kfy/^gC x ?DmLG}[f. Ѵl[eaZJ)M[\}x&F D` `,7 a`$ bU\nnʄ|yOW1ّRkMSooSV ~&~Oh<ߢ(}BY8 NČQRC+`Pyf6 ϑ붱 fRUyIo؀^@JkC_7hDQА[-bneyvObF\P/س` (" P @PjB&z)7v&Uy#U{&^rp<}oS-鶧r{zq5cgӪV;GkI˚偛S֋sbTY۪2*TεmQ!f.}[ jNkwG.q 27t&khFcv b慬Oê:Ci^"I`8Q3&3z`fm_Y_[zBƋb2f;"6::@ɁW|q"ʗڷ K7eZ|`ņZXlγǬac<"{wV:X-\G֫)҂q};PH4Q)7^^^X}\^_AB5EI >0ݖ@x4hZj(l/`Gߋ?oJRlלC zzkoݫI]׭UzhA J2eϲ0ug6k=ZZu w0w$(\$g_qj ܤB??+WZs͘:{$]PXD+ PTv"dU]ޯ^ ɻE~:Е}9=|[Q9*!vM5qGqnfO˻Ms63!>K͍ }Ў&Td&[ ;uf. _.sޱP  \t?oKsd#,_a)&_V0,dG:}țk' W 28 pKy8jޣ-݂BSu\ʻ~)%zf%WĂtgfX>v>(4{2CHR9;BC[?Rw fA{#[8;W#JT8a7rmF{G{/qFuT *@lb0coۤ1T Z4UgR;D JFep/+JnW0ڑɔXg~O[f^%f&Y(`b> 9@?/tҼ xY{&oEPB]Wx#ha'+E6H[kw_ܥ7]'k_ͣsH :h% i8?~Qo]a؄DSY>~ybԆwVK!_YPԤtSZc+ }d-Gwh/̻k@ Ō-+䇞VKȍW|_ߐK>=E2L $u{0/ DBs@dg31GF% ! Kl'etBt/j].?7/8ne]}ɏ_f6GY\Φ ,07t4:=~K/32{/#ϖѱZjG;HY40@[L;h*kRZdG%szou{ͅޖ઻Lp|@TEEV Jr+4ґ0D=S]9JģG? m^w\dUךx?(.)r3cEMMug}JW~u/PQs`U-5?3 -,e ̊m #+s/ v4/-{+ I5A>Jc&e:IT2Iֶ C=by3*m'KG {[db.j^[A X!_m^ 8o0/_w#'Ap\I`.":s/'79q$L.Kqkyq"8:8Yˑסx%}XI0z0\h݅s,]5ajl_HVx 4̑_~R (WT%5p)~#QgF{ʽ] Jc)~R$~Qs{R}9=~$b< ,]?/ Fc,9cGN1f#|LUVSX'ǗĔ,i՚g (b8}eAey`D,mKh$HR^_3OOj GsPV@eUz影N_9<\5_t`,ӗ &E6(ݬN[:rsLTG{]B8=D0Cup{Ç3=@nv]pU#Q"2!bp pA&w^UV#k:~7`ֽN_k Gne+ׯ4㴓h.C@Ѡ`^nE/{L=Ӑ 壮]K|{ e3yN(RL:ey*w'v^Y%}װPUv!bp6+bأ]DCCXYrQR#HW.MbF7)R3.SKY3Kc*eϖ*P: hKUx%=t :1)tJG'4uvpYBMq@X;p~BD!0lGWrpa5wT,ڵ@v]y7z_WIRԫ7HAYi [] 8 h/̚qm2jP`){u=XYJFk@1/Y(J(`3V{ 9)J2[t<A!XC0T٨MnL+K-f1\dصIy=aOAUDkR?_=2DLX遦tQ VS'lQ $1Э @ E|e\-J/Ro {0,`.܄8<>jwUy TIมY|'0u$!\"c9`'DF;.b5Kq>4yBc.2zxО ޽ԙṇ: Z|bf7!M(0v"&`poRFZ% όTɵ'^;iHjױWnEo9J;KTtw1*]uhՖZ)OMRhBX#ecrc9 K֪=xt ݣ- xoA 7 / qpQ'F } :?SǠQ >x1XUw}%㌢^w^Sae&Nba;Ǿ8#d4׺AXܲ#]} RA-.*~ ׈'o +/)$Od::\=ā&7\&' n:/bR!\_n{F-of<7 nAgO_IQxA`[ Xr>,P;*)el>r@l}L^E< uN,@+/vSSc&5sC)iCj 4wz'bܡy1[0rR45@_Lˣ3_ <xο"(<,1˞+k˟> 5jԔ4qV@8߄m]}\C+9?wi~ʫzR HbԾŜ39`3Jj"'鬒% d; j52Hov#jL}gفЍ(N+ˏAћbܘfXrC8D[)/yĄ(= ; Odg:ۿJ Qر x#>8̄6XP7/" 5gy9Zj|WyќeTKoW07<mqz;DE_כZ}  !^ɈxԽU~UaBDvkw"*of vh *ZjN[~+͚kiWUq`+jnak_{8RWrRX&t#Y36$"/\J/0#;-{ʽZr}OYj{?1aI;sO~6{wTg{T:|]Oz_,4pBDOkz&$8#3?ܟۗۨ}G*zp1G'H8%ƀo N<@eOsu1ߝWswAT$qbGc/ikءOacV_PV;o&Mz'#7;xNyX̤"j]אDY{>=O|g' ךzs<)Mrhs\9oą Y4&_vlș~kƓ.x5]a n@GxZN_=k7hKSlӜ9|ek (ѥ,.U} gLz{O% _ud "ܒR-slgbb"\y~N/_ w>o `@oH:\GjXES*E aG٠]Pi`ݸv#]aA $A' wuLXϗW-n?K\v/Z2q+(78hX WalC^X(`mJ7 en r#tu¡8FdWeoK3\ ,| axw/(ilXJ=YwchX}X@xa Lp)w-xjӤҬD|ܪ^93/[=4#}2g@d Կ P\aKQEQ}`}YDć1%"lR1pGbo&0 n7?փmM&A7wq//v4^.q; Z' *D9Ssayf..@8zEt! [بxoHlOK XXG0@Gb/YTBZz]ST8 ^_GA-63;ktB U ̬ 5 b~@@mP0Z6c l~sJ?/wh&_O8xx>† Оc/Q L?^J _[QtfOmC'2 Ag#߼]P+=uj}\%#&ׂ8鏿e1bp~i9xq3>r,r.R~{/ܶϗlXϏr ^TH85c3Qf$11FhLl_y6QK.6ȩ { ar8*]!TV7(\|a C~߼aBS.E+X4TlÂeOMQo":IX㞗u-腛}iG) ؙr~>ᵎ|ՄlJ,ZYM3SK& b^ ?LAfȶ* fnoh Pd9s0~GAԳ;IM,0mb%GZrDr} <2OX)5<,{NGeKBW/!7᲼_#}z\DIŻվ*' `&kgIaۖ <-p:X +l,JH=q>=MMI}ddg~R/M?1pW;ՊG#og|+Wv12BѼv8 6S_Ϭ't| g$M|HӮ?0>N0 ?E](Wsqy}DeGMo5c ]4=^]|N`$3 ᚕ⏧?F;/HdK@ԉڹ2>B-+p@H,7؞{7M܅ᜅo_A&Ԃt #pW5Bnm Q}' tf0!v~ƣax !ZX:Kº{ ?IW[jqx#949 {ԗH/' 9qBgF}2X d5RX<weI/_qq|ԙVx(/qu~FӨ[K P2v[Wb̃lGl<Ğ[X3cL7jl e9Q|E2m:CZ]C0^Hk]b5uCϵ/sz>xԤ[f ޔvRao͕ Ja%= HR.'6qy!漴kbFs͉-&aNMlaELn8l/CQuMƌa:HPJeP06X ]"?EySaQl7߿Vݯv_+ޒp-J/%%DLS:i?O%cm^.ZPGw?IU"H+Ww渨Z֖&Ɋs |Nie-:}` |?6ơQYh]zo^O}pw˗z6 ٺz,h][0=D'R9 g6|Ĺ89}iJkR:>(bNѬtVe\#- .Usby.`Xga G/Qİ8)=W^K߃v^%B4o0PB,HBx5| A'lJ7wv]WzX\ޭ_Fo, `Pww |wخ?~ EMGiW$n:,i/H{c WP)_Z^O'z}kڵ}T#Wku6  2Vsdr,‚'lk/v')aTz?b)_LkXE(~j L35_R{Qso+yCRR|[N0()+s QpRAH .p:N|@Sh'CįvXnǺ0ӱסWU;~y`4 ǣ=ŠO?F TvfQw YC@z ջ< "@_6N: ρ%\a#s`| s12Կ/%E<:a ,T9!?,4(4!# s5|@?nT =J"FFX,H2)3fuY ;H;kӗFƨimzd8Ņ5PqK[y Z=̐*%3ac1:vq1}"1%"Ec%#,~r~Ö# 7I3}fS#d?E%vI]{+\Cc a8IKbQ$z\9+-n0LښYz01tl=Fѐ3nbg!lh;nV" =?+Q-t"i.翂VӜX<xh$pxBz*v Nԙ4oԎA߽}"3sEy?X n3爵'(! <@bPT0>5K0MTp@8#A߄z|6/:>\&^"QҖErg&$iE#AnUQRݟLy6l8X~?Z6 Hc0Ko0A/wrzd˨3Nm yac=z*'^]~җl5hX[Od!$Bb?&EB"wIbDVpFN\,ߴLUo{0w~(i篞_O\8w|:Ϊ㋁W9_s|YK*Ԝs[4bwn~6T |y6>ۣe]H _wUavY Z%3W RM`h,/< Gxr'S^JwfS'?tܢ@H5sYY<{Sҟc!y$fRx(,#@P,$ `P& ¢@TBg}%s0z^VWqRp8nCҷ]~_I~woˆ.+ƽWX j&"5~ݭa- yj;c9O R p*زw#s~6u|EWdRXz jMBPQNeYE%R׉O*j$+ €`.$@*A3Ϛ;5⛇Ft:>?k?3?}o'͞ܖ\$$rW5PW>&L=0P8RԡۛJFԋʏ{ WƇǣuP- `_gk#'/}{Nt<!uYj1JVd?Y\((TD @PJc B9+|oMUUudݸ"춟jkG=\cHz=%q~<%)ϢjN)u][o~Bw|{=a.h:<.̵ւ5RWG^/!QA KR =:q}>ی;v,']E]IUt$2(T2>;p@䌈)%} 2$]˱>Wijk:H!zhLF (@N{d tfnZ 6Z \\:mgsg;|7R(K,fB\wlM)z#qT)SWk=bH<',pAU܌zN^r[|}=r!DQH* $/f c@%Dt:P ,S1$/۔nE=~wo& 4>&OǸb,P4̱TZ4'*'HqBG`HXd[aF:>OprЅ%vi2 ZUkW~O)7Zynk>W| 8 Բ)(Tlu7@TLD AhD5&ExHf:?Cuh>%0 o:zU@rs(G 2n0:(x};G,?(e`I#8˽j0ž`Wg/0|!w`jxY7c'nZHȕ/VMI}I߿O-" l$%78)}7,=vd fPؿBMasrAhԳi{+HkcK"4DȄ3J( %@i>RyNd4Huy=r/ k0#a- >l^(,8b+jH~ W(;.N^ Y9B<&w2Rd oZ̙C4JH8j -_wh}deGF(\qhcM/}G'*ʰ/¦+@>Ü}'E>(F.80H]:`9;1XV\Qp,y.9B@$ "Gjtw Wz/bVɭj)Sj śSvh;M1ÊԻִʛt9'Ҽg$l/_\뺵ܹż}|(1~`.(rd@%`B8XK/RIq[iTO |iĬk`'̸FGIߊr+U mٌ߹R:Of I*.o>X0y8C߿$(WL:\6Ype\68ϕ'mw>ߔl<<+͹xjYN*+9*ދU`' y>pNJ}GבzްF8a -۸T |Y{CE>Hj x~".kƴI'qc1gˍj\ ϸNn _]Y.oNZ'VD(]ƚ ώE6݉zv;͐V:rد:o1e}*4-z0M1V) h PN bZm[B6 )6=2 ";'7߹x:tsm%唺a;Rwyd[%|!'ֽkK8'8Dn|澲zn?_E? /-X%J1Oދ∆PڢnB!*AlAR:.0'O1{$4>8euQBPbҒp4{U*Ae, z=d}!tߦ ԌK/(d$Upkc"-)7.2Cl."md׍1Nl6u+>V_爔_wSz<뻳 3tgt#wEry\#wtC$V 1O%|OϨ!EԺqe=.d'Pc-lKL,۟A'r^Fjk h_Y(aj*#vWc'm(dQuO(fjf͂H\xr!Z jhQ§P cD*j-CZY MԝDCS~>2(ZqPxߖ%#ujͽ:Kf~IѸEZIICMQjb4u:HH o^=>V^U_IűTFBav>+b(W^K*/{^8b} y\xHh/Uqu\Zo>8;?՚I} hZt')i;7#Ǔ4p |  zgn8I!-Z8BZ/,r> sT0hV}@@c~- wuŭO_M~sp#ep}~T+/ !&*au~{m~~\"BPpJy1C?|ԭhBG?I=k'H*Zڀ{{?{jǥzuzׇ7뫋\,1,NтqQ `ʛ?,I\DuWB5}d}'W?PX0겲82S#"# >JגޜCDm"7q  wx[}9{E^_űoND͎qYSAfPȔf+˛eT*ᇺ7 z+_׀OV28"2T ɻ،:,28 `dQ*#Zcݍ#i9xpop &2~cc8pg?-9<;\>`SjGa5Pĩ+?ﻏ% >c alMٍ*5) Ew@Ҙw)Zehv5XV  GSfL+zk(p[ V&G~!T`d¡-+⷗L%?X6fC)\ ?(( z@Y{JƓy@`/{$/Y9Q\ʫ3G>Ў!ӨQ->)+u\/A5=n:S"E` .tW%QQ{o- ":֐1ҿp`2ׇ1"_Zܾ<7#|2?W-K^AV}޽QgA@zcJf2%cp+DJA7ƁA$Yoc^P5vI-~(,y |~6= 8x.ٸ/T$pXj{v]c >K|A*kŗ/-ј+G&}psIv(_  zzU lZ8uO[yWkވW`=!f\Wa0.`yF2X*-mpYVmOi0̭7/4@ Hp\}O񦪚ϒBJ|Buf{ IF|´6kW|VeR#aXA>hK'/)Y _r1-x#9Z: @Qr(pUf1_.O/ ~ ʝS>2>H:&,XU%M!^Vj}VLyd\4[`k*.V ?\c'yXEe!cyxudPQVW~NU5E/媘ׂ"{Pѻb)T;c<`z|K4by 1OƇn |7y?k١p*ZՂBLn_ఄcK7"n:\I{lU4jh)YKyB>dnÂK-hV0}ӿ{ niB =7B|(oڭմ"rw@FNbw^{&ړA'OBe..nC"W !Q$']d᳓#y(C=EոE{G~u~1n5! <ҡO,OkpuIaR>Xxيp]azMCiA)LLg.YVuMY}|]_cSfaUQ*(кڸ bnb'(1BTlj!ߧ#,aOʙ+(Hzz͍ Ym$OhFfQ#j%x\5_u%0Tx&]ADjIqаH+$-. a?0Sf!Xһ߾ hꂈnם/_m(߻nebuq*ssD4+_:}\GVWx"&KM06a[]0 ~?L7;vH!)kȤm1 ;/$ڒӗBQ sr': TY?6_9T?|Nm\=Dfyu`;dZj#'A<͑t "_ZA JTސ .(&=j .'h,Ȼ*GIϣW?]QZL뼑ff9H#jMRe H?Z-g^zAऌyc,mg4q3LF,Һ6\zoޢDWIw0Aiq%MM3VԿ&?~1[% 9׍Dufn=V^xb\hG]؁.sGw&}^_W+p'`QYpcE@ :ڤDuQ>Ϳ`S[?rX3u WdD#w#" cx,"ņ_I.?H?O+AȎ|["^Dbaz{>f[uS۴qӥU"j{Fܣ=J$V]&}@6.\2}D< <$ֽo}|``퓙g%oR+7_߫׫~ֶ?:!AEjEA]h&ϴNhS^$wwZBspm˿0.s @%7鵓dh$!=a "kqBU'D#|"Ϸ%w/OM=4sCx:>Kx!) v/p:>AxSXo*_*˟פYD^+Eo~h&#YY2;P Zu3A$ԸYl_ ׎?t&]UoHNqN:5apX6XǢV%9!0)TT17LJ͢R'}lIΦ>~Ȟ$x_$uusI<X0y>\} E!)-*o,Xn#lKW_4bXU QH8Sc/.ۯ5F'UR#7w&DNUv E41A//ƑǾ:Jfj8ݒ1 6/-,OZA\y;hݒ Wܿ+uMu!5/DYTb#]55ܨWg*5jgE2ڏ|Gs#q+ 3[܂:Dc u/oGroܖ D lKGJGnb?BSȧrx b9pf˅ʿXAK\:XDAU%Rqh*Q\"qmL񜱽:v!+}3F znhJ RWtp"CA!|K/-'1ewv8:|5pCs_~wŕS ÏVXc`6ҙ~7JGor8Kw޽][7( }:B{nv!`!e-7>YI.ZHN a[/ L#ܲzL }02@L&Tx ZU(?WҮH})G'#lwQS%&OM֫7.H~ۂm۞_He~;~ړ,oYN4+-nF/X/{I}=c$I`P-Hrbg: @jŏmױ⠪yDؕQ*,*SҔH@W7_ p4Kl_5 MG򢝒O!uʺWA2w{_fVDGDr]w>Z''Vb噡5I~*>4 !u=28 NicOi(&ܥ턌:L.eQU BͷcO VCf+tϗÂML 9Ma!Dd+^F˥:ٕx.73Z9vU7&gu*%*wLŊHBlh'/}lV[/?en{忓ïid]wºܡ >_~׺xuf4s/S\48yr:)9<@~\)3@^n >8`"NDiX@ e }`QQ;%$(PU[ZQ/#?vb :_, Qh&tkY$jTqF C%?@Y j>|LW?YAҧjO۰ %ʦAk{޵w}b ;$"MfwY{-ۈ qry %N#tj1TNk'A2W2"gaDo45%L54`3Ͳ&3z1b?S_v-g4rKaA+Ly  IW%Ry m 3[Eܵ050P!A ~w ./K͸9,Uɚ#: AŹ_u  , c,c.LwH֍eps }v>YR2 &.-C\V  Moe/wF;(?i[[ M"6a,t-t!JoHW~x^Оv'U~W]=9_!;Xọ?@~@a$ĺ$w,͎vqJb\] {g7>n;1y-G@dCq|Y cJLpsĉ jR|gPQ}6'҈1cBo`TNZr˼hhTgkL\vT{wZ=_=d<#2Pzݍ)mƊQhPֵa(ZjE@(U>iyc0kYF`?p'w-SF!vKx ?_W_ =IPHۻV _ q:_Mް.,,fȐ8$9ŕ"n %59#kf>l>:b#?g{/psJZ ߡ_?]üB4rUnl^2Kub#2w. snw&:zn&y_'A> HC@ʹGLԛ8ΰRr 8 ɋۉcHN=eH{ImUH_ ~[q /Hq=E2Uy a wMelu*}'W$ߡ1w\Ϝw~`|%NSp pBDIe`(1upwQO P%01Ȁw$ȕϥ2?/α+a#t ujl M2|Ȩ;-UӨ|*XU8bMGѲN%N!m8/)b VUadEk8PDr|W]U%S4&~8M;GtH fʁz|s[1\8ocKDh+R.B_YXc>sXR%79M)~&zk''Wx*@8'V+ͬH 4!^ H# _Bg=k4y'ayG,8!-x&]7RY/Zk{=`w 7MiJ gO KoE{viZci\:w{sy*ʙ.me{d}w +P xZ ȯ`U QCUR˟sx$7婄~>| [q8m}K x+3EwՆ>'CML JĨTܶ%fkyg!3tv,Ƨ͒I AVc` W:!.[[k)1-:D*Guh=9`.։x78, Hj/&v $P3{ Z%T0Tu nnȵ|yx/ {fſC&e!CBc|2& !NUeNrKǯ]1۱ n}Ґ<V tFMXw^l֯TG`ezTY#Hm H8oG }~OռҍYר |#r52 z1{e)|C,iVG9imv֍SsAg +t γ 4rZw@x>O2V(m=-H~$ 7zsQAmB3T盿еWrA|^^q?M( 9rA6SK젠^b=ulξ]]<ֵe]8*2B" ? R G5䄾J:L&|M[u =_/WcMm]a2j]PUI]/s1lV4slj_% 2\\ҫǮEw^_!??Ie)6|>YhKm/ϛn;`aE_ .c[Jnv>ע;9]abu?h{Dk2^э'$J |n\_ "lCaL] Ht64@m6P^  p4L,6cm'}Nd7 <4u THv3bvbxhdpInw-ã Ug4 3"S :l3Ӎ4C|Cmhܝ}.6wV հKr|n)۳֟Vm*F|162y&reX}}d 6Rσƃ'/-AX Fdw6K>'Q|Jy5,'.XǸ쥄p 9ix) ƔV +$Ԕ$ AA\(& @`(B$0Dog3^xU;x>4NOܸ7a~Kо_WЛWCbCr} /en t{p2.@<$ĢZiP(Q PxqB{@R(kh ڹ) ,H"PP, pBE9z{̄?~YR^o?wv㈍악k۟TƎo ʲт}0{Ԧd[§y9*btސ/=P;(M1:Vɖ]!Ua["hcT,T$ BBA(P* @XH AX*B&sjwZW~M =>.ޞ/y+]H^r"_ [:>K `~MEyocȠڳDX耜Gb\ Z/xA/> W񊓄Ud%gYQ 9"J`;yΆ!-9%Uq\7DoTUt/m¾pF_]a;B]~z)nL6'.Ԕs UroiUDu&8n%XUE9xbM^aQJ+Q0#;kF::_WL,몎L^eN=-.HZ'İ#28 NXbKzbZ^o`2q䴿/tTT`­] C8|]&z<1g7y'>$®36(-wD/H߉\8 [GYDӢC_ەuoY )n$MNJ S08A#IĘDf h9j~ ^s+bb]\'s7^c jYU8 ޵GO_% (ƇL۴;F4tCJ<. Ć(r^hU"d4_iw|o)iȍ`M!?1 |;畠Þ?*d&q}ʲ\չ${3eX'(ܻ{m_SځP;~25G!qHCAq(Ԉ2£0$ €T.ƸnkzΛM˗ǰU^<yc׹nUiK6V.P89Lu/ҴiFUP#`*>ntI!R [j4\ Z/ݫzpF [tiZp+̛+Jޓd"+l( pe8~A* }h_EU07jĞUU'ݯxCۣ}(`rㅒ~X$RO ;A^G6'`1\ #oQ,sbQfkgxFBu0wm{ZW8y&B`̨!|q ^9n>RB;.]A8Â<K7{5덳7&ہAHh%//; v`c{ Ny9'ۨa.+( x 2#?G575/Ŷi$0 {ÃEΖ:Ω~j'2gdwOʀK3_ԵrNx:h%;EG^pJQ ̋D~Sp ͊k_ aāw$i30X8 /NcwK ܅^y< _2ȭ_?$A!B^F/!67 Eu'[QkfbnSÄ8p{Y0W7 @% yݎ8AQbB Av/B݆P[ X?R+{j/տZ{zoW$cj}I01Q3 \^\ʮzO0"]>"uj׫z)={꿵*dq (06HI ~f8 bI.KoJILc6w-kO1+{=ޖ^z{-},zx$/TrݽeGt'{+ypQr$/$SU&\/@RB, x,r= 8.#h`;47dĆ"r?JQ4aeg(*|bS3Uq6-L3H4bdӘ-iҘ|cm+nZq'yHK2&>߻QQX55q -! M̅6 7t8)ֿZJЙ}^V.9՛$Y}# px--`n%Q &EHHX,t;}\nץTe OeZ/{iWaG<)k{Gz*bh؛\m_ 9߾\qm֖ hj"|Z4]_gۉ Y5>\ !nA1W|In}D>{_~;36`=@7,K}8՜9"=.:/5"785q/ liS,snCOp'Nww[1K/1&C0蕧$ |}n)|qَѓeB+y}o[W*8 m^PR d|a=lN77AX=_k'ӰH#=L#$nWq:voٿFCce0=̽/˲v7 8)re\y.aH+9rXJ,h߳k`W5Ĝ4+Lxp`n<5/lD+$2,^{&@ӌ=~(ɣMB'r,~v邒`-O{{`,ge1@n<Ԋ{ࠉne~ 0&|D9?%NMZTOZ)B\>zCw^K-%cT(-=ĭ|Jgo_7yF'w͵ Ȝ 'JZ=}O)p? 2 P fha{vIJ Qe>U=sZ8p G'`M b IaNHѻpJ Dq_{p0 F{ ?@Љ~?}p$L |ߩ}w!(?o%-=O_¶O_N;/ N<,Ԫl9⬊m3>kx hn|rA,Lrk&<gwyl<%hL |(oD,k6e/YI/|w>,NZq6Z w+_BADXfc:``KnԿ9}Z_1V j{7I赓d'Vh#1MӟK&%Ef)<.h |*G-f x*f5$#(qu8c? x,+b_hӐ+ }a>\Dm-@hxBSlm~3 ZO?E1 Ǝ2] %_bt_߱ȧk1Kr/k)nB XRyܰ]Z?'܎s;ZcôsK|´ڛ/q'xϢ!- cހNv3TO21 $᧌a&9v6$ I˜/FlY"Za@vNG27ae8HeZ2<|#o3hiϐL| 0J MM5+*7=8'Mzs% 'D &&:JΕX`ƯeVzLkҫ,qu@ٌqw>O0n5\s>* 6tkO^D͢ H%ſ' ^{Z~{Jo3bUw\JkD+6_Y 9a7[V| *P`kꯋyEj֬ Ys~oI{>El'Z?h TMMM 9!ڣؐPVnz?0ua|:xn6% _á._!P]hW<&Q  < o=:EK'%>y3.Rf/´X$!z^ iL۴]\KTHy^nj,X]:vdʌ`c%sf_eɰB7we^Eres4pAM߅Y{q@> õ譧{W< uA*s rQ}v4Z_KrOW>'~zR4eu7CO[S{_?P^^Za׽:4CD^!bL<0>KrJ8.bg"gi橩Q,a2`}=g Z Xܰ3ˬk 1(':=|ޅPcTZ}k߯]߯v%?לL %^!HAh,~_\hg8X/ zݯVBzu\E![lx&Ō_W; G#~}_ν='T]ZX"}<.N ~$1}prxS/B~ KTGb_֌kyHˑ04 ;M%AK_31Hˋ%;1)$_Jf}~u{N׫H[X{ dޘ І HO3ׂrٜ0B&= k&/@C+||| m2O/ p)-u,cBA|?R%~1{A'.qaQ',ScK|:`rT#-$⻱ ~!V3 ޛ;Wq [8\֏9~ȉt[I?jLf};LI)&Wi u|rߨV@tۉ0־`82Ū̄~ 8XwޢG߫~х_=S'(;~!{(]r'{HC\۾ ޚi~h-,h31ei @6TGa)̧=N[c^[lK crڧ}Z/dy/spx`WcSIOۯ4ɟW+I vjZjKOrO%f)LIy~ >9'cZ|(uޥl5[4ЙN&rI(a_\hL㧅} =%G]GG%>>;ZPF1Ӿ^^?c$$C>. 0kDG- F֪P5E$j߫OV~*LqE%:I_wێLZW2*{R.Z_Dh\~1׿.C6-4} 70c?b%=|q(?ƞ߻~̂GKib/HGV)%_"5٣2+4lإ} 8 oXQR 2(}{F6+:MU jϿ) [-0ay\1޿Sߑ=VҫLdA}I6k0!9V6i)#OM^O\Kw.Z|g-n> (Ҫs4"JpA:X4ᯧiRd'rA;l^A C4A e7i+^%:co<-,M,_4<)~J0~F*hOf/Y., V*0^: Xwb37w%^~qRS"ܟ}j1ٶ=Xɏ_[XRD9_yPh5RH{;N_+HK@ФU%F<<RAqtxs^+UN~ k5\;N_Y=?}]oѩW|~jg]bhS|Y!|9cn=ܗ.)#_I6kä탾%0:/6۹i~ W_ `|eK['ܜ#!_ZnD;V%'aXlZ A+ 5߫ׯIuT.ԉ,U \Uzkrq7r^O_0!\=0 {\ǿ^\p|EQY =;_._,o ũY?ev1g&!7L*7ѷx!KCx_w^W]SOW]z?<0 1L]I~Q/sҜ#%l aG7,  2ec6 *!<-@EUECoVt9 02,$<3u)_#VLbDycQz[֢bpqMA4w#2 &7hv%p-y'12{i|l)|4pDp3c9WX҄ %v|ޑpH XL? Y0'VjW^Xm_\׫kyo_.1n+qG>iwo C~|Xm s?a N0㣃v-ϯ'!%B0 ":_|"/TKU9p &g-b>p˖+-M^*\\'z_^ Z Pn I- 䫪9zkD^Қ_ת\+uou_DŽjoQSvGZm`bAťߕis*0׹1Zb?^O]-qô$ιTGM")${?PMW]ܙuZJ  \ %a&쳸'(4!>raw}Ho :pz#Bo/ǝr!99OUKq ,c: reEW4heZ1R7@ZG׫{^{b,wܹy ~L!;/pZruzgҮ!"\{ O;PJa렍 BN"q%ƙ}-jO>v3>jYQ BL%A1~3thOp4&:rEV H}hAWL`e!w"0oc[=}-9A6y !,V\Z&|H@͗/%I/q4Y>!Em@gFGWB\y' '?6pY7/ie| @5MH # S }ˡoDكMO;޳Ow|!JqlVÕ6OE{ZKEw}yRׁ4 s)3_hEA A%ΆBmspu"uCx58]W?)(NmA>(m=7pj!b0$qz riȯ./sc TO H uR܋Jn!0y}u> _+ٹ4\o6vߩOb|1saw8r"`u>OH>`Gא%  x`m_ x|Q!A@H>K^~hbYs=#dn>w*!h'yX}+`0c{(쟚< b4Uf>\jOKiX8?}j+X){s#$5JCfNQԭAQ/^^8+^.^${˒yਬ_'rf) 4 ?~a.8|] K?,7LIw0~_§sųz_/OBkHIL姮10j SîZ_BBĒ{; ' ’ Pm߲{Ԝ\mBc0C2p\ nA4Ivx"C擊,3OGj' Lv6)Eԩz:>D|}FOuD0T]Ba<\B]p%lnA bgbB000 Z}LybB mLӳp)AO4X= N EqN1α#5Ljz4>~5Y-H+#\+/Q z:z[j*\$?mA=OGr5,f}ܒ1@?qRwVR}ר+p5k+;J͜p p38Q(Fow*ui֊v2K믓?e];AB"ʗ՝^r_Ta/Jvg, Gu@@3?q^d/lfU򆃇6{߀tLN81QZ l#|;(H`bLj~ 5|Ʒq9!~zLѥ>Ou}f~`{*D" ubL3ގ;0sm(_yႆj їeotyw}m;iKJP +%qCWu׾S0L 3u E^ܱ_3'V;w&-bk"I]#Sx"+ c$A x fƙG8)+՘}G (_EF{<RI c]O7̥\V|%-}߬k=L)tNE%̄Ǭ#1p6l̿<u /*la|Si8ԡBk6)AGS ;~~{[Pd&$ǾO{0[/5 Mzi_(a(uAO{K\$&usQ~q<_B,;59I_"-Tc?z_/ĂN$@Cy!Sb'OW'~w0}h̆XF"1 A+uZtpﵪ=\}k\k^_ΤoWNnZZj]՝yxBwCACm͛#}4Tkc,h R  FwXNi+ M9ĩ:L9QR6UokԔG`ڈ"m7m6* W<[њ1<~v: [o UT~aq}婭jUmt2!E"ZdbeK/F@W$H&n1 s4a%W):Sp6sQG@J%3gZ]J6{-}@3T/ߚ}xcZJNkӴ i=beWz(cn.bc'0VUeUWHC駦,`gR?Wb -p<,b|yR[83̾ qK(:pzmqVfp!\Ԛ`~s*:)C/erd[QU`S~_BN )0`s#jIGXe^tEd W]{W_W&?!([r wa L _.e'{|w#w]%w^ݗ.CcI>Xrk1hꐵ 0#+aM>MN0:2| [_ -Х{߭b {Vۖs֥j[\Gz+'xH,  64+H}]'=Wu ,V I8\_T6K%A/KGI@U04 ݿ*3xѧ^'>p@BCq* > D,qذҥ iմїo͜kEU=mzz:)5Z=xv$ &z)%lWf[:yAF].i@a/us+yg*!Ld0hƢf6iVYr:>;ݸ%^R3>d1ZnkxZKdR6]k<&6\uD#иwDp$K]^+XpFjx2 #`s5˾\pxvq%p*xu:d}~L/& ڶ]ы F\7{'&Ӵ7;WNT} -Z׵R/G|6a9>ō3Uٺ[, ,{W[s~]4 %bQ2sk\DE&MTo"Ch0@UX R`nGHh}d9{'`0:KD(4O*pPvA?Vh NI '<"^u7K AZ^&u:?p5O$_^ ʓc:op菿ψR_WwUwԙEVkn?1NX{X1U0u*vWgф?ӷ-.%b ;k =_I,V;Xh#~`C> 4l],heh/;4 =`S/̜ε.F2zɵpCw{ʡBaW̘(B8HY(tt'BGL,4ѓY 9Nq =Q*^}}dTK't ǎNʩ/x :O1s {-pOoiRj)q ewV'؃$/RJyD^OE.ާ"3?>5b̫œ;+paF̭W ȣk>rwQsTdJkAB<1r'/z J͞Ds*+sgz|"_{}vR;ېM_A+JI=zYU~WRc앯)떻EjtXG*qy= \d qtx_&_X -kݔ׭,64luJU (Ê6?uLsL_vkF zv/^nS%߷!oxdD%V$$ BC@HH T& BpXn#yYs^kq^2uSNfףj^mmxAݳCy;JJwкY}!.\KH ￁ J}^g!t R%te2oYwnܞ~'F:kvJ-"",TD4 ! H(" aPL$! BaA8Xj Hd^5qmVR]pu];7Wֺ{>AE`͠?}!!'@?ou1xˣY:;m]?U:<557J)kfɨ?'dn?`~28s9 NXreU&')"osE t߼N:ZƇ*zѠRA&dݜ̭Ae1pe7j#_־'$;D%1F uCTPۇr>[Ļ:h(NX %ub*HQWyf`:Lk%XaBÀ$JXbKw5^25) "=YcN*;@ /u}Zn^vm]nsX}U}}yvxMPJ.lO6y킲z|_ dI;R.$%`Th Ăaj N~yo*OL}J:2lt8!-4}="^;|ON#Ll%3 u[Xxח kch啯O>qsKJ UI^ EXc8H V.*$@$ Q0T("BP"uk5_[u3SR/dj3K A, 1w;|߯w,k}^I}[ < \qP]#ZWUV  dnQT~Uw}˄gW,3(=rz $`YWNjBӺBC9y; iFhT,)2șia f$ɜRoċt߀I N)dj, ꝡՠJE5!:U0~x Dq$V;ԘJMr\o[ n\EB"!hMq)y4?6c frY[)B+5AǥSJ 1ϧJjܢh{܋fe U'{uY1oS7>{>XB` P\$|-Z?V*W\nY_"S{,wwA(4 UgGU-u>ymZL!60@_sY=d/zXx  rha2Pnn` sdGI@h=Q $Hk4"B.F |DLJP(a^~9.7כ]_~%w/F?F+(t)tGȎ@u/L};S$z ke[I̽7*bdp= q>%px.ߠ@aqwVa b*cx]-|}0]nLCmZ;i}N2t 播6|arQF6/~׸0"'rU daP8\ɀU} 2>?U)NH=ZfPj$ rNe2OhBuUF5aDSa|^H!P;CxW5_~t_[=yb`Hߖ+l_s=L\S7 Wn0 M T'݌axGqJ|e`X#\83l}ZoFp#h|փѯ^_c< :J0\$?ow/L_mҺ"ig[XnaנZ`e`~)ow X,r* Kt&}]Z,V+%ߺ*Y] RTԒ5UquJUk )y^1xyap/x U/0e'wj=Sk< -=& I.Y_!;_Z-ywwIk>v_z_ >%t/"v%nwA~zL)T>e3]Wb{E^fp4*r0.GK$RyYq#L6u}7 R0Bc_ ]_D?ҦMa9D3InymFxџvY#gטH~#Ss|~M33b? 2 Np3/X=_ؕH  O" Fy}(T?ȾXd?=||n|ȵ43|[ro.zq?&=y./gzg(lgq [i~OÂ]SO4Hy 3B\ }g\W,~B'KhTs˯&;H́%#_H|sށ&;tgwX΃Q[W3ÿK}Uc]OuhMЏ%-@\ A,*4M^^DŽ\/VUWMu^_i!-0-9M ^X.=5A .W.h*[7JQ`mJito@T*)%,,I`!&r%ULF8p0IϰP+B'UPoꮥw'k/Չ1Cf?z@Zl>Җ߁0 .w z\VNh|rw̎#]ugvw/ku$T2#wfC rT\ 3 X$1KKil4:E'QNr >`m]9; R3DP6*!sC׷,tWD5v2^L-nCga' u0D.u7BT}кkЕgҎ%[\t'x50"$޼)KPt@f0$;`|rʣa<#2Z-@OunB$_s1npa8gXNğP2ovZ h/rBMAx8j @fo@3U QBNRR\Aӕ\Xs8%|o.W5s=u^sVڳ'@_@e2I+U%5s|b%ׯK}ɉPÐ(8{@9mBVGh=1R`T & Ȝ$ R.ɍrpUTؗTh+}q`}h"#,UׯMOK7^:ܗܷ;ƈ/+^!@jYxdU6.N ; E}^'$;2PV86@ܞ'UvE4N@vHԓ0_Eg7TDNjL' $/-C`mQK9Q@oLbgR$DJ tpj[cjyza؂aD@==]d?-Z]]q|!Չԫ2Yuumr ;ǁem ;\1_tOWe@B~(kIv3ORRuAQA.LX/*vz`;aã^<,Ƶ-L__;Ϩ}_dNX\#a/z ךee-ȁYgnVT We6Y-GnR&%&"[.5 Ÿ&/0wj3,2cSbb(P<  On H;Uć(H@f 66T9Y.S8Q kʡV5=aPۀ>7w5CL(?86Vq3Kc*7rXKXd>pGaL(u1щ9*Vs57M7 J8>2ఐY,\E  Zf]h;qbm*ܾIz[8fE$B@=-%~ < Ɔ55Pt-Cs0Z•1D`@oFRM@P Ȁ%)^!q__o8NL=T3]M(VJ jĿ7nEq"aڻX(k}v ȇ&d"3ߏtirrWT~OK`+6+6li &q0!9KP -m#!v K85Q5L:8q:4ۄJ8xZ}O/,Y%^MK'e۫v9 >jͻ l)[4wECz ql6_#o @ OG@ ~wyYL t}QFfڢ$͠F<} [i e`}N(DŽ#WA߻POjp8hL֣C l&.4Z/_ih%&mNu3}zܶ5Vʛ:8Ay1IH0%(_G~8蠼 %DZH.yxz7r\J^}7B8(fWC>`5RD& LĨܑ|G͓*웾з6AO UY}<ҙ@jMHn1MXi/[C5ʄp^6%QٖO8T$Pň7)"pКUpa3$?O|l3<)J5z$1(QlD5'0m=16cZ @s{-WV):j=PY`^[ۯb4V!/嗐ʷ_U.@3f^,/AF|k*k̫֫ ػCY;GpOޙy~`Ucw=nyk#sg s̨~WR/xb X^֤MBx0!N ˛.چA27W_MSn$ߑݹ;~&C6qrґGvW"K* )uLG4F~UoU=% UQ $W9>ܨ#AHW8? hf?V+S( NQၭE.VSN\U(_ou_[ fRt 6c7F )ugxϗͭGrѮo3lxALv+!L|+,7s]E'N$/ΣB~#˕$PJ$iy;p|?/iA(@ø 8(I۷II f[WqS)Zo5doIP1]o[0/ CqZPB,'Dêא]Z3Əۑ,1Ď1p { זj{Sw"35FB6%̰bC* f&rgz;1p=N%hL. ˪/%_Ak˚1\ ~ kSxz<%3:}0$*DAkdaN9DRS?'Xt3TqyRaT fуnbfKak@+LkVBw9~QE"O!78q9ePF[.*{./Db~'&L^`|.~CK/TH,6?YZLZ^c5C?ayl#H$$+rF&\$2_ᗴ"nxmIk?H`Փuz'RZGyxV'Q K0U⡋, R՘dN¯T9+mH5‰S;g]d ct)eRXv'uehz uti±eQ^8CL@ӈW ha2+BvXƧP5礳A&Jjl|u4Etf2B' -SlǾ>}4蓿yӇ| ہ_( (?'Y,P8,.T %O *V+eZrYk* b-q.r{5lbb'&T| f=L,O_gkW](W `ɌYؔ, p(%bPQT75 Jܻ~h/aq5oRg]Xtb+_Y\իH+v;ƍ/F"™{pO? Q9u1ՉHdX(}‥ae{6ɟ_ P/!nj'K_K/Uzr`VLbtI=v_@K Wx-h3&TDAý  wsե"ouU0蕩=dq{ܻ/zu1Z82 7Pc@5;Z"@M\"#$?%| A!O}KT%jУ~׵ax5޹NA+Z0Čϭ9ÌF'j& ;(3{Cdx^6a(* K_X?ڞ74{EKN^Va ְ͆Jz XXbWC׉l3%iGQ> r0EukѰRЂ)ǚFΠ\ HӲ_-0Su}]SyX'}>kӍ>0R,#))Y =t$pb?[ԓ]$.4aC~K:9Z{]ZU6p-<3[Ǟ<o$xJ(H^VjIgl9$5ȩJ1 qwr -m#{i_w;J]zn%40P#/c}-m' QceŔ߬@aA*!鸙%%~GXJFLK,QưtZ$G6T"w{? |Ka/,yY#I|}j> Ә~.łnF 4K({v*Ihej<  LppOe Z F#إ~$e<0R ANQ[G` Ca͗%W$_n9SF7RX[}X~ClBfd8sDO9|)r6s̗r{\7dyx>,{a5LaA*=J9ޔ>;Cqx{( *Lhhrwbvδީ2l[{(¨~ö+fwYp|L>Ddޣ2OyB 1$Ei*Ratia~4#_*>[eVA GTc/\5w@ӲJ4RN݃/%CR]rX[)zUP^8N{KaiYt eXDh1==m$ *K EOh*ZnU5exҩ_śX8 k DLW쇿uKj]blvl>.QH镳?G;mpT0QPO@6NbݤEa/^| `GKZZ{pr2A@YLω<UK*5 v9}Kob+^ bs.DFgyL\zs{x*k^nQWT ]-u'EFbX6 qO;-O\ ҴsbU!zt2\/;dkIH,x Y l=ΛS\CRxJp8&d^'`tKRX72 w cWj¥^ ^ufFDhdzҰZmD rW^(k ؋_؉ݙejK(`#Bs؆K{喰? JHi07߸$X(wdP˨T B{G')1-`tJuvnzo80>1miͯ]8 ?=.`2WXi؝H6ЪY3r?[mE`*$/̓ |W{Q9oZ8'~c´e ImaF|_X7[j9p#PgaB.ZZ߃K??Luj>N)ҬVqV &p @TK-ԡc?üj60|m/8|5q}^DrCqnL;:BE 7:FτVˁ[RQp P e a+rgb4Evm/lq_v 'z3udMK?i3SۡF}ٖs BsjQ\j^;usYJbcG4n)?dC1e"C 1m_`QK|z$W=Q_> D [n 6Fu =sU%~a? hq!o2Uuޮ]'*F,U$-`#n4ch`±-}VmR}Y z)cܰ"bʏX;h !x>jV7)ȽW \T1_TcF̄+svV@u#ZRm{uD\mƠ}ӌ@GU@KMS"%_@F/.%꺷9 <N*q%|&gᓪ*l&uan(iԀ 6bG ci?d~V2C^\*MWU\CĥQ?;,@\ƸTy]Rע*rEfVbC$=u :pA&MX/gʄzlݷ+ /A3:Ay^H6 ˅ƇDÜ;\+fl76!j:}fORl01qjBWH|_+ J3XkCVm 0$XڛwFזk=;aa~Uw%iy!A]!Ҡ̈A[AD/X( ,-JlsNo@wPOOK Վo*~ = izYf@ZXTF(]X/, /U ͡b/6bZ=TSz &kŒ;KZ?Vmql%ncSkz% tg@]|.6e}ȏKj>> Fv7Ј:rkcER֡DzV| =YKSY H`Iqa,}B,k]",Ü>.xLɤ2g9|Acd:1s%ꪲ_g*>k$srARbK2/'Q<ơWb֯zӮO~kiQs_nQb6~Gm\:Ը"!,~ _(D#G| RƦO <;})Bu^ؔB= L'F"pu =f\Z\}W֮zaӫָ}XtwhxW覵O dxs6oS wA-jrU\B_\s׫jիұ},s}q+UP$X bpnb Ȼ. i' 01AmRQVGT=xC84Ouũ^ERvucՄ2_^Dj\;LUUD&!k Rss;Sƒ-!?=2*,Yw e,(X/Y[bjZ&ZZNsS(UׂpFzO}!Z)Wդok_}`(p hD̀ eg_`K2"0Eo:'lɹ0Y8r^o/0P A |4a[P)wJԂM~𒼃K(r3WSb0oQ,}uq=\^VH A@P 0_a(A/ ͡\0Iu}Ww72ת_'Ȥ21  `0MAc)@]<6 ~ * |D)i*kt>Î<Ԩ޿.q`Gy2s5pP2오g^R[S-hH/q}Da|/gє2aw' ''0v-/4C=tG:ZO5;hi13@DSn|,spn )p+C`zJ41#v;yJ< _  ⚱˳_ A̸iN_#SZs0+l;7h|fPP1a^~mRyO'Kg\ֽ's1Zn+neKH2y$Hh[[B'X)nPVQj`I[ /*30{<6S f_W5Ul(.cH e[f,eHB[9Jo3j\s8PGUPXDgyv­7%`DCiQzгNZ,^Yk%M"][U_@ 33X.h'͂'B#/Akk%U}O_k]u#K꽒9!_hm.ǂN,@^Zߟ1r.jEcKu06h^t]9"8B/"d)2G 9WfBN.&zi3vQ,?Y3e ʏe01žjI q)SXXP8.cJf$v3ߤ e2P;v9k>gb0-QV@{9}iYwvڲEMLףe!)m]r#^J\Dr\1 Lͩ۲{Ѡ{\kz@y,ߝ# {^Kţ ЉR5Xve^pW8lDSo\\BAFH5L}ӽ9ʚn1 ҵ4/nuW^•rSgpLר!X oJ'0g]e11 ZӇqUG#Z?LC,mL\ՉG/^ R~Du_Z gKޡ'P$H @,$ P* HaQ '[Oyt^q5I8?h"{d.aV?Wյuo]B>tߒڞJJ]+pvz:EϡaǠŽf#^)jWmE;;V%#Q4(TJ Ba &@*11'sz޻U֕\^p<>ǧuzn`#'-} O݈u()3 v:8܊7#/CSHu{&@8yG_(q`,N C|O>!N< oi|4|eIPǜN%\*(\bH9ws?2>'4zn[;ʋ.>Ivqdw;ޫh0=Ğ~6P@*3&VhK%YSoYԡ8pgcWGs#3()b"('e*Ԑ$D A`\( Q \(BbD&!3ǧ:Reju%> q_N鵮پHۗ=aَ! RMNzFy. ooDE};@퇾z0~Ƣ}H_V,QEM!>?]{м=EAV5q"v7&,\BH=I.Ti8wo c|5Ή: hJ&l¸DH-5u6ȠCMޝuSs(cj1f33lc̮stx#h8p?=W@g\@{j&Rt"BT[2ՠp/⃷j{ׂ;tpA. 1X׮־-{^Ju*VO?^\9^Zzi8A{;^W}+p :pP؆< w{Ĵ^R GH;@BC{vAy*%)I-AS|  G^n}׿^F G^^>#վ;KZ{dD\Ʋ~CB@r7$Ḫ̙j&;0_h:Rbu^1rհYQRH|EgۻBi} ZV0Mi7|zi7b_'˟`)C'$X Κ XwK@1W>w&C_uMtLz~%O{h_(:McњSYp?G)MAYSkxQaM,x8g_$=5%$5 ׫>׮׮߾®jd''ѫ$ f'H䗃\<,X Jw,&*|k*G-e{ozWνuVjֿZysc_0@+p9P=pHT]AR- ͤ,c_,Acy@S¨MS,% s[k͜> m AIUeWxMmYI< 0[;fg!6)Nf$peL|y5x#Ʀ0%qR%cno:r-~{Pg*^o|GmZ0Qv Xn4CI!*ܫt BxFCOp1DHef +{xVO5܌8M$pq/ 쥐Vc3p1n/~6xeUK(W*7ѩ?LYGEKf*#:kOJ^xo@ehNKledgh+@s_1д "-g +ᴬI+5GHt j~_orG(jS:֪Q7B1 u !ܱ@mȣn~i$q s+!aQFA">߂a8r$|V!t_~z0?2ZJXw 5!^Kpͨ# BL4ɒ 4/jp_ Dw>ߠ' as+D[j3>(~aGC?}4SҷPб77mm4"=}]%#6}?UXdFۡ:E _~RyHGXzQ)]b eBGNt]l#f{K|W{/C>pQc^ TabG`xqKI+L{b񻸀n, 5Ox@LF9QVE] ^L ,t/9*5\(Ыa.99?~A0F, *QW?M*G޻:L,&0J p4RFƸn>aqӍUp pވYO8nM>?Hc4)n2G}D@pbtم^N7ǔ=shD7Nz}a@N~Dz @׋5ԨEz~;rER Q>#VTTDkCE"~ ;x>XmɂpH0}^6/pZ`%qȳڟxLwy lG4h#ͧ`oYA <{oցVW"RF%C]^ 1id>Ns4\KBAe˛miPktSU~Lu;-}Ku B (X Vէ+=UCq$6(xdrTl(8 `[] YFe[⸻(჏ z ;;xS_?D`chእyr*!uC%e}a_b?E'Hޮ@CcY.ft s/ rpV_4|؈.0L 0shN~47<@P)@KA DٮU1{Ct[3sp>ȬeN02}>{[gC ͨYi:¢^x) q YGߢh7hj0@5!5!'}XANc6+|GvuhLiN5Vqf.fA)dwow{Ffy)?9w|} z|$'vfvI*yʿ^O^E%PHXr}nsJSp9+D _/k|n ^~謮| ~W| yMPe~a b1R]$F5SGk>Cz21FцI2e`4_bB ɀbGr:{D_!mߵ$0(؟Mm̤.y\g>?[`YIjcY&:(S%WlGSA*V5Ѡ&*&~ew1ZI^&J__{d6z!iMc_,_V֡"%_zg(zd12$Ӕl|q:8'?dW;WB[p͊ >MS,Ƥ n ³EA|0GLN;Z}8 5浩=~D!r0oa]4O`okT?.!CRÉ^_/j"9d?\q"7TÎXbF ӷuڋ W:뉡JIrԨS{s!lW;IpUDf+0φQ]{D!}~>sv>)R%Y`q1o- C"g {_ ッ jC&ΗSW [iǁΟxq8O4jw;t&R ]"{[Ls)եȑ{b$.O̴.V_'"fZ+DiУH7<|CLm[eZ17.s><(ڐ}+[64fOU5.x#*_A5=GJK By}L\0ap6K6 Psk_H ]K,"ab7M (~!a#wE skd]ȧS%"BKO튬U%Q/zJO-+ɗqjlm_WI>8Sn{Ebq?qSTbtz;M|2_7U~}j4Wwo_w'lKN4J.tNT:auOs(y)Hibc"6pA.q-ݡ}\jՏՋV+VVz.K?| "!,nvdB^g}g_)3\)0qp5$Hh|%ʟJuz|$Kr"Ki=Ou0\)Jg`:Ca|)m\PH7tgpt%x?ǣ_*])d*5ch1q!$>߇v}_h V* BykaW:C"F-|{~8]0?؛@:q̛>7ì`F,xkן*[X__&.糾~\,UDd ?ְFD \]R,x{ +W+ݯ*A}z7(pQiW`cDZR6zc1ag3/"p֘5G'86x @XBlQ5X3Gh4UX^ ?:*q‘Y-CX,b+~pRY'.Z>+b_$3ҨJ4wVHV)91_BXWewtžr] xX(/Oy_OaC+/Yv5tWbqV~I4ulĈ4Y(+RK( v~G K}%@dn'fwr !U鿬);nfFW&gKǵ)5ZK^(c`+~gt MS8ʗsA*u D'm ToPQA<Ӹ^GbSKnj {mK (烈u՟wwΙnQKCxwo|N3ޫ0e{M  at=k#DHhO7H6@UFuLx8y"S]zrGejo q'<82rEo`<qa`zfk3YYp-,?rLwkewv\͂wf7k3.+^  cJLԹ8CQ 'P v>EA@b0p3z_plQ!@agO1 CFp{] n+UR_r 8eZWwDסmZ %$4$cRՀswy[/ gb{Ӆa7k8W T8 1r44LO$D@F B']P$Uþq ,y}_S?Ćrl8j\_5w2$SSn-/ǐ5x8Z-,\!QqCmvZxz}HG_AZI0cDR7d0(ll|wwSKX"_B"֙F"0>nIH+<@"$ "- ,*㬢s"KO*Jn'v ,￁v O`783Y Ӡh ֨}|9!ě!"HҴ/-P14CPTz@H(\ ZQOS_=˅T?\Q`fIE>QAbIwdآIV2> OqZ7=q#M|WbC5+dn+^ނȚ#V,}lWka[MC͇2Ɋ~́VǒgEJ;2SzCW[(ʜ0'"I" 6ICVʔb_'@.7hP=QkuzM6Wwـ8NԶE;qy~Jգm`pQ9t|m 23q8#+}_Ö|^Nh)FCRx58_ٲp>5KG4hg{tK";Kf^+dkXyʁnwSjJ޲pPTF̄iQLHtVvI &2>Ǽgp0ݜ]h07<̙L)^\>y4w7/v ̃Goj#2eNh!^)qh>NaOD^iN*˗>ET/ۻ^a`,o$VKfDJw ޟAmT! Ƈn?G{^`` $?ӐĒf})~`ۖECXwå3όt68/{v()0Fe~ *Xv^ݹڻyصniB>8%>HPiX$]k!8,omqLIR1PWhҢDc%o}XK缕v5hI/ICf26z øJ#-e!Qjo&^,S; ⬈Ll*g_-*N X`1&]jwmd5ۉUvVpqp?[CT~3(bw 6 N'Chc296lZ C5/{ߖ?6`N'xT@j/H3|>Dc^DU'HՖO{C\Wfָ v ? Xy½ %1eA5b* *j'::`EGSX&NOȽ_z:NQ7fE:wjӳ}BH2R:1>YGwդx^bdOh9H"^djýݨgZ ۵ى[_2WwwaTөS3H{hH#c Tb3ݳbz$| W/XK/Wu (FD,+U^yh,c("J=salYG6"mҳ GnF  Mh.yxfAդq .YJl=1"mW˾BrUZ->պ'>ժՉ}\}Ãx+2@QGN9xQ8X!<ޠ20,x^A>Q ܢ؞ fKO ZBT)mUW0a%㑦l54uxavYpnnHXHݟu7Z ED؟'c#Kl$Cj]cb_~I;d@q)06_0꺁GJቌT˜@/kN !w}-KnFX@ W ǖ o ^W|OY9C°5{=r%+tf\ks`gMJSm2!|qdjQq2+! ,<MB)o,v(2X`/eQGAtC^vkN|P e/ .84ghG!.Rf!?-]CF$0CSI[P&ܲ|Kfo_\gᖚEbJ5WՋwk,PpvylH!r(Z U ς>|"RZD/rիuTV :4gL\񥜚(Ю 1߷N_LhK.XeU{s>]<=j`=4T 9no}LI"lި':~ )cMVO+Z2~v{recj0Eg4IhʐKNc0ʐXvMƇ|>.>X04v}C>D c'*162IWY"2B5%!-;1d z /k^/m/~J~,&k""@ϸ Naůѻx{.?#c,ϛ7wO[CGKui Vޯ(HVajÖ~y(,~'#fS_hENL ޣ;3\+̆>_ D=Z;^rG>ӵRh]9B,%k]"Y򡮥ݿ's~UWPD*_GŁӒ5U~!],ge u{BT<&Y6A\q(@C94`5Qu/R Z G:pwQcݒ rOrKW˭}~{UwO\HТ;$#-pp@pƭ Qf H_ 2lAyEaKPeg7/c&ehn[Bh[8'tnApxuy%xx@ J<3(+Iݦn/bP@NAv8 y BiƬxvZ@5 [- n^7s׿w~^&I梲e;~ Y.'!x8}f/O/\}DH)*/f^i'[~Nir "jFx$`[YN|aKjUw e3!u9Xv&1VVF j.zNU_߬^/|-]I` {ciTK- 68{^YJ=GIDz~767@K|+:4uL:@XA^NZFʌ Su)eT2| Jbuc/g+a#Ϥ ӿ?Y=?BO6F]yb.hnXC< wL'l G^e ێo,3Eabbu;)-P!ܕ.-yT"H0J 8m>0Π,?h=:\o!v>e",֮񅒌^Y~ңN'j F%UՁ7(_TD<᛽W$rF(r}ɅL_ǜAwBgޜmezCjJELh©uARXLx?a\,[Yq3iar,}"wTc AXHO/bwsV&zwBnMQp06\ps5 ߖgί#Yk*ϡꟺ_^.A&iu^N7A#!zJIqmi IZa 'b~K [}'dH h7R Z_^xCqy2O>gn<_Rķr#C$L2<-=8:.8U4xu2Xca\9Z`U`67 ə Q ]a`F3@e|![587բŒ5Fy4Yj`x!r2<6p/Qvԫ*5rY|6i9뉨jvd75fCsQ^/u#X!G5 }nL;lԏSAxqzUeh[iܤeCQ$wl1HbO3 G@2wqSs! ežIc{wGRg_Q PW L$7ec౿h#hycp>q>o7uCe [JELeء-snPA8i'OOD򱝠v ,~Z`4c930H%PZW+7/4h?'FBa^r81߯l:ЇF` [GSN\Q' d 46c[F5 =wD1ڬdF҇TX[ԉ$#T[MncYHOd" 'wGp}ЈD6\z֪Kj=DMa\;xK~'; /f߯WB}U?;j!ױS7*\%9j{z&2|)AU+=&';W#=wWK{l݄Y+?Zvv x"3Ņn:$.4,is6]:[ Aq[U+XuE -^\mK~dz UUW^2LpaHeƪr$WR$Yܣ*v="-P|_'{OzގHaM;YDڐnWZhj>>I#i7;Lsy WSov,g%r˜N[@_)AdPdOw>廙0G6i=| 1" 6-UiA:{(]x+U'{6MEl_aK6c@]rï;YnXHɭ?k EcxI.jUVCBI'73%B^[K]iQK\Cǰ,HL>_UA/w_R_jRtIw]vڑ:־7zW_~LW~ڽ&h8„ 'N<,B] Hw+L/>µmv~cvW%kM~~k[pH9E5`p\כc'ǒh(P.` M[[+f(qiFz ^"h3(._P@ïBfoaRTtP-ZK74#pnNYOgÈBcsMʼn(V_Eu`U9%Y*GॣHm wapt`Ō@TzkEU~־?wk\9W{BڑMv+>oLrI/QL]M'<+V+hXv1rF.K(p(ĸxc,e|[Kx`y8/(bb'  0Ӈ{=zgLL]8l8NM3\2\,`#?[Ȕ*w^Н _׫.U?xA3eg/蜐W]!vkŨ+֐}0׀kDco)/i.oZWEz%џ0d j Pa8YqFt]\|MFt3Tz/ yrdߠ\MJ^z{ZWU"9ŏcIąW]S~~ࠜBƴӆ֩_O,3H0רZ@7n>=nV连pFo2[;/YC2ym7, G۟ښSpp .D4}wR|v ez"03lJYӗnAv8nJBv1>E_. P6Zma*]6J{löjۜA!~|.7^pY.Sp*q}|5^Q2@9[m`Qi .p`bQ|i˅J!yA:?t7 _'-~퍡ҳpb>=yyL+V*?%Q=+Le7XnrIScyTu_"CR Pd?~\ <'` UA, oX@< tJH<$t~L Po*0*Rcg,h[*>_uwDA 5}l@"qoA_t Yf~ ,|54I-kGYw~ .Y_U@.q|EjM4H?Q1.yFe+VD낹4ƠU%&g|xlL?k Pk~&_'wL갛P)7RYF9DE,b+gLg@=jNFжtyzCgh#L֋2])l7i. $iAnK߽J"W^=9XSe#+j8?G&2y{LW2|kItܞWQ7Pkѫ/DdƿS&,}#.θ &<`eX6RxEcH1MLF:'(0 ?{їAD#„i-^:ltq%& Tk?|҆RjrןPfۊ40l?ߋw I/K3 ´Y]R{36Jm}0H!?|{,ˌ[tʮ&8oCʕwE4&>> \? VSCH`/h} 6@\ؔ%1'٤xUaF Ս!X-+Jx$ەZ BZ"i|TvJ9\z7e4e#Fa'?t_ڈ83nU5y~lʇěk*)̢Dԁ# 3w} ż=ɽXxSguxD&"gQՠh@jxD 8dH_=X g԰c9-3d u7+XA]D3kY_! <ьJiåV=s7vmaOC_۬ˇ/xCtpW5-d"8Őww b$ݰ~Kٱ`!/IN3`k8;Qq6 3\Ao8qj;ĶQJe{qd` RQwN%izkctIo+4 'm}l VExGuyȄOE~uQPBjȓ*fqZSBnV=^穑@7)͙!ᘖ껈#ʊy?=\<@]E< SƖ!cS 1vB (V3oE! /w?HA ĶZï ,w<)m8:)b>j˅Ze޻,UC?+8 I+ᢠ^-N04LNnwX׬ߨ|mWc&uc']看]AWzqQ&k_!<^bE(+"h8|-KԝI ?wY "jXr${7~tUAKZwl9cϝ g*#Hk>qrH S-D^Q1H h $FHEb FnHwR[pΫf%urw|ܚHx8B*AL&|TP3%0qAhwsHغBSX1X8h #J' ,Tr)]^Prrf-uuk-w`|]{MQ~6 fܲRMRF"d `+q9P+'#oG?2L+ ;&t)>JI"۳pF BX;#H3>(BdU,)Qa~ ?zGxivNݴ[++Ӯ9LQ4 8,܉2I3u:]mS#I)ڷcS|菱_B͐vKWꚏKy>|?i.1]u4Nb@؋h:Fp_duuQr)aii~} 'MNd]7vzFk:dBo 89p{ {shGڑR! SR>H(Ԑ$$`Pl B0(F 'RyɹWixISwq|<6/km|o'5ǫ^oOd5޿EO(Epxd6t.`.:'7W@iBZq`9Ud} PH24> MRR4J4ZdN#.[$*A,AB0P*&s>gJsS]N#p埆#$U{tPzm%SQ.As{FEa+:0@ vtRa/)}SMkԔc+]]S_wnVˋlO+h$ŭi1+ɸ#qH`[&(B  !aX( BAPT( L<{TLn^U cϻ=xC >Q7~x4q_m -x Y}eh^'B;Gƻ6D)ekQt{bbmcy'"%ӈk[HSYmK$!E*Ei3T4"]So.*a_Wş+dp3PߘzZfGep2Kj#RbЊZR)О8A0 wy??B!q}_}k]ZT螦r]Qr_]Uw79p% V5*WHӰj7Y cF2h*NhHߢ{iz ʵp@:aPTg|ak"i.B{zT_J5+)gU)d*^Uvűna_~9aVHak *r\`뜱1VEU0ӌ>B-N*ӱQj 0ʐG2PU{|~[1 Jդ} $GݛS&cǖzXoyK<]\'W GϗC }| |l|l<㩁OA.T\#@^1gq UT, 3,[^FNK{=ziqKW[\ꬿDA.1 !G=^tMm_R@&KP-}߰˯ЯѪA7F]Vwڴ]֦J+&҄rS4ֽMrfGBFkuwxޯ_Kc'%!#ƲtZK`G ږt$a\?"H0D?BϽ~;jۏ2+,8Lg->up[pjoyd@;NYl^40&'mϒu%[կտBId3a-=hA@]iCꆺ6!F1TF`>D,l) @io>OO-Y24Tx+7.rFxt#>&>åD4Bm^5.Ӗj|Àǔ(^2Q(g{w~8UFUI( \̕2nO)Gw㔻WP-5aAWI7pi6)PX`M4>BnoKwg訣B hM90J՛w Wⳗb-wV`πl}OúJnwlq cL2:+'OdI}篎޵/ce{' Y~1_`74Yn3zq0K_hO" ]Js4ëvcc 3⼈!f.Pjb/®nm^hח\j(`< &j~T\&G} =F-" @?"X dRM5#=xn1o_8 *EO]"FȿjO%)h jWGi/Co*f+ݯ?-v+9sa0L#HLnٮ?G^^^/xOeX}WXaHDξwc~$(#ێJI;7ۗ&s ;{QK_ GfjC >e*x`[*r,ZkgRoi~Z&ѹ-r"ߊW^S+h0 =;o65 70D`v6_/ץ׹R:*$VWl,thx!>@\M~r/'MJ.!QÛ`'8>-YmíAi> Œ|_I7s.?~vּ tM4;{ԒJ,ϴ^& ˾7NRw>Y!g^<g%$OO40%c3)Rh6ƒt㳊<0: NN!xI?d}A6 ёJ(~{ 1 +'1YHFQٰWi-Nd6pCa?!%3/lI_wח)qjw$_w8_=]H?H_ԷܡD#mqg}z k/m\:*ޢ}1/{h}d\ }PEmօ U%{ 9zۉxn;-qRK34;Ѭ{$gm!&ad:iH=R' w: [_v2ɸ &U8} /3F4,o9XֈxnGX;htb8GtrݱeCtK)Qd Us tXK*rª= d<~T4HO d1\ӷTSʬg= MbWiͥ5n) esp~XrCT$5N tM4@-{򰗳O\a;.}S,ScrܿD+ϣ O{>__WI A7Y8DΜt)>? f{ܪ-E Z`|qr|iͼ&R@yLTU+Ny^:kiFj-"9Q ľiS[,>(7<ܻ^,_*'k8&%BRjDZkWv_-w>sY(rl̞9iPwҙAM˶.] 8[p]ZlLhs*;.'%ԷaJ[_h_V|D@{5 BY/?N,ZJ W|hlC}A0*uLWM_VoVkvY.^ˏo؊AH NE8 ~/n<(gX/ۏ(|H'%+?.{a7!,2ApAٻD 0L EC%z2ROK -I2l|ܨF$m]<\NKvL o#Ɖ ƁfR.` AjYQ"ş)/Xl [ul 32 Jľ @6 -,)|ܵEO ڻch[ ;8rƃ!үeg ώLG:A=ԨZʬKĈ"a!4uO5ڙc~^ T -Dm$6Ą;WR`thjRxֿ^u-η·mKKBAaBdCF{!`= J1ӝ۶66%WVZs2OnC,yp s0pwBs?*S lt}>Ƚ/1F#l\)g3r$õU)ܛG/tM 7򓍙' `abkf\(HxNץ w[(ߢ?M}ծ]䩆^nA4iςjm׉9ֽ_ :_vU:zV]-ϗрQ8йꈀl} `?raͅqj6!UQa#|=Q85ktP h5fm^oltտU{Q"@LQX~-KԅM_; pK0ucHm<4 Ân.ibawÅ/:ϱm}"|G>LKJm\[P9ꨫu|DWO麤Ks(s-@kqlC޹|d}%{AL*=^' BWӝg05' vN5=[{1llFVoť2j@wյ|'f<:H= *ek!{jeo >Gm%T襣I$CWOcvSf  v>*=܏LXp=n&kǛO} bfz^(tGQCՆ=Fߓ;#ʡ"%n"2c?XֿRޅvXw6`R,VI~;o_ P0A (BuGjn8=g(+m@+6 >>>l4/4prx$UI}%}.Ef3uUσ\Q) ߍniB_j-qRu15}=a>*{aj~ZydowڹSrp9\U,0c xHr(B/'P0^׳5c `QD5>Uj4.k ` ]%7"NV;RCּak" H2}Q} }Ɣ:#B/rHo1aOWO C2mO^Khq-*iMu8ԗ}$08#0$&B! |B\ . 8$b l}2H0᥌-8bbn.휭n06_FqzS.f6yz?£ð5zLCkogEOAMln+x9 c08efʰՉrrsİ]w~uC*L P#49O5>`m~6?#WcZP}kܬ|Bn [F#M380)%jOƖW@DxcEe썈+҆aXO_-5+Z's"?9x U[dጦ\'>XL&yG$"pry5Vnn:F|C;/kq˱D_~PIٻn0,WhBH`L'qỏoED=Klп8ӁQbPl1jp[|uM'Bq YW=,W^ߚwXa}hU1K5pz)7hznΊ]G6KxLMt,~Ĥ#~%Fľ;KZ #(4 l*]:@=C /(۶'0xn\} 9q1++*LVK|B'h1D_f.@Ɛ#Ǘgq vWm7 dPWj+eAMuQ|; $nͧ>.})2Yxb{Pp]ncWu-Tf]j <1?7b jŌ;mfC6\)O-DZ]RꘊDBl?kV.L!%? ^&ufDI-/|Z^:O0Զ:7W~a׉aGwLBk*SN侀 팾KoA0L_t:u,ϖ^!QI\y"oB> i TnUo]8/s_ rtͣ` .NN&G6;Q3>k G5Z1_4{q΁G[#IQ&O%OLrr#ڋFVw}=6$YloA|*4sh| $_2í {6G2B k/'rpq[fռ^0}T&hnYi4{XԬTe"l8#W+~y~^ ;^Q\˖E pl=#?7kOչ쮻5FJRr}qCb0;ia/'_/!nclo2|MffxvQ0_]j]0it,AMi 516?MZE`oDyjHWе'![ of{S3'߇DN]&v A1 J9vץ^b{|;_k^Mne1Slc| TJ8}pkԶ -#ndc-F_vhE0YfMf=/ Z9s]'#%֤_jwf5fpoƂ׬puɦ #a|In5N'`f ұX\ M:Z$<ǣ~QC<0SRPw]~y /^Ƌ1n.>'^_9G΃1+XZrS$ؒB1擊+ׇ_opR1P[btΌg ca3!o_ZwJlO@#€ WŒr '?)Wgԡhui1Qho}rc?OQ$r99AnZC U8Mf$Z_~k_iiN x:D+.='^#tM!5iuPC4Z$D  a߼~qՒGB~r1\x Fb8WR08it!li__XXzO^%v'/w~-PSyI߿4jeÅD? ibpE6g'y/e uGj}x$>Z{ʼ$-ҋ/K_̢8P1au>64nh.^ ?5w*)=Z>[j3]ո~w;yr|ߒJ7r 7~+]+l+ j2ߠe?{pI-atKj?+ w[%N=Wc\_)#È%F0F 5/j(X8@V#y__N ߨ01Nj&R_nly%M˻U:ESH6-Ehp6? ȝ[tMy{cY~ޫ&+_@痒X ̨2 _JI躻P 2#IXE5Vx7kWM]"I;WΖrCQ;ވbY+^G#׬_=& _{/-*^kIbX Lǚ\ ړ?۵^_̿pNe'WU_p4X>n r[_)mիֻZEʉ💭^{n^ TQ'f_,A1juv&^bb_}ڕ>7['KݯH_{z\0YcH?q|"?5υ-"2r^[¥^ׯ.~~?W?^rA{ax@agd/~V+=u[MX~ZԑusZj]Oڷ녭scc!]c@Ъ >Gleee]k騅Yn*'b%9OB?1q:~j;]/;-zο!U~XdV_Ŧ{? C8ATӵq OdЁT ,ap-٨~z~uy4f/9@QQW3$u^ B,<_ Hܿ}kVEzb18$x),>gPӆYؑҭd҆Bt#V.8W,ޣ(_%E[8zO$y}mE׫*_ qUkʹv|V&@a7!~yw Ou'pLk]R`g"SGϪ-~_=>"G+etߐmN=ՃTgﺭ{\<]u7O%e+"8I~ z_UkA(fE_AX\9փF3<\%CѿX:5oM|7_Ry{Kn/@9/ߵzdzhwUx+@x gQo//ҴRԖ_RW?׉>gC#_W\:&gԟ~,؞Z[/:S~ 8p~mTᡁwnwK|[_FDZ$+kԺ^Wk':E^ߐBHb BenbZLAƏJw ]vٻ8~%UuwC;)7-Wm~~_/\/r P)#߬ j\R~Ly46~/5Rz{pnW^&*G{j[58Q֚$WzUS*HV !0T. BAq(&% BbOo~-QiqEHm;w'/F"Ko ˍA]B+K!HR66u~1DϬ8xOOW?BO[_VxƆ~'{%;'xYNA+J"V5 1,** B`PJ" BpLB+Nzw毭fUZz]_&~m.|/:^{Կu Dsv-,^&-*_8S_(Y[#PA[#EfV7L*JPd( APT#Mz>~t]g2YNN7{mUq>[_>-`_bz/ {w*?|!0 ,  *RaZC$@PB.j AP* ¡@( "1"?7.mw\e%d_.{sꖽ Zȗ U3DOћ OG%ԖwDBz_\P|"n34phM `ő 8&HBC0X4 B1 T(#-s_ۭrkS&]^}CwgICp=@z]>SLQ;Ogi_YwM[ibʹŎF6XۀVb5E; (4U!8 D.(AT. `P&BA1L"% Jak&{{q"sSz⻙Gpz9ήuTWs;iBs 7?^>Zu'=FI|2/ '=?~-Enކ_BǍQT5#a84Z…-(((2 PH. A(P. Ba DF19o9<^]8z}ϣ4xE/._mЊ,9maB{҅rC49G5*HشpSE[M` ez]~ 65t¬%U]62q)`<84?J[9v ޽X"#;Ϭ#,**ߚv$,|p;6\ytE0w΢E6:*䱤ؤƓѵKws?<{bUOb)P!O]<X1򿡔@@zwz)>w5Gf~{)pzkrA}VS^/1)&1V@ãf?7+H?V~?O^8۵ƒ{THa. 9ׯתׯ.>/w^nBG}+C=-D# ~R b{6&d~ ԔF4܁X?ig_.t7P2WXy=g^+}'w7Wכ <*f1_IJce=q[H]M()sEYst^+C Nߔۚ=PqR^ʵߓkIݫ=?P=a'QLfwyKSmfoֱ^HW1o[+y7}T^#^ԯV+؂YgvHr^W'Nhj]1^92:zM:^h_Os82C{7+zyD&xy,}Z?]߫XTBA2}ЎB|wj?|_/y(jquW=xfAG~̱f}}A4h|.e=}X}^]ɪ-w&Rzxo^B'}'Ro6sȗ=?WMZ^v:"[Uu=<[n=Mg ~B4~ClK'!תˋz"\"ʬջVWc1A-rW4x]׿XZѿ]sJ׫u׫!K0mNo?dBoz~՝"WU}7kRήKA׻^תocz&~kz~/ ZHC%9jGSc9;7@yf>:@oֶO^_'^b́)M֓/[ѫ_oj*(`*D=_1C)sÕx$Rtzp~;#+%mCcd 79 -,W"˒^ׯֿ^)0OX H1+Rh.]*X?D\LiD]iZW-0S0'1E ym[W|}#ᾺT⯼ިv_tNZ6Z˩ecfEyȿnE#4>BM[Gݸ~c\vOunUI)ӺL6> )*% #,uz#oN&l @`0 8cRX٥_,.F_]Wy ͗^ԭ}%ڔsK^c!bݚlnbzWy`RXI򴴓|>Ԁ|߅ʽį^?G\fb*IEvEH߆wQ Ѿ9)Vc =UK_=W_}wkWϐa6VP#O }GI-[~IH%4'`GNZޯקZ~BJc)n%@wz/;Y؛vK9CKdE0hvWľ<֞$1(M豑&&~(|'|D/]~,djSm9R]1=x"+46¿'V7Lr[M~rbÖ.})v:߉1h?sAgO׳?"[XiX}Yj#]]]z._g-\ԉ{)`ֽzJ_E4-zwGb{E]zʯ>),W@A3 }Zbcziouc^nK}%촟[MUp*ڹywwv\JcjnZH^ y/э'wCK((?TvO"Z*W!_^[dcwTtIZWu/vCKk̭\JhU}.ULM׿X?^X=\/*E#׼^_V.׫_W_F'XUׯWUwvK{O$L%aI>P >{ƒ[חekt:fSV>)-{K^i{W'E1\E0:{`@M4B: SWsR<1/Z }_|0*e~,ClٜRðKۻt[ V>_s<:B7OA%׭oYt{o/&G ?~';P]kO{^O&^^˚s[7sBmn_-c[)ġf'@X%C{+޹w~WDFZ>wVL ,aNc۷>~R{Ɛe' {KgjƽD׻ GC) VK11\{z7W^jOvzdJͭEVGmIr;y/zgwu$9~6Yi;/ݮZXЊj^YQؒR]kWskh A3uhJGcuS㿋:e^)]R b cWIq\Q_lq wcZڵz~Z%W}ZX$rӦ;IVUUεC<}kzZrj/RֻkXj_>_5S/Ԅr,.KZ־eEYD(]RV/cW+Վ*jw,X&䯚ֻY^]ՎrS ^Tⴕ_a9g?K@;V/6>Ҧ׾gswf^]Ԫͺ/7*/~ZQD %3a\zrx\a?PQIyjֺפ}jĞ.݄sj??:C A1 Alp[W C>Lh"э0V!oJN~wVz O׻p[YIߩ\S(· "m|րGKC jm4ߞJ8=~Qز2(EL=wu_%א;Wvx4-1/+6 zOfweڰt*~_!>*)7_/տXU՜+X[]~k]$ɧ2e|uoeog8|J^'iZ^{>L* AAS:eDJ0b |v7gvóQ!iM_*\O|K6kbᦩF]׉Dxlt1,ؤ'g-vci%Cw^?HK;j^H_ h]cc*a$FL2q|\z#/b_gZ*VUWߢkZ`A}(}N^4a茿=|_S^.bZ\\MU)*Ku7GjLԿЊ($U F X. PT( BbQ ~~/?:ƼVj]V7nNgWu]#7چ?EE?kP;JxR+oe ۷VIu~sfdI7pYYwMƩCZ>ZW5` !*ĭ '9  ``,' aP\*3 BaPT"w~k3>9+Ro5m*3n4,p@ W *-7|.q;i-SĻxa1_ݜ/!zXe˟bL0_3\ʁQf;$Ja"i0($ DA`4 BA(P*C BbQ '7~=2q2VY៩Oʮђ]Y.1./o,-8hͿ};`;stEmkE5$w߁cǩݢxxq1 3*N !p%( N4@\2 QH* BaQ Nu:ɓ\N99+)0fz#*^qZʽjyrn#X OX-;_BY|R}J]w%wkUj'TMz]z?LZVzM+"㩏-:u7C_֪׻zjOu徿˽䞈y>Σ篹^atp 1ԋ߅Jl1R*Ra^͗זzuWM/]JպLBtr &ex^eʣm_Q;0F]e @P=Sezx)wwgn>8WrzHWu}߈Hfu@3Yz9UrV!=KSGjkR#XN~( nJl&fѯbcst^z1pI  v~.1y W4 0J_oՎU8 \8A;OO z~#WVտ5$8lDymDEįem{^߬H9XY}+rE^;Mu"c ɢf*0wZX<2vRg?+1 ]Ю]Kk.j^/GkZZE ^R*tHgA4*}ס)~?Zuk/.ֽUXZR"gWu-W+FդGng.&O$jbN%K]B_Iǎ);GyXY_Tn,݂o~|Oj]ί~D\Mws?$%Y~r?wpRWѲ_URnr߭Pjzaj:-ׯM<i\a;c2å׻Srq [cDO_fZ'-{xY6O~߫WO豯}XjNTUS ^O&Pp@U|9_Zo}^wW}.=j;?5/a|va<3SkpV~~罳?I`?~=COKP̉W'_J7*)uU IQ[uc,xJS.00aO[JY?^~baؘ|߬Uᬃ7o}oeڽz{y}jje4Zu߂RhTFӚЗv$]#_֪֮gJjO6KGzLOKL8zr)W1_p~}xf}z˰B\_ n~Xew~~'\C@2l^Q]KSZ/DxhE_&=Z_ֵc:Kջ7F}4iڭǁ/z{7Qn[w/}Jߐ@:p}~g^*DV5lwLX?K=ss蟋\+S/$Q]5dƽ#Y\inzo){9T(jy?7L_)%t-7>}B|^%V g" ܗr{uw^-s)K˹= Uv9%{v~PqW$~GRkTRKW7-zԞI]{鶽Ye}g46`i,%[ E=`?^[ww'kzWU˲}~ ;~38_\ԗ{h3񦌙Vl5n`7K=~b0@}POpz{j^.O_~_JYFAZ<'/Rvҟ%jrhzIg/'7֋ѻx? m`FR#7A'Y%%򕓰}U]n{X ^ʽҥed[#hulv,-CTυ _f$/kZNd/]wj/C kx>E߲}?+b=oR欟F7"L.ԩw^W>H5y-#t/4?}˜E<5ndKq^-կvK^Bow5BΒz*]t% A6 rz߯My>ץ'X5^/\mY( ɾk_~ڿŊ[k*W]Z_:(P._O׻|Wj9ֿV]wzw;q52ZOC:Uj{uV1S?~Fz&KqOaa3X\[M`W*ߩ~UzԖ).~XKKRzrz_䭛[tGbu\zGjwdR%IdgU6/6Rz-UO%> y`ֿ\a2듚1Vb=)u#KkQgD`}*kq GF*IwҢ{\Ļ13CG!e0~zʮZ||Ukd测jʽey^ɁRY򐡆\fGJ=Fl6G=tz]~ͺ_.Zk_¥a]Q?N&t(=ǗVu^zDq&.}_r]ch~e1eO?Z$T _E8(4hcʽ4ҷ!ceIiZ^l#y!$.^}D8޽8nG}z`^bd\-+=~'&O_^kNA6yWJb=_V?]UDR_Sz7i/aσ\\N1U}_2=\\m' _v-D;|7=7kU6ė^jd磦q2߾yhsVW+֪#榮;_\?Z{=5_׮U߮Xd 8݉mj1'Uz#h݉I_ս?UўW^# k}3,IR?Rx6U"'i/Ttubu{/_Wu5 V;^޲WU|7zl>zc3MGsKڽz[GrrOݫ/,5kyrHWc8'Sch)mz6e݄0:$Nm2Gë[U7ZVVT?דԛ-='gm$ϜR_<߯Mb)n-;MoWwAbz~5, /ks͘(h;~";8.h荏^Do!!U[4''a[r_WIyAkx#c~ cʉwKG_@dc]KWJ;=Mw׋$ɟMa&gQ_nْWll/>XfU'# d:3~MԄi?^wXF^;ԞztNb/1~?}/wMef{LNKo_F_-zߢkZ׃ |l߭o U#k`bR!z$A7 }BXgRZuk$Zr˿Ղub{g߯~l8sJz\'gk_~k:(qߏ94U{%/~~HP_3IړzJ/֮^^*9}t,n߼}UTJ]r׫I߬^b'|԰i*jsIݯZe^gnw7jPh Y7]W\īWko(_kk0ZT }̯F J"刅p,/j7_ sC߆2q?֦X8q`~URDXP<'\k>s1GM_R ?#}χ9L_#7 7wHW~ڮ_1w{Utֵ^^4^~IAvtR!#/W#IF{7D+J׉dh7y=?u('w^ V}tWiȰI~`0Nd+J@W,T0&2 B`T,TFݻ[w)үwUKu&.gxE:zdȻ UK U5s#G~+Ò'_ ͙~CvZlo1*q+OxN;S%϶G `M W%t~;)-^UNT-sgl!MdR{iiuw;0 ?LeeNV( ,бKrnyk05_ѓ}^IPe0ᯯBʚQ|]:kUZ,?nꨥh~}'uUjރ>^D+]PpE%`P@7(nT٩!*6R q*14mxD1?rL* u/PR)"@& @0$AAX( LԿY[5a|iu48;Fv_Cޟ`Z#'~MZuV`%a] A,6!Xۤv+kOlgtW{j楯$+vfẀ̞xEQmH3P`sWqFګ\/vp$T$`X(2 ¡@j3Iu,JHjm{j8&_g}EjL{o,}_pbM_4?`bCW96rnQLtqef.+W&/(}ުKʪ:yj<^o`.3M4_BwQyọ?&XƬ82yoYIs8(0hrI-K8jmCtM=]ls3mȕ 6tϦަ3S,ޤK,|@8%F'KLMٚpXn[1ڗ5Tɔ5:|W‹pNɥhvx/-d4H+Q00 Ir)p gjSjU%rZk B#jx- 67`}eA8 v7-WJ5wkG%c z'J ÈUwXH~zUz5^V*#JMp{5D_qRL~BD"kה^QDQʭ[SՎ_1[踟Y<|ܟLގUwȽ̽w4'`WrZ*,R_JĖ'aS^{׿XֻOIȉKV 4lyE7ߺq=zÉ>KR끸7\֥嫫 'q>hcQ|_mRm/jbo._\+HdGQXg'ޭ+ֻWU%\L\h*A < Ba+0];N~1gt#;U c6(Ő|o4Olqg;+KEt&2a},$pez)?1Or6 kGfb6׫~Rn$nK$y6?]:2򊏈N꺮bYrWu+I=?8$tJf,r--5gw>L|ٸ Do >r YK07"3r$='lwI7Dlc)7oϲe~:lwK._GH~ 1]M,MBE:.IMcW?Ҳ|o5W$C2 0f">Au!G;'#mbTSh4闱GšHccf+WR}\_;%H & 6E~0l$&B~Kכ56ڹH!$PBFdnt׉.lmR7# ʧ1rxZ_M;Yଡ3aCsO`Z+!2 w/)')~RE۰~+tsV#*~^_|3Yottf_XA2߆kk`9 3뵍dEs[-kWyL>lU]~׫<[N\^tg*ֿZjzk2O.B9iR߫z_c@93}/7s~_vzBjz2Or D=]Ofx^zrݪ}ڽzée_E!WDチb? jbARQ"> ~P%p('ϮM)Ab^_jάTOrZ\W_Z +%䕄;ԜB÷->wZͩ9ɽjb+mqށ)x澁 9օaBWNA\?掦6u;jsp/U(96crܾUےz%~ 6)`4<=X0Cq4#ýKAJ ,7L~~TvwwuʽD-׫;ew H~\tz6׿W^}L-"F;z;C ~ 6w\茑7&W.PŸ4%1!:4w#?6Dk1 M!|/VM#_  ?29͏N=_/uydxZ蘋zkj}JIYEHB/&[VI=Z/_Uwz_""r]h嵨b)wR˪W['|ܿ^ ܽsGc4xp<)^j֢O^ȀkYe%}g66&a7J]UիʲzZ~.'hrgWCAX- :yzv Ž. zF7Ote,mzmꦛ4]zPM(KxPM=2f @Ω[8A_TF<;F4M]Ea ̿0vܣp޼ >|KǑ?栢#;ܪ6^SSG>̯a".3O, ~7]j 6y_-p!w -ImgeM` /n/'G>||VCx=j{\(ĵw3Ry/Æ/_?RׯIsz/WoR : &dj|(eV-9d@D)ZtzňLW A$Ê]<)߳sC'!LJD=W^ t˨ߚZgls4\s$d[zIsK73Z{x.zyhd&_) y*bLra:!I~(Wߡ k$f3"ܩo;22p``Ĺ\,5bp8O9v=uoF/L(j7ӽiدs1Ӄ\d~ @|wtdJ#8 ؃RyL^P 8uӃq']k>OHyYL8EBO ;*N@u%?Zu' 4R'KWȹk_'ƣޑ#GYVs(ێማ=FF@!0XD`pͿm{@LgjLT>DK7L$?dq W&j0oH(p5b əY,eT~nK3O{GEJ Iw~AO1A9jw.|wRR{_rA ~UVWO]3/=]ryW,Sq55b_'>~Vb3._uc$!sL;竫֪'藫t[aԪGbks_^'/W{͊WvuuOY|JOݮ"oXW\W$zݯ$xY]xg//IWįT\*~_=TV2q5siG`ٺI=-zЊEtzƙF5nt-$mjE 3'A%wW|xM$~;8(aJm(lszf,eNНW<^^jub/rNe-ϋLx1C]*לOd/g2K//d&WK?~9ЪLTE( jW>t7R޿,zI;~h~T8Ku):ZԮCP E\ߐN% nNcTx%"Cpku~K'r˧y<_C_pOVWڧ.c%ݷk"[Hni5yz׿WR_jݯ~'O灕@wDžw蒋B[UUիs+RrOo=|DyMk/k^W*wNS&+WP/OI0:0)Be*X vxAviGvk j'_WԢސ336N.N]ֲgw_jfD�k'8H͐v:psN(6l[A*iw,p) LR eɤԊW 0Pf@(FJ;xR5>$i9%GTBzO]]R9ٕ6补mtv_iwwqqg{? S8q/!qjmNt->BIA RxS$ +UCnsv6_iY⚗UW 0VY5wf\z7/S^p+ȍx΢8؎J0H`0 Q L(Hw^y&$r&&Mt4k|w$}ngI_?"U8z]s4h{$!_XpP+YeΉ{㽔8e;uV3++uɑ!4ܰ{%8G R8ׁI`ki]RgM8˯ ~8( @X06`$ϝJ3S*,/Vz^OV^-r߻jl4mK]z ~nnh- ʇi߂_䅀sNl|Nߍ:==4UߎEt"/I4wH6;nQÉT2f&B& aSAr`8\"( !`X(€(5 DA(HBG5GRnRWDUS.=o~Fd=vrZA|wibۿ`,Qi`i]Lmk(cj{3עID2P/ܥ뛑B1,5xq?_z>Qgx@f c\fcxp&LB@, `P `DdcQ\nIR)r"t>g6~/?7| S6v&r"poqc5mH~.uA/y^IN_ Pl} /wNh? ^ZҜeq%[L}yYG& w_xڀ"q$fȦxvkwMa?cNz*hB@`,g %`b# T|OjU$LW˥5*G{DQzEiĞ`9Zmn>D2V--Əm;gM_M;y^ RqDvIys_H:ۘ`seFnNsҀߊ/!Mi#0MWZEOA:qv\^O^VuIc%S!{X{z_r?r^/׃lv^gkuO}ܗ W^~TUEG;]-zkտ^]^B,TKi}rzZ~_פO^Պz_W~֤]D"֥VjzX$-bc_M x~!_,MKſSo שҽW&:u?į| #/~&L OV?WZTqV=\L;qW\޽6z\%ܗőXڼB"Ep;zjƄ翏 b<4<yͼ8 ؝~A[Zխzg//{/v!džfܻIBnxGG뼶m`c'μ?4-?gZV^>_HI$mNmeA࢑AdI @ퟗ~`M\ma<}h-ɍS O ()o]<$V]=ED!I2~pWޤf%:V^C  ߻P߂9XQzz]KB3ųW{PMտYYW~ gGgrzԖCCWYis]X5^R_آB L)Zq}|F<#^Njm3jhLRrWUS,FB{{NoGU貫r|ThG{A:yW+kjn_WQ}^?]wq"q*y뉛Z&O/:v+t߫WKWr%ѬpKS~ gXDi!}PVSjY=Z\&2D_}L-RQzKw+?~w5HByk//%sڝ7v/`V'{ d?V闯oפou~jb ?^^I+^\.o/೒s9uաp 0'0i1s_^'}V\q+߯e sFxZ<ء=-k-Wt40tH>O\+{%~zMW\]zO_$E0 F}p[t&JH@$?zs+z~$ D^Xy8O׮F.  _ 7462}잟}x*Ofbv9x$}y 1RƲ2qy_27z&^tE:z7܎Z#߿};iZ'z%{y+fkE@ȱT?B؈G*Q~zÊs# Ic&?U/wׂ2 ^a?(Mxd*\CMK_5W/4e*8xcc.N*MhחՅZKbTBGrzHAjxJd+f3ü0?^szI.P2zSJ"'26~eRwV~/0~rE*7[L+З﻾׻k^^ﵞKZ 㲊\dܖBFZs柮Y,5ۑMW]Z{[ؙnW7۲9A;mOW}wZ]U_믿X}ky=k2W܄xG]GXE]RvEz*ԾVk|dTߖ_V*׿^{w߫I{t_[嗥y'Z17wƓ+!RVV ;w~R|4?U= z%ZZ0؏˹{ 7MT\L^Ir%/֢=Sd"\/@Z;vYu}yuׯ~'h.G~xW2/BApG3޼fMArH^j׹q~Dx:dǴXDŢ|# 8/PUi?7ig?""#}ި` wsbmA+dP-c 駮$uZ Ez~-rWtWWB#esR o4YB `{<.~Kщ==tnɽ;mzƼ5LQSE_S2$$B@Z.Rr׫MMR)SK0ʿBf*ɍ>?N"^M9x{|Pie#T= `_wzZkINt˝z{WNle{GU>[/ ^(`rc>^Pt/WN{Zp e&瓉]e!{Ռ79}ם'{п/֞ [?Ɔ\i1oa3gł;5Gz]bƓm?dLDCNI[D'Ooǂ' yFs?#W\-z=V_o%Wv ;`b b5DC^"ḵ >b!_t݁ǒBqnir&<(T?J-ׂHi5Kc+F[ՠ /TՒYXؓa0.v<7kXB5ux"k)K^u[ KRmD8w=4UIh&0WG8GSLrĬ}z^F[.*X;YK-uhuءR~58i:fT43"_eo+[}޿떟ύBc \ZV!6Mޕ >,VVY&ξ4>T۷5*b' ʌUʵ[I.:눺LuʗA;}}.]~rڝ;\׻R߯2}ή8)JvIT9Ezk ׫JתZCV^J.\3?GV ['+r]Du=_W{פ-j[H7;;俥 -&p俵&"^uw&E`^*;PF[߹kFzZKwڽ7o/~}Z[WZԾ%XG:QyVURZ~Y/®OZ/b LLN-aeϨ .:QKq9FSh;߫.צ+׫U'rW,x3F6Fb+k5y?4zw?q-h %hGo}w_b' ~ YZ[jxo4upX"޺x,E ݩ?op&7C[HgO#`syG=}pBw=waw[p[:']iw߰Laާ` Ÿ8 Yy<^BV%WDo(@; KkT X%P V"HHqżn{-qcrL}_S,}{wdzw&Vz컮"6FV]gBH/ PZC`ENƟ!<5),O?͎@l h1|~.7+t&/zU{>S}k.+WW,wD|O𙮡?նa6<1$Br߿bi==;kǧ?cO-f/|s<,;ItuRJ%]ۺ/vI5zW.J?ywh"߲K]Qz'R}p5EQ2Zrm 'U7Mw{ڽx@`.~=:#`|=a{J-Q\^w׆"}~0`^j.WC<2d)ݬJn׿ѥ?]I4:LA+Qhnxv|vj-/տWDvI%3Ӥ9v>iI_&$t_&^=M's]W)wUʲ9". c Xn#APD īܑs.dħ p>wk/A?Ve6zX/N~θc,LmFxHr eb ݣF ~x~ VRb,8iOaM{pŜ_E(Fߧf+J+o&FSnx8׌ofc.H `XP a!X& H"F{sZfv;BzrL3ˮRK|A(H.jZ$\C@JLHns5{ig8ocz<ǃW[)0U3Ѭ4vnj`E$Qbnjlb"H(@M= ]&0Yc%IzuSŮ}]vCqEʮ[We_ ܁%hrÄ2hVG=)0ogAZ/&އ8f6y|3wk,0wc Pdh____LUV8U&&4?ׯY_ s+$ǐ@?^jLOfq;WGg\~ t;d[%h'#ܾ'nRׅm i\]Np/p ) X]Xq&_`ҮUw5+{=?IHM ^5tY}yXRc:M'z2Sk U֫ɻԻ|@黻k"oleɾZ, :!b~-$19?}l|j=>9e.\zߡ`3H?Wks'߯zZ1c_@oNP&W$ouzٮ~uq=~v뵕jW/wOw~ժ9Uۗv︻[_jt =kbkFU2 euu='/~~OyM/sKh'4_=f_j$YH_v$rQU}'9^,zߒ~1 uv@:g_( 1꙽s_rs׫j#EO :.vEH7 e7{ ^Ľ_*%*0i 3#>b-i6\ LlD=6o6nyB*[.^cjZ Dj"upLO$%S'ЌVzE_I';.H5;X~TƏZJkB\g'ބjפ~I%qE}d wm}hEaCMVOOfT'.y=GջoA=Jqvwuչ]pK']/XjXX^/Us~鶾_ 'RrEWeY~jL?=c$Q}yL_dDޒe_k֫T~^FOWU](^,u+WvFp3]q=*/w ?~qX_?#}'^zKX &Xy׻Xԩ|/W}߫VxcM7TQېgTDd+[zOWZڲjՃ֯Sׇ=sm9~^pr>ėx!gk#wYW}UTOj߯~%;>oX? P0Bs5^n5S1&UR(ى+0#i|5 '++}J2cGLh48_ּGԍ/txұ|Gz64/0OSO:XɅO$wE׭I赿R~\_._._j"@"]}+ Fe9>$䖻1IpZv/-:;5BDF`'ڮNnP ^5hO4䫻/Mv 9ƺ/-yKJ3 ! O%K2\]+= uk_GտrjտYU_UwW(jZ/שSj{^kJ^R'fZﵩZB|׫}]K~b#\/Zj8g}߫-MWUWU=q&\´Hٽ^kEDD^0aCm==r|ok\MהE3q'wkxC@#eI3IXy}YQw^߭H+[OBG)|6uuK._56Oے]tQ}߆lO; VJhi/V 74C!pi/=~eWz_~ͽ\;EM[-Q||&l[Зw%ڿҭ~v~̣ж96ø%{.j|+Wȕ׋J= XIBbo׮U.)HJ}UU[\"1e(ԐL``4% ဨX(6 A&*^82C~}]@MHZħ^ƒZ\|.ga.€^>:|5;o'G 3mQD+\nA{kdHA]l}sd1/t+Q3q2MѠE;N&˙$L|qvM\ŕ{*|-p& 1,G -D%0kSrfoYW%I?Q&Ix}^v߿z4[z .c;^IA۲w4c~ct#?/d<S[K<۱+3KےK-g`WJ׼/(aDC` ;<{Tok ؛, *J € 4 C!A0P*DFF?Z񊁥KkuT_CcZ>$m|4xzr] 8)E@-|a΂z[=_b_ySݱ]w&E;oK_*mbqxwTrTLD}e9R>Q^(( `X06 `X(6 DB2qǞ=/u{ԺAZ4?3y^}J,0_î{v _+DZX4އNd>!ziZiOٟYJmU)*/#=i~S8+_{%Ak+la%ꌁ촡{LxTB(E @, @PL aA("!0Y~xk~ETTʦI+?J;Eϝw+0d__m@T9!x'_ j#ߪ/WGuou9&6ϹىxZ; }_Ƨjf;O+r_SphU0rpRi|*ߑӧ{A>}؏ס=%u:~-~EODneK[^Rv_-R]_s]ZYvw-<~+bWD_7ҼN(>LhMrBd_Kt\]zԖUw4ZN#%c֢jrjj]^^YW*˵%)O^W EZ[X}bu]Vv%tMzou@<2OrrX?W׫֭~ʽ\}Z纴xW^} IO_9~Ik\o~U&oժ~I׊ѣs/z"צ\I~*wj;f~O-ݝ+8tLE#ջ:M+ ]^bۖ?8 W, wM0uߣ{Dz{d곉K%WKKsm Pϐkaru񻻔ez^kթkz:`hs@|{l"v̗D_S]C=y/5"ޭe^z Ox!&zLܞ|EbSS^_MuwVH_Տkc__>IA>rqV=zխwWVۿ}::|sc߯Ebb,7ڳkN|#U.Rzza]x/۷ݝnJƐc`jֿW.Kdƾyu~5VOn2QFpK)kzr[Z ՓW=u~Q}\ЕÒֿZK\^X*KE~+֫-ik(z$)K-W"WtHn֍?2^lyz1X_Rzv/_vd|z^BMWW|,GczVz|v\:]Rd2ꬬ~r︯EЇ;y}ޯ몺==x$y̷_flBnݎ_F_јtV1ĔWzOX"=OwɤVK%ߢ9wG<4O=~דЗ"._f{k֨Ow^W~#E__z_w^_Q7r@yA?uġn}}Mzw%KZʭk^K}.UhV*sp?E+_x5-vr,_=]tP[tBZ%}N|R $;˓ֽ.[W2a~'5+]D+U?E[њȋ63x5Dx(+E-LĻE箧j&c, ^ExK/~\דsy|^wzʧ03 ho^ !%K.l'p[W~.~DW}=W/Ynꄽ/];j]u]Wb2@A?urw%u?RZ/E_zj~fwI닯Z^_+{<Ȼޡt-(ѯ=o| LzI ^XۣHo/͟&i.^mE &ʰmd达Ԫ+ȟ})Wj fd$t+ +Gf>z0j5N-~\KˎU5/2KJzFd)ZG~y{}etIkһ{7w-UЯRzz r!Lي݂9}=~a1? ۷U}Khzn f ^I_3?#|vfP ݗKD~r pu2&cBb ͩoFUv~EּPg?׉L3OVkEz{?8 HIW S>M˚J¬#^Vjw_ͳ0x2(>$]-Oq K_)׬1޼.%К擓˖g +", D@6 @T(5 B0D&#7}bdX21t>GA}bڵ65{ZK>Re\UvT*>'x/|Z_gk='rHlfG> G{q<Ǿx[wǡP iWNw^z?vg6U@ya7r:h-*5th&(X "aaXN@T$ H Z*ĨSBUu||4}g[3? ?#L945͉h6|P,h8zFӦiw:`P/'KALJ`|}*@ *>mG-}pWbd_><^+i%P@Ͽjɖ)1Z׭qc +F[7/3v:" ǀl,@d #wߎxaV.EKs tyY[J[ }KK5aE7R컗eRa߂Uǟ*è[kE6";0fksi$HQH'^i5)6v7[꒷G( ;dI,FpI7ː8*F ေ L* `X(% `̟>jbo\DdN z/}q%E;E~mj{./vc߾Muh! '@.//)'ybi%߼Qv`U)5|g\<'!bLxwtk)1Ks'ZZz`&&$h6"AP, &x79g7YytbnIX?Ώ듯Dmϭ=Oos6*-G] OǺovDrq}Mx r.P=çgojHev/oGx0Mmµ7 `}mZZAn(nGA&0à["UXf*wst3y]-F$Rh/]g׫(ukMIlV-ܾ_XZ7dReV~,S\z/Wok׻#^E ʺW{7֯է(P{AAJrzW+.b'ʬvk}e5oRw +<ވO ll ^ѳvƫ>^q0A&4c; wP,Ɏ:DߪtGT3V,e^{n׫~_O.֤$^oUԦZr0Oo ~JN ]w>Uܞ =k5nIE:+,rƯV+ursn" ٙeqtaW]LZJznkܥbn!̈́:knjZ2jSHR{?)0t bds/3,$2&`>ωs g=C%2TG-IO''G,u~>ryq1umLĕAܖ8zh~?itx uG5Ez\4”$̍ZuCm/?G+Buʑ'z̩Rf i1X>{N 0Ǵj;{Ɠ9ߪOOaU~劓$dg{A3&XffX}T|g5ۮ! GgW1fJZL\{^W8ő(rELz ̙R_gd?J[s$ S݄x$tJyUۛn#:y}lƓ&|ź~Ьʼ9c2a{ín_pE ɻNE棩|Tn7/؏jT})}]WreV>Ǚe:@U\/_&,-Wႎ˹*S!?:$[I?]qf o=(S㓭w0{3,@x}hD=^eޟ[9<0(?~R2cru#ECq/-p?%⫓>j5lmcEcd<.ϓ$ȓ/\DN1*HE>^n𘎭ud'rOO=eIݘ߼!:hB2%ďuW7hn/_OvYLV R_E G˫);,Ptߌ{Y DR_X{|$f/ ] ՞(׾"EmqwU^?H$n W zO?ĩ!sPQӦ"9r^ d߰B Og}ueMt%hB\7p7CE,Ll!U;cJZ~]O#60=C)|S<䛟ucTĺ#[0~j xdOv[<|.0>O~!k_;>Y['# i>?d@'X%-ldE}R)Ex[!|&ҲϪ;Ad u}Y<-2P44W~{B3sO/w/z`J} ru˖֝adA7?/?Ȏa[0;e|woEÜwK^{kˌ\iJmbײz&H?*ߓ\K.Z|K/wkE鬗k bK}%gQ{==_ipIlZTߡ-M_~_/JN Zy|'3AAjrSc"zn^Z}t__RI^\GN-{y4Rl!2IE洵"^bg bKӧUbI`A׫U"IڙVRz^S*=_4kܜݸV:l[)&/yq/sV^ ~|FZW/vy<ի׿V.P_#9}3 K|lmbrY_|EzO닖׮_*rtՇSUIIGD떽*{z}j{ĵZ xA{.w)nW>r kk{٨!=W]K=WWdJy8u'@ ߟ\$ɠB$zko=xJ(^ } e7pCσ|RòB?/Iyz Z]01??dfF":.^[O剱dxY1ـD]OiOۮW /^,ksՔxߺK!#d;ƙ; c J:їd o/KW%~{B$'.CwQDnazS۩$ ?OĨC#s׳oOLqUz'+K.Qgֻ;{'.RM}E52$~|OTɟAm*~v]vpJG%cy7=:K)iѓ `+~n/̀KWr_G{KGe]Zl#Dc7uy=ߧ_vy V84fU\r5ѸG±2;I駸`Ő#k&bۈܟ>辫nC(y%4H3 |n}š'/aOOlړl?Gt\| j{C2L{:``Crۘ\7 c>iF,ڊ_U|Bl%YdLr~ځGlny?kB'QgnLed*y7&3pV'3<_k- (aw4>\Zɍr$wez)ȵ_`^suOTXaf4zq z$!rZ;}/BgyKW'Zeȭ};Ղ'y2QZvO, {L`='+/{+K_DԒ<oW{]^Uw,W'#} {u-kߖ|/}M?5^D=,H Ɛ`, @P0 "s~UJQS)M%C}?ݹ|p#4n>gH97(iFDj=L/_/|W ;kp $T gtf IА `6 EFLAX_M-9-(HTF?zٸ=u|/*ܢʑ*H]Bݾ։ȡ| Pm,H `Xp@L$‘8D$# q$ T`[QӖ}#Z n]}*_.t0ly6[3,gvzV~/Qdw+[@n? pob-Ƥ&9 Y7e0SEk6$}/!n:2O(ۈ gfo~ӻO'q1Wau$D5>? Oཀ.1&,$ XP!`X("N"cםMl*V]P\4>9Sԛΐa5O㰟Zq][an.x֒A.g}4o䌈j.z^oH%B~y3x}>i my`Ҿ7sʟ|! a)E+@5=̵0h:F NjVHA<-ؒ-+x_80W,<((,#pPN @T(ġ!L-MϟmLfzk$gX/W_7Sٕ=jg`_A+;sy]z_)آDJUWpE_ PYw/j(}@ h@-_EnZM5ETz>FM 8Fk o:?;S:\$ >Iq4FlE,U9gK w`ǿsUB"|gJ"q&{&(F p4 !b(XN pD|:|rqEfe*tg.]zg꼵}rV5,1uZs+& hu_OχNx~ۨ NB wV\^럏y0ZǐsrTFƳUvh#胀ABqIHw|OLWu]{ֿsN_oUWjs$GYLn:pE]ZbW]K߯UծUu*#dմ e,z Y[( ϗԥjw|O}wwvO_a^IGnWPh,jh!V**/XWռeN|Ւs~uk]͗r$l5rSݢ]QV;|Gusڱؾ]92IyCa'ئ\'=xcT_V;/uRV,B5Gb*5&i)K܀X|_™TP-6 \(xBBιsw™./nz_"ޭf&{ }[O_tY K8-˿|fgn̄'z4_Vev]뫫G}d&=g\a}Ճ8Db?Cՠ$O"Y?T - 5mu&1bD~}eZ?srAѯzKkwœ/vOF$pd3t:7}z<q{e1>lvb&"RZ%P黒Ǒb!| >ёa6IӪwh[86Rxh}_O;Оl ueպًr{dḖa(v׬Wz &B~xxr$Sj4Q#v$U};u: IL1=27xLtoM.?)ʿHw^Wz3"$49*pk}XuI&TڲĄbc+6r2+E/.9OKs[^>~wj8ۆ8dK /XVnŁFEaCW?ZnZYQ~q&zG>򱣣T]ʦxɝ12WV!65Թ)9J# <"<<@ngrOKЮzqcdH迾D% TPY X^ٟ*)hܳ>̡Aq^.ng!۹&SߔzҮ6Yd 0U6&cIU˞{ !ϔ_V Uf(o?8ʿE{p~8?h_&_0 UJ}#T^VTv߳al'zg"ƐYr]>~ݛUjrFi۷ʽ|s_﵋ElcٽZB߼؄^7%Wr/W-wWh`; |AB}o^C9kzO_Kίk/&k^6L[)sQ)n{{n%bV;MIz{$`jȵX ɈʟY)^J[^ӡ_j[ZsuoUk{W/(ynBho!!-rz-UЮRwur]Z^?1T>RNT/.*տ_]Rzz$%9cy躗ˏ.2coyfFoE.OXfŐ`g'&lr/.*|c4oրˇ/'ܴ--z&Y=W|%+!u NBf+_l ΆZD9 z)v9"{i0S3V8L-kd6CC6}}zȝNm\Ej솲2tW>x;'{{ѦL]-,7ٌfQ_0pϲ+[E[ץgz1}a|Ɨ)XEoh?'Ue.傾GЦ=^$8qЅ[\nפ."]5}a1Z"lW zz6he}*7 PBh*Coמ=]w'l]:-9=M'4QnSVOh;ږ VшIQG'6"|<Φe9>O*Kh.ۻDܿ1I SyO,6[^w}PBS~M>-o,~][F6AףNZX+ܾj Afki/$2$>oQ6Oy~Jui?{Jݫ:QMU~_[kRJ;m^G^z?$zϫTIDVW~OwU._wAC}vwVMZe}ݫk\EZZﺿՉ|cC_W^DzGn|4ٴe6^̡BG S^+֦|Y:JtMZt^Z݉8jXz"|Lc)-D_k)K3%kӺUeeOsc)\G_Qb0R5jz?R{1F~iWؚ 5Wת^YJPЮɍ%gѰEz^Y=ZRz/*|@M6`dQ-}[\tge"yJLvꖽb{&v_5}ק'I~:׻C=BXа+}pWI>-Wt_F9+/ %o1tl} c(_Vn='עDr$;_L@мz'Ez>˴3Z~zR~#\8ι>$VjXg+o$K"'ysr]zUz~ ˫xfs{S_k{ֹ4;͟/Oddh[k.=d6[աljRkGܿuW7_iACu5_OWֻZnTueJ>eq1x}HĔ-VԯRԗtUZ̵|W'5`YZ|Kwh6z4S_WIڽ]z"ބ5_eOJ︋VVUZZ֪WZrf{rIy1]mb^2$eS^j7%L_wԈ)d.zo1Y~ ZfudTGҾTOH}`C`/Jtzo?-i%į72]S$RfZDIjSQ]f;tzM >߫-2E V\=mit6RZ#߽Z_U# _OZ)o.+b-TOF$ׯl|NYJl~)dc}y!g=܏O^^s.u+ۀ#%zm O_/3cQA_  AyrΌb86Ȓ[u5*,w3GΟٛ_G$4ߪzgi56$2q:u,B`( @X*'BQ `, Baxm{9ĒqڴbM\N;}6wG }>D r 1$ cXrsۣnRDר=o, Wy]|;s^񘳪^^\s-9=ϝfsRfY&0ɮ0q sND4&0W+, &ðT(5B@PF$*BwW۝uw洺e5Vw$ݷ?q@Ds_}31E'(p$cnCSoc^X{qXzl1}ߨ{0yFU:xԽzoMq>w`_3!Թ*Ey(l `\0 pT(E Dg93|xw{s$8p8xs]h@ m_z5PQ~MKZ^eb׹$(@X0 q0\,pD*{N{o**f3SVqK}/6hKCP|J?֟.,ov,笎wgSn4A0NLM5zBzt*MO {.u&;M= 8|[#qŗ^>ڋ$zk{.nJP@- Ѿ45;( hE-i֙ו+q^AD rоZz课^{Xcqջ{.Wu}WKK.׾un6l\X_lQ&ND^'*L)*V;Vuw뾾[K"@|5og>rّFdk3cXfՉE-+w_zޮ2VCOY=pvo;thY]#Хk׾kYw'_)={u WէXYqģ/|b_֫OLKV7+& w [bsx%OEtNcلKr|~_ RFhIvD|_)1WyΑ7Ç&fjE }T9h2Ɓ}xfr{C6;ώ|?}r. ;k:J}(dVE|rԺy7G2=oqSuK5ԑ(ܞ_[.k}6_)pɪ&A\bTub7g[w]@h mxik,! sZEߧ9I_tIsKsNK:L5Ч^}K}U_;tqKO sM vk"{z SDNh{I%2c,HT폱X'1@i7wxV=)_@6i(KY2g5xPC1]1_.KNowRɣ~;_ZNJ^JQ`nDbW{=ow W[׽v^W;XG.E잂 ?\AD*w +딓=Kk{\fpgԕ~T#TC~;?rn,(ohlڱ-Ԅwb'w ]y?? 64)װ*pAAw=GyASq{B9~ 7b=FOkmfSGG EI)_~.~ED;'g'F%οC\+EʽR}'U_^׾%[׼W*x[9u^)fKxLԮ< FgG}]ItJk̯ҿ.=~hU5 Ụ=#aMeXC60hZTU{hۀ &s[ w5Q=ouV^֤~ֻ[gE#sL.J+^w[VL%hqiśྒShX7?O-[(2PXPgj|rn~KHdl /FpߟP%J+竈n%vlBc}zY>l"f4cjѯ*G |<C(Am`QGLY&i_9"!ɹi&й#:ׯxK7~Dcg?KC⶿ɶ5o'͉AAC)n 3٥E|ž9D뵊W<` *`r=̾;f &*z,>3_5>{\ ԕ~鵯7^rQz^Md_f <7O:&3Vr>1eQA%%iMI}2{- E^R/*3a1bM;O?^c,oT~v[ bkǩeV1S!\zsDo oX/_(&Ԭ^z-cO[OTw2DeGW05}s5{CJĬ}'~hdr_M=xwXCi ?&d>Դ0ʢ0L@)=A.TIWkyErB&o_卖H|}t\C΢g6z$Fy~j La/G49QLp֏%M9ˌQ,߫;}ѿȖ٭kBZopoD?=qeq_!_b_jzO?]+kք궘Kkͦa₟z{JK54Bzx׽k]tOwW%~3EwDs֪TtDDB1<ZVWtAEJu*׫W/7^׽W/פb{:zKv~N^6,ai(q2%%NUإאc` ߢBGJYjoa`Y_$bZr55uz˧Uiod/.sU6cE+:-~|Z_-գe妢fMCIM gn]a D{Բ-+sעwTR,)c?_)}>yuȫ_YEZ~fEOGVڿ)=Jktwuw;6mפ擛ծKfJ[ t1u/ KB[vGeU%u^"Z<>!G4_2ONI0D؃)hyXeͭ5~jOZWj[0w{G QZ4q0?l?2$tÆY K/rO|Nq Mb]΢Li_n~Ü}pP25b @7!{.^&}׈ٍulExR7 CC,wV_ kQۿ)ȼtLq月4VY?"\">Nr-|9k'"aS#CDau#S?y<}ò:}1I:?E*O]wk%ՐPBzXQCE.: n*'LF <_8./ӱ4v\;GaFg}D8&ػ$bv%ÀZ&5corobM=]&e&o=[6'w}^i?Oќ==wO%_jAONOG`K hROh;M_*'ߜK[DvܺdVLC!dz~>oW#^!r½S44zt$3r*y~C}lI~e{{}Y()??}ZsPV*_[5C&%vd[mAEjrq]u!=~UMVWU]N. z+⻻S$&oG*Q`<վ-{8+2vT'A.+/ZWW){_a>f*<e/H/0hG[U:_-[ۄ,u8pftT_} HgQ*>W7Wtg|v^Ub/f>].o.cVwD;uz~Q?DZ\ eRww'^wsrJkޚ9Ө1'w,^W\_\k.l88kkWVtd$N<8I0eNqmPOZ6kylɏl wBzϡ1U-QO?'w@5ayPZ9 wBd8jExTZW5&/hXCڃ6z R#tV*h\'Mh7y#^:Z]/n<=g1ezt3:^%^OZ$4gC= %e8JO퉋ir~UPWCKLHTR^}9UcJCmGGs*w< p<͸wwvӾ`#-qM~D^sHW}~N\`H+6]<2D>?t>XFVJc ??u7!<> Ou4lob1>)`ږsGs.?J_ׂ`ƈ}Z26~_*jTo-$>OJ_)nR d`_9|Hr49W. TU\= ^}S'ꥢQ(ӥ|?z}2\_8> `֠СAdCNKa j|+ӕhig3]/@@1^/=pGОՉ{(j ~:@ο cgUý_b%#',\6Ç]ȒZw=F;xX01 \3_]x'zۇ94R@@α_d̢!]RZAS7\i ,guO@u ?DHOJKY/MwT u4<>M=˞OVpg*VHdB Ƣ=>8N:i%r(`@0풂ط޸7ޭ+6jffsǸ GTO߾._P?#Z' OF1)x%l^ƥ|%\'T tֿH{ h#rI׳R&L"/}U̴?LioڰyI|arTu,w Y{Y|of=Uٿ}yrO5 :`e0$-"Dp c³z1!lcʿ@jOW+ ZEXa/ Ȼ}m%\KT.]2nY*B" ʓs=jY1|0[#LEUr[!ϗ0>hRݡzbֻ!Jom7o7O'Eҗg묕OtS'L HSI}@>޽՘&O5ԉ{Sykc/篢 [=ǃL+?n{دNf# uޭ{D餫C {ӷѺEZ(F`XRa@T,B`X.oI={y%6| OqyV=]S{&4t|{ljkWLJ% iML1N2YۧBxOjs(;FqbҴX˝A& @h0" P, Q8D5o*RS%mnŨcM1蓋8A-_hsxpWLV_HyxMԿjYPh}ùNgaѽOL^.X00t,.A>i?qPַK]VΤʚDxݥ.+)d#+p&,$ h( b8P, Bb("G0k/-LqWFmݾ>Hܴ7컑GU޲+]zܕ٘~ٓ;x5cgk)xmL"lk:@4|IFygGyܷjDRI 8Hkmryʺ!&>gerQªP?/~f7R?stah1I3{-o &l!``,p. A0bGr5[ϯ*_=8-\ߠ}ȋtSڨ"h,e?gxJ/2~","€X6 A8X( aC(L*+uw/]UrMTqw;wēB*ȞgD2DPʸHkx^3K׿Gtw+F}vVm\x2dY}ON~l@jĮz (p/q=+y1< S*KlX@)8\`&Z`T,@P&%Jk{jzL]EX;cv'wG"Ύ+<–`*N}8m} E\uJ,~^}8Ϗ~AƽkC?nk\3 Sv˺O\=/{# ߳A6l*WWֿR]߭Kj?jC]}^ ~ C~'/e^[~l|o:~Z\Nn7)-q"=P_<[k.sÓh4DYV0\!뭲^ ܞ)W<ϔ!n?a|g&CL֦j ǿU"6j I-vgve- FlQz&bC>x o@;q8iMO3j,c^ljS#$zI@ì&@glf=[4aEjT|{ gGz= P-_rU Zbu v>u?Z/'srVV_W;%􄅨K<3a0a}p g6sr<&|'iJ'w*F`kkǧ*M_֟~;+Я.8(#^3ҏ?+H h{U/t~#Q֌goq8`2e[ L0ځ‰W(]qun*59N H-0G/D;ީ1qEk b/B' #\IyH&h|0"?DпU:'AqW~_-¦% xv^oGZB֐{`7p@nDDz}MS~0$`DOZF}1ote8מX{ 4ٽOQ/H7^ ش ;a@%'Z\BO.N>vqvm uA6wijGwAtOj5crT nWa0e|d$|w{"[^Q%a|-#c> >Ի'~OR^"bd"]ji<6OO{Э^,~y>-A~ qːNZ o θlbuл ӳ~UL#}}_MR]Y |ݻp%ˮ Bq ݴtf&w2YVi^I'׷'Y~y|Y 'u$g Qy7_%7wgis="ۙ_gPlTVb{"ƩrU]9ViA zqwDy|R FRB3>xMb?YnrՙMKAFw{z:ж*(~kֿZjXkb^LIyָ-bG_ܔNWjBd- KpIJwީhMG>I!]pr ?%>O?ȁg^$<;-<7k+vrNl゘7iz`ힼVn)zR%mMUm~^)r#kQ}Bc]m~=až{Q[m$pW8YVJMWKs+?ߣU)d2.J+ɽ-LUO'^?XĶ&,  5ꇊ_Jr|Jb[~$2Iv W8K*+""bM&J[#>WWﰭb=%4-6׺'wZ*EʴV:$+NPfP C]AF6{'(0eH=J`n}K\Pr }i#+} Q*1EoȹNU#iV3zWf7nVS7eO/M_hqo.G{wtKmi OW~܂/ }nu=[t'эˆPftD6UZgɘ(%y4cXo9>m8 x0{^=zOR'aAF>H[gJ3NwY%NȣpO#6?-LZ`Hvf|+#:%<~ *%ٷ)2,䞱wޑ5h=$I]bDԪ:UO_~σC5GMA5̑g-` [t߫WWW7Sb]H7蛒PǮ’^ыd%0؜_óR*GW,\9>UilbiNGN~h-&EN|ЃigY~?2bQڗ'8k6ht0Na!*봿#- #qi=b:,~ @s B|V='~MdE6|zT#|_ՒE z9i=O|T|j$rAi$I 3MRFwfΜ=9Jն ZQPϜ@/$ͪX;EPatڙIU}HU?}} {}v.O}|0Rl_s=W:OG g!{Wu_ g};)2дN dC$M0O2xV,K!?jfδtHv}B)VZ/N?0a<}k T5a޾bq,O_ i gӆ+/_L;!ll0%H|*")\:od˃m"3d_5-zdwEod}|J=TNrr߬׮ÖjIX_{աwGW/﮵?Ynv;*AGuh_~^ww5^ߩ/:O'n꺾.ZN1KO>|ͣr{*yǒ T+ʹVZڱԾ^r*|s_'O،=ߙ1ָgF |ȗ47WfMQH7=Snsoc|[A;o}[VUr8>6_ח"bn-Lx! s}jo\Q,UoHTuEL}'v]/c饻˓׹W~ paJP]&j{^V*ׯ=&ѸZӄJ|\L :C^/Xy-Y%,DN+'[&O7Y5A]:+6AWi4+u&2̪(JD=URZb~um -uñA#fEEK 5~ԹٓK`4۳ji4 FM.؟3xJi >a,$Oء'3W ִ8gḊk鄿̟m 2ibZ.'i{T=sr,/.&D{baɃ!cTzR%d1/]7Mt+&uIP{͘8WC.^Ec=̆}Mωdtd ɸ`zKF0w%+QkZee ށ=MJKR |g]& gFz_!f`0nhJ[ٓη$ޕ5\= (/DEisᛵRZ(߄l ٮ8ݍqf&cY_NhqZ^M7m+eO]謆V $ `¸]Mr[\ 1_l%gWvma86C]%\#[hv'_ 5FmhK/rEƪc9N2j.:uk/rJ"w;9qK)3| Z|PFwwy-j핆EjM8p09 `0rҝ.9rjDlQ=Gy>*Yb{r@1֫Z _D icC'qN~ J.<<j(@c.i4^`Ww\חygkGn2>CP'GVr̮x%1n<@Vf)*9]H-YlA: rc_59uAL:"-/f:]/])`VJ En:I "C{pWx}}#_t ^H*:_ߵ_³ҷ,3ܵ#78ow<=FI1*> nM|xKqxWa0)*Y L* /a^0VIXs0`V.D|!mW/K,=%TGȺ,+wχbFC@Q"la z@J EY!j-Ț9>D侜@`g$j 4F>RSv!j,̚c簿'Ui=M.Uًp߾[`wRhʅDMgs>RA3RS7$~I͝kܫߢ=}'il827sdϩί #c'Im넎?/T4?/4zJƴDσ~aMk}QSz{m.OG#+ CI t2{\Wemϝ`Njx/  ?CpԖAD^ 13pljbocIvݎOQo{ސ#Rs2B4c{ǚ2tfc!#4<^>OS{zW/BS}XwXI?{}Nf unZa>4%{ M&{'AyAOg.L.H㠠WǚWaU|S+"+&CO"+2Wo }Q_&3'^CHB!nbER qC6y(h46S>8w^Un cg \ga"@;弿1wW-z}i(e{w\ F"xt؞}G{'oh_URqWu}U}}}N:D} |C0Lv۾:>xgX;n6/y>"?ﰑ)eĸĭaQbhS>eٸJB\uI~Tq ?ƄIhY۾5g1qp0;}ԵKz;խUוvw:Q~Q"XNџ58g> `3cIfܯ K<=n};]D- ,>΂xnz̩s:o>3yM*<^}s>Ա٩af=~qx+ HNQޔqǶ;q!8 Ю|FKyXvsVn-)hN#5Z}Oޯ60Rz)I!w{ vk;ߜ#L(u1'^(DStk&~?f㞚0M)o|^jU|`l=ON-7-3[hKcc/׸[ӓ jz,UOѯfwg)Z2G=WQ~Uz+a"kkwjJ%vRʼR\hl|u ܔ)z!y#f^lߧi /eR|Iee U]}ݚ GRTY??/昞4Imw-u1qf-^5Vu_п7A-Mvw^U_(H];vy/Z'KE} Ǯ jsפiN,bF?hOِA-h=$~zoXNi.F6 YַR@Q]H |E퍹.7h=aRbFA^։%=(BՂuH+uwLY&űZ}˜t1eX$?P$r'ݙduĕ;FJ^_5i9S!/ASl-84LE=ujPH3~*w|/gfdYP(۷.k4w<5ڒr/dPF dj6LYnfV a~EcNhb?b,t4[9Nws? hj紹?L5m(Tڸܗ~[Y:iQrkTXz?ܔ%TߝSI딮'ӂ፛@Ggk82mlTČ<|+5nыowD/:Ŷ'{L*9}x:VEW('^^VKGumT:Dn}a[x+fPx(_^ !1eu/j ׇmܙUC( ƌBW}KiIҕ.DV4SRaR0e$Wuo anXG e aXŊv~>*1B>5tR=_Ϻ6U.&'wĞ7Y0`$V>$;TP}ćڜ&s,Cv'-f]N©ǠՌ dg6`Ԓh<'W ^';ud]6O ן^^Hf|o+eŏ|^EU~F~Uٕ񻵎].W|oU5IĞ0> PrHeYׂ>2n:3f:8`BwQ@JA|dL~#m%k5^XOv_3x>#Y ƼI=!iHVdd_}r+u}շֿOkܖyW3Ra#@gOӥv;ֆH)8ݟ7k{Doس_;'  \_}ndθmJ9biJ5zK|h" Gdɟ  O` tێn e&[X0d6Ƴ|&L~6|haah׿VIZvc#V;!T!7 Op56Du\4?^tUWW7M-d׸"+إЖ^Vv7RIr/zSVmZ?Wurt$-V7UkrZSqb21mk/!BA+~:V/OZ}zQO ˕*} @Asl+|w2|DݐڹK2Sc'sHZH% Ĭ%~}I}֫=zcBuX>=tI)O!*>:Ss|ˎ4}y;.;>ls:_[4ukqlxl@Pq_eOPd5 E饧DK{ϓŭ`4%6:{~NzOWTOrW)y>29Ue Y'ਜfpO&+l?iHOMQ}nNqrn{ @g!/&#錖R}~"04U4EcrJ\я6 X⦅y |j?LAa5%`N8B_;  iye`E g33nf q(|y0Y\ݨWPa*HT䞣~[a{ɒ+ OJ|hcLmQBX8rpjuƴ3ٻ 'j5ȷ#OM &jip%^π07V؅$&c%$Kyth5.=|s((G9V^FbftZÈ' -LR_Hn (u z ~ze/Kr:YrQ^b vAOixJ/u`PMە~[o_'ӓO1|*#{Փ9=txζʖ~OE NeQRp>XcH_ñ4o6+ՊۓtW b7xU' 󕟙a2Kb<Dhp%3}-S(\$B8~J_bry<7',ϓ|/fK 8!"cwLx0O'Ȼ9G;`Lo_КYeʾ/=%ܥof1qg=//uI2R{= 37s`,:^mste6d'~"Qg}1%}=v;66'E-cUtL|8_&es񗖄S.=h^pC{~ au_9W"Lj\޾oBu',/8mLI(A0cˋ?%9?{۔ןf-!L~}m?!d`dbѾOK|~[ģ/oSY.أ)=w4  s#6P#{ؖ$*=߶ [A>Y-8.ߌB}VZxJ]mEw_gaPC]ۜ2 EWwݯ{K߫I;B'ٿ&tw/&3TWU5X,KUnM2\ UAIJu}UUUu1M]J}W_O.ֿW锩/W}__"H{13_#hyU!1;`p%L') 'w|ߢjׯ]\U觹ёʑ5fU+K\[}:?$>K>r?ä|"=㬖R3X.d9fXhA 8.у~b>c-_nEi`OB=œ~u+Ww5K׻^.Δż3Қ})Ubľ-VaPnJ$:C=7#-YЂUk([/D_Dg}gNգt'4I̯/W75Cڰf%JEXZO%/G*\ߓ-z?蠠F&%.dEM{'Gf2I5L oG$W߬U_U{2خH lAI0`~ij~n}sSBއ%,!DGpnݟќe$ CW]pggnfnV.Y)h/v`Lsk ),bEd!rMhTMz^H7:# .L46TZ &lw? {tD=KoF:Ut;5tHi:a8z/Б=Z&Ys-0{0`yJJ$L q OsF;@UqP|9'1@B""Z]87\}wڹxV_%ж i\:|˼@dvuw=u}(Zj%n*ȿ)[pPD a^~U帺[t i}CIi0fr>\%} {']i&kBB_ht.3m'_}fn1MQ+]8wMc%T4JJ AmOam`[fc}eQ)1c)6>e>_IP#+W7(i@6?޼/aØ }8T7y~-|Yg悸mBehp:ԥcú*k(&<\fv?=<![^Ɵ0AX[|_GFAI,\Tj4aagZ0ޭ/}Ћ?z.RRBPݼUDÈX/[Y+ |N)xm:5uv %[Kuq_ͣ%mVok/nW~>>z\dOHO?1Vb ĄxbL-a!}x hhpV5wߗ" .aΔ#?$Dɞ&RK"lŝ3 G[p%eij=`iC&|er{J#e"BʛKp_؀Gh{c9#(%a]ӂ9*O7f1SZ+U#?Uգ?s-&xx7ʍ :&thexme,IhXee2Ň]?ఛ@e'7/ny(JwQP5Tf˕X/ TF}W/_T&ƫn00DТdWoK,vJVM`F̀pug,@Ícxo`Wاg* At#4R? [?hsG .̿ӣY[Ga u.OsĞ> Thevf$d*Re=}%Ӱ?td1=KLwL5z|o?80K6'02ʗG5R德±ݩ۬A8oӾ''o^ȇh#fxi ҭ$̕N>E#$+'`n\_0|p&wDnQqn,6 8e+OíuWؑ2S?ȁy-!fP/'޸w&^sH Hx0f.' +E0b<&0=ۆpWAɆDWo/SC:as¤=͞iMW˦N:11sG?_R-kZsNG0>Og%$ 4_~`Oֿ݂-e˱OH&|jޫחWU쯲 -(-y J|i%'d;^S^fV2ޓUdyȿ $_wAٔOO#XZo=_c;{CYo/*j^%ujOzN" tia)iFޯ=V סuʚ"=T^w5'}z׵Mh=9;.|O:4]k}_ 2AIjwtOMWu+|ʿի=Z뮥i9=5z'}]߮2ʹ*wSJ_=UaaUg$$^6 a\mgst8r[i[#ZW-xeU._j}?N]\Ēի}twaUw&lvNyh#kzꖈõiS Bg=jkZ*_}}omY 8Iմ{}ʿZ[ծU5j$&>͖,p8]}rw? 蝒\TG_umς|㕍Y'ѥdssII~x<%Ҹ.^4vm'0^:ی# L u!VZh6K>cvanخr^HY) 7/sN>67D)*>zZ1N.C nϯ¤N0E cN[ SL$%2CyJ/&}ey:5noXa٭#WsEt~hg_5V~}+p6Ǖa}5I:ZAW83P}"lhX |a"8h+Z|o`x fD؀]M 'RP`of dPPOGeݎAFw~,ܞ &诺 >0|ENO? zmHV_Fz`xv4XW#*)L.+Qh?PR$AZ_rhu!3Y*6bAV*Ki/}>+ yYBv`} `x  ' $Q*@')^z`iG`& ?7}@>? "zowP&R#zܨ$ORA ;:_}q\:9-w܍ԓZ呟%5JYR-YS_6ׯ-s.ޑ+ bv{6xme%D'-Q7~|W( `ѾL#_r EB7_B-.^+\h;_'ּ?wj&XĆ ^Lik9q CQ'>V.\|Z\^W^^TH.;,X3 2P腹TrSyf䡼zнphdOrz#򷰩BuU[,rQj=Reѧ G2A">6(}Y dRӰOB[) Q _C Q5|pG{ ?wz4 n_xW\1$YwL4FiNs7.n+85l@50@o知FAT/pfaX'ue_ }/9$}U0Yz__'cmV(8s+fQװTDu3]Mvv &S_ۘ>Ob+6 !KN 4ߡ/Ogܸ3 Ljv&5<5Z exmc#dn{{0%Ӻ2 ٩ {to|IVmE+u~[kyg?!c'-mUBhC<=~}Z廿ВR_Ȋ?D2fqH[Y=qc5٩Ȥ** `L `*@|~j3v]- Y%Uj/2B>Ooja^Wny$Z뎬;쾪/+ }|ڛgā,Lj4t8A{7ip8B] ֿWw^~u&*8a:shm=.3?),Tꪸr'^m0l=1lẝCѤ<3jP|?4jh{VPZn5~qJNyl֋5W2ZD,, BX( , Bp\"Wۯkup.T''Cqw+U|._9d=k{J] t6l9T~?<Y rzPB9 f}$u}١kP` *-,OCMeU<ި@Yˆ}ٍ7y' f~Oۚ䇆|noυ|y=SjkӞIu 5䉚k*<, AP* p"UW\6nSQՎCǁ׹(?@Ğۻ󾻀{ifB*%5y@? rMþj9i߀SWK.U˽Z޴u O/V UYB{u<yJd3} {pʼK;\"q_z}Xd+OֿZkZZzZ}{<=ovD KksUϓ(U e__Uz'/L=I}ֿ2nUR=w/MV)jBe_ʽ8gp^Q~Q{⤵.V;֪֮E)_M"#rq=7utU=z0pHw/FtR^:ζ1\gr½Xע iw.yw.EjIWJgKYʔtl{(2 &w3~9עq@bQbouqR~*`HS>OZaH Aܛ-#MaSAK-u|S~N􃖐29.QP45 Vz\~U JA7> FNJ:^C602SHקaXު *O {XqO+gځxц|g&7wc=?:aWշ%JݫeטC߯jcbh\]=_N?'mИ| w4'.h=QߟNcOZNUÌ? z"3oln{ ;3^ :t(f%; xx8G''vOW;֮W†[r}*f3רp|ג΢=?ئ_={Vjܦ+㤾A F ږE{^*ׯפڰO>{[O8alK?3QܐdpH\(_:ԏ#ꑄy$aah\ aFet:&1 /pk⹂/C@ >+u^mԺu{lVZPÃ֮48g@6C?^}w|ͯ}ioL/Qg~00W}G^ BOf +-p.h`:%q5OTQr>?K/Ϥ(W0ε/d=}q'?:2_=]Ȼ +Z;I.b#cՍMFg w Nr0ܭJ\5|nȄf+\!z^N[%^W /K'v ˗$@}((w?:<+;D m܂^_}I"Xf\8Lۖ,]nD V(u|_`}ݲ޺N}IWU o3h}3|{jO=wWRݷ'įr~EPeI@Y~f$rGޕߕ|zE_=+w/.IkV=vڶxb/Vז.UjBY(зTw9o4~ T_!=Ue$AJoֻ^ZUU߯j^+Й.oW=Ѭ.ڎ ѧVkk\vXիtGd'ܝj>W\7x#}7I\U{۵s noV^c{dO1z%ʭ[u˵'ڿZ/w) n^Z'?erH#֪{߆j1z{.ln]XG{Φ)E88: _~5hkjrzoW/ˣvDQ}O]?qr\Kv0Fjk̑6<2x I+@W(u2aaɢA$c+;B7%cP2eSZv][_>.``y?ǹ!ʛI'?Z6$ZfZ_j WPK+1bn6=6fow=KsX#3-&9po N8;l:N˟؝ b_{Aw{80c/,IBF^N뗜] KACzzOq]>^[`w,6 c$(Kh8iH*bTy=jLO`| .(n5E㝅@ڑ7N})4,>7.vNLjNq!vǘ! b\%׼M凮۠(cKExɼR(` H5UEFItxn1^vC/zd,鷰y_sj~TY}}PׯCWףkrVW>b1؋-2Bxh~[. Gz;A$mB/&'?7'Z1'_˘ WˑbqT IނwEώ 3|:}B]$xoYFJBOMH/^vAfCYԖM͞Ѣ'w$M6i.@wJV7p.!QEa{0?%O'ʨ4Aە8!u2ﰌpD803G~B"Mg$ !a2cQBn̘F<=Re>L~ZKFFe-{`ys0ڞo$8?|b]q}=AS푀]gpOIh/v535y_}-Ϛ7R7^O`{Sv;6dkU\Ծrk)G/v`3ѿy{a]O#k|ס-YkK]=8*Jc"ѿa1˘/}Ko{3L~ē S6(ϫ=~;wtK1} V*=RE}%Z>Osu^_nɜ.\OwuAlmj`*AK}ס-~^~^_g,w/ׯzV//՗Q5|9=!h몵ʽe-2_~WCKҤ«rB3Hw{,l{}:[W}=7R}eε^s]U]z^!FZ=_Jj75k_j"ǗZu+Wbת_vK= Ar dRduy=bb^ez^?䘙6d=g4 O$BF[1 ֠'5,LW"-]Rz߫VThs͸2|ot4SV 4ZxF=ж7=8efHlժ6Em$uar2/kzY) =FxhDX/'>?cqPaPq(3b3z3386wEoMl2V ԟkṕ}68$s,|Hk4&Μh+,S:$?aNlCR;>ƅ#/P.U掗Rh 1‹pm(1%CNj/>\Aϗˤ(hr]K!{uZ)Eh&0-ܞUjфLOj$`>̰G }ɨrs_iR_|f'=[C-IGr<}"~~9B3s]c,w-MDd2!Ҫ{[쎺vffO/Iu{{} P``dЁҧi =07^zU~Zo_ڏ*|Cn=w? 9)inmtd9qzSwnw,zfلCJٷzո? tP/i-WRKwvZOg]ua\%!}"q| i1W`jr{R_vTs"<ԩQW! ޻AKu]ww-~%krȵ x6_~_R$IYK-|ק(6UHvo~ţ}qε'4ޭwZd&SK\&s?&UsU(!7U:h Lo(^'7j nyƪN^Q_J:YQ=jOWO6O]jhힾ 9lܛQ5D鐂7ϕO)/4yoʡN{)<'ghB\z7WYN7m1>!g|> =-fF-?~0y(4ľ%<_Yy259r#R[pUu;i1x{@{CvdqKeeyi/k(Gk^ڲ­ +:Pd``E jYK[B;{1r&}V'6\WaWw(`1"5ϙ_D]sͯOU^Ԧ1n^Ǟn`)a3YH+?13'vt+{vLqP87Mu/vd wfZJ\::W ^:a q^J&ܛC @- 9s-( #cb"ehaE!xmO~inKo~3eCnO}~W-f8OQθy,BH :> t4V twկE "r8 's TKy}=?~jࢻz%LV K82~]lt8`[Pyv(EߴS=.^^dd|JHHIPhG1ya"h'wQ/Ҫ  PJjǹ9x?$b= ྺ}{K𨧻Ƅή0D<].ON^4%I PId *Nwr44y+ϔ# z6^J[>HDWyG bx/r6B68蚎l.$u1\\i=..zw@s-1 Tx=?DȣL|ٺWٹ+NOs-%6;ǐ0;{b[a8ֳ&c'̴NATKv>˻"$ۅ:֠pĿt}d^M*'kݡYxKa>Nyʾch/. rן-Z}<E]]Ի^;҇kEz'}EL#hsܑ+OIMmyi&%''kYuy\N%ݯfh +*%~Fe`q -csˡH[J=I-b`rYgl} %ol880NꙬ]T\mjp f1cC-.0W`8*, aX(&`P, `\*TeDb.J֖8֛G~$f\9̺kВuT*n5/M:򛌿_}.ؼ<#:5[uO UQ_X$4ف(ϷI%PyF}KzP: SRMK4-#gVXONIy  O[΢kgv1y|{<^|+ W&ivl4T= $TH B0PL $zox.R^䨥R5uzvziC4r=hC)LoIQgl~I8ryL/&Xl8@ gWt*>:9\C *%홎( 5N {ȼAx w0wO}.iT@- P!GQl%!~p{ .AL yw-_]տ\VՏՋHիvZW+=W(62]pOr_h~W/lʩ ['-#^?^7^gEe}ڻpߺЙ2 .kbʥ_hW<^E7iwܷ}/u_]EH\g'tc-+xJy~'۫u3sIg"V4' {yV+W{Ekٍ0/OWn4\;7.OyIwhUuD~W~PUB޳P]#b 0Xd+$W9<~G$KײhVUd=߳e %"}3{wQ+dSw_ L` ϔo}-~/^lM#%wegU >|l4_[߾Ї5/_N'Գ^]UV!f}][3Y=)}}"@[֮W1sчy=] |EcV^izG_tjwƯM IvR0J.|5z[D\Q+VA?>7} "QvQ G&0QG>΅w7~t%~B'xjuOO]k]_bK#:g}Op;cQ}vc¬_Uzm:$c뾀nuM 8N|eԗ>pkww~IQ0^#ث&|4xfyUʖ:>(i[Q9r}r;O ]>97!9qXb& Vs\Jq~Q&7$1Yz,]whlbuTKY+;׷{; e>Vl|R}qva;NQ/߭woSɬ!7_ tId l%c'eo}@0M&Fdӗ_?>&|N>nWW^Dr2&ww*'w^ R帲w.ؽW׺=q^ʮK>L%N~O'AL*}*߯~W=]W/WR#O䔗c~O\T"W֦'%g@R\#'8g9˚;^v>۫>U1ZC]1e%CaZo^z⿜s{'3=| g]ZIVO+Zko*-jUy7zrt\= \ܫZ\zbXՊbL iI.Ӊ%j''mSFt|;R3l;׾4E穉oZzU᱗O{!Oi鮪ӀnQ{norZr8l3˹9P_U5̗WF n%=On_GDB m>=Nhn_@d}z=뇺Yhx@C3$nil@{ab^uQ(~~:Wr>Y3w-=~tz=s_g2#AaD і]V9W /:}wgόs(e)alw ՠ(Fesbc^Qc.{Uerֽώƻ=csw#+~d3n_CDfj잻][f.+ .*BR ۰CbtCνpa Av|λ|cc 1:PI1 4/͵&|MF &~%O/ׯՒY&%1 8a[~Ǻfx 0VRTxQ}a?n~8+D?K}^Ҙ6"[H^Yklʿz_hmP2CYY>fyx:ʽ tou !꽯VzvWpԟMC>B#)Jc|C1 \ ^·@] :M%IW1K-^[ޭRvlìXaT u=a?!d%eo܄6/G^OyZ]kW+v3Wq5]A'K1,,ˢmDs'G+ u;rX$ɗ)|v7[׮eE] B.UW:.mr={Fr-AMjuKxGZ_wss^HtwZj!{rl^0QvuUœ )Ox@aI?TХsj_<ɗѥ^sףN.o[xjw~ܺ]KwwcVX0Եwk71ҩK.{wh|Rm|]]]dޫW'=_+O婯Xk-t/[o^rhW_tJW{ߣ?:]*%z+te!^9BM{ο7߿w&PkW*/#8dP̻fWwd}7^;n'rZֻ'~aH [8e XN?Oe^,u[u<)«[׿tN^Lkv ΟVhICDLIWwf%:O ½r>|&u˜3 #t<+#Zwį_(% ;W  Q~,D^-dp#RwХk!/t(xp{NqlN^EokFz LfJ39xԽ}j63N-pKb>bv_WGRN"%Bzzb{^M}62Wݏ16OW-z2y'&UhnR_`c7`1w`2)Cm'}Uコ~Gy= %WX:s;㤳6[s@7:<׳4&Qtٿv?B/U:w|b83iYy.\}]Q_X &Zr -?ukO ^H$L)2Ilɯ!s /R Nr*0X[55JL*]|cKHygR{t;` phVpNUҦqQ-Lث.NMT~"`^C=K {yyRX $\qO-=YJE2 : )jM4TYtRx<) NCz0r9E.9ҪLe#"v_#-f&3b'' "#g&UW%e5WUdLy.bINJfQg11%|ivٛ =4*j'0Q:AYUwF_.<(*,]jmЕ56WU *Ξ_x}hm0Jcb]NSr]{+;ҭvԿmANf jTCgf(𵒌W"s~SGf"NmnېX-bٶ5Fc6k`P.^YcW?™17r: p*}FYj,(2 @,4 @X( $M\v=Mʵ5F̑=G<{ei뛌kZGȽR*NDzs~׎n=?|㦯ȳou>0|rYb\-nk_S>&;v4K}#X+M 6Sہ^ 8k Nc˓1GAHMhd,(E pXP B@P PT"Fq9+%j%Tʝoʼ+ڶnwLO7Be|ʿkg֞^%PT=&92;gx-TqfXkAȭN5S;LcB/^.QQ"8*uǝClU~?[=w( 7~ \vM޴_ANuh]~Ik]KM]W{Zkk-qjR}gky=X5j]֪ oҬ+עڱε]w5 ,]Wd gOܿ-K@ҰܦJC wƽ>,:V\=z_YsUڹ%]!ciz}M|)xTwvY}\y.]K~Aq5uk(j[dՆ7uk;s^1 7ut'B<%&Wu\ZY`O%|9$t֙'ʢK;Kd_ A؏G/?\߯vM*6eaơ 3/ wwӪ^;,e#V "k}}w-$M=>sVMoR ' b2Ѳ>E!F8!^loJy)~1y=FY~)A'۩-=Xmp7iXb%I?$m|׻'wr\=_bxy$@Κ_KE{>>+8Z!핔e9b @8ؒӖ%{if-Jvկv/SRP(˸ 7oÒCw垳a jV0D\+ߦپw 7n)/\}+OV .,^"L (JOm:WHwswv~K7i+Cߋ#0lK.ϕ41\^If%lr[ -Q.'(jm&=9/rHtNwQHy;rG8x'/{ j?ıO"~Ebvzla˛}k-+8*b(bOˏ׫5i{wdߒ6uVJ#ANwyF_B矉'zYڱAL$,_O@FM"ݔH9ݯIj1I9j֮Zq8of|7r/*PXKTWwC^>oK/_~E./W螈0݊'WuWW'L]Xq\PF/wtFHmB{^׫%fDpm:]19-}~܂Sn@UJqAbO}x{,Г&+FO4L .ry_p@pZKT1>?`EzxdH ~/E=F Cw L6t> bJ{W mfւF :{ۈ@qB@MyHsBoPbsʧhK~T ub5/RK2XhCDL% ^hU^ 6{iƒ9L8|, /kҖ&{jb1xx!;H}Seש)Zz\up fIy{tGօhb4?2$\` }os 6J:31, >ekäX9WzrO*%y=X <70D6mMF`k=Mڂ _؀Tr7Z"-R81.w-*ѻ' О'&vF:Y}TuZcB; O|U߽zY﹯VkU,*=]b23#;cw)UT}@ (^}oWmV9ڇ^л'dvs [O_FgX HqoG>zI>Bcy{ϨBDЎ.z>?="$HRz+Oaխ'()Omn̄BuX Ix]h~}k%9#"j7ȑbrn3WUxuF,WJƿ5sA3O[˅'qC;m{mwp>_^bz~(E2sDKڹyT]j4j߿b~AOut?~,_kz~XX׿W\[s^e^s~ݯK@o^;.T6Z#qOH3SKC_S}~r]VI8gFh -<ĎAl]mq%"+%~Z_^NEτ 9W`R?ܨ^={ByɧTFC>ܷD4D*-b& |PLq{:;w+ΫM?q-Cv[CVL[깹"Z F^O|x@VI')Be,T)hRȮ].1d-pڴNU\K,jq=M\ͲvũvԗN66B^XjԵp.a+]k }Ncaa.Pvи/Z-8[%" ^f?Bz~Wi/[c"clqkf͈⳨ؓLG>z]_ Zּ| :%QJ)7,= %gg a[jՎ4@> -U'>6{=yHw+K#/M.m&Qzҝ %g _˃&PfVRA %ğqQBR]Hލ1'ֳSZ@U;cb|jIy|禮'Q=0b廠o .s¥.}imAZ$ ~R?'s}բ{[B3$}r}.\7 (eJzȡYqaBZl?&QFqx3'oNH=y&vJv,$h`\K`My ؝x1ھq)G._~OSֺU5&9#x z)k3|K}=iav_U~Wx]-A cLuhN_ț׽ժD^^"x~M7KK;^Kjxerx^W:8^"+:KbpН~ܐ_'d]+{Z-v sg6Eʥ#/Ew姓 .&8/P7 kyq_Wn_Ƽ:\p&^'zt ˝ԅ_}NePG=,DƆơ[Id_scE3E'4Lϰlטq%ޅ|d=G)cՊkkD,q?Σ4|8I}CV_^\z73F޽W_uu.=;YF]y?JY~؇}Ί)W3TAUdg;_SRϟE`K 3"}k ]/DÎ{};QS:Ji7)7oc&3R2!5קX^ZJ5Φ_fr>O`S7_n$.!|}ߓ6L:pSzc$ n F3Y|Ǜֿ7 CfXƟzA 'qsޜآ.UL셕Tvr 'AL~wT봜XƇP}|u0ϫ/㷺t9 0)B]3s1S5<Og6 Dq7yX rjp_{wIG֧(OE_S}?{T1Fȭj^{Wޢ`n[HzM/0l-\%(( A(Xp BX(&#0z=w܉Z3T&_u?oZCor3sszq ꒱s2A?<;DO/oOhZ҇@z]_)<͌Dg}' F@]ڂWޗ$OB|t""·òe vl V_ވ1B.H= j `X( b X(& 0DU{Z)|KX˾p|>x;,-'/}y8uW|FZv eIx08ޮxzu }ܜd}T ĂniqХ$چdY.l HDY>tB)u`zA" V.w|JH}V$eN ** a X(& APf3D%˺1sQ'Cp;|_[ jggجt vM5]W喇-IMdj5}sU_(,b,V" 2hB2-KJ H1sTq=y%9%-(.RX*(R `X02AQ T(LgUM T 9J-c}F??|n\˯ tkYN;OxvNBtK6Cx^o Sh$)n""q=;,ݫ[=KwmAEv J%*  x|_1meJWԸĨ8((2 p`( BAP J'oY[O~kznu9s4Rt6񎃸'ge\k#_ܴoŒDZ*~G 7;o +tb5x3ވC˻˟utwt}$S˛tҬu|&9v;pb" !-?AP w}Z\b?U]Vk~j؞#zN}8q> Ė7uM,%_Ѣn>rܧK!e{bV?^[;.M}X\V+]KTtfzOW'Ц?K|  mzbVb5z^.߬gWBVzWR]zX"cJjѺ&bV5}ܢg~|!z;_0׊f#Mͽh^d^]5ں^@ {aK,#iQ2B D_{Ӭ6 ?FK'z_Jٰy7M~.r{4^N_ !=-˙wX/_rzRX!#_BגT篽Sw&_,@YY^ /~ľrӷ|smbkUQ>-cMWeqMwMM{.+xJPI{޼~+/yXazFS Jq]zzkK]MAP*r'=/XbwݫuꦛֺɫV]gʳzU劽v/U딗$.Aޭ)a5a'~"6HoZW`y7caZ'c}jKCzjЖWbj7ЮbaPWjo^zخ{ֿV;*cEvZI}jZY{[~^^#UժA 9/D~9eWbD$L}1KZܷw7U޽]_hTY= 2 &!~w7-#iՉl+fh^jj#^x,& R =zxNF\LzszLNk1]D~hDB,D-_Cc>ᄋ1uf%vS#c ^# 47$:ao* t_f˅iU4FO[ܣ4;{ׇ^B@}y/%ӧ'`{MlS2}os-FkAO. "I}׮MgE~cqd{"Ʌc"]wUu.:]o[ =AwV~1s[],U0_{ÊejRf_3ƙ;JF2mQ1{c(]/*Z/޾+WMBwFo a c[i[yW{֏GքƲ+OyF/wz+xtYVO{k#yuˤW$U Njy,3{z)Z>]u[WY^1$kWW]kNɁ4JyO!jϤߓ'x/M}~XDJSݫ[);|"K/@AQJ}HK}2ъ|#\_]7O>_ڦZW 7'ۛŗU!IT}~jb߉d>hX\竲x~Iy{ظhL]SHzDV<;]'ߪ RD*XXM=ӂ>Oi(>$7AD܉( - K*uw/`[掾 KJ}W`굦?H#ֽNhN( Ĝ'%+;;@<^|n޾ouߢvu6h}L겱Lx\_i= ibC>>F)͟B 4DU]!SKև|O>a._ŢO_WC\Y`R?ztK~E}ݡEb\?'%ֺ*A%G4X7y}?l \'b-lҗKs9O|UҨ_~BI_^O\-I:.#el܊/=HDZM-YL-]=8io[߻UW'L{T?]]oLzu2^F_1q bɡ^_ߐ'z:߫"ܟN{8`7ݮ_3urrgm{qfEK^,5UXO;tk᯿7ʹw}Wwη6)E=Z8g~WX_VM^z5r"$BQ0`* A)*QT"w2s~3n7ֲnfw}_Y۵{n, =OtoT?_^e26.'+&z\N%ϩс"xwK\7PZ(/0dm!z _Nz ~5`a4.OQF0p*`X0)Q(3=:RZ%C/I:_>ߨNEUaOD!7}MWdFۇd65?dq~}4MHuV:ԧSiߓ~SJo9p^^-?zp%y*2R3@!0 ϲ(TdÀ`(& Q!T"wysxHMNTMD{=UKs5/kqyFWwW+¤qa m#iL $ Pg7q.l]pQGn.='7,yUA@ aRDkqq-H(,Ԋvh;Nc uutM)=R2LiXL:V߰+ZhvvՊU֏ {.%nX3r <)2DK.rTatS*%ƘDS75uz\p ݼy Vu٘s 1G} 3 3mhR[VOj%*~}<</>pN&Ԕ( B`( `X( PT"b\{VdT'HN7ßs֎QxLthC_<; 8nȐz9o]P0]il~1LMpSHF?mn?/Twj!@_Nu5hl=wm(Zn$U"7#" }>!f$߫5]iq(l?d#.UtH gARHNW]~vVՓzr?W&WڽK7.׺Ux\(,r8?X7VO_ϕ\}\ߐ`!>81sr-w|tlUwLX,5SqIy=Y6kXs~\*zNy6BKso"v{h`_:K\E씂o'kߖD^N. 9"Kބ18O &[]]Ur\Yy~}_v?'kfrOd^n~e|.'Jw=@7|]+5ߦptW~=W]=,o'ܕKO8'1g*2ZS2+5+I5z e%hzOKw^㧟&!cm_˺B"^M=ջI$ש/Gu;"Q IIY]e5.wyX׸.k'w$E⺻F}̹|E~h,NPBI*Լ–an7J20w]d‰:3UEt1oSjI-2 >?Ib&&"u|o7x:-]c}tR%K &+Lb2 ެoW%cA`&pէ?O^IfGzߞ$B쬌 do1=HQB`[FT*}1H^t 5} }A/njW74Xtw moovlmvhd_@iodsO trak\tkhdP@0@mdia mdhd_PU!hdlrvide]minfvmhd$dinfdref url stblstsdavc10@HHJVT/AVC Coding3avcCBgB!SM@@@Pbh colrnclcstts stszV' 7Es&{JkLz.&z , | R  tHa c 1 B 2 {   kt 6   t ( ` m > y $ e {IY  k@0li5=hM} xqs= Y 6.f1Cku(stsc*stco*sdȥ__AQ~̦iLc~Cהl;-Y{+gstsssdtpDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD~trak\tkhd@mdia mdhd!hdlrsounminfsmhd$dinfdref url stblgstsdWmp4a3esds"@eDkstts(stsz  m(stsc&stco&m!§ҎߎTJ~(š5\jbmXM!9g]xjg~l S\tGudtanameStereooudtagmeta!hdlrmdir:ilst2too*dataHandBrake 0.9.4 2009112300freehug-2.6.0/examples/streaming_movie_server/movie_server.py000066400000000000000000000003201353170073200237510ustar00rootroot00000000000000"""A simple streaming movie server example""" import hug @hug.get(output=hug.output_format.mp4_video) def watch(): """Watch an example movie, streamed directly to you from hug""" return "movie.mp4" hug-2.6.0/examples/test_happy_birthday.py000066400000000000000000000011511353170073200205370ustar00rootroot00000000000000import hug import happy_birthday from falcon import HTTP_400, HTTP_404, HTTP_200 def tests_happy_birthday(): response = hug.test.get(happy_birthday, "happy_birthday", {"name": "Timothy", "age": 25}) assert response.status == HTTP_200 assert response.data is not None def tests_season_greetings(): response = hug.test.get(happy_birthday, "greet/Christmas") assert response.status == HTTP_200 assert response.data is not None assert str(response.data) == "Merry Christmas!" response = hug.test.get(happy_birthday, "greet/holidays") assert str(response.data) == "Happy holidays!" hug-2.6.0/examples/unicode_output.py000066400000000000000000000005031353170073200175370ustar00rootroot00000000000000"""A simple example that illustrates returning UTF-8 encoded data within a JSON outputting hug endpoint""" import hug @hug.get() def unicode_response(): """An example endpoint that returns unicode data nested within the result object""" return {"data": ["Τη γλώσσα μου έδωσαν ελληνική"]} hug-2.6.0/examples/use_socket.py000066400000000000000000000021101353170073200166310ustar00rootroot00000000000000"""A basic example of using hug.use.Socket to return data from raw sockets""" import hug import socket import struct import time http_socket = hug.use.Socket(connect_to=("www.google.com", 80), proto="tcp", pool=4, timeout=10.0) ntp_service = hug.use.Socket(connect_to=("127.0.0.1", 123), proto="udp", pool=4, timeout=10.0) EPOCH_START = 2208988800 @hug.get() def get_time(): """Get time from a locally running NTP server""" time_request = "\x1b" + 47 * "\0" now = struct.unpack("!12I", ntp_service.request(time_request, timeout=5.0).data.read())[10] return time.ctime(now - EPOCH_START) @hug.get() def reverse_http_proxy(length: int = 100): """Simple reverse http proxy function that returns data/html from another http server (via sockets) only drawback is the peername is static, and currently does not support being changed. Example: curl localhost:8000/reverse_http_proxy?length=400""" http_request = """ GET / HTTP/1.0\r\n\r\n Host: www.google.com\r\n\r\n \r\n\r\n """ return http_socket.request(http_request, timeout=5.0).data.read()[0:length] hug-2.6.0/examples/versioning.py000066400000000000000000000005761353170073200166660ustar00rootroot00000000000000"""A simple example of a hug API call with versioning""" import hug @hug.get("/echo", versions=1) def echo(text): return text @hug.get("/echo", versions=range(2, 5)) # noqa def echo(text): return "Echo: {text}".format(**locals()) @hug.get("/unversioned") def hello(): return "Hello world!" @hug.get("/echo", versions="6") def echo(text): return "Version 6" hug-2.6.0/examples/write_once.py000066400000000000000000000010031353170073200166230ustar00rootroot00000000000000"""An example of writing an API to scrape hacker news once, and then enabling usage everywhere""" import hug import requests @hug.local() @hug.cli() @hug.get() def top_post(section: hug.types.one_of(("news", "newest", "show")) = "news"): """Returns the top post from the provided section""" content = requests.get("https://news.ycombinator.com/{0}".format(section)).content text = content.decode("utf-8") return text.split("")[1].split("")[1].split("<")[0] hug-2.6.0/hug/000077500000000000000000000000001353170073200130665ustar00rootroot00000000000000hug-2.6.0/hug/__init__.py000066400000000000000000000060641353170073200152050ustar00rootroot00000000000000"""hug/__init__.py Everyone needs a hug every once in a while. Even API developers. Hug aims to make developing Python driven APIs as simple as possible, but no simpler. Hug's Design Objectives: - Make developing a Python driven API as succint as a written definition. - The framework should encourage code that self-documents. - It should be fast. Never should a developer feel the need to look somewhere else for performance reasons. - Writing tests for APIs written on-top of Hug should be easy and intuitive. - Magic done once, in an API, is better then pushing the problem set to the user of the API. - Be the basis for next generation Python APIs, embracing the latest technology. Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import from falcon import * from hug import ( directives, exceptions, format, input_format, introspect, middleware, output_format, redirect, route, test, transform, types, use, validate, ) from hug._version import current from hug.api import API from hug.decorators import ( context_factory, default_input_format, default_output_format, delete_context, directive, extend_api, middleware_class, reqresp_middleware, request_middleware, response_middleware, startup, wraps, ) from hug.route import ( call, cli, connect, delete, exception, get, get_post, head, http, local, not_found, object, options, patch, post, put, sink, static, trace, ) from hug.types import create as type # The following imports must be imported last; in particular, defaults to have access to all modules from hug import authentication # isort:skip from hug import development_runner # isort:skip from hug import defaults # isort:skip try: # pragma: no cover - defaulting to uvloop if it is installed import uvloop import asyncio asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) except (ImportError, AttributeError): pass __version__ = current hug-2.6.0/hug/__main__.py000066400000000000000000000000671353170073200151630ustar00rootroot00000000000000import hug hug.development_runner.hug.interface.cli() hug-2.6.0/hug/_empty.py000066400000000000000000000025301353170073200147350ustar00rootroot00000000000000"""hug/_empty.py Defines a set of empty types for use within hug, to ensure extra memory / processing isn't taken creating empty types as default values. Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import from types import MappingProxyType list = tuple = () dict = MappingProxyType({}) set = frozenset() hug-2.6.0/hug/_version.py000066400000000000000000000022371353170073200152700ustar00rootroot00000000000000"""hug/_version.py Defines hug version information Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import current = "2.6.0" hug-2.6.0/hug/api.py000066400000000000000000000612531353170073200142200ustar00rootroot00000000000000"""hug/api.py Defines the dynamically generated Hug API object that is responsible for storing all routes and state within a module Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import asyncio import sys from collections import OrderedDict, namedtuple from distutils.util import strtobool from functools import partial from itertools import chain from types import ModuleType from wsgiref.simple_server import make_server import falcon from falcon import HTTP_METHODS import hug.defaults import hug.output_format from hug import introspect from hug._version import current INTRO = """ /#######################################################################\\ `.----``..-------..``.----. :/:::::--:---------:--::::://. .+::::----##/-/oo+:-##----::::// `//::-------/oosoo-------::://. ## ## ## ## ##### .-:------./++o/o-.------::-` ``` ## ## ## ## ## `----.-./+o+:..----. `.:///. ######## ## ## ## ``` `----.-::::::------ `.-:::://. ## ## ## ## ## #### ://::--.``` -:``...-----...` `:--::::::-.` ## ## ## ## ## ## :/:::::::::-:- ````` .:::::-.` ## ## #### ###### ``.--:::::::. .:::.` ``..::. .:: EMBRACE THE APIs OF THE FUTURE ::- .:- -::` ::- VERSION {0} `::- -::` -::-` -::- \########################################################################/ Copyright (C) 2016 Timothy Edmund Crosley Under the MIT License """.format( current ) class InterfaceAPI(object): """Defines the per-interface API which defines all shared information for a specific interface, and how it should be exposed """ __slots__ = ("api",) def __init__(self, api): self.api = api class HTTPInterfaceAPI(InterfaceAPI): """Defines the HTTP interface specific API""" __slots__ = ( "routes", "versions", "base_url", "falcon", "_output_format", "_input_format", "versioned", "_middleware", "_not_found_handlers", "sinks", "_not_found", "_exception_handlers", ) def __init__(self, api, base_url=""): super().__init__(api) self.versions = set() self.routes = OrderedDict() self.sinks = OrderedDict() self.versioned = OrderedDict() self.base_url = base_url @property def output_format(self): return getattr(self, "_output_format", hug.defaults.output_format) @output_format.setter def output_format(self, formatter): self._output_format = formatter @property def not_found(self): """Returns the active not found handler""" return getattr(self, "_not_found", self.base_404) def urls(self): """Returns a generator of all URLs attached to this API""" for base_url, mapping in self.routes.items(): for url, _ in mapping.items(): yield base_url + url def handlers(self): """Returns all registered handlers attached to this API""" used = [] for _base_url, mapping in self.routes.items(): for _url, methods in mapping.items(): for _method, versions in methods.items(): for _version, handler in versions.items(): if not handler in used: used.append(handler) yield handler def input_format(self, content_type): """Returns the set input_format handler for the given content_type""" return getattr(self, "_input_format", {}).get( content_type, hug.defaults.input_format.get(content_type, None) ) def set_input_format(self, content_type, handler): """Sets an input format handler for this Hug API, given the specified content_type""" if getattr(self, "_input_format", None) is None: self._input_format = {} self._input_format[content_type] = handler @property def middleware(self): return getattr(self, "_middleware", None) def add_middleware(self, middleware): """Adds a middleware object used to process all incoming requests against the API""" if self.middleware is None: self._middleware = [] self.middleware.append(middleware) def add_sink(self, sink, url, base_url=""): base_url = base_url or self.base_url self.sinks.setdefault(base_url, OrderedDict()) self.sinks[base_url][url] = sink def exception_handlers(self, version=None): if not hasattr(self, "_exception_handlers"): return None return self._exception_handlers.get(version, self._exception_handlers.get(None, None)) def add_exception_handler(self, exception_type, error_handler, versions=(None,)): """Adds a error handler to the hug api""" versions = (versions,) if not isinstance(versions, (tuple, list)) else versions if not hasattr(self, "_exception_handlers"): self._exception_handlers = {} for version in versions: placement = self._exception_handlers.setdefault(version, OrderedDict()) placement[exception_type] = (error_handler,) + placement.get(exception_type, tuple()) def extend(self, http_api, route="", base_url="", **kwargs): """Adds handlers from a different Hug API to this one - to create a single API""" self.versions.update(http_api.versions) base_url = base_url or self.base_url for _router_base_url, routes in http_api.routes.items(): self.routes.setdefault(base_url, OrderedDict()) for item_route, handler in routes.items(): for _method, versions in handler.items(): for _version, function in versions.items(): function.interface.api = self.api self.routes[base_url].setdefault(route + item_route, {}).update(handler) for _sink_base_url, sinks in http_api.sinks.items(): for url, sink in sinks.items(): self.add_sink(sink, route + url, base_url=base_url) for middleware in http_api.middleware or (): self.add_middleware(middleware) for version, handler in getattr(http_api, "_exception_handlers", {}).items(): for exception_type, exception_handlers in handler.items(): target_exception_handlers = self.exception_handlers(version) or {} for exception_handler in exception_handlers: if exception_type not in target_exception_handlers: self.add_exception_handler(exception_type, exception_handler, version) for input_format, input_format_handler in getattr(http_api, "_input_format", {}).items(): if not input_format in getattr(self, "_input_format", {}): self.set_input_format(input_format, input_format_handler) for version, handler in http_api.not_found_handlers.items(): if version not in self.not_found_handlers: self.set_not_found_handler(handler, version) @property def not_found_handlers(self): return getattr(self, "_not_found_handlers", {}) def set_not_found_handler(self, handler, version=None): """Sets the not_found handler for the specified version of the api""" if not self.not_found_handlers: self._not_found_handlers = {} self.not_found_handlers[version] = handler def documentation(self, base_url=None, api_version=None, prefix=""): """Generates and returns documentation for this API endpoint""" documentation = OrderedDict() base_url = self.base_url if base_url is None else base_url overview = self.api.doc if overview: documentation["overview"] = overview version_dict = OrderedDict() versions = self.versions versions_list = list(versions) if None in versions_list: versions_list.remove(None) if False in versions_list: versions_list.remove(False) if api_version is None and len(versions_list) > 0: api_version = max(versions_list) documentation["version"] = api_version elif api_version is not None: documentation["version"] = api_version if versions_list: documentation["versions"] = versions_list for router_base_url, routes in self.routes.items(): for url, methods in routes.items(): for method, method_versions in methods.items(): for version, handler in method_versions.items(): if getattr(handler, "private", False): continue if version is None: applies_to = versions else: applies_to = (version,) for version in applies_to: if api_version and version != api_version: continue if base_url and router_base_url != base_url: continue doc = version_dict.setdefault(url, OrderedDict()) doc[method] = handler.documentation( doc.get(method, None), version=version, prefix=prefix, base_url=router_base_url, url=url, ) documentation["handlers"] = version_dict return documentation def serve(self, host="", port=8000, no_documentation=False, display_intro=True): """Runs the basic hug development server against this API""" if no_documentation: api = self.server(None) else: api = self.server() if display_intro: print(INTRO) httpd = make_server(host, port, api) print("Serving on {0}:{1}...".format(host, port)) httpd.serve_forever() @staticmethod def base_404(request, response, *args, **kwargs): """Defines the base 404 handler""" response.status = falcon.HTTP_NOT_FOUND def determine_version(self, request, api_version=None): """Determines the appropriate version given the set api_version, the request header, and URL query params""" if api_version is False: api_version = None for version in self.versions: if version and "v{0}".format(version) in request.path: api_version = version break request_version = set() if api_version is not None: request_version.add(api_version) version_header = request.get_header("X-API-VERSION") if version_header: request_version.add(version_header) version_param = request.get_param("api_version") if version_param is not None: request_version.add(version_param) if len(request_version) > 1: raise ValueError("You are requesting conflicting versions") return next(iter(request_version or (None,))) def documentation_404(self, base_url=None): """Returns a smart 404 page that contains documentation for the written API""" base_url = self.base_url if base_url is None else base_url def handle_404(request, response, *args, **kwargs): url_prefix = request.forwarded_uri[:-1] if request.path and request.path != "/": url_prefix = request.forwarded_uri.split(request.path)[0] to_return = OrderedDict() to_return["404"] = ( "The API call you tried to make was not defined. " "Here's a definition of the API to help you get going :)" ) to_return["documentation"] = self.documentation( base_url, self.determine_version(request, False), prefix=url_prefix ) if self.output_format == hug.output_format.json: response.data = hug.output_format.json(to_return, indent=4, separators=(",", ": ")) response.content_type = "application/json; charset=utf-8" else: response.data = self.output_format(to_return, request=request, response=response) response.content_type = self.output_format.content_type response.status = falcon.HTTP_NOT_FOUND handle_404.interface = True return handle_404 def version_router( self, request, response, api_version=None, versions=None, not_found=None, **kwargs ): """Intelligently routes a request to the correct handler based on the version being requested""" versions = {} if versions is None else versions request_version = self.determine_version(request, api_version) if request_version: request_version = int(request_version) versions.get(request_version or False, versions.get(None, not_found))( request, response, api_version=api_version, **kwargs ) def server(self, default_not_found=True, base_url=None): """Returns a WSGI compatible API server for the given Hug API module""" falcon_api = self.falcon = falcon.API(middleware=self.middleware) if not self.api.future: falcon_api.req_options.keep_blank_qs_values = False falcon_api.req_options.auto_parse_qs_csv = True falcon_api.req_options.strip_url_path_trailing_slash = True default_not_found = self.documentation_404() if default_not_found is True else None base_url = self.base_url if base_url is None else base_url not_found_handler = default_not_found self.api._ensure_started() if self.not_found_handlers: if len(self.not_found_handlers) == 1 and None in self.not_found_handlers: not_found_handler = self.not_found_handlers[None] else: not_found_handler = partial( self.version_router, api_version=False, versions=self.not_found_handlers, not_found=default_not_found, ) not_found_handler.interface = True if not_found_handler: falcon_api.add_sink(not_found_handler) self._not_found = not_found_handler for sink_base_url, sinks in self.sinks.items(): for url, extra_sink in sinks.items(): falcon_api.add_sink(extra_sink, sink_base_url + url + "(?P.*)") for router_base_url, routes in self.routes.items(): for url, methods in routes.items(): router = {} for method, versions in methods.items(): method_function = "on_{0}".format(method.lower()) if len(versions) == 1 and None in versions.keys(): router[method_function] = versions[None] else: router[method_function] = partial( self.version_router, versions=versions, not_found=not_found_handler ) router = namedtuple("Router", router.keys())(**router) falcon_api.add_route(router_base_url + url, router) if self.versions and self.versions != (None,): falcon_api.add_route(router_base_url + "/v{api_version}" + url, router) def error_serializer(request, response, error): response.content_type = self.output_format.content_type response.body = self.output_format( {"errors": {error.title: error.description}}, request, response ) falcon_api.set_error_serializer(error_serializer) return falcon_api HTTPInterfaceAPI.base_404.interface = True class CLIInterfaceAPI(InterfaceAPI): """Defines the CLI interface specific API""" __slots__ = ("commands", "error_exit_codes", "_output_format") def __init__(self, api, version="", error_exit_codes=False): super().__init__(api) self.commands = {} self.error_exit_codes = error_exit_codes def __call__(self, args=None): """Routes to the correct command line tool""" self.api._ensure_started() args = sys.argv if args is None else args if not len(args) > 1 or not args[1] in self.commands: print(str(self)) return sys.exit(1) command = args.pop(1) result = self.commands.get(command)() if self.error_exit_codes and bool(strtobool(result.decode("utf-8"))) is False: sys.exit(1) def handlers(self): """Returns all registered handlers attached to this API""" return self.commands.values() def extend(self, cli_api, command_prefix="", sub_command="", **kwargs): """Extends this CLI api with the commands present in the provided cli_api object""" if sub_command and command_prefix: raise ValueError( "It is not currently supported to provide both a command_prefix and sub_command" ) if sub_command: self.commands[sub_command] = cli_api else: for name, command in cli_api.commands.items(): self.commands["{}{}".format(command_prefix, name)] = command @property def output_format(self): return getattr(self, "_output_format", hug.defaults.cli_output_format) @output_format.setter def output_format(self, formatter): self._output_format = formatter def __str__(self): output = "{0}\n\nAvailable Commands:\n\n".format(self.api.doc or self.api.name) for command_name, command in self.commands.items(): command_string = " - {}{}".format( command_name, ": " + str(command).replace("\n", " ") if str(command) else "" ) output += command_string[:77] + "..." if len(command_string) > 80 else command_string output += "\n" return output class ModuleSingleton(type): """Defines the module level __hug__ singleton""" def __call__(cls, module=None, *args, **kwargs): if isinstance(module, API): return module if type(module) == str: if module not in sys.modules: sys.modules[module] = ModuleType(module) module = sys.modules[module] elif module is None: return super().__call__(*args, **kwargs) if not "__hug__" in module.__dict__: def api_auto_instantiate(*args, **kwargs): if not hasattr(module, "__hug_serving__"): module.__hug_wsgi__ = module.__hug__.http.server() module.__hug_serving__ = True return module.__hug_wsgi__(*args, **kwargs) module.__hug__ = super().__call__(module, *args, **kwargs) module.__hug_wsgi__ = api_auto_instantiate return module.__hug__ class API(object, metaclass=ModuleSingleton): """Stores the information necessary to expose API calls within this module externally""" __slots__ = ( "module", "_directives", "_http", "_cli", "_context", "_context_factory", "_delete_context", "_startup_handlers", "started", "name", "doc", "future", "cli_error_exit_codes", ) def __init__(self, module=None, name="", doc="", cli_error_exit_codes=False, future=False): self.module = module if module: self.name = name or module.__name__ or "" self.doc = doc or module.__doc__ or "" else: self.name = name self.doc = doc self.started = False self.cli_error_exit_codes = cli_error_exit_codes self.future = future def directives(self): """Returns all directives applicable to this Hug API""" directive_sources = chain( hug.defaults.directives.items(), getattr(self, "_directives", {}).items() ) return { "hug_" + directive_name: directive for directive_name, directive in directive_sources } def directive(self, name, default=None): """Returns the loaded directive with the specified name, or default if passed name is not present""" return getattr(self, "_directives", {}).get( name, hug.defaults.directives.get(name, default) ) def add_directive(self, directive): self._directives = getattr(self, "_directives", {}) self._directives[directive.__name__] = directive def handlers(self): """Returns all registered handlers attached to this API""" if getattr(self, "_http", None): yield from self.http.handlers() if getattr(self, "_cli", None): yield from self.cli.handlers() @property def http(self): if not hasattr(self, "_http"): self._http = HTTPInterfaceAPI(self) return self._http @property def cli(self): if not hasattr(self, "_cli"): self._cli = CLIInterfaceAPI(self, error_exit_codes=self.cli_error_exit_codes) return self._cli @property def context_factory(self): return getattr(self, "_context_factory", hug.defaults.context_factory) @context_factory.setter def context_factory(self, context_factory_): self._context_factory = context_factory_ @property def delete_context(self): return getattr(self, "_delete_context", hug.defaults.delete_context) @delete_context.setter def delete_context(self, delete_context_): self._delete_context = delete_context_ @property def context(self): if not hasattr(self, "_context"): self._context = {} return self._context def extend(self, api, route="", base_url="", http=True, cli=True, **kwargs): """Adds handlers from a different Hug API to this one - to create a single API""" api = API(api) if http and hasattr(api, "_http"): self.http.extend(api.http, route, base_url, **kwargs) if cli and hasattr(api, "_cli"): self.cli.extend(api.cli, **kwargs) for directive in getattr(api, "_directives", {}).values(): self.add_directive(directive) for startup_handler in api.startup_handlers or (): self.add_startup_handler(startup_handler) def add_startup_handler(self, handler): """Adds a startup handler to the hug api""" if not self.startup_handlers: self._startup_handlers = [] self.startup_handlers.append(handler) def _ensure_started(self): """Marks the API as started and runs all startup handlers""" if not self.started: async_handlers = [ startup_handler for startup_handler in self.startup_handlers if introspect.is_coroutine(startup_handler) ] if async_handlers: loop = asyncio.get_event_loop() loop.run_until_complete( asyncio.gather(*[handler(self) for handler in async_handlers], loop=loop) ) for startup_handler in self.startup_handlers: if not startup_handler in async_handlers: startup_handler(self) @property def startup_handlers(self): return getattr(self, "_startup_handlers", ()) def from_object(obj): """Returns a Hug API instance from a given object (function, class, instance)""" return API(obj.__module__) hug-2.6.0/hug/authentication.py000066400000000000000000000127031353170073200164620ustar00rootroot00000000000000"""hug/authentication.py Provides the basic built-in authentication helper functions Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import base64 import binascii from falcon import HTTPUnauthorized def authenticator(function, challenges=()): """Wraps authentication logic, verify_user through to the authentication function. The verify_user function passed in should accept an API key and return a user object to store in the request context if authentication succeeded. """ challenges = challenges or ('{} realm="simple"'.format(function.__name__),) def wrapper(verify_user): def authenticate(request, response, **kwargs): result = function(request, response, verify_user, **kwargs) def authenticator_name(): try: return function.__doc__.splitlines()[0] except AttributeError: return function.__name__ if result is None: raise HTTPUnauthorized( "Authentication Required", "Please provide valid {0} credentials".format(authenticator_name()), challenges=challenges, ) if result is False: raise HTTPUnauthorized( "Invalid Authentication", "Provided {0} credentials were invalid".format(authenticator_name()), challenges=challenges, ) request.context["user"] = result return True authenticate.__doc__ = function.__doc__ return authenticate return wrapper @authenticator def basic(request, response, verify_user, realm="simple", context=None, **kwargs): """Basic HTTP Authentication""" http_auth = request.auth response.set_header("WWW-Authenticate", "Basic") if http_auth is None: return if isinstance(http_auth, bytes): http_auth = http_auth.decode("utf8") try: auth_type, user_and_key = http_auth.split(" ", 1) except ValueError: raise HTTPUnauthorized( "Authentication Error", "Authentication header is improperly formed", challenges=('Basic realm="{}"'.format(realm),), ) if auth_type.lower() == "basic": try: user_id, key = ( base64.decodebytes(bytes(user_and_key.strip(), "utf8")).decode("utf8").split(":", 1) ) try: user = verify_user(user_id, key) except TypeError: user = verify_user(user_id, key, context) if user: response.set_header("WWW-Authenticate", "") return user except (binascii.Error, ValueError): raise HTTPUnauthorized( "Authentication Error", "Unable to determine user and password with provided encoding", challenges=('Basic realm="{}"'.format(realm),), ) return False @authenticator def api_key(request, response, verify_user, context=None, **kwargs): """API Key Header Authentication The verify_user function passed in to ths authenticator shall receive an API key as input, and return a user object to store in the request context if the request was successful. """ api_key = request.get_header("X-Api-Key") if api_key: try: user = verify_user(api_key) except TypeError: user = verify_user(api_key, context) if user: return user else: return False else: return None @authenticator def token(request, response, verify_user, context=None, **kwargs): """Token verification Checks for the Authorization header and verifies using the verify_user function """ token = request.get_header("Authorization") if token: try: verified_token = verify_user(token) except TypeError: verified_token = verify_user(token, context) if verified_token: return verified_token else: return False return None def verify(user, password): """Returns a simple verification callback that simply verifies that the users and password match that provided""" def verify_user(user_name, user_password): if user_name == user and user_password == password: return user_name return False return verify_user hug-2.6.0/hug/decorators.py000066400000000000000000000204141353170073200156060ustar00rootroot00000000000000"""hug/decorators.py Defines the method decorators at the core of Hug's approach to creating HTTP APIs - Decorators for exposing python method as HTTP methods (get, post, etc) - Decorators for setting the default output and input formats used throughout an API using the framework - Decorator for registering a new directive method - Decorator for including another API modules handlers into the current one, with opitonal prefix route Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import functools from collections import namedtuple from falcon import HTTP_METHODS import hug.api import hug.defaults import hug.output_format from hug import introspect from hug.format import underscore def default_output_format( content_type="application/json", apply_globally=False, api=None, cli=False, http=True ): """A decorator that allows you to override the default output format for an API""" def decorator(formatter): formatter = hug.output_format.content_type(content_type)(formatter) if apply_globally: if http: hug.defaults.output_format = formatter if cli: hug.defaults.cli_output_format = formatter else: apply_to_api = hug.API(api) if api else hug.api.from_object(formatter) if http: apply_to_api.http.output_format = formatter if cli: apply_to_api.cli.output_format = formatter return formatter return decorator def default_input_format(content_type="application/json", apply_globally=False, api=None): """A decorator that allows you to override the default output format for an API""" def decorator(formatter): formatter = hug.output_format.content_type(content_type)(formatter) if apply_globally: hug.defaults.input_format[content_type] = formatter else: apply_to_api = hug.API(api) if api else hug.api.from_object(formatter) apply_to_api.http.set_input_format(content_type, formatter) return formatter return decorator def directive(apply_globally=False, api=None): """A decorator that registers a single hug directive""" def decorator(directive_method): if apply_globally: hug.defaults.directives[underscore(directive_method.__name__)] = directive_method else: apply_to_api = hug.API(api) if api else hug.api.from_object(directive_method) apply_to_api.add_directive(directive_method) directive_method.directive = True return directive_method return decorator def context_factory(apply_globally=False, api=None): """A decorator that registers a single hug context factory""" def decorator(context_factory_): if apply_globally: hug.defaults.context_factory = context_factory_ else: apply_to_api = hug.API(api) if api else hug.api.from_object(context_factory_) apply_to_api.context_factory = context_factory_ return context_factory_ return decorator def delete_context(apply_globally=False, api=None): """A decorator that registers a single hug delete context function""" def decorator(delete_context_): if apply_globally: hug.defaults.delete_context = delete_context_ else: apply_to_api = hug.API(api) if api else hug.api.from_object(delete_context_) apply_to_api.delete_context = delete_context_ return delete_context_ return decorator def startup(api=None): """Runs the provided function on startup, passing in an instance of the api""" def startup_wrapper(startup_function): apply_to_api = hug.API(api) if api else hug.api.from_object(startup_function) apply_to_api.add_startup_handler(startup_function) return startup_function return startup_wrapper def request_middleware(api=None): """Registers a middleware function that will be called on every request""" def decorator(middleware_method): apply_to_api = hug.API(api) if api else hug.api.from_object(middleware_method) class MiddlewareRouter(object): __slots__ = () def process_request(self, request, response): return middleware_method(request, response) apply_to_api.http.add_middleware(MiddlewareRouter()) return middleware_method return decorator def response_middleware(api=None): """Registers a middleware function that will be called on every response""" def decorator(middleware_method): apply_to_api = hug.API(api) if api else hug.api.from_object(middleware_method) class MiddlewareRouter(object): __slots__ = () def process_response(self, request, response, resource, _req_succeeded): return middleware_method(request, response, resource) apply_to_api.http.add_middleware(MiddlewareRouter()) return middleware_method return decorator def reqresp_middleware(api=None): """Registers a middleware function that will be called on every request and response""" def decorator(middleware_generator): apply_to_api = hug.API(api) if api else hug.api.from_object(middleware_generator) class MiddlewareRouter(object): __slots__ = ("gen",) def process_request(self, request, response): self.gen = middleware_generator(request) return self.gen.__next__() def process_response(self, request, response, resource, _req_succeeded): return self.gen.send((response, resource)) apply_to_api.http.add_middleware(MiddlewareRouter()) return middleware_generator return decorator def middleware_class(api=None): """Registers a middleware class""" def decorator(middleware_class): apply_to_api = hug.API(api) if api else hug.api.from_object(middleware_class) apply_to_api.http.add_middleware(middleware_class()) return middleware_class return decorator def extend_api(route="", api=None, base_url="", **kwargs): """Extends the current api, with handlers from an imported api. Optionally provide a route that prefixes access""" def decorator(extend_with): apply_to_api = hug.API(api) if api else hug.api.from_object(extend_with) for extended_api in extend_with(): apply_to_api.extend(extended_api, route, base_url, **kwargs) return extend_with return decorator def wraps(function): """Enables building decorators around functions used for hug routes without changing their function signature""" def wrap(decorator): decorator = functools.wraps(function)(decorator) if not hasattr(function, "original"): decorator.original = function else: decorator.original = function.original delattr(function, "original") return decorator return wrap def auto_kwargs(function): """Modifies the provided function to support kwargs by only passing along kwargs for parameters it accepts""" supported = introspect.arguments(function) @wraps(function) def call_function(*args, **kwargs): return function(*args, **{key: value for key, value in kwargs.items() if key in supported}) return call_function hug-2.6.0/hug/defaults.py000066400000000000000000000040341353170073200152500ustar00rootroot00000000000000"""hug/defaults.py Defines and stores Hug's default handlers Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import hug output_format = hug.output_format.json cli_output_format = hug.output_format.text input_format = { "application/json": hug.input_format.json, "application/x-www-form-urlencoded": hug.input_format.urlencoded, "multipart/form-data": hug.input_format.multipart, "text/plain": hug.input_format.text, "text/css": hug.input_format.text, "text/html": hug.input_format.text, } directives = { "timer": hug.directives.Timer, "api": hug.directives.api, "module": hug.directives.module, "current_api": hug.directives.CurrentAPI, "api_version": hug.directives.api_version, "user": hug.directives.user, "session": hug.directives.session, "documentation": hug.directives.documentation, } def context_factory(*args, **kwargs): return dict() def delete_context(context, exception=None, errors=None, lacks_requirement=None): del context hug-2.6.0/hug/development_runner.py000066400000000000000000000122351353170073200173560ustar00rootroot00000000000000"""hug/development_runner.py Contains logic to enable execution of hug APIS locally from the command line for development use Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import importlib import os import subprocess import sys import tempfile import time from multiprocessing import Process from os.path import exists import _thread as thread from hug._version import current from hug.api import API from hug.route import cli from hug.types import boolean, number INIT_MODULES = list(sys.modules.keys()) def _start_api(api_module, host, port, no_404_documentation, show_intro=True): API(api_module).http.serve(host, port, no_404_documentation, show_intro) @cli(version=current) def hug( file: "A Python file that contains a Hug API" = None, module: "A Python module that contains a Hug API" = None, host: "Interface to bind to" = "", port: number = 8000, no_404_documentation: boolean = False, manual_reload: boolean = False, interval: number = 1, command: "Run a command defined in the given module" = None, silent: boolean = False, ): """Hug API Development Server""" api_module = None if file and module: print("Error: can not define both a file and module source for Hug API.") sys.exit(1) if file: sys.path.append(os.path.dirname(os.path.abspath(file))) sys.path.append(os.getcwd()) api_module = importlib.machinery.SourceFileLoader(file.split(".")[0], file).load_module() elif module: sys.path.append(os.getcwd()) api_module = importlib.import_module(module) if not api_module or not hasattr(api_module, "__hug__"): print("Error: must define a file name or module that contains a Hug API.") sys.exit(1) api = API(api_module, display_intro=not silent) if command: if command not in api.cli.commands: print(str(api.cli)) sys.exit(1) flag_index = (sys.argv.index("-c") if "-c" in sys.argv else sys.argv.index("--command")) + 1 sys.argv = sys.argv[flag_index:] api.cli.commands[command]() return ran = False if not manual_reload: thread.start_new_thread(reload_checker, (interval,)) while True: reload_checker.reloading = False time.sleep(1) try: _start_api( api_module, host, port, no_404_documentation, False if silent else not ran ) except KeyboardInterrupt: if not reload_checker.reloading: sys.exit(1) reload_checker.reloading = False ran = True for name in list(sys.modules.keys()): if name not in INIT_MODULES: del sys.modules[name] if file: api_module = importlib.machinery.SourceFileLoader( file.split(".")[0], file ).load_module() elif module: api_module = importlib.import_module(module) else: _start_api(api_module, host, port, no_404_documentation, not ran) def reload_checker(interval): while True: changed = False files = {} for module in list(sys.modules.values()): path = getattr(module, "__file__", "") if not path: continue if path[-4:] in (".pyo", ".pyc"): path = path[:-1] if path and exists(path): files[path] = os.stat(path).st_mtime while not changed: for path, last_modified in files.items(): if not exists(path): print("\n> Reloading due to file removal: {}".format(path)) changed = True elif os.stat(path).st_mtime > last_modified: print("\n> Reloading due to file change: {}".format(path)) changed = True if changed: reload_checker.reloading = True thread.interrupt_main() time.sleep(5) break time.sleep(interval) hug-2.6.0/hug/directives.py000066400000000000000000000115041353170073200156020ustar00rootroot00000000000000"""hug/directives.py Defines the directives built into hug. Directives allow attaching behaviour to an API handler based simply on an argument it takes and that arguments default value. The directive gets called with the default supplied, ther request data, and api_version. The result of running the directive method is then set as the argument value. Directive attributes are always prefixed with 'hug_' Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import from functools import partial from timeit import default_timer as python_timer from hug import introspect def _built_in_directive(directive): """Marks a callable as a built-in directive""" directive.directive = True return directive @_built_in_directive class Timer(object): """Keeps track of time surpased since instantiation, outputed by doing float(instance)""" __slots__ = ("start", "round_to") def __init__(self, round_to=None, **kwargs): self.start = python_timer() self.round_to = round_to def __float__(self): time_taken = python_timer() - self.start return round(time_taken, self.round_to) if self.round_to else time_taken def __int__(self): return int(round(float(self))) def __native_types__(self): return self.__float__() def __str__(self): return str(float(self)) def __repr__(self): return "{}({})".format(self.__class__.__name__, self) @_built_in_directive def module(default=None, api=None, **kwargs): """Returns the module that is running this hug API function""" return api.module if api else default @_built_in_directive def api(default=None, api=None, **kwargs): """Returns the api instance in which this API function is being ran""" return api if api else default @_built_in_directive def api_version(default=None, api_version=None, **kwargs): """Returns the current api_version as a directive for use in both request and not request handling code""" return api_version @_built_in_directive def documentation(default=None, api_version=None, api=None, **kwargs): """returns documentation for the current api""" api_version = default or api_version if api: return api.http.documentation(base_url="", api_version=api_version) @_built_in_directive def session(context_name="session", request=None, **kwargs): """Returns the session associated with the current request""" return request and request.context.get(context_name, None) @_built_in_directive def user(default=None, request=None, **kwargs): """Returns the current logged in user""" return request and request.context.get("user", None) or default @_built_in_directive def cors(support="*", response=None, **kwargs): """Adds the the Access-Control-Allow-Origin header to this endpoint, with the specified support""" response and response.set_header("Access-Control-Allow-Origin", support) return support @_built_in_directive class CurrentAPI(object): """Returns quick access to all api functions on the current version of the api""" __slots__ = ("api_version", "api") def __init__(self, default=None, api_version=None, **kwargs): self.api_version = api_version self.api = api(**kwargs) def __getattr__(self, name): function = self.api.http.versioned.get(self.api_version, {}).get(name, None) if not function: function = self.api.http.versioned.get(None, {}).get(name, None) if not function: raise AttributeError("API Function {0} not found".format(name)) accepts = function.interface.arguments if "hug_api_version" in accepts: function = partial(function, hug_api_version=self.api_version) if "hug_current_api" in accepts: function = partial(function, hug_current_api=self) return function hug-2.6.0/hug/exceptions.py000066400000000000000000000032151353170073200156220ustar00rootroot00000000000000"""hug/exceptions.py Defines the custom exceptions that are part of, and support Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import class InvalidTypeData(Exception): """Should be raised when data passed in doesn't match a types expectations""" def __init__(self, message, reasons=None): self.message = message self.reasons = reasons class StoreKeyNotFound(Exception): """Should be raised when a store key has not been found inside a store""" class SessionNotFound(StoreKeyNotFound): """Should be raised when a session ID has not been found inside a session store""" pass hug-2.6.0/hug/format.py000066400000000000000000000043371353170073200147370ustar00rootroot00000000000000"""hug/format.py Defines formatting utility methods that are common both to input and output formatting and aid in general formatting of fields and content Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import re from cgi import parse_header from hug import _empty as empty UNDERSCORE = (re.compile("(.)([A-Z][a-z]+)"), re.compile("([a-z0-9])([A-Z])")) def parse_content_type(content_type): """Separates out the parameters from the content_type and returns both in a tuple (content_type, parameters)""" if content_type is not None and ";" in content_type: return parse_header(content_type) return (content_type, empty.dict) def content_type(content_type): """Attaches the supplied content_type to a Hug formatting function""" def decorator(method): method.content_type = content_type return method return decorator def underscore(text): """Converts text that may be camelcased into an underscored format""" return UNDERSCORE[1].sub(r"\1_\2", UNDERSCORE[0].sub(r"\1_\2", text)).lower() def camelcase(text): """Converts text that may be underscored into a camelcase format""" return text[0] + "".join(text.title().split("_"))[1:] hug-2.6.0/hug/input_format.py000066400000000000000000000062621353170073200161550ustar00rootroot00000000000000"""hug/input_formats.py Defines the built-in Hug input_formatting handlers Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import re from cgi import parse_multipart from urllib.parse import parse_qs as urlencoded_converter from falcon.util.uri import parse_query_string from hug.format import content_type, underscore from hug.json_module import json as json_converter @content_type("text/plain") def text(body, charset="utf-8", **kwargs): """Takes plain text data""" return body.read().decode(charset) @content_type("application/json") def json(body, charset="utf-8", **kwargs): """Takes JSON formatted data, converting it into native Python objects""" return json_converter.loads(text(body, charset=charset)) def _underscore_dict(dictionary): new_dictionary = {} for key, value in dictionary.items(): if isinstance(value, dict): value = _underscore_dict(value) if isinstance(key, str): key = underscore(key) new_dictionary[key] = value return new_dictionary def json_underscore(body, charset="utf-8", **kwargs): """Converts JSON formatted date to native Python objects. The keys in any JSON dict are transformed from camelcase to underscore separated words. """ return _underscore_dict(json(body, charset=charset)) @content_type("application/x-www-form-urlencoded") def urlencoded(body, charset="ascii", **kwargs): """Converts query strings into native Python objects""" return parse_query_string(text(body, charset=charset), False) @content_type("multipart/form-data") def multipart(body, content_length=0, **header_params): """Converts multipart form data into native Python objects""" header_params.setdefault("CONTENT-LENGTH", content_length) if header_params and "boundary" in header_params: if type(header_params["boundary"]) is str: header_params["boundary"] = header_params["boundary"].encode() form = parse_multipart((body.stream if hasattr(body, "stream") else body), header_params) for key, value in form.items(): if type(value) is list and len(value) is 1: form[key] = value[0] return form hug-2.6.0/hug/interface.py000066400000000000000000001177611353170073200154150ustar00rootroot00000000000000"""hug/interface.py Defines the various interface hug provides to expose routes to functions Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import argparse import asyncio import os import sys from collections import OrderedDict from functools import lru_cache, partial, wraps import falcon from falcon import HTTP_BAD_REQUEST import hug._empty as empty import hug.api import hug.output_format import hug.types as types from hug import introspect from hug.exceptions import InvalidTypeData from hug.format import parse_content_type from hug.types import ( MarshmallowInputSchema, MarshmallowReturnSchema, Multiple, OneOf, SmartBoolean, Text, text, ) DOC_TYPE_MAP = {str: "String", bool: "Boolean", list: "Multiple", int: "Integer", float: "Float"} def _doc(kind): return DOC_TYPE_MAP.get(kind, kind.__doc__) def asyncio_call(function, *args, **kwargs): loop = asyncio.get_event_loop() if loop.is_running(): return function(*args, **kwargs) function = asyncio.ensure_future(function(*args, **kwargs), loop=loop) loop.run_until_complete(function) return function.result() class Interfaces(object): """Defines the per-function singleton applied to hugged functions defining common data needed by all interfaces""" def __init__(self, function, args=None): self.api = hug.api.from_object(function) self.spec = getattr(function, "original", function) self.arguments = introspect.arguments(function) self.name = introspect.name(function) self._function = function self.is_coroutine = introspect.is_coroutine(self.spec) if self.is_coroutine: self.spec = getattr(self.spec, "__wrapped__", self.spec) self.takes_args = introspect.takes_args(self.spec) self.takes_kwargs = introspect.takes_kwargs(self.spec) self.parameters = list(introspect.arguments(self.spec, self.takes_kwargs + self.takes_args)) if self.takes_kwargs: self.kwarg = self.parameters.pop(-1) if self.takes_args: self.arg = self.parameters.pop(-1) self.parameters = tuple(self.parameters) self.defaults = dict(zip(reversed(self.parameters), reversed(self.spec.__defaults__ or ()))) self.required = self.parameters[: -(len(self.spec.__defaults__ or ())) or None] self.is_method = introspect.is_method(self.spec) or introspect.is_method(function) if self.is_method: self.required = self.required[1:] self.parameters = self.parameters[1:] self.all_parameters = set(self.parameters) if self.spec is not function: self.all_parameters.update(self.arguments) if args is not None: transformers = args else: transformers = self.spec.__annotations__ self.transform = transformers.get("return", None) self.directives = {} self.input_transformations = {} for name, transformer in transformers.items(): if isinstance(transformer, str): continue elif hasattr(transformer, "directive"): self.directives[name] = transformer continue if hasattr(transformer, "from_string"): transformer = transformer.from_string elif hasattr(transformer, "load"): transformer = MarshmallowInputSchema(transformer) elif hasattr(transformer, "deserialize"): transformer = transformer.deserialize self.input_transformations[name] = transformer def __call__(__hug_internal_self, *args, **kwargs): # noqa: N805 """"Calls the wrapped function, uses __hug_internal_self incase self is passed in as a kwarg from the wrapper""" if not __hug_internal_self.is_coroutine: return __hug_internal_self._function(*args, **kwargs) return asyncio_call(__hug_internal_self._function, *args, **kwargs) class Interface(object): """Defines the basic hug interface object, which is responsible for wrapping a user defined function and providing all the info requested in the function as well as the route A Interface object should be created for every kind of protocal hug supports """ __slots__ = ( "interface", "_api", "defaults", "parameters", "required", "_outputs", "on_invalid", "requires", "validate_function", "transform", "examples", "output_doc", "wrapped", "directives", "all_parameters", "raise_on_invalid", "invalid_outputs", "map_params", "input_transformations", ) def __init__(self, route, function): if route.get("api", None): self._api = route["api"] if "examples" in route: self.examples = route["examples"] function_args = route.get("args") if not hasattr(function, "interface"): function.__dict__["interface"] = Interfaces(function, function_args) self.interface = function.interface self.requires = route.get("requires", ()) if "validate" in route: self.validate_function = route["validate"] if "output_invalid" in route: self.invalid_outputs = route["output_invalid"] if not "parameters" in route: self.defaults = self.interface.defaults self.parameters = self.interface.parameters self.all_parameters = self.interface.all_parameters self.required = self.interface.required else: self.defaults = route.get("defaults", {}) self.parameters = tuple(route["parameters"]) self.all_parameters = set(route["parameters"]) self.required = tuple( [parameter for parameter in self.parameters if parameter not in self.defaults] ) if "map_params" in route: self.map_params = route["map_params"] for interface_name, internal_name in self.map_params.items(): if internal_name in self.defaults: self.defaults[interface_name] = self.defaults.pop(internal_name) if internal_name in self.parameters: self.parameters = [ interface_name if param == internal_name else param for param in self.parameters ] if internal_name in self.all_parameters: self.all_parameters.remove(internal_name) self.all_parameters.add(interface_name) if internal_name in self.required: self.required = tuple( [ interface_name if param == internal_name else param for param in self.required ] ) reverse_mapping = { internal: interface for interface, internal in self.map_params.items() } self.input_transformations = { reverse_mapping.get(name, name): transform for name, transform in self.interface.input_transformations.items() } else: self.map_params = {} self.input_transformations = self.interface.input_transformations if "output" in route: self.outputs = route["output"] self.transform = route.get("transform", None) if self.transform is None and not isinstance(self.interface.transform, (str, type(None))): self.transform = self.interface.transform if hasattr(self.transform, "dump"): self.transform = MarshmallowReturnSchema(self.transform) self.output_doc = self.transform.__doc__ elif self.transform or self.interface.transform: output_doc = self.transform or self.interface.transform self.output_doc = output_doc if type(output_doc) is str else _doc(output_doc) self.raise_on_invalid = route.get("raise_on_invalid", False) if "on_invalid" in route: self.on_invalid = route["on_invalid"] elif self.transform: self.on_invalid = self.transform defined_directives = self.api.directives() used_directives = set(self.parameters).intersection(defined_directives) self.directives = { directive_name: defined_directives[directive_name] for directive_name in used_directives } self.directives.update(self.interface.directives) @property def api(self): return getattr(self, "_api", self.interface.api) @property def outputs(self): return getattr(self, "_outputs", None) @outputs.setter def outputs(self, outputs): self._outputs = outputs # pragma: no cover - generally re-implemented by sub classes def validate(self, input_parameters, context): """Runs all set type transformers / validators against the provided input parameters and returns any errors""" errors = {} for key, type_handler in self.input_transformations.items(): if self.raise_on_invalid: if key in input_parameters: input_parameters[key] = self.initialize_handler( type_handler, input_parameters[key], context=context ) else: try: if key in input_parameters: input_parameters[key] = self.initialize_handler( type_handler, input_parameters[key], context=context ) except InvalidTypeData as error: errors[key] = error.reasons or str(error) except Exception as error: if hasattr(error, "args") and error.args: errors[key] = error.args[0] else: errors[key] = str(error) for require in self.required: if not require in input_parameters: errors[require] = "Required parameter '{}' not supplied".format(require) if not errors and getattr(self, "validate_function", False): errors = self.validate_function(input_parameters) return errors def check_requirements(self, request=None, response=None, context=None): """Checks to see if all requirements set pass if all requirements pass nothing will be returned otherwise, the error reported will be returned """ for requirement in self.requires: conclusion = requirement( response=response, request=request, context=context, module=self.api.module ) if conclusion and conclusion is not True: return conclusion def documentation(self, add_to=None): """Produces general documentation for the interface""" doc = OrderedDict if add_to is None else add_to usage = self.interface.spec.__doc__ if usage: doc["usage"] = usage if getattr(self, "requires", None): doc["requires"] = [ getattr(requirement, "__doc__", requirement.__name__) for requirement in self.requires ] doc["outputs"] = OrderedDict() doc["outputs"]["format"] = _doc(self.outputs) doc["outputs"]["content_type"] = self.outputs.content_type parameters = [ param for param in self.parameters if not param in ("request", "response", "self") and not param in ("api_version", "body") and not param.startswith("hug_") and not hasattr(param, "directive") ] if parameters: inputs = doc.setdefault("inputs", OrderedDict()) types = self.interface.spec.__annotations__ for argument in parameters: kind = types.get(self._remap_entry(argument), text) if getattr(kind, "directive", None) is True: continue input_definition = inputs.setdefault(argument, OrderedDict()) input_definition["type"] = kind if isinstance(kind, str) else _doc(kind) default = self.defaults.get(argument, None) if default is not None: input_definition["default"] = default return doc def _rewrite_params(self, params): for interface_name, internal_name in self.map_params.items(): if interface_name in params: params[internal_name] = params.pop(interface_name) def _remap_entry(self, interface_name): return self.map_params.get(interface_name, interface_name) @staticmethod def cleanup_parameters(parameters, exception=None): for _parameter, directive in parameters.items(): if hasattr(directive, "cleanup"): directive.cleanup(exception=exception) @staticmethod def initialize_handler(handler, value, context): try: # It's easier to ask for forgiveness than for permission return handler(value, context=context) except TypeError: return handler(value) class Local(Interface): """Defines the Interface responsible for exposing functions locally""" __slots__ = ("skip_directives", "skip_validation", "version") def __init__(self, route, function): super().__init__(route, function) self.version = route.get("version", None) if "skip_directives" in route: self.skip_directives = True if "skip_validation" in route: self.skip_validation = True self.interface.local = self def __get__(self, instance, kind): """Support instance methods""" return partial(self.__call__, instance) if instance else self.__call__ @property def __name__(self): return self.interface.spec.__name__ @property def __module__(self): return self.interface.spec.__module__ def __call__(self, *args, **kwargs): context = self.api.context_factory(api=self.api, api_version=self.version, interface=self) """Defines how calling the function locally should be handled""" for _requirement in self.requires: lacks_requirement = self.check_requirements(context=context) if lacks_requirement: self.api.delete_context(context, lacks_requirement=lacks_requirement) return self.outputs(lacks_requirement) if self.outputs else lacks_requirement for index, argument in enumerate(args): kwargs[self.parameters[index]] = argument if not getattr(self, "skip_directives", False): for parameter, directive in self.directives.items(): if parameter in kwargs: continue arguments = (self.defaults[parameter],) if parameter in self.defaults else () kwargs[parameter] = directive( *arguments, api=self.api, api_version=self.version, interface=self, context=context ) if not getattr(self, "skip_validation", False): errors = self.validate(kwargs, context) if errors: errors = {"errors": errors} if getattr(self, "on_invalid", False): errors = self.on_invalid(errors) outputs = getattr(self, "invalid_outputs", self.outputs) self.api.delete_context(context, errors=errors) return outputs(errors) if outputs else errors self._rewrite_params(kwargs) try: result = self.interface(**kwargs) if self.transform: if hasattr(self.transform, "context"): self.transform.context = context result = self.transform(result) except Exception as exception: self.cleanup_parameters(kwargs, exception=exception) self.api.delete_context(context, exception=exception) raise exception self.cleanup_parameters(kwargs) self.api.delete_context(context) return self.outputs(result) if self.outputs else result class CLI(Interface): """Defines the Interface responsible for exposing functions to the CLI""" def __init__(self, route, function): super().__init__(route, function) if not self.outputs: self.outputs = self.api.cli.output_format self.interface.cli = self self.reaffirm_types = {} use_parameters = list(self.interface.parameters) self.additional_options = getattr( self.interface, "arg", getattr(self.interface, "kwarg", False) ) if self.additional_options: use_parameters.append(self.additional_options) used_options = {"h", "help"} nargs_set = self.interface.takes_args or self.interface.takes_kwargs class CustomArgumentParser(argparse.ArgumentParser): exit_callback = None def exit(self, status=0, message=None): if self.exit_callback: self.exit_callback(message) super().exit(status, message) self.parser = CustomArgumentParser( description=route.get("doc", self.interface.spec.__doc__) ) if "version" in route: self.parser.add_argument( "-v", "--version", action="version", version="{0} {1}".format( route.get("name", self.interface.spec.__name__), route["version"] ), ) used_options.update(("v", "version")) self.context_tranforms = [] for option in use_parameters: if option in self.directives: continue if option in self.interface.required or option == self.additional_options: args = (option,) else: short_option = option[0] while short_option in used_options and len(short_option) < len(option): short_option = option[: len(short_option) + 1] used_options.add(short_option) used_options.add(option) if short_option != option: args = ("-{0}".format(short_option), "--{0}".format(option)) else: args = ("--{0}".format(option),) kwargs = {} if option in self.defaults: kwargs["default"] = self.defaults[option] if option in self.interface.input_transformations: transform = self.interface.input_transformations[option] kwargs["type"] = transform kwargs["help"] = _doc(transform) if transform in (list, tuple) or isinstance(transform, types.Multiple): kwargs["action"] = "append" kwargs["type"] = Text() self.reaffirm_types[option] = transform elif transform == bool or isinstance(transform, type(types.boolean)): kwargs["action"] = "store_true" self.reaffirm_types[option] = transform elif isinstance(transform, types.OneOf): kwargs["choices"] = transform.values elif ( option in self.interface.spec.__annotations__ and type(self.interface.spec.__annotations__[option]) == str ): kwargs["help"] = option if ( kwargs.get("type", None) == bool or kwargs.get("action", None) == "store_true" ) and not kwargs["default"]: kwargs["action"] = "store_true" kwargs.pop("type", None) elif kwargs.get("action", None) == "store_true": kwargs.pop("action", None) if option == self.additional_options: kwargs["nargs"] = "*" elif ( not nargs_set and kwargs.get("action", None) == "append" and not option in self.interface.defaults ): kwargs["nargs"] = "*" kwargs.pop("action", "") nargs_set = True self.parser.add_argument(*args, **kwargs) self.api.cli.commands[route.get("name", self.interface.spec.__name__)] = self def output(self, data, context): """Outputs the provided data using the transformations and output format specified for this CLI endpoint""" if self.transform: if hasattr(self.transform, "context"): self.transform.context = context data = self.transform(data) if hasattr(data, "read"): data = data.read().decode("utf8") if data is not None: data = self.outputs(data) if data: sys.stdout.buffer.write(data) if not data.endswith(b"\n"): sys.stdout.buffer.write(b"\n") return data def __str__(self): return self.parser.description or "" def __call__(self): """Calls the wrapped function through the lens of a CLI ran command""" context = self.api.context_factory(api=self.api, argparse=self.parser, interface=self) def exit_callback(message): self.api.delete_context(context, errors=message) self.parser.exit_callback = exit_callback self.api._ensure_started() for requirement in self.requires: conclusion = requirement(request=sys.argv, module=self.api.module, context=context) if conclusion and conclusion is not True: self.api.delete_context(context, lacks_requirement=conclusion) return self.output(conclusion, context) if self.interface.is_method: self.parser.prog = "%s %s" % (self.api.module.__name__, self.interface.name) known, unknown = self.parser.parse_known_args() pass_to_function = vars(known) for option, directive in self.directives.items(): arguments = (self.defaults[option],) if option in self.defaults else () pass_to_function[option] = directive( *arguments, api=self.api, argparse=self.parser, context=context, interface=self ) for field, type_handler in self.reaffirm_types.items(): if field in pass_to_function: if not pass_to_function[field] and type_handler in ( list, tuple, hug.types.Multiple, ): pass_to_function[field] = type_handler(()) else: pass_to_function[field] = self.initialize_handler( type_handler, pass_to_function[field], context=context ) if getattr(self, "validate_function", False): errors = self.validate_function(pass_to_function) if errors: self.api.delete_context(context, errors=errors) return self.output(errors, context) args = None if self.additional_options: args = [] for parameter in self.interface.parameters: if parameter in pass_to_function: args.append(pass_to_function.pop(parameter)) args.extend(pass_to_function.pop(self.additional_options, ())) if self.interface.takes_kwargs: add_options_to = None for option in unknown: if option.startswith("--"): if add_options_to: value = pass_to_function[add_options_to] if len(value) == 1: pass_to_function[add_options_to] = value[0] elif value == []: pass_to_function[add_options_to] = True add_options_to = option[2:] pass_to_function.setdefault(add_options_to, []) elif add_options_to: pass_to_function[add_options_to].append(option) self._rewrite_params(pass_to_function) try: if args: result = self.output(self.interface(*args, **pass_to_function), context) else: result = self.output(self.interface(**pass_to_function), context) except Exception as exception: self.cleanup_parameters(pass_to_function, exception=exception) self.api.delete_context(context, exception=exception) raise exception self.cleanup_parameters(pass_to_function) self.api.delete_context(context) return result class HTTP(Interface): """Defines the interface responsible for wrapping functions and exposing them via HTTP based on the route""" __slots__ = ( "_params_for_outputs_state", "_params_for_invalid_outputs_state", "_params_for_transform_state", "_params_for_on_invalid", "set_status", "response_headers", "transform", "input_transformations", "examples", "wrapped", "catch_exceptions", "parse_body", "private", "on_invalid", "inputs", ) AUTO_INCLUDE = {"request", "response"} def __init__(self, route, function, catch_exceptions=True): super().__init__(route, function) self.catch_exceptions = catch_exceptions self.parse_body = "parse_body" in route self.set_status = route.get("status", False) self.response_headers = tuple(route.get("response_headers", {}).items()) self.private = "private" in route self.inputs = route.get("inputs", {}) if "on_invalid" in route: self._params_for_on_invalid = introspect.takes_arguments( self.on_invalid, *self.AUTO_INCLUDE ) elif self.transform: self._params_for_on_invalid = self._params_for_transform self.api.http.versions.update(route.get("versions", (None,))) self.interface.http = self @property def _params_for_outputs(self): if not hasattr(self, "_params_for_outputs_state"): self._params_for_outputs_state = introspect.takes_arguments( self.outputs, *self.AUTO_INCLUDE ) return self._params_for_outputs_state @property def _params_for_invalid_outputs(self): if not hasattr(self, "_params_for_invalid_outputs_state"): self._params_for_invalid_outputs_state = introspect.takes_arguments( self.invalid_outputs, *self.AUTO_INCLUDE ) return self._params_for_invalid_outputs_state @property def _params_for_transform(self): if not hasattr(self, "_params_for_transform_state"): self._params_for_transform_state = introspect.takes_arguments( self.transform, *self.AUTO_INCLUDE ) return self._params_for_transform_state def gather_parameters(self, request, response, context, api_version=None, **input_parameters): """Gathers and returns all parameters that will be used for this endpoint""" input_parameters.update(request.params) if self.parse_body and request.content_length: body = request.bounded_stream content_type, content_params = parse_content_type(request.content_type) body_formatter = body and self.inputs.get( content_type, self.api.http.input_format(content_type) ) if body_formatter: body = body_formatter(body, content_length=request.content_length, **content_params) if "body" in self.all_parameters: input_parameters["body"] = body if isinstance(body, dict): input_parameters.update(body) elif "body" in self.all_parameters: input_parameters["body"] = None if "request" in self.all_parameters: input_parameters["request"] = request if "response" in self.all_parameters: input_parameters["response"] = response if "api_version" in self.all_parameters: input_parameters["api_version"] = api_version for parameter, directive in self.directives.items(): arguments = (self.defaults[parameter],) if parameter in self.defaults else () input_parameters[parameter] = directive( *arguments, response=response, request=request, api=self.api, api_version=api_version, context=context, interface=self ) return input_parameters @property def outputs(self): return getattr(self, "_outputs", self.api.http.output_format) @outputs.setter def outputs(self, outputs): self._outputs = outputs def transform_data(self, data, request=None, response=None, context=None): transform = self.transform if hasattr(transform, "context"): self.transform.context = context """Runs the transforms specified on this endpoint with the provided data, returning the data modified""" if transform and not (isinstance(transform, type) and isinstance(data, transform)): if self._params_for_transform: return transform( data, **self._arguments(self._params_for_transform, request, response) ) else: return transform(data) return data def content_type(self, request=None, response=None): """Returns the content type that should be used by default for this endpoint""" if callable(self.outputs.content_type): return self.outputs.content_type(request=request, response=response) else: return self.outputs.content_type def invalid_content_type(self, request=None, response=None): """Returns the content type that should be used by default on validation errors""" if callable(self.invalid_outputs.content_type): return self.invalid_outputs.content_type(request=request, response=response) else: return self.invalid_outputs.content_type def _arguments(self, requested_params, request=None, response=None): if requested_params: arguments = {} if "response" in requested_params: arguments["response"] = response if "request" in requested_params: arguments["request"] = request return arguments return empty.dict def set_response_defaults(self, response, request=None): """Sets up the response defaults that are defined in the URL route""" for header_name, header_value in self.response_headers: response.set_header(header_name, header_value) if self.set_status: response.status = self.set_status response.content_type = self.content_type(request, response) def render_errors(self, errors, request, response): data = {"errors": errors} if getattr(self, "on_invalid", False): data = self.on_invalid( data, **self._arguments(self._params_for_on_invalid, request, response) ) response.status = HTTP_BAD_REQUEST if getattr(self, "invalid_outputs", False): response.content_type = self.invalid_content_type(request, response) response.data = self.invalid_outputs( data, **self._arguments(self._params_for_invalid_outputs, request, response) ) else: response.data = self.outputs( data, **self._arguments(self._params_for_outputs, request, response) ) def call_function(self, parameters): if not self.interface.takes_kwargs: parameters = { key: value for key, value in parameters.items() if key in self.all_parameters } self._rewrite_params(parameters) return self.interface(**parameters) def render_content(self, content, context, request, response, **kwargs): if hasattr(content, "interface") and ( content.interface is True or hasattr(content.interface, "http") ): if content.interface is True: content(request, response, api_version=None, **kwargs) else: content.interface.http(request, response, api_version=None, **kwargs) return content = self.transform_data(content, request, response, context) content = self.outputs( content, **self._arguments(self._params_for_outputs, request, response) ) if hasattr(content, "read"): size = None if hasattr(content, "name") and os.path.isfile(content.name): size = os.path.getsize(content.name) if request.range and size: start, end = request.range if end < 0: end = size + end end = min(end, size) length = end - start + 1 content.seek(start) response.data = content.read(length) response.status = falcon.HTTP_206 response.content_range = (start, end, size) content.close() else: if size: response.set_stream(content, size) else: response.stream = content # pragma: no cover else: response.data = content def __call__(self, request, response, api_version=None, **kwargs): context = self.api.context_factory( response=response, request=request, api=self.api, api_version=api_version, interface=self, ) """Call the wrapped function over HTTP pulling information as needed""" if isinstance(api_version, str) and api_version.isdigit(): api_version = int(api_version) else: api_version = None if not self.catch_exceptions: exception_types = () else: exception_types = self.api.http.exception_handlers(api_version) exception_types = tuple(exception_types.keys()) if exception_types else () input_parameters = {} try: self.set_response_defaults(response, request) lacks_requirement = self.check_requirements(request, response, context) if lacks_requirement: response.data = self.outputs( lacks_requirement, **self._arguments(self._params_for_outputs, request, response) ) self.api.delete_context(context, lacks_requirement=lacks_requirement) return input_parameters = self.gather_parameters( request, response, context, api_version, **kwargs ) errors = self.validate(input_parameters, context) if errors: self.api.delete_context(context, errors=errors) return self.render_errors(errors, request, response) self.render_content( self.call_function(input_parameters), context, request, response, **kwargs ) except falcon.HTTPNotFound as exception: self.cleanup_parameters(input_parameters, exception=exception) self.api.delete_context(context, exception=exception) return self.api.http.not_found(request, response, **kwargs) except exception_types as exception: self.cleanup_parameters(input_parameters, exception=exception) self.api.delete_context(context, exception=exception) handler = None exception_type = type(exception) if exception_type in exception_types: handler = self.api.http.exception_handlers(api_version)[exception_type][0] else: for match_exception_type, exception_handlers in tuple( self.api.http.exception_handlers(api_version).items() )[::-1]: if isinstance(exception, match_exception_type): for potential_handler in exception_handlers: if not isinstance(exception, potential_handler.exclude): handler = potential_handler if not handler: raise exception handler(request=request, response=response, exception=exception, **kwargs) except Exception as exception: self.cleanup_parameters(input_parameters, exception=exception) self.api.delete_context(context, exception=exception) raise exception self.cleanup_parameters(input_parameters) self.api.delete_context(context) def documentation(self, add_to=None, version=None, prefix="", base_url="", url=""): """Returns the documentation specific to an HTTP interface""" doc = OrderedDict() if add_to is None else add_to usage = self.interface.spec.__doc__ if usage: doc["usage"] = usage for example in self.examples: example_text = "{0}{1}{2}{3}".format( prefix, base_url, "/v{0}".format(version) if version else "", url ) if isinstance(example, str): example_text += "?{0}".format(example) doc_examples = doc.setdefault("examples", []) if not example_text in doc_examples: doc_examples.append(example_text) doc = super().documentation(doc) if getattr(self, "output_doc", ""): doc["outputs"]["type"] = self.output_doc return doc @lru_cache() def urls(self, version=None): """Returns all URLS that are mapped to this interface""" urls = [] for _base_url, routes in self.api.http.routes.items(): for url, methods in routes.items(): for _method, versions in methods.items(): for interface_version, interface in versions.items(): if interface_version == version and interface == self: if not url in urls: urls.append(("/v{0}".format(version) if version else "") + url) return urls def url(self, version=None, **kwargs): """Returns the first matching URL found for the specified arguments""" for url in self.urls(version): if [key for key in kwargs.keys() if not "{" + key + "}" in url]: continue return url.format(**kwargs) raise KeyError("URL that takes all provided parameters not found") class ExceptionRaised(HTTP): """Defines the interface responsible for taking and transforming exceptions that occur during processing""" __slots__ = ("handle", "exclude") def __init__(self, route, *args, **kwargs): self.handle = route["exceptions"] self.exclude = route["exclude"] super().__init__(route, *args, **kwargs) hug-2.6.0/hug/introspect.py000066400000000000000000000065621353170073200156430ustar00rootroot00000000000000"""hug/introspect.py Defines built in hug functions to aid in introspection Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import inspect from types import MethodType def is_method(function): """Returns True if the passed in function is identified as a method (NOT a function)""" return isinstance(function, MethodType) def is_coroutine(function): """Returns True if the passed in function is a coroutine""" return function.__code__.co_flags & 0x0080 or getattr(function, "_is_coroutine", False) def name(function): """Returns the name of a function""" return function.__name__ def arguments(function, extra_arguments=0): """Returns the name of all arguments a function takes""" if not hasattr(function, "__code__"): return () return function.__code__.co_varnames[: function.__code__.co_argcount + extra_arguments] def takes_kwargs(function): """Returns True if the supplied function takes keyword arguments""" return bool(function.__code__.co_flags & 0x08) def takes_args(function): """Returns True if the supplied functions takes extra non-keyword arguments""" return bool(function.__code__.co_flags & 0x04) def takes_arguments(function, *named_arguments): """Returns the arguments that a function takes from a list of requested arguments""" return set(named_arguments).intersection(arguments(function)) def takes_all_arguments(function, *named_arguments): """Returns True if all supplied arguments are found in the function""" return bool(takes_arguments(function, *named_arguments) == set(named_arguments)) def generate_accepted_kwargs(function, *named_arguments): """Dynamically creates a function that when called with dictionary of arguments will produce a kwarg that's compatible with the supplied function """ if hasattr(function, "__code__") and takes_kwargs(function): function_takes_kwargs = True function_takes_arguments = [] else: function_takes_kwargs = False function_takes_arguments = takes_arguments(function, *named_arguments) def accepted_kwargs(kwargs): if function_takes_kwargs: return kwargs elif function_takes_arguments: return {key: value for key, value in kwargs.items() if key in function_takes_arguments} return {} return accepted_kwargs hug-2.6.0/hug/json_module.py000066400000000000000000000016001353170073200157530ustar00rootroot00000000000000import os HUG_USE_UJSON = bool(os.environ.get("HUG_USE_UJSON", 1)) try: # pragma: no cover if HUG_USE_UJSON: import ujson as json class dumps_proxy: # noqa: N801 """Proxies the call so non supported kwargs are skipped and it enables escape_forward_slashes to simulate built-in json """ _dumps = json.dumps def __call__(self, *args, **kwargs): kwargs.pop("default", None) kwargs.pop("separators", None) kwargs.update(escape_forward_slashes=False) try: return self._dumps(*args, **kwargs) except Exception as exc: raise TypeError("Type[ujson] is not Serializable", exc) json.dumps = dumps_proxy() else: import json except ImportError: # pragma: no cover import json hug-2.6.0/hug/middleware.py000066400000000000000000000177221353170073200155660ustar00rootroot00000000000000"""hug/middleware.py A collection of useful middlewares to automate common hug functionality 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 __future__ import absolute_import import logging import re import uuid from datetime import datetime class SessionMiddleware(object): """Simple session middleware. Injects a session dictionary into the context of a request, sets a session cookie, and stores/restores data via a coupled store object. A session store object must implement the following methods: * get(session_id) - return session data * exists(session_id) - return boolean if session ID exists or not * set(session_id, session_data) - save session data for given session ID The name of the context key can be set via the 'context_name' argument. The cookie arguments are the same as for falcons set_cookie() function, just prefixed with 'cookie_'. """ __slots__ = ( "store", "context_name", "cookie_name", "cookie_expires", "cookie_max_age", "cookie_domain", "cookie_path", "cookie_secure", "cookie_http_only", ) def __init__( self, store, context_name="session", cookie_name="sid", cookie_expires=None, cookie_max_age=None, cookie_domain=None, cookie_path=None, cookie_secure=True, cookie_http_only=True, ): self.store = store self.context_name = context_name self.cookie_name = cookie_name self.cookie_expires = cookie_expires self.cookie_max_age = cookie_max_age self.cookie_domain = cookie_domain self.cookie_path = cookie_path self.cookie_secure = cookie_secure self.cookie_http_only = cookie_http_only def generate_sid(self): """Generate a UUID4 string.""" return str(uuid.uuid4()) def process_request(self, request, response): """Get session ID from cookie, load corresponding session data from coupled store and inject session data into the request context. """ sid = request.cookies.get(self.cookie_name, None) data = {} if sid is not None: if self.store.exists(sid): data = self.store.get(sid) request.context.update({self.context_name: data}) def process_response(self, request, response, resource, req_succeeded): """Save request context in coupled store object. Set cookie containing a session ID.""" sid = request.cookies.get(self.cookie_name, None) if sid is None or not self.store.exists(sid): sid = self.generate_sid() self.store.set(sid, request.context.get(self.context_name, {})) response.set_cookie( self.cookie_name, sid, expires=self.cookie_expires, max_age=self.cookie_max_age, domain=self.cookie_domain, path=self.cookie_path, secure=self.cookie_secure, http_only=self.cookie_http_only, ) class LogMiddleware(object): """A middleware that logs all incoming requests and outgoing responses that make their way through the API""" __slots__ = ("logger",) def __init__(self, logger=None): self.logger = logger if logger is not None else logging.getLogger("hug") def _generate_combined_log(self, request, response): """Given a request/response pair, generate a logging format similar to the NGINX combined style.""" current_time = datetime.utcnow() data_len = "-" if response.data is None else len(response.data) return "{0} - - [{1}] {2} {3} {4} {5} {6}".format( request.remote_addr, current_time, request.method, request.relative_uri, response.status, data_len, request.user_agent, ) def process_request(self, request, response): """Logs the basic endpoint requested""" self.logger.info( "Requested: {0} {1} {2}".format( request.method, request.relative_uri, request.content_type ) ) def process_response(self, request, response, resource, req_succeeded): """Logs the basic data returned by the API""" self.logger.info(self._generate_combined_log(request, response)) class CORSMiddleware(object): """A middleware for allowing cross-origin request sharing (CORS) Adds appropriate Access-Control-* headers to the HTTP responses returned from the hug API, especially for HTTP OPTIONS responses used in CORS preflighting. """ __slots__ = ("api", "allow_origins", "allow_credentials", "max_age") def __init__( self, api, allow_origins: list = None, allow_credentials: bool = True, max_age: int = None ): if allow_origins is None: allow_origins = ["*"] self.api = api self.allow_origins = allow_origins self.allow_credentials = allow_credentials self.max_age = max_age def match_route(self, reqpath): """Match a request with parameter to it's corresponding route""" route_dicts = [routes for _, routes in self.api.http.routes.items()][0] routes = [route for route, _ in route_dicts.items()] if reqpath not in routes: for route in routes: # replace params in route with regex reqpath = re.sub("^(/v\d*/?)", "/", reqpath) base_url = getattr(self.api.http, "base_url", "") reqpath = reqpath.replace(base_url, "", 1) if base_url else reqpath if re.match(re.sub(r"/{[^{}]+}", ".+", route) + "$", reqpath, re.DOTALL): return route return reqpath def process_response(self, request, response, resource, req_succeeded): """Add CORS headers to the response""" response.set_header("Access-Control-Allow-Credentials", str(self.allow_credentials).lower()) origin = request.get_header("ORIGIN") if origin and (origin in self.allow_origins) or ("*" in self.allow_origins): response.set_header("Access-Control-Allow-Origin", origin) if request.method == "OPTIONS": # check if we are handling a preflight request allowed_methods = set( method for _, routes in self.api.http.routes.items() for method, _ in routes[self.match_route(request.path)].items() ) allowed_methods.add("OPTIONS") # return allowed methods response.set_header("Access-Control-Allow-Methods", ", ".join(allowed_methods)) response.set_header("Allow", ", ".join(allowed_methods)) # get all requested headers and echo them back requested_headers = request.get_header("Access-Control-Request-Headers") response.set_header("Access-Control-Allow-Headers", requested_headers or "") # return valid caching time if self.max_age: response.set_header("Access-Control-Max-Age", self.max_age) hug-2.6.0/hug/output_format.py000066400000000000000000000341611353170073200163550ustar00rootroot00000000000000"""hug/output_format.py Defines Hug's built-in output formatting methods Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import base64 import mimetypes import os import re import tempfile from datetime import date, datetime, timedelta from decimal import Decimal from functools import wraps from io import BytesIO from operator import itemgetter from uuid import UUID import falcon from falcon import HTTP_NOT_FOUND from hug import introspect from hug.format import camelcase, content_type from hug.json_module import json as json_converter try: import numpy except ImportError: numpy = False IMAGE_TYPES = ( "png", "jpg", "bmp", "eps", "gif", "im", "jpeg", "msp", "pcx", "ppm", "spider", "tiff", "webp", "xbm", "cur", "dcx", "fli", "flc", "gbr", "gd", "ico", "icns", "imt", "iptc", "naa", "mcidas", "mpo", "pcd", "psd", "sgi", "tga", "wal", "xpm", "svg", "svg+xml", ) VIDEO_TYPES = ( ("flv", "video/x-flv"), ("mp4", "video/mp4"), ("m3u8", "application/x-mpegURL"), ("ts", "video/MP2T"), ("3gp", "video/3gpp"), ("mov", "video/quicktime"), ("avi", "video/x-msvideo"), ("wmv", "video/x-ms-wmv"), ) RE_ACCEPT_QUALITY = re.compile("q=(?P[^;]+)") json_converters = {} stream = tempfile.NamedTemporaryFile if "UWSGI_ORIGINAL_PROC_NAME" in os.environ else BytesIO def _json_converter(item): if hasattr(item, "__native_types__"): return item.__native_types__() for kind, transformer in json_converters.items(): if isinstance(item, kind): return transformer(item) if isinstance(item, (date, datetime)): return item.isoformat() elif isinstance(item, bytes): try: return item.decode("utf8") except UnicodeDecodeError: return base64.b64encode(item) elif hasattr(item, "__iter__"): return list(item) elif isinstance(item, (Decimal, UUID)): return str(item) elif isinstance(item, timedelta): return item.total_seconds() raise TypeError("Type not serializable") def json_convert(*kinds): """Registers the wrapped method as a JSON converter for the provided types. NOTE: custom converters are always globally applied """ def register_json_converter(function): for kind in kinds: json_converters[kind] = function return function return register_json_converter if numpy: @json_convert(numpy.ndarray) def numpy_listable(item): return item.tolist() @json_convert(str, numpy.unicode_) def numpy_stringable(item): return str(item) @json_convert(numpy.bytes_) def numpy_byte_decodeable(item): return item.decode() @json_convert(numpy.bool_) def numpy_boolable(item): return bool(item) @json_convert(numpy.integer) def numpy_integerable(item): return int(item) @json_convert(float, numpy.floating) def numpy_floatable(item): return float(item) @content_type("application/json; charset=utf-8") def json(content, request=None, response=None, ensure_ascii=False, **kwargs): """JSON (Javascript Serialized Object Notation)""" if hasattr(content, "read"): return content if isinstance(content, tuple) and getattr(content, "_fields", None): content = {field: getattr(content, field) for field in content._fields} return json_converter.dumps( content, default=_json_converter, ensure_ascii=ensure_ascii, **kwargs ).encode("utf8") def on_valid(valid_content_type, on_invalid=json): """Renders as the specified content type only if no errors are found in the provided data object""" invalid_kwargs = introspect.generate_accepted_kwargs(on_invalid, "request", "response") invalid_takes_response = introspect.takes_all_arguments(on_invalid, "response") def wrapper(function): valid_kwargs = introspect.generate_accepted_kwargs(function, "request", "response") valid_takes_response = introspect.takes_all_arguments(function, "response") @content_type(valid_content_type) @wraps(function) def output_content(content, response, **kwargs): if type(content) == dict and "errors" in content: response.content_type = on_invalid.content_type if invalid_takes_response: kwargs["response"] = response return on_invalid(content, **invalid_kwargs(kwargs)) if valid_takes_response: kwargs["response"] = response return function(content, **valid_kwargs(kwargs)) return output_content return wrapper @content_type("text/plain; charset=utf-8") def text(content, **kwargs): """Free form UTF-8 text""" if hasattr(content, "read"): return content return str(content).encode("utf8") @content_type("text/html; charset=utf-8") def html(content, **kwargs): """HTML (Hypertext Markup Language)""" if hasattr(content, "read"): return content elif hasattr(content, "render"): return content.render().encode("utf8") return str(content).encode("utf8") def _camelcase(content): if isinstance(content, dict): new_dictionary = {} for key, value in content.items(): if isinstance(key, str): key = camelcase(key) new_dictionary[key] = _camelcase(value) return new_dictionary elif isinstance(content, list): new_list = [] for element in content: new_list.append(_camelcase(element)) return new_list else: return content @content_type("application/json; charset=utf-8") def json_camelcase(content, **kwargs): """JSON (Javascript Serialized Object Notation) with all keys camelCased""" return json(_camelcase(content), **kwargs) @content_type("application/json; charset=utf-8") def pretty_json(content, **kwargs): """JSON (Javascript Serialized Object Notion) pretty printed and indented""" return json(content, indent=4, separators=(",", ": "), **kwargs) def image(image_format, doc=None): """Dynamically creates an image type handler for the specified image type""" @on_valid("image/{0}".format(image_format)) def image_handler(data, **kwargs): if hasattr(data, "read"): return data elif hasattr(data, "save"): output = stream() if introspect.takes_all_arguments(data.save, "format") or introspect.takes_kwargs( data.save ): data.save(output, format=image_format.upper()) else: data.save(output) output.seek(0) return output elif hasattr(data, "render"): return data.render() elif os.path.isfile(data): return open(data, "rb") image_handler.__doc__ = doc or "{0} formatted image".format(image_format) return image_handler for image_type in IMAGE_TYPES: globals()["{0}_image".format(image_type.replace("+", "_"))] = image(image_type) def video(video_type, video_mime, doc=None): """Dynamically creates a video type handler for the specified video type""" @on_valid(video_mime) def video_handler(data, **kwargs): if hasattr(data, "read"): return data elif hasattr(data, "save"): output = stream() data.save(output, format=video_type.upper()) output.seek(0) return output elif hasattr(data, "render"): return data.render() elif os.path.isfile(data): return open(data, "rb") video_handler.__doc__ = doc or "{0} formatted video".format(video_type) return video_handler for (video_type, video_mime) in VIDEO_TYPES: globals()["{0}_video".format(video_type)] = video(video_type, video_mime) @on_valid("file/dynamic") def file(data, response, **kwargs): """A dynamically retrieved file""" if not data: response.content_type = "text/plain" return "" if hasattr(data, "read"): name, data = getattr(data, "name", ""), data elif os.path.isfile(data): name, data = data, open(data, "rb") else: response.content_type = "text/plain" response.status = HTTP_NOT_FOUND return "File not found!" response.content_type = mimetypes.guess_type(name, None)[0] or "application/octet-stream" return data def on_content_type( handlers, default=None, error="The requested content type does not match any of those allowed" ): """Returns a content in a different format based on the clients provided content type, should pass in a dict with the following format: {'[content-type]': action, ... } """ def output_type(data, request, response): handler = handlers.get(request.content_type.split(";")[0], default) if not handler: raise falcon.HTTPNotAcceptable(error) response.content_type = handler.content_type return handler(data, request=request, response=response) output_type.__doc__ = "Supports any of the following formats: {0}".format( ", ".join(function.__doc__ or function.__name__ for function in handlers.values()) ) output_type.content_type = ", ".join(handlers.keys()) return output_type def accept_quality(accept, default=1): """Separates out the quality score from the accepted content_type""" quality = default if accept and ";" in accept: accept, rest = accept.split(";", 1) accept_quality = RE_ACCEPT_QUALITY.search(rest) if accept_quality: quality = float(accept_quality.groupdict().get("quality", quality).strip()) return (quality, accept.strip()) def accept( handlers, default=None, error="The requested content type does not match any of those allowed" ): """Returns a content in a different format based on the clients defined accepted content type, should pass in a dict with the following format: {'[content-type]': action, ... } """ def output_type(data, request, response): accept = request.accept if accept in ("", "*", "/"): handler = default or handlers and next(iter(handlers.values())) else: handler = default accepted = [accept_quality(accept_type) for accept_type in accept.split(",")] accepted.sort(key=itemgetter(0)) for _quality, accepted_content_type in reversed(accepted): if accepted_content_type in handlers: handler = handlers[accepted_content_type] break if not handler: raise falcon.HTTPNotAcceptable(error) response.content_type = handler.content_type return handler(data, request=request, response=response) output_type.__doc__ = "Supports any of the following formats: {0}".format( ", ".join(function.__doc__ for function in handlers.values()) ) output_type.content_type = ", ".join(handlers.keys()) return output_type def suffix( handlers, default=None, error="The requested suffix does not match any of those allowed" ): """Returns a content in a different format based on the suffix placed at the end of the URL route should pass in a dict with the following format: {'[suffix]': action, ... } """ def output_type(data, request, response): path = request.path handler = default for suffix_test, suffix_handler in handlers.items(): if path.endswith(suffix_test): handler = suffix_handler break if not handler: raise falcon.HTTPNotAcceptable(error) response.content_type = handler.content_type return handler(data, request=request, response=response) output_type.__doc__ = "Supports any of the following formats: {0}".format( ", ".join(function.__doc__ for function in handlers.values()) ) output_type.content_type = ", ".join(handlers.keys()) return output_type def prefix( handlers, default=None, error="The requested prefix does not match any of those allowed" ): """Returns a content in a different format based on the prefix placed at the end of the URL route should pass in a dict with the following format: {'[prefix]': action, ... } """ def output_type(data, request, response): path = request.path handler = default for prefix_test, prefix_handler in handlers.items(): if path.startswith(prefix_test): handler = prefix_handler break if not handler: raise falcon.HTTPNotAcceptable(error) response.content_type = handler.content_type return handler(data, request=request, response=response) output_type.__doc__ = "Supports any of the following formats: {0}".format( ", ".join(function.__doc__ for function in handlers.values()) ) output_type.content_type = ", ".join(handlers.keys()) return output_type hug-2.6.0/hug/redirect.py000066400000000000000000000040751353170073200152470ustar00rootroot00000000000000"""hug/redirect.py Implements convenience redirect methods that raise a redirection exception when called Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import falcon def to(location, code=falcon.HTTP_302): """Redirects to the specified location using the provided http_code (defaults to HTTP_302 FOUND)""" raise falcon.http_status.HTTPStatus(code, {"location": location}) def permanent(location): """Redirects to the specified location using HTTP 301 status code""" to(location, falcon.HTTP_301) def found(location): """Redirects to the specified location using HTTP 302 status code""" to(location, falcon.HTTP_302) def see_other(location): """Redirects to the specified location using HTTP 303 status code""" to(location, falcon.HTTP_303) def temporary(location): """Redirects to the specified location using HTTP 307 status code""" to(location, falcon.HTTP_307) def not_found(*args, **kwargs): """Redirects request handling to the not found render""" raise falcon.HTTPNotFound() hug-2.6.0/hug/route.py000066400000000000000000000223101353170073200145740ustar00rootroot00000000000000"""hug/route.py Defines user usable routers Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import from functools import partial from types import FunctionType, MethodType from falcon import HTTP_METHODS import hug.api from hug.routing import CLIRouter as cli # noqa: N813 from hug.routing import ExceptionRouter as exception # noqa: N813 from hug.routing import LocalRouter as local # noqa: N813 from hug.routing import NotFoundRouter as not_found # noqa: N813 from hug.routing import SinkRouter as sink # noqa: N813 from hug.routing import StaticRouter as static # noqa: N813 from hug.routing import URLRouter as http # noqa: N813 class Object(http): """Defines a router for classes and objects""" def __init__(self, urls=None, accept=HTTP_METHODS, output=None, **kwargs): super().__init__(urls=urls, accept=accept, output=output, **kwargs) def __call__(self, method_or_class=None, **kwargs): if not method_or_class and kwargs: return self.where(**kwargs) if isinstance(method_or_class, (MethodType, FunctionType)): routes = getattr(method_or_class, "_hug_http_routes", []) routes.append(self.route) method_or_class._hug_http_routes = routes return method_or_class instance = method_or_class if isinstance(method_or_class, type): instance = method_or_class() for argument in dir(instance): argument = getattr(instance, argument, None) http_routes = getattr(argument, "_hug_http_routes", ()) for route in http_routes: http(**self.where(**route).route)(argument) cli_routes = getattr(argument, "_hug_cli_routes", ()) for route in cli_routes: cli(**self.where(**route).route)(argument) return method_or_class def http_methods(self, urls=None, **route_data): """Creates routes from a class, where the class method names should line up to HTTP METHOD types""" def decorator(class_definition): instance = class_definition if isinstance(class_definition, type): instance = class_definition() router = self.urls( urls if urls else "/{0}".format(instance.__class__.__name__.lower()), **route_data ) for method in HTTP_METHODS: handler = getattr(instance, method.lower(), None) if handler: http_routes = getattr(handler, "_hug_http_routes", ()) if http_routes: for route in http_routes: http(**router.accept(method).where(**route).route)(handler) else: http(**router.accept(method).route)(handler) cli_routes = getattr(handler, "_hug_cli_routes", ()) if cli_routes: for route in cli_routes: cli(**self.where(**route).route)(handler) return class_definition return decorator def cli(self, method): """Registers a method on an Object as a CLI route""" routes = getattr(method, "_hug_cli_routes", []) routes.append(self.route) method._hug_cli_routes = routes return method class API(object): """Provides a convient way to route functions to a single API independent of where they live""" __slots__ = ("api",) def __init__(self, api): if type(api) == str: api = hug.api.API(api) self.api = api def http(self, *args, **kwargs): """Starts the process of building a new HTTP route linked to this API instance""" kwargs["api"] = self.api return http(*args, **kwargs) def urls(self, *args, **kwargs): """DEPRECATED: for backwords compatibility with < hug 2.2.0. `API.http` should be used instead. Starts the process of building a new URL HTTP route linked to this API instance """ return self.http(*args, **kwargs) def not_found(self, *args, **kwargs): """Defines the handler that should handle not found requests against this API""" kwargs["api"] = self.api return not_found(*args, **kwargs) def static(self, *args, **kwargs): """Define the routes to static files the API should expose""" kwargs["api"] = self.api return static(*args, **kwargs) def sink(self, *args, **kwargs): """Define URL prefixes/handler matches where everything under the URL prefix should be handled""" kwargs["api"] = self.api return sink(*args, **kwargs) def exception(self, *args, **kwargs): """Defines how this API should handle the provided exceptions""" kwargs["api"] = self.api return exception(*args, **kwargs) def cli(self, *args, **kwargs): """Defines a CLI function that should be routed by this API""" kwargs["api"] = self.api return cli(*args, **kwargs) def object(self, *args, **kwargs): """Registers a class based router to this API""" kwargs["api"] = self.api return Object(*args, **kwargs) def get(self, *args, **kwargs): """Builds a new GET HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("GET",) return http(*args, **kwargs) def post(self, *args, **kwargs): """Builds a new POST HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("POST",) return http(*args, **kwargs) def put(self, *args, **kwargs): """Builds a new PUT HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("PUT",) return http(*args, **kwargs) def delete(self, *args, **kwargs): """Builds a new DELETE HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("DELETE",) return http(*args, **kwargs) def connect(self, *args, **kwargs): """Builds a new CONNECT HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("CONNECT",) return http(*args, **kwargs) def head(self, *args, **kwargs): """Builds a new HEAD HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("HEAD",) return http(*args, **kwargs) def options(self, *args, **kwargs): """Builds a new OPTIONS HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("OPTIONS",) return http(*args, **kwargs) def patch(self, *args, **kwargs): """Builds a new PATCH HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("PATCH",) return http(*args, **kwargs) def trace(self, *args, **kwargs): """Builds a new TRACE HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("TRACE",) return http(*args, **kwargs) def get_post(self, *args, **kwargs): """Builds a new GET or POST HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("GET", "POST") return http(*args, **kwargs) def put_post(self, *args, **kwargs): """Builds a new PUT or POST HTTP route that is registered to this API""" kwargs["api"] = self.api kwargs["accept"] = ("PUT", "POST") return http(*args, **kwargs) for method in HTTP_METHODS: method_handler = partial(http, accept=(method,)) method_handler.__doc__ = "Exposes a Python method externally as an HTTP {0} method".format( method.upper() ) globals()[method.lower()] = method_handler get_post = partial(http, accept=("GET", "POST")) get_post.__doc__ = "Exposes a Python method externally under both the HTTP POST and GET methods" put_post = partial(http, accept=("PUT", "POST")) put_post.__doc__ = "Exposes a Python method externally under both the HTTP POST and PUT methods" object = Object() # DEPRECATED: for backwords compatibility with hug 1.x.x call = http hug-2.6.0/hug/routing.py000066400000000000000000000562531353170073200151420ustar00rootroot00000000000000"""hug/routing.py Defines the chainable classes responsible for defining the routing of Python functions for use with Falcon and CLIs Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import os import re from collections import OrderedDict from functools import wraps from urllib.parse import urljoin import falcon from falcon import HTTP_METHODS import hug.api import hug.interface import hug.output_format from hug import introspect from hug.exceptions import InvalidTypeData class Router(object): """The base chainable router object""" __slots__ = ("route",) def __init__( self, transform=None, output=None, validate=None, api=None, requires=(), map_params=None, args=None, **kwargs ): self.route = {} if transform is not None: self.route["transform"] = transform if output: self.route["output"] = output if validate: self.route["validate"] = validate if api: self.route["api"] = api if requires: self.route["requires"] = ( (requires,) if not isinstance(requires, (tuple, list)) else requires ) if map_params: self.route["map_params"] = map_params if args: self.route["args"] = args def output(self, formatter, **overrides): """Sets the output formatter that should be used to render this route""" return self.where(output=formatter, **overrides) def transform(self, function, **overrides): """Sets the function that should be used to transform the returned Python structure into something serializable by specified output format """ return self.where(transform=function, **overrides) def validate(self, validation_function, **overrides): """Sets the secondary validation fucntion to use for this handler""" return self.where(validate=validation_function, **overrides) def api(self, api, **overrides): """Sets the API that should contain this route""" return self.where(api=api, **overrides) def requires(self, requirements, **overrides): """Adds additional requirements to the specified route""" return self.where( requires=tuple(self.route.get("requires", ())) + tuple(requirements), **overrides ) def doesnt_require(self, requirements, **overrides): """Removes individual requirements while keeping all other defined ones within a route""" return self.where( requires=tuple( set(self.route.get("requires", ())).difference( requirements if type(requirements) in (list, tuple) else (requirements,) ) ) ) def map_params(self, **map_params): """Map interface specific params to an internal name representation""" return self.where(map_params=map_params) def where(self, **overrides): """Creates a new route, based on the current route, with the specified overrided values""" route_data = self.route.copy() route_data.update(overrides) return self.__class__(**route_data) class CLIRouter(Router): """The CLIRouter provides a chainable router that can be used to route a CLI command to a Python function""" __slots__ = () def __init__(self, name=None, version=None, doc=None, **kwargs): super().__init__(**kwargs) if name is not None: self.route["name"] = name if version: self.route["version"] = version if doc: self.route["doc"] = doc def name(self, name, **overrides): """Sets the name for the CLI interface""" return self.where(name=name, **overrides) def version(self, version, **overrides): """Sets the version for the CLI interface""" return self.where(version=version, **overrides) def doc(self, documentation, **overrides): """Sets the documentation for the CLI interface""" return self.where(doc=documentation, **overrides) def __call__(self, api_function): """Enables exposing a Hug compatible function as a Command Line Interface""" hug.interface.CLI(self.route, api_function) return api_function class InternalValidation(Router): """Defines the base route for interfaces that define their own internal validation""" __slots__ = () def __init__(self, raise_on_invalid=False, on_invalid=None, output_invalid=None, **kwargs): super().__init__(**kwargs) if raise_on_invalid: self.route["raise_on_invalid"] = raise_on_invalid if on_invalid is not None: self.route["on_invalid"] = on_invalid if output_invalid is not None: self.route["output_invalid"] = output_invalid def raise_on_invalid(self, setting=True, **overrides): """Sets the route to raise validation errors instead of catching them""" return self.where(raise_on_invalid=setting, **overrides) def on_invalid(self, function, **overrides): """Sets a function to use to transform data on validation errors. Defaults to the transform function if one is set to ensure no special handling occurs for invalid data set to `False`. """ return self.where(on_invalid=function, **overrides) def output_invalid(self, output_handler, **overrides): """Sets an output handler to be used when handler validation fails. Defaults to the output formatter set globally for the route. """ return self.where(output_invalid=output_handler, **overrides) class LocalRouter(InternalValidation): """The LocalRouter defines how interfaces should be handled when accessed locally from within Python code""" __slots__ = () def __init__(self, directives=True, validate=True, version=None, **kwargs): super().__init__(**kwargs) if version is not None: self.route["version"] = version if not directives: self.route["skip_directives"] = True if not validate: self.route["skip_validation"] = True def directives(self, use=True, **kwargs): return self.where(directives=use) def validate(self, enforce=True, **kwargs): return self.where(validate=enforce) def version(self, supported, **kwargs): return self.where(version=supported) def __call__(self, api_function): """Enables exposing a hug compatible function locally""" return hug.interface.Local(self.route, api_function) class HTTPRouter(InternalValidation): """The HTTPRouter provides the base concept of a router from an HTTPRequest to a Python function""" __slots__ = () def __init__( self, versions=any, parse_body=False, parameters=None, defaults=None, status=None, response_headers=None, private=False, inputs=None, **kwargs ): if defaults is None: defaults = {} super().__init__(**kwargs) if versions is not any: self.route["versions"] = ( (versions,) if isinstance(versions, (int, float, None.__class__)) else versions ) self.route["versions"] = tuple( int(version) if version else version for version in self.route["versions"] ) if parse_body: self.route["parse_body"] = parse_body if parameters: self.route["parameters"] = parameters if defaults: self.route["defaults"] = defaults if status: self.route["status"] = status if response_headers: self.route["response_headers"] = response_headers if private: self.route["private"] = private if inputs: self.route["inputs"] = inputs def versions(self, supported, **overrides): """Sets the versions that this route should be compatiable with""" return self.where(versions=supported, **overrides) def parse_body(self, automatic=True, **overrides): """Tells hug to automatically parse the input body if it matches a registered input format""" return self.where(parse_body=automatic, **overrides) def set_status(self, status, **overrides): """Sets the status that will be returned by default""" return self.where(status=status, **overrides) def parameters(self, parameters, **overrides): """Sets the custom parameters that will be used instead of those found introspecting the decorated function""" return self.where(parameters=parameters, **overrides) def defaults(self, defaults, **overrides): """Sets the custom defaults that will be used for custom parameters""" return self.where(defaults=defaults, **overrides) def _create_interface(self, api, api_function, catch_exceptions=True): interface = hug.interface.HTTP(self.route, api_function, catch_exceptions) return (interface, api_function) def response_headers(self, headers, **overrides): """Sets the response headers automatically injected by the router""" return self.where(response_headers=headers, **overrides) def add_response_headers(self, headers, **overrides): """Adds the specified response headers while keeping existing ones in-tact""" response_headers = self.route.get("response_headers", {}).copy() response_headers.update(headers) return self.where(response_headers=response_headers, **overrides) def cache( self, private=False, max_age=31536000, s_maxage=None, no_cache=False, no_store=False, must_revalidate=False, **overrides ): """Convenience method for quickly adding cache header to route""" parts = ( "private" if private else "public", "max-age={0}".format(max_age), "s-maxage={0}".format(s_maxage) if s_maxage is not None else None, no_cache and "no-cache", no_store and "no-store", must_revalidate and "must-revalidate", ) return self.add_response_headers( {"cache-control": ", ".join(filter(bool, parts))}, **overrides ) def allow_origins( self, *origins, methods=None, max_age=None, credentials=None, headers=None, **overrides ): """Convenience method for quickly allowing other resources to access this one""" response_headers = {} if origins: @hug.response_middleware(api=self.route.get("api", None)) def process_data(request, response, resource): if "ORIGIN" in request.headers: origin = request.headers["ORIGIN"] if origin in origins: response.set_header("Access-Control-Allow-Origin", origin) else: response_headers["Access-Control-Allow-Origin"] = "*" if methods: response_headers["Access-Control-Allow-Methods"] = ", ".join(methods) if max_age: response_headers["Access-Control-Max-Age"] = max_age if credentials: response_headers["Access-Control-Allow-Credentials"] = str(credentials).lower() if headers: response_headers["Access-Control-Allow-Headers"] = headers return self.add_response_headers(response_headers, **overrides) class NotFoundRouter(HTTPRouter): """Provides a chainable router that can be used to route 404'd request to a Python function""" __slots__ = () def __init__(self, output=None, versions=any, status=falcon.HTTP_NOT_FOUND, **kwargs): super().__init__(output=output, versions=versions, status=status, **kwargs) def __call__(self, api_function): api = self.route.get("api", hug.api.from_object(api_function)) (interface, callable_method) = self._create_interface(api, api_function) for version in self.route.get("versions", (None,)): api.http.set_not_found_handler(interface, version) return callable_method class SinkRouter(HTTPRouter): """Provides a chainable router that can be used to route all routes pass a certain base URL (essentially route/*)""" __slots__ = () def __init__(self, urls=None, output=None, **kwargs): super().__init__(output=output, **kwargs) if urls: self.route["urls"] = (urls,) if isinstance(urls, str) else urls def __call__(self, api_function): api = self.route.get("api", hug.api.from_object(api_function)) (interface, callable_method) = self._create_interface(api, api_function) for base_url in self.route.get("urls", ("/{0}".format(api_function.__name__),)): api.http.add_sink(interface, base_url) return callable_method class StaticRouter(SinkRouter): """Provides a chainable router that can be used to return static files automatically from a set of directories""" __slots__ = ("route",) def __init__(self, urls=None, output=hug.output_format.file, cache=False, **kwargs): super().__init__(urls=urls, output=output, **kwargs) if cache is True: self.cache() elif cache is not False: self.cache(**cache) def __call__(self, api_function): directories = [] for directory in api_function(): path = os.path.abspath(directory) directories.append(path) api = self.route.get("api", hug.api.from_object(api_function)) for base_url in self.route.get("urls", ("/{0}".format(api_function.__name__),)): def read_file(request=None, path=""): filename = path.lstrip("/") for directory in directories: path = os.path.abspath(os.path.join(directory, filename)) if not path.startswith(directory): hug.redirect.not_found() if os.path.isdir(path): new_path = os.path.join(path, "index.html") if os.path.exists(new_path) and os.path.isfile(new_path): path = new_path if os.path.exists(path) and os.path.isfile(path): return path hug.redirect.not_found() api.http.add_sink(self._create_interface(api, read_file)[0], base_url) return api_function class ExceptionRouter(HTTPRouter): """Provides a chainable router that can be used to route exceptions thrown during request handling""" __slots__ = () def __init__(self, exceptions=(Exception,), exclude=(), output=None, **kwargs): super().__init__(output=output, **kwargs) self.route["exceptions"] = ( (exceptions,) if not isinstance(exceptions, (list, tuple)) else exceptions ) self.route["exclude"] = (exclude,) if not isinstance(exclude, (list, tuple)) else exclude def __call__(self, api_function): api = self.route.get("api", hug.api.from_object(api_function)) (interface, callable_method) = self._create_interface( api, api_function, catch_exceptions=False ) for version in self.route.get("versions", (None,)): for exception in self.route["exceptions"]: api.http.add_exception_handler(exception, interface, version) return callable_method def _create_interface(self, api, api_function, catch_exceptions=False): interface = hug.interface.ExceptionRaised(self.route, api_function, catch_exceptions) return (interface, api_function) class URLRouter(HTTPRouter): """Provides a chainable router that can be used to route a URL to a Python function""" __slots__ = () def __init__( self, urls=None, accept=HTTP_METHODS, output=None, examples=(), versions=any, suffixes=(), prefixes=(), response_headers=None, parse_body=True, **kwargs ): super().__init__( output=output, versions=versions, parse_body=parse_body, response_headers=response_headers, **kwargs ) if urls is not None: self.route["urls"] = (urls,) if isinstance(urls, str) else urls if accept: self.route["accept"] = (accept,) if isinstance(accept, str) else accept if examples: self.route["examples"] = (examples,) if isinstance(examples, str) else examples if suffixes: self.route["suffixes"] = (suffixes,) if isinstance(suffixes, str) else suffixes if prefixes: self.route["prefixes"] = (prefixes,) if isinstance(prefixes, str) else prefixes def __call__(self, api_function): api = self.route.get("api", hug.api.from_object(api_function)) api.http.routes.setdefault(api.http.base_url, OrderedDict()) (interface, callable_method) = self._create_interface(api, api_function) use_examples = self.route.get("examples", ()) if not interface.required and not use_examples: use_examples = (True,) for base_url in self.route.get("urls", ("/{0}".format(api_function.__name__),)): expose = [base_url] for suffix in self.route.get("suffixes", ()): if suffix.startswith("/"): expose.append(os.path.join(base_url, suffix.lstrip("/"))) else: expose.append(base_url + suffix) for prefix in self.route.get("prefixes", ()): expose.append(prefix + base_url) for url in expose: handlers = api.http.routes[api.http.base_url].setdefault(url, {}) for method in self.route.get("accept", ()): version_mapping = handlers.setdefault(method.upper(), {}) for version in self.route.get("versions", (None,)): version_mapping[version] = interface api.http.versioned.setdefault(version, {})[ callable_method.__name__ ] = callable_method interface.examples = use_examples return callable_method def urls(self, *urls, **overrides): """Sets the URLs that will map to this API call""" return self.where(urls=urls, **overrides) def accept(self, *accept, **overrides): """Sets a list of HTTP methods this router should accept""" return self.where(accept=accept, **overrides) def get(self, urls=None, **overrides): """Sets the acceptable HTTP method to a GET""" if urls is not None: overrides["urls"] = urls return self.where(accept="GET", **overrides) def delete(self, urls=None, **overrides): """Sets the acceptable HTTP method to DELETE""" if urls is not None: overrides["urls"] = urls return self.where(accept="DELETE", **overrides) def post(self, urls=None, **overrides): """Sets the acceptable HTTP method to POST""" if urls is not None: overrides["urls"] = urls return self.where(accept="POST", **overrides) def put(self, urls=None, **overrides): """Sets the acceptable HTTP method to PUT""" if urls is not None: overrides["urls"] = urls return self.where(accept="PUT", **overrides) def trace(self, urls=None, **overrides): """Sets the acceptable HTTP method to TRACE""" if urls is not None: overrides["urls"] = urls return self.where(accept="TRACE", **overrides) def patch(self, urls=None, **overrides): """Sets the acceptable HTTP method to PATCH""" if urls is not None: overrides["urls"] = urls return self.where(accept="PATCH", **overrides) def options(self, urls=None, **overrides): """Sets the acceptable HTTP method to OPTIONS""" if urls is not None: overrides["urls"] = urls return self.where(accept="OPTIONS", **overrides) def head(self, urls=None, **overrides): """Sets the acceptable HTTP method to HEAD""" if urls is not None: overrides["urls"] = urls return self.where(accept="HEAD", **overrides) def connect(self, urls=None, **overrides): """Sets the acceptable HTTP method to CONNECT""" if urls is not None: overrides["urls"] = urls return self.where(accept="CONNECT", **overrides) def call(self, **overrides): """Sets the acceptable HTTP method to all known""" return self.where(accept=HTTP_METHODS, **overrides) def http(self, **overrides): """Sets the acceptable HTTP method to all known""" return self.where(accept=HTTP_METHODS, **overrides) def get_post(self, **overrides): """Exposes a Python method externally under both the HTTP POST and GET methods""" return self.where(accept=("GET", "POST"), **overrides) def put_post(self, **overrides): """Exposes a Python method externally under both the HTTP POST and PUT methods""" return self.where(accept=("PUT", "POST"), **overrides) def examples(self, *examples, **overrides): """Sets the examples that the route should use""" return self.where(examples=examples, **overrides) def suffixes(self, *suffixes, **overrides): """Sets the suffixes supported by the route""" return self.where(suffixes=suffixes, **overrides) def prefixes(self, *prefixes, **overrides): """Sets the prefixes supported by the route""" return self.where(prefixes=prefixes, **overrides) def where(self, **overrides): if "urls" in overrides: existing_urls = self.route.get("urls", ()) use_urls = [] for url in ( (overrides["urls"],) if isinstance(overrides["urls"], str) else overrides["urls"] ): if url.startswith("/") or not existing_urls: use_urls.append(url) else: for existing in existing_urls: use_urls.append(urljoin(existing.rstrip("/") + "/", url)) overrides["urls"] = tuple(use_urls) return super().where(**overrides) hug-2.6.0/hug/store.py000066400000000000000000000043541353170073200146020ustar00rootroot00000000000000"""hug/store.py. A collecton of native stores which can be used with, among others, the session middleware. Copyright (C) 2016 Timothy Edmund Crosley 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 hug.exceptions import StoreKeyNotFound class InMemoryStore: """ Naive store class which can be used for the session middleware and unit tests. It is not thread-safe and no data will survive the lifecycle of the hug process. Regard this as a blueprint for more useful and probably more complex store implementations, for example stores which make use of databases like Redis, PostgreSQL or others. """ def __init__(self): self._data = {} def get(self, key): """Get data for given store key. Raise hug.exceptions.StoreKeyNotFound if key does not exist.""" try: data = self._data[key] except KeyError: raise StoreKeyNotFound(key) return data def exists(self, key): """Return whether key exists or not.""" return key in self._data def set(self, key, data): """Set data object for given store key.""" self._data[key] = data def delete(self, key): """Delete data for given store key.""" if key in self._data: del self._data[key] hug-2.6.0/hug/test.py000066400000000000000000000116021353170073200144170ustar00rootroot00000000000000"""hug/test.py. Defines utility function that aid in the round-trip testing of Hug APIs Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import ast import sys from functools import partial from io import BytesIO from unittest import mock from urllib.parse import urlencode from falcon import HTTP_METHODS from falcon.testing import DEFAULT_HOST, StartResponseMock, create_environ from hug import output_format from hug.api import API from hug.json_module import json def _internal_result(raw_response): try: return raw_response[0].decode("utf8") except TypeError: data = BytesIO() for chunk in raw_response: data.write(chunk) data = data.getvalue() try: return data.decode("utf8") except UnicodeDecodeError: # pragma: no cover return data except (UnicodeDecodeError, AttributeError): return raw_response[0] def call( method, api_or_module, url, body="", headers=None, params=None, query_string="", scheme="http", host=DEFAULT_HOST, **kwargs ): """Simulates a round-trip call against the given API / URL""" api = API(api_or_module).http.server() response = StartResponseMock() headers = {} if headers is None else headers if not isinstance(body, str) and "json" in headers.get("content-type", "application/json"): body = output_format.json(body) headers.setdefault("content-type", "application/json") params = params if params else {} params.update(kwargs) if params: query_string = "{}{}{}".format( query_string, "&" if query_string else "", urlencode(params, True) ) result = api( create_environ( path=url, method=method, headers=headers, query_string=query_string, body=body, scheme=scheme, host=host, ), response, ) if result: response.data = _internal_result(result) response.content_type = response.headers_dict["content-type"] if "application/json" in response.content_type: response.data = json.loads(response.data) return response for method in HTTP_METHODS: tester = partial(call, method) tester.__doc__ = """Simulates a round-trip HTTP {0} against the given API / URL""".format( method.upper() ) globals()[method.lower()] = tester def cli(method, *args, api=None, module=None, **arguments): """Simulates testing a hug cli method from the command line""" collect_output = arguments.pop("collect_output", True) if api and module: raise ValueError("Please specify an API OR a Module that contains the API, not both") elif api or module: method = API(api or module).cli.commands[method].interface._function command_args = [method.__name__] + list(args) for name, values in arguments.items(): if not isinstance(values, (tuple, list)): values = (values,) for value in values: command_args.append("--{0}".format(name)) if not value in (True, False): command_args.append("{0}".format(value)) old_sys_argv = sys.argv sys.argv = [str(part) for part in command_args] old_outputs = method.interface.cli.outputs if collect_output: method.interface.cli.outputs = lambda data: to_return.append(old_outputs(data)) to_return = [] try: method.interface.cli() except Exception as e: to_return = (e,) method.interface.cli.outputs = old_outputs sys.argv = old_sys_argv if to_return: result = _internal_result(to_return) try: result = json.loads(result) except Exception: try: result = ast.literal_eval(result) except Exception: pass return result hug-2.6.0/hug/this.py000066400000000000000000000033531353170073200144130ustar00rootroot00000000000000"""hug/this.py. The Zen of Hug Copyright (C) 2019 Timothy Edmund Crosley 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. """ ZEN_OF_HUG = """ Simple Things should be easy, complex things should be possible. Complex things done often should be made simple. Magic should be avoided. Magic isn't magic as soon as its mechanics are universally understood. Wrong documentation is worse than no documentation. Everything should be documented. All code should be tested. All tests should be meaningful. Consistency is more important than perfection. It's okay to break consistency for practicality. Clarity is more important than performance. If we do our job right, there shouldn't need to be a choice. Interfaces are one honking great idea -- let's do more of those! """ print(ZEN_OF_HUG) hug-2.6.0/hug/transform.py000066400000000000000000000104311353170073200154520ustar00rootroot00000000000000"""hug/transform.py Defines Hug's built-in output transforming functions Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import from hug.decorators import auto_kwargs def content_type(transformers, default=None): """Returns a different transformer depending on the content type passed in. If none match and no default is given no transformation takes place. should pass in a dict with the following format: {'[content-type]': transformation_action, ... } """ transformers = { content_type: auto_kwargs(transformer) if transformer else transformer for content_type, transformer in transformers.items() } default = default and auto_kwargs(default) def transform(data, request): transformer = transformers.get(request.content_type.split(";")[0], default) if not transformer: return data return transformer(data) return transform def suffix(transformers, default=None): """Returns a different transformer depending on the suffix at the end of the requested URL. If none match and no default is given no transformation takes place. should pass in a dict with the following format: {'[suffix]': transformation_action, ... } """ transformers = { suffix: auto_kwargs(transformer) if transformer else transformer for suffix, transformer in transformers.items() } default = default and auto_kwargs(default) def transform(data, request): path = request.path transformer = default for suffix_test, suffix_transformer in transformers.items(): if path.endswith(suffix_test): transformer = suffix_transformer break return transformer(data) if transformer else data return transform def prefix(transformers, default=None): """Returns a different transformer depending on the prefix at the end of the requested URL. If none match and no default is given no transformation takes place. should pass in a dict with the following format: {'[prefix]': transformation_action, ... } """ transformers = { prefix: auto_kwargs(transformer) if transformer else transformer for prefix, transformer in transformers.items() } default = default and auto_kwargs(default) def transform(data, request=None, response=None): path = request.path transformer = default for prefix_test, prefix_transformer in transformers.items(): if path.startswith(prefix_test): transformer = prefix_transformer break return transformer(data) if transformer else data return transform def all(*transformers): """Returns the results of applying all passed in transformers to data should pass in list of transformers [transformer_1, transformer_2...] """ transformers = tuple(auto_kwargs(transformer) for transformer in transformers) def transform(data, request=None, response=None): for transformer in transformers: data = transformer(data, request=request, response=response) return data return transform hug-2.6.0/hug/types.py000066400000000000000000000607151353170073200146150ustar00rootroot00000000000000"""hug/types.py Defines hugs built-in supported types / validators Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import uuid as native_uuid from decimal import Decimal from distutils.version import LooseVersion import hug._empty as empty from hug import introspect from hug.exceptions import InvalidTypeData from hug.json_module import json as json_converter MARSHMALLOW_MAJOR_VERSION = None try: import marshmallow from marshmallow import ValidationError MARSHMALLOW_MAJOR_VERSION = getattr( marshmallow, "__version_info__", LooseVersion(marshmallow.__version__).version )[0] except ImportError: # Just define the error that is never raised so that Python does not complain. class ValidationError(Exception): pass class Type(object): """Defines the base hug concept of a type for use in function annotation. Override `__call__` to define how the type should be transformed and validated """ _hug_type = True _sub_type = None _accept_context = False def __init__(self): pass def __call__(self, value): raise NotImplementedError("To implement a new type __call__ must be defined") def create( doc=None, error_text=None, exception_handlers=empty.dict, extend=Type, chain=True, auto_instance=True, accept_context=False, ): """Creates a new type handler with the specified type-casting handler""" extend = extend if type(extend) == type else type(extend) def new_type_handler(function): class NewType(extend): __slots__ = () _accept_context = accept_context if chain and extend != Type: if error_text or exception_handlers: if not accept_context: def __call__(self, value): try: value = super(NewType, self).__call__(value) return function(value) except Exception as exception: for take_exception, rewrite in exception_handlers.items(): if isinstance(exception, take_exception): if isinstance(rewrite, str): raise ValueError(rewrite) else: raise rewrite(value) if error_text: raise ValueError(error_text) raise exception else: if extend._accept_context: def __call__(self, value, context): try: value = super(NewType, self).__call__(value, context) return function(value, context) except Exception as exception: for take_exception, rewrite in exception_handlers.items(): if isinstance(exception, take_exception): if isinstance(rewrite, str): raise ValueError(rewrite) else: raise rewrite(value) if error_text: raise ValueError(error_text) raise exception else: def __call__(self, value, context): try: value = super(NewType, self).__call__(value) return function(value, context) except Exception as exception: for take_exception, rewrite in exception_handlers.items(): if isinstance(exception, take_exception): if isinstance(rewrite, str): raise ValueError(rewrite) else: raise rewrite(value) if error_text: raise ValueError(error_text) raise exception else: if not accept_context: def __call__(self, value): value = super(NewType, self).__call__(value) return function(value) else: if extend._accept_context: def __call__(self, value, context): value = super(NewType, self).__call__(value, context) return function(value, context) else: def __call__(self, value, context): value = super(NewType, self).__call__(value) return function(value, context) else: if not accept_context: if error_text or exception_handlers: def __call__(self, value): try: return function(value) except Exception as exception: for take_exception, rewrite in exception_handlers.items(): if isinstance(exception, take_exception): if isinstance(rewrite, str): raise ValueError(rewrite) else: raise rewrite(value) if error_text: raise ValueError(error_text) raise exception else: def __call__(self, value): return function(value) else: if error_text or exception_handlers: def __call__(self, value, context): try: return function(value, context) except Exception as exception: for take_exception, rewrite in exception_handlers.items(): if isinstance(exception, take_exception): if isinstance(rewrite, str): raise ValueError(rewrite) else: raise rewrite(value) if error_text: raise ValueError(error_text) raise exception else: def __call__(self, value, context): return function(value, context) NewType.__doc__ = function.__doc__ if doc is None else doc if auto_instance and not ( introspect.arguments(NewType.__init__, -1) or introspect.takes_kwargs(NewType.__init__) or introspect.takes_args(NewType.__init__) ): return NewType() return NewType return new_type_handler def accept(kind, doc=None, error_text=None, exception_handlers=empty.dict, accept_context=False): """Allows quick wrapping of any Python type cast function for use as a hug type annotation""" return create( doc, error_text, exception_handlers=exception_handlers, chain=False, accept_context=accept_context, )(kind) number = accept(int, "A whole number", "Invalid whole number provided") float_number = accept(float, "A float number", "Invalid float number provided") decimal = accept(Decimal, "A decimal number", "Invalid decimal number provided") boolean = accept( bool, "Providing any value will set this to true", "Invalid boolean value provided" ) uuid = accept(native_uuid.UUID, "A Universally Unique IDentifier", "Invalid UUID provided") class Text(Type): """Basic text / string value""" __slots__ = () def __call__(self, value): if type(value) in (list, tuple) or value is None: raise ValueError("Invalid text value provided") return str(value) text = Text() class SubTyped(type): def __getitem__(cls, sub_type): class TypedSubclass(cls): _sub_type = sub_type return TypedSubclass class Multiple(Type, metaclass=SubTyped): """Multiple Values""" __slots__ = () def __call__(self, value): as_multiple = value if isinstance(value, list) else [value] if self._sub_type: return [self._sub_type(item) for item in as_multiple] return as_multiple class DelimitedList(Type, metaclass=SubTyped): """Defines a list type that is formed by delimiting a list with a certain character or set of characters""" def __init__(self, using=","): super().__init__() self.using = using @property def __doc__(self): return '''Multiple values, separated by "{0}"'''.format(self.using) def __call__(self, value): value_list = value if type(value) in (list, tuple) else value.split(self.using) if self._sub_type: value_list = [self._sub_type(val) for val in value_list] return value_list class SmartBoolean(type(boolean)): """Accepts a true or false value""" __slots__ = () def __call__(self, value): if type(value) == bool or value in (None, 1, 0): return bool(value) value = value.lower() if value in ("true", "t", "1"): return True elif value in ("false", "f", "0", ""): return False raise KeyError("Invalid value passed in for true/false field") class InlineDictionary(Type, metaclass=SubTyped): """A single line dictionary, where items are separted by commas and key:value are separated by a pipe""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.key_type = self.value_type = None if self._sub_type: if type(self._sub_type) in (tuple, list): if len(self._sub_type) >= 2: self.key_type, self.value_type = self._sub_type[:2] else: self.key_type = self._sub_type def __call__(self, string): dictionary = {} for key, value in (item.split(":") for item in string.split("|")): key, value = key.strip(), value.strip() dictionary[self.key_type(key) if self.key_type else key] = ( self.value_type(value) if self.value_type else value ) return dictionary class OneOf(Type): """Ensures the value is within a set of acceptable values""" __slots__ = ("values",) def __init__(self, values): self.values = values @property def __doc__(self): return "Accepts one of the following values: ({0})".format("|".join(self.values)) def __call__(self, value): if not value in self.values: raise KeyError( "Invalid value passed. The accepted values are: ({0})".format("|".join(self.values)) ) return value class Mapping(OneOf): """Ensures the value is one of an acceptable set of values mapping those values to a Python equivelent""" __slots__ = ("value_map",) def __init__(self, value_map): self.value_map = value_map self.values = value_map.keys() @property def __doc__(self): return "Accepts one of the following values: ({0})".format("|".join(self.values)) def __call__(self, value): if not value in self.values: raise KeyError( "Invalid value passed. The accepted values are: ({0})".format("|".join(self.values)) ) return self.value_map[value] class JSON(Type): """Accepts a JSON formatted data structure""" __slots__ = () def __call__(self, value): if type(value) in (str, bytes): try: return json_converter.loads(value) except Exception: raise ValueError("Incorrectly formatted JSON provided") if type(value) is list: # If Falcon is set to comma-separate entries, this segment joins them again. try: fixed_value = ",".join(value) return json_converter.loads(fixed_value) except Exception: raise ValueError("Incorrectly formatted JSON provided") else: return value class Multi(Type): """Enables accepting one of multiple type methods""" __slots__ = ("types",) def __init__(self, *types): self.types = types @property def __doc__(self): type_strings = (type_method.__doc__ for type_method in self.types) return "Accepts any of the following value types:{0}\n".format("\n - ".join(type_strings)) def __call__(self, value): for type_method in self.types: try: return type_method(value) except BaseException: pass raise ValueError(self.__doc__) class InRange(Type): """Accepts a number within a lower and upper bound of acceptable values""" __slots__ = ("lower", "upper", "convert") def __init__(self, lower, upper, convert=number): self.lower = lower self.upper = upper self.convert = convert @property def __doc__(self): return "{0} that is greater or equal to {1} and less than {2}".format( self.convert.__doc__, self.lower, self.upper ) def __call__(self, value): value = self.convert(value) if value < self.lower: raise ValueError("'{0}' is less than the lower limit {1}".format(value, self.lower)) if value >= self.upper: raise ValueError("'{0}' reaches the limit of {1}".format(value, self.upper)) return value class LessThan(Type): """Accepts a number within a lower and upper bound of acceptable values""" __slots__ = ("limit", "convert") def __init__(self, limit, convert=number): self.limit = limit self.convert = convert @property def __doc__(self): return "{0} that is less than {1}".format(self.convert.__doc__, self.limit) def __call__(self, value): value = self.convert(value) if not value < self.limit: raise ValueError("'{0}' must be less than {1}".format(value, self.limit)) return value class GreaterThan(Type): """Accepts a value above a given minimum""" __slots__ = ("minimum", "convert") def __init__(self, minimum, convert=number): self.minimum = minimum self.convert = convert @property def __doc__(self): return "{0} that is greater than {1}".format(self.convert.__doc__, self.minimum) def __call__(self, value): value = self.convert(value) if not value > self.minimum: raise ValueError("'{0}' must be greater than {1}".format(value, self.minimum)) return value class Length(Type): """Accepts a a value that is within a specific length limit""" __slots__ = ("lower", "upper", "convert") def __init__(self, lower, upper, convert=text): self.lower = lower self.upper = upper self.convert = convert @property def __doc__(self): return "{0} that has a length longer or equal to {1} and less then {2}".format( self.convert.__doc__, self.lower, self.upper ) def __call__(self, value): value = self.convert(value) length = len(value) if length < self.lower: raise ValueError( "'{0}' is shorter than the lower limit of {1}".format(value, self.lower) ) if length >= self.upper: raise ValueError( "'{0}' is longer then the allowed limit of {1}".format(value, self.upper) ) return value class ShorterThan(Type): """Accepts a text value shorter than the specified length limit""" __slots__ = ("limit", "convert") def __init__(self, limit, convert=text): self.limit = limit self.convert = convert @property def __doc__(self): return "{0} with a length of no more than {1}".format(self.convert.__doc__, self.limit) def __call__(self, value): value = self.convert(value) length = len(value) if not length < self.limit: raise ValueError( "'{0}' is longer then the allowed limit of {1}".format(value, self.limit) ) return value class LongerThan(Type): """Accepts a value up to the specified limit""" __slots__ = ("limit", "convert") def __init__(self, limit, convert=text): self.limit = limit self.convert = convert @property def __doc__(self): return "{0} with a length longer than {1}".format(self.convert.__doc__, self.limit) def __call__(self, value): value = self.convert(value) length = len(value) if not length > self.limit: raise ValueError("'{0}' must be longer than {1}".format(value, self.limit)) return value class CutOff(Type): """Cuts off the provided value at the specified index""" __slots__ = ("limit", "convert") def __init__(self, limit, convert=text): self.limit = limit self.convert = convert @property def __doc__(self): return "'{0}' with anything over the length of {1} being ignored".format( self.convert.__doc__, self.limit ) def __call__(self, value): return self.convert(value)[: self.limit] class Chain(Type): """type for chaining multiple types together""" __slots__ = ("types",) def __init__(self, *types): self.types = types def __call__(self, value): for type_function in self.types: value = type_function(value) return value class Nullable(Chain): """A Chain types that Allows None values""" __slots__ = ("types",) def __init__(self, *types): self.types = types def __call__(self, value): if value is None: return None else: return super(Nullable, self).__call__(value) class TypedProperty(object): """class for building property objects for schema objects""" __slots__ = ("name", "type_func") def __init__(self, name, type_func): self.name = "_" + name self.type_func = type_func def __get__(self, instance, cls): return getattr(instance, self.name, None) def __set__(self, instance, value): setattr(instance, self.name, self.type_func(value)) def __delete__(self, instance): raise AttributeError("Can't delete attribute") class NewTypeMeta(type): """Meta class to turn Schema objects into format usable by hug""" __slots__ = () def __init__(cls, name, bases, nmspc): cls._types = { attr: getattr(cls, attr) for attr in dir(cls) if getattr(getattr(cls, attr), "_hug_type", False) } slots = getattr(cls, "__slots__", ()) slots = set(slots) for attr, type_func in cls._types.items(): slots.add("_" + attr) slots.add(attr) prop = TypedProperty(attr, type_func) setattr(cls, attr, prop) cls.__slots__ = tuple(slots) super(NewTypeMeta, cls).__init__(name, bases, nmspc) class Schema(object, metaclass=NewTypeMeta): """Schema for creating complex types using hug types""" __slots__ = () def __new__(cls, json, *args, **kwargs): if json.__class__ == cls: return json else: return super(Schema, cls).__new__(cls) def __init__(self, json, force=False): if self != json: for (key, value) in json.items(): if force: key = "_" + key setattr(self, key, value) json = JSON() class MarshmallowInputSchema(Type): """Allows using a Marshmallow Schema directly in a hug input type annotation""" __slots__ = "schema" def __init__(self, schema): self.schema = schema @property def __doc__(self): return self.schema.__doc__ or self.schema.__class__.__name__ def __call__(self, value, context): self.schema.context = context # In marshmallow 2 schemas return tuple (`data`, `errors`) upon loading. They might also raise on invalid data # if configured so, but will still return a tuple. # In marshmallow 3 schemas always raise Validation error on load if input data is invalid and a single # value `data` is returned. if MARSHMALLOW_MAJOR_VERSION is None or MARSHMALLOW_MAJOR_VERSION == 2: value, errors = ( self.schema.loads(value) if isinstance(value, str) else self.schema.load(value) ) else: errors = {} try: value = ( self.schema.loads(value) if isinstance(value, str) else self.schema.load(value) ) except ValidationError as e: errors = e.messages if errors: raise InvalidTypeData( "Invalid {0} passed in".format(self.schema.__class__.__name__), errors ) return value class MarshmallowReturnSchema(Type): """Allows using a Marshmallow Schema directly in a hug return type annotation""" __slots__ = ("schema",) def __init__(self, schema): self.schema = schema @property def context(self): return self.schema.context @context.setter def context(self, context): self.schema.context = context @property def __doc__(self): return self.schema.__doc__ or self.schema.__class__.__name__ def __call__(self, value): # In marshmallow 2 schemas return tuple (`data`, `errors`) upon loading. They might also raise on invalid data # if configured so, but will still return a tuple. # In marshmallow 3 schemas always raise Validation error on load if input data is invalid and a single # value `data` is returned. if MARSHMALLOW_MAJOR_VERSION is None or MARSHMALLOW_MAJOR_VERSION == 2: value, errors = self.schema.dump(value) else: errors = {} try: value = self.schema.dump(value) except ValidationError as e: errors = e.messages if errors: raise InvalidTypeData( "Invalid {0} passed in".format(self.schema.__class__.__name__), errors ) return value multiple = Multiple() smart_boolean = SmartBoolean() inline_dictionary = InlineDictionary() comma_separated_list = DelimitedList(using=",") # NOTE: These forms are going to be DEPRECATED, here for backwards compatibility only delimited_list = DelimitedList one_of = OneOf mapping = Mapping multi = Multi in_range = InRange less_than = LessThan greater_than = GreaterThan length = Length shorter_than = ShorterThan longer_than = LongerThan cut_off = CutOff hug-2.6.0/hug/use.py000066400000000000000000000300151353170073200142330ustar00rootroot00000000000000"""hug/use.py Provides a mechanism for using external hug APIs both locally or remotely in a seamless fashion Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import import re import socket from collections import namedtuple from io import BytesIO from queue import Queue import falcon import requests import hug._empty as empty from hug.api import API from hug.defaults import input_format from hug.format import parse_content_type Response = namedtuple("Response", ("data", "status_code", "headers")) Request = namedtuple("Request", ("content_length", "stream", "params")) class Service(object): """Defines the base concept of a consumed service. This is to enable encapsulating the logic of calling a service so usage can be independant of the interface """ __slots__ = ("timeout", "raise_on", "version") def __init__(self, version=None, timeout=None, raise_on=(500,), **kwargs): self.version = version self.timeout = timeout self.raise_on = raise_on if type(raise_on) in (tuple, list) else (raise_on,) def request( self, method, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params ): """Calls the service at the specified URL using the "CALL" method""" raise NotImplementedError("Concrete services must define the request method") def get(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "GET" method""" return self.request("GET", url=url, headers=headers, timeout=timeout, **params) def post(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "POST" method""" return self.request("POST", url=url, headers=headers, timeout=timeout, **params) def delete(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "DELETE" method""" return self.request("DELETE", url=url, headers=headers, timeout=timeout, **params) def put(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "PUT" method""" return self.request("PUT", url=url, headers=headers, timeout=timeout, **params) def trace(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "TRACE" method""" return self.request("TRACE", url=url, headers=headers, timeout=timeout, **params) def patch(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "PATCH" method""" return self.request("PATCH", url=url, headers=headers, timeout=timeout, **params) def options(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "OPTIONS" method""" return self.request("OPTIONS", url=url, headers=headers, timeout=timeout, **params) def head(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "HEAD" method""" return self.request("HEAD", url=url, headers=headers, timeout=timeout, **params) def connect(self, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params): """Calls the service at the specified URL using the "CONNECT" method""" return self.request("CONNECT", url=url, headers=headers, timeout=timeout, **params) class HTTP(Service): __slots__ = ("endpoint", "session", "json_transport") def __init__( self, endpoint, auth=None, version=None, headers=empty.dict, timeout=None, raise_on=(500,), json_transport=True, **kwargs ): super().__init__(timeout=timeout, raise_on=raise_on, version=version, **kwargs) self.endpoint = endpoint self.session = requests.Session() self.session.auth = auth self.session.headers.update(headers) self.json_transport = json_transport def request( self, method, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params ): url = "{0}/{1}".format(self.version, url.lstrip("/")) if self.version else url kwargs = {"json" if self.json_transport else "params": params} response = self.session.request( method, self.endpoint + url.format(url_params), headers=headers, **kwargs ) data = BytesIO(response.content) content_type, content_params = parse_content_type(response.headers.get("content-type", "")) if content_type in input_format: data = input_format[content_type](data, **content_params) if response.status_code in self.raise_on: raise requests.HTTPError( "{0} {1} occured for url: {2}".format(response.status_code, response.reason, url) ) return Response(data, response.status_code, response.headers) class Local(Service): __slots__ = ("api", "headers") def __init__( self, api, version=None, headers=empty.dict, timeout=None, raise_on=(500,), **kwargs ): super().__init__(timeout=timeout, raise_on=raise_on, version=version, **kwargs) self.api = API(api) self.headers = headers def request( self, method, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params ): function = self.api.http.versioned.get(self.version, {}).get(url, None) if not function: function = self.api.http.versioned.get(None, {}).get(url, None) if not function: if 404 in self.raise_on: raise requests.HTTPError("404 Not Found occured for url: {0}".format(url)) return Response("Not Found", 404, {"content-type", "application/json"}) interface = function.interface.http response = falcon.Response() request = Request(None, None, empty.dict) context = self.api.context_factory( api=self.api, api_version=self.version, interface=interface ) interface.set_response_defaults(response) params.update(url_params) params = interface.gather_parameters( request, response, context, api_version=self.version, **params ) errors = interface.validate(params, context) if errors: interface.render_errors(errors, request, response) else: interface.render_content(interface.call_function(params), context, request, response) data = BytesIO(response.data) content_type, content_params = parse_content_type(response._headers.get("content-type", "")) if content_type in input_format: data = input_format[content_type](data, **content_params) status_code = int("".join(re.findall("\d+", response.status))) if status_code in self.raise_on: raise requests.HTTPError("{0} occured for url: {1}".format(response.status, url)) return Response(data, status_code, response._headers) class Socket(Service): __slots__ = ("connection_pool", "timeout", "connection", "send_and_receive") on_unix = getattr(socket, "AF_UNIX", False) Connection = namedtuple("Connection", ("connect_to", "proto", "sockopts")) protocols = { "tcp": (socket.AF_INET, socket.SOCK_STREAM), "udp": (socket.AF_INET, socket.SOCK_DGRAM), } streams = set(("tcp",)) datagrams = set(("udp",)) inet = set(("tcp", "udp")) unix = set() if on_unix: protocols.update( { "unix_dgram": (socket.AF_UNIX, socket.SOCK_DGRAM), "unix_stream": (socket.AF_UNIX, socket.SOCK_STREAM), } ) streams.add("unix_stream") datagrams.add("unix_dgram") unix.update(("unix_stream", "unix_dgram")) def __init__( self, connect_to, proto, version=None, headers=empty.dict, timeout=None, pool=0, raise_on=(500,), **kwargs ): super().__init__(timeout=timeout, raise_on=raise_on, version=version, **kwargs) connect_to = tuple(connect_to) if proto in Socket.inet else connect_to self.timeout = timeout self.connection = Socket.Connection(connect_to, proto, set()) self.connection_pool = Queue(maxsize=pool if pool else 1) if proto in Socket.streams: self.send_and_receive = self._stream_send_and_receive else: self.send_and_receive = self._dgram_send_and_receive def settimeout(self, timeout): """Set the default timeout""" self.timeout = timeout def setsockopt(self, *sockopts): """Add socket options to set""" if type(sockopts[0]) in (list, tuple): for sock_opt in sockopts[0]: level, option, value = sock_opt self.connection.sockopts.add((level, option, value)) else: level, option, value = sockopts self.connection.sockopts.add((level, option, value)) def _register_socket(self): """Create/Connect socket, apply options""" _socket = socket.socket(*Socket.protocols[self.connection.proto]) _socket.settimeout(self.timeout) # Reconfigure original socket options. if self.connection.sockopts: for sock_opt in self.connection.sockopts: level, option, value = sock_opt _socket.setsockopt(level, option, value) _socket.connect(self.connection.connect_to) return _socket def _stream_send_and_receive(self, _socket, message, *args, **kwargs): """TCP/Stream sender and receiver""" data = BytesIO() _socket_fd = _socket.makefile(mode="rwb", encoding="utf-8") _socket_fd.write(message.encode("utf-8")) _socket_fd.flush() for received in _socket_fd: data.write(received) data.seek(0) _socket_fd.close() return data def _dgram_send_and_receive(self, _socket, message, buffer_size=4096, *args): """User Datagram Protocol sender and receiver""" _socket.send(message.encode("utf-8")) data, address = _socket.recvfrom(buffer_size) return BytesIO(data) def request(self, message, timeout=False, *args, **kwargs): """Populate connection pool, send message, return BytesIO, and cleanup""" if not self.connection_pool.full(): self.connection_pool.put(self._register_socket()) _socket = self.connection_pool.get() # setting timeout to None enables the socket to block. if timeout or timeout is None: _socket.settimeout(timeout) data = self.send_and_receive(_socket, message, *args, **kwargs) if self.connection.proto in Socket.streams: _socket.shutdown(socket.SHUT_RDWR) return Response(data, None, None) hug-2.6.0/hug/validate.py000066400000000000000000000047671353170073200152470ustar00rootroot00000000000000"""hug/validate.py Defines hugs built-in validation methods Copyright (C) 2016 Timothy Edmund Crosley 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 __future__ import absolute_import def all(*validators): """Validation only succeeds if all passed in validators return no errors""" def validate_all(fields): for validator in validators: errors = validator(fields) if errors: return errors validate_all.__doc__ = " and ".join(validator.__doc__ for validator in validators) return validate_all def any(*validators): """If any of the specified validators pass the validation succeeds""" def validate_any(fields): errors = {} for validator in validators: validation_errors = validator(fields) if not validation_errors: return errors.update(validation_errors) return errors validate_any.__doc__ = " or ".join(validator.__doc__ for validator in validators) return validate_any def contains_one_of(*fields): """Enables ensuring that one of multiple optional fields is set""" message = "Must contain any one of the following fields: {0}".format(", ".join(fields)) def check_contains(endpoint_fields): for field in fields: if field in endpoint_fields: return errors = {} for field in fields: errors[field] = "one of these must have a value" return errors check_contains.__doc__ = message return check_contains hug-2.6.0/requirements/000077500000000000000000000000001353170073200150265ustar00rootroot00000000000000hug-2.6.0/requirements/build.txt000066400000000000000000000000501353170073200166610ustar00rootroot00000000000000-r build_common.txt marshmallow==2.18.1 hug-2.6.0/requirements/build_common.txt000066400000000000000000000002171353170073200202360ustar00rootroot00000000000000-r common.txt flake8==3.5.0 pytest-cov==2.7.1 pytest==4.6.3 python-coveralls==2.9.2 wheel==0.33.4 PyJWT==1.7.1 pytest-xdist==1.29.0 numpy<1.16 hug-2.6.0/requirements/build_style_tools.txt000066400000000000000000000002031353170073200213210ustar00rootroot00000000000000-r build_common.txt black==19.3b0 isort==4.3.20 pep8-naming==0.8.2 flake8-bugbear==19.3.0 vulture==1.0 bandit==1.6.1 safety==1.8.5 hug-2.6.0/requirements/build_windows.txt000066400000000000000000000001751353170073200204430ustar00rootroot00000000000000-r common.txt flake8==3.7.7 isort==4.3.20 marshmallow==2.18.1 pytest==4.6.3 wheel==0.33.4 pytest-xdist==1.29.0 numpy==1.15.4 hug-2.6.0/requirements/common.txt000066400000000000000000000000371353170073200170570ustar00rootroot00000000000000falcon==2.0.0 requests==2.22.0 hug-2.6.0/requirements/development.txt000066400000000000000000000003471353170073200201150ustar00rootroot00000000000000bumpversion==0.5.3 Cython==0.29.10 -r common.txt flake8==3.7.7 ipython==7.5.0 isort==4.3.20 pytest-cov==2.7.1 pytest==4.6.3 python-coveralls==2.9.2 tox==3.12.1 wheel pytest-xdist==1.29.0 marshmallow==2.18.1 ujson==1.35 numpy<1.16 hug-2.6.0/requirements/release.txt000066400000000000000000000000161353170073200172040ustar00rootroot00000000000000-r common.txt hug-2.6.0/scripts/000077500000000000000000000000001353170073200137725ustar00rootroot00000000000000hug-2.6.0/scripts/before_install.sh000077500000000000000000000013771353170073200173310ustar00rootroot00000000000000 #! /bin/bash echo $TRAVIS_OS_NAME if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then # Travis has an old version of pyenv by default, upgrade it brew update > /dev/null 2>&1 brew outdated pyenv || brew upgrade pyenv pyenv --version # Find the latest requested version of python case "$TOXENV" in py34) python_minor=4;; py35) python_minor=5;; py36) python_minor=6;; py36-marshmallow2) python_minor=6;; py36-marshmallow3) python_minor=6;; py37) python_minor=7;; esac latest_version=`pyenv install --list | grep -e "^[ ]*3\.$python_minor" | tail -1` pyenv install $latest_version pyenv local $latest_version fi hug-2.6.0/scripts/install.sh000066400000000000000000000004461353170073200160000ustar00rootroot00000000000000#! /bin/bash if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then # enable pyenv shims to activate the proper python version eval "$(pyenv init -)" # Log some information on the environment pyenv local which python which pip python --version python -m pip --version fi hug-2.6.0/setup.cfg000066400000000000000000000003551353170073200141270ustar00rootroot00000000000000[wheel] universal = 1 [flake8] ignore = F401,F403,E502,E123,E127,E128,E303,E713,E111,E241,E302,E121,E261,W391,E731,W503,E305 max-line-length = 120 [metadata] license_file = LICENSE [aliases] test=pytest [tool:pytest] addopts = tests hug-2.6.0/setup.py000077500000000000000000000077071353170073200140330ustar00rootroot00000000000000#!/usr/bin/env python """setup.py Defines the setup instructions for the hug framework Copyright (C) 2016 Timothy Edmund Crosley 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. """ import glob import os import sys from os import path from setuptools import Extension, setup MYDIR = path.abspath(os.path.dirname(__file__)) CYTHON = False JYTHON = "java" in sys.platform ext_modules = [] cmdclass = {} try: sys.pypy_version_info PYPY = True except AttributeError: PYPY = False if not PYPY and not JYTHON: if "--without-cython" in sys.argv: sys.argv.remove("--without-cython") CYTHON = False else: try: from Cython.Distutils import build_ext CYTHON = True except ImportError: CYTHON = False if CYTHON: def list_modules(dirname): filenames = glob.glob(path.join(dirname, "*.py")) module_names = [] for name in filenames: module, ext = path.splitext(path.basename(name)) if module != "__init__": module_names.append(module) return module_names ext_modules = [ Extension("hug." + ext, [path.join("hug", ext + ".py")]) for ext in list_modules(path.join(MYDIR, "hug")) ] cmdclass["build_ext"] = build_ext with open("README.md", encoding="utf-8") as f: # Loads in the README for PyPI long_description = f.read() setup( name="hug", version="2.6.0", description="A Python framework that makes developing APIs " "as simple as possible, but no simpler.", long_description=long_description, # PEP 566, the new PyPI, and setuptools>=38.6.0 make markdown possible long_description_content_type="text/markdown", author="Timothy Crosley", author_email="timothy.crosley@gmail.com", # These appear in the left hand side bar on PyPI url="https://github.com/hugapi/hug", project_urls={ "Documentation": "http://www.hug.rest/", "Gitter": "https://gitter.im/timothycrosley/hug", }, license="MIT", entry_points={"console_scripts": ["hug = hug:development_runner.hug.interface.cli"]}, packages=["hug"], requires=["falcon", "requests"], install_requires=["falcon==2.0.0", "requests"], setup_requires=["pytest-runner"], tests_require=["pytest", "mock", "marshmallow"], ext_modules=ext_modules, cmdclass=cmdclass, python_requires=">=3.5", keywords="Web, Python, Python3, Refactoring, REST, Framework, RPC", classifiers=[ "Development Status :: 6 - Mature", "Intended Audience :: Developers", "Natural Language :: English", "Environment :: Console", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries", "Topic :: Utilities", ], ) hug-2.6.0/tests/000077500000000000000000000000001353170073200134455ustar00rootroot00000000000000hug-2.6.0/tests/__init__.py000066400000000000000000000000001353170073200155440ustar00rootroot00000000000000hug-2.6.0/tests/conftest.py000066400000000000000000000001151353170073200156410ustar00rootroot00000000000000"""Configuration for test environment""" import sys from .fixtures import * hug-2.6.0/tests/constants.py000066400000000000000000000023771353170073200160440ustar00rootroot00000000000000"""tests/constants.py. Provides constants for the test runner. Copyright (C) 2016 Timothy Edmund Crosley 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. """ import os TEST_DIRECTORY = os.path.dirname(os.path.realpath(__file__)) BASE_DIRECTORY = os.path.realpath(os.path.join(TEST_DIRECTORY, "..")) hug-2.6.0/tests/data/000077500000000000000000000000001353170073200143565ustar00rootroot00000000000000hug-2.6.0/tests/data/index.html000066400000000000000000000000721353170073200163520ustar00rootroot00000000000000

Index Page

hug-2.6.0/tests/fixtures.py000066400000000000000000000016601353170073200156730ustar00rootroot00000000000000"""Defines fixtures that can be used to streamline tests and / or define dependencies""" from collections import namedtuple from random import randint import pytest import hug Routers = namedtuple("Routers", ["http", "local", "cli"]) class TestAPI(hug.API): pass @pytest.fixture def hug_api(): """Defines a dependency for and then includes a uniquely identified hug API for a single test case""" api = TestAPI("fake_api_{}".format(randint(0, 1000000))) api.route = Routers( hug.routing.URLRouter().api(api), hug.routing.LocalRouter().api(api), hug.routing.CLIRouter().api(api), ) return api @pytest.fixture def hug_api_error_exit_codes_enabled(): """ Defines a dependency for and then includes a uniquely identified hug API for a single test case with error exit codes enabled. """ return TestAPI("fake_api_{}".format(randint(0, 1000000)), cli_error_exit_codes=True) hug-2.6.0/tests/module_fake.py000066400000000000000000000030421353170073200162710ustar00rootroot00000000000000"""Fake HUG API module usable for testing importation of modules""" import hug class FakeException(BaseException): pass @hug.directive(apply_globally=False) def my_directive(default=None, **kwargs): """for testing""" return default @hug.default_input_format("application/made-up") def made_up_formatter(data): """for testing""" return data @hug.default_output_format() def output_formatter(data): """for testing""" return hug.output_format.json(data) @hug.get() def made_up_api(hug_my_directive=True): """for testing""" return hug_my_directive @hug.directive(apply_globally=True) def my_directive_global(default=None, **kwargs): """for testing""" return default @hug.default_input_format("application/made-up", apply_globally=True) def made_up_formatter_global(data): """for testing""" return data @hug.default_output_format(apply_globally=True) def output_formatter_global(data, request=None, response=None): """for testing""" return hug.output_format.json(data) @hug.request_middleware() def handle_request(request, response): """for testing""" return @hug.startup() def on_startup(api): """for testing""" return @hug.static() def static(): """for testing""" return ("",) @hug.sink("/all") def sink(path): """for testing""" return path @hug.exception(FakeException) def handle_exception(exception): """Handles the provided exception for testing""" return True @hug.not_found() def not_found_handler(): """for testing""" return True hug-2.6.0/tests/module_fake_http_and_cli.py000066400000000000000000000001111353170073200207730ustar00rootroot00000000000000import hug @hug.get() @hug.cli() def made_up_go(): return "Going!" hug-2.6.0/tests/module_fake_many_methods.py000066400000000000000000000004131353170073200210370ustar00rootroot00000000000000"""Fake HUG API module usable for testing importation of modules""" import hug @hug.get() def made_up_hello(): """GETting for science!""" return "hello from GET" @hug.post() def made_up_hello(): """POSTing for science!""" return "hello from POST" hug-2.6.0/tests/module_fake_post.py000066400000000000000000000002561353170073200173420ustar00rootroot00000000000000"""Fake HUG API module usable for testing importation of modules""" import hug @hug.post() def made_up_hello(): """POSTing for science!""" return "hello from POST" hug-2.6.0/tests/module_fake_simple.py000066400000000000000000000004661353170073200176510ustar00rootroot00000000000000"""Simple 1 endpoint Fake HUG API module usable for testing importation of modules""" import hug class FakeSimpleException(Exception): pass @hug.get() def made_up_hello(): """for science!""" return "hello" @hug.get("/exception") def made_up_exception(): raise FakeSimpleException("test") hug-2.6.0/tests/test_api.py000066400000000000000000000102731353170073200156320ustar00rootroot00000000000000"""tests/test_api.py. Tests to ensure the API object that stores the state of each individual hug endpoint works as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import pytest import hug api = hug.API(__name__) class TestAPI(object): """A collection of tests to ensure the hug API object interacts as expected""" def test_singleton(self): """Test to ensure there can only be one hug API per module""" assert hug.API(__name__) == api def test_context(self): """Test to ensure the hug singleton provides a global modifiable context""" assert not hasattr(hug.API(__name__), "_context") assert hug.API(__name__).context == {} assert hasattr(hug.API(__name__), "_context") def test_dynamic(self): """Test to ensure it's possible to dynamically create new modules to house APIs based on name alone""" new_api = hug.API("module_created_on_the_fly") assert new_api.module.__name__ == "module_created_on_the_fly" import module_created_on_the_fly assert module_created_on_the_fly assert module_created_on_the_fly.__hug__ == new_api def test_from_object(): """Test to ensure it's possible to rechieve an API singleton from an arbitrary object""" assert hug.api.from_object(TestAPI) == api def test_api_fixture(hug_api): """Ensure it's possible to dynamically insert a new hug API on demand""" assert isinstance(hug_api, hug.API) assert hug_api != api def test_anonymous(): """Ensure it's possible to create anonymous APIs""" assert hug.API() != hug.API() != api assert hug.API().module == None assert hug.API().name == "" assert hug.API(name="my_name").name == "my_name" assert hug.API(doc="Custom documentation").doc == "Custom documentation" def test_api_routes(hug_api): """Ensure http API can return a quick mapping all urls to method""" hug_api.http.base_url = "/root" @hug.get(api=hug_api) def my_route(): pass @hug.post(api=hug_api) def my_second_route(): pass @hug.cli(api=hug_api) def my_cli_command(): pass assert list(hug_api.http.urls()) == ["/root/my_route", "/root/my_second_route"] assert list(hug_api.http.handlers()) == [ my_route.interface.http, my_second_route.interface.http, ] assert list(hug_api.handlers()) == [ my_route.interface.http, my_second_route.interface.http, my_cli_command.interface.cli, ] def test_cli_interface_api_with_exit_codes(hug_api_error_exit_codes_enabled): api = hug_api_error_exit_codes_enabled @hug.object(api=api) class TrueOrFalse: @hug.object.cli def true(self): return True @hug.object.cli def false(self): return False api.cli(args=[None, "true"]) with pytest.raises(SystemExit): api.cli(args=[None, "false"]) def test_cli_interface_api_without_exit_codes(): @hug.object(api=api) class TrueOrFalse: @hug.object.cli def true(self): return True @hug.object.cli def false(self): return False api.cli(args=[None, "true"]) api.cli(args=[None, "false"]) hug-2.6.0/tests/test_async.py000066400000000000000000000065251353170073200162030ustar00rootroot00000000000000"""hug/test.py. Tests the support for asynchronous method using asyncio async def Copyright (C) 2016 Timothy Edmund Crosley 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. """ import asyncio import hug loop = asyncio.get_event_loop() api = hug.API(__name__) def test_basic_call_async(): """ The most basic Happy-Path test for Hug APIs using async """ @hug.call() async def hello_world(): return "Hello World!" assert loop.run_until_complete(hello_world()) == "Hello World!" def tested_nested_basic_call_async(): """Test to ensure the most basic call still works if applied to a method""" @hug.call() async def hello_world(self=None): return await nested_hello_world() @hug.local() async def nested_hello_world(self=None): return "Hello World!" assert hello_world.interface.http assert loop.run_until_complete(hello_world()) == "Hello World!" assert hug.test.get(api, "/hello_world").data == "Hello World!" def test_basic_call_on_method_async(): """Test to ensure the most basic call still works if applied to a method""" class API(object): @hug.call() async def hello_world(self=None): return "Hello World!" api_instance = API() assert api_instance.hello_world.interface.http assert loop.run_until_complete(api_instance.hello_world()) == "Hello World!" assert hug.test.get(api, "/hello_world").data == "Hello World!" def test_basic_call_on_method_through_api_instance_async(): """Test to ensure instance method calling via async works as expected""" class API(object): def hello_world(self): return "Hello World!" api_instance = API() @hug.call() async def hello_world(): return api_instance.hello_world() assert api_instance.hello_world() == "Hello World!" assert hug.test.get(api, "/hello_world").data == "Hello World!" def test_basic_call_on_method_registering_without_decorator_async(): """Test to ensure async methods can be used without decorator""" class API(object): def __init__(self): hug.call()(self.hello_world_method) async def hello_world_method(self): return "Hello World!" api_instance = API() assert loop.run_until_complete(api_instance.hello_world_method()) == "Hello World!" assert hug.test.get(api, "/hello_world_method").data == "Hello World!" hug-2.6.0/tests/test_authentication.py000066400000000000000000000233321353170073200201000ustar00rootroot00000000000000"""tests/test_authentication.py. Tests hugs built-in authentication helper methods Copyright (C) 2016 Timothy Edmund Crosley 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 base64 import b64encode from falcon import HTTPUnauthorized import hug api = hug.API(__name__) def test_basic_auth(): """Test to ensure hug provides basic_auth handler works as expected""" @hug.get(requires=hug.authentication.basic(hug.authentication.verify("Tim", "Custom password"))) def hello_world(): return "Hello world!" assert "401" in hug.test.get(api, "hello_world").status assert ( "401" in hug.test.get( api, "hello_world", headers={"Authorization": "Not correctly formed"} ).status ) assert "401" in hug.test.get(api, "hello_world", headers={"Authorization": "Nospaces"}).status assert ( "401" in hug.test.get( api, "hello_world", headers={"Authorization": "Basic VXNlcjE6bXlwYXNzd29yZA"} ).status ) token = b64encode("{0}:{1}".format("Tim", "Custom password").encode("utf8")).decode("utf8") assert ( hug.test.get(api, "hello_world", headers={"Authorization": "Basic {0}".format(token)}).data == "Hello world!" ) token = b"Basic " + b64encode("{0}:{1}".format("Tim", "Custom password").encode("utf8")) assert hug.test.get(api, "hello_world", headers={"Authorization": token}).data == "Hello world!" token = b"Basic " + b64encode("{0}:{1}".format("Tim", "Wrong password").encode("utf8")) assert "401" in hug.test.get(api, "hello_world", headers={"Authorization": token}).status custom_context = dict(custom="context", username="Tim", password="Custom password") @hug.context_factory() def create_test_context(*args, **kwargs): return custom_context @hug.delete_context() def delete_custom_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not errors context["exception"] = exception @hug.authentication.basic def context_basic_authentication(username, password, context): assert context == custom_context if username == context["username"] and password == context["password"]: return True @hug.get(requires=context_basic_authentication) def hello_context(): return "context!" assert "401" in hug.test.get(api, "hello_context").status assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] assert ( "401" in hug.test.get( api, "hello_context", headers={"Authorization": "Not correctly formed"} ).status ) assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] assert "401" in hug.test.get(api, "hello_context", headers={"Authorization": "Nospaces"}).status assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] assert ( "401" in hug.test.get( api, "hello_context", headers={"Authorization": "Basic VXNlcjE6bXlwYXNzd29yZA"} ).status ) assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] token = b64encode("{0}:{1}".format("Tim", "Custom password").encode("utf8")).decode("utf8") assert ( hug.test.get( api, "hello_context", headers={"Authorization": "Basic {0}".format(token)} ).data == "context!" ) assert not custom_context["exception"] del custom_context["exception"] token = b"Basic " + b64encode("{0}:{1}".format("Tim", "Custom password").encode("utf8")) assert hug.test.get(api, "hello_context", headers={"Authorization": token}).data == "context!" assert not custom_context["exception"] del custom_context["exception"] token = b"Basic " + b64encode("{0}:{1}".format("Tim", "Wrong password").encode("utf8")) assert "401" in hug.test.get(api, "hello_context", headers={"Authorization": token}).status assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] def test_api_key(): """Test the included api_key based header to ensure it works as expected to allow X-Api-Key based authentication""" @hug.authentication.api_key def api_key_authentication(api_key): if api_key == "Bacon": return "Timothy" @hug.get(requires=api_key_authentication) def hello_world(): return "Hello world!" assert hug.test.get(api, "hello_world", headers={"X-Api-Key": "Bacon"}).data == "Hello world!" assert "401" in hug.test.get(api, "hello_world").status assert "401" in hug.test.get(api, "hello_world", headers={"X-Api-Key": "Invalid"}).status custom_context = dict(custom="context") @hug.context_factory() def create_test_context(*args, **kwargs): return custom_context @hug.delete_context() def delete_custom_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not errors context["exception"] = exception @hug.authentication.api_key def context_api_key_authentication(api_key, context): assert context == custom_context if api_key == "Bacon": return "Timothy" @hug.get(requires=context_api_key_authentication) def hello_context_world(): return "Hello context world!" assert ( hug.test.get(api, "hello_context_world", headers={"X-Api-Key": "Bacon"}).data == "Hello context world!" ) assert not custom_context["exception"] del custom_context["exception"] assert "401" in hug.test.get(api, "hello_context_world").status assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] assert ( "401" in hug.test.get(api, "hello_context_world", headers={"X-Api-Key": "Invalid"}).status ) assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] def test_token_auth(): """Test JSON Web Token""" # generated with jwt.encode({'user': 'Timothy','data':'my data'}, 'super-secret-key-please-change', algorithm='HS256') precomptoken = ( "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoibXkgZGF0YSIsInVzZXIiOiJUaW1vdGh5In0." "8QqzQMJUTq0Dq7vHlnDjdoCKFPDAlvxGCpc_8XF41nI" ) @hug.authentication.token def token_authentication(token): if token == precomptoken: return "Timothy" @hug.get(requires=token_authentication) def hello_world(): return "Hello World!" assert ( hug.test.get(api, "hello_world", headers={"Authorization": precomptoken}).data == "Hello World!" ) assert "401" in hug.test.get(api, "hello_world").status assert "401" in hug.test.get(api, "hello_world", headers={"Authorization": "eyJhbGci"}).status custom_context = dict(custom="context") @hug.context_factory() def create_test_context(*args, **kwargs): return custom_context @hug.delete_context() def delete_custom_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not errors context["exception"] = exception @hug.authentication.token def context_token_authentication(token, context): assert context == custom_context if token == precomptoken: return "Timothy" @hug.get(requires=context_token_authentication) def hello_context_world(): return "Hello context!" assert ( hug.test.get(api, "hello_context_world", headers={"Authorization": precomptoken}).data == "Hello context!" ) assert not custom_context["exception"] del custom_context["exception"] assert "401" in hug.test.get(api, "hello_context_world").status assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] assert ( "401" in hug.test.get(api, "hello_context_world", headers={"Authorization": "eyJhbGci"}).status ) assert isinstance(custom_context["exception"], HTTPUnauthorized) del custom_context["exception"] def test_documentation_carry_over(): """Test to ensure documentation correctly carries over - to address issue #252""" authentication = hug.authentication.basic(hug.authentication.verify("User1", "mypassword")) assert authentication.__doc__ == "Basic HTTP Authentication" def test_missing_authenticator_docstring(): @hug.authentication.authenticator def custom_authenticator(*args, **kwargs): return None authentication = custom_authenticator(None) @hug.get(requires=authentication) def hello_world(): return "Hello World!" hug.test.get(api, "hello_world") hug-2.6.0/tests/test_context_factory.py000066400000000000000000000445211353170073200202770ustar00rootroot00000000000000import sys import pytest from marshmallow import Schema, fields from marshmallow.decorators import post_dump import hug module = sys.modules[__name__] class RequirementFailed(object): def __str__(self): return "requirement failed" class CustomException(Exception): pass class TestContextFactoryLocal(object): def test_lack_requirement(self): self.custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return self.custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == self.custom_context assert not exception assert not errors assert lacks_requirement assert isinstance(lacks_requirement, RequirementFailed) self.custom_context["launched_delete_context"] = True def test_local_requirement(**kwargs): assert "context" in kwargs assert kwargs["context"] == self.custom_context self.custom_context["launched_requirement"] = True return RequirementFailed() @hug.local(requires=test_local_requirement) def requirement_local_function(): self.custom_context["launched_local_function"] = True requirement_local_function() assert "launched_local_function" not in self.custom_context assert "launched_requirement" in self.custom_context assert "launched_delete_context" in self.custom_context def test_directive(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, **kwargs): pass @hug.directive() def custom_directive(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context return "custom" @hug.local() def directive_local_function(custom: custom_directive): assert custom == "custom" directive_local_function() def test_validation(self): custom_context = dict(test="context", not_valid_number=43) @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert errors assert not lacks_requirement custom_context["launched_delete_context"] = True def test_requirement(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context custom_context["launched_requirement"] = True return RequirementFailed() @hug.type(extend=hug.types.number, accept_context=True) def custom_number_test(value, context): assert context == custom_context if value == context["not_valid_number"]: raise ValueError("not valid number") return value @hug.local() def validation_local_function(value: custom_number_test): custom_context["launched_local_function"] = value validation_local_function(43) assert not "launched_local_function" in custom_context assert "launched_delete_context" in custom_context def test_transform(self): custom_context = dict(test="context", test_number=43) @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True class UserSchema(Schema): name = fields.Str() @post_dump() def check_context(self, data): assert self.context["test"] == "context" self.context["test_number"] += 1 @hug.local() def validation_local_function() -> UserSchema(): return {"name": "test"} validation_local_function() assert "test_number" in custom_context and custom_context["test_number"] == 44 assert "launched_delete_context" in custom_context def test_exception(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert exception assert isinstance(exception, CustomException) assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True @hug.local() def exception_local_function(): custom_context["launched_local_function"] = True raise CustomException() with pytest.raises(CustomException): exception_local_function() assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context def test_success(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True @hug.local() def success_local_function(): custom_context["launched_local_function"] = True success_local_function() assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context class TestContextFactoryCLI(object): def test_lack_requirement(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert lacks_requirement assert isinstance(lacks_requirement, RequirementFailed) custom_context["launched_delete_context"] = True def test_requirement(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context custom_context["launched_requirement"] = True return RequirementFailed() @hug.cli(requires=test_requirement) def requirement_local_function(): custom_context["launched_local_function"] = True hug.test.cli(requirement_local_function) assert "launched_local_function" not in custom_context assert "launched_requirement" in custom_context assert "launched_delete_context" in custom_context def test_directive(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, **kwargs): pass @hug.directive() def custom_directive(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context return "custom" @hug.cli() def directive_local_function(custom: custom_directive): assert custom == "custom" hug.test.cli(directive_local_function) def test_validation(self): custom_context = dict(test="context", not_valid_number=43) @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert not exception assert context == custom_context assert errors assert not lacks_requirement custom_context["launched_delete_context"] = True def test_requirement(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context custom_context["launched_requirement"] = True return RequirementFailed() @hug.type(extend=hug.types.number, accept_context=True) def new_custom_number_test(value, context): assert context == custom_context if value == context["not_valid_number"]: raise ValueError("not valid number") return value @hug.cli() def validation_local_function(value: hug.types.number): custom_context["launched_local_function"] = value return 0 with pytest.raises(SystemExit): hug.test.cli(validation_local_function, "xxx") assert "launched_local_function" not in custom_context assert "launched_delete_context" in custom_context def test_transform(self): custom_context = dict(test="context", test_number=43) @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert not exception assert context == custom_context assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True class UserSchema(Schema): name = fields.Str() @post_dump() def check_context(self, data): assert self.context["test"] == "context" self.context["test_number"] += 1 @hug.cli() def transform_cli_function() -> UserSchema(): custom_context["launched_cli_function"] = True return {"name": "test"} hug.test.cli(transform_cli_function) assert "launched_cli_function" in custom_context assert "launched_delete_context" in custom_context assert "test_number" in custom_context assert custom_context["test_number"] == 44 def test_exception(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert exception assert isinstance(exception, CustomException) assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True @hug.cli() def exception_local_function(): custom_context["launched_local_function"] = True raise CustomException() hug.test.cli(exception_local_function) assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context def test_success(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True @hug.cli() def success_local_function(): custom_context["launched_local_function"] = True hug.test.cli(success_local_function) assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context class TestContextFactoryHTTP(object): def test_lack_requirement(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert lacks_requirement custom_context["launched_delete_context"] = True def test_requirement(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context custom_context["launched_requirement"] = True return "requirement_failed" @hug.get("/requirement_function", requires=test_requirement) def requirement_http_function(): custom_context["launched_local_function"] = True hug.test.get(module, "/requirement_function") assert "launched_local_function" not in custom_context assert "launched_requirement" in custom_context assert "launched_delete_context" in custom_context def test_directive(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, **kwargs): pass @hug.directive() def custom_directive(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context return "custom" @hug.get("/directive_function") def directive_http_function(custom: custom_directive): assert custom == "custom" hug.test.get(module, "/directive_function") def test_validation(self): custom_context = dict(test="context", not_valid_number=43) @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert errors assert not lacks_requirement custom_context["launched_delete_context"] = True def test_requirement(**kwargs): assert "context" in kwargs assert kwargs["context"] == custom_context custom_context["launched_requirement"] = True return RequirementFailed() @hug.type(extend=hug.types.number, accept_context=True) def custom_number_test(value, context): assert context == custom_context if value == context["not_valid_number"]: raise ValueError("not valid number") return value @hug.get("/validation_function") def validation_http_function(value: custom_number_test): custom_context["launched_local_function"] = value hug.test.get(module, "/validation_function", 43) assert "launched_local_function " not in custom_context assert "launched_delete_context" in custom_context def test_transform(self): custom_context = dict(test="context", test_number=43) @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True class UserSchema(Schema): name = fields.Str() @post_dump() def check_context(self, data): assert self.context["test"] == "context" self.context["test_number"] += 1 @hug.get("/validation_function") def validation_http_function() -> UserSchema(): custom_context["launched_local_function"] = True hug.test.get(module, "/validation_function", 43) assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context assert "test_number" in custom_context assert custom_context["test_number"] == 44 def test_exception(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert exception assert isinstance(exception, CustomException) assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True @hug.get("/exception_function") def exception_http_function(): custom_context["launched_local_function"] = True raise CustomException() with pytest.raises(CustomException): hug.test.get(module, "/exception_function") assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context def test_success(self): custom_context = dict(test="context") @hug.context_factory() def return_context(**kwargs): return custom_context @hug.delete_context() def delete_context(context, exception=None, errors=None, lacks_requirement=None): assert context == custom_context assert not exception assert not errors assert not lacks_requirement custom_context["launched_delete_context"] = True @hug.get("/success_function") def success_http_function(): custom_context["launched_local_function"] = True hug.test.get(module, "/success_function") assert "launched_local_function" in custom_context assert "launched_delete_context" in custom_context hug-2.6.0/tests/test_coroutines.py000066400000000000000000000065611353170073200172600ustar00rootroot00000000000000"""hug/test.py. Tests the support for asynchronous method using asyncio coroutines Copyright (C) 2016 Timothy Edmund Crosley 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. """ import asyncio import hug loop = asyncio.get_event_loop() api = hug.API(__name__) def test_basic_call_coroutine(): """The most basic Happy-Path test for Hug APIs using async""" @hug.call() @asyncio.coroutine def hello_world(): return "Hello World!" assert loop.run_until_complete(hello_world()) == "Hello World!" def test_nested_basic_call_coroutine(): """The most basic Happy-Path test for Hug APIs using async""" @hug.call() @asyncio.coroutine def hello_world(): return getattr(asyncio, "ensure_future")(nested_hello_world()) @hug.local() @asyncio.coroutine def nested_hello_world(): return "Hello World!" assert loop.run_until_complete(hello_world()) == "Hello World!" def test_basic_call_on_method_coroutine(): """Test to ensure the most basic call still works if applied to a method""" class API(object): @hug.call() @asyncio.coroutine def hello_world(self=None): return "Hello World!" api_instance = API() assert api_instance.hello_world.interface.http assert loop.run_until_complete(api_instance.hello_world()) == "Hello World!" assert hug.test.get(api, "/hello_world").data == "Hello World!" def test_basic_call_on_method_through_api_instance_coroutine(): """Test to ensure the most basic call still works if applied to a method""" class API(object): def hello_world(self): return "Hello World!" api_instance = API() @hug.call() @asyncio.coroutine def hello_world(): return api_instance.hello_world() assert api_instance.hello_world() == "Hello World!" assert hug.test.get(api, "/hello_world").data == "Hello World!" def test_basic_call_on_method_registering_without_decorator_coroutine(): """Test to ensure instance method calling via async works as expected""" class API(object): def __init__(self): hug.call()(self.hello_world_method) @asyncio.coroutine def hello_world_method(self): return "Hello World!" api_instance = API() assert loop.run_until_complete(api_instance.hello_world_method()) == "Hello World!" assert hug.test.get(api, "/hello_world_method").data == "Hello World!" hug-2.6.0/tests/test_decorators.py000066400000000000000000001632141353170073200172320ustar00rootroot00000000000000"""tests/test_decorators.py. Tests the decorators that power hugs core functionality Copyright (C) 2016 Timothy Edmund Crosley 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. """ import asyncio import json import os import sys from collections import namedtuple from unittest import mock import falcon import marshmallow import pytest import requests from falcon.testing import StartResponseMock, create_environ from marshmallow import ValidationError import hug from hug.exceptions import InvalidTypeData from .constants import BASE_DIRECTORY api = hug.API(__name__) module = sys.modules[__name__] # Fix flake8 undefined names (F821) __hug__ = __hug__ # noqa __hug_wsgi__ = __hug_wsgi__ # noqa MARSHMALLOW_MAJOR_VERSION = marshmallow.__version_info__[0] def test_basic_call(): """The most basic Happy-Path test for Hug APIs""" @hug.call() def hello_world(): return "Hello World!" assert hello_world() == "Hello World!" assert hello_world.interface.http assert hug.test.get(api, "/hello_world").data == "Hello World!" assert hug.test.get(module, "/hello_world").data == "Hello World!" def test_basic_call_on_method(hug_api): """Test to ensure the most basic call still works if applied to a method""" class API(object): @hug.call(api=hug_api) def hello_world(self=None): return "Hello World!" api_instance = API() assert api_instance.hello_world.interface.http assert api_instance.hello_world() == "Hello World!" assert hug.test.get(hug_api, "/hello_world").data == "Hello World!" class API(object): def hello_world(self): return "Hello World!" api_instance = API() @hug.call(api=hug_api) def hello_world(): return api_instance.hello_world() assert api_instance.hello_world() == "Hello World!" assert hug.test.get(hug_api, "/hello_world").data == "Hello World!" class API(object): def __init__(self): hug.call(api=hug_api)(self.hello_world_method) def hello_world_method(self): return "Hello World!" api_instance = API() assert api_instance.hello_world_method() == "Hello World!" assert hug.test.get(hug_api, "/hello_world_method").data == "Hello World!" def test_single_parameter(hug_api): """Test that an api with a single parameter interacts as desired""" @hug.call(api=hug_api) def echo(text): return text assert echo("Embrace") == "Embrace" assert echo.interface.http with pytest.raises(TypeError): echo() assert hug.test.get(hug_api, "echo", text="Hello").data == "Hello" assert "required" in hug.test.get(hug_api, "/echo").data["errors"]["text"].lower() def test_on_invalid_transformer(): """Test to ensure it is possible to transform data when data is invalid""" @hug.call(on_invalid=lambda data: "error") def echo(text): return text assert hug.test.get(api, "/echo").data == "error" def handle_error(data, request, response): return "errored" @hug.call(on_invalid=handle_error) def echo2(text): return text assert hug.test.get(api, "/echo2").data == "errored" def test_on_invalid_format(): """Test to ensure it's possible to change the format based on a validation error""" @hug.get(output_invalid=hug.output_format.json, output=hug.output_format.file) def echo(text): return text assert isinstance(hug.test.get(api, "/echo").data, dict) def smart_output_type(response, request): if response and request: return "application/json" @hug.format.content_type(smart_output_type) def output_formatter(data, request, response): return hug.output_format.json((data, request and True, response and True)) @hug.get(output_invalid=output_formatter, output=hug.output_format.file) def echo2(text): return text assert isinstance(hug.test.get(api, "/echo2").data, (list, tuple)) def test_smart_redirect_routing(): """Test to ensure you can easily redirect to another method without an actual redirect""" @hug.get() def implementation_1(): return 1 @hug.get() def implementation_2(): return 2 @hug.get() def smart_route(implementation: int): if implementation == 1: return implementation_1 elif implementation == 2: return implementation_2 else: return "NOT IMPLEMENTED" assert hug.test.get(api, "smart_route", implementation=1).data == 1 assert hug.test.get(api, "smart_route", implementation=2).data == 2 assert hug.test.get(api, "smart_route", implementation=3).data == "NOT IMPLEMENTED" def test_custom_url(): """Test to ensure that it's possible to have a route that differs from the function name""" @hug.call("/custom_route") def method_name(): return "works" assert hug.test.get(api, "custom_route").data == "works" def test_api_auto_initiate(): """Test to ensure that Hug automatically exposes a wsgi server method""" assert isinstance( __hug_wsgi__(create_environ("/non_existant"), StartResponseMock()), (list, tuple) ) def test_parameters(): """Tests to ensure that Hug can easily handle multiple parameters with multiple types""" @hug.call() def multiple_parameter_types( start, middle: hug.types.text, end: hug.types.number = 5, **kwargs ): return "success" assert ( hug.test.get(api, "multiple_parameter_types", start="start", middle="middle", end=7).data == "success" ) assert ( hug.test.get(api, "multiple_parameter_types", start="start", middle="middle").data == "success" ) assert ( hug.test.get( api, "multiple_parameter_types", start="start", middle="middle", other="yo" ).data == "success" ) nan_test = hug.test.get( api, "multiple_parameter_types", start="start", middle="middle", end="NAN" ).data assert "Invalid" in nan_test["errors"]["end"] def test_raise_on_invalid(): """Test to ensure hug correctly respects a request to allow validations errors to pass through as exceptions""" @hug.get(raise_on_invalid=True) def my_handler(argument_1: int): return True with pytest.raises(Exception): hug.test.get(api, "my_handler", argument_1="hi") assert hug.test.get(api, "my_handler", argument_1=1) def test_range_request(): """Test to ensure that requesting a range works as expected""" @hug.get(output=hug.output_format.png_image) def image(): return "artwork/logo.png" assert hug.test.get(api, "image", headers={"range": "bytes=0-100"}) assert hug.test.get(api, "image", headers={"range": "bytes=0--1"}) def test_parameters_override(): """Test to ensure the parameters override is handled as expected""" @hug.get(parameters=("parameter1", "parameter2")) def test_call(**kwargs): return kwargs assert hug.test.get(api, "test_call", parameter1="one", parameter2="two").data == { "parameter1": "one", "parameter2": "two", } def test_parameter_injection(): """Tests that hug correctly auto injects variables such as request and response""" @hug.call() def inject_request(request): return request and "success" assert hug.test.get(api, "inject_request").data == "success" @hug.call() def inject_response(response): return response and "success" assert hug.test.get(api, "inject_response").data == "success" @hug.call() def inject_both(request, response): return request and response and "success" assert hug.test.get(api, "inject_both").data == "success" @hug.call() def wont_appear_in_kwargs(**kwargs): return "request" not in kwargs and "response" not in kwargs and "success" assert hug.test.get(api, "wont_appear_in_kwargs").data == "success" def test_method_routing(): """Test that all hugs HTTP routers correctly route methods to the correct handler""" @hug.get() def method_get(): return "GET" @hug.post() def method_post(): return "POST" @hug.connect() def method_connect(): return "CONNECT" @hug.delete() def method_delete(): return "DELETE" @hug.options() def method_options(): return "OPTIONS" @hug.put() def method_put(): return "PUT" @hug.trace() def method_trace(): return "TRACE" assert hug.test.get(api, "method_get").data == "GET" assert hug.test.post(api, "method_post").data == "POST" assert hug.test.connect(api, "method_connect").data == "CONNECT" assert hug.test.delete(api, "method_delete").data == "DELETE" assert hug.test.options(api, "method_options").data == "OPTIONS" assert hug.test.put(api, "method_put").data == "PUT" assert hug.test.trace(api, "method_trace").data == "TRACE" @hug.call(accept=("GET", "POST")) def accepts_get_and_post(): return "success" assert hug.test.get(api, "accepts_get_and_post").data == "success" assert hug.test.post(api, "accepts_get_and_post").data == "success" assert "method not allowed" in hug.test.trace(api, "accepts_get_and_post").status.lower() def test_not_found(hug_api): """Test to ensure the not_found decorator correctly routes 404s to the correct handler""" @hug.not_found(api=hug_api) def not_found_handler(): return "Not Found" result = hug.test.get(hug_api, "/does_not_exist/yet") assert result.data == "Not Found" assert result.status == falcon.HTTP_NOT_FOUND @hug.not_found(versions=10, api=hug_api) # noqa def not_found_handler(response): response.status = falcon.HTTP_OK return {"look": "elsewhere"} result = hug.test.get(hug_api, "/v10/does_not_exist/yet") assert result.data == {"look": "elsewhere"} assert result.status == falcon.HTTP_OK result = hug.test.get(hug_api, "/does_not_exist/yet") assert result.data == "Not Found" assert result.status == falcon.HTTP_NOT_FOUND hug_api.http.output_format = hug.output_format.text result = hug.test.get(hug_api, "/v10/does_not_exist/yet") assert result.data == "{'look': 'elsewhere'}" def test_not_found_with_extended_api(): """Test to ensure the not_found decorator works correctly when the API is extended""" @hug.extend_api() def extend_with(): import tests.module_fake return (tests.module_fake,) assert hug.test.get(api, "/does_not_exist/yet").data is True def test_versioning(): """Ensure that Hug correctly routes API functions based on version""" @hug.get("/echo") def echo(text): return "Not Implemented" @hug.get("/echo", versions=1) # noqa def echo(text): return text @hug.get("/echo", versions=range(2, 4)) # noqa def echo(text): return "Echo: {text}".format(**locals()) @hug.get("/echo", versions=7) # noqa def echo(text, api_version): return api_version @hug.get("/echo", versions="8") # noqa def echo(text, api_version): return api_version @hug.get("/echo", versions=False) # noqa def echo(text): return "No Versions" with pytest.raises(ValueError): @hug.get("/echo", versions="eight") # noqa def echo(text, api_version): return api_version assert hug.test.get(api, "v1/echo", text="hi").data == "hi" assert hug.test.get(api, "v2/echo", text="hi").data == "Echo: hi" assert hug.test.get(api, "v3/echo", text="hi").data == "Echo: hi" assert hug.test.get(api, "echo", text="hi", api_version=3).data == "Echo: hi" assert hug.test.get(api, "echo", text="hi", headers={"X-API-VERSION": "3"}).data == "Echo: hi" assert hug.test.get(api, "v4/echo", text="hi").data == "Not Implemented" assert hug.test.get(api, "v7/echo", text="hi").data == 7 assert hug.test.get(api, "v8/echo", text="hi").data == 8 assert hug.test.get(api, "echo", text="hi").data == "No Versions" assert ( hug.test.get(api, "echo", text="hi", api_version=3, body={"api_vertion": 4}).data == "Echo: hi" ) with pytest.raises(ValueError): hug.test.get(api, "v4/echo", text="hi", api_version=3) def test_multiple_version_injection(): """Test to ensure that the version injected sticks when calling other functions within an API""" @hug.get(versions=(1, 2, None)) def my_api_function(hug_api_version): return hug_api_version assert hug.test.get(api, "v1/my_api_function").data == 1 assert hug.test.get(api, "v2/my_api_function").data == 2 assert hug.test.get(api, "v3/my_api_function").data == 3 @hug.get(versions=(None, 1)) @hug.local(version=1) def call_other_function(hug_current_api): return hug_current_api.my_api_function() assert hug.test.get(api, "v1/call_other_function").data == 1 assert call_other_function() == 1 @hug.get(versions=1) @hug.local(version=1) def one_more_level_of_indirection(hug_current_api): return hug_current_api.call_other_function() assert hug.test.get(api, "v1/one_more_level_of_indirection").data == 1 assert one_more_level_of_indirection() == 1 def test_json_auto_convert(): """Test to ensure all types of data correctly auto convert into json""" @hug.get("/test_json") def test_json(text): return text assert hug.test.get(api, "test_json", body={"text": "value"}).data == "value" @hug.get("/test_json_body") def test_json_body(body): return body assert hug.test.get(api, "test_json_body", body=["value1", "value2"]).data == [ "value1", "value2", ] @hug.get(parse_body=False) def test_json_body_stream_only(body=None): return body assert hug.test.get(api, "test_json_body_stream_only", body=["value1", "value2"]).data is None def test_error_handling(): """Test to ensure Hug correctly handles Falcon errors that are thrown during processing""" @hug.get() def test_error(): raise falcon.HTTPInternalServerError("Failed", "For Science!") response = hug.test.get(api, "test_error") assert "errors" in response.data assert response.data["errors"]["Failed"] == "For Science!" def test_error_handling_builtin_exception(): """Test to ensure built in exception types errors are handled as expected""" def raise_error(value): raise KeyError("Invalid value") @hug.get() def test_error(data: raise_error): return True response = hug.test.get(api, "test_error", data=1) assert "errors" in response.data assert response.data["errors"]["data"] == "Invalid value" def test_error_handling_custom(): """Test to ensure custom exceptions work as expected""" class Error(Exception): def __str__(self): return "Error" def raise_error(value): raise Error() @hug.get() def test_error(data: raise_error): return True response = hug.test.get(api, "test_error", data=1) assert "errors" in response.data assert response.data["errors"]["data"] == "Error" def test_return_modifer(): """Ensures you can modify the output of a HUG API using -> annotation""" @hug.get() def hello() -> lambda data: "Hello {0}!".format(data): return "world" assert hug.test.get(api, "hello").data == "Hello world!" assert hello() == "world" @hug.get(transform=lambda data: "Goodbye {0}!".format(data)) def hello() -> lambda data: "Hello {0}!".format(data): return "world" assert hug.test.get(api, "hello").data == "Goodbye world!" assert hello() == "world" @hug.get() def hello() -> str: return "world" assert hug.test.get(api, "hello").data == "world" assert hello() == "world" @hug.get(transform=False) def hello() -> lambda data: "Hello {0}!".format(data): return "world" assert hug.test.get(api, "hello").data == "world" assert hello() == "world" def transform_with_request_data(data, request, response): return (data, request and True, response and True) @hug.get(transform=transform_with_request_data) def hello(): return "world" response = hug.test.get(api, "hello") assert response.data == ["world", True, True] def test_custom_deserializer_support(): """Ensure that custom desirializers work as expected""" class CustomDeserializer(object): def from_string(self, string): return "custom {}".format(string) @hug.get() def test_custom_deserializer(text: CustomDeserializer()): return text assert hug.test.get(api, "test_custom_deserializer", text="world").data == "custom world" @pytest.mark.skipif(MARSHMALLOW_MAJOR_VERSION != 2, reason="This test is for marshmallow 2 only") def test_marshmallow2_support(): """Ensure that you can use Marshmallow style objects to control input and output validation and transformation""" MarshalResult = namedtuple("MarshalResult", ["data", "errors"]) class MarshmallowStyleObject(object): def dump(self, item): if item == "bad": return MarshalResult("", "problems") return MarshalResult("Dump Success", {}) def load(self, item): return ("Load Success", None) def loads(self, item): return self.load(item) schema = MarshmallowStyleObject() @hug.get() def test_marshmallow_style() -> schema: return "world" assert hug.test.get(api, "test_marshmallow_style").data == "Dump Success" assert test_marshmallow_style() == "world" @hug.get() def test_marshmallow_style_error() -> schema: return "bad" with pytest.raises(InvalidTypeData): hug.test.get(api, "test_marshmallow_style_error") @hug.get() def test_marshmallow_input(item: schema): return item assert hug.test.get(api, "test_marshmallow_input", item="bacon").data == "Load Success" assert test_marshmallow_style() == "world" class MarshmallowStyleObjectWithError(object): def dump(self, item): return "Dump Success" def load(self, item): return ("Load Success", {"type": "invalid"}) def loads(self, item): return self.load(item) schema = MarshmallowStyleObjectWithError() @hug.get() def test_marshmallow_input2(item: schema): return item assert hug.test.get(api, "test_marshmallow_input2", item="bacon").data == { "errors": {"item": {"type": "invalid"}} } class MarshmallowStyleField(object): def deserialize(self, value): return str(value) @hug.get() def test_marshmallow_input_field(item: MarshmallowStyleField()): return item assert hug.test.get(api, "test_marshmallow_input_field", item=1).data == "1" @pytest.mark.skipif(MARSHMALLOW_MAJOR_VERSION != 3, reason="This test is for marshmallow 3 only") def test_marshmallow3_support(): """Ensure that you can use Marshmallow style objects to control input and output validation and transformation""" class MarshmallowStyleObject(object): def dump(self, item): if item == "bad": raise ValidationError("problems") return "Dump Success" def load(self, item): return "Load Success" def loads(self, item): return self.load(item) schema = MarshmallowStyleObject() @hug.get() def test_marshmallow_style() -> schema: return "world" assert hug.test.get(api, "test_marshmallow_style").data == "Dump Success" assert test_marshmallow_style() == "world" @hug.get() def test_marshmallow_style_error() -> schema: return "bad" with pytest.raises(InvalidTypeData): hug.test.get(api, "test_marshmallow_style_error") @hug.get() def test_marshmallow_input(item: schema): return item assert hug.test.get(api, "test_marshmallow_input", item="bacon").data == "Load Success" assert test_marshmallow_style() == "world" class MarshmallowStyleObjectWithError(object): def dump(self, item): return "Dump Success" def load(self, item): raise ValidationError({"type": "invalid"}) def loads(self, item): return self.load(item) schema = MarshmallowStyleObjectWithError() @hug.get() def test_marshmallow_input2(item: schema): return item assert hug.test.get(api, "test_marshmallow_input2", item="bacon").data == { "errors": {"item": {"type": "invalid"}} } class MarshmallowStyleField(object): def deserialize(self, value): return str(value) @hug.get() def test_marshmallow_input_field(item: MarshmallowStyleField()): return item assert hug.test.get(api, "test_marshmallow_input_field", item=1).data == "1" def test_stream_return(): """Test to ensure that its valid for a hug API endpoint to return a stream""" @hug.get(output=hug.output_format.text) def test(): return open(os.path.join(BASE_DIRECTORY, "README.md"), "rb") assert "hug" in hug.test.get(api, "test").data def test_smart_outputter(): """Test to ensure that the output formatter can accept request and response arguments""" def smart_output_type(response, request): if response and request: return "application/json" @hug.format.content_type(smart_output_type) def output_formatter(data, request, response): return hug.output_format.json((data, request and True, response and True)) @hug.get(output=output_formatter) def test(): return True assert hug.test.get(api, "test").data == [True, True, True] @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_output_format(hug_api): """Test to ensure it's possible to quickly change the default hug output format""" old_formatter = api.http.output_format @hug.default_output_format() def augmented(data): return hug.output_format.json(["Augmented", data]) @hug.cli() @hug.get(suffixes=(".js", "/js"), prefixes="/text") def hello(): return "world" assert hug.test.get(api, "hello").data == ["Augmented", "world"] assert hug.test.get(api, "hello.js").data == ["Augmented", "world"] assert hug.test.get(api, "hello/js").data == ["Augmented", "world"] assert hug.test.get(api, "text/hello").data == ["Augmented", "world"] assert hug.test.cli("hello", api=api) == "world" @hug.default_output_format(cli=True, http=False, api=hug_api) def augmented(data): return hug.output_format.json(["Augmented", data]) @hug.cli(api=hug_api) def hello(): return "world" assert hug.test.cli("hello", api=hug_api) == ["Augmented", "world"] @hug.default_output_format(cli=True, http=False, api=hug_api, apply_globally=True) def augmented(data): return hug.output_format.json(["Augmented2", data]) @hug.cli(api=api) def hello(): return "world" assert hug.test.cli("hello", api=api) == ["Augmented2", "world"] hug.defaults.cli_output_format = hug.output_format.text @hug.default_output_format() def jsonify(data): return hug.output_format.json(data) api.http.output_format = hug.output_format.text @hug.get() def my_method(): return {"Should": "work"} assert hug.test.get(api, "my_method").data == "{'Should': 'work'}" api.http.output_format = old_formatter @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_input_format(): """Test to ensure it's possible to quickly change the default hug output format""" old_format = api.http.input_format("application/json") api.http.set_input_format("application/json", lambda a, **headers: {"no": "relation"}) @hug.get() def hello(body): return body assert hug.test.get(api, "hello", body={"should": "work"}).data == {"no": "relation"} @hug.get() def hello2(body): return body assert not hug.test.get(api, "hello2").data api.http.set_input_format("application/json", old_format) @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_specific_input_format(): """Test to ensure the input formatter can be specified""" @hug.get(inputs={"application/json": lambda a, **headers: "formatted"}) def hello(body): return body assert hug.test.get(api, "hello", body={"should": "work"}).data == "formatted" @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_content_type_with_parameter(): """Test a Content-Type with parameter as `application/json charset=UTF-8` as described in https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7""" @hug.get() def demo(body): return body assert ( hug.test.get(api, "demo", body={}, headers={"content-type": "application/json"}).data == {} ) assert ( hug.test.get( api, "demo", body={}, headers={"content-type": "application/json; charset=UTF-8"} ).data == {} ) @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_middleware(): """Test to ensure the basic concept of a middleware works as expected""" @hug.request_middleware() def proccess_data(request, response): request.env["SERVER_NAME"] = "Bacon" @hug.response_middleware() def proccess_data2(request, response, resource): response.set_header("Bacon", "Yumm") @hug.reqresp_middleware() def process_data3(request): request.env["MEET"] = "Ham" response, resource = yield request response.set_header("Ham", "Buu!!") yield response @hug.get() def hello(request): return [request.env["SERVER_NAME"], request.env["MEET"]] result = hug.test.get(api, "hello") assert result.data == ["Bacon", "Ham"] assert result.headers_dict["Bacon"] == "Yumm" assert result.headers_dict["Ham"] == "Buu!!" def test_requires(): """Test to ensure only if requirements successfully keep calls from happening""" def user_is_not_tim(request, response, **kwargs): if request.headers.get("USER", "") != "Tim": return True return "Unauthorized" @hug.get(requires=user_is_not_tim) def hello(request): return "Hi!" assert hug.test.get(api, "hello").data == "Hi!" assert hug.test.get(api, "hello", headers={"USER": "Tim"}).data == "Unauthorized" def test_extending_api(): """Test to ensure it's possible to extend the current API from an external file""" @hug.extend_api("/fake") def extend_with(): import tests.module_fake return (tests.module_fake,) @hug.get("/fake/error") def my_error(): import tests.module_fake raise tests.module_fake.FakeException() assert hug.test.get(api, "fake/made_up_api").data assert hug.test.get(api, "fake/error").data == True def test_extending_api_simple(): """Test to ensure it's possible to extend the current API from an external file with just one API endpoint""" @hug.extend_api("/fake_simple") def extend_with(): import tests.module_fake_simple return (tests.module_fake_simple,) assert hug.test.get(api, "fake_simple/made_up_hello").data == "hello" def test_extending_api_with_exception_handler(): """Test to ensure it's possible to extend the current API from an external file""" from tests.module_fake_simple import FakeSimpleException @hug.exception(FakeSimpleException) def handle_exception(exception): return "it works!" @hug.extend_api("/fake_simple") def extend_with(): import tests.module_fake_simple return (tests.module_fake_simple,) assert hug.test.get(api, "/fake_simple/exception").data == "it works!" def test_extending_api_with_base_url(): """Test to ensure it's possible to extend the current API with a specified base URL""" @hug.extend_api("/fake", base_url="/api") def extend_with(): import tests.module_fake return (tests.module_fake,) assert hug.test.get(api, "/api/v1/fake/made_up_api").data def test_extending_api_with_same_path_under_different_base_url(): """Test to ensure it's possible to extend the current API with the same path under a different base URL""" @hug.get() def made_up_hello(): return "hi" @hug.extend_api(base_url="/api") def extend_with(): import tests.module_fake_simple return (tests.module_fake_simple,) assert hug.test.get(api, "/made_up_hello").data == "hi" assert hug.test.get(api, "/api/made_up_hello").data == "hello" def test_extending_api_with_methods_in_one_module(): """Test to ensure it's possible to extend the current API with HTTP methods for a view in one module""" @hug.extend_api(base_url="/get_and_post") def extend_with(): import tests.module_fake_many_methods return (tests.module_fake_many_methods,) assert hug.test.get(api, "/get_and_post/made_up_hello").data == "hello from GET" assert hug.test.post(api, "/get_and_post/made_up_hello").data == "hello from POST" def test_extending_api_with_methods_in_different_modules(): """Test to ensure it's possible to extend the current API with HTTP methods for a view in different modules""" @hug.extend_api(base_url="/get_and_post") def extend_with(): import tests.module_fake_simple, tests.module_fake_post return (tests.module_fake_simple, tests.module_fake_post) assert hug.test.get(api, "/get_and_post/made_up_hello").data == "hello" assert hug.test.post(api, "/get_and_post/made_up_hello").data == "hello from POST" def test_extending_api_with_http_and_cli(): """Test to ensure it's possible to extend the current API so both HTTP and CLI APIs are extended""" import tests.module_fake_http_and_cli @hug.extend_api(base_url="/api") def extend_with(): return (tests.module_fake_http_and_cli,) assert hug.test.get(api, "/api/made_up_go").data == "Going!" assert tests.module_fake_http_and_cli.made_up_go() == "Going!" assert hug.test.cli("made_up_go", api=api) # Should be able to apply a prefix when extending CLI APIs @hug.extend_api(command_prefix="prefix_", http=False) def extend_with(): return (tests.module_fake_http_and_cli,) assert hug.test.cli("prefix_made_up_go", api=api) # OR provide a sub command use to reference the commands @hug.extend_api(sub_command="sub_api", http=False) def extend_with(): return (tests.module_fake_http_and_cli,) # But not both with pytest.raises(ValueError): @hug.extend_api(sub_command="sub_api", command_prefix="api_", http=False) def extend_with(): return (tests.module_fake_http_and_cli,) def test_extending_api_with_http_and_cli_sub_module(): """Test to ensure it's possible to extend the current API so both HTTP and CLI APIs are extended""" import tests.module_fake_http_and_cli @hug.extend_api(base_url="/api") def extend_with(): return (tests.module_fake_http_and_cli,) assert hug.test.get(api, "/api/made_up_go").data == "Going!" assert tests.module_fake_http_and_cli.made_up_go() == "Going!" assert hug.test.cli("made_up_go", api=api) def test_cli(): """Test to ensure the CLI wrapper works as intended""" @hug.cli("command", "1.0.0", output=str) def cli_command(name: str, value: int): return (name, value) assert cli_command("Testing", 1) == ("Testing", 1) assert hug.test.cli(cli_command, "Bob", 5) == ("Bob", 5) def test_cli_requires(): """Test to ensure your can add requirements to a CLI""" def requires_fail(**kwargs): return {"requirements": "not met"} @hug.cli(output=str, requires=requires_fail) def cli_command(name: str, value: int): return (name, value) assert cli_command("Testing", 1) == ("Testing", 1) assert hug.test.cli(cli_command, "Testing", 1) == {"requirements": "not met"} def test_cli_validation(): """Test to ensure your can add custom validation to a CLI""" def contains_either(fields): if not fields.get("name", "") and not fields.get("value", 0): return {"name": "must be defined", "value": "must be defined"} @hug.cli(output=str, validate=contains_either) def cli_command(name: str = "", value: int = 0): return (name, value) assert cli_command("Testing", 1) == ("Testing", 1) assert hug.test.cli(cli_command) == {"name": "must be defined", "value": "must be defined"} assert hug.test.cli(cli_command, name="Testing") == ("Testing", 0) def test_cli_with_defaults(): """Test to ensure CLIs work correctly with default values""" @hug.cli() def happy(name: str, age: int, birthday: bool = False): if birthday: return "Happy {age} birthday {name}!".format(**locals()) else: return "{name} is {age} years old".format(**locals()) assert happy("Hug", 1) == "Hug is 1 years old" assert happy("Hug", 1, True) == "Happy 1 birthday Hug!" assert hug.test.cli(happy, "Bob", 5) == "Bob is 5 years old" assert hug.test.cli(happy, "Bob", 5, birthday=True) == "Happy 5 birthday Bob!" def test_cli_with_hug_types(): """Test to ensure CLIs work as expected when using hug types""" @hug.cli() def happy(name: hug.types.text, age: hug.types.number, birthday: hug.types.boolean = False): if birthday: return "Happy {age} birthday {name}!".format(**locals()) else: return "{name} is {age} years old".format(**locals()) assert happy("Hug", 1) == "Hug is 1 years old" assert happy("Hug", 1, True) == "Happy 1 birthday Hug!" assert hug.test.cli(happy, "Bob", 5) == "Bob is 5 years old" assert hug.test.cli(happy, "Bob", 5, birthday=True) == "Happy 5 birthday Bob!" @hug.cli() def succeed(success: hug.types.smart_boolean = False): if success: return "Yes!" else: return "No :(" assert hug.test.cli(succeed) == "No :(" assert hug.test.cli(succeed, success=True) == "Yes!" assert "succeed" in str(__hug__.cli) @hug.cli() def succeed(success: hug.types.smart_boolean = True): if success: return "Yes!" else: return "No :(" assert hug.test.cli(succeed) == "Yes!" assert hug.test.cli(succeed, success="false") == "No :(" @hug.cli() def all_the(types: hug.types.multiple = []): return types or ["nothing_here"] assert hug.test.cli(all_the) == ["nothing_here"] assert hug.test.cli(all_the, types=("one", "two", "three")) == ["one", "two", "three"] @hug.cli() def all_the(types: hug.types.multiple): return types or ["nothing_here"] assert hug.test.cli(all_the) == ["nothing_here"] assert hug.test.cli(all_the, "one", "two", "three") == ["one", "two", "three"] @hug.cli() def one_of(value: hug.types.one_of(["one", "two"]) = "one"): return value assert hug.test.cli(one_of, value="one") == "one" assert hug.test.cli(one_of, value="two") == "two" def test_cli_with_conflicting_short_options(): """Test to ensure that it's possible to expose a CLI with the same first few letters in option""" @hug.cli() def test(abe1="Value", abe2="Value2", helper=None): return (abe1, abe2) assert test() == ("Value", "Value2") assert test("hi", "there") == ("hi", "there") assert hug.test.cli(test) == ("Value", "Value2") assert hug.test.cli(test, abe1="hi", abe2="there") == ("hi", "there") def test_cli_with_directives(): """Test to ensure it's possible to use directives with hug CLIs""" @hug.cli() @hug.local() def test(hug_timer): return float(hug_timer) assert isinstance(test(), float) assert test(hug_timer=4) == 4 assert isinstance(hug.test.cli(test), float) def test_cli_with_class_directives(): @hug.directive() class ClassDirective(object): def __init__(self, *args, **kwargs): self.test = 1 @hug.cli() @hug.local(skip_directives=False) def test(class_directive: ClassDirective): return class_directive.test assert test() == 1 assert hug.test.cli(test) == 1 class TestObject(object): is_cleanup_launched = False last_exception = None @hug.directive() class ClassDirectiveWithCleanUp(object): def __init__(self, *args, **kwargs): self.test_object = TestObject def cleanup(self, exception): self.test_object.is_cleanup_launched = True self.test_object.last_exception = exception @hug.cli() @hug.local(skip_directives=False) def test2(class_directive: ClassDirectiveWithCleanUp): return class_directive.test_object.is_cleanup_launched assert not hug.test.cli(test2) # cleanup should be launched after running command assert TestObject.is_cleanup_launched assert TestObject.last_exception is None TestObject.is_cleanup_launched = False TestObject.last_exception = None assert not test2() assert TestObject.is_cleanup_launched assert TestObject.last_exception is None @hug.cli() @hug.local(skip_directives=False) def test_with_attribute_error(class_directive: ClassDirectiveWithCleanUp): raise class_directive.test_object2 hug.test.cli(test_with_attribute_error) assert TestObject.is_cleanup_launched assert isinstance(TestObject.last_exception, AttributeError) TestObject.is_cleanup_launched = False TestObject.last_exception = None try: test_with_attribute_error() assert False except AttributeError: assert True assert TestObject.is_cleanup_launched assert isinstance(TestObject.last_exception, AttributeError) def test_cli_with_named_directives(): """Test to ensure you can pass named directives into the cli""" @hug.cli() @hug.local() def test(timer: hug.directives.Timer): return float(timer) assert isinstance(test(), float) assert test(timer=4) == 4 assert isinstance(hug.test.cli(test), float) def test_cli_with_output_transform(): """Test to ensure it's possible to use output transforms with hug CLIs""" @hug.cli() def test() -> int: return "5" assert isinstance(test(), str) assert isinstance(hug.test.cli(test), int) @hug.cli(transform=int) def test(): return "5" assert isinstance(test(), str) assert isinstance(hug.test.cli(test), int) def test_cli_with_short_short_options(): """Test to ensure that it's possible to expose a CLI with 2 very short and similar options""" @hug.cli() def test(a1="Value", a2="Value2"): return (a1, a2) assert test() == ("Value", "Value2") assert test("hi", "there") == ("hi", "there") assert hug.test.cli(test) == ("Value", "Value2") assert hug.test.cli(test, a1="hi", a2="there") == ("hi", "there") def test_cli_file_return(): """Test to ensure that its possible to return a file stream from a CLI""" @hug.cli() def test(): return open(os.path.join(BASE_DIRECTORY, "README.md"), "rb") assert "hug" in hug.test.cli(test) def test_local_type_annotation(): """Test to ensure local type annotation works as expected""" @hug.local(raise_on_invalid=True) def test(number: int): return number assert test(3) == 3 with pytest.raises(Exception): test("h") @hug.local(raise_on_invalid=False) def test(number: int): return number assert test("h")["errors"] @hug.local(raise_on_invalid=False, validate=False) def test(number: int): return number assert test("h") == "h" def test_local_transform(): """Test to ensure local type annotation works as expected""" @hug.local(transform=str) def test(number: int): return number assert test(3) == "3" def test_local_on_invalid(): """Test to ensure local type annotation works as expected""" @hug.local(on_invalid=str) def test(number: int): return number assert isinstance(test("h"), str) def test_local_requires(): """Test to ensure only if requirements successfully keep calls from happening locally""" global_state = False def requirement(**kwargs): return global_state and "Unauthorized" @hug.local(requires=requirement) def hello(): return "Hi!" assert hello() == "Hi!" global_state = True assert hello() == "Unauthorized" def test_static_file_support(): """Test to ensure static file routing works as expected""" @hug.static("/static") def my_static_dirs(): return (BASE_DIRECTORY,) assert "hug" in hug.test.get(api, "/static/README.md").data assert "Index" in hug.test.get(api, "/static/tests/data").data assert "404" in hug.test.get(api, "/static/NOT_IN_EXISTANCE.md").status def test_static_jailed(): """Test to ensure we can't serve from outside static dir""" @hug.static("/static") def my_static_dirs(): return ["tests"] assert "404" in hug.test.get(api, "/static/../README.md").status @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_sink_support(): """Test to ensure sink URL routers work as expected""" @hug.sink("/all") def my_sink(request): return request.path.replace("/all", "") assert hug.test.get(api, "/all/the/things").data == "/the/things" @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_sink_support_with_base_url(): """Test to ensure sink URL routers work when the API is extended with a specified base URL""" @hug.extend_api("/fake", base_url="/api") def extend_with(): import tests.module_fake return (tests.module_fake,) assert hug.test.get(api, "/api/fake/all/the/things").data == "/the/things" def test_cli_with_string_annotation(): """Test to ensure CLI's work correctly with string annotations""" @hug.cli() def test(value_1: "The first value", value_2: "The second value" = None): return True assert hug.test.cli(test, True) def test_cli_with_args(): """Test to ensure CLI's work correctly when taking args""" @hug.cli() def test(*values): return values assert test(1, 2, 3) == (1, 2, 3) assert hug.test.cli(test, 1, 2, 3) == ("1", "2", "3") def test_cli_using_method(): """Test to ensure that attaching a cli to a class method works as expected""" class API(object): def __init__(self): hug.cli()(self.hello_world_method) def hello_world_method(self): variable = "Hello World!" return variable api_instance = API() assert api_instance.hello_world_method() == "Hello World!" assert hug.test.cli(api_instance.hello_world_method) == "Hello World!" assert hug.test.cli(api_instance.hello_world_method, collect_output=False) is None def test_cli_with_nested_variables(): """Test to ensure that a cli containing multiple nested variables works correctly""" @hug.cli() def test(value_1=None, value_2=None): return "Hi!" assert hug.test.cli(test) == "Hi!" def test_cli_with_exception(): """Test to ensure that a cli with an exception is correctly handled""" @hug.cli() def test(): raise ValueError() return "Hi!" assert hug.test.cli(test) != "Hi!" @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_wraps(): """Test to ensure you can safely apply decorators to hug endpoints by using @hug.wraps""" def my_decorator(function): @hug.wraps(function) def decorated(*args, **kwargs): kwargs["name"] = "Timothy" return function(*args, **kwargs) return decorated @hug.get() @my_decorator def what_is_my_name(hug_timer=None, name="Sam"): return {"name": name, "took": hug_timer} result = hug.test.get(api, "what_is_my_name").data assert result["name"] == "Timothy" assert result["took"] def my_second_decorator(function): @hug.wraps(function) def decorated(*args, **kwargs): kwargs["name"] = "Not telling" return function(*args, **kwargs) return decorated @hug.get() @my_decorator @my_second_decorator def what_is_my_name2(hug_timer=None, name="Sam"): return {"name": name, "took": hug_timer} result = hug.test.get(api, "what_is_my_name2").data assert result["name"] == "Not telling" assert result["took"] def my_decorator_with_request(function): @hug.wraps(function) def decorated(request, *args, **kwargs): kwargs["has_request"] = bool(request) return function(*args, **kwargs) return decorated @hug.get() @my_decorator_with_request def do_you_have_request(has_request=False): return has_request assert hug.test.get(api, "do_you_have_request").data def test_cli_with_empty_return(): """Test to ensure that if you return None no data will be added to sys.stdout""" @hug.cli() def test_empty_return(): pass assert not hug.test.cli(test_empty_return) def test_cli_with_multiple_ints(): """Test to ensure multiple ints work with CLI""" @hug.cli() def test_multiple_cli(ints: hug.types.comma_separated_list): return ints assert hug.test.cli(test_multiple_cli, ints="1,2,3") == ["1", "2", "3"] class ListOfInts(hug.types.Multiple): """Only accept a list of numbers.""" def __call__(self, value): value = super().__call__(value) return [int(number) for number in value] @hug.cli() def test_multiple_cli(ints: ListOfInts() = []): return ints assert hug.test.cli(test_multiple_cli, ints=["1", "2", "3"]) == [1, 2, 3] @hug.cli() def test_multiple_cli(ints: hug.types.Multiple[int]() = []): return ints assert hug.test.cli(test_multiple_cli, ints=["1", "2", "3"]) == [1, 2, 3] def test_startup(hug_api): """Test to ensure hug startup decorators work as expected""" happened_on_startup = [] @hug.startup(api=hug_api) def happens_on_startup(api): happened_on_startup.append("non-async") @hug.startup(api=hug_api) @asyncio.coroutine def async_happens_on_startup(api): happened_on_startup.append("async") assert happens_on_startup in hug_api.startup_handlers assert async_happens_on_startup in hug_api.startup_handlers hug_api._ensure_started() assert "async" in happened_on_startup assert "non-async" in happened_on_startup @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_adding_headers(): """Test to ensure it is possible to inject response headers based on only the URL route""" @hug.get(response_headers={"name": "Timothy"}) def endpoint(): return "" result = hug.test.get(api, "endpoint") assert result.data == "" assert result.headers_dict["name"] == "Timothy" def test_on_demand_404(hug_api): """Test to ensure it's possible to route to a 404 response on demand""" @hug_api.route.http.get() def my_endpoint(hug_api): return hug_api.http.not_found assert "404" in hug.test.get(hug_api, "my_endpoint").status @hug_api.route.http.get() def my_endpoint2(hug_api): raise hug.HTTPNotFound() assert "404" in hug.test.get(hug_api, "my_endpoint2").status @hug_api.route.http.get() def my_endpoint3(hug_api): """Test to ensure base 404 handler works as expected""" del hug_api.http._not_found return hug_api.http.not_found assert "404" in hug.test.get(hug_api, "my_endpoint3").status @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_exceptions(): """Test to ensure hug's exception handling decorator works as expected""" @hug.get() def endpoint(): raise ValueError("hi") with pytest.raises(ValueError): hug.test.get(api, "endpoint") @hug.exception() def handle_exception(exception): return "it worked" assert hug.test.get(api, "endpoint").data == "it worked" @hug.exception(ValueError) # noqa def handle_exception(exception): return "more explicit handler also worked" assert hug.test.get(api, "endpoint").data == "more explicit handler also worked" @pytest.mark.skipif(sys.platform == "win32", reason="Currently failing on Windows build") def test_validate(): """Test to ensure hug's secondary validation mechanism works as expected""" def contains_either(fields): if not "one" in fields and not "two" in fields: return {"one": "must be defined", "two": "must be defined"} @hug.get(validate=contains_either) def my_endpoint(one=None, two=None): return True assert hug.test.get(api, "my_endpoint", one=True).data assert hug.test.get(api, "my_endpoint", two=True).data assert hug.test.get(api, "my_endpoint").status assert hug.test.get(api, "my_endpoint").data == { "errors": {"one": "must be defined", "two": "must be defined"} } def test_cli_api(capsys): """Ensure that the overall CLI Interface API works as expected""" @hug.cli() def my_cli_command(): print("Success!") with mock.patch("sys.argv", ["/bin/command", "my_cli_command"]): __hug__.cli() out, err = capsys.readouterr() assert "Success!" in out with mock.patch("sys.argv", []): with pytest.raises(SystemExit): __hug__.cli() def test_cli_api_return(): """Ensure returning from a CLI API works as expected""" @hug.cli() def my_cli_command(): return "Success!" my_cli_command.interface.cli() def test_urlencoded(): """Ensure that urlencoded input format works as intended""" @hug.post() def test_url_encoded_post(**kwargs): return kwargs test_data = b"foo=baz&foo=bar&name=John+Doe" assert hug.test.post( api, "test_url_encoded_post", body=test_data, headers={"content-type": "application/x-www-form-urlencoded"}, ).data == {"name": "John Doe", "foo": ["baz", "bar"]} def test_multipart(): """Ensure that multipart input format works as intended""" @hug.post() def test_multipart_post(**kwargs): return kwargs with open(os.path.join(BASE_DIRECTORY, "artwork", "logo.png"), "rb") as logo: prepared_request = requests.Request( "POST", "http://localhost/", files={"logo": logo} ).prepare() logo.seek(0) output = json.loads(hug.defaults.output_format({"logo": logo.read()}).decode("utf8")) assert ( hug.test.post( api, "test_multipart_post", body=prepared_request.body, headers=prepared_request.headers, ).data == output ) def test_json_null(hug_api): """Test to ensure passing in null within JSON will be seen as None and not allowed by text values""" @hug_api.route.http.post() def test_naive(argument_1): return argument_1 assert ( hug.test.post( hug_api, "test_naive", body='{"argument_1": null}', headers={"content-type": "application/json"}, ).data == None ) @hug_api.route.http.post() def test_text_type(argument_1: hug.types.text): return argument_1 assert ( "errors" in hug.test.post( hug_api, "test_text_type", body='{"argument_1": null}', headers={"content-type": "application/json"}, ).data ) def test_json_self_key(hug_api): """Test to ensure passing in a json with a key named 'self' works as expected""" @hug_api.route.http.post() def test_self_post(body): return body assert hug.test.post( hug_api, "test_self_post", body='{"self": "this"}', headers={"content-type": "application/json"}, ).data == {"self": "this"} def test_204_with_no_body(hug_api): """Test to ensure returning no body on a 204 statused endpoint works without issue""" @hug_api.route.http.delete() def test_route(response): response.status = hug.HTTP_204 return assert "204" in hug.test.delete(hug_api, "test_route").status def test_output_format_inclusion(hug_api): """Test to ensure output format can live in one api but apply to the other""" @hug.get() def my_endpoint(): return "hello" @hug.default_output_format(api=hug_api) def mutated_json(data): return hug.output_format.json({"mutated": data}) hug_api.extend(api, "") assert hug.test.get(hug_api, "my_endpoint").data == {"mutated": "hello"} def test_api_pass_along(hug_api): """Test to ensure the correct API instance is passed along using API directive""" @hug.get() def takes_api(hug_api): return hug_api.__name__ hug_api.__name__ = "Test API" hug_api.extend(api, "") assert hug.test.get(hug_api, "takes_api").data == hug_api.__name__ def test_exception_excludes(hug_api): """Test to ensure it's possible to add excludes to exception routers""" class MyValueError(ValueError): pass class MySecondValueError(ValueError): pass @hug.exception(Exception, exclude=MySecondValueError, api=hug_api) def base_exception_handler(exception): return "base exception handler" @hug.exception(ValueError, exclude=(MyValueError, MySecondValueError), api=hug_api) def base_exception_handler(exception): return "special exception handler" @hug.get(api=hug_api) def my_handler(): raise MyValueError() @hug.get(api=hug_api) def fall_through_handler(): raise ValueError("reason") @hug.get(api=hug_api) def full_through_to_raise(): raise MySecondValueError() assert hug.test.get(hug_api, "my_handler").data == "base exception handler" assert hug.test.get(hug_api, "fall_through_handler").data == "special exception handler" with pytest.raises(MySecondValueError): assert hug.test.get(hug_api, "full_through_to_raise").data def test_cli_kwargs(hug_api): """Test to ensure cli commands can correctly handle **kwargs""" @hug.cli(api=hug_api) def takes_all_the_things(required_argument, named_argument=False, *args, **kwargs): return [required_argument, named_argument, args, kwargs] assert hug.test.cli(takes_all_the_things, "hi!") == ["hi!", False, (), {}] assert hug.test.cli(takes_all_the_things, "hi!", named_argument="there") == [ "hi!", "there", (), {}, ] assert hug.test.cli( takes_all_the_things, "hi!", "extra", "--arguments", "can", "--happen", "--all", "the", "tim", ) == ["hi!", False, ("extra",), {"arguments": "can", "happen": True, "all": ["the", "tim"]}] def test_api_gets_extra_variables_without_kargs_or_kwargs(hug_api): """Test to ensure it's possiible to extra all params without specifying them exactly""" @hug.get(api=hug_api) def ensure_params(request, response): return request.params assert hug.test.get(hug_api, "ensure_params", params={"make": "it"}).data == {"make": "it"} assert hug.test.get(hug_api, "ensure_params", hello="world").data == {"hello": "world"} def test_utf8_output(hug_api): """Test to ensure unicode data is correct outputed on JSON outputs without modification""" @hug.get(api=hug_api) def output_unicode(): return {"data": "Τη γλώσσα μου έδωσαν ελληνική"} assert hug.test.get(hug_api, "output_unicode").data == {"data": "Τη γλώσσα μου έδωσαν ελληνική"} def test_param_rerouting(hug_api): @hug.local(api=hug_api, map_params={"local_id": "record_id"}) @hug.cli(api=hug_api, map_params={"cli_id": "record_id"}) @hug.get(api=hug_api, map_params={"id": "record_id"}) def pull_record(record_id: hug.types.number): return record_id assert hug.test.get(hug_api, "pull_record", id=10).data == 10 assert hug.test.get(hug_api, "pull_record", id="10").data == 10 assert "errors" in hug.test.get(hug_api, "pull_record", id="ten").data assert hug.test.cli(pull_record, cli_id=10) == 10 assert hug.test.cli(pull_record, cli_id="10") == 10 with pytest.raises(SystemExit): hug.test.cli(pull_record, cli_id="ten") assert pull_record(local_id=10) @hug.get(api=hug_api, map_params={"id": "record_id"}) def pull_record(record_id: hug.types.number = 1): return record_id assert hug.test.get(hug_api, "pull_record").data == 1 assert hug.test.get(hug_api, "pull_record", id=10).data == 10 def test_multiple_cli(hug_api): @hug.cli(api=hug_api) def multiple(items: list=None): return items hug_api.cli([None, "multiple", "-i", "one", "-i", "two"]) hug-2.6.0/tests/test_directives.py000066400000000000000000000162671353170073200172330ustar00rootroot00000000000000"""tests/test_directives.py. Tests to ensure that directives interact in the anticipated manner Copyright (C) 2016 Timothy Edmund Crosley 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 base64 import b64encode import pytest import hug api = hug.API(__name__) # Fix flake8 undefined names (F821) __hug__ = __hug__ # noqa def test_timer(): """Tests that the timer directive outputs the correct format, and automatically attaches itself to an API""" timer = hug.directives.Timer() assert isinstance(timer.start, float) assert isinstance(float(timer), float) assert isinstance(int(timer), int) timer = hug.directives.Timer(3) assert isinstance(timer.start, float) assert isinstance(float(timer), float) assert isinstance(int(timer), int) assert isinstance(str(timer), str) assert isinstance(repr(timer), str) assert float(timer) < timer.start @hug.get() @hug.local() def timer_tester(hug_timer): return hug_timer assert isinstance(hug.test.get(api, "timer_tester").data, float) assert isinstance(timer_tester(), hug.directives.Timer) def test_module(): """Test to ensure the module directive automatically includes the current API's module""" @hug.get() def module_tester(hug_module): return hug_module.__name__ assert hug.test.get(api, "module_tester").data == api.module.__name__ def test_api(): """Ensure the api correctly gets passed onto a hug API function based on a directive""" @hug.get() def api_tester(hug_api): return hug_api == api assert hug.test.get(api, "api_tester").data is True def test_documentation(): """Test documentation directive""" assert "handlers" in hug.directives.documentation(api=api) def test_api_version(): """Ensure that it's possible to get the current version of an API based on a directive""" @hug.get(versions=1) def version_tester(hug_api_version): return hug_api_version assert hug.test.get(api, "v1/version_tester").data == 1 def test_current_api(): """Ensure that it's possible to retrieve methods from the same version of the API""" @hug.get(versions=1) def first_method(): return "Success" @hug.get(versions=1) def version_call_tester(hug_current_api): return hug_current_api.first_method() assert hug.test.get(api, "v1/version_call_tester").data == "Success" @hug.get() def second_method(): return "Unversioned" @hug.get(versions=2) # noqa def version_call_tester(hug_current_api): return hug_current_api.second_method() assert hug.test.get(api, "v2/version_call_tester").data == "Unversioned" @hug.get(versions=3) # noqa def version_call_tester(hug_current_api): return hug_current_api.first_method() with pytest.raises(AttributeError): hug.test.get(api, "v3/version_call_tester").data def test_user(): """Ensure that it's possible to get the current authenticated user based on a directive""" user = "test_user" password = "super_secret" @hug.get(requires=hug.authentication.basic(hug.authentication.verify(user, password))) def authenticated_hello(hug_user): return hug_user token = b64encode("{0}:{1}".format(user, password).encode("utf8")).decode("utf8") assert ( hug.test.get( api, "authenticated_hello", headers={"Authorization": "Basic {0}".format(token)} ).data == user ) def test_session_directive(): """Ensure that it's possible to retrieve the session withing a request using the built-in session directive""" @hug.request_middleware() def add_session(request, response): request.context["session"] = {"test": "data"} @hug.local() @hug.get() def session_data(hug_session): return hug_session assert session_data() is None assert hug.test.get(api, "session_data").data == {"test": "data"} def test_named_directives(): """Ensure that it's possible to attach directives to named parameters""" @hug.get() def test(time: hug.directives.Timer = 3): return time assert isinstance(test(1), int) test = hug.local()(test) assert isinstance(test(), hug.directives.Timer) def test_local_named_directives(): """Ensure that it's possible to attach directives to local function calling""" @hug.local() def test(time: __hug__.directive("timer") = 3): return time assert isinstance(test(), hug.directives.Timer) @hug.local(directives=False) def test(time: __hug__.directive("timer") = 3): return time assert isinstance(test(3), int) def test_named_directives_by_name(): """Ensure that it's possible to attach directives to named parameters using only the name of the directive""" @hug.get() @hug.local() def test(time: __hug__.directive("timer") = 3): return time assert isinstance(test(), hug.directives.Timer) def test_per_api_directives(): """Test to ensure it's easy to define a directive within an API""" @hug.directive(apply_globally=False) def test(default=None, **kwargs): return default @hug.get() def my_api_method(hug_test="heyyy"): return hug_test assert hug.test.get(api, "my_api_method").data == "heyyy" def test_user_directives(): """Test the user directives functionality, to ensure it will provide the set user object""" @hug.get() # noqa def try_user(user: hug.directives.user): return user assert hug.test.get(api, "try_user").data is None @hug.get( requires=hug.authentication.basic(hug.authentication.verify("Tim", "Custom password")) ) # noqa def try_user(user: hug.directives.user): return user token = b"Basic " + b64encode("{0}:{1}".format("Tim", "Custom password").encode("utf8")) assert hug.test.get(api, "try_user", headers={"Authorization": token}).data == "Tim" def test_directives(hug_api): """Test to ensure cors directive works as expected""" assert hug.directives.cors("google.com") == "google.com" @hug.get(api=hug_api) def cors_supported(cors: hug.directives.cors = "*"): return True assert ( hug.test.get(hug_api, "cors_supported").headers_dict["Access-Control-Allow-Origin"] == "*" ) hug-2.6.0/tests/test_documentation.py000066400000000000000000000161161353170073200177340ustar00rootroot00000000000000"""tests/test_documentation.py. Tests the documentation generation capabilities integrated into Hug Copyright (C) 2016 Timothy Edmund Crosley 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. """ import json from unittest import mock import marshmallow from falcon import Request from falcon.testing import StartResponseMock, create_environ import hug api = hug.API(__name__) def test_basic_documentation(): """Ensure creating and then documenting APIs with Hug works as intuitively as expected""" @hug.get() def hello_world(): """Returns hello world""" return "Hello World!" @hug.post() def echo(text): """Returns back whatever data it is given in the text parameter""" return text @hug.post("/happy_birthday", examples="name=HUG&age=1") def birthday(name, age: hug.types.number = 1): """Says happy birthday to a user""" return "Happy {age} Birthday {name}!".format(**locals()) @hug.post() def noop(request, response): """Performs no action""" pass @hug.get() def string_docs(data: "Takes data", ignore_directive: hug.directives.Timer) -> "Returns data": """Annotations defined with strings should be documentation only""" pass @hug.get(private=True) def private(): """Hidden from documentation""" pass documentation = api.http.documentation() assert "test_documentation" in documentation["overview"] assert "/hello_world" in documentation["handlers"] assert "/echo" in documentation["handlers"] assert "/happy_birthday" in documentation["handlers"] assert "/birthday" not in documentation["handlers"] assert "/noop" in documentation["handlers"] assert "/string_docs" in documentation["handlers"] assert "/private" not in documentation["handlers"] assert documentation["handlers"]["/hello_world"]["GET"]["usage"] == "Returns hello world" assert documentation["handlers"]["/hello_world"]["GET"]["examples"] == ["/hello_world"] assert documentation["handlers"]["/hello_world"]["GET"]["outputs"]["content_type"] in [ "application/json", "application/json; charset=utf-8", ] assert "inputs" not in documentation["handlers"]["/hello_world"]["GET"] assert "text" in documentation["handlers"]["/echo"]["POST"]["inputs"]["text"]["type"] assert "default" not in documentation["handlers"]["/echo"]["POST"]["inputs"]["text"] assert "number" in documentation["handlers"]["/happy_birthday"]["POST"]["inputs"]["age"]["type"] assert documentation["handlers"]["/happy_birthday"]["POST"]["inputs"]["age"]["default"] == 1 assert "inputs" not in documentation["handlers"]["/noop"]["POST"] assert ( documentation["handlers"]["/string_docs"]["GET"]["inputs"]["data"]["type"] == "Takes data" ) assert documentation["handlers"]["/string_docs"]["GET"]["outputs"]["type"] == "Returns data" assert "ignore_directive" not in documentation["handlers"]["/string_docs"]["GET"]["inputs"] @hug.post(versions=1) # noqa def echo(text): """V1 Docs""" return "V1" @hug.post(versions=2) # noqa def echo(text): """V1 Docs""" return "V2" @hug.post(versions=2) def test(text): """V1 Docs""" return True @hug.get(requires=test) def unversioned(): return "Hello" @hug.get(versions=False) def noversions(): pass @hug.extend_api("/fake", base_url="/api") def extend_with(): import tests.module_fake_simple return (tests.module_fake_simple,) versioned_doc = api.http.documentation() assert "versions" in versioned_doc assert 1 in versioned_doc["versions"] assert 2 in versioned_doc["versions"] assert False not in versioned_doc["versions"] assert "/unversioned" in versioned_doc["handlers"] assert "/echo" in versioned_doc["handlers"] assert "/test" in versioned_doc["handlers"] specific_version_doc = api.http.documentation(api_version=1) assert "versions" in specific_version_doc assert "/echo" in specific_version_doc["handlers"] assert "/unversioned" in specific_version_doc["handlers"] assert specific_version_doc["handlers"]["/unversioned"]["GET"]["requires"] == ["V1 Docs"] assert "/test" not in specific_version_doc["handlers"] specific_base_doc = api.http.documentation(base_url="/api") assert "/echo" not in specific_base_doc["handlers"] assert "/fake/made_up_hello" in specific_base_doc["handlers"] handler = api.http.documentation_404() response = StartResponseMock() handler(Request(create_environ(path="v1/doc")), response) documentation = json.loads(response.data.decode("utf8"))["documentation"] assert "versions" in documentation assert "/echo" in documentation["handlers"] assert "/test" not in documentation["handlers"] def test_basic_documentation_output_type_accept(): """Ensure API documentation works with selectable output types""" accept_output = hug.output_format.accept( { "application/json": hug.output_format.json, "application/pretty-json": hug.output_format.pretty_json, }, default=hug.output_format.json, ) with mock.patch.object(api.http, "_output_format", accept_output, create=True): handler = api.http.documentation_404() response = StartResponseMock() handler(Request(create_environ(path="v1/doc")), response) documentation = json.loads(response.data.decode("utf8"))["documentation"] assert "handlers" in documentation and "overview" in documentation def test_marshmallow_return_type_documentation(): class Returns(marshmallow.Schema): "Return docs" @hug.post() def marshtest() -> Returns(): pass doc = api.http.documentation() assert doc["handlers"]["/marshtest"]["POST"]["outputs"]["type"] == "Return docs" def test_map_params_documentation_preserves_type(): @hug.get(map_params={"from": "from_mapped"}) def map_params_test(from_mapped: hug.types.number): pass doc = api.http.documentation() assert doc["handlers"]["/map_params_test"]["GET"]["inputs"]["from"]["type"] == "A whole number" hug-2.6.0/tests/test_exceptions.py000066400000000000000000000035451353170073200172460ustar00rootroot00000000000000"""tests/test_exceptions.py. Tests to ensure custom exceptions work and are formatted as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import pytest import hug def test_invalid_type_data(): try: raise hug.exceptions.InvalidTypeData("not a good type") except hug.exceptions.InvalidTypeData as exception: error = exception assert error.message == "not a good type" assert error.reasons is None try: raise hug.exceptions.InvalidTypeData("not a good type", [1, 2, 3]) except hug.exceptions.InvalidTypeData as exception: error = exception assert error.message == "not a good type" assert error.reasons == [1, 2, 3] with pytest.raises(Exception): try: raise hug.exceptions.InvalidTypeData() except hug.exceptions.InvalidTypeData as exception: pass hug-2.6.0/tests/test_full_request.py000066400000000000000000000036431353170073200175760ustar00rootroot00000000000000"""tests/test_full_request.py. Test cases that rely on a command being ran against a running hug server Copyright (C) 2016 Timothy Edmund Crosley 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. """ import platform import sys import time from subprocess import Popen import pytest import requests import hug TEST_HUG_API = """ import hug @hug.post("/test", output=hug.output_format.json) def post(body, response): print(body) return {'message': 'ok'} """ @pytest.mark.skipif( platform.python_implementation() == "PyPy", reason="Can't run hug CLI from travis PyPy" ) @pytest.mark.skipif(sys.platform == "win32", reason="CLI not currently testable on Windows") def test_hug_post(tmp_path): hug_test_file = tmp_path / "hug_postable.py" hug_test_file.write_text(TEST_HUG_API) hug_server = Popen(["hug", "-f", str(hug_test_file), "-p", "3000"]) time.sleep(5) requests.post("http://127.0.0.1:3000/test", {"data": "here"}) hug_server.kill() hug-2.6.0/tests/test_global_context.py000066400000000000000000000017331353170073200200660ustar00rootroot00000000000000import hug def test_context_global_decorators(hug_api): custom_context = dict(context="global", factory=0, delete=0) @hug.context_factory(apply_globally=True) def create_context(*args, **kwargs): custom_context["factory"] += 1 return custom_context @hug.delete_context(apply_globally=True) def delete_context(context, *args, **kwargs): assert context == custom_context custom_context["delete"] += 1 @hug.get(api=hug_api) def made_up_hello(): return "hi" @hug.extend_api(api=hug_api, base_url="/api") def extend_with(): import tests.module_fake_simple return (tests.module_fake_simple,) assert hug.test.get(hug_api, "/made_up_hello").data == "hi" assert custom_context["factory"] == 1 assert custom_context["delete"] == 1 assert hug.test.get(hug_api, "/api/made_up_hello").data == "hello" assert custom_context["factory"] == 2 assert custom_context["delete"] == 2 hug-2.6.0/tests/test_input_format.py000066400000000000000000000054011353170073200175650ustar00rootroot00000000000000"""tests/test_input_format.py. Tests the input format handlers included with Hug Copyright (C) 2016 Timothy Edmund Crosley 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. """ import os from cgi import parse_header from io import BytesIO import requests import hug from .constants import BASE_DIRECTORY def test_text(): """Ensure that plain text input format works as intended""" test_data = BytesIO(b'{"a": "b"}') assert hug.input_format.text(test_data) == '{"a": "b"}' def test_json(): """Ensure that the json input format works as intended""" test_data = BytesIO(b'{"a": "b"}') assert hug.input_format.json(test_data) == {"a": "b"} def test_json_underscore(): """Ensure that camelCase keys can be converted into under_score for easier use within Python""" test_data = BytesIO(b'{"CamelCase": {"becauseWeCan": "ValueExempt"}}') assert hug.input_format.json_underscore(test_data) == { "camel_case": {"because_we_can": "ValueExempt"} } def test_urlencoded(): """Ensure that urlencoded input format works as intended""" test_data = BytesIO(b"foo=baz&foo=bar&name=John+Doe") assert hug.input_format.urlencoded(test_data) == {"name": "John Doe", "foo": ["baz", "bar"]} def test_multipart(): """Ensure multipart form data works as intended""" with open(os.path.join(BASE_DIRECTORY, "artwork", "koala.png"), "rb") as koala: prepared_request = requests.Request( "POST", "http://localhost/", files={"koala": koala} ).prepare() koala.seek(0) headers = parse_header(prepared_request.headers["Content-Type"])[1] headers["CONTENT-LENGTH"] = "22176" file_content = hug.input_format.multipart(BytesIO(prepared_request.body), **headers)[ "koala" ] assert file_content == koala.read() hug-2.6.0/tests/test_interface.py000066400000000000000000000054321353170073200170220ustar00rootroot00000000000000"""tests/test_interface.py. Tests hug's defined interfaces (HTTP, CLI, & Local) Copyright (C) 2016 Timothy Edmund Crosley 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. """ import pytest import hug @hug.http(("/namer", "/namer/{name}"), ("GET", "POST"), versions=(None, 2)) def namer(name=None): return name class TestHTTP(object): """Tests the functionality provided by hug.interface.HTTP""" def test_urls(self): """Test to ensure HTTP interface correctly returns URLs associated with it""" assert namer.interface.http.urls() == ["/namer", "/namer/{name}"] def test_url(self): """Test to ensure HTTP interface correctly automatically returns URL associated with it""" assert namer.interface.http.url() == "/namer" assert namer.interface.http.url(name="tim") == "/namer/tim" assert namer.interface.http.url(name="tim", version=2) == "/v2/namer/tim" with pytest.raises(KeyError): namer.interface.http.url(undefined="not a variable") with pytest.raises(KeyError): namer.interface.http.url(version=10) def test_gather_parameters(self): """Test to ensure gathering parameters works in the expected way""" @hug.get() def my_example_api(body): return body assert ( hug.test.get( __hug__, "my_example_api", body="", headers={"content-type": "application/json"} ).data == None ) class TestLocal(object): """Test to ensure hug.interface.Local functionality works as expected""" def test_local_method(self): class MyObject(object): @hug.local() def my_method(self, argument_1: hug.types.number): return argument_1 instance = MyObject() assert instance.my_method(10) == 10 hug-2.6.0/tests/test_introspect.py000066400000000000000000000124451353170073200172560ustar00rootroot00000000000000"""tests/test_input_format.py. Tests that hugs built in introspection helper functions work as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import hug def function_with_kwargs(argument1, **kwargs): pass def function_with_args(argument1, *args): pass def function_with_neither(argument1, argument2): pass def function_with_both(argument1, argument2, argument3, *args, **kwargs): pass def function_with_nothing(): pass class Object(object): def my_method(self): pass def test_is_method(): """Test to ensure hugs introspection can correctly identify the difference between a function and method""" assert not hug.introspect.is_method(function_with_kwargs) assert hug.introspect.is_method(Object().my_method) def test_arguments(): """Test to ensure hug introspection can correctly pull out arguments from a function definition""" def function(argument1, argument2): pass assert tuple(hug.introspect.arguments(function_with_kwargs)) == ("argument1",) assert tuple(hug.introspect.arguments(function_with_args)) == ("argument1",) assert tuple(hug.introspect.arguments(function_with_neither)) == ("argument1", "argument2") assert tuple(hug.introspect.arguments(function_with_both)) == ( "argument1", "argument2", "argument3", ) def test_takes_kwargs(): """Test to ensure hug introspection can correctly identify when a function takes kwargs""" assert hug.introspect.takes_kwargs(function_with_kwargs) assert not hug.introspect.takes_kwargs(function_with_args) assert not hug.introspect.takes_kwargs(function_with_neither) assert hug.introspect.takes_kwargs(function_with_both) def test_takes_args(): """Test to ensure hug introspection can correctly identify when a function takes args""" assert not hug.introspect.takes_args(function_with_kwargs) assert hug.introspect.takes_args(function_with_args) assert not hug.introspect.takes_args(function_with_neither) assert hug.introspect.takes_args(function_with_both) def test_takes_arguments(): """Test to ensure hug introspection can correctly identify which arguments supplied a function will take""" assert hug.introspect.takes_arguments(function_with_kwargs, "argument1", "argument3") == set( ("argument1",) ) assert hug.introspect.takes_arguments(function_with_args, "bacon") == set() assert hug.introspect.takes_arguments(function_with_neither, "argument1", "argument2") == set( ("argument1", "argument2") ) assert hug.introspect.takes_arguments(function_with_both, "argument3", "bacon") == set( ("argument3",) ) def test_takes_all_arguments(): """Test to ensure hug introspection can correctly identify if a function takes all specified arguments""" assert not hug.introspect.takes_all_arguments( function_with_kwargs, "argument1", "argument2", "argument3" ) assert not hug.introspect.takes_all_arguments( function_with_args, "argument1", "argument2", "argument3" ) assert not hug.introspect.takes_all_arguments( function_with_neither, "argument1", "argument2", "argument3" ) assert hug.introspect.takes_all_arguments( function_with_both, "argument1", "argument2", "argument3" ) def test_generate_accepted_kwargs(): """Test to ensure hug introspection can correctly dynamically filter out kwargs for only those accepted""" source_dictionary = {"argument1": 1, "argument2": 2, "hey": "there", "hi": "hello"} kwargs = hug.introspect.generate_accepted_kwargs(function_with_kwargs, "bacon", "argument1")( source_dictionary ) assert kwargs == source_dictionary kwargs = hug.introspect.generate_accepted_kwargs(function_with_args, "bacon", "argument1")( source_dictionary ) assert kwargs == {"argument1": 1} kwargs = hug.introspect.generate_accepted_kwargs( function_with_neither, "argument1", "argument2" )(source_dictionary) assert kwargs == {"argument1": 1, "argument2": 2} kwargs = hug.introspect.generate_accepted_kwargs(function_with_both, "argument1", "argument2")( source_dictionary ) assert kwargs == source_dictionary kwargs = hug.introspect.generate_accepted_kwargs(function_with_nothing)(source_dictionary) assert kwargs == {} hug-2.6.0/tests/test_main.py000066400000000000000000000024741353170073200160110ustar00rootroot00000000000000"""tests/test_main.py. Basic testing of hug's `__main__` module Copyright (C) 2016 Timothy Edmund Crosley 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. """ import pytest def test_main(capsys): """Main module should be importable, but should raise a SystemExit after CLI docs print""" with pytest.raises(SystemExit): from hug import __main__ hug-2.6.0/tests/test_middleware.py000066400000000000000000000141251353170073200171760ustar00rootroot00000000000000"""tests/test_middleware.py. Tests the middleware integrated into Hug 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 http.cookies import SimpleCookie import pytest import hug from hug.exceptions import SessionNotFound from hug.middleware import CORSMiddleware, LogMiddleware, SessionMiddleware from hug.store import InMemoryStore api = hug.API(__name__) # Fix flake8 undefined names (F821) __hug__ = __hug__ # noqa def test_session_middleware(): @hug.get() def count(request): session = request.context["session"] counter = session.get("counter", 0) + 1 session["counter"] = counter return counter def get_cookies(response): simple_cookie = SimpleCookie(response.headers_dict["set-cookie"]) return {morsel.key: morsel.value for morsel in simple_cookie.values()} # Add middleware session_store = InMemoryStore() middleware = SessionMiddleware(session_store, cookie_name="test-sid") __hug__.http.add_middleware(middleware) # Get cookies from response response = hug.test.get(api, "/count") cookies = get_cookies(response) # Assert session cookie has been set and session exists in session store assert "test-sid" in cookies sid = cookies["test-sid"] assert session_store.exists(sid) assert session_store.get(sid) == {"counter": 1} # Assert session persists throughout the requests headers = {"Cookie": "test-sid={}".format(sid)} assert hug.test.get(api, "/count", headers=headers).data == 2 assert session_store.get(sid) == {"counter": 2} # Assert a non-existing session cookie gets ignored headers = {"Cookie": "test-sid=foobarfoo"} response = hug.test.get(api, "/count", headers=headers) cookies = get_cookies(response) assert response.data == 1 assert not session_store.exists("foobarfoo") assert cookies["test-sid"] != "foobarfoo" def test_logging_middleware(): output = [] class Logger(object): def info(self, content): output.append(content) @hug.middleware_class() class CustomLogger(LogMiddleware): def __init__(self, logger=Logger()): super().__init__(logger=logger) @hug.get() def test(request): return "data" hug.test.get(api, "/test") assert output[0] == "Requested: GET /test None" assert len(output[1]) > 0 def test_cors_middleware(hug_api): hug_api.http.add_middleware(CORSMiddleware(hug_api, max_age=10)) @hug.get("/demo", api=hug_api) def get_demo(): return {"result": "Hello World"} @hug.get("/demo/{param}", api=hug_api) def get_demo(param): return {"result": "Hello {0}".format(param)} @hug.post("/demo", api=hug_api) def post_demo(name: "your name"): return {"result": "Hello {0}".format(name)} @hug.put("/demo/{param}", api=hug_api) def get_demo(param, name): old_name = param new_name = name return {"result": "Goodbye {0} ... Hello {1}".format(old_name, new_name)} @hug.delete("/demo/{param}", api=hug_api) def get_demo(param): return {"result": "Goodbye {0}".format(param)} assert hug.test.get(hug_api, "/demo").data == {"result": "Hello World"} assert hug.test.get(hug_api, "/demo/Mir").data == {"result": "Hello Mir"} assert hug.test.post(hug_api, "/demo", name="Mundo") assert hug.test.put(hug_api, "/demo/Carl", name="Junior").data == { "result": "Goodbye Carl ... Hello Junior" } assert hug.test.delete(hug_api, "/demo/Cruel_World").data == {"result": "Goodbye Cruel_World"} response = hug.test.options(hug_api, "/demo") methods = response.headers_dict["access-control-allow-methods"].replace(" ", "") allow = response.headers_dict["allow"].replace(" ", "") assert set(methods.split(",")) == set(["OPTIONS", "GET", "POST"]) assert set(allow.split(",")) == set(["OPTIONS", "GET", "POST"]) response = hug.test.options(hug_api, "/demo/1") methods = response.headers_dict["access-control-allow-methods"].replace(" ", "") allow = response.headers_dict["allow"].replace(" ", "") assert set(methods.split(",")) == set(["OPTIONS", "GET", "DELETE", "PUT"]) assert set(allow.split(",")) == set(["OPTIONS", "GET", "DELETE", "PUT"]) assert response.headers_dict["access-control-max-age"] == "10" response = hug.test.options(hug_api, "/v1/demo/1") methods = response.headers_dict["access-control-allow-methods"].replace(" ", "") allow = response.headers_dict["allow"].replace(" ", "") assert set(methods.split(",")) == set(["OPTIONS", "GET", "DELETE", "PUT"]) assert set(allow.split(",")) == set(["OPTIONS", "GET", "DELETE", "PUT"]) assert response.headers_dict["access-control-max-age"] == "10" response = hug.test.options(hug_api, "/v1/demo/123e4567-midlee89b-12d3-a456-426655440000") methods = response.headers_dict["access-control-allow-methods"].replace(" ", "") allow = response.headers_dict["allow"].replace(" ", "") assert set(methods.split(",")) == set(["OPTIONS", "GET", "DELETE", "PUT"]) assert set(allow.split(",")) == set(["OPTIONS", "GET", "DELETE", "PUT"]) assert response.headers_dict["access-control-max-age"] == "10" hug-2.6.0/tests/test_output_format.py000066400000000000000000000362021353170073200177710ustar00rootroot00000000000000"""tests/test_output_format.py. Tests the output format handlers included with Hug Copyright (C) 2016 Timothy Edmund Crosley 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. """ import os from collections import namedtuple from datetime import datetime, timedelta from decimal import Decimal from io import BytesIO from uuid import UUID import numpy import pytest import hug from .constants import BASE_DIRECTORY def test_text(): """Ensure that it's possible to output a Hug API method as text""" hug.output_format.text("Hello World!") == "Hello World!" hug.output_format.text(str(1)) == "1" def test_html(hug_api): """Ensure that it's possible to output a Hug API method as HTML""" hug.output_format.html("Hello World!") == "Hello World!" hug.output_format.html(str(1)) == "1" with open(os.path.join(BASE_DIRECTORY, "README.md"), "rb") as html_file: assert hasattr(hug.output_format.html(html_file), "read") class FakeHTMLWithRender: def render(self): return "test" assert hug.output_format.html(FakeHTMLWithRender()) == b"test" @hug.get("/get/html", output=hug.output_format.html, api=hug_api) def get_html(**kwargs): """ Returns command help document when no command is specified """ with open(os.path.join(BASE_DIRECTORY, "examples/document.html"), "rb") as html_file: return html_file.read() assert "" in hug.test.get(hug_api, "/get/html").data def test_json(): """Ensure that it's possible to output a Hug API method as JSON""" now = datetime.now() one_day = timedelta(days=1) test_data = {"text": "text", "datetime": now, "bytes": b"bytes", "delta": one_day} output = hug.output_format.json(test_data).decode("utf8") assert "text" in output assert "bytes" in output assert str(one_day.total_seconds()) in output assert now.isoformat() in output class NewObject(object): pass test_data["non_serializable"] = NewObject() with pytest.raises(TypeError): hug.output_format.json(test_data).decode("utf8") class NamedTupleObject(namedtuple("BaseTuple", ("name", "value"))): pass data = NamedTupleObject("name", "value") converted = hug.input_format.json(BytesIO(hug.output_format.json(data))) assert converted == {"name": "name", "value": "value"} data = set((1, 2, 3, 3)) assert hug.input_format.json(BytesIO(hug.output_format.json(data))) == [1, 2, 3] data = (number for number in range(1, 4)) assert hug.input_format.json(BytesIO(hug.output_format.json(data))) == [1, 2, 3] data = [Decimal(1.5), Decimal("155.23"), Decimal("1234.25")] assert hug.input_format.json(BytesIO(hug.output_format.json(data))) == [ "1.5", "155.23", "1234.25", ] with open(os.path.join(BASE_DIRECTORY, "README.md"), "rb") as json_file: assert hasattr(hug.output_format.json(json_file), "read") assert hug.input_format.json(BytesIO(hug.output_format.json(b"\x9c"))) == "nA==" class MyCrazyObject(object): pass @hug.output_format.json_convert(MyCrazyObject) def convert(instance): return "Like anyone could convert this" assert ( hug.input_format.json(BytesIO(hug.output_format.json(MyCrazyObject()))) == "Like anyone could convert this" ) assert hug.input_format.json( BytesIO(hug.output_format.json({"data": ["Τη γλώσσα μου έδωσαν ελληνική"]})) ) == {"data": ["Τη γλώσσα μου έδωσαν ελληνική"]} def test_pretty_json(): """Ensure that it's possible to output a Hug API method as prettified and indented JSON""" test_data = {"text": "text"} assert hug.output_format.pretty_json(test_data).decode("utf8") == ( "{\n" ' "text": "text"\n' "}" ) def test_json_camelcase(): """Ensure that it's possible to output a Hug API method as camelCased JSON""" test_data = { "under_score": "values_can", "be_converted": [{"to_camelcase": "value"}, "wont_be_convert"], } output = hug.output_format.json_camelcase(test_data).decode("utf8") assert "underScore" in output assert "values_can" in output assert "beConverted" in output assert "toCamelcase" in output assert "value" in output assert "wont_be_convert" in output def test_image(): """Ensure that it's possible to output images with hug""" logo_path = os.path.join(BASE_DIRECTORY, "artwork", "logo.png") assert hasattr(hug.output_format.png_image(logo_path, hug.Response()), "read") with open(logo_path, "rb") as image_file: assert hasattr(hug.output_format.png_image(image_file, hug.Response()), "read") assert hug.output_format.png_image("Not Existent", hug.Response()) is None class FakeImageWithSave: def save(self, to, format): to.write(b"test") assert hasattr(hug.output_format.png_image(FakeImageWithSave(), hug.Response()), "read") class FakeImageWithRender: def render(self): return "test" assert hug.output_format.svg_xml_image(FakeImageWithRender(), hug.Response()) == "test" class FakeImageWithSaveNoFormat: def save(self, to): to.write(b"test") assert hasattr(hug.output_format.png_image(FakeImageWithSaveNoFormat(), hug.Response()), "read") def test_file(): """Ensure that it's possible to easily output files""" class FakeResponse(object): pass logo_path = os.path.join(BASE_DIRECTORY, "artwork", "logo.png") fake_response = FakeResponse() assert hasattr(hug.output_format.file(logo_path, fake_response), "read") assert fake_response.content_type == "image/png" with open(logo_path, "rb") as image_file: hasattr(hug.output_format.file(image_file, fake_response), "read") assert not hasattr(hug.output_format.file("NON EXISTENT FILE", fake_response), "read") assert hug.output_format.file(None, fake_response) == "" def test_video(): """Ensure that it's possible to output videos with hug""" gif_path = os.path.join(BASE_DIRECTORY, "artwork", "example.gif") assert hasattr(hug.output_format.mp4_video(gif_path, hug.Response()), "read") with open(gif_path, "rb") as image_file: assert hasattr(hug.output_format.mp4_video(image_file, hug.Response()), "read") assert hug.output_format.mp4_video("Not Existent", hug.Response()) is None class FakeVideoWithSave: def save(self, to, format): to.write(b"test") assert hasattr(hug.output_format.mp4_video(FakeVideoWithSave(), hug.Response()), "read") class FakeVideoWithSave: def render(self): return "test" assert hug.output_format.avi_video(FakeVideoWithSave(), hug.Response()) == "test" def test_on_valid(): """Test to ensure formats that use on_valid content types gracefully handle error dictionaries""" error_dict = {"errors": {"so": "many"}} expected = hug.output_format.json(error_dict) assert hug.output_format.mp4_video(error_dict, hug.Response()) == expected assert hug.output_format.png_image(error_dict, hug.Response()) == expected @hug.output_format.on_valid("image", hug.output_format.file) def my_output_format(data): raise ValueError("This should never be called") assert my_output_format(error_dict, hug.Response()) def test_on_content_type(): """Ensure that it's possible to route the output type format by the requested content-type""" formatter = hug.output_format.on_content_type( {"application/json": hug.output_format.json, "text/plain": hug.output_format.text} ) class FakeRequest(object): content_type = "application/json" request = FakeRequest() response = FakeRequest() converted = hug.input_format.json( formatter(BytesIO(hug.output_format.json({"name": "name"})), request, response) ) assert converted == {"name": "name"} request.content_type = "text/plain" assert formatter("hi", request, response) == b"hi" with pytest.raises(hug.HTTPNotAcceptable): request.content_type = "undefined; always" formatter("hi", request, response) def test_accept(): """Ensure that it's possible to route the output type format by the requests stated accept header""" formatter = hug.output_format.accept( {"application/json": hug.output_format.json, "text/plain": hug.output_format.text} ) class FakeRequest(object): accept = "application/json" request = FakeRequest() response = FakeRequest() converted = hug.input_format.json( formatter(BytesIO(hug.output_format.json({"name": "name"})), request, response) ) assert converted == {"name": "name"} request.accept = "text/plain" assert formatter("hi", request, response) == b"hi" request.accept = "application/json, text/plain; q=0.5" assert formatter("hi", request, response) == b'"hi"' request.accept = "text/plain; q=0.5, application/json" assert formatter("hi", request, response) == b'"hi"' request.accept = "application/json;q=0.4,text/plain; q=0.5" assert formatter("hi", request, response) == b"hi" request.accept = "*" assert formatter("hi", request, response) in [b'"hi"', b"hi"] request.accept = "undefined; always" with pytest.raises(hug.HTTPNotAcceptable): formatter("hi", request, response) formatter = hug.output_format.accept( {"application/json": hug.output_format.json, "text/plain": hug.output_format.text}, hug.output_format.json, ) assert formatter("hi", request, response) == b'"hi"' def test_accept_with_http_errors(): """Ensure that content type based output formats work for HTTP error responses""" formatter = hug.output_format.accept( {"application/json": hug.output_format.json, "text/plain": hug.output_format.text}, default=hug.output_format.json, ) api = hug.API("test_accept_with_http_errors") hug.default_output_format(api=api)(formatter) @hug.get("/500", api=api) def error_500(): raise hug.HTTPInternalServerError("500 Internal Server Error", "This is an example") response = hug.test.get(api, "/500") assert response.status == "500 Internal Server Error" assert response.data == {"errors": {"500 Internal Server Error": "This is an example"}} def test_suffix(): """Ensure that it's possible to route the output type format by the suffix of the requested URL""" formatter = hug.output_format.suffix( {".js": hug.output_format.json, ".html": hug.output_format.text} ) class FakeRequest(object): path = "endpoint.js" request = FakeRequest() response = FakeRequest() converted = hug.input_format.json( formatter(BytesIO(hug.output_format.json({"name": "name"})), request, response) ) assert converted == {"name": "name"} request.path = "endpoint.html" assert formatter("hi", request, response) == b"hi" with pytest.raises(hug.HTTPNotAcceptable): request.path = "undefined.always" formatter("hi", request, response) def test_prefix(): """Ensure that it's possible to route the output type format by the prefix of the requested URL""" formatter = hug.output_format.prefix( {"js/": hug.output_format.json, "html/": hug.output_format.text} ) class FakeRequest(object): path = "js/endpoint" request = FakeRequest() response = FakeRequest() converted = hug.input_format.json( formatter(BytesIO(hug.output_format.json({"name": "name"})), request, response) ) assert converted == {"name": "name"} request.path = "html/endpoint" assert formatter("hi", request, response) == b"hi" with pytest.raises(hug.HTTPNotAcceptable): request.path = "undefined.always" formatter("hi", request, response) def test_json_converter_numpy_types(): """Ensure that numpy-specific data types (array, int, float) are properly supported in JSON output.""" ex_int = numpy.int_(9) ex_np_array = numpy.array([1, 2, 3, 4, 5]) ex_np_int_array = numpy.int_([5, 4, 3]) ex_np_float = numpy.float(0.5) assert 9 is hug.output_format._json_converter(ex_int) assert [1, 2, 3, 4, 5] == hug.output_format._json_converter(ex_np_array) assert [5, 4, 3] == hug.output_format._json_converter(ex_np_int_array) assert 0.5 == hug.output_format._json_converter(ex_np_float) # Some type names are merely shorthands. # The following shorthands for built-in types are excluded: numpy.bool, numpy.int, numpy.float. np_bool_types = [numpy.bool_, numpy.bool8] np_int_types = [ numpy.int_, numpy.byte, numpy.ubyte, numpy.intc, numpy.uintc, numpy.intp, numpy.uintp, numpy.int8, numpy.uint8, numpy.int16, numpy.uint16, numpy.int32, numpy.uint32, numpy.int64, numpy.uint64, numpy.longlong, numpy.ulonglong, numpy.short, numpy.ushort, ] np_float_types = [ numpy.float_, numpy.float32, numpy.float64, numpy.half, numpy.single, numpy.longfloat, ] np_unicode_types = [numpy.unicode_] np_bytes_types = [numpy.bytes_] for np_type in np_bool_types: assert True == hug.output_format._json_converter(np_type(True)) for np_type in np_int_types: assert 1 is hug.output_format._json_converter(np_type(1)) for np_type in np_float_types: assert 0.5 == hug.output_format._json_converter(np_type(0.5)) for np_type in np_unicode_types: assert "a" == hug.output_format._json_converter(np_type("a")) for np_type in np_bytes_types: assert "a" == hug.output_format._json_converter(np_type("a")) def test_json_converter_uuid(): """Ensure that uuid data type is properly supported in JSON output.""" uuidstr = "8ae4d8c1-e2d7-5cd0-8407-6baf16dfbca4" assert uuidstr == hug.output_format._json_converter(UUID(uuidstr)) def test_output_format_with_no_docstring(): """Ensure it is safe to use formatters with no docstring""" @hug.format.content_type("test/fmt") def test_fmt(data, request=None, response=None): return str(data).encode("utf8") hug.output_format.on_content_type({"test/fmt": test_fmt}) hug-2.6.0/tests/test_redirect.py000066400000000000000000000050041353170073200166560ustar00rootroot00000000000000"""tests/test_redirect.py. Tests to ensure Hug's redirect methods work as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import falcon import pytest import hug.redirect def test_to(): """Test that the base redirect to function works as expected""" with pytest.raises(falcon.http_status.HTTPStatus) as redirect: hug.redirect.to("/") assert "302" in redirect.value.status def test_permanent(): """Test to ensure function causes a redirect with HTTP 301 status code""" with pytest.raises(falcon.http_status.HTTPStatus) as redirect: hug.redirect.permanent("/") assert "301" in redirect.value.status def test_found(): """Test to ensure function causes a redirect with HTTP 302 status code""" with pytest.raises(falcon.http_status.HTTPStatus) as redirect: hug.redirect.found("/") assert "302" in redirect.value.status def test_see_other(): """Test to ensure function causes a redirect with HTTP 303 status code""" with pytest.raises(falcon.http_status.HTTPStatus) as redirect: hug.redirect.see_other("/") assert "303" in redirect.value.status def test_temporary(): """Test to ensure function causes a redirect with HTTP 307 status code""" with pytest.raises(falcon.http_status.HTTPStatus) as redirect: hug.redirect.temporary("/") assert "307" in redirect.value.status def test_not_found(): with pytest.raises(falcon.HTTPNotFound) as redirect: hug.redirect.not_found() assert "404" in redirect.value.status hug-2.6.0/tests/test_route.py000066400000000000000000000156631353170073200162270ustar00rootroot00000000000000"""tests/test_decorators.py. Tests that class based hug routes interact as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import hug from hug.routing import ( CLIRouter, ExceptionRouter, NotFoundRouter, SinkRouter, StaticRouter, URLRouter, ) api = hug.API(__name__) def test_simple_class_based_view(): """Test creating class based routers""" @hug.object.urls("/endpoint", requires=()) class MyClass(object): @hug.object.get() def my_method(self): return "hi there!" @hug.object.post() def my_method_two(self): return "bye" assert hug.test.get(api, "endpoint").data == "hi there!" assert hug.test.post(api, "endpoint").data == "bye" def test_url_inheritance(): """Test creating class based routers""" @hug.object.urls("/endpoint", requires=(), versions=1) class MyClass(object): @hug.object.urls("inherits_base") def my_method(self): return "hi there!" @hug.object.urls("/ignores_base") def my_method_two(self): return "bye" @hug.object.urls("ignore_version", versions=None) def my_method_three(self): return "what version?" assert hug.test.get(api, "/v1/endpoint/inherits_base").data == "hi there!" assert hug.test.post(api, "/v1/ignores_base").data == "bye" assert hug.test.post(api, "/v2/ignores_base").data != "bye" assert hug.test.get(api, "/endpoint/ignore_version").data == "what version?" def test_simple_class_based_method_view(): """Test creating class based routers using method mappings""" @hug.object.http_methods() class EndPoint(object): def get(self): return "hi there!" def post(self): return "bye" assert hug.test.get(api, "endpoint").data == "hi there!" assert hug.test.post(api, "endpoint").data == "bye" def test_routing_class_based_method_view_with_sub_routing(): """Test creating class based routers using method mappings, then overriding url on sub method""" @hug.object.http_methods() class EndPoint(object): def get(self): return "hi there!" @hug.object.urls("/home/") def post(self): return "bye" assert hug.test.get(api, "endpoint").data == "hi there!" assert hug.test.post(api, "home").data == "bye" def test_routing_class_with_cli_commands(): """Basic operation test""" @hug.object(name="git", version="1.0.0") class GIT(object): """An example of command like calls via an Object""" @hug.object.cli def push(self, branch="master"): return "Pushing {}".format(branch) @hug.object.cli def pull(self, branch="master"): return "Pulling {}".format(branch) assert "token" in hug.test.cli(GIT.push, branch="token") assert "another token" in hug.test.cli(GIT.pull, branch="another token") def test_routing_class_based_method_view_with_cli_routing(): """Test creating class based routers using method mappings exposing cli endpoints""" @hug.object.http_methods() class EndPoint(object): @hug.object.cli def get(self): return "hi there!" def post(self): return "bye" assert hug.test.get(api, "endpoint").data == "hi there!" assert hug.test.post(api, "endpoint").data == "bye" assert hug.test.cli(EndPoint.get) == "hi there!" def test_routing_instance(): """Test to ensure its possible to route a class after it is instanciated""" class EndPoint(object): @hug.object def one(self): return "one" @hug.object def two(self): return 2 hug.object.get()(EndPoint()) assert hug.test.get(api, "one").data == "one" assert hug.test.get(api, "two").data == 2 class TestAPIRouter(object): """Test to ensure the API router enables easily reusing all other routing types while routing to an API""" router = hug.route.API(__name__) def test_route_url(self): """Test to ensure you can dynamically create a URL route attached to a hug API""" assert self.router.urls("/hi/").route == URLRouter("/hi/", api=api).route def test_route_http(self): """Test to ensure you can dynamically create an HTTP route attached to a hug API""" assert self.router.http("/hi/").route == URLRouter("/hi/", api=api).route def test_method_routes(self): """Test to ensure you can dynamically create an HTTP route attached to a hug API""" for method in hug.HTTP_METHODS: assert getattr(self.router, method.lower())("/hi/").route["accept"] == (method,) assert self.router.get_post("/hi/").route["accept"] == ("GET", "POST") assert self.router.put_post("/hi/").route["accept"] == ("PUT", "POST") def test_not_found(self): """Test to ensure you can dynamically create a Not Found route attached to a hug API""" assert self.router.not_found().route == NotFoundRouter(api=api).route def test_static(self): """Test to ensure you can dynamically create a static route attached to a hug API""" assert self.router.static().route == StaticRouter(api=api).route def test_sink(self): """Test to ensure you can dynamically create a sink route attached to a hug API""" assert self.router.sink().route == SinkRouter(api=api).route def test_exception(self): """Test to ensure you can dynamically create an Exception route attached to a hug API""" assert self.router.exception().route == ExceptionRouter(api=api).route def test_cli(self): """Test to ensure you can dynamically create a CLI route attached to a hug API""" assert self.router.cli().route == CLIRouter(api=api).route def test_object(self): """Test to ensure it's possible to route objects through a specified API instance""" assert self.router.object().route == hug.route.Object(api=api).route hug-2.6.0/tests/test_routing.py000066400000000000000000000416011353170073200165470ustar00rootroot00000000000000"""tests/test_output_format.py Tests that the hug routing functionality works as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import hug from hug.routing import ( CLIRouter, ExceptionRouter, HTTPRouter, InternalValidation, LocalRouter, NotFoundRouter, Router, SinkRouter, StaticRouter, URLRouter, ) api = hug.API(__name__) class TestRouter(object): """A collection of tests to ensure the base Router object works as expected""" route = Router(transform="transform", output="output") def test_init(self): """Test to ensure the route instanciates as expected""" assert self.route.route["transform"] == "transform" assert self.route.route["output"] == "output" assert "api" not in self.route.route def test_output(self): """Test to ensure modifying the output argument has the desired effect""" new_route = self.route.output("test data", transform="transformed") assert new_route != self.route assert new_route.route["output"] == "test data" assert new_route.route["transform"] == "transformed" def test_transform(self): """Test to ensure changing the transformation on the fly works as expected""" new_route = self.route.transform("transformed") assert new_route != self.route assert new_route.route["transform"] == "transformed" def test_validate(self): """Test to ensure overriding the secondary validation method works as expected""" assert self.route.validate(str).route["validate"] == str def test_api(self): """Test to ensure changing the API associated with the route works as expected""" new_route = self.route.api("new") assert new_route != self.route assert new_route.route["api"] == "new" def test_requires(self): """Test to ensure requirements can be added on the fly""" assert self.route.requires(("values",)).route["requires"] == ("values",) def test_map_params(self): """Test to ensure it is possible to set param mappings on the routing object""" assert self.route.map_params(id="user_id").route["map_params"] == {"id": "user_id"} def test_where(self): """Test to ensure `where` can be used to replace all arguments on the fly""" new_route = self.route.where(transform="transformer", output="outputter") assert new_route != self.route assert new_route.route["output"] == "outputter" assert new_route.route["transform"] == "transformer" class TestCLIRouter(TestRouter): """A collection of tests to ensure the CLIRouter object works as expected""" route = CLIRouter( name="cli", version=1, doc="Hi there!", transform="transform", output="output" ) def test_name(self): """Test to ensure the name can be replaced on the fly""" new_route = self.route.name("new name") assert new_route != self.route assert new_route.route["name"] == "new name" assert new_route.route["transform"] == "transform" assert new_route.route["output"] == "output" def test_version(self): """Test to ensure the version can be replaced on the fly""" new_route = self.route.version(2) assert new_route != self.route assert new_route.route["version"] == 2 assert new_route.route["transform"] == "transform" assert new_route.route["output"] == "output" def test_doc(self): """Test to ensure the documentation can be replaced on the fly""" new_route = self.route.doc("FAQ") assert new_route != self.route assert new_route.route["doc"] == "FAQ" assert new_route.route["transform"] == "transform" assert new_route.route["output"] == "output" class TestInternalValidation(TestRouter): """Collection of tests to ensure the base Router for routes that define internal validation work as expected""" route = InternalValidation(name="cli", doc="Hi there!", transform="transform", output="output") def test_raise_on_invalid(self): """Test to ensure it's possible to set a raise on invalid handler per route""" assert "raise_on_invalid" not in self.route.route assert self.route.raise_on_invalid().route["raise_on_invalid"] def test_on_invalid(self): """Test to ensure on_invalid handler can be changed on the fly""" assert self.route.on_invalid(str).route["on_invalid"] == str def test_output_invalid(self): """Test to ensure output_invalid handler can be changed on the fly""" assert ( self.route.output_invalid(hug.output_format.json).route["output_invalid"] == hug.output_format.json ) class TestLocalRouter(TestInternalValidation): """A collection of tests to ensure the LocalRouter object works as expected""" route = LocalRouter(name="cli", doc="Hi there!", transform="transform", output="output") def test_validate(self): """Test to ensure changing wether a local route should validate or not works as expected""" assert "skip_validation" not in self.route.route route = self.route.validate() assert "skip_validation" not in route.route route = self.route.validate(False) assert "skip_validation" in route.route def test_directives(self): """Test to ensure changing wether a local route should supply directives or not works as expected""" assert "skip_directives" not in self.route.route route = self.route.directives() assert "skip_directives" not in route.route route = self.route.directives(False) assert "skip_directives" in route.route def test_version(self): """Test to ensure changing the version of a LocalRoute on the fly works""" assert "version" not in self.route.route route = self.route.version(2) assert "version" in route.route assert route.route["version"] == 2 class TestHTTPRouter(TestInternalValidation): """Collection of tests to ensure the base HTTPRouter object works as expected""" route = HTTPRouter( output="output", versions=(1,), parse_body=False, transform="transform", requires=("love",), parameters=("one",), defaults={"one": "value"}, status=200, ) def test_versions(self): """Test to ensure the supported versions can be replaced on the fly""" assert self.route.versions(4).route["versions"] == (4,) def test_parse_body(self): """Test to ensure the parsing body flag be flipped on the fly""" assert self.route.parse_body().route["parse_body"] assert "parse_body" not in self.route.parse_body(False).route def test_requires(self): """Test to ensure requirements can be added on the fly""" assert self.route.requires(("values",)).route["requires"] == ("love", "values") def test_doesnt_require(self): """Ensure requirements can be selectively removed on the fly""" assert self.route.doesnt_require("love").route.get("requires", ()) == () assert self.route.doesnt_require("values").route["requires"] == ("love",) route = self.route.requires(("values",)) assert route.doesnt_require("love").route["requires"] == ("values",) assert route.doesnt_require("values").route["requires"] == ("love",) assert route.doesnt_require(("values", "love")).route.get("requires", ()) == () def test_parameters(self): """Test to ensure the parameters can be replaced on the fly""" assert self.route.parameters(("one", "two")).route["parameters"] == ("one", "two") def test_defaults(self): """Test to ensure the defaults can be replaced on the fly""" assert self.route.defaults({"one": "three"}).route["defaults"] == {"one": "three"} def test_status(self): """Test to ensure the default status can be changed on the fly""" assert self.route.set_status(500).route["status"] == 500 def test_response_headers(self): """Test to ensure it's possible to switch out response headers for URL routes on the fly""" assert self.route.response_headers({"one": "two"}).route["response_headers"] == { "one": "two" } def test_add_response_headers(self): """Test to ensure it's possible to add headers on the fly""" route = self.route.response_headers({"one": "two"}) assert route.route["response_headers"] == {"one": "two"} assert route.add_response_headers({"two": "three"}).route["response_headers"] == { "one": "two", "two": "three", } def test_cache(self): """Test to ensure it's easy to add a cache header on the fly""" assert ( self.route.cache().route["response_headers"]["cache-control"] == "public, max-age=31536000" ) def test_allow_origins(self): """Test to ensure it's easy to expose route to other resources""" test_headers = self.route.allow_origins( methods=("GET", "POST"), credentials=True, headers="OPTIONS", max_age=10 ).route["response_headers"] assert test_headers["Access-Control-Allow-Origin"] == "*" assert test_headers["Access-Control-Allow-Methods"] == "GET, POST" assert test_headers["Access-Control-Allow-Credentials"] == "true" assert test_headers["Access-Control-Allow-Headers"] == "OPTIONS" assert test_headers["Access-Control-Max-Age"] == 10 test_headers = self.route.allow_origins( "google.com", methods=("GET", "POST"), credentials=True, headers="OPTIONS", max_age=10 ).route["response_headers"] assert "Access-Control-Allow-Origin" not in test_headers assert test_headers["Access-Control-Allow-Methods"] == "GET, POST" assert test_headers["Access-Control-Allow-Credentials"] == "true" assert test_headers["Access-Control-Allow-Headers"] == "OPTIONS" assert test_headers["Access-Control-Max-Age"] == 10 class TestStaticRouter(TestHTTPRouter): """Test to ensure that the static router sets up routes correctly""" route = StaticRouter("/here", requires=("love",), cache=True) route2 = StaticRouter(("/here", "/there"), api="api", cache={"no_store": True}) def test_init(self): """Test to ensure the route instanciates as expected""" assert self.route.route["urls"] == ("/here",) assert self.route2.route["urls"] == ("/here", "/there") assert self.route2.route["api"] == "api" class TestSinkRouter(TestHTTPRouter): """Collection of tests to ensure that the SinkRouter works as expected""" route = SinkRouter( output="output", versions=(1,), parse_body=False, transform="transform", requires=("love",), parameters=("one",), defaults={"one": "value"}, ) class TestNotFoundRouter(TestHTTPRouter): """Collection of tests to ensure the NotFoundRouter object works as expected""" route = NotFoundRouter( output="output", versions=(1,), parse_body=False, transform="transform", requires=("love",), parameters=("one",), defaults={"one": "value"}, ) class TestExceptionRouter(TestHTTPRouter): """Collection of tests to ensure the ExceptionRouter object works as expected""" route = ExceptionRouter( Exception, output="output", versions=(1,), parse_body=False, transform="transform", requires=("love",), parameters=("one",), defaults={"one": "value"}, ) class TestURLRouter(TestHTTPRouter): """Collection of tests to ensure the URLRouter object works as expected""" route = URLRouter("/here", transform="transform", output="output", requires=("love",)) def test_urls(self): """Test to ensure the url routes can be replaced on the fly""" assert self.route.urls("/there").route["urls"] == ("/there",) def test_accept(self): """Test to ensure the accept HTTP METHODs can be replaced on the fly""" assert self.route.accept("GET").route["accept"] == ("GET",) def test_get(self): """Test to ensure the HTTP METHOD can be set to just GET on the fly""" assert self.route.get().route["accept"] == ("GET",) assert self.route.get("/url").route["urls"] == ("/url",) def test_delete(self): """Test to ensure the HTTP METHOD can be set to just DELETE on the fly""" assert self.route.delete().route["accept"] == ("DELETE",) assert self.route.delete("/url").route["urls"] == ("/url",) def test_post(self): """Test to ensure the HTTP METHOD can be set to just POST on the fly""" assert self.route.post().route["accept"] == ("POST",) assert self.route.post("/url").route["urls"] == ("/url",) def test_put(self): """Test to ensure the HTTP METHOD can be set to just PUT on the fly""" assert self.route.put().route["accept"] == ("PUT",) assert self.route.put("/url").route["urls"] == ("/url",) def test_trace(self): """Test to ensure the HTTP METHOD can be set to just TRACE on the fly""" assert self.route.trace().route["accept"] == ("TRACE",) assert self.route.trace("/url").route["urls"] == ("/url",) def test_patch(self): """Test to ensure the HTTP METHOD can be set to just PATCH on the fly""" assert self.route.patch().route["accept"] == ("PATCH",) assert self.route.patch("/url").route["urls"] == ("/url",) def test_options(self): """Test to ensure the HTTP METHOD can be set to just OPTIONS on the fly""" assert self.route.options().route["accept"] == ("OPTIONS",) assert self.route.options("/url").route["urls"] == ("/url",) def test_head(self): """Test to ensure the HTTP METHOD can be set to just HEAD on the fly""" assert self.route.head().route["accept"] == ("HEAD",) assert self.route.head("/url").route["urls"] == ("/url",) def test_connect(self): """Test to ensure the HTTP METHOD can be set to just CONNECT on the fly""" assert self.route.connect().route["accept"] == ("CONNECT",) assert self.route.connect("/url").route["urls"] == ("/url",) def test_call(self): """Test to ensure the HTTP METHOD can be set to accept all on the fly""" assert self.route.call().route["accept"] == hug.HTTP_METHODS def test_http(self): """Test to ensure the HTTP METHOD can be set to accept all on the fly""" assert self.route.http().route["accept"] == hug.HTTP_METHODS def test_get_post(self): """Test to ensure the HTTP METHOD can be set to GET & POST in one call""" return self.route.get_post().route["accept"] == ("GET", "POST") def test_put_post(self): """Test to ensure the HTTP METHOD can be set to PUT & POST in one call""" return self.route.put_post().route["accept"] == ("PUT", "POST") def test_examples(self): """Test to ensure examples can be modified on the fly""" assert self.route.examples("none").route["examples"] == ("none",) def test_prefixes(self): """Test to ensure adding prefixes works as expected""" assert self.route.prefixes("/js/").route["prefixes"] == ("/js/",) def test_suffixes(self): """Test to ensure setting suffixes works as expected""" assert self.route.suffixes(".js", ".xml").route["suffixes"] == (".js", ".xml") def test_allow_origins_request_handling(self, hug_api): """Test to ensure a route with allowed origins works as expected""" route = URLRouter(api=hug_api) test_headers = route.allow_origins( "google.com", methods=("GET", "POST"), credentials=True, headers="OPTIONS", max_age=10 ) @test_headers.get() def my_endpoint(): return "Success" assert hug.test.get(hug_api, "/my_endpoint", headers={'ORIGIN': 'google.com'}).data == "Success" hug-2.6.0/tests/test_store.py000066400000000000000000000035431353170073200162170ustar00rootroot00000000000000"""tests/test_store.py. Tests to ensure that the native stores work correctly. Copyright (C) 2016 Timothy Edmund Crosley 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. """ import pytest from hug.exceptions import StoreKeyNotFound from hug.store import InMemoryStore stores_to_test = [InMemoryStore()] @pytest.mark.parametrize("store", stores_to_test) def test_stores_generically(store): key = "test-key" data = {"user": "foo", "authenticated": False} # Key should not exist assert not store.exists(key) # Set key with custom data, verify the key exists and expect correct data to be returned store.set(key, data) assert store.exists(key) assert store.get(key) == data # Expect exception if unknown session key was requested with pytest.raises(StoreKeyNotFound): store.get("unknown") # Delete key store.delete(key) assert not store.exists(key) hug-2.6.0/tests/test_test.py000066400000000000000000000031621353170073200160370ustar00rootroot00000000000000"""tests/test_test.py. Test to ensure basic test functionality works as expected. Copyright (C) 2019 Timothy Edmund Crosley 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. """ import pytest import hug api = hug.API(__name__) def test_cli(): """Test to ensure the CLI tester works as intended to allow testing CLI endpoints""" @hug.cli() def my_cli_function(): return "Hello" assert hug.test.cli(my_cli_function) == "Hello" assert hug.test.cli("my_cli_function", api=api) == "Hello" # Shouldn't be able to specify both api and module. with pytest.raises(ValueError): assert hug.test.cli("my_method", api=api, module=hug) hug-2.6.0/tests/test_this.py000066400000000000000000000023561353170073200160330ustar00rootroot00000000000000"""tests/test_this.py. Tests the Zen of Hug Copyright (C) 2019 Timothy Edmund Crosley 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 hug import this def test_this(): """Test to ensure this exposes the ZEN_OF_HUG as a string""" assert type(this.ZEN_OF_HUG) == str hug-2.6.0/tests/test_transform.py000066400000000000000000000056021353170073200170740ustar00rootroot00000000000000"""tests/test_transform.py. Test to ensure hugs built in transform functions work as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import hug def test_content_type(): """Test to ensure the transformer used can change based on the provided content-type""" transformer = hug.transform.content_type({"application/json": int, "text/plain": str}) class FakeRequest(object): content_type = "application/json" request = FakeRequest() assert transformer("1", request) == 1 request.content_type = "text/plain" assert transformer(2, request) == "2" request.content_type = "undefined" transformer({"data": "value"}, request) == {"data": "value"} def test_suffix(): """Test to ensure transformer content based on the end suffix of the URL works as expected""" transformer = hug.transform.suffix({".js": int, ".txt": str}) class FakeRequest(object): path = "hey.js" request = FakeRequest() assert transformer("1", request) == 1 request.path = "hey.txt" assert transformer(2, request) == "2" request.path = "hey.undefined" transformer({"data": "value"}, request) == {"data": "value"} def test_prefix(): """Test to ensure transformer content based on the end prefix of the URL works as expected""" transformer = hug.transform.prefix({"js/": int, "txt/": str}) class FakeRequest(object): path = "js/hey" request = FakeRequest() assert transformer("1", request) == 1 request.path = "txt/hey" assert transformer(2, request) == "2" request.path = "hey.undefined" transformer({"data": "value"}, request) == {"data": "value"} def test_all(): """Test to ensure transform.all allows chaining multiple transformations as expected""" def annotate(data, response): return {"Text": data} assert hug.transform.all(str, annotate)(1, response="hi") == {"Text": "1"} hug-2.6.0/tests/test_types.py000066400000000000000000000714211353170073200162270ustar00rootroot00000000000000"""tests/test_types.py. Tests the type validators included with hug Copyright (C) 2016 Timothy Edmund Crosley 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. """ import json import urllib from datetime import datetime from decimal import Decimal from uuid import UUID import pytest from marshmallow import Schema, ValidationError, fields from marshmallow.decorators import validates_schema import hug from hug.exceptions import InvalidTypeData api = hug.API(__name__) def test_type(): """Test to ensure the abstract Type object can't be used""" with pytest.raises(NotImplementedError): hug.types.Type()("value") def test_number(): """Tests that hug's number type correctly converts and validates input""" assert hug.types.number("1") == 1 assert hug.types.number(1) == 1 with pytest.raises(ValueError): hug.types.number("bacon") def test_range(): """Tests that hug's range type successfully handles ranges of numbers""" assert hug.types.in_range(1, 10)("1") == 1 assert hug.types.in_range(1, 10)(1) == 1 assert "1" in hug.types.in_range(1, 10).__doc__ with pytest.raises(ValueError): hug.types.in_range(1, 10)("bacon") with pytest.raises(ValueError): hug.types.in_range(1, 10)("15") with pytest.raises(ValueError): hug.types.in_range(1, 10)(-34) def test_less_than(): """Tests that hug's less than type successfully limits the values passed in""" assert hug.types.less_than(10)("1") == 1 assert hug.types.less_than(10)(1) == 1 assert hug.types.less_than(10)(-10) == -10 assert "10" in hug.types.less_than(10).__doc__ with pytest.raises(ValueError): assert hug.types.less_than(10)(10) def test_greater_than(): """Tests that hug's greater than type succefully limis the values passed in""" assert hug.types.greater_than(10)("11") == 11 assert hug.types.greater_than(10)(11) == 11 assert hug.types.greater_than(10)(1000) == 1000 assert "10" in hug.types.greater_than(10).__doc__ with pytest.raises(ValueError): assert hug.types.greater_than(10)(9) def test_multiple(): """Tests that hug's multile type correctly forces values to come back as lists, but not lists of lists""" assert hug.types.multiple("value") == ["value"] assert hug.types.multiple(["value1", "value2"]) == ["value1", "value2"] def test_delimited_list(): """Test to ensure hug's custom delimited list type function works as expected""" assert hug.types.delimited_list(",")("value1,value2") == ["value1", "value2"] assert hug.types.DelimitedList[int](",")("1,2") == [1, 2] assert hug.types.delimited_list(",")(["value1", "value2"]) == ["value1", "value2"] assert hug.types.delimited_list("|-|")("value1|-|value2|-|value3,value4") == [ "value1", "value2", "value3,value4", ] assert "," in hug.types.delimited_list(",").__doc__ def test_comma_separated_list(): """Tests that hug's comma separated type correctly converts into a Python list""" assert hug.types.comma_separated_list("value") == ["value"] assert hug.types.comma_separated_list("value1,value2") == ["value1", "value2"] def test_float_number(): """Tests to ensure the float type correctly allows floating point values""" assert hug.types.float_number("1.1") == 1.1 assert hug.types.float_number("1") == float(1) assert hug.types.float_number(1.1) == 1.1 with pytest.raises(ValueError): hug.types.float_number("bacon") def test_decimal(): """Tests to ensure the decimal type correctly allows decimal values""" assert hug.types.decimal("1.1") == Decimal("1.1") assert hug.types.decimal("1") == Decimal("1") assert hug.types.decimal(1.1) == Decimal(1.1) with pytest.raises(ValueError): hug.types.decimal("bacon") def test_boolean(): """Test to ensure the custom boolean type correctly supports boolean conversion""" assert hug.types.boolean("1") assert hug.types.boolean("T") assert not hug.types.boolean("") assert hug.types.boolean("False") assert not hug.types.boolean(False) def test_mapping(): """Test to ensure the mapping type works as expected""" mapping_type = hug.types.mapping({"n": None, "l": [], "s": set()}) assert mapping_type("n") is None assert mapping_type("l") == [] assert mapping_type("s") == set() assert "n" in mapping_type.__doc__ with pytest.raises(KeyError): mapping_type("bacon") def test_smart_boolean(): """Test to ensure that the smart boolean type works as expected""" assert hug.types.smart_boolean("true") assert hug.types.smart_boolean("t") assert hug.types.smart_boolean("1") assert hug.types.smart_boolean(1) assert not hug.types.smart_boolean("") assert not hug.types.smart_boolean("false") assert not hug.types.smart_boolean("f") assert not hug.types.smart_boolean("0") assert not hug.types.smart_boolean(0) assert hug.types.smart_boolean(True) assert not hug.types.smart_boolean(None) assert not hug.types.smart_boolean(False) with pytest.raises(KeyError): hug.types.smart_boolean("bacon") def test_text(): """Tests that hug's text validator correctly handles basic values""" assert hug.types.text("1") == "1" assert hug.types.text(1) == "1" assert hug.types.text("text") == "text" with pytest.raises(ValueError): hug.types.text(["one", "two"]) def test_uuid(): """Tests that hug's text validator correctly handles UUID values Examples were taken from https://docs.python.org/3/library/uuid.html""" assert hug.types.uuid("{12345678-1234-5678-1234-567812345678}") == UUID( "12345678-1234-5678-1234-567812345678" ) assert hug.types.uuid("12345678-1234-5678-1234-567812345678") == UUID( "12345678123456781234567812345678" ) assert hug.types.uuid("12345678123456781234567812345678") == UUID( "12345678-1234-5678-1234-567812345678" ) assert hug.types.uuid("urn:uuid:12345678-1234-5678-1234-567812345678") == UUID( "12345678-1234-5678-1234-567812345678" ) with pytest.raises(ValueError): hug.types.uuid(1) with pytest.raises(ValueError): # Invalid HEX character hug.types.uuid("12345678-1234-5678-1234-56781234567G") with pytest.raises(ValueError): # One character added hug.types.uuid("12345678-1234-5678-1234-5678123456781") with pytest.raises(ValueError): # One character removed hug.types.uuid("12345678-1234-5678-1234-56781234567") def test_length(): """Tests that hug's length type successfully handles a length range""" assert hug.types.length(1, 10)("bacon") == "bacon" assert hug.types.length(1, 10)(42) == "42" assert "42" in hug.types.length(1, 42).__doc__ with pytest.raises(ValueError): hug.types.length(1, 10)("bacon is the greatest food known to man") with pytest.raises(ValueError): hug.types.length(1, 10)("") with pytest.raises(ValueError): hug.types.length(1, 10)("bacon is th") def test_shorter_than(): """Tests that hug's shorter than type successfully limits the values passed in""" assert hug.types.shorter_than(10)("hi there") == "hi there" assert hug.types.shorter_than(10)(1) == "1" assert hug.types.shorter_than(10)("") == "" assert "10" in hug.types.shorter_than(10).__doc__ with pytest.raises(ValueError): assert hug.types.shorter_than(10)( "there is quite a bit of text here, in fact way more than allowed" ) def test_longer_than(): """Tests that hug's greater than type succefully limis the values passed in""" assert ( hug.types.longer_than(10)("quite a bit of text here should be") == "quite a bit of text here should be" ) assert hug.types.longer_than(10)(12345678910) == "12345678910" assert hug.types.longer_than(10)(100123456789100) == "100123456789100" assert "10" in hug.types.longer_than(10).__doc__ with pytest.raises(ValueError): assert hug.types.longer_than(10)("short") def test_cut_off(): """Test to ensure that hug's cut_off type works as expected""" assert hug.types.cut_off(10)("text") == "text" assert hug.types.cut_off(10)(10) == "10" assert hug.types.cut_off(10)("some really long text") == "some reall" assert "10" in hug.types.cut_off(10).__doc__ def test_inline_dictionary(): """Tests that inline dictionary values are correctly handled""" int_dict = hug.types.InlineDictionary[int, int]() assert int_dict("1:2") == {1: 2} assert int_dict("1:2|3:4") == {1: 2, 3: 4} assert hug.types.inline_dictionary("1:2") == {"1": "2"} assert hug.types.inline_dictionary("1:2|3:4") == {"1": "2", "3": "4"} with pytest.raises(ValueError): hug.types.inline_dictionary("1") int_dict = hug.types.InlineDictionary[int]() assert int_dict("1:2") == {1: "2"} int_dict = hug.types.InlineDictionary[int, int, int]() assert int_dict("1:2") == {1: 2} def test_one_of(): """Tests that hug allows limiting a value to one of a list of values""" assert hug.types.one_of(("bacon", "sausage", "pancakes"))("bacon") == "bacon" assert hug.types.one_of(["bacon", "sausage", "pancakes"])("sausage") == "sausage" assert hug.types.one_of({"bacon", "sausage", "pancakes"})("pancakes") == "pancakes" assert "bacon" in hug.types.one_of({"bacon", "sausage", "pancakes"}).__doc__ with pytest.raises(KeyError): hug.types.one_of({"bacon", "sausage", "pancakes"})("syrup") def test_accept(): """Tests to ensure the accept type wrapper works as expected""" custom_converter = lambda value: value + " converted" custom_type = hug.types.accept(custom_converter, "A string Value") with pytest.raises(TypeError): custom_type(1) def test_accept_custom_exception_text(): """Tests to ensure it's easy to custom the exception text using the accept wrapper""" custom_converter = lambda value: value + " converted" custom_type = hug.types.accept(custom_converter, "A string Value", "Error occurred") assert custom_type("bacon") == "bacon converted" with pytest.raises(ValueError): custom_type(1) def test_accept_custom_exception_handlers(): """Tests to ensure it's easy to custom the exception text using the accept wrapper""" custom_converter = lambda value: (str(int(value)) if value else value) + " converted" custom_type = hug.types.accept( custom_converter, "A string Value", exception_handlers={TypeError: "0 provided"} ) assert custom_type("1") == "1 converted" with pytest.raises(ValueError): custom_type("bacon") with pytest.raises(ValueError): custom_type(0) custom_type = hug.types.accept( custom_converter, "A string Value", exception_handlers={TypeError: KeyError} ) with pytest.raises(KeyError): custom_type(0) def test_json(): """Test to ensure that the json type correctly handles url encoded json, as well as direct json""" assert hug.types.json({"this": "works"}) == {"this": "works"} assert hug.types.json(json.dumps({"this": "works"})) == {"this": "works"} with pytest.raises(ValueError): hug.types.json("Invalid JSON") assert hug.types.json(json.dumps(["a", "b"]).split(",")) == ["a", "b"] with pytest.raises(ValueError): assert hug.types.json(["Invalid JSON", "Invalid JSON"]) def test_multi(): """Test to ensure that the multi type correctly handles a variety of value types""" multi_type = hug.types.multi(hug.types.json, hug.types.smart_boolean) assert multi_type({"this": "works"}) == {"this": "works"} assert multi_type(json.dumps({"this": "works"})) == {"this": "works"} assert multi_type("t") with pytest.raises(ValueError): multi_type("Bacon!") def test_chain(): """Test to ensure that chaining together multiple types works as expected""" chain_type = hug.types.Chain(hug.types.text, hug.types.LongerThan(10)) assert chain_type(12345678901) == "12345678901" with pytest.raises(ValueError): chain_type(1) def test_nullable(): """Test the concept of a nullable type""" nullable_type = hug.types.Nullable(hug.types.text, hug.types.LongerThan(10)) assert nullable_type(12345678901) == "12345678901" assert nullable_type(None) is None with pytest.raises(ValueError): nullable_type(1) def test_schema_type(): """Test hug's complex schema types""" class User(hug.types.Schema): username = hug.types.text password = hug.types.Chain(hug.types.text, hug.types.LongerThan(10)) user_one = User({"username": "brandon", "password": "password123"}) user_two = User(user_one) with pytest.raises(ValueError): user_three = User({"username": "brandon", "password": "123"}) user_three = User({"username": "brandon", "password": "123"}, force=True) with pytest.raises(AttributeError): del user_one.username assert "username" in User.__slots__ assert "_username" in User.__slots__ assert user_one._username == "brandon" assert user_two == user_one assert user_three._username == "brandon" assert user_one.username == "brandon" assert user_two.username == "brandon" assert user_three.username == "brandon" assert user_one.password == "password123" with pytest.raises(ValueError): user_one.password = "test" assert user_one.password == "password123" def test_marshmallow_schema(): """Test hug's marshmallow schema support""" class UserSchema(Schema): name = fields.Int() schema_type = hug.types.MarshmallowInputSchema(UserSchema()) assert schema_type({"name": 23}, {}) == {"name": 23} assert schema_type("""{"name": 23}""", {}) == {"name": 23} assert schema_type.__doc__ == "UserSchema" with pytest.raises(InvalidTypeData): schema_type({"name": "test"}, {}) schema_type = hug.types.MarshmallowReturnSchema(UserSchema()) assert schema_type({"name": 23}) == {"name": 23} assert schema_type.__doc__ == "UserSchema" with pytest.raises(InvalidTypeData): schema_type({"name": "test"}) def test_create_type(): """Test hug's new type creation decorator works as expected""" @hug.type( extend=hug.types.text, exception_handlers={TypeError: ValueError, LookupError: "Hi!"}, error_text="Invalid", ) def prefixed_string(value): if value == "hi": raise TypeError("Repeat of prefix") elif value == "bye": raise LookupError("Never say goodbye!") elif value == "1+1": raise ArithmeticError("Testing different error types") return "hi-" + value assert prefixed_string("there") == "hi-there" with pytest.raises(ValueError): prefixed_string([]) with pytest.raises(ValueError): prefixed_string("hi") with pytest.raises(ValueError): prefixed_string("bye") @hug.type(extend=hug.types.text, exception_handlers={TypeError: ValueError}) def prefixed_string(value): if value == "1+1": raise ArithmeticError("Testing different error types") return "hi-" + value with pytest.raises(ArithmeticError): prefixed_string("1+1") @hug.type(extend=hug.types.text) def prefixed_string(value): return "hi-" + value assert prefixed_string("there") == "hi-there" @hug.type(extend=hug.types.one_of) def numbered(value): return int(value) assert numbered(["1", "2", "3"])("1") == 1 def test_marshmallow_custom_context(): custom_context = dict(context="global", factory=0, delete=0, marshmallow=0) @hug.context_factory(apply_globally=True) def create_context(*args, **kwargs): custom_context["factory"] += 1 return custom_context @hug.delete_context(apply_globally=True) def delete_context(context, *args, **kwargs): assert context == custom_context custom_context["delete"] += 1 class MarshmallowContextSchema(Schema): name = fields.String() @validates_schema def check_context(self, data): assert self.context == custom_context self.context["marshmallow"] += 1 @hug.get() def made_up_hello(test: MarshmallowContextSchema()): return "hi" assert hug.test.get(api, "/made_up_hello", {"test": {"name": "test"}}).data == "hi" assert custom_context["factory"] == 1 assert custom_context["delete"] == 1 assert custom_context["marshmallow"] == 1 def test_extending_types_with_context_with_no_error_messages(): custom_context = dict(context="global", the_only_right_number=42) @hug.context_factory() def create_context(*args, **kwargs): return custom_context @hug.delete_context() def delete_context(*args, **kwargs): pass @hug.type(chain=True, extend=hug.types.number) def check_if_positive(value): if value < 0: raise ValueError("Not positive") return value @hug.type(chain=True, extend=check_if_positive, accept_context=True) def check_if_near_the_right_number(value, context): the_only_right_number = context["the_only_right_number"] if value not in [ the_only_right_number - 1, the_only_right_number, the_only_right_number + 1, ]: raise ValueError("Not near the right number") return value @hug.type(chain=True, extend=check_if_near_the_right_number, accept_context=True) def check_if_the_only_right_number(value, context): if value != context["the_only_right_number"]: raise ValueError("Not the right number") return value @hug.type(chain=False, extend=hug.types.number, accept_context=True) def check_if_string_has_right_value(value, context): if str(context["the_only_right_number"]) not in value: raise ValueError("The value does not contain the only right number") return value @hug.type(chain=False, extend=hug.types.number) def simple_check(value): if value != "simple": raise ValueError("This is not simple") return value @hug.get("/check_the_types") def check_the_types( first: check_if_positive, second: check_if_near_the_right_number, third: check_if_the_only_right_number, forth: check_if_string_has_right_value, fifth: simple_check, ): return "hi" test_cases = [ ((42, 42, 42, "42", "simple"), (None, None, None, None, None)), ((43, 43, 43, "42", "simple"), (None, None, "Not the right number", None, None)), ( (40, 40, 40, "42", "simple"), (None, "Not near the right number", "Not near the right number", None, None), ), ( (-42, -42, -42, "53", "not_simple"), ( "Not positive", "Not positive", "Not positive", "The value does not contain the only right number", "This is not simple", ), ), ] for provided_values, expected_results in test_cases: response = hug.test.get( api, "/check_the_types", **{ "first": provided_values[0], "second": provided_values[1], "third": provided_values[2], "forth": provided_values[3], "fifth": provided_values[4], } ) if response.data == "hi": errors = (None, None, None, None, None) else: errors = [] for key in ["first", "second", "third", "forth", "fifth"]: if key in response.data["errors"]: errors.append(response.data["errors"][key]) else: errors.append(None) errors = tuple(errors) assert errors == expected_results def test_extending_types_with_context_with_error_messages(): custom_context = dict(context="global", the_only_right_number=42) @hug.context_factory() def create_context(*args, **kwargs): return custom_context @hug.delete_context() def delete_context(*args, **kwargs): pass @hug.type(chain=True, extend=hug.types.number, error_text="error 1") def check_if_positive(value): if value < 0: raise ValueError("Not positive") return value @hug.type(chain=True, extend=check_if_positive, accept_context=True, error_text="error 2") def check_if_near_the_right_number(value, context): the_only_right_number = context["the_only_right_number"] if value not in [ the_only_right_number - 1, the_only_right_number, the_only_right_number + 1, ]: raise ValueError("Not near the right number") return value @hug.type( chain=True, extend=check_if_near_the_right_number, accept_context=True, error_text="error 3" ) def check_if_the_only_right_number(value, context): if value != context["the_only_right_number"]: raise ValueError("Not the right number") return value @hug.type(chain=False, extend=hug.types.number, accept_context=True, error_text="error 4") def check_if_string_has_right_value(value, context): if str(context["the_only_right_number"]) not in value: raise ValueError("The value does not contain the only right number") return value @hug.type(chain=False, extend=hug.types.number, error_text="error 5") def simple_check(value): if value != "simple": raise ValueError("This is not simple") return value @hug.get("/check_the_types") def check_the_types( first: check_if_positive, second: check_if_near_the_right_number, third: check_if_the_only_right_number, forth: check_if_string_has_right_value, fifth: simple_check, ): return "hi" test_cases = [ ((42, 42, 42, "42", "simple"), (None, None, None, None, None)), ((43, 43, 43, "42", "simple"), (None, None, "error 3", None, None)), ((40, 40, 40, "42", "simple"), (None, "error 2", "error 3", None, None)), ( (-42, -42, -42, "53", "not_simple"), ("error 1", "error 2", "error 3", "error 4", "error 5"), ), ] for provided_values, expected_results in test_cases: response = hug.test.get( api, "/check_the_types", **{ "first": provided_values[0], "second": provided_values[1], "third": provided_values[2], "forth": provided_values[3], "fifth": provided_values[4], } ) if response.data == "hi": errors = (None, None, None, None, None) else: errors = [] for key in ["first", "second", "third", "forth", "fifth"]: if key in response.data["errors"]: errors.append(response.data["errors"][key]) else: errors.append(None) errors = tuple(errors) assert errors == expected_results def test_extending_types_with_exception_in_function(): custom_context = dict(context="global", the_only_right_number=42) class CustomStrException(Exception): pass class CustomFunctionException(Exception): pass class CustomNotRegisteredException(ValueError): def __init__(self): super().__init__("not registered exception") exception_handlers = { CustomFunctionException: lambda exception: ValueError("function exception"), CustomStrException: "string exception", } @hug.context_factory() def create_context(*args, **kwargs): return custom_context @hug.delete_context() def delete_context(*args, **kwargs): pass @hug.type(chain=True, extend=hug.types.number, exception_handlers=exception_handlers) def check_simple_exception(value): if value < 0: raise CustomStrException() elif value == 0: raise CustomNotRegisteredException() else: raise CustomFunctionException() @hug.type( chain=True, extend=hug.types.number, exception_handlers=exception_handlers, accept_context=True, ) def check_context_exception(value, context): if value < 0: raise CustomStrException() elif value == 0: raise CustomNotRegisteredException() else: raise CustomFunctionException() @hug.type(chain=True, extend=hug.types.number, accept_context=True) def no_check(value, context): return value @hug.type( chain=True, extend=no_check, exception_handlers=exception_handlers, accept_context=True ) def check_another_context_exception(value, context): if value < 0: raise CustomStrException() elif value == 0: raise CustomNotRegisteredException() else: raise CustomFunctionException() @hug.type(chain=False, exception_handlers=exception_handlers, accept_context=True) def check_simple_no_chain_exception(value, context): if value == "-1": raise CustomStrException() elif value == "0": raise CustomNotRegisteredException() else: raise CustomFunctionException() @hug.type(chain=False, exception_handlers=exception_handlers, accept_context=False) def check_simple_no_chain_no_context_exception(value): if value == "-1": raise CustomStrException() elif value == "0": raise CustomNotRegisteredException() else: raise CustomFunctionException() @hug.get("/raise_exception") def raise_exception( first: check_simple_exception, second: check_context_exception, third: check_another_context_exception, forth: check_simple_no_chain_exception, fifth: check_simple_no_chain_no_context_exception, ): return {} response = hug.test.get( api, "/raise_exception", **{"first": 1, "second": 1, "third": 1, "forth": 1, "fifth": 1} ) assert response.data["errors"] == { "forth": "function exception", "third": "function exception", "fifth": "function exception", "second": "function exception", "first": "function exception", } response = hug.test.get( api, "/raise_exception", **{"first": -1, "second": -1, "third": -1, "forth": -1, "fifth": -1} ) assert response.data["errors"] == { "forth": "string exception", "third": "string exception", "fifth": "string exception", "second": "string exception", "first": "string exception", } response = hug.test.get( api, "/raise_exception", **{"first": 0, "second": 0, "third": 0, "forth": 0, "fifth": 0} ) assert response.data["errors"] == { "second": "not registered exception", "forth": "not registered exception", "third": "not registered exception", "fifth": "not registered exception", "first": "not registered exception", } def test_validate_route_args_positive_case(): class TestSchema(Schema): bar = fields.String() @hug.get("/hello", args={"foo": fields.Integer(), "return": TestSchema()}) def hello(foo: int) -> dict: return {"bar": str(foo)} response = hug.test.get(api, "/hello", **{"foo": 5}) assert response.data == {"bar": "5"} def test_validate_route_args_negative_case(): @hug.get("/hello", raise_on_invalid=True, args={"foo": fields.Integer()}) def hello(foo: int): return str(foo) with pytest.raises(ValidationError): hug.test.get(api, "/hello", **{"foo": "a"}) class TestSchema(Schema): bar = fields.Integer() @hug.get("/foo", raise_on_invalid=True, args={"return": TestSchema()}) def foo(): return {"bar": "a"} with pytest.raises(InvalidTypeData): hug.test.get(api, "/foo") hug-2.6.0/tests/test_use.py000066400000000000000000000227131353170073200156570ustar00rootroot00000000000000"""tests/test_use.py. Tests to ensure hugs service consuming classes, that are the backbone of the seamless micro-service concept, work as intended Copyright (C) 2016 Timothy Edmund Crosley 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. """ import socket import struct import pytest import requests import hug from hug import use class TestService(object): """Test to ensure the base Service object works as a base Abstract service runner""" service = use.Service(version=1, timeout=100, raise_on=(500,)) def test_init(self): """Test to ensure base service instantiation populates expected attributes""" assert self.service.version == 1 assert self.service.raise_on == (500,) assert self.service.timeout == 100 def test_request(self): """Test to ensure the abstract service request method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.request("POST", "endpoint") def test_get(self): """Test to ensure the abstract service get method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.get("endpoint") def test_post(self): """Test to ensure the abstract service post method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.post("endpoint") def test_delete(self): """Test to ensure the abstract service delete method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.delete("endpoint") def test_put(self): """Test to ensure the abstract service put method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.put("endpoint") def test_trace(self): """Test to ensure the abstract service trace method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.trace("endpoint") def test_patch(self): """Test to ensure the abstract service patch method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.patch("endpoint") def test_options(self): """Test to ensure the abstract service options method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.options("endpoint") def test_head(self): """Test to ensure the abstract service head method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.head("endpoint") def test_connect(self): """Test to ensure the abstract service connect method raises NotImplementedError to show its abstract nature""" with pytest.raises(NotImplementedError): self.service.connect("endpoint") class TestHTTP(object): """Test to ensure the HTTP Service object enables pulling data from external HTTP services""" service = use.HTTP("http://www.google.com/", raise_on=(404, 400)) url_service = use.HTTP("http://www.google.com/", raise_on=(404, 400), json_transport=False) def test_init(self): """Test to ensure HTTP service instantiation populates expected attributes""" assert self.service.endpoint == "http://www.google.com/" assert self.service.raise_on == (404, 400) @pytest.mark.extnetwork def test_request(self): """Test so ensure the HTTP service can successfully be used to pull data from an external service""" response = self.url_service.request("GET", "search", query="api") assert response assert response.data with pytest.raises(requests.HTTPError): response = self.service.request("GET", "search", query="api") with pytest.raises(requests.HTTPError): self.url_service.request("GET", "not_found", query="api") class TestLocal(object): """Test to ensure the Local Service object enables pulling data from internal hug APIs with minimal overhead""" service = use.Local(__name__) def test_init(self): """Test to ensure the Local service instantiation populates the expected attributes""" assert isinstance(self.service.api, hug.API) def test_request(self): """Test to ensure requesting data from a local service works as expected""" assert self.service.get("hello_world").data == "Hi!" assert self.service.get("not_there").status_code == 404 assert self.service.get("validation_error").status_code == 400 self.service.raise_on = (404, 500) with pytest.raises(requests.HTTPError): assert self.service.get("not_there") with pytest.raises(requests.HTTPError): assert self.service.get("exception") class TestSocket(object): """Test to ensure the Socket Service object enables sending/receiving data from arbitrary server/port sockets""" on_unix = getattr(socket, "AF_UNIX", False) tcp_service = use.Socket(connect_to=("www.google.com", 80), proto="tcp", timeout=60) udp_service = use.Socket(connect_to=("8.8.8.8", 53), proto="udp", timeout=60) def test_init(self): """Test to ensure the Socket service instantiation populates the expected attributes""" assert isinstance(self.tcp_service, use.Service) def test_protocols(self): """Test to ensure all supported protocols are present""" protocols = sorted(["tcp", "udp", "unix_stream", "unix_dgram"]) if self.on_unix: assert sorted(self.tcp_service.protocols) == protocols else: protocols.remove("unix_stream") protocols.remove("unix_dgram") assert sorted(self.tcp_service.protocols) == protocols def test_streams(self): if self.on_unix: assert set(self.tcp_service.streams) == set(("tcp", "unix_stream")) else: assert set(self.tcp_service.streams) == set(("tcp",)) def test_datagrams(self): if self.on_unix: assert set(self.tcp_service.datagrams) == set(("udp", "unix_dgram")) else: assert set(self.tcp_service.datagrams) == set(("udp",)) def test_inet(self): assert set(self.tcp_service.inet) == set(("tcp", "udp")) def test_unix(self): if self.on_unix: assert set(self.tcp_service.unix) == set(("unix_stream", "unix_dgram")) else: assert set(self.tcp_service.unix) == set() def test_connection(self): assert self.tcp_service.connection.connect_to == ("www.google.com", 80) assert self.tcp_service.connection.proto == "tcp" assert set(self.tcp_service.connection.sockopts) == set() def test_settimeout(self): self.tcp_service.settimeout(60) assert self.tcp_service.timeout == 60 def test_connection_sockopts_unit(self): self.tcp_service.connection.sockopts.clear() self.tcp_service.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) assert self.tcp_service.connection.sockopts == {(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)} def test_connection_sockopts_batch(self): self.tcp_service.setsockopt( ( (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1), ) ) assert self.tcp_service.connection.sockopts == { (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1), } @pytest.mark.extnetwork def test_datagram_request(self): """Test to ensure requesting data from a socket service works as expected""" packet = struct.pack("!HHHHHH", 0x0001, 0x0100, 1, 0, 0, 0) for name in ("www", "google", "com"): header = b"!b" header += bytes(str(len(name)), "utf-8") + b"s" query = struct.pack(header, len(name), name.encode("utf-8")) packet = packet + query dns_query = packet + struct.pack("!bHH", 0, 1, 1) assert ( len(self.udp_service.request(dns_query.decode("utf-8"), buffer_size=4096).data.read()) > 0 ) @hug.get() def hello_world(): return "Hi!" @hug.get() def exception(response): response.status = hug.HTTP_500 @hug.get() def validation_error(data): return data hug-2.6.0/tests/test_validate.py000066400000000000000000000044461353170073200166570ustar00rootroot00000000000000"""tests/test_validate.py. Tests to ensure hug's custom validation methods work as expected Copyright (C) 2016 Timothy Edmund Crosley 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. """ import hug TEST_SCHEMA = {"first": "Timothy", "place": "Seattle"} def test_all(): """Test to ensure hug's all validation function works as expected to combine validators""" assert not hug.validate.all( hug.validate.contains_one_of("first", "year"), hug.validate.contains_one_of("last", "place") )(TEST_SCHEMA) assert hug.validate.all( hug.validate.contains_one_of("last", "year"), hug.validate.contains_one_of("first", "place") )(TEST_SCHEMA) def test_any(): """Test to ensure hug's any validation function works as expected to combine validators""" assert not hug.validate.any( hug.validate.contains_one_of("last", "year"), hug.validate.contains_one_of("first", "place") )(TEST_SCHEMA) assert hug.validate.any( hug.validate.contains_one_of("last", "year"), hug.validate.contains_one_of("no", "way") )(TEST_SCHEMA) def test_contains_one_of(): """Test to ensure hug's contains_one_of validation function works as expected to ensure presence of a field""" assert hug.validate.contains_one_of("no", "way")(TEST_SCHEMA) assert not hug.validate.contains_one_of("last", "place")(TEST_SCHEMA) hug-2.6.0/tox.ini000066400000000000000000000026761353170073200136310ustar00rootroot00000000000000[tox] envlist=py{35,36,37,py3}-marshmallow{2,3}, cython-marshmallow{2,3} [testenv] deps= -rrequirements/build_common.txt marshmallow2: marshmallow <3.0 marshmallow3: marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=py.test --durations 3 --cov-report html --cov hug -n auto tests [testenv:py37-black] deps= -rrequirements/build_style_tools.txt marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=black --check --verbose -l 100 hug [testenv:py37-vulture] deps= -rrequirements/build_style_tools.txt marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=vulture hug --min-confidence 100 --ignore-names req_succeeded [testenv:py37-flake8] deps= -rrequirements/build_style_tools.txt marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=flake8 hug [testenv:py37-bandit] deps= -rrequirements/build_style_tools.txt marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=bandit -r hug/ -ll [testenv:py37-isort] deps= -rrequirements/build_style_tools.txt marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=isort -c --diff --recursive hug [testenv:py37-safety] deps= -rrequirements/build_style_tools.txt marshmallow==3.0.0rc6 whitelist_externals=flake8 commands=safety check -i 36810 [testenv:pywin] deps =-rrequirements/build_windows.txt basepython = {env:PYTHON:}\python.exe commands=py.test hug -n auto tests [testenv:cython] deps=Cython -rrequirements/build.txt